openpond 0.0.32 → 0.0.33
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/{chunk-Q5MZCRJA.js → chunk-D7MMLD4B.js} +1 -1
- package/dist/chunks/{chunk-E5RVRUJB.js → chunk-RYUOC4A6.js} +1 -1
- package/dist/chunks/{chunk-5RHZKQRK.js → chunk-T5LV33QZ.js} +1 -1
- package/dist/chunks/{cli-WW5BVN5Z.js → cli-ACFTSCMY.js} +2 -2
- package/dist/chunks/{src-GZT4UX6I.js → src-3DC5AXBH.js} +4 -4
- package/dist/chunks/{workspaces-DHVVOTVR.js → workspaces-CYA4EXHX.js} +2 -2
- package/dist/cli.js +2 -2
- package/dist/web/assets/{AppsView-CF2g-7FH.js → AppsView-02DhR5FR.js} +1 -1
- package/dist/web/assets/{BrowserSidebar-lUsLUl20.js → BrowserSidebar-BbB1x4NN.js} +1 -1
- package/dist/web/assets/{CloudWorkView-BnfGW4OV.js → CloudWorkView-CrNjUam-.js} +1 -1
- package/dist/web/assets/{CommandMenu-BsS4Bgb6.js → CommandMenu-CMAoQrQr.js} +1 -1
- package/dist/web/assets/{CommunityView-C8qVOwlp.js → CommunityView-ClBQWVMx.js} +1 -1
- package/dist/web/assets/{ComposerCreateImproveStrip-C_LIpfSq.js → ComposerCreateImproveStrip-SAzjMJxi.js} +1 -1
- package/dist/web/assets/{GetStartedView-Du533wOh.js → GetStartedView-CImKDSgl.js} +1 -1
- package/dist/web/assets/LabsRoute-CjsnD_ow.js +3 -0
- package/dist/web/assets/{NewProjectDialog-DH7wA1z9.js → NewProjectDialog-DgHx0SU8.js} +1 -1
- package/dist/web/assets/{ProfileSettingsSection-D7JvMZdW.js → ProfileSettingsSection-Wms2nM8S.js} +1 -1
- package/dist/web/assets/{SettingsView-C9TgCaWG.js → SettingsView-Bj4gTHxu.js} +1 -1
- package/dist/web/assets/{TeamChatView-D_CE7br9.js → TeamChatView-Bn5s_CEO.js} +1 -1
- package/dist/web/assets/{TerminalOverlay-CC-VDSlp.js → TerminalOverlay-CZxcEnIU.js} +1 -1
- package/dist/web/assets/{TrainingCreationPanel-NFCoaBUI.js → TrainingCreationPanel-CDHWKB0z.js} +1 -1
- package/dist/web/assets/{TrainingDraftPanel-BWEmVFjM.js → TrainingDraftPanel-C1LwcFJe.js} +1 -1
- package/dist/web/assets/{WorkspaceDiffPanel-SlLlGZM1.js → WorkspaceDiffPanel-OXh-RfsO.js} +3 -3
- package/dist/web/assets/{WorkspaceEnvironmentMenu-BAoMBTVD.js → WorkspaceEnvironmentMenu-DYsTZ1yS.js} +1 -1
- package/dist/web/assets/{WorkspaceGitDialogs-CVIFrzyl.js → WorkspaceGitDialogs-DW1YzZSC.js} +1 -1
- package/dist/web/assets/{WorkspaceMonacoEditor-0trp0-TI.js → WorkspaceMonacoEditor-BB6RMJhI.js} +3 -3
- package/dist/web/assets/{boxes-CFihgX2z.js → boxes-DuFpoIOg.js} +1 -1
- package/dist/web/assets/{create-pipeline-request-AJWLMTyw.js → create-pipeline-request-CoUS3TxW.js} +1 -1
- package/dist/web/assets/{cssMode-HvqfCFyP.js → cssMode-BwBG931R.js} +1 -1
- package/dist/web/assets/{git-commit-horizontal-C5mUmACv.js → git-commit-horizontal-nYzHKpP_.js} +1 -1
- package/dist/web/assets/{htmlMode-C8btgUt-.js → htmlMode-kia19Vq-.js} +1 -1
- package/dist/web/assets/index-5GiqJrAI.js +1 -0
- package/dist/web/assets/{index-D7Vr3zcV.js → index-Md3sZKuq.js} +5 -5
- package/dist/web/assets/{info-D0xuy5IB.js → info-C19-C_Yo.js} +1 -1
- package/dist/web/assets/{jsonMode-5zVz9G0X.js → jsonMode-Bbnsi639.js} +1 -1
- package/dist/web/assets/{lspLanguageFeatures-DxlSSL7c.js → lspLanguageFeatures-CQ7n1AnL.js} +1 -1
- package/dist/web/assets/{monaco.contribution-B1pWWwqT.js → monaco.contribution-B0hVTPtP.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BXdXsSWI.js → monaco.contribution-B70DoKC2.js} +2 -2
- package/dist/web/assets/{monaco.contribution-CIjjzpUR.js → monaco.contribution-CckMti96.js} +2 -2
- package/dist/web/assets/{monaco.contribution-BKpVvKK9.js → monaco.contribution-D0pzYjhS.js} +2 -2
- package/dist/web/assets/{monitor-B4-9Shtp.js → monitor-BiTzpoOs.js} +1 -1
- package/dist/web/assets/{play-BJdhBqQE.js → play-fYNcpLd1.js} +1 -1
- package/dist/web/assets/{python-CEK8J4w_.js → python-KvnXMI5w.js} +1 -1
- package/dist/web/assets/{refresh-cw-DE0u_nmZ.js → refresh-cw-CLWf9Yye.js} +1 -1
- package/dist/web/assets/{reply-2MfLJ93n.js → reply-ChwFJtCP.js} +1 -1
- package/dist/web/assets/{save-CBIVKaf8.js → save-Cf458B41.js} +1 -1
- package/dist/web/assets/{toggleHighContrast-CC73mtvA.js → toggleHighContrast-xBMYNCS6.js} +1 -1
- package/dist/web/assets/training-DSUEHclG.css +1 -0
- package/dist/web/assets/{tsMode-Bhn9wr_1.js → tsMode-MD366RAt.js} +1 -1
- package/dist/web/assets/{wifi-off-BKTqnqj0.js → wifi-off-BmQZtHYT.js} +1 -1
- package/dist/web/assets/{workers-C_adgrEg.js → workers-DZmm4J7b.js} +1 -1
- package/dist/web/assets/{yaml-DDRAcADU.js → yaml-AYqrW6mK.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
- package/dist/web/assets/LabsRoute-yk8lNMQc.js +0 -3
- package/dist/web/assets/index-DUqAiF57.js +0 -1
- package/dist/web/assets/training-BY8siNUK.css +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CommandMenu-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CommandMenu-CMAoQrQr.js","./CommandMenu-hNQCm8mw.css","./SettingsView-Bj4gTHxu.js","./ProfileSettingsSection-Wms2nM8S.js","./git-commit-horizontal-nYzHKpP_.js","./play-fYNcpLd1.js","./refresh-cw-CLWf9Yye.js","./ProfileSettingsSection-CqnfjiCl.css","./git-dialogs-BZDqS1eT.css","./save-Cf458B41.js","./wifi-off-BmQZtHYT.js","./monitor-BiTzpoOs.js","./index-5GiqJrAI.js","./SettingsView-DwbGu8Kj.css","./WorkspaceGitDialogs-DW1YzZSC.js","./WorkspaceEnvironmentMenu-DYsTZ1yS.js","./boxes-DuFpoIOg.js","./info-C19-C_Yo.js","./WorkspaceEnvironmentMenu-DGIFdG3o.css","./ComposerCreateImproveStrip-SAzjMJxi.js","./TerminalOverlay-CZxcEnIU.js","./TerminalOverlay-DwBiZLwk.css","./WorkspaceDiffPanel-OXh-RfsO.js","./training-model-data-BXUCzS0p.js","./AppsView-02DhR5FR.js","./AppsView-DIhprTIC.css","./GetStartedView-CImKDSgl.js","./GetStartedView-C3ZrnEz5.css","./LabsRoute-CjsnD_ow.js","./LabsRoute-CgKtVYTP.css","./training-DSUEHclG.css","./BrowserSidebar-BbB1x4NN.js","./BrowserSidebar-D9i7gQzw.css","./CloudWorkView-CrNjUam-.js","./create-pipeline-request-CoUS3TxW.js","./CloudWorkView-DNoPIlMj.css","./TeamChatView-Bn5s_CEO.js","./reply-ChwFJtCP.js","./TeamChatView-Bx44q3WV.css","./CommunityView-ClBQWVMx.js","./CommunityView-DSik4sd2.css","./TrainingDraftPanel-C1LwcFJe.js","./TrainingCreationPanel-CDHWKB0z.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
function JT(e,t){for(var n=0;n<t.length;n++){const o=t[n];if(typeof o!="string"&&!Array.isArray(o)){for(const i in o)if(i!=="default"&&!(i in e)){const l=Object.getOwnPropertyDescriptor(o,i);l&&Object.defineProperty(e,i,l.get?l:{enumerable:!0,get:()=>o[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))o(i);new MutationObserver(i=>{for(const l of i)if(l.type==="childList")for(const u of l.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&o(u)}).observe(document,{childList:!0,subtree:!0});function n(i){const l={};return i.integrity&&(l.integrity=i.integrity),i.referrerPolicy&&(l.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?l.credentials="include":i.crossOrigin==="anonymous"?l.credentials="omit":l.credentials="same-origin",l}function o(i){if(i.ep)return;i.ep=!0;const l=n(i);fetch(i.href,l)}})();function XT(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Th={exports:{}},ju={};var ex;function QT(){if(ex)return ju;ex=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(o,i,l){var u=null;if(l!==void 0&&(u=""+l),i.key!==void 0&&(u=""+i.key),"key"in i){l={};for(var m in i)m!=="key"&&(l[m]=i[m])}else l=i;return i=l.ref,{$$typeof:e,type:o,key:u,ref:i!==void 0?i:null,props:l}}return ju.Fragment=t,ju.jsx=n,ju.jsxs=n,ju}var tx;function ej(){return tx||(tx=1,Th.exports=QT()),Th.exports}var f=ej(),jh={exports:{}},Ht={};var nx;function tj(){if(nx)return Ht;nx=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),l=Symbol.for("react.consumer"),u=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),g=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),S=Symbol.for("react.lazy"),x=Symbol.for("react.activity"),C=Symbol.iterator;function w(R){return R===null||typeof R!="object"?null:(R=C&&R[C]||R["@@iterator"],typeof R=="function"?R:null)}var E={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,U={};function D(R,L,Q){this.props=R,this.context=L,this.refs=U,this.updater=Q||E}D.prototype.isReactComponent={},D.prototype.setState=function(R,L){if(typeof R!="object"&&typeof R!="function"&&R!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,R,L,"setState")},D.prototype.forceUpdate=function(R){this.updater.enqueueForceUpdate(this,R,"forceUpdate")};function B(){}B.prototype=D.prototype;function K(R,L,Q){this.props=R,this.context=L,this.refs=U,this.updater=Q||E}var I=K.prototype=new B;I.constructor=K,j(I,D.prototype),I.isPureReactComponent=!0;var O=Array.isArray;function N(){}var z={H:null,A:null,T:null,S:null},G=Object.prototype.hasOwnProperty;function ne(R,L,Q){var Ae=Q.ref;return{$$typeof:e,type:R,key:L,ref:Ae!==void 0?Ae:null,props:Q}}function ce(R,L){return ne(R.type,L,R.props)}function Y(R){return typeof R=="object"&&R!==null&&R.$$typeof===e}function ue(R){var L={"=":"=0",":":"=2"};return"$"+R.replace(/[=:]/g,function(Q){return L[Q]})}var Se=/\/+/g;function me(R,L){return typeof R=="object"&&R!==null&&R.key!=null?ue(""+R.key):L.toString(36)}function qe(R){switch(R.status){case"fulfilled":return R.value;case"rejected":throw R.reason;default:switch(typeof R.status=="string"?R.then(N,N):(R.status="pending",R.then(function(L){R.status==="pending"&&(R.status="fulfilled",R.value=L)},function(L){R.status==="pending"&&(R.status="rejected",R.reason=L)})),R.status){case"fulfilled":return R.value;case"rejected":throw R.reason}}throw R}function $(R,L,Q,Ae,je){var Le=typeof R;(Le==="undefined"||Le==="boolean")&&(R=null);var de=!1;if(R===null)de=!0;else switch(Le){case"bigint":case"string":case"number":de=!0;break;case"object":switch(R.$$typeof){case e:case t:de=!0;break;case S:return de=R._init,$(de(R._payload),L,Q,Ae,je)}}if(de)return je=je(R),de=Ae===""?"."+me(R,0):Ae,O(je)?(Q="",de!=null&&(Q=de.replace(Se,"$&/")+"/"),$(je,L,Q,"",function(Ke){return Ke})):je!=null&&(Y(je)&&(je=ce(je,Q+(je.key==null||R&&R.key===je.key?"":(""+je.key).replace(Se,"$&/")+"/")+de)),L.push(je)),1;de=0;var He=Ae===""?".":Ae+":";if(O(R))for(var xe=0;xe<R.length;xe++)Ae=R[xe],Le=He+me(Ae,xe),de+=$(Ae,L,Q,Le,je);else if(xe=w(R),typeof xe=="function")for(R=xe.call(R),xe=0;!(Ae=R.next()).done;)Ae=Ae.value,Le=He+me(Ae,xe++),de+=$(Ae,L,Q,Le,je);else if(Le==="object"){if(typeof R.then=="function")return $(qe(R),L,Q,Ae,je);throw L=String(R),Error("Objects are not valid as a React child (found: "+(L==="[object Object]"?"object with keys {"+Object.keys(R).join(", ")+"}":L)+"). If you meant to render a collection of children, use an array instead.")}return de}function be(R,L,Q){if(R==null)return R;var Ae=[],je=0;return $(R,Ae,"","",function(Le){return L.call(Q,Le,je++)}),Ae}function ie(R){if(R._status===-1){var L=R._result;L=L(),L.then(function(Q){(R._status===0||R._status===-1)&&(R._status=1,R._result=Q)},function(Q){(R._status===0||R._status===-1)&&(R._status=2,R._result=Q)}),R._status===-1&&(R._status=0,R._result=L)}if(R._status===1)return R._result.default;throw R._result}var fe=typeof reportError=="function"?reportError:function(R){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var L=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof R=="object"&&R!==null&&typeof R.message=="string"?String(R.message):String(R),error:R});if(!window.dispatchEvent(L))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",R);return}console.error(R)},te={map:be,forEach:function(R,L,Q){be(R,function(){L.apply(this,arguments)},Q)},count:function(R){var L=0;return be(R,function(){L++}),L},toArray:function(R){return be(R,function(L){return L})||[]},only:function(R){if(!Y(R))throw Error("React.Children.only expected to receive a single React element child.");return R}};return Ht.Activity=x,Ht.Children=te,Ht.Component=D,Ht.Fragment=n,Ht.Profiler=i,Ht.PureComponent=K,Ht.StrictMode=o,Ht.Suspense=g,Ht.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=z,Ht.__COMPILER_RUNTIME={__proto__:null,c:function(R){return z.H.useMemoCache(R)}},Ht.cache=function(R){return function(){return R.apply(null,arguments)}},Ht.cacheSignal=function(){return null},Ht.cloneElement=function(R,L,Q){if(R==null)throw Error("The argument must be a React element, but you passed "+R+".");var Ae=j({},R.props),je=R.key;if(L!=null)for(Le in L.key!==void 0&&(je=""+L.key),L)!G.call(L,Le)||Le==="key"||Le==="__self"||Le==="__source"||Le==="ref"&&L.ref===void 0||(Ae[Le]=L[Le]);var Le=arguments.length-2;if(Le===1)Ae.children=Q;else if(1<Le){for(var de=Array(Le),He=0;He<Le;He++)de[He]=arguments[He+2];Ae.children=de}return ne(R.type,je,Ae)},Ht.createContext=function(R){return R={$$typeof:u,_currentValue:R,_currentValue2:R,_threadCount:0,Provider:null,Consumer:null},R.Provider=R,R.Consumer={$$typeof:l,_context:R},R},Ht.createElement=function(R,L,Q){var Ae,je={},Le=null;if(L!=null)for(Ae in L.key!==void 0&&(Le=""+L.key),L)G.call(L,Ae)&&Ae!=="key"&&Ae!=="__self"&&Ae!=="__source"&&(je[Ae]=L[Ae]);var de=arguments.length-2;if(de===1)je.children=Q;else if(1<de){for(var He=Array(de),xe=0;xe<de;xe++)He[xe]=arguments[xe+2];je.children=He}if(R&&R.defaultProps)for(Ae in de=R.defaultProps,de)je[Ae]===void 0&&(je[Ae]=de[Ae]);return ne(R,Le,je)},Ht.createRef=function(){return{current:null}},Ht.forwardRef=function(R){return{$$typeof:m,render:R}},Ht.isValidElement=Y,Ht.lazy=function(R){return{$$typeof:S,_payload:{_status:-1,_result:R},_init:ie}},Ht.memo=function(R,L){return{$$typeof:p,type:R,compare:L===void 0?null:L}},Ht.startTransition=function(R){var L=z.T,Q={};z.T=Q;try{var Ae=R(),je=z.S;je!==null&&je(Q,Ae),typeof Ae=="object"&&Ae!==null&&typeof Ae.then=="function"&&Ae.then(N,fe)}catch(Le){fe(Le)}finally{L!==null&&Q.types!==null&&(L.types=Q.types),z.T=L}},Ht.unstable_useCacheRefresh=function(){return z.H.useCacheRefresh()},Ht.use=function(R){return z.H.use(R)},Ht.useActionState=function(R,L,Q){return z.H.useActionState(R,L,Q)},Ht.useCallback=function(R,L){return z.H.useCallback(R,L)},Ht.useContext=function(R){return z.H.useContext(R)},Ht.useDebugValue=function(){},Ht.useDeferredValue=function(R,L){return z.H.useDeferredValue(R,L)},Ht.useEffect=function(R,L){return z.H.useEffect(R,L)},Ht.useEffectEvent=function(R){return z.H.useEffectEvent(R)},Ht.useId=function(){return z.H.useId()},Ht.useImperativeHandle=function(R,L,Q){return z.H.useImperativeHandle(R,L,Q)},Ht.useInsertionEffect=function(R,L){return z.H.useInsertionEffect(R,L)},Ht.useLayoutEffect=function(R,L){return z.H.useLayoutEffect(R,L)},Ht.useMemo=function(R,L){return z.H.useMemo(R,L)},Ht.useOptimistic=function(R,L){return z.H.useOptimistic(R,L)},Ht.useReducer=function(R,L,Q){return z.H.useReducer(R,L,Q)},Ht.useRef=function(R){return z.H.useRef(R)},Ht.useState=function(R){return z.H.useState(R)},Ht.useSyncExternalStore=function(R,L,Q){return z.H.useSyncExternalStore(R,L,Q)},Ht.useTransition=function(){return z.H.useTransition()},Ht.version="19.2.7",Ht}var ax;function Db(){return ax||(ax=1,jh.exports=tj()),jh.exports}var b=Db();const nj=XT(b),HW=JT({__proto__:null,default:nj},[b]);var Eh={exports:{}},Eu={},Mh={exports:{}},Ph={};var ox;function aj(){return ox||(ox=1,(function(e){function t($,be){var ie=$.length;$.push(be);e:for(;0<ie;){var fe=ie-1>>>1,te=$[fe];if(0<i(te,be))$[fe]=be,$[ie]=te,ie=fe;else break e}}function n($){return $.length===0?null:$[0]}function o($){if($.length===0)return null;var be=$[0],ie=$.pop();if(ie!==be){$[0]=ie;e:for(var fe=0,te=$.length,R=te>>>1;fe<R;){var L=2*(fe+1)-1,Q=$[L],Ae=L+1,je=$[Ae];if(0>i(Q,ie))Ae<te&&0>i(je,Q)?($[fe]=je,$[Ae]=ie,fe=Ae):($[fe]=Q,$[L]=ie,fe=L);else if(Ae<te&&0>i(je,ie))$[fe]=je,$[Ae]=ie,fe=Ae;else break e}}return be}function i($,be){var ie=$.sortIndex-be.sortIndex;return ie!==0?ie:$.id-be.id}if(e.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var l=performance;e.unstable_now=function(){return l.now()}}else{var u=Date,m=u.now();e.unstable_now=function(){return u.now()-m}}var g=[],p=[],S=1,x=null,C=3,w=!1,E=!1,j=!1,U=!1,D=typeof setTimeout=="function"?setTimeout:null,B=typeof clearTimeout=="function"?clearTimeout:null,K=typeof setImmediate<"u"?setImmediate:null;function I($){for(var be=n(p);be!==null;){if(be.callback===null)o(p);else if(be.startTime<=$)o(p),be.sortIndex=be.expirationTime,t(g,be);else break;be=n(p)}}function O($){if(j=!1,I($),!E)if(n(g)!==null)E=!0,N||(N=!0,ue());else{var be=n(p);be!==null&&qe(O,be.startTime-$)}}var N=!1,z=-1,G=5,ne=-1;function ce(){return U?!0:!(e.unstable_now()-ne<G)}function Y(){if(U=!1,N){var $=e.unstable_now();ne=$;var be=!0;try{e:{E=!1,j&&(j=!1,B(z),z=-1),w=!0;var ie=C;try{t:{for(I($),x=n(g);x!==null&&!(x.expirationTime>$&&ce());){var fe=x.callback;if(typeof fe=="function"){x.callback=null,C=x.priorityLevel;var te=fe(x.expirationTime<=$);if($=e.unstable_now(),typeof te=="function"){x.callback=te,I($),be=!0;break t}x===n(g)&&o(g),I($)}else o(g);x=n(g)}if(x!==null)be=!0;else{var R=n(p);R!==null&&qe(O,R.startTime-$),be=!1}}break e}finally{x=null,C=ie,w=!1}be=void 0}}finally{be?ue():N=!1}}}var ue;if(typeof K=="function")ue=function(){K(Y)};else if(typeof MessageChannel<"u"){var Se=new MessageChannel,me=Se.port2;Se.port1.onmessage=Y,ue=function(){me.postMessage(null)}}else ue=function(){D(Y,0)};function qe($,be){z=D(function(){$(e.unstable_now())},be)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):G=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return C},e.unstable_next=function($){switch(C){case 1:case 2:case 3:var be=3;break;default:be=C}var ie=C;C=be;try{return $()}finally{C=ie}},e.unstable_requestPaint=function(){U=!0},e.unstable_runWithPriority=function($,be){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var ie=C;C=$;try{return be()}finally{C=ie}},e.unstable_scheduleCallback=function($,be,ie){var fe=e.unstable_now();switch(typeof ie=="object"&&ie!==null?(ie=ie.delay,ie=typeof ie=="number"&&0<ie?fe+ie:fe):ie=fe,$){case 1:var te=-1;break;case 2:te=250;break;case 5:te=1073741823;break;case 4:te=1e4;break;default:te=5e3}return te=ie+te,$={id:S++,callback:be,priorityLevel:$,startTime:ie,expirationTime:te,sortIndex:-1},ie>fe?($.sortIndex=ie,t(p,$),n(g)===null&&$===n(p)&&(j?(B(z),z=-1):j=!0,qe(O,ie-fe))):($.sortIndex=te,t(g,$),E||w||(E=!0,N||(N=!0,ue()))),$},e.unstable_shouldYield=ce,e.unstable_wrapCallback=function($){var be=C;return function(){var ie=C;C=be;try{return $.apply(this,arguments)}finally{C=ie}}}})(Ph)),Ph}var rx;function oj(){return rx||(rx=1,Mh.exports=aj()),Mh.exports}var Nh={exports:{}},Qo={};var ix;function rj(){if(ix)return Qo;ix=1;var e=Db();function t(g){var p="https://react.dev/errors/"+g;if(1<arguments.length){p+="?args[]="+encodeURIComponent(arguments[1]);for(var S=2;S<arguments.length;S++)p+="&args[]="+encodeURIComponent(arguments[S])}return"Minified React error #"+g+"; visit "+p+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var o={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},i=Symbol.for("react.portal");function l(g,p,S){var x=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:i,key:x==null?null:""+x,children:g,containerInfo:p,implementation:S}}var u=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function m(g,p){if(g==="font")return"";if(typeof p=="string")return p==="use-credentials"?p:""}return Qo.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=o,Qo.createPortal=function(g,p){var S=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!p||p.nodeType!==1&&p.nodeType!==9&&p.nodeType!==11)throw Error(t(299));return l(g,p,null,S)},Qo.flushSync=function(g){var p=u.T,S=o.p;try{if(u.T=null,o.p=2,g)return g()}finally{u.T=p,o.p=S,o.d.f()}},Qo.preconnect=function(g,p){typeof g=="string"&&(p?(p=p.crossOrigin,p=typeof p=="string"?p==="use-credentials"?p:"":void 0):p=null,o.d.C(g,p))},Qo.prefetchDNS=function(g){typeof g=="string"&&o.d.D(g)},Qo.preinit=function(g,p){if(typeof g=="string"&&p&&typeof p.as=="string"){var S=p.as,x=m(S,p.crossOrigin),C=typeof p.integrity=="string"?p.integrity:void 0,w=typeof p.fetchPriority=="string"?p.fetchPriority:void 0;S==="style"?o.d.S(g,typeof p.precedence=="string"?p.precedence:void 0,{crossOrigin:x,integrity:C,fetchPriority:w}):S==="script"&&o.d.X(g,{crossOrigin:x,integrity:C,fetchPriority:w,nonce:typeof p.nonce=="string"?p.nonce:void 0})}},Qo.preinitModule=function(g,p){if(typeof g=="string")if(typeof p=="object"&&p!==null){if(p.as==null||p.as==="script"){var S=m(p.as,p.crossOrigin);o.d.M(g,{crossOrigin:S,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0})}}else p==null&&o.d.M(g)},Qo.preload=function(g,p){if(typeof g=="string"&&typeof p=="object"&&p!==null&&typeof p.as=="string"){var S=p.as,x=m(S,p.crossOrigin);o.d.L(g,S,{crossOrigin:x,integrity:typeof p.integrity=="string"?p.integrity:void 0,nonce:typeof p.nonce=="string"?p.nonce:void 0,type:typeof p.type=="string"?p.type:void 0,fetchPriority:typeof p.fetchPriority=="string"?p.fetchPriority:void 0,referrerPolicy:typeof p.referrerPolicy=="string"?p.referrerPolicy:void 0,imageSrcSet:typeof p.imageSrcSet=="string"?p.imageSrcSet:void 0,imageSizes:typeof p.imageSizes=="string"?p.imageSizes:void 0,media:typeof p.media=="string"?p.media:void 0})}},Qo.preloadModule=function(g,p){if(typeof g=="string")if(p){var S=m(p.as,p.crossOrigin);o.d.m(g,{as:typeof p.as=="string"&&p.as!=="script"?p.as:void 0,crossOrigin:S,integrity:typeof p.integrity=="string"?p.integrity:void 0})}else o.d.m(g)},Qo.requestFormReset=function(g){o.d.r(g)},Qo.unstable_batchedUpdates=function(g,p){return g(p)},Qo.useFormState=function(g,p,S){return u.H.useFormState(g,p,S)},Qo.useFormStatus=function(){return u.H.useHostTransitionStatus()},Qo.version="19.2.7",Qo}var sx;function ij(){if(sx)return Nh.exports;sx=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Nh.exports=rj(),Nh.exports}var lx;function sj(){if(lx)return Eu;lx=1;var e=oj(),t=Db(),n=ij();function o(a){var r="https://react.dev/errors/"+a;if(1<arguments.length){r+="?args[]="+encodeURIComponent(arguments[1]);for(var s=2;s<arguments.length;s++)r+="&args[]="+encodeURIComponent(arguments[s])}return"Minified React error #"+a+"; visit "+r+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function i(a){return!(!a||a.nodeType!==1&&a.nodeType!==9&&a.nodeType!==11)}function l(a){var r=a,s=a;if(a.alternate)for(;r.return;)r=r.return;else{a=r;do r=a,(r.flags&4098)!==0&&(s=r.return),a=r.return;while(a)}return r.tag===3?s:null}function u(a){if(a.tag===13){var r=a.memoizedState;if(r===null&&(a=a.alternate,a!==null&&(r=a.memoizedState)),r!==null)return r.dehydrated}return null}function m(a){if(a.tag===31){var r=a.memoizedState;if(r===null&&(a=a.alternate,a!==null&&(r=a.memoizedState)),r!==null)return r.dehydrated}return null}function g(a){if(l(a)!==a)throw Error(o(188))}function p(a){var r=a.alternate;if(!r){if(r=l(a),r===null)throw Error(o(188));return r!==a?null:a}for(var s=a,c=r;;){var h=s.return;if(h===null)break;var v=h.alternate;if(v===null){if(c=h.return,c!==null){s=c;continue}break}if(h.child===v.child){for(v=h.child;v;){if(v===s)return g(h),a;if(v===c)return g(h),r;v=v.sibling}throw Error(o(188))}if(s.return!==c.return)s=h,c=v;else{for(var _=!1,P=h.child;P;){if(P===s){_=!0,s=h,c=v;break}if(P===c){_=!0,c=h,s=v;break}P=P.sibling}if(!_){for(P=v.child;P;){if(P===s){_=!0,s=v,c=h;break}if(P===c){_=!0,c=v,s=h;break}P=P.sibling}if(!_)throw Error(o(189))}}if(s.alternate!==c)throw Error(o(190))}if(s.tag!==3)throw Error(o(188));return s.stateNode.current===s?a:r}function S(a){var r=a.tag;if(r===5||r===26||r===27||r===6)return a;for(a=a.child;a!==null;){if(r=S(a),r!==null)return r;a=a.sibling}return null}var x=Object.assign,C=Symbol.for("react.element"),w=Symbol.for("react.transitional.element"),E=Symbol.for("react.portal"),j=Symbol.for("react.fragment"),U=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),B=Symbol.for("react.consumer"),K=Symbol.for("react.context"),I=Symbol.for("react.forward_ref"),O=Symbol.for("react.suspense"),N=Symbol.for("react.suspense_list"),z=Symbol.for("react.memo"),G=Symbol.for("react.lazy"),ne=Symbol.for("react.activity"),ce=Symbol.for("react.memo_cache_sentinel"),Y=Symbol.iterator;function ue(a){return a===null||typeof a!="object"?null:(a=Y&&a[Y]||a["@@iterator"],typeof a=="function"?a:null)}var Se=Symbol.for("react.client.reference");function me(a){if(a==null)return null;if(typeof a=="function")return a.$$typeof===Se?null:a.displayName||a.name||null;if(typeof a=="string")return a;switch(a){case j:return"Fragment";case D:return"Profiler";case U:return"StrictMode";case O:return"Suspense";case N:return"SuspenseList";case ne:return"Activity"}if(typeof a=="object")switch(a.$$typeof){case E:return"Portal";case K:return a.displayName||"Context";case B:return(a._context.displayName||"Context")+".Consumer";case I:var r=a.render;return a=a.displayName,a||(a=r.displayName||r.name||"",a=a!==""?"ForwardRef("+a+")":"ForwardRef"),a;case z:return r=a.displayName||null,r!==null?r:me(a.type)||"Memo";case G:r=a._payload,a=a._init;try{return me(a(r))}catch{}}return null}var qe=Array.isArray,$=t.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,be=n.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,ie={pending:!1,data:null,method:null,action:null},fe=[],te=-1;function R(a){return{current:a}}function L(a){0>te||(a.current=fe[te],fe[te]=null,te--)}function Q(a,r){te++,fe[te]=a.current,a.current=r}var Ae=R(null),je=R(null),Le=R(null),de=R(null);function He(a,r){switch(Q(Le,r),Q(je,a),Q(Ae,null),r.nodeType){case 9:case 11:a=(a=r.documentElement)&&(a=a.namespaceURI)?w0(a):0;break;default:if(a=r.tagName,r=r.namespaceURI)r=w0(r),a=_0(r,a);else switch(a){case"svg":a=1;break;case"math":a=2;break;default:a=0}}L(Ae),Q(Ae,a)}function xe(){L(Ae),L(je),L(Le)}function Ke(a){a.memoizedState!==null&&Q(de,a);var r=Ae.current,s=_0(r,a.type);r!==s&&(Q(je,a),Q(Ae,s))}function Ue(a){je.current===a&&(L(Ae),L(je)),de.current===a&&(L(de),Iu._currentValue=ie)}var ot,$e;function Me(a){if(ot===void 0)try{throw Error()}catch(s){var r=s.stack.trim().match(/\n( *(at )?)/);ot=r&&r[1]||"",$e=-1<s.stack.indexOf(`
|
|
3
3
|
at`)?" (<anonymous>)":-1<s.stack.indexOf("@")?"@unknown:0:0":""}return`
|
|
4
4
|
`+ot+a+$e}var q=!1;function ae(a,r){if(!a||q)return"";q=!0;var s=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{var c={DetermineComponentFrameRoot:function(){try{if(r){var Ze=function(){throw Error()};if(Object.defineProperty(Ze.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(Ze,[])}catch(Oe){var Re=Oe}Reflect.construct(a,[],Ze)}else{try{Ze.call()}catch(Oe){Re=Oe}a.call(Ze.prototype)}}else{try{throw Error()}catch(Oe){Re=Oe}(Ze=a())&&typeof Ze.catch=="function"&&Ze.catch(function(){})}}catch(Oe){if(Oe&&Re&&typeof Oe.stack=="string")return[Oe.stack,Re.stack]}return[null,null]}};c.DetermineComponentFrameRoot.displayName="DetermineComponentFrameRoot";var h=Object.getOwnPropertyDescriptor(c.DetermineComponentFrameRoot,"name");h&&h.configurable&&Object.defineProperty(c.DetermineComponentFrameRoot,"name",{value:"DetermineComponentFrameRoot"});var v=c.DetermineComponentFrameRoot(),_=v[0],P=v[1];if(_&&P){var ee=_.split(`
|
|
@@ -140,7 +140,7 @@ Evidence JSON:
|
|
|
140
140
|
`).split(`
|
|
141
141
|
`);return n.length<=t?e:`${n.slice(0,t).join(`
|
|
142
142
|
`)}
|
|
143
|
-
...`}function V1({kind:e="local",project:t,pinned:n=!1,selected:o,expanded:i=!1,workspaceState:l,cloudWorkItems:u=[],cloudLinkTrusted:m=!0,cloudLinkWarning:g=null,placeholder:p,terminalIndicator:S,onSelect:x,onNewChat:C,onMoveToCloud:w,onWorkspaceTargetSelect:E,onToggleSystemVisibility:j,onTogglePin:U,onRemove:D,onDragStart:B,onDragEnd:K,onDragOver:I,onDrop:O}){const[N,z]=b.useState(!1),G=b.useRef(null),[ne,ce]=b.useState({}),Y=!!w||!!j||!!D,ue=e==="local"&&m!==!1&&!!t.linkedSandboxProject?.projectId,Se=b.useCallback(()=>{if(typeof window>"u")return;const $=G.current?.getBoundingClientRect();if(!$)return;const be=Math.max(12,window.innerWidth-PI-12),ie=Math.max(12,window.innerHeight-NI),fe=Math.max(12,Math.min($.right+10,be)),te=Math.max(12,Math.min($.top-4,ie)),R={"--sidebar-project-locations-left":`${Math.round(fe)}px`,"--sidebar-project-locations-top":`${Math.round(te)}px`};ce(L=>L["--sidebar-project-locations-left"]===R["--sidebar-project-locations-left"]&&L["--sidebar-project-locations-top"]===R["--sidebar-project-locations-top"]?L:R)},[]),me=b.useCallback(()=>{Se(),x()},[x,Se]);function qe(){z(!1)}return f.jsxs("div",{ref:G,className:["sidebar-project-row-shell",N?"project-menu-open":""].filter(Boolean).join(" "),onFocusCapture:Se,onPointerEnter:Se,children:[f.jsxs(Ov,{selected:o,placeholder:p,className:["sidebar-project-row",N?"project-menu-open":""].filter(Boolean).join(" "),ariaExpanded:i,onSelect:me,onDragStart:B,onDragEnd:K,onDragOver:I,onDrop:O,children:[f.jsx(Zq,{kind:e,agentSdk:!!t.agentSdk?.detected,linkedCloud:ue,open:e==="local"&&i,className:"sidebar-row-icon",baseSize:15}),f.jsxs("span",{className:"row-label-shell",children:[f.jsx("span",{className:"row-label",children:t.name}),f.jsx("span",{className:"sidebar-project-caret","aria-hidden":"true",children:i?f.jsx(Lo,{size:13}):f.jsx(Bl,{size:13})})]}),f.jsxs("div",{className:"row-meta",children:[f.jsx("span",{className:"row-meta-status",children:S?f.jsx(zI,{indicator:S}):null}),f.jsxs("div",{className:"sidebar-row-actions",children:[f.jsx(wc,{label:n?"Unpin project":"Pin project",onClick:U,children:n?f.jsx(Gw,{size:13}):f.jsx(Vw,{size:13})}),Y&&f.jsx(C6,{open:N,onToggleOpen:()=>z($=>!$)}),f.jsx(wc,{label:"New task",onClick:C,children:f.jsx(ud,{size:13})})]})]})]}),f.jsx(u6,{kind:e,project:t,workspaceState:l,cloudWorkItems:u,cloudLinkTrusted:m,cloudLinkWarning:g,onWorkspaceTargetSelect:E,style:ne}),N&&f.jsx(w6,{onClose:qe,onMoveToCloud:w?()=>{qe(),w()}:void 0,onToggleSystemVisibility:j?()=>{qe(),j()}:void 0,systemHidden:!!("hiddenFromDefaultSidebar"in t&&t.hiddenFromDefaultSidebar),onRemove:()=>{qe(),D()}})]})}function G1({workItem:e,selected:t,hideIcon:n=!1,nested:o=!1,onSelect:i}){const l=e.status==="queued"||e.status==="running",u=b.useMemo(OI,[]);return f.jsxs(Ov,{selected:t,iconless:n,nested:o,onSelect:i,children:[n?null:f.jsx("span",{className:"sidebar-row-icon cloud","aria-hidden":"true",children:f.jsx(Os,{size:15})}),f.jsxs("span",{className:"row-label-shell",children:[f.jsx("span",{className:"row-label",children:e.title}),f.jsx("span",{className:"row-label-detail",children:l6(e)})]}),f.jsx("div",{className:"row-meta",children:l?f.jsx("span",{className:"sidebar-running-dot",style:u,"data-tooltip":e.status,"aria-label":e.status}):f.jsx("time",{children:s6(e)})})]})}function zI({indicator:e}){return f.jsx("span",{className:`sidebar-terminal-indicator ${e.status}`,"data-tooltip":e.label,"aria-label":e.label,title:e.label,children:f.jsx(dd,{size:13})})}function s6(e){return e.status==="needs_review"?"Review":e.status==="failed"?"Failed":e.status==="cancelled"?"Cancelled":RI(e.updatedAt)}function l6(e){const t=[c6(e.status)];return e.sourceRef&&t.push(e.sourceRef),e.latestSandboxId&&t.push("sandbox ready"),e.latestTaskRunId&&(e.status==="queued"||e.status==="running")&&t.push("task running"),e.status==="needs_review"&&t.push("patch ready"),e.status==="failed"&&t.push("open logs"),t.join(" / ")}function c6(e){return e==="needs_review"?"review":e.replace(/_/g," ")}function u6({kind:e,project:t,workspaceState:n,cloudWorkItems:o,cloudLinkTrusted:i,cloudLinkWarning:l,onWorkspaceTargetSelect:u,style:m}){const g=m6(e,t,n,o??[],i,l);return f.jsxs("aside",{className:"sidebar-project-locations-popover","aria-label":`${t.name} status`,style:m,children:[f.jsx("div",{className:"sidebar-project-locations-title",children:t.name}),f.jsx("div",{className:"sidebar-project-location-list",children:g.map(p=>{const S=["sidebar-project-location-row",p.tone??"",p.actionTarget?"clickable":""].filter(Boolean).join(" "),x=f.jsxs(f.Fragment,{children:[f.jsx("span",{className:["sidebar-project-location-icon",p.key].filter(Boolean).join(" "),"aria-hidden":"true",children:p.icon}),f.jsx("span",{className:"sidebar-project-location-copy",children:f.jsx(d6,{value:p.value})})]});return p.actionTarget?f.jsx("button",{type:"button",className:S,"data-workspace-target":p.actionTarget,disabled:p.disabled||!u,title:p.disabledReason??void 0,onClick:C=>{C.stopPropagation(),!p.disabled&&u?.(p.actionTarget)},children:x},p.key):f.jsx("div",{className:S,children:x},p.key)})})]})}function d6({value:e}){const t=f6(e);return f.jsxs("span",{className:"sidebar-project-location-value","aria-label":e,children:[t.branch?f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"sidebar-project-location-branch",children:t.branch}),f.jsx("span",{className:"sidebar-project-location-separator","aria-hidden":"true",children:"/"})]}):null,f.jsx("span",{className:"sidebar-project-location-status",children:t.status})]})}function f6(e){const n=e.indexOf(" / ");return n===-1?{branch:null,status:e}:{branch:e.slice(0,n),status:e.slice(n+3)}}function m6(e,t,n,o=[],i=!0,l=null){return e==="cloud"?h6(t,o):p6(t,n,o,i,l)}function p6(e,t,n=[],o=!0,i=null){const l=g6(e,t,o),u=b6(t),m=$I(n),g=y6(e,o),p=o===!1&&i;return[{key:"local",value:l,tone:u?"attention":"local",icon:e.source==="git"?f.jsx(cE,{size:13}):f.jsx(Yf,{size:13}),actionTarget:"local"},{key:"cloud",value:p||(g?S6(e,t,m,o):"not in cloud"),tone:p?"attention":m?.tone??"cloud",icon:f.jsx(Os,{size:13}),actionTarget:g?"cloud":"upload_cloud"}]}function h6(e,t=[]){const n=$I(t);return[{key:"cloud",value:x6(e,n),tone:n?.tone??(e.syncedAt?"cloud":"attention"),icon:f.jsx(Os,{size:13}),actionTarget:"cloud"}]}function g6(e,t,n){const o=v6(e,t);return t?t.error?`${o} / status unavailable`:t.initialized?jI(t,{branch:e.linkedSandboxProject?.defaultBranch??null,linkedCloudSourceKnown:e.linkedSandboxProject?.projectId&&n?!!e.linkedSandboxProject.lastUploadedCommit||!t.headCommit:!0}):`${o} / not checked out`:`${o} / available`}function b6(e){return!!(e?.dirty||(e?.changedFilesCount??0)>0||(e?.untrackedFilesCount??0)>0)}function v6(e,t){return t?.currentBranch??t?.defaultBranch??e.linkedSandboxProject?.defaultBranch??"local"}function y6(e,t=!0){return!!(t&&e.linkedSandboxProject?.projectId||e.linkedOpenPondApp?.appId)}function S6(e,t,n,o){const i=e.linkedSandboxProject?.defaultBranch??t?.defaultBranch??"main";return n?`${i} / ${n.value}`:EI(e,null,t,{cloudLinkTrusted:o})}function x6(e,t){const n=e.defaultBranch??"main",o=t?.value??(e.syncedAt?"setup ready":"needs setup");return`${n} / ${o}`}function $I(e){const t=e.filter(i=>i.status==="queued"||i.status==="running");if(t.length>0){const i=t.filter(m=>m.status==="running").length,l=t.length-i;return{value:i>0?`${i} running${l>0?` / ${l} queued`:""}`:`${l} queued`,tone:"running"}}return e.find(i=>i.status==="needs_review")?{value:"review ready",tone:"attention"}:e.find(i=>i.status==="failed")?{value:"cloud work failed",tone:"attention"}:null}function C6({open:e,onToggleOpen:t}){return f.jsx("button",{type:"button",className:`sidebar-row-action ${e?"active":""}`,"data-tooltip":"More project actions","aria-label":"More project actions","aria-haspopup":"menu","aria-expanded":e,onClick:n=>{n.stopPropagation(),t()},children:f.jsx(cd,{size:13})})}function w6({onClose:e,onMoveToCloud:t,onToggleSystemVisibility:n,systemHidden:o,onRemove:i}){return f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"sidebar-project-menu-backdrop","aria-label":"Close project actions",onClick:l=>{l.stopPropagation(),e()}}),f.jsxs("div",{className:"section-menu-popover sidebar-project-row-popover",role:"menu",children:[t&&f.jsxs("button",{type:"button",role:"menuitem",onClick:l=>{l.stopPropagation(),t()},children:[f.jsx(Gq,{size:13}),f.jsx("span",{children:"Move to Cloud"})]}),n&&f.jsxs("button",{type:"button",role:"menuitem",onClick:l=>{l.stopPropagation(),n()},children:[f.jsx(Bw,{size:13}),f.jsx("span",{children:o?"Show in Local Projects":"Hide from Local Projects"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:l=>{l.stopPropagation(),i()},children:[f.jsx(rs,{size:13}),f.jsx("span",{children:"Remove from Projects"})]})]})]})}function Ov({children:e,className:t,dataSessionId:n,dragging:o,iconless:i=!1,nested:l=!1,placeholder:u=!1,selected:m,ariaExpanded:g,ariaDescribedBy:p,onSelect:S,onDragStart:x,onDragEnd:C,onDragOver:w,onDrop:E,onDoubleClick:j}){const U=!!x;return f.jsx("div",{className:["sidebar-row",t??"",m?"selected":"",o?"dragging":"",i?"iconless":"",l?"nested":"",u?"placeholder":""].filter(Boolean).join(" "),draggable:U,"data-session-id":n,role:"button",tabIndex:0,"aria-expanded":g,"aria-describedby":p,onClick:S,onDoubleClick:j,onKeyDown:D=>{(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),S())},onDragStart:x,onDragEnd:C,onDragEnter:D=>{w&&(D.preventDefault(),D.dataTransfer.dropEffect="move",w(D))},onDragOver:D=>{w&&(D.preventDefault(),D.dataTransfer.dropEffect="move",w(D))},onDrop:D=>{E&&(D.preventDefault(),E(D))},children:e})}function wc({children:e,label:t,onClick:n}){return f.jsx("button",{type:"button",className:"sidebar-row-action","data-tooltip":t,"aria-label":t,onClick:o=>{o.stopPropagation(),n()},children:e})}function _6({currentUserId:e,enabled:t,loading:n,members:o,openTeamDm:i,organization:l,selectedTeamThreadId:u,selectTeamThread:m,threads:g,view:p}){const[S,x]=b.useState(!1),[C,w]=b.useState(!0);if(!t)return null;const E=g.find(B=>B.kind==="general")??null,j=new Map;for(const B of g){if(B.kind!=="dm")continue;const K=B.participants.find(I=>I.userId!==e);K&&j.set(K.userId,B)}const U=l?.effectiveAccessState,D=l?.displayName??"Team";return f.jsx("div",{className:"team-sidebar-section",children:f.jsx(Zu,{label:"Your Team",collapsed:S,onToggleCollapsed:()=>x(B=>!B),children:f.jsxs("div",{className:"team-sidebar-group",children:[f.jsxs("button",{type:"button",className:"team-sidebar-row team-sidebar-group-toggle","aria-label":`${C?"Collapse":"Expand"} ${D}`,"aria-expanded":C,"aria-controls":"team-sidebar-conversations",onClick:()=>w(B=>!B),children:[f.jsx("span",{className:"team-sidebar-avatar fallback",children:DI(D)}),f.jsxs("span",{className:"team-sidebar-group-title",children:[f.jsx("span",{className:"team-sidebar-label",children:D}),f.jsx("span",{className:"team-sidebar-group-chevron","aria-hidden":"true",children:C?f.jsx(Lo,{size:13}):f.jsx(Bl,{size:13})})]})]}),C?f.jsxs("div",{className:"team-sidebar-conversations",id:"team-sidebar-conversations",children:[U&&U!=="active"?f.jsx("div",{className:"team-sidebar-workspace-meta",children:f.jsx("span",{children:I6(U)})}):null,E?f.jsx(Z1,{label:"general",selected:p==="team"&&u===E.id,muted:!!E.mutedAt,unreadCount:E.unreadCount,onSelect:()=>m(E.id)}):null,o.filter(B=>B.userId!==e).map(B=>{const K=j.get(B.userId)??null;return f.jsx(Z1,{member:B,label:B.name,selected:p==="team"&&u===K?.id,muted:!!K?.mutedAt,unreadCount:K?.unreadCount??0,onSelect:()=>i(B.userId)},B.userId)}),!E&&o.length===0?f.jsx("div",{className:"empty-row",children:n?"Loading team...":"Team unavailable"}):null]}):null]})})})}function Z1({label:e,member:t,selected:n,muted:o,unreadCount:i,onSelect:l}){return f.jsxs("button",{type:"button",className:`team-sidebar-row${n?" selected":""}`,onClick:l,children:[t?f.jsx(k6,{member:t}):f.jsx("span",{className:"team-sidebar-channel",children:"#"}),f.jsx("span",{className:"team-sidebar-label",children:e}),f.jsxs("span",{className:"team-sidebar-row-meta",children:[o?f.jsx(Dw,{size:11,"aria-label":"Muted"}):null,i>0?f.jsx("span",{className:"team-sidebar-unread","aria-label":`${i} unread`,children:i>99?"99+":i}):null]})]})}function k6({member:e}){return e.image?f.jsx("img",{className:"team-sidebar-avatar",src:e.image,alt:""}):f.jsx("span",{className:"team-sidebar-avatar fallback",children:DI(e.name)})}function DI(e){return e.split(/\s+/).slice(0,2).map(t=>t[0]?.toUpperCase()??"").join("")||"?"}function I6(e){return e==="checkout_pending"?"Checkout pending":e.charAt(0).toUpperCase()+e.slice(1)}function A6(e){const[t,n]=b.useState(!1),[o,i]=b.useState(()=>new Set(e.selectedCommunityId?[e.selectedCommunityId]:[])),l=e.communities.find(g=>g.id===e.selectedCommunityId)??null,u=e.communities.filter(g=>g.membership?.status==="active"||!!g.featuredAt||g.id===e.selectedCommunityId).sort((g,p)=>+(p.membership?.status==="active")-+(g.membership?.status==="active")||+!!p.featuredAt-+!!g.featuredAt||g.displayName.localeCompare(p.displayName));b.useEffect(()=>{e.selectedCommunityId&&i(g=>g.has(e.selectedCommunityId)?g:new Set([...g,e.selectedCommunityId]))},[e.selectedCommunityId]);function m(g,p,S){if(p&&S){i(x=>{const C=new Set(x);return C.has(g.id)?C.delete(g.id):C.add(g.id),C});return}S&&i(x=>new Set([...x,g.id])),e.onSelectCommunity(g.id)}return f.jsx("div",{className:"community-sidebar-section",children:f.jsxs(Zu,{label:"Communities",collapsed:t,onToggleCollapsed:()=>n(g=>!g),titleAccessory:f.jsx("button",{type:"button",className:`community-sidebar-discover${e.view==="community"&&!l?" selected":""}`,"aria-label":"Discover communities",onClick:e.onDiscover,children:f.jsx(ld,{size:14})}),children:[u.map(g=>{const p=g.id===e.selectedCommunityId,S=g.membership?.status==="active",x=p&&S&&o.has(g.id);return f.jsxs("div",{className:"community-sidebar-group",children:[f.jsxs("button",{type:"button",className:`team-sidebar-row community-sidebar-community${e.view==="community"&&p&&!e.selectedChannelId?" selected":""}`,"aria-label":S?`${x?"Collapse":"Expand"} ${g.displayName}`:void 0,"aria-expanded":S?x:void 0,"aria-controls":p&&S?`community-sidebar-channels-${g.id}`:void 0,onClick:()=>m(g,p,S),children:[g.imageUrl?f.jsx("img",{className:"team-sidebar-avatar",src:g.imageUrl,alt:""}):f.jsx("span",{className:"team-sidebar-avatar community-sidebar-avatar",children:g.displayName.slice(0,2).toUpperCase()}),f.jsxs("span",{className:"team-sidebar-group-title",children:[f.jsx("span",{className:"team-sidebar-label",children:g.displayName}),S?f.jsx("span",{className:"community-sidebar-group-chevron","aria-hidden":"true",children:x?f.jsx(Lo,{size:13}):f.jsx(Bl,{size:13})}):null]}),!S&&g.featuredAt?f.jsx("small",{children:"Featured"}):null]}),x?f.jsx("div",{className:"community-sidebar-channels",id:`community-sidebar-channels-${g.id}`,children:e.channels.map(C=>f.jsxs("button",{type:"button",className:`team-sidebar-row community-sidebar-channel-row${e.view==="community"&&C.id===e.selectedChannelId?" selected":""}`,onClick:()=>e.onSelectChannel(C.id),children:[f.jsx("span",{className:"team-sidebar-channel","aria-hidden":"true",children:"#"}),f.jsx("span",{className:"team-sidebar-label",children:C.displayName}),f.jsxs("span",{className:"team-sidebar-row-meta",children:[C.readState?.mutedAt?f.jsx(Dw,{size:11,"aria-label":"Muted"}):null,C.unreadCount>0?f.jsx("span",{className:"team-sidebar-unread","aria-label":`${C.unreadCount} unread`,children:C.unreadCount>99?"99+":C.unreadCount}):null]})]},C.id))}):null]},g.id)}),u.length===0?f.jsx("div",{className:"empty-row",children:e.loading?"Loading communities…":e.error?"Communities unavailable":"Join or feature a community to pin it here"}):null]})})}const R6={},T6=new Map,j6=new Map;function E6(e){return e.view==="chat"&&!e.selectedSessionId?"select_draft_project":"toggle_project"}function W1(e,t){return Math.min(Math.max(e,Yn)+ub,t)}function Y1(e,t){const n=Math.max(Yn,Math.min(e,t));if(n<=Yn)return Yn;const o=Math.ceil((n-Yn)/ub);return Math.max(Yn,Yn+(o-1)*ub)}function M6({addProjectFolder:e,addSessionToTraining:t,archivedChatsOpen:n,archiveSession:o,beginNewChat:i,chatsCollapsed:l,chatRows:u,cloudProjectRows:m,workspaceStates:g={},cloudWorkItemsByProjectId:p,childSessionRowsByParentId:S={},clearSidebarDrag:x,commitPinnedDrop:C,commitPinnedPreviewDrop:w,dragItem:E,dockSessionRight:j,expandedProjectIds:U,expandProject:D,insightsSystemProjectHidden:B,onToggleChatsCollapsed:K,onTogglePinnedCollapsed:I,onToggleProjectsCollapsed:O,openCloudHome:N,createCloudEnvironment:z,pinnedCollapsed:G,pinnedRows:ne,previewPinnedDrop:ce,localProjectRows:Y,projectsCollapsed:ue,projectsExpanded:Se,projectRows:me,projectSessionRowsByProjectId:qe,moveProjectToCloud:$,removeProject:be,restoreSession:ie,renameSession:fe,runningSessionIds:te,goalRuntimeBySessionId:R=T6,subagentRuntimeBySessionId:L=j6,sectionMenuOpen:Q,selectCloudWorkItem:Ae,selectTeamThread:je,openTeamDm:Le,selectedCloudWorkItemId:de,selectedTeamThreadId:He,teamChatEnabled:xe,teamChatOrganization:Ke,teamChatLoading:Ue=!1,currentUserId:ot,teamMembers:$e=[],teamThreads:Me=[],communityItems:q=[],communityChannels:ae=[],communityLoading:H=!1,communityError:se,selectedCommunityId:we,selectedCommunityChannelId:ze,discoverCommunities:Ye,selectCommunity:Ct,selectCommunityChannel:yt,selectedProjectId:Et,selectedSessionId:gt,sidebarProjectIdBySessionId:Be,startExistingProjectFromPath:it,terminalSummaries:y=R6,setArchivedChatsOpen:Z,setChatRowsVisibleCount:le,setProjectsExpanded:Pe,setSearchOpen:V,setSectionMenuOpen:he,setSelectedAppId:A,setSelectedProjectId:W,setSelectedSessionId:Ce,setView:ye,startPinnedDrag:Te,startCloudProjectFromScratch:De,startProjectFromScratch:Ne,switchProjectWorkspaceTarget:nt,toggleInsightsSystemProjectVisibility:Qe,toggleProjectPinned:Xe,toggleSystemProjectVisibility:at,toggleProjectExpanded:vt,toggleSessionPinned:ct,visibleChatRows:pn,visibleProjectRows:hn,view:Dt}){const[Sn,Xt]=b.useState({}),[Ft,za]=b.useState(()=>new Set),[Nt,vn]=b.useState(()=>new Set),xn=JSON.stringify(Object.entries(S).filter(([oe,pt])=>pt.length>0&&(L.get(oe)?.activeCount??0)>0).flatMap(([oe,pt])=>pt.map(dt=>[oe,dt.id])).sort(([oe,pt],[dt,st])=>oe.localeCompare(dt)||pt.localeCompare(st)));b.useEffect(()=>{const oe=JSON.parse(xn);if(oe.length===0)return;const pt=new Set(oe.map(([dt])=>dt));vn(dt=>[...pt].every(st=>dt.has(st))?dt:new Set([...dt,...pt]))},[xn]);const sa=me??[...Y,...m].filter(oe=>!oe.pinned);function Qn(oe,pt){Xt(dt=>{const st=dt[oe]??Yn,St=W1(st,pt);return St===st?dt:{...dt,[oe]:St}})}function Lt(oe,pt){Xt(dt=>{const st=dt[oe]??Yn,St=Y1(st,pt);if(St===st)return dt;if(St<=Yn){const Tt={...dt};return delete Tt[oe],Tt}return{...dt,[oe]:St}})}function en(oe){za(pt=>{const dt=new Set(pt);return dt.has(oe)?dt.delete(oe):dt.add(oe),dt})}function kt(oe){A(null),W(oe.id),Ce(null),ye("chat"),Et===oe.id&&!gt?vt(oe.id):D(oe.id)}function On(oe){if(E6({selectedSessionId:gt,view:Dt})==="select_draft_project"){kt(oe);return}vt(oe.id)}function _a(oe){A(null),W(oe.id),Ce(null),ye("chat"),D(oe.id)}function la(oe){Ce(oe.id);const pt=Be[oe.id]??null;pt&&D(pt),A(pt?null:oe.appId),W(pt),ye("chat")}function kn(oe){return S[oe.id]??[]}function un(oe,pt){return Nt.has(oe.id)||pt.some(dt=>dt.id===gt)}function ea(oe){vn(pt=>{const dt=new Set(pt);return dt.has(oe)?dt.delete(oe):dt.add(oe),dt})}function Ln(oe){return M1(y[db({kind:"session",id:oe})])}function ba(oe){return M1(y[db({kind:"project",id:oe})])}function ka(oe){if(oe.kind==="cloud")return ca(oe);if(!U.has(oe.id))return null;const pt=qe[oe.id]??[],dt=p[oe.id]??[];if(pt.length===0&&dt.length===0)return null;const st=Math.max(Yn,Sn[oe.id]??Yn),St=pt.slice(0,st),Tt=St.length<pt.length,En=St.length>Yn,bo=dt.some(It=>It.id===de)||Ft.has(oe.id),wt=bo?dt:dt.slice(0,Yn);return f.jsxs("div",{className:"sidebar-project-children",children:[St.map(It=>f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:It,selected:Dt==="chat"&>===It.id,hideIcon:!0,nested:!0,running:te.has(It.id),goalRuntime:R.get(It.id)??null,subagentRuntime:L.get(It.id)??null,terminalIndicator:Ln(It.id),childSessionCount:kn(It).length,childSessionsExpanded:un(It,kn(It)),onToggleChildSessions:()=>ea(It.id),onSelect:()=>la(It),onTogglePin:()=>ct(It),onDockRight:()=>j(It),onAddToTraining:()=>t(It),onArchive:()=>o(It),onRename:fe}),Mt(It,{nested:!0})]},It.id)),pt.length>Yn&&(Tt||En)&&f.jsxs("div",{className:"sidebar-pagination-controls","aria-label":`Showing ${St.length} of ${pt.length} project chats`,children:[Tt?f.jsx(Pl,{onClick:()=>Qn(oe.id,pt.length),children:"Show more"}):null,En?f.jsx(Pl,{onClick:()=>Lt(oe.id,pt.length),children:"Show less"}):null]}),wt.map(It=>f.jsx(G1,{workItem:It,selected:Dt==="cloud"&&de===It.id,hideIcon:!0,nested:!0,onSelect:()=>Ae(It)},It.id)),dt.length>Yn&&f.jsx(Pl,{expanded:bo,onClick:()=>en(oe.id)})]})}function ca(oe){if(!U.has(oe.id))return null;const pt=p[oe.id]??[];if(pt.length===0)return f.jsx("div",{className:"empty-row nested",children:"No tasks"});const st=pt.some(Tt=>Tt.id===de)||Ft.has(oe.id),St=st?pt:pt.slice(0,Yn);return f.jsxs("div",{className:"sidebar-project-children",children:[St.map(Tt=>f.jsx(G1,{workItem:Tt,selected:Dt==="cloud"&&de===Tt.id,hideIcon:!0,nested:!0,onSelect:()=>Ae(Tt)},Tt.id)),pt.length>Yn&&f.jsx(Pl,{expanded:st,onClick:()=>en(oe.id)})]})}const tn=pn.length<u.length,Rt=pn.length>Yn;function Kt(){le(oe=>W1(oe,u.length))}function Ot(){le(oe=>Y1(oe,u.length))}function Mt(oe,pt={}){const dt=kn(oe);if(dt.length===0||!un(oe,dt))return null;const st=["sidebar-child-session-group",pt.nested?"nested":""].filter(Boolean).join(" ");return f.jsx("div",{className:st,children:dt.map(St=>f.jsx(Mu,{session:St,selected:Dt==="chat"&>===St.id,hideIcon:!0,nested:!0,running:te.has(St.id),goalRuntime:R.get(St.id)??null,subagentRuntime:L.get(St.id)??null,terminalIndicator:Ln(St.id),onSelect:()=>la(St),onTogglePin:()=>ct(St),onDockRight:()=>j(St),onAddToTraining:()=>t(St),onArchive:()=>o(St),onRename:fe},St.id))})}return f.jsxs("div",{className:"sidebar-scroll",children:[f.jsx(A6,{communities:q,channels:ae,loading:H,error:se,selectedCommunityId:we,selectedChannelId:ze,view:Dt,onDiscover:Ye,onSelectCommunity:Ct,onSelectChannel:yt}),f.jsx(_6,{currentUserId:ot,enabled:xe,loading:Ue,members:$e,openTeamDm:Le,organization:Ke,selectedTeamThreadId:He,selectTeamThread:je,threads:Me,view:Dt}),f.jsx(Zu,{label:"Pinned",collapsed:G,onToggleCollapsed:I,children:ne.map(oe=>{const pt=E?.type===oe.type&&E.id===oe.id;return oe.type==="project"?f.jsxs("div",{className:"sidebar-project-group",children:[f.jsx(V1,{kind:oe.item.kind,project:oe.item.project,pinned:oe.item.pinned,selected:Dt==="chat"&&Et===oe.id&&!gt,expanded:U.has(oe.id),workspaceState:oe.item.kind==="local"?g[oe.item.project.id]??null:null,cloudWorkItems:p[oe.item.id]??[],cloudLinkTrusted:oe.item.cloudLinkTrusted,cloudLinkWarning:oe.item.cloudLinkWarning,placeholder:pt,terminalIndicator:ba(oe.item.id),onSelect:()=>On(oe.item),onNewChat:()=>_a(oe.item),onMoveToCloud:oe.item.kind==="local"?()=>$(oe.item):void 0,onWorkspaceTargetSelect:dt=>nt(oe.item.id,dt),onTogglePin:()=>Xe(oe.item),onToggleSystemVisibility:oe.item.kind==="local"&&oe.item.project.systemKind?()=>at(oe.item):void 0,onRemove:()=>be(oe.item),onDragStart:dt=>Te(dt,{type:"project",id:oe.id}),onDragEnd:x,onDragOver:dt=>{pt||ce(dt,{type:"project",id:oe.id})},onDrop:dt=>{if(pt){w();return}C(dt,{type:"project",id:oe.id})}}),!pt&&ka(oe.item)]},oe.key):f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:oe.session,selected:Dt==="chat"&>===oe.id,hideIcon:!0,placeholder:pt,running:te.has(oe.session.id),goalRuntime:R.get(oe.session.id)??null,subagentRuntime:L.get(oe.session.id)??null,terminalIndicator:Ln(oe.session.id),childSessionCount:kn(oe.session).length,childSessionsExpanded:un(oe.session,kn(oe.session)),onToggleChildSessions:()=>ea(oe.session.id),onSelect:()=>la(oe.session),onTogglePin:()=>ct(oe.session),onDockRight:()=>j(oe.session),onAddToTraining:()=>t(oe.session),onArchive:()=>o(oe.session),onRename:fe,onDragStart:dt=>Te(dt,{type:"session",id:oe.id}),onDragEnd:x,onDragOver:dt=>{pt||ce(dt,{type:"session",id:oe.id})},onDrop:dt=>{if(pt){w();return}C(dt,{type:"session",id:oe.id})}}),!pt&&Mt(oe.session)]},oe.key)})}),f.jsxs(Zu,{label:"Projects",collapsed:ue,onToggleCollapsed:O,actions:f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"section-menu",children:[f.jsx("button",{type:"button",className:`section-icon ${Q==="projects"?"active":""}`,"data-tooltip":"Add project","aria-label":"Add project","aria-haspopup":"menu","aria-expanded":Q==="projects",onClick:()=>he(oe=>oe==="projects"?null:"projects"),children:f.jsx(gl,{size:14})}),Q==="projects"&&f.jsxs("div",{className:"section-menu-popover",role:"menu",children:[f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),Ne()},children:[f.jsx(fE,{size:13}),f.jsx("span",{children:"New Local Project"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),e()},children:[f.jsx(Wu,{size:13}),f.jsx("span",{children:"Use existing folder"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),it()},children:[f.jsx(Wu,{size:13}),f.jsx("span",{children:"Use existing folder path"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),De()},children:[f.jsx(Os,{size:13}),f.jsx("span",{children:"New Cloud Project"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),N()},children:[f.jsx(Os,{size:13}),f.jsx("span",{children:"New Cloud task"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),z()},children:[f.jsx(Hb,{size:13}),f.jsx("span",{children:"Create environment"})]})]})]}),f.jsxs("div",{className:"section-menu",children:[f.jsx("button",{type:"button",className:`section-icon ${Q==="projects-options"?"active":""}`,"data-tooltip":"Projects options","aria-label":"Projects options","aria-haspopup":"menu","aria-expanded":Q==="projects-options",onClick:()=>he(oe=>oe==="projects-options"?null:"projects-options"),children:f.jsx(cd,{size:14})}),Q==="projects-options"&&f.jsx("div",{className:"section-menu-popover",role:"menu",children:f.jsxs("button",{type:"button",role:"menuitem",disabled:B===null,onClick:()=>{he(null),Qe()},children:[B===!1?f.jsx(Bw,{size:13}):f.jsx(oE,{size:13}),f.jsx("span",{children:B===!1?"Hide Insights folder":"Show Insights folder"})]})})]})]}),children:[hn.map(oe=>f.jsxs("div",{className:"sidebar-project-group",children:[f.jsx(V1,{kind:oe.kind,project:oe.project,pinned:oe.pinned,selected:Dt==="chat"&&Et===oe.id&&!gt,expanded:U.has(oe.id),workspaceState:oe.kind==="local"?g[oe.project.id]??null:null,cloudWorkItems:p[oe.id]??[],cloudLinkTrusted:oe.cloudLinkTrusted,cloudLinkWarning:oe.cloudLinkWarning,terminalIndicator:ba(oe.id),onSelect:()=>On(oe),onNewChat:()=>_a(oe),onMoveToCloud:oe.kind==="local"?()=>$(oe):void 0,onWorkspaceTargetSelect:pt=>nt(oe.id,pt),onTogglePin:()=>Xe(oe),onToggleSystemVisibility:oe.kind==="local"&&oe.project.systemKind?()=>at(oe):void 0,onRemove:()=>be(oe)}),ka(oe)]},oe.id)),hn.length===0&&Y.length===0&&m.length===0&&f.jsx("div",{className:"empty-row",children:"No projects"}),sa.length>Yn&&f.jsx(Pl,{expanded:Se,onClick:()=>Pe(oe=>!oe)})]}),f.jsxs(Zu,{label:"Chats",collapsed:l,onToggleCollapsed:K,actions:f.jsxs(f.Fragment,{children:[f.jsx(n6,{id:"chats",open:Q==="chats",archivedOpen:n,archivedLabel:"archived chats",onToggleOpen:()=>he(oe=>oe==="chats"?null:"chats"),onToggleArchived:()=>{Z(oe=>!oe),he(null)}}),f.jsx("button",{className:"section-icon","data-tooltip":"Filter chats","aria-label":"Filter chats",onClick:()=>{he(null),V(!0)},children:f.jsx(Hw,{size:14})}),f.jsx("button",{className:"section-icon","data-tooltip":"New task","aria-label":"New task",onClick:()=>i(null),children:f.jsx(ud,{size:14})})]}),children:[pn.map(oe=>oe.archived?f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:oe,selected:!1,archived:!0,hideIcon:!0,running:te.has(oe.id),goalRuntime:R.get(oe.id)??null,subagentRuntime:L.get(oe.id)??null,terminalIndicator:Ln(oe.id),childSessionCount:kn(oe).length,childSessionsExpanded:un(oe,kn(oe)),onToggleChildSessions:()=>ea(oe.id),onSelect:()=>{ie(oe),la(oe)},onTogglePin:()=>ct(oe),onDockRight:()=>j(oe),onAddToTraining:()=>t(oe),onArchive:()=>ie(oe),onRename:fe}),Mt(oe)]},oe.id):f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:oe,selected:Dt==="chat"&>===oe.id,hideIcon:!0,running:te.has(oe.id),goalRuntime:R.get(oe.id)??null,subagentRuntime:L.get(oe.id)??null,terminalIndicator:Ln(oe.id),childSessionCount:kn(oe).length,childSessionsExpanded:un(oe,kn(oe)),onToggleChildSessions:()=>ea(oe.id),onSelect:()=>la(oe),onTogglePin:()=>ct(oe),onDockRight:()=>j(oe),onAddToTraining:()=>t(oe),onArchive:()=>o(oe),onRename:fe}),Mt(oe)]},oe.id)),u.length===0&&f.jsx("div",{className:"empty-row",children:"No chats"}),u.length>Yn&&(tn||Rt)&&f.jsxs("div",{className:"sidebar-pagination-controls","aria-label":`Showing ${pn.length} of ${u.length} chats`,children:[tn?f.jsx(Pl,{onClick:Kt,children:"Show more"}):null,Rt?f.jsx(Pl,{onClick:Ot,children:"Show less"}):null]})]})]})}const P6="./";function Di(e){return`${P6}${e.replace(/^\.?\//,"")}`}const UI=Di("openpond-icon.png"),N6=Di("openpond-wordlogo-white.png"),J1={github:Di("connected-apps/github.svg"),google:Di("connected-apps/google.svg"),microsoft_teams:Di("connected-apps/microsoft.svg"),mcp:Di("connected-apps/openpond-mcp.svg"),slack:Di("connected-apps/slack.svg"),x:Di("connected-apps/x.svg")};function zv(e){return J1[e]??J1.mcp}const yY={ETH:Di("tokens/eth.svg"),USDC:Di("tokens/usdc.svg")};function O6({onOpenHome:e}){return f.jsx("button",{type:"button",className:"sidebar-wordmark-button","aria-label":"OpenPond home",onClick:e,children:f.jsx("img",{className:"sidebar-wordmark",src:N6,alt:""})})}function z6(...e){for(const t of e){const n=t?.trim();if(n)return n}return null}function $6(e){const t=e?.accounts.find(u=>u.isActive)??null,n=e?.profile??null,o=e?.activeProfile?.handle??null;return{label:(e?.state==="signed_in"?z6(e?.label,n?.handle,n?.name,n?.email,t?.displayLabel,t?.handle,o,e?.email,"Signed in"):e?.state==="loading"||e?.state==="switching"?"Loading account":"Sign in")??"Account",image:e?.avatarUrl??n?.image??t?.avatarUrl??null}}function D6({account:e,onOpenSettings:t}){const[n,o]=b.useState(!1),i=b.useRef(null),l=b.useMemo(()=>$6(e),[e]),u=l.label.trim().slice(0,1).toUpperCase();return b.useEffect(()=>{if(!n)return;function m(p){i.current?.contains(p.target)||o(!1)}function g(p){p.key==="Escape"&&o(!1)}return document.addEventListener("pointerdown",m),document.addEventListener("keydown",g),()=>{document.removeEventListener("pointerdown",m),document.removeEventListener("keydown",g)}},[n]),f.jsxs("div",{className:"user-auth-footer",ref:i,children:[f.jsxs("button",{type:"button",className:`user-auth-trigger ${n?"active":""}`,"aria-haspopup":"menu","aria-expanded":n,"aria-label":`${l.label} account menu`,onClick:()=>o(m=>!m),children:[f.jsx("span",{className:"user-auth-avatar","aria-hidden":"true",children:l.image?f.jsx("img",{src:l.image,alt:""}):u?f.jsx("span",{children:u}):f.jsx(QE,{size:16})}),f.jsx("span",{className:"user-auth-name",children:l.label})]}),n?f.jsx("div",{className:"user-auth-menu",role:"menu","aria-label":"Account",children:f.jsxs("a",{href:"/settings",className:"user-auth-menu-link",role:"menuitem",onClick:m=>{m.preventDefault(),o(!1),t()},children:[f.jsx(Hb,{size:15}),f.jsx("span",{children:"Settings"})]})}):null]})}function X1(e){const t=/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(e?.trim()??"");return t?[Number.parseInt(t[1],10),Number.parseInt(t[2],10),Number.parseInt(t[3],10)]:null}function U6(e,t){const n=X1(e),o=X1(t);if(!n||!o)return!1;for(let i=0;i<o.length;i+=1){if(o[i]>n[i])return!0;if(o[i]<n[i])return!1}return!1}function LI(e){const t=e?.toLowerCase()??"";return t==="darwin"||t.includes("mac")?"mac":t==="linux"||t.includes("linux")?"linux":null}function L6(e){const t=e?.toLowerCase()??"";return t==="arm64"||t==="aarch64"?"arm64":t==="x64"||t==="x86_64"||t==="amd64"?"x64":null}function q6(e,t,n){const o=LI(t),i=L6(n);if(o==="mac"){const l=e.filter(u=>/-mac-.*\.zip$/i.test(u.name));return i==="arm64"?l.find(u=>/-mac-arm64\.zip$/i.test(u.name))??null:i==="x64"?l.find(u=>/-mac-x64\.zip$/i.test(u.name))??l.find(u=>/-mac-universal\.zip$/i.test(u.name))??null:l.find(u=>/-mac-universal\.zip$/i.test(u.name))??l.find(u=>/-mac-arm64\.zip$/i.test(u.name))??l[0]??null}if(o==="linux"){const l=e.filter(u=>/\.AppImage$/i.test(u.name));return i==="arm64"?l.find(u=>/(?:arm64|aarch64).*\.AppImage$/i.test(u.name))??null:i==="x64"?l.find(u=>/(?:x86_64|x64|amd64).*\.AppImage$/i.test(u.name))??l[0]??null:l[0]??null}return null}function B6(e){if(!e.payload||typeof e.payload!="object")return null;const t=e.payload,o=(typeof t.tag_name=="string"?t.tag_name.trim():"").replace(/^v/,"");if(!U6(e.currentVersion,o))return null;const i=typeof t.html_url=="string"?t.html_url:"",u=(Array.isArray(t.assets)?t.assets:[]).flatMap(g=>{if(!g||typeof g!="object")return[];const p=g;return typeof p.name!="string"||typeof p.browser_download_url!="string"?[]:[{name:p.name,downloadUrl:p.browser_download_url}]}),m=q6(u,e.platform,e.arch);return!m||!i?null:{version:o,releaseUrl:i,assetName:m.name,downloadUrl:m.downloadUrl}}const H6=3600*1e3,F6="https://api.github.com/repos/openpond/openpond/releases/latest";function K6(e){const[t,n]=b.useState({status:"idle",update:null,lastCheckedAt:null}),o=e.currentVersion?.trim()??"",i=e.platform??"",l=e.arch??"",u=e.enabled&&!!o&&!!LI(i);return b.useEffect(()=>{if(!u){n({status:"idle",update:null,lastCheckedAt:null});return}let m=!1;async function g(){n(S=>({...S,status:S.update?"available":"checking"}));try{const S=await fetch(F6,{headers:{Accept:"application/vnd.github+json"}});if(!S.ok)throw new Error(`GitHub release check failed: ${S.status}`);const x=await S.json(),C=B6({payload:x,currentVersion:o,platform:i,arch:l});if(m)return;n({status:C?"available":"current",update:C,lastCheckedAt:Date.now()})}catch{if(m)return;n(S=>({status:S.update?"available":"error",update:S.update,lastCheckedAt:Date.now()}))}}g();const p=window.setInterval(()=>{g()},H6);return()=>{m=!0,window.clearInterval(p)}},[l,o,u,i]),t}function V6(e){const{beginNewChat:t,arch:n,currentVersion:o,onSidebarResizeStart:i,platform:l,setSectionMenuOpen:u,setSelectedAppId:m,setSelectedProjectId:g,setSelectedSessionId:p,setSidebarOpen:S,setSettingsSection:x,setView:C,view:w}=e,E=K6({currentVersion:o,platform:l,arch:n,enabled:Sm()}),j=E.status==="available"?E.update:null;return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-toolbar",children:[f.jsx("button",{className:"sidebar-icon","data-tooltip":"Hide sidebar","aria-label":"Hide sidebar",onClick:()=>S(!1),children:f.jsx(Kw,{size:16})}),f.jsx(O6,{onOpenHome:()=>t(null)}),j&&f.jsxs("button",{type:"button",className:"sidebar-update-pill",title:`Download OpenPond ${j.version}: ${j.assetName}`,"aria-label":`Download OpenPond ${j.version}`,onClick:()=>{G6(j.downloadUrl)},children:[f.jsx(qw,{size:14}),f.jsx("span",{children:"Update"})]})]}),f.jsx(rM,{beginNewChat:t,setSectionMenuOpen:u,setSelectedAppId:m,setSelectedProjectId:g,setSelectedSessionId:p,setView:C,view:w}),f.jsx(M6,{...e}),f.jsx(D6,{account:e.account,onOpenSettings:()=>{u(null),x("account"),C("settings")}}),f.jsx("div",{className:"sidebar-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",onPointerDown:i})]})}async function G6(e){const t=window.openpond?.browser;t?.openExternal&&(await t.openExternal({conversationId:"openpond-update",url:e})).ok||window.open(e,"_blank","noopener,noreferrer")}function Z6({state:e,onClose:t,onOpenBrowserUrl:n,onStart:o}){if(!e)return null;const i=e.status==="uploading",l=e.status==="ready",u=e.status==="error",m=e.projectKind==="cloud",g=e.preview??null;return f.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:f.jsxs("section",{className:"git-dialog cloud-setup-dialog",role:"dialog","aria-modal":"true","aria-label":"Set up Cloud coding",children:[f.jsx("button",{className:"git-dialog-close",disabled:i,type:"button",onClick:t,"aria-label":"Close Cloud setup",title:"Close",children:f.jsx(rs,{size:14})}),f.jsx("div",{className:"git-dialog-icon",children:l?f.jsx(Lw,{size:18}):f.jsx(Os,{size:18})}),f.jsx("h2",{children:l?"Cloud repo ready":"Set up Cloud coding"}),f.jsx("p",{children:l?"Your source is ready in OpenPond Git. Finish by creating the Cloud sandbox environment.":m?"This Cloud Project is ready for a sandbox environment.":"OpenPond will upload tracked and unignored files into OpenPond Git, then send you to the Cloud sandbox setup page."}),f.jsxs("div",{className:"cloud-setup-summary",children:[f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Project"}),f.jsx("strong",{children:e.projectName})]}),f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Source"}),f.jsx("strong",{children:m?"OpenPond Git":"Local project upload"})]}),f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Branch"}),f.jsx("strong",{children:g?.branch??e.branch??"main"})]}),!m&&f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Cloud project"}),f.jsx("strong",{children:g?.targetProjectId??e.cloudProjectId??"New on upload"})]})]}),!l&&!m&&f.jsx("div",{className:"cloud-setup-upload-preview",role:"status","aria-live":"polite",children:e.previewLoading?f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Calculating upload preview"}),f.jsx("span",{children:"Checking tracked and unignored files before anything is pushed."})]}):e.previewError?f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Preview unavailable"}),f.jsx("span",{children:e.previewError})]}):g?f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:g.initializedEmptyProject?"Will initialize an empty project":`Will upload ${g.fileCount} files`}),f.jsx("span",{children:Q1({byteCount:g.byteCount,skippedCount:g.skippedCount,headCommit:g.headCommit,targetProjectName:g.targetProjectName})})]}):f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Upload preview pending"}),f.jsx("span",{children:"File count, byte count, and skipped files will appear here before upload."})]})}),i&&f.jsxs("div",{className:"cloud-setup-progress",role:"status","aria-live":"polite",children:[f.jsx(CE,{className:"cloud-setup-spinner",size:16}),f.jsx("span",{children:"Uploading source to OpenPond Git..."})]}),l&&e.upload&&f.jsxs("div",{className:"cloud-setup-upload-result",children:[f.jsx("strong",{children:e.upload.initializedEmptyProject?"Initialized empty project":`Uploaded ${e.upload.fileCount} files`}),f.jsx("span",{children:Q1({byteCount:e.upload.byteCount,skippedCount:e.upload.skippedCount,headCommit:e.upload.headCommit,targetProjectName:e.upload.branch})})]}),u&&f.jsx("div",{className:"cloud-setup-error",role:"alert",children:e.error??"Cloud setup failed."}),l&&e.setupUrl&&f.jsxs("div",{className:"cloud-setup-next",children:[e.projectUrl?f.jsxs("span",{children:["Your repo is ready here:"," ",f.jsxs("a",{href:e.projectUrl,target:"_blank",rel:"noreferrer",onClick:p=>Cg(p,e.projectUrl,n,{newTab:!0}),children:["Project page",f.jsx(Hf,{size:13})]})]}):f.jsx("span",{children:"Your repo is ready. Next step:"}),f.jsxs("a",{href:e.setupUrl,target:"_blank",rel:"noreferrer",onClick:p=>Cg(p,e.setupUrl,n),children:["Setup the Cloud sandbox",f.jsx(Hf,{size:13})]})]}),f.jsxs("div",{className:"git-dialog-footer",children:[f.jsx("button",{className:"git-dialog-secondary",disabled:i,type:"button",onClick:t,children:l?"Done":"Cancel"}),l?e.setupUrl?f.jsxs("a",{className:"git-dialog-primary cloud-setup-primary-link",href:e.setupUrl,target:"_blank",rel:"noreferrer",onClick:p=>Cg(p,e.setupUrl,n),children:["Open setup",f.jsx(Hf,{size:13})]}):null:f.jsx("button",{className:"git-dialog-primary",disabled:i,type:"button",onClick:o,children:i?"Uploading":u?"Try again":m?"Show setup link":"Upload source"})]})]})})}function Cg(e,t,n,o={}){!t||!n||(e.preventDefault(),n(t,o))}function W6(e){return!Number.isFinite(e)||e<=0?"0 B":e<1024?`${Math.round(e)} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Q1({byteCount:e,skippedCount:t,headCommit:n,targetProjectName:o}){const i=[W6(e),`${t} skipped`],l=Y6(n);return l&&i.push(`local ${l}`),i.push(o),i.join(" · ")}function Y6(e){const t=e?.trim();return t?t.slice(0,7):null}const J6="modulepreload",X6=function(e,t){return new URL(e,t).href},eC={},Jn=function(t,n,o){let i=Promise.resolve();if(n&&n.length>0){let p=function(S){return Promise.all(S.map(x=>Promise.resolve(x).then(C=>({status:"fulfilled",value:C}),C=>({status:"rejected",reason:C}))))};const u=document.getElementsByTagName("link"),m=document.querySelector("meta[property=csp-nonce]"),g=m?.nonce||m?.getAttribute("nonce");i=p(n.map(S=>{if(S=X6(S,o),S in eC)return;eC[S]=!0;const x=S.endsWith(".css"),C=x?'[rel="stylesheet"]':"";if(o)for(let E=u.length-1;E>=0;E--){const j=u[E];if(j.href===S&&(!x||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${S}"]${C}`))return;const w=document.createElement("link");if(w.rel=x?"stylesheet":J6,x||(w.as="script"),w.crossOrigin="",w.href=S,g&&w.setAttribute("nonce",g),document.head.appendChild(w),x)return new Promise((E,j)=>{w.addEventListener("load",E),w.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${S}`)))})}))}function l(u){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=u,window.dispatchEvent(m),!m.defaultPrevented)throw u}return i.then(u=>{for(const m of u||[])m.status==="rejected"&&l(m.reason);return t().catch(l)})},Q6=b.lazy(()=>Jn(()=>import("./CommandMenu-BsS4Bgb6.js"),__vite__mapDeps([0,1]),import.meta.url).then(e=>({default:e.CommandMenu}))),eB=b.lazy(()=>Jn(()=>import("./SettingsView-C9TgCaWG.js"),__vite__mapDeps([2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url).then(e=>({default:e.SettingsView}))),tB=b.lazy(()=>Jn(()=>import("./NewProjectDialog-DH7wA1z9.js"),[],import.meta.url).then(e=>({default:e.NewProjectDialog}))),nB=b.lazy(()=>Jn(()=>import("./WorkspaceGitDialogs-CVIFrzyl.js"),__vite__mapDeps([14,4,8]),import.meta.url).then(e=>({default:e.CommitDialog}))),aB=b.lazy(()=>Jn(()=>import("./WorkspaceGitDialogs-CVIFrzyl.js"),__vite__mapDeps([14,4,8]),import.meta.url).then(e=>({default:e.BranchDialog})));function oB({payload:e,connection:t,diagnostics:n,initialSection:o,onPayload:i,onError:l,onToast:u,onBack:m,onOpenSourceSession:g,teamChatCurrentUserId:p,teamChatEnabled:S,teamChatNotificationMode:x,teamChatThreads:C,onTeamChatNotificationModeChange:w,onTeamChatThreadMuteChange:E}){return f.jsx(b.Suspense,{fallback:null,children:f.jsx(eB,{payload:e,connection:t,diagnostics:n,initialSection:o,onPayload:i,onError:l,onToast:u,onBack:m,onOpenSourceSession:g,teamChatCurrentUserId:p,teamChatEnabled:S,teamChatNotificationMode:x,teamChatThreads:C,onTeamChatNotificationModeChange:w,onTeamChatThreadMuteChange:E})})}function rB({activeSessions:e,branchDialogName:t,branchDialogOpen:n,commitDialogOpen:o,commitDraft:i,commitIncludeUnstaged:l,commitMessage:u,commitNextStep:m,canPublishOpenPondProject:g,expandProject:p,newProjectBusy:S,newProjectDialogOpen:x,newProjectDirectory:C,newProjectMode:w,newProjectName:E,newProjectPath:j,projectRows:U,query:D,searchOpen:B,visibleWorkspaceDiff:K,visibleWorkspaceState:I,workspaceBusy:O,appDispatch:N,beginNewChat:z,openDefaultsSettingsFromBranchDialog:G,setBranchDialogName:ne,setBranchDialogOpen:ce,setCommitDialogOpen:Y,setCommitDraft:ue,setCommitIncludeUnstaged:Se,setCommitMessage:me,setCommitNextStep:qe,setNewProjectDialogOpen:$,setNewProjectName:be,setNewProjectPath:ie,setQuery:fe,setSearchOpen:te,submitCommitDialog:R,submitCreateWorkspaceBranch:L,submitNewProjectDialog:Q}){return f.jsxs(f.Fragment,{children:[B&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(Q6,{open:B,query:D,projects:U,sessions:e,onQueryChange:fe,onClose:()=>{te(!1),fe("")},onNewChat:()=>{te(!1),fe(""),z()},onOpenProject:Ae=>{N({type:"selectProject",projectId:Ae.id}),N({type:"patch",patch:{searchOpen:!1,query:""}}),p(Ae.id)},onOpenSession:Ae=>{N({type:"selectSession",sessionId:Ae.id,appId:Ae.appId,projectId:Ae.workspaceKind==="local_project"&&Ae.workspaceId?Wt("local",Ae.workspaceId):null}),N({type:"patch",patch:{searchOpen:!1,query:""}})}})}),x&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(tB,{open:x,mode:w,name:E,path:j,directory:C,busy:S,onNameChange:be,onPathChange:ie,onClose:()=>{S||$(!1)},onSubmit:Q})}),o&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(nB,{open:o,branch:I?.currentBranch??null,filesChanged:K?.filesChanged??I?.changedFilesCount??0,additions:K?.additions??0,deletions:K?.deletions??0,message:u,includeUnstaged:l,nextStep:m,draft:i,busy:O,canPush:!!I?.remoteUrl,canPublish:g,onMessageChange:me,onIncludeUnstagedChange:Se,onNextStepChange:qe,onDraftChange:ue,onClose:()=>{O||Y(!1)},onSubmit:R})}),n&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(aB,{open:n,branchName:t,busy:O,onBranchNameChange:ne,onSetPrefix:G,onClose:()=>{O||ce(!1)},onSubmit:L})})]})}function qI({toast:e,onDismiss:t}){if(!e)return null;const n=!!(e.actionLabel&&e.onAction),o=!!(e.persistent||e.dismissible);return f.jsxs("div",{className:`app-toast ${e.tone} ${e.placement??"bottom-right"}`,role:e.tone==="error"?"alert":"status","aria-live":"polite",children:[f.jsx("span",{className:"app-toast-message",children:e.message}),(n||o)&&f.jsxs("div",{className:"app-toast-actions",children:[n&&f.jsx("button",{type:"button",className:e.actionIcon?"app-toast-icon-action":void 0,"aria-label":e.actionLabel,title:e.actionIcon?e.actionLabel:void 0,onClick:()=>{t(),e.onAction?.()},children:e.actionIcon==="settings"?f.jsx(Hb,{size:15}):e.actionLabel}),o&&f.jsx("button",{type:"button",className:"app-toast-close","aria-label":"Dismiss notification",onClick:t,children:f.jsx(rs,{size:14})})]})]})}async function um(e){if(!e)return!1;try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch(t){console.warn("Clipboard write failed",t)}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.left="-1000px",t.style.top="-1000px",document.body.appendChild(t),t.select();const n=document.execCommand("copy");return t.remove(),n}catch(t){return console.warn("Clipboard fallback failed",t),!1}}const iB=b.lazy(()=>Jn(()=>import("./WorkspaceEnvironmentMenu-BAoMBTVD.js"),__vite__mapDeps([15,16,17,11,5,4,6,18]),import.meta.url).then(e=>({default:e.WorkspaceEnvironmentMenu})));function sB({sidebarOpen:e,title:t,conversationId:n,breadcrumbs:o,backAction:i,workspaceName:l,workspaceId:u,busy:m,workspaceState:g,workspaceKind:p,selectedApp:S,selectedProject:x,workspaceDiff:C,managedWorkspace:w,workspaceBusy:E,defaultTeamId:j,showDiffControls:U,diffPanelOpen:D,terminalOpen:B,rightSidebarAvailable:K=!1,rightSidebarOpen:I=!1,onToggleDiffPanel:O,onToggleRightSidebar:N,onOpenSearch:z,onToggleTerminal:G,onOpenInsights:ne,onRunTerminalCommand:ce,onWorkspaceToolAction:Y,onOpenCommitDialog:ue,onWorkspaceBranchChange:Se,onWorkspaceBranchCreate:me,connection:qe,onBootstrap:$,onOpenSandboxWorkspace:be,onShowSidebar:ie,platform:fe,showWorkspaceControls:te=!0,insightsItems:R=[],insightsSummary:L,insightsScanning:Q=!1}){const Ae=C?.filesChanged??0,je=Sm()&&!Fb(fe),Le=te||K||je,de=L?.activeCount??0,He=R.filter($e=>$e.status==="active"),[xe,Ke]=b.useState(null);b.useEffect(()=>{if(!xe)return;const $e=()=>Ke(null);return window.addEventListener("pointerdown",$e),window.addEventListener("blur",$e),window.addEventListener("resize",$e),()=>{window.removeEventListener("pointerdown",$e),window.removeEventListener("blur",$e),window.removeEventListener("resize",$e)}},[xe]);const Ue=$e=>{$e.preventDefault(),$e.stopPropagation();const Me=190,q=n?76:42;Ke({x:Math.min($e.clientX,window.innerWidth-Me-8),y:Math.min($e.clientY,window.innerHeight-q-8)})},ot=$e=>{um($e),Ke(null)};return f.jsxs("header",{className:"app-titlebar",children:[f.jsxs("div",{className:"titlebar-left",children:[!e&&f.jsx("button",{className:"titlebar-icon",title:"Show sidebar",onClick:ie,children:f.jsx(Kw,{size:16})}),i?f.jsx("button",{className:"titlebar-icon",type:"button","aria-label":i.label,title:i.label,onClick:i.onSelect,children:f.jsx(Ub,{size:16})}):null,o?.length?f.jsx("nav",{className:"titlebar-breadcrumbs","aria-label":"Breadcrumb",children:o.map(($e,Me)=>{const q=Me===o.length-1;return f.jsxs("div",{className:"titlebar-breadcrumb-item",children:[$e.onSelect&&!q?f.jsx("button",{type:"button",onClick:$e.onSelect,children:$e.label}):f.jsx("strong",{children:$e.label}),!q&&f.jsx(Bl,{size:14})]},`${$e.label}-${Me}`)})}):f.jsxs("div",{className:"titlebar-title",children:[f.jsx("strong",{className:"titlebar-copy-target",title:"Double-click to select; right-click for copy options",onContextMenu:Ue,children:t}),l&&f.jsx("span",{children:l}),te&&f.jsx("button",{className:"titlebar-icon",title:"More",children:f.jsx(cd,{size:17})})]})]}),Le&&f.jsxs("div",{className:"titlebar-right",children:[te&&f.jsxs("div",{className:"titlebar-actions",children:[f.jsx(b.Suspense,{fallback:null,children:f.jsx(iB,{mode:"topbar",busy:m,workspaceState:g,workspaceId:u,workspaceKind:p,selectedApp:S,selectedProject:x,workspaceBusy:E,defaultTeamId:j,workspaceDiff:C,managedWorkspace:w,showDiffControls:U,diffPanelOpen:D,onToggleDiffPanel:O,onRunTerminalCommand:ce,onWorkspaceToolAction:Y,onOpenCommitDialog:ue,onWorkspaceBranchChange:Se,onWorkspaceBranchCreate:me,connection:qe,onBootstrap:$,onOpenSandboxWorkspace:be})}),f.jsxs("div",{className:`topbar-insights ${Q?"scanning":""}`,children:[f.jsxs("button",{type:"button",className:"topbar-insights-button",title:`${de} active Insights`,"aria-label":`${de} active Insights`,"aria-haspopup":He.length?"menu":void 0,onClick:ne,children:[f.jsx(qb,{size:16}),f.jsx("span",{className:"topbar-insights-count",children:de>99?"99+":de})]}),He.length?f.jsx("div",{className:"topbar-insights-dropdown",role:"menu","aria-label":"Active Insights",children:He.map($e=>f.jsxs("button",{type:"button",className:"topbar-insights-dropdown-row",role:"menuitem",onClick:ne,children:[f.jsx("span",{className:"topbar-insights-dropdown-meta",children:$e.severity}),f.jsxs("span",{className:"topbar-insights-dropdown-copy",children:[f.jsx("strong",{children:$e.title}),f.jsx("span",{children:$e.summary})]})]},$e.id))}):null]}),f.jsx("button",{type:"button",className:"titlebar-icon",title:"Search chats and projects","aria-label":"Search chats and projects",onClick:z,children:f.jsx(Zw,{size:16})}),f.jsx("button",{type:"button",className:`titlebar-icon ${B?"active":""}`,title:`${B?"Hide":"Show"} terminal`,"aria-label":`${B?"Hide":"Show"} terminal`,"aria-pressed":B,onClick:G,children:f.jsx(dd,{size:16})}),U&&f.jsx("button",{type:"button",className:`topbar-diff-button ${I?"active":""}`,title:`${I?"Hide":"Show"} sidebar${Ae?`, ${Ae} changed files`:""}`,"aria-label":`${I?"Hide":"Show"} sidebar`,"aria-pressed":I,onClick:O,children:f.jsx(Jf,{size:16})})]}),K&&N&&!U?f.jsx("div",{className:"titlebar-actions",children:f.jsx("button",{type:"button",className:`topbar-diff-button ${I?"active":""}`,title:`${I?"Hide":"Show"} sidebar`,"aria-label":`${I?"Hide":"Show"} sidebar`,"aria-pressed":I,onClick:N,children:f.jsx(Jf,{size:16})})}):null,f.jsx(oM,{platform:fe})]}),xe&&f.jsxs("div",{className:"titlebar-copy-menu",role:"menu","aria-label":"Conversation title actions",style:{left:xe.x,top:xe.y},onPointerDown:$e=>$e.stopPropagation(),children:[f.jsx("button",{type:"button",role:"menuitem",onClick:()=>ot(t),children:"Copy title"}),n&&f.jsx("button",{type:"button",role:"menuitem",onClick:()=>ot(n),children:"Copy conversation ID"})]})]})}function lB(e,t,n){const o=new Headers;o.set("Accept","text/event-stream"),o.set("Authorization",`Bearer ${e.token}`);const i=new URL(`${e.serverUrl.replace(/\/$/,"")}/v1/events`);return n!==void 0&&Number.isSafeInteger(n)&&n>0&&i.searchParams.set("afterSequence",String(n)),{url:i.toString(),init:{headers:o,signal:t}}}function cB(e){return Math.min(500*2**Math.max(0,e),1e4)}async function uB(e,t,n,o){BI(e);const i=e.body.getReader(),l=new TextDecoder;let u="";for(;!o?.aborted;){const{done:m,value:g}=await i.read();if(m){u+=l.decode();break}u+=l.decode(g,{stream:!0});let p=u.indexOf(`
|
|
143
|
+
...`}function V1({kind:e="local",project:t,pinned:n=!1,selected:o,expanded:i=!1,workspaceState:l,cloudWorkItems:u=[],cloudLinkTrusted:m=!0,cloudLinkWarning:g=null,placeholder:p,terminalIndicator:S,onSelect:x,onNewChat:C,onMoveToCloud:w,onWorkspaceTargetSelect:E,onToggleSystemVisibility:j,onTogglePin:U,onRemove:D,onDragStart:B,onDragEnd:K,onDragOver:I,onDrop:O}){const[N,z]=b.useState(!1),G=b.useRef(null),[ne,ce]=b.useState({}),Y=!!w||!!j||!!D,ue=e==="local"&&m!==!1&&!!t.linkedSandboxProject?.projectId,Se=b.useCallback(()=>{if(typeof window>"u")return;const $=G.current?.getBoundingClientRect();if(!$)return;const be=Math.max(12,window.innerWidth-PI-12),ie=Math.max(12,window.innerHeight-NI),fe=Math.max(12,Math.min($.right+10,be)),te=Math.max(12,Math.min($.top-4,ie)),R={"--sidebar-project-locations-left":`${Math.round(fe)}px`,"--sidebar-project-locations-top":`${Math.round(te)}px`};ce(L=>L["--sidebar-project-locations-left"]===R["--sidebar-project-locations-left"]&&L["--sidebar-project-locations-top"]===R["--sidebar-project-locations-top"]?L:R)},[]),me=b.useCallback(()=>{Se(),x()},[x,Se]);function qe(){z(!1)}return f.jsxs("div",{ref:G,className:["sidebar-project-row-shell",N?"project-menu-open":""].filter(Boolean).join(" "),onFocusCapture:Se,onPointerEnter:Se,children:[f.jsxs(Ov,{selected:o,placeholder:p,className:["sidebar-project-row",N?"project-menu-open":""].filter(Boolean).join(" "),ariaExpanded:i,onSelect:me,onDragStart:B,onDragEnd:K,onDragOver:I,onDrop:O,children:[f.jsx(Zq,{kind:e,agentSdk:!!t.agentSdk?.detected,linkedCloud:ue,open:e==="local"&&i,className:"sidebar-row-icon",baseSize:15}),f.jsxs("span",{className:"row-label-shell",children:[f.jsx("span",{className:"row-label",children:t.name}),f.jsx("span",{className:"sidebar-project-caret","aria-hidden":"true",children:i?f.jsx(Lo,{size:13}):f.jsx(Bl,{size:13})})]}),f.jsxs("div",{className:"row-meta",children:[f.jsx("span",{className:"row-meta-status",children:S?f.jsx(zI,{indicator:S}):null}),f.jsxs("div",{className:"sidebar-row-actions",children:[f.jsx(wc,{label:n?"Unpin project":"Pin project",onClick:U,children:n?f.jsx(Gw,{size:13}):f.jsx(Vw,{size:13})}),Y&&f.jsx(C6,{open:N,onToggleOpen:()=>z($=>!$)}),f.jsx(wc,{label:"New task",onClick:C,children:f.jsx(ud,{size:13})})]})]})]}),f.jsx(u6,{kind:e,project:t,workspaceState:l,cloudWorkItems:u,cloudLinkTrusted:m,cloudLinkWarning:g,onWorkspaceTargetSelect:E,style:ne}),N&&f.jsx(w6,{onClose:qe,onMoveToCloud:w?()=>{qe(),w()}:void 0,onToggleSystemVisibility:j?()=>{qe(),j()}:void 0,systemHidden:!!("hiddenFromDefaultSidebar"in t&&t.hiddenFromDefaultSidebar),onRemove:()=>{qe(),D()}})]})}function G1({workItem:e,selected:t,hideIcon:n=!1,nested:o=!1,onSelect:i}){const l=e.status==="queued"||e.status==="running",u=b.useMemo(OI,[]);return f.jsxs(Ov,{selected:t,iconless:n,nested:o,onSelect:i,children:[n?null:f.jsx("span",{className:"sidebar-row-icon cloud","aria-hidden":"true",children:f.jsx(Os,{size:15})}),f.jsxs("span",{className:"row-label-shell",children:[f.jsx("span",{className:"row-label",children:e.title}),f.jsx("span",{className:"row-label-detail",children:l6(e)})]}),f.jsx("div",{className:"row-meta",children:l?f.jsx("span",{className:"sidebar-running-dot",style:u,"data-tooltip":e.status,"aria-label":e.status}):f.jsx("time",{children:s6(e)})})]})}function zI({indicator:e}){return f.jsx("span",{className:`sidebar-terminal-indicator ${e.status}`,"data-tooltip":e.label,"aria-label":e.label,title:e.label,children:f.jsx(dd,{size:13})})}function s6(e){return e.status==="needs_review"?"Review":e.status==="failed"?"Failed":e.status==="cancelled"?"Cancelled":RI(e.updatedAt)}function l6(e){const t=[c6(e.status)];return e.sourceRef&&t.push(e.sourceRef),e.latestSandboxId&&t.push("sandbox ready"),e.latestTaskRunId&&(e.status==="queued"||e.status==="running")&&t.push("task running"),e.status==="needs_review"&&t.push("patch ready"),e.status==="failed"&&t.push("open logs"),t.join(" / ")}function c6(e){return e==="needs_review"?"review":e.replace(/_/g," ")}function u6({kind:e,project:t,workspaceState:n,cloudWorkItems:o,cloudLinkTrusted:i,cloudLinkWarning:l,onWorkspaceTargetSelect:u,style:m}){const g=m6(e,t,n,o??[],i,l);return f.jsxs("aside",{className:"sidebar-project-locations-popover","aria-label":`${t.name} status`,style:m,children:[f.jsx("div",{className:"sidebar-project-locations-title",children:t.name}),f.jsx("div",{className:"sidebar-project-location-list",children:g.map(p=>{const S=["sidebar-project-location-row",p.tone??"",p.actionTarget?"clickable":""].filter(Boolean).join(" "),x=f.jsxs(f.Fragment,{children:[f.jsx("span",{className:["sidebar-project-location-icon",p.key].filter(Boolean).join(" "),"aria-hidden":"true",children:p.icon}),f.jsx("span",{className:"sidebar-project-location-copy",children:f.jsx(d6,{value:p.value})})]});return p.actionTarget?f.jsx("button",{type:"button",className:S,"data-workspace-target":p.actionTarget,disabled:p.disabled||!u,title:p.disabledReason??void 0,onClick:C=>{C.stopPropagation(),!p.disabled&&u?.(p.actionTarget)},children:x},p.key):f.jsx("div",{className:S,children:x},p.key)})})]})}function d6({value:e}){const t=f6(e);return f.jsxs("span",{className:"sidebar-project-location-value","aria-label":e,children:[t.branch?f.jsxs(f.Fragment,{children:[f.jsx("span",{className:"sidebar-project-location-branch",children:t.branch}),f.jsx("span",{className:"sidebar-project-location-separator","aria-hidden":"true",children:"/"})]}):null,f.jsx("span",{className:"sidebar-project-location-status",children:t.status})]})}function f6(e){const n=e.indexOf(" / ");return n===-1?{branch:null,status:e}:{branch:e.slice(0,n),status:e.slice(n+3)}}function m6(e,t,n,o=[],i=!0,l=null){return e==="cloud"?h6(t,o):p6(t,n,o,i,l)}function p6(e,t,n=[],o=!0,i=null){const l=g6(e,t,o),u=b6(t),m=$I(n),g=y6(e,o),p=o===!1&&i;return[{key:"local",value:l,tone:u?"attention":"local",icon:e.source==="git"?f.jsx(cE,{size:13}):f.jsx(Yf,{size:13}),actionTarget:"local"},{key:"cloud",value:p||(g?S6(e,t,m,o):"not in cloud"),tone:p?"attention":m?.tone??"cloud",icon:f.jsx(Os,{size:13}),actionTarget:g?"cloud":"upload_cloud"}]}function h6(e,t=[]){const n=$I(t);return[{key:"cloud",value:x6(e,n),tone:n?.tone??(e.syncedAt?"cloud":"attention"),icon:f.jsx(Os,{size:13}),actionTarget:"cloud"}]}function g6(e,t,n){const o=v6(e,t);return t?t.error?`${o} / status unavailable`:t.initialized?jI(t,{branch:e.linkedSandboxProject?.defaultBranch??null,linkedCloudSourceKnown:e.linkedSandboxProject?.projectId&&n?!!e.linkedSandboxProject.lastUploadedCommit||!t.headCommit:!0}):`${o} / not checked out`:`${o} / available`}function b6(e){return!!(e?.dirty||(e?.changedFilesCount??0)>0||(e?.untrackedFilesCount??0)>0)}function v6(e,t){return t?.currentBranch??t?.defaultBranch??e.linkedSandboxProject?.defaultBranch??"local"}function y6(e,t=!0){return!!(t&&e.linkedSandboxProject?.projectId||e.linkedOpenPondApp?.appId)}function S6(e,t,n,o){const i=e.linkedSandboxProject?.defaultBranch??t?.defaultBranch??"main";return n?`${i} / ${n.value}`:EI(e,null,t,{cloudLinkTrusted:o})}function x6(e,t){const n=e.defaultBranch??"main",o=t?.value??(e.syncedAt?"setup ready":"needs setup");return`${n} / ${o}`}function $I(e){const t=e.filter(i=>i.status==="queued"||i.status==="running");if(t.length>0){const i=t.filter(m=>m.status==="running").length,l=t.length-i;return{value:i>0?`${i} running${l>0?` / ${l} queued`:""}`:`${l} queued`,tone:"running"}}return e.find(i=>i.status==="needs_review")?{value:"review ready",tone:"attention"}:e.find(i=>i.status==="failed")?{value:"cloud work failed",tone:"attention"}:null}function C6({open:e,onToggleOpen:t}){return f.jsx("button",{type:"button",className:`sidebar-row-action ${e?"active":""}`,"data-tooltip":"More project actions","aria-label":"More project actions","aria-haspopup":"menu","aria-expanded":e,onClick:n=>{n.stopPropagation(),t()},children:f.jsx(cd,{size:13})})}function w6({onClose:e,onMoveToCloud:t,onToggleSystemVisibility:n,systemHidden:o,onRemove:i}){return f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",className:"sidebar-project-menu-backdrop","aria-label":"Close project actions",onClick:l=>{l.stopPropagation(),e()}}),f.jsxs("div",{className:"section-menu-popover sidebar-project-row-popover",role:"menu",children:[t&&f.jsxs("button",{type:"button",role:"menuitem",onClick:l=>{l.stopPropagation(),t()},children:[f.jsx(Gq,{size:13}),f.jsx("span",{children:"Move to Cloud"})]}),n&&f.jsxs("button",{type:"button",role:"menuitem",onClick:l=>{l.stopPropagation(),n()},children:[f.jsx(Bw,{size:13}),f.jsx("span",{children:o?"Show in Local Projects":"Hide from Local Projects"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:l=>{l.stopPropagation(),i()},children:[f.jsx(rs,{size:13}),f.jsx("span",{children:"Remove from Projects"})]})]})]})}function Ov({children:e,className:t,dataSessionId:n,dragging:o,iconless:i=!1,nested:l=!1,placeholder:u=!1,selected:m,ariaExpanded:g,ariaDescribedBy:p,onSelect:S,onDragStart:x,onDragEnd:C,onDragOver:w,onDrop:E,onDoubleClick:j}){const U=!!x;return f.jsx("div",{className:["sidebar-row",t??"",m?"selected":"",o?"dragging":"",i?"iconless":"",l?"nested":"",u?"placeholder":""].filter(Boolean).join(" "),draggable:U,"data-session-id":n,role:"button",tabIndex:0,"aria-expanded":g,"aria-describedby":p,onClick:S,onDoubleClick:j,onKeyDown:D=>{(D.key==="Enter"||D.key===" ")&&(D.preventDefault(),S())},onDragStart:x,onDragEnd:C,onDragEnter:D=>{w&&(D.preventDefault(),D.dataTransfer.dropEffect="move",w(D))},onDragOver:D=>{w&&(D.preventDefault(),D.dataTransfer.dropEffect="move",w(D))},onDrop:D=>{E&&(D.preventDefault(),E(D))},children:e})}function wc({children:e,label:t,onClick:n}){return f.jsx("button",{type:"button",className:"sidebar-row-action","data-tooltip":t,"aria-label":t,onClick:o=>{o.stopPropagation(),n()},children:e})}function _6({currentUserId:e,enabled:t,loading:n,members:o,openTeamDm:i,organization:l,selectedTeamThreadId:u,selectTeamThread:m,threads:g,view:p}){const[S,x]=b.useState(!1),[C,w]=b.useState(!0);if(!t)return null;const E=g.find(B=>B.kind==="general")??null,j=new Map;for(const B of g){if(B.kind!=="dm")continue;const K=B.participants.find(I=>I.userId!==e);K&&j.set(K.userId,B)}const U=l?.effectiveAccessState,D=l?.displayName??"Team";return f.jsx("div",{className:"team-sidebar-section",children:f.jsx(Zu,{label:"Your Team",collapsed:S,onToggleCollapsed:()=>x(B=>!B),children:f.jsxs("div",{className:"team-sidebar-group",children:[f.jsxs("button",{type:"button",className:"team-sidebar-row team-sidebar-group-toggle","aria-label":`${C?"Collapse":"Expand"} ${D}`,"aria-expanded":C,"aria-controls":"team-sidebar-conversations",onClick:()=>w(B=>!B),children:[f.jsx("span",{className:"team-sidebar-avatar fallback",children:DI(D)}),f.jsxs("span",{className:"team-sidebar-group-title",children:[f.jsx("span",{className:"team-sidebar-label",children:D}),f.jsx("span",{className:"team-sidebar-group-chevron","aria-hidden":"true",children:C?f.jsx(Lo,{size:13}):f.jsx(Bl,{size:13})})]})]}),C?f.jsxs("div",{className:"team-sidebar-conversations",id:"team-sidebar-conversations",children:[U&&U!=="active"?f.jsx("div",{className:"team-sidebar-workspace-meta",children:f.jsx("span",{children:I6(U)})}):null,E?f.jsx(Z1,{label:"general",selected:p==="team"&&u===E.id,muted:!!E.mutedAt,unreadCount:E.unreadCount,onSelect:()=>m(E.id)}):null,o.filter(B=>B.userId!==e).map(B=>{const K=j.get(B.userId)??null;return f.jsx(Z1,{member:B,label:B.name,selected:p==="team"&&u===K?.id,muted:!!K?.mutedAt,unreadCount:K?.unreadCount??0,onSelect:()=>i(B.userId)},B.userId)}),!E&&o.length===0?f.jsx("div",{className:"empty-row",children:n?"Loading team...":"Team unavailable"}):null]}):null]})})})}function Z1({label:e,member:t,selected:n,muted:o,unreadCount:i,onSelect:l}){return f.jsxs("button",{type:"button",className:`team-sidebar-row${n?" selected":""}`,onClick:l,children:[t?f.jsx(k6,{member:t}):f.jsx("span",{className:"team-sidebar-channel",children:"#"}),f.jsx("span",{className:"team-sidebar-label",children:e}),f.jsxs("span",{className:"team-sidebar-row-meta",children:[o?f.jsx(Dw,{size:11,"aria-label":"Muted"}):null,i>0?f.jsx("span",{className:"team-sidebar-unread","aria-label":`${i} unread`,children:i>99?"99+":i}):null]})]})}function k6({member:e}){return e.image?f.jsx("img",{className:"team-sidebar-avatar",src:e.image,alt:""}):f.jsx("span",{className:"team-sidebar-avatar fallback",children:DI(e.name)})}function DI(e){return e.split(/\s+/).slice(0,2).map(t=>t[0]?.toUpperCase()??"").join("")||"?"}function I6(e){return e==="checkout_pending"?"Checkout pending":e.charAt(0).toUpperCase()+e.slice(1)}function A6(e){const[t,n]=b.useState(!1),[o,i]=b.useState(()=>new Set(e.selectedCommunityId?[e.selectedCommunityId]:[])),l=e.communities.find(g=>g.id===e.selectedCommunityId)??null,u=e.communities.filter(g=>g.membership?.status==="active"||!!g.featuredAt||g.id===e.selectedCommunityId).sort((g,p)=>+(p.membership?.status==="active")-+(g.membership?.status==="active")||+!!p.featuredAt-+!!g.featuredAt||g.displayName.localeCompare(p.displayName));b.useEffect(()=>{e.selectedCommunityId&&i(g=>g.has(e.selectedCommunityId)?g:new Set([...g,e.selectedCommunityId]))},[e.selectedCommunityId]);function m(g,p,S){if(p&&S){i(x=>{const C=new Set(x);return C.has(g.id)?C.delete(g.id):C.add(g.id),C});return}S&&i(x=>new Set([...x,g.id])),e.onSelectCommunity(g.id)}return f.jsx("div",{className:"community-sidebar-section",children:f.jsxs(Zu,{label:"Communities",collapsed:t,onToggleCollapsed:()=>n(g=>!g),titleAccessory:f.jsx("button",{type:"button",className:`community-sidebar-discover${e.view==="community"&&!l?" selected":""}`,"aria-label":"Discover communities",onClick:e.onDiscover,children:f.jsx(ld,{size:14})}),children:[u.map(g=>{const p=g.id===e.selectedCommunityId,S=g.membership?.status==="active",x=p&&S&&o.has(g.id);return f.jsxs("div",{className:"community-sidebar-group",children:[f.jsxs("button",{type:"button",className:`team-sidebar-row community-sidebar-community${e.view==="community"&&p&&!e.selectedChannelId?" selected":""}`,"aria-label":S?`${x?"Collapse":"Expand"} ${g.displayName}`:void 0,"aria-expanded":S?x:void 0,"aria-controls":p&&S?`community-sidebar-channels-${g.id}`:void 0,onClick:()=>m(g,p,S),children:[g.imageUrl?f.jsx("img",{className:"team-sidebar-avatar",src:g.imageUrl,alt:""}):f.jsx("span",{className:"team-sidebar-avatar community-sidebar-avatar",children:g.displayName.slice(0,2).toUpperCase()}),f.jsxs("span",{className:"team-sidebar-group-title",children:[f.jsx("span",{className:"team-sidebar-label",children:g.displayName}),S?f.jsx("span",{className:"community-sidebar-group-chevron","aria-hidden":"true",children:x?f.jsx(Lo,{size:13}):f.jsx(Bl,{size:13})}):null]}),!S&&g.featuredAt?f.jsx("small",{children:"Featured"}):null]}),x?f.jsx("div",{className:"community-sidebar-channels",id:`community-sidebar-channels-${g.id}`,children:e.channels.map(C=>f.jsxs("button",{type:"button",className:`team-sidebar-row community-sidebar-channel-row${e.view==="community"&&C.id===e.selectedChannelId?" selected":""}`,onClick:()=>e.onSelectChannel(C.id),children:[f.jsx("span",{className:"team-sidebar-channel","aria-hidden":"true",children:"#"}),f.jsx("span",{className:"team-sidebar-label",children:C.displayName}),f.jsxs("span",{className:"team-sidebar-row-meta",children:[C.readState?.mutedAt?f.jsx(Dw,{size:11,"aria-label":"Muted"}):null,C.unreadCount>0?f.jsx("span",{className:"team-sidebar-unread","aria-label":`${C.unreadCount} unread`,children:C.unreadCount>99?"99+":C.unreadCount}):null]})]},C.id))}):null]},g.id)}),u.length===0?f.jsx("div",{className:"empty-row",children:e.loading?"Loading communities…":e.error?"Communities unavailable":"Join or feature a community to pin it here"}):null]})})}const R6={},T6=new Map,j6=new Map;function E6(e){return e.view==="chat"&&!e.selectedSessionId?"select_draft_project":"toggle_project"}function W1(e,t){return Math.min(Math.max(e,Yn)+ub,t)}function Y1(e,t){const n=Math.max(Yn,Math.min(e,t));if(n<=Yn)return Yn;const o=Math.ceil((n-Yn)/ub);return Math.max(Yn,Yn+(o-1)*ub)}function M6({addProjectFolder:e,addSessionToTraining:t,archivedChatsOpen:n,archiveSession:o,beginNewChat:i,chatsCollapsed:l,chatRows:u,cloudProjectRows:m,workspaceStates:g={},cloudWorkItemsByProjectId:p,childSessionRowsByParentId:S={},clearSidebarDrag:x,commitPinnedDrop:C,commitPinnedPreviewDrop:w,dragItem:E,dockSessionRight:j,expandedProjectIds:U,expandProject:D,insightsSystemProjectHidden:B,onToggleChatsCollapsed:K,onTogglePinnedCollapsed:I,onToggleProjectsCollapsed:O,openCloudHome:N,createCloudEnvironment:z,pinnedCollapsed:G,pinnedRows:ne,previewPinnedDrop:ce,localProjectRows:Y,projectsCollapsed:ue,projectsExpanded:Se,projectRows:me,projectSessionRowsByProjectId:qe,moveProjectToCloud:$,removeProject:be,restoreSession:ie,renameSession:fe,runningSessionIds:te,goalRuntimeBySessionId:R=T6,subagentRuntimeBySessionId:L=j6,sectionMenuOpen:Q,selectCloudWorkItem:Ae,selectTeamThread:je,openTeamDm:Le,selectedCloudWorkItemId:de,selectedTeamThreadId:He,teamChatEnabled:xe,teamChatOrganization:Ke,teamChatLoading:Ue=!1,currentUserId:ot,teamMembers:$e=[],teamThreads:Me=[],communityItems:q=[],communityChannels:ae=[],communityLoading:H=!1,communityError:se,selectedCommunityId:we,selectedCommunityChannelId:ze,discoverCommunities:Ye,selectCommunity:Ct,selectCommunityChannel:yt,selectedProjectId:Et,selectedSessionId:gt,sidebarProjectIdBySessionId:Be,startExistingProjectFromPath:it,terminalSummaries:y=R6,setArchivedChatsOpen:Z,setChatRowsVisibleCount:le,setProjectsExpanded:Pe,setSearchOpen:V,setSectionMenuOpen:he,setSelectedAppId:A,setSelectedProjectId:W,setSelectedSessionId:Ce,setView:ye,startPinnedDrag:Te,startCloudProjectFromScratch:De,startProjectFromScratch:Ne,switchProjectWorkspaceTarget:nt,toggleInsightsSystemProjectVisibility:Qe,toggleProjectPinned:Xe,toggleSystemProjectVisibility:at,toggleProjectExpanded:vt,toggleSessionPinned:ct,visibleChatRows:pn,visibleProjectRows:hn,view:Dt}){const[Sn,Xt]=b.useState({}),[Ft,za]=b.useState(()=>new Set),[Nt,vn]=b.useState(()=>new Set),xn=JSON.stringify(Object.entries(S).filter(([oe,pt])=>pt.length>0&&(L.get(oe)?.activeCount??0)>0).flatMap(([oe,pt])=>pt.map(dt=>[oe,dt.id])).sort(([oe,pt],[dt,st])=>oe.localeCompare(dt)||pt.localeCompare(st)));b.useEffect(()=>{const oe=JSON.parse(xn);if(oe.length===0)return;const pt=new Set(oe.map(([dt])=>dt));vn(dt=>[...pt].every(st=>dt.has(st))?dt:new Set([...dt,...pt]))},[xn]);const sa=me??[...Y,...m].filter(oe=>!oe.pinned);function Qn(oe,pt){Xt(dt=>{const st=dt[oe]??Yn,St=W1(st,pt);return St===st?dt:{...dt,[oe]:St}})}function Lt(oe,pt){Xt(dt=>{const st=dt[oe]??Yn,St=Y1(st,pt);if(St===st)return dt;if(St<=Yn){const Tt={...dt};return delete Tt[oe],Tt}return{...dt,[oe]:St}})}function en(oe){za(pt=>{const dt=new Set(pt);return dt.has(oe)?dt.delete(oe):dt.add(oe),dt})}function kt(oe){A(null),W(oe.id),Ce(null),ye("chat"),Et===oe.id&&!gt?vt(oe.id):D(oe.id)}function On(oe){if(E6({selectedSessionId:gt,view:Dt})==="select_draft_project"){kt(oe);return}vt(oe.id)}function _a(oe){A(null),W(oe.id),Ce(null),ye("chat"),D(oe.id)}function la(oe){Ce(oe.id);const pt=Be[oe.id]??null;pt&&D(pt),A(pt?null:oe.appId),W(pt),ye("chat")}function kn(oe){return S[oe.id]??[]}function un(oe,pt){return Nt.has(oe.id)||pt.some(dt=>dt.id===gt)}function ea(oe){vn(pt=>{const dt=new Set(pt);return dt.has(oe)?dt.delete(oe):dt.add(oe),dt})}function Ln(oe){return M1(y[db({kind:"session",id:oe})])}function ba(oe){return M1(y[db({kind:"project",id:oe})])}function ka(oe){if(oe.kind==="cloud")return ca(oe);if(!U.has(oe.id))return null;const pt=qe[oe.id]??[],dt=p[oe.id]??[];if(pt.length===0&&dt.length===0)return null;const st=Math.max(Yn,Sn[oe.id]??Yn),St=pt.slice(0,st),Tt=St.length<pt.length,En=St.length>Yn,bo=dt.some(It=>It.id===de)||Ft.has(oe.id),wt=bo?dt:dt.slice(0,Yn);return f.jsxs("div",{className:"sidebar-project-children",children:[St.map(It=>f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:It,selected:Dt==="chat"&>===It.id,hideIcon:!0,nested:!0,running:te.has(It.id),goalRuntime:R.get(It.id)??null,subagentRuntime:L.get(It.id)??null,terminalIndicator:Ln(It.id),childSessionCount:kn(It).length,childSessionsExpanded:un(It,kn(It)),onToggleChildSessions:()=>ea(It.id),onSelect:()=>la(It),onTogglePin:()=>ct(It),onDockRight:()=>j(It),onAddToTraining:()=>t(It),onArchive:()=>o(It),onRename:fe}),Mt(It,{nested:!0})]},It.id)),pt.length>Yn&&(Tt||En)&&f.jsxs("div",{className:"sidebar-pagination-controls","aria-label":`Showing ${St.length} of ${pt.length} project chats`,children:[Tt?f.jsx(Pl,{onClick:()=>Qn(oe.id,pt.length),children:"Show more"}):null,En?f.jsx(Pl,{onClick:()=>Lt(oe.id,pt.length),children:"Show less"}):null]}),wt.map(It=>f.jsx(G1,{workItem:It,selected:Dt==="cloud"&&de===It.id,hideIcon:!0,nested:!0,onSelect:()=>Ae(It)},It.id)),dt.length>Yn&&f.jsx(Pl,{expanded:bo,onClick:()=>en(oe.id)})]})}function ca(oe){if(!U.has(oe.id))return null;const pt=p[oe.id]??[];if(pt.length===0)return f.jsx("div",{className:"empty-row nested",children:"No tasks"});const st=pt.some(Tt=>Tt.id===de)||Ft.has(oe.id),St=st?pt:pt.slice(0,Yn);return f.jsxs("div",{className:"sidebar-project-children",children:[St.map(Tt=>f.jsx(G1,{workItem:Tt,selected:Dt==="cloud"&&de===Tt.id,hideIcon:!0,nested:!0,onSelect:()=>Ae(Tt)},Tt.id)),pt.length>Yn&&f.jsx(Pl,{expanded:st,onClick:()=>en(oe.id)})]})}const tn=pn.length<u.length,Rt=pn.length>Yn;function Kt(){le(oe=>W1(oe,u.length))}function Ot(){le(oe=>Y1(oe,u.length))}function Mt(oe,pt={}){const dt=kn(oe);if(dt.length===0||!un(oe,dt))return null;const st=["sidebar-child-session-group",pt.nested?"nested":""].filter(Boolean).join(" ");return f.jsx("div",{className:st,children:dt.map(St=>f.jsx(Mu,{session:St,selected:Dt==="chat"&>===St.id,hideIcon:!0,nested:!0,running:te.has(St.id),goalRuntime:R.get(St.id)??null,subagentRuntime:L.get(St.id)??null,terminalIndicator:Ln(St.id),onSelect:()=>la(St),onTogglePin:()=>ct(St),onDockRight:()=>j(St),onAddToTraining:()=>t(St),onArchive:()=>o(St),onRename:fe},St.id))})}return f.jsxs("div",{className:"sidebar-scroll",children:[f.jsx(A6,{communities:q,channels:ae,loading:H,error:se,selectedCommunityId:we,selectedChannelId:ze,view:Dt,onDiscover:Ye,onSelectCommunity:Ct,onSelectChannel:yt}),f.jsx(_6,{currentUserId:ot,enabled:xe,loading:Ue,members:$e,openTeamDm:Le,organization:Ke,selectedTeamThreadId:He,selectTeamThread:je,threads:Me,view:Dt}),f.jsx(Zu,{label:"Pinned",collapsed:G,onToggleCollapsed:I,children:ne.map(oe=>{const pt=E?.type===oe.type&&E.id===oe.id;return oe.type==="project"?f.jsxs("div",{className:"sidebar-project-group",children:[f.jsx(V1,{kind:oe.item.kind,project:oe.item.project,pinned:oe.item.pinned,selected:Dt==="chat"&&Et===oe.id&&!gt,expanded:U.has(oe.id),workspaceState:oe.item.kind==="local"?g[oe.item.project.id]??null:null,cloudWorkItems:p[oe.item.id]??[],cloudLinkTrusted:oe.item.cloudLinkTrusted,cloudLinkWarning:oe.item.cloudLinkWarning,placeholder:pt,terminalIndicator:ba(oe.item.id),onSelect:()=>On(oe.item),onNewChat:()=>_a(oe.item),onMoveToCloud:oe.item.kind==="local"?()=>$(oe.item):void 0,onWorkspaceTargetSelect:dt=>nt(oe.item.id,dt),onTogglePin:()=>Xe(oe.item),onToggleSystemVisibility:oe.item.kind==="local"&&oe.item.project.systemKind?()=>at(oe.item):void 0,onRemove:()=>be(oe.item),onDragStart:dt=>Te(dt,{type:"project",id:oe.id}),onDragEnd:x,onDragOver:dt=>{pt||ce(dt,{type:"project",id:oe.id})},onDrop:dt=>{if(pt){w();return}C(dt,{type:"project",id:oe.id})}}),!pt&&ka(oe.item)]},oe.key):f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:oe.session,selected:Dt==="chat"&>===oe.id,hideIcon:!0,placeholder:pt,running:te.has(oe.session.id),goalRuntime:R.get(oe.session.id)??null,subagentRuntime:L.get(oe.session.id)??null,terminalIndicator:Ln(oe.session.id),childSessionCount:kn(oe.session).length,childSessionsExpanded:un(oe.session,kn(oe.session)),onToggleChildSessions:()=>ea(oe.session.id),onSelect:()=>la(oe.session),onTogglePin:()=>ct(oe.session),onDockRight:()=>j(oe.session),onAddToTraining:()=>t(oe.session),onArchive:()=>o(oe.session),onRename:fe,onDragStart:dt=>Te(dt,{type:"session",id:oe.id}),onDragEnd:x,onDragOver:dt=>{pt||ce(dt,{type:"session",id:oe.id})},onDrop:dt=>{if(pt){w();return}C(dt,{type:"session",id:oe.id})}}),!pt&&Mt(oe.session)]},oe.key)})}),f.jsxs(Zu,{label:"Projects",collapsed:ue,onToggleCollapsed:O,actions:f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:"section-menu",children:[f.jsx("button",{type:"button",className:`section-icon ${Q==="projects"?"active":""}`,"data-tooltip":"Add project","aria-label":"Add project","aria-haspopup":"menu","aria-expanded":Q==="projects",onClick:()=>he(oe=>oe==="projects"?null:"projects"),children:f.jsx(gl,{size:14})}),Q==="projects"&&f.jsxs("div",{className:"section-menu-popover",role:"menu",children:[f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),Ne()},children:[f.jsx(fE,{size:13}),f.jsx("span",{children:"New Local Project"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),e()},children:[f.jsx(Wu,{size:13}),f.jsx("span",{children:"Use existing folder"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),it()},children:[f.jsx(Wu,{size:13}),f.jsx("span",{children:"Use existing folder path"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),De()},children:[f.jsx(Os,{size:13}),f.jsx("span",{children:"New Cloud Project"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),N()},children:[f.jsx(Os,{size:13}),f.jsx("span",{children:"New Cloud task"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{he(null),z()},children:[f.jsx(Hb,{size:13}),f.jsx("span",{children:"Create environment"})]})]})]}),f.jsxs("div",{className:"section-menu",children:[f.jsx("button",{type:"button",className:`section-icon ${Q==="projects-options"?"active":""}`,"data-tooltip":"Projects options","aria-label":"Projects options","aria-haspopup":"menu","aria-expanded":Q==="projects-options",onClick:()=>he(oe=>oe==="projects-options"?null:"projects-options"),children:f.jsx(cd,{size:14})}),Q==="projects-options"&&f.jsx("div",{className:"section-menu-popover",role:"menu",children:f.jsxs("button",{type:"button",role:"menuitem",disabled:B===null,onClick:()=>{he(null),Qe()},children:[B===!1?f.jsx(Bw,{size:13}):f.jsx(oE,{size:13}),f.jsx("span",{children:B===!1?"Hide Insights folder":"Show Insights folder"})]})})]})]}),children:[hn.map(oe=>f.jsxs("div",{className:"sidebar-project-group",children:[f.jsx(V1,{kind:oe.kind,project:oe.project,pinned:oe.pinned,selected:Dt==="chat"&&Et===oe.id&&!gt,expanded:U.has(oe.id),workspaceState:oe.kind==="local"?g[oe.project.id]??null:null,cloudWorkItems:p[oe.id]??[],cloudLinkTrusted:oe.cloudLinkTrusted,cloudLinkWarning:oe.cloudLinkWarning,terminalIndicator:ba(oe.id),onSelect:()=>On(oe),onNewChat:()=>_a(oe),onMoveToCloud:oe.kind==="local"?()=>$(oe):void 0,onWorkspaceTargetSelect:pt=>nt(oe.id,pt),onTogglePin:()=>Xe(oe),onToggleSystemVisibility:oe.kind==="local"&&oe.project.systemKind?()=>at(oe):void 0,onRemove:()=>be(oe)}),ka(oe)]},oe.id)),hn.length===0&&Y.length===0&&m.length===0&&f.jsx("div",{className:"empty-row",children:"No projects"}),sa.length>Yn&&f.jsx(Pl,{expanded:Se,onClick:()=>Pe(oe=>!oe)})]}),f.jsxs(Zu,{label:"Chats",collapsed:l,onToggleCollapsed:K,actions:f.jsxs(f.Fragment,{children:[f.jsx(n6,{id:"chats",open:Q==="chats",archivedOpen:n,archivedLabel:"archived chats",onToggleOpen:()=>he(oe=>oe==="chats"?null:"chats"),onToggleArchived:()=>{Z(oe=>!oe),he(null)}}),f.jsx("button",{className:"section-icon","data-tooltip":"Filter chats","aria-label":"Filter chats",onClick:()=>{he(null),V(!0)},children:f.jsx(Hw,{size:14})}),f.jsx("button",{className:"section-icon","data-tooltip":"New task","aria-label":"New task",onClick:()=>i(null),children:f.jsx(ud,{size:14})})]}),children:[pn.map(oe=>oe.archived?f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:oe,selected:!1,archived:!0,hideIcon:!0,running:te.has(oe.id),goalRuntime:R.get(oe.id)??null,subagentRuntime:L.get(oe.id)??null,terminalIndicator:Ln(oe.id),childSessionCount:kn(oe).length,childSessionsExpanded:un(oe,kn(oe)),onToggleChildSessions:()=>ea(oe.id),onSelect:()=>{ie(oe),la(oe)},onTogglePin:()=>ct(oe),onDockRight:()=>j(oe),onAddToTraining:()=>t(oe),onArchive:()=>ie(oe),onRename:fe}),Mt(oe)]},oe.id):f.jsxs("div",{className:"sidebar-session-group",children:[f.jsx(Mu,{session:oe,selected:Dt==="chat"&>===oe.id,hideIcon:!0,running:te.has(oe.id),goalRuntime:R.get(oe.id)??null,subagentRuntime:L.get(oe.id)??null,terminalIndicator:Ln(oe.id),childSessionCount:kn(oe).length,childSessionsExpanded:un(oe,kn(oe)),onToggleChildSessions:()=>ea(oe.id),onSelect:()=>la(oe),onTogglePin:()=>ct(oe),onDockRight:()=>j(oe),onAddToTraining:()=>t(oe),onArchive:()=>o(oe),onRename:fe}),Mt(oe)]},oe.id)),u.length===0&&f.jsx("div",{className:"empty-row",children:"No chats"}),u.length>Yn&&(tn||Rt)&&f.jsxs("div",{className:"sidebar-pagination-controls","aria-label":`Showing ${pn.length} of ${u.length} chats`,children:[tn?f.jsx(Pl,{onClick:Kt,children:"Show more"}):null,Rt?f.jsx(Pl,{onClick:Ot,children:"Show less"}):null]})]})]})}const P6="./";function Di(e){return`${P6}${e.replace(/^\.?\//,"")}`}const UI=Di("openpond-icon.png"),N6=Di("openpond-wordlogo-white.png"),J1={github:Di("connected-apps/github.svg"),google:Di("connected-apps/google.svg"),microsoft_teams:Di("connected-apps/microsoft.svg"),mcp:Di("connected-apps/openpond-mcp.svg"),slack:Di("connected-apps/slack.svg"),x:Di("connected-apps/x.svg")};function zv(e){return J1[e]??J1.mcp}const yY={ETH:Di("tokens/eth.svg"),USDC:Di("tokens/usdc.svg")};function O6({onOpenHome:e}){return f.jsx("button",{type:"button",className:"sidebar-wordmark-button","aria-label":"OpenPond home",onClick:e,children:f.jsx("img",{className:"sidebar-wordmark",src:N6,alt:""})})}function z6(...e){for(const t of e){const n=t?.trim();if(n)return n}return null}function $6(e){const t=e?.accounts.find(u=>u.isActive)??null,n=e?.profile??null,o=e?.activeProfile?.handle??null;return{label:(e?.state==="signed_in"?z6(e?.label,n?.handle,n?.name,n?.email,t?.displayLabel,t?.handle,o,e?.email,"Signed in"):e?.state==="loading"||e?.state==="switching"?"Loading account":"Sign in")??"Account",image:e?.avatarUrl??n?.image??t?.avatarUrl??null}}function D6({account:e,onOpenSettings:t}){const[n,o]=b.useState(!1),i=b.useRef(null),l=b.useMemo(()=>$6(e),[e]),u=l.label.trim().slice(0,1).toUpperCase();return b.useEffect(()=>{if(!n)return;function m(p){i.current?.contains(p.target)||o(!1)}function g(p){p.key==="Escape"&&o(!1)}return document.addEventListener("pointerdown",m),document.addEventListener("keydown",g),()=>{document.removeEventListener("pointerdown",m),document.removeEventListener("keydown",g)}},[n]),f.jsxs("div",{className:"user-auth-footer",ref:i,children:[f.jsxs("button",{type:"button",className:`user-auth-trigger ${n?"active":""}`,"aria-haspopup":"menu","aria-expanded":n,"aria-label":`${l.label} account menu`,onClick:()=>o(m=>!m),children:[f.jsx("span",{className:"user-auth-avatar","aria-hidden":"true",children:l.image?f.jsx("img",{src:l.image,alt:""}):u?f.jsx("span",{children:u}):f.jsx(QE,{size:16})}),f.jsx("span",{className:"user-auth-name",children:l.label})]}),n?f.jsx("div",{className:"user-auth-menu",role:"menu","aria-label":"Account",children:f.jsxs("a",{href:"/settings",className:"user-auth-menu-link",role:"menuitem",onClick:m=>{m.preventDefault(),o(!1),t()},children:[f.jsx(Hb,{size:15}),f.jsx("span",{children:"Settings"})]})}):null]})}function X1(e){const t=/^v?(\d+)\.(\d+)\.(\d+)(?:[-+].*)?$/.exec(e?.trim()??"");return t?[Number.parseInt(t[1],10),Number.parseInt(t[2],10),Number.parseInt(t[3],10)]:null}function U6(e,t){const n=X1(e),o=X1(t);if(!n||!o)return!1;for(let i=0;i<o.length;i+=1){if(o[i]>n[i])return!0;if(o[i]<n[i])return!1}return!1}function LI(e){const t=e?.toLowerCase()??"";return t==="darwin"||t.includes("mac")?"mac":t==="linux"||t.includes("linux")?"linux":null}function L6(e){const t=e?.toLowerCase()??"";return t==="arm64"||t==="aarch64"?"arm64":t==="x64"||t==="x86_64"||t==="amd64"?"x64":null}function q6(e,t,n){const o=LI(t),i=L6(n);if(o==="mac"){const l=e.filter(u=>/-mac-.*\.zip$/i.test(u.name));return i==="arm64"?l.find(u=>/-mac-arm64\.zip$/i.test(u.name))??null:i==="x64"?l.find(u=>/-mac-x64\.zip$/i.test(u.name))??l.find(u=>/-mac-universal\.zip$/i.test(u.name))??null:l.find(u=>/-mac-universal\.zip$/i.test(u.name))??l.find(u=>/-mac-arm64\.zip$/i.test(u.name))??l[0]??null}if(o==="linux"){const l=e.filter(u=>/\.AppImage$/i.test(u.name));return i==="arm64"?l.find(u=>/(?:arm64|aarch64).*\.AppImage$/i.test(u.name))??null:i==="x64"?l.find(u=>/(?:x86_64|x64|amd64).*\.AppImage$/i.test(u.name))??l[0]??null:l[0]??null}return null}function B6(e){if(!e.payload||typeof e.payload!="object")return null;const t=e.payload,o=(typeof t.tag_name=="string"?t.tag_name.trim():"").replace(/^v/,"");if(!U6(e.currentVersion,o))return null;const i=typeof t.html_url=="string"?t.html_url:"",u=(Array.isArray(t.assets)?t.assets:[]).flatMap(g=>{if(!g||typeof g!="object")return[];const p=g;return typeof p.name!="string"||typeof p.browser_download_url!="string"?[]:[{name:p.name,downloadUrl:p.browser_download_url}]}),m=q6(u,e.platform,e.arch);return!m||!i?null:{version:o,releaseUrl:i,assetName:m.name,downloadUrl:m.downloadUrl}}const H6=3600*1e3,F6="https://api.github.com/repos/openpond/openpond/releases/latest";function K6(e){const[t,n]=b.useState({status:"idle",update:null,lastCheckedAt:null}),o=e.currentVersion?.trim()??"",i=e.platform??"",l=e.arch??"",u=e.enabled&&!!o&&!!LI(i);return b.useEffect(()=>{if(!u){n({status:"idle",update:null,lastCheckedAt:null});return}let m=!1;async function g(){n(S=>({...S,status:S.update?"available":"checking"}));try{const S=await fetch(F6,{headers:{Accept:"application/vnd.github+json"}});if(!S.ok)throw new Error(`GitHub release check failed: ${S.status}`);const x=await S.json(),C=B6({payload:x,currentVersion:o,platform:i,arch:l});if(m)return;n({status:C?"available":"current",update:C,lastCheckedAt:Date.now()})}catch{if(m)return;n(S=>({status:S.update?"available":"error",update:S.update,lastCheckedAt:Date.now()}))}}g();const p=window.setInterval(()=>{g()},H6);return()=>{m=!0,window.clearInterval(p)}},[l,o,u,i]),t}function V6(e){const{beginNewChat:t,arch:n,currentVersion:o,onSidebarResizeStart:i,platform:l,setSectionMenuOpen:u,setSelectedAppId:m,setSelectedProjectId:g,setSelectedSessionId:p,setSidebarOpen:S,setSettingsSection:x,setView:C,view:w}=e,E=K6({currentVersion:o,platform:l,arch:n,enabled:Sm()}),j=E.status==="available"?E.update:null;return f.jsxs("aside",{className:"sidebar",children:[f.jsxs("div",{className:"sidebar-toolbar",children:[f.jsx("button",{className:"sidebar-icon","data-tooltip":"Hide sidebar","aria-label":"Hide sidebar",onClick:()=>S(!1),children:f.jsx(Kw,{size:16})}),f.jsx(O6,{onOpenHome:()=>t(null)}),j&&f.jsxs("button",{type:"button",className:"sidebar-update-pill",title:`Download OpenPond ${j.version}: ${j.assetName}`,"aria-label":`Download OpenPond ${j.version}`,onClick:()=>{G6(j.downloadUrl)},children:[f.jsx(qw,{size:14}),f.jsx("span",{children:"Update"})]})]}),f.jsx(rM,{beginNewChat:t,setSectionMenuOpen:u,setSelectedAppId:m,setSelectedProjectId:g,setSelectedSessionId:p,setView:C,view:w}),f.jsx(M6,{...e}),f.jsx(D6,{account:e.account,onOpenSettings:()=>{u(null),x("account"),C("settings")}}),f.jsx("div",{className:"sidebar-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize sidebar",onPointerDown:i})]})}async function G6(e){const t=window.openpond?.browser;t?.openExternal&&(await t.openExternal({conversationId:"openpond-update",url:e})).ok||window.open(e,"_blank","noopener,noreferrer")}function Z6({state:e,onClose:t,onOpenBrowserUrl:n,onStart:o}){if(!e)return null;const i=e.status==="uploading",l=e.status==="ready",u=e.status==="error",m=e.projectKind==="cloud",g=e.preview??null;return f.jsx("div",{className:"git-dialog-backdrop",role:"presentation",children:f.jsxs("section",{className:"git-dialog cloud-setup-dialog",role:"dialog","aria-modal":"true","aria-label":"Set up Cloud coding",children:[f.jsx("button",{className:"git-dialog-close",disabled:i,type:"button",onClick:t,"aria-label":"Close Cloud setup",title:"Close",children:f.jsx(rs,{size:14})}),f.jsx("div",{className:"git-dialog-icon",children:l?f.jsx(Lw,{size:18}):f.jsx(Os,{size:18})}),f.jsx("h2",{children:l?"Cloud repo ready":"Set up Cloud coding"}),f.jsx("p",{children:l?"Your source is ready in OpenPond Git. Finish by creating the Cloud sandbox environment.":m?"This Cloud Project is ready for a sandbox environment.":"OpenPond will upload tracked and unignored files into OpenPond Git, then send you to the Cloud sandbox setup page."}),f.jsxs("div",{className:"cloud-setup-summary",children:[f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Project"}),f.jsx("strong",{children:e.projectName})]}),f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Source"}),f.jsx("strong",{children:m?"OpenPond Git":"Local project upload"})]}),f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Branch"}),f.jsx("strong",{children:g?.branch??e.branch??"main"})]}),!m&&f.jsxs("div",{className:"git-dialog-row",children:[f.jsx("span",{children:"Cloud project"}),f.jsx("strong",{children:g?.targetProjectId??e.cloudProjectId??"New on upload"})]})]}),!l&&!m&&f.jsx("div",{className:"cloud-setup-upload-preview",role:"status","aria-live":"polite",children:e.previewLoading?f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Calculating upload preview"}),f.jsx("span",{children:"Checking tracked and unignored files before anything is pushed."})]}):e.previewError?f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Preview unavailable"}),f.jsx("span",{children:e.previewError})]}):g?f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:g.initializedEmptyProject?"Will initialize an empty project":`Will upload ${g.fileCount} files`}),f.jsx("span",{children:Q1({byteCount:g.byteCount,skippedCount:g.skippedCount,headCommit:g.headCommit,targetProjectName:g.targetProjectName})})]}):f.jsxs(f.Fragment,{children:[f.jsx("strong",{children:"Upload preview pending"}),f.jsx("span",{children:"File count, byte count, and skipped files will appear here before upload."})]})}),i&&f.jsxs("div",{className:"cloud-setup-progress",role:"status","aria-live":"polite",children:[f.jsx(CE,{className:"cloud-setup-spinner",size:16}),f.jsx("span",{children:"Uploading source to OpenPond Git..."})]}),l&&e.upload&&f.jsxs("div",{className:"cloud-setup-upload-result",children:[f.jsx("strong",{children:e.upload.initializedEmptyProject?"Initialized empty project":`Uploaded ${e.upload.fileCount} files`}),f.jsx("span",{children:Q1({byteCount:e.upload.byteCount,skippedCount:e.upload.skippedCount,headCommit:e.upload.headCommit,targetProjectName:e.upload.branch})})]}),u&&f.jsx("div",{className:"cloud-setup-error",role:"alert",children:e.error??"Cloud setup failed."}),l&&e.setupUrl&&f.jsxs("div",{className:"cloud-setup-next",children:[e.projectUrl?f.jsxs("span",{children:["Your repo is ready here:"," ",f.jsxs("a",{href:e.projectUrl,target:"_blank",rel:"noreferrer",onClick:p=>Cg(p,e.projectUrl,n,{newTab:!0}),children:["Project page",f.jsx(Hf,{size:13})]})]}):f.jsx("span",{children:"Your repo is ready. Next step:"}),f.jsxs("a",{href:e.setupUrl,target:"_blank",rel:"noreferrer",onClick:p=>Cg(p,e.setupUrl,n),children:["Setup the Cloud sandbox",f.jsx(Hf,{size:13})]})]}),f.jsxs("div",{className:"git-dialog-footer",children:[f.jsx("button",{className:"git-dialog-secondary",disabled:i,type:"button",onClick:t,children:l?"Done":"Cancel"}),l?e.setupUrl?f.jsxs("a",{className:"git-dialog-primary cloud-setup-primary-link",href:e.setupUrl,target:"_blank",rel:"noreferrer",onClick:p=>Cg(p,e.setupUrl,n),children:["Open setup",f.jsx(Hf,{size:13})]}):null:f.jsx("button",{className:"git-dialog-primary",disabled:i,type:"button",onClick:o,children:i?"Uploading":u?"Try again":m?"Show setup link":"Upload source"})]})]})})}function Cg(e,t,n,o={}){!t||!n||(e.preventDefault(),n(t,o))}function W6(e){return!Number.isFinite(e)||e<=0?"0 B":e<1024?`${Math.round(e)} B`:e<1024*1024?`${Math.round(e/1024)} KB`:`${(e/1024/1024).toFixed(1)} MB`}function Q1({byteCount:e,skippedCount:t,headCommit:n,targetProjectName:o}){const i=[W6(e),`${t} skipped`],l=Y6(n);return l&&i.push(`local ${l}`),i.push(o),i.join(" · ")}function Y6(e){const t=e?.trim();return t?t.slice(0,7):null}const J6="modulepreload",X6=function(e,t){return new URL(e,t).href},eC={},Jn=function(t,n,o){let i=Promise.resolve();if(n&&n.length>0){let p=function(S){return Promise.all(S.map(x=>Promise.resolve(x).then(C=>({status:"fulfilled",value:C}),C=>({status:"rejected",reason:C}))))};const u=document.getElementsByTagName("link"),m=document.querySelector("meta[property=csp-nonce]"),g=m?.nonce||m?.getAttribute("nonce");i=p(n.map(S=>{if(S=X6(S,o),S in eC)return;eC[S]=!0;const x=S.endsWith(".css"),C=x?'[rel="stylesheet"]':"";if(o)for(let E=u.length-1;E>=0;E--){const j=u[E];if(j.href===S&&(!x||j.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${S}"]${C}`))return;const w=document.createElement("link");if(w.rel=x?"stylesheet":J6,x||(w.as="script"),w.crossOrigin="",w.href=S,g&&w.setAttribute("nonce",g),document.head.appendChild(w),x)return new Promise((E,j)=>{w.addEventListener("load",E),w.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${S}`)))})}))}function l(u){const m=new Event("vite:preloadError",{cancelable:!0});if(m.payload=u,window.dispatchEvent(m),!m.defaultPrevented)throw u}return i.then(u=>{for(const m of u||[])m.status==="rejected"&&l(m.reason);return t().catch(l)})},Q6=b.lazy(()=>Jn(()=>import("./CommandMenu-CMAoQrQr.js"),__vite__mapDeps([0,1]),import.meta.url).then(e=>({default:e.CommandMenu}))),eB=b.lazy(()=>Jn(()=>import("./SettingsView-Bj4gTHxu.js"),__vite__mapDeps([2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url).then(e=>({default:e.SettingsView}))),tB=b.lazy(()=>Jn(()=>import("./NewProjectDialog-DgHx0SU8.js"),[],import.meta.url).then(e=>({default:e.NewProjectDialog}))),nB=b.lazy(()=>Jn(()=>import("./WorkspaceGitDialogs-DW1YzZSC.js"),__vite__mapDeps([14,4,8]),import.meta.url).then(e=>({default:e.CommitDialog}))),aB=b.lazy(()=>Jn(()=>import("./WorkspaceGitDialogs-DW1YzZSC.js"),__vite__mapDeps([14,4,8]),import.meta.url).then(e=>({default:e.BranchDialog})));function oB({payload:e,connection:t,diagnostics:n,initialSection:o,onPayload:i,onError:l,onToast:u,onBack:m,onOpenSourceSession:g,teamChatCurrentUserId:p,teamChatEnabled:S,teamChatNotificationMode:x,teamChatThreads:C,onTeamChatNotificationModeChange:w,onTeamChatThreadMuteChange:E}){return f.jsx(b.Suspense,{fallback:null,children:f.jsx(eB,{payload:e,connection:t,diagnostics:n,initialSection:o,onPayload:i,onError:l,onToast:u,onBack:m,onOpenSourceSession:g,teamChatCurrentUserId:p,teamChatEnabled:S,teamChatNotificationMode:x,teamChatThreads:C,onTeamChatNotificationModeChange:w,onTeamChatThreadMuteChange:E})})}function rB({activeSessions:e,branchDialogName:t,branchDialogOpen:n,commitDialogOpen:o,commitDraft:i,commitIncludeUnstaged:l,commitMessage:u,commitNextStep:m,canPublishOpenPondProject:g,expandProject:p,newProjectBusy:S,newProjectDialogOpen:x,newProjectDirectory:C,newProjectMode:w,newProjectName:E,newProjectPath:j,projectRows:U,query:D,searchOpen:B,visibleWorkspaceDiff:K,visibleWorkspaceState:I,workspaceBusy:O,appDispatch:N,beginNewChat:z,openDefaultsSettingsFromBranchDialog:G,setBranchDialogName:ne,setBranchDialogOpen:ce,setCommitDialogOpen:Y,setCommitDraft:ue,setCommitIncludeUnstaged:Se,setCommitMessage:me,setCommitNextStep:qe,setNewProjectDialogOpen:$,setNewProjectName:be,setNewProjectPath:ie,setQuery:fe,setSearchOpen:te,submitCommitDialog:R,submitCreateWorkspaceBranch:L,submitNewProjectDialog:Q}){return f.jsxs(f.Fragment,{children:[B&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(Q6,{open:B,query:D,projects:U,sessions:e,onQueryChange:fe,onClose:()=>{te(!1),fe("")},onNewChat:()=>{te(!1),fe(""),z()},onOpenProject:Ae=>{N({type:"selectProject",projectId:Ae.id}),N({type:"patch",patch:{searchOpen:!1,query:""}}),p(Ae.id)},onOpenSession:Ae=>{N({type:"selectSession",sessionId:Ae.id,appId:Ae.appId,projectId:Ae.workspaceKind==="local_project"&&Ae.workspaceId?Wt("local",Ae.workspaceId):null}),N({type:"patch",patch:{searchOpen:!1,query:""}})}})}),x&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(tB,{open:x,mode:w,name:E,path:j,directory:C,busy:S,onNameChange:be,onPathChange:ie,onClose:()=>{S||$(!1)},onSubmit:Q})}),o&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(nB,{open:o,branch:I?.currentBranch??null,filesChanged:K?.filesChanged??I?.changedFilesCount??0,additions:K?.additions??0,deletions:K?.deletions??0,message:u,includeUnstaged:l,nextStep:m,draft:i,busy:O,canPush:!!I?.remoteUrl,canPublish:g,onMessageChange:me,onIncludeUnstagedChange:Se,onNextStepChange:qe,onDraftChange:ue,onClose:()=>{O||Y(!1)},onSubmit:R})}),n&&f.jsx(b.Suspense,{fallback:null,children:f.jsx(aB,{open:n,branchName:t,busy:O,onBranchNameChange:ne,onSetPrefix:G,onClose:()=>{O||ce(!1)},onSubmit:L})})]})}function qI({toast:e,onDismiss:t}){if(!e)return null;const n=!!(e.actionLabel&&e.onAction),o=!!(e.persistent||e.dismissible);return f.jsxs("div",{className:`app-toast ${e.tone} ${e.placement??"bottom-right"}`,role:e.tone==="error"?"alert":"status","aria-live":"polite",children:[f.jsx("span",{className:"app-toast-message",children:e.message}),(n||o)&&f.jsxs("div",{className:"app-toast-actions",children:[n&&f.jsx("button",{type:"button",className:e.actionIcon?"app-toast-icon-action":void 0,"aria-label":e.actionLabel,title:e.actionIcon?e.actionLabel:void 0,onClick:()=>{t(),e.onAction?.()},children:e.actionIcon==="settings"?f.jsx(Hb,{size:15}):e.actionLabel}),o&&f.jsx("button",{type:"button",className:"app-toast-close","aria-label":"Dismiss notification",onClick:t,children:f.jsx(rs,{size:14})})]})]})}async function um(e){if(!e)return!1;try{if(navigator.clipboard?.writeText)return await navigator.clipboard.writeText(e),!0}catch(t){console.warn("Clipboard write failed",t)}try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.left="-1000px",t.style.top="-1000px",document.body.appendChild(t),t.select();const n=document.execCommand("copy");return t.remove(),n}catch(t){return console.warn("Clipboard fallback failed",t),!1}}const iB=b.lazy(()=>Jn(()=>import("./WorkspaceEnvironmentMenu-DYsTZ1yS.js"),__vite__mapDeps([15,16,17,11,5,4,6,18]),import.meta.url).then(e=>({default:e.WorkspaceEnvironmentMenu})));function sB({sidebarOpen:e,title:t,conversationId:n,breadcrumbs:o,backAction:i,workspaceName:l,workspaceId:u,busy:m,workspaceState:g,workspaceKind:p,selectedApp:S,selectedProject:x,workspaceDiff:C,managedWorkspace:w,workspaceBusy:E,defaultTeamId:j,showDiffControls:U,diffPanelOpen:D,terminalOpen:B,rightSidebarAvailable:K=!1,rightSidebarOpen:I=!1,onToggleDiffPanel:O,onToggleRightSidebar:N,onOpenSearch:z,onToggleTerminal:G,onOpenInsights:ne,onRunTerminalCommand:ce,onWorkspaceToolAction:Y,onOpenCommitDialog:ue,onWorkspaceBranchChange:Se,onWorkspaceBranchCreate:me,connection:qe,onBootstrap:$,onOpenSandboxWorkspace:be,onShowSidebar:ie,platform:fe,showWorkspaceControls:te=!0,insightsItems:R=[],insightsSummary:L,insightsScanning:Q=!1}){const Ae=C?.filesChanged??0,je=Sm()&&!Fb(fe),Le=te||K||je,de=L?.activeCount??0,He=R.filter($e=>$e.status==="active"),[xe,Ke]=b.useState(null);b.useEffect(()=>{if(!xe)return;const $e=()=>Ke(null);return window.addEventListener("pointerdown",$e),window.addEventListener("blur",$e),window.addEventListener("resize",$e),()=>{window.removeEventListener("pointerdown",$e),window.removeEventListener("blur",$e),window.removeEventListener("resize",$e)}},[xe]);const Ue=$e=>{$e.preventDefault(),$e.stopPropagation();const Me=190,q=n?76:42;Ke({x:Math.min($e.clientX,window.innerWidth-Me-8),y:Math.min($e.clientY,window.innerHeight-q-8)})},ot=$e=>{um($e),Ke(null)};return f.jsxs("header",{className:"app-titlebar",children:[f.jsxs("div",{className:"titlebar-left",children:[!e&&f.jsx("button",{className:"titlebar-icon",title:"Show sidebar",onClick:ie,children:f.jsx(Kw,{size:16})}),i?f.jsx("button",{className:"titlebar-icon",type:"button","aria-label":i.label,title:i.label,onClick:i.onSelect,children:f.jsx(Ub,{size:16})}):null,o?.length?f.jsx("nav",{className:"titlebar-breadcrumbs","aria-label":"Breadcrumb",children:o.map(($e,Me)=>{const q=Me===o.length-1;return f.jsxs("div",{className:"titlebar-breadcrumb-item",children:[$e.onSelect&&!q?f.jsx("button",{type:"button",onClick:$e.onSelect,children:$e.label}):f.jsx("strong",{children:$e.label}),!q&&f.jsx(Bl,{size:14})]},`${$e.label}-${Me}`)})}):f.jsxs("div",{className:"titlebar-title",children:[f.jsx("strong",{className:"titlebar-copy-target",title:"Double-click to select; right-click for copy options",onContextMenu:Ue,children:t}),l&&f.jsx("span",{children:l}),te&&f.jsx("button",{className:"titlebar-icon",title:"More",children:f.jsx(cd,{size:17})})]})]}),Le&&f.jsxs("div",{className:"titlebar-right",children:[te&&f.jsxs("div",{className:"titlebar-actions",children:[f.jsx(b.Suspense,{fallback:null,children:f.jsx(iB,{mode:"topbar",busy:m,workspaceState:g,workspaceId:u,workspaceKind:p,selectedApp:S,selectedProject:x,workspaceBusy:E,defaultTeamId:j,workspaceDiff:C,managedWorkspace:w,showDiffControls:U,diffPanelOpen:D,onToggleDiffPanel:O,onRunTerminalCommand:ce,onWorkspaceToolAction:Y,onOpenCommitDialog:ue,onWorkspaceBranchChange:Se,onWorkspaceBranchCreate:me,connection:qe,onBootstrap:$,onOpenSandboxWorkspace:be})}),f.jsxs("div",{className:`topbar-insights ${Q?"scanning":""}`,children:[f.jsxs("button",{type:"button",className:"topbar-insights-button",title:`${de} active Insights`,"aria-label":`${de} active Insights`,"aria-haspopup":He.length?"menu":void 0,onClick:ne,children:[f.jsx(qb,{size:16}),f.jsx("span",{className:"topbar-insights-count",children:de>99?"99+":de})]}),He.length?f.jsx("div",{className:"topbar-insights-dropdown",role:"menu","aria-label":"Active Insights",children:He.map($e=>f.jsxs("button",{type:"button",className:"topbar-insights-dropdown-row",role:"menuitem",onClick:ne,children:[f.jsx("span",{className:"topbar-insights-dropdown-meta",children:$e.severity}),f.jsxs("span",{className:"topbar-insights-dropdown-copy",children:[f.jsx("strong",{children:$e.title}),f.jsx("span",{children:$e.summary})]})]},$e.id))}):null]}),f.jsx("button",{type:"button",className:"titlebar-icon",title:"Search chats and projects","aria-label":"Search chats and projects",onClick:z,children:f.jsx(Zw,{size:16})}),f.jsx("button",{type:"button",className:`titlebar-icon ${B?"active":""}`,title:`${B?"Hide":"Show"} terminal`,"aria-label":`${B?"Hide":"Show"} terminal`,"aria-pressed":B,onClick:G,children:f.jsx(dd,{size:16})}),U&&f.jsx("button",{type:"button",className:`topbar-diff-button ${I?"active":""}`,title:`${I?"Hide":"Show"} sidebar${Ae?`, ${Ae} changed files`:""}`,"aria-label":`${I?"Hide":"Show"} sidebar`,"aria-pressed":I,onClick:O,children:f.jsx(Jf,{size:16})})]}),K&&N&&!U?f.jsx("div",{className:"titlebar-actions",children:f.jsx("button",{type:"button",className:`topbar-diff-button ${I?"active":""}`,title:`${I?"Hide":"Show"} sidebar`,"aria-label":`${I?"Hide":"Show"} sidebar`,"aria-pressed":I,onClick:N,children:f.jsx(Jf,{size:16})})}):null,f.jsx(oM,{platform:fe})]}),xe&&f.jsxs("div",{className:"titlebar-copy-menu",role:"menu","aria-label":"Conversation title actions",style:{left:xe.x,top:xe.y},onPointerDown:$e=>$e.stopPropagation(),children:[f.jsx("button",{type:"button",role:"menuitem",onClick:()=>ot(t),children:"Copy title"}),n&&f.jsx("button",{type:"button",role:"menuitem",onClick:()=>ot(n),children:"Copy conversation ID"})]})]})}function lB(e,t,n){const o=new Headers;o.set("Accept","text/event-stream"),o.set("Authorization",`Bearer ${e.token}`);const i=new URL(`${e.serverUrl.replace(/\/$/,"")}/v1/events`);return n!==void 0&&Number.isSafeInteger(n)&&n>0&&i.searchParams.set("afterSequence",String(n)),{url:i.toString(),init:{headers:o,signal:t}}}function cB(e){return Math.min(500*2**Math.max(0,e),1e4)}async function uB(e,t,n,o){BI(e);const i=e.body.getReader(),l=new TextDecoder;let u="";for(;!o?.aborted;){const{done:m,value:g}=await i.read();if(m){u+=l.decode();break}u+=l.decode(g,{stream:!0});let p=u.indexOf(`
|
|
144
144
|
|
|
145
145
|
`);for(;p>=0;){const S=u.slice(0,p);u=u.slice(p+2),nC(S,t,n),p=u.indexOf(`
|
|
146
146
|
|
|
@@ -151,7 +151,7 @@ Evidence JSON:
|
|
|
151
151
|
${t}`].join(`
|
|
152
152
|
`)}function C5(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),o=/(?:^|\s)\$([a-zA-Z][a-zA-Z0-9_-]*)?$/.exec(n);if(!o||typeof o.index!="number")return null;const i=o[0].lastIndexOf("$");return i<0?null:{end:n.length,query:(o[1]??"").toLowerCase(),start:o.index+i}}function tA(e){return`$${e.name}`}function w5(e,t,n){const o=Math.max(0,Math.min(t.start,e.length)),i=Math.max(o,Math.min(t.end,e.length)),l=e.slice(0,o),u=e.slice(i),m=l&&!/\s$/.test(l)?" ":"",g=u&&/^\s/.test(u)?"":" ",p=`${m}${tA(n)}${g}`;return{cursor:l.length+p.length-(u?g.length:0),value:`${l}${p}${u}`}}function _5(e,t,n){const o=t.trim().toLowerCase(),i=e.filter(l=>l.enabled&&l.validationStatus==="valid").filter(l=>o?[l.name,l.description,l.path].join(" ").toLowerCase().includes(o):!0).sort((l,u)=>l.name.localeCompare(u.name));return typeof n=="number"&&Number.isFinite(n)?i.slice(0,Math.max(0,n)):i}function k5(e,t,n){const o=t.trim().replace(/\s+/g," "),i=I5(n,e.length);if(!o)return{value:e,cursorIndex:i};const l=e.slice(0,i),u=e.slice(i),m=l&&!/\s$/.test(l)?" ":"",g=u&&!/^\s/.test(u)?" ":"",p=`${m}${o}${g}`;return{value:`${l}${p}${u}`,cursorIndex:l.length+m.length+o.length+g.length}}function I5(e,t){return Number.isFinite(e)?Math.max(0,Math.min(t,Math.round(e))):t}function A5({busy:e,placement:t,state:n,onChange:o}){const[i,l]=b.useState(!1),[u,m]=b.useState(""),g=b.useRef(null),p=n.value==="none",S=p?"Select Project":n.label,x=p?"Choose a project for local or cloud work":n.detail,C=n.options.find(E=>E.value===n.value)?.kind??"local",w=b.useMemo(()=>{const E=u.trim().toLowerCase();return E?n.options.filter(j=>[j.label,j.detail].filter(Boolean).some(U=>U.toLowerCase().includes(E))):n.options},[u,n.options]);return b.useEffect(()=>{if(!i){m("");return}function E(U){g.current?.contains(U.target)||l(!1)}function j(U){U.key==="Escape"&&l(!1)}return document.addEventListener("pointerdown",E),document.addEventListener("keydown",j),()=>{document.removeEventListener("pointerdown",E),document.removeEventListener("keydown",j)}},[i]),f.jsxs("div",{className:`composer-project-target ${t==="top"?"open-up":""}`,"data-tooltip":`${S}: ${x}`,ref:g,children:[f.jsxs("button",{type:"button",className:`composer-project-trigger ${i?"active":""} ${C}`,disabled:e,"aria-label":"Project","aria-haspopup":"menu","aria-expanded":i,onClick:()=>l(E=>!E),children:[f.jsx(lC,{kind:C,size:14}),f.jsx("span",{children:S}),f.jsx(Lo,{size:14})]}),i&&f.jsxs("div",{className:"composer-project-menu",role:"menu","aria-label":"Project",children:[f.jsx("div",{className:"composer-menu-search",children:f.jsx("input",{autoFocus:!0,value:u,placeholder:"Search projects",onChange:E=>m(E.target.value)})}),f.jsx("div",{className:"composer-menu-items",children:w.length===0?f.jsx("div",{className:"composer-menu-empty",children:"No projects found"}):w.map(E=>{const j=E.value===n.value,U=e||E.disabled,D=E.disabled&&E.disabledReason?E.disabledReason:`${E.label}: ${E.detail}`;return f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":j,className:`composer-project-option ${j?"selected":""} ${E.kind}`,disabled:U,"data-tooltip":D,onClick:()=>{o(E.value),l(!1)},children:[f.jsx(lC,{kind:E.kind,size:14}),f.jsxs("span",{children:[f.jsx("strong",{children:E.label}),f.jsx("small",{children:E.detail})]}),j&&f.jsx(ts,{size:14})]},E.value)})})]})]})}function lC({kind:e,size:t}){return e==="cloud"?f.jsx(Os,{size:t}):e==="action"?f.jsx(gl,{size:t}):f.jsx(Yf,{size:t})}function R5({busy:e,placement:t,state:n,onChange:o}){const[i,l]=b.useState(!1),u=b.useRef(null),m=n.value==="cloud"||n.value==="queue_cloud"?"cloud":n.value==="hybrid"?"hybrid":"local",g=`${n.label}: ${n.detail}`,p=n.uploadAction??null,S=p?cC(p):null,x=p?p.disabled&&p.disabledReason?p.disabledReason:`${p.label}: ${S??p.detail}`:null,C=!!(p&&(e||n.busy||p.disabled));return b.useEffect(()=>{if(!i)return;function w(j){u.current?.contains(j.target)||l(!1)}function E(j){j.key==="Escape"&&l(!1)}return document.addEventListener("pointerdown",w),document.addEventListener("keydown",E),()=>{document.removeEventListener("pointerdown",w),document.removeEventListener("keydown",E)}},[i]),f.jsxs("div",{className:`workspace-action-control ${t==="top"?"open-up":""}`,ref:u,children:[f.jsxs("button",{type:"button",className:`workspace-action-trigger ${m} ${i?"active":""}`,disabled:e,"data-tooltip":g,"aria-label":"Working in","aria-haspopup":"menu","aria-expanded":i,onClick:()=>l(w=>!w),children:[f.jsx(Ig,{value:n.value,size:14}),f.jsx("span",{className:"workspace-target-trigger-label",children:n.label}),f.jsx(Lo,{size:14})]}),p?f.jsx("button",{type:"button",className:`workspace-upload-trigger ${p.value}`,disabled:C,"data-tooltip":x??void 0,"aria-label":p.label,onClick:()=>{o(p.value),l(!1)},children:f.jsx(Ig,{value:p.value,size:14})}):null,i&&f.jsx("div",{className:"workspace-target-menu",role:"menu","aria-label":"Working in",children:n.options.map(w=>{const E=w.value===n.value,j=e||n.busy||w.disabled,D=cC(w)??w.detail,B=w.disabled&&w.disabledReason?w.disabledReason:`${w.label}: ${D}`;return f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":E,className:`workspace-target-option ${E?"selected":""} ${w.value}`,disabled:j,"data-tooltip":B,onClick:()=>{o(w.value),l(!1)},children:[f.jsx(Ig,{value:w.value,size:14}),f.jsxs("span",{children:[f.jsx("strong",{children:w.label}),f.jsx("small",{children:D})]}),E&&f.jsx(ts,{size:14})]},w.value)})})]})}function cC(e){return e.disabled&&e.disabledReason?e.disabledReason:e.stateNote??null}function Ig({value:e,size:t}){return e==="cloud"||e==="queue_cloud"?f.jsx(Os,{size:t}):e==="hybrid"?f.jsxs("span",{className:"workspace-target-hybrid-icon","aria-hidden":"true",children:[f.jsx(Yf,{className:"hybrid-folder",size:t}),f.jsx(Os,{className:"hybrid-cloud",size:Math.max(7,Math.round(t*.62))})]}):e==="upload_cloud"?f.jsx(Wj,{size:t}):f.jsx(Yf,{size:t})}function uC({disabled:e,model:t,modelOptions:n=Vu,placement:o,reasoningEffort:i,onModelChange:l,onReasoningEffortChange:u}){const[m,g]=b.useState(!1),p=b.useRef(null),S=n.find(w=>w.value===t)??Vu.find(w=>w.value===t)??n[0]??Vu[0],x=hg.find(w=>w.value===i)??hg[1],C=`${T5(S.label)} ${x.shortLabel??x.label}`;return b.useEffect(()=>{if(!m)return;function w(j){p.current?.contains(j.target)||g(!1)}function E(j){j.key==="Escape"&&g(!1)}return document.addEventListener("pointerdown",w),document.addEventListener("keydown",E),()=>{document.removeEventListener("pointerdown",w),document.removeEventListener("keydown",E)}},[m]),f.jsxs("div",{className:`codex-model-reasoning ${o==="top"?"open-up":""}`,"data-tooltip":"Model and reasoning",ref:p,children:[f.jsxs("button",{type:"button",className:`codex-model-trigger ${m?"active":""}`,disabled:e,"aria-label":"Model and reasoning","aria-haspopup":"menu","aria-expanded":m,onClick:()=>g(w=>!w),children:[f.jsx("span",{children:C}),f.jsx(Lo,{size:14})]}),m&&f.jsxs("div",{className:"codex-model-menu",role:"menu","aria-label":"Model and reasoning",children:[f.jsx("div",{className:"codex-model-menu-title",children:"Reasoning"}),hg.map(w=>f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":w.value===i,className:w.value===i?"selected":"",onClick:()=>u(w.value),children:[f.jsx("span",{children:w.label}),w.value===i&&f.jsx(ts,{size:14})]},w.value)),f.jsx("div",{className:"codex-model-menu-title",children:"Model"}),n.map(w=>f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":w.value===t,className:w.value===t?"selected":"",onClick:()=>l(w.value),children:[f.jsx("span",{children:w.label}),w.value===t&&f.jsx(ts,{size:14})]},w.value))]})]})}function T5(e){return e.replace(/^GPT-/,"").replace(/\s+Codex Spark$/," Spark").replace(/\s+Codex$/," Codex")}function j5({detailsOpen:e,goalRuntime:t,objectiveId:n,subagentRuntime:o,onToggleDetails:i}){const l=o?.activeCount?`${t.tooltip}. ${o.tooltip}`:t.tooltip;return f.jsxs("div",{className:`composer-goal-strip ${t.tone}${o?.activeCount?" has-subagents":""}`,"data-tooltip":l,children:[f.jsx("div",{className:"composer-goal-heading",children:f.jsxs("button",{type:"button",className:"composer-goal-toggle","aria-expanded":e,"aria-controls":n,onClick:i,children:[f.jsx("span",{children:t.actionLabel}),f.jsxs("span",{className:"composer-goal-toggle-meta",children:[o?f.jsx("span",{className:"composer-goal-subagent-count",children:o.label}):null,f.jsx("span",{children:t.timeLabel}),f.jsx(Lo,{size:15,"aria-hidden":"true"})]})]})}),e&&f.jsxs("div",{className:"composer-goal-objective",id:n,children:[t.objective,o?f.jsx("span",{className:"composer-goal-subagent-summary",children:o.tooltip}):null]})]})}function E5(){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?crypto.randomUUID():`steer-${Date.now().toString(36)}-${Math.random().toString(36).slice(2,9)}`}function dC(e,t=120){const n=e.trim().replace(/\s+/g," ");return n.length<=t?n:`${n.slice(0,Math.max(0,t-1)).trimEnd()}...`}function M5(e,t={}){const n=t.now??new Date().toISOString();return{createdAt:n,id:t.id??E5(),prompt:e,updatedAt:n}}function Kf(e,t){return e.filter(n=>n.id!==t)}function P5(e,t,n,o=new Date().toISOString()){return e.map(i=>i.id===t?{...i,prompt:n,updatedAt:o}:i)}function N5(e,t,n){return n?Kf(e,t):e}function Sb(e,t,n=[]){return e[t]??n}function O5(e,t,n,o=[]){const i=Sb(e,t,o),l=n(i);return Object.is(i,l)?e:{...e,[t]:l}}function z5(e){return e.prompt.trim()||e.attachmentCount>0||e.hasSelectedAction||e.hasSelectedCommand?"dialog":"load_composer"}function $5(e){return e.wasRunning&&!e.running&&e.autoDispatchReady&&e.hasQueuedDrafts&&!e.sending&&!e.waitingForStartedTurn}function D5({drafts:e,editDraftValue:t,editingDraft:n,sendingDraftId:o,onCancelEdit:i,onDeleteDraft:l,onEditDraft:u,onEditDraftValueChange:m,onReplaceComposerDraft:g,onSaveQueuedDraft:p,onSteerDraft:S}){return e.length===0&&!n?null:f.jsxs("div",{className:"composer-steer-stack","aria-label":"Queued steer drafts",children:[e.map(x=>{const C=o===x.id;return f.jsxs("div",{className:`composer-steer-row ${C?"sending":""}`,children:[f.jsx("span",{className:"composer-steer-row-icon","aria-hidden":"true",children:f.jsx($c,{size:13})}),f.jsx("span",{className:"composer-steer-row-text",title:x.prompt,children:dC(x.prompt)}),f.jsxs("button",{type:"button",className:"composer-steer-row-action primary",disabled:C,"aria-label":`Steer queued draft: ${dC(x.prompt,60)}`,onClick:()=>S(x.id),children:[f.jsx($c,{size:12}),f.jsx("span",{children:C?"Sending":"Steer"})]}),f.jsx("button",{type:"button",className:"composer-steer-row-icon-button",disabled:C,"data-tooltip":"Edit queued steer","aria-label":"Edit queued steer",onClick:()=>u(x),children:f.jsx(ud,{size:13})}),f.jsx("button",{type:"button",className:"composer-steer-row-icon-button",disabled:C,"data-tooltip":"Delete queued steer","aria-label":"Delete queued steer",onClick:()=>l(x.id),children:f.jsx(WE,{size:13})}),f.jsx("button",{type:"button",className:"composer-steer-row-icon-button",disabled:C,"data-tooltip":"More","aria-label":"More queued steer actions",children:f.jsx(cd,{size:13})})]},x.id)}),n?f.jsx("div",{className:"composer-steer-edit-backdrop",role:"presentation",children:f.jsxs("div",{className:"composer-steer-edit-dialog",role:"dialog","aria-modal":"true","aria-label":"Edit queued steer",children:[f.jsxs("label",{className:"composer-steer-edit-field",children:[f.jsx("span",{children:"Edit queued steer"}),f.jsx("textarea",{autoFocus:!0,value:t,onChange:x=>m(x.target.value)})]}),f.jsxs("div",{className:"composer-steer-edit-actions",children:[f.jsx("button",{type:"button",onClick:i,children:"Cancel"}),f.jsx("button",{type:"button",disabled:!t.trim(),onClick:g,children:"Replace composer"}),f.jsx("button",{type:"button",className:"primary",disabled:!t.trim(),onClick:p,children:"Save queued draft"})]})]})}):null]})}const U5=10,L5=340;function Es(e,t=0){const n=Number.parseFloat(e);return Number.isFinite(n)?n:t}function Ag(e){if(!e)return;e.style.height="auto";const t=window.getComputedStyle(e),n=Es(t.fontSize,16),o=Es(t.lineHeight,n*1.45),i=Es(t.paddingTop)+Es(t.paddingBottom),l=Es(t.borderTopWidth)+Es(t.borderBottomWidth),u=Es(t.minHeight,66),m=Math.max(u,Math.ceil(o*U5+i+l)),g=Math.max(u,Math.min(e.scrollHeight,m));e.style.height=`${g}px`,e.style.overflowY=e.scrollHeight>m?"auto":"hidden"}function Rg(e,t){const n=e.getBoundingClientRect(),o=t.getBoundingClientRect(),i=window.getComputedStyle(e),l=Es(i.paddingLeft,14),u=Es(i.paddingTop,15),m=Math.max(0,o.width-16),g=Math.min(L5,m),p=n.left-o.left+l-8,S=Math.max(8,Math.min(p,o.width-g-8)),x=Math.max(8,n.top-o.top+u+2);return{left:S,top:x,width:g}}const q5=/\b(?:https?:\/\/)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai)\/[^\s<>"'`]+/gi,B5=/\b(?:git@)?(?:github\.com|(?:[a-z0-9-]+\.)*openpond\.ai):[^\s<>"'`]+/gi,H5=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"]),F5=new Set(["account","api","dashboard","docs","install.sh","login","logout","opchat","sandboxes","settings"]);function K5(e){const t=e.toLowerCase().replace(/^www\./,"");return t==="github.com"?"github":t==="openpond.ai"||t.endsWith(".openpond.ai")?"openpond":null}function V5(e){return e==="github"?H5:F5}function nA(e){let t=e;for(;/[.,;!?]$/.test(t);)t=t.slice(0,-1);for(;G5(t);)t=t.slice(0,-1);return t}function G5(e){const t=e.at(-1);if(!t||!")]}".includes(t))return!1;const n=t===")"?"(":t==="]"?"[":"{";let o=0;for(const i of e)i===n&&(o+=1),i===t&&(o-=1);return o<0}function Z5(e){return e.replace(/\.git$/i,"")}function aA(e){try{return decodeURIComponent(e)}catch{return e}}function W5(e){return Z5(aA(e.trim()))}function oA(e){const t=e.host.toLowerCase().replace(/^www\./,""),n=K5(t);if(!n)return null;const o=aA(e.owner?.trim()??""),i=W5(e.repo??"");return!o||!i||V5(n).has(o.toLowerCase())?null:{end:e.end,host:t,label:`${o}/${i}`,provider:n,repo:i,start:e.start,url:e.url,owner:o}}function Y5(e,t){const n=nA(e);if(!n)return null;try{const o=new URL(/^https?:\/\//i.test(n)?n:`https://${n}`),i=o.pathname.split("/").filter(Boolean);return oA({end:t+n.length,host:o.hostname,owner:i[0],repo:i[1],start:t,url:n})}catch{return null}}function J5(e,t){const n=nA(e),o=/^(?:git@)?([^:]+):(.+)$/i.exec(n);if(!o)return null;const i=o[1]?.trim()??"",l=(o[2]??"").split("/").filter(Boolean);return oA({end:t+n.length,host:i,owner:l[0],repo:l[1],start:t,url:n})}function fC(e,t,n){const o=[];t.lastIndex=0;let i;for(;i=t.exec(e);){const l=i[0]??"",u=n(l,i.index);u&&o.push(u)}return o}function X5(e){if(!e)return[];const t=[...fC(e,q5,Y5),...fC(e,B5,J5)].sort((o,i)=>o.start-i.start||i.end-o.end),n=[];for(const o of t)n.some(i=>o.start<i.end&&o.end>i.start)||n.push(o);return n.sort((o,i)=>o.start-i.start)}const Q5="[data-inline-token='true']",e8="[data-inline-repo-link='true']",t8="[data-inline-connected-app-mention='true']";function ad(e){return e instanceof HTMLElement&&e.matches(Q5)}function od(e){return e instanceof HTMLElement&&e.matches(e8)}function rd(e){return e instanceof HTMLElement&&e.matches(t8)}function pm(e,t){return Math.max(0,Math.min(e,t))}function zc(e,t){return e?pm(e.position,t.length):null}function n8(e,t,n,o=!1){const i=zc(t,n),l=pm(e,n.length);return i===null?l:l>i||o&&l===i?l+1:l}function mC(e,t,n){const o=zc(t,n);return pm(o===null?e:e>o?e-1:e,n.length)}function pC(e){let t="",n=null;function o(i){if(od(i)){t+=i.dataset.repoUrl??"";return}if(rd(i)){t+=i.dataset.connectedMentionText??"";return}if(ad(i)){n=t.length;return}if(i.nodeType===Node.TEXT_NODE){t+=i.textContent??"";return}i instanceof HTMLBRElement||i.childNodes.forEach(o)}return e.childNodes.forEach(o),{text:t,tokenPosition:n}}function zl(e){if(od(e))return e.dataset.repoUrl?.length??0;if(rd(e))return e.dataset.connectedMentionText?.length??0;if(ad(e))return 1;if(e.nodeType===Node.TEXT_NODE)return e.textContent?.length??0;if(e instanceof HTMLBRElement)return 0;let t=0;return e.childNodes.forEach(n=>{t+=zl(n)}),t}function hC(e){const t=window.getSelection();if(!t||t.rangeCount===0)return zl(e);const n=t.focusNode,o=t.focusOffset;if(!n||!e.contains(n))return zl(e);let i=0,l=!1;function u(m){if(!l){if((ad(m)||od(m)||rd(m))&&m.contains(n)){(m!==n||o>0)&&(i+=zl(m)),l=!0;return}if(ad(m)||od(m)||rd(m)){i+=zl(m);return}if(m===n){if(m.nodeType===Node.TEXT_NODE)i+=o;else{const g=Array.from(m.childNodes).slice(0,o);for(const p of g)i+=zl(p)}l=!0;return}if(m.nodeType===Node.TEXT_NODE){i+=m.textContent?.length??0;return}m instanceof HTMLBRElement||m.childNodes.forEach(u)}}return u(e),i}function gC(e,t){const n=window.getSelection();if(!n)return;const o=document.createRange();let i=Math.max(0,t);function l(g){o.setStartBefore(g),o.collapse(!0)}function u(g){o.setStartAfter(g),o.collapse(!0)}function m(g){if(ad(g)||od(g)||rd(g)){const p=zl(g);return i<=0?(l(g),!0):i<=p?(u(g),!0):(i-=p,!1)}if(g.nodeType===Node.TEXT_NODE){const p=g.textContent?.length??0;return i<=p?(o.setStart(g,i),o.collapse(!0),!0):(i-=p,!1)}if(g instanceof HTMLBRElement)return!1;for(const p of g.childNodes)if(m(p))return!0;return!1}m(e)||(o.selectNodeContents(e),o.collapse(!1)),n.removeAllRanges(),n.addRange(o)}function bC(e){document.execCommand("insertText",!1,e)}function a8(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>':'<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 o8(){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 vC(e){const t=document.createElement("span");t.className="composer-invocation-pill",t.contentEditable="false",t.dataset.inlineToken="true";const n=document.createElement("button");n.type="button",n.className="composer-invocation-remove",n.setAttribute("aria-label",`Remove ${e.label}`),n.addEventListener("mousedown",l=>l.preventDefault()),n.addEventListener("click",l=>{l.preventDefault(),e.onRemove()});const o=document.createElement("span");o.className="composer-invocation-icon",o.setAttribute("aria-hidden","true"),o.innerHTML=a8(e.icon),n.append(o),n.insertAdjacentHTML("beforeend",o8());const i=document.createElement("span");return i.className="composer-invocation-label",i.textContent=e.label,t.append(n,i),t}function r8(e){return e.provider==="github"?zv("github"):UI}function i8(e){const t=document.createElement("span");t.className=`composer-repo-link ${e.provider}`,t.contentEditable="false",t.dataset.inlineRepoLink="true",t.dataset.repoUrl=e.url,t.dataset.repoProvider=e.provider,t.setAttribute("aria-label",`${e.provider==="github"?"GitHub":"OpenPond"} repository ${e.label}`),t.title=e.url;const n=document.createElement("img");n.className="composer-repo-link-icon",n.src=r8(e),n.alt="",n.draggable=!1;const o=document.createElement("span");return o.className="composer-repo-link-label",o.textContent=e.label,t.append(n,o),t}function s8(e){return zv(e)}function l8(e){const t=document.createElement("span");t.className=`composer-connected-app-mention ${e.provider}`,t.contentEditable="false",t.dataset.inlineConnectedAppMention="true",t.dataset.connectedMentionText=e.text,t.dataset.connectedMentionProvider=e.provider,t.setAttribute("aria-label",`${e.label} connected app mention ${e.displayText}`),t.title=e.detail;const n=document.createElement("img");n.className="composer-connected-app-mention-icon",n.src=s8(e.provider),n.alt="",n.draggable=!1;const o=document.createElement("span");return o.className="composer-connected-app-mention-label",o.textContent=e.displayText,t.append(n,o),t}function c8(e,t){const n=X5(e);return t===null?n:n.filter(o=>t<=o.start||t>=o.end)}function u8(e,t,n){const o=l5(e,t);return n===null?o:o.filter(i=>n<=i.start||n>=i.end)}function rA(e,t,n){const o=[...c8(e,t).map(u=>({end:u.end,kind:"repo",link:u,start:u.start})),...u8(e,n,t).map(u=>({end:u.end,kind:"connected-app",mention:u,start:u.start}))].sort((u,m)=>u.start-m.start||m.end-u.end),i=[];let l=0;for(const u of o)u.start<l||(i.push(u),l=u.end);return i}function d8(e,t,n){return rA(e,t,n).map(o=>o.kind==="repo"?`${o.start}:${o.end}:repo:${o.link.provider}:${o.link.label}:${o.link.url}`:`${o.start}:${o.end}:connected-app:${o.mention.provider}:${o.mention.text}:${o.mention.displayText}`).join("|")}function f8(e,t,n,o){const i=zc(n,t),l=rA(t,i,o);let u=!1;function m(S){S&&e.append(document.createTextNode(S))}function g(S,x){if(!n||i===null||u||i<S||i>x){m(t.slice(S,x));return}m(t.slice(S,i)),e.append(vC(n)),u=!0,m(t.slice(i,x))}e.replaceChildren();let p=0;for(const S of l)g(p,S.start),S.kind==="repo"?e.append(i8(S.link)):e.append(l8(S.mention)),p=S.end;g(p,t.length),n&&!u&&e.append(vC(n))}const m8=b.forwardRef(function({connectedAppMentions:t=[],disabled:n,onCursorChange:o,onKeyDown:i,onPromptChange:l,onTokenPositionChange:u,placeholder:m,prompt:g,token:p},S){const x=b.useRef(null),C=b.useRef(null),E=`${p?`${p.key}:${zc(p,g)??0}`:"none"}|${d8(g,zc(p,g),t)}`,j=b.useRef(null),U=g.length===0&&!p;b.useImperativeHandle(S,()=>({get element(){return x.current},focusAtPromptIndex(I,O){const N=x.current;if(!N)return;const z=n8(I,p,g,O?.afterToken);C.current=z,N.focus(),gC(N,z),Ag(N)},resize(){Ag(x.current)}}),[g,p]),b.useLayoutEffect(()=>{const I=x.current;if(!I)return;const O=j.current!==E;j.current=E;const N=pC(I);(O||g===""||N.text!==g||N.tokenPosition!==zc(p,g))&&(f8(I,g,p,t),I.dataset.empty=g.length===0&&!p?"true":"false"),Ag(I),!(document.activeElement!==I||C.current===null)&&gC(I,C.current)},[t,g,p,E]);function D(){const I=x.current;if(!I)return;const O=hC(I),N=pC(I),z=mC(O,p,N.text);C.current=O,I.dataset.empty=N.text.length===0&&!p?"true":"false",u(N.tokenPosition),o(z),l(N.text,z)}function B(){D(),window.requestAnimationFrame(D)}function K(){const I=x.current;if(!I)return;const O=hC(I);C.current=O,o(mC(O,p,g))}return f.jsx("div",{ref:x,className:"composer-inline-input",role:"textbox","aria-multiline":"true",contentEditable:!n,suppressContentEditableWarning:!0,"data-empty":U?"true":"false","data-placeholder":m,onBeforeInput:I=>{I.nativeEvent.inputType==="insertParagraph"&&(I.preventDefault(),bC(`
|
|
153
153
|
`),B())},onInput:D,onKeyDown:I=>{i(I)},onKeyUp:K,onMouseUp:K,onPaste:I=>{I.preventDefault();const O=I.clipboardData.getData("text/plain");O&&(bC(O),B())}})});function p8(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}`:`action:${e.action.id}`}function h8(e){return e.kind==="app"?e.app.name:e.kind==="connected-app"?e.app.label:e.kind==="team-member"?e.member.name:t5(e.action)}function g8(e){if(e.kind==="action")return n5(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";const t=e.app.sandboxActionRegistry?.actions.map(n=>n.name)??[];return t.length>0?`Actions: ${t.slice(0,4).join(", ")}${t.length>4?` +${t.length-4}`:""}`:e.app.sandboxManifestError?"Manifest registry unavailable":e.app.description||e.app.gitRepo||e.app.id}function b8(e){return e.kind==="app"?f.jsx(Wf,{size:14}):e.kind==="connected-app"?f.jsx("img",{alt:"",className:"composer-provider-mention-icon",draggable:!1,src:v8(e.app.provider)}):e.kind==="team-member"?f.jsx(Wf,{size:14}):e.action.implementation?.type==="openpond-agent"?f.jsx(sd,{size:14}):f.jsx(Xf,{size:14})}function v8(e){return zv(e)}function y8({mentionIndex:e,items:t,onSelect:n,onSelectIndex:o,style:i}){const l=b.useRef(null);return b.useEffect(()=>{l.current?.scrollIntoView({block:"nearest"})},[t.length,e]),f.jsx("div",{className:"composer-project-menu composer-slash-menu composer-mention-menu",role:"listbox","aria-label":"Mentions",style:i,children:t.map((u,m)=>{const g=m===e;return f.jsxs("button",{type:"button",className:`composer-project-option ${g?"selected":""}`,ref:g?l:void 0,role:"option","aria-selected":g,onMouseEnter:()=>o(m),onMouseDown:p=>{p.preventDefault(),n(u)},children:[b8(u),f.jsxs("span",{children:[f.jsx("strong",{children:h8(u)}),f.jsx("small",{children:g8(u)})]}),g?f.jsx(ts,{size:14}):f.jsx("span",{"aria-hidden":"true"})]},p8(u))})})}function bc({value:e,options:t,disabled:n,compact:o,className:i,icon:l,placement:u="bottom",label:m,tooltip:g,searchable:p=!1,onChange:S}){const[x,C]=b.useState(!1),[w,E]=b.useState(""),j=b.useRef(null),U=t.find(K=>K.value===e)??t[0],D=w.trim().toLowerCase(),B=D?t.filter(K=>[K.label,K.shortLabel,K.description].some(I=>I?.toLowerCase().includes(D))):t;return b.useEffect(()=>{if(!x){E("");return}function K(O){j.current?.contains(O.target)||C(!1)}function I(O){O.key==="Escape"&&C(!1)}return document.addEventListener("pointerdown",K),document.addEventListener("keydown",I),()=>{document.removeEventListener("pointerdown",K),document.removeEventListener("keydown",I)}},[x]),f.jsxs("div",{className:`dropdown-select ${i??""} ${o?"compact":""} ${u==="top"?"open-up":""}`,"data-tooltip":g,ref:j,children:[f.jsxs("button",{type:"button",className:`dropdown-trigger ${x?"active":""}`,disabled:n,"aria-label":m,"aria-haspopup":"menu","aria-expanded":x,onClick:()=>C(K=>!K),children:[l,f.jsx("span",{children:U?.shortLabel??U?.label??e}),f.jsx(Lo,{size:14})]}),x&&f.jsxs("div",{className:"dropdown-menu",role:"menu",children:[p?f.jsxs("label",{className:"dropdown-search",onClick:K=>K.stopPropagation(),children:[f.jsxs("span",{className:"sr-only",children:["Search ",m]}),f.jsx("input",{autoFocus:!0,placeholder:`Search ${m.toLowerCase()}`,value:w,onChange:K=>E(K.target.value)})]}):null,B.map(K=>f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":K.value===e,className:[K.value===e?"selected":"",K.separatorBefore?"separator-before":"",K.icon?"with-icon":""].filter(Boolean).join(" "),onClick:()=>{S(K.value),E(""),C(!1)},children:[f.jsxs("span",{children:[K.icon==="plus"?f.jsx(gl,{size:13}):null,f.jsx("span",{children:K.label})]}),K.description&&f.jsx("small",{children:K.description})]},K.value)),B.length?null:f.jsx("div",{className:"dropdown-empty",children:"No matches"})]})]})}function xb(){return!!(navigator.mediaDevices&&typeof AudioContext<"u")}async function S8(){if(!xb())throw new Error("Voice recording is not available in this browser.");const e=await navigator.mediaDevices.getUserMedia({audio:{autoGainControl:!0,channelCount:1,echoCancellation:!0,noiseSuppression:!0}}),t=new AudioContext,n=t.createMediaStreamSource(e),o=t.createScriptProcessor(4096,1,1),i=t.createGain();i.gain.value=0;const l={audioContext:t,chunks:[],processor:o,silentGain:i,source:n,stream:e,startedAt:performance.now(),stopped:!1};return o.onaudioprocess=u=>{if(l.stopped)return;const m=u.inputBuffer.getChannelData(0);l.chunks.push(new Float32Array(m))},n.connect(o),o.connect(i),i.connect(t.destination),{stop:()=>yC(l,!0),cancel:()=>yC(l,!1).then(()=>{})}}async function yC(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 i of e.stream.getTracks())i.stop();await e.audioContext.close().catch(()=>{});const n=Math.max(0,performance.now()-e.startedAt);if(!t)return{blob:new Blob([],{type:"audio/wav"}),durationMs:n,sampleRate:e.audioContext.sampleRate};const o=x8(e.chunks);if(o.length===0)throw new Error("No microphone audio was captured.");return{blob:C8(o,e.audioContext.sampleRate),durationMs:n,sampleRate:e.audioContext.sampleRate}}function x8(e){const t=e.reduce((i,l)=>i+l.length,0),n=new Float32Array(t);let o=0;for(const i of e)n.set(i,o),o+=i.length;return n}function C8(e,t){const i=e.length*2,l=new ArrayBuffer(44+i),u=new DataView(l);Pf(u,0,"RIFF"),u.setUint32(4,36+i,!0),Pf(u,8,"WAVE"),Pf(u,12,"fmt "),u.setUint32(16,16,!0),u.setUint16(20,1,!0),u.setUint16(22,1,!0),u.setUint32(24,t,!0),u.setUint32(28,t*1*2,!0),u.setUint16(32,2,!0),u.setUint16(34,16,!0),Pf(u,36,"data"),u.setUint32(40,i,!0);let m=44;for(const g of e){const p=Math.max(-1,Math.min(1,g));u.setInt16(m,p<0?p*32768:p*32767,!0),m+=2}return new Blob([l],{type:"audio/wav"})}function Pf(e,t,n){for(let o=0;o<n.length;o+=1)e.setUint8(t+o,n.charCodeAt(o))}const w8=12e4,iA="openpond.voice.setupNoticeAcknowledged",_8="Voice dictation runs locally with whisper.cpp. OpenPond uses a local whisper-cli binary and downloads the voice model on first use.";function SC({connection:e,buttonClassName:t,wrapperClassName:n="",disabled:o=!1,iconSize:i=16,language:l="en",showToast:u,onTranscript:m}){const g=b.useRef(null),p=b.useRef(null),S=b.useRef(e),x=b.useRef(o),C=b.useRef(I8());S.current=e,x.current=o;const[w,E]=b.useState("idle"),[j,U]=b.useState(null),D=w==="transcribing",B=w==="recording",K=!e||!xb(),I=j??(B?"Stop dictation":D?"Transcribing voice":K?"Voice input unavailable":"Dictate"),O=b.useCallback(()=>{p.current!==null&&(window.clearTimeout(p.current),p.current=null)},[]),N=b.useCallback(async()=>{O();const Y=g.current;g.current=null,E("idle"),Y&&await Y.cancel().catch(()=>{})},[O]),z=b.useCallback(async Y=>{const ue=S.current;if(!ue)throw new Error("Voice input is still connecting.");const Se=await ge.voiceTranscriptionStatus(ue);if(!Se.binaryPath)throw new Error(Se.installHint??"Install whisper.cpp to use dictation.");!Se.modelReady&&Se.canDownloadModel?U(`Downloading ${Se.modelName} voice model...`):U("Transcribing voice...");const me=await ge.transcribeVoice(ue,{audioBase64:await k8(Y.blob),durationMs:Math.round(Y.durationMs),language:l,mimeType:"audio/wav"});m(me.text),U(null)},[l,m]),G=b.useCallback(async()=>{O();const Y=g.current;if(g.current=null,!!Y){E("transcribing"),U("Transcribing voice...");try{const ue=await Y.stop();await z(ue)}catch(ue){U(xC(ue))}finally{E("idle")}}},[O,z]),ne=b.useCallback(async()=>{if(x.current)return;const Y=S.current;if(!Y){U("Voice input is still connecting.");return}if(!xb()){U("Voice recording is not available in this browser.");return}U(null);try{const ue=await ge.voiceTranscriptionStatus(Y);if(!ue.binaryPath)throw new Error(ue.installHint??"Install whisper.cpp to use dictation.");if(!ue.modelReady&&ue.canDownloadModel&&U(`${ue.modelName} will download after recording.`),await window.openpond?.requestMicrophoneAccess?.()===!1)throw new Error("Microphone access is denied.");const me=await S8();g.current=me,E("recording"),U("Recording..."),p.current=window.setTimeout(()=>{G()},w8)}catch(ue){U(xC(ue)),await N()}},[N,G]),ce=b.useCallback(()=>{if(C.current){ne();return}u(_8,"info",{actionLabel:"Continue",persistent:!0,onAction:()=>{C.current=!0,A8(),ne()}})},[ne,u]);return b.useEffect(()=>{if(!j||B||D)return;const Y=window.setTimeout(()=>U(null),7e3);return()=>window.clearTimeout(Y)},[D,j,B]),b.useEffect(()=>()=>{N()},[N]),f.jsxs("span",{className:`voice-input-control ${n} ${B?"recording":""}`.trim(),children:[f.jsx("button",{type:"button",className:`${t} ${B?"recording active":""}`.trim(),"aria-label":B?"Stop dictation":"Dictate","aria-pressed":B,"data-tooltip":I,disabled:o||D,onClick:()=>{B?G():ce()},children:B?f.jsx(Wg,{size:Math.max(12,i-3),fill:"currentColor"}):f.jsx(IE,{size:i})}),j?f.jsx("span",{className:"voice-input-status",role:"status",children:j}):null]})}async function k8(e){const t=new Uint8Array(await e.arrayBuffer());let n="";for(let o=0;o<t.length;o+=32768){const i=t.subarray(o,o+32768);n+=String.fromCharCode(...i)}return window.btoa(n)}function xC(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 I8(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(iA)==="true"}catch{return!1}}function A8(){if(!(typeof window>"u"))try{window.localStorage.setItem(iA,"true")}catch{}}const sA=[{mode:"manual",label:"Manual",description:"Only delegate when you ask."},{mode:"balanced",label:"Balanced",description:"Delegate bounded work when it helps."},{mode:"proactive",label:"Proactive",description:"Prefer independent parallel workers."}];function CC(e){return sA.find(t=>t.mode===e)?.label??e}function R8({defaultMode:e,disabled:t,overrideMode:n,onChange:o}){const[i,l]=b.useState(!1),u=b.useRef(null),g=`Subagent use: ${CC(n??e)}${n?"":" (default)"}`;return b.useEffect(()=>{if(!i)return;function p(x){u.current?.contains(x.target)||l(!1)}function S(x){x.key==="Escape"&&l(!1)}return document.addEventListener("pointerdown",p),document.addEventListener("keydown",S),()=>{document.removeEventListener("pointerdown",p),document.removeEventListener("keydown",S)}},[i]),f.jsxs("div",{className:"composer-delegation-control open-up",ref:u,children:[f.jsx("button",{type:"button",className:`composer-icon composer-delegation-trigger ${i?"active":""}`,"aria-label":g,"aria-haspopup":"menu","aria-expanded":i,disabled:t,title:g,onClick:()=>l(p=>!p),children:f.jsx("span",{"aria-hidden":"true",children:"SUB"})}),i?f.jsxs("div",{className:"composer-delegation-menu",role:"menu","aria-label":"Subagent use",children:[f.jsx("div",{className:"composer-delegation-menu-title",children:"Subagent use"}),f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":n===null,onClick:()=>{o(null),l(!1)},children:[f.jsx("span",{className:"composer-delegation-check",children:n===null?f.jsx(ts,{size:14}):null}),f.jsxs("span",{children:[f.jsx("strong",{children:"Use default"}),f.jsx("small",{children:CC(e)})]})]}),f.jsx("div",{className:"composer-add-menu-divider",role:"presentation"}),sA.map(p=>f.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":n===p.mode,onClick:()=>{o(p.mode),l(!1)},children:[f.jsx("span",{className:"composer-delegation-check",children:n===p.mode?f.jsx(ts,{size:14}):null}),f.jsxs("span",{children:[f.jsx("strong",{children:p.label}),f.jsx("small",{children:p.description})]})]},p.mode))]}):null]})}const T8=new Set(["codex","openai","xai","openrouter","deepseek","zai","moonshot","together","groq","fireworks","custom-openai-compatible","setup-provider"]);function j8({surface:e="chat",teamUseModel:t=!1,teamUseModelLocked:n=!1,onTeamUseModelChange:o,addFiles:i,addMenuOpen:l,addMenuRef:u,busy:m,codexPermissionMode:g,codexReasoningEffort:p,connection:S,contextStatusStyle:x,contextStatusTooltipId:C,contextWindowStatus:w,disabled:E,dropdownPlacement:j,fileInputRef:U,mentionApps:D,modelValue:B,modelOptions:K=[],openPondCommandAccessMode:I,onCodexPermissionModeChange:O,onCodexReasoningEffortChange:N,onOpenPondCommandAccessModeChange:z,onModelChange:G,onCreateAsAgent:ne,onOpenFilePicker:ce,onPlanningAppSelect:Y,onProviderChange:ue,onProviderSetupOpen:Se,onQueueDraft:me,onStop:qe,onToggleAddMenu:$,onTranscript:be,provider:ie,providerSettings:fe,providerOptions:te,queueDraftDisabled:R,queueDraftTooltip:L,running:Q,sendDisabled:Ae,sendTooltip:je,selectedMentionAppId:Le,subagentDelegationDefaultMode:de,subagentDelegationMode:He,onSubagentDelegationModeChange:xe,showToast:Ke,stopIcon:Ue="stop",stopLabel:ot="Stop response",steering:$e}){const Me=pI(ie,B,fe);return e==="team"?f.jsxs("div",{className:"composer-primary-controls team-chat-composer-controls",children:[f.jsx("button",{type:"button",className:"composer-icon","aria-label":"Add photos and files",disabled:E,onClick:ce,children:f.jsx(gl,{size:18})}),f.jsx("input",{ref:U,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:q=>{i(Array.from(q.currentTarget.files??[])),q.currentTarget.value=""}}),f.jsxs("label",{className:"team-chat-model-toggle",children:[f.jsx("input",{type:"checkbox",checked:t,disabled:m||n,onChange:q=>o?.(q.currentTarget.checked)}),f.jsx("span",{children:"Use model"})]}),f.jsx("div",{className:"composer-spacer"}),t?f.jsxs(f.Fragment,{children:[f.jsx(bc,{compact:!0,placement:j,label:"Provider",value:ie,options:te.filter(q=>T8.has(q.value)),disabled:m,onChange:q=>{if(q==="setup-provider"){Se?.();return}ue(q)}}),Me?f.jsx(uC,{disabled:m,model:B,modelOptions:K,placement:j,reasoningEffort:p,onModelChange:G,onReasoningEffortChange:N}):K.length>0?f.jsx(bc,{compact:!0,placement:j,label:"Model",value:B,options:K,disabled:m,onChange:G}):null]}):null,f.jsx(SC,{buttonClassName:"composer-icon",connection:S,disabled:E,iconSize:16,wrapperClassName:"composer-voice-input",showToast:Ke,onTranscript:be}),Q?f.jsx("button",{type:"button",className:"send-button stop-button","data-tooltip":ot,"aria-label":ot,onClick:qe,children:f.jsx(Wg,{size:13,fill:"currentColor"})}):f.jsx("button",{className:"send-button",disabled:Ae,"data-tooltip":je,"aria-label":je,children:f.jsx(dx,{size:18})})]}):f.jsxs("div",{className:"composer-primary-controls",children:[f.jsxs("div",{className:"composer-add-control open-up",ref:u,children:[f.jsx("button",{type:"button",className:`composer-icon ${l?"active":""}`,"aria-label":"Add photos and files","aria-haspopup":"menu","aria-expanded":l,disabled:E,onClick:$,children:f.jsx(gl,{size:18})}),l&&f.jsxs("div",{className:"composer-add-menu",role:"menu","aria-label":"Add context",children:[f.jsxs("button",{type:"button",role:"menuitem",onClick:ce,children:[f.jsx(JE,{size:13}),f.jsx("span",{children:f.jsx("strong",{children:"Add photos & files"})})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:ne,children:[f.jsx(sd,{size:13}),f.jsx("span",{children:f.jsx("strong",{children:"Create as agent"})})]}),D.length>0&&f.jsx("div",{className:"composer-add-menu-divider",role:"presentation"}),D.map(q=>f.jsxs("button",{type:"button",role:"menuitem","data-app-context-id":q.id,onClick:()=>Y(q),children:[f.jsx(Wf,{size:13}),f.jsxs("span",{children:[f.jsx("strong",{children:q.name}),f.jsx("small",{children:Le===q.id?"Selected planning context":"Use as planning context"})]})]},q.id))]}),f.jsx("input",{ref:U,className:"composer-file-input",type:"file",multiple:!0,tabIndex:-1,onChange:q=>{i(Array.from(q.currentTarget.files??[])),q.currentTarget.value=""}})]}),f.jsx("button",{type:"button",className:"composer-create-control","aria-label":"Make Agent",disabled:E,onClick:ne,children:f.jsx("span",{children:"Make Agent"})}),ie==="codex"?f.jsx(bc,{compact:!0,className:"permission-select",icon:f.jsx(FE,{size:14}),placement:j,label:"Codex permissions",tooltip:I1.find(q=>q.value===g)?.label,value:g,options:I1,disabled:m,onChange:q=>O(q)}):f.jsx(bc,{compact:!0,className:"permission-select",icon:f.jsx(dd,{size:14}),placement:j,label:"Command access",tooltip:A1.find(q=>q.value===(I==="disabled"?"ask":I))?.label,value:I==="disabled"?"ask":I,options:A1,disabled:m,onChange:q=>z(q)}),f.jsx("div",{className:"composer-spacer"}),f.jsxs("span",{className:`context-status-shell ${w.tone}`,style:x,children:[f.jsx("span",{className:`composer-status ${w.tone}`,role:w.maxTokens===null?"img":"meter","aria-label":w.tooltip,"aria-describedby":C,"aria-valuemin":w.maxTokens===null?void 0:0,"aria-valuemax":w.maxTokens??void 0,"aria-valuenow":w.maxTokens===null?void 0:w.usedTokens,tabIndex:0}),f.jsxs("span",{className:"context-status-tooltip",id:C,role:"tooltip",children:[f.jsx("span",{className:"context-status-tooltip-title",children:"Context window"}),f.jsxs("span",{className:"context-status-tooltip-main",children:[f.jsx("span",{children:w.summary}),f.jsx("span",{children:w.tokensLabel})]}),w.maxTokens!==null&&f.jsx("span",{className:"context-status-tooltip-bar","aria-hidden":"true",children:f.jsx("span",{})}),w.detail?f.jsx("span",{className:"context-status-tooltip-detail",children:w.detail}):null]})]}),f.jsx(bc,{compact:!0,placement:j,label:"Provider",value:ie,options:te,disabled:m,onChange:q=>{if(q==="setup-provider"){Se?.();return}ue(q)}}),Me&&f.jsx(uC,{disabled:m,model:B,modelOptions:K,placement:j,reasoningEffort:p,onModelChange:G,onReasoningEffortChange:N}),!Me&&K.length>0&&f.jsx(bc,{compact:!0,placement:j,label:"Model",value:B,options:K,disabled:m,onChange:G}),f.jsx(SC,{buttonClassName:"composer-icon",connection:S,disabled:E,iconSize:16,wrapperClassName:"composer-voice-input",showToast:Ke,onTranscript:be}),de&&xe?f.jsx(R8,{defaultMode:de,disabled:E,overrideMode:He??null,onChange:xe}):null,$e?f.jsxs("button",{type:"button",className:"composer-queue-control",disabled:R,"data-tooltip":L,"aria-label":"Queue steer draft",onClick:me,children:[f.jsx(gl,{size:13}),f.jsx("span",{children:"Queue"})]}):null,Q?f.jsx("button",{type:"button",className:"send-button stop-button","data-tooltip":ot,"aria-label":ot,onClick:qe,children:Ue==="pause"?f.jsx(OE,{size:15}):f.jsx(Wg,{size:13,fill:"currentColor"})}):$e?f.jsxs("button",{className:"send-button steer-button",disabled:Ae,"data-tooltip":"Steer","aria-label":"Steer",children:[f.jsx($c,{size:13}),f.jsx("span",{children:"Steer"})]}):f.jsx("button",{className:"send-button",disabled:Ae,"data-tooltip":je,"aria-label":je,children:f.jsx(dx,{size:18})})]})}function E8(e){return e.description||e.path}function M8({items:e,onSelect:t,onSelectIndex:n,skillIndex:o,style:i}){const l=b.useRef(null);return b.useEffect(()=>{l.current?.scrollIntoView({block:"nearest"})},[e.length,o]),f.jsx("div",{className:"composer-project-menu composer-slash-menu composer-skill-menu",role:"listbox","aria-label":"OpenPond profile skills",style:i,children:e.length>0?e.map((u,m)=>{const g=m===o;return f.jsxs("button",{type:"button",className:`composer-project-option ${g?"selected":""}`,ref:g?l:void 0,role:"option","aria-selected":g,onMouseEnter:()=>n(m),onMouseDown:p=>{p.preventDefault(),t(u)},children:[f.jsx(hl,{size:14}),f.jsxs("span",{children:[f.jsx("strong",{children:tA(u)}),f.jsx("small",{children:E8(u)})]}),g?f.jsx(ts,{size:14}):f.jsx("span",{"aria-hidden":"true"})]},u.name)}):f.jsx("div",{className:"composer-menu-empty",role:"option","aria-selected":"false",children:"No matching profile skills"})})}function P8(e){return e.implementation?.type==="openpond-agent"}function N8(e){return e.kind==="command"?`command:${e.command.id}`:e.kind==="app-context"?`app-context:${e.app.id}`:`action:${e.action.id}`}function O8(e){return e.kind==="command"?`${e.command.command} ${e.command.label}`:e.kind==="app-context"?e.app.name:Bm(e.action)}function z8(e){return e.kind==="command"?h5(e.command):e.kind==="app-context"?`Planning context${e.app.description?`: ${e.app.description}`:e.app.gitRepo?`: ${e.app.gitRepo}`:""}`:e.action.description||Dv(e.action)}function $8({actionCatalogCount:e,actionIndex:t,items:n,onSelect:o,onSelectIndex:i,style:l}){const u=b.useRef(null);return b.useEffect(()=>{u.current?.scrollIntoView({block:"nearest"})},[t,n.length]),f.jsx("div",{className:"composer-project-menu composer-slash-menu",role:"listbox","aria-label":"OpenPond agents and actions",style:l,children:n.length>0?n.map((m,g)=>f.jsxs("button",{type:"button",role:"option",ref:g===t?u:void 0,"aria-selected":g===t,className:`composer-project-option ${g===t?"selected":""}`,"data-app-context-id":m.kind==="app-context"?m.app.id:void 0,onMouseEnter:()=>i(g),onMouseDown:p=>{p.preventDefault(),o(m)},children:[m.kind==="command"?m.command.id==="create"?f.jsx(gl,{size:14}):f.jsx(Xf,{size:14}):m.kind==="app-context"?f.jsx(Wf,{size:14}):P8(m.action)?f.jsx(sd,{size:14}):f.jsx(Xf,{size:14}),f.jsxs("span",{children:[f.jsx("strong",{children:O8(m)}),f.jsx("small",{children:z8(m)})]}),g===t?f.jsx(ts,{size:14}):f.jsx("span",{"aria-hidden":"true"})]},N8(m))):f.jsx("div",{className:"composer-menu-empty",role:"option","aria-selected":"false",children:e===0?"No matching commands or apps":"No matching commands, apps, agents, or actions"})})}function D8({busy:e,initialDescription:t,open:n,onClose:o,onSubmit:i}){const[l,u]=b.useState(""),[m,g]=b.useState(()=>t.trim()),p=l.trim(),S=m.trim(),x=e||!p||!S;if(b.useEffect(()=>{n&&(u(""),g(t.trim()))},[t,n]),b.useEffect(()=>{if(!n||e)return;function w(E){E.key==="Escape"&&o()}return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[e,o,n]),!n)return null;async function C(){if(x)return;await i({title:p,description:S})&&(u(""),g(""))}return f.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:e?void 0:o,children:f.jsxs("section",{className:"git-dialog submit-issue-dialog",role:"dialog","aria-modal":"true","aria-label":"Submit GitHub issue",onMouseDown:w=>w.stopPropagation(),onKeyDown:w=>{w.key!=="Enter"||!(w.target instanceof HTMLInputElement)||(w.preventDefault(),C())},children:[f.jsx("button",{className:"git-dialog-close",disabled:e,type:"button",onClick:o,children:f.jsx(rs,{size:16})}),f.jsx("div",{className:"git-dialog-icon",children:f.jsx(gE,{size:18})}),f.jsx("h2",{children:"Submit issue"}),f.jsxs("div",{className:"git-dialog-row submit-issue-repo-row",children:[f.jsx("span",{children:"Repository"}),f.jsx("strong",{children:yb})]}),f.jsxs("label",{className:"git-dialog-field",children:[f.jsx("span",{children:"Title"}),f.jsx("input",{autoFocus:!0,disabled:e,placeholder:"Short issue title",value:l,onChange:w=>u(w.target.value)})]}),f.jsxs("label",{className:"git-dialog-field",children:[f.jsx("span",{children:"Description"}),f.jsx("textarea",{disabled:e,placeholder:"What happened, what you expected, and any useful context",value:m,onChange:w=>g(w.target.value)})]}),f.jsxs("div",{className:"git-dialog-footer",children:[f.jsx("button",{className:"git-dialog-secondary",disabled:e,type:"button",onClick:o,children:"Cancel"}),f.jsx("button",{className:"git-dialog-primary",disabled:x,type:"button",onClick:()=>{C()},children:"Submit issue"})]})]})})}const U8=new Set(["csv","css","html","js","json","jsx","log","md","mdx","py","sql","svg","ts","tsx","txt","xml","yaml","yml"]);function L8({attachment:e,onRemove:t}){const n=e.kind==="image"?ym:e.kind==="text"?hl:PE,o=e.kind!=="image";return f.jsxs("div",{className:`composer-attachment-card ${e.kind}`,children:[f.jsx("div",{className:"composer-attachment-thumb","aria-hidden":"true",children:e.previewUrl?f.jsx("img",{alt:"",decoding:"async",src:e.previewUrl}):f.jsx(n,{size:22})}),o?f.jsxs("div",{className:"composer-attachment-meta",children:[f.jsx("strong",{children:e.name}),f.jsx("span",{children:lA(e.sizeBytes)})]}):null,f.jsx("button",{type:"button",className:"composer-attachment-remove","aria-label":`Remove ${e.name}`,onClick:t,children:f.jsx(rs,{size:14})})]})}function q8(){return globalThis.crypto?.randomUUID?.()??`attachment-${Date.now()}-${Math.random().toString(36).slice(2)}`}function B8(e){if(e.type.startsWith("image/"))return"image";if(e.type.startsWith("text/"))return"text";const t=e.name.split(".").pop()?.toLowerCase()??"";return U8.has(t)?"text":"file"}async function H8(e){const[t,n]=await Promise.all([F8(e.file),e.kind==="text"?K8(e.file):Promise.resolve(void 0)]);return{id:e.id,name:e.name,mediaType:e.mediaType,sizeBytes:e.sizeBytes,kind:e.kind,contentsBase64:t,...n?{text:V8(n)}:{}}}function lA(e){if(e<1024)return`${e} B`;const t=["KB","MB","GB"];let n=e/1024;for(const o of t){if(n<1024)return`${n.toFixed(n>=10?0:1)} ${o}`;n/=1024}return`${n.toFixed(0)} TB`}function F8(e){return new Promise((t,n)=>{const o=new FileReader;o.onload=()=>{const i=typeof o.result=="string"?o.result:"",[,l=""]=i.split(",",2);t(l)},o.onerror=()=>n(o.error??new Error("Failed to read file")),o.readAsDataURL(e)})}function K8(e){return new Promise((t,n)=>{const o=new FileReader;o.onload=()=>t(typeof o.result=="string"?o.result:""),o.onerror=()=>n(o.error??new Error("Failed to read file")),o.readAsText(e)})}function V8(e){if(e.length<=bi.maxTextChars)return e;const t=`
|
|
154
|
-
[attachment text truncated]`;return`${e.slice(0,Math.max(0,bi.maxTextChars-t.length))}${t}`}function G8(){const e=b.useRef([]),t=b.useRef([]),n=b.useRef(!1),[o,i]=b.useState([]),[l,u]=b.useState(null);b.useEffect(()=>{e.current=o},[o]),b.useEffect(()=>()=>{n.current=!0;for(const C of e.current)Pu(C);for(const C of t.current)Pu(C)},[]);const m=b.useCallback(C=>{if(C.length===0)return;const w=Math.max(0,bi.maxAttachments-o.length),E=[];let j=0,U=0;for(const D of C){if(D.size>bi.maxAttachmentBytes){j+=1;continue}if(E.length>=w){U+=1;continue}E.push({id:q8(),file:D,name:D.name||"Untitled file",mediaType:D.type||"application/octet-stream",sizeBytes:D.size,kind:B8(D),...D.type.startsWith("image/")?{previewUrl:URL.createObjectURL(D)}:{}})}if(E.length>0&&(i([...o,...E]),u(null)),j>0||U>0){const D=[];j>0&&D.push(`${j} file${j===1?"":"s"} exceeded ${lA(bi.maxAttachmentBytes)}`),U>0&&D.push(`maximum ${bi.maxAttachments} attachments`),u(D.join("; "))}},[o]),g=b.useCallback(C=>{i(w=>{const E=w.find(U=>U.id===C);E&&Pu(E);const j=w.filter(U=>U.id!==C);return j.length===0&&u(null),j})},[]),p=b.useCallback(()=>{for(const C of e.current)Pu(C);e.current=[],i([]),u(null)},[]),S=b.useCallback(()=>{const C=e.current;return C.length===0||(e.current=[],t.current=C,i([]),u(null)),C},[]),x=b.useCallback((C,w)=>{if(C.length===0)return;const E=new Set(C.map(j=>j.id));if(t.current=t.current.filter(j=>!E.has(j.id)),w==="restore"&&!n.current){i(j=>{const U=new Set(j.map(B=>B.id)),D=[...C.filter(B=>!U.has(B.id)),...j];return e.current=D,D});return}for(const j of C)Pu(j)},[]);return{attachmentError:l,attachments:o,addFiles:m,clearAttachments:p,removeAttachment:g,settleStagedAttachments:x,setAttachmentError:u,stageAttachmentsForSubmit:S}}function Pu(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}const Z8=b.lazy(()=>Jn(()=>import("./ComposerCreateImproveStrip-C_LIpfSq.js"),__vite__mapDeps([19,5,6]),import.meta.url).then(e=>({default:e.ComposerCreateImproveStrip}))),W8=[],Y8=xd.find(e=>e.id==="submit-issue");function J8(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),o=/(?:^|\s)\/([a-zA-Z0-9_-]*)$/.exec(n);if(!o||typeof o.index!="number")return null;const i=o[0].lastIndexOf("/");if(i<0)return null;const l=o.index+i;return{end:n.length,query:(o[1]??"").toLowerCase(),start:l}}function X8(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),o=/(?:^|\s)\/([a-z][a-z0-9_-]*)\s$/.exec(n);if(!o)return null;const i=xd.find(u=>u.id===o[1]);if(!i)return null;const l=o[0].lastIndexOf("/");return l<0||typeof o.index!="number"?null:{command:i,end:n.length,start:o.index+l}}function Q8(e){return y5({prompt:`/${e}`})}function e9(e,t){return e.length===0?[]:e.filter(n=>t?[n.id,n.name??"",n.label??"",n.description??"",typeof n.implementation?.type=="string"?n.implementation.type:""].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function t9(e,t){return e.length===0?[]:e.filter(n=>t?[n.id,n.name,n.description??"",n.gitRepo??"",qm(n)].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function n9(e,t,n){const o=t?.trim();if(!o)return e;const i=Math.max(0,Math.min(n??0,e.length)),l=e.slice(0,i),u=e.slice(i),m=l&&!/\s$/.test(l)?" ":"",g=u&&!/^\s/.test(u)?" ":"";return`${l}${m}${o}${g}${u}`.replace(/\s+/g," ").trim()}function a9(e){const t=Na(Bm(e)||e.name||e.id);return t?`@${t}`:null}function o9({action:e,prompt:t,selectedActionMentionText:n,selectedInvocationPosition:o}){if(!e)return null;const i=n?.trim(),l=i?.startsWith("@")?i:a9(e);return l?n9(t,l,o):null}function r9({attachmentCount:e,prompt:t,selectedAction:n,selectedCommand:o}){return!!(t.trim()||e>0||n||o)}function cA({mode:e,surface:t="chat",teamUseModel:n=!1,teamUseModelLocked:o=!1,teamMentionMembers:i=[],onTeamUseModelChange:l,prompt:u,composeNotice:m=null,mentionApps:g=[],connectedAppMentions:p=[],profileSkills:S=[],selectedMentionAppId:x=null,contextWindowStatus:C,goalRuntime:w=null,subagentRuntime:E=null,createImproveRuntime:j=null,busy:U,running:D=U,submissionScopeKey:B="default",initialSteerDrafts:K=W8,steerAutoDispatchReady:I=!1,steerAutoDispatchBlocked:O=!1,showProjectFooter:N=!0,autoFocus:z=!1,focusRequestId:G=0,connection:ne,providerSettings:ce=null,provider:Y,model:ue,projectTarget:Se,actionCatalog:me=[],requestedAction:qe=null,workspaceTarget:$,codexPermissionMode:be,codexReasoningEffort:ie,openPondCommandAccessMode:fe,subagentDelegationDefaultMode:te,subagentDelegationMode:R,onProviderChange:L,onProviderSetupOpen:Q,onProjectTargetChange:Ae,onWorkspaceTargetChange:je,onModelChange:Le,onCodexPermissionModeChange:de,onCodexReasoningEffortChange:He,onOpenPondCommandAccessModeChange:xe,onSubagentDelegationModeChange:Ke,onPromptChange:Ue,onMentionAppSelect:ot,showToast:$e,onSubmit:Me,onStop:q}){const ae=b.useRef(null),H=b.useRef(null),se=b.useRef(null),we=b.useRef(null),ze=b.useRef(!1),Ye=b.useRef(0),Ct=b.useRef(0),yt=b.useRef(new Set),Et=b.useRef(D?new Set([B]):new Set),gt=b.useRef(new Set),Be=b.useRef(new Set),[it,y]=b.useState(u.length),[Z,le]=b.useState(0),[Pe,V]=b.useState(0),[he,A]=b.useState(0),[W,Ce]=b.useState(null),[ye,Te]=b.useState(null),[De,Ne]=b.useState({}),[nt,Qe]=b.useState({}),[Xe,at]=b.useState({}),[vt,ct]=b.useState(!1),[pn,hn]=b.useState(null),[Dt,Sn]=b.useState(null),[Xt,Ft]=b.useState(null),[za,Nt]=b.useState(null),[vn,xn]=b.useState(null),[sa,Qn]=b.useState(!1),[Lt,en]=b.useState(()=>({[B]:K})),[kt,On]=b.useState(null),[_a,la]=b.useState(null),[kn,un]=b.useState(""),[ea,Ln]=b.useState(!1),[ba,ka]=b.useState(""),[ca,tn]=b.useState(!1),{attachmentError:Rt,attachments:Kt,addFiles:Ot,removeAttachment:Mt,settleStagedAttachments:oe,setAttachmentError:pt,stageAttachmentsForSubmit:dt}=G8(),st=t==="team"?"Message team":e==="start"?"Ask Openpond Anything":"Ask for follow-up changes",St=as(Y,ue,ce),Tt=e==="dock"||N?"top":"bottom",En=b.useId(),Fn=b.useId(),bo={"--context-fill":`${Math.round((C.percent??0)/100*360)}deg`,"--context-bar-fill":`${C.percent??0}%`},wt=b.useMemo(()=>me.find(re=>re.id===pn)??null,[me,pn]),It=b.useMemo(()=>xd.find(re=>re.id===Dt)??null,[Dt]),Ia=o9({action:wt,prompt:u,selectedActionMentionText:za,selectedInvocationPosition:Xt}),$a=r9({attachmentCount:Kt.length,prompt:u,selectedAction:wt,selectedCommand:It}),qo=b.useMemo(()=>{const re=Math.max(0,Math.min(Xt??0,u.length));return It?{icon:It.id==="create"?"plus":"workflow",key:`command:${It.id}`,label:It.id==="create"?"Make Agent":It.id,position:re,onRemove:()=>{Sn(null),Ft(null),Nt(null)}}:wt?{icon:wt.implementation?.type==="openpond-agent"?"bot":"workflow",key:`action:${wt.id}`,label:Bm(wt),position:re,onRemove:()=>{hn(null),Ft(null),Nt(null)}}:null},[u.length,wt,It,Xt]),gn=vn===B,ro=D&&$a,vo=gn||!$a,Da=gn?"Preparing files":ro?"Steer":"Send",Kn=gn,Bo=U||gn,nr=!D||!u.trim()||Kt.length>0||!!(wt||It)||gn,Ho=Kt.length>0?"Queue supports text drafts":wt||It?"Queue plain text drafts":u.trim()?"Queue steer draft":"Type a draft to queue";function pr(re=B){const Je=yt.current;return Je.has(re)?!1:(Je.add(re),!0)}function To(re){yt.current.delete(re)}function hr(re){return yt.current.has(re)}function ar(){return hr(B)}function gr(re){xn(Je=>Je===re?null:Je)}const Fo=b.useMemo(()=>{const re=B4(ce,{enabledOnly:!0}).map(rt=>({...rt,description:void 0})),Je=$.value==="cloud"?re.filter(rt=>rt.value==="openpond"):re,tt=Je.some(rt=>rt.value===Y)?Je:[{value:Y,label:K4(Y,ce),description:"Current"},...Je],$t={value:"setup-provider",label:"Setup new provider",icon:"plus",separatorBefore:!0};return[...tt,$t]},[Y,ce,$.value]),Ko=b.useMemo(()=>Lc(Y,ce),[Y,ce]),Cn=b.useMemo(()=>LB(u,Math.min(it,u.length)),[it,u]),io=b.useMemo(()=>{if(!Cn)return[];const re=Cn.query;if(t==="team"){const rt=i.filter(Pn=>re?[Pn.name,Pn.handle??""].map(Na).some(on=>on.includes(re)):!0).map(Pn=>({kind:"team-member",member:Pn})),bn=sC(me,re).map(Pn=>({kind:"action",action:Pn}));return[...rt,...bn].slice(0,8)}const Je=g.filter(rt=>re?[Na(rt.id),Na(rt.name),rt.gitRepo?Na(rt.gitRepo):"",qm(rt)].some(Pn=>Pn.includes(re)):!0).map(rt=>({kind:"app",app:rt})),tt=sC(me,re).map(rt=>({kind:"action",action:rt})),$t=i5(p,re).map(rt=>({kind:"connected-app",app:rt}));return[...Je,...$t,...tt].slice(0,8)},[me,p,g,Cn,t,i]),jo=!!(!Kn&&Cn&&io.length>0),Xn=b.useMemo(()=>C5(u,Math.min(it,u.length)),[it,u]),Va=Xn?`${u}:${Xn.start}:${Xn.end}`:null,Aa=b.useMemo(()=>Xn?_5(S,Xn.query):[],[Xn,S]),Vo=!!(!Kn&&Xn&&Va&&ye!==Va),nn=b.useMemo(()=>J8(u,Math.min(it,u.length)),[it,u]),Mn=nn?`${u}:${nn.start}:${nn.end}`:null,Vn=b.useMemo(()=>nn?e9(me,nn.query):[],[me,nn]),an=b.useMemo(()=>nn&&t!=="team"?t9(g,nn.query):[],[nn,g,t]),yo=b.useMemo(()=>nn&&t!=="team"?Q8(nn.query):[],[nn,t]),Tn=b.useMemo(()=>[...yo.map(re=>({kind:"command",command:re})),...an.map(re=>({kind:"app-context",app:re})),...Vn.map(re=>({kind:"action",action:re}))].slice(0,10),[Vn,an,yo]),wn=!!(!Kn&&nn&&Mn&&W!==Mn),ua=!!w,Ga=ua&&w?.tone==="active",ta=Ga?"Pause goal":"Stop response",Za=Ga?"pause":"stop",ni=Se.value!=="none",zn=Sb(Lt,B,K),Ua=kt?.scopeKey===B?kt.draftId:null,La=b.useMemo(()=>zn.find(re=>re.id===_a)??null,[_a,zn]);function qa(re,Je){en(tt=>O5(tt,re,Je,re===B?K:[]))}b.useLayoutEffect(()=>{H.current?.resize()},[Kt.length,Rt,j,w,u,pn,Dt,Xt]),b.useEffect(()=>{if(!z){ze.current=!1;return}ze.current||Kn||(ze.current=!0,window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(u.length)}))},[z,Kn,u.length]),b.useEffect(()=>{!G||Ye.current===G||Kn||(Ye.current=G,window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(u.length)}))},[G,Kn,u.length]),b.useEffect(()=>{le(0)},[Cn?.query]),b.useEffect(()=>{V(0)},[Xn?.query,Aa.length]),b.useEffect(()=>{A(0)},[nn?.query,Tn.length]),b.useEffect(()=>{w||Qn(!1)},[w]),b.useEffect(()=>{pn&&!me.some(re=>re.id===pn)&&(hn(null),Ft(null))},[me,pn]),b.useEffect(()=>{if(!qe||qe.requestId<=Ct.current)return;const re=me.find(Je=>Je.id===qe.actionId);re&&(Ct.current=qe.requestId,hn(re.id),Sn(null),Ft(0),Nt(null),Ue(""),y(0),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(0,{afterToken:!0})}))},[me,Ue,qe]),b.useEffect(()=>{!wt&&!It||Ft(re=>re===null?0:Math.max(0,Math.min(re,u.length)))},[u.length,wt,It]),b.useEffect(()=>{if(!x||!ot)return;const re=g.find(Je=>Je.id===x);(!re||!GI(u,re))&&ot(null)},[g,ot,u,x]),b.useEffect(()=>{const re=H.current?.element,Je=re?.parentElement;if(!re||!Je||typeof ResizeObserver>"u")return;const tt=new ResizeObserver(()=>H.current?.resize());return tt.observe(Je),()=>tt.disconnect()},[]),b.useEffect(()=>{if(!vt)return;function re(tt){we.current?.contains(tt.target)||ct(!1)}function Je(tt){tt.key==="Escape"&&ct(!1)}return document.addEventListener("pointerdown",re),document.addEventListener("keydown",Je),()=>{document.removeEventListener("pointerdown",re),document.removeEventListener("keydown",Je)}},[vt]),b.useLayoutEffect(()=>{if(!wn)return;const re=H.current?.element,Je=ae.current;if(!re||!Je)return;const tt=re,$t=Je;function rt(){at(Rg(tt,$t))}return rt(),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0),()=>{window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}},[Kt.length,j,w,u,pn,wn]),b.useLayoutEffect(()=>{if(!Vo)return;const re=H.current?.element,Je=ae.current;if(!re||!Je)return;const tt=re,$t=Je;function rt(){Qe(Rg(tt,$t))}return rt(),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0),()=>{window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}},[Kt.length,j,w,u,pn,Vo]),b.useLayoutEffect(()=>{if(!jo)return;const re=H.current?.element,Je=ae.current;if(!re||!Je)return;const tt=re,$t=Je;function rt(){Ne(Rg(tt,$t))}return rt(),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0),()=>{window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}},[Kt.length,j,w,u,pn,jo]);function so(){hn(null),Sn(null),Ft(null),Nt(null)}function So(re){ka(re.trim()),Ln(!0)}function br(){ca||(Ln(!1),so())}function lo(){so(),Ue(""),y(0)}async function Eo(){const re=B;Be.current.add(re);const Je=await q();return Je===!1&&Be.current.delete(re),Je}function or(re,Je){const tt=Math.max(0,Math.min(it,u.length)),$t=Je?Math.max(0,Math.min(Je.start,u.length)):tt,rt=Je?Math.max($t,Math.min(Je.end,u.length)):$t,bn=u.slice(0,$t),Pn=u.slice(rt),on=bn&&!/\s$/.test(bn)?" ":"",co=Pn&&!/^\s/.test(Pn)?" ":"",uo=`${DB(re)} `,wo=`${on}${uo}${co}`,Wa=`${bn}${wo}${Pn}`,Ur=bn.length+wo.length;Ue(Wa),ot?.(re.id),y(Ur),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(Ur)})}function Pr(re){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length));or(re,{start:Cn.start,end:Je})}function Go(re){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length)),tt=Math.max(0,Math.min(Cn.start,u.length)),$t=Math.max(tt,Math.min(Je,u.length)),rt=u.slice(tt,$t).trim(),bn=`${u.slice(0,tt)}${u.slice($t)}`;hn(re.id),Sn(null),Ft(tt),Nt(rt.startsWith("@")?rt:null),Ue(bn),y(tt),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt,{afterToken:!0})})}function Nr(re){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length)),tt=Math.max(0,Math.min(Cn.start,u.length)),$t=Math.max(tt,Math.min(Je,u.length)),rt=u.slice(0,tt),bn=u.slice($t),Pn=rt&&!/\s$/.test(rt)?" ":"",on=bn&&!/^\s/.test(bn)?" ":"",co=`${a5(re)} `,uo=`${Pn}${co}${on}`,wo=`${rt}${uo}${bn}`,Wa=rt.length+uo.length;Ue(wo),y(Wa),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(Wa)})}function xo(re){if(re.kind==="team-member"){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length)),tt=re.member.handle||Na(re.member.name),$t=u.slice(0,Cn.start),rt=u.slice(Je),bn=`@${tt} `,Pn=`${$t}${bn}${rt}`,on=$t.length+bn.length;Ue(Pn),y(on),window.requestAnimationFrame(()=>H.current?.focusAtPromptIndex(on));return}if(re.kind==="app"){Pr(re.app);return}if(re.kind==="connected-app"){Nr(re.app);return}Go(re.action)}function vr(re){nn&&(Ce(null),or(re,{start:nn.start,end:nn.end}))}function Or(re){if(!nn)return;const Je=`${u.slice(0,nn.start)}${u.slice(nn.end)}`,tt=nn.start;hn(re.id),Sn(null),Ft(tt),Nt(null),Ce(null),Ue(Je),y(tt),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt,{afterToken:!0})})}function yr(re){if(!nn)return;const Je=`${u.slice(0,nn.start)}${u.slice(nn.end)}`,tt=nn.start;Sn(re.id),hn(null),Ft(tt),Nt(null),Ce(null),Ue(Je),y(tt),re.id==="submit-issue"&&So(Je),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt,{afterToken:!0})})}function zr(re){if(re.kind==="command"){yr(re.command);return}if(re.kind==="app-context"){vr(re.app);return}Or(re.action)}function $r(re){if(!Xn)return;const Je=w5(u,Xn,re);Te(null),Ue(Je.value),y(Je.cursor),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(Je.cursor)})}function Sr(){ct(!1),se.current?.click()}function _i(){ct(!1),Sn("create"),hn(null),Ft(0),Nt(null),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(0,{afterToken:!0})})}function xr(re){ct(!1),or(re)}function Dr(){const re=u.trim();if(!re||nr)return;qa(B,tt=>[...tt,M5(re)]),lo(),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(0)})}async function rn(re,Je="manual"){const tt=B;if(hr(tt)||kt?.scopeKey===tt)return!1;const $t=Sb(Lt,tt,K).find(rt=>rt.id===re);if(!$t||!pr(tt))return!1;On({draftId:re,scopeKey:tt}),pt(null);try{if(D&&await q()===!1)return!1;const rt=await Me([],null,null,{preservePrompt:!0,promptOverride:$t.prompt});return rt&&Je==="auto"&>.current.add(tt),qa(tt,bn=>N5(bn,re,rt)),rt}catch(rt){return pt(rt instanceof Error?rt.message:String(rt)),!1}finally{To(tt),On(rt=>rt?.scopeKey===tt&&rt.draftId===re?null:rt)}}function Co(re){Ua!==re&&(_a===re&&(la(null),un("")),qa(B,Je=>Kf(Je,re)))}function ki(re){if(z5({attachmentCount:Kt.length,hasSelectedAction:!!pn,hasSelectedCommand:!!Dt,prompt:u})==="load_composer"){qa(B,tt=>Kf(tt,re.id)),Ue(re.prompt),y(re.prompt.length),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(re.prompt.length)});return}la(re.id),un(re.prompt)}function Mo(){la(null),un("")}function Ii(){!La||!kn.trim()||(qa(B,re=>P5(re,La.id,kn.trim())),Mo())}function rr(){if(!La||!kn.trim())return;const re=kn.trim();qa(B,Je=>Kf(Je,La.id)),Mo(),Ue(re),y(re.length),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(re.length)})}async function Po(){if(ar())return;const re=wt||It?null:Hm(u);if(It?.id==="submit-issue"||re?.command==="submit-issue"){So(re?.command==="submit-issue"?re.args:u);return}if(vo)return;const Je=B;if(pr(Je)){ct(!1),pt(null);try{if(D&&await q()===!1)return;const tt=dt();try{xn(tt.length>0?Je:null);let $t;try{$t=await Promise.all(tt.map(H8))}finally{gr(Je)}const rt=wt&&Ia&&!u.trim()?Ia:void 0,bn=await Me($t,wt,It,Ia||rt?{...Ia?{displayPrompt:Ia}:{},...rt?{promptOverride:rt}:{}}:void 0);oe(tt,bn?"dispose":"restore"),bn&&so()}catch($t){throw oe(tt,"restore"),$t}}catch(tt){pt(tt instanceof Error?tt.message:String(tt))}finally{To(Je),gr(Je)}}}async function ai(re){if(ar()||ca)return!1;const Je=B;if(!pr(Je))return!1;tn(!0),ct(!1),pt(null);try{if(D&&await q()===!1)return!1;const tt=await Me([],null,Y8,{displayPrompt:`/submit-issue ${re.title.trim()}`,promptOverride:x5(re)});return tt&&(Ln(!1),so()),tt}catch(tt){return pt(tt instanceof Error?tt.message:String(tt)),!1}finally{To(Je),tn(!1)}}b.useEffect(()=>{const re=B;if(D){gt.current.delete(re),Et.current.add(re);return}if(Be.current.has(re)||O){Be.current.delete(re),Et.current.delete(re);return}const Je=Et.current.has(re);if(Je&&!I)return;const tt=$5({autoDispatchReady:I&&!j,hasQueuedDrafts:zn.length>0,running:D,sending:!!Ua||hr(re),waitingForStartedTurn:gt.current.has(re),wasRunning:Je});if(Et.current.delete(re),!tt)return;const $t=zn[0];$t&&rn($t.id,"auto")},[j,D,Ua,O,I,zn,B]);function Ai(re){const tt=k5(u,re,it);Ue(tt.value),y(tt.cursorIndex),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt.cursorIndex)})}return f.jsxs("form",{ref:ae,className:`composer ${e} ${j?"has-create-runtime":""} ${ua?"has-goal-runtime":""} ${ro?"is-steering":""} ${Kt.length>0?"has-attachments":""} ${wt||It?"has-selected-action":""} ${Rt?"has-attachment-error":""}`,onSubmit:re=>{re.preventDefault(),Po()},children:[jo&&f.jsx(y8,{items:io,mentionIndex:Z,onSelect:xo,onSelectIndex:le,style:De}),Vo&&f.jsx(M8,{items:Aa,onSelect:$r,onSelectIndex:V,skillIndex:Pe,style:nt}),wn&&f.jsx($8,{actionCatalogCount:me.length,actionIndex:he,items:Tn,onSelect:zr,onSelectIndex:A,style:Xe}),f.jsx(D8,{busy:ca,initialDescription:ba,open:ea,onClose:br,onSubmit:ai}),j?f.jsx(b.Suspense,{fallback:null,children:f.jsx(Z8,{runtime:j})}):null,f.jsx(D5,{drafts:zn,editDraftValue:kn,editingDraft:La,sendingDraftId:Ua,onCancelEdit:Mo,onDeleteDraft:Co,onEditDraft:ki,onEditDraftValueChange:un,onReplaceComposerDraft:rr,onSaveQueuedDraft:Ii,onSteerDraft:re=>{rn(re)}}),ua&&w&&f.jsx(j5,{detailsOpen:sa,goalRuntime:w,objectiveId:Fn,subagentRuntime:E,onToggleDetails:()=>Qn(re=>!re)}),m&&f.jsx("div",{className:`composer-notice ${m.tone}`,role:"status",children:m.message}),f.jsxs("div",{className:"composer-input-shell",children:[Kt.length>0&&f.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:Kt.map(re=>f.jsx(L8,{attachment:re,onRemove:()=>Mt(re.id)},re.id))}),Rt&&f.jsx("div",{className:"composer-attachment-error",role:"status",children:Rt}),f.jsx("div",{className:"composer-textarea-frame",onClick:re=>{re.target===re.currentTarget&&H.current?.focusAtPromptIndex(it)},children:f.jsx(m8,{ref:H,connectedAppMentions:p,disabled:Kn,onCursorChange:y,onKeyDown:re=>{if(jo){if(re.key==="ArrowDown"){re.preventDefault(),le(Je=>(Je+1)%io.length);return}if(re.key==="ArrowUp"){re.preventDefault(),le(Je=>(Je-1+io.length)%io.length);return}if(re.key==="Enter"||re.key==="Tab"){re.preventDefault(),xo(io[Z]??io[0]);return}if(re.key==="Escape"){re.preventDefault(),y(-1);return}}if(Vo){if(Aa.length>0&&re.key==="ArrowDown"){re.preventDefault(),V(Je=>(Je+1)%Aa.length);return}if(Aa.length>0&&re.key==="ArrowUp"){re.preventDefault(),V(Je=>(Je-1+Aa.length)%Aa.length);return}if(Aa.length>0&&(re.key==="Enter"||re.key==="Tab")){re.preventDefault(),$r(Aa[Pe]??Aa[0]);return}if(re.key==="Escape"){re.preventDefault(),Te(Va??u);return}}if(wn){if(Tn.length>0&&re.key==="ArrowDown"){re.preventDefault(),A(Je=>(Je+1)%Tn.length);return}if(Tn.length>0&&re.key==="ArrowUp"){re.preventDefault(),A(Je=>(Je-1+Tn.length)%Tn.length);return}if(Tn.length>0&&(re.key==="Enter"||re.key==="Tab")){re.preventDefault(),zr(Tn[he]??Tn[0]);return}if(re.key==="Escape"){re.preventDefault(),Ce(Mn??u);return}}if((wt||It)&&re.key==="Backspace"&&it===(Xt??0)){re.preventDefault(),so();return}re.key==="Enter"&&!re.shiftKey&&(re.preventDefault(),$a&&!gn&&Po())},onPromptChange:(re,Je)=>{const tt=t==="team"?null:X8(re,Je);if(tt){const $t=`${re.slice(0,tt.start)}${re.slice(tt.end)}`,rt=tt.start;Ue(re),y(Je),window.requestAnimationFrame(()=>{Sn(tt.command.id),hn(null),Ft(rt),Ce(null),Ue($t),y(rt),tt.command.id==="submit-issue"&&So($t),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(rt,{afterToken:!0})})});return}Ue(re)},onTokenPositionChange:re=>{if(!(!wt&&!It)){if(re===null){so();return}Ft(re)}},placeholder:st,prompt:u,token:qo})}),f.jsx(j8,{surface:t,teamUseModel:n,teamUseModelLocked:o,onTeamUseModelChange:l,addFiles:Ot,addMenuOpen:vt,addMenuRef:we,busy:U,codexPermissionMode:be,codexReasoningEffort:ie,connection:ne,contextStatusStyle:bo,contextStatusTooltipId:En,contextWindowStatus:C,disabled:Bo,dropdownPlacement:Tt,fileInputRef:se,mentionApps:g,modelValue:St,modelOptions:Ko,openPondCommandAccessMode:fe,onCodexPermissionModeChange:de,onCodexReasoningEffortChange:He,onOpenPondCommandAccessModeChange:xe,onModelChange:Le,onOpenFilePicker:Sr,onCreateAsAgent:_i,onPlanningAppSelect:xr,onProviderChange:L,onProviderSetupOpen:Q,onQueueDraft:Dr,onStop:Eo,onToggleAddMenu:()=>ct(re=>!re),onTranscript:Ai,provider:Y,providerSettings:ce,providerOptions:Fo,queueDraftDisabled:nr,queueDraftTooltip:Ho,running:D&&!$a,sendDisabled:vo,sendTooltip:Da,selectedMentionAppId:x,subagentDelegationDefaultMode:te,subagentDelegationMode:R,onSubagentDelegationModeChange:Ke,showToast:$e,stopIcon:Za,stopLabel:ta,steering:ro})]}),N&&f.jsxs("div",{className:"composer-footer",children:[f.jsx(A5,{busy:U||Se.busy,placement:Tt,state:Se,onChange:Ae}),ni?f.jsx(R5,{busy:U,placement:Tt,state:$,onChange:je}):null]})]})}const wC=b.memo(function({draftStore:t,...n}){const o=zB(t);return f.jsx(KI,{id:"composer",children:f.jsx(cA,{...n,prompt:o,onPromptChange:t.set})})});function CY({modelId:e,taskset:t}){const n=t.metadata.toolContractHash===Vc?c9(t):[];return{model:{providerId:"local-adapter",modelId:e},tasksetId:t.id,tasksetName:t.name,sourceProjectId:u9(t),tasks:n,selectedTaskIndex:0,sessionId:null}}function $l(e){return e?.tasks.length?e.tasks[fA(e,e.selectedTaskIndex)]??null:null}function uA(e,t){return{...e,selectedTaskIndex:fA(e,t)}}function i9(e){return uA(e,e.selectedTaskIndex+1)}function s9(e,t,n){if(!e||dA(e,n))return null;const o=$l(e);return!o||t.trim()!==o.prompt.trim()?null:{crossSystemTaskId:o.generatedTaskId,trainingTasksetId:e.tasksetId,source:"training_model_chat_handoff"}}function dA(e,t){return!e?.sourceProjectId||e.sourceProjectId===t?null:"This generated Taskset question is bound to its source Cross-System Operations project. Return to Models and choose Chat again to restore the correct project."}async function l9({model:e,connection:t,loadBootstrap:n,applyBootstrap:o}){e.providerId!=="local-adapter"||!t||o(await n(t))}function c9(e){const t=new Set;return e.tasks.flatMap(n=>{const o=typeof n.metadata.taskId=="string"?n.metadata.taskId.trim():"",i=typeof n.input.prompt=="string"?n.input.prompt.trim():"";return!o||!i||t.has(o)?[]:(t.add(o),[{authoredTaskId:n.id,generatedTaskId:o,prompt:i,split:n.split}])})}function u9(e){const t=new Set(e.sourceRefs.flatMap(n=>{const o=n.workspaceId?.trim();return o?[o]:[]}));return t.size===1?t.values().next().value??null:null}function fA(e,t){return e.tasks.length?Math.max(0,Math.min(Math.trunc(t),e.tasks.length-1)):0}function d9({busy:e,handoff:t,onDismiss:n,onSelectTask:o,servingSession:i,onStopServing:l}){const u=$l(t),m=t.selectedTaskIndex+1;return f.jsxs("section",{className:"training-chat-handoff","aria-label":"Model chat",children:[f.jsxs("div",{className:"training-chat-handoff-copy",children:[f.jsx("strong",{children:u?"Generated Taskset question":"Model chat"}),f.jsx("span",{children:t.tasksetName}),f.jsxs("small",{children:[u?`${f9(u.split)} · ${m} of ${t.tasks.length} · New chat per question`:"Ask the imported model directly",i?` · Fireworks ${i.state} · $${i.estimatedCostUsd.toFixed(4)}`:""]})]}),f.jsxs("div",{className:"training-chat-handoff-actions",children:[u?f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button","aria-label":"Previous generated question",title:"Previous question",disabled:e||t.selectedTaskIndex===0,onClick:()=>o(t.selectedTaskIndex-1),children:f.jsx(Ub,{size:14})}),f.jsx("button",{type:"button",className:"training-chat-handoff-load",disabled:e,onClick:()=>o(t.selectedTaskIndex),children:"Load question"}),f.jsx("button",{type:"button","aria-label":"Next generated question",title:"Next question",disabled:e||t.selectedTaskIndex>=t.tasks.length-1,onClick:()=>o(t.selectedTaskIndex+1),children:f.jsx($w,{size:14})})]}):null,i&&["starting","ready"].includes(i.state)?f.jsx("button",{className:"training-chat-handoff-stop",disabled:e,type:"button",onClick:()=>l?.(i.id),children:"Stop serving"}):null,f.jsx("button",{type:"button","aria-label":"Close generated question handoff",title:"Close",disabled:e,onClick:n,children:f.jsx(rs,{size:14})})]})]})}function f9(e){return e==="frozen_eval"?"Frozen evaluation":e==="validation"?"Validation":"Training"}const Ic=new Map,m9=15e3;function p9(e,t){const n=h9(e),[o,i]=b.useState(()=>n.getUrl(t));return b.useEffect(()=>{let l=!1;return i(n.getUrl(t)),n.loadUrl(t).then(u=>{l||i(u)}),()=>{l=!0}},[t,n]),o}function h9(e){const[,t]=b.useState(0),n=b.useCallback(i=>!e||!i?null:_C(kC(e,i)),[e]),o=b.useCallback(async i=>{if(!e||!i)return null;const l=kC(e,i),u=_C(l);if(u)return u;const m=Ic.get(l);if(m?.state==="loading")return m.promise;const g=ge.signChatAttachmentImageUrl(e,i).then(p=>(Ic.set(l,{state:"ready",url:p.url,expiresAt:p.expiresAt}),t(S=>S+1),p.url)).catch(()=>(Ic.delete(l),t(p=>p+1),null));return Ic.set(l,{state:"loading",promise:g}),g},[e]);return b.useMemo(()=>({getUrl:n,loadUrl:o}),[n,o])}function _C(e){const t=Ic.get(e);return t?.state!=="ready"?null:t.expiresAt<=Date.now()+m9?(Ic.delete(e),null):t.url}function kC(e,t){return[e.serverUrl,e.token,t.sessionId,t.turnId,t.attachmentId,t.storageName,t.contentType].join("\0")}const g9="openpond-coding-core-v1",b9="feature";function Cb(e){const t=new URL("/sandboxes",Uv(e.accountBaseUrl));return t.searchParams.set("teamId",e.teamId),t.searchParams.set("create","sandbox"),t.searchParams.set("intent","cloud-coding"),t.searchParams.set("source",e.source),t.searchParams.set("projectId",e.projectId),t.searchParams.set("workflowMode",b9),t.searchParams.set("runtimeProfileId",g9),e.projectName?.trim()&&t.searchParams.set("projectName",e.projectName.trim()),e.baseBranch?.trim()&&t.searchParams.set("baseBranch",e.baseBranch.trim()),e.localProjectId?.trim()&&t.searchParams.set("localProjectId",e.localProjectId.trim()),t.toString()}function v9(e){const t=e.organizationSlug?.trim(),n=t?`/sandboxes/${encodeURIComponent(t)}/billing`:"/sandboxes/billing",o=new URL(n,Uv(e.accountBaseUrl));return!t&&e.teamId?.trim()&&o.searchParams.set("teamId",e.teamId.trim()),o.toString()}function IC(e){const t=e.organizationSlug?.trim(),n=e.projectSlug?.trim();return!t||!n?null:new URL(`/${encodeURIComponent(t)}/${encodeURIComponent(n)}`,Uv(e.accountBaseUrl)).toString()}function Uv(e){const t=e?.trim();if(!t)return"https://openpond.ai";try{const n=new URL(t);return`${n.protocol}//${n.host}`}catch{return"https://openpond.ai"}}const y9=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","mjs","png","py","rs","scss","sh","sql","svg","toml","ts","tsx","txt","webp","yaml","yml","zsh"]),S9=new Set(["AGENTS.md","Dockerfile","LICENSE","Makefile","README"]),wb=String.raw`[A-Za-z0-9_.@+-]+`,x9=new RegExp(String.raw`^(?:(?:\.{1,2}|~)?[\\/]|[A-Za-z]:[\\/])?(?:${wb}[\\/])+${wb}(?::\d+(?::\d+)?)?`),C9=new RegExp(String.raw`^${wb}(?::\d+(?::\d+)?)?`),w9=/^(?:workspace|sandbox):file:[^\s<>()]+/;function _9(e,t,n={}){if(!T9(e[t-1]))return null;const o=e.slice(t),i=w9.exec(o),l=i?null:x9.exec(o),u=i||l?null:C9.exec(o),m=mA((i??l??u)?.[0]??"");if(!m)return null;const g=Gc(m,n);return g?{...g,end:t+m.length}:null}function Gc(e,t={}){const n=mA(e.trim().replace(/^['"`]+|['"`]+$/g,""));if(!n||/^https?:\/\//i.test(n))return null;const i=I9(k9(n)).replace(/:\d+(?::\d+)?$/,"");return R9(i)?{displayPath:n,path:A9(i,t.workspaceRootPath)}:null}function k9(e){const t=/^(workspace|sandbox):file:(.*)$/i.exec(e);if(!t)return e;const n=t[1]?.toLowerCase();let o=t[2]??"";return n==="sandbox"&&(o=o.replace(/^\/workspace\/app\//,"").replace(/^\/workspace\//,"")),o}function I9(e){if(!/^file:\/\//i.test(e))return e;try{return decodeURIComponent(new URL(e).pathname)}catch{return e.replace(/^file:\/\//i,"")}}function A9(e,t){let n=e.replace(/\\/g,"/").replace(/^\.\/+/,"");const o=t?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!o)return n;n.startsWith(`${o}/`)&&(n=n.slice(o.length+1));const i=o.split("/").filter(Boolean).at(-1);return i&&n.startsWith(`${i}/`)&&(n=n.slice(i.length+1)),n}function R9(e){const t=e.replace(/\\/g,"/").split("/").filter(Boolean).at(-1)??e;if(S9.has(t)||t.startsWith(".")&&t.length>1)return!0;const n=t.includes(".")?t.split(".").at(-1)?.toLowerCase():null;return!!(n&&y9.has(n))}function T9(e){return!e||/[\s([{<"'`]/.test(e)}function mA(e){return e.replace(/[.,;!?]+$/,"").replace(/[\])}]+$/,"")}const Ac=new Map,j9=15e3;function Lv(e,t){const n=pA(e),[o,i]=b.useState(()=>n.getUrl(t));return b.useEffect(()=>{let l=!1;return i(n.getUrl(t)),n.loadUrl(t).then(u=>{l||i(u)}),()=>{l=!0}},[t,n]),o}function pA(e){const[,t]=b.useState(0),n=b.useCallback(i=>!e||!i?null:AC(RC(e,i)),[e]),o=b.useCallback(async i=>{if(!e||!i)return null;const l=RC(e,i),u=AC(l);if(u)return u;const m=Ac.get(l);if(m?.state==="loading")return m.promise;const g=ge.signLocalImageUrl(e,{path:i}).then(p=>(Ac.set(l,{state:"ready",url:p.url,expiresAt:p.expiresAt}),t(S=>S+1),p.url)).catch(()=>(Ac.delete(l),t(p=>p+1),null));return Ac.set(l,{state:"loading",promise:g}),g},[e]);return b.useMemo(()=>({getUrl:n,loadUrl:o}),[n,o])}function AC(e){const t=Ac.get(e);return t?.state!=="ready"?null:t.expiresAt<=Date.now()+j9?(Ac.delete(e),null):t.url}function RC(e,t){return`${e.serverUrl}\0${e.token}\0${t}`}const Rc=new Map,E9=15e3;function qv(e,t,n){const o=hA(e),[i,l]=b.useState(()=>o.getUrl(t,n));return b.useEffect(()=>{let u=!1;return l(o.getUrl(t,n)),o.loadUrl(t,n).then(m=>{u||l(m)}),()=>{u=!0}},[t,n,o]),i}function hA(e){const[,t]=b.useState(0),n=b.useCallback((l,u)=>!e||!l||!u?null:TC(jC(e,l,u)),[e]),o=b.useCallback(async(l,u)=>{if(!e||!l||!u)return null;const m=jC(e,l,u),g=TC(m);if(g)return g;const p=Rc.get(m);if(p?.state==="loading")return p.promise;const S=ge.signWorkspaceImageUrl(e,{appId:l,path:u}).then(x=>(Rc.set(m,{state:"ready",url:x.url,expiresAt:x.expiresAt}),t(C=>C+1),x.url)).catch(()=>(Rc.delete(m),t(x=>x+1),null));return Rc.set(m,{state:"loading",promise:S}),S},[e]),i=b.useCallback((l,u)=>{o(l,u)},[o]);return b.useMemo(()=>({ensureUrl:i,getUrl:n,loadUrl:o}),[i,n,o])}function TC(e){const t=Rc.get(e);return t?.state!=="ready"?null:t.expiresAt<=Date.now()+E9?(Rc.delete(e),null):t.url}function jC(e,t,n){return`${e.serverUrl}\0${e.token}\0${t}\0${n}`}function gA({open:e,src:t,title:n,onClose:o}){const[i,l]=b.useState(!1);if(b.useEffect(()=>{if(!e)return;const g=p=>{p.key==="Escape"&&o()};return window.addEventListener("keydown",g),()=>window.removeEventListener("keydown",g)},[o,e]),b.useEffect(()=>{l(!1)},[t]),!e||!t)return null;const u=(()=>{const g=n.split("/").pop()?.trim();if(g&&/\.[A-Za-z0-9]+$/.test(g))return g;try{const S=new URL(t,window.location.href).pathname.split("/").pop()?.trim();if(S&&/\.[A-Za-z0-9]+$/.test(S))return S}catch{}return"image.png"})(),m=()=>{const g=document.createElement("a");g.href=t,g.download=u,g.rel="noopener",document.body.appendChild(g),g.click(),g.remove()};return f.jsx("div",{className:"image-lightbox-backdrop",role:"presentation",onMouseDown:g=>{g.target===g.currentTarget&&o()},children:f.jsxs("section",{"aria-label":n?`Image preview: ${n}`:"Image preview","aria-modal":"true",className:"image-lightbox-dialog",role:"dialog",children:[f.jsxs("header",{className:"image-lightbox-header",children:[f.jsx("span",{title:n,children:n}),f.jsxs("div",{className:"image-lightbox-actions",children:[f.jsx("button",{type:"button","aria-label":"Download image",title:"Download",onClick:m,children:f.jsx(qw,{size:16})}),f.jsx("button",{type:"button","aria-label":"Close image preview",title:"Close",onClick:o,children:f.jsx(rs,{size:16})})]})]}),f.jsx("div",{className:"image-lightbox-frame",children:i?f.jsx("div",{className:"image-lightbox-error",children:"Image preview unavailable"}):f.jsx("img",{alt:n||"Image preview",decoding:"async",draggable:!1,src:t,onError:()=>l(!0)})})]})})}function M9(e){const t=e.replace(/\r\n/g,`
|
|
154
|
+
[attachment text truncated]`;return`${e.slice(0,Math.max(0,bi.maxTextChars-t.length))}${t}`}function G8(){const e=b.useRef([]),t=b.useRef([]),n=b.useRef(!1),[o,i]=b.useState([]),[l,u]=b.useState(null);b.useEffect(()=>{e.current=o},[o]),b.useEffect(()=>()=>{n.current=!0;for(const C of e.current)Pu(C);for(const C of t.current)Pu(C)},[]);const m=b.useCallback(C=>{if(C.length===0)return;const w=Math.max(0,bi.maxAttachments-o.length),E=[];let j=0,U=0;for(const D of C){if(D.size>bi.maxAttachmentBytes){j+=1;continue}if(E.length>=w){U+=1;continue}E.push({id:q8(),file:D,name:D.name||"Untitled file",mediaType:D.type||"application/octet-stream",sizeBytes:D.size,kind:B8(D),...D.type.startsWith("image/")?{previewUrl:URL.createObjectURL(D)}:{}})}if(E.length>0&&(i([...o,...E]),u(null)),j>0||U>0){const D=[];j>0&&D.push(`${j} file${j===1?"":"s"} exceeded ${lA(bi.maxAttachmentBytes)}`),U>0&&D.push(`maximum ${bi.maxAttachments} attachments`),u(D.join("; "))}},[o]),g=b.useCallback(C=>{i(w=>{const E=w.find(U=>U.id===C);E&&Pu(E);const j=w.filter(U=>U.id!==C);return j.length===0&&u(null),j})},[]),p=b.useCallback(()=>{for(const C of e.current)Pu(C);e.current=[],i([]),u(null)},[]),S=b.useCallback(()=>{const C=e.current;return C.length===0||(e.current=[],t.current=C,i([]),u(null)),C},[]),x=b.useCallback((C,w)=>{if(C.length===0)return;const E=new Set(C.map(j=>j.id));if(t.current=t.current.filter(j=>!E.has(j.id)),w==="restore"&&!n.current){i(j=>{const U=new Set(j.map(B=>B.id)),D=[...C.filter(B=>!U.has(B.id)),...j];return e.current=D,D});return}for(const j of C)Pu(j)},[]);return{attachmentError:l,attachments:o,addFiles:m,clearAttachments:p,removeAttachment:g,settleStagedAttachments:x,setAttachmentError:u,stageAttachmentsForSubmit:S}}function Pu(e){e.previewUrl&&URL.revokeObjectURL(e.previewUrl)}const Z8=b.lazy(()=>Jn(()=>import("./ComposerCreateImproveStrip-SAzjMJxi.js"),__vite__mapDeps([19,5,6]),import.meta.url).then(e=>({default:e.ComposerCreateImproveStrip}))),W8=[],Y8=xd.find(e=>e.id==="submit-issue");function J8(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),o=/(?:^|\s)\/([a-zA-Z0-9_-]*)$/.exec(n);if(!o||typeof o.index!="number")return null;const i=o[0].lastIndexOf("/");if(i<0)return null;const l=o.index+i;return{end:n.length,query:(o[1]??"").toLowerCase(),start:l}}function X8(e,t){const n=e.slice(0,Math.max(0,Math.min(t,e.length))),o=/(?:^|\s)\/([a-z][a-z0-9_-]*)\s$/.exec(n);if(!o)return null;const i=xd.find(u=>u.id===o[1]);if(!i)return null;const l=o[0].lastIndexOf("/");return l<0||typeof o.index!="number"?null:{command:i,end:n.length,start:o.index+l}}function Q8(e){return y5({prompt:`/${e}`})}function e9(e,t){return e.length===0?[]:e.filter(n=>t?[n.id,n.name??"",n.label??"",n.description??"",typeof n.implementation?.type=="string"?n.implementation.type:""].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function t9(e,t){return e.length===0?[]:e.filter(n=>t?[n.id,n.name,n.description??"",n.gitRepo??"",qm(n)].join(" ").toLowerCase().includes(t):!0).slice(0,8)}function n9(e,t,n){const o=t?.trim();if(!o)return e;const i=Math.max(0,Math.min(n??0,e.length)),l=e.slice(0,i),u=e.slice(i),m=l&&!/\s$/.test(l)?" ":"",g=u&&!/^\s/.test(u)?" ":"";return`${l}${m}${o}${g}${u}`.replace(/\s+/g," ").trim()}function a9(e){const t=Na(Bm(e)||e.name||e.id);return t?`@${t}`:null}function o9({action:e,prompt:t,selectedActionMentionText:n,selectedInvocationPosition:o}){if(!e)return null;const i=n?.trim(),l=i?.startsWith("@")?i:a9(e);return l?n9(t,l,o):null}function r9({attachmentCount:e,prompt:t,selectedAction:n,selectedCommand:o}){return!!(t.trim()||e>0||n||o)}function cA({mode:e,surface:t="chat",teamUseModel:n=!1,teamUseModelLocked:o=!1,teamMentionMembers:i=[],onTeamUseModelChange:l,prompt:u,composeNotice:m=null,mentionApps:g=[],connectedAppMentions:p=[],profileSkills:S=[],selectedMentionAppId:x=null,contextWindowStatus:C,goalRuntime:w=null,subagentRuntime:E=null,createImproveRuntime:j=null,busy:U,running:D=U,submissionScopeKey:B="default",initialSteerDrafts:K=W8,steerAutoDispatchReady:I=!1,steerAutoDispatchBlocked:O=!1,showProjectFooter:N=!0,autoFocus:z=!1,focusRequestId:G=0,connection:ne,providerSettings:ce=null,provider:Y,model:ue,projectTarget:Se,actionCatalog:me=[],requestedAction:qe=null,workspaceTarget:$,codexPermissionMode:be,codexReasoningEffort:ie,openPondCommandAccessMode:fe,subagentDelegationDefaultMode:te,subagentDelegationMode:R,onProviderChange:L,onProviderSetupOpen:Q,onProjectTargetChange:Ae,onWorkspaceTargetChange:je,onModelChange:Le,onCodexPermissionModeChange:de,onCodexReasoningEffortChange:He,onOpenPondCommandAccessModeChange:xe,onSubagentDelegationModeChange:Ke,onPromptChange:Ue,onMentionAppSelect:ot,showToast:$e,onSubmit:Me,onStop:q}){const ae=b.useRef(null),H=b.useRef(null),se=b.useRef(null),we=b.useRef(null),ze=b.useRef(!1),Ye=b.useRef(0),Ct=b.useRef(0),yt=b.useRef(new Set),Et=b.useRef(D?new Set([B]):new Set),gt=b.useRef(new Set),Be=b.useRef(new Set),[it,y]=b.useState(u.length),[Z,le]=b.useState(0),[Pe,V]=b.useState(0),[he,A]=b.useState(0),[W,Ce]=b.useState(null),[ye,Te]=b.useState(null),[De,Ne]=b.useState({}),[nt,Qe]=b.useState({}),[Xe,at]=b.useState({}),[vt,ct]=b.useState(!1),[pn,hn]=b.useState(null),[Dt,Sn]=b.useState(null),[Xt,Ft]=b.useState(null),[za,Nt]=b.useState(null),[vn,xn]=b.useState(null),[sa,Qn]=b.useState(!1),[Lt,en]=b.useState(()=>({[B]:K})),[kt,On]=b.useState(null),[_a,la]=b.useState(null),[kn,un]=b.useState(""),[ea,Ln]=b.useState(!1),[ba,ka]=b.useState(""),[ca,tn]=b.useState(!1),{attachmentError:Rt,attachments:Kt,addFiles:Ot,removeAttachment:Mt,settleStagedAttachments:oe,setAttachmentError:pt,stageAttachmentsForSubmit:dt}=G8(),st=t==="team"?"Message team":e==="start"?"Ask Openpond Anything":"Ask for follow-up changes",St=as(Y,ue,ce),Tt=e==="dock"||N?"top":"bottom",En=b.useId(),Fn=b.useId(),bo={"--context-fill":`${Math.round((C.percent??0)/100*360)}deg`,"--context-bar-fill":`${C.percent??0}%`},wt=b.useMemo(()=>me.find(re=>re.id===pn)??null,[me,pn]),It=b.useMemo(()=>xd.find(re=>re.id===Dt)??null,[Dt]),Ia=o9({action:wt,prompt:u,selectedActionMentionText:za,selectedInvocationPosition:Xt}),$a=r9({attachmentCount:Kt.length,prompt:u,selectedAction:wt,selectedCommand:It}),qo=b.useMemo(()=>{const re=Math.max(0,Math.min(Xt??0,u.length));return It?{icon:It.id==="create"?"plus":"workflow",key:`command:${It.id}`,label:It.id==="create"?"Make Agent":It.id,position:re,onRemove:()=>{Sn(null),Ft(null),Nt(null)}}:wt?{icon:wt.implementation?.type==="openpond-agent"?"bot":"workflow",key:`action:${wt.id}`,label:Bm(wt),position:re,onRemove:()=>{hn(null),Ft(null),Nt(null)}}:null},[u.length,wt,It,Xt]),gn=vn===B,ro=D&&$a,vo=gn||!$a,Da=gn?"Preparing files":ro?"Steer":"Send",Kn=gn,Bo=U||gn,nr=!D||!u.trim()||Kt.length>0||!!(wt||It)||gn,Ho=Kt.length>0?"Queue supports text drafts":wt||It?"Queue plain text drafts":u.trim()?"Queue steer draft":"Type a draft to queue";function pr(re=B){const Je=yt.current;return Je.has(re)?!1:(Je.add(re),!0)}function To(re){yt.current.delete(re)}function hr(re){return yt.current.has(re)}function ar(){return hr(B)}function gr(re){xn(Je=>Je===re?null:Je)}const Fo=b.useMemo(()=>{const re=B4(ce,{enabledOnly:!0}).map(rt=>({...rt,description:void 0})),Je=$.value==="cloud"?re.filter(rt=>rt.value==="openpond"):re,tt=Je.some(rt=>rt.value===Y)?Je:[{value:Y,label:K4(Y,ce),description:"Current"},...Je],$t={value:"setup-provider",label:"Setup new provider",icon:"plus",separatorBefore:!0};return[...tt,$t]},[Y,ce,$.value]),Ko=b.useMemo(()=>Lc(Y,ce),[Y,ce]),Cn=b.useMemo(()=>LB(u,Math.min(it,u.length)),[it,u]),io=b.useMemo(()=>{if(!Cn)return[];const re=Cn.query;if(t==="team"){const rt=i.filter(Pn=>re?[Pn.name,Pn.handle??""].map(Na).some(on=>on.includes(re)):!0).map(Pn=>({kind:"team-member",member:Pn})),bn=sC(me,re).map(Pn=>({kind:"action",action:Pn}));return[...rt,...bn].slice(0,8)}const Je=g.filter(rt=>re?[Na(rt.id),Na(rt.name),rt.gitRepo?Na(rt.gitRepo):"",qm(rt)].some(Pn=>Pn.includes(re)):!0).map(rt=>({kind:"app",app:rt})),tt=sC(me,re).map(rt=>({kind:"action",action:rt})),$t=i5(p,re).map(rt=>({kind:"connected-app",app:rt}));return[...Je,...$t,...tt].slice(0,8)},[me,p,g,Cn,t,i]),jo=!!(!Kn&&Cn&&io.length>0),Xn=b.useMemo(()=>C5(u,Math.min(it,u.length)),[it,u]),Va=Xn?`${u}:${Xn.start}:${Xn.end}`:null,Aa=b.useMemo(()=>Xn?_5(S,Xn.query):[],[Xn,S]),Vo=!!(!Kn&&Xn&&Va&&ye!==Va),nn=b.useMemo(()=>J8(u,Math.min(it,u.length)),[it,u]),Mn=nn?`${u}:${nn.start}:${nn.end}`:null,Vn=b.useMemo(()=>nn?e9(me,nn.query):[],[me,nn]),an=b.useMemo(()=>nn&&t!=="team"?t9(g,nn.query):[],[nn,g,t]),yo=b.useMemo(()=>nn&&t!=="team"?Q8(nn.query):[],[nn,t]),Tn=b.useMemo(()=>[...yo.map(re=>({kind:"command",command:re})),...an.map(re=>({kind:"app-context",app:re})),...Vn.map(re=>({kind:"action",action:re}))].slice(0,10),[Vn,an,yo]),wn=!!(!Kn&&nn&&Mn&&W!==Mn),ua=!!w,Ga=ua&&w?.tone==="active",ta=Ga?"Pause goal":"Stop response",Za=Ga?"pause":"stop",ni=Se.value!=="none",zn=Sb(Lt,B,K),Ua=kt?.scopeKey===B?kt.draftId:null,La=b.useMemo(()=>zn.find(re=>re.id===_a)??null,[_a,zn]);function qa(re,Je){en(tt=>O5(tt,re,Je,re===B?K:[]))}b.useLayoutEffect(()=>{H.current?.resize()},[Kt.length,Rt,j,w,u,pn,Dt,Xt]),b.useEffect(()=>{if(!z){ze.current=!1;return}ze.current||Kn||(ze.current=!0,window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(u.length)}))},[z,Kn,u.length]),b.useEffect(()=>{!G||Ye.current===G||Kn||(Ye.current=G,window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(u.length)}))},[G,Kn,u.length]),b.useEffect(()=>{le(0)},[Cn?.query]),b.useEffect(()=>{V(0)},[Xn?.query,Aa.length]),b.useEffect(()=>{A(0)},[nn?.query,Tn.length]),b.useEffect(()=>{w||Qn(!1)},[w]),b.useEffect(()=>{pn&&!me.some(re=>re.id===pn)&&(hn(null),Ft(null))},[me,pn]),b.useEffect(()=>{if(!qe||qe.requestId<=Ct.current)return;const re=me.find(Je=>Je.id===qe.actionId);re&&(Ct.current=qe.requestId,hn(re.id),Sn(null),Ft(0),Nt(null),Ue(""),y(0),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(0,{afterToken:!0})}))},[me,Ue,qe]),b.useEffect(()=>{!wt&&!It||Ft(re=>re===null?0:Math.max(0,Math.min(re,u.length)))},[u.length,wt,It]),b.useEffect(()=>{if(!x||!ot)return;const re=g.find(Je=>Je.id===x);(!re||!GI(u,re))&&ot(null)},[g,ot,u,x]),b.useEffect(()=>{const re=H.current?.element,Je=re?.parentElement;if(!re||!Je||typeof ResizeObserver>"u")return;const tt=new ResizeObserver(()=>H.current?.resize());return tt.observe(Je),()=>tt.disconnect()},[]),b.useEffect(()=>{if(!vt)return;function re(tt){we.current?.contains(tt.target)||ct(!1)}function Je(tt){tt.key==="Escape"&&ct(!1)}return document.addEventListener("pointerdown",re),document.addEventListener("keydown",Je),()=>{document.removeEventListener("pointerdown",re),document.removeEventListener("keydown",Je)}},[vt]),b.useLayoutEffect(()=>{if(!wn)return;const re=H.current?.element,Je=ae.current;if(!re||!Je)return;const tt=re,$t=Je;function rt(){at(Rg(tt,$t))}return rt(),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0),()=>{window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}},[Kt.length,j,w,u,pn,wn]),b.useLayoutEffect(()=>{if(!Vo)return;const re=H.current?.element,Je=ae.current;if(!re||!Je)return;const tt=re,$t=Je;function rt(){Qe(Rg(tt,$t))}return rt(),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0),()=>{window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}},[Kt.length,j,w,u,pn,Vo]),b.useLayoutEffect(()=>{if(!jo)return;const re=H.current?.element,Je=ae.current;if(!re||!Je)return;const tt=re,$t=Je;function rt(){Ne(Rg(tt,$t))}return rt(),window.addEventListener("resize",rt),window.addEventListener("scroll",rt,!0),()=>{window.removeEventListener("resize",rt),window.removeEventListener("scroll",rt,!0)}},[Kt.length,j,w,u,pn,jo]);function so(){hn(null),Sn(null),Ft(null),Nt(null)}function So(re){ka(re.trim()),Ln(!0)}function br(){ca||(Ln(!1),so())}function lo(){so(),Ue(""),y(0)}async function Eo(){const re=B;Be.current.add(re);const Je=await q();return Je===!1&&Be.current.delete(re),Je}function or(re,Je){const tt=Math.max(0,Math.min(it,u.length)),$t=Je?Math.max(0,Math.min(Je.start,u.length)):tt,rt=Je?Math.max($t,Math.min(Je.end,u.length)):$t,bn=u.slice(0,$t),Pn=u.slice(rt),on=bn&&!/\s$/.test(bn)?" ":"",co=Pn&&!/^\s/.test(Pn)?" ":"",uo=`${DB(re)} `,wo=`${on}${uo}${co}`,Wa=`${bn}${wo}${Pn}`,Ur=bn.length+wo.length;Ue(Wa),ot?.(re.id),y(Ur),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(Ur)})}function Pr(re){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length));or(re,{start:Cn.start,end:Je})}function Go(re){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length)),tt=Math.max(0,Math.min(Cn.start,u.length)),$t=Math.max(tt,Math.min(Je,u.length)),rt=u.slice(tt,$t).trim(),bn=`${u.slice(0,tt)}${u.slice($t)}`;hn(re.id),Sn(null),Ft(tt),Nt(rt.startsWith("@")?rt:null),Ue(bn),y(tt),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt,{afterToken:!0})})}function Nr(re){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length)),tt=Math.max(0,Math.min(Cn.start,u.length)),$t=Math.max(tt,Math.min(Je,u.length)),rt=u.slice(0,tt),bn=u.slice($t),Pn=rt&&!/\s$/.test(rt)?" ":"",on=bn&&!/^\s/.test(bn)?" ":"",co=`${a5(re)} `,uo=`${Pn}${co}${on}`,wo=`${rt}${uo}${bn}`,Wa=rt.length+uo.length;Ue(wo),y(Wa),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(Wa)})}function xo(re){if(re.kind==="team-member"){if(!Cn)return;const Je=Math.max(0,Math.min(it,u.length)),tt=re.member.handle||Na(re.member.name),$t=u.slice(0,Cn.start),rt=u.slice(Je),bn=`@${tt} `,Pn=`${$t}${bn}${rt}`,on=$t.length+bn.length;Ue(Pn),y(on),window.requestAnimationFrame(()=>H.current?.focusAtPromptIndex(on));return}if(re.kind==="app"){Pr(re.app);return}if(re.kind==="connected-app"){Nr(re.app);return}Go(re.action)}function vr(re){nn&&(Ce(null),or(re,{start:nn.start,end:nn.end}))}function Or(re){if(!nn)return;const Je=`${u.slice(0,nn.start)}${u.slice(nn.end)}`,tt=nn.start;hn(re.id),Sn(null),Ft(tt),Nt(null),Ce(null),Ue(Je),y(tt),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt,{afterToken:!0})})}function yr(re){if(!nn)return;const Je=`${u.slice(0,nn.start)}${u.slice(nn.end)}`,tt=nn.start;Sn(re.id),hn(null),Ft(tt),Nt(null),Ce(null),Ue(Je),y(tt),re.id==="submit-issue"&&So(Je),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt,{afterToken:!0})})}function zr(re){if(re.kind==="command"){yr(re.command);return}if(re.kind==="app-context"){vr(re.app);return}Or(re.action)}function $r(re){if(!Xn)return;const Je=w5(u,Xn,re);Te(null),Ue(Je.value),y(Je.cursor),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(Je.cursor)})}function Sr(){ct(!1),se.current?.click()}function _i(){ct(!1),Sn("create"),hn(null),Ft(0),Nt(null),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(0,{afterToken:!0})})}function xr(re){ct(!1),or(re)}function Dr(){const re=u.trim();if(!re||nr)return;qa(B,tt=>[...tt,M5(re)]),lo(),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(0)})}async function rn(re,Je="manual"){const tt=B;if(hr(tt)||kt?.scopeKey===tt)return!1;const $t=Sb(Lt,tt,K).find(rt=>rt.id===re);if(!$t||!pr(tt))return!1;On({draftId:re,scopeKey:tt}),pt(null);try{if(D&&await q()===!1)return!1;const rt=await Me([],null,null,{preservePrompt:!0,promptOverride:$t.prompt});return rt&&Je==="auto"&>.current.add(tt),qa(tt,bn=>N5(bn,re,rt)),rt}catch(rt){return pt(rt instanceof Error?rt.message:String(rt)),!1}finally{To(tt),On(rt=>rt?.scopeKey===tt&&rt.draftId===re?null:rt)}}function Co(re){Ua!==re&&(_a===re&&(la(null),un("")),qa(B,Je=>Kf(Je,re)))}function ki(re){if(z5({attachmentCount:Kt.length,hasSelectedAction:!!pn,hasSelectedCommand:!!Dt,prompt:u})==="load_composer"){qa(B,tt=>Kf(tt,re.id)),Ue(re.prompt),y(re.prompt.length),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(re.prompt.length)});return}la(re.id),un(re.prompt)}function Mo(){la(null),un("")}function Ii(){!La||!kn.trim()||(qa(B,re=>P5(re,La.id,kn.trim())),Mo())}function rr(){if(!La||!kn.trim())return;const re=kn.trim();qa(B,Je=>Kf(Je,La.id)),Mo(),Ue(re),y(re.length),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(re.length)})}async function Po(){if(ar())return;const re=wt||It?null:Hm(u);if(It?.id==="submit-issue"||re?.command==="submit-issue"){So(re?.command==="submit-issue"?re.args:u);return}if(vo)return;const Je=B;if(pr(Je)){ct(!1),pt(null);try{if(D&&await q()===!1)return;const tt=dt();try{xn(tt.length>0?Je:null);let $t;try{$t=await Promise.all(tt.map(H8))}finally{gr(Je)}const rt=wt&&Ia&&!u.trim()?Ia:void 0,bn=await Me($t,wt,It,Ia||rt?{...Ia?{displayPrompt:Ia}:{},...rt?{promptOverride:rt}:{}}:void 0);oe(tt,bn?"dispose":"restore"),bn&&so()}catch($t){throw oe(tt,"restore"),$t}}catch(tt){pt(tt instanceof Error?tt.message:String(tt))}finally{To(Je),gr(Je)}}}async function ai(re){if(ar()||ca)return!1;const Je=B;if(!pr(Je))return!1;tn(!0),ct(!1),pt(null);try{if(D&&await q()===!1)return!1;const tt=await Me([],null,Y8,{displayPrompt:`/submit-issue ${re.title.trim()}`,promptOverride:x5(re)});return tt&&(Ln(!1),so()),tt}catch(tt){return pt(tt instanceof Error?tt.message:String(tt)),!1}finally{To(Je),tn(!1)}}b.useEffect(()=>{const re=B;if(D){gt.current.delete(re),Et.current.add(re);return}if(Be.current.has(re)||O){Be.current.delete(re),Et.current.delete(re);return}const Je=Et.current.has(re);if(Je&&!I)return;const tt=$5({autoDispatchReady:I&&!j,hasQueuedDrafts:zn.length>0,running:D,sending:!!Ua||hr(re),waitingForStartedTurn:gt.current.has(re),wasRunning:Je});if(Et.current.delete(re),!tt)return;const $t=zn[0];$t&&rn($t.id,"auto")},[j,D,Ua,O,I,zn,B]);function Ai(re){const tt=k5(u,re,it);Ue(tt.value),y(tt.cursorIndex),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(tt.cursorIndex)})}return f.jsxs("form",{ref:ae,className:`composer ${e} ${j?"has-create-runtime":""} ${ua?"has-goal-runtime":""} ${ro?"is-steering":""} ${Kt.length>0?"has-attachments":""} ${wt||It?"has-selected-action":""} ${Rt?"has-attachment-error":""}`,onSubmit:re=>{re.preventDefault(),Po()},children:[jo&&f.jsx(y8,{items:io,mentionIndex:Z,onSelect:xo,onSelectIndex:le,style:De}),Vo&&f.jsx(M8,{items:Aa,onSelect:$r,onSelectIndex:V,skillIndex:Pe,style:nt}),wn&&f.jsx($8,{actionCatalogCount:me.length,actionIndex:he,items:Tn,onSelect:zr,onSelectIndex:A,style:Xe}),f.jsx(D8,{busy:ca,initialDescription:ba,open:ea,onClose:br,onSubmit:ai}),j?f.jsx(b.Suspense,{fallback:null,children:f.jsx(Z8,{runtime:j})}):null,f.jsx(D5,{drafts:zn,editDraftValue:kn,editingDraft:La,sendingDraftId:Ua,onCancelEdit:Mo,onDeleteDraft:Co,onEditDraft:ki,onEditDraftValueChange:un,onReplaceComposerDraft:rr,onSaveQueuedDraft:Ii,onSteerDraft:re=>{rn(re)}}),ua&&w&&f.jsx(j5,{detailsOpen:sa,goalRuntime:w,objectiveId:Fn,subagentRuntime:E,onToggleDetails:()=>Qn(re=>!re)}),m&&f.jsx("div",{className:`composer-notice ${m.tone}`,role:"status",children:m.message}),f.jsxs("div",{className:"composer-input-shell",children:[Kt.length>0&&f.jsx("div",{className:"composer-attachments","aria-label":"Selected attachments",children:Kt.map(re=>f.jsx(L8,{attachment:re,onRemove:()=>Mt(re.id)},re.id))}),Rt&&f.jsx("div",{className:"composer-attachment-error",role:"status",children:Rt}),f.jsx("div",{className:"composer-textarea-frame",onClick:re=>{re.target===re.currentTarget&&H.current?.focusAtPromptIndex(it)},children:f.jsx(m8,{ref:H,connectedAppMentions:p,disabled:Kn,onCursorChange:y,onKeyDown:re=>{if(jo){if(re.key==="ArrowDown"){re.preventDefault(),le(Je=>(Je+1)%io.length);return}if(re.key==="ArrowUp"){re.preventDefault(),le(Je=>(Je-1+io.length)%io.length);return}if(re.key==="Enter"||re.key==="Tab"){re.preventDefault(),xo(io[Z]??io[0]);return}if(re.key==="Escape"){re.preventDefault(),y(-1);return}}if(Vo){if(Aa.length>0&&re.key==="ArrowDown"){re.preventDefault(),V(Je=>(Je+1)%Aa.length);return}if(Aa.length>0&&re.key==="ArrowUp"){re.preventDefault(),V(Je=>(Je-1+Aa.length)%Aa.length);return}if(Aa.length>0&&(re.key==="Enter"||re.key==="Tab")){re.preventDefault(),$r(Aa[Pe]??Aa[0]);return}if(re.key==="Escape"){re.preventDefault(),Te(Va??u);return}}if(wn){if(Tn.length>0&&re.key==="ArrowDown"){re.preventDefault(),A(Je=>(Je+1)%Tn.length);return}if(Tn.length>0&&re.key==="ArrowUp"){re.preventDefault(),A(Je=>(Je-1+Tn.length)%Tn.length);return}if(Tn.length>0&&(re.key==="Enter"||re.key==="Tab")){re.preventDefault(),zr(Tn[he]??Tn[0]);return}if(re.key==="Escape"){re.preventDefault(),Ce(Mn??u);return}}if((wt||It)&&re.key==="Backspace"&&it===(Xt??0)){re.preventDefault(),so();return}re.key==="Enter"&&!re.shiftKey&&(re.preventDefault(),$a&&!gn&&Po())},onPromptChange:(re,Je)=>{const tt=t==="team"?null:X8(re,Je);if(tt){const $t=`${re.slice(0,tt.start)}${re.slice(tt.end)}`,rt=tt.start;Ue(re),y(Je),window.requestAnimationFrame(()=>{Sn(tt.command.id),hn(null),Ft(rt),Ce(null),Ue($t),y(rt),tt.command.id==="submit-issue"&&So($t),window.requestAnimationFrame(()=>{H.current?.focusAtPromptIndex(rt,{afterToken:!0})})});return}Ue(re)},onTokenPositionChange:re=>{if(!(!wt&&!It)){if(re===null){so();return}Ft(re)}},placeholder:st,prompt:u,token:qo})}),f.jsx(j8,{surface:t,teamUseModel:n,teamUseModelLocked:o,onTeamUseModelChange:l,addFiles:Ot,addMenuOpen:vt,addMenuRef:we,busy:U,codexPermissionMode:be,codexReasoningEffort:ie,connection:ne,contextStatusStyle:bo,contextStatusTooltipId:En,contextWindowStatus:C,disabled:Bo,dropdownPlacement:Tt,fileInputRef:se,mentionApps:g,modelValue:St,modelOptions:Ko,openPondCommandAccessMode:fe,onCodexPermissionModeChange:de,onCodexReasoningEffortChange:He,onOpenPondCommandAccessModeChange:xe,onModelChange:Le,onOpenFilePicker:Sr,onCreateAsAgent:_i,onPlanningAppSelect:xr,onProviderChange:L,onProviderSetupOpen:Q,onQueueDraft:Dr,onStop:Eo,onToggleAddMenu:()=>ct(re=>!re),onTranscript:Ai,provider:Y,providerSettings:ce,providerOptions:Fo,queueDraftDisabled:nr,queueDraftTooltip:Ho,running:D&&!$a,sendDisabled:vo,sendTooltip:Da,selectedMentionAppId:x,subagentDelegationDefaultMode:te,subagentDelegationMode:R,onSubagentDelegationModeChange:Ke,showToast:$e,stopIcon:Za,stopLabel:ta,steering:ro})]}),N&&f.jsxs("div",{className:"composer-footer",children:[f.jsx(A5,{busy:U||Se.busy,placement:Tt,state:Se,onChange:Ae}),ni?f.jsx(R5,{busy:U,placement:Tt,state:$,onChange:je}):null]})]})}const wC=b.memo(function({draftStore:t,...n}){const o=zB(t);return f.jsx(KI,{id:"composer",children:f.jsx(cA,{...n,prompt:o,onPromptChange:t.set})})});function CY({modelId:e,taskset:t}){const n=t.metadata.toolContractHash===Vc?c9(t):[];return{model:{providerId:"local-adapter",modelId:e},tasksetId:t.id,tasksetName:t.name,sourceProjectId:u9(t),tasks:n,selectedTaskIndex:0,sessionId:null}}function $l(e){return e?.tasks.length?e.tasks[fA(e,e.selectedTaskIndex)]??null:null}function uA(e,t){return{...e,selectedTaskIndex:fA(e,t)}}function i9(e){return uA(e,e.selectedTaskIndex+1)}function s9(e,t,n){if(!e||dA(e,n))return null;const o=$l(e);return!o||t.trim()!==o.prompt.trim()?null:{crossSystemTaskId:o.generatedTaskId,trainingTasksetId:e.tasksetId,source:"training_model_chat_handoff"}}function dA(e,t){return!e?.sourceProjectId||e.sourceProjectId===t?null:"This generated Taskset question is bound to its source Cross-System Operations project. Return to Models and choose Chat again to restore the correct project."}async function l9({model:e,connection:t,loadBootstrap:n,applyBootstrap:o}){e.providerId!=="local-adapter"||!t||o(await n(t))}function c9(e){const t=new Set;return e.tasks.flatMap(n=>{const o=typeof n.metadata.taskId=="string"?n.metadata.taskId.trim():"",i=typeof n.input.prompt=="string"?n.input.prompt.trim():"";return!o||!i||t.has(o)?[]:(t.add(o),[{authoredTaskId:n.id,generatedTaskId:o,prompt:i,split:n.split}])})}function u9(e){const t=new Set(e.sourceRefs.flatMap(n=>{const o=n.workspaceId?.trim();return o?[o]:[]}));return t.size===1?t.values().next().value??null:null}function fA(e,t){return e.tasks.length?Math.max(0,Math.min(Math.trunc(t),e.tasks.length-1)):0}function d9({busy:e,handoff:t,onDismiss:n,onSelectTask:o,servingSession:i,onStopServing:l}){const u=$l(t),m=t.selectedTaskIndex+1;return f.jsxs("section",{className:"training-chat-handoff","aria-label":"Model chat",children:[f.jsxs("div",{className:"training-chat-handoff-copy",children:[f.jsx("strong",{children:u?"Generated Taskset question":"Model chat"}),f.jsx("span",{children:t.tasksetName}),f.jsxs("small",{children:[u?`${f9(u.split)} · ${m} of ${t.tasks.length} · New chat per question`:"Ask the imported model directly",i?` · Fireworks ${i.state} · $${i.estimatedCostUsd.toFixed(4)}`:""]})]}),f.jsxs("div",{className:"training-chat-handoff-actions",children:[u?f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button","aria-label":"Previous generated question",title:"Previous question",disabled:e||t.selectedTaskIndex===0,onClick:()=>o(t.selectedTaskIndex-1),children:f.jsx(Ub,{size:14})}),f.jsx("button",{type:"button",className:"training-chat-handoff-load",disabled:e,onClick:()=>o(t.selectedTaskIndex),children:"Load question"}),f.jsx("button",{type:"button","aria-label":"Next generated question",title:"Next question",disabled:e||t.selectedTaskIndex>=t.tasks.length-1,onClick:()=>o(t.selectedTaskIndex+1),children:f.jsx($w,{size:14})})]}):null,i&&["starting","ready"].includes(i.state)?f.jsx("button",{className:"training-chat-handoff-stop",disabled:e,type:"button",onClick:()=>l?.(i.id),children:"Stop serving"}):null,f.jsx("button",{type:"button","aria-label":"Close generated question handoff",title:"Close",disabled:e,onClick:n,children:f.jsx(rs,{size:14})})]})]})}function f9(e){return e==="frozen_eval"?"Frozen evaluation":e==="validation"?"Validation":"Training"}const Ic=new Map,m9=15e3;function p9(e,t){const n=h9(e),[o,i]=b.useState(()=>n.getUrl(t));return b.useEffect(()=>{let l=!1;return i(n.getUrl(t)),n.loadUrl(t).then(u=>{l||i(u)}),()=>{l=!0}},[t,n]),o}function h9(e){const[,t]=b.useState(0),n=b.useCallback(i=>!e||!i?null:_C(kC(e,i)),[e]),o=b.useCallback(async i=>{if(!e||!i)return null;const l=kC(e,i),u=_C(l);if(u)return u;const m=Ic.get(l);if(m?.state==="loading")return m.promise;const g=ge.signChatAttachmentImageUrl(e,i).then(p=>(Ic.set(l,{state:"ready",url:p.url,expiresAt:p.expiresAt}),t(S=>S+1),p.url)).catch(()=>(Ic.delete(l),t(p=>p+1),null));return Ic.set(l,{state:"loading",promise:g}),g},[e]);return b.useMemo(()=>({getUrl:n,loadUrl:o}),[n,o])}function _C(e){const t=Ic.get(e);return t?.state!=="ready"?null:t.expiresAt<=Date.now()+m9?(Ic.delete(e),null):t.url}function kC(e,t){return[e.serverUrl,e.token,t.sessionId,t.turnId,t.attachmentId,t.storageName,t.contentType].join("\0")}const g9="openpond-coding-core-v1",b9="feature";function Cb(e){const t=new URL("/sandboxes",Uv(e.accountBaseUrl));return t.searchParams.set("teamId",e.teamId),t.searchParams.set("create","sandbox"),t.searchParams.set("intent","cloud-coding"),t.searchParams.set("source",e.source),t.searchParams.set("projectId",e.projectId),t.searchParams.set("workflowMode",b9),t.searchParams.set("runtimeProfileId",g9),e.projectName?.trim()&&t.searchParams.set("projectName",e.projectName.trim()),e.baseBranch?.trim()&&t.searchParams.set("baseBranch",e.baseBranch.trim()),e.localProjectId?.trim()&&t.searchParams.set("localProjectId",e.localProjectId.trim()),t.toString()}function v9(e){const t=e.organizationSlug?.trim(),n=t?`/sandboxes/${encodeURIComponent(t)}/billing`:"/sandboxes/billing",o=new URL(n,Uv(e.accountBaseUrl));return!t&&e.teamId?.trim()&&o.searchParams.set("teamId",e.teamId.trim()),o.toString()}function IC(e){const t=e.organizationSlug?.trim(),n=e.projectSlug?.trim();return!t||!n?null:new URL(`/${encodeURIComponent(t)}/${encodeURIComponent(n)}`,Uv(e.accountBaseUrl)).toString()}function Uv(e){const t=e?.trim();if(!t)return"https://openpond.ai";try{const n=new URL(t);return`${n.protocol}//${n.host}`}catch{return"https://openpond.ai"}}const y9=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","mjs","png","py","rs","scss","sh","sql","svg","toml","ts","tsx","txt","webp","yaml","yml","zsh"]),S9=new Set(["AGENTS.md","Dockerfile","LICENSE","Makefile","README"]),wb=String.raw`[A-Za-z0-9_.@+-]+`,x9=new RegExp(String.raw`^(?:(?:\.{1,2}|~)?[\\/]|[A-Za-z]:[\\/])?(?:${wb}[\\/])+${wb}(?::\d+(?::\d+)?)?`),C9=new RegExp(String.raw`^${wb}(?::\d+(?::\d+)?)?`),w9=/^(?:workspace|sandbox):file:[^\s<>()]+/;function _9(e,t,n={}){if(!T9(e[t-1]))return null;const o=e.slice(t),i=w9.exec(o),l=i?null:x9.exec(o),u=i||l?null:C9.exec(o),m=mA((i??l??u)?.[0]??"");if(!m)return null;const g=Gc(m,n);return g?{...g,end:t+m.length}:null}function Gc(e,t={}){const n=mA(e.trim().replace(/^['"`]+|['"`]+$/g,""));if(!n||/^https?:\/\//i.test(n))return null;const i=I9(k9(n)).replace(/:\d+(?::\d+)?$/,"");return R9(i)?{displayPath:n,path:A9(i,t.workspaceRootPath)}:null}function k9(e){const t=/^(workspace|sandbox):file:(.*)$/i.exec(e);if(!t)return e;const n=t[1]?.toLowerCase();let o=t[2]??"";return n==="sandbox"&&(o=o.replace(/^\/workspace\/app\//,"").replace(/^\/workspace\//,"")),o}function I9(e){if(!/^file:\/\//i.test(e))return e;try{return decodeURIComponent(new URL(e).pathname)}catch{return e.replace(/^file:\/\//i,"")}}function A9(e,t){let n=e.replace(/\\/g,"/").replace(/^\.\/+/,"");const o=t?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!o)return n;n.startsWith(`${o}/`)&&(n=n.slice(o.length+1));const i=o.split("/").filter(Boolean).at(-1);return i&&n.startsWith(`${i}/`)&&(n=n.slice(i.length+1)),n}function R9(e){const t=e.replace(/\\/g,"/").split("/").filter(Boolean).at(-1)??e;if(S9.has(t)||t.startsWith(".")&&t.length>1)return!0;const n=t.includes(".")?t.split(".").at(-1)?.toLowerCase():null;return!!(n&&y9.has(n))}function T9(e){return!e||/[\s([{<"'`]/.test(e)}function mA(e){return e.replace(/[.,;!?]+$/,"").replace(/[\])}]+$/,"")}const Ac=new Map,j9=15e3;function Lv(e,t){const n=pA(e),[o,i]=b.useState(()=>n.getUrl(t));return b.useEffect(()=>{let l=!1;return i(n.getUrl(t)),n.loadUrl(t).then(u=>{l||i(u)}),()=>{l=!0}},[t,n]),o}function pA(e){const[,t]=b.useState(0),n=b.useCallback(i=>!e||!i?null:AC(RC(e,i)),[e]),o=b.useCallback(async i=>{if(!e||!i)return null;const l=RC(e,i),u=AC(l);if(u)return u;const m=Ac.get(l);if(m?.state==="loading")return m.promise;const g=ge.signLocalImageUrl(e,{path:i}).then(p=>(Ac.set(l,{state:"ready",url:p.url,expiresAt:p.expiresAt}),t(S=>S+1),p.url)).catch(()=>(Ac.delete(l),t(p=>p+1),null));return Ac.set(l,{state:"loading",promise:g}),g},[e]);return b.useMemo(()=>({getUrl:n,loadUrl:o}),[n,o])}function AC(e){const t=Ac.get(e);return t?.state!=="ready"?null:t.expiresAt<=Date.now()+j9?(Ac.delete(e),null):t.url}function RC(e,t){return`${e.serverUrl}\0${e.token}\0${t}`}const Rc=new Map,E9=15e3;function qv(e,t,n){const o=hA(e),[i,l]=b.useState(()=>o.getUrl(t,n));return b.useEffect(()=>{let u=!1;return l(o.getUrl(t,n)),o.loadUrl(t,n).then(m=>{u||l(m)}),()=>{u=!0}},[t,n,o]),i}function hA(e){const[,t]=b.useState(0),n=b.useCallback((l,u)=>!e||!l||!u?null:TC(jC(e,l,u)),[e]),o=b.useCallback(async(l,u)=>{if(!e||!l||!u)return null;const m=jC(e,l,u),g=TC(m);if(g)return g;const p=Rc.get(m);if(p?.state==="loading")return p.promise;const S=ge.signWorkspaceImageUrl(e,{appId:l,path:u}).then(x=>(Rc.set(m,{state:"ready",url:x.url,expiresAt:x.expiresAt}),t(C=>C+1),x.url)).catch(()=>(Rc.delete(m),t(x=>x+1),null));return Rc.set(m,{state:"loading",promise:S}),S},[e]),i=b.useCallback((l,u)=>{o(l,u)},[o]);return b.useMemo(()=>({ensureUrl:i,getUrl:n,loadUrl:o}),[i,n,o])}function TC(e){const t=Rc.get(e);return t?.state!=="ready"?null:t.expiresAt<=Date.now()+E9?(Rc.delete(e),null):t.url}function jC(e,t,n){return`${e.serverUrl}\0${e.token}\0${t}\0${n}`}function gA({open:e,src:t,title:n,onClose:o}){const[i,l]=b.useState(!1);if(b.useEffect(()=>{if(!e)return;const g=p=>{p.key==="Escape"&&o()};return window.addEventListener("keydown",g),()=>window.removeEventListener("keydown",g)},[o,e]),b.useEffect(()=>{l(!1)},[t]),!e||!t)return null;const u=(()=>{const g=n.split("/").pop()?.trim();if(g&&/\.[A-Za-z0-9]+$/.test(g))return g;try{const S=new URL(t,window.location.href).pathname.split("/").pop()?.trim();if(S&&/\.[A-Za-z0-9]+$/.test(S))return S}catch{}return"image.png"})(),m=()=>{const g=document.createElement("a");g.href=t,g.download=u,g.rel="noopener",document.body.appendChild(g),g.click(),g.remove()};return f.jsx("div",{className:"image-lightbox-backdrop",role:"presentation",onMouseDown:g=>{g.target===g.currentTarget&&o()},children:f.jsxs("section",{"aria-label":n?`Image preview: ${n}`:"Image preview","aria-modal":"true",className:"image-lightbox-dialog",role:"dialog",children:[f.jsxs("header",{className:"image-lightbox-header",children:[f.jsx("span",{title:n,children:n}),f.jsxs("div",{className:"image-lightbox-actions",children:[f.jsx("button",{type:"button","aria-label":"Download image",title:"Download",onClick:m,children:f.jsx(qw,{size:16})}),f.jsx("button",{type:"button","aria-label":"Close image preview",title:"Close",onClick:o,children:f.jsx(rs,{size:16})})]})]}),f.jsx("div",{className:"image-lightbox-frame",children:i?f.jsx("div",{className:"image-lightbox-error",children:"Image preview unavailable"}):f.jsx("img",{alt:n||"Image preview",decoding:"async",draggable:!1,src:t,onError:()=>l(!0)})})]})})}function M9(e){const t=e.replace(/\r\n/g,`
|
|
155
155
|
`).split(`
|
|
156
156
|
`),n=[];let o=[],i=[],l=!1,u=null,m,g=0;function p(){o.length!==0&&(n.push({type:"paragraph",content:o.join(`
|
|
157
157
|
`).trim()}),o=[])}function S(){i.length!==0&&(n.push({type:"list",ordered:l,items:i}),i=[],l=!1)}for(let x=0;x<t.length;x+=1){const C=t[x];if(u){if(P9(C,g)){n.push({type:"code",content:u.join(`
|
|
@@ -166,7 +166,7 @@ ${t}`].join(`
|
|
|
166
166
|
`)?e.slice(0,-1):e;return t?t.split(`
|
|
167
167
|
`).length:0}function RA(e){return/^error: Could not access /m.test(e)}function LH(e){let t=0,n=0;for(const o of e.split(`
|
|
168
168
|
`))o.startsWith("+++")||o.startsWith("---")||(o.startsWith("+")&&(t+=1),o.startsWith("-")&&(n+=1));return{additions:t,deletions:n}}function qH({run:e}){const t=e.plan,n=e.questions.find(u=>u.status==="pending")??null,o=$_(t?.metadata),i=e.sourceRefs[0]??t?.sourcePlan[0]?.path??null,l=e.checkRefs.length||t?.checks.length||0;return f.jsxs("section",{className:"chat-create-receipt","aria-label":"Create or improve status",children:[f.jsxs("div",{className:"chat-create-receipt-heading",children:[f.jsx(hl,{size:14}),f.jsx("span",{children:BH(e)}),f.jsx("small",{children:e.target.kind})]}),f.jsx("p",{children:HH(e,t?.summary??null,n?.prompt??null)}),o||i||l?f.jsxs("div",{className:"chat-create-receipt-facts",children:[o?f.jsx("span",{title:o.detail,children:o.label}):null,i?f.jsx("span",{title:i,children:i}):null,l?f.jsxs("span",{children:[l," checks"]}):null]}):null]})}function BH(e){return e.state==="awaiting_questions"?"Question ready":e.state==="awaiting_plan_approval"?"Plan ready":e.state==="applying_source"?"Applying source":e.state==="running_checks"?"Running checks":e.state==="evaluating"?"Evaluating candidate":e.state==="awaiting_promotion"?"Candidate ready":e.state==="opening_pull_request"?"Opening review":e.state==="pull_request_open"?"Review open":e.state==="reconciling_release"?"Merging change":e.state==="released"?"Released":e.state==="rejected"?"Rejected":e.state==="ready"||e.state==="ready_local"?"Workproduct ready":e.state==="published_hosted"?"Published":e.state==="cancelled"?"Cancelled":e.state==="blocked"?"Blocked":e.state==="failed"?"Failed":e.operation==="improve"?"Planning improvement":"Planning creation"}function HH(e,t,n){return e.state==="awaiting_questions"&&n?n:t||(e.blockedReason?e.blockedReason:e.state==="ready"||e.state==="ready_local"?"The candidate and its checks are ready.":e.state==="awaiting_promotion"?"The candidate has been committed and evaluated. Merge or reject it.":e.state==="pull_request_open"&&e.releaseOutcome.pullRequest?"The external review is waiting for merge or closure.":e.state==="released"?"The change merged and the active Profile passed its post-merge Evals.":e.state==="rejected"?e.blockedReason??"The candidate was rejected.":`Preparing work for ${e.objective}.`)}const NC=5;function FH({prompt:e}){const[t,n]=b.useState(!1),o=b.useMemo(()=>t?e.items:e.items.slice(0,NC),[t,e.items]),i=Math.max(0,e.items.length-o.length),l=e.totalEvidenceCount||e.items.length;return f.jsxs("div",{className:"insights-run-prompt-card",children:[f.jsxs("div",{className:"insights-run-prompt-heading",children:[f.jsx("span",{className:"insights-run-prompt-icon","aria-hidden":"true",children:f.jsx(qb,{size:15})}),f.jsxs("div",{children:[f.jsx("strong",{children:"Insights scan"}),f.jsx("span",{children:VH(e,l)})]})]}),o.length>0?f.jsx("div",{className:"insights-run-evidence-list",children:o.map((u,m)=>f.jsx(KH,{item:u},`${u.evidenceSource}:${u.evidenceKey}:${m}`))}):f.jsx("p",{className:"insights-run-empty",children:"No evidence items were included."}),e.items.length>NC?f.jsxs("button",{type:"button",className:"insights-run-show-more",onClick:()=>n(u=>!u),children:[f.jsx("span",{children:t?"Show less":`Show ${i} more`}),t?f.jsx(Lb,{size:13}):f.jsx(Lo,{size:13})]}):null]})}function KH({item:e}){const t=e.title??OC(e.evidenceSource),n=e.summary??e.evidenceKey,o=e.createPipelineState??e.type??e.severity;return f.jsxs("div",{className:"insights-run-evidence-row",children:[f.jsxs("div",{children:[f.jsx("strong",{children:t}),f.jsx("span",{children:n})]}),f.jsxs("div",{className:"insights-run-evidence-meta",children:[f.jsx("span",{children:OC(e.evidenceSource)}),o?f.jsx("span",{children:o}):null]})]})}function VH(e,t){const n=[e.trigger?`${e.trigger} run`:"run",`${t} evidence item${t===1?"":"s"}`];return e.eventCount!==null&&n.push(`${e.eventCount} events`),e.truncated&&n.push("JSON truncated"),n.join(" · ")}function OC(e){switch(e){case"create_edit":return"Create/Improve";case"stuck_turn":return"Stuck turn";case"tool_failure":return"Tool failure";case"abandoned_goal":return"Abandoned goal";case"user_correction":return"Correction";case"unresolved_conversation":return"Unresolved";case"usage_anomaly":return"Usage";default:return e||"Evidence"}}const TA=b.memo(function({activeWorkspaceAppId:t=null,accountBaseUrl:n=null,billingOrganizationSlug:o=null,billingTeamId:i=null,connection:l=null,message:u,onOpenBrowserLink:m,onOpenFileInSidebar:g,onOpenProfileSettings:p,onOpenSession:S,showFooter:x=!1,workspaceRootPath:C=null}){if(u.role==="status_divider")return f.jsx(iF,{message:u});if(u.role==="activity_group")return f.jsx(vH,{activeWorkspaceAppId:t,connection:l,message:u,onOpenSession:S});if(u.role==="reasoning")return f.jsx(rF,{activeWorkspaceAppId:t,connection:l,message:u,onOpenBrowserLink:m,onOpenFileInSidebar:g,workspaceRootPath:C});if(u.role==="error")return u.errorKind==="opchat_quota_exceeded"?f.jsx("article",{className:"message-row assistant",children:f.jsx(eF,{accountBaseUrl:n,billingOrganizationSlug:o,billingTeamId:i,onOpenBrowserLink:m})}):f.jsx("article",{className:"message-row assistant",children:f.jsx("div",{className:"assistant-message error-message",children:u.content??""})});if(u.role==="user"){const U=!!u.attachments?.length,D=!!u.attachments?.some(B=>B.kind==="image");return f.jsx("article",{className:"message-row user",children:f.jsxs("div",{className:`user-message ${u.insightsRunPrompt?"insights-run-message":""} ${U?"has-attachments":""} ${D?"has-image-attachments":""}`,children:[u.attachments?.length?f.jsx(nF,{attachments:u.attachments,connection:l}):null,u.insightsRunPrompt?f.jsx(FH,{prompt:u.insightsRunPrompt}):null,u.content?f.jsx(GH,{content:u.content}):null]})})}const w=Bq(u.timestamp),E=Hq(u.timestamp),j=u.actionRun&&PC(u.actionRun)?uH(u.actionRun):null;return f.jsxs("article",{className:"message-row assistant",children:[u.content?f.jsx("div",{className:"assistant-message",children:f.jsx(Rb,{activeWorkspaceAppId:t,connection:l,content:u.content,onOpenBrowserLink:m,onOpenFileInSidebar:g,workspaceRootPath:C})}):null,u.sources?.length?f.jsx(YH,{sources:u.sources,onOpenBrowserLink:m}):null,u.actionRun&&PC(u.actionRun)?f.jsxs("div",{className:`assistant-message action-run-profile-message ${u.actionRun.status}`,children:[f.jsx(Rb,{activeWorkspaceAppId:t,connection:l,content:u.actionRun.responseText??dH(u.actionRun),onOpenBrowserLink:m,onOpenFileInSidebar:g,workspaceRootPath:C}),j?f.jsx("div",{className:"action-run-agent-label",children:p?f.jsx("button",{type:"button",className:"action-run-agent-link",onClick:p,children:j}):f.jsx("span",{children:j})}):null]}):u.actionRun?f.jsx(cH,{actionRun:u.actionRun,onOpenBrowserLink:m,onOpenFileInSidebar:g,workspaceRootPath:C}):null,u.changeSummary&&f.jsx($H,{summary:u.changeSummary,onOpenFileInSidebar:g}),u.createImproveRun?f.jsx(qH,{run:u.createImproveRun}):null,x&&f.jsxs("div",{className:"assistant-message-footer",children:[w&&f.jsx("time",{className:"message-timestamp",dateTime:u.timestamp,title:E,children:w}),f.jsx("button",{type:"button",className:"message-copy-button",title:"Copy message","aria-label":"Copy assistant message",disabled:!u.content,onClick:()=>{u.content&&um(u.content)},children:f.jsx(Jj,{size:14})})]})]})},ZH),zC=10;function GH({content:e}){const t=b.useMemo(()=>e.split(/\r?\n/),[e]),[n,o]=b.useState(!1),i=t.length>zC,l=i&&!n?t.slice(0,zC).join(`
|
|
169
|
-
`):e;return f.jsxs("div",{className:`user-message-content-wrap ${i?"collapsible":""}`,children:[f.jsx("div",{className:"user-message-content",children:l}),i?f.jsxs("button",{type:"button",className:"user-message-show-more","aria-expanded":n,onClick:()=>o(u=>!u),children:[n?f.jsx(Lb,{size:14}):f.jsx(Lo,{size:14}),f.jsx("span",{children:n?"Show less":"Show more"})]}):null]})}function ZH(e,t){return e.activeWorkspaceAppId===t.activeWorkspaceAppId&&e.accountBaseUrl===t.accountBaseUrl&&e.billingOrganizationSlug===t.billingOrganizationSlug&&e.billingTeamId===t.billingTeamId&&e.connection===t.connection&&e.onOpenBrowserLink===t.onOpenBrowserLink&&e.onOpenFileInSidebar===t.onOpenFileInSidebar&&e.onOpenProfileSettings===t.onOpenProfileSettings&&e.onOpenSession===t.onOpenSession&&e.showFooter===t.showFooter&&e.workspaceRootPath===t.workspaceRootPath&&WH(e.message,t.message)}function WH(e,t){return e===t?!0:e.id===t.id&&e.role===t.role&&e.content===t.content&&e.timestamp===t.timestamp&&e.turnId===t.turnId&&e.statusKind===t.statusKind&&e.statusState===t.statusState&&e.statusTone===t.statusTone&&e.errorKind===t.errorKind&&tF(e.attachments,t.attachments)&&e.activities===t.activities&&e.sources===t.sources&&e.actionRun===t.actionRun&&e.insightsRunPrompt===t.insightsRunPrompt&&e.changeSummary===t.changeSummary&&e.createImproveRun===t.createImproveRun}function YH({sources:e,onOpenBrowserLink:t}){return f.jsxs("div",{className:"assistant-sources","aria-label":"Sources",children:[f.jsxs("span",{className:"assistant-sources-label",children:[f.jsx(ld,{size:13}),f.jsx("span",{children:"Sources"})]}),e.map(n=>f.jsx(JH,{source:n,onOpenBrowserLink:t},`${n.id}:${n.url}`))]})}function JH({source:e,onOpenBrowserLink:t}){const n=QH(e),o=[e.title,jA(e.url)].filter(Boolean).join(" - "),i=f.jsxs(f.Fragment,{children:[f.jsx(XH,{source:e}),f.jsx("span",{children:n})]});return t?f.jsx("button",{type:"button",className:"assistant-source-pill",title:o||n,"aria-label":`Open source ${n}`,onClick:()=>t(e.url,{newTab:!0}),children:i}):f.jsx("a",{className:"assistant-source-pill",href:e.url,target:"_blank",rel:"noreferrer",title:o||n,"aria-label":`Open source ${n}`,children:i})}function XH({source:e}){const[t,n]=b.useState(!1);return!e.faviconUrl||t?f.jsx(ld,{className:"assistant-source-fallback-icon",size:13}):f.jsx("img",{alt:"","aria-hidden":"true",className:"assistant-source-favicon",decoding:"async",loading:"lazy",src:e.faviconUrl,onError:()=>n(!0)})}function QH(e){return e.sourceName?.trim()||jA(e.url)||e.title}function jA(e){try{return new URL(e).hostname.replace(/^www\./i,"")}catch{return null}}function eF({accountBaseUrl:e,billingOrganizationSlug:t,billingTeamId:n,onOpenBrowserLink:o}){const i=v9({accountBaseUrl:e,organizationSlug:t,teamId:n}),l=f.jsxs(f.Fragment,{children:[f.jsx(fx,{size:15}),f.jsx("span",{children:"Add credits"}),f.jsx(Hf,{size:13})]});return f.jsxs("div",{className:"assistant-message quota-error-card",role:"alert",children:[f.jsx("div",{className:"quota-error-card-icon",children:f.jsx(fx,{size:17})}),f.jsxs("div",{className:"quota-error-card-body",children:[f.jsx("strong",{children:"OpenPond Chat allowance reached"}),f.jsx("p",{children:"You have reached your OpChat token allowance for this period. Add credits or wait for the allowance to reset."}),o?f.jsx("button",{type:"button",className:"quota-error-card-action",onClick:()=>o(i,{newTab:!0}),children:l}):f.jsx("a",{className:"quota-error-card-action",href:i,target:"_blank",rel:"noreferrer",children:l})]})]})}function tF(e,t){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){const o=e[n],i=t[n];if(o.id!==i.id||o.kind!==i.kind||o.name!==i.name||o.mediaType!==i.mediaType||o.sizeBytes!==i.sizeBytes||o.imagePreview?.sessionId!==i.imagePreview?.sessionId||o.imagePreview?.turnId!==i.imagePreview?.turnId||o.imagePreview?.attachmentId!==i.imagePreview?.attachmentId||o.imagePreview?.storageName!==i.imagePreview?.storageName||o.imagePreview?.contentType!==i.imagePreview?.contentType)return!1}return!0}function nF({attachments:e,connection:t}){return f.jsx("div",{className:"user-message-attachments","aria-label":"Attached files",children:e.map(n=>f.jsx(aF,{attachment:n,connection:t},n.id))})}function aF({attachment:e,connection:t}){if(e.kind==="image"&&e.imagePreview)return f.jsx(oF,{attachment:e,connection:t});const n=e.kind==="image"?ym:hl;return f.jsxs("span",{className:"user-message-attachment",title:e.name,children:[f.jsx(n,{size:13}),f.jsx("span",{children:e.name}),f.jsx("small",{children:EA(e.sizeBytes)})]})}function oF({attachment:e,connection:t}){const n=p9(t,e.imagePreview);return f.jsxs("figure",{className:`user-message-image-attachment ${n?"ready":"loading"}`,title:e.name,children:[f.jsx("div",{className:"user-message-image-frame",children:n?f.jsx("img",{alt:e.name,decoding:"async",loading:"lazy",src:n}):f.jsx(ym,{size:24})}),f.jsxs("figcaption",{children:[f.jsx("span",{children:e.name}),f.jsx("small",{children:EA(e.sizeBytes)})]})]})}function EA(e){if(e<1024)return`${e} B`;const t=["KB","MB","GB"];let n=e/1024;for(const o of t){if(n<1024)return`${n.toFixed(n>=10?0:1)} ${o}`;n/=1024}return`${n.toFixed(0)} TB`}const MA=b.memo(function(){return f.jsx("article",{className:"activity-group thinking-row","aria-live":"polite",children:f.jsx("div",{className:"activity-summary thinking-summary",role:"status",children:f.jsx("span",{children:"Thinking..."})})})});function rF({activeWorkspaceAppId:e,connection:t,message:n,onOpenBrowserLink:o,onOpenFileInSidebar:i,workspaceRootPath:l}){const u=n.content?.trim()??"",[m,g]=b.useState(!1);return u?f.jsx("article",{className:"message-row assistant reasoning-row",children:f.jsxs("div",{className:`assistant-reasoning-message ${m?"expanded":"collapsed"}`,children:[f.jsxs("button",{type:"button",className:"assistant-reasoning-toggle","aria-expanded":m,onClick:()=>g(p=>!p),children:[m?f.jsx(Lb,{size:14}):f.jsx(Lo,{size:14}),f.jsx("span",{children:m?"Hide thinking":"Show thinking"})]}),m?f.jsx("div",{className:"assistant-reasoning-content",children:f.jsx(Rb,{activeWorkspaceAppId:e,connection:t,content:u,onOpenBrowserLink:o,onOpenFileInSidebar:i,workspaceRootPath:l})}):null]})}):null}function iF({message:e}){const t=e.statusTone??"info",n=e.statusState??"idle";return f.jsx("article",{className:`status-divider ${t} ${n}`,"aria-live":t==="danger"?"assertive":"polite",children:f.jsx("span",{children:e.content??""})})}const sF=/^(localhost|\[::1\]|127(?:\.\d{1,3}){3})(?::\d+)?(?:[/?#].*)?$/i,lF=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:[:/?#].*)?$/i;function cF(e,t={}){const n=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!n||/\s/.test(n))return null;const o=n.toLowerCase();return o.startsWith("javascript:")||o.startsWith("data:")?null:/^https?:\/\//i.test(n)?Nf(n,new Set(["http:","https:"])):/^file:\/\//i.test(n)?t.explicitFile?Nf(n,new Set(["file:"])):null:sF.test(n)?Nf(`http://${n}`,new Set(["http:"])):lF.test(n)?Nf(`https://${n}`,new Set(["https:"])):null}function Nf(e,t){try{const n=new URL(e);return t.has(n.protocol)?n.toString():null}catch{return null}}async function Hv(e){const t=cF(e.href,{explicitFile:e.explicitFile});if(!t)return!1;const n=window.openpond?.browser;return n?(e.newTab?await n.newTab({conversationId:e.conversationId,url:t,explicitFile:e.explicitFile}):await n.open({conversationId:e.conversationId,url:t,explicitFile:e.explicitFile}),!0):(window.open(t,"_blank","noopener,noreferrer"),!0)}function PA(e,t={}){const n=uF(e),o=e.map(i=>({id:`message:${i.id}`,type:"message",message:i,showFooter:i.id===n}));return t.showThinkingIndicator&&o.push({id:"thinking",type:"thinking"}),o}function uF(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.role==="assistant")return n.id}return null}function NA(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"){const n=t.activities?.[t.activities.length-1]??null;return n?.state!=="running"&&n?.state!=="pending"}return!0}function dF(e){const t=[];if(e.localWorkspaceId&&t.push({value:"local",label:"Local"}),(e.sandboxSourceAvailable??!!e.sandboxWorkspaceId)&&t.push({value:"sandbox",label:"Sandbox"}),t.length===0)return{source:null,options:t};const n=new Set(t.map(i=>i.value));if(e.override&&n.has(e.override))return{source:e.override,options:t};const o=e.workspaceTarget==="local"?"local":"sandbox";return n.has(o)?{source:o,options:t}:{source:t[0].value,options:t}}function xi(e){return e==="sandbox"||e==="sandbox_template"||e==="sandbox_app"}function OA(e={}){return{...e,workspaceTarget:"hybrid"}}function os(e){return e?.metadata?.workspaceTarget==="hybrid"}function fF(e){return!!(e&&e.provider==="openpond"&&e.workspaceKind==="local_project"&&e.cloudProjectId&&e.title.trim().endsWith(" Cloud"))}const mF=b.lazy(()=>Jn(()=>import("./TerminalOverlay-CC-VDSlp.js"),__vite__mapDeps([20,21]),import.meta.url).then(e=>({default:e.TerminalOverlay})));function pF({open:e,connection:t,scope:n,tabs:o,onTabsChange:i,cwd:l,appId:u,workspaceName:m,queuedCommand:g,onClose:p}){const[S,x]=b.useState(!1);return b.useEffect(()=>{e&&x(!0)},[e]),S?f.jsx(b.Suspense,{fallback:null,children:f.jsx(mF,{open:e,connection:t,scope:n,tabs:o,onTabsChange:i,cwd:l,appId:u,workspaceName:m,queuedCommand:g,onClose:p})}):null}function hF({panels:e,busy:t,codexPermissionMode:n,codexReasoningEffort:o,openPondCommandAccessMode:i,connection:l,connectedAppMentions:u,mentionApps:m,profileSkills:g,projectTarget:p,providerSettings:S,accountBaseUrl:x,billingOrganizationSlug:C,billingTeamId:w,showToast:E,workspaceTarget:j,onAddChat:U,onClosePanel:D,onCodexPermissionModeChange:B,onCodexReasoningEffortChange:K,onOpenPondCommandAccessModeChange:I,onModelChange:O,onOpenFileInSidebar:N,onOpenProfileSettings:z,onOpenSession:G,onProviderChange:ne,onProviderSetupOpen:ce,onPromptChange:Y,onProjectTargetChange:ue,onResolveApproval:Se,onResizeStart:me,onSelectFiles:qe,onShowBrowserPanel:$,onStop:be,onSubmit:ie,onWorkspaceTargetChange:fe}){const[te,R]=b.useState(!1),[L,Q]=b.useState(()=>e.at(-1)?.id??null),Ae=b.useRef(null),je=b.useRef(new Map),Le=b.useRef(new Set(e.map(Ke=>Ke.id))),de=e.find(Ke=>Ke.id===L)??e.at(-1)??null;b.useEffect(()=>{const Ke=Le.current;let Ue=null;for(const ot of e)Ke.has(ot.id)||(Ue=ot);Le.current=new Set(e.map(ot=>ot.id)),Q(ot=>Ue?Ue.id:ot&&e.some($e=>$e.id===ot)?ot:e.at(-1)?.id??null)},[e]),b.useEffect(()=>{if(!te)return;function Ke(ot){Ae.current?.contains(ot.target)||R(!1)}function Ue(ot){ot.key==="Escape"&&R(!1)}return document.addEventListener("pointerdown",Ke),document.addEventListener("keydown",Ue),()=>{document.removeEventListener("pointerdown",Ke),document.removeEventListener("keydown",Ue)}},[te]);const He=b.useCallback((Ke,Ue=!1)=>{Q(Ke),Ue&&window.requestAnimationFrame(()=>je.current.get(Ke)?.focus())},[]),xe=b.useCallback((Ke,Ue)=>{const ot=e.findIndex(q=>q.id===Ue);if(ot<0)return;let $e=null;if(Ke.key==="ArrowRight"&&($e=(ot+1)%e.length),Ke.key==="ArrowLeft"&&($e=(ot-1+e.length)%e.length),Ke.key==="Home"&&($e=0),Ke.key==="End"&&($e=e.length-1),$e===null)return;Ke.preventDefault();const Me=e[$e];Me&&He(Me.id,!0)},[e,He]);return f.jsxs("aside",{className:"workspace-diff-panel right-chat-panel-stack","aria-label":"Side chats",children:[f.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize side chat panel",onPointerDown:me}),f.jsx("div",{className:"workspace-diff-topbar right-chat-topbar",children:f.jsxs("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:[f.jsxs("button",{type:"button",className:"workspace-diff-tab",role:"tab","aria-selected":!1,onClick:qe,children:[f.jsx(Wu,{size:14}),f.jsx("span",{children:"Files"})]}),e.map(Ke=>{const Ue=Ke.id===de?.id;return f.jsxs("div",{className:`workspace-diff-tab right-chat-tab ${Ue?"active":""}`,children:[f.jsx("button",{type:"button",className:"workspace-diff-tab-main",role:"tab",id:`right-chat-tab-${Ke.id}`,"aria-controls":`right-chat-panel-${Ke.id}`,"aria-selected":Ue,tabIndex:Ue?0:-1,title:Ke.title,ref:ot=>{ot?je.current.set(Ke.id,ot):je.current.delete(Ke.id)},onClick:()=>He(Ke.id),onKeyDown:ot=>xe(ot,Ke.id),children:f.jsx("span",{children:Ke.title})}),f.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${Ke.title}`,"aria-label":`Close ${Ke.title}`,onClick:ot=>{ot.stopPropagation(),D(Ke.id)},children:f.jsx(rs,{size:12})})]},Ke.id)}),f.jsxs("div",{className:"workspace-diff-add-anchor",ref:Ae,children:[f.jsx("button",{type:"button",className:`workspace-diff-add-tab ${te?"active":""}`,title:"Add to right sidebar","aria-label":"Add to right sidebar","aria-haspopup":"menu","aria-expanded":te,onClick:()=>R(Ke=>!Ke),children:f.jsx(gl,{size:15})}),te?f.jsxs("div",{className:"workspace-diff-add-menu right-chat-add-popover",role:"menu",children:[f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{R(!1),U()},children:[f.jsx(Bb,{size:13}),f.jsx("span",{children:"New task"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{R(!1),qe()},children:[f.jsx(Wu,{size:13}),f.jsx("span",{children:"Files"})]})]}):null]})]})}),f.jsx("div",{className:"right-chat-stack-body panes-1",children:de?f.jsx(gF,{busy:t,codexPermissionMode:n,codexReasoningEffort:o,openPondCommandAccessMode:i,connection:l,connectedAppMentions:u,mentionApps:m,profileSkills:g,panel:de,projectTarget:p,providerSettings:S,accountBaseUrl:x,billingOrganizationSlug:C,billingTeamId:w,showToast:E,workspaceTarget:j,onCodexPermissionModeChange:B,onCodexReasoningEffortChange:K,onOpenPondCommandAccessModeChange:Ke=>I(Ke,de.session),onModelChange:Ke=>O(de.id,Ke),onOpenFileInSidebar:N,onOpenProfileSettings:z,onOpenSession:G,onProviderChange:Ke=>ne(de.id,Ke),onProviderSetupOpen:ce,onPromptChange:Ke=>Y(de.id,Ke),onProjectTargetChange:ue,onResolveApproval:Se,onShowBrowserPanel:$,onStop:()=>be(de.sessionId),onSubmit:(Ke,Ue,ot,$e)=>ie(de.id,Ke,Ue,ot,$e),onWorkspaceTargetChange:fe},de.id):null})]})}function gF({panel:e,codexPermissionMode:t,codexReasoningEffort:n,openPondCommandAccessMode:o,connection:i,connectedAppMentions:l,mentionApps:u,profileSkills:m,projectTarget:g,providerSettings:p,accountBaseUrl:S,billingOrganizationSlug:x,billingTeamId:C,showToast:w,workspaceTarget:E,onCodexPermissionModeChange:j,onCodexReasoningEffortChange:U,onOpenPondCommandAccessModeChange:D,onModelChange:B,onOpenFileInSidebar:K,onOpenProfileSettings:I,onOpenSession:O,onProviderChange:N,onProviderSetupOpen:z,onPromptChange:G,onProjectTargetChange:ne,onResolveApproval:ce,onShowBrowserPanel:Y,onStop:ue,onSubmit:Se,onWorkspaceTargetChange:me}){const qe=b.useRef(null),$=b.useRef(!0),be=e.running&&!e.pendingApproval&&NA(e.messages),ie=b.useMemo(()=>PA(e.messages,{showThinkingIndicator:be}),[e.messages,be]),fe=e.messages.at(-1),te=[e.id,e.sessionId??"draft",ie.length,fe?.id??"",fe?.content?.length??0,fe?.timestamp??"",be?"thinking":""].join(":");b.useLayoutEffect(()=>{const L=qe.current;!L||!$.current||(L.scrollTop=L.scrollHeight)},[te]);const R=b.useCallback((L,Q)=>{const Ae=e.sessionId??`side-chat:${e.id}`;Hv({conversationId:Ae,href:L,explicitFile:Q?.explicitFile,newTab:Q?.newTab}).then(je=>{je&&Y()})},[Y,e.id,e.sessionId]);return f.jsxs("section",{className:`right-chat-pane ${e.pendingApproval?"has-approval":""}`,id:`right-chat-panel-${e.id}`,role:"tabpanel","aria-labelledby":`right-chat-tab-${e.id}`,children:[f.jsx("div",{className:"chat-thread right-chat-thread",ref:qe,onScroll:L=>{const Q=L.currentTarget;$.current=Q.scrollHeight-Q.scrollTop-Q.clientHeight<=72},children:ie.length>0?ie.map(L=>L.type==="thinking"?f.jsx(MA,{},L.id):f.jsx(TA,{activeWorkspaceAppId:e.activeWorkspaceAppId,accountBaseUrl:S,billingOrganizationSlug:x,billingTeamId:C,connection:i,message:L.message,onOpenBrowserLink:R,onOpenFileInSidebar:K,onOpenProfileSettings:I,onOpenSession:O,workspaceRootPath:e.workspaceRootPath,showFooter:L.showFooter},L.id)):null}),f.jsxs("div",{className:`composer-stack dock right-chat-composer ${e.pendingApproval?"has-approval":""}`,children:[f.jsx(vb,{approval:e.pendingApproval,onResolve:ce}),f.jsx(cA,{mode:"dock",prompt:e.prompt,mentionApps:u,connectedAppMentions:l,profileSkills:m,selectedMentionAppId:null,contextWindowStatus:e.contextWindowStatus,goalRuntime:e.goalRuntime,createImproveRuntime:null,busy:e.running,running:e.running,submissionScopeKey:e.sessionId??e.id,steerAutoDispatchBlocked:e.steerAutoDispatchBlocked,steerAutoDispatchReady:e.steerAutoDispatchReady,showProjectFooter:!1,connection:i,providerSettings:p,provider:e.session?.provider??e.provider,model:e.session?.modelRef?.modelId??e.model,projectTarget:g,actionCatalog:[],workspaceTarget:E,codexPermissionMode:t,codexReasoningEffort:n,openPondCommandAccessMode:e.session?.provider==="codex"?o:e.session?.openPondCommandAccessMode??o,onProviderChange:N,onProviderSetupOpen:z,onProjectTargetChange:ne,onWorkspaceTargetChange:me,onModelChange:B,onCodexPermissionModeChange:j,onCodexReasoningEffortChange:U,onOpenPondCommandAccessModeChange:D,onPromptChange:G,onMentionAppSelect:void 0,showToast:w,onSubmit:Se,onStop:ue})]})]})}function bF({expanded:e,terminalOpen:t,sideChatAvailable:n,onOpenBrowser:o,onOpenFiles:i,onOpenReview:l,onOpenSideChat:u,onOpenTrainingDraft:m,trainingDraftAvailable:g,onResizeStart:p,onToggleExpanded:S,onToggleTerminal:x}){const C=[{id:"review",label:"Review",meta:"Diffs",icon:Vj,onSelect:l},{id:"files",label:"Files",meta:"Workspace",icon:Wu,onSelect:i},{id:"browser",label:"Browser",meta:"Preview",icon:ld,onSelect:o},{id:"side-chat",label:"Side chat",meta:"Context",icon:Bb,onSelect:u,disabled:!n},{id:"training-draft",label:"Task draft",meta:"Training",icon:Uw,onSelect:m,disabled:!g},{id:"terminal",label:t?"Hide terminal":"Terminal",meta:"Shell",icon:dd,onSelect:x}];return f.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${e?"expanded":""}`,"aria-label":"Right sidebar",children:[e?null:f.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:p}),f.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[f.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:f.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[f.jsx(Jf,{size:14}),f.jsx("span",{children:"Workspace"})]})}),f.jsx("div",{className:"workspace-diff-toolbar-actions",children:f.jsx("button",{type:"button",className:"diff-icon-button",title:e?"Dock sidebar":"Expand sidebar","aria-label":e?"Dock sidebar":"Expand sidebar",onClick:S,children:e?f.jsx(RE,{size:14}):f.jsx(Fw,{size:14})})})]}),f.jsx("div",{className:"right-sidebar-home-body",children:f.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:C.map(w=>f.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:w.disabled,onClick:w.onSelect,children:[f.jsx(w.icon,{size:15}),f.jsx("span",{children:w.label}),w.meta?f.jsx("span",{className:"right-sidebar-home-chip",children:w.meta}):null]},w.id))})})]})}function wY(e,t){return e==="automatic_scope"&&t?.status==="succeeded"}function _Y(e,t){return e.defaultModelRef??t}function vF(e,t){if(!e||!t)return null;const n=new Set(e.sources.filter(o=>o.sessionId===t).map(o=>o.id));return n.size?e.creations.find(o=>o.request.sourceIds.some(i=>n.has(i)))??null:null}function yF(e){const[t,n]=b.useState(null),[o,i]=b.useState(null),[l,u]=b.useState(!1),[m,g]=b.useState(null),[p,S]=b.useState(null),x=b.useRef(null),C=b.useRef(0),w=b.useCallback(async(D,B={})=>{if(!e){i(null),g("OpenPond App server is not connected.");return}const K=C.current+1;C.current=K,B.silent||u(!0),g(null);try{const I=await ge.getCreateImproveCandidateDiff(e,D.runId,D.candidateId),O=x.current;if(K!==C.current||O?.runId!==D.runId||O.candidateId!==D.candidateId)return;i(I)}catch(I){if(K!==C.current)return;g(I instanceof Error?I.message:String(I))}finally{K===C.current&&!B.silent&&u(!1)}},[e]),E=b.useCallback(D=>{const B=x.current;if(!(D&&B?.runId===D.runId&&B.candidateId===D.candidateId)){if(x.current=D,n(D),S(null),!D){C.current+=1,i(null),g(null),u(!1);return}i(K=>K?.appId===SF(D)?K:null),w(D)}},[w]),j=b.useCallback(async(D={})=>{const B=x.current;B&&await w(B,D)},[w]),U=b.useCallback(D=>{S({id:Date.now(),path:D})},[]);return b.useEffect(()=>{e||E(null)},[E,e]),{selection:t,diff:o,loading:l,error:m,openFileRequest:p,activate:E,refresh:j,openFile:U}}function SF(e){return`candidate:${e.runId}:${e.candidateId}`}const xF=72,Eg=120,zA=24,CF=280,wF=460;function zu(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=xF}function _F(e){if(!e||typeof e!="object")return null;const t=e.systemSessionId;return typeof t=="string"&&t.trim()?t:null}const Of={canGoPrevious:!1,canGoNext:!1};function $A(e){return Array.from(e.querySelectorAll(".message-row.user")).filter(t=>t.parentElement===e)}function kF({activeWorkspaceId:e,cloudProjects:t,selectedCloudWorkItem:n}){const o=t.find(u=>u.id===e||u.id===n?.projectId||u.teamId===n?.teamId),i=t.find(u=>u.organizationSlug||u.teamId),l=o??i??null;return{organizationSlug:l?.organizationSlug??null,teamId:l?.teamId??n?.teamId??null}}function Vm(e,t){return t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop}function DA(e,t){return Vm(e,t)+t.getBoundingClientRect().height}function UA(e){return e.scrollTop+zA}function LA(e){return e.scrollTop+8}function zf(e){const t=UA(e),n=LA(e);let o=!1,i=!1;for(const l of $A(e)){const u=Vm(e,l);if(DA(e,l)<n&&(o=!0),u>t+8&&(i=!0),o&&i)break}return{canGoPrevious:o,canGoNext:i}}function IF(e,t){const n=$A(e),o=UA(e);if(t==="previous"){const i=LA(e);for(let l=n.length-1;l>=0;l-=1){const u=n[l];if(DA(e,u)<i)return u}return null}for(const i of n)if(Vm(e,i)>o+8)return i;return null}function AF(e){return Math.min(wF,Math.max(CF,Math.abs(e)/5))}function RF(e){return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2}function TF(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!(!n.createImproveRun||n.createImproveRun.state==="cancelled"))return{run:n.createImproveRun}}return null}function jF(e){return e.startsWith("cloud:")&&e.slice(6)||null}function $C(e){return e.command==="create"?`/create ${e.args}`:e.command==="edit"?`/edit ${e.args}`:e.command==="skill"?e.args?`/skill ${e.args}`:"/skill":e.command==="sync-cloud"?e.args?`/sync-cloud ${e.args}`:"/sync-cloud":e.command==="goal-local"?`Goal: ${e.args}`:`Goal: ${e.args}`}function DC(e,t){return{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:t}}function EF(e){return e.command==="goal"||e.command==="goal-local"||e.command==="skill"||e.command==="sync-cloud"}function MF(e){return e.command.command!=="create"&&e.command.command!=="edit"||e.profile?.mode!=="local"||e.view==="cloud"?!1:!xi(e.activeWorkspaceKind)}function PF(e,t){if(!e)return null;const n=t?.workItem.id===e.id;return(n?t.workItem.latestSandboxId:null)??e.latestSandboxId??(n?t.runtimeSessions.find(o=>o.sandboxId&&!o.endedAt)?.sandboxId??t.runtimeSessions.find(o=>o.sandboxId)?.sandboxId??null:null)}function NF(e){const t=e?.trim()??"";return/^[a-z0-9]{24}$/.test(t)?t:null}const OF=b.lazy(()=>Jn(()=>import("./WorkspaceDiffPanel-SlLlGZM1.js"),__vite__mapDeps([22,6,23,17,9]),import.meta.url).then(e=>({default:e.WorkspaceDiffPanel}))),zF=b.lazy(()=>Jn(()=>import("./AppsView-CF2g-7FH.js"),__vite__mapDeps([24,25]),import.meta.url).then(e=>({default:e.AppsView}))),$F=b.lazy(()=>Jn(()=>import("./GetStartedView-Du533wOh.js"),__vite__mapDeps([26,5,27]),import.meta.url).then(e=>({default:e.GetStartedView}))),DF=b.lazy(()=>Jn(()=>import("./LabsRoute-yk8lNMQc.js"),__vite__mapDeps([28,3,4,5,6,7,8,16,23,19,29]),import.meta.url).then(e=>({default:e.LabsRoute}))),UF=b.lazy(()=>Jn(()=>import("./BrowserSidebar-lUsLUl20.js"),__vite__mapDeps([30,6,31]),import.meta.url).then(e=>({default:e.BrowserSidebar}))),LF=b.lazy(()=>Jn(()=>import("./CloudWorkView-BnfGW4OV.js"),__vite__mapDeps([32,5,33,34]),import.meta.url).then(e=>({default:e.CloudWorkView}))),qF=b.lazy(()=>Jn(()=>import("./TeamChatView-D_CE7br9.js"),__vite__mapDeps([35,6,36,12,37,8]),import.meta.url).then(e=>({default:e.TeamChatView}))),BF=b.lazy(()=>Jn(()=>import("./CommunityView-C8qVOwlp.js"),__vite__mapDeps([38,10,6,36,39]),import.meta.url).then(e=>({default:e.CommunityView}))),HF=b.lazy(()=>Jn(()=>import("./TeamChatView-D_CE7br9.js"),__vite__mapDeps([35,6,36,12,37,8]),import.meta.url).then(e=>({default:e.TeamAiThreadPanel}))),FF=b.lazy(()=>Jn(()=>import("./TeamChatView-D_CE7br9.js"),__vite__mapDeps([35,6,36,12,37,8]),import.meta.url).then(e=>({default:e.TeamAgentConversationPanel}))),KF=b.lazy(()=>Jn(()=>import("./TrainingDraftPanel-BWEmVFjM.js"),__vite__mapDeps([40,41]),import.meta.url).then(e=>({default:e.TrainingDraftPanel}))),VF=b.lazy(()=>Jn(()=>import("./TrainingCreationPanel-NFCoaBUI.js"),__vite__mapDeps([42,41]),import.meta.url).then(e=>({default:e.TrainingCreationPanel}))),GF=b.lazy(()=>Jn(()=>import("./TrainingCreationPanel-NFCoaBUI.js"),__vite__mapDeps([42,41]),import.meta.url).then(e=>({default:e.TrainingStatusReceipt})));function ZF({view:e,teamChat:t,community:n,bootstrap:o,runtimeEvents:i,chatMessages:l,contextWindowStatus:u,goalRuntime:m,subagentRuntime:g,selectedSessionId:p,composerDraftStore:S,mainComposerFocusRequestId:x,labCloseDetailRequestId:C,labCloseDetailKind:w,labSuggestionsRequestId:E,steerAutoDispatchBlocked:j,steerAutoDispatchReady:U,mentionApps:D,connectedAppMentions:B,profileSkills:K,selectedMentionAppId:I,busy:O,turnRunning:N,activeProvider:z,activeModel:G,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,subagentDelegationDefaultMode:ue,subagentDelegationMode:Se,subagentDelegationAvailable:me,pendingApproval:qe,activeWorkspaceAppId:$,activeWorkspaceId:be,activeWorkspaceKind:ie,projectTarget:fe,actionCatalog:te,workspaceTarget:R,connection:L,workspaceName:Q,workspaceState:Ae,workspaceDiff:je,workspaceBusy:Le,diffBusy:de,forceChatThread:He=!1,diffPanelOpen:xe,diffPanelExpanded:Ke,rightPanelMode:Ue,rightPanelTabRequest:ot,rightChatPanels:$e,workspaceDiffPanelViewState:Me,browserConversationId:q,terminalScope:ae,terminalTabs:H,terminalCwd:se,pendingTerminalCommand:we,terminalOpen:ze,onToggleTerminal:Ye,onWorkspaceDiffPanelViewStateChange:Ct,insightsItems:yt,insightsRuns:Et,insightsNextScanAt:gt,insightsScanRunning:Be,insightsScanStartedAt:it,insightsScanning:y,insightsError:Z,training:le,trainingSessions:Pe,trainingChatHandoff:V,trainingDetailTasksetId:he,onTrainingDetailTasksetIdChange:A,onTrainingChatTaskSelect:W,onTrainingChatHandoffDismiss:Ce,onRunInsightsScan:ye,onAskInsightsQuestion:Te,onPatchInsightStatus:De,onOpenInsightsSession:Ne,cloudProjects:nt,cloudWorkItems:Qe,selectedCloudWorkItem:Xe,cloudWorkItemDetail:at,cloudWorkItemLocalProjectName:vt,cloudLoading:ct,cloudBusy:pn,cloudError:hn,chatHistoryHasMore:Dt=!1,chatHistoryLoading:Sn=!1,onDiffPanelResizeStart:Xt,canSyncWorkspace:Ft,startMessage:za,onPayload:Nt,onError:vn,setView:xn,onOpenProfileSettings:sa,onOpenProviderSettings:Qn,changeDraftProvider:Lt,changeProjectTarget:en,changeWorkspaceTarget:kt,setDraftProvider:On,setDraftModel:_a,onBeginNewChatWithModel:la,changeCodexPermissionMode:kn,changeCodexReasoningEffort:un,changeOpenPondCommandAccessMode:ea,changeSubagentDelegationMode:Ln,resolveApproval:ba,answerCreateImproveQuestion:ka,approveCreateImproveRun:ca,applyCreateImproveCandidate:tn,cancelCreateImproveRun:Rt,openCreateImprovePullRequest:Kt,pauseCreateImproveRun:Ot,reconcileCreateImprovePullRequest:Mt,rejectCreateImproveCandidate:oe,resumeCreateImproveRun:pt,reviseCreateImproveRun:dt,setMentionedAppId:st,showToast:St,sendPrompt:Tt,stopTurn:En,syncWorkspaceLocally:Fn,refreshWorkspaceDiff:bo,onToggleDiffPanelExpanded:wt,onShowDiffPanel:It,onShowBrowserPanel:Ia,onShowTrainingDraftPanel:$a,onShowFilesPanel:qo,onShowRightChatPanel:gn,onAddRightChat:ro,onOpenRightChatForSession:vo,onOpenLabSuggestions:Da,onLabDetailOpenChange:Kn,onTerminalTabsChange:Bo,onCloseRightChatPanel:nr,onRightChatModelChange:Ho,onRightChatPromptChange:pr,onRightChatProviderChange:To,onSubmitRightChat:hr,onStopRightChat:ar,onCloseTerminal:gr,onOpenCloudHome:Fo,onSetupCloudProject:Ko,onCreateCloudWork:Cn,onSelectCloudWorkItem:io,onSendCloudWorkItemMessage:jo,onHandleCloudWorkItemBackground:Xn,onCancelCloudWorkItemCreatePipeline:Va,onCancelCloudWorkItemTask:Aa,onApplyCloudWorkItemPatchLocally:Vo,onLoadMoreChatHistory:nn}){const Mn=b.useRef(null),Vn=b.useRef(null),an=b.useRef(!0),yo=b.useRef(null),Tn=b.useRef(null),wn=b.useRef(!1),ua=b.useRef(!1),Ga=b.useRef(!1),ta=b.useRef(null),Za=b.useRef(null),[ni,zn]=b.useState(0),[Ua,La]=b.useState(null),[qa,so]=b.useState(!1),[So,br]=b.useState(132),[lo,Eo]=b.useState(Of),[or,Pr]=b.useState(null),[Go,Nr]=b.useState(null),[xo,vr]=b.useState(null),[Or,yr]=b.useState(null),[zr,$r]=b.useState(null),[Sr,_i]=b.useState(null),[xr,Dr]=b.useState(!1),rn=yF(L),Co=b.useCallback(_e=>{if(!_e){rn.activate(null);return}rn.activate({runId:_e.run.id,candidateId:_e.candidate.id,title:_e.run.objective,fileRootPath:_e.fileRootPath,initialPath:_e.initialPath})},[rn.activate]),ki=b.useCallback(()=>{rn.selection?.initialPath&&rn.openFile(rn.selection.initialPath),It()},[rn.openFile,rn.selection?.initialPath,It]),Mo=b.useMemo(()=>jr(o?.preferences),[o?.preferences]),Ii=Mo.training,rr=b.useCallback(async _e=>{if(!L||!o)throw new Error("OpenPond is still connecting.");const et=o.profile;if(et.mode!=="local"||!et.repoPath)throw new Error("A local Git-backed Profile is required to change an Agent.");const Gt=pi(z,G,o.providers);if(!Gt)throw new Error("Choose a model before changing an Agent.");const Qt=Jn(()=>import("./create-pipeline-request-AJWLMTyw.js"),[],import.meta.url),dn=await ge.createSession(L,{provider:Gt.providerId,modelRef:Gt,systemKind:"openpond.lab",hiddenFromDefaultSidebar:!0,title:`${_e.operation==="create"?"New":"Improve"} Agent · ${_e.objective.slice(0,80)}`,cwd:et.repoPath,metadata:{source:_e.operation==="create"?"lab_agent_create":"lab_agent_improve",profileId:et.activeProfile??"default",targetAgentId:_e.agentId??null}}),Gn=_e.authoringRunId?await ge.getCreateImproveRun(L,_e.authoringRunId):null,{buildLabAgentCreateImproveRun:qt,buildLabAgentImproveRun:Xa,continueLabAgentRunFromTaskset:Bt}=await Qt,na=Gn?Bt({authoringRun:Gn,agentId:_e.agentId,agentName:_e.agentName,objective:_e.objective,payload:o,session:dn,operation:_e.operation}):_e.operation==="create"?qt({objective:_e.objective,payload:o,session:dn}):Xa({agentId:_e.agentId??"",agentName:_e.agentName,objective:_e.objective,payload:o,session:dn});if(!na)throw new Error(_e.operation==="create"?"Describe what the Agent should do.":"Describe what the Agent could do better.");const ja=await ge.sendTurn(L,dn.id,{prompt:_e.objective,model:Gt.modelId,modelRef:Gt,createImproveRun:na,approvalPolicy:"never",sandbox:"workspace-write",codexPermissionMode:Gt.providerId==="codex"?ne:"default",codexReasoningEffort:ce});if(ja.status==="failed")throw new Error(ja.error??"OpenPond could not start the Agent improvement.");const da=ja.createImproveRun??await ge.getCreateImproveRun(L,na.id);if(!da)throw new Error("The Agent plan was not created.");return Nt(await ge.bootstrap(L)),da},[G,z,o,ne,ce,L,Nt]),Po=b.useCallback((_e,et)=>rr({objective:_e,operation:"create",authoringRunId:et}),[rr]),ai=b.useCallback((_e,et,Gt,Qt)=>rr({agentId:_e,agentName:Gt,objective:et,operation:"improve",authoringRunId:Qt}),[rr]),Ai=b.useCallback(async _e=>{if(!(!L||!o||xr)){Dr(!0),vn(null);try{const et=await ge.savePreferences(L,{insightsEnabled:_e});Nt({...o,preferences:et.preferences}),St(_e?"Observation scanning enabled":"Observation scanning disabled","success")}catch(et){vn(et instanceof Error?et.message:String(et))}finally{Dr(!1)}}},[o,L,xr,vn,Nt,St]),re=b.useMemo(()=>{const _e=le.payload?.tasksets??[];return _e.some(et=>et.id===Or)?Or:_e[0]?.id??null},[Or,le.payload?.tasksets]),Je=e==="labs"&&re?`profiles/${o?.profile.activeProfile??"default"}/tasksets/${re}`:null,tt=b.useMemo(()=>{if(e!=="labs"||!re||!le.payload)return null;const _e=le.payload.tasksets.find(Bt=>Bt.id===re);if(!_e)return null;const et=le.payload.plans.filter(Bt=>Bt.tasksetId===_e.id),Gt=new Set(et.map(Bt=>Bt.id)),Qt=le.payload.jobs.filter(Bt=>Gt.has(Bt.planId)).sort((Bt,na)=>na.createdAt.localeCompare(Bt.createdAt)),dn=Qt.find(Bt=>Bt.id===zr)??Qt[0]??null,Gn=dn?et.find(Bt=>Bt.id===dn.planId)??null:et.sort((Bt,na)=>na.createdAt.localeCompare(Bt.createdAt))[0]??null,qt=dn?le.payload.models.find(Bt=>Bt.jobId===dn.id)??null:null,Xa=dn?le.payload.artifacts.filter(Bt=>Bt.jobId===dn.id):[];return{taskset:_e,plan:Gn,job:dn,lineage:qt,artifacts:Xa}},[re,zr,le.payload,e]),$t=b.useMemo(()=>vF(le.payload,p),[p,le.payload]),rt=b.useMemo(()=>PF(Xe,at),[at,Xe]),bn=b.useMemo(()=>TF(l),[l]),Pn=!!m||!!bn||!!g,on=e==="labs"&&!!rn.selection,co=e==="cloud"&&xe&&(Ue==="changes"||Ue==="goal"&&Pn)&&!!Xe,uo=(e==="chat"||e==="labs")&&!!$,wo=e==="chat"&&xe&&Ue==="chat"&&$e.length===0,Wa=xi(ie)?be??NF(Q):null,Ur=e==="chat"&&!!Wa,Zo=co?rt:Wa,ir=!!Zo||co||R.value==="cloud"||R.value==="hybrid",oi=b.useMemo(()=>dF({workspaceTarget:co?"cloud":R.value,localWorkspaceId:co?null:$,sandboxSourceAvailable:ir,sandboxWorkspaceId:Zo,override:Go}),[$,ir,Zo,Go,co,R.value]),ri=oi.source,_o=ri==="sandbox",Ri=b.useMemo(()=>ri&&oi.options.length>1?{value:ri,options:oi.options,onChange:Nr}:null,[ri,oi.options]);b.useEffect(()=>{Nr(null)},[$,q,Zo,co,R.value]);const Ut=(on||uo||co||Ur)&&xe&&(Ue==="changes"||Ue==="goal"&&Pn||wo),Vt=(e==="chat"||e==="cloud")&&xe&&Ue==="browser",ko=(e==="chat"||e==="labs")&&xe&&Ue==="chat"&&$e.length>0,Ba=e==="chat"&&xe&&Ue==="training",Ra=e==="team"&&xe&&Ue==="chat"&&!!t.aiThread,Ya=e==="team"&&xe&&Ue==="chat"&&!!t.agentConversation,is=WF({supportedView:e==="chat"||e==="cloud"||e==="labs",open:xe,hasContentPanel:Ut||Vt||ko||Ba||Ra||Ya}),Lr=Ut||Vt||ko||Ba||Ra||Ya||is,Ti=Lr&&Ue!=="chat"&&Ke,ss=o?.account.baseUrl??o?.account.activeProfile?.baseUrl??null,ji=kF({activeWorkspaceId:be,cloudProjects:nt,selectedCloudWorkItem:Xe}),Ei=e==="chat"&&N&&!qe&&NA(l),qr=He||l.length>0||Ei,Us=p??`draft:${e}:${ie??"none"}:${be??$??"none"}`,Ls=V?.model.providerId===z&&V.model.modelId===G?f.jsx(d9,{busy:N,handoff:V,onDismiss:Ce,onSelectTask:W,servingSession:(le.payload?.servingSessions??[]).filter(_e=>_e.modelArtifactLineageId===V.model.modelId).sort((_e,et)=>et.updatedAt.localeCompare(_e.updatedAt))[0]??null,onStopServing:_e=>{le.actions.stopModelServing(_e)}}):null,ls=b.useMemo(()=>bn?{...bn,onAnswerQuestion:ka,onApprove:ca,onApplyCandidate:tn,onCancel:Rt,onOpenPullRequest:Kt,onPause:Ot,onReconcilePullRequest:Mt,onRejectCandidate:oe,onResume:pt,onRevise:dt}:null,[ka,ca,tn,Rt,bn,Kt,Ot,Mt,oe,pt,dt]),qs=e==="team"?"team-active":e==="community"?"community-active":e==="apps"||e==="get-started"||e==="labs"?"page-active":e==="cloud"?"cloud-active":qr?"chat-active":"chat-start",Ta=Xe?.projectId??jF(fe.value)??(nt.length===1?nt[0]?.id??null:null),ii=b.useCallback(async(_e=[],et=null,Gt=null,Qt={})=>{const dn=Qt.promptOverride??S.getSnapshot(),Gn=()=>{Qt.preservePrompt||(S.set(""),st(null))};if(!et){const qt=Gt?{command:Gt.id,args:dn.trim()}:Hm(dn);if(qt){if(qt.command==="insights"){if(_e.length>0)return St("/insights does not accept attachments.","error"),!1;if(Gn(),qt.args.trim()){const na=await Te(qt.args.trim()),ja=_F(na);return ja?Ne(ja):Da(),!0}Da();const Bt=await ye({trigger:"slash_command"});if(Bt&&typeof Bt=="object"&&"summary"in Bt){const na=Bt.summary,ja=na.activeCount??0,da=na.highestActiveSeverity?` Highest severity: ${na.highestActiveSeverity}.`:"";St(`${ja} active insight${ja===1?"":"s"}.${da}`,"info")}return!0}if(qt.command==="train")return _e.length>0?(St("/train uses the selected chat; add other chats from Lab.","error"),!1):p?(Gn(),vr({id:Date.now(),objective:qt.args.trim()||null,initialSessionIds:[p]}),xn("labs"),!0):(Gn(),vr({id:Date.now(),objective:qt.args.trim()||null,initialSessionIds:[]}),xn("labs"),!0);if(!qt.args&&qt.command!=="skill"&&qt.command!=="sync-cloud")return St(`Add instructions after /${qt.command}.`,"info"),!1;if(_e.length>0)return St(`/${qt.command} tasks do not accept attachments yet. Add file context in the task thread.`,"error"),!1;if(qt.command==="submit-issue")return QI(B)?Tt([],null,eA(qt.args),{clearPrompt:Qt.preservePrompt?()=>{}:void 0,usageAttribution:DC(qt,Gt?"composer_selection":"prompt_parse")}):(St("Connect the GitHub app before using /submit-issue.","error"),!1);if(EF(qt)||MF({command:qt,profile:o?.profile,activeWorkspaceKind:ie,view:e}))return Tt([],null,$C(qt),{clearPrompt:Qt.preservePrompt?()=>{}:void 0,usageAttribution:DC(qt,Gt?"composer_selection":"prompt_parse")});if(!Ta)return St(`Select a Cloud Project before using /${qt.command}.`,"error"),!1;const Xa=await Cn({projectId:Ta,prompt:$C(qt)});return Xa&&Gn(),Xa}}return Tt(_e,et,Qt.promptOverride,{clearPrompt:Qt.preservePrompt?()=>{}:void 0,displayPrompt:Qt.displayPrompt})},[G,z,ie,o?.profile,B,Te,Da,Ne,Cn,ye,S,Tt,p,st,xn,St,Ta,le,e]),Bi=b.useCallback(_e=>{V&&_e!==V.model.modelId&&Ce(),On(z),_a(_e)},[z,Ce,_a,On,V]),cs=b.useCallback(_e=>{V&&_e!==V.model.providerId&&Ce(),Lt(_e)},[Lt,Ce,V]),Mi=b.useMemo(()=>PA(l,{showThinkingIndicator:Ei}),[l,Ei]),Bs=b.useMemo(()=>({"--chat-composer-reserve":`${So}px`}),[So]),Pi=l.at(-1),xl=[Mi.length,Pi?.id??"",Pi?.content?.length??0,Pi?.timestamp??"",Ei?"thinking":""].join(":"),No=Dt,fo=q,si=e==="chat"&&qr&&!!fo&&Ua!==fo,va=b.useCallback(_e=>{so(et=>et===_e?et:_e)},[]),Ha=b.useCallback(_e=>{Eo(et=>et.canGoPrevious===_e.canGoPrevious&&et.canGoNext===_e.canGoNext?et:_e)},[]),Ja=b.useCallback((_e,et={})=>{const Gt=et.nearBottom??zu(_e);va(!Gt),Ha(zf(_e))},[va,Ha]),Oo=b.useCallback(_e=>{const et=ua.current;ua.current=!1,La(_e),va(!1),Ha(Of),et&&zn(Gt=>Gt+1)},[va,Ha]),sr=b.useCallback(()=>{Za.current===null||typeof window>"u"||(window.cancelAnimationFrame(Za.current),Za.current=null)},[]),Br=b.useCallback((_e,et,Gt)=>{sr();const Qt=Math.max(0,_e.scrollHeight-_e.clientHeight),dn=()=>{const lr=typeof et=="function"?et():et;return Math.max(0,Math.min(lr,Math.max(0,_e.scrollHeight-_e.clientHeight)))},Gn=Math.max(0,Math.min(dn(),Qt)),qt=_e.scrollTop,Xa=Gn-qt;if(typeof window>"u"||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0||Math.abs(Xa)<1){_e.scrollTop=Gn,Gt?.();return}const na=AF(Xa),ja=window.performance.now(),da=lr=>{if(Mn.current!==_e){Za.current=null;return}const Fr=Math.min(1,(lr-ja)/na),Zi=dn();if(_e.scrollTop=qt+(Zi-qt)*RF(Fr),Fr<1){Za.current=window.requestAnimationFrame(da);return}_e.scrollTop=dn(),Za.current=null,Gt?.()};Za.current=window.requestAnimationFrame(da)},[sr]),ya=b.useCallback(()=>{Ga.current=!1,!(ta.current===null||typeof window>"u")&&(window.cancelAnimationFrame(ta.current),ta.current=null)},[]),li=b.useCallback((_e,et={})=>{if(_e.scrollTop=_e.scrollHeight,typeof window>"u"){et.finishInitial&&Oo(et.conversationKey??null);return}ya(),Ga.current=!0;let Qt=0,dn=0,Gn=_e.scrollHeight;const qt=et.settle?12:2,Xa=()=>{const Bt=Mn.current;if(!Bt){ta.current=null,Ga.current=!1,et.finishInitial&&Oo(et.conversationKey??null);return}Bt.scrollTop=Bt.scrollHeight;const na=Bt.scrollHeight-Bt.scrollTop-Bt.clientHeight,ja=Math.abs(Bt.scrollHeight-Gn)<=1;if(Gn=Bt.scrollHeight,dn=na<=1&&ja?dn+1:0,Qt+=1,Qt<qt&&dn<2){ta.current=window.requestAnimationFrame(Xa);return}ta.current=null,Ga.current=!1,an.current=!0,va(!1),Ha(zf(Bt)),et.finishInitial&&Oo(et.conversationKey??null)};ta.current=window.requestAnimationFrame(Xa)},[ya,Oo,va,Ha]),Hi=b.useCallback(()=>{const _e=Mn.current;_e&&(ya(),an.current=!0,va(!1),Br(_e,()=>_e.scrollHeight-_e.clientHeight,()=>{Mn.current===_e&&(_e.scrollTop=_e.scrollHeight,an.current=!0,va(!1),Ha(zf(_e)))}))},[ya,va,Ha,Br]),us=b.useCallback(_e=>{const et=Mn.current;if(!et)return;const Gt=IF(et,_e);if(!Gt)return;ya(),Br(et,()=>Gt.isConnected?Math.max(0,Vm(et,Gt)-zA):et.scrollTop,()=>{if(Mn.current!==et)return;const dn=zu(et);an.current=dn,Ja(et,{nearBottom:dn})})},[ya,Br,Ja]),Hs=b.useCallback(()=>{const _e=Mn.current;_e&&(Tn.current={scrollHeight:_e.scrollHeight,scrollTop:_e.scrollTop},an.current=!1)},[]),Ni=b.useCallback(async()=>{if(No&&!(!nn||Sn||wn.current)){Hs(),wn.current=!0;try{await nn()}finally{wn.current=!1}}},[No,Sn,nn,Hs]),Cl=b.useCallback(_e=>{if(Ga.current){an.current=!0,va(!1),Ha(Of);return}const et=zu(_e);an.current=et,Ja(_e,{nearBottom:et}),!ua.current&&_e.scrollTop<=Eg&&No&&!Sn&&Ni()},[No,Sn,Ni,va,Ha,Ja]),ds=b.useCallback((_e,et)=>{Hv({conversationId:q,href:_e,explicitFile:et?.explicitFile,newTab:et?.newTab}).then(Gt=>{Gt&&Ia()})},[q,Ia]),Fi=R.value==="local"?Ae?.repoPath??R.detail:Ae?.repoPath??null,Oi=b.useCallback(_e=>{const et=Gc(_e,{workspaceRootPath:Fi});It(),Pr({id:Date.now(),path:et?.path??_e})},[It,Fi]);b.useLayoutEffect(()=>{if(e!=="chat"||!qr||typeof window>"u")return;const _e=Vn.current;if(!_e)return;let et=null;const Gt=()=>{et=null;const Gn=Math.max(96,Math.ceil(_e.getBoundingClientRect().height+20));br(qt=>qt===Gn?qt:Gn)},Qt=()=>{et===null&&(et=window.requestAnimationFrame(Gt))};Qt();const dn=typeof window.ResizeObserver>"u"?null:new window.ResizeObserver(Qt);return dn?.observe(_e),window.addEventListener("resize",Qt),()=>{et!==null&&window.cancelAnimationFrame(et),dn?.disconnect(),window.removeEventListener("resize",Qt)}},[qr,e]),b.useLayoutEffect(()=>{const _e=Mn.current;e!=="chat"||!qr||!_e||ua.current||!an.current&&!zu(_e)||(an.current=!0,li(_e,{settle:!0}))},[So,li,qr,e]),b.useLayoutEffect(()=>{Tn.current=null,wn.current=!1,ua.current=!0,an.current=!0,sr(),ya(),La(null),va(!1),Ha(Of)},[ya,sr,fo,va,Ha]),b.useEffect(()=>{const _e=Mn.current;e!=="chat"||!_e||ua.current||!No||Sn||_e.scrollTop<=Eg&&_e.scrollHeight<=_e.clientHeight+Eg&&Ni()},[No,Sn,ni,Mi.length,Ni,e]),b.useLayoutEffect(()=>{const _e=Tn.current,et=Mn.current;!_e||!et||ua.current||(Tn.current=null,et.scrollTop=_e.scrollTop+Math.max(0,et.scrollHeight-_e.scrollHeight),Ja(et))},[Mi.length,Ja]),b.useLayoutEffect(()=>{const _e=Mn.current;if(e!=="chat"||!fo||!_e){yo.current=fo,an.current=!0,Oo(fo);return}const et=yo.current!==fo;if(yo.current=fo,et||ua.current){an.current=!0,li(_e,{conversationKey:fo,finishInitial:!0,settle:!0});return}const Gt=zu(_e);if(an.current||Gt){an.current=!0,va(!1),Ha(zf(_e)),li(_e,{settle:!0});return}Ja(_e,{nearBottom:Gt})},[xl,fo,Oo,qe?.id,li,va,Ha,Ja,e]),b.useEffect(()=>()=>{ya(),sr()},[ya,sr]);const Io=Le&&!!$&&!Ae,ci=rn.selection?`candidate:${rn.selection.runId}:${rn.selection.candidateId}`:null,Ao=Ut?f.jsx(OF,{appId:on?ci:_o?null:$,workspaceId:on?ci:_o?Zo:$,workspaceKind:on?"local_project":_o?null:"local_project",connection:L,runtimeEvents:i,diff:on?rn.diff:_o?null:je,fileRootPath:on?rn.selection?.fileRootPath??null:_o?null:Je,filesWithPreview:on,editorPreferences:o?.preferences.editor??null,loading:on?rn.loading:_o?ct:de||Io,openFileRequest:on?rn.openFileRequest:or,readOnly:on,sideChatTabs:$e.map(_e=>({id:_e.id,title:_e.title})),sourceSwitcher:on?null:Ri,tabRequest:ot,viewState:Me,workspaceName:on?rn.selection?.title??"Change":_o?Xe?.title??"Sandbox":Q,workspaceInitialized:on?!0:_o?!!Zo:!!Ae?.initialized,workspaceError:on?rn.error:_o?null:Ae?.error??je?.error??null,expanded:Ke,onResizeStart:Xt,onRefresh:_e=>{on?rn.refresh(_e):bo(_e)},onToggleExpanded:wt,onOpenBrowser:Ia,onOpenBrowserUrl:ds,onViewStateChange:Ct,onCloseSideChat:nr,onOpenSideChat:e==="chat"?ro:void 0,onSelectSideChat:()=>gn(),goalDetails:{active:Ue==="goal",createRuntime:ls,goalRuntime:m,subagentRuntime:g},sandboxFileSource:_o?{sandboxId:Zo,emptyMessage:"No sandbox filesystem yet."}:null,trainingSummary:tt}):null,Hr=Vt?f.jsx(UF,{conversationId:q,expanded:Ke,onResizeStart:Xt}):null,Ki=Ra?b.createElement(HF,{...t,key:t.aiThread?.conversationId,onResizeStart:Xt}):null,Vi=Ya?b.createElement(FF,{...t,key:t.agentConversation?.run.id,onResizeStart:Xt}):null,Gi=ko?f.jsx(hF,{panels:$e,busy:O,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,connection:L,connectedAppMentions:B,mentionApps:D,profileSkills:K,projectTarget:fe,providerSettings:o?.providers??null,accountBaseUrl:ss,billingOrganizationSlug:ji.organizationSlug,billingTeamId:ji.teamId,showToast:St,workspaceTarget:R,onAddChat:ro,onClosePanel:nr,onCodexPermissionModeChange:kn,onCodexReasoningEffortChange:un,onOpenPondCommandAccessModeChange:ea,onModelChange:Ho,onOpenFileInSidebar:Oi,onOpenProfileSettings:sa,onOpenSession:Ne,onProviderChange:To,onProviderSetupOpen:Qn,onPromptChange:pr,onProjectTargetChange:en,onResolveApproval:ba,onResizeStart:Xt,onSelectFiles:qo,onShowBrowserPanel:Ia,onStop:ar,onSubmit:hr,onWorkspaceTargetChange:_e=>{kt(_e)}}):null,fs=is?f.jsx(bF,{expanded:Ke,terminalOpen:ze,sideChatAvailable:e==="chat"||e==="labs",onOpenBrowser:Ia,onOpenFiles:qo,onOpenReview:It,onOpenSideChat:ro,onOpenTrainingDraft:$a,trainingDraftAvailable:!!p,onResizeStart:Xt,onToggleExpanded:wt,onToggleTerminal:Ye}):null,Cr=Ba?f.jsx(b.Suspense,{fallback:null,children:f.jsx(KF,{training:le,sessionId:p,expanded:Ke,onOpenTraining:()=>xn("labs"),onResizeStart:Xt,onToggleExpanded:wt})}):null,mo=Vi??Ki??Gi??Ao??Hr??Cr??fs,Wo=f.jsx(pF,{open:ze,connection:L,scope:ae,tabs:H,onTabsChange:Bo,cwd:se,appId:$,workspaceName:Q,queuedCommand:we,onClose:gr}),ui=f.jsx(LF,{projects:nt,workItems:Qe,selectedWorkItem:Xe,detail:at,loading:ct,actionBusy:pn,error:hn,model:G,onBack:Fo,connection:L,showToast:St,onModelChange:Bi,onSetupCloudProject:Ko,onCreateWork:Cn,onSelectWorkItem:io,onSendMessage:jo,onHandleBackground:Xn,onCancelCreatePlan:Va,onCancelTask:Aa,localProjectName:vt,onApplyLocalPatch:Vo,onShowFiles:rt?qo:void 0});return f.jsx("main",{className:`main-pane ${qs} ${ze?"terminal-open":""} ${Lr?"diff-open":""} ${Ti?"diff-expanded":""}`,children:e==="apps"?f.jsx(b.Suspense,{fallback:null,children:f.jsx(zF,{account:o?.account??null,connection:L,defaultTeamId:o?.preferences.defaultTeamId??null,onToast:St})}):e==="team"?f.jsxs(b.Suspense,{fallback:null,children:[f.jsx(qF,{...t}),Lr?mo:null]}):e==="community"?f.jsx(b.Suspense,{fallback:null,children:f.jsx(BF,{...n})}):e==="get-started"?f.jsx(b.Suspense,{fallback:null,children:f.jsx($F,{onCreateAgent:()=>{S.set("/create "),st(null),xn("chat")},onOpenApps:()=>xn("apps"),onOpenChat:()=>xn("chat"),onOpenCloud:()=>xn("cloud"),onOpenProfile:()=>xn("labs")})}):e==="labs"?Ti?f.jsx(b.Suspense,{fallback:null,children:mo}):f.jsxs(f.Fragment,{children:[f.jsx(b.Suspense,{fallback:null,children:f.jsx(DF,{closeDetailRequestId:C,closeDetailKind:w,openSuggestionsRequestId:E,onNewModel:()=>{vr({id:Date.now(),objective:null,initialSessionIds:[]})},onUseAgent:_e=>{S.set(""),_i({actionId:_e,requestId:Date.now()}),st(null),xn("chat")},onCreateAgent:Po,onImproveAgent:ai,onDetailOpenChange:Kn,onOpenRunConversation:vo,onAnswerQuestion:ka,onApplyCandidate:tn,onApprove:ca,onCancel:Rt,candidateReview:{diff:rn.diff,error:rn.error,loading:rn.loading},onCandidateReviewChange:Co,onOpenPullRequest:Kt,onOpenCandidateFiles:ki,onPause:Ot,onReconcilePullRequest:Mt,onRejectCandidate:oe,onResume:pt,onRevise:dt,profileView:{payload:o,connection:L,onPayload:Nt,onError:vn,onToast:St,onSkillCommand:_e=>{S.set(_e),st(null),xn("chat")}},insights:{enabled:Mo.insightsEnabled,items:yt,runs:Et,nextScanAt:gt,scanRunning:Be,scanStartedAt:it,scanning:y,savingEnabled:xr,error:Z,onEnabledChange:Ai,onPatchStatus:De,onOpenSession:Ne},training:{training:le,sessions:Pe,localProjects:o?.localProjects??[],connection:L,defaultModel:{providerId:z,modelId:G},onError:vn,onToast:St,onSettingsPreferences:_e=>{o&&Nt({...o,preferences:_e.preferences})},onOpenChat:Ne,onChatWithModel:la,onOpenTasksetFiles:qo,launchRequest:xo,onLaunchHandled:_e=>vr(et=>et?.id===_e?null:et),preferences:Ii,settingsPreferences:Mo,providerSettings:o?.providers??null,reasoningEffort:ce,selectedTasksetId:re,onSelectedTasksetIdChange:yr,onSelectedTrainingJobIdChange:$r,detailTasksetId:he,onDetailTasksetIdChange:A}})}),Wo,Lr?f.jsx(b.Suspense,{fallback:null,children:mo}):null]}):e==="cloud"?f.jsxs(f.Fragment,{children:[f.jsx(b.Suspense,{fallback:null,children:ui}),Wo,Lr?f.jsx(b.Suspense,{fallback:null,children:mo}):null]}):Ti?f.jsx(b.Suspense,{fallback:null,children:mo}):qr?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:`chat-column ${qe?"has-approval":""}`,style:Bs,children:[f.jsxs("section",{className:`chat-thread${si?" initial-scroll-pending":""}`,"aria-label":"Conversation",ref:Mn,onScroll:_e=>{Cl(_e.currentTarget)},children:[Mi.map(_e=>_e.type==="thinking"?f.jsx(MA,{},_e.id):f.jsx(TA,{activeWorkspaceAppId:$,accountBaseUrl:ss,billingOrganizationSlug:ji.organizationSlug,billingTeamId:ji.teamId,connection:L,message:_e.message,onOpenFileInSidebar:Oi,onOpenBrowserLink:ds,onOpenProfileSettings:sa,onOpenSession:Ne,workspaceRootPath:Fi,showFooter:_e.showFooter},_e.id)),$t?f.jsx(b.Suspense,{fallback:null,children:f.jsx(GF,{creation:$t})}):null]}),f.jsxs("div",{className:`composer-stack dock ${qe?"has-approval":""}`,ref:Vn,children:[$t?f.jsx(b.Suspense,{fallback:null,children:f.jsx(VF,{compact:!0,creation:$t,training:le,onOpenTraining:()=>xn("labs")})}):null,Ls,f.jsx(vb,{approval:qe,onResolve:ba}),qa&&!si?f.jsxs("div",{className:"chat-scroll-controls","aria-label":"Message navigation",children:[f.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to previous message","aria-label":"Go to previous message","aria-disabled":!lo.canGoPrevious,onClick:()=>{lo.canGoPrevious&&us("previous")},children:f.jsx(Ub,{size:17})}),f.jsx("button",{type:"button",className:"chat-scroll-control-button primary","data-tooltip":"Jump to latest","aria-label":"Jump to latest",onClick:Hi,children:f.jsx(Cj,{size:18})}),f.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to next message","aria-label":"Go to next message","aria-disabled":!lo.canGoNext,onClick:()=>{lo.canGoNext&&us("next")},children:f.jsx($w,{size:17})})]}):null,f.jsx(wC,{draftStore:S,mode:"dock",focusRequestId:x,mentionApps:D,connectedAppMentions:B,profileSkills:K,selectedMentionAppId:I,contextWindowStatus:u,goalRuntime:m,subagentRuntime:g,createImproveRuntime:ls,busy:N,running:N,submissionScopeKey:Us,steerAutoDispatchBlocked:j||!!qe,steerAutoDispatchReady:U&&!qe,showProjectFooter:!1,connection:L,providerSettings:o?.providers??null,provider:z,model:G,projectTarget:fe,actionCatalog:te,requestedAction:Sr,workspaceTarget:R,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,subagentDelegationDefaultMode:me?ue:void 0,subagentDelegationMode:Se,onProviderChange:cs,onProviderSetupOpen:Qn,onProjectTargetChange:en,onWorkspaceTargetChange:_e=>{kt(_e)},onModelChange:Bi,onCodexPermissionModeChange:kn,onCodexReasoningEffortChange:un,onOpenPondCommandAccessModeChange:ea,onSubagentDelegationModeChange:me?Ln:void 0,onMentionAppSelect:st,showToast:St,onSubmit:ii,onStop:En})]})]}),Wo,f.jsx(b.Suspense,{fallback:null,children:mo})]}):f.jsxs(f.Fragment,{children:[f.jsxs("section",{className:"start-panel",children:[f.jsx("h1",{children:za}),Ft&&f.jsxs("button",{type:"button",className:"sync-local-button",disabled:Le,onClick:()=>{Fn()},children:[f.jsx(tE,{size:15}),f.jsx("span",{children:Le?"Syncing locally":"Sync locally to work on this"})]}),f.jsxs("div",{className:"composer-stack start",children:[Ls,f.jsx(vb,{approval:qe,onResolve:ba}),f.jsx(wC,{draftStore:S,mode:"start",autoFocus:!0,focusRequestId:x,mentionApps:D,connectedAppMentions:B,profileSkills:K,selectedMentionAppId:I,contextWindowStatus:u,goalRuntime:m,subagentRuntime:g,createImproveRuntime:ls,busy:N,running:N,submissionScopeKey:Us,steerAutoDispatchBlocked:j||!!qe,steerAutoDispatchReady:U&&!qe,connection:L,providerSettings:o?.providers??null,provider:z,model:G,projectTarget:fe,actionCatalog:te,requestedAction:Sr,workspaceTarget:R,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,subagentDelegationDefaultMode:me?ue:void 0,subagentDelegationMode:Se,onProviderChange:cs,onProviderSetupOpen:Qn,onProjectTargetChange:en,onWorkspaceTargetChange:_e=>{kt(_e)},onModelChange:Bi,onCodexPermissionModeChange:kn,onCodexReasoningEffortChange:un,onOpenPondCommandAccessModeChange:ea,onSubagentDelegationModeChange:me?Ln:void 0,onMentionAppSelect:st,showToast:St,onSubmit:ii,onStop:En})]})]}),Wo,f.jsx(b.Suspense,{fallback:null,children:mo})]})})}function WF(e){return e.supportedView&&e.open&&!e.hasContentPanel}function YF(){const[e,t]=b.useState(null),n=b.useRef(null),o=b.useCallback(l=>new Promise(u=>{n.current?.resolve(!1);const m={...l,cancelLabel:l.cancelLabel??"Cancel",tone:l.tone??"default",resolve:u};n.current=m,t(m)}),[]),i=b.useCallback(l=>{const u=n.current;n.current=null,t(null),u?.resolve(l)},[]);return{confirmAction:o,confirmDialog:e,resolveConfirmDialog:i}}function JF({state:e,onResolve:t}){const n=b.useId(),o=b.useId();if(b.useEffect(()=>{if(!e)return;function l(u){u.key==="Escape"&&t(!1)}return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[t,e]),!e)return null;const i=e.tone==="danger"?"git-dialog-primary danger":"git-dialog-primary";return f.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:()=>t(!1),children:f.jsxs("section",{className:"git-dialog project-confirm-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":n,"aria-describedby":o,onMouseDown:l=>l.stopPropagation(),children:[f.jsx("h2",{id:n,children:e.title}),f.jsx("p",{id:o,children:e.body}),f.jsxs("div",{className:"git-dialog-footer",children:[f.jsx("button",{type:"button",className:"git-dialog-secondary",onClick:()=>t(!1),children:e.cancelLabel}),f.jsx("button",{type:"button",className:i,autoFocus:!0,onClick:()=>t(!0),children:e.confirmLabel})]})]})})}function XF(){const{confirmAction:e,confirmDialog:t,resolveConfirmDialog:n}=YF();return{confirmProjectAction:b.useCallback(i=>e({tone:"danger",...i}),[e]),projectConfirmDialog:t,resolveProjectConfirmDialog:n}}function QF({state:e,onResolve:t}){return f.jsx(JF,{state:e,onResolve:t})}function e7({className:e,style:t,sidebar:n,topBar:o,mainPane:i,cloudSetup:l,projectConfirm:u,lazyPanels:m,toast:g}){return f.jsxs("div",{className:e,style:t,children:[f.jsx(KI,{id:"sidebar",children:f.jsx(V6,{...n})}),f.jsxs("div",{className:"content-shell",children:[f.jsx(sB,{...o}),f.jsx(ZF,{...i})]}),f.jsx(Z6,{...l}),f.jsx(QF,{...u}),f.jsx(rB,{...m}),f.jsx(qI,{...g})]})}function t7({settings:e,toast:t}){return f.jsxs(f.Fragment,{children:[f.jsx(oB,{...e}),f.jsx(qI,{...t})]})}const $f="OpenPond".split(""),n7=520,a7=240;function UC(){return typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function o7({startup:e}){const[t,n]=b.useState(()=>UC()?$f.length:0);return b.useEffect(()=>{if(UC()){n($f.length);return}const o=$f.map((i,l)=>window.setTimeout(()=>n(l+1),n7+a7*l));return()=>{o.forEach(i=>window.clearTimeout(i))}},[]),f.jsxs("main",{className:"app-splash","aria-busy":"true","aria-label":e.label,role:"status",children:[f.jsxs("div",{className:"app-splash-lockup","data-stage":e.stage,children:[f.jsx("div",{className:"app-splash-mark",children:f.jsx("img",{alt:"OpenPond",className:"app-splash-logo",decoding:"async",src:UI})}),f.jsx("span",{"aria-hidden":"true",className:`app-splash-wordmark${t>0?" is-visible":""}`,children:$f.slice(0,t).map((o,i)=>f.jsx("span",{className:"app-splash-letter",children:o},`${o}-${i}`))})]}),f.jsx("span",{className:"app-splash-status",children:e.label})]})}const qA=5e3;function dl(e,t){if(e.length===0)return t;if(t.length===0)return e;const n=new Set,o=[];for(const i of[...e,...t])n.has(i.id)||(n.add(i.id),o.push(i));return o}function ql(e,t,n=qA){return hm(dl(e,t),n)}function hm(e,t=qA){return e.length<=t?e:e.slice(e.length-t)}function r7(e,t,n){return n.length===0?e:{...e,[t]:dl(e[t]??[],n)}}function i7(e,t){if(t.length===0)return hm(e);if(e.length===0)return hm(t);const n=new Set(e.map(u=>u.id)),o=Fv(e),i=l7(e),l=t.filter(u=>{if(n.has(u.id))return!1;if(typeof u.sequence=="number")return o===null||u.sequence>o;const m=Date.parse(u.timestamp);return Number.isFinite(m)&&i!==null?m>=i:!0});return ql(e,l)}function Fv(e){let t=null;for(const n of e)typeof n.sequence=="number"&&(t=t===null?n.sequence:Math.max(t,n.sequence));return t}function s7(e){let t=null;for(const n of e)n.sequence!==void 0&&(t===null||n.sequence<t)&&(t=n.sequence);return t}function l7(e){let t=null;for(const n of e){const o=Date.parse(n.timestamp);Number.isFinite(o)&&(t=t===null?o:Math.max(t,o))}return t}const c7="codex_history_";function ia(e){return!!e?.startsWith(c7)}function BA(e){const t=[],n=new Set;for(const o of e)for(const i of[o.workspacePath,o.path]){const l=Gm(i);if(!l)continue;const u=`${o.id}:${l}`;n.has(u)||(n.add(u),t.push({projectId:o.id,path:l}))}return t.sort((o,i)=>i.path.length-o.path.length)}function u7(e,t,n,o=new Set){if(Kv(e,o))return null;if(e.localProjectId&&t.has(e.localProjectId))return e.localProjectId;if(e.workspaceKind==="local_project"&&e.workspaceId&&t.has(e.workspaceId))return e.workspaceId;if(e.metadata?.workspaceTarget==="hybrid"&&e.cwd){const l=HA(e.cwd,n);if(l)return l}if(e.cloudProjectId&&o.has(e.cloudProjectId))return e.cloudProjectId;if(!e.cwd||e.workspaceKind==="sandbox"||e.workspaceKind==="sandbox_template"||e.workspaceKind==="sandbox_app")return null;const i=Gm(e.cwd);if(!i)return null;for(const l of n)if(Vv(i,l.path))return l.projectId;return null}function LC(e,t,n,o=new Set){if(Kv(e,o))return null;if(e.localProjectId&&t.has(e.localProjectId))return Wt("local",e.localProjectId);if(e.workspaceKind==="local_project"&&e.workspaceId&&t.has(e.workspaceId))return Wt("local",e.workspaceId);if(e.metadata?.workspaceTarget==="hybrid"&&e.cwd){const l=HA(e.cwd,n);if(l)return Wt("local",l)}if(e.cloudProjectId&&o.has(e.cloudProjectId))return Wt("cloud",e.cloudProjectId);if(!e.cwd||e.workspaceKind==="sandbox"||e.workspaceKind==="sandbox_template"||e.workspaceKind==="sandbox_app")return null;const i=Gm(e.cwd);if(!i)return null;for(const l of n)if(Vv(i,l.path))return Wt("local",l.projectId);return null}function HA(e,t){const n=Gm(e);if(!n)return null;for(const o of t)if(Vv(n,o.path))return o.projectId;return null}function Kv(e,t){return e.localProjectId||e.metadata?.workspaceTarget==="hybrid"?!1:!!(e.cloudProjectId&&t.has(e.cloudProjectId)&&(e.workspaceKind==="sandbox"||e.workspaceKind==="sandbox_template"||e.workspaceKind==="sandbox_app"))}function Gm(e){const t=e?.trim();if(!t)return null;let n=t.replace(/^file:\/\/+/i,"/").replace(/\\/g,"/").replace(/\/+/g,"/");return/^[a-z]:/i.test(n)&&(n=n[0].toUpperCase()+n.slice(1)),n=n.replace(/\/+$/g,""),n||"/"}function Vv(e,t){const n=qC(e),o=qC(t);return n===o||n.startsWith(`${o}/`)}function qC(e){return/^[A-Z]:\//.test(e)?e.toLowerCase():e}function BC(e){if(e<1e3)return String(e);const t=e/1e3;return t>=10||Number.isInteger(t)?`${Math.round(t)}k`:`${t.toFixed(1)}k`}function d7(e){return e===null?"unknown":e>=85?"high":e>=65?"medium":"low"}function HC(e,t){const n=e?.triggerPercent??85;return e?.autoEnabled===!1?t>=n?"Auto compaction is off. Start a new chat or turn it on before the provider limit is reached.":"Auto compaction is off.":`Auto compacts at ${n}% context when supported.`}function f7(e){return e==="codex"}function m7(e){return e==="openpond"}function FA(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n?.name!=="session.context.updated")continue;const o=fk.safeParse(n.data);if(o.success)return o.data}return null}function KA(e){if(e.snapshot&&e.snapshot.provider===e.provider){const n=e.snapshot.usedTokens,o=e.snapshot.maxContextTokens,i=Math.min(100,Math.round(e.snapshot.percentFull)),l=`${i}% full`,u=`${BC(n)} / ${BC(o)} tokens used`;return{usedTokens:n,maxTokens:o,percent:i,summary:l,tokensLabel:u,detail:HC(e.preferences,i),tooltip:`Context window: ${l} ${u}. ${HC(e.preferences,i)}`,tone:d7(i)}}if(f7(e.provider)){const n="Context is managed by Codex app-server.";return{usedTokens:0,maxTokens:null,percent:null,summary:"Managed externally",tokensLabel:"Codex app-server",detail:n,tooltip:`Context window: ${n}`,tone:"unknown"}}if(!m7(e.provider)){const n="Context pressure is unavailable until this provider has model context metadata.";return{usedTokens:0,maxTokens:null,percent:null,summary:"Limit unknown",tokensLabel:"Provider metadata unavailable",detail:n,tooltip:`Context window: ${n}`,tone:"unknown"}}const t="Send a message to measure hosted context.";return{usedTokens:0,maxTokens:null,percent:null,summary:"Not measured yet",tokensLabel:"Hosted context",detail:t,tooltip:`Context window: ${t}`,tone:"unknown"}}const p7={queued:{tone:"active",actionLabel:"Goal queued"},running:{tone:"active",actionLabel:"Pursuing goal"},awaiting_user_input:{tone:"active",actionLabel:"Goal awaiting input"},awaiting_approval:{tone:"active",actionLabel:"Goal awaiting approval"},paused:{tone:"paused",actionLabel:"Goal paused"},blocked:{tone:"limited",actionLabel:"Goal blocked"},completed:{tone:"done",actionLabel:"Goal achieved"},failed:{tone:"limited",actionLabel:"Goal failed"},cancelled:{tone:"limited",actionLabel:"Goal cancelled"},budget_limited:{tone:"limited",actionLabel:"Goal budget limited"}};function h7(e){const t=UU(e);return t?{status:t,...p7[t]}:{status:null,tone:"active",actionLabel:"Goal status unknown"}}function Gv(e){let t=!1;for(let n=e.length-1;n>=0;n-=1){const o=e[n];if(g7(o)){t=!0;continue}const i=vl(o?.data);if(!(o?.name!=="diagnostic"||!i)){if(i.kind==="thread_goal_cleared")return null;if(i.kind==="thread_goal"){const l=Zv(vl(i.goal),go(i.provider));if(l){const u=id(l);return t&&u.tone==="active"?null:u}}if(i.kind==="goal_context"){const l=VA(o.output??"",go(i.provider)??"codex");if(l){const u=id(l);return t&&u.tone==="active"?null:u}}}}return null}function gm(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t],o=vl(n?.data);if(!(n?.name!=="diagnostic"||!o)){if(o.kind==="thread_goal_cleared"&&!Vf(o.synthetic))return null;if(o.kind==="thread_goal"){const i=Zv(vl(o.goal),go(o.provider));if(!i)continue;const l=id(i);return l.tone==="active"?l:null}if(o.kind==="goal_context"){const i=VA(n.output??"",go(o.provider)??"codex");if(!i)continue;const l=id(i);return l.tone==="active"?l:null}}}return null}function Mg(e){const t=vl(vl(e)?.codexGoalRuntime),n=Zv(t,go(t?.provider)??"codex");if(!n)return null;const o=id(n);return o.tone==="active"?o:null}function g7(e){return e?.name==="turn.completed"||e?.name==="turn.interrupted"||e?.name==="turn.failed"}function id(e){const t=y7(e.status,e.provider),n=C7(e.timeUsedSeconds),o=`Goal ${n}`,i=e.tokensUsed===null?null:e.tokenBudget===null?`${Pg(e.tokensUsed)} tokens`:`${Pg(e.tokensUsed)} / ${Pg(e.tokenBudget)} tokens`,l=i?`${e.statusLabel} · ${i}`:e.statusLabel;return{objective:e.objective,status:e.status,subagents:e.subagents,timeUsedSeconds:e.timeUsedSeconds,tokensUsed:e.tokensUsed,tokenBudget:e.tokenBudget,actionLabel:t.actionLabel,timeLabel:n,label:o,detail:l,tooltip:`Goal runtime: ${w7(e.timeUsedSeconds)}. ${l}. ${e.objective}`,tone:t.tone}}function Zv(e,t=null){if(!e)return null;const n=go(e.objective)??"Active goal",o=go(e.status)??"active",i=Nl(e.timeUsedSeconds)??Nl(e.time_used_seconds)??0,l=Nl(e.tokensUsed)??Nl(e.tokens_used),u=Nl(e.tokenBudget)??Nl(e.token_budget),m=b7(vl(e.subagents));return{objective:n,provider:Tb(t)??Tb(go(e.provider)),status:o,statusLabel:ZA(o),subagents:m,timeUsedSeconds:Math.max(0,Math.floor(i)),tokensUsed:l===null?null:Math.max(0,Math.floor(l)),tokenBudget:u===null?null:Math.max(0,Math.floor(u))}}function VA(e,t=null){if(!e.trim())return null;const n=GA(e,"Status")??"active",o=$u(e,"Tokens used"),i=$u(e,"Token budget"),l=$u(e,"Time used seconds")??$u(e,"Time spent pursuing goal")??$u(e,"Elapsed seconds")??0;return{objective:FC(e,"objective")??FC(e,"untrusted_objective")??"Active goal",provider:Tb(t),status:n,statusLabel:ZA(n),subagents:null,timeUsedSeconds:Math.max(0,Math.floor(l)),tokensUsed:o,tokenBudget:i}}function b7(e){return e?{source:go(e.source)??"subagent_runs",updatedAt:go(e.updatedAt),totalCount:ma(e.totalCount),requiredCount:ma(e.requiredCount),optionalCount:ma(e.optionalCount),activeCount:ma(e.activeCount),submittedForReviewCount:ma(e.submittedForReviewCount),needsRevisionCount:ma(e.needsRevisionCount),needsUserInputCount:ma(e.needsUserInputCount),acceptedCount:ma(e.acceptedCount),blockingCount:ma(e.blockingCount),terminalCount:ma(e.terminalCount),cleanupNeededCount:ma(e.cleanupNeededCount),archivedCount:ma(e.archivedCount),unresolvedCount:ma(e.unresolvedCount),requiredActiveCount:ma(e.requiredActiveCount),requiredSubmittedForReviewCount:ma(e.requiredSubmittedForReviewCount),requiredNeedsRevisionCount:ma(e.requiredNeedsRevisionCount),requiredNeedsUserInputCount:ma(e.requiredNeedsUserInputCount),requiredAcceptedCount:ma(e.requiredAcceptedCount),requiredBlockingCount:ma(e.requiredBlockingCount),requiredArchivedCount:ma(e.requiredArchivedCount),requiredUnresolvedCount:ma(e.requiredUnresolvedCount),runs:Array.isArray(e.runs)?e.runs.map(t=>v7(vl(t))).filter(t=>!!t):[]}:null}function v7(e){if(!e)return null;const t=go(e.id),n=go(e.roleId),o=go(e.status),i=go(e.objective);return!t||!n||!o||!i?null:{id:t,childSessionId:go(e.childSessionId),roleId:n,status:o,required:Vf(e.required),objective:i,reviewStatus:go(e.reviewStatus),updatedAt:go(e.updatedAt),cleanupStatus:go(e.cleanupStatus),archiveStatus:go(e.archiveStatus),sessionArchived:Vf(e.sessionArchived),blockerCount:ma(e.blockerCount),validationAttemptCount:ma(e.validationAttemptCount),changedFileCount:ma(e.changedFileCount),followUpNeeded:Vf(e.followUpNeeded)}}function y7(e,t){if(t==="codex"){const n=S7(e);if(n)return n}return h7(e)}function S7(e){switch(x7(e)){case"active":case"running":return{tone:"active",actionLabel:"Pursuing goal"};case"paused":return{tone:"paused",actionLabel:"Goal paused"};case"blocked":return{tone:"limited",actionLabel:"Goal blocked"};case"complete":case"completed":case"achieved":return{tone:"done",actionLabel:"Goal achieved"};case"failed":return{tone:"limited",actionLabel:"Goal failed"};case"cancelled":case"canceled":case"stopped":return{tone:"limited",actionLabel:"Goal cancelled"};case"budget_limited":return{tone:"limited",actionLabel:"Goal budget limited"};default:return null}}function x7(e){return e.trim().toLowerCase().replace(/[-\s]+/g,"_")}function GA(e,t){const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`^\\s*-?\\s*${n}:\\s*(.+?)\\s*$`,"im").exec(e)?.[1]?.trim()||null}function $u(e,t){const n=GA(e,t);if(!n)return null;const o=n.replace(/,/g,""),i=/-?\d+(?:\.\d+)?/.exec(o);if(!i)return null;const l=Number(i[0]);return Number.isFinite(l)?l:null}function FC(e,t){return new RegExp(`<${t}>\\s*([\\s\\S]*?)\\s*<\\/${t}>`,"i").exec(e)?.[1]?.trim()||null}function ZA(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function C7(e){if(e<60)return`${e}s`;const t=Math.floor(e/60);if(t<60)return`${t}m`;const n=Math.floor(t/60),o=t%60;return o>0?`${n}h ${o}m`:`${n}h`}function w7(e){if(e<60)return`${e} ${e===1?"second":"seconds"}`;const t=Math.floor(e/60);if(t<60)return`${t} ${t===1?"minute":"minutes"}`;const n=Math.floor(t/60),o=t%60;return o===0?`${n} ${n===1?"hour":"hours"}`:`${n}h ${o}m`}function Pg(e){if(e<1e3)return String(e);if(e>=1e6){const n=e/1e6;return n<10?`${KC(n,2)}M`:n<100?`${KC(n,1)}M`:`${Math.round(n)}M`}const t=e/1e3;return t>=10||Number.isInteger(t)?`${Math.round(t)}k`:`${t.toFixed(1)}k`}function KC(e,t){return e.toFixed(t).replace(/\.?0+$/,"")}function vl(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function go(e){return typeof e=="string"&&e.trim()?e.trim():null}function Vf(e){return e===!0}function Tb(e){return e?.trim().toLowerCase()||null}function Nl(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function ma(e){const t=Nl(e);return t===null?0:Math.max(0,Math.floor(t))}const _7=new Set(["planning","applying_source","running_checks","evaluating","pushing_hosted","running_hosted_checks"]),k7=new Set(["awaiting_questions","awaiting_plan_approval","paused"]);function jb(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n?.name!=="create_improve.updated")continue;const o=I7(M7(n.data));if(o)return A7(o)}return null}function I7(e){const t=Li.safeParse(e?.createImproveRun);return t.success?t.data:null}function A7(e){const t=R7(e.state);if(!t)return null;const n=T7(e.createdAt,e.updatedAt),o=e.blockedReason??j7(e.state);return{objective:e.objective,status:e.state,subagents:null,timeUsedSeconds:n,tokensUsed:null,tokenBudget:null,actionLabel:t.actionLabel,timeLabel:E7(n),label:t.actionLabel,detail:o,tooltip:`${t.actionLabel}: ${o}. ${e.objective}`,tone:t.tone}}function R7(e){return _7.has(e)?{tone:"active",actionLabel:"Work running"}:k7.has(e)?{tone:"active",actionLabel:"Work awaiting input"}:e==="blocked"?{tone:"limited",actionLabel:"Work blocked"}:e==="failed"?{tone:"limited",actionLabel:"Work failed"}:e==="cancelled"?{tone:"limited",actionLabel:"Work cancelled"}:e==="ready"||e==="ready_local"?{tone:"done",actionLabel:"Workproduct ready"}:e==="published_hosted"?{tone:"done",actionLabel:"Workproduct published"}:null}function T7(e,t){const n=Date.parse(e),o=Date.parse(t);return!Number.isFinite(n)||!Number.isFinite(o)||o<n?0:Math.floor((o-n)/1e3)}function j7(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function E7(e){if(e<60)return`${e}s`;const t=Math.floor(e/60);if(t<60)return`${t}m`;const n=Math.floor(t/60),o=t%60;return o>0?`${n}h ${o}m`:`${n}h`}function M7(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}const VC=new Set(["queued","running","needs_resume"]),GC=new Set(["submitted_for_review"]),ZC=new Set(["needs_revision"]),WC=new Set(["needs_user_input"]),WA=new Set(["accepted","completed"]),P7=new Set(["failed_with_artifacts"]),Eb=new Set(["blocked"]),N7=new Set(["accepted","completed","failed_with_artifacts","failed","cancelled","superseded"]);function YA(e,t){if(!t)return null;const n=new Map,o=[];for(const me of e){if(!me.name.startsWith("subagent."))continue;const qe=z7(me);qe&&o.push(qe);const $=O7(me);!$||$.parentSessionId!==t||n.set($.id,$)}if(n.size===0)return null;const i=[...n.values()].sort($7),l=i.filter(me=>VC.has(me.status)),u=i.filter(me=>GC.has(me.status)),m=i.filter(me=>ZC.has(me.status)),g=i.filter(me=>WC.has(me.status)),p=i.filter(Mb),S=i.filter(me=>P7.has(me.status)),x=i.filter(me=>Eb.has(me.status)&&!Ng(me)),C=i.filter(me=>WA.has(me.status)||me.review?.status==="accepted"),w=i.filter(vm),E=i.filter(me=>!Ng(me)),j=i.filter(YC),U=i.filter(me=>me.required),D=U.filter(me=>VC.has(me.status)).length,B=U.filter(me=>GC.has(me.status)).length,K=U.filter(me=>ZC.has(me.status)).length,I=U.filter(me=>WC.has(me.status)).length,O=U.filter(me=>Eb.has(me.status)&&!Wv(me)).length,N=U.filter(Mb).length,z=U.filter(vm).length,G=U.filter(YC).length,ne=U.filter(me=>!Ng(me)).length,ce=ne,Y=i[0]??null,ue=H7(i),Se=F7(e);return{sessionId:t,runs:i,activeRuns:l,submittedRuns:u,needsRevisionRuns:m,needsUserInputRuns:g,acceptedRuns:p,failedWithArtifactsRuns:S,blockedRuns:x,completedRuns:C,unresolvedRuns:E,terminalRuns:w,archivedRuns:j,latestRun:Y,latestMeaningfulUpdate:ue,watcher:Se,activeCount:l.length,submittedCount:u.length,needsRevisionCount:m.length,needsUserInputCount:g.length,acceptedCount:p.length,failedWithArtifactsCount:S.length,blockedCount:x.length,completedCount:C.length,unresolvedCount:E.length,terminalCount:w.length,archivedCount:j.length,requiredActiveCount:D,requiredSubmittedForReviewCount:B,requiredNeedsRevisionCount:K,requiredNeedsUserInputCount:I,requiredBlockingCount:O,requiredAcceptedCount:N,requiredTerminalCount:z,requiredArchivedCount:G,requiredUnresolvedCount:ne,requiredOpenCount:ce,usage:q7(i),blockers:K7(i),evidenceRefs:V7(i),finalResults:G7(i,o),testsRunCount:i.reduce((me,qe)=>me+(qe.report?.testsRun.length??0),0),taskGraph:nK(t,i,o),label:D7(l,u,m,x,C,w),tooltip:U7(l,u,m,x,C,w)}}function O7(e){const t=e.data;if(!t||typeof t!="object"||Array.isArray(t))return null;const n=t.run,o=E_.safeParse(n);return o.success?o.data:null}function z7(e){if(e.name!=="subagent.message")return null;const t=hi(e.data),n=Cz.safeParse(t?.message);if(!n.success)return null;const o=sK(t?.deliveredRunIds),i=typeof t?.deliveredToRunId=="string"?t.deliveredToRunId:null;return{message:n.data,deliveredRunIds:o.length>0?o:i?[i]:[]}}function $7(e,t){return bm(t)-bm(e)}function bm(e){return Date.parse(e.updatedAt??e.completedAt??e.startedAt??e.createdAt)||0}function D7(e,t,n,o,i,l){if(e.length>0)return`${e.length} ${ul(e.length,"subagent")} running`;if(n.length>0)return`${n.length} ${ul(n.length,"subagent")} needs revision`;if(t.length>0)return`${t.length} ${ul(t.length,"subagent")} submitted`;if(o.length>0)return`${o.length} ${ul(o.length,"subagent")} blocked`;const u=l.filter(g=>g.status==="failed"||g.status==="failed_with_artifacts");if(u.length>0)return`${u.length} ${ul(u.length,"subagent")} failed`;const m=l.filter(g=>g.status==="cancelled");return m.length>0?`${m.length} ${ul(m.length,"subagent")} cancelled`:i.length===0&&l.length>0?`${l.length} ${ul(l.length,"subagent")} terminal`:`${i.length} ${ul(i.length,"subagent")} accepted`}function U7(e,t,n,o,i,l){const u=e.length>0?e:n.length>0?n:t.length>0?t:o.length>0?o:i.length>0?i:l,m=u.slice(0,4).map(p=>`${rK(p.roleId)} ${p.status}`),g=u.length-m.length;return`Subagents: ${m.join(", ")}${g>0?`, +${g} more`:""}`}function Mb(e){return e.status==="superseded"?!1:WA.has(e.status)||e.review?.status==="accepted"}function Ng(e){return Mb(e)||Wv(e)||e.status==="superseded"||L7(e)||!e.required&&vm(e)}function L7(e){if(e.status!=="cancelled")return!1;const t=hi(e.metadata.goalLifecycle);return Ms(t?.action)==="cancelled_by_parent_goal"}function vm(e){return N7.has(e.status)||e.review?.status==="accepted"||Wv(e)}function Wv(e){return e.review?.status==="dismissed"}function YC(e){const t=hi(e.metadata.childSessionArchive),n=Ms(t?.status);return n==="archived"||n==="already_archived"}function q7(e){return e.reduce((t,n)=>{const o=B7(n);return t.totalTokens+=o.totalTokens,t.promptTokens+=o.promptTokens,t.completionTokens+=o.completionTokens,t.requestCount+=o.requestCount,t},{totalTokens:0,promptTokens:0,completionTokens:0,requestCount:0})}function B7(e){const t=hi(e.metadata.usage);return{totalTokens:Tc(t?.totalTokens),promptTokens:Tc(t?.promptTokens),completionTokens:Tc(t?.completionTokens),requestCount:Tc(t?.requestCount)}}function H7(e){for(const t of e){const n=t.progress?.latestMeaningfulActivity||t.report?.summary||t.progress?.currentBlocker||t.error||null,o=t.progress?.updatedAt??t.updatedAt??t.completedAt??t.startedAt??t.createdAt;if(!(!n||!o))return{runId:t.id,roleId:t.roleId,status:t.status,message:n,updatedAt:o}}return null}function F7(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.name!=="diagnostic")continue;const o=hi(n.data);if(o?.kind!=="subagent_lifecycle_watcher_tick")continue;const i=Ms(o.checkedAt)??n.timestamp;if(i)return{checkedAt:i,activeCount:Tc(o.activeCount),staleCount:Tc(o.staleCount),wakeQueued:o.wakeQueued===!0,wakePolicy:Ms(o.wakePolicy)}}return null}function K7(e){const t=[];for(const n of e){const o=jc([...n.report?.blockers??[],n.error,Eb.has(n.status)&&n.report?.summary?n.report.summary:null]);for(const i of o)t.push({runId:n.id,roleId:n.roleId,status:n.status,message:i})}return t}function V7(e){const t=[],n=new Set;for(const o of e)for(const i of[...o.report?.artifacts??[],o.report?.patchRef??null,o.report?.diffRef??null]){if(!i)continue;const l=`${o.id}:${i.kind}:${i.id}`;n.has(l)||(n.add(l),t.push({...i,runId:o.id,roleId:o.roleId}))}return t}function G7(e,t){const n=eK(t),o=[];for(const i of e){if(!W7(i))continue;const l=X7(i.review.packetQuality.evidence),u=Q7(i.review.reviewerRoutingEvidence),m=i.report?.summary||i.review.summary||i.progress.latestMeaningfulActivity||i.error||"No summary";o.push({runId:i.id,roleId:i.roleId,status:i.status,required:i.required,objective:i.objective,summary:m,findings:jc(i.report?.findings??[]).slice(0,8),changedFiles:jc(i.progress.changedFiles).slice(0,12),refs:Y7([...i.report?.artifacts??[],i.report?.patchRef??null,i.report?.diffRef??null,...i.progress.patchRefs]).slice(0,10),testsRun:jc(i.report?.testsRun??[]).slice(0,8),validationAttempts:i.progress.validationAttempts.map(J7).slice(0,8),blockers:jc([...i.report?.blockers??[],...i.review.issues,...i.review.requiredCorrections,...i.review.packetQuality.issues,...i.review.packetQuality.warnings,i.progress.currentBlocker,i.error]).slice(0,8),confidence:i.report?.confidence??null,packetQualityStatus:i.review.packetQuality.status,packetQualityEvidence:l,independentReviewRecommended:!!i.review.independentReviewRecommended,reviewerRoutingReasons:Array.from(new Set(i.review.reviewerRoutingReasons??[])).slice(0,8),reviewerRoutingEvidence:u,importantMessages:n.get(i.id)?.slice(0,4)??[],workspaceRetention:Z7(i),updatedAt:i.progress.updatedAt??i.updatedAt??i.completedAt??i.startedAt??i.createdAt})}return o}function Z7(e){const t=hi(e.metadata),n=hi(t?.lifecycleCleanup),o=hi(n?.workspaceCleanup),i=hi(t?.workspaceHandoff),l=hi(i?.applyResult),u=hi(l?.workspaceRetention);return JC(u)??JC(o)}function JC(e){if(!e||Ms(e.status)!=="retained")return null;const t=hi(e.retentionPolicy);return{status:"retained",reason:Ms(e.reason),retainedAt:Ms(e.retainedAt),expiresAt:Ms(t?.expiresAt),retentionDays:iK(t?.retentionDays),trigger:Ms(t?.trigger),cleanupAfterExpiry:t?.cleanupAfterExpiry===!0}}function W7(e){return e.report||e.review.status!=="pending"?!0:vm(e)}function Y7(e){const t=new Set,n=[];for(const o of e){if(!o)continue;const i=`${o.kind}:${o.id}`;t.has(i)||(t.add(i),n.push(o))}return n}function J7(e){const t=e.exitCode===null?"":` exit ${e.exitCode}`,n=e.outputSummary?` · ${e.outputSummary}`:"";return`${e.command} · ${e.status}${t}${n}`}function X7(e){return{finalSummaryPresent:e?.finalSummaryPresent??!1,finalSummaryLength:e?.finalSummaryLength??0,requestedValidationCommandCount:e?.requestedValidationCommandCount??0,validationAttemptCount:e?.validationAttemptCount??0,failedValidationCount:e?.failedValidationCount??0,testsRunCount:e?.testsRunCount??0,changedFileCount:e?.changedFileCount??0,patchRefPresent:e?.patchRefPresent??!1,diffRefPresent:e?.diffRefPresent??!1,artifactCount:e?.artifactCount??0,findingCount:e?.findingCount??0,blockerCount:e?.blockerCount??0,unvalidatedWorkspaceChanges:e?.unvalidatedWorkspaceChanges??!1}}function Q7(e){return{packetQualityStatus:e?.packetQualityStatus??"reviewable",confidence:e?.confidence??null,changedFileCount:e?.changedFileCount??0,highRiskFileCount:e?.highRiskFileCount??0,validationAttemptCount:e?.validationAttemptCount??0,failedValidationCount:e?.failedValidationCount??0,missingRequestedValidation:e?.missingRequestedValidation??!1,providerFailureAfterChanges:e?.providerFailureAfterChanges??!1,userRequestedIndependentReview:e?.userRequestedIndependentReview??!1}}function eK(e){const t=new Map;for(const n of e){if(!tK(n.message))continue;const o=jc([n.message.fromRunId,n.message.toRunId,...n.deliveredRunIds]);for(const i of o){const l=t.get(i)??[];l.push({id:n.message.id,runId:i,fromRunId:n.message.fromRunId,kind:n.message.kind,body:n.message.body,createdAt:n.message.createdAt}),t.set(i,l)}}return t}function tK(e){return e.kind!=="status"?!0:e.priority==="interrupt"||e.refs.length>0}function nK(e,t,n){const o=`parent:${e}`,i=[...t].sort((p,S)=>bm(p)-bm(S)),l=new Set(i.map(p=>p.id)),u=i.map(aK),m=i.map(p=>({id:`start:${p.id}`,fromRunId:o,toRunId:p.id,kind:"started",label:"Started",createdAt:p.createdAt})),g=new Set(m.map(p=>p.id));for(const p of n){const S=p.deliveredRunIds.length>0?p.deliveredRunIds:p.message.toRunId?[p.message.toRunId]:[];for(const x of S){if(!l.has(x))continue;const C=`message:${p.message.id}:${p.message.fromRunId}:${x}`;g.has(C)||(g.add(C),m.push({id:C,fromRunId:p.message.fromRunId,toRunId:x,kind:p.message.kind,label:oK(p.message.kind),createdAt:p.message.createdAt}))}}return{rootId:o,nodes:u,edges:m}}function aK(e){const t=(e.report?.artifacts.length??0)+(e.report?.patchRef?1:0)+(e.report?.diffRef?1:0);return{runId:e.id,roleId:e.roleId,status:e.status,objective:e.objective,required:e.required,childSessionId:e.childSessionId,modelLabel:e.modelRef?`${e.modelRef.providerId}/${e.modelRef.modelId}`:"default model",isolationLabel:`${XC(e.isolationMode)} · ${XC(e.toolPolicy)}`,summary:e.report?.summary||null,blockerCount:(e.report?.blockers.length??0)+(e.error?1:0),evidenceCount:t,testsRunCount:e.report?.testsRun.length??0,createdAt:e.createdAt,startedAt:e.startedAt,completedAt:e.completedAt}}function oK(e){return e.slice(0,1).toUpperCase()+e.slice(1).replace(/[-_]+/g," ")}function rK(e){return e.slice(0,1).toUpperCase()+e.slice(1).replace(/[-_]+/g," ")}function hi(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ms(e){return typeof e=="string"&&e.trim()?e.trim():null}function Tc(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,Math.floor(e)):0}function iK(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,Math.floor(e)):null}function sK(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}function jc(e){const t=new Set,n=[];for(const o of e){const i=typeof o=="string"?o.trim():"";!i||t.has(i)||(t.add(i),n.push(i))}return n}function ul(e,t){return e===1?t:`${t}s`}function XC(e){return e.replace(/[-_]+/g," ")}const Pb=[];function Nb(e,t){return JA(e,t,null)}function JA(e,t,n){const o=n&&fK(n.events,e)?cK(n.indexes,n.events.length,e):lK(e),i=dK(t);return{...o,...i}}function lK(e){const t=new Map;for(const n of e){if(!n.sessionId)continue;const o=t.get(n.sessionId);o?o.push(n):t.set(n.sessionId,[n])}return uK(t)}function cK(e,t,n){const o=new Map(e.eventsBySessionId),i=new Map(e.latestContextUsageBySessionId),l=new Map(e.latestGoalRuntimeBySessionId),u=new Map(e.latestSubagentRuntimeBySessionId),m=new Set(e.activeGoalSessionIds),g=new Set(e.activeSubagentSessionIds),p=new Set;for(let S=t;S<n.length;S+=1){const x=n[S];if(!x.sessionId)continue;if(p.has(x.sessionId)){o.get(x.sessionId).push(x);continue}const C=o.get(x.sessionId);o.set(x.sessionId,C?[...C,x]:[x]),p.add(x.sessionId)}for(const S of p){const x=o.get(S)??Pb,C=FA(x);C?i.set(S,C):i.delete(S);const w=QA(x);w?(l.set(S,w),w.tone==="active"?m.add(S):m.delete(S)):(l.delete(S),m.delete(S));const E=YA(x,S);E?(u.set(S,E),XA({sessionEvents:x,sessionId:S,latestGoalRuntimeBySessionId:l,activeGoalSessionIds:m}),E.activeCount>0?g.add(S):g.delete(S)):(u.delete(S),g.delete(S))}return{eventsBySessionId:o,latestContextUsageBySessionId:i,latestGoalRuntimeBySessionId:l,latestSubagentRuntimeBySessionId:u,activeGoalSessionIds:m,activeSubagentSessionIds:g}}function uK(e){const t=new Map,n=new Map,o=new Map,i=new Set,l=new Set;for(const[u,m]of e){const g=FA(m);g&&t.set(u,g);const p=QA(m);p&&(n.set(u,p),p.tone==="active"&&i.add(u))}for(const[u,m]of e){const g=YA(m,u);g&&(o.set(u,g),XA({sessionEvents:m,sessionId:u,latestGoalRuntimeBySessionId:n,activeGoalSessionIds:i}),g.activeCount>0&&l.add(u))}return{eventsBySessionId:e,latestContextUsageBySessionId:t,latestGoalRuntimeBySessionId:n,latestSubagentRuntimeBySessionId:o,activeGoalSessionIds:i,activeSubagentSessionIds:l}}function XA(e){if(e.latestGoalRuntimeBySessionId.has(e.sessionId))return;const t=gm(e.sessionEvents);t&&(e.latestGoalRuntimeBySessionId.set(e.sessionId,t),t.tone==="active"&&e.activeGoalSessionIds.add(e.sessionId))}function QA(e){return jb(e)??Gv(e)??gm(e)}function dK(e){const t=new Map,n=new Map,o=new Map,i=new Map;for(const l of e){t.set(l.id,l);const u=n.get(l.status);if(u?u.push(l):n.set(l.status,[l]),l.status!=="pending")continue;const m=o.get(l.sessionId);m?m.push(l):o.set(l.sessionId,[l]);const g=i.get(l.sessionId);(!g||QC(l.createdAt)>QC(g.createdAt))&&i.set(l.sessionId,l)}return{approvalsById:t,approvalsByStatus:n,pendingApprovalsBySessionId:o,latestPendingApprovalBySessionId:i}}function fK(e,t){return e===t?!0:e.length>t.length||e.length===t.length?!1:e.length===0?!0:e[0]===t[0]&&e[e.length-1]===t[e.length-1]}function Ui(e,t){return t?e.eventsBySessionId.get(t)??Pb:Pb}function eR(e,t){return t?e.latestContextUsageBySessionId.get(t)??null:null}function tR(e,t){return t?e.latestGoalRuntimeBySessionId.get(t)??null:null}function mK(e,t){return t?e.latestSubagentRuntimeBySessionId.get(t)??null:null}function nR(e,t){return t?e.latestPendingApprovalBySessionId.get(t)??null:null}function QC(e){const t=Date.parse(e);return Number.isFinite(t)?t:Number.NEGATIVE_INFINITY}function pK({primary:e,secondary:t}){const{composerDraftStore:n,appDispatch:o,pendingTerminalCommand:i,setPendingTerminalCommand:l,terminalTabs:u,setTerminalTabs:m,trainingDetailTasksetId:g,setTrainingDetailTasksetId:p,mentionedAppId:S,setMentionedAppId:x,cloudSetupDialog:C,setCloudSetupDialog:w,rightPanelTabRequest:E,workspaceDiffPanelViewState:j,mainComposerFocusRequestId:U,labSuggestionsRequestId:D,projectConfirmDialog:B,resolveProjectConfirmDialog:K,query:I,searchOpen:O,archivedChatsOpen:N,sectionMenuOpen:z,projectsExpanded:G,cloudProjectsExpanded:ne,sidebarOpen:ce,view:Y,selectedAppId:ue,selectedProjectId:Se,selectedSessionId:me,codexPermissionMode:qe,codexReasoningEffort:$,busy:be,diffPanelOpen:ie,diffPanelExpanded:fe,rightPanelMode:te,terminalOpen:R,settingsSection:L,newProjectDialogOpen:Q,newProjectMode:Ae,newProjectName:je,newProjectPath:Le,newProjectBusy:de,commitDialogOpen:He,commitMessage:xe,commitIncludeUnstaged:Ke,commitNextStep:Ue,commitDraft:ot,branchDialogOpen:$e,branchDialogName:Me,toast:q,labDetailNavigation:ae,setQuery:H,setSearchOpen:se,setArchivedChatsOpen:we,setSectionMenuOpen:ze,setProjectsExpanded:Ye,setCloudProjectsExpanded:Ct,setChatRowsVisibleCount:yt,setSidebarOpen:Et,setView:gt,setSelectedAppId:Be,setSelectedProjectId:it,setSelectedSessionId:y,setPrompt:Z,setDraftProvider:le,setDraftModel:Pe,setDiffPanelOpen:V,setDiffPanelExpanded:he,setRightPanelMode:A,setTerminalOpen:W,setSettingsSection:Ce,setNewProjectDialogOpen:ye,setNewProjectMode:Te,setNewProjectName:De,setNewProjectPath:Ne,setCommitDialogOpen:nt,setCommitMessage:Qe,setCommitIncludeUnstaged:Xe,setCommitNextStep:at,setCommitDraft:vt,setBranchDialogOpen:ct,setBranchDialogName:pn,setError:hn,showToast:Dt,applyBootstrapPayload:Sn,bootstrap:Xt,connection:Ft,startup:za,insights:Nt,training:vn,pinnedCollapsed:xn,projectsCollapsed:sa,cloudProjectsCollapsed:Qn,chatsCollapsed:Lt,sidebarWidth:en,sidebarResizing:kt,diffPanelWidth:On,diffPanelResizing:_a,togglePinnedCollapsed:la,toggleProjectsCollapsed:kn,toggleCloudProjectsCollapsed:un,toggleChatsCollapsed:ea,startSidebarResize:Ln,startDiffPanelResize:ba,selectedApp:ka,selectedProject:ca,selectedProjectLinkedApp:tn,selectedSession:Rt,sidebarSessions:Kt,runtimeIndexes:Ot,chatMentionApps:Mt,connectedAppMentions:oe,pendingApproval:pt,account:dt,activeModel:st,activeProvider:St,appDefaults:Tt,startMessage:En,teamChatOrganization:Fn,teamChatTeamId:bo,teamChat:wt,publishTeamProfileAgent:It,communitySidebar:Ia,communityView:$a,teamAiThreadId:qo,toggleTeamAiSidebar:gn,activeOpenPondCommandAccessMode:ro,profileWorkspaceId:vo,viewWorkspaceAppId:Da,viewWorkspaceId:Kn,viewWorkspaceKind:Bo,viewWorkspaceName:nr,selectedActionCatalog:Ho,expandedProjectIds:pr,expandProject:To,toggleProjectExpanded:hr,cloudBusy:ar,cloudError:gr,cloudLoading:Fo,cloudWorkItemDetail:Ko,cloudWorkItems:Cn,selectedCloudWorkItem:io,selectedCloudWorkItemId:jo,selectedCloudWorkItemLocalProject:Xn,applyCloudWorkItemPatchLocally:Va,cancelCloudWorkItemCreatePipeline:Aa,cancelCloudWorkItemTask:Vo,createCloudWork:nn,handleCloudWorkItemBackground:Mn,openCloudHome:Vn,selectCloudWorkItem:an,sendCloudWorkItemMessage:yo,changeCodexPermissionMode:Tn,changeCodexReasoningEffort:wn,changeOpenPondCommandAccessMode:ua,resolveApproval:Ga,beginNewChat:ta,beginNewChatWithTrainingModel:Za,dismissTrainingChatHandoff:ni,trainingChatHandoff:zn,selectTrainingChatTaskForComposer:Ua,chatHistoryLoadStates:La,loadMoreSelectedChatHistory:qa,selectedPagedSessionEvents:so,activeSessions:So,pinnedSessions:br,projectRows:lo,localProjectRows:Eo,visibleProjectRows:or,cloudProjectRows:Pr,cloudWorkItemsByProjectId:Go,projectSessionRowsByProjectId:Nr,childSessionRowsByParentId:xo,sidebarProjectIdBySessionId:vr,chatRows:Or,visibleChatRows:yr,sessionEvents:zr,goalRuntime:$r,subagentRuntime:Sr,visibleChatMessages:_i,activeTerminalScope:xr,terminalSummaries:Dr,runningSessionIds:rn,selectedSessionRunning:Co,selectedSteerAutoDispatchBlocked:ki,selectedSteerAutoDispatchReady:Mo,sidebarGoalRuntimeBySessionId:Ii,sidebarSubagentRuntimeBySessionId:rr,dragItem:Po,startPinnedDrag:ai,clearSidebarDrag:Ai,previewPinnedDrop:re,commitPinnedDrop:Je,commitPinnedPreviewDrop:tt,commandProjectRows:$t,contextWindowStatus:rt,pinnedRows:bn,workspaceStates:Pn,workspaceBusy:on,diffBusy:co,visibleWorkspaceState:uo,visibleWorkspaceDiff:wo,refreshVisibleWorkspaceDiff:Wa,managedWorkspace:Ur,canSyncActiveWorkspace:Zo,canPublishOpenPondProject:ir,projectTarget:oi,workspaceTarget:ri}=e,{title:_o,browserConversationId:Ri,handleWorkspaceDiffPanelViewStateChange:Ut,openSessionInChat:Vt,insightsSystemProjectHidden:ko,toggleInsightsSystemProjectVisibility:Ba,toggleSystemProjectVisibility:Ra,openExistingProjectPathDialog:Ya,addProjectFolder:is,removeProject:Lr,changeProjectTarget:Ti,submitNewProjectDialog:ss,changeWorkspaceBranch:ji,openCommitDialog:Ei,openCreateWorkspaceBranchDialog:qr,openDefaultsSettingsFromBranchDialog:Us,runWorkspaceTool:Ls,submitCommitDialog:ls,submitCreateWorkspaceBranch:qs,syncWorkspaceLocally:Ta,subagentDelegationDefaultMode:ii,subagentDelegationMode:Bi,subagentDelegationAvailable:cs,changeSubagentDelegationMode:Mi,answerCreateImproveQuestion:Bs,applyCreateImproveCandidate:Pi,approveCreateImproveRun:xl,cancelCreateImproveRun:No,changeDraftProvider:fo,openCreateImprovePullRequest:si,reconcileCreateImprovePullRequest:va,rejectCreateImproveCandidate:Ha,pauseCreateImproveRun:Ja,resumeCreateImproveRun:Oo,reviseCreateImproveRun:sr,stopTurn:Br,archiveSession:ya,restoreSession:li,renameSession:Hi,toggleProjectPinned:us,toggleSessionPinned:Hs,moveProjectToCloud:Ni,startCloudSetupUpload:Cl,changeWorkspaceTarget:ds,switchProjectWorkspaceTarget:Fi,sendPromptFromMainComposer:Oi,openSandboxWorkspace:Io,createCloudEnvironmentFromSidebar:ci,openCloudProjectDialog:Ao,openUrlInBrowserPanel:Hr,showBrowserPanel:Ki,showChangesPanel:Vi,showGoalSidebarTab:Gi,setupCloudProjectFromCloudView:fs,openLabSuggestions:Cr,closeRightChatPanel:mo,openRightChatPanel:Wo,rightChatPanelViews:ui,showRightChatPanel:_e,showRightPanelDiffTab:et,submitRightChatPrompt:Gt,updateRightChatModel:Qt,updateRightChatPrompt:dn,updateRightChatProvider:Gn,openProfileSettings:qt,diagnosticEvents:Xa,toggleRightSidebar:Bt}=t;if(!za.ready)return f.jsx(o7,{startup:za});if(Y==="settings")return f.jsx(t7,{settings:{payload:Xt,connection:Ft,diagnostics:Xa,initialSection:L,onPayload:Sn,onError:hn,onToast:Dt,onOpenSourceSession:Vt,teamChatCurrentUserId:wt.currentUserId,teamChatEnabled:bo!==null,teamChatNotificationMode:wt.notificationMode,teamChatThreads:wt.threads,onTeamChatNotificationModeChange:wt.setNotificationMode,onTeamChatThreadMuteChange:wt.setThreadMuted,onBack:()=>{gt("chat"),Et(!0)}},toast:{toast:q,onDismiss:()=>o({type:"field",key:"toast",value:null})}});const na=Sm(),ja=Ft?.platform??navigator.platform,da=na&&Fb(ja),lr=vo?{kind:"project",id:vo}:xr,Fr=uo?.initialized?uo.repoPath:Rt?.cwd??null,Zi={"--sidebar-width":`${en}px`,"--diff-panel-width":`${On}px`},ms=Y==="chat"||Y==="cloud"||Y==="labs"||Y==="team"&&!!qo,Yo=["app-shell",da?"platform-macos":"",ce?"sidebar-open":"sidebar-closed",kt?"sidebar-resizing":"",_a?"diff-panel-resizing":""].filter(Boolean).join(" "),zo=me?La[me]:null,Jo=me?zo?.cursorSequence??s7(ql(so,Ui(Ot,me))):null,cr=!!me&&!!Ft&&(ia(me)?!0:!!Xt?.eventWindow?.hasMoreBefore&&!!Jo)&&(zo?.hasMore??!0),Kr=!!zo?.loading;return f.jsx(e7,{className:Yo,style:Zi,sidebar:{view:Y,selectedAppId:ue,selectedProjectId:Se,selectedSessionId:me,selectedCloudWorkItemId:jo,selectedTeamThreadId:wt.selectedThreadId,teamChatEnabled:bo!==null,teamChatOrganization:Fn,teamChatLoading:wt.loading,currentUserId:wt.currentUserId,teamMembers:wt.members,teamThreads:wt.threads,...Ia,account:dt,profile:Xt?.profile,pinnedCollapsed:xn,projectsCollapsed:sa,cloudProjectsCollapsed:Qn,chatsCollapsed:Lt,archivedChatsOpen:N,projectsExpanded:G,cloudProjectsExpanded:ne,sectionMenuOpen:z,dragItem:Po,pinnedRows:bn,pinnedSessions:br,projectRows:lo,visibleProjectRows:or,localProjectRows:Eo,insightsSystemProjectHidden:ko,cloudProjectRows:Pr,workspaceStates:Pn,cloudWorkItemsByProjectId:Go,projectSessionRowsByProjectId:Nr,childSessionRowsByParentId:xo,sidebarProjectIdBySessionId:vr,terminalSummaries:Dr,runningSessionIds:rn,goalRuntimeBySessionId:Ii,subagentRuntimeBySessionId:rr,visibleChatRows:yr,chatRows:Or,expandedProjectIds:pr,currentVersion:Xt?.server.version??null,platform:ja,arch:Ft?.arch??null,onSidebarResizeStart:Ln,setSidebarOpen:Et,setView:gt,setSelectedAppId:Be,setSelectedProjectId:it,setSelectedSessionId:y,setSearchOpen:se,setSectionMenuOpen:ze,setSettingsSection:Ce,onTogglePinnedCollapsed:la,onToggleProjectsCollapsed:kn,onToggleCloudProjectsCollapsed:un,onToggleChatsCollapsed:ea,setArchivedChatsOpen:we,setProjectsExpanded:Ye,setCloudProjectsExpanded:Ct,setChatRowsVisibleCount:yt,beginNewChat:ta,dockSessionRight:Wo,openCloudHome:Vn,createCloudEnvironment:ci,selectCloudWorkItem:an,selectTeamThread:Nn=>{gt("team"),wt.selectThread(Nn)},openTeamDm:Nn=>{gt("team"),wt.openDm(Nn)},addProjectFolder:()=>{is()},startExistingProjectFromPath:Ya,startProjectFromScratch:()=>{Te("local"),De(""),Ne(""),ye(!0)},startCloudProjectFromScratch:Ao,moveProjectToCloud:Ni,switchProjectWorkspaceTarget:Fi,removeProject:Nn=>{Lr(Nn)},toggleInsightsSystemProjectVisibility:()=>{Ba()},toggleProjectPinned:us,toggleSystemProjectVisibility:Ra,toggleSessionPinned:Hs,archiveSession:ya,restoreSession:li,renameSession:Hi,addSessionToTraining:Nn=>{vn.actions.addSource(Nn.id).then(Wi=>{Wi&&(gt("labs"),Dt("Added chat to training sources.","info"))})},expandProject:To,toggleProjectExpanded:hr,startPinnedDrag:ai,clearSidebarDrag:Ai,previewPinnedDrop:re,commitPinnedDrop:Je,commitPinnedPreviewDrop:tt},topBar:{sidebarOpen:ce,title:_o,backAction:ae.backAction,breadcrumbs:ae.breadcrumbs,conversationId:Y==="chat"?me:null,workspaceName:nr,workspaceId:Kn,busy:be,workspaceState:uo,workspaceKind:Bo,selectedApp:vo?null:tn??ka,selectedProject:vo?null:ca,workspaceDiff:wo,managedWorkspace:Ur,workspaceBusy:on,defaultTeamId:Tt.defaultTeamId,showDiffControls:Y==="chat"||Y==="cloud",diffPanelOpen:ie,terminalOpen:R,rightSidebarAvailable:ms,rightSidebarOpen:ie,onToggleDiffPanel:Bt,onToggleRightSidebar:Y==="team"&&qo?gn:Bt,onOpenSearch:()=>{ze(null),se(!0)},onToggleTerminal:()=>W(Nn=>!Nn),onOpenInsights:()=>{ze(null),Cr()},onRunTerminalCommand:Nn=>{l({id:Date.now(),scope:lr,command:Nn}),W(!0)},onWorkspaceToolAction:Ls,onOpenCommitDialog:Ei,onWorkspaceBranchChange:ji,onWorkspaceBranchCreate:qr,connection:Ft,onBootstrap:Sn,onOpenSandboxWorkspace:Io,onShowSidebar:()=>Et(!0),platform:ja,showWorkspaceControls:Y!=="team"&&Y!=="community"&&Y!=="labs",insightsItems:Nt.items,insightsSummary:Nt.summary,insightsScanning:Nt.scanRunning},mainPane:{view:Y,teamChat:{currentUserId:wt.currentUserId,members:wt.members,agents:wt.agents,profile:Xt?.profile??null,teamId:bo,teamName:Fn?.displayName??null,detail:wt.detail,aiThread:wt.aiThread,agentConversation:wt.agentConversation,loading:wt.loading,busy:wt.busy,error:wt.error,connection:Ft,providerSettings:Xt?.providers??null,provider:St,model:st,codexPermissionMode:qe,codexReasoningEffort:$,openPondCommandAccessMode:ro,contextWindowStatus:rt,showToast:Dt,onProviderChange:fo,onModelChange:Pe,onCodexPermissionModeChange:Tn,onCodexReasoningEffortChange:wn,onOpenPondCommandAccessModeChange:ua,onOpenProviderSettings:()=>{Ce("providers"),gt("settings")},onSendMessage:wt.sendMessage,onPublishProfileAgent:It,onOpenAiThread:async Nn=>{await wt.openAiThread(Nn),A("chat"),V(!0)},onOpenAgentConversation:async Nn=>{await wt.openAgentConversation(Nn),A("chat"),V(!0)},onCloseAiThread:()=>V(!1),onCloseAgentConversation:()=>{wt.closeAgentConversation(),V(!1)},onSendAgentTurn:wt.sendAgentTurn,onSendAiTurn:wt.sendAiTurn,onStopAiTurn:wt.stopAiTurn,onEditMessage:wt.editMessage,onDeleteMessage:wt.deleteMessage,onRetryMessage:wt.retryMessage,onDismissFailedMessage:wt.dismissFailedMessage,onLoadMoreMessages:wt.loadMoreMessages,onRetryLoad:wt.refresh},community:$a,bootstrap:Xt,runtimeEvents:zr,chatMessages:_i,contextWindowStatus:rt,goalRuntime:$r,subagentRuntime:Sr,selectedSessionId:me,composerDraftStore:n,mainComposerFocusRequestId:U,labCloseDetailRequestId:ae.closeDetailRequestId,labCloseDetailKind:ae.closeDetailKind,labSuggestionsRequestId:D,steerAutoDispatchBlocked:ki,steerAutoDispatchReady:Mo,mentionApps:Mt,connectedAppMentions:oe,profileSkills:Xt?.profile?.skills??[],selectedMentionAppId:S,busy:be,turnRunning:Co,activeProvider:St,activeModel:st,codexPermissionMode:qe,codexReasoningEffort:$,openPondCommandAccessMode:ro,subagentDelegationDefaultMode:ii,subagentDelegationMode:Bi,subagentDelegationAvailable:cs,pendingApproval:pt,activeWorkspaceAppId:Da,activeWorkspaceId:Kn,activeWorkspaceKind:Bo,projectTarget:oi,actionCatalog:Ho,workspaceTarget:ri,connection:Ft,workspaceName:nr,workspaceState:uo,workspaceDiff:wo,workspaceBusy:on,diffBusy:co,forceChatThread:ia(me),diffPanelOpen:ie,diffPanelExpanded:fe,rightPanelMode:te,rightPanelTabRequest:E,rightChatPanels:ui,workspaceDiffPanelViewState:j,browserConversationId:Ri,terminalScope:lr,terminalTabs:u,terminalCwd:Fr,pendingTerminalCommand:i,terminalOpen:R,onToggleTerminal:()=>W(Nn=>!Nn),onWorkspaceDiffPanelViewStateChange:Ut,insightsItems:Nt.items,insightsRuns:Nt.runs,insightsNextScanAt:Nt.nextScanAt,insightsScanRunning:Nt.scanRunning,insightsScanStartedAt:Nt.scanStartedAt,insightsScanning:Nt.scanning,insightsError:Nt.error,training:vn,trainingSessions:Kt,trainingChatHandoff:zn,trainingDetailTasksetId:g,onTrainingDetailTasksetIdChange:p,onTrainingChatTaskSelect:Ua,onTrainingChatHandoffDismiss:ni,onRunInsightsScan:Nt.runScan,onAskInsightsQuestion:Nt.askQuestion,onPatchInsightStatus:Nt.patchStatus,onOpenInsightsSession:Vt,cloudProjects:Xt?.cloudProjects??[],cloudWorkItems:Cn,selectedCloudWorkItem:io,cloudWorkItemDetail:Ko,cloudWorkItemLocalProjectName:Xn?.name??null,cloudLoading:Fo,cloudBusy:ar,cloudError:gr,chatHistoryHasMore:cr,chatHistoryLoading:Kr,onDiffPanelResizeStart:ba,onToggleDiffPanelExpanded:()=>he(Nn=>!Nn),onShowDiffPanel:Vi,onShowBrowserPanel:Ki,onShowFilesPanel:()=>et("files"),onShowGoalSidebarTab:Gi,onShowTrainingDraftPanel:()=>{A("training"),V(!0)},onShowRightChatPanel:_e,onAddRightChat:()=>Wo(null),onOpenRightChatForSession:Nn=>{const Wi=Kt.find(Fs=>Fs.id===Nn)??null;Wi&&Wo(Wi,{preserveView:!0})},onOpenLabSuggestions:Cr,onLabDetailOpenChange:ae.onDetailOpenChange,onTerminalTabsChange:m,onCloseRightChatPanel:mo,onRightChatModelChange:Qt,onRightChatPromptChange:dn,onRightChatProviderChange:Gn,onSubmitRightChat:Gt,onStopRightChat:Nn=>Br(Nn),onCloseTerminal:()=>W(!1),onOpenCloudHome:Vn,onSetupCloudProject:fs,onCreateCloudWork:nn,onSelectCloudWorkItem:an,onSendCloudWorkItemMessage:yo,onHandleCloudWorkItemBackground:Mn,onCancelCloudWorkItemCreatePipeline:Aa,onCancelCloudWorkItemTask:Vo,onApplyCloudWorkItemPatchLocally:Va,onLoadMoreChatHistory:qa,canSyncWorkspace:Zo,startMessage:En,onPayload:Sn,onError:hn,setView:gt,onOpenProfileSettings:qt,onOpenProviderSettings:()=>{Ce("providers"),gt("settings")},changeDraftProvider:fo,changeProjectTarget:Ti,changeWorkspaceTarget:ds,setDraftProvider:le,setDraftModel:Pe,onBeginNewChatWithModel:Za,changeCodexPermissionMode:Tn,changeCodexReasoningEffort:wn,changeOpenPondCommandAccessMode:ua,changeSubagentDelegationMode:Mi,resolveApproval:Ga,answerCreateImproveQuestion:Bs,applyCreateImproveCandidate:Pi,approveCreateImproveRun:xl,cancelCreateImproveRun:No,openCreateImprovePullRequest:si,reconcileCreateImprovePullRequest:va,rejectCreateImproveCandidate:Ha,pauseCreateImproveRun:Ja,resumeCreateImproveRun:Oo,reviseCreateImproveRun:sr,setMentionedAppId:x,showToast:Dt,sendPrompt:Oi,stopTurn:Br,syncWorkspaceLocally:Ta,refreshWorkspaceDiff:Wa},cloudSetup:{state:C,onClose:()=>w(null),onOpenBrowserUrl:Hr,onStart:()=>{Cl()}},projectConfirm:{state:B,onResolve:K},lazyPanels:{activeSessions:So,branchDialogName:Me,branchDialogOpen:$e,commitDialogOpen:He,commitDraft:ot,commitIncludeUnstaged:Ke,commitMessage:xe,commitNextStep:Ue,canPublishOpenPondProject:ir,connection:Ft,expandProject:To,newProjectBusy:de,newProjectDialogOpen:Q,newProjectDirectory:Tt.defaultNewProjectDirectory,newProjectMode:Ae,newProjectName:je,newProjectPath:Le,projectRows:$t,query:I,searchOpen:O,visibleWorkspaceDiff:wo,visibleWorkspaceState:uo,workspaceBusy:on,appDispatch:o,beginNewChat:()=>ta(null),openDefaultsSettingsFromBranchDialog:Us,setBranchDialogName:pn,setBranchDialogOpen:ct,setCommitDialogOpen:nt,setCommitDraft:vt,setCommitIncludeUnstaged:Xe,setCommitMessage:Qe,setCommitNextStep:at,setNewProjectDialogOpen:ye,setNewProjectName:De,setNewProjectPath:Ne,setPrompt:Z,setQuery:H,setSearchOpen:se,submitCommitDialog:ls,submitCreateWorkspaceBranch:qs,submitNewProjectDialog:ss},toast:{toast:q,onDismiss:()=>o({type:"field",key:"toast",value:null})}})}const Ec=new Map,Gf=new Map;function Ob(e){if(!e||e.state!=="signed_in")return null;const t=e.accounts.find(i=>i.isActive)??null,n=e.activeProfile?.handle?.trim()||t?.handle?.trim()||e.label.trim()||"signed_in",o=e.activeProfile?.baseUrl??t?.baseUrl??e.baseUrl??"";return[n,o,e.apiBaseUrl??"",e.chatApiBaseUrl??""].join("|")}function hK(e){const t=e?.trim();if(!t)return null;const n=Ec.get(t);return n?.updatedAt?n.organizations:null}function gK(e,t){const n=e?.trim();if(n){Ec.set(n,{organizations:t,promise:null,updatedAt:Date.now()});for(const o of Gf.get(n)??[])o()}}function bK(e,t){const n=e?.trim();if(!n)return()=>{};const o=Gf.get(n)??new Set;return o.add(t),Gf.set(n,o),()=>{o.delete(t),o.size===0&&Gf.delete(n)}}function ew(e){const t=e.accountKey?.trim();if(!t)return Promise.resolve([]);const n=Ec.get(t);if(!e.force){if(n?.updatedAt)return Promise.resolve(n.organizations);if(n?.promise)return n.promise}const o=e.fetchOrganizations().then(i=>(gK(t,i),i)).catch(i=>{const l=Ec.get(t);throw l?.promise===o&&Ec.set(t,{organizations:l.organizations,promise:null,updatedAt:l.updatedAt}),i});return Ec.set(t,{organizations:n?.organizations??[],promise:o,updatedAt:n?.updatedAt??0}),o}const kY="openpond.config.json";function aR(){return{activeTab:"files",openFilePaths:[],selectedPath:null}}function Og(e){return{activeTab:e.activeTab,openFilePaths:[...e.openFilePaths],selectedPath:e.selectedPath}}function IY(e,t=null){const n=yK(e.openFilePaths.map(i=>nw(i,t)).filter(Boolean)),o=e.selectedPath&&nw(e.selectedPath,t)||null;return{activeTab:e.activeTab==="file"&&!o?"files":e.activeTab,openFilePaths:n,selectedPath:o}}function tw(e,t){return e.activeTab===t.activeTab&&e.selectedPath===t.selectedPath&&e.openFilePaths.length===t.openFilePaths.length&&e.openFilePaths.every((n,o)=>n===t.openFilePaths[o])}function nw(e,t=null){let n=vK(e);const o=t?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!o)return n;if(n===o)return"";n.startsWith(`${o}/`)&&(n=n.slice(o.length+1));const i=o.split("/").filter(Boolean).at(-1);return i&&n.startsWith(`${i}/`)&&(n=n.slice(i.length+1)),n}function AY(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function RY(e){return{path:e,status:"unchanged",additions:0,deletions:0,patch:"",content:null}}function TY(e,t){const n=aw(e.path);return!n||e.path.endsWith("/")||e.content==null&&/Could not access .+\/null['"]?/.test(e.patch)?!0:t.some(o=>{const i=aw(o);return!!(i&&i.startsWith(`${n}/`))})}function jY(e){return/\.(?:md|markdown|mdx)$/i.test(e)||/(?:^|\/)readme$/i.test(e)}function EY(e){return/\.(?:doc|docx)$/i.test(e)}function vK(e){let t=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(/^file:\/\//i.test(t))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.replace(/^file:\/\//i,"")}return t.replace(/\\/g,"/").replace(/^\.\/+/,"")}function yK(e){return Array.from(new Set(e))}function aw(e){const n=e.replace(/\\/g,"/").replace(/^\.\/+/,"").split("/").filter(Boolean);return n.length===0?null:n.join("/")}function SK(e){if(!e||e.state!=="signed_in")return null;const t=e.accounts.find(m=>m.isActive)??null,n=e.profile?.id?.trim()??"",o=e.activeProfile?.handle?.trim()||t?.handle?.trim()||e.label.trim()||"signed_in",i=e.activeProfile?.baseUrl??t?.baseUrl??e.baseUrl??"",l=e.apiBaseUrl??t?.apiBaseUrl??"",u=e.chatApiBaseUrl??t?.chatApiBaseUrl??"";return[n?`profile:${n}`:"profile:unknown",o,i,l,u].join("|")}function oR(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"cloud-project"}function xK(e){const t=new TextEncoder().encode(e);let n="";for(const o of t)n+=String.fromCharCode(o);return btoa(n)}function Zm(e){const t=e,n=t.teamId||t.id||"";if(!n)return null;const o=t.displayName||t.name||n,i=t.workspaceKind==="personal"||t.isPersonalDefault===!0||t.kind==="personal_default"||t.name?.trim().toLowerCase()==="personal";return{teamId:n,slug:t.slug||oR(o),name:t.name||o,displayName:o,role:t.role==="owner"||t.role==="admin"||t.role==="member"?t.role:"member",workspaceKind:t.workspaceKind==="personal"||t.workspaceKind==="shared"?t.workspaceKind:i?"personal":"shared",status:t.status==="disabled"||t.status==="archived"?t.status:"active",kind:t.kind==="personal_default"||t.kind==="managed_client"||t.kind==="team"?t.kind:void 0,isPersonalDefault:i,isManagedClient:t.isManagedClient===!0||t.kind==="managed_client",primaryContactEmail:t.primaryContactEmail??null,customDomain:t.customDomain??null,planKey:typeof t.planKey=="string"?t.planKey:null,effectiveAccessState:t.effectiveAccessState==="checkout_pending"||t.effectiveAccessState==="active"||t.effectiveAccessState==="grace"||t.effectiveAccessState==="suspended"||t.effectiveAccessState==="cancelling"||t.effectiveAccessState==="cancelled"?t.effectiveAccessState:null,canManageBilling:t.canManageBilling===!0||t.role==="owner",createdAt:t.createdAt??"",updatedAt:t.updatedAt??""}}function CK(e){return e.find(t=>t.workspaceKind==="personal"||t.isPersonalDefault===!0||t.kind==="personal_default")??e.find(t=>t.name.trim().toLowerCase()==="default")??e.find(t=>t.isManagedClient!==!0&&t.kind!=="managed_client")??e[0]??null}function wK(e,t){const n=e.filter(i=>i.status==="active"&&i.workspaceKind==="shared"),o=t?.trim()??"";if(o){const i=n.find(l=>l.teamId===o);if(i)return i}return n.find(i=>i.role==="owner")??n.find(i=>i.role==="admin")??n[0]??null}const _K="uploaded to a different account";function rR(e,t){const n=e?.linkedSandboxProject??null;if(!n?.projectId||!n.teamId)return{state:"none",linked:null,cloudProject:null};const o=t?.find(i=>i.id===n.projectId&&i.teamId===n.teamId)??null;return o?{state:"confirmed",linked:n,cloudProject:o}:{state:"different_account",linked:n,cloudProject:null}}function ti(e,t){const n=rR(e,t);return n.state==="confirmed"?n.cloudProject:null}function kK(e,t){return rR(e,t).state==="different_account"?_K:null}function IK(...e){for(const t of e){const n=t?.trim();if(n)return n}return""}function AK(...e){return IK(...e.map(t=>{const n=t?.trim();return n&&!n.includes("@")?n:null}))}function RK(e){if(e?.state!=="signed_in")return"";const t=e.accounts.find(n=>n.isActive)??null;return AK(e.profile?.name,e.label,t?.displayLabel,e.profile?.handle,t?.handle,e.activeProfile?.handle)}function TK({bootstrap:e,draftModel:t,draftProvider:n,selectedApp:o,selectedAppId:i,selectedCloudProject:l,selectedProject:u,selectedSession:m,selectedSessionId:g,selectedSessionLinkedProject:p}){const S=m?.workspaceKind==="local_project"?m.workspaceId??null:p?.id??null,x=ia(g)&&!m,C=m?xi(m.workspaceKind):!1,w=os(m),E=m?fF(m):!1,j=m?.cwd&&(!C||w)?cv(m.cwd):null,U=e?.providers??null,D=ti(u,e?.cloudProjects??[]),B=l?"openpond":n,K=as(B,t,U),I=jr(e?.preferences),O=x?null:m?C?m.workspaceKind??"sandbox":E?"sandbox":S?"local_project":m.workspaceKind??(m.appId?"sandbox_app":j?"local_project":null):l?"sandbox":u?"local_project":i?"sandbox_app":null,N=x?null:m?C&&!w||E?null:S||(m.workspaceId??m.appId??j):l?null:u?.id??i,z=x?null:m?C?m.workspaceId??null:E?null:S??m.workspaceId??m.appId??j:l?null:u?.id??i,G=e?.account??null,ne=!e||G?.state==="loading"||G?.state==="switching",ce=!ne&&G?.state==="signed_out",Y=ne?null:ce?"Sign in":G?.label??G?.activeProfile?.handle??"Account",ue=RK(G),Se=ue?`Welcome, ${ue}`:"Welcome",me=m?.workspaceName??m?.appName??l?.name??u?.name??o?.name??null,qe=xi(O)?"cloud":"local",$=u?.name??p?.name??(m?.workspaceKind==="local_project"?m.workspaceName:null)??"Local workspace",be=(qe==="cloud"?me:null)??l?.name??D?.name??u?.name??"Cloud workspace",ie=!!(l?.id||D?.id||m?.cloudProjectId||qe==="cloud");return{account:G,accountLabel:Y,accountPending:ne,accountSignedOut:ce,activeModel:K,activeProvider:B,activeWorkspaceAppId:N,activeWorkspaceId:z,activeWorkspaceKind:O,activeWorkspaceLocation:qe,appDefaults:I,cloudLinked:ie,cloudTargetName:be,localTargetName:$,selectedCodexHistoryPending:x,selectedSessionCloudWorkspace:C,selectedSessionLocalPathWorkspaceId:j,selectedSessionPendingCloudStart:E,selectedSessionProjectId:S,startMessage:Se,workspaceName:me}}function jK({accountPending:e,accountSignedOut:t,activeWorkspaceLocation:n,bootstrap:o,busy:i,cloudLinked:l,selectedCloudProject:u,selectedProject:m,selectedSession:g,pendingWorkspaceTarget:p,workspaceStates:S,workspaceBusy:x}){const C=ti(m,o?.cloudProjects??[]),E=!!!m?.linkedSandboxProject?.projectId||!!C,j=b.useMemo(()=>{const z=(o?.localProjects??[]).map(Y=>({value:`local:${Y.id}`,label:Y.name,detail:Y.workspacePath,kind:"local"})),G=(o?.cloudProjects??[]).map(Y=>({value:`cloud:${Y.id}`,label:Y.name,detail:Y.organizationName??Y.sourceLabel??"OpenPond Cloud",kind:"cloud"})),ne=m?`local:${m.id}`:u?`cloud:${u.id}`:"none",ce=[...z,...G].find(Y=>Y.value===ne)??null;return{value:ne,label:ce?.label??"Select Project",detail:ce?.detail??"Choose a project for local or cloud work",busy:x||i,options:[...z,...G,{value:"action:add-local-project",label:"Add Local Project",detail:"Choose a folder on this machine",kind:"action"},{value:"none",label:"Don't work in a project",detail:"General chat without project files",kind:"none"}]}},[o?.cloudProjects,o?.localProjects,i,u,m,x]),U=!!(l||m),D=!!(u?.id||C?.id||g?.cloudProjectId||os(g)),B=m?S[m.id]??null:null,K=jI(B,{branch:m?.linkedSandboxProject?.defaultBranch??null,path:m?.workspacePath??g?.cwd??null,linkedCloudSourceKnown:m?.linkedSandboxProject?.projectId&&E?!!m.linkedSandboxProject.lastUploadedCommit||!B?.headCommit:!0}),I=EI(m,u??C,B,{cloudLinkTrusted:E}),O=Fq(m,B,{cloudLinkTrusted:E}),N=b.useMemo(()=>{const z={value:"local",label:"Local checkout",detail:"Use files on this machine. Best for fast chat and local edits.",stateNote:K,disabled:!m&&n!=="local",disabledReason:"No linked local workspace."},G={value:"queue_cloud",label:"Queue cloud work item",detail:"Run the next task in a hosted sandbox. Keeps this chat local.",stateNote:l?`will use ${I}`:"upload required",disabled:e||t||!l,disabledReason:t?"Add an OpenPond account before queueing Cloud work.":"Upload/sync this Project to Cloud before queueing work."},ne={value:"hybrid",label:"Hybrid",detail:"Use your selected model with hosted sandbox edits.",stateNote:D?I:"upload required",disabled:e||t||!D,disabledReason:t?"Add an OpenPond account before using Hybrid.":"Upload/sync this Project to Cloud before using Hybrid."},ce={value:"cloud",label:"Cloud workspace",detail:"Chat inside the hosted sandbox. Best for cloud-only files, dependencies, or handoff.",stateNote:I,disabled:e||t||!U,disabledReason:t?"Add an OpenPond account before using Cloud.":"Select a Project before Cloud coding."},Y={value:"upload_cloud",label:"Upload/sync to cloud",detail:"Push local source to OpenPond Git before cloud work.",stateNote:O,disabled:e||t||!m,disabledReason:t?"Add an OpenPond account before uploading source.":"Select a local Project before uploading source."},ue=n==="cloud"?"local":"cloud",Se=ue==="local"?z:ce;let me=n==="cloud"?ce:z;return p==="queue_cloud"&&(me=G),(os(g)||p==="hybrid")&&(me=ne),{value:me.value,label:me.label,detail:me.stateNote||me.detail,busy:x,action:{...Se,label:ue==="cloud"?"Cloud workspace":m?"Local checkout":"Check out locally"},uploadAction:Y,options:[z,ne,G,ce]}},[n,e,t,l,U,I,D,K,p,m,g,O,x]);return{projectTarget:j,workspaceTarget:N}}function EK(e){return new Set(e.map(t=>t.id))}function ow(e,t){const n=e?.linkedOpenPondApp??null;return n?.appId&&t.has(n.appId)?n:null}function MK({bootstrap:e,codexHistorySessions:t,selectedProjectId:n,selectedSessionId:o,selectedAppId:i,sessions:l}){const u=b.useMemo(()=>e?.apps.find(ce=>ce.id===i)??null,[e?.apps,i]),m=b.useMemo(()=>new Map((e?.localProjects??[]).map(ce=>[ce.id,ce])),[e?.localProjects]),g=b.useMemo(()=>new Map((e?.cloudProjects??[]).map(ce=>[ce.id,ce])),[e?.cloudProjects]),p=b.useMemo(()=>dI(n),[n]),S=b.useMemo(()=>p?.kind==="local"?m.get(p.id)??null:null,[m,p]),x=b.useMemo(()=>p?.kind==="cloud"?g.get(p.id)??null:null,[g,p]),C=b.useMemo(()=>EK(e?.apps??[]),[e?.apps]),w=b.useMemo(()=>ZI(e?.apps??[]),[e?.apps]),E=b.useMemo(()=>{const ce=[];for(const Y of e?.localProjects??[]){const ue=ow(Y,C);ue&&ce.push([ue.appId,Y.id])}return new Map(ce)},[e?.localProjects,C]),j=b.useMemo(()=>new Set((e?.localProjects??[]).map(ce=>ce.id)),[e?.localProjects]),U=b.useMemo(()=>BA(e?.localProjects??[]),[e?.localProjects]),D=b.useRef([]),B=b.useMemo(()=>PK(l,t,D.current),[t,l]),K=b.useMemo(()=>B.find(ce=>ce.id===o)??null,[B,o]),I=b.useMemo(()=>{if(!K)return null;if(K.localProjectId)return m.get(K.localProjectId)??null;if(K.workspaceKind==="local_project")return K.workspaceId?m.get(K.workspaceId)??null:null;const ce=u7(K,j,U);if(ce)return m.get(ce)??null;if(!K.appId)return null;const Y=E.get(K.appId);return Y?m.get(Y)??null:null},[E,m,j,U,K]),O=b.useMemo(()=>K?.cloudProjectId?g.get(K.cloudProjectId)??null:null,[g,K]),N=S??I,z=x??O,G=b.useMemo(()=>ow(N,C),[C,N]),ne=b.useMemo(()=>G?e?.apps.find(ce=>ce.id===G.appId)??null:null,[e?.apps,G]);return{cloudProjectById:g,currentAppIds:C,linkedProjectByAppId:E,localProjectById:m,mentionableSandboxApps:w,selectedApp:u,selectedCloudProject:z,selectedProject:N,selectedProjectLinkedApp:ne,selectedProjectLinkedOpenPondApp:G,selectedSession:K,selectedSessionLinkedProject:I,sidebarSessions:B}}function PK(e,t,n){const o=new Map;for(const p of e){const S=rw(p);o.set(S,p)}for(const p of t){const S=rw(p),x=o.get(S);o.set(S,x?NK(x,p):p)}const i=Array.from(o.entries());if(!n)return i.sort((p,S)=>iw(p[1],S[1])).map(p=>p[1]);const l=[],u=new Set;for(const p of n){const S=o.get(p);S&&(l.push([p,S]),u.add(p))}const g=[...i.filter(([p])=>!u.has(p)).sort((p,S)=>iw(p[1],S[1])),...l];return n.splice(0,n.length,...g.map(([p])=>p)),g.map(p=>p[1])}function NK(e,t){return{...e,metadata:OK(e.metadata,t.metadata),status:e.status==="active"||t.status==="active"?"active":e.status,updatedAt:zK(e.updatedAt,t.updatedAt)}}function rw(e){return e.codexThreadId?`codex:${e.codexThreadId}`:`session:${e.id}`}function iw(e,t){const n=sw(t)-sw(e);return n!==0?n:e.title.localeCompare(t.title)}function OK(e,t){const n={...e??{},...t??{}};return Object.keys(n).length>0?n:void 0}function zK(e,t){const n=Date.parse(e);if(!Number.isFinite(n))return t;const o=Date.parse(t);return Number.isFinite(o)&&o>n?t:e}function sw(e){const t=Date.parse(e.updatedAt);if(Number.isFinite(t))return t;const n=Date.parse(e.createdAt);return Number.isFinite(n)?n:0}function $K(e){return!!(e&&xi(e.workspaceKind)&&!os(e)&&e.provider!=="openpond")}function DK({activeWorkspaceId:e,activeWorkspaceKind:t,appDispatch:n,connection:o,expandProject:i,linkedProjectByAppId:l,providerSettings:u,selectedAppId:m,selectedSession:g,selectedSessionId:p,selectedSessionProjectId:S,setDiffPanelExpanded:x,setDraftModel:C,setDraftProvider:w,setError:E,setSelectedAppId:j,setSelectedProjectId:U,setSessions:D,setTerminalOpen:B,toast:K}){const I=b.useRef(null);b.useEffect(()=>{if(!m)return;const O=S??(p?null:l.get(m)??null);if(!O)return;const N=Wt("local",O);j(null),U(N),i(N)},[i,l,m,p,S,j,U]),b.useEffect(()=>{if(!K||K.persistent)return;const O=window.setTimeout(()=>{n({type:"clearToast",toastId:K.id})},K.durationMs??(K.tone==="error"?7e3:3500));return()=>window.clearTimeout(O)},[n,K]),b.useEffect(()=>{function O(N){(N.metaKey||N.ctrlKey)&&N.key==="`"&&(N.preventDefault(),B(z=>!z))}return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[B]),b.useEffect(()=>{x(!1)},[e,t,x]),b.useEffect(()=>{if(!p){I.current=null;return}if(!g||g.id!==p||I.current===g.id)return;I.current=g.id;const O=F4(g,u);w(O.provider),C(O.model)},[u,g,p,C,w]),b.useEffect(()=>{!o||!g||!$K(g)||ge.patchSession(o,g.id,{provider:"openpond"}).then(O=>{D(N=>N.map(z=>z.id===O.id?O:z)),w("openpond"),C(N=>as("openpond",N))}).catch(O=>{E(O instanceof Error?O.message:String(O))})},[o,g,C,w,E,D])}function UK({connection:e,setError:t}){return b.useCallback(async(n,o)=>{if(!e){const i=new Error("OpenPond App server is not connected.");throw t(i.message),i}t(null);try{await ge.resolveApproval(e,n,{decision:o})}catch(i){const l=i instanceof Error?i.message:String(i);throw t(l),i}},[e,t])}function LK({activeProvider:e,contextCompaction:t,contextUsage:n,pinnedItems:o,pinnedPreviewKeys:i,pinnedProjects:l,projectRows:u,visibleProjectRows:m}){const g=b.useMemo(()=>D4(o,i),[o,i]),p=b.useMemo(()=>KA({provider:e,snapshot:n,preferences:t}),[e,t,n]),S=b.useMemo(()=>Array.from(new Set([...l,...m].filter(Tv).map(C=>C.project.id))),[l,m]);return{commandProjectRows:b.useMemo(()=>[...l,...u],[l,u]),contextWindowStatus:p,pinnedRows:g,sidebarWorkspaceAppIds:S}}function qK({appDispatch:e,expandProject:t,linkedProjectByAppId:n,requestComposerFocus:o,onBeginNewChat:i,setMentionedAppId:l}){return b.useCallback((u=null)=>{i?.();const m=u?.id?n.get(u.id)??null:null;if(m){const g=Wt("local",m);l(null),e({type:"selectProject",projectId:g}),t(g),o();return}l(null),e({type:"beginNewChat",appId:u?.id??null}),o()},[e,t,n,i,o,l])}function BK({bootstrap:e,connectedAppRows:t,mentionableSandboxApps:n,runtimeIndexes:o,selectedApp:i,selectedCloudProject:l,selectedProject:u,selectedSession:m,selectedSessionId:g}){const p=b.useMemo(()=>{const E=new Map;for(const j of e?.cloudProjects??[]){const U=E.get(j.teamId)??[];U.push(j.id),E.set(j.teamId,U)}return E},[e?.cloudProjects]),x=!!(m||i||u||l)?[]:n,C=b.useMemo(()=>r5(t),[t]),w=b.useMemo(()=>nR(o,g),[o,g]);return{chatMentionApps:x,cloudProjectIdsByTeam:p,connectedAppMentions:C,pendingApproval:w}}const iR="openpond.codexPermissionMode",sR="openpond.codexReasoningEffort";function Cd(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function HK(e){return e==="default"||e==="auto-review"||e==="full-access"?e:null}function FK(e){return e==="low"||e==="medium"||e==="high"||e==="xhigh"?e:null}function lR(e=Cd()){if(!e)return{};const t=HK(e.getItem(iR)),n=FK(e.getItem(sR));return{...t?{codexPermissionMode:t}:{},...n?{codexReasoningEffort:n}:{}}}function KK(e,t=Cd()){try{t?.setItem(iR,e)}catch{}}function VK(e,t=Cd()){try{t?.setItem(sR,e)}catch{}}function lw(e,t=Cd()){const n=jr(e),o=lR(t);return{codexPermissionMode:o.codexPermissionMode??n.codexPermissionMode??Mm,codexReasoningEffort:o.codexReasoningEffort??n.codexReasoningEffort??Pm}}function GK(e,t=Cd()){const n=jr(e),o=lR(t),i={};return o.codexPermissionMode&&o.codexPermissionMode!==n.codexPermissionMode&&(i.codexPermissionMode=o.codexPermissionMode),o.codexReasoningEffort&&o.codexReasoningEffort!==n.codexReasoningEffort&&(i.codexReasoningEffort=o.codexReasoningEffort),i}function ZK({connection:e,setBootstrap:t,setCodexPermissionMode:n,setCodexReasoningEffort:o,setError:i}){const l=b.useCallback(m=>{n(m),KK(m),e&&ge.savePreferences(e,{codexPermissionMode:m}).then(()=>{t(g=>g&&{...g,preferences:{...g.preferences,codexPermissionMode:m}})}).catch(g=>{i(g instanceof Error?g.message:String(g))})},[e,t,n,i]),u=b.useCallback(m=>{o(m),VK(m),e&&ge.savePreferences(e,{codexReasoningEffort:m}).then(()=>{t(g=>g&&{...g,preferences:{...g.preferences,codexReasoningEffort:m}})}).catch(g=>{i(g instanceof Error?g.message:String(g))})},[e,t,o,i]);return{changeCodexPermissionMode:l,changeCodexReasoningEffort:u}}function WK({bootstrap:e,connection:t,cloudProjectById:n,cloudProjectIdsByTeam:o,setSelectedAppId:i,setSelectedProjectId:l,setSelectedSessionId:u,setView:m,setError:g,rememberWorkspaceState:p,showToast:S}){const[x,C]=b.useState([]),[w,E]=b.useState(null),[j,U]=b.useState(null),[D,B]=b.useState(!1),[K,I]=b.useState(!1),[O,N]=b.useState(null),z=b.useMemo(()=>x.find(ie=>ie.id===w)??null,[x,w]),G=b.useMemo(()=>z?e?.localProjects.find(ie=>{const fe=ie.linkedSandboxProject;return fe?.teamId===z.teamId&&fe.projectId===z.projectId})??null:null,[e?.localProjects,z]);b.useEffect(()=>{if(!t||o.size===0){C([]),U(null),N(null);return}let ie=!1;return B(!0),Promise.all(Array.from(o.entries()).map(([fe,te])=>ge.cloudWorkItems(t,{teamId:fe,projectIds:te,limit:100}))).then(fe=>{if(ie)return;const te=new Map;for(const L of fe)for(const Q of L.workItems)te.set(Q.id,Q);const R=[...te.values()].sort((L,Q)=>Date.parse(Q.updatedAt)-Date.parse(L.updatedAt));C(R),N(null)}).catch(fe=>{ie||N(fe instanceof Error?fe.message:String(fe))}).finally(()=>{ie||B(!1)}),()=>{ie=!0}},[o,t]),b.useEffect(()=>{if(!t||!z){U(null);return}let ie=!1;return B(!0),ge.cloudWorkItem(t,z.id,{teamId:z.teamId}).then(fe=>{ie||(U(fe),N(null))}).catch(fe=>{ie||N(fe instanceof Error?fe.message:String(fe))}).finally(()=>{ie||B(!1)}),()=>{ie=!0}},[t,z]);const ne=b.useCallback(async ie=>{if(!t)return;const fe=await ge.cloudWorkItem(t,ie.id,{teamId:ie.teamId});U(fe),C(te=>{const R=te.filter(L=>L.id!==fe.workItem.id);return[fe.workItem,...R].sort((L,Q)=>Date.parse(Q.updatedAt)-Date.parse(L.updatedAt))})},[t]),ce=b.useCallback(()=>{E(null),i(null),l(null),u(null),N(null),m("cloud")},[i,l,u,m]),Y=b.useCallback(ie=>{E(ie.id),i(null),l(Wt("cloud",ie.projectId)),u(null),N(null),m("cloud")},[i,l,u,m]),ue=b.useCallback(async ie=>{if(!t)return N("OpenPond App server is not connected."),!1;const fe=n.get(ie.projectId);if(!fe)return N("Select a Cloud Project before starting a task."),!1;const te=ie.prompt.split(/\s+/).slice(0,12).join(" ").slice(0,120)||"Cloud task",R=Hm(ie.prompt),L=R&&(R.command==="create"||R.command==="edit")?await Jn(()=>import("./create-pipeline-request-AJWLMTyw.js"),[],import.meta.url):null,Q=L&&R&&(R.command==="create"||R.command==="edit")?L.buildHostedCloudWorkCreateImproveRun({command:R.command,objective:R.args||ie.prompt,payload:e,project:fe,source:"cloud_work_home"}):null;if(R?.command==="edit"&&!Q){const xe="Select an agent-backed Cloud work item before using /edit.";return N(xe),g(xe),!1}const Ae=Q?L?.buildInitialCreateImproveRun(Q)??null:null,je=YK(R),Le=Ae?.adapter.kind==="hosted"?Ae.adapter.sourceRef:ie.sourceRef??fe.defaultBranch??null,de=Ae?.adapter.kind==="hosted"?Ae.adapter.baseSha:ie.baseSha??null,He=ie.select??!0;I(!0),N(null);try{const xe=await ge.createCloudWorkItem(t,{teamId:fe.teamId,projectId:fe.id,title:Ae?.objective??te,initialMessage:ie.prompt,sourceRef:Le,baseSha:de,localProjectId:ie.localProjectId??null,localProjectName:ie.localProjectName??null,localWorkspacePath:ie.localWorkspacePath??null,requestedExecutionTarget:ie.requestedExecutionTarget??null,createImproveRun:Ae,usageAttribution:je});return U(xe),C(Ke=>[xe.workItem,...Ke.filter(Ue=>Ue.id!==xe.workItem.id)]),He&&(E(xe.workItem.id),i(null),l(Wt("cloud",fe.id)),u(null),m("cloud")),Ae?(S("Agent plan is ready for review.","info"),!0):(await ge.handleCloudWorkItemInBackground(t,xe.workItem.id,{teamId:fe.teamId,prompt:ie.prompt,sourceRef:Le,baseSha:de,branchPolicy:{mode:"patch_only"},budget:{maxDurationSeconds:1800},usageAttribution:je}),await ne(xe.workItem),S("Cloud task started in the background.","success"),!0)}catch(xe){const Ke=xe instanceof Error?xe.message:String(xe);return N(Ke),g(Ke),!1}finally{I(!1)}},[e,n,t,ne,g,i,l,u,m,S]),Se=b.useCallback(async ie=>{if(!t||!z)return;const fe=j?.createImproveRun??z.createImproveRun??null,te=ie.trim().match(/^revise plan:\s*([\s\S]+)$/i)?.[1]?.trim()??"",R=fe&&te?(await Jn(async()=>{const{reviseCreateImproveRun:L}=await import("./create-pipeline-request-AJWLMTyw.js");return{reviseCreateImproveRun:L}},[],import.meta.url)).reviseCreateImproveRun(fe,te):fe;I(!0),N(null);try{const L=await ge.sendCloudWorkItemMessage(t,z.id,{teamId:z.teamId,message:ie,createImproveRun:te?R:void 0,usageAttribution:te?zg(fe):void 0});U(Q=>Q&&{...Q,createImproveRun:te?R:Q.createImproveRun,workItem:te?{...Q.workItem,createImproveRun:R}:Q.workItem,messages:[...Q.messages,L.userMessage,L.message]})}catch(L){const Q=L instanceof Error?L.message:String(L);N(Q),g(Q)}finally{I(!1)}},[j,t,z,g]),me=b.useCallback(async ie=>{if(!t||!z)return;const fe=j?.createImproveRun??z.createImproveRun??null,te=fe?(await Jn(async()=>{const{approveCreateImproveRun:L}=await import("./create-pipeline-request-AJWLMTyw.js");return{approveCreateImproveRun:L}},[],import.meta.url)).approveCreateImproveRun(fe):null,R=zg(fe);I(!0),N(null);try{ie&&await ge.sendCloudWorkItemMessage(t,z.id,{teamId:z.teamId,message:ie}),await ge.handleCloudWorkItemInBackground(t,z.id,{teamId:z.teamId,prompt:ie,sourceRef:z.sourceRef,baseSha:z.baseSha,...JK(z,j),branchPolicy:{mode:"patch_only"},budget:{maxDurationSeconds:1800},createImproveRun:te,usageAttribution:R,payload:fe?{createImproveDecision:"approved",createImproveState:"applying_source"}:void 0}),await ne(z),S(fe?"Agent Create/Improve run started in the background.":"Cloud task started in the background.","success")}catch(L){const Q=L instanceof Error?L.message:String(L);N(Q),g(Q)}finally{I(!1)}},[j,t,ne,z,g,S]),qe=b.useCallback(async()=>{if(!(!t||!z)){I(!0),N(null);try{await ge.cancelCloudWorkItemTask(t,z.id,{teamId:z.teamId}),await ne(z),S("Cloud task stopped.","success")}catch(ie){const fe=ie instanceof Error?ie.message:String(ie);N(fe),g(fe)}finally{I(!1)}}},[t,ne,z,g,S]),$=b.useCallback(async()=>{if(!t||!z)return;const ie=j?.workItem??z;if(!G){const R="No linked local checkout exists for this Cloud Project.";N(R),g(R);return}const fe=ie.latestSandboxId??null;if(!fe){const R="No reviewed Cloud sandbox is available for this work item.";N(R),g(R);return}if(window.confirm(`Apply the reviewed Cloud patch to ${G.name}? Your local checkout must be clean.`)){I(!0),N(null);try{const R=await ge.applyCloudWorkItemLocalPatch(t,ie.id,{teamId:ie.teamId,localProjectId:G.id,sandboxId:fe});p(R.workspaceState),C(L=>L.map(Q=>Q.id===R.workItem.id?R.workItem:Q)),U(L=>L&&{...L,workItem:R.workItem}),S(`Applied Cloud patch to ${R.localProject.name} (${R.patch.fileCount} file${R.patch.fileCount===1?"":"s"}).`,"success")}catch(R){const L=R instanceof Error?R.message:String(R);N(L),g(L)}finally{I(!1)}}},[j,t,p,z,G,g,S]),be=b.useCallback(async()=>{if(!t||!z)return;const ie=j?.createImproveRun??z.createImproveRun??null;if(!ie){await qe();return}const fe=(await Jn(async()=>{const{cancelCreateImproveRun:te}=await import("./create-pipeline-request-AJWLMTyw.js");return{cancelCreateImproveRun:te}},[],import.meta.url)).cancelCreateImproveRun(ie);I(!0),N(null);try{const te=await ge.sendCloudWorkItemMessage(t,z.id,{teamId:z.teamId,message:"Cancel create plan",createImproveRun:fe,usageAttribution:zg(ie)});U(R=>R&&{...R,createImproveRun:fe,workItem:{...R.workItem,createImproveRun:fe},messages:[...R.messages,te.userMessage,te.message]}),C(R=>R.map(L=>L.id===z.id?{...L,createImproveRun:fe}:L)),S("Agent create plan cancelled.","success")}catch(te){const R=te instanceof Error?te.message:String(te);N(R),g(R)}finally{I(!1)}},[qe,j,t,z,g,S]);return{cloudBusy:K,cloudError:O,cloudLoading:D,cloudWorkItemDetail:j,cloudWorkItems:x,selectedCloudWorkItem:z,selectedCloudWorkItemId:w,selectedCloudWorkItemLocalProject:G,applyCloudWorkItemPatchLocally:$,cancelCloudWorkItemCreatePipeline:be,cancelCloudWorkItemTask:qe,createCloudWork:ue,handleCloudWorkItemBackground:me,openCloudHome:ce,selectCloudWorkItem:Y,sendCloudWorkItemMessage:Se,setCloudError:N,setSelectedCloudWorkItemId:E}}function YK(e){return e?{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:"prompt_parse"}:void 0}function zg(e){if(e?.command)return{surface:"create_improve",workflowKind:"planner",createImproveRunId:e.id,commandName:e.command,commandSource:"api"}}function JK(e,t){const n=t?.workItem.id===e.id,o=n?t.workItem:null,i=n?t.runtimeSessions.find(g=>!g.endedAt&&(g.runtimeId||g.sandboxId))??t.runtimeSessions.find(g=>g.runtimeId||g.sandboxId)??null:null,l=o?.latestRuntimeId??e.latestRuntimeId??i?.runtimeId??null,u=o?.latestSandboxId??e.latestSandboxId??i?.sandboxId??null,m=o?.assignedAgentId??e.assignedAgentId??null;return{...l?{sourceRuntimeId:l}:{},...u?{sourceSandboxId:u}:{},...m?{agentId:m}:{}}}const XK=6e4;function Yv(e,t){if(!e)return t;const n=eV(e.updatedAt,t.updatedAt)?{...t,pinned:e.pinned,archived:e.archived,order:e.order,status:e.status,updatedAt:e.updatedAt}:t;return uR(e,n)?e:n}function QK(e,t){const n=Yv(e,t),o=e?{...n,pinned:e.pinned,archived:e.archived,order:e.order,updatedAt:e.updatedAt}:n;return e&&uR(e,o)?e:o}function Hu(e,t){let n=!1,o=!1;const i=e.map(l=>{if(l.id!==t.id)return l;n=!0;const u=Yv(l,t);return u!==l&&(o=!0),u});return n?o?i:e:[t,...e]}function Wm(e,t){let n=!1,o=!1;const i=e.map(l=>{if(l.id!==t.id)return l;n=!0;const u=QK(l,t);return u!==l&&(o=!0),u});return n?o?i:e:[t,...e]}function zb(e,t,n,o=Date.now()){const i=new Map(e.map(l=>[l.id,l]));return t.map(l=>{const u=i.get(l.id);if(u&&n){const m=nV(u,l,n,o);if(m)return m}return Yv(u,l)})}function cw(e,t,n,o=Date.now()){const i=new Map(e.map(p=>[p.id,p])),l=new Map(zb(e,t,n,o).map(p=>[p.id,p])),u=new Set(i.keys()),m=t.filter(p=>!u.has(p.id)).map(p=>l.get(p.id)??p),g=e.map(p=>{const S=l.get(p.id);return S||(cR(p,t)?p:null)}).filter(p=>!!p);return[...m,...g]}function cR(e,t){const n=Date.parse(e.updatedAt);if(!Number.isFinite(n))return!1;const o=tV(t);return o===null||n>=o}function uw(e,t,n,o=Date.now()){const i=new Map(t.map(l=>[l.id,l]));for(const l of n){const u=i.get(l.id);u&&(dR(u,l)||(e[l.id]=o))}}function eV(e,t){const n=Date.parse(e),o=Date.parse(t);return Number.isFinite(n)&&Number.isFinite(o)&&n>o}function uR(e,t){return JSON.stringify(e)===JSON.stringify(t)}function tV(e){let t=null;for(const n of e){const o=Date.parse(n.updatedAt);Number.isFinite(o)&&(t=t===null?o:Math.max(t,o))}return t}function nV(e,t,n,o){const i=n[t.id];return i===void 0?null:o-i>XK||dR(e,t)?(delete n[t.id],null):{...t,pinned:e.pinned,archived:e.archived,order:e.order}}function dR(e,t){return e.pinned===t.pinned&&e.archived===t.archived&&e.order===t.order}const fR=800,aV=5e3,dw=5e4,oV=16,rV=3e4,gi=new Map;function iV(e,t){return gi.get(pR(e,t))?.payload??null}async function mR(e,t,n={}){const o=pR(e,t),i=gi.get(o);if(i?.promise)return i.promise;if(!n.force&&i?.payload&&Date.now()-i.fetchedAt<=rV)return sV(o,i),i.payload;const l=n.limit??fR,u=n.tail??!0,m=ge.codexHistoryThread(e,t,{limit:l,tail:u}).then(g=>{const p=gi.get(o)?.payload??i?.payload,S=u&&p?{...g,events:lV(p.events,g.events)}:g;return gi.set(o,{fetchedAt:Date.now(),payload:S}),fw(),S}).catch(g=>{throw gi.get(o)?.promise===m&&gi.delete(o),g});return gi.set(o,{fetchedAt:i?.fetchedAt??0,payload:i?.payload,promise:m}),fw(),m}function pR(e,t){return`${e.serverUrl}
|
|
169
|
+
`):e;return f.jsxs("div",{className:`user-message-content-wrap ${i?"collapsible":""}`,children:[f.jsx("div",{className:"user-message-content",children:l}),i?f.jsxs("button",{type:"button",className:"user-message-show-more","aria-expanded":n,onClick:()=>o(u=>!u),children:[n?f.jsx(Lb,{size:14}):f.jsx(Lo,{size:14}),f.jsx("span",{children:n?"Show less":"Show more"})]}):null]})}function ZH(e,t){return e.activeWorkspaceAppId===t.activeWorkspaceAppId&&e.accountBaseUrl===t.accountBaseUrl&&e.billingOrganizationSlug===t.billingOrganizationSlug&&e.billingTeamId===t.billingTeamId&&e.connection===t.connection&&e.onOpenBrowserLink===t.onOpenBrowserLink&&e.onOpenFileInSidebar===t.onOpenFileInSidebar&&e.onOpenProfileSettings===t.onOpenProfileSettings&&e.onOpenSession===t.onOpenSession&&e.showFooter===t.showFooter&&e.workspaceRootPath===t.workspaceRootPath&&WH(e.message,t.message)}function WH(e,t){return e===t?!0:e.id===t.id&&e.role===t.role&&e.content===t.content&&e.timestamp===t.timestamp&&e.turnId===t.turnId&&e.statusKind===t.statusKind&&e.statusState===t.statusState&&e.statusTone===t.statusTone&&e.errorKind===t.errorKind&&tF(e.attachments,t.attachments)&&e.activities===t.activities&&e.sources===t.sources&&e.actionRun===t.actionRun&&e.insightsRunPrompt===t.insightsRunPrompt&&e.changeSummary===t.changeSummary&&e.createImproveRun===t.createImproveRun}function YH({sources:e,onOpenBrowserLink:t}){return f.jsxs("div",{className:"assistant-sources","aria-label":"Sources",children:[f.jsxs("span",{className:"assistant-sources-label",children:[f.jsx(ld,{size:13}),f.jsx("span",{children:"Sources"})]}),e.map(n=>f.jsx(JH,{source:n,onOpenBrowserLink:t},`${n.id}:${n.url}`))]})}function JH({source:e,onOpenBrowserLink:t}){const n=QH(e),o=[e.title,jA(e.url)].filter(Boolean).join(" - "),i=f.jsxs(f.Fragment,{children:[f.jsx(XH,{source:e}),f.jsx("span",{children:n})]});return t?f.jsx("button",{type:"button",className:"assistant-source-pill",title:o||n,"aria-label":`Open source ${n}`,onClick:()=>t(e.url,{newTab:!0}),children:i}):f.jsx("a",{className:"assistant-source-pill",href:e.url,target:"_blank",rel:"noreferrer",title:o||n,"aria-label":`Open source ${n}`,children:i})}function XH({source:e}){const[t,n]=b.useState(!1);return!e.faviconUrl||t?f.jsx(ld,{className:"assistant-source-fallback-icon",size:13}):f.jsx("img",{alt:"","aria-hidden":"true",className:"assistant-source-favicon",decoding:"async",loading:"lazy",src:e.faviconUrl,onError:()=>n(!0)})}function QH(e){return e.sourceName?.trim()||jA(e.url)||e.title}function jA(e){try{return new URL(e).hostname.replace(/^www\./i,"")}catch{return null}}function eF({accountBaseUrl:e,billingOrganizationSlug:t,billingTeamId:n,onOpenBrowserLink:o}){const i=v9({accountBaseUrl:e,organizationSlug:t,teamId:n}),l=f.jsxs(f.Fragment,{children:[f.jsx(fx,{size:15}),f.jsx("span",{children:"Add credits"}),f.jsx(Hf,{size:13})]});return f.jsxs("div",{className:"assistant-message quota-error-card",role:"alert",children:[f.jsx("div",{className:"quota-error-card-icon",children:f.jsx(fx,{size:17})}),f.jsxs("div",{className:"quota-error-card-body",children:[f.jsx("strong",{children:"OpenPond Chat allowance reached"}),f.jsx("p",{children:"You have reached your OpChat token allowance for this period. Add credits or wait for the allowance to reset."}),o?f.jsx("button",{type:"button",className:"quota-error-card-action",onClick:()=>o(i,{newTab:!0}),children:l}):f.jsx("a",{className:"quota-error-card-action",href:i,target:"_blank",rel:"noreferrer",children:l})]})]})}function tF(e,t){if(e===t)return!0;if(!e||!t||e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1){const o=e[n],i=t[n];if(o.id!==i.id||o.kind!==i.kind||o.name!==i.name||o.mediaType!==i.mediaType||o.sizeBytes!==i.sizeBytes||o.imagePreview?.sessionId!==i.imagePreview?.sessionId||o.imagePreview?.turnId!==i.imagePreview?.turnId||o.imagePreview?.attachmentId!==i.imagePreview?.attachmentId||o.imagePreview?.storageName!==i.imagePreview?.storageName||o.imagePreview?.contentType!==i.imagePreview?.contentType)return!1}return!0}function nF({attachments:e,connection:t}){return f.jsx("div",{className:"user-message-attachments","aria-label":"Attached files",children:e.map(n=>f.jsx(aF,{attachment:n,connection:t},n.id))})}function aF({attachment:e,connection:t}){if(e.kind==="image"&&e.imagePreview)return f.jsx(oF,{attachment:e,connection:t});const n=e.kind==="image"?ym:hl;return f.jsxs("span",{className:"user-message-attachment",title:e.name,children:[f.jsx(n,{size:13}),f.jsx("span",{children:e.name}),f.jsx("small",{children:EA(e.sizeBytes)})]})}function oF({attachment:e,connection:t}){const n=p9(t,e.imagePreview);return f.jsxs("figure",{className:`user-message-image-attachment ${n?"ready":"loading"}`,title:e.name,children:[f.jsx("div",{className:"user-message-image-frame",children:n?f.jsx("img",{alt:e.name,decoding:"async",loading:"lazy",src:n}):f.jsx(ym,{size:24})}),f.jsxs("figcaption",{children:[f.jsx("span",{children:e.name}),f.jsx("small",{children:EA(e.sizeBytes)})]})]})}function EA(e){if(e<1024)return`${e} B`;const t=["KB","MB","GB"];let n=e/1024;for(const o of t){if(n<1024)return`${n.toFixed(n>=10?0:1)} ${o}`;n/=1024}return`${n.toFixed(0)} TB`}const MA=b.memo(function(){return f.jsx("article",{className:"activity-group thinking-row","aria-live":"polite",children:f.jsx("div",{className:"activity-summary thinking-summary",role:"status",children:f.jsx("span",{children:"Thinking..."})})})});function rF({activeWorkspaceAppId:e,connection:t,message:n,onOpenBrowserLink:o,onOpenFileInSidebar:i,workspaceRootPath:l}){const u=n.content?.trim()??"",[m,g]=b.useState(!1);return u?f.jsx("article",{className:"message-row assistant reasoning-row",children:f.jsxs("div",{className:`assistant-reasoning-message ${m?"expanded":"collapsed"}`,children:[f.jsxs("button",{type:"button",className:"assistant-reasoning-toggle","aria-expanded":m,onClick:()=>g(p=>!p),children:[m?f.jsx(Lb,{size:14}):f.jsx(Lo,{size:14}),f.jsx("span",{children:m?"Hide thinking":"Show thinking"})]}),m?f.jsx("div",{className:"assistant-reasoning-content",children:f.jsx(Rb,{activeWorkspaceAppId:e,connection:t,content:u,onOpenBrowserLink:o,onOpenFileInSidebar:i,workspaceRootPath:l})}):null]})}):null}function iF({message:e}){const t=e.statusTone??"info",n=e.statusState??"idle";return f.jsx("article",{className:`status-divider ${t} ${n}`,"aria-live":t==="danger"?"assertive":"polite",children:f.jsx("span",{children:e.content??""})})}const sF=/^(localhost|\[::1\]|127(?:\.\d{1,3}){3})(?::\d+)?(?:[/?#].*)?$/i,lF=/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)+(?:[:/?#].*)?$/i;function cF(e,t={}){const n=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(!n||/\s/.test(n))return null;const o=n.toLowerCase();return o.startsWith("javascript:")||o.startsWith("data:")?null:/^https?:\/\//i.test(n)?Nf(n,new Set(["http:","https:"])):/^file:\/\//i.test(n)?t.explicitFile?Nf(n,new Set(["file:"])):null:sF.test(n)?Nf(`http://${n}`,new Set(["http:"])):lF.test(n)?Nf(`https://${n}`,new Set(["https:"])):null}function Nf(e,t){try{const n=new URL(e);return t.has(n.protocol)?n.toString():null}catch{return null}}async function Hv(e){const t=cF(e.href,{explicitFile:e.explicitFile});if(!t)return!1;const n=window.openpond?.browser;return n?(e.newTab?await n.newTab({conversationId:e.conversationId,url:t,explicitFile:e.explicitFile}):await n.open({conversationId:e.conversationId,url:t,explicitFile:e.explicitFile}),!0):(window.open(t,"_blank","noopener,noreferrer"),!0)}function PA(e,t={}){const n=uF(e),o=e.map(i=>({id:`message:${i.id}`,type:"message",message:i,showFooter:i.id===n}));return t.showThinkingIndicator&&o.push({id:"thinking",type:"thinking"}),o}function uF(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.role==="assistant")return n.id}return null}function NA(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"){const n=t.activities?.[t.activities.length-1]??null;return n?.state!=="running"&&n?.state!=="pending"}return!0}function dF(e){const t=[];if(e.localWorkspaceId&&t.push({value:"local",label:"Local"}),(e.sandboxSourceAvailable??!!e.sandboxWorkspaceId)&&t.push({value:"sandbox",label:"Sandbox"}),t.length===0)return{source:null,options:t};const n=new Set(t.map(i=>i.value));if(e.override&&n.has(e.override))return{source:e.override,options:t};const o=e.workspaceTarget==="local"?"local":"sandbox";return n.has(o)?{source:o,options:t}:{source:t[0].value,options:t}}function xi(e){return e==="sandbox"||e==="sandbox_template"||e==="sandbox_app"}function OA(e={}){return{...e,workspaceTarget:"hybrid"}}function os(e){return e?.metadata?.workspaceTarget==="hybrid"}function fF(e){return!!(e&&e.provider==="openpond"&&e.workspaceKind==="local_project"&&e.cloudProjectId&&e.title.trim().endsWith(" Cloud"))}const mF=b.lazy(()=>Jn(()=>import("./TerminalOverlay-CZxcEnIU.js"),__vite__mapDeps([20,21]),import.meta.url).then(e=>({default:e.TerminalOverlay})));function pF({open:e,connection:t,scope:n,tabs:o,onTabsChange:i,cwd:l,appId:u,workspaceName:m,queuedCommand:g,onClose:p}){const[S,x]=b.useState(!1);return b.useEffect(()=>{e&&x(!0)},[e]),S?f.jsx(b.Suspense,{fallback:null,children:f.jsx(mF,{open:e,connection:t,scope:n,tabs:o,onTabsChange:i,cwd:l,appId:u,workspaceName:m,queuedCommand:g,onClose:p})}):null}function hF({panels:e,busy:t,codexPermissionMode:n,codexReasoningEffort:o,openPondCommandAccessMode:i,connection:l,connectedAppMentions:u,mentionApps:m,profileSkills:g,projectTarget:p,providerSettings:S,accountBaseUrl:x,billingOrganizationSlug:C,billingTeamId:w,showToast:E,workspaceTarget:j,onAddChat:U,onClosePanel:D,onCodexPermissionModeChange:B,onCodexReasoningEffortChange:K,onOpenPondCommandAccessModeChange:I,onModelChange:O,onOpenFileInSidebar:N,onOpenProfileSettings:z,onOpenSession:G,onProviderChange:ne,onProviderSetupOpen:ce,onPromptChange:Y,onProjectTargetChange:ue,onResolveApproval:Se,onResizeStart:me,onSelectFiles:qe,onShowBrowserPanel:$,onStop:be,onSubmit:ie,onWorkspaceTargetChange:fe}){const[te,R]=b.useState(!1),[L,Q]=b.useState(()=>e.at(-1)?.id??null),Ae=b.useRef(null),je=b.useRef(new Map),Le=b.useRef(new Set(e.map(Ke=>Ke.id))),de=e.find(Ke=>Ke.id===L)??e.at(-1)??null;b.useEffect(()=>{const Ke=Le.current;let Ue=null;for(const ot of e)Ke.has(ot.id)||(Ue=ot);Le.current=new Set(e.map(ot=>ot.id)),Q(ot=>Ue?Ue.id:ot&&e.some($e=>$e.id===ot)?ot:e.at(-1)?.id??null)},[e]),b.useEffect(()=>{if(!te)return;function Ke(ot){Ae.current?.contains(ot.target)||R(!1)}function Ue(ot){ot.key==="Escape"&&R(!1)}return document.addEventListener("pointerdown",Ke),document.addEventListener("keydown",Ue),()=>{document.removeEventListener("pointerdown",Ke),document.removeEventListener("keydown",Ue)}},[te]);const He=b.useCallback((Ke,Ue=!1)=>{Q(Ke),Ue&&window.requestAnimationFrame(()=>je.current.get(Ke)?.focus())},[]),xe=b.useCallback((Ke,Ue)=>{const ot=e.findIndex(q=>q.id===Ue);if(ot<0)return;let $e=null;if(Ke.key==="ArrowRight"&&($e=(ot+1)%e.length),Ke.key==="ArrowLeft"&&($e=(ot-1+e.length)%e.length),Ke.key==="Home"&&($e=0),Ke.key==="End"&&($e=e.length-1),$e===null)return;Ke.preventDefault();const Me=e[$e];Me&&He(Me.id,!0)},[e,He]);return f.jsxs("aside",{className:"workspace-diff-panel right-chat-panel-stack","aria-label":"Side chats",children:[f.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize side chat panel",onPointerDown:me}),f.jsx("div",{className:"workspace-diff-topbar right-chat-topbar",children:f.jsxs("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:[f.jsxs("button",{type:"button",className:"workspace-diff-tab",role:"tab","aria-selected":!1,onClick:qe,children:[f.jsx(Wu,{size:14}),f.jsx("span",{children:"Files"})]}),e.map(Ke=>{const Ue=Ke.id===de?.id;return f.jsxs("div",{className:`workspace-diff-tab right-chat-tab ${Ue?"active":""}`,children:[f.jsx("button",{type:"button",className:"workspace-diff-tab-main",role:"tab",id:`right-chat-tab-${Ke.id}`,"aria-controls":`right-chat-panel-${Ke.id}`,"aria-selected":Ue,tabIndex:Ue?0:-1,title:Ke.title,ref:ot=>{ot?je.current.set(Ke.id,ot):je.current.delete(Ke.id)},onClick:()=>He(Ke.id),onKeyDown:ot=>xe(ot,Ke.id),children:f.jsx("span",{children:Ke.title})}),f.jsx("button",{type:"button",className:"workspace-diff-tab-close",title:`Close ${Ke.title}`,"aria-label":`Close ${Ke.title}`,onClick:ot=>{ot.stopPropagation(),D(Ke.id)},children:f.jsx(rs,{size:12})})]},Ke.id)}),f.jsxs("div",{className:"workspace-diff-add-anchor",ref:Ae,children:[f.jsx("button",{type:"button",className:`workspace-diff-add-tab ${te?"active":""}`,title:"Add to right sidebar","aria-label":"Add to right sidebar","aria-haspopup":"menu","aria-expanded":te,onClick:()=>R(Ke=>!Ke),children:f.jsx(gl,{size:15})}),te?f.jsxs("div",{className:"workspace-diff-add-menu right-chat-add-popover",role:"menu",children:[f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{R(!1),U()},children:[f.jsx(Bb,{size:13}),f.jsx("span",{children:"New task"})]}),f.jsxs("button",{type:"button",role:"menuitem",onClick:()=>{R(!1),qe()},children:[f.jsx(Wu,{size:13}),f.jsx("span",{children:"Files"})]})]}):null]})]})}),f.jsx("div",{className:"right-chat-stack-body panes-1",children:de?f.jsx(gF,{busy:t,codexPermissionMode:n,codexReasoningEffort:o,openPondCommandAccessMode:i,connection:l,connectedAppMentions:u,mentionApps:m,profileSkills:g,panel:de,projectTarget:p,providerSettings:S,accountBaseUrl:x,billingOrganizationSlug:C,billingTeamId:w,showToast:E,workspaceTarget:j,onCodexPermissionModeChange:B,onCodexReasoningEffortChange:K,onOpenPondCommandAccessModeChange:Ke=>I(Ke,de.session),onModelChange:Ke=>O(de.id,Ke),onOpenFileInSidebar:N,onOpenProfileSettings:z,onOpenSession:G,onProviderChange:Ke=>ne(de.id,Ke),onProviderSetupOpen:ce,onPromptChange:Ke=>Y(de.id,Ke),onProjectTargetChange:ue,onResolveApproval:Se,onShowBrowserPanel:$,onStop:()=>be(de.sessionId),onSubmit:(Ke,Ue,ot,$e)=>ie(de.id,Ke,Ue,ot,$e),onWorkspaceTargetChange:fe},de.id):null})]})}function gF({panel:e,codexPermissionMode:t,codexReasoningEffort:n,openPondCommandAccessMode:o,connection:i,connectedAppMentions:l,mentionApps:u,profileSkills:m,projectTarget:g,providerSettings:p,accountBaseUrl:S,billingOrganizationSlug:x,billingTeamId:C,showToast:w,workspaceTarget:E,onCodexPermissionModeChange:j,onCodexReasoningEffortChange:U,onOpenPondCommandAccessModeChange:D,onModelChange:B,onOpenFileInSidebar:K,onOpenProfileSettings:I,onOpenSession:O,onProviderChange:N,onProviderSetupOpen:z,onPromptChange:G,onProjectTargetChange:ne,onResolveApproval:ce,onShowBrowserPanel:Y,onStop:ue,onSubmit:Se,onWorkspaceTargetChange:me}){const qe=b.useRef(null),$=b.useRef(!0),be=e.running&&!e.pendingApproval&&NA(e.messages),ie=b.useMemo(()=>PA(e.messages,{showThinkingIndicator:be}),[e.messages,be]),fe=e.messages.at(-1),te=[e.id,e.sessionId??"draft",ie.length,fe?.id??"",fe?.content?.length??0,fe?.timestamp??"",be?"thinking":""].join(":");b.useLayoutEffect(()=>{const L=qe.current;!L||!$.current||(L.scrollTop=L.scrollHeight)},[te]);const R=b.useCallback((L,Q)=>{const Ae=e.sessionId??`side-chat:${e.id}`;Hv({conversationId:Ae,href:L,explicitFile:Q?.explicitFile,newTab:Q?.newTab}).then(je=>{je&&Y()})},[Y,e.id,e.sessionId]);return f.jsxs("section",{className:`right-chat-pane ${e.pendingApproval?"has-approval":""}`,id:`right-chat-panel-${e.id}`,role:"tabpanel","aria-labelledby":`right-chat-tab-${e.id}`,children:[f.jsx("div",{className:"chat-thread right-chat-thread",ref:qe,onScroll:L=>{const Q=L.currentTarget;$.current=Q.scrollHeight-Q.scrollTop-Q.clientHeight<=72},children:ie.length>0?ie.map(L=>L.type==="thinking"?f.jsx(MA,{},L.id):f.jsx(TA,{activeWorkspaceAppId:e.activeWorkspaceAppId,accountBaseUrl:S,billingOrganizationSlug:x,billingTeamId:C,connection:i,message:L.message,onOpenBrowserLink:R,onOpenFileInSidebar:K,onOpenProfileSettings:I,onOpenSession:O,workspaceRootPath:e.workspaceRootPath,showFooter:L.showFooter},L.id)):null}),f.jsxs("div",{className:`composer-stack dock right-chat-composer ${e.pendingApproval?"has-approval":""}`,children:[f.jsx(vb,{approval:e.pendingApproval,onResolve:ce}),f.jsx(cA,{mode:"dock",prompt:e.prompt,mentionApps:u,connectedAppMentions:l,profileSkills:m,selectedMentionAppId:null,contextWindowStatus:e.contextWindowStatus,goalRuntime:e.goalRuntime,createImproveRuntime:null,busy:e.running,running:e.running,submissionScopeKey:e.sessionId??e.id,steerAutoDispatchBlocked:e.steerAutoDispatchBlocked,steerAutoDispatchReady:e.steerAutoDispatchReady,showProjectFooter:!1,connection:i,providerSettings:p,provider:e.session?.provider??e.provider,model:e.session?.modelRef?.modelId??e.model,projectTarget:g,actionCatalog:[],workspaceTarget:E,codexPermissionMode:t,codexReasoningEffort:n,openPondCommandAccessMode:e.session?.provider==="codex"?o:e.session?.openPondCommandAccessMode??o,onProviderChange:N,onProviderSetupOpen:z,onProjectTargetChange:ne,onWorkspaceTargetChange:me,onModelChange:B,onCodexPermissionModeChange:j,onCodexReasoningEffortChange:U,onOpenPondCommandAccessModeChange:D,onPromptChange:G,onMentionAppSelect:void 0,showToast:w,onSubmit:Se,onStop:ue})]})]})}function bF({expanded:e,terminalOpen:t,sideChatAvailable:n,onOpenBrowser:o,onOpenFiles:i,onOpenReview:l,onOpenSideChat:u,onOpenTrainingDraft:m,trainingDraftAvailable:g,onResizeStart:p,onToggleExpanded:S,onToggleTerminal:x}){const C=[{id:"review",label:"Review",meta:"Diffs",icon:Vj,onSelect:l},{id:"files",label:"Files",meta:"Workspace",icon:Wu,onSelect:i},{id:"browser",label:"Browser",meta:"Preview",icon:ld,onSelect:o},{id:"side-chat",label:"Side chat",meta:"Context",icon:Bb,onSelect:u,disabled:!n},{id:"training-draft",label:"Task draft",meta:"Training",icon:Uw,onSelect:m,disabled:!g},{id:"terminal",label:t?"Hide terminal":"Terminal",meta:"Shell",icon:dd,onSelect:x}];return f.jsxs("aside",{className:`workspace-diff-panel right-sidebar-home-panel ${e?"expanded":""}`,"aria-label":"Right sidebar",children:[e?null:f.jsx("div",{className:"workspace-diff-resize-handle",role:"separator","aria-orientation":"vertical","aria-label":"Resize right sidebar",onPointerDown:p}),f.jsxs("div",{className:"workspace-diff-topbar right-sidebar-home-topbar",children:[f.jsx("div",{className:"workspace-diff-tabs",role:"tablist","aria-label":"Right sidebar views",children:f.jsxs("button",{type:"button",className:"workspace-diff-tab active",role:"tab","aria-selected":!0,children:[f.jsx(Jf,{size:14}),f.jsx("span",{children:"Workspace"})]})}),f.jsx("div",{className:"workspace-diff-toolbar-actions",children:f.jsx("button",{type:"button",className:"diff-icon-button",title:e?"Dock sidebar":"Expand sidebar","aria-label":e?"Dock sidebar":"Expand sidebar",onClick:S,children:e?f.jsx(RE,{size:14}):f.jsx(Fw,{size:14})})})]}),f.jsx("div",{className:"right-sidebar-home-body",children:f.jsx("div",{className:"right-sidebar-home-actions",role:"menu","aria-label":"Workspace actions",children:C.map(w=>f.jsxs("button",{type:"button",className:"right-sidebar-home-row",role:"menuitem",disabled:w.disabled,onClick:w.onSelect,children:[f.jsx(w.icon,{size:15}),f.jsx("span",{children:w.label}),w.meta?f.jsx("span",{className:"right-sidebar-home-chip",children:w.meta}):null]},w.id))})})]})}function wY(e,t){return e==="automatic_scope"&&t?.status==="succeeded"}function _Y(e,t){return e.defaultModelRef??t}function vF(e,t){if(!e||!t)return null;const n=new Set(e.sources.filter(o=>o.sessionId===t).map(o=>o.id));return n.size?e.creations.find(o=>o.request.sourceIds.some(i=>n.has(i)))??null:null}function yF(e){const[t,n]=b.useState(null),[o,i]=b.useState(null),[l,u]=b.useState(!1),[m,g]=b.useState(null),[p,S]=b.useState(null),x=b.useRef(null),C=b.useRef(0),w=b.useCallback(async(D,B={})=>{if(!e){i(null),g("OpenPond App server is not connected.");return}const K=C.current+1;C.current=K,B.silent||u(!0),g(null);try{const I=await ge.getCreateImproveCandidateDiff(e,D.runId,D.candidateId),O=x.current;if(K!==C.current||O?.runId!==D.runId||O.candidateId!==D.candidateId)return;i(I)}catch(I){if(K!==C.current)return;g(I instanceof Error?I.message:String(I))}finally{K===C.current&&!B.silent&&u(!1)}},[e]),E=b.useCallback(D=>{const B=x.current;if(!(D&&B?.runId===D.runId&&B.candidateId===D.candidateId)){if(x.current=D,n(D),S(null),!D){C.current+=1,i(null),g(null),u(!1);return}i(K=>K?.appId===SF(D)?K:null),w(D)}},[w]),j=b.useCallback(async(D={})=>{const B=x.current;B&&await w(B,D)},[w]),U=b.useCallback(D=>{S({id:Date.now(),path:D})},[]);return b.useEffect(()=>{e||E(null)},[E,e]),{selection:t,diff:o,loading:l,error:m,openFileRequest:p,activate:E,refresh:j,openFile:U}}function SF(e){return`candidate:${e.runId}:${e.candidateId}`}const xF=72,Eg=120,zA=24,CF=280,wF=460;function zu(e){return e.scrollHeight-e.scrollTop-e.clientHeight<=xF}function _F(e){if(!e||typeof e!="object")return null;const t=e.systemSessionId;return typeof t=="string"&&t.trim()?t:null}const Of={canGoPrevious:!1,canGoNext:!1};function $A(e){return Array.from(e.querySelectorAll(".message-row.user")).filter(t=>t.parentElement===e)}function kF({activeWorkspaceId:e,cloudProjects:t,selectedCloudWorkItem:n}){const o=t.find(u=>u.id===e||u.id===n?.projectId||u.teamId===n?.teamId),i=t.find(u=>u.organizationSlug||u.teamId),l=o??i??null;return{organizationSlug:l?.organizationSlug??null,teamId:l?.teamId??n?.teamId??null}}function Vm(e,t){return t.getBoundingClientRect().top-e.getBoundingClientRect().top+e.scrollTop}function DA(e,t){return Vm(e,t)+t.getBoundingClientRect().height}function UA(e){return e.scrollTop+zA}function LA(e){return e.scrollTop+8}function zf(e){const t=UA(e),n=LA(e);let o=!1,i=!1;for(const l of $A(e)){const u=Vm(e,l);if(DA(e,l)<n&&(o=!0),u>t+8&&(i=!0),o&&i)break}return{canGoPrevious:o,canGoNext:i}}function IF(e,t){const n=$A(e),o=UA(e);if(t==="previous"){const i=LA(e);for(let l=n.length-1;l>=0;l-=1){const u=n[l];if(DA(e,u)<i)return u}return null}for(const i of n)if(Vm(e,i)>o+8)return i;return null}function AF(e){return Math.min(wF,Math.max(CF,Math.abs(e)/5))}function RF(e){return e<.5?4*e*e*e:1-Math.pow(-2*e+2,3)/2}function TF(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(!(!n.createImproveRun||n.createImproveRun.state==="cancelled"))return{run:n.createImproveRun}}return null}function jF(e){return e.startsWith("cloud:")&&e.slice(6)||null}function $C(e){return e.command==="create"?`/create ${e.args}`:e.command==="edit"?`/edit ${e.args}`:e.command==="skill"?e.args?`/skill ${e.args}`:"/skill":e.command==="sync-cloud"?e.args?`/sync-cloud ${e.args}`:"/sync-cloud":e.command==="goal-local"?`Goal: ${e.args}`:`Goal: ${e.args}`}function DC(e,t){return{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:t}}function EF(e){return e.command==="goal"||e.command==="goal-local"||e.command==="skill"||e.command==="sync-cloud"}function MF(e){return e.command.command!=="create"&&e.command.command!=="edit"||e.profile?.mode!=="local"||e.view==="cloud"?!1:!xi(e.activeWorkspaceKind)}function PF(e,t){if(!e)return null;const n=t?.workItem.id===e.id;return(n?t.workItem.latestSandboxId:null)??e.latestSandboxId??(n?t.runtimeSessions.find(o=>o.sandboxId&&!o.endedAt)?.sandboxId??t.runtimeSessions.find(o=>o.sandboxId)?.sandboxId??null:null)}function NF(e){const t=e?.trim()??"";return/^[a-z0-9]{24}$/.test(t)?t:null}const OF=b.lazy(()=>Jn(()=>import("./WorkspaceDiffPanel-OXh-RfsO.js"),__vite__mapDeps([22,6,23,17,9]),import.meta.url).then(e=>({default:e.WorkspaceDiffPanel}))),zF=b.lazy(()=>Jn(()=>import("./AppsView-02DhR5FR.js"),__vite__mapDeps([24,25]),import.meta.url).then(e=>({default:e.AppsView}))),$F=b.lazy(()=>Jn(()=>import("./GetStartedView-CImKDSgl.js"),__vite__mapDeps([26,5,27]),import.meta.url).then(e=>({default:e.GetStartedView}))),DF=b.lazy(()=>Jn(()=>import("./LabsRoute-CjsnD_ow.js"),__vite__mapDeps([28,3,4,5,6,7,8,16,23,19,29,30]),import.meta.url).then(e=>({default:e.LabsRoute}))),UF=b.lazy(()=>Jn(()=>import("./BrowserSidebar-BbB1x4NN.js"),__vite__mapDeps([31,6,32]),import.meta.url).then(e=>({default:e.BrowserSidebar}))),LF=b.lazy(()=>Jn(()=>import("./CloudWorkView-CrNjUam-.js"),__vite__mapDeps([33,5,34,35]),import.meta.url).then(e=>({default:e.CloudWorkView}))),qF=b.lazy(()=>Jn(()=>import("./TeamChatView-Bn5s_CEO.js"),__vite__mapDeps([36,6,37,12,38,8]),import.meta.url).then(e=>({default:e.TeamChatView}))),BF=b.lazy(()=>Jn(()=>import("./CommunityView-ClBQWVMx.js"),__vite__mapDeps([39,10,6,37,40]),import.meta.url).then(e=>({default:e.CommunityView}))),HF=b.lazy(()=>Jn(()=>import("./TeamChatView-Bn5s_CEO.js"),__vite__mapDeps([36,6,37,12,38,8]),import.meta.url).then(e=>({default:e.TeamAiThreadPanel}))),FF=b.lazy(()=>Jn(()=>import("./TeamChatView-Bn5s_CEO.js"),__vite__mapDeps([36,6,37,12,38,8]),import.meta.url).then(e=>({default:e.TeamAgentConversationPanel}))),KF=b.lazy(()=>Jn(()=>import("./TrainingDraftPanel-C1LwcFJe.js"),__vite__mapDeps([41,30]),import.meta.url).then(e=>({default:e.TrainingDraftPanel}))),VF=b.lazy(()=>Jn(()=>import("./TrainingCreationPanel-CDHWKB0z.js"),__vite__mapDeps([42,30]),import.meta.url).then(e=>({default:e.TrainingCreationPanel}))),GF=b.lazy(()=>Jn(()=>import("./TrainingCreationPanel-CDHWKB0z.js"),__vite__mapDeps([42,30]),import.meta.url).then(e=>({default:e.TrainingStatusReceipt})));function ZF({view:e,teamChat:t,community:n,bootstrap:o,runtimeEvents:i,chatMessages:l,contextWindowStatus:u,goalRuntime:m,subagentRuntime:g,selectedSessionId:p,composerDraftStore:S,mainComposerFocusRequestId:x,labCloseDetailRequestId:C,labCloseDetailKind:w,labSuggestionsRequestId:E,steerAutoDispatchBlocked:j,steerAutoDispatchReady:U,mentionApps:D,connectedAppMentions:B,profileSkills:K,selectedMentionAppId:I,busy:O,turnRunning:N,activeProvider:z,activeModel:G,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,subagentDelegationDefaultMode:ue,subagentDelegationMode:Se,subagentDelegationAvailable:me,pendingApproval:qe,activeWorkspaceAppId:$,activeWorkspaceId:be,activeWorkspaceKind:ie,projectTarget:fe,actionCatalog:te,workspaceTarget:R,connection:L,workspaceName:Q,workspaceState:Ae,workspaceDiff:je,workspaceBusy:Le,diffBusy:de,forceChatThread:He=!1,diffPanelOpen:xe,diffPanelExpanded:Ke,rightPanelMode:Ue,rightPanelTabRequest:ot,rightChatPanels:$e,workspaceDiffPanelViewState:Me,browserConversationId:q,terminalScope:ae,terminalTabs:H,terminalCwd:se,pendingTerminalCommand:we,terminalOpen:ze,onToggleTerminal:Ye,onWorkspaceDiffPanelViewStateChange:Ct,insightsItems:yt,insightsRuns:Et,insightsNextScanAt:gt,insightsScanRunning:Be,insightsScanStartedAt:it,insightsScanning:y,insightsError:Z,training:le,trainingSessions:Pe,trainingChatHandoff:V,trainingDetailTasksetId:he,onTrainingDetailTasksetIdChange:A,onTrainingChatTaskSelect:W,onTrainingChatHandoffDismiss:Ce,onRunInsightsScan:ye,onAskInsightsQuestion:Te,onPatchInsightStatus:De,onOpenInsightsSession:Ne,cloudProjects:nt,cloudWorkItems:Qe,selectedCloudWorkItem:Xe,cloudWorkItemDetail:at,cloudWorkItemLocalProjectName:vt,cloudLoading:ct,cloudBusy:pn,cloudError:hn,chatHistoryHasMore:Dt=!1,chatHistoryLoading:Sn=!1,onDiffPanelResizeStart:Xt,canSyncWorkspace:Ft,startMessage:za,onPayload:Nt,onError:vn,setView:xn,onOpenProfileSettings:sa,onOpenProviderSettings:Qn,changeDraftProvider:Lt,changeProjectTarget:en,changeWorkspaceTarget:kt,setDraftProvider:On,setDraftModel:_a,onBeginNewChatWithModel:la,changeCodexPermissionMode:kn,changeCodexReasoningEffort:un,changeOpenPondCommandAccessMode:ea,changeSubagentDelegationMode:Ln,resolveApproval:ba,answerCreateImproveQuestion:ka,approveCreateImproveRun:ca,applyCreateImproveCandidate:tn,cancelCreateImproveRun:Rt,openCreateImprovePullRequest:Kt,pauseCreateImproveRun:Ot,reconcileCreateImprovePullRequest:Mt,rejectCreateImproveCandidate:oe,resumeCreateImproveRun:pt,reviseCreateImproveRun:dt,setMentionedAppId:st,showToast:St,sendPrompt:Tt,stopTurn:En,syncWorkspaceLocally:Fn,refreshWorkspaceDiff:bo,onToggleDiffPanelExpanded:wt,onShowDiffPanel:It,onShowBrowserPanel:Ia,onShowTrainingDraftPanel:$a,onShowFilesPanel:qo,onShowRightChatPanel:gn,onAddRightChat:ro,onOpenRightChatForSession:vo,onOpenLabSuggestions:Da,onLabDetailOpenChange:Kn,onTerminalTabsChange:Bo,onCloseRightChatPanel:nr,onRightChatModelChange:Ho,onRightChatPromptChange:pr,onRightChatProviderChange:To,onSubmitRightChat:hr,onStopRightChat:ar,onCloseTerminal:gr,onOpenCloudHome:Fo,onSetupCloudProject:Ko,onCreateCloudWork:Cn,onSelectCloudWorkItem:io,onSendCloudWorkItemMessage:jo,onHandleCloudWorkItemBackground:Xn,onCancelCloudWorkItemCreatePipeline:Va,onCancelCloudWorkItemTask:Aa,onApplyCloudWorkItemPatchLocally:Vo,onLoadMoreChatHistory:nn}){const Mn=b.useRef(null),Vn=b.useRef(null),an=b.useRef(!0),yo=b.useRef(null),Tn=b.useRef(null),wn=b.useRef(!1),ua=b.useRef(!1),Ga=b.useRef(!1),ta=b.useRef(null),Za=b.useRef(null),[ni,zn]=b.useState(0),[Ua,La]=b.useState(null),[qa,so]=b.useState(!1),[So,br]=b.useState(132),[lo,Eo]=b.useState(Of),[or,Pr]=b.useState(null),[Go,Nr]=b.useState(null),[xo,vr]=b.useState(null),[Or,yr]=b.useState(null),[zr,$r]=b.useState(null),[Sr,_i]=b.useState(null),[xr,Dr]=b.useState(!1),rn=yF(L),Co=b.useCallback(_e=>{if(!_e){rn.activate(null);return}rn.activate({runId:_e.run.id,candidateId:_e.candidate.id,title:_e.run.objective,fileRootPath:_e.fileRootPath,initialPath:_e.initialPath})},[rn.activate]),ki=b.useCallback(()=>{rn.selection?.initialPath&&rn.openFile(rn.selection.initialPath),It()},[rn.openFile,rn.selection?.initialPath,It]),Mo=b.useMemo(()=>jr(o?.preferences),[o?.preferences]),Ii=Mo.training,rr=b.useCallback(async _e=>{if(!L||!o)throw new Error("OpenPond is still connecting.");const et=o.profile;if(et.mode!=="local"||!et.repoPath)throw new Error("A local Git-backed Profile is required to change an Agent.");const Gt=pi(z,G,o.providers);if(!Gt)throw new Error("Choose a model before changing an Agent.");const Qt=Jn(()=>import("./create-pipeline-request-CoUS3TxW.js"),[],import.meta.url),dn=await ge.createSession(L,{provider:Gt.providerId,modelRef:Gt,systemKind:"openpond.lab",hiddenFromDefaultSidebar:!0,title:`${_e.operation==="create"?"New":"Improve"} Agent · ${_e.objective.slice(0,80)}`,cwd:et.repoPath,metadata:{source:_e.operation==="create"?"lab_agent_create":"lab_agent_improve",profileId:et.activeProfile??"default",targetAgentId:_e.agentId??null}}),Gn=_e.authoringRunId?await ge.getCreateImproveRun(L,_e.authoringRunId):null,{buildLabAgentCreateImproveRun:qt,buildLabAgentImproveRun:Xa,continueLabAgentRunFromTaskset:Bt}=await Qt,na=Gn?Bt({authoringRun:Gn,agentId:_e.agentId,agentName:_e.agentName,objective:_e.objective,payload:o,session:dn,operation:_e.operation}):_e.operation==="create"?qt({objective:_e.objective,payload:o,session:dn}):Xa({agentId:_e.agentId??"",agentName:_e.agentName,objective:_e.objective,payload:o,session:dn});if(!na)throw new Error(_e.operation==="create"?"Describe what the Agent should do.":"Describe what the Agent could do better.");const ja=await ge.sendTurn(L,dn.id,{prompt:_e.objective,model:Gt.modelId,modelRef:Gt,createImproveRun:na,approvalPolicy:"never",sandbox:"workspace-write",codexPermissionMode:Gt.providerId==="codex"?ne:"default",codexReasoningEffort:ce});if(ja.status==="failed")throw new Error(ja.error??"OpenPond could not start the Agent improvement.");const da=ja.createImproveRun??await ge.getCreateImproveRun(L,na.id);if(!da)throw new Error("The Agent plan was not created.");return Nt(await ge.bootstrap(L)),da},[G,z,o,ne,ce,L,Nt]),Po=b.useCallback((_e,et)=>rr({objective:_e,operation:"create",authoringRunId:et}),[rr]),ai=b.useCallback((_e,et,Gt,Qt)=>rr({agentId:_e,agentName:Gt,objective:et,operation:"improve",authoringRunId:Qt}),[rr]),Ai=b.useCallback(async _e=>{if(!(!L||!o||xr)){Dr(!0),vn(null);try{const et=await ge.savePreferences(L,{insightsEnabled:_e});Nt({...o,preferences:et.preferences}),St(_e?"Observation scanning enabled":"Observation scanning disabled","success")}catch(et){vn(et instanceof Error?et.message:String(et))}finally{Dr(!1)}}},[o,L,xr,vn,Nt,St]),re=b.useMemo(()=>{const _e=le.payload?.tasksets??[];return _e.some(et=>et.id===Or)?Or:_e[0]?.id??null},[Or,le.payload?.tasksets]),Je=e==="labs"&&re?`profiles/${o?.profile.activeProfile??"default"}/tasksets/${re}`:null,tt=b.useMemo(()=>{if(e!=="labs"||!re||!le.payload)return null;const _e=le.payload.tasksets.find(Bt=>Bt.id===re);if(!_e)return null;const et=le.payload.plans.filter(Bt=>Bt.tasksetId===_e.id),Gt=new Set(et.map(Bt=>Bt.id)),Qt=le.payload.jobs.filter(Bt=>Gt.has(Bt.planId)).sort((Bt,na)=>na.createdAt.localeCompare(Bt.createdAt)),dn=Qt.find(Bt=>Bt.id===zr)??Qt[0]??null,Gn=dn?et.find(Bt=>Bt.id===dn.planId)??null:et.sort((Bt,na)=>na.createdAt.localeCompare(Bt.createdAt))[0]??null,qt=dn?le.payload.models.find(Bt=>Bt.jobId===dn.id)??null:null,Xa=dn?le.payload.artifacts.filter(Bt=>Bt.jobId===dn.id):[];return{taskset:_e,plan:Gn,job:dn,lineage:qt,artifacts:Xa}},[re,zr,le.payload,e]),$t=b.useMemo(()=>vF(le.payload,p),[p,le.payload]),rt=b.useMemo(()=>PF(Xe,at),[at,Xe]),bn=b.useMemo(()=>TF(l),[l]),Pn=!!m||!!bn||!!g,on=e==="labs"&&!!rn.selection,co=e==="cloud"&&xe&&(Ue==="changes"||Ue==="goal"&&Pn)&&!!Xe,uo=(e==="chat"||e==="labs")&&!!$,wo=e==="chat"&&xe&&Ue==="chat"&&$e.length===0,Wa=xi(ie)?be??NF(Q):null,Ur=e==="chat"&&!!Wa,Zo=co?rt:Wa,ir=!!Zo||co||R.value==="cloud"||R.value==="hybrid",oi=b.useMemo(()=>dF({workspaceTarget:co?"cloud":R.value,localWorkspaceId:co?null:$,sandboxSourceAvailable:ir,sandboxWorkspaceId:Zo,override:Go}),[$,ir,Zo,Go,co,R.value]),ri=oi.source,_o=ri==="sandbox",Ri=b.useMemo(()=>ri&&oi.options.length>1?{value:ri,options:oi.options,onChange:Nr}:null,[ri,oi.options]);b.useEffect(()=>{Nr(null)},[$,q,Zo,co,R.value]);const Ut=(on||uo||co||Ur)&&xe&&(Ue==="changes"||Ue==="goal"&&Pn||wo),Vt=(e==="chat"||e==="cloud")&&xe&&Ue==="browser",ko=(e==="chat"||e==="labs")&&xe&&Ue==="chat"&&$e.length>0,Ba=e==="chat"&&xe&&Ue==="training",Ra=e==="team"&&xe&&Ue==="chat"&&!!t.aiThread,Ya=e==="team"&&xe&&Ue==="chat"&&!!t.agentConversation,is=WF({supportedView:e==="chat"||e==="cloud"||e==="labs",open:xe,hasContentPanel:Ut||Vt||ko||Ba||Ra||Ya}),Lr=Ut||Vt||ko||Ba||Ra||Ya||is,Ti=Lr&&Ue!=="chat"&&Ke,ss=o?.account.baseUrl??o?.account.activeProfile?.baseUrl??null,ji=kF({activeWorkspaceId:be,cloudProjects:nt,selectedCloudWorkItem:Xe}),Ei=e==="chat"&&N&&!qe&&NA(l),qr=He||l.length>0||Ei,Us=p??`draft:${e}:${ie??"none"}:${be??$??"none"}`,Ls=V?.model.providerId===z&&V.model.modelId===G?f.jsx(d9,{busy:N,handoff:V,onDismiss:Ce,onSelectTask:W,servingSession:(le.payload?.servingSessions??[]).filter(_e=>_e.modelArtifactLineageId===V.model.modelId).sort((_e,et)=>et.updatedAt.localeCompare(_e.updatedAt))[0]??null,onStopServing:_e=>{le.actions.stopModelServing(_e)}}):null,ls=b.useMemo(()=>bn?{...bn,onAnswerQuestion:ka,onApprove:ca,onApplyCandidate:tn,onCancel:Rt,onOpenPullRequest:Kt,onPause:Ot,onReconcilePullRequest:Mt,onRejectCandidate:oe,onResume:pt,onRevise:dt}:null,[ka,ca,tn,Rt,bn,Kt,Ot,Mt,oe,pt,dt]),qs=e==="team"?"team-active":e==="community"?"community-active":e==="apps"||e==="get-started"||e==="labs"?"page-active":e==="cloud"?"cloud-active":qr?"chat-active":"chat-start",Ta=Xe?.projectId??jF(fe.value)??(nt.length===1?nt[0]?.id??null:null),ii=b.useCallback(async(_e=[],et=null,Gt=null,Qt={})=>{const dn=Qt.promptOverride??S.getSnapshot(),Gn=()=>{Qt.preservePrompt||(S.set(""),st(null))};if(!et){const qt=Gt?{command:Gt.id,args:dn.trim()}:Hm(dn);if(qt){if(qt.command==="insights"){if(_e.length>0)return St("/insights does not accept attachments.","error"),!1;if(Gn(),qt.args.trim()){const na=await Te(qt.args.trim()),ja=_F(na);return ja?Ne(ja):Da(),!0}Da();const Bt=await ye({trigger:"slash_command"});if(Bt&&typeof Bt=="object"&&"summary"in Bt){const na=Bt.summary,ja=na.activeCount??0,da=na.highestActiveSeverity?` Highest severity: ${na.highestActiveSeverity}.`:"";St(`${ja} active insight${ja===1?"":"s"}.${da}`,"info")}return!0}if(qt.command==="train")return _e.length>0?(St("/train uses the selected chat; add other chats from Lab.","error"),!1):p?(Gn(),vr({id:Date.now(),objective:qt.args.trim()||null,initialSessionIds:[p]}),xn("labs"),!0):(Gn(),vr({id:Date.now(),objective:qt.args.trim()||null,initialSessionIds:[]}),xn("labs"),!0);if(!qt.args&&qt.command!=="skill"&&qt.command!=="sync-cloud")return St(`Add instructions after /${qt.command}.`,"info"),!1;if(_e.length>0)return St(`/${qt.command} tasks do not accept attachments yet. Add file context in the task thread.`,"error"),!1;if(qt.command==="submit-issue")return QI(B)?Tt([],null,eA(qt.args),{clearPrompt:Qt.preservePrompt?()=>{}:void 0,usageAttribution:DC(qt,Gt?"composer_selection":"prompt_parse")}):(St("Connect the GitHub app before using /submit-issue.","error"),!1);if(EF(qt)||MF({command:qt,profile:o?.profile,activeWorkspaceKind:ie,view:e}))return Tt([],null,$C(qt),{clearPrompt:Qt.preservePrompt?()=>{}:void 0,usageAttribution:DC(qt,Gt?"composer_selection":"prompt_parse")});if(!Ta)return St(`Select a Cloud Project before using /${qt.command}.`,"error"),!1;const Xa=await Cn({projectId:Ta,prompt:$C(qt)});return Xa&&Gn(),Xa}}return Tt(_e,et,Qt.promptOverride,{clearPrompt:Qt.preservePrompt?()=>{}:void 0,displayPrompt:Qt.displayPrompt})},[G,z,ie,o?.profile,B,Te,Da,Ne,Cn,ye,S,Tt,p,st,xn,St,Ta,le,e]),Bi=b.useCallback(_e=>{V&&_e!==V.model.modelId&&Ce(),On(z),_a(_e)},[z,Ce,_a,On,V]),cs=b.useCallback(_e=>{V&&_e!==V.model.providerId&&Ce(),Lt(_e)},[Lt,Ce,V]),Mi=b.useMemo(()=>PA(l,{showThinkingIndicator:Ei}),[l,Ei]),Bs=b.useMemo(()=>({"--chat-composer-reserve":`${So}px`}),[So]),Pi=l.at(-1),xl=[Mi.length,Pi?.id??"",Pi?.content?.length??0,Pi?.timestamp??"",Ei?"thinking":""].join(":"),No=Dt,fo=q,si=e==="chat"&&qr&&!!fo&&Ua!==fo,va=b.useCallback(_e=>{so(et=>et===_e?et:_e)},[]),Ha=b.useCallback(_e=>{Eo(et=>et.canGoPrevious===_e.canGoPrevious&&et.canGoNext===_e.canGoNext?et:_e)},[]),Ja=b.useCallback((_e,et={})=>{const Gt=et.nearBottom??zu(_e);va(!Gt),Ha(zf(_e))},[va,Ha]),Oo=b.useCallback(_e=>{const et=ua.current;ua.current=!1,La(_e),va(!1),Ha(Of),et&&zn(Gt=>Gt+1)},[va,Ha]),sr=b.useCallback(()=>{Za.current===null||typeof window>"u"||(window.cancelAnimationFrame(Za.current),Za.current=null)},[]),Br=b.useCallback((_e,et,Gt)=>{sr();const Qt=Math.max(0,_e.scrollHeight-_e.clientHeight),dn=()=>{const lr=typeof et=="function"?et():et;return Math.max(0,Math.min(lr,Math.max(0,_e.scrollHeight-_e.clientHeight)))},Gn=Math.max(0,Math.min(dn(),Qt)),qt=_e.scrollTop,Xa=Gn-qt;if(typeof window>"u"||window.matchMedia?.("(prefers-reduced-motion: reduce)").matches===!0||Math.abs(Xa)<1){_e.scrollTop=Gn,Gt?.();return}const na=AF(Xa),ja=window.performance.now(),da=lr=>{if(Mn.current!==_e){Za.current=null;return}const Fr=Math.min(1,(lr-ja)/na),Zi=dn();if(_e.scrollTop=qt+(Zi-qt)*RF(Fr),Fr<1){Za.current=window.requestAnimationFrame(da);return}_e.scrollTop=dn(),Za.current=null,Gt?.()};Za.current=window.requestAnimationFrame(da)},[sr]),ya=b.useCallback(()=>{Ga.current=!1,!(ta.current===null||typeof window>"u")&&(window.cancelAnimationFrame(ta.current),ta.current=null)},[]),li=b.useCallback((_e,et={})=>{if(_e.scrollTop=_e.scrollHeight,typeof window>"u"){et.finishInitial&&Oo(et.conversationKey??null);return}ya(),Ga.current=!0;let Qt=0,dn=0,Gn=_e.scrollHeight;const qt=et.settle?12:2,Xa=()=>{const Bt=Mn.current;if(!Bt){ta.current=null,Ga.current=!1,et.finishInitial&&Oo(et.conversationKey??null);return}Bt.scrollTop=Bt.scrollHeight;const na=Bt.scrollHeight-Bt.scrollTop-Bt.clientHeight,ja=Math.abs(Bt.scrollHeight-Gn)<=1;if(Gn=Bt.scrollHeight,dn=na<=1&&ja?dn+1:0,Qt+=1,Qt<qt&&dn<2){ta.current=window.requestAnimationFrame(Xa);return}ta.current=null,Ga.current=!1,an.current=!0,va(!1),Ha(zf(Bt)),et.finishInitial&&Oo(et.conversationKey??null)};ta.current=window.requestAnimationFrame(Xa)},[ya,Oo,va,Ha]),Hi=b.useCallback(()=>{const _e=Mn.current;_e&&(ya(),an.current=!0,va(!1),Br(_e,()=>_e.scrollHeight-_e.clientHeight,()=>{Mn.current===_e&&(_e.scrollTop=_e.scrollHeight,an.current=!0,va(!1),Ha(zf(_e)))}))},[ya,va,Ha,Br]),us=b.useCallback(_e=>{const et=Mn.current;if(!et)return;const Gt=IF(et,_e);if(!Gt)return;ya(),Br(et,()=>Gt.isConnected?Math.max(0,Vm(et,Gt)-zA):et.scrollTop,()=>{if(Mn.current!==et)return;const dn=zu(et);an.current=dn,Ja(et,{nearBottom:dn})})},[ya,Br,Ja]),Hs=b.useCallback(()=>{const _e=Mn.current;_e&&(Tn.current={scrollHeight:_e.scrollHeight,scrollTop:_e.scrollTop},an.current=!1)},[]),Ni=b.useCallback(async()=>{if(No&&!(!nn||Sn||wn.current)){Hs(),wn.current=!0;try{await nn()}finally{wn.current=!1}}},[No,Sn,nn,Hs]),Cl=b.useCallback(_e=>{if(Ga.current){an.current=!0,va(!1),Ha(Of);return}const et=zu(_e);an.current=et,Ja(_e,{nearBottom:et}),!ua.current&&_e.scrollTop<=Eg&&No&&!Sn&&Ni()},[No,Sn,Ni,va,Ha,Ja]),ds=b.useCallback((_e,et)=>{Hv({conversationId:q,href:_e,explicitFile:et?.explicitFile,newTab:et?.newTab}).then(Gt=>{Gt&&Ia()})},[q,Ia]),Fi=R.value==="local"?Ae?.repoPath??R.detail:Ae?.repoPath??null,Oi=b.useCallback(_e=>{const et=Gc(_e,{workspaceRootPath:Fi});It(),Pr({id:Date.now(),path:et?.path??_e})},[It,Fi]);b.useLayoutEffect(()=>{if(e!=="chat"||!qr||typeof window>"u")return;const _e=Vn.current;if(!_e)return;let et=null;const Gt=()=>{et=null;const Gn=Math.max(96,Math.ceil(_e.getBoundingClientRect().height+20));br(qt=>qt===Gn?qt:Gn)},Qt=()=>{et===null&&(et=window.requestAnimationFrame(Gt))};Qt();const dn=typeof window.ResizeObserver>"u"?null:new window.ResizeObserver(Qt);return dn?.observe(_e),window.addEventListener("resize",Qt),()=>{et!==null&&window.cancelAnimationFrame(et),dn?.disconnect(),window.removeEventListener("resize",Qt)}},[qr,e]),b.useLayoutEffect(()=>{const _e=Mn.current;e!=="chat"||!qr||!_e||ua.current||!an.current&&!zu(_e)||(an.current=!0,li(_e,{settle:!0}))},[So,li,qr,e]),b.useLayoutEffect(()=>{Tn.current=null,wn.current=!1,ua.current=!0,an.current=!0,sr(),ya(),La(null),va(!1),Ha(Of)},[ya,sr,fo,va,Ha]),b.useEffect(()=>{const _e=Mn.current;e!=="chat"||!_e||ua.current||!No||Sn||_e.scrollTop<=Eg&&_e.scrollHeight<=_e.clientHeight+Eg&&Ni()},[No,Sn,ni,Mi.length,Ni,e]),b.useLayoutEffect(()=>{const _e=Tn.current,et=Mn.current;!_e||!et||ua.current||(Tn.current=null,et.scrollTop=_e.scrollTop+Math.max(0,et.scrollHeight-_e.scrollHeight),Ja(et))},[Mi.length,Ja]),b.useLayoutEffect(()=>{const _e=Mn.current;if(e!=="chat"||!fo||!_e){yo.current=fo,an.current=!0,Oo(fo);return}const et=yo.current!==fo;if(yo.current=fo,et||ua.current){an.current=!0,li(_e,{conversationKey:fo,finishInitial:!0,settle:!0});return}const Gt=zu(_e);if(an.current||Gt){an.current=!0,va(!1),Ha(zf(_e)),li(_e,{settle:!0});return}Ja(_e,{nearBottom:Gt})},[xl,fo,Oo,qe?.id,li,va,Ha,Ja,e]),b.useEffect(()=>()=>{ya(),sr()},[ya,sr]);const Io=Le&&!!$&&!Ae,ci=rn.selection?`candidate:${rn.selection.runId}:${rn.selection.candidateId}`:null,Ao=Ut?f.jsx(OF,{appId:on?ci:_o?null:$,workspaceId:on?ci:_o?Zo:$,workspaceKind:on?"local_project":_o?null:"local_project",connection:L,runtimeEvents:i,diff:on?rn.diff:_o?null:je,fileRootPath:on?rn.selection?.fileRootPath??null:_o?null:Je,filesWithPreview:on,editorPreferences:o?.preferences.editor??null,loading:on?rn.loading:_o?ct:de||Io,openFileRequest:on?rn.openFileRequest:or,readOnly:on,sideChatTabs:$e.map(_e=>({id:_e.id,title:_e.title})),sourceSwitcher:on?null:Ri,tabRequest:ot,viewState:Me,workspaceName:on?rn.selection?.title??"Change":_o?Xe?.title??"Sandbox":Q,workspaceInitialized:on?!0:_o?!!Zo:!!Ae?.initialized,workspaceError:on?rn.error:_o?null:Ae?.error??je?.error??null,expanded:Ke,onResizeStart:Xt,onRefresh:_e=>{on?rn.refresh(_e):bo(_e)},onToggleExpanded:wt,onOpenBrowser:Ia,onOpenBrowserUrl:ds,onViewStateChange:Ct,onCloseSideChat:nr,onOpenSideChat:e==="chat"?ro:void 0,onSelectSideChat:()=>gn(),goalDetails:{active:Ue==="goal",createRuntime:ls,goalRuntime:m,subagentRuntime:g},sandboxFileSource:_o?{sandboxId:Zo,emptyMessage:"No sandbox filesystem yet."}:null,trainingSummary:tt}):null,Hr=Vt?f.jsx(UF,{conversationId:q,expanded:Ke,onResizeStart:Xt}):null,Ki=Ra?b.createElement(HF,{...t,key:t.aiThread?.conversationId,onResizeStart:Xt}):null,Vi=Ya?b.createElement(FF,{...t,key:t.agentConversation?.run.id,onResizeStart:Xt}):null,Gi=ko?f.jsx(hF,{panels:$e,busy:O,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,connection:L,connectedAppMentions:B,mentionApps:D,profileSkills:K,projectTarget:fe,providerSettings:o?.providers??null,accountBaseUrl:ss,billingOrganizationSlug:ji.organizationSlug,billingTeamId:ji.teamId,showToast:St,workspaceTarget:R,onAddChat:ro,onClosePanel:nr,onCodexPermissionModeChange:kn,onCodexReasoningEffortChange:un,onOpenPondCommandAccessModeChange:ea,onModelChange:Ho,onOpenFileInSidebar:Oi,onOpenProfileSettings:sa,onOpenSession:Ne,onProviderChange:To,onProviderSetupOpen:Qn,onPromptChange:pr,onProjectTargetChange:en,onResolveApproval:ba,onResizeStart:Xt,onSelectFiles:qo,onShowBrowserPanel:Ia,onStop:ar,onSubmit:hr,onWorkspaceTargetChange:_e=>{kt(_e)}}):null,fs=is?f.jsx(bF,{expanded:Ke,terminalOpen:ze,sideChatAvailable:e==="chat"||e==="labs",onOpenBrowser:Ia,onOpenFiles:qo,onOpenReview:It,onOpenSideChat:ro,onOpenTrainingDraft:$a,trainingDraftAvailable:!!p,onResizeStart:Xt,onToggleExpanded:wt,onToggleTerminal:Ye}):null,Cr=Ba?f.jsx(b.Suspense,{fallback:null,children:f.jsx(KF,{training:le,sessionId:p,expanded:Ke,onOpenTraining:()=>xn("labs"),onResizeStart:Xt,onToggleExpanded:wt})}):null,mo=Vi??Ki??Gi??Ao??Hr??Cr??fs,Wo=f.jsx(pF,{open:ze,connection:L,scope:ae,tabs:H,onTabsChange:Bo,cwd:se,appId:$,workspaceName:Q,queuedCommand:we,onClose:gr}),ui=f.jsx(LF,{projects:nt,workItems:Qe,selectedWorkItem:Xe,detail:at,loading:ct,actionBusy:pn,error:hn,model:G,onBack:Fo,connection:L,showToast:St,onModelChange:Bi,onSetupCloudProject:Ko,onCreateWork:Cn,onSelectWorkItem:io,onSendMessage:jo,onHandleBackground:Xn,onCancelCreatePlan:Va,onCancelTask:Aa,localProjectName:vt,onApplyLocalPatch:Vo,onShowFiles:rt?qo:void 0});return f.jsx("main",{className:`main-pane ${qs} ${ze?"terminal-open":""} ${Lr?"diff-open":""} ${Ti?"diff-expanded":""}`,children:e==="apps"?f.jsx(b.Suspense,{fallback:null,children:f.jsx(zF,{account:o?.account??null,connection:L,defaultTeamId:o?.preferences.defaultTeamId??null,onToast:St})}):e==="team"?f.jsxs(b.Suspense,{fallback:null,children:[f.jsx(qF,{...t}),Lr?mo:null]}):e==="community"?f.jsx(b.Suspense,{fallback:null,children:f.jsx(BF,{...n})}):e==="get-started"?f.jsx(b.Suspense,{fallback:null,children:f.jsx($F,{onCreateAgent:()=>{S.set("/create "),st(null),xn("chat")},onOpenApps:()=>xn("apps"),onOpenChat:()=>xn("chat"),onOpenCloud:()=>xn("cloud"),onOpenProfile:()=>xn("labs")})}):e==="labs"?Ti?f.jsx(b.Suspense,{fallback:null,children:mo}):f.jsxs(f.Fragment,{children:[f.jsx(b.Suspense,{fallback:null,children:f.jsx(DF,{closeDetailRequestId:C,closeDetailKind:w,openSuggestionsRequestId:E,onNewModel:()=>{vr({id:Date.now(),objective:null,initialSessionIds:[]})},onUseAgent:_e=>{S.set(""),_i({actionId:_e,requestId:Date.now()}),st(null),xn("chat")},onCreateAgent:Po,onImproveAgent:ai,onDetailOpenChange:Kn,onOpenRunConversation:vo,onAnswerQuestion:ka,onApplyCandidate:tn,onApprove:ca,onCancel:Rt,candidateReview:{diff:rn.diff,error:rn.error,loading:rn.loading},onCandidateReviewChange:Co,onOpenPullRequest:Kt,onOpenCandidateFiles:ki,onPause:Ot,onReconcilePullRequest:Mt,onRejectCandidate:oe,onResume:pt,onRevise:dt,profileView:{payload:o,connection:L,onPayload:Nt,onError:vn,onToast:St,onSkillCommand:_e=>{S.set(_e),st(null),xn("chat")}},insights:{enabled:Mo.insightsEnabled,items:yt,runs:Et,nextScanAt:gt,scanRunning:Be,scanStartedAt:it,scanning:y,savingEnabled:xr,error:Z,onEnabledChange:Ai,onPatchStatus:De,onOpenSession:Ne},training:{training:le,sessions:Pe,localProjects:o?.localProjects??[],connection:L,defaultModel:{providerId:z,modelId:G},onError:vn,onToast:St,onSettingsPreferences:_e=>{o&&Nt({...o,preferences:_e.preferences})},onOpenChat:Ne,onChatWithModel:la,onOpenTasksetFiles:qo,launchRequest:xo,onLaunchHandled:_e=>vr(et=>et?.id===_e?null:et),preferences:Ii,settingsPreferences:Mo,providerSettings:o?.providers??null,reasoningEffort:ce,selectedTasksetId:re,onSelectedTasksetIdChange:yr,onSelectedTrainingJobIdChange:$r,detailTasksetId:he,onDetailTasksetIdChange:A}})}),Wo,Lr?f.jsx(b.Suspense,{fallback:null,children:mo}):null]}):e==="cloud"?f.jsxs(f.Fragment,{children:[f.jsx(b.Suspense,{fallback:null,children:ui}),Wo,Lr?f.jsx(b.Suspense,{fallback:null,children:mo}):null]}):Ti?f.jsx(b.Suspense,{fallback:null,children:mo}):qr?f.jsxs(f.Fragment,{children:[f.jsxs("div",{className:`chat-column ${qe?"has-approval":""}`,style:Bs,children:[f.jsxs("section",{className:`chat-thread${si?" initial-scroll-pending":""}`,"aria-label":"Conversation",ref:Mn,onScroll:_e=>{Cl(_e.currentTarget)},children:[Mi.map(_e=>_e.type==="thinking"?f.jsx(MA,{},_e.id):f.jsx(TA,{activeWorkspaceAppId:$,accountBaseUrl:ss,billingOrganizationSlug:ji.organizationSlug,billingTeamId:ji.teamId,connection:L,message:_e.message,onOpenFileInSidebar:Oi,onOpenBrowserLink:ds,onOpenProfileSettings:sa,onOpenSession:Ne,workspaceRootPath:Fi,showFooter:_e.showFooter},_e.id)),$t?f.jsx(b.Suspense,{fallback:null,children:f.jsx(GF,{creation:$t})}):null]}),f.jsxs("div",{className:`composer-stack dock ${qe?"has-approval":""}`,ref:Vn,children:[$t?f.jsx(b.Suspense,{fallback:null,children:f.jsx(VF,{compact:!0,creation:$t,training:le,onOpenTraining:()=>xn("labs")})}):null,Ls,f.jsx(vb,{approval:qe,onResolve:ba}),qa&&!si?f.jsxs("div",{className:"chat-scroll-controls","aria-label":"Message navigation",children:[f.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to previous message","aria-label":"Go to previous message","aria-disabled":!lo.canGoPrevious,onClick:()=>{lo.canGoPrevious&&us("previous")},children:f.jsx(Ub,{size:17})}),f.jsx("button",{type:"button",className:"chat-scroll-control-button primary","data-tooltip":"Jump to latest","aria-label":"Jump to latest",onClick:Hi,children:f.jsx(Cj,{size:18})}),f.jsx("button",{type:"button",className:"chat-scroll-control-button","data-tooltip":"Go to next message","aria-label":"Go to next message","aria-disabled":!lo.canGoNext,onClick:()=>{lo.canGoNext&&us("next")},children:f.jsx($w,{size:17})})]}):null,f.jsx(wC,{draftStore:S,mode:"dock",focusRequestId:x,mentionApps:D,connectedAppMentions:B,profileSkills:K,selectedMentionAppId:I,contextWindowStatus:u,goalRuntime:m,subagentRuntime:g,createImproveRuntime:ls,busy:N,running:N,submissionScopeKey:Us,steerAutoDispatchBlocked:j||!!qe,steerAutoDispatchReady:U&&!qe,showProjectFooter:!1,connection:L,providerSettings:o?.providers??null,provider:z,model:G,projectTarget:fe,actionCatalog:te,requestedAction:Sr,workspaceTarget:R,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,subagentDelegationDefaultMode:me?ue:void 0,subagentDelegationMode:Se,onProviderChange:cs,onProviderSetupOpen:Qn,onProjectTargetChange:en,onWorkspaceTargetChange:_e=>{kt(_e)},onModelChange:Bi,onCodexPermissionModeChange:kn,onCodexReasoningEffortChange:un,onOpenPondCommandAccessModeChange:ea,onSubagentDelegationModeChange:me?Ln:void 0,onMentionAppSelect:st,showToast:St,onSubmit:ii,onStop:En})]})]}),Wo,f.jsx(b.Suspense,{fallback:null,children:mo})]}):f.jsxs(f.Fragment,{children:[f.jsxs("section",{className:"start-panel",children:[f.jsx("h1",{children:za}),Ft&&f.jsxs("button",{type:"button",className:"sync-local-button",disabled:Le,onClick:()=>{Fn()},children:[f.jsx(tE,{size:15}),f.jsx("span",{children:Le?"Syncing locally":"Sync locally to work on this"})]}),f.jsxs("div",{className:"composer-stack start",children:[Ls,f.jsx(vb,{approval:qe,onResolve:ba}),f.jsx(wC,{draftStore:S,mode:"start",autoFocus:!0,focusRequestId:x,mentionApps:D,connectedAppMentions:B,profileSkills:K,selectedMentionAppId:I,contextWindowStatus:u,goalRuntime:m,subagentRuntime:g,createImproveRuntime:ls,busy:N,running:N,submissionScopeKey:Us,steerAutoDispatchBlocked:j||!!qe,steerAutoDispatchReady:U&&!qe,connection:L,providerSettings:o?.providers??null,provider:z,model:G,projectTarget:fe,actionCatalog:te,requestedAction:Sr,workspaceTarget:R,codexPermissionMode:ne,codexReasoningEffort:ce,openPondCommandAccessMode:Y,subagentDelegationDefaultMode:me?ue:void 0,subagentDelegationMode:Se,onProviderChange:cs,onProviderSetupOpen:Qn,onProjectTargetChange:en,onWorkspaceTargetChange:_e=>{kt(_e)},onModelChange:Bi,onCodexPermissionModeChange:kn,onCodexReasoningEffortChange:un,onOpenPondCommandAccessModeChange:ea,onSubagentDelegationModeChange:me?Ln:void 0,onMentionAppSelect:st,showToast:St,onSubmit:ii,onStop:En})]})]}),Wo,f.jsx(b.Suspense,{fallback:null,children:mo})]})})}function WF(e){return e.supportedView&&e.open&&!e.hasContentPanel}function YF(){const[e,t]=b.useState(null),n=b.useRef(null),o=b.useCallback(l=>new Promise(u=>{n.current?.resolve(!1);const m={...l,cancelLabel:l.cancelLabel??"Cancel",tone:l.tone??"default",resolve:u};n.current=m,t(m)}),[]),i=b.useCallback(l=>{const u=n.current;n.current=null,t(null),u?.resolve(l)},[]);return{confirmAction:o,confirmDialog:e,resolveConfirmDialog:i}}function JF({state:e,onResolve:t}){const n=b.useId(),o=b.useId();if(b.useEffect(()=>{if(!e)return;function l(u){u.key==="Escape"&&t(!1)}return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[t,e]),!e)return null;const i=e.tone==="danger"?"git-dialog-primary danger":"git-dialog-primary";return f.jsx("div",{className:"git-dialog-backdrop",role:"presentation",onMouseDown:()=>t(!1),children:f.jsxs("section",{className:"git-dialog project-confirm-dialog",role:"alertdialog","aria-modal":"true","aria-labelledby":n,"aria-describedby":o,onMouseDown:l=>l.stopPropagation(),children:[f.jsx("h2",{id:n,children:e.title}),f.jsx("p",{id:o,children:e.body}),f.jsxs("div",{className:"git-dialog-footer",children:[f.jsx("button",{type:"button",className:"git-dialog-secondary",onClick:()=>t(!1),children:e.cancelLabel}),f.jsx("button",{type:"button",className:i,autoFocus:!0,onClick:()=>t(!0),children:e.confirmLabel})]})]})})}function XF(){const{confirmAction:e,confirmDialog:t,resolveConfirmDialog:n}=YF();return{confirmProjectAction:b.useCallback(i=>e({tone:"danger",...i}),[e]),projectConfirmDialog:t,resolveProjectConfirmDialog:n}}function QF({state:e,onResolve:t}){return f.jsx(JF,{state:e,onResolve:t})}function e7({className:e,style:t,sidebar:n,topBar:o,mainPane:i,cloudSetup:l,projectConfirm:u,lazyPanels:m,toast:g}){return f.jsxs("div",{className:e,style:t,children:[f.jsx(KI,{id:"sidebar",children:f.jsx(V6,{...n})}),f.jsxs("div",{className:"content-shell",children:[f.jsx(sB,{...o}),f.jsx(ZF,{...i})]}),f.jsx(Z6,{...l}),f.jsx(QF,{...u}),f.jsx(rB,{...m}),f.jsx(qI,{...g})]})}function t7({settings:e,toast:t}){return f.jsxs(f.Fragment,{children:[f.jsx(oB,{...e}),f.jsx(qI,{...t})]})}const $f="OpenPond".split(""),n7=520,a7=240;function UC(){return typeof window>"u"?!1:window.matchMedia("(prefers-reduced-motion: reduce)").matches}function o7({startup:e}){const[t,n]=b.useState(()=>UC()?$f.length:0);return b.useEffect(()=>{if(UC()){n($f.length);return}const o=$f.map((i,l)=>window.setTimeout(()=>n(l+1),n7+a7*l));return()=>{o.forEach(i=>window.clearTimeout(i))}},[]),f.jsxs("main",{className:"app-splash","aria-busy":"true","aria-label":e.label,role:"status",children:[f.jsxs("div",{className:"app-splash-lockup","data-stage":e.stage,children:[f.jsx("div",{className:"app-splash-mark",children:f.jsx("img",{alt:"OpenPond",className:"app-splash-logo",decoding:"async",src:UI})}),f.jsx("span",{"aria-hidden":"true",className:`app-splash-wordmark${t>0?" is-visible":""}`,children:$f.slice(0,t).map((o,i)=>f.jsx("span",{className:"app-splash-letter",children:o},`${o}-${i}`))})]}),f.jsx("span",{className:"app-splash-status",children:e.label})]})}const qA=5e3;function dl(e,t){if(e.length===0)return t;if(t.length===0)return e;const n=new Set,o=[];for(const i of[...e,...t])n.has(i.id)||(n.add(i.id),o.push(i));return o}function ql(e,t,n=qA){return hm(dl(e,t),n)}function hm(e,t=qA){return e.length<=t?e:e.slice(e.length-t)}function r7(e,t,n){return n.length===0?e:{...e,[t]:dl(e[t]??[],n)}}function i7(e,t){if(t.length===0)return hm(e);if(e.length===0)return hm(t);const n=new Set(e.map(u=>u.id)),o=Fv(e),i=l7(e),l=t.filter(u=>{if(n.has(u.id))return!1;if(typeof u.sequence=="number")return o===null||u.sequence>o;const m=Date.parse(u.timestamp);return Number.isFinite(m)&&i!==null?m>=i:!0});return ql(e,l)}function Fv(e){let t=null;for(const n of e)typeof n.sequence=="number"&&(t=t===null?n.sequence:Math.max(t,n.sequence));return t}function s7(e){let t=null;for(const n of e)n.sequence!==void 0&&(t===null||n.sequence<t)&&(t=n.sequence);return t}function l7(e){let t=null;for(const n of e){const o=Date.parse(n.timestamp);Number.isFinite(o)&&(t=t===null?o:Math.max(t,o))}return t}const c7="codex_history_";function ia(e){return!!e?.startsWith(c7)}function BA(e){const t=[],n=new Set;for(const o of e)for(const i of[o.workspacePath,o.path]){const l=Gm(i);if(!l)continue;const u=`${o.id}:${l}`;n.has(u)||(n.add(u),t.push({projectId:o.id,path:l}))}return t.sort((o,i)=>i.path.length-o.path.length)}function u7(e,t,n,o=new Set){if(Kv(e,o))return null;if(e.localProjectId&&t.has(e.localProjectId))return e.localProjectId;if(e.workspaceKind==="local_project"&&e.workspaceId&&t.has(e.workspaceId))return e.workspaceId;if(e.metadata?.workspaceTarget==="hybrid"&&e.cwd){const l=HA(e.cwd,n);if(l)return l}if(e.cloudProjectId&&o.has(e.cloudProjectId))return e.cloudProjectId;if(!e.cwd||e.workspaceKind==="sandbox"||e.workspaceKind==="sandbox_template"||e.workspaceKind==="sandbox_app")return null;const i=Gm(e.cwd);if(!i)return null;for(const l of n)if(Vv(i,l.path))return l.projectId;return null}function LC(e,t,n,o=new Set){if(Kv(e,o))return null;if(e.localProjectId&&t.has(e.localProjectId))return Wt("local",e.localProjectId);if(e.workspaceKind==="local_project"&&e.workspaceId&&t.has(e.workspaceId))return Wt("local",e.workspaceId);if(e.metadata?.workspaceTarget==="hybrid"&&e.cwd){const l=HA(e.cwd,n);if(l)return Wt("local",l)}if(e.cloudProjectId&&o.has(e.cloudProjectId))return Wt("cloud",e.cloudProjectId);if(!e.cwd||e.workspaceKind==="sandbox"||e.workspaceKind==="sandbox_template"||e.workspaceKind==="sandbox_app")return null;const i=Gm(e.cwd);if(!i)return null;for(const l of n)if(Vv(i,l.path))return Wt("local",l.projectId);return null}function HA(e,t){const n=Gm(e);if(!n)return null;for(const o of t)if(Vv(n,o.path))return o.projectId;return null}function Kv(e,t){return e.localProjectId||e.metadata?.workspaceTarget==="hybrid"?!1:!!(e.cloudProjectId&&t.has(e.cloudProjectId)&&(e.workspaceKind==="sandbox"||e.workspaceKind==="sandbox_template"||e.workspaceKind==="sandbox_app"))}function Gm(e){const t=e?.trim();if(!t)return null;let n=t.replace(/^file:\/\/+/i,"/").replace(/\\/g,"/").replace(/\/+/g,"/");return/^[a-z]:/i.test(n)&&(n=n[0].toUpperCase()+n.slice(1)),n=n.replace(/\/+$/g,""),n||"/"}function Vv(e,t){const n=qC(e),o=qC(t);return n===o||n.startsWith(`${o}/`)}function qC(e){return/^[A-Z]:\//.test(e)?e.toLowerCase():e}function BC(e){if(e<1e3)return String(e);const t=e/1e3;return t>=10||Number.isInteger(t)?`${Math.round(t)}k`:`${t.toFixed(1)}k`}function d7(e){return e===null?"unknown":e>=85?"high":e>=65?"medium":"low"}function HC(e,t){const n=e?.triggerPercent??85;return e?.autoEnabled===!1?t>=n?"Auto compaction is off. Start a new chat or turn it on before the provider limit is reached.":"Auto compaction is off.":`Auto compacts at ${n}% context when supported.`}function f7(e){return e==="codex"}function m7(e){return e==="openpond"}function FA(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n?.name!=="session.context.updated")continue;const o=fk.safeParse(n.data);if(o.success)return o.data}return null}function KA(e){if(e.snapshot&&e.snapshot.provider===e.provider){const n=e.snapshot.usedTokens,o=e.snapshot.maxContextTokens,i=Math.min(100,Math.round(e.snapshot.percentFull)),l=`${i}% full`,u=`${BC(n)} / ${BC(o)} tokens used`;return{usedTokens:n,maxTokens:o,percent:i,summary:l,tokensLabel:u,detail:HC(e.preferences,i),tooltip:`Context window: ${l} ${u}. ${HC(e.preferences,i)}`,tone:d7(i)}}if(f7(e.provider)){const n="Context is managed by Codex app-server.";return{usedTokens:0,maxTokens:null,percent:null,summary:"Managed externally",tokensLabel:"Codex app-server",detail:n,tooltip:`Context window: ${n}`,tone:"unknown"}}if(!m7(e.provider)){const n="Context pressure is unavailable until this provider has model context metadata.";return{usedTokens:0,maxTokens:null,percent:null,summary:"Limit unknown",tokensLabel:"Provider metadata unavailable",detail:n,tooltip:`Context window: ${n}`,tone:"unknown"}}const t="Send a message to measure hosted context.";return{usedTokens:0,maxTokens:null,percent:null,summary:"Not measured yet",tokensLabel:"Hosted context",detail:t,tooltip:`Context window: ${t}`,tone:"unknown"}}const p7={queued:{tone:"active",actionLabel:"Goal queued"},running:{tone:"active",actionLabel:"Pursuing goal"},awaiting_user_input:{tone:"active",actionLabel:"Goal awaiting input"},awaiting_approval:{tone:"active",actionLabel:"Goal awaiting approval"},paused:{tone:"paused",actionLabel:"Goal paused"},blocked:{tone:"limited",actionLabel:"Goal blocked"},completed:{tone:"done",actionLabel:"Goal achieved"},failed:{tone:"limited",actionLabel:"Goal failed"},cancelled:{tone:"limited",actionLabel:"Goal cancelled"},budget_limited:{tone:"limited",actionLabel:"Goal budget limited"}};function h7(e){const t=UU(e);return t?{status:t,...p7[t]}:{status:null,tone:"active",actionLabel:"Goal status unknown"}}function Gv(e){let t=!1;for(let n=e.length-1;n>=0;n-=1){const o=e[n];if(g7(o)){t=!0;continue}const i=vl(o?.data);if(!(o?.name!=="diagnostic"||!i)){if(i.kind==="thread_goal_cleared")return null;if(i.kind==="thread_goal"){const l=Zv(vl(i.goal),go(i.provider));if(l){const u=id(l);return t&&u.tone==="active"?null:u}}if(i.kind==="goal_context"){const l=VA(o.output??"",go(i.provider)??"codex");if(l){const u=id(l);return t&&u.tone==="active"?null:u}}}}return null}function gm(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t],o=vl(n?.data);if(!(n?.name!=="diagnostic"||!o)){if(o.kind==="thread_goal_cleared"&&!Vf(o.synthetic))return null;if(o.kind==="thread_goal"){const i=Zv(vl(o.goal),go(o.provider));if(!i)continue;const l=id(i);return l.tone==="active"?l:null}if(o.kind==="goal_context"){const i=VA(n.output??"",go(o.provider)??"codex");if(!i)continue;const l=id(i);return l.tone==="active"?l:null}}}return null}function Mg(e){const t=vl(vl(e)?.codexGoalRuntime),n=Zv(t,go(t?.provider)??"codex");if(!n)return null;const o=id(n);return o.tone==="active"?o:null}function g7(e){return e?.name==="turn.completed"||e?.name==="turn.interrupted"||e?.name==="turn.failed"}function id(e){const t=y7(e.status,e.provider),n=C7(e.timeUsedSeconds),o=`Goal ${n}`,i=e.tokensUsed===null?null:e.tokenBudget===null?`${Pg(e.tokensUsed)} tokens`:`${Pg(e.tokensUsed)} / ${Pg(e.tokenBudget)} tokens`,l=i?`${e.statusLabel} · ${i}`:e.statusLabel;return{objective:e.objective,status:e.status,subagents:e.subagents,timeUsedSeconds:e.timeUsedSeconds,tokensUsed:e.tokensUsed,tokenBudget:e.tokenBudget,actionLabel:t.actionLabel,timeLabel:n,label:o,detail:l,tooltip:`Goal runtime: ${w7(e.timeUsedSeconds)}. ${l}. ${e.objective}`,tone:t.tone}}function Zv(e,t=null){if(!e)return null;const n=go(e.objective)??"Active goal",o=go(e.status)??"active",i=Nl(e.timeUsedSeconds)??Nl(e.time_used_seconds)??0,l=Nl(e.tokensUsed)??Nl(e.tokens_used),u=Nl(e.tokenBudget)??Nl(e.token_budget),m=b7(vl(e.subagents));return{objective:n,provider:Tb(t)??Tb(go(e.provider)),status:o,statusLabel:ZA(o),subagents:m,timeUsedSeconds:Math.max(0,Math.floor(i)),tokensUsed:l===null?null:Math.max(0,Math.floor(l)),tokenBudget:u===null?null:Math.max(0,Math.floor(u))}}function VA(e,t=null){if(!e.trim())return null;const n=GA(e,"Status")??"active",o=$u(e,"Tokens used"),i=$u(e,"Token budget"),l=$u(e,"Time used seconds")??$u(e,"Time spent pursuing goal")??$u(e,"Elapsed seconds")??0;return{objective:FC(e,"objective")??FC(e,"untrusted_objective")??"Active goal",provider:Tb(t),status:n,statusLabel:ZA(n),subagents:null,timeUsedSeconds:Math.max(0,Math.floor(l)),tokensUsed:o,tokenBudget:i}}function b7(e){return e?{source:go(e.source)??"subagent_runs",updatedAt:go(e.updatedAt),totalCount:ma(e.totalCount),requiredCount:ma(e.requiredCount),optionalCount:ma(e.optionalCount),activeCount:ma(e.activeCount),submittedForReviewCount:ma(e.submittedForReviewCount),needsRevisionCount:ma(e.needsRevisionCount),needsUserInputCount:ma(e.needsUserInputCount),acceptedCount:ma(e.acceptedCount),blockingCount:ma(e.blockingCount),terminalCount:ma(e.terminalCount),cleanupNeededCount:ma(e.cleanupNeededCount),archivedCount:ma(e.archivedCount),unresolvedCount:ma(e.unresolvedCount),requiredActiveCount:ma(e.requiredActiveCount),requiredSubmittedForReviewCount:ma(e.requiredSubmittedForReviewCount),requiredNeedsRevisionCount:ma(e.requiredNeedsRevisionCount),requiredNeedsUserInputCount:ma(e.requiredNeedsUserInputCount),requiredAcceptedCount:ma(e.requiredAcceptedCount),requiredBlockingCount:ma(e.requiredBlockingCount),requiredArchivedCount:ma(e.requiredArchivedCount),requiredUnresolvedCount:ma(e.requiredUnresolvedCount),runs:Array.isArray(e.runs)?e.runs.map(t=>v7(vl(t))).filter(t=>!!t):[]}:null}function v7(e){if(!e)return null;const t=go(e.id),n=go(e.roleId),o=go(e.status),i=go(e.objective);return!t||!n||!o||!i?null:{id:t,childSessionId:go(e.childSessionId),roleId:n,status:o,required:Vf(e.required),objective:i,reviewStatus:go(e.reviewStatus),updatedAt:go(e.updatedAt),cleanupStatus:go(e.cleanupStatus),archiveStatus:go(e.archiveStatus),sessionArchived:Vf(e.sessionArchived),blockerCount:ma(e.blockerCount),validationAttemptCount:ma(e.validationAttemptCount),changedFileCount:ma(e.changedFileCount),followUpNeeded:Vf(e.followUpNeeded)}}function y7(e,t){if(t==="codex"){const n=S7(e);if(n)return n}return h7(e)}function S7(e){switch(x7(e)){case"active":case"running":return{tone:"active",actionLabel:"Pursuing goal"};case"paused":return{tone:"paused",actionLabel:"Goal paused"};case"blocked":return{tone:"limited",actionLabel:"Goal blocked"};case"complete":case"completed":case"achieved":return{tone:"done",actionLabel:"Goal achieved"};case"failed":return{tone:"limited",actionLabel:"Goal failed"};case"cancelled":case"canceled":case"stopped":return{tone:"limited",actionLabel:"Goal cancelled"};case"budget_limited":return{tone:"limited",actionLabel:"Goal budget limited"};default:return null}}function x7(e){return e.trim().toLowerCase().replace(/[-\s]+/g,"_")}function GA(e,t){const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return new RegExp(`^\\s*-?\\s*${n}:\\s*(.+?)\\s*$`,"im").exec(e)?.[1]?.trim()||null}function $u(e,t){const n=GA(e,t);if(!n)return null;const o=n.replace(/,/g,""),i=/-?\d+(?:\.\d+)?/.exec(o);if(!i)return null;const l=Number(i[0]);return Number.isFinite(l)?l:null}function FC(e,t){return new RegExp(`<${t}>\\s*([\\s\\S]*?)\\s*<\\/${t}>`,"i").exec(e)?.[1]?.trim()||null}function ZA(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function C7(e){if(e<60)return`${e}s`;const t=Math.floor(e/60);if(t<60)return`${t}m`;const n=Math.floor(t/60),o=t%60;return o>0?`${n}h ${o}m`:`${n}h`}function w7(e){if(e<60)return`${e} ${e===1?"second":"seconds"}`;const t=Math.floor(e/60);if(t<60)return`${t} ${t===1?"minute":"minutes"}`;const n=Math.floor(t/60),o=t%60;return o===0?`${n} ${n===1?"hour":"hours"}`:`${n}h ${o}m`}function Pg(e){if(e<1e3)return String(e);if(e>=1e6){const n=e/1e6;return n<10?`${KC(n,2)}M`:n<100?`${KC(n,1)}M`:`${Math.round(n)}M`}const t=e/1e3;return t>=10||Number.isInteger(t)?`${Math.round(t)}k`:`${t.toFixed(1)}k`}function KC(e,t){return e.toFixed(t).replace(/\.?0+$/,"")}function vl(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function go(e){return typeof e=="string"&&e.trim()?e.trim():null}function Vf(e){return e===!0}function Tb(e){return e?.trim().toLowerCase()||null}function Nl(e){return typeof e=="number"&&Number.isFinite(e)?e:null}function ma(e){const t=Nl(e);return t===null?0:Math.max(0,Math.floor(t))}const _7=new Set(["planning","applying_source","running_checks","evaluating","pushing_hosted","running_hosted_checks"]),k7=new Set(["awaiting_questions","awaiting_plan_approval","paused"]);function jb(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n?.name!=="create_improve.updated")continue;const o=I7(M7(n.data));if(o)return A7(o)}return null}function I7(e){const t=Li.safeParse(e?.createImproveRun);return t.success?t.data:null}function A7(e){const t=R7(e.state);if(!t)return null;const n=T7(e.createdAt,e.updatedAt),o=e.blockedReason??j7(e.state);return{objective:e.objective,status:e.state,subagents:null,timeUsedSeconds:n,tokensUsed:null,tokenBudget:null,actionLabel:t.actionLabel,timeLabel:E7(n),label:t.actionLabel,detail:o,tooltip:`${t.actionLabel}: ${o}. ${e.objective}`,tone:t.tone}}function R7(e){return _7.has(e)?{tone:"active",actionLabel:"Work running"}:k7.has(e)?{tone:"active",actionLabel:"Work awaiting input"}:e==="blocked"?{tone:"limited",actionLabel:"Work blocked"}:e==="failed"?{tone:"limited",actionLabel:"Work failed"}:e==="cancelled"?{tone:"limited",actionLabel:"Work cancelled"}:e==="ready"||e==="ready_local"?{tone:"done",actionLabel:"Workproduct ready"}:e==="published_hosted"?{tone:"done",actionLabel:"Workproduct published"}:null}function T7(e,t){const n=Date.parse(e),o=Date.parse(t);return!Number.isFinite(n)||!Number.isFinite(o)||o<n?0:Math.floor((o-n)/1e3)}function j7(e){return e.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/[_-]+/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function E7(e){if(e<60)return`${e}s`;const t=Math.floor(e/60);if(t<60)return`${t}m`;const n=Math.floor(t/60),o=t%60;return o>0?`${n}h ${o}m`:`${n}h`}function M7(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}const VC=new Set(["queued","running","needs_resume"]),GC=new Set(["submitted_for_review"]),ZC=new Set(["needs_revision"]),WC=new Set(["needs_user_input"]),WA=new Set(["accepted","completed"]),P7=new Set(["failed_with_artifacts"]),Eb=new Set(["blocked"]),N7=new Set(["accepted","completed","failed_with_artifacts","failed","cancelled","superseded"]);function YA(e,t){if(!t)return null;const n=new Map,o=[];for(const me of e){if(!me.name.startsWith("subagent."))continue;const qe=z7(me);qe&&o.push(qe);const $=O7(me);!$||$.parentSessionId!==t||n.set($.id,$)}if(n.size===0)return null;const i=[...n.values()].sort($7),l=i.filter(me=>VC.has(me.status)),u=i.filter(me=>GC.has(me.status)),m=i.filter(me=>ZC.has(me.status)),g=i.filter(me=>WC.has(me.status)),p=i.filter(Mb),S=i.filter(me=>P7.has(me.status)),x=i.filter(me=>Eb.has(me.status)&&!Ng(me)),C=i.filter(me=>WA.has(me.status)||me.review?.status==="accepted"),w=i.filter(vm),E=i.filter(me=>!Ng(me)),j=i.filter(YC),U=i.filter(me=>me.required),D=U.filter(me=>VC.has(me.status)).length,B=U.filter(me=>GC.has(me.status)).length,K=U.filter(me=>ZC.has(me.status)).length,I=U.filter(me=>WC.has(me.status)).length,O=U.filter(me=>Eb.has(me.status)&&!Wv(me)).length,N=U.filter(Mb).length,z=U.filter(vm).length,G=U.filter(YC).length,ne=U.filter(me=>!Ng(me)).length,ce=ne,Y=i[0]??null,ue=H7(i),Se=F7(e);return{sessionId:t,runs:i,activeRuns:l,submittedRuns:u,needsRevisionRuns:m,needsUserInputRuns:g,acceptedRuns:p,failedWithArtifactsRuns:S,blockedRuns:x,completedRuns:C,unresolvedRuns:E,terminalRuns:w,archivedRuns:j,latestRun:Y,latestMeaningfulUpdate:ue,watcher:Se,activeCount:l.length,submittedCount:u.length,needsRevisionCount:m.length,needsUserInputCount:g.length,acceptedCount:p.length,failedWithArtifactsCount:S.length,blockedCount:x.length,completedCount:C.length,unresolvedCount:E.length,terminalCount:w.length,archivedCount:j.length,requiredActiveCount:D,requiredSubmittedForReviewCount:B,requiredNeedsRevisionCount:K,requiredNeedsUserInputCount:I,requiredBlockingCount:O,requiredAcceptedCount:N,requiredTerminalCount:z,requiredArchivedCount:G,requiredUnresolvedCount:ne,requiredOpenCount:ce,usage:q7(i),blockers:K7(i),evidenceRefs:V7(i),finalResults:G7(i,o),testsRunCount:i.reduce((me,qe)=>me+(qe.report?.testsRun.length??0),0),taskGraph:nK(t,i,o),label:D7(l,u,m,x,C,w),tooltip:U7(l,u,m,x,C,w)}}function O7(e){const t=e.data;if(!t||typeof t!="object"||Array.isArray(t))return null;const n=t.run,o=E_.safeParse(n);return o.success?o.data:null}function z7(e){if(e.name!=="subagent.message")return null;const t=hi(e.data),n=Cz.safeParse(t?.message);if(!n.success)return null;const o=sK(t?.deliveredRunIds),i=typeof t?.deliveredToRunId=="string"?t.deliveredToRunId:null;return{message:n.data,deliveredRunIds:o.length>0?o:i?[i]:[]}}function $7(e,t){return bm(t)-bm(e)}function bm(e){return Date.parse(e.updatedAt??e.completedAt??e.startedAt??e.createdAt)||0}function D7(e,t,n,o,i,l){if(e.length>0)return`${e.length} ${ul(e.length,"subagent")} running`;if(n.length>0)return`${n.length} ${ul(n.length,"subagent")} needs revision`;if(t.length>0)return`${t.length} ${ul(t.length,"subagent")} submitted`;if(o.length>0)return`${o.length} ${ul(o.length,"subagent")} blocked`;const u=l.filter(g=>g.status==="failed"||g.status==="failed_with_artifacts");if(u.length>0)return`${u.length} ${ul(u.length,"subagent")} failed`;const m=l.filter(g=>g.status==="cancelled");return m.length>0?`${m.length} ${ul(m.length,"subagent")} cancelled`:i.length===0&&l.length>0?`${l.length} ${ul(l.length,"subagent")} terminal`:`${i.length} ${ul(i.length,"subagent")} accepted`}function U7(e,t,n,o,i,l){const u=e.length>0?e:n.length>0?n:t.length>0?t:o.length>0?o:i.length>0?i:l,m=u.slice(0,4).map(p=>`${rK(p.roleId)} ${p.status}`),g=u.length-m.length;return`Subagents: ${m.join(", ")}${g>0?`, +${g} more`:""}`}function Mb(e){return e.status==="superseded"?!1:WA.has(e.status)||e.review?.status==="accepted"}function Ng(e){return Mb(e)||Wv(e)||e.status==="superseded"||L7(e)||!e.required&&vm(e)}function L7(e){if(e.status!=="cancelled")return!1;const t=hi(e.metadata.goalLifecycle);return Ms(t?.action)==="cancelled_by_parent_goal"}function vm(e){return N7.has(e.status)||e.review?.status==="accepted"||Wv(e)}function Wv(e){return e.review?.status==="dismissed"}function YC(e){const t=hi(e.metadata.childSessionArchive),n=Ms(t?.status);return n==="archived"||n==="already_archived"}function q7(e){return e.reduce((t,n)=>{const o=B7(n);return t.totalTokens+=o.totalTokens,t.promptTokens+=o.promptTokens,t.completionTokens+=o.completionTokens,t.requestCount+=o.requestCount,t},{totalTokens:0,promptTokens:0,completionTokens:0,requestCount:0})}function B7(e){const t=hi(e.metadata.usage);return{totalTokens:Tc(t?.totalTokens),promptTokens:Tc(t?.promptTokens),completionTokens:Tc(t?.completionTokens),requestCount:Tc(t?.requestCount)}}function H7(e){for(const t of e){const n=t.progress?.latestMeaningfulActivity||t.report?.summary||t.progress?.currentBlocker||t.error||null,o=t.progress?.updatedAt??t.updatedAt??t.completedAt??t.startedAt??t.createdAt;if(!(!n||!o))return{runId:t.id,roleId:t.roleId,status:t.status,message:n,updatedAt:o}}return null}function F7(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.name!=="diagnostic")continue;const o=hi(n.data);if(o?.kind!=="subagent_lifecycle_watcher_tick")continue;const i=Ms(o.checkedAt)??n.timestamp;if(i)return{checkedAt:i,activeCount:Tc(o.activeCount),staleCount:Tc(o.staleCount),wakeQueued:o.wakeQueued===!0,wakePolicy:Ms(o.wakePolicy)}}return null}function K7(e){const t=[];for(const n of e){const o=jc([...n.report?.blockers??[],n.error,Eb.has(n.status)&&n.report?.summary?n.report.summary:null]);for(const i of o)t.push({runId:n.id,roleId:n.roleId,status:n.status,message:i})}return t}function V7(e){const t=[],n=new Set;for(const o of e)for(const i of[...o.report?.artifacts??[],o.report?.patchRef??null,o.report?.diffRef??null]){if(!i)continue;const l=`${o.id}:${i.kind}:${i.id}`;n.has(l)||(n.add(l),t.push({...i,runId:o.id,roleId:o.roleId}))}return t}function G7(e,t){const n=eK(t),o=[];for(const i of e){if(!W7(i))continue;const l=X7(i.review.packetQuality.evidence),u=Q7(i.review.reviewerRoutingEvidence),m=i.report?.summary||i.review.summary||i.progress.latestMeaningfulActivity||i.error||"No summary";o.push({runId:i.id,roleId:i.roleId,status:i.status,required:i.required,objective:i.objective,summary:m,findings:jc(i.report?.findings??[]).slice(0,8),changedFiles:jc(i.progress.changedFiles).slice(0,12),refs:Y7([...i.report?.artifacts??[],i.report?.patchRef??null,i.report?.diffRef??null,...i.progress.patchRefs]).slice(0,10),testsRun:jc(i.report?.testsRun??[]).slice(0,8),validationAttempts:i.progress.validationAttempts.map(J7).slice(0,8),blockers:jc([...i.report?.blockers??[],...i.review.issues,...i.review.requiredCorrections,...i.review.packetQuality.issues,...i.review.packetQuality.warnings,i.progress.currentBlocker,i.error]).slice(0,8),confidence:i.report?.confidence??null,packetQualityStatus:i.review.packetQuality.status,packetQualityEvidence:l,independentReviewRecommended:!!i.review.independentReviewRecommended,reviewerRoutingReasons:Array.from(new Set(i.review.reviewerRoutingReasons??[])).slice(0,8),reviewerRoutingEvidence:u,importantMessages:n.get(i.id)?.slice(0,4)??[],workspaceRetention:Z7(i),updatedAt:i.progress.updatedAt??i.updatedAt??i.completedAt??i.startedAt??i.createdAt})}return o}function Z7(e){const t=hi(e.metadata),n=hi(t?.lifecycleCleanup),o=hi(n?.workspaceCleanup),i=hi(t?.workspaceHandoff),l=hi(i?.applyResult),u=hi(l?.workspaceRetention);return JC(u)??JC(o)}function JC(e){if(!e||Ms(e.status)!=="retained")return null;const t=hi(e.retentionPolicy);return{status:"retained",reason:Ms(e.reason),retainedAt:Ms(e.retainedAt),expiresAt:Ms(t?.expiresAt),retentionDays:iK(t?.retentionDays),trigger:Ms(t?.trigger),cleanupAfterExpiry:t?.cleanupAfterExpiry===!0}}function W7(e){return e.report||e.review.status!=="pending"?!0:vm(e)}function Y7(e){const t=new Set,n=[];for(const o of e){if(!o)continue;const i=`${o.kind}:${o.id}`;t.has(i)||(t.add(i),n.push(o))}return n}function J7(e){const t=e.exitCode===null?"":` exit ${e.exitCode}`,n=e.outputSummary?` · ${e.outputSummary}`:"";return`${e.command} · ${e.status}${t}${n}`}function X7(e){return{finalSummaryPresent:e?.finalSummaryPresent??!1,finalSummaryLength:e?.finalSummaryLength??0,requestedValidationCommandCount:e?.requestedValidationCommandCount??0,validationAttemptCount:e?.validationAttemptCount??0,failedValidationCount:e?.failedValidationCount??0,testsRunCount:e?.testsRunCount??0,changedFileCount:e?.changedFileCount??0,patchRefPresent:e?.patchRefPresent??!1,diffRefPresent:e?.diffRefPresent??!1,artifactCount:e?.artifactCount??0,findingCount:e?.findingCount??0,blockerCount:e?.blockerCount??0,unvalidatedWorkspaceChanges:e?.unvalidatedWorkspaceChanges??!1}}function Q7(e){return{packetQualityStatus:e?.packetQualityStatus??"reviewable",confidence:e?.confidence??null,changedFileCount:e?.changedFileCount??0,highRiskFileCount:e?.highRiskFileCount??0,validationAttemptCount:e?.validationAttemptCount??0,failedValidationCount:e?.failedValidationCount??0,missingRequestedValidation:e?.missingRequestedValidation??!1,providerFailureAfterChanges:e?.providerFailureAfterChanges??!1,userRequestedIndependentReview:e?.userRequestedIndependentReview??!1}}function eK(e){const t=new Map;for(const n of e){if(!tK(n.message))continue;const o=jc([n.message.fromRunId,n.message.toRunId,...n.deliveredRunIds]);for(const i of o){const l=t.get(i)??[];l.push({id:n.message.id,runId:i,fromRunId:n.message.fromRunId,kind:n.message.kind,body:n.message.body,createdAt:n.message.createdAt}),t.set(i,l)}}return t}function tK(e){return e.kind!=="status"?!0:e.priority==="interrupt"||e.refs.length>0}function nK(e,t,n){const o=`parent:${e}`,i=[...t].sort((p,S)=>bm(p)-bm(S)),l=new Set(i.map(p=>p.id)),u=i.map(aK),m=i.map(p=>({id:`start:${p.id}`,fromRunId:o,toRunId:p.id,kind:"started",label:"Started",createdAt:p.createdAt})),g=new Set(m.map(p=>p.id));for(const p of n){const S=p.deliveredRunIds.length>0?p.deliveredRunIds:p.message.toRunId?[p.message.toRunId]:[];for(const x of S){if(!l.has(x))continue;const C=`message:${p.message.id}:${p.message.fromRunId}:${x}`;g.has(C)||(g.add(C),m.push({id:C,fromRunId:p.message.fromRunId,toRunId:x,kind:p.message.kind,label:oK(p.message.kind),createdAt:p.message.createdAt}))}}return{rootId:o,nodes:u,edges:m}}function aK(e){const t=(e.report?.artifacts.length??0)+(e.report?.patchRef?1:0)+(e.report?.diffRef?1:0);return{runId:e.id,roleId:e.roleId,status:e.status,objective:e.objective,required:e.required,childSessionId:e.childSessionId,modelLabel:e.modelRef?`${e.modelRef.providerId}/${e.modelRef.modelId}`:"default model",isolationLabel:`${XC(e.isolationMode)} · ${XC(e.toolPolicy)}`,summary:e.report?.summary||null,blockerCount:(e.report?.blockers.length??0)+(e.error?1:0),evidenceCount:t,testsRunCount:e.report?.testsRun.length??0,createdAt:e.createdAt,startedAt:e.startedAt,completedAt:e.completedAt}}function oK(e){return e.slice(0,1).toUpperCase()+e.slice(1).replace(/[-_]+/g," ")}function rK(e){return e.slice(0,1).toUpperCase()+e.slice(1).replace(/[-_]+/g," ")}function hi(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ms(e){return typeof e=="string"&&e.trim()?e.trim():null}function Tc(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,Math.floor(e)):0}function iK(e){return typeof e=="number"&&Number.isFinite(e)?Math.max(0,Math.floor(e)):null}function sK(e){return Array.isArray(e)?e.filter(t=>typeof t=="string"&&t.trim().length>0):[]}function jc(e){const t=new Set,n=[];for(const o of e){const i=typeof o=="string"?o.trim():"";!i||t.has(i)||(t.add(i),n.push(i))}return n}function ul(e,t){return e===1?t:`${t}s`}function XC(e){return e.replace(/[-_]+/g," ")}const Pb=[];function Nb(e,t){return JA(e,t,null)}function JA(e,t,n){const o=n&&fK(n.events,e)?cK(n.indexes,n.events.length,e):lK(e),i=dK(t);return{...o,...i}}function lK(e){const t=new Map;for(const n of e){if(!n.sessionId)continue;const o=t.get(n.sessionId);o?o.push(n):t.set(n.sessionId,[n])}return uK(t)}function cK(e,t,n){const o=new Map(e.eventsBySessionId),i=new Map(e.latestContextUsageBySessionId),l=new Map(e.latestGoalRuntimeBySessionId),u=new Map(e.latestSubagentRuntimeBySessionId),m=new Set(e.activeGoalSessionIds),g=new Set(e.activeSubagentSessionIds),p=new Set;for(let S=t;S<n.length;S+=1){const x=n[S];if(!x.sessionId)continue;if(p.has(x.sessionId)){o.get(x.sessionId).push(x);continue}const C=o.get(x.sessionId);o.set(x.sessionId,C?[...C,x]:[x]),p.add(x.sessionId)}for(const S of p){const x=o.get(S)??Pb,C=FA(x);C?i.set(S,C):i.delete(S);const w=QA(x);w?(l.set(S,w),w.tone==="active"?m.add(S):m.delete(S)):(l.delete(S),m.delete(S));const E=YA(x,S);E?(u.set(S,E),XA({sessionEvents:x,sessionId:S,latestGoalRuntimeBySessionId:l,activeGoalSessionIds:m}),E.activeCount>0?g.add(S):g.delete(S)):(u.delete(S),g.delete(S))}return{eventsBySessionId:o,latestContextUsageBySessionId:i,latestGoalRuntimeBySessionId:l,latestSubagentRuntimeBySessionId:u,activeGoalSessionIds:m,activeSubagentSessionIds:g}}function uK(e){const t=new Map,n=new Map,o=new Map,i=new Set,l=new Set;for(const[u,m]of e){const g=FA(m);g&&t.set(u,g);const p=QA(m);p&&(n.set(u,p),p.tone==="active"&&i.add(u))}for(const[u,m]of e){const g=YA(m,u);g&&(o.set(u,g),XA({sessionEvents:m,sessionId:u,latestGoalRuntimeBySessionId:n,activeGoalSessionIds:i}),g.activeCount>0&&l.add(u))}return{eventsBySessionId:e,latestContextUsageBySessionId:t,latestGoalRuntimeBySessionId:n,latestSubagentRuntimeBySessionId:o,activeGoalSessionIds:i,activeSubagentSessionIds:l}}function XA(e){if(e.latestGoalRuntimeBySessionId.has(e.sessionId))return;const t=gm(e.sessionEvents);t&&(e.latestGoalRuntimeBySessionId.set(e.sessionId,t),t.tone==="active"&&e.activeGoalSessionIds.add(e.sessionId))}function QA(e){return jb(e)??Gv(e)??gm(e)}function dK(e){const t=new Map,n=new Map,o=new Map,i=new Map;for(const l of e){t.set(l.id,l);const u=n.get(l.status);if(u?u.push(l):n.set(l.status,[l]),l.status!=="pending")continue;const m=o.get(l.sessionId);m?m.push(l):o.set(l.sessionId,[l]);const g=i.get(l.sessionId);(!g||QC(l.createdAt)>QC(g.createdAt))&&i.set(l.sessionId,l)}return{approvalsById:t,approvalsByStatus:n,pendingApprovalsBySessionId:o,latestPendingApprovalBySessionId:i}}function fK(e,t){return e===t?!0:e.length>t.length||e.length===t.length?!1:e.length===0?!0:e[0]===t[0]&&e[e.length-1]===t[e.length-1]}function Ui(e,t){return t?e.eventsBySessionId.get(t)??Pb:Pb}function eR(e,t){return t?e.latestContextUsageBySessionId.get(t)??null:null}function tR(e,t){return t?e.latestGoalRuntimeBySessionId.get(t)??null:null}function mK(e,t){return t?e.latestSubagentRuntimeBySessionId.get(t)??null:null}function nR(e,t){return t?e.latestPendingApprovalBySessionId.get(t)??null:null}function QC(e){const t=Date.parse(e);return Number.isFinite(t)?t:Number.NEGATIVE_INFINITY}function pK({primary:e,secondary:t}){const{composerDraftStore:n,appDispatch:o,pendingTerminalCommand:i,setPendingTerminalCommand:l,terminalTabs:u,setTerminalTabs:m,trainingDetailTasksetId:g,setTrainingDetailTasksetId:p,mentionedAppId:S,setMentionedAppId:x,cloudSetupDialog:C,setCloudSetupDialog:w,rightPanelTabRequest:E,workspaceDiffPanelViewState:j,mainComposerFocusRequestId:U,labSuggestionsRequestId:D,projectConfirmDialog:B,resolveProjectConfirmDialog:K,query:I,searchOpen:O,archivedChatsOpen:N,sectionMenuOpen:z,projectsExpanded:G,cloudProjectsExpanded:ne,sidebarOpen:ce,view:Y,selectedAppId:ue,selectedProjectId:Se,selectedSessionId:me,codexPermissionMode:qe,codexReasoningEffort:$,busy:be,diffPanelOpen:ie,diffPanelExpanded:fe,rightPanelMode:te,terminalOpen:R,settingsSection:L,newProjectDialogOpen:Q,newProjectMode:Ae,newProjectName:je,newProjectPath:Le,newProjectBusy:de,commitDialogOpen:He,commitMessage:xe,commitIncludeUnstaged:Ke,commitNextStep:Ue,commitDraft:ot,branchDialogOpen:$e,branchDialogName:Me,toast:q,labDetailNavigation:ae,setQuery:H,setSearchOpen:se,setArchivedChatsOpen:we,setSectionMenuOpen:ze,setProjectsExpanded:Ye,setCloudProjectsExpanded:Ct,setChatRowsVisibleCount:yt,setSidebarOpen:Et,setView:gt,setSelectedAppId:Be,setSelectedProjectId:it,setSelectedSessionId:y,setPrompt:Z,setDraftProvider:le,setDraftModel:Pe,setDiffPanelOpen:V,setDiffPanelExpanded:he,setRightPanelMode:A,setTerminalOpen:W,setSettingsSection:Ce,setNewProjectDialogOpen:ye,setNewProjectMode:Te,setNewProjectName:De,setNewProjectPath:Ne,setCommitDialogOpen:nt,setCommitMessage:Qe,setCommitIncludeUnstaged:Xe,setCommitNextStep:at,setCommitDraft:vt,setBranchDialogOpen:ct,setBranchDialogName:pn,setError:hn,showToast:Dt,applyBootstrapPayload:Sn,bootstrap:Xt,connection:Ft,startup:za,insights:Nt,training:vn,pinnedCollapsed:xn,projectsCollapsed:sa,cloudProjectsCollapsed:Qn,chatsCollapsed:Lt,sidebarWidth:en,sidebarResizing:kt,diffPanelWidth:On,diffPanelResizing:_a,togglePinnedCollapsed:la,toggleProjectsCollapsed:kn,toggleCloudProjectsCollapsed:un,toggleChatsCollapsed:ea,startSidebarResize:Ln,startDiffPanelResize:ba,selectedApp:ka,selectedProject:ca,selectedProjectLinkedApp:tn,selectedSession:Rt,sidebarSessions:Kt,runtimeIndexes:Ot,chatMentionApps:Mt,connectedAppMentions:oe,pendingApproval:pt,account:dt,activeModel:st,activeProvider:St,appDefaults:Tt,startMessage:En,teamChatOrganization:Fn,teamChatTeamId:bo,teamChat:wt,publishTeamProfileAgent:It,communitySidebar:Ia,communityView:$a,teamAiThreadId:qo,toggleTeamAiSidebar:gn,activeOpenPondCommandAccessMode:ro,profileWorkspaceId:vo,viewWorkspaceAppId:Da,viewWorkspaceId:Kn,viewWorkspaceKind:Bo,viewWorkspaceName:nr,selectedActionCatalog:Ho,expandedProjectIds:pr,expandProject:To,toggleProjectExpanded:hr,cloudBusy:ar,cloudError:gr,cloudLoading:Fo,cloudWorkItemDetail:Ko,cloudWorkItems:Cn,selectedCloudWorkItem:io,selectedCloudWorkItemId:jo,selectedCloudWorkItemLocalProject:Xn,applyCloudWorkItemPatchLocally:Va,cancelCloudWorkItemCreatePipeline:Aa,cancelCloudWorkItemTask:Vo,createCloudWork:nn,handleCloudWorkItemBackground:Mn,openCloudHome:Vn,selectCloudWorkItem:an,sendCloudWorkItemMessage:yo,changeCodexPermissionMode:Tn,changeCodexReasoningEffort:wn,changeOpenPondCommandAccessMode:ua,resolveApproval:Ga,beginNewChat:ta,beginNewChatWithTrainingModel:Za,dismissTrainingChatHandoff:ni,trainingChatHandoff:zn,selectTrainingChatTaskForComposer:Ua,chatHistoryLoadStates:La,loadMoreSelectedChatHistory:qa,selectedPagedSessionEvents:so,activeSessions:So,pinnedSessions:br,projectRows:lo,localProjectRows:Eo,visibleProjectRows:or,cloudProjectRows:Pr,cloudWorkItemsByProjectId:Go,projectSessionRowsByProjectId:Nr,childSessionRowsByParentId:xo,sidebarProjectIdBySessionId:vr,chatRows:Or,visibleChatRows:yr,sessionEvents:zr,goalRuntime:$r,subagentRuntime:Sr,visibleChatMessages:_i,activeTerminalScope:xr,terminalSummaries:Dr,runningSessionIds:rn,selectedSessionRunning:Co,selectedSteerAutoDispatchBlocked:ki,selectedSteerAutoDispatchReady:Mo,sidebarGoalRuntimeBySessionId:Ii,sidebarSubagentRuntimeBySessionId:rr,dragItem:Po,startPinnedDrag:ai,clearSidebarDrag:Ai,previewPinnedDrop:re,commitPinnedDrop:Je,commitPinnedPreviewDrop:tt,commandProjectRows:$t,contextWindowStatus:rt,pinnedRows:bn,workspaceStates:Pn,workspaceBusy:on,diffBusy:co,visibleWorkspaceState:uo,visibleWorkspaceDiff:wo,refreshVisibleWorkspaceDiff:Wa,managedWorkspace:Ur,canSyncActiveWorkspace:Zo,canPublishOpenPondProject:ir,projectTarget:oi,workspaceTarget:ri}=e,{title:_o,browserConversationId:Ri,handleWorkspaceDiffPanelViewStateChange:Ut,openSessionInChat:Vt,insightsSystemProjectHidden:ko,toggleInsightsSystemProjectVisibility:Ba,toggleSystemProjectVisibility:Ra,openExistingProjectPathDialog:Ya,addProjectFolder:is,removeProject:Lr,changeProjectTarget:Ti,submitNewProjectDialog:ss,changeWorkspaceBranch:ji,openCommitDialog:Ei,openCreateWorkspaceBranchDialog:qr,openDefaultsSettingsFromBranchDialog:Us,runWorkspaceTool:Ls,submitCommitDialog:ls,submitCreateWorkspaceBranch:qs,syncWorkspaceLocally:Ta,subagentDelegationDefaultMode:ii,subagentDelegationMode:Bi,subagentDelegationAvailable:cs,changeSubagentDelegationMode:Mi,answerCreateImproveQuestion:Bs,applyCreateImproveCandidate:Pi,approveCreateImproveRun:xl,cancelCreateImproveRun:No,changeDraftProvider:fo,openCreateImprovePullRequest:si,reconcileCreateImprovePullRequest:va,rejectCreateImproveCandidate:Ha,pauseCreateImproveRun:Ja,resumeCreateImproveRun:Oo,reviseCreateImproveRun:sr,stopTurn:Br,archiveSession:ya,restoreSession:li,renameSession:Hi,toggleProjectPinned:us,toggleSessionPinned:Hs,moveProjectToCloud:Ni,startCloudSetupUpload:Cl,changeWorkspaceTarget:ds,switchProjectWorkspaceTarget:Fi,sendPromptFromMainComposer:Oi,openSandboxWorkspace:Io,createCloudEnvironmentFromSidebar:ci,openCloudProjectDialog:Ao,openUrlInBrowserPanel:Hr,showBrowserPanel:Ki,showChangesPanel:Vi,showGoalSidebarTab:Gi,setupCloudProjectFromCloudView:fs,openLabSuggestions:Cr,closeRightChatPanel:mo,openRightChatPanel:Wo,rightChatPanelViews:ui,showRightChatPanel:_e,showRightPanelDiffTab:et,submitRightChatPrompt:Gt,updateRightChatModel:Qt,updateRightChatPrompt:dn,updateRightChatProvider:Gn,openProfileSettings:qt,diagnosticEvents:Xa,toggleRightSidebar:Bt}=t;if(!za.ready)return f.jsx(o7,{startup:za});if(Y==="settings")return f.jsx(t7,{settings:{payload:Xt,connection:Ft,diagnostics:Xa,initialSection:L,onPayload:Sn,onError:hn,onToast:Dt,onOpenSourceSession:Vt,teamChatCurrentUserId:wt.currentUserId,teamChatEnabled:bo!==null,teamChatNotificationMode:wt.notificationMode,teamChatThreads:wt.threads,onTeamChatNotificationModeChange:wt.setNotificationMode,onTeamChatThreadMuteChange:wt.setThreadMuted,onBack:()=>{gt("chat"),Et(!0)}},toast:{toast:q,onDismiss:()=>o({type:"field",key:"toast",value:null})}});const na=Sm(),ja=Ft?.platform??navigator.platform,da=na&&Fb(ja),lr=vo?{kind:"project",id:vo}:xr,Fr=uo?.initialized?uo.repoPath:Rt?.cwd??null,Zi={"--sidebar-width":`${en}px`,"--diff-panel-width":`${On}px`},ms=Y==="chat"||Y==="cloud"||Y==="labs"||Y==="team"&&!!qo,Yo=["app-shell",da?"platform-macos":"",ce?"sidebar-open":"sidebar-closed",kt?"sidebar-resizing":"",_a?"diff-panel-resizing":""].filter(Boolean).join(" "),zo=me?La[me]:null,Jo=me?zo?.cursorSequence??s7(ql(so,Ui(Ot,me))):null,cr=!!me&&!!Ft&&(ia(me)?!0:!!Xt?.eventWindow?.hasMoreBefore&&!!Jo)&&(zo?.hasMore??!0),Kr=!!zo?.loading;return f.jsx(e7,{className:Yo,style:Zi,sidebar:{view:Y,selectedAppId:ue,selectedProjectId:Se,selectedSessionId:me,selectedCloudWorkItemId:jo,selectedTeamThreadId:wt.selectedThreadId,teamChatEnabled:bo!==null,teamChatOrganization:Fn,teamChatLoading:wt.loading,currentUserId:wt.currentUserId,teamMembers:wt.members,teamThreads:wt.threads,...Ia,account:dt,profile:Xt?.profile,pinnedCollapsed:xn,projectsCollapsed:sa,cloudProjectsCollapsed:Qn,chatsCollapsed:Lt,archivedChatsOpen:N,projectsExpanded:G,cloudProjectsExpanded:ne,sectionMenuOpen:z,dragItem:Po,pinnedRows:bn,pinnedSessions:br,projectRows:lo,visibleProjectRows:or,localProjectRows:Eo,insightsSystemProjectHidden:ko,cloudProjectRows:Pr,workspaceStates:Pn,cloudWorkItemsByProjectId:Go,projectSessionRowsByProjectId:Nr,childSessionRowsByParentId:xo,sidebarProjectIdBySessionId:vr,terminalSummaries:Dr,runningSessionIds:rn,goalRuntimeBySessionId:Ii,subagentRuntimeBySessionId:rr,visibleChatRows:yr,chatRows:Or,expandedProjectIds:pr,currentVersion:Xt?.server.version??null,platform:ja,arch:Ft?.arch??null,onSidebarResizeStart:Ln,setSidebarOpen:Et,setView:gt,setSelectedAppId:Be,setSelectedProjectId:it,setSelectedSessionId:y,setSearchOpen:se,setSectionMenuOpen:ze,setSettingsSection:Ce,onTogglePinnedCollapsed:la,onToggleProjectsCollapsed:kn,onToggleCloudProjectsCollapsed:un,onToggleChatsCollapsed:ea,setArchivedChatsOpen:we,setProjectsExpanded:Ye,setCloudProjectsExpanded:Ct,setChatRowsVisibleCount:yt,beginNewChat:ta,dockSessionRight:Wo,openCloudHome:Vn,createCloudEnvironment:ci,selectCloudWorkItem:an,selectTeamThread:Nn=>{gt("team"),wt.selectThread(Nn)},openTeamDm:Nn=>{gt("team"),wt.openDm(Nn)},addProjectFolder:()=>{is()},startExistingProjectFromPath:Ya,startProjectFromScratch:()=>{Te("local"),De(""),Ne(""),ye(!0)},startCloudProjectFromScratch:Ao,moveProjectToCloud:Ni,switchProjectWorkspaceTarget:Fi,removeProject:Nn=>{Lr(Nn)},toggleInsightsSystemProjectVisibility:()=>{Ba()},toggleProjectPinned:us,toggleSystemProjectVisibility:Ra,toggleSessionPinned:Hs,archiveSession:ya,restoreSession:li,renameSession:Hi,addSessionToTraining:Nn=>{vn.actions.addSource(Nn.id).then(Wi=>{Wi&&(gt("labs"),Dt("Added chat to training sources.","info"))})},expandProject:To,toggleProjectExpanded:hr,startPinnedDrag:ai,clearSidebarDrag:Ai,previewPinnedDrop:re,commitPinnedDrop:Je,commitPinnedPreviewDrop:tt},topBar:{sidebarOpen:ce,title:_o,backAction:ae.backAction,breadcrumbs:ae.breadcrumbs,conversationId:Y==="chat"?me:null,workspaceName:nr,workspaceId:Kn,busy:be,workspaceState:uo,workspaceKind:Bo,selectedApp:vo?null:tn??ka,selectedProject:vo?null:ca,workspaceDiff:wo,managedWorkspace:Ur,workspaceBusy:on,defaultTeamId:Tt.defaultTeamId,showDiffControls:Y==="chat"||Y==="cloud",diffPanelOpen:ie,terminalOpen:R,rightSidebarAvailable:ms,rightSidebarOpen:ie,onToggleDiffPanel:Bt,onToggleRightSidebar:Y==="team"&&qo?gn:Bt,onOpenSearch:()=>{ze(null),se(!0)},onToggleTerminal:()=>W(Nn=>!Nn),onOpenInsights:()=>{ze(null),Cr()},onRunTerminalCommand:Nn=>{l({id:Date.now(),scope:lr,command:Nn}),W(!0)},onWorkspaceToolAction:Ls,onOpenCommitDialog:Ei,onWorkspaceBranchChange:ji,onWorkspaceBranchCreate:qr,connection:Ft,onBootstrap:Sn,onOpenSandboxWorkspace:Io,onShowSidebar:()=>Et(!0),platform:ja,showWorkspaceControls:Y!=="team"&&Y!=="community"&&Y!=="labs",insightsItems:Nt.items,insightsSummary:Nt.summary,insightsScanning:Nt.scanRunning},mainPane:{view:Y,teamChat:{currentUserId:wt.currentUserId,members:wt.members,agents:wt.agents,profile:Xt?.profile??null,teamId:bo,teamName:Fn?.displayName??null,detail:wt.detail,aiThread:wt.aiThread,agentConversation:wt.agentConversation,loading:wt.loading,busy:wt.busy,error:wt.error,connection:Ft,providerSettings:Xt?.providers??null,provider:St,model:st,codexPermissionMode:qe,codexReasoningEffort:$,openPondCommandAccessMode:ro,contextWindowStatus:rt,showToast:Dt,onProviderChange:fo,onModelChange:Pe,onCodexPermissionModeChange:Tn,onCodexReasoningEffortChange:wn,onOpenPondCommandAccessModeChange:ua,onOpenProviderSettings:()=>{Ce("providers"),gt("settings")},onSendMessage:wt.sendMessage,onPublishProfileAgent:It,onOpenAiThread:async Nn=>{await wt.openAiThread(Nn),A("chat"),V(!0)},onOpenAgentConversation:async Nn=>{await wt.openAgentConversation(Nn),A("chat"),V(!0)},onCloseAiThread:()=>V(!1),onCloseAgentConversation:()=>{wt.closeAgentConversation(),V(!1)},onSendAgentTurn:wt.sendAgentTurn,onSendAiTurn:wt.sendAiTurn,onStopAiTurn:wt.stopAiTurn,onEditMessage:wt.editMessage,onDeleteMessage:wt.deleteMessage,onRetryMessage:wt.retryMessage,onDismissFailedMessage:wt.dismissFailedMessage,onLoadMoreMessages:wt.loadMoreMessages,onRetryLoad:wt.refresh},community:$a,bootstrap:Xt,runtimeEvents:zr,chatMessages:_i,contextWindowStatus:rt,goalRuntime:$r,subagentRuntime:Sr,selectedSessionId:me,composerDraftStore:n,mainComposerFocusRequestId:U,labCloseDetailRequestId:ae.closeDetailRequestId,labCloseDetailKind:ae.closeDetailKind,labSuggestionsRequestId:D,steerAutoDispatchBlocked:ki,steerAutoDispatchReady:Mo,mentionApps:Mt,connectedAppMentions:oe,profileSkills:Xt?.profile?.skills??[],selectedMentionAppId:S,busy:be,turnRunning:Co,activeProvider:St,activeModel:st,codexPermissionMode:qe,codexReasoningEffort:$,openPondCommandAccessMode:ro,subagentDelegationDefaultMode:ii,subagentDelegationMode:Bi,subagentDelegationAvailable:cs,pendingApproval:pt,activeWorkspaceAppId:Da,activeWorkspaceId:Kn,activeWorkspaceKind:Bo,projectTarget:oi,actionCatalog:Ho,workspaceTarget:ri,connection:Ft,workspaceName:nr,workspaceState:uo,workspaceDiff:wo,workspaceBusy:on,diffBusy:co,forceChatThread:ia(me),diffPanelOpen:ie,diffPanelExpanded:fe,rightPanelMode:te,rightPanelTabRequest:E,rightChatPanels:ui,workspaceDiffPanelViewState:j,browserConversationId:Ri,terminalScope:lr,terminalTabs:u,terminalCwd:Fr,pendingTerminalCommand:i,terminalOpen:R,onToggleTerminal:()=>W(Nn=>!Nn),onWorkspaceDiffPanelViewStateChange:Ut,insightsItems:Nt.items,insightsRuns:Nt.runs,insightsNextScanAt:Nt.nextScanAt,insightsScanRunning:Nt.scanRunning,insightsScanStartedAt:Nt.scanStartedAt,insightsScanning:Nt.scanning,insightsError:Nt.error,training:vn,trainingSessions:Kt,trainingChatHandoff:zn,trainingDetailTasksetId:g,onTrainingDetailTasksetIdChange:p,onTrainingChatTaskSelect:Ua,onTrainingChatHandoffDismiss:ni,onRunInsightsScan:Nt.runScan,onAskInsightsQuestion:Nt.askQuestion,onPatchInsightStatus:Nt.patchStatus,onOpenInsightsSession:Vt,cloudProjects:Xt?.cloudProjects??[],cloudWorkItems:Cn,selectedCloudWorkItem:io,cloudWorkItemDetail:Ko,cloudWorkItemLocalProjectName:Xn?.name??null,cloudLoading:Fo,cloudBusy:ar,cloudError:gr,chatHistoryHasMore:cr,chatHistoryLoading:Kr,onDiffPanelResizeStart:ba,onToggleDiffPanelExpanded:()=>he(Nn=>!Nn),onShowDiffPanel:Vi,onShowBrowserPanel:Ki,onShowFilesPanel:()=>et("files"),onShowGoalSidebarTab:Gi,onShowTrainingDraftPanel:()=>{A("training"),V(!0)},onShowRightChatPanel:_e,onAddRightChat:()=>Wo(null),onOpenRightChatForSession:Nn=>{const Wi=Kt.find(Fs=>Fs.id===Nn)??null;Wi&&Wo(Wi,{preserveView:!0})},onOpenLabSuggestions:Cr,onLabDetailOpenChange:ae.onDetailOpenChange,onTerminalTabsChange:m,onCloseRightChatPanel:mo,onRightChatModelChange:Qt,onRightChatPromptChange:dn,onRightChatProviderChange:Gn,onSubmitRightChat:Gt,onStopRightChat:Nn=>Br(Nn),onCloseTerminal:()=>W(!1),onOpenCloudHome:Vn,onSetupCloudProject:fs,onCreateCloudWork:nn,onSelectCloudWorkItem:an,onSendCloudWorkItemMessage:yo,onHandleCloudWorkItemBackground:Mn,onCancelCloudWorkItemCreatePipeline:Aa,onCancelCloudWorkItemTask:Vo,onApplyCloudWorkItemPatchLocally:Va,onLoadMoreChatHistory:qa,canSyncWorkspace:Zo,startMessage:En,onPayload:Sn,onError:hn,setView:gt,onOpenProfileSettings:qt,onOpenProviderSettings:()=>{Ce("providers"),gt("settings")},changeDraftProvider:fo,changeProjectTarget:Ti,changeWorkspaceTarget:ds,setDraftProvider:le,setDraftModel:Pe,onBeginNewChatWithModel:Za,changeCodexPermissionMode:Tn,changeCodexReasoningEffort:wn,changeOpenPondCommandAccessMode:ua,changeSubagentDelegationMode:Mi,resolveApproval:Ga,answerCreateImproveQuestion:Bs,applyCreateImproveCandidate:Pi,approveCreateImproveRun:xl,cancelCreateImproveRun:No,openCreateImprovePullRequest:si,reconcileCreateImprovePullRequest:va,rejectCreateImproveCandidate:Ha,pauseCreateImproveRun:Ja,resumeCreateImproveRun:Oo,reviseCreateImproveRun:sr,setMentionedAppId:x,showToast:Dt,sendPrompt:Oi,stopTurn:Br,syncWorkspaceLocally:Ta,refreshWorkspaceDiff:Wa},cloudSetup:{state:C,onClose:()=>w(null),onOpenBrowserUrl:Hr,onStart:()=>{Cl()}},projectConfirm:{state:B,onResolve:K},lazyPanels:{activeSessions:So,branchDialogName:Me,branchDialogOpen:$e,commitDialogOpen:He,commitDraft:ot,commitIncludeUnstaged:Ke,commitMessage:xe,commitNextStep:Ue,canPublishOpenPondProject:ir,connection:Ft,expandProject:To,newProjectBusy:de,newProjectDialogOpen:Q,newProjectDirectory:Tt.defaultNewProjectDirectory,newProjectMode:Ae,newProjectName:je,newProjectPath:Le,projectRows:$t,query:I,searchOpen:O,visibleWorkspaceDiff:wo,visibleWorkspaceState:uo,workspaceBusy:on,appDispatch:o,beginNewChat:()=>ta(null),openDefaultsSettingsFromBranchDialog:Us,setBranchDialogName:pn,setBranchDialogOpen:ct,setCommitDialogOpen:nt,setCommitDraft:vt,setCommitIncludeUnstaged:Xe,setCommitMessage:Qe,setCommitNextStep:at,setNewProjectDialogOpen:ye,setNewProjectName:De,setNewProjectPath:Ne,setPrompt:Z,setQuery:H,setSearchOpen:se,submitCommitDialog:ls,submitCreateWorkspaceBranch:qs,submitNewProjectDialog:ss},toast:{toast:q,onDismiss:()=>o({type:"field",key:"toast",value:null})}})}const Ec=new Map,Gf=new Map;function Ob(e){if(!e||e.state!=="signed_in")return null;const t=e.accounts.find(i=>i.isActive)??null,n=e.activeProfile?.handle?.trim()||t?.handle?.trim()||e.label.trim()||"signed_in",o=e.activeProfile?.baseUrl??t?.baseUrl??e.baseUrl??"";return[n,o,e.apiBaseUrl??"",e.chatApiBaseUrl??""].join("|")}function hK(e){const t=e?.trim();if(!t)return null;const n=Ec.get(t);return n?.updatedAt?n.organizations:null}function gK(e,t){const n=e?.trim();if(n){Ec.set(n,{organizations:t,promise:null,updatedAt:Date.now()});for(const o of Gf.get(n)??[])o()}}function bK(e,t){const n=e?.trim();if(!n)return()=>{};const o=Gf.get(n)??new Set;return o.add(t),Gf.set(n,o),()=>{o.delete(t),o.size===0&&Gf.delete(n)}}function ew(e){const t=e.accountKey?.trim();if(!t)return Promise.resolve([]);const n=Ec.get(t);if(!e.force){if(n?.updatedAt)return Promise.resolve(n.organizations);if(n?.promise)return n.promise}const o=e.fetchOrganizations().then(i=>(gK(t,i),i)).catch(i=>{const l=Ec.get(t);throw l?.promise===o&&Ec.set(t,{organizations:l.organizations,promise:null,updatedAt:l.updatedAt}),i});return Ec.set(t,{organizations:n?.organizations??[],promise:o,updatedAt:n?.updatedAt??0}),o}const kY="openpond.config.json";function aR(){return{activeTab:"files",openFilePaths:[],selectedPath:null}}function Og(e){return{activeTab:e.activeTab,openFilePaths:[...e.openFilePaths],selectedPath:e.selectedPath}}function IY(e,t=null){const n=yK(e.openFilePaths.map(i=>nw(i,t)).filter(Boolean)),o=e.selectedPath&&nw(e.selectedPath,t)||null;return{activeTab:e.activeTab==="file"&&!o?"files":e.activeTab,openFilePaths:n,selectedPath:o}}function tw(e,t){return e.activeTab===t.activeTab&&e.selectedPath===t.selectedPath&&e.openFilePaths.length===t.openFilePaths.length&&e.openFilePaths.every((n,o)=>n===t.openFilePaths[o])}function nw(e,t=null){let n=vK(e);const o=t?.trim().replace(/\\/g,"/").replace(/\/+$/,"");if(!o)return n;if(n===o)return"";n.startsWith(`${o}/`)&&(n=n.slice(o.length+1));const i=o.split("/").filter(Boolean).at(-1);return i&&n.startsWith(`${i}/`)&&(n=n.slice(i.length+1)),n}function AY(e){return e.startsWith("/")||/^[A-Za-z]:\//.test(e)}function RY(e){return{path:e,status:"unchanged",additions:0,deletions:0,patch:"",content:null}}function TY(e,t){const n=aw(e.path);return!n||e.path.endsWith("/")||e.content==null&&/Could not access .+\/null['"]?/.test(e.patch)?!0:t.some(o=>{const i=aw(o);return!!(i&&i.startsWith(`${n}/`))})}function jY(e){return/\.(?:md|markdown|mdx)$/i.test(e)||/(?:^|\/)readme$/i.test(e)}function EY(e){return/\.(?:doc|docx)$/i.test(e)}function vK(e){let t=e.trim().replace(/^['"`]+|['"`]+$/g,"");if(/^file:\/\//i.test(t))try{t=decodeURIComponent(new URL(t).pathname)}catch{t=t.replace(/^file:\/\//i,"")}return t.replace(/\\/g,"/").replace(/^\.\/+/,"")}function yK(e){return Array.from(new Set(e))}function aw(e){const n=e.replace(/\\/g,"/").replace(/^\.\/+/,"").split("/").filter(Boolean);return n.length===0?null:n.join("/")}function SK(e){if(!e||e.state!=="signed_in")return null;const t=e.accounts.find(m=>m.isActive)??null,n=e.profile?.id?.trim()??"",o=e.activeProfile?.handle?.trim()||t?.handle?.trim()||e.label.trim()||"signed_in",i=e.activeProfile?.baseUrl??t?.baseUrl??e.baseUrl??"",l=e.apiBaseUrl??t?.apiBaseUrl??"",u=e.chatApiBaseUrl??t?.chatApiBaseUrl??"";return[n?`profile:${n}`:"profile:unknown",o,i,l,u].join("|")}function oR(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"").slice(0,48)||"cloud-project"}function xK(e){const t=new TextEncoder().encode(e);let n="";for(const o of t)n+=String.fromCharCode(o);return btoa(n)}function Zm(e){const t=e,n=t.teamId||t.id||"";if(!n)return null;const o=t.displayName||t.name||n,i=t.workspaceKind==="personal"||t.isPersonalDefault===!0||t.kind==="personal_default"||t.name?.trim().toLowerCase()==="personal";return{teamId:n,slug:t.slug||oR(o),name:t.name||o,displayName:o,role:t.role==="owner"||t.role==="admin"||t.role==="member"?t.role:"member",workspaceKind:t.workspaceKind==="personal"||t.workspaceKind==="shared"?t.workspaceKind:i?"personal":"shared",status:t.status==="disabled"||t.status==="archived"?t.status:"active",kind:t.kind==="personal_default"||t.kind==="managed_client"||t.kind==="team"?t.kind:void 0,isPersonalDefault:i,isManagedClient:t.isManagedClient===!0||t.kind==="managed_client",primaryContactEmail:t.primaryContactEmail??null,customDomain:t.customDomain??null,planKey:typeof t.planKey=="string"?t.planKey:null,effectiveAccessState:t.effectiveAccessState==="checkout_pending"||t.effectiveAccessState==="active"||t.effectiveAccessState==="grace"||t.effectiveAccessState==="suspended"||t.effectiveAccessState==="cancelling"||t.effectiveAccessState==="cancelled"?t.effectiveAccessState:null,canManageBilling:t.canManageBilling===!0||t.role==="owner",createdAt:t.createdAt??"",updatedAt:t.updatedAt??""}}function CK(e){return e.find(t=>t.workspaceKind==="personal"||t.isPersonalDefault===!0||t.kind==="personal_default")??e.find(t=>t.name.trim().toLowerCase()==="default")??e.find(t=>t.isManagedClient!==!0&&t.kind!=="managed_client")??e[0]??null}function wK(e,t){const n=e.filter(i=>i.status==="active"&&i.workspaceKind==="shared"),o=t?.trim()??"";if(o){const i=n.find(l=>l.teamId===o);if(i)return i}return n.find(i=>i.role==="owner")??n.find(i=>i.role==="admin")??n[0]??null}const _K="uploaded to a different account";function rR(e,t){const n=e?.linkedSandboxProject??null;if(!n?.projectId||!n.teamId)return{state:"none",linked:null,cloudProject:null};const o=t?.find(i=>i.id===n.projectId&&i.teamId===n.teamId)??null;return o?{state:"confirmed",linked:n,cloudProject:o}:{state:"different_account",linked:n,cloudProject:null}}function ti(e,t){const n=rR(e,t);return n.state==="confirmed"?n.cloudProject:null}function kK(e,t){return rR(e,t).state==="different_account"?_K:null}function IK(...e){for(const t of e){const n=t?.trim();if(n)return n}return""}function AK(...e){return IK(...e.map(t=>{const n=t?.trim();return n&&!n.includes("@")?n:null}))}function RK(e){if(e?.state!=="signed_in")return"";const t=e.accounts.find(n=>n.isActive)??null;return AK(e.profile?.name,e.label,t?.displayLabel,e.profile?.handle,t?.handle,e.activeProfile?.handle)}function TK({bootstrap:e,draftModel:t,draftProvider:n,selectedApp:o,selectedAppId:i,selectedCloudProject:l,selectedProject:u,selectedSession:m,selectedSessionId:g,selectedSessionLinkedProject:p}){const S=m?.workspaceKind==="local_project"?m.workspaceId??null:p?.id??null,x=ia(g)&&!m,C=m?xi(m.workspaceKind):!1,w=os(m),E=m?fF(m):!1,j=m?.cwd&&(!C||w)?cv(m.cwd):null,U=e?.providers??null,D=ti(u,e?.cloudProjects??[]),B=l?"openpond":n,K=as(B,t,U),I=jr(e?.preferences),O=x?null:m?C?m.workspaceKind??"sandbox":E?"sandbox":S?"local_project":m.workspaceKind??(m.appId?"sandbox_app":j?"local_project":null):l?"sandbox":u?"local_project":i?"sandbox_app":null,N=x?null:m?C&&!w||E?null:S||(m.workspaceId??m.appId??j):l?null:u?.id??i,z=x?null:m?C?m.workspaceId??null:E?null:S??m.workspaceId??m.appId??j:l?null:u?.id??i,G=e?.account??null,ne=!e||G?.state==="loading"||G?.state==="switching",ce=!ne&&G?.state==="signed_out",Y=ne?null:ce?"Sign in":G?.label??G?.activeProfile?.handle??"Account",ue=RK(G),Se=ue?`Welcome, ${ue}`:"Welcome",me=m?.workspaceName??m?.appName??l?.name??u?.name??o?.name??null,qe=xi(O)?"cloud":"local",$=u?.name??p?.name??(m?.workspaceKind==="local_project"?m.workspaceName:null)??"Local workspace",be=(qe==="cloud"?me:null)??l?.name??D?.name??u?.name??"Cloud workspace",ie=!!(l?.id||D?.id||m?.cloudProjectId||qe==="cloud");return{account:G,accountLabel:Y,accountPending:ne,accountSignedOut:ce,activeModel:K,activeProvider:B,activeWorkspaceAppId:N,activeWorkspaceId:z,activeWorkspaceKind:O,activeWorkspaceLocation:qe,appDefaults:I,cloudLinked:ie,cloudTargetName:be,localTargetName:$,selectedCodexHistoryPending:x,selectedSessionCloudWorkspace:C,selectedSessionLocalPathWorkspaceId:j,selectedSessionPendingCloudStart:E,selectedSessionProjectId:S,startMessage:Se,workspaceName:me}}function jK({accountPending:e,accountSignedOut:t,activeWorkspaceLocation:n,bootstrap:o,busy:i,cloudLinked:l,selectedCloudProject:u,selectedProject:m,selectedSession:g,pendingWorkspaceTarget:p,workspaceStates:S,workspaceBusy:x}){const C=ti(m,o?.cloudProjects??[]),E=!!!m?.linkedSandboxProject?.projectId||!!C,j=b.useMemo(()=>{const z=(o?.localProjects??[]).map(Y=>({value:`local:${Y.id}`,label:Y.name,detail:Y.workspacePath,kind:"local"})),G=(o?.cloudProjects??[]).map(Y=>({value:`cloud:${Y.id}`,label:Y.name,detail:Y.organizationName??Y.sourceLabel??"OpenPond Cloud",kind:"cloud"})),ne=m?`local:${m.id}`:u?`cloud:${u.id}`:"none",ce=[...z,...G].find(Y=>Y.value===ne)??null;return{value:ne,label:ce?.label??"Select Project",detail:ce?.detail??"Choose a project for local or cloud work",busy:x||i,options:[...z,...G,{value:"action:add-local-project",label:"Add Local Project",detail:"Choose a folder on this machine",kind:"action"},{value:"none",label:"Don't work in a project",detail:"General chat without project files",kind:"none"}]}},[o?.cloudProjects,o?.localProjects,i,u,m,x]),U=!!(l||m),D=!!(u?.id||C?.id||g?.cloudProjectId||os(g)),B=m?S[m.id]??null:null,K=jI(B,{branch:m?.linkedSandboxProject?.defaultBranch??null,path:m?.workspacePath??g?.cwd??null,linkedCloudSourceKnown:m?.linkedSandboxProject?.projectId&&E?!!m.linkedSandboxProject.lastUploadedCommit||!B?.headCommit:!0}),I=EI(m,u??C,B,{cloudLinkTrusted:E}),O=Fq(m,B,{cloudLinkTrusted:E}),N=b.useMemo(()=>{const z={value:"local",label:"Local checkout",detail:"Use files on this machine. Best for fast chat and local edits.",stateNote:K,disabled:!m&&n!=="local",disabledReason:"No linked local workspace."},G={value:"queue_cloud",label:"Queue cloud work item",detail:"Run the next task in a hosted sandbox. Keeps this chat local.",stateNote:l?`will use ${I}`:"upload required",disabled:e||t||!l,disabledReason:t?"Add an OpenPond account before queueing Cloud work.":"Upload/sync this Project to Cloud before queueing work."},ne={value:"hybrid",label:"Hybrid",detail:"Use your selected model with hosted sandbox edits.",stateNote:D?I:"upload required",disabled:e||t||!D,disabledReason:t?"Add an OpenPond account before using Hybrid.":"Upload/sync this Project to Cloud before using Hybrid."},ce={value:"cloud",label:"Cloud workspace",detail:"Chat inside the hosted sandbox. Best for cloud-only files, dependencies, or handoff.",stateNote:I,disabled:e||t||!U,disabledReason:t?"Add an OpenPond account before using Cloud.":"Select a Project before Cloud coding."},Y={value:"upload_cloud",label:"Upload/sync to cloud",detail:"Push local source to OpenPond Git before cloud work.",stateNote:O,disabled:e||t||!m,disabledReason:t?"Add an OpenPond account before uploading source.":"Select a local Project before uploading source."},ue=n==="cloud"?"local":"cloud",Se=ue==="local"?z:ce;let me=n==="cloud"?ce:z;return p==="queue_cloud"&&(me=G),(os(g)||p==="hybrid")&&(me=ne),{value:me.value,label:me.label,detail:me.stateNote||me.detail,busy:x,action:{...Se,label:ue==="cloud"?"Cloud workspace":m?"Local checkout":"Check out locally"},uploadAction:Y,options:[z,ne,G,ce]}},[n,e,t,l,U,I,D,K,p,m,g,O,x]);return{projectTarget:j,workspaceTarget:N}}function EK(e){return new Set(e.map(t=>t.id))}function ow(e,t){const n=e?.linkedOpenPondApp??null;return n?.appId&&t.has(n.appId)?n:null}function MK({bootstrap:e,codexHistorySessions:t,selectedProjectId:n,selectedSessionId:o,selectedAppId:i,sessions:l}){const u=b.useMemo(()=>e?.apps.find(ce=>ce.id===i)??null,[e?.apps,i]),m=b.useMemo(()=>new Map((e?.localProjects??[]).map(ce=>[ce.id,ce])),[e?.localProjects]),g=b.useMemo(()=>new Map((e?.cloudProjects??[]).map(ce=>[ce.id,ce])),[e?.cloudProjects]),p=b.useMemo(()=>dI(n),[n]),S=b.useMemo(()=>p?.kind==="local"?m.get(p.id)??null:null,[m,p]),x=b.useMemo(()=>p?.kind==="cloud"?g.get(p.id)??null:null,[g,p]),C=b.useMemo(()=>EK(e?.apps??[]),[e?.apps]),w=b.useMemo(()=>ZI(e?.apps??[]),[e?.apps]),E=b.useMemo(()=>{const ce=[];for(const Y of e?.localProjects??[]){const ue=ow(Y,C);ue&&ce.push([ue.appId,Y.id])}return new Map(ce)},[e?.localProjects,C]),j=b.useMemo(()=>new Set((e?.localProjects??[]).map(ce=>ce.id)),[e?.localProjects]),U=b.useMemo(()=>BA(e?.localProjects??[]),[e?.localProjects]),D=b.useRef([]),B=b.useMemo(()=>PK(l,t,D.current),[t,l]),K=b.useMemo(()=>B.find(ce=>ce.id===o)??null,[B,o]),I=b.useMemo(()=>{if(!K)return null;if(K.localProjectId)return m.get(K.localProjectId)??null;if(K.workspaceKind==="local_project")return K.workspaceId?m.get(K.workspaceId)??null:null;const ce=u7(K,j,U);if(ce)return m.get(ce)??null;if(!K.appId)return null;const Y=E.get(K.appId);return Y?m.get(Y)??null:null},[E,m,j,U,K]),O=b.useMemo(()=>K?.cloudProjectId?g.get(K.cloudProjectId)??null:null,[g,K]),N=S??I,z=x??O,G=b.useMemo(()=>ow(N,C),[C,N]),ne=b.useMemo(()=>G?e?.apps.find(ce=>ce.id===G.appId)??null:null,[e?.apps,G]);return{cloudProjectById:g,currentAppIds:C,linkedProjectByAppId:E,localProjectById:m,mentionableSandboxApps:w,selectedApp:u,selectedCloudProject:z,selectedProject:N,selectedProjectLinkedApp:ne,selectedProjectLinkedOpenPondApp:G,selectedSession:K,selectedSessionLinkedProject:I,sidebarSessions:B}}function PK(e,t,n){const o=new Map;for(const p of e){const S=rw(p);o.set(S,p)}for(const p of t){const S=rw(p),x=o.get(S);o.set(S,x?NK(x,p):p)}const i=Array.from(o.entries());if(!n)return i.sort((p,S)=>iw(p[1],S[1])).map(p=>p[1]);const l=[],u=new Set;for(const p of n){const S=o.get(p);S&&(l.push([p,S]),u.add(p))}const g=[...i.filter(([p])=>!u.has(p)).sort((p,S)=>iw(p[1],S[1])),...l];return n.splice(0,n.length,...g.map(([p])=>p)),g.map(p=>p[1])}function NK(e,t){return{...e,metadata:OK(e.metadata,t.metadata),status:e.status==="active"||t.status==="active"?"active":e.status,updatedAt:zK(e.updatedAt,t.updatedAt)}}function rw(e){return e.codexThreadId?`codex:${e.codexThreadId}`:`session:${e.id}`}function iw(e,t){const n=sw(t)-sw(e);return n!==0?n:e.title.localeCompare(t.title)}function OK(e,t){const n={...e??{},...t??{}};return Object.keys(n).length>0?n:void 0}function zK(e,t){const n=Date.parse(e);if(!Number.isFinite(n))return t;const o=Date.parse(t);return Number.isFinite(o)&&o>n?t:e}function sw(e){const t=Date.parse(e.updatedAt);if(Number.isFinite(t))return t;const n=Date.parse(e.createdAt);return Number.isFinite(n)?n:0}function $K(e){return!!(e&&xi(e.workspaceKind)&&!os(e)&&e.provider!=="openpond")}function DK({activeWorkspaceId:e,activeWorkspaceKind:t,appDispatch:n,connection:o,expandProject:i,linkedProjectByAppId:l,providerSettings:u,selectedAppId:m,selectedSession:g,selectedSessionId:p,selectedSessionProjectId:S,setDiffPanelExpanded:x,setDraftModel:C,setDraftProvider:w,setError:E,setSelectedAppId:j,setSelectedProjectId:U,setSessions:D,setTerminalOpen:B,toast:K}){const I=b.useRef(null);b.useEffect(()=>{if(!m)return;const O=S??(p?null:l.get(m)??null);if(!O)return;const N=Wt("local",O);j(null),U(N),i(N)},[i,l,m,p,S,j,U]),b.useEffect(()=>{if(!K||K.persistent)return;const O=window.setTimeout(()=>{n({type:"clearToast",toastId:K.id})},K.durationMs??(K.tone==="error"?7e3:3500));return()=>window.clearTimeout(O)},[n,K]),b.useEffect(()=>{function O(N){(N.metaKey||N.ctrlKey)&&N.key==="`"&&(N.preventDefault(),B(z=>!z))}return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[B]),b.useEffect(()=>{x(!1)},[e,t,x]),b.useEffect(()=>{if(!p){I.current=null;return}if(!g||g.id!==p||I.current===g.id)return;I.current=g.id;const O=F4(g,u);w(O.provider),C(O.model)},[u,g,p,C,w]),b.useEffect(()=>{!o||!g||!$K(g)||ge.patchSession(o,g.id,{provider:"openpond"}).then(O=>{D(N=>N.map(z=>z.id===O.id?O:z)),w("openpond"),C(N=>as("openpond",N))}).catch(O=>{E(O instanceof Error?O.message:String(O))})},[o,g,C,w,E,D])}function UK({connection:e,setError:t}){return b.useCallback(async(n,o)=>{if(!e){const i=new Error("OpenPond App server is not connected.");throw t(i.message),i}t(null);try{await ge.resolveApproval(e,n,{decision:o})}catch(i){const l=i instanceof Error?i.message:String(i);throw t(l),i}},[e,t])}function LK({activeProvider:e,contextCompaction:t,contextUsage:n,pinnedItems:o,pinnedPreviewKeys:i,pinnedProjects:l,projectRows:u,visibleProjectRows:m}){const g=b.useMemo(()=>D4(o,i),[o,i]),p=b.useMemo(()=>KA({provider:e,snapshot:n,preferences:t}),[e,t,n]),S=b.useMemo(()=>Array.from(new Set([...l,...m].filter(Tv).map(C=>C.project.id))),[l,m]);return{commandProjectRows:b.useMemo(()=>[...l,...u],[l,u]),contextWindowStatus:p,pinnedRows:g,sidebarWorkspaceAppIds:S}}function qK({appDispatch:e,expandProject:t,linkedProjectByAppId:n,requestComposerFocus:o,onBeginNewChat:i,setMentionedAppId:l}){return b.useCallback((u=null)=>{i?.();const m=u?.id?n.get(u.id)??null:null;if(m){const g=Wt("local",m);l(null),e({type:"selectProject",projectId:g}),t(g),o();return}l(null),e({type:"beginNewChat",appId:u?.id??null}),o()},[e,t,n,i,o,l])}function BK({bootstrap:e,connectedAppRows:t,mentionableSandboxApps:n,runtimeIndexes:o,selectedApp:i,selectedCloudProject:l,selectedProject:u,selectedSession:m,selectedSessionId:g}){const p=b.useMemo(()=>{const E=new Map;for(const j of e?.cloudProjects??[]){const U=E.get(j.teamId)??[];U.push(j.id),E.set(j.teamId,U)}return E},[e?.cloudProjects]),x=!!(m||i||u||l)?[]:n,C=b.useMemo(()=>r5(t),[t]),w=b.useMemo(()=>nR(o,g),[o,g]);return{chatMentionApps:x,cloudProjectIdsByTeam:p,connectedAppMentions:C,pendingApproval:w}}const iR="openpond.codexPermissionMode",sR="openpond.codexReasoningEffort";function Cd(){if(typeof window>"u")return null;try{return window.localStorage}catch{return null}}function HK(e){return e==="default"||e==="auto-review"||e==="full-access"?e:null}function FK(e){return e==="low"||e==="medium"||e==="high"||e==="xhigh"?e:null}function lR(e=Cd()){if(!e)return{};const t=HK(e.getItem(iR)),n=FK(e.getItem(sR));return{...t?{codexPermissionMode:t}:{},...n?{codexReasoningEffort:n}:{}}}function KK(e,t=Cd()){try{t?.setItem(iR,e)}catch{}}function VK(e,t=Cd()){try{t?.setItem(sR,e)}catch{}}function lw(e,t=Cd()){const n=jr(e),o=lR(t);return{codexPermissionMode:o.codexPermissionMode??n.codexPermissionMode??Mm,codexReasoningEffort:o.codexReasoningEffort??n.codexReasoningEffort??Pm}}function GK(e,t=Cd()){const n=jr(e),o=lR(t),i={};return o.codexPermissionMode&&o.codexPermissionMode!==n.codexPermissionMode&&(i.codexPermissionMode=o.codexPermissionMode),o.codexReasoningEffort&&o.codexReasoningEffort!==n.codexReasoningEffort&&(i.codexReasoningEffort=o.codexReasoningEffort),i}function ZK({connection:e,setBootstrap:t,setCodexPermissionMode:n,setCodexReasoningEffort:o,setError:i}){const l=b.useCallback(m=>{n(m),KK(m),e&&ge.savePreferences(e,{codexPermissionMode:m}).then(()=>{t(g=>g&&{...g,preferences:{...g.preferences,codexPermissionMode:m}})}).catch(g=>{i(g instanceof Error?g.message:String(g))})},[e,t,n,i]),u=b.useCallback(m=>{o(m),VK(m),e&&ge.savePreferences(e,{codexReasoningEffort:m}).then(()=>{t(g=>g&&{...g,preferences:{...g.preferences,codexReasoningEffort:m}})}).catch(g=>{i(g instanceof Error?g.message:String(g))})},[e,t,o,i]);return{changeCodexPermissionMode:l,changeCodexReasoningEffort:u}}function WK({bootstrap:e,connection:t,cloudProjectById:n,cloudProjectIdsByTeam:o,setSelectedAppId:i,setSelectedProjectId:l,setSelectedSessionId:u,setView:m,setError:g,rememberWorkspaceState:p,showToast:S}){const[x,C]=b.useState([]),[w,E]=b.useState(null),[j,U]=b.useState(null),[D,B]=b.useState(!1),[K,I]=b.useState(!1),[O,N]=b.useState(null),z=b.useMemo(()=>x.find(ie=>ie.id===w)??null,[x,w]),G=b.useMemo(()=>z?e?.localProjects.find(ie=>{const fe=ie.linkedSandboxProject;return fe?.teamId===z.teamId&&fe.projectId===z.projectId})??null:null,[e?.localProjects,z]);b.useEffect(()=>{if(!t||o.size===0){C([]),U(null),N(null);return}let ie=!1;return B(!0),Promise.all(Array.from(o.entries()).map(([fe,te])=>ge.cloudWorkItems(t,{teamId:fe,projectIds:te,limit:100}))).then(fe=>{if(ie)return;const te=new Map;for(const L of fe)for(const Q of L.workItems)te.set(Q.id,Q);const R=[...te.values()].sort((L,Q)=>Date.parse(Q.updatedAt)-Date.parse(L.updatedAt));C(R),N(null)}).catch(fe=>{ie||N(fe instanceof Error?fe.message:String(fe))}).finally(()=>{ie||B(!1)}),()=>{ie=!0}},[o,t]),b.useEffect(()=>{if(!t||!z){U(null);return}let ie=!1;return B(!0),ge.cloudWorkItem(t,z.id,{teamId:z.teamId}).then(fe=>{ie||(U(fe),N(null))}).catch(fe=>{ie||N(fe instanceof Error?fe.message:String(fe))}).finally(()=>{ie||B(!1)}),()=>{ie=!0}},[t,z]);const ne=b.useCallback(async ie=>{if(!t)return;const fe=await ge.cloudWorkItem(t,ie.id,{teamId:ie.teamId});U(fe),C(te=>{const R=te.filter(L=>L.id!==fe.workItem.id);return[fe.workItem,...R].sort((L,Q)=>Date.parse(Q.updatedAt)-Date.parse(L.updatedAt))})},[t]),ce=b.useCallback(()=>{E(null),i(null),l(null),u(null),N(null),m("cloud")},[i,l,u,m]),Y=b.useCallback(ie=>{E(ie.id),i(null),l(Wt("cloud",ie.projectId)),u(null),N(null),m("cloud")},[i,l,u,m]),ue=b.useCallback(async ie=>{if(!t)return N("OpenPond App server is not connected."),!1;const fe=n.get(ie.projectId);if(!fe)return N("Select a Cloud Project before starting a task."),!1;const te=ie.prompt.split(/\s+/).slice(0,12).join(" ").slice(0,120)||"Cloud task",R=Hm(ie.prompt),L=R&&(R.command==="create"||R.command==="edit")?await Jn(()=>import("./create-pipeline-request-CoUS3TxW.js"),[],import.meta.url):null,Q=L&&R&&(R.command==="create"||R.command==="edit")?L.buildHostedCloudWorkCreateImproveRun({command:R.command,objective:R.args||ie.prompt,payload:e,project:fe,source:"cloud_work_home"}):null;if(R?.command==="edit"&&!Q){const xe="Select an agent-backed Cloud work item before using /edit.";return N(xe),g(xe),!1}const Ae=Q?L?.buildInitialCreateImproveRun(Q)??null:null,je=YK(R),Le=Ae?.adapter.kind==="hosted"?Ae.adapter.sourceRef:ie.sourceRef??fe.defaultBranch??null,de=Ae?.adapter.kind==="hosted"?Ae.adapter.baseSha:ie.baseSha??null,He=ie.select??!0;I(!0),N(null);try{const xe=await ge.createCloudWorkItem(t,{teamId:fe.teamId,projectId:fe.id,title:Ae?.objective??te,initialMessage:ie.prompt,sourceRef:Le,baseSha:de,localProjectId:ie.localProjectId??null,localProjectName:ie.localProjectName??null,localWorkspacePath:ie.localWorkspacePath??null,requestedExecutionTarget:ie.requestedExecutionTarget??null,createImproveRun:Ae,usageAttribution:je});return U(xe),C(Ke=>[xe.workItem,...Ke.filter(Ue=>Ue.id!==xe.workItem.id)]),He&&(E(xe.workItem.id),i(null),l(Wt("cloud",fe.id)),u(null),m("cloud")),Ae?(S("Agent plan is ready for review.","info"),!0):(await ge.handleCloudWorkItemInBackground(t,xe.workItem.id,{teamId:fe.teamId,prompt:ie.prompt,sourceRef:Le,baseSha:de,branchPolicy:{mode:"patch_only"},budget:{maxDurationSeconds:1800},usageAttribution:je}),await ne(xe.workItem),S("Cloud task started in the background.","success"),!0)}catch(xe){const Ke=xe instanceof Error?xe.message:String(xe);return N(Ke),g(Ke),!1}finally{I(!1)}},[e,n,t,ne,g,i,l,u,m,S]),Se=b.useCallback(async ie=>{if(!t||!z)return;const fe=j?.createImproveRun??z.createImproveRun??null,te=ie.trim().match(/^revise plan:\s*([\s\S]+)$/i)?.[1]?.trim()??"",R=fe&&te?(await Jn(async()=>{const{reviseCreateImproveRun:L}=await import("./create-pipeline-request-CoUS3TxW.js");return{reviseCreateImproveRun:L}},[],import.meta.url)).reviseCreateImproveRun(fe,te):fe;I(!0),N(null);try{const L=await ge.sendCloudWorkItemMessage(t,z.id,{teamId:z.teamId,message:ie,createImproveRun:te?R:void 0,usageAttribution:te?zg(fe):void 0});U(Q=>Q&&{...Q,createImproveRun:te?R:Q.createImproveRun,workItem:te?{...Q.workItem,createImproveRun:R}:Q.workItem,messages:[...Q.messages,L.userMessage,L.message]})}catch(L){const Q=L instanceof Error?L.message:String(L);N(Q),g(Q)}finally{I(!1)}},[j,t,z,g]),me=b.useCallback(async ie=>{if(!t||!z)return;const fe=j?.createImproveRun??z.createImproveRun??null,te=fe?(await Jn(async()=>{const{approveCreateImproveRun:L}=await import("./create-pipeline-request-CoUS3TxW.js");return{approveCreateImproveRun:L}},[],import.meta.url)).approveCreateImproveRun(fe):null,R=zg(fe);I(!0),N(null);try{ie&&await ge.sendCloudWorkItemMessage(t,z.id,{teamId:z.teamId,message:ie}),await ge.handleCloudWorkItemInBackground(t,z.id,{teamId:z.teamId,prompt:ie,sourceRef:z.sourceRef,baseSha:z.baseSha,...JK(z,j),branchPolicy:{mode:"patch_only"},budget:{maxDurationSeconds:1800},createImproveRun:te,usageAttribution:R,payload:fe?{createImproveDecision:"approved",createImproveState:"applying_source"}:void 0}),await ne(z),S(fe?"Agent Create/Improve run started in the background.":"Cloud task started in the background.","success")}catch(L){const Q=L instanceof Error?L.message:String(L);N(Q),g(Q)}finally{I(!1)}},[j,t,ne,z,g,S]),qe=b.useCallback(async()=>{if(!(!t||!z)){I(!0),N(null);try{await ge.cancelCloudWorkItemTask(t,z.id,{teamId:z.teamId}),await ne(z),S("Cloud task stopped.","success")}catch(ie){const fe=ie instanceof Error?ie.message:String(ie);N(fe),g(fe)}finally{I(!1)}}},[t,ne,z,g,S]),$=b.useCallback(async()=>{if(!t||!z)return;const ie=j?.workItem??z;if(!G){const R="No linked local checkout exists for this Cloud Project.";N(R),g(R);return}const fe=ie.latestSandboxId??null;if(!fe){const R="No reviewed Cloud sandbox is available for this work item.";N(R),g(R);return}if(window.confirm(`Apply the reviewed Cloud patch to ${G.name}? Your local checkout must be clean.`)){I(!0),N(null);try{const R=await ge.applyCloudWorkItemLocalPatch(t,ie.id,{teamId:ie.teamId,localProjectId:G.id,sandboxId:fe});p(R.workspaceState),C(L=>L.map(Q=>Q.id===R.workItem.id?R.workItem:Q)),U(L=>L&&{...L,workItem:R.workItem}),S(`Applied Cloud patch to ${R.localProject.name} (${R.patch.fileCount} file${R.patch.fileCount===1?"":"s"}).`,"success")}catch(R){const L=R instanceof Error?R.message:String(R);N(L),g(L)}finally{I(!1)}}},[j,t,p,z,G,g,S]),be=b.useCallback(async()=>{if(!t||!z)return;const ie=j?.createImproveRun??z.createImproveRun??null;if(!ie){await qe();return}const fe=(await Jn(async()=>{const{cancelCreateImproveRun:te}=await import("./create-pipeline-request-CoUS3TxW.js");return{cancelCreateImproveRun:te}},[],import.meta.url)).cancelCreateImproveRun(ie);I(!0),N(null);try{const te=await ge.sendCloudWorkItemMessage(t,z.id,{teamId:z.teamId,message:"Cancel create plan",createImproveRun:fe,usageAttribution:zg(ie)});U(R=>R&&{...R,createImproveRun:fe,workItem:{...R.workItem,createImproveRun:fe},messages:[...R.messages,te.userMessage,te.message]}),C(R=>R.map(L=>L.id===z.id?{...L,createImproveRun:fe}:L)),S("Agent create plan cancelled.","success")}catch(te){const R=te instanceof Error?te.message:String(te);N(R),g(R)}finally{I(!1)}},[qe,j,t,z,g,S]);return{cloudBusy:K,cloudError:O,cloudLoading:D,cloudWorkItemDetail:j,cloudWorkItems:x,selectedCloudWorkItem:z,selectedCloudWorkItemId:w,selectedCloudWorkItemLocalProject:G,applyCloudWorkItemPatchLocally:$,cancelCloudWorkItemCreatePipeline:be,cancelCloudWorkItemTask:qe,createCloudWork:ue,handleCloudWorkItemBackground:me,openCloudHome:ce,selectCloudWorkItem:Y,sendCloudWorkItemMessage:Se,setCloudError:N,setSelectedCloudWorkItemId:E}}function YK(e){return e?{surface:"chat",workflowKind:"slash_command",commandName:`/${e.command}`,commandSource:"prompt_parse"}:void 0}function zg(e){if(e?.command)return{surface:"create_improve",workflowKind:"planner",createImproveRunId:e.id,commandName:e.command,commandSource:"api"}}function JK(e,t){const n=t?.workItem.id===e.id,o=n?t.workItem:null,i=n?t.runtimeSessions.find(g=>!g.endedAt&&(g.runtimeId||g.sandboxId))??t.runtimeSessions.find(g=>g.runtimeId||g.sandboxId)??null:null,l=o?.latestRuntimeId??e.latestRuntimeId??i?.runtimeId??null,u=o?.latestSandboxId??e.latestSandboxId??i?.sandboxId??null,m=o?.assignedAgentId??e.assignedAgentId??null;return{...l?{sourceRuntimeId:l}:{},...u?{sourceSandboxId:u}:{},...m?{agentId:m}:{}}}const XK=6e4;function Yv(e,t){if(!e)return t;const n=eV(e.updatedAt,t.updatedAt)?{...t,pinned:e.pinned,archived:e.archived,order:e.order,status:e.status,updatedAt:e.updatedAt}:t;return uR(e,n)?e:n}function QK(e,t){const n=Yv(e,t),o=e?{...n,pinned:e.pinned,archived:e.archived,order:e.order,updatedAt:e.updatedAt}:n;return e&&uR(e,o)?e:o}function Hu(e,t){let n=!1,o=!1;const i=e.map(l=>{if(l.id!==t.id)return l;n=!0;const u=Yv(l,t);return u!==l&&(o=!0),u});return n?o?i:e:[t,...e]}function Wm(e,t){let n=!1,o=!1;const i=e.map(l=>{if(l.id!==t.id)return l;n=!0;const u=QK(l,t);return u!==l&&(o=!0),u});return n?o?i:e:[t,...e]}function zb(e,t,n,o=Date.now()){const i=new Map(e.map(l=>[l.id,l]));return t.map(l=>{const u=i.get(l.id);if(u&&n){const m=nV(u,l,n,o);if(m)return m}return Yv(u,l)})}function cw(e,t,n,o=Date.now()){const i=new Map(e.map(p=>[p.id,p])),l=new Map(zb(e,t,n,o).map(p=>[p.id,p])),u=new Set(i.keys()),m=t.filter(p=>!u.has(p.id)).map(p=>l.get(p.id)??p),g=e.map(p=>{const S=l.get(p.id);return S||(cR(p,t)?p:null)}).filter(p=>!!p);return[...m,...g]}function cR(e,t){const n=Date.parse(e.updatedAt);if(!Number.isFinite(n))return!1;const o=tV(t);return o===null||n>=o}function uw(e,t,n,o=Date.now()){const i=new Map(t.map(l=>[l.id,l]));for(const l of n){const u=i.get(l.id);u&&(dR(u,l)||(e[l.id]=o))}}function eV(e,t){const n=Date.parse(e),o=Date.parse(t);return Number.isFinite(n)&&Number.isFinite(o)&&n>o}function uR(e,t){return JSON.stringify(e)===JSON.stringify(t)}function tV(e){let t=null;for(const n of e){const o=Date.parse(n.updatedAt);Number.isFinite(o)&&(t=t===null?o:Math.max(t,o))}return t}function nV(e,t,n,o){const i=n[t.id];return i===void 0?null:o-i>XK||dR(e,t)?(delete n[t.id],null):{...t,pinned:e.pinned,archived:e.archived,order:e.order}}function dR(e,t){return e.pinned===t.pinned&&e.archived===t.archived&&e.order===t.order}const fR=800,aV=5e3,dw=5e4,oV=16,rV=3e4,gi=new Map;function iV(e,t){return gi.get(pR(e,t))?.payload??null}async function mR(e,t,n={}){const o=pR(e,t),i=gi.get(o);if(i?.promise)return i.promise;if(!n.force&&i?.payload&&Date.now()-i.fetchedAt<=rV)return sV(o,i),i.payload;const l=n.limit??fR,u=n.tail??!0,m=ge.codexHistoryThread(e,t,{limit:l,tail:u}).then(g=>{const p=gi.get(o)?.payload??i?.payload,S=u&&p?{...g,events:lV(p.events,g.events)}:g;return gi.set(o,{fetchedAt:Date.now(),payload:S}),fw(),S}).catch(g=>{throw gi.get(o)?.promise===m&&gi.delete(o),g});return gi.set(o,{fetchedAt:i?.fetchedAt??0,payload:i?.payload,promise:m}),fw(),m}function pR(e,t){return`${e.serverUrl}
|
|
170
170
|
${e.token}
|
|
171
171
|
${t}`}function sV(e,t){gi.delete(e),gi.set(e,t)}function fw(){for(;gi.size>oV;){const e=gi.keys().next().value;if(!e)return;gi.delete(e)}}function lV(e,t){const n=new Map;for(const o of e)n.set(o.id,o);for(const o of t)n.set(o.id,o);return Array.from(n.values())}const cV=500,uV=2500,dV=15e3;function fV(e){return e.active?cV:e.surface==="thread"?uV:dV}function Jv(e,t){return!t||e.session.status==="active"?e:{...e,session:{...e.session,status:"active"}}}function mV(e={}){const t={cachedPayload:e.cachedPayload??iV,clearTimer:e.clearTimer??(p=>globalThis.clearTimeout(p)),loadPayload:e.loadPayload??mR,now:e.now??Date.now,setTimer:e.setTimer??((p,S)=>globalThis.setTimeout(p,S))},n=new Map;let o=1;function i(p){const S=hV(p.connection,p.sessionId);let x=n.get(S);x||(x={connection:p.connection,disposed:!1,inFlight:null,latestPayload:t.cachedPayload(p.connection,p.sessionId),nextRefreshAt:null,sessionId:p.sessionId,subscribers:new Map,timer:null},n.set(S,x));const C=o++;return x.subscribers.set(C,p),x.latestPayload&&p.onPayload(x.latestPayload),l(x,0),()=>{const w=n.get(S);if(w){if(w.subscribers.delete(C),w.subscribers.size>0){l(w,m(w));return}w.disposed=!0,g(w),n.delete(S)}}}function l(p,S){if(p.disposed||p.subscribers.size===0||p.inFlight)return;const x=t.now()+Math.max(0,S);p.timer&&p.nextRefreshAt!==null&&p.nextRefreshAt<=x||(g(p),p.nextRefreshAt=x,p.timer=t.setTimer(()=>{p.timer=null,p.nextRefreshAt=null,u(p)},Math.max(0,S)))}async function u(p){if(p.disposed||p.subscribers.size===0||p.inFlight)return;const S=t.loadPayload(p.connection,p.sessionId,{force:!!p.latestPayload});p.inFlight=S;try{const x=await S;if(p.disposed)return;p.latestPayload=x;for(const C of p.subscribers.values())C.onPayload(x)}catch(x){if(p.disposed)return;for(const C of p.subscribers.values())C.onError?.(x)}finally{p.inFlight===S&&(p.inFlight=null),p.disposed||l(p,m(p))}}function m(p){const S=[...p.subscribers.values()],x=S.some(w=>w.locallyActive||w.reportedActive)||p.latestPayload?.session.status==="active"||Gv(p.latestPayload?.events??[])?.tone==="active",C=S.some(w=>w.surface==="thread")?"thread":"sidebar";return fV({active:x,surface:C})}function g(p){p.timer&&t.clearTimer(p.timer),p.timer=null,p.nextRefreshAt=null}return{subscribe:i}}const pV=mV();function Xv(e){return pV.subscribe(e)}function hV(e,t){return`${e.serverUrl}
|
|
172
172
|
${e.token}
|
|
@@ -178,7 +178,7 @@ ${t}`}function gV({connection:e,selectedSessionId:t,selectedSessionLocallyActive
|
|
|
178
178
|
`):"",[z,u]);b.useEffect(()=>{!C||!w||!ia(w)||t.length===0||G({session:C,events:t})},[G,t,C,w]),b.useEffect(()=>{if(!o||!z)return;const fe=o,te=z.split(`
|
|
179
179
|
`).filter(Boolean),R=new Set(ne.split(`
|
|
180
180
|
`).filter(Boolean)),L=new Set(ce.split(`
|
|
181
|
-
`).filter(Boolean)),Q=te.map(Ae=>Xv({connection:fe,locallyActive:L.has(Ae),onPayload:je=>G(Jv(je,L.has(Ae))),reportedActive:R.has(Ae),sessionId:Ae,surface:"sidebar"}));return()=>Q.forEach(Ae=>Ae())},[G,ne,ce,z,o]);const Y=b.useMemo(()=>new Map(D.map(fe=>[fe.id,fe])),[D]),ue=b.useMemo(()=>{const fe=new Map(x.latestGoalRuntimeBySessionId);for(const te of D){const R=te.status==="active"?Mg(te.metadata):null;R&&fe.set(te.id,R)}for(const te of[O,S])for(const[R,L]of Object.entries(te)){const Q=Y.get(R),Ae=Q?.status==="active"?Mg(Q.metadata):null,je=jb(L)??Gv(L)??(Q?.status==="active"?gm(L)??Ae:null);je?fe.set(R,je):fe.delete(R)}if(w)if(l)fe.set(w,l);else if(C?.status==="active"&&t.length>0){const te=jb(t)??gm(t)??Mg(C.metadata);te?fe.set(w,te):fe.delete(w)}else(!ia(w)||t.length>0)&&fe.delete(w);return fe},[t.length,O,l,S,x.latestGoalRuntimeBySessionId,C?.status,C?.metadata,w,Y,D]),Se=b.useMemo(()=>{const fe=new Map(x.latestSubagentRuntimeBySessionId);return w&&(B?fe.set(w,B):fe.delete(w)),fe},[x.latestSubagentRuntimeBySessionId,w,B]),{runningSessionIds:me,selectedSessionRunning:qe}=EV({goalRuntime:l,goalRuntimeBySessionId:ue,runtimeIndexes:x,selectedSession:C,selectedSessionId:w,sidebarSessions:D,subagentRuntimeBySessionId:Se}),$=b.useMemo(()=>Jm(j),[j]);return{runningSessionIds:me,selectedSessionRunning:qe,selectedSteerAutoDispatchBlocked:!!m||$==="blocked",selectedSteerAutoDispatchReady:$==="completed"&&!m&&!qe,sidebarGoalRuntimeBySessionId:ue,sidebarSubagentRuntimeBySessionId:Se}}function PV({searchOpen:e,sectionMenuOpen:t,setSectionMenuOpen:n,setSearchOpen:o,setQuery:i}){b.useEffect(()=>{const l=u=>{if((u.metaKey||u.ctrlKey)&&u.key.toLowerCase()==="k"){u.preventDefault(),n(null),o(m=>!m);return}if(u.key==="Escape"&&e){u.preventDefault(),o(!1),i(""),n(null);return}u.key==="Escape"&&t&&(u.preventDefault(),n(null))};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,t,i,o,n])}function NV({afterSequence:e,connection:t,setEvents:n,setApprovals:o,setSessions:i,setError:l,onDisconnected:u}){b.useEffect(()=>{if(!t?.token||e===null)return;let m=null,g=[],p=null;function S(){m!==null&&(window.clearTimeout(m),m=null)}function x(){l(j=>j==="Event stream disconnected"?null:j)}function C(){p=null;const j=g;if(g=[],j.length===0)return;n(D=>ql(D,j));const U=OV(j);U.length>0&&i(D=>U.reduce(Hu,D)),o(D=>{let B=D;for(const K of j)if(K.name==="approval.requested"&&K.data&&(B=[K.data,...B]),K.name==="approval.resolved"&&K.data&&typeof K.data=="object"){const I=K.data;I.approvalId&&(B=B.filter(O=>O.id!==I.approvalId))}return B})}function w(j){g.push(j),p===null&&(p=window.requestAnimationFrame(C))}const E=dB(t,j=>{S(),x(),w(j)},()=>{S(),m=window.setTimeout(()=>{E.isOpen()||(l("Event stream disconnected"),u?.())},2e3)},()=>{S(),x()},{afterSequence:e});return()=>{S(),p!==null&&window.cancelAnimationFrame(p),E.close()}},[e,t,u,o,l,n,i])}function OV(e){const t=new Map;for(const n of e){if(n.name!=="subagent.started"&&n.name!=="subagent.blocked")continue;const o=n.data;if(!o||typeof o!="object"||Array.isArray(o))continue;const i=am.safeParse(o.childSession);i.success&&t.set(i.data.id,i.data)}return[...t.values()]}function Dg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function zV(e){return typeof e=="string"&&e.trim()?e.trim():null}function $V(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.name!=="create_improve.updated")continue;const o=Dg(n.data),i=Dg(o?.createImproveRun);if(i?.state!=="ready_local"&&i?.state!=="released"||Dg(i.adapter)?.kind!=="local")continue;const u=zV(i.id)??n.id;return[n.sessionId??"global",n.turnId??"turn",u].join(":")}return null}const DV=332,hw=244,gw=560,UV=560,bw=320,vw=2400,LV=440;function Ug(e){const t=typeof window>"u"?gw:Math.min(gw,Math.max(hw,window.innerWidth-420));return Math.min(t,Math.max(hw,Math.round(e)))}function Lg(e){const t=typeof window>"u"?vw:Math.min(vw,Math.max(bw,window.innerWidth-LV));return Math.min(t,Math.max(bw,Math.round(e)))}function qV(e,t){return!!(e&&e.serverUrl===t.serverUrl&&e.token===t.token&&e.platform===t.platform)}const Mc=new Map;function Qv(e,t){const n=e?.trim();return n?`${t?.trim()||"global"}|${n}`:null}function xR(e,t){const n=Qv(e,t);if(!n)return null;const o=Mc.get(n);return o?.updatedAt?o.agents:null}function BV(e,t,n){const o=Qv(e,n);o&&Mc.set(o,{agents:t,promise:null,updatedAt:Date.now()})}function ey(e){const t=e.teamId?.trim();if(!t)return Promise.resolve([]);const n=Qv(t,e.accountKey);if(!n)return Promise.resolve([]);const o=Mc.get(n);if(!e.force){if(o?.updatedAt)return Promise.resolve(o.agents);if(o?.promise)return o.promise}const i=e.fetchAgents(t).then(l=>(BV(t,l,e.accountKey),l)).catch(l=>{const u=Mc.get(n);throw u?.promise===i&&Mc.set(n,{agents:u.agents,promise:null,updatedAt:u.updatedAt}),l});return Mc.set(n,{agents:o?.agents??[],promise:i,updatedAt:o?.updatedAt??0}),i}const HV=6e4,FV=6e4,KV=6e4,ty=["pinned","projects","cloudProjects","chats"];function VV(e,t,n,o=Date.now()){for(const i of YV(t,n))CR(t[i],n[i])||(e[i]=o)}function GV(e,t,n,o=Date.now()){const i={...t};for(const[l,u]of Object.entries(n)){if(o-u>HV){delete n[l];continue}const m=XV(e,l),g=e[l];!m||CR(g,t[l])||(i[l]=g)}return i}function ZV(e,t,n,o=Date.now()){for(const i of ty)t[i]!==n[i]&&(e[i]=o)}function WV(e,t,n,o=Date.now()){const i={...t};for(const l of ty){const u=n[l];if(u!==void 0){if(o-u>FV){delete n[l];continue}if(e[l]===t[l]){delete n[l];continue}i[l]=e[l]}}return JV(e,i)?e:i}function yw(e,t,n=Date.now()){return e===t?null:{value:t,changedAt:n}}function Sw(e,t,n=Date.now()){return t?n-t.changedAt>KV?{value:e,localChange:null}:e===t.value?{value:e,localChange:t}:{value:t.value,localChange:t}:{value:e,localChange:null}}function YV(e,t){return new Set([...Object.keys(e),...Object.keys(t)])}function CR(e,t){return e?.pinned===t?.pinned&&e?.archived===t?.archived&&e?.order===t?.order}function JV(e,t){return ty.every(n=>e[n]===t[n])}function XV(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const QV={connecting:"Connecting to OpenPond",account:"Loading account",team:"Loading default team",ready:"Ready"};function eG(e){return{label:QV[e],ready:e==="ready",stage:e}}const tG=650,nG=1200,aG=6e4;function oG(e){const{setDraftModel:t,setDraftProvider:n,setCodexPermissionMode:o,setCodexReasoningEffort:i,setOpenPondCommandAccessMode:l,setError:u,setSelectedAppId:m,setSelectedProjectId:g,setSelectedSessionId:p}=e,[S,x]=b.useState(null),[C,w]=b.useState(null),[E,j]=b.useState([]),[U,D]=b.useState(null),[B,K]=b.useState([]),[I,O]=b.useState([]),[N,z]=b.useState([]),[G,ne]=b.useState({}),[ce,Y]=b.useState("connecting"),ue=Ob(C?.account),Se=b.useRef({}),me=b.useRef({}),qe=b.useRef({}),$=b.useRef([]),be=b.useRef([]),ie=b.useRef(null),fe=b.useRef(null),te=b.useRef(null),R=b.useRef(null),L=b.useRef(""),Q=b.useRef(!1),Ae=b.useRef(Date.now()),je=b.useRef(null),Le=b.useRef(null),de=b.useCallback(H=>{Q.current||Y(H)},[]),He=b.useCallback(H=>{ne(se=>{const we=typeof H=="function"?H(se):H;return VV(Se.current,se,we),we})},[]),xe=b.useCallback(H=>{K(se=>{const we=typeof H=="function"?H(se):H;return uw(me.current,se,we),$.current=we,we})},[]),Ke=b.useCallback(H=>{O(se=>{const we=typeof H=="function"?H(se):H;return uw(qe.current,se,we),be.current=we,we})},[]),Ue=b.useCallback(()=>{if(Q.current||je.current!==null)return;const H=()=>{je.current=null,!Q.current&&(Q.current=!0,Y("ready"))},se=Date.now()-Ae.current,we=rG(se);if(we===0){H();return}je.current=window.setTimeout(H,we)},[]);b.useEffect(()=>()=>{je.current!==null&&window.clearTimeout(je.current)},[]);const ot=b.useCallback(H=>{const se=ie.current,we=!se||se===H.server.id;ie.current=H.server.id,D(ze=>ze?.serverId===H.server.id?ze:{afterSequence:H.eventWindow?.latestSequence??Fv(H.events)??0,serverId:H.server.id}),L.current=H.preferences.defaultTeamId?.trim()??"",w(H),j(ze=>we?i7(H.events,ze):hm(H.events)),K(ze=>{const Ye=we?cw(ze,H.sessions,me.current):zb(ze,H.sessions,me.current);return $.current=Ye,Ye}),O(ze=>{const Ye=we?cw(ze,H.codexHistorySessions??[],qe.current):zb(ze,H.codexHistorySessions??[],qe.current);return be.current=Ye,Ye}),z(H.approvals),ne(ze=>GV(ze,H.sidebarAppPreferences,Se.current)),m(ze=>ze&&H.apps.some(Ye=>Ye.id===ze)?ze:null),g(ze=>{if(!ze)return null;const Ye=dI(ze);return Ye?.kind==="local"&&H.localProjects.some(Ct=>Ct.id===Ye.id)?Wt("local",Ye.id):Ye?.kind==="cloud"&&(H.cloudProjects??[]).some(Ct=>Ct.id===Ye.id)?Wt("cloud",Ye.id):H.localProjects.some(Ct=>Ct.id===ze)?Wt("local",ze):(H.cloudProjects??[]).some(Ct=>Ct.id===ze)?Wt("cloud",ze):null}),p(ze=>{if(!ze)return null;const Ye=[...H.sessions,...H.codexHistorySessions??[]];if(Ye.some(yt=>yt.id===ze&&!yt.archived))return ze;if(!we)return null;const Ct=$.current.find(yt=>yt.id===ze)??be.current.find(yt=>yt.id===ze)??null;return Ct&&!Ct.archived&&cR(Ct,Ye)?ze:null})},[m,g,p]),$e=b.useCallback(H=>{L.current=H.preferences.defaultTeamId?.trim()??"",w(se=>se&&{...se,preferences:H.preferences})},[]);b.useEffect(()=>{const H=jr(C?.preferences);n(H.defaultChatProvider),t(H.defaultChatModel)},[C?.preferences.defaultChatProvider,C?.preferences.defaultChatModel,t,n]),b.useEffect(()=>{o(lw(C?.preferences).codexPermissionMode)},[C?.preferences.codexPermissionMode,o]),b.useEffect(()=>{i(lw(C?.preferences).codexReasoningEffort)},[C?.preferences.codexReasoningEffort,i]),b.useEffect(()=>{l(_V(C?.preferences).openPondCommandAccessMode)},[C?.preferences.openPondCommandAccessMode,l]),b.useEffect(()=>{if(!S||!C)return;const H=GK(C.preferences),se=JSON.stringify(H);if(se==="{}"){fe.current=null;return}fe.current!==se&&(fe.current=se,ge.savePreferences(S,H).then($e).catch(we=>{fe.current=null,u(we instanceof Error?we.message:String(we))}))},[$e,C,C?.preferences.codexPermissionMode,C?.preferences.codexReasoningEffort,S,u]),b.useEffect(()=>{if(!S||!C)return;const H=kV(C.preferences),se=JSON.stringify(H);if(se==="{}"){te.current=null;return}te.current!==se&&(te.current=se,ge.savePreferences(S,H).then($e).catch(we=>{te.current=null,u(we instanceof Error?we.message:String(we))}))},[$e,C,C?.preferences.openPondCommandAccessMode,S,u]),b.useEffect(()=>{if(!S||!C){R.current=null;return}if(C.account.state!=="signed_in"){R.current=null,Ue();return}const H=Ob(C.account);if(!H){R.current=null,Ue();return}Ue(),de("team");const se=C.preferences.defaultTeamId?.trim()??"",we=Cw(H,se,C.accountMeta.asOf??"initial");if(R.current===we)return;R.current=we;let ze=!1;const Ye=Ct=>ey({teamId:Ct,accountKey:H,fetchAgents:async yt=>(await ge.listSandboxAgents(S,{teamId:yt})).agents}).catch(()=>{!ze&&R.current===we&&(R.current=null)});return ew({accountKey:H,force:!0,fetchOrganizations:()=>xw(S)}).then(async Ct=>{if(ze)return;if(Ct.length===0){Ue();return}if(!!se&&Ct.some(Z=>Z.teamId===se)){await Ye(se),Ue();return}const Et=CK(Ct)?.teamId;if(!Et){Ue();return}const gt=L.current;if(gt&>!==se){Ue();return}const Be=Ye(Et);R.current=Cw(H,Et,C.accountMeta.asOf??"initial");const it=await ge.savePreferences(S,{defaultTeamId:Et});await Be;const y=L.current;if(ze){y&&y!==Et&&ge.savePreferences(S,{defaultTeamId:y}).then($e).catch(Z=>{u(Z instanceof Error?Z.message:String(Z))});return}if(y&&y!==Et){$e(await ge.savePreferences(S,{defaultTeamId:y})),Ue();return}ze||($e(it),Ue())}).catch(Ct=>{ze||(R.current=null,u(Ct instanceof Error?Ct.message:String(Ct)),Ue())}),()=>{ze=!0}},[ot,$e,C?.account,C?.accountMeta.asOf,C?.preferences.defaultTeamId,Ue,S,de,u]),b.useEffect(()=>{if(!S||!ue)return;let H=!1;const se=()=>{H||(H=!0,ew({accountKey:ue,force:!0,fetchOrganizations:()=>xw(S)}).catch(()=>{}).finally(()=>{H=!1}))},we=()=>{document.visibilityState==="visible"&&se()},ze=window.setInterval(se,aG);return window.addEventListener("focus",se),document.addEventListener("visibilitychange",we),()=>{window.clearInterval(ze),window.removeEventListener("focus",se),document.removeEventListener("visibilitychange",we)}},[S,ue]);const Me=b.useCallback(async()=>{de("connecting"),D(null);const H=await PB();x(we=>qV(we,H)?we:H),de("account");const se=await ge.bootstrap(H);ot(se),Ue(),u(we=>we==="Failed to fetch"||we==="Event stream disconnected"?null:we)},[ot,Ue,de,u]);b.useEffect(()=>{let H=!1,se=null;const we=async ze=>{try{await Me()}catch(Ye){if(H)return;u(Ye instanceof Error?Ye.message:String(Ye));const Ct=Math.min(5e3,750+ze*750);se=window.setTimeout(()=>{we(ze+1)},Ct)}};return we(0),()=>{H=!0,se!==null&&window.clearTimeout(se)}},[Me,u]);const q=b.useCallback(()=>{Me().catch(()=>{})},[Me]);NV({afterSequence:U?.afterSequence??null,connection:S,setEvents:j,setApprovals:z,setSessions:xe,setError:u,onDisconnected:q}),b.useEffect(()=>{if(!S||!C){Le.current=null;return}const H=$V(E);!H||Le.current===H||(Le.current=H,ge.profileCurrent(S).then(se=>{w(we=>we&&{...we,profile:se})}).catch(se=>{Le.current=null,u(se instanceof Error?se.message:String(se))}))},[C,S,E,u]);const ae=b.useCallback(()=>{S&&ge.refreshOpenPondAccount(S).then(({account:H,accountMeta:se})=>{w(we=>we&&{...we,account:H,accountMeta:se})}).catch(H=>u(H instanceof Error?H.message:String(H)))},[S,u]);return{appPreferences:G,applyBootstrapPayload:ot,approvals:N,bootstrap:C,codexHistorySessions:I,connection:S,events:E,refreshOpenPondAccount:ae,sessions:B,startup:eG(ce),setAppPreferences:He,setBootstrap:w,setCodexHistorySessions:Ke,setEvents:j,setSessions:xe}}async function xw(e){return(await ge.organizations(e)).organizations.map(Zm).filter(n=>!!n).filter(n=>n.status==="active")}function rG(e){return e>=nG?0:Math.max(0,tG-e)}function Cw(e,t,n){return`${e}::${t||"none"}::${n}`}function iG({appDispatch:e,error:t,setErrorState:n}){const o=b.useRef(null),i=b.useRef(null),l=b.useRef(null),u=b.useRef(0),m=b.useCallback((S,x="info",C={})=>{const w=Date.now()+ ++u.current;return e({type:"showToast",toast:{id:w,message:S,tone:x,...C}}),w},[e]),g=b.useCallback(()=>{e({type:"patch",patch:{settingsSection:"diagnostics",sidebarOpen:!0,view:"settings"}})},[e]),p=b.useCallback(S=>{const x=i.current,C=typeof S=="function"?S(x):S;if(Object.is(x,C))return;if(i.current=C,n(C),!C){l.current!==null&&(e({type:"clearToast",toastId:l.current}),l.current=null);return}l.current=m(sG(C),"error",{actionLabel:"Open diagnostics settings",actionIcon:"settings",onAction:g,dismissible:!0});const w=o.current;w&&ge.recordClientDiagnostic(w,{message:C,surface:"app",context:{href:window.location.href}}).catch(E=>{console.warn("Unable to record client diagnostic.",E)})},[e,g,n,m]);return b.useEffect(()=>{i.current=t,!(t||l.current===null)&&(e({type:"clearToast",toastId:l.current}),l.current=null)},[e,t]),{connectionRef:o,setError:p,showToast:m}}function sG(e){return e==="Failed to fetch"?"Couldn’t connect to OpenPond.":e}const lG={query:"",searchOpen:!1,archivedChatsOpen:!1,sectionMenuOpen:null,projectsExpanded:!1,cloudProjectsExpanded:!1,chatRowsVisibleCount:Yn,sidebarOpen:!0,view:"chat",selectedAppId:null,selectedProjectId:null,selectedSessionId:null,prompt:"",promptDrafts:{},draftProvider:Em,draftModel:dk,codexPermissionMode:Mm,codexReasoningEffort:Pm,openPondCommandAccessMode:hd,busy:!1,diffPanelOpen:!1,diffPanelExpanded:!1,rightPanelMode:"changes",rightChatPanels:[],terminalOpen:!1,syncingWorkspaceAppId:null,settingsSection:"account",newProjectDialogOpen:!1,newProjectMode:"local",newProjectName:"",newProjectPath:"",newProjectBusy:!1,commitDialogOpen:!1,commitMessage:"",commitIncludeUnstaged:!0,commitNextStep:"commit",commitDraft:!0,branchDialogOpen:!1,branchDialogName:"",toast:null,error:null};function ny(e){return e.selectedSessionId?`session:${e.selectedSessionId}`:e.selectedProjectId?`project:${e.selectedProjectId}`:e.selectedAppId?`app:${e.selectedAppId}`:"new-chat"}function ay(e,t,n){if(!n){if(!(t in e))return e;const{[t]:o,...i}=e;return i}return e[t]===n?e:{...e,[t]:n}}function cG(e){return ay(e.promptDrafts,ny(e),e.prompt)}function Du(e,t,n={}){const o={...e,...t},i=ny(o),l=cG(e),u=n.clearSelectedDraft?ay(l,i,""):l;return{...e,...t,promptDrafts:u,prompt:n.clearSelectedDraft?"":u[i]??""}}function uG(e){return e==="selectedAppId"||e==="selectedProjectId"||e==="selectedSessionId"}function dG(e,t){switch(t.type){case"field":{const n=e[t.key],o=typeof t.value=="function"?t.value(n):t.value;if(Object.is(n,o))return e;if(t.key==="prompt"){const i=String(o);return{...e,prompt:i,promptDrafts:ay(e.promptDrafts,ny(e),i)}}return uG(t.key)?Du(e,{[t.key]:o}):{...e,[t.key]:o}}case"patch":return{...e,...t.patch};case"selectApp":return Du(e,{selectedAppId:t.appId,selectedProjectId:null,selectedSessionId:null,view:"chat"});case"selectProject":return Du(e,{selectedAppId:null,selectedProjectId:t.projectId,selectedSessionId:null,view:"chat"});case"selectSession":{const n=t.projectId??null;return Du(e,{selectedSessionId:t.sessionId,selectedAppId:n?null:t.appId??null,selectedProjectId:n,view:"chat"})}case"beginNewChat":return Du(e,{selectedSessionId:null,selectedAppId:t.appId,selectedProjectId:null,error:null,view:"chat"},{clearSelectedDraft:!0});case"openCommitDialog":return{...e,commitMessage:"",commitIncludeUnstaged:!0,commitNextStep:t.nextStep,commitDraft:!0,commitDialogOpen:!0,error:null,view:"chat"};case"openBranchDialog":return{...e,branchDialogName:t.branchName,branchDialogOpen:!0,error:null,view:"chat"};case"showToast":return{...e,toast:t.toast};case"clearToast":return e.toast?.id===t.toastId?{...e,toast:null}:e;default:return e}}function Jt(e,t){return n=>e({type:"field",key:t,value:n})}function fG(e){return{setQuery:Jt(e,"query"),setSearchOpen:Jt(e,"searchOpen"),setArchivedChatsOpen:Jt(e,"archivedChatsOpen"),setSectionMenuOpen:Jt(e,"sectionMenuOpen"),setProjectsExpanded:Jt(e,"projectsExpanded"),setCloudProjectsExpanded:Jt(e,"cloudProjectsExpanded"),setChatRowsVisibleCount:Jt(e,"chatRowsVisibleCount"),setSidebarOpen:Jt(e,"sidebarOpen"),setView:Jt(e,"view"),setSelectedAppId:Jt(e,"selectedAppId"),setSelectedProjectId:Jt(e,"selectedProjectId"),setSelectedSessionId:Jt(e,"selectedSessionId"),setPrompt:Jt(e,"prompt"),setDraftProvider:Jt(e,"draftProvider"),setDraftModel:Jt(e,"draftModel"),setCodexPermissionMode:Jt(e,"codexPermissionMode"),setCodexReasoningEffort:Jt(e,"codexReasoningEffort"),setOpenPondCommandAccessMode:Jt(e,"openPondCommandAccessMode"),setBusy:Jt(e,"busy"),setDiffPanelOpen:Jt(e,"diffPanelOpen"),setDiffPanelExpanded:Jt(e,"diffPanelExpanded"),setRightPanelMode:Jt(e,"rightPanelMode"),setRightChatPanels:Jt(e,"rightChatPanels"),setTerminalOpen:Jt(e,"terminalOpen"),setSyncingWorkspaceAppId:Jt(e,"syncingWorkspaceAppId"),setSettingsSection:Jt(e,"settingsSection"),setNewProjectDialogOpen:Jt(e,"newProjectDialogOpen"),setNewProjectMode:Jt(e,"newProjectMode"),setNewProjectName:Jt(e,"newProjectName"),setNewProjectPath:Jt(e,"newProjectPath"),setNewProjectBusy:Jt(e,"newProjectBusy"),setCommitDialogOpen:Jt(e,"commitDialogOpen"),setCommitMessage:Jt(e,"commitMessage"),setCommitIncludeUnstaged:Jt(e,"commitIncludeUnstaged"),setCommitNextStep:Jt(e,"commitNextStep"),setCommitDraft:Jt(e,"commitDraft"),setBranchDialogOpen:Jt(e,"branchDialogOpen"),setBranchDialogName:Jt(e,"branchDialogName"),setToast:Jt(e,"toast"),setError:Jt(e,"error")}}function mG(){const[e,t]=b.useReducer(dG,lG),[n]=b.useState(()=>OB()),o=b.useCallback(l=>{n.applyAppAction(l),t(l)},[n]),i=b.useMemo(()=>({...fG(o),setPrompt:n.set}),[n,o]);return{composerDraftStore:n,dispatch:o,setters:i,state:e}}function pG(e){return!!(e&&e.includes("Git is required for OpenPond app workspaces")&&e.includes("Command Line Tools"))}function hG(e){const{connection:t,events:n,showToast:o}=e,i=b.useRef(new Set),l=b.useCallback(async()=>{if(t)try{const m=await ge.installMacOSCommandLineTools(t);o(m.message,"info")}catch(m){o(m instanceof Error?m.message:String(m),"error")}},[t,o]),u=b.useCallback((m="OpenPond needs Git to create and sync local projects.")=>{o(m,"error",{actionLabel:"Install Tools",onAction:()=>{l()},persistent:!0})},[o,l]);b.useEffect(()=>{if(!t)return;let m=!1;return ge.gitAvailability(t).then(g=>{m||g.ok||g.installAction!=="macos_command_line_tools"||u("OpenPond needs Git before it can create local projects.")}).catch(()=>{}),()=>{m=!0}},[t,u]),b.useEffect(()=>{for(const m of n){if(i.current.has(m.id))continue;const g=m.error??m.output??null;m.name==="workspace_action_result"&&m.status==="failed"&&pG(g)&&(i.current.add(m.id),u("OpenPond needs Git before it can update this project."))}},[n,u])}function gG({connection:e,preferences:t,sidebarOpen:n,diffPanelOpen:o,diffPanelExpanded:i,setBootstrap:l,setError:u}){const[m,g]=b.useState(()=>jr().sidebarSectionsCollapsed),p=b.useRef(m),S=b.useRef({}),x=b.useRef(null),C=b.useRef(null),[w,E]=b.useState(DV),[j,U]=b.useState(!1),[D,B]=b.useState(UV),[K,I]=b.useState(!1),{pinned:O,projects:N,cloudProjects:z,chats:G}=m;b.useEffect(()=>{if(j)return;const te=Ug(jr(t).sidebarWidth),R=Sw(te,x.current);x.current=R.localChange,E(R.value)},[t,j]),b.useEffect(()=>{if(K)return;const te=Lg(jr(t).diffPanelWidth),R=Sw(te,C.current);C.current=R.localChange,B(R.value)},[K,t]),b.useEffect(()=>{const te=jr(t).sidebarSectionsCollapsed;g(R=>{const L=WV(R,te,S.current);return p.current=L,L})},[t]);const ne=b.useCallback(te=>{l(R=>R&&{...R,preferences:te.preferences})},[l]),ce=b.useCallback(async te=>{if(e&&Ug(jr(t).sidebarWidth)!==te)try{ne(await ge.savePreferences(e,{sidebarWidth:te}))}catch(R){u(R instanceof Error?R.message:String(R))}},[e,t,u,ne]),Y=b.useCallback(async te=>{if(e&&Lg(jr(t).diffPanelWidth)!==te)try{ne(await ge.savePreferences(e,{diffPanelWidth:te}))}catch(R){u(R instanceof Error?R.message:String(R))}},[e,t,u,ne]),ue=b.useCallback(async te=>{if(!e)return;const R=jr(t).sidebarSectionsCollapsed;if(!bG(R,te))try{ne(await ge.savePreferences(e,{sidebarSectionsCollapsed:te}))}catch(L){u(L instanceof Error?L.message:String(L))}},[e,t,u,ne]),Se=b.useCallback(te=>{const R=p.current;ZV(S.current,R,te),p.current=te,g(te),ue(te)},[ue]),me=b.useCallback(()=>{const te=p.current;Se({...te,pinned:!te.pinned})},[Se]),qe=b.useCallback(()=>{const te=p.current;Se({...te,projects:!te.projects})},[Se]),$=b.useCallback(()=>{const te=p.current;Se({...te,cloudProjects:!te.cloudProjects})},[Se]),be=b.useCallback(()=>{const te=p.current;Se({...te,chats:!te.chats})},[Se]),ie=b.useCallback(te=>{if(!n)return;te.preventDefault();const R=te.clientX,L=w;let Q=L;U(!0);function Ae(Le){Q=Ug(L+Le.clientX-R),E(Q)}function je(){window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",je);const Le=yw(L,Q);Le&&(x.current=Le),U(!1),ce(Q)}window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",je,{once:!0})},[ce,n,w]),fe=b.useCallback(te=>{if(!o||i)return;te.preventDefault();const R=te.clientX,L=D;let Q=L;I(!0);function Ae(Le){Q=Lg(L-(Le.clientX-R)),B(Q)}function je(){window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",je);const Le=yw(L,Q);Le&&(C.current=Le),I(!1),Y(Q)}window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",je,{once:!0})},[i,o,D,Y]);return{pinnedCollapsed:O,projectsCollapsed:N,cloudProjectsCollapsed:z,chatsCollapsed:G,sidebarWidth:w,sidebarResizing:j,diffPanelWidth:D,diffPanelResizing:K,togglePinnedCollapsed:me,toggleProjectsCollapsed:qe,toggleCloudProjectsCollapsed:$,toggleChatsCollapsed:be,startSidebarResize:ie,startDiffPanelResize:fe}}function bG(e,t){return e.pinned===t.pinned&&e.projects===t.projects&&e.cloudProjects===t.cloudProjects&&e.chats===t.chats}function vG(e){const[t,n]=b.useState({id:0,kind:null}),[o,i]=b.useState(null),l=b.useCallback((p=null)=>{n(S=>({id:S.id+1,kind:p}))},[]),u=b.useCallback(p=>{i(p)},[]),m=null,g=b.useMemo(()=>{if(e)return o?o.kind==="dataset"?[{label:"Lab",onSelect:()=>l(null)},{label:"Datasets",onSelect:()=>l("dataset")},...o.workproductLabel?[{label:o.workproductLabel}]:[],...o.sectionLabels.map(p=>({label:p}))]:[{label:"Lab",onSelect:()=>l(null)},{label:"Home",onSelect:()=>l(null)},{label:o.kindLabel,onSelect:()=>l(o.kind==="model"?null:o.kind)},...o.workproductLabel?[{label:o.workproductLabel}]:[],...o.sectionLabels.map(p=>({label:p}))]:[{label:"Lab"}]},[e,o,l]);return{backAction:m,breadcrumbs:g,closeDetailKind:t.kind,closeDetailRequestId:t.id,onDetailOpenChange:u}}const yG=6e4;function SG(e){const{connection:t}=e,[n,o]=b.useState(null),[i,l]=b.useState(!1),[u,m]=b.useState(!1),[g,p]=b.useState(null),S=t?.serverUrl??null,x=t?.token??null,C=b.useCallback(async()=>{if(!t)return null;l(!0);try{const U=await ge.insights(t,{status:"all",limit:200});return o(U),p(null),U}catch(U){return p(U instanceof Error?U.message:String(U)),null}finally{l(!1)}},[t]),w=b.useCallback(async(U={})=>{if(!t)return null;m(!0);try{const D=await ge.runInsightsScan(t,U);return o(D),p(null),D}catch(D){return p(D instanceof Error?D.message:String(D)),null}finally{m(!1)}},[t]),E=b.useCallback(async(U,D)=>{if(!t)return null;try{const B=await ge.patchInsight(t,U,{status:D});return o(B),p(null),B}catch(B){return p(B instanceof Error?B.message:String(B)),null}},[t]),j=b.useCallback(async U=>{if(!t)return null;m(!0);try{const D=await ge.askInsights(t,{question:U});return o(D),p(null),D}catch(D){return p(D instanceof Error?D.message:String(D)),null}finally{m(!1)}},[t]);return b.useEffect(()=>{if(!t){o(null),p(null);return}let U=!1;const D=async()=>{const K=await ge.insights(t,{status:"all",limit:200}).catch(I=>(p(I instanceof Error?I.message:String(I)),null));!U&&K&&(o(K),p(null))};D();const B=window.setInterval(D,yG);return()=>{U=!0,window.clearInterval(B)}},[t,S,x]),b.useEffect(()=>{if(!t||!n?.nextScanAt)return;const U=new Date(n.nextScanAt).getTime();if(Number.isNaN(U))return;const D=Math.max(1e3,Math.min(6e4,U-Date.now()+1e3)),B=window.setTimeout(()=>{C()},D);return()=>window.clearTimeout(B)},[t,n?.nextScanAt,C]),{payload:n,items:n?.items??[],runs:n?.runs??[],systemSessionId:n?.systemSessionId??null,systemSession:n?.systemSession??null,summary:n?.summary??null,nextScanAt:n?.nextScanAt??null,scanRunning:!!n?.scanRunning||u,scanStartedAt:n?.scanStartedAt??null,loading:i,scanning:u,error:g,refresh:C,runScan:w,askQuestion:j,patchStatus:E}}function xG(e){const{connection:t,profileId:n}=e,[o,i]=b.useState(null),[l,u]=b.useState(!1),[m,g]=b.useState(null),[p,S]=b.useState(null),x=b.useRef(null),C=b.useCallback(()=>{if(!t)return Promise.resolve(null);if(x.current)return x.current;u(!0);const I=ge.trainingState(t,n).then(O=>(i(O),S(null),O)).catch(O=>(S(Df(O)),null)).finally(()=>{x.current===I&&(x.current=null,u(!1))});return x.current=I,I},[t,n]),w=b.useCallback(async(I,O,N,z="POST",G={})=>{if(!t)return null;G.silent||g(I);try{const ne=await ge.trainingRequest(t,O,N,z);return await C(),G.silent||S(null),ne}catch(ne){return G.silent||S(Df(ne)),null}finally{G.silent||g(null)}},[t,C]);b.useEffect(()=>{if(!t){i(null);return}C()},[t,n,C]);const E=o?.jobs.some(I=>["queued","starting","running","cancelling","reconciling"].includes(I.status))??!1,j=o?.minerRuns.some(I=>["queued","running","cancelling"].includes(I.status))??!1,U=o?.frontierBaselineRuns.some(I=>["queued","running","cancelling"].includes(I.status))??!1,D=o?.servingSessions.some(I=>["starting","ready","stopping"].includes(I.state))??!1;b.useEffect(()=>{if(!t)return;let I=!0,O=null;const N=E||j||U||D?500:3e4,z=async()=>{await C(),I&&(O=window.setTimeout(()=>{z()},N))};return O=window.setTimeout(()=>{z()},N),()=>{I=!1,O!==null&&window.clearTimeout(O)}},[t,U,E,j,D,C]);const B=b.useMemo(()=>({addSource:(I,O)=>w("add-source","/sources",{profileId:n,sessionId:I,turnIds:O}),addSources:I=>w("add-sources","/sources/batch",{profileId:n,sessionIds:I}),estimateSources:I=>t?ge.trainingRequest(t,"/sources/estimate",{sessionIds:I}):Promise.resolve([]),searchChats:(I,O,N=0,z=20)=>t?ge.trainingRequest(t,"/sources/search",{query:I,candidates:O,offset:N,limit:z}):Promise.resolve({schemaVersion:"openpond.trainingChatSearchResult.v1",query:I,offset:N,limit:z,total:0,hasMore:!1,indexedChats:0,totalChats:0,indexing:!1,entries:[]}),runCrossSystemFrontierBaseline:(I,O,N,z=null)=>w("cross-system-frontier-baseline","/cross-system-operations/frontier-baseline",{profileId:n,createImproveRunId:z,localProjectId:I,model:O,reasoningEffort:N,worldSpecs:GL}),cancelCrossSystemFrontierBaseline:I=>w("cancel-cross-system-frontier-baseline",`/cross-system-operations/frontier-baseline/runs/${encodeURIComponent(I)}/cancel`,{}),removeSource:I=>w("remove-source",`/sources/${encodeURIComponent(I)}`,{},"DELETE"),deleteTaskset:I=>w("delete-model",`/tasksets/${encodeURIComponent(I)}`,{},"DELETE"),startCreation:(I,O={})=>w("create-taskset","/task-creations",{profileId:n,sourceIds:I,surface:O.surface??"training_page",mode:O.mode??"defaults",entryMode:O.entryMode??"manual",resourceIntent:O.resourceIntent??"workproduct",objective:O.objective??null,methodHint:O.methodHint??null,preferredBaseModelId:O.preferredBaseModelId??null,candidateId:O.candidateId??null,analysisModel:O.analysisModel??null,analysisReasoningEffort:O.analysisReasoningEffort??null,createImproveRunId:O.createImproveRunId??null,targetIntent:O.targetIntent??{kind:"model",id:null,displayName:null,operation:"create"}}),createModelFromTaskset:(I,O)=>w("create-model","/models/from-taskset",{profileId:n,tasksetId:I,preferredBaseModelId:O}),approveDisclosure:(I,O)=>w("approve-disclosure",`/task-creations/${encodeURIComponent(I)}/disclosure`,{approved:O}),retryCreation:I=>w("retry-creation",`/task-creations/${encodeURIComponent(I)}/retry`,{}),answerQuestions:(I,O)=>w("answer-questions",`/task-creations/${encodeURIComponent(I)}/questions`,{answers:O}),materialize:(I,O)=>w("materialize",`/task-creations/${encodeURIComponent(I)}/materialize`,{approved:O}),chatCreation:(I,O)=>w("task-creator-chat",`/task-creations/${encodeURIComponent(I)}/chat`,{message:O}),renameCreation:(I,O)=>w("rename-creation",`/task-creations/${encodeURIComponent(I)}/name`,{name:O},"PATCH"),cancelCreation:I=>w("cancel-creation",`/task-creations/${encodeURIComponent(I)}/cancel`,{}),runMiner:(I=[],O=[],N)=>w("run-miner","/miner/run",{profileId:n,sourceIds:I,sessionIds:O,config:N}),cancelMinerRun:I=>w("cancel-miner-run",`/miner/runs/${encodeURIComponent(I)}/cancel`,{}),configureMiner:I=>w("configure-miner","/miner/config",{profileId:n,config:I},"PUT"),patchCandidate:(I,O)=>w("candidate",`/candidates/${encodeURIComponent(I)}`,O,"PATCH"),createCandidate:(I,O,N,z)=>w("create-candidate",`/candidates/${encodeURIComponent(I)}/create`,{mode:O,analysisModel:N??null,analysisReasoningEffort:z??null}),baseline:(I,O)=>w("baseline","/baseline",{tasksetId:I,models:O,seeds:[0,1,2],attemptsPerTask:3}),auditGraders:I=>w("audit-graders","/audit-graders",{tasksetId:I}),calibrateJudges:I=>w("calibrate-judges","/calibrate-judges",{tasksetId:I}),readiness:I=>w("readiness","/readiness",{tasksetId:I}),previewExpertBootstrap:I=>w("preview-expert-bootstrap",`/tasksets/${encodeURIComponent(I)}/expert-bootstrap/preview`,{}),approveExpertBootstrap:(I,O)=>w("approve-expert-bootstrap",`/tasksets/${encodeURIComponent(I)}/expert-bootstrap/approve`,{previewHash:O}),createPlan:I=>w("create-plan","/plans",{...I,tasksetId:I.tasksetId}),buildBundle:I=>w("build-bundle","/bundles",{planId:I}),approveTraining:(I,O)=>w("approve-training","/approvals",{planId:I,bundleId:O}),launch:(I,O)=>w("launch","/launch",{planId:I,approvalId:O}),prepareTraining:I=>w("prepare-training","/prepare",I),startPreparedTraining:I=>w("start-prepared-training","/start/prepared",I),startTraining:I=>w("start-training","/start",I),cancelJob:I=>w("cancel-job",`/jobs/${encodeURIComponent(I)}/cancel`,{}),evaluateJob:I=>w("evaluate-job",`/jobs/${encodeURIComponent(I)}/evaluate`,{}),importArtifact:(I,O,N)=>w("import-artifact","/import",{planId:I,bundleId:O,artifactDirectory:N}),rejectModel:(I,O)=>w("reject-model",`/models/${encodeURIComponent(I)}/reject`,{reason:O}),startModelServing:I=>w("start-model-serving",`/models/${encodeURIComponent(I)}/serving`,{profileId:n}),stopModelServing:I=>w("stop-model-serving",`/serving/${encodeURIComponent(I)}/stop`,{}),bindModel:(I,O,N)=>w("bind-model",`/models/${encodeURIComponent(I)}/bind`,{profileId:n,role:O,roleTargetId:N,promotedBy:n}),rollbackModelBinding:I=>w("rollback-model-binding",`/bindings/${encodeURIComponent(I)}/rollback`,{rolledBackBy:n}),updateModelConfiguration:(I,O)=>w("update-model-configuration",`/models/${encodeURIComponent(I)}/configuration`,O,"PATCH",{silent:!0}),setModelPinned:(I,O)=>w("pin-model-version",`/models/${encodeURIComponent(I)}/pin`,{pinned:O},"PATCH"),downloadArtifact:async I=>{if(!t)return!1;g("download-artifact");try{const O=await fetch(`${t.serverUrl}/v1/training/artifacts/${encodeURIComponent(I)}/download`,{headers:{Authorization:`Bearer ${t.token}`}});if(!O.ok)throw new Error(await O.text());const N=O.headers.get("content-disposition")??"",z=/filename="([^"]+)"/.exec(N)?.[1]??"openpond-training-artifact",G=URL.createObjectURL(await O.blob()),ne=document.createElement("a");return ne.href=G,ne.download=z,ne.click(),URL.revokeObjectURL(G),!0}catch(O){return S(Df(O)),!1}finally{g(null)}},downloadModelPackage:async I=>K(`/models/${encodeURIComponent(I)}/download`,`${I}.openpond-lora.tar`),downloadBundle:async I=>K(`/bundles/${encodeURIComponent(I)}/download`,"openpond-training-bundle.json")}),[t,w,n]);async function K(I,O){if(!t)return!1;g("download-bundle");try{const N=await fetch(`${t.serverUrl}/v1/training${I}`,{headers:{Authorization:`Bearer ${t.token}`}});if(!N.ok)throw new Error(await N.text());const z=N.headers.get("content-disposition")??"",G=/filename="([^"]+)"/.exec(z)?.[1]??O,ne=URL.createObjectURL(await N.blob()),ce=document.createElement("a");return ce.href=ne,ce.download=G,ce.click(),URL.revokeObjectURL(ne),!0}catch(N){return S(Df(N)),!1}finally{g(null)}}return{payload:o,loading:l,busyAction:m,error:p,refresh:C,actions:B}}function Df(e){return e instanceof Error?e.message:String(e)}function CG({activeModel:e,activeProvider:t,applyBootstrapPayload:n,beginNewChat:o,composerDraftStore:i,connection:l,requestComposerFocus:u,selectedLocalProjectId:m,selectedSessionId:g,selectLocalProject:p,setDraftModel:S,setDraftProvider:x,setError:C,view:w}){const[E,j]=b.useState(null),U=b.useCallback(z=>{z.sourceProjectId?p(z.sourceProjectId):o(null)},[o,p]),D=b.useCallback(z=>{if(!E)return;const G={...uA(E,z),sessionId:E.sessionId?null:E.sessionId},ne=$l(G);j(G),ne&&(E.sessionId&&U(G),i.set(ne.prompt),u())},[U,i,E,u]),B=b.useCallback(()=>{const z=$l(E);z&&i.getSnapshot().trim()===z.prompt.trim()&&i.set(""),j(null)},[i,E]),K=b.useCallback(z=>{const G=z.model;l9({model:G,connection:l,loadBootstrap:ge.bootstrap,applyBootstrap:n}).then(()=>{const ne={...z,selectedTaskIndex:0,sessionId:null};x(G.providerId),S(G.modelId),j(ne.tasks.length?ne:null),U(ne);const ce=$l(ne);ce&&i.set(ce.prompt)}).catch(C)},[n,U,i,l,S,x,C]),I=b.useCallback(z=>{const G=!!(E&&E.model.providerId===t&&E.model.modelId===e);return{active:G,error:G?dA(E,m):null,metadata:G?s9(E,z,m):null}},[e,t,E,m]),O=b.useCallback(z=>{j(G=>G&&{...G,sessionId:z})},[]),N=b.useCallback(()=>{if(!E)return;const z={...i9(E),sessionId:null},G=$l(z);j(z),G&&(U(z),i.set(G.prompt),u())},[U,i,E,u]);return b.useEffect(()=>{const z=$l(E);!z||w!=="chat"||g||i.set(G=>G.trim()?G:z.prompt)},[i,E,m,g,w]),b.useEffect(()=>{E&&g&&E.sessionId!==g&&j(null)},[E?.sessionId,g]),{advanceAfterTurn:N,begin:K,bindSession:O,dismiss:B,handoff:E,prepareTurn:I,selectTask:D}}const Uu=[],qg=500;function wG(e){const{approvals:t,codexHistoryEvents:n,connection:o,latestServerSequence:i,runtimeIndexes:l,selectedSessionId:u,serverId:m,setCodexHistoryEvents:g,setCodexHistorySessions:p,setError:S}=e,[x,C]=b.useState({}),[w,E]=b.useState({}),j=b.useRef(new Set);b.useEffect(()=>{C({}),E({}),j.current.clear()},[m]);const U=b.useCallback(async()=>{if(!o||!u||j.current.has(u))return!1;const O=w[u];if(O?.hasMore===!1)return!1;if(ia(u)){const G=Math.max(O?.totalMatchingEvents??0,n.length,fR),ne=Math.min(dw,Math.max(aV,G*2));j.current.add(u),E(ce=>({...ce,[u]:{cursorSequence:null,hasMore:!0,loading:!0,totalMatchingEvents:ce[u]?.totalMatchingEvents??n.length}}));try{const ce=await mR(o,u,{force:!0,limit:ne,tail:!1});return g(ce.events),p(Y=>Wm(Y,ce.session)),E(Y=>({...Y,[u]:{cursorSequence:null,hasMore:ce.events.length>=ne&&ne<dw,loading:!1,totalMatchingEvents:ne}})),ce.events.length>n.length}catch(ce){return S(ce instanceof Error?ce.message:String(ce)),E(Y=>({...Y,[u]:{cursorSequence:null,hasMore:Y[u]?.hasMore??!0,loading:!1,totalMatchingEvents:Y[u]?.totalMatchingEvents??n.length}})),!1}finally{j.current.delete(u)}}const N=dl(x[u]??Uu,Ui(l,u)),z=O?.cursorSequence??_G(N);if(!z)return!1;j.current.add(u),E(G=>({...G,[u]:{cursorSequence:G[u]?.cursorSequence??z,hasMore:G[u]?.hasMore??!0,loading:!0,totalMatchingEvents:G[u]?.totalMatchingEvents??null}}));try{const G=await ge.runtimeEventsPage(o,{sessionId:u,beforeSequence:z,limit:qg}),ne=G.events.map(ce=>ce.event);return C(ce=>({...ce,[u]:dl(ne,ce[u]??Uu)})),E(ce=>({...ce,[u]:{cursorSequence:G.previousSequence,hasMore:G.hasMore,loading:!1,totalMatchingEvents:G.totalMatchingEvents}})),ne.length>0}catch(G){return S(G instanceof Error?G.message:String(G)),E(ne=>({...ne,[u]:{cursorSequence:ne[u]?.cursorSequence??z,hasMore:ne[u]?.hasMore??!0,loading:!1,totalMatchingEvents:ne[u]?.totalMatchingEvents??null}})),!1}finally{j.current.delete(u)}},[w,n.length,o,x,l,u,g,p,S]),D=u?x[u]??Uu:Uu,B=b.useMemo(()=>Ui(l,u).length,[l,u]),K=b.useRef(null);b.useEffect(()=>{if(!o||!u||ia(u)||j.current.has(u)||D.length>0||B>0)return;const O=i;if(!O)return;const N=u,z=O+1;j.current.add(N),E(G=>({...G,[N]:{cursorSequence:G[N]?.cursorSequence??z,hasMore:G[N]?.hasMore??!0,loading:!0,totalMatchingEvents:G[N]?.totalMatchingEvents??null}})),ge.runtimeEventsPage(o,{sessionId:N,beforeSequence:z,limit:qg}).then(G=>{const ne=G.events.map(ce=>ce.event);C(ce=>({...ce,[N]:dl(ne,ce[N]??Uu)})),E(ce=>({...ce,[N]:{cursorSequence:G.previousSequence,hasMore:G.hasMore,loading:!1,totalMatchingEvents:G.totalMatchingEvents}}))}).catch(G=>{S(G instanceof Error?G.message:String(G)),E(ne=>({...ne,[N]:{cursorSequence:ne[N]?.cursorSequence??z,hasMore:ne[N]?.hasMore??!0,loading:!1,totalMatchingEvents:ne[N]?.totalMatchingEvents??null}}))}).finally(()=>{j.current.delete(N)})},[i,o,D.length,B,u,S]),b.useEffect(()=>{if(!o||!u||ia(u)||j.current.has(u)||!i)return;const O=dl(D,Ui(l,u)),N=Fv(O);if(!N||N>=i)return;const z=`${u}:${N}:${i}`;if(K.current===z)return;K.current=z;let G=!1;return ge.runtimeEventsPage(o,{sessionId:u,afterSequence:N,limit:qg}).then(ne=>{if(G)return;const ce=ne.events.map(Y=>Y.event);ce.length!==0&&C(Y=>r7(Y,u,ce))}).catch(ne=>{G||(K.current=null,S(ne instanceof Error?ne.message:String(ne)))}),()=>{G=!0}},[i,o,l,D,u,S]);const I=b.useMemo(()=>ia(u)?Nb(n,[]):!u||D.length===0?l:Nb(dl(D,Ui(l,u)),t),[t,n,l,D,u]);return{chatHistoryLoadStates:w,loadMoreSelectedChatHistory:U,selectedPagedSessionEvents:D,selectedRuntimeIndexes:I}}function _G(e){let t=null;for(const n of e)n.sequence!==void 0&&(t===null||n.sequence<t)&&(t=n.sequence);return t}function kG(e,t){const n=b.useRef(null);return b.useMemo(()=>{const o=JA(e,t,n.current);return n.current={events:e,indexes:o},o},[t,e])}function Pc(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Bg(e){return Array.isArray(e)?e.filter(t=>!!Pc(t)):[]}function Ol(e){return typeof e=="string"&&e.trim()?e.trim():null}function ww(e){return Ol(e)??Pc(e)}function IG(e){if(!e)return[];const t=Pc(e.sandboxActionRegistry),n=Pc(e.sandboxManifest),o=new Map;for(const i of[...Bg(n?.actionCatalog),...Bg(t?.actions),...Bg(n?.actions)]){const l=Ol(i.id)??Ol(i.name);if(!l)continue;const u=o.get(l);o.set(l,{id:l,name:Ol(i.name)??u?.name??l,label:Ol(i.label)??u?.label??AG(l),description:Ol(i.description)??u?.description??null,visibility:Ol(i.visibility)??u?.visibility??"default",inputSchema:ww(i.inputSchema)??u?.inputSchema??null,outputSchema:ww(i.outputSchema)??u?.outputSchema??null,implementation:Pc(i.implementation)??u?.implementation??null,mcp:Pc(i.mcp)??u?.mcp??null,invokesModel:typeof i.invokesModel=="boolean"?i.invokesModel:u?.invokesModel})}return Array.from(o.values()).filter(i=>i.visibility!=="internal"&&i.visibility!=="debug")}function AG(e){const t=e.replace(/[._-]+/g," ").trim();return t?t.replace(/\b\w/g,n=>n.toUpperCase()):e}function RG(e){return!e?.agentSdk?.detected||!TG(e)?[]:Iv.map(t=>({id:t.name,sourcePath:e.path,sourceActionId:t.name,name:t.name,label:t.name,description:t.description,visibility:"end_user",inputSchema:structuredClone(t.parameters),implementation:{type:"tool",projectId:e.id},invokesModel:!1}))}function TG(e){return[e.name,e.workspacePath.split(/[\\/]/).at(-1)??""].some(t=>t.toLowerCase().replace(/[^a-z0-9]/g,"")==="crosssystemoperations")}function wR(e){if(e.selectedCloudProject)return{id:e.selectedCloudProject.id,teamId:e.selectedCloudProject.teamId,name:e.selectedCloudProject.name,selectionKey:Wt("cloud",e.selectedCloudProject.id),localProjectId:null};const t=e.selectedProject?.linkedSandboxProject??null;if(!t?.projectId||!t.teamId)return null;const n=e.cloudProjects?ti(e.selectedProject,e.cloudProjects):null;return e.cloudProjects&&!n?null:{id:n?.id??t.projectId,teamId:n?.teamId??t.teamId,name:n?.name??t.projectName??e.selectedProject?.name??"Cloud Project",selectionKey:Wt("cloud",n?.id??t.projectId),localProjectId:e.selectedProject?.id??null}}const _R="openpond-agent",kR="openpond-profile-action";function Xm(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ps(e){return typeof e=="string"&&e.trim()?e.trim():null}function oy(e){return e.displayPrompt&&/(?:^|\s)@[A-Za-z0-9_-]+/.test(e.displayPrompt)?"mention":"slash"}function jG(e){const t=Xm(e),n=Ps(t?.scope);return n!=="entire_manifest"&&n!=="start"&&n!=="action"&&n!=="service"&&n!=="schedule"?null:{scope:n,name:Ps(t?.name)}}function EG(e){const t=Ps(e);return t!=="readonly"&&t!=="attempt"&&t!=="feature"&&t!=="rollout"&&t!=="replay"&&t!=="template_build"&&t!=="scheduled_run"&&t!=="patch_only"&&t!=="hotfix"&&t!=="multi_feature_batch"?null:t}function MG(e,t=null){return{id:`agent:${e.id}`,name:e.slug||e.name,label:e.name,description:e.description||(t?`Agent for ${t}`:"OpenPond Agent"),visibility:"default",inputSchema:null,outputSchema:null,implementation:{type:_R,agentId:e.id,agentName:e.name,teamId:e.teamId,projectId:e.projectId,projectName:t,selectedEntrypoint:e.selectedEntrypoint,workflowMode:e.defaultWorkflowMode},mcp:null,invokesModel:!0}}function PG(e){const t=Xm(e.implementation);if(t?.type!==_R)return null;const n=Ps(t.agentId),o=Ps(t.teamId),i=Ps(t.projectId),l=jG(t.selectedEntrypoint),u=EG(t.workflowMode);return!n||!o||!i||!l||!u?null:{agentId:n,agentName:Ps(t.agentName)??e.label??e.name??e.id,teamId:o,projectId:i,projectName:Ps(t.projectName),selectedEntrypoint:l,workflowMode:u}}function NG(e){return{...e,implementation:{...Xm(e.implementation)??{},type:kR,actionId:e.id},invokesModel:e.invokesModel??!0}}function OG(e){const t=Xm(e.implementation);if(t?.type!==kR)return null;const n=Ps(t.actionId)??e.id;return n?{actionId:n,actionLabel:e.label??e.name??n}:null}function zG({action:e,attachments:t=[],displayPrompt:n,prompt:o,sessionId:i}){return{action:e.actionId,input:{prompt:o,message:o,source:"openpond_app",...t.length>0?{attachments:t}:{}},metadata:{source:"openpond_app",selectedActionId:e.actionId,selectedActionLabel:e.actionLabel,selectedBy:oy({displayPrompt:n}),...n&&n!==o?{displayPrompt:n}:{},...i?{sessionId:i}:{}}}}function $G({action:e,attachments:t=[],displayPrompt:n,prompt:o,teamId:i}){return{teamId:i,triggerType:"manual",entrypoint:{scope:"action",name:e.id},input:{prompt:o,message:o,actionName:e.id,source:"openpond_app",...t.length>0?{attachments:t}:{}},metadata:{source:"openpond_app",selectedActionId:e.id,selectedActionLabel:e.label??e.name??e.id,selectedBy:oy({displayPrompt:n}),...n&&n!==o?{displayPrompt:n}:{}}}}function DG({agent:e,attachments:t=[],displayPrompt:n,prompt:o}){return{teamId:e.teamId,triggerType:"manual",entrypoint:e.selectedEntrypoint,input:{prompt:o,message:o,source:"openpond_app",...t.length>0?{attachments:t}:{}},metadata:{source:"openpond_app",selectedAgentId:e.agentId,selectedAgentName:e.agentName,selectedActionId:`agent:${e.agentId}`,selectedActionLabel:e.agentName,selectedBy:oy({displayPrompt:n}),...n&&n!==o?{displayPrompt:n}:{}},workflowMode:e.workflowMode}}const Nc=new Map;function ry(e,t){const n=e?.trim();return n?`${t?.trim()||"global"}|${n}`:null}function UG(e,t){const n=ry(e,t);if(!n)return null;const o=Nc.get(n);return o?.updatedAt?o.projects:null}function LG(e,t,n){const o=ry(e,n);o&&Nc.set(o,{projects:t,promise:null,updatedAt:Date.now()})}function qG(e){const t=e.teamId?.trim();if(!t)return Promise.resolve([]);const n=ry(t,e.accountKey);if(!n)return Promise.resolve([]);const o=Nc.get(n);if(!e.force){if(o?.updatedAt)return Promise.resolve(o.projects);if(o?.promise)return o.promise}const i=e.fetchProjects(t).then(l=>(LG(t,l,e.accountKey),l)).catch(l=>{const u=Nc.get(n);throw u?.promise===i&&Nc.set(n,{projects:u.projects,promise:null,updatedAt:u.updatedAt}),l});return Nc.set(n,{projects:o?.projects??[],promise:i,updatedAt:o?.updatedAt??0}),i}function Hg(e){const t=new Map;for(const n of e)n.archivedAt||n.status!=="active"||t.set(n.id,n);return[...t.values()].sort((n,o)=>n.name.localeCompare(o.name))}function BG({cloudProjectById:e,cloudProjects:t,connection:n,defaultTeamId:o,accountScopeKey:i,localProjects:l,profileActionCatalogEntries:u,selectedCloudProject:m,selectedProject:g}){const[p,S]=b.useState(null),[x,C]=b.useState([]),w=b.useMemo(()=>{const O=new Set;o&&O.add(o);for(const N of t)O.add(N.teamId);for(const N of l){const z=t.find(G=>G.id===N.linkedSandboxProject?.projectId&&G.teamId===N.linkedSandboxProject?.teamId);z?.teamId&&O.add(z.teamId)}return[...O].sort()},[t,o,l]),E=w.join("\0"),j=b.useMemo(()=>wR({cloudProjects:t,selectedCloudProject:m,selectedProject:g}),[t,m,g]);b.useEffect(()=>{if(!n||w.length===0){C([]);return}let O=!1;const N=w.flatMap(z=>xR(z,i)??[]);return C(Hg(N)),Promise.all(w.map(z=>ey({teamId:z,accountKey:i,fetchAgents:async G=>(await ge.listSandboxAgents(n,{teamId:G})).agents}))).then(z=>{O||C(Hg(z.flat()))}).catch(()=>{O||C(Hg(N))}),()=>{O=!0}},[i,n,E]),b.useEffect(()=>{if(!n||!j){S(null);return}const O=UG(j.teamId,i);O&&S(O.find(z=>z.id===j.id)??null);let N=!1;return qG({teamId:j.teamId,accountKey:i,fetchProjects:async z=>(await ge.listSandboxProjects(n,{teamId:z})).projects}).then(z=>{N||S(z.find(G=>G.id===j.id)??null)}).catch(()=>{N||S(null)}),()=>{N=!0}},[i,n,j?.id,j?.teamId]);const U=b.useMemo(()=>RG(g),[g]),D=b.useMemo(()=>{const O=new Map;for(const N of IG(p))O.set(N.id,N);for(const N of U)O.set(N.id,N);return[...O.values()]},[U,p]),B=b.useMemo(()=>(u??[]).map(O=>NG(O)),[u]),K=b.useMemo(()=>[...x.map(O=>MG(O,e.get(O.projectId)?.name??null)),...B,...D],[e,B,D,x]);return{openPondActionCatalog:b.useMemo(()=>[...B,...D],[B,D]),selectedActionCatalog:K,selectedProjectActionCatalog:D}}function HG({selectedProjectId:e}){const[t,n]=b.useState(()=>new Set),o=b.useCallback(l=>{n(u=>{if(u.has(l))return u;const m=new Set(u);return m.add(l),m})},[]),i=b.useCallback(l=>{n(u=>{const m=new Set(u);return m.has(l)?m.delete(l):m.add(l),m})},[]);return b.useEffect(()=>{e&&o(e)},[o,e]),{expandedProjectIds:t,expandProject:o,toggleProjectExpanded:i,setExpandedProjectIds:n}}function FG(){const e=new Map;function t(i,l){const u=e.get(i);if(u)return u.consumers+=1,n(i,u,!0);const m=new AbortController,g={controller:m,consumers:1,settled:!1,promise:Promise.resolve().then(()=>l(m.signal)).finally(()=>{g.settled=!0,e.get(i)===g&&e.delete(i)})};return e.set(i,g),n(i,g,!1)}function n(i,l,u){let m=!1;return{key:i,promise:l.promise,shared:u,release:()=>{m||(m=!0,l.consumers=Math.max(0,l.consumers-1),l.consumers===0&&!l.settled&&l.controller.abort())}}}function o(){for(const i of e.values())i.consumers=0,i.settled||i.controller.abort()}return{request:t,cancelAll:o,inFlightCount:()=>e.size}}function Fg(e,t,n){return`workspace-status:${e.serverUrl}:${t}:${n?"ensure":"read"}`}function KG(e,t){return`workspace-diff:${e.serverUrl}:${t}`}function Kg(e){return e instanceof Error&&e.name==="AbortError"}function VG({connection:e,activeWorkspaceAppId:t,view:n,shouldLoadWorkspaceDiff:o,sidebarWorkspaceAppIds:i,setError:l}){const[u,m]=b.useState(null),[g,p]=b.useState({}),[S,x]=b.useState(null),[C,w]=b.useState(!1),[E,j]=b.useState(!1),U=b.useRef(new Set),D=b.useRef(new Set),B=b.useRef(FG()),K=t?g[t]??(u?.appId===t?u:null):null,I=S?.appId===t?S:null,O=n==="chat"||n==="labs",N=b.useCallback(ne=>{U.current.add(ne.appId),m(ne),p(ce=>({...ce,[ne.appId]:ne}))},[]),z=b.useCallback(async(ne,ce=!1)=>{if(!e||!ne)return m(null),null;w(!0);const Y=B.current.request(Fg(e,ne,ce),ue=>ge.workspaceStatus(e,ne,ce,{signal:ue}));try{const ue=await Y.promise;return N(ue),ce&&ue.error?l(`Workspace sync failed: ${ue.error}`):ce&&l(null),ue}catch(ue){return Kg(ue)||(m(null),l(ue instanceof Error?ue.message:String(ue))),null}finally{Y.release(),w(!1)}},[e,N,l]),G=b.useCallback(async(ne=t,ce={})=>{if(!e||!ne)return x(null),null;ce.silent||j(!0);const Y=B.current.request(KG(e,ne),ue=>ge.workspaceDiff(e,ne,{signal:ue}));try{const ue=await Y.promise;return x(ue),ue}catch(ue){return Kg(ue)||(x(null),l(ue instanceof Error?ue.message:String(ue))),null}finally{Y.release(),ce.silent||j(!1)}},[t,e,l]);return b.useEffect(()=>{if(!e||!t||!O){m(null),x(null),w(!1);return}let ne=!1;const ce=B.current.request(Fg(e,t,!1),Y=>ge.workspaceStatus(e,t,!1,{signal:Y}));return w(!0),ce.promise.then(Y=>{ne||(N(Y),Y.initialized||x(ue=>ue?.appId===Y.appId?null:ue))}).catch(Y=>{Kg(Y)||ne||(m(null),l(Y instanceof Error?Y.message:String(Y)))}).finally(()=>{ce.release(),ne||w(!1)}),()=>{ne=!0,ce.release()}},[t,e,N,l,O]),b.useEffect(()=>{if(!e||!t||!O){x(null);return}if(!K?.initialized){K&&!K.initialized&&x(ne=>ne?.appId===t?null:ne);return}o&&G(t)},[t,e,G,o,O,K?.dirty,K?.initialized]),b.useEffect(()=>{if(!e||i.length===0)return;const ne=i.filter(ue=>!U.current.has(ue)&&!D.current.has(ue));if(ne.length===0)return;ne.forEach(ue=>D.current.add(ue));let ce=!1;const Y=ne.map(ue=>({appId:ue,request:B.current.request(Fg(e,ue,!1),Se=>ge.workspaceStatus(e,ue,!1,{signal:Se}))}));return Promise.all(Y.map(({appId:ue,request:Se})=>Se.promise.then(me=>({appId:ue,state:me})).catch(()=>({appId:ue,state:null})).finally(()=>{Se.release(),D.current.delete(ue)}))).then(ue=>{if(!ce)for(const Se of ue)Se.state&&N(Se.state)}),()=>{ce=!0,Y.forEach(({appId:ue,request:Se})=>{Se.release(),D.current.delete(ue)})}},[e,N,i]),b.useEffect(()=>()=>B.current.cancelAll(),[]),{workspaceState:u,workspaceStates:g,workspaceDiff:S,workspaceBusy:C,diffBusy:E,visibleWorkspaceState:K,visibleWorkspaceDiff:I,rememberWorkspaceState:N,refreshWorkspace:z,refreshWorkspaceDiff:G,setWorkspaceBusy:w}}const GG=1,ZG=15e3,WG=15e3,IR=5*6e4,YG=5e3,JG=1e4;function AR(e,t=(o,i)=>new WebSocket(o,i),n={}){const o=new XG(e,t,n.reconnectDelayMs??QG);return o.open(),{close:()=>o.close()}}class XG{constructor(t,n,o){this.input=t,this.webSocketFactory=n,this.reconnectDelayMs=o}input;webSocketFactory;reconnectDelayMs;socket=null;closed=!1;generation=0;reconnectAttempt=0;reconnectTimer=null;connectionAckTimer=null;subscriptionAckTimer=null;keepAliveTimer=null;keepAliveTimeoutMs=IR;lastKeepAliveAt=Date.now();ready=!1;subscriptionChannels=new Map;acknowledgedSubscriptions=new Set;open(){this.connect()}close(){if(this.closed)return;this.closed=!0,this.clearTimers();const t=this.socket;if(this.socket=null,!!t){if(t.readyState===GG)for(const n of this.subscriptionChannels.keys())t.send(JSON.stringify({type:"unsubscribe",id:n}));t.onclose=null,t.onerror=null,t.onmessage=null,t.onopen=null,t.close(1e3,"Client closed")}}connect(){if(this.closed)return;const t=++this.generation;this.subscriptionChannels.clear(),this.acknowledgedSubscriptions.clear(),this.ready=!1,this.clearConnectionTimers();let n;try{n=this.webSocketFactory(this.input.realtimeUrl,["aws-appsync-event-ws",`header-${eZ(JSON.stringify({Authorization:this.input.authorizationToken,host:new URL(this.input.httpUrl).host}))}`])}catch(o){this.reportError(o),this.scheduleReconnect();return}this.socket=n,n.onopen=()=>{this.isCurrent(n,t)&&(n.send(JSON.stringify({type:"connection_init"})),this.connectionAckTimer=setTimeout(()=>{this.failConnection(new Error("Team chat realtime connection acknowledgement timed out."))},ZG))},n.onmessage=o=>{this.isCurrent(n,t)&&this.handleMessage(n,o)},n.onerror=()=>{this.isCurrent(n,t)&&this.failConnection(new Error("Team chat realtime socket failed."),!1)},n.onclose=o=>{this.isCurrent(n,t)&&(this.socket=null,this.clearConnectionTimers(),this.closed||((o.code===4401||o.code===4403)&&this.reportError(new Error("Team chat realtime authorization expired.")),this.scheduleReconnect()))}}handleMessage(t,n){if(typeof n.data!="string")return;let o;try{const l=JSON.parse(n.data);if(!l||typeof l!="object"||Array.isArray(l))return;o=l}catch{this.reportError(new Error("Team chat realtime returned an invalid frame."));return}const i=typeof o.type=="string"?o.type:"";if(i==="connection_ack"){this.connectionAckTimer&&clearTimeout(this.connectionAckTimer),this.connectionAckTimer=null,this.keepAliveTimeoutMs=nZ(o.connectionTimeoutMs),this.lastKeepAliveAt=Date.now(),this.startKeepAliveMonitor(),this.subscribe(t);return}if(i==="ka"){this.lastKeepAliveAt=Date.now();return}if(i==="subscribe_success"){const l=typeof o.id=="string"?o.id:"";if(!this.subscriptionChannels.has(l))return;this.acknowledgedSubscriptions.add(l),this.markReadyWhenSubscribed();return}if(i==="data"){if(this.lastKeepAliveAt=Date.now(),typeof o.event!="string")return;try{this.input.onEvent(JSON.parse(o.event))}catch{this.reportError(new Error("Team chat realtime returned an invalid event."))}return}if(i==="connection_error"||i==="subscribe_error"){const l=aZ(o);if(this.reportError(l),i==="connection_error")this.failConnection(l,!1);else{const u=typeof o.id=="string"?o.id:"";this.subscriptionChannels.delete(u),this.acknowledgedSubscriptions.delete(u),this.markReadyWhenSubscribed()}}}subscribe(t){const n={Authorization:this.input.authorizationToken,host:new URL(this.input.httpUrl).host};for(const o of Array.from(new Set(this.input.channels))){const i=tZ();this.subscriptionChannels.set(i,o),t.send(JSON.stringify({type:"subscribe",id:i,channel:o,authorization:n}))}this.subscriptionAckTimer=setTimeout(()=>{this.failConnection(new Error("Team chat realtime subscription acknowledgement timed out."))},WG)}startKeepAliveMonitor(){this.keepAliveTimer&&clearInterval(this.keepAliveTimer),this.keepAliveTimer=setInterval(()=>{Date.now()-this.lastKeepAliveAt<=this.keepAliveTimeoutMs||this.failConnection(new Error("Team chat realtime connection became stale."))},YG)}markReadyWhenSubscribed(){this.ready||this.subscriptionChannels.size===0||this.acknowledgedSubscriptions.size!==this.subscriptionChannels.size||(this.ready=!0,this.subscriptionAckTimer&&clearTimeout(this.subscriptionAckTimer),this.subscriptionAckTimer=null,this.reconnectAttempt=0,this.input.onReady?.())}failConnection(t,n=!0){if(this.closed)return;n&&this.reportError(t);const o=this.socket;if(this.clearConnectionTimers(),!o){this.scheduleReconnect();return}o.close(4e3,"Reconnect")}scheduleReconnect(){if(this.closed||this.reconnectTimer)return;const t=Math.max(0,Math.floor(this.reconnectDelayMs(this.reconnectAttempt)));this.reconnectAttempt+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}reportError(t){this.input.onError?.(t)}isCurrent(t,n){return!this.closed&&this.socket===t&&this.generation===n}clearConnectionTimers(){this.connectionAckTimer&&clearTimeout(this.connectionAckTimer),this.subscriptionAckTimer&&clearTimeout(this.subscriptionAckTimer),this.keepAliveTimer&&clearInterval(this.keepAliveTimer),this.connectionAckTimer=null,this.subscriptionAckTimer=null,this.keepAliveTimer=null}clearTimers(){this.clearConnectionTimers(),this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null}}function QG(e){const t=Math.min(JG,500*2**Math.min(e,5));return Math.max(100,Math.floor(Math.random()*t))}function eZ(e){const t=new TextEncoder().encode(e);let n="";for(const o of t)n+=String.fromCharCode(o);return btoa(n).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function tZ(){return globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}function nZ(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:IR}function aZ(e){const n=(Array.isArray(e.errors)?e.errors:[])[0];if(n&&typeof n=="object"){const o=n,i=typeof o.errorType=="string"?o.errorType:"RealtimeError",l=typeof o.message=="string"?o.message:"Request failed";return new Error(`${i}: ${l}`)}return new Error("Team chat realtime request failed.")}function oZ(e,t,n){const o=[`/team-chat/users/${e.session.userId}/${e.session.teamId}`,...Array.from(new Set(e.threadIds)).map(i=>`/team-chat/threads/${i}`)];return AR({realtimeUrl:e.session.realtimeUrl,httpUrl:e.session.httpUrl,authorizationToken:e.session.token,channels:o,onEvent:i=>{const l=Pk.safeParse(i);l.success&&e.onEvent(l.data)},onReady:e.onReady,onError:e.onError},t,n)}function rZ(e){return e.refs.find(t=>t.refType==="message_reply")??null}function iZ(e){return{id:e.id,authorType:e.authorType,authorUserId:e.authorUserId,authorAgentId:e.authorAgentId,body:e.body,deleted:!!e.deletedAt}}function MY(e,t){const n=rZ(e);if(!n)return null;const o=t.get(n.refId);return o?iZ(o):lZ(n)}function sZ(e){const t=e.body.slice(0,500);return{authorType:e.authorType,authorUserId:e.authorUserId,authorAgentId:e.authorAgentId,body:t,truncated:t.length<e.body.length}}function PY(e,t){return e.authorUserId?t.get(e.authorUserId)?.name??"Team member":e.authorType==="agent"||e.authorAgentId?"Agent":e.authorType==="system"?"System":"Team member"}function NY(e){return e.deleted?"Message deleted":e.body.replace(/\s+/g," ").trim()||"Attachment"}function lZ(e){const t=e.preview;return{id:e.refId,authorType:cZ(t.authorType),authorUserId:typeof t.authorUserId=="string"?t.authorUserId:null,authorAgentId:typeof t.authorAgentId=="string"?t.authorAgentId:null,body:typeof t.body=="string"?t.body:"",deleted:t.deleted===!0}}function cZ(e){return e==="agent"||e==="system"?e:"user"}function _w(e,t,n){return n===t.conversationId?{...e,aiThread:t}:e}function uZ(e,t){return!e||e.thread.id!==t.thread.id?t:{...t,messages:wd([...e.messages,...t.messages]),hasMoreBefore:e.messages.length>t.messages.length?e.hasMoreBefore:t.hasMoreBefore}}function Vg(e,t){const n=Array.from(t.values()).filter(i=>i.threadId===e.thread.id);if(n.length===0)return e;let o=e.thread;for(const i of n)o=Bc(o,i,"message.created",!0,i.authorUserId);return{...e,thread:o,messages:wd([...e.messages,...n])}}function dZ(e,t){const n=new Set(e.map(i=>i.lastMessage?.clientRequestId).filter(i=>!!i)),o=new Map;for(const i of t.values()){if(i.clientRequestId&&n.has(i.clientRequestId))continue;const l=o.get(i.threadId)??[];l.push(i),o.set(i.threadId,l)}return e.map(i=>{let l=i;for(const u of o.get(i.id)??[])l=Bc(l,u,"message.created",!0,u.authorUserId);return l}).sort((i,l)=>l.lastMessageAt.localeCompare(i.lastMessageAt))}function Gg(e,t,n){for(const o of e)!o.clientRequestId||o.id.startsWith("pending:")||(t.delete(o.clientRequestId),n.delete(o.clientRequestId))}function Zg(e,t,n){const o=e.get(t);o&&e.set(t,{...o,metadata:{...o.metadata,deliveryStatus:n}})}function kw(e,t,n){const o=e.get(t);o&&e.set(t,{...o,metadata:{...o.metadata,uploadProgress:n}})}function wd(e){const t=new Map,n=new Set(e.filter(o=>!o.id.startsWith("pending:")).map(o=>o.clientRequestId).filter(o=>!!o));for(const o of e)o.id.startsWith("pending:")&&o.clientRequestId&&n.has(o.clientRequestId)||t.set(o.id,o);return Array.from(t.values()).sort((o,i)=>o.sequence!==i.sequence?o.sequence-i.sequence:o.createdAt.localeCompare(i.createdAt))}function RR(e){return e.type!=="message.created"&&e.type!=="message.updated"&&e.type!=="message.deleted"?null:yv.safeParse(e.payload.message).data??null}function TR(e,t,n){const o=RR(t);if(o){const i=e.selectedThreadId===o.threadId,l=e.detail?.thread.id===o.threadId?{...e.detail,thread:Bc(e.detail.thread,o,t.type,i,n),messages:wd([...e.detail.messages,o])}:e.detail,m=e.threads.some(g=>g.id===o.threadId)?e.threads.map(g=>g.id===o.threadId?Bc(g,o,t.type,i,n):g).sort((g,p)=>p.lastMessageAt.localeCompare(g.lastMessageAt)):e.threads;return{...e,detail:l,threads:m,error:null}}if(t.type==="read.updated"){const i=typeof t.payload.userId=="string"?t.payload.userId:null,l=Number(t.payload.sequence);if(!i||!Number.isSafeInteger(l)||l<0)return e;const u=m=>({...m,participants:m.participants.map(g=>g.userId===i?{...g,lastReadSequence:Math.max(g.lastReadSequence,l)}:g)});return{...e,threads:e.threads.map(m=>m.id===t.threadId?u(m):m),detail:e.detail?.thread.id===t.threadId?{...e.detail,thread:u(e.detail.thread)}:e.detail}}return e}function Bc(e,t,n,o,i){const l=n==="message.created",u=t.sequence>=e.lastMessageSequence;return{...e,lastMessageId:u?t.id:e.lastMessageId,lastMessageSequence:Math.max(e.lastMessageSequence,t.sequence),lastMessageAt:u?t.createdAt:e.lastMessageAt,updatedAt:u?t.createdAt:e.updatedAt,lastMessage:u?t:e.lastMessage,unreadCount:o||t.authorUserId===i?0:l?e.unreadCount+1:e.unreadCount}}function fZ(e){const t=new Date().toISOString(),n=`pending:${e.clientRequestId}`;return{id:n,threadId:e.threadId,teamId:e.teamId,clientRequestId:e.clientRequestId,authorType:"user",authorUserId:e.userId,authorAgentId:null,sequence:e.sequence,kind:"text",body:e.body,metadata:{deliveryStatus:"sending",mentionUserIds:e.mentionUserIds,localAttachmentPreviews:e.attachments.map(o=>({id:o.id,url:`data:${o.mediaType};base64,${o.contentsBase64}`}))},editedAt:null,deletedAt:null,createdAt:t,refs:e.replyToMessage?[{id:`pending-reply:${e.clientRequestId}`,messageId:n,refType:"message_reply",refId:e.replyToMessage.id,preview:sZ(e.replyToMessage),createdAt:t}]:[],attachments:e.attachments.map(o=>({id:o.id,messageId:null,clientAttachmentId:o.id,kind:"image",name:o.name,mediaType:o.mediaType,sizeBytes:o.sizeBytes,status:"pending",createdAt:t,readyAt:null}))}}function mZ(e,t){const n=e.detail?.thread.id===t.threadId?{...e.detail,thread:Bc(e.detail.thread,t,"message.created",!0,t.authorUserId),messages:wd([...e.detail.messages,t])}:e.detail;return{...e,detail:n,threads:e.threads.map(o=>o.id===t.threadId?Bc(o,t,"message.created",!0,t.authorUserId):o).sort((o,i)=>i.lastMessageAt.localeCompare(o.lastMessageAt)),error:null}}function Iw(e,t,n){return TR(e,{teamId:t.teamId,threadId:t.threadId,type:"message.created",payload:{message:t},createdAt:t.createdAt},n)}function pZ(e,t){return $b(e,t,"failed")}function $b(e,t,n){const o=i=>i.clientRequestId===t&&i.id.startsWith("pending:")?{...i,metadata:{...i.metadata,deliveryStatus:n}}:i;return{...e,detail:e.detail?{...e.detail,thread:{...e.detail.thread,lastMessage:e.detail.thread.lastMessage?o(e.detail.thread.lastMessage):null},messages:e.detail.messages.map(o)}:null,threads:e.threads.map(i=>({...i,lastMessage:i.lastMessage?o(i.lastMessage):null}))}}function Aw(e,t,n){const o=i=>i.clientRequestId===t&&i.id.startsWith("pending:")?{...i,metadata:{...i.metadata,uploadProgress:n}}:i;return{...e,detail:e.detail?{...e.detail,thread:{...e.detail.thread,lastMessage:e.detail.thread.lastMessage?o(e.detail.thread.lastMessage):null},messages:e.detail.messages.map(o)}:null,threads:e.threads.map(i=>({...i,lastMessage:i.lastMessage?o(i.lastMessage):null}))}}function hZ(e,t){const n=e.detail?.messages.filter(l=>l.id!==t)??[],o=n.at(-1)??null,i=e.detail?{...e.detail,thread:e.detail.thread.lastMessageId===t?Rw(e.detail.thread,o):e.detail.thread,messages:n}:null;return{...e,detail:i,threads:e.threads.map(l=>l.lastMessageId===t?Rw(l,o):l)}}function gZ(e){if(e.length>bi.maxAttachments)return null;const t=[];for(const n of e){if(n.kind!=="image"||!bZ(n.mediaType)||!n.contentsBase64||n.sizeBytes<=0||n.sizeBytes>bi.maxAttachmentBytes)return null;t.push({...n,kind:"image",mediaType:n.mediaType,contentsBase64:n.contentsBase64})}return t}function Rw(e,t){return{...e,lastMessageId:t?.id??null,lastMessageSequence:t?.sequence??0,lastMessageAt:t?.createdAt??e.createdAt,updatedAt:t?.createdAt??e.createdAt,lastMessage:t}}function bZ(e){return e==="image/png"||e==="image/jpeg"||e==="image/webp"||e==="image/gif"}const vZ={team_chat_team_not_found:"You no longer have access to this workspace.",workspace_membership_required:"You no longer have access to this workspace.",team_chat_billing_inactive:"Workspace chat is unavailable while its subscription is inactive. Ask the workspace owner to review billing.",workspace_billing_suspended:"Workspace billing is suspended. Ask the workspace owner to update billing.",workspace_billing_cancelled:"This workspace subscription is cancelled. Ask the workspace owner to reactivate it.",workspace_checkout_pending:"Workspace checkout is still pending. Ask the workspace owner to finish setup.",member_paid_usage_disabled:"The workspace owner has not enabled paid model usage for your account.",member_spend_cap_exceeded:"You reached your workspace member spending limit. Ask the workspace owner to adjust it.",member_opchat_quota_exceeded:"You reached your workspace member OpChat limit. Ask the workspace owner to adjust it.",member_search_quota_exceeded:"You reached your workspace member Search limit. Ask the workspace owner to adjust it.",workspace_prepaid_credit_required:"This workspace needs more prepaid credits. Ask the workspace owner to add credits.",workspace_spend_cap_exceeded:"This workspace reached its spend cap. Ask the workspace owner to review billing.",opchat_workspace_quota_exceeded:"This workspace reached its included OpChat limit for the period.",search_workspace_quota_exceeded:"This workspace reached its included Search limit for the period."};function yZ(e){const t=e instanceof Error?e.message:String(e),n=t.trim().toLowerCase();for(const[o,i]of Object.entries(vZ))if(n.includes(o))return i;return n.includes("event stream ended")?"Team chat realtime disconnected. Messages will continue to refresh automatically.":t}const jR="openpond.team-chat.notification-mode";function ER(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function SZ(e=ER()){const t=e?.getItem(jR);return t==="direct_mentions"||t==="none"?t:"all"}function xZ(e,t=ER()){try{t?.setItem(jR,e)}catch{}}function CZ(e){return e.mode==="none"||!e.currentUserId||!e.thread||e.thread.mutedAt||e.message.deletedAt||e.message.authorUserId===e.currentUserId?!1:e.mode==="all"||e.thread.kind==="dm"?!0:(Array.isArray(e.message.metadata.mentionUserIds)?e.message.metadata.mentionUserIds:[]).includes(e.currentUserId)}function wZ(e){const t=e.message.authorUserId?e.members.find(u=>u.userId===e.message.authorUserId)?.name??"Team member":e.message.authorType==="agent"?"Agent":"Team",n=e.thread.title?.trim()||(e.thread.kind==="general"?"general":"conversation"),o=e.thread.kind==="dm"?t:`${t} in #${n}`,l=e.message.body.replace(/\s+/g," ").trim()||(e.message.attachments.length===1?"Sent an image":e.message.attachments.length>1?`Sent ${e.message.attachments.length} images`:"New message");return{eventId:e.eventId,threadId:e.message.threadId,title:o,body:l.length>160?`${l.slice(0,157)}…`:l}}const Tw={members:[],agents:[],threads:[],selectedThreadId:null,detail:null,aiThread:null,agentConversation:null,loading:!1,busy:!1,error:null};function Uf(e,t){return e.map(n=>n.id===t&&n.unreadCount!==0?{...n,unreadCount:0}:n)}function Lf(e){return!e||e.thread.unreadCount===0?e:{...e,thread:{...e.thread,unreadCount:0}}}function _Z(e){return{teamId:e.teamId,body:e.body.trim(),clientRequestId:e.clientRequestId,selectedAgentId:e.conversation.agent.id,conversationId:e.conversation.conversationId}}function kZ(e){return{teamId:e.teamId,body:e.body.trim(),clientRequestId:e.clientRequestId,selectedActionKey:e.selectedActionKey,approvalId:e.approvalId??null}}async function jw(e,t=ge.markTeamChatRead){return e.lastMessageSequence<=0?!1:t(e.connection,e.threadId,e.teamId,e.lastMessageSequence).then(()=>!0,()=>!1)}function IZ(e){const[t,n]=b.useState(Tw),o=b.useRef(t);o.current=t;const[i,l]=b.useState(SZ),[u,m]=b.useState(null),g=b.useRef(null),p=b.useRef(null),S=b.useRef(0),x=b.useRef(new Map),C=b.useRef(new Map),w=b.useRef(0),E=b.useRef(null),j=b.useRef(0),U=b.useRef(new Set),D=b.useRef(0),B=b.useRef(!1),K=b.useRef(new Map),I=b.useRef(new Map),[O,N]=b.useState(null),[z,G]=b.useState(null),ne=b.useCallback(q=>{l(q),xZ(q)},[]),ce=b.useCallback(q=>{m(ae=>ae?.eventId===q?null:ae)},[]),Y=b.useCallback(async()=>{if(!e.connection||!e.teamId)return[];const q=await ge.teamChatThreads(e.connection,e.teamId),ae=dZ(q.threads,K.current);return n(H=>({...H,threads:ae})),ae},[e.connection,e.teamId]),ue=b.useCallback(async()=>{if(!e.connection||!e.teamId)return{members:[],agents:[]};const[q,ae]=await Promise.all([ge.teamChatMembers(e.connection,e.teamId),ge.teamChatAgents(e.connection,e.teamId)]);return n(H=>({...H,members:q.members,agents:ae.agents})),{members:q.members,agents:ae.agents}},[e.connection,e.teamId]),Se=b.useCallback(async q=>{const ae=q??g.current;if(!e.connection||!e.teamId||!ae)return null;const H=(C.current.get(ae)??0)+1;C.current.set(ae,H);const se=await ge.teamChatThread(e.connection,e.teamId,ae);Gg(se.messages,K.current,I.current);const we=Vg(se,K.current);return C.current.get(ae)!==H||(n(ze=>ze.selectedThreadId===ae?{...ze,threads:Uf(ze.threads,ae),detail:Lf(uZ(ze.detail,we))}:ze),g.current===ae&&we.thread.lastMessageSequence>0&&await ge.markTeamChatRead(e.connection,ae,e.teamId,we.thread.lastMessageSequence).catch(()=>{})),we},[e.connection,e.teamId]),me=b.useCallback(async q=>{const ae=q??p.current;if(!e.connection||!e.teamId||!ae)return null;const H=(x.current.get(ae)??0)+1;x.current.set(ae,H);const se=await ge.teamChatAiThread(e.connection,e.teamId,ae);return x.current.get(ae)===H&&p.current===ae&&n(we=>_w(we,se,p.current)),se},[e.connection,e.teamId]),qe=b.useCallback(async q=>{const ae=q??E.current;if(!e.connection||!e.teamId||!ae)return null;const H=await ge.teamChatAgentConversation(e.connection,e.teamId,ae);return n(se=>se.agentConversation?.run.id===ae?{...se,agentConversation:H}:se),H},[e.connection,e.teamId]);b.useEffect(()=>{g.current=t.selectedThreadId},[t.selectedThreadId]),b.useEffect(()=>{E.current=t.agentConversation?.run.id??null},[t.agentConversation?.run.id]),b.useEffect(()=>{const q=t.agentConversation?.run.status;if(!q||!["pending","queued","running"].includes(q))return;const ae=window.setInterval(()=>{qe().catch(H=>{n(se=>({...se,error:ao(H)}))})},2500);return()=>window.clearInterval(ae)},[qe,t.agentConversation?.run.status]),b.useEffect(()=>{if(!e.connection||!e.teamId||!e.currentUserId){n(Tw),N(null),G(null),I.current.clear(),K.current.clear(),C.current.clear(),x.current.clear(),w.current+=1,m(null),U.current.clear(),D.current=0,j.current=0;return}let q=!1;return p.current=null,S.current+=1,w.current+=1,N(null),G(null),I.current.clear(),K.current.clear(),U.current.clear(),D.current=0,n(ae=>({...ae,aiThread:null,agentConversation:null,loading:!0,error:null})),(async()=>{try{const ae=await ge.teamChatEvents(e.connection,e.teamId);if(q)return;j.current=ae.cursor;const H=ge.teamChatMembers(e.connection,e.teamId),se=ge.teamChatAgents(e.connection,e.teamId),we=await ge.teamChatGeneral(e.connection,e.teamId),[ze,Ye,Ct]=await Promise.all([H,se,ge.teamChatThreads(e.connection,e.teamId)]);if(q)return;const yt=g.current&&Ct.threads.some(Be=>Be.id===g.current)?g.current:we.thread.id,Et=yt===we.thread.id?we:await ge.teamChatThread(e.connection,e.teamId,yt);if(q)return;const gt=Lf(Et);n(Be=>({...Be,members:ze.members,agents:Ye.agents,threads:Uf(Ct.threads,yt),selectedThreadId:yt,detail:gt,loading:!1,error:null})),jw({connection:e.connection,teamId:e.teamId,threadId:yt,lastMessageSequence:gt?.thread.lastMessageSequence??0}),G(e.teamId)}catch(ae){if(q)return;n(H=>({...H,loading:!1,error:ao(ae)}))}})(),()=>{q=!0}},[e.connection,e.currentUserId,e.refreshToken,e.teamId]);const $=b.useCallback(q=>{if(U.current.has(q.id))return;if(U.current.add(q.id),U.current.size>2e3){const H=U.current.values().next().value;typeof H=="number"&&U.current.delete(H)}const ae=RR(q);if(ae&&q.type==="message.created"){const H=o.current,se=H.threads.find(ze=>ze.id===ae.threadId)??(H.detail?.thread.id===ae.threadId?H.detail.thread:null),we=ze=>{q.id<=D.current||CZ({mode:i,currentUserId:e.currentUserId,message:ae,thread:ze})&&(D.current=q.id,m(wZ({eventId:q.id,message:ae,thread:ze,members:H.members})))};se?we(se):Y().then(ze=>{const Ye=ze.find(Ct=>Ct.id===ae.threadId);Ye&&we(Ye)}).catch(()=>{})}ae?.clientRequestId&&!ae.id.startsWith("pending:")&&(K.current.delete(ae.clientRequestId),I.current.delete(ae.clientRequestId)),n(H=>TR(H,q,e.currentUserId)),q.type==="thread.created"&&Y().catch(H=>{n(se=>({...se,error:ao(H)}))}),(q.type==="ai_thread.created"||q.type==="ai_turn.updated")&&(Se(q.threadId).catch(H=>{n(se=>({...se,error:ao(H)}))}),q.conversationId===p.current&&me(q.conversationId).catch(H=>{n(se=>({...se,error:ao(H)}))})),ae&&q.type==="message.created"&&g.current===ae.threadId&&ae.authorUserId!==e.currentUserId&&e.connection&&e.teamId&&ge.markTeamChatRead(e.connection,ae.threadId,e.teamId,ae.sequence).catch(()=>{})},[e.connection,e.currentUserId,e.teamId,i,me,Se,Y]),be=b.useCallback(async()=>{if(!(!e.connection||!e.teamId||B.current)){B.current=!0;try{let q=!0;for(;q;){const ae=await ge.teamChatEvents(e.connection,e.teamId,{after:j.current,limit:250});for(const H of ae.events)$(H);j.current=ae.cursor,q=ae.hasMore}}finally{B.current=!1}}},[$,e.connection,e.teamId]);b.useEffect(()=>{if(!e.connection||!e.teamId||z!==e.teamId)return;let q=!1,ae=null;const H=async()=>{try{const se=await ge.teamChatRealtimeSession(e.connection,e.teamId);if(q||(await be(),q))return;N(se);const we=Math.max(3e4,new Date(se.expiresAt).getTime()-Date.now()-3e4);ae=window.setTimeout(()=>{H()},we)}catch{q||(be().catch(()=>{}),ae=window.setTimeout(()=>{H()},1e4))}};return H(),()=>{q=!0,ae!==null&&window.clearTimeout(ae),N(null)}},[be,e.connection,e.teamId,z]);const ie=t.threads.map(q=>q.id).sort().join(",");b.useEffect(()=>{if(!O)return;const q=oZ({session:O,threadIds:ie?ie.split(","):[],onEvent:$,onReady:()=>{be().catch(ae=>{n(H=>({...H,error:ao(ae)}))})},onError:()=>{be().catch(()=>{})}});return()=>{q.close()}},[$,be,O,ie]),b.useEffect(()=>{if(!e.connection||!e.teamId||z!==e.teamId)return;const q=window.setInterval(()=>{be().catch(()=>{})},15e3);return()=>window.clearInterval(q)},[be,e.connection,e.teamId,z]);const fe=b.useCallback(async q=>{if(!e.connection||!e.teamId)return;const ae=w.current+1;w.current=ae;const H=g.current!==q;g.current=q,H&&(S.current+=1,p.current=null),n(se=>({...se,threads:Uf(se.threads,q),selectedThreadId:q,detail:se.detail?.thread.id===q?Lf(se.detail):null,aiThread:H?null:se.aiThread,agentConversation:H?null:se.agentConversation,loading:!0,error:null}));try{const se=await ge.teamChatThread(e.connection,e.teamId,q);if(w.current!==ae||g.current!==q)return;Gg(se.messages,K.current,I.current);const we=Vg(se,K.current);n(ze=>({...ze,threads:Uf(ze.threads,q),detail:Lf(we),loading:!1})),await ge.markTeamChatRead(e.connection,q,e.teamId,we.thread.lastMessageSequence).catch(()=>{})}catch(se){if(w.current!==ae)return;n(we=>({...we,loading:!1,error:ao(se)}))}},[e.connection,e.teamId]),te=b.useCallback(async q=>{if(!e.connection||!e.teamId)return null;const ae=w.current+1;w.current=ae,n(H=>({...H,busy:!0,error:null}));try{const H=await ge.teamChatDm(e.connection,e.teamId,q);if(w.current!==ae)return null;Gg(H.messages,K.current,I.current);const se=Vg(H,K.current),we=g.current!==se.thread.id;return g.current=se.thread.id,we&&(S.current+=1,p.current=null),n(ze=>({...ze,selectedThreadId:se.thread.id,detail:se,aiThread:we?null:ze.aiThread,agentConversation:we?null:ze.agentConversation,busy:!1})),await jw({connection:e.connection,teamId:e.teamId,threadId:se.thread.id,lastMessageSequence:se.thread.lastMessageSequence}),await Y(),se}catch(H){return w.current!==ae||n(se=>({...se,busy:!1,error:ao(H)})),null}},[e.connection,e.teamId,Y]),R=b.useCallback(async()=>{const q=t.detail,ae=q?.messages[0]?.sequence;if(!e.connection||!e.teamId||!q||!q.hasMoreBefore||ae==null)return!1;n(H=>({...H,loading:!0,error:null}));try{const H=await ge.teamChatThread(e.connection,e.teamId,q.thread.id,{beforeSequence:ae,limit:50});return n(se=>{if(se.detail?.thread.id!==q.thread.id)return se;const we=[...H.messages,...se.detail.messages];return{...se,loading:!1,detail:{...se.detail,messages:wd(we),hasMoreBefore:H.hasMoreBefore}}}),!0}catch(H){return n(se=>({...se,loading:!1,error:ao(H)})),!1}},[e.connection,e.teamId,t.detail]),L=b.useCallback(async q=>{const ae=g.current,H=gZ(q.attachments??[]);if(!H)return n(ze=>({...ze,error:"Team chat supports up to 10 PNG, JPEG, WebP, or GIF images per message."})),!1;if(!e.connection||!e.teamId||!ae||!q.body.trim()&&H.length===0)return!1;if(q.replyToMessage&&(q.replyToMessage.threadId!==ae||q.replyToMessage.teamId!==e.teamId||q.replyToMessage.id.startsWith("pending:")||q.replyToMessage.deletedAt))return n(ze=>({...ze,error:"That message is no longer available to reply to."})),!1;if(q.useModel){if(H.length>0)return n(Ye=>({...Ye,error:"Images can be sent to the team thread with Use model turned off."})),!1;const ze=S.current;n(Ye=>({...Ye,busy:!0,error:null}));try{const Ye=await ge.createTeamChatAiThread(e.connection,ae,{teamId:e.teamId,body:q.body.trim(),clientRequestId:crypto.randomUUID(),providerId:q.providerId,modelId:q.modelId}),Ct=S.current===ze&&g.current===ae;return Ct&&(S.current+=1,p.current=Ye.conversationId),n(yt=>({...yt,aiThread:Ct?Ye:yt.aiThread})),Ye.activeTurn&&await ge.executeTeamChatAiTurn(e.connection,Ye.activeTurn.id,e.teamId),await Promise.all([Se(ae),Y()]),n(yt=>({...yt,busy:!1})),!0}catch(Ye){return n(Ct=>({...Ct,busy:!1,error:ao(Ye)})),!1}}const se=crypto.randomUUID();if(q.selectedActionKey){if(H.length>0)return n(ze=>({...ze,error:"Agent invocations do not support image attachments yet."})),!1;n(ze=>({...ze,busy:!0,error:null}));try{return await ge.createTeamChatAgentRun(e.connection,ae,kZ({teamId:e.teamId,body:q.body,clientRequestId:se,selectedActionKey:q.selectedActionKey,approvalId:q.approvalId})),await Promise.all([Se(ae),Y()]),n(ze=>({...ze,busy:!1})),!0}catch(ze){return n(Ye=>({...Ye,busy:!1,error:ao(ze)})),!1}}I.current.set(se,{inputs:H,uploaded:null});const we=fZ({clientRequestId:se,threadId:ae,teamId:e.teamId,userId:e.currentUserId,body:q.body.trim(),mentionUserIds:q.mentionUserIds??[],attachments:H,replyToMessage:q.replyToMessage,sequence:(t.detail?.thread.lastMessageSequence??0)+1});K.current.set(se,we),n(ze=>mZ(ze,we));try{const ze=[];for(const[yt,Et]of H.entries())ze.push(await ge.uploadTeamChatAttachment(e.connection,ae,{teamId:e.teamId,attachment:Et})),kw(K.current,se,`${yt+1} of ${H.length}`),n(gt=>Aw(gt,se,`${yt+1} of ${H.length}`));const Ye=I.current.get(se);Ye&&(Ye.uploaded=ze);const Ct=await ge.sendTeamChatMessage(e.connection,ae,{teamId:e.teamId,body:q.body.trim(),clientRequestId:se,mentionUserIds:q.mentionUserIds,attachmentIds:ze.map(yt=>yt.id),replyToMessageId:q.replyToMessage?.id??null});return I.current.delete(se),K.current.delete(se),n(yt=>Iw(yt,Ct,e.currentUserId)),!0}catch(ze){return Zg(K.current,se,"failed"),n(Ye=>({...pZ(Ye,se),error:ao(ze)})),!1}},[e.connection,e.currentUserId,e.teamId,Se,Y,t.detail?.thread.lastMessageSequence]),Q=b.useCallback(async q=>{if(!(!e.connection||!e.teamId)){S.current+=1,p.current=q,n(ae=>({...ae,aiThread:ae.aiThread?.conversationId===q?ae.aiThread:null,busy:!0,error:null}));try{const ae=await ge.teamChatAiThread(e.connection,e.teamId,q);if(p.current!==q)return;n(H=>({...H,aiThread:ae,busy:!1}))}catch(ae){if(p.current!==q)return;n(H=>({...H,busy:!1,error:ao(ae)}))}}},[e.connection,e.teamId]),Ae=b.useCallback(async q=>{if(!(!e.connection||!e.teamId)){E.current=q,n(ae=>({...ae,busy:!0,error:null}));try{const ae=await ge.teamChatAgentConversation(e.connection,e.teamId,q);n(H=>({...H,agentConversation:ae,busy:!1}))}catch(ae){n(H=>({...H,busy:!1,error:ao(ae)}))}}},[e.connection,e.teamId]),je=b.useCallback(()=>{E.current=null,n(q=>({...q,agentConversation:null}))},[]),Le=b.useCallback(async q=>{const ae=g.current,H=t.agentConversation;if(!e.connection||!e.teamId||!ae||!H||!q.body.trim())return!1;n(se=>({...se,busy:!0,error:null}));try{const se=await ge.createTeamChatAgentRun(e.connection,ae,_Z({teamId:e.teamId,body:q.body,clientRequestId:q.clientRequestId,conversation:H}));E.current=se.run.id;const[we]=await Promise.all([ge.teamChatAgentConversation(e.connection,e.teamId,se.run.id),Se(ae),Y()]);return n(ze=>({...ze,agentConversation:we,busy:!1})),!0}catch(se){return n(we=>({...we,busy:!1,error:ao(se)})),!1}},[e.connection,e.teamId,Se,Y,t.agentConversation]),de=b.useCallback(()=>{S.current+=1,p.current=null,n(q=>({...q,aiThread:null}))},[]),He=b.useCallback(async q=>{const ae=p.current;if(!e.connection||!e.teamId||!ae||!q.body.trim())return!1;n(H=>({...H,busy:!0,error:null}));try{const H=await ge.sendTeamChatAiTurn(e.connection,ae,{teamId:e.teamId,body:q.body.trim(),clientRequestId:crypto.randomUUID(),providerId:q.providerId,modelId:q.modelId});return n(se=>({..._w(se,H,p.current),busy:!1})),H.activeTurn&&await ge.executeTeamChatAiTurn(e.connection,H.activeTurn.id,e.teamId),!0}catch(H){return n(se=>({...se,busy:!1,error:ao(H)})),!1}},[e.connection,e.teamId]),xe=b.useCallback(async()=>{const q=t.aiThread?.activeTurn?.id;return!e.connection||!e.teamId||!q?!1:(await ge.cancelTeamChatAiTurnExecution(e.connection,q,e.teamId)).cancelled},[e.connection,e.teamId,t.aiThread?.activeTurn?.id]),Ke=b.useCallback(async(q,ae)=>{if(!e.connection||!e.teamId)return!1;try{return await ge.editTeamChatMessage(e.connection,q.threadId,q.id,{teamId:e.teamId,body:ae}),await Se(q.threadId),!0}catch(H){return n(se=>({...se,error:ao(H)})),!1}},[e.connection,e.teamId,Se]),Ue=b.useCallback(async q=>{if(!e.connection||!e.teamId)return!1;try{return await ge.deleteTeamChatMessage(e.connection,q.threadId,q.id,e.teamId),await Se(q.threadId),!0}catch(ae){return n(H=>({...H,error:ao(ae)})),!1}},[e.connection,e.teamId,Se]),ot=b.useCallback(async q=>{if(!e.connection||!e.teamId||!q.clientRequestId||!q.id.startsWith("pending:"))return!1;const ae=Array.isArray(q.metadata.mentionUserIds)?q.metadata.mentionUserIds.filter(we=>typeof we=="string"):[],H=I.current.get(q.clientRequestId),se=q.refs.find(we=>we.refType==="message_reply");Zg(K.current,q.clientRequestId,"sending"),n(we=>$b(we,q.clientRequestId,"sending"));try{let we=H?.uploaded??[];if(H&&!H.uploaded){we=[];for(const[Ye,Ct]of H.inputs.entries())we.push(await ge.uploadTeamChatAttachment(e.connection,q.threadId,{teamId:e.teamId,attachment:Ct})),kw(K.current,q.clientRequestId,`${Ye+1} of ${H.inputs.length}`),n(yt=>Aw(yt,q.clientRequestId,`${Ye+1} of ${H.inputs.length}`));H.uploaded=we}const ze=await ge.sendTeamChatMessage(e.connection,q.threadId,{teamId:e.teamId,body:q.body,clientRequestId:q.clientRequestId,mentionUserIds:ae,attachmentIds:we.map(Ye=>Ye.id),replyToMessageId:se?.refId??null});return I.current.delete(q.clientRequestId),K.current.delete(q.clientRequestId),n(Ye=>Iw(Ye,ze,e.currentUserId)),!0}catch(we){return Zg(K.current,q.clientRequestId,"failed"),n(ze=>({...$b(ze,q.clientRequestId,"failed"),error:ao(we)})),!1}},[e.connection,e.currentUserId,e.teamId]),$e=b.useCallback(q=>{q.id.startsWith("pending:")&&(q.clientRequestId&&I.current.delete(q.clientRequestId),q.clientRequestId&&K.current.delete(q.clientRequestId),n(ae=>hZ(ae,q.id)))},[]),Me=b.useCallback(async(q,ae)=>{if(!e.connection||!e.teamId)return!1;try{const H=await ge.setTeamChatThreadMuted(e.connection,q,e.teamId,ae),se=we=>we.id===H.threadId?{...we,mutedAt:H.mutedAt}:we;return n(we=>({...we,threads:we.threads.map(se),detail:we.detail?.thread.id===H.threadId?{...we.detail,thread:se(we.detail.thread)}:we.detail,error:null})),!0}catch(H){return n(se=>({...se,error:ao(H)})),!1}},[e.connection,e.teamId]);return{...t,currentUserId:e.currentUserId,notificationMode:i,incomingNotification:u,setNotificationMode:ne,dismissIncomingNotification:ce,setThreadMuted:Me,selectThread:fe,openDm:te,loadMoreMessages:R,sendMessage:L,openAiThread:Q,openAgentConversation:Ae,closeAgentConversation:je,sendAgentTurn:Le,closeAiThread:de,sendAiTurn:He,stopAiTurn:xe,editMessage:Ke,deleteMessage:Ue,retryMessage:ot,dismissFailedMessage:$e,refreshDirectory:ue,refresh:async()=>{await Promise.all([ue(),Y(),Se(),me(),qe()])}}}function ao(e){return yZ(e)}const MR="local-profile-agent";function OY(e){const t=e.profile;if(!t||t.mode!=="local")return e.hostedActions;const n=new Set(e.hostedActions.flatMap(u=>{const m=u.implementation;return m?.type!=="openpond-agent"||m.profileName!==t.activeProfile?[]:[Dl(m.agentName),Dl(u.name),Dl(u.label)].filter(Boolean)})),o=t.hosted?.teamId===e.teamId?t.hosted.hostedSourceMaterialization:null,i=new Set(e.hostedActions.map(u=>u.implementation?.agentId).filter(u=>typeof u=="string")),l=t.agents.flatMap(u=>u.enabled?o?.agentId===u.id&&!!(o.runtimeAgentId&&i.has(o.runtimeAgentId))||n.has(Dl(u.name))||n.has(Dl(u.id))?[]:[TZ(t,u)]:[]);return[...e.hostedActions,...l]}function zY(e){return e?.implementation?.type===MR}function $Y(e){const t=e.implementation?.profileAgentId;return typeof t=="string"&&t.trim()?t.trim():null}function AZ(e,t){if(!e||e.mode!=="local")return"Load a local OpenPond profile before publishing an agent to Team.";const n=e.agents.find(o=>o.id===t);return n?n.enabled?e.git?.head?e.git.dirty?`Commit your profile changes before publishing ${n.name} to Team.`:e.setupGate.blockingCount>0?`${n.name} has ${e.setupGate.blockingCount} blocking setup requirement${e.setupGate.blockingCount===1?"":"s"}. Complete setup before publishing it to Team.`:null:`Commit ${n.name} before publishing it to Team.`:`${n.name} is disabled in the active profile.`:`Profile agent not found: ${t}`}function RZ(e,t){const n=t.runtimeAgentId?.trim()??"",o=t.profileName?.trim()??"",i=Dl(t.agentName);return e.find(l=>{const u=l.implementation;return u?.type!=="openpond-agent"?!1:n&&typeof u.agentId=="string"&&u.agentId===n?!0:!!(o&&u.profileName===o&&i&&[u.agentName,l.name,l.label].some(m=>Dl(m)===i))})??null}function TZ(e,t){return{id:`local-profile:${e.activeProfile??"default"}:${t.id}:chat`,name:t.name,label:t.name,description:jZ(e),approvalPolicy:{required:!1,risk:"write"},setupRequirements:e.setupGate.blockingRequirements,invokesModel:!0,implementation:{type:MR,profileAgentId:t.id,profileName:e.activeProfile??"default"}}}function jZ(e){return e.git?.head?e.git.dirty?"My Agent · Commit profile changes before publishing to this Team":e.setupGate.blockingCount>0?"My Agent · Complete required setup before publishing to this Team":"My Agent · Publishes to this Team on first use":"My Agent · Commit the profile before publishing to this Team"}function Dl(e){return typeof e=="string"?e.trim().toLowerCase().replace(/[^a-z0-9]+/g,""):""}const Ew=5;function EZ(e){return b.useCallback(async t=>{if(!e.connection||!e.teamId)throw new Error("Connect OpenPond to a Team before publishing an agent.");const n=await ge.profileCheck(e.connection,{kind:"all"}),o=AZ(n,t);if(o)throw new Error(o);const i=n?.agents.find(p=>p.id===t);if(!i)throw new Error(`Profile agent not found: ${t}`);const u=(await ge.profilePush(e.connection,{teamId:e.teamId,ensureHosted:!0,hostedSourceAgentId:t,message:null})).localProfile?.hosted?.hostedSourceMaterialization,m=u?.agentId===t?u.runtimeAgentId:null;e.applyBootstrapPayload(await ge.bootstrap(e.connection));let g=null;for(let p=0;p<Ew;p+=1){const S=await e.refreshDirectory();if(g=RZ(S.agents,{runtimeAgentId:m,profileName:n.activeProfile,agentName:i.name}),g)break;p<Ew-1&&await MZ(200*(p+1))}if(!g)throw new Error(`${i.name} was published, but the Team agent directory has not refreshed yet. Retry the mention in a moment.`);return g},[e.applyBootstrapPayload,e.connection,e.refreshDirectory,e.teamId])}function MZ(e){return new Promise(t=>{setTimeout(t,e)})}function PZ(e){b.useEffect(()=>{if(!e.notification)return;const{eventId:t,threadId:n,title:o,body:i}=e.notification;e.showToast(`${o}: ${i}`,"info",{actionLabel:"Open",onAction:()=>{e.setView("team"),e.selectThread(n)},dismissible:!0,durationMs:6500,placement:"top-right"}),e.dismiss(t)},[e.dismiss,e.notification,e.selectThread,e.setView,e.showToast])}function NZ(e){const{connection:t,refreshToken:n=null}=e,[o,i]=b.useState([]),[l,u]=b.useState(null),[m,g]=b.useState(null),[p,S]=b.useState(null),[x,C]=b.useState(!1),[w,E]=b.useState(!1),[j,U]=b.useState(!1),[D,B]=b.useState(null),[K,I]=b.useState(null),[O,N]=b.useState(null),[z,G]=b.useState(0),ne=b.useRef(0),ce=b.useMemo(()=>o.find(R=>R.id===m)??null,[o,m]),Y=b.useCallback(async()=>{if(!t)return!1;C(!0),B(null);try{const R=await ge.communities(t);return i(R.items),u(R.nextCursor),g(L=>L&&R.items.some(Q=>Q.id===L)?L:null),!0}catch(R){return B(Zf(R)),!1}finally{C(!1)}},[t]),ue=b.useCallback(async()=>{if(!t||!l||x)return!1;C(!0),B(null);try{const R=await ge.communities(t,l);return i(L=>OZ(L,R.items)),u(R.nextCursor),!0}catch(R){return B(Zf(R)),!1}finally{C(!1)}},[t,x,l]),Se=b.useCallback(async R=>{if(!t)return null;const L=++ne.current;E(!0),I(null);try{const Q=await ge.communityPreview(t,R.slug);return ne.current===L&&S(Q),Q}catch(Q){return ne.current===L&&I(Zf(Q)),null}finally{ne.current===L&&E(!1)}},[t]),me=b.useCallback(R=>{const L=o.find(Q=>Q.id===R);L&&(g(L.id),S(Q=>Q?.id===L.id?Q:null),N(null),Se(L))},[o,Se]),qe=b.useCallback(()=>{ne.current+=1,g(null),S(null),I(null),N(null)},[]);b.useEffect(()=>{if(!t){i([]),S(null),g(null);return}Y()},[t,Y,n]),b.useEffect(()=>{!ce||p?.id===ce.id||w||Se(ce)},[Se,p?.id,w,ce]);const $=b.useCallback(async()=>{const R=ce;await Y(),R&&await Se(R)},[Se,Y,ce]),be=b.useCallback(async()=>{if(!t||!p?.currentRules||j)return!1;U(!0),N(null);try{return await ge.joinCommunity(t,p.id,p.currentRules.id),G(R=>R+1),await $(),!0}catch(R){const L=qf(R);return N(L),L.kind==="rules_stale"&&await $(),!1}finally{U(!1)}},[t,j,p,$]),ie=b.useCallback(async()=>{if(!t||!p?.currentRules||j)return!1;U(!0),N(null);try{return await ge.acceptCommunityRules(t,p.id,p.currentRules.id),G(R=>R+1),await $(),!0}catch(R){const L=qf(R);return N(L),L.kind==="rules_stale"&&await $(),!1}finally{U(!1)}},[t,j,p,$]),fe=b.useCallback(async()=>{if(!t||!p||j)return!1;U(!0),N(null);try{return await ge.leaveCommunity(t,p.id),G(R=>R+1),await $(),!0}catch(R){return N(qf(R)),!1}finally{U(!1)}},[t,j,p,$]),te=b.useCallback(async R=>{if(!t||!p||j)return!1;U(!0),N(null);try{return await ge.updateCommunityNotifications(t,p.id,R),i(L=>L.map(Q=>Q.id===p.id&&Q.membership?{...Q,membership:{...Q.membership,notificationMode:R}}:Q)),S(L=>L?.id===p.id&&L.membership?{...L,membership:{...L.membership,notificationMode:R}}:L),!0}catch(L){return N(qf(L)),!1}finally{U(!1)}},[t,j,p]);return{items:o,nextCursor:l,selectedCommunityId:m,selectedSummary:ce,preview:p,discoveryLoading:x,previewLoading:w,membershipBusy:j,discoveryError:D,previewError:K,membershipError:O,membershipVersion:z,refresh:Y,loadMore:ue,showDiscovery:qe,selectCommunity:me,join:be,acceptRules:ie,leave:fe,updateNotifications:te,clearMembershipError:()=>N(null)}}function OZ(e,t){const n=new Map(e.map(o=>[o.id,o]));for(const o of t)n.set(o.id,o);return[...n.values()]}function Zf(e){return e instanceof Error?e.message:String(e)}function qf(e){const t=Zf(e);return t.includes("community_rules_version_stale")?{kind:"rules_stale",message:"The community rules changed. Review the newest version and try again."}:t.includes("community_membership_required")?{kind:"membership_lost",message:"Your community membership is no longer active."}:t.includes("community_join_closed")||t.includes("community_invalid_request")?{kind:"join_conflict",message:"The community could not be joined in its current state."}:{kind:"unknown",message:t}}function zZ(e,t,n){return AR({realtimeUrl:e.session.realtimeUrl,httpUrl:e.session.httpUrl,authorizationToken:e.session.token,channels:[e.session.channel],onEvent:o=>{const i=Bk.safeParse(o);i.success&&e.onEvent(i.data)},onReady:e.onReady,onError:e.onError},t,n)}function $Z(e){const{connection:t,preview:n,currentUserId:o,membershipVersion:i}=e,l=n?.id??null,u=n?.membership?.status==="active",m=!n?.capabilities.requiresRulesAcceptance,[g,p]=b.useState([]),[S,x]=b.useState(null),[C,w]=b.useState({}),[E,j]=b.useState([]),[U,D]=b.useState(!1),[B,K]=b.useState(!1),[I,O]=b.useState(!1),[N,z]=b.useState(!1),[G,ne]=b.useState(null),[ce,Y]=b.useState(null),[ue,Se]=b.useState(null),[me,qe]=b.useState(null),[$,be]=b.useState(!1),[ie,fe]=b.useState(null),[te,R]=b.useState(null),L=b.useRef(null),Q=b.useRef([]),Ae=b.useRef("mentions"),je=b.useRef(0),Le=b.useRef({}),de=b.useRef(new Set),He=b.useMemo(()=>g.find(Be=>Be.id===S)??null,[g,S]),xe=S?C[S]??null:null;b.useEffect(()=>{L.current=S},[S]),b.useEffect(()=>{Q.current=g},[g]),b.useEffect(()=>{Ae.current=n?.membership?.notificationMode??"mentions"},[n?.membership?.notificationMode]);const Ke=b.useCallback(async()=>{if(!t||!l)return!1;D(!0),ne(null);try{const Be=await ge.communityChannels(t,l);return p(Be.channels),x(it=>it&&Be.channels.some(y=>y.id===it)?it:Be.channels.find(y=>y.isDefault)?.id??Be.channels[0]?.id??null),be(!1),!0}catch(Be){const it=Jr(Be);return ne(it),Lu(it)&&be(!0),!1}finally{D(!1)}},[l,t]),Ue=b.useCallback(async Be=>{if(!t||!l)return!1;const it=++je.current;K(!0),Y(null);try{const y=await ge.communityMessages(t,l,Be,{limit:50});return it!==je.current?!1:(w(Z=>({...Z,[Be]:{items:y.messages,hasMoreBefore:y.hasMoreBefore,preview:y.preview}})),be(!1),!0)}catch(y){if(it!==je.current)return!1;const Z=Jr(y);return Y(Z),Lu(Z)&&be(!0),!1}finally{it===je.current&&K(!1)}},[l,t]);b.useEffect(()=>{p(n?.channels??[]),w({}),x(n?.channels.find(Be=>Be.isDefault)?.id??n?.channels[0]?.id??null),ne(null),Y(null),Se(null),be(!1),de.current.clear(),l&&Ke()},[l,Ke,i]),b.useEffect(()=>{S&&Ue(S)},[Ue,S]);const ot=b.useCallback(async(Be,it)=>{if(!t||!l||!u||!m||it<=0)return!1;if((Le.current[Be]??0)>=it)return!0;Le.current[Be]=it;try{const y=await ge.markCommunityRead(t,l,Be,it);return p(Z=>Z.map(le=>le.id===Be?{...le,unreadCount:0,readState:le.readState?{...le.readState,lastReadSequence:y.sequence,lastReadAt:new Date().toISOString()}:{lastReadSequence:y.sequence,lastReadAt:new Date().toISOString(),mutedAt:null,pinnedAt:null}}:le)),!0}catch(y){const Z=Jr(y);return Lu(Z)&&be(!0),!1}},[l,t,u,m]);b.useEffect(()=>{const Be=xe?.items.at(-1)?.sequence??0;S&&Be>0&&ot(S,Be)},[ot,S,xe?.items]);const $e=b.useCallback(Be=>{if(Be.communityId!==l||de.current.has(Be.id))return;de.current.add(Be.id);const it=qk.safeParse(Be.payload.message);if(it.success&&Be.type!=="read.updated"){const y=it.data;if(w(Z=>{const le=Z[Be.channelId];if(!le)return Z;const V=le.items.some(he=>he.id===y.id)?le.items.map(he=>he.id===y.id?y:he):[...le.items,y].sort((he,A)=>he.sequence-A.sequence);return{...Z,[Be.channelId]:{...le,items:V}}}),p(Z=>Z.map(le=>le.id===Be.channelId?{...le,lastMessageSequence:Math.max(le.lastMessageSequence,y.sequence),unreadCount:L.current===Be.channelId||y.authorUserId===o?0:Math.max(le.unreadCount+(Be.type==="message.created"?1:0),0)}:le)),Be.type==="message.created"&&y.authorUserId!==o){const Z=Q.current.find(V=>V.id===Be.channelId),le=DZ(y).includes(o??""),Pe=Ae.current;!Z?.readState?.mutedAt&&(Pe==="all"||Pe==="mentions"&&le)&&R({communityId:Be.communityId,channelId:Be.channelId,message:y})}L.current===Be.channelId&&ot(Be.channelId,y.sequence);return}Be.type==="read.updated"&&Be.payload.userId===o&&Ke()},[l,o,Ke,ot]);b.useEffect(()=>{if(!t||!l||!u||!m)return;let Be=!1,it=null;return Se(null),Promise.all([ge.communityRealtimeSession(t,l),ge.communityEvents(t,l)]).then(async([y,Z])=>{if(Be)return;const le=async()=>{let V=Z.cursor;for(;;){const he=await ge.communityEvents(t,l,{after:V,limit:200});if(Be)return;for(const A of he.events)$e(A);if(V=he.cursor,!he.hasMore)return}},Pe=zZ({session:y,onEvent:$e,onReady:()=>{Se(null),le().catch(V=>Se(Jr(V)))},onError:V=>Se(Jr(V))});it=()=>Pe.close(),await le()}).catch(y=>{if(!Be){const Z=Jr(y);Se(Z),Lu(Z)&&be(!0)}}),()=>{Be=!0,it?.()}},[$e,l,t,u,i,m]);const Me=b.useCallback(async()=>{if(!t||!l||!S||I)return!1;const Be=C[S],it=Be?.items[0]?.sequence;if(!Be?.hasMoreBefore||it==null)return!1;O(!0),Y(null);try{const y=await ge.communityMessages(t,l,S,{beforeSequence:it,limit:50});return w(Z=>{const le=Z[S]??Be,Pe=new Set(le.items.map(V=>V.id));return{...Z,[S]:{...le,items:[...y.messages.filter(V=>!Pe.has(V.id)),...le.items],hasMoreBefore:y.hasMoreBefore}}}),!0}catch(y){return Y(Jr(y)),!1}finally{O(!1)}},[l,t,C,I,S]),q=b.useCallback(async Be=>{if(!t||!l||!S||N)return!1;z(!0),qe(null),fe(null);try{const it=await Promise.all(Be.attachments.map(Z=>ge.uploadCommunityAttachment(t,l,S,Z))),y=await ge.sendCommunityMessage(t,l,S,{body:Be.body,clientRequestId:Be.clientRequestId,mentionUserIds:Be.mentionUserIds,attachmentIds:it.map(Z=>Z.id),replyToMessageId:Be.replyToMessageId});return w(Z=>{const le=Z[S]??{items:[],hasMoreBefore:!1,preview:!1};return le.items.some(Pe=>Pe.id===y.id)?Z:{...Z,[S]:{...le,items:[...le.items,y]}}}),await ot(S,y.sequence),!0}catch(it){const y=Jr(it);return qe(y),fe({...Be,message:y}),Lu(y)&&be(!0),!1}finally{z(!1)}},[l,t,ot,S,N]),ae=b.useCallback(Be=>q({body:Be.body,clientRequestId:crypto.randomUUID(),mentionUserIds:Be.mentionUserIds??[],attachments:Be.attachments??[],replyToMessageId:Be.replyToMessageId??null}),[q]),H=b.useCallback(async(Be,it)=>{if(!t||!l||!S)return!1;qe(null);try{const y=await ge.editCommunityMessage(t,l,S,Be,it);return Mw(w,S,y),!0}catch(y){return qe(Jr(y)),!1}},[l,t,S]),se=b.useCallback(async Be=>{if(!t||!l||!S)return!1;qe(null);try{const it=await ge.deleteCommunityMessage(t,l,S,Be);return Mw(w,S,it),!0}catch(it){return qe(Jr(it)),!1}},[l,t,S]),we=b.useCallback(async(Be,it)=>{if(!t||!l)return!1;qe(null);try{const y=await ge.setCommunityChannelMuted(t,l,Be,it);return p(Z=>Z.map(le=>le.id===Be&&le.readState?{...le,readState:{...le.readState,mutedAt:y.mutedAt}}:le)),!0}catch(y){return qe(Jr(y)),!1}},[l,t]),ze=b.useCallback(async(Be="")=>{if(!t||!l||!u)return[];try{const it=await ge.searchCommunityMembers(t,l,{query:Be,limit:50});return j(y=>UZ(y,it.items)),it.items}catch(it){return qe(Jr(it)),[]}},[l,t,u]);b.useEffect(()=>{u&&m?ze():j([])},[u,m,ze]);const Ye=b.useCallback(async Be=>{if(!t||!l||!S)return!1;try{const it=await ge.communityAttachmentDownload(t,l,S,Be);return window.open(it.url,"_blank","noopener,noreferrer"),!0}catch(it){return qe(Jr(it)),!1}},[l,t,S]),Ct=b.useCallback(()=>S?Ue(S):Promise.resolve(!1),[Ue,S]),yt=b.useCallback(()=>ie?q(ie):Promise.resolve(!1),[ie,q]),Et=b.useCallback(()=>fe(null),[]),gt=b.useCallback(()=>R(null),[]);return{channels:g,selectedChannelId:S,selectedChannel:He,messages:xe?.items??[],hasMoreBefore:xe?.hasMoreBefore??!1,previewMode:xe?.preview??!u,members:E,channelsLoading:U,messagesLoading:B,olderMessagesLoading:I,sending:N,channelsError:G,messagesError:ce,realtimeError:ue,actionError:me,lostMembership:$,failedSend:ie,incomingNotification:te,selectChannel:x,loadChannels:Ke,loadMessages:Ct,loadOlder:Me,sendMessage:ae,retrySend:yt,dismissFailedSend:Et,editMessage:H,deleteMessage:se,setMuted:we,searchMembers:ze,downloadAttachment:Ye,dismissIncomingNotification:gt}}function Mw(e,t,n){e(o=>{const i=o[t];return i?{...o,[t]:{...i,items:i.items.map(l=>l.id===n.id?n:l)}}:o})}function DZ(e){const t=e.metadata.mentionUserIds;return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}function UZ(e,t){const n=new Map(e.map(o=>[o.userId,o]));for(const o of t)n.set(o.userId,o);return[...n.values()].slice(-200)}function Lu(e){return e.includes("community_membership_required")||e.includes("community_rules")}function Jr(e){return e instanceof Error?e.message:String(e)}function LZ(e){const t=NZ({connection:e.connection,refreshToken:e.refreshToken}),n=$Z({connection:e.connection,preview:t.preview,currentUserId:e.currentUserId,membershipVersion:t.membershipVersion}),o=n.incomingNotification,i=t.items,l=n.channels,u=t.selectCommunity,m=n.selectChannel,g=n.dismissIncomingNotification,{setView:p,showToast:S}=e,x=b.useCallback(()=>{t.showDiscovery(),p("community")},[t.showDiscovery,p]),C=b.useCallback(E=>{t.selectCommunity(E),p("community")},[t.selectCommunity,p]),w=b.useCallback(E=>{n.selectChannel(E),p("community")},[n.selectChannel,p]);return b.useEffect(()=>{if(!o)return;const E=i.find(U=>U.id===o.communityId),j=l.find(U=>U.id===o.channelId);S(`${E?.displayName??"Community"} · #${j?.displayName??"channel"}: ${o.message.body.slice(0,120)||"New message"}`,"info",{actionLabel:"View",onAction:()=>{u(o.communityId),m(o.channelId),p("community")},placement:"top-right"}),g()},[l,i,g,o,m,u,p,S]),{communities:t,chat:n,sidebar:{communityItems:t.items,communityChannels:n.channels,communityLoading:t.discoveryLoading,communityError:t.discoveryError,selectedCommunityId:t.selectedCommunityId,selectedCommunityChannelId:n.selectedChannelId,discoverCommunities:x,selectCommunity:C,selectCommunityChannel:w},view:{communities:t,chat:n,currentUserId:e.currentUserId}}}const qZ=[];function BZ(e){const t=b.useCallback(o=>bK(e,o),[e]),n=b.useCallback(()=>hK(e)??qZ,[e]);return b.useSyncExternalStore(t,n,n)}function HZ(e){const[t,n]=b.useState(()=>dg());return b.useEffect(()=>{let o=!0;return e?(ge.connectedAppStatus(e,{status:"all"}).then(i=>{o&&n(i.apps)}).catch(i=>{console.warn("Unable to load connected app mention status.",i),o&&n(dg())}),()=>{o=!1}):(n(dg()),()=>{o=!1})},[e]),t}function FZ(){const{composerDraftStore:e,dispatch:t,setters:n,state:o}=mG(),[i,l]=b.useState(null),[u,m]=b.useState([]),[g,p]=b.useState(null),[S,x]=b.useState(null),[C,w]=b.useState(null),[E,j]=b.useState(null),[U,D]=b.useState(aR),[B,K]=b.useState({}),[I,O]=b.useState(()=>new Set),N=b.useCallback((yn,xa)=>{O(Xo=>{if(Xo.has(yn)===xa)return Xo;const po=new Set(Xo);return xa?po.add(yn):po.delete(yn),po})},[]),[z,G]=b.useState(0),[ne,ce]=b.useState(0),[Y,ue]=b.useState(null),Se=b.useRef(null),me=b.useCallback(yn=>{Se.current?.(yn)},[]),{confirmProjectAction:qe,projectConfirmDialog:$,resolveProjectConfirmDialog:be}=XF(),{query:ie,searchOpen:fe,archivedChatsOpen:te,sectionMenuOpen:R,projectsExpanded:L,cloudProjectsExpanded:Q,chatRowsVisibleCount:Ae,sidebarOpen:je,view:Le,selectedAppId:de,selectedProjectId:He,selectedSessionId:xe,draftProvider:Ke,draftModel:Ue,codexPermissionMode:ot,codexReasoningEffort:$e,openPondCommandAccessMode:Me,busy:q,diffPanelOpen:ae,diffPanelExpanded:H,rightPanelMode:se,rightChatPanels:we,terminalOpen:ze,settingsSection:Ye,newProjectDialogOpen:Ct,newProjectMode:yt,newProjectName:Et,newProjectPath:gt,newProjectBusy:Be,commitDialogOpen:it,commitMessage:y,commitIncludeUnstaged:Z,commitNextStep:le,commitDraft:Pe,branchDialogOpen:V,branchDialogName:he,toast:A,error:W}=o,Ce=vG(Le==="labs"),{setQuery:ye,setSearchOpen:Te,setArchivedChatsOpen:De,setSectionMenuOpen:Ne,setProjectsExpanded:nt,setCloudProjectsExpanded:Qe,setChatRowsVisibleCount:Xe,setSidebarOpen:at,setView:vt,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn,setPrompt:Dt,setDraftProvider:Sn,setDraftModel:Xt,setCodexPermissionMode:Ft,setCodexReasoningEffort:za,setOpenPondCommandAccessMode:Nt,setDiffPanelOpen:vn,setDiffPanelExpanded:xn,setRightPanelMode:sa,setRightChatPanels:Qn,setTerminalOpen:Lt,setSyncingWorkspaceAppId:en,setSettingsSection:kt,setNewProjectDialogOpen:On,setNewProjectMode:_a,setNewProjectName:la,setNewProjectPath:kn,setNewProjectBusy:un,setCommitDialogOpen:ea,setCommitMessage:Ln,setCommitIncludeUnstaged:ba,setCommitNextStep:ka,setCommitDraft:ca,setBranchDialogOpen:tn,setBranchDialogName:Rt,setError:Kt}=n,{connectionRef:Ot,setError:Mt,showToast:oe}=iG({appDispatch:t,error:W,setErrorState:Kt}),{appPreferences:pt,applyBootstrapPayload:dt,bootstrap:st,codexHistorySessions:St,connection:Tt,events:En,approvals:Fn,sessions:bo,startup:wt,setAppPreferences:It,setBootstrap:Ia,setCodexHistorySessions:$a,setEvents:qo,setSessions:gn}=oG({setDraftModel:Xt,setDraftProvider:Sn,setCodexPermissionMode:Ft,setCodexReasoningEffort:za,setOpenPondCommandAccessMode:Nt,setError:Mt,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn});Ot.current=Tt;const ro=HZ(Tt),vo=SG({connection:Tt}),Da=xG({connection:Tt,profileId:st?.profile?.activeProfile??"default"});b.useEffect(()=>{const yn=vo.systemSession;yn&&gn(xa=>xa.findIndex(po=>po.id===yn.id)===-1?[yn,...xa]:xa.map(po=>po.id===yn.id?yn:po))},[vo.systemSession,gn]);const{pinnedCollapsed:Kn,projectsCollapsed:Bo,cloudProjectsCollapsed:nr,chatsCollapsed:Ho,sidebarWidth:pr,sidebarResizing:To,diffPanelWidth:hr,diffPanelResizing:ar,togglePinnedCollapsed:gr,toggleProjectsCollapsed:Fo,toggleCloudProjectsCollapsed:Ko,toggleChatsCollapsed:Cn,startSidebarResize:io,startDiffPanelResize:jo}=gG({connection:Tt,preferences:st?.preferences,sidebarOpen:je,diffPanelOpen:ae,diffPanelExpanded:H,setBootstrap:Ia,setError:Mt}),Xn=b.useCallback(()=>{Bo&&Fo()},[Bo,Fo]),{cloudProjectById:Va,linkedProjectByAppId:Aa,localProjectById:Vo,mentionableSandboxApps:nn,selectedApp:Mn,selectedCloudProject:Vn,selectedProject:an,selectedProjectLinkedApp:yo,selectedProjectLinkedOpenPondApp:Tn,selectedSession:wn,selectedSessionLinkedProject:ua,sidebarSessions:Ga}=MK({bootstrap:st,codexHistorySessions:St,selectedAppId:de,selectedProjectId:He,selectedSessionId:xe,sessions:bo}),ta=kG(En,Fn),{chatMentionApps:Za,cloudProjectIdsByTeam:ni,connectedAppMentions:zn,pendingApproval:Ua}=BK({bootstrap:st,connectedAppRows:ro,mentionableSandboxApps:nn,runtimeIndexes:ta,selectedApp:Mn,selectedCloudProject:Vn,selectedProject:an,selectedSession:wn,selectedSessionId:xe}),{codexHistoryEvents:La,setCodexHistoryEvents:qa}=gV({connection:Tt,selectedSessionId:xe,selectedSessionLocallyActive:!!(xe&&I.has(xe)),selectedSessionStatus:wn?.status,setCodexHistorySessions:$a,setError:Mt}),{account:so,accountPending:So,accountSignedOut:br,activeModel:lo,activeProvider:Eo,activeWorkspaceAppId:or,activeWorkspaceId:Pr,activeWorkspaceKind:Go,activeWorkspaceLocation:Nr,appDefaults:xo,cloudLinked:vr,selectedCodexHistoryPending:Or,selectedSessionProjectId:yr,startMessage:zr,workspaceName:$r}=TK({bootstrap:st,draftModel:Ue,draftProvider:Ke,selectedApp:Mn,selectedAppId:de,selectedCloudProject:Vn,selectedProject:an,selectedSession:wn,selectedSessionId:xe,selectedSessionLinkedProject:ua}),Sr=b.useMemo(()=>SK(st?.account??null),[st?.account]),_i=b.useMemo(()=>Ob(st?.account??null),[st?.account]),xr=BZ(_i),Dr=b.useMemo(()=>wK(xr,xo.defaultTeamId),[xo.defaultTeamId,xr]),rn=Dr?.teamId??null,Co=IZ({connection:Tt,teamId:rn,currentUserId:so?.profile?.id??null,refreshToken:st?.accountMeta.asOf??null}),ki=EZ({connection:Tt,teamId:rn,applyBootstrapPayload:dt,refreshDirectory:Co.refreshDirectory});PZ({notification:Co.incomingNotification,dismiss:Co.dismissIncomingNotification,selectThread:Co.selectThread,setView:vt,showToast:oe});const{communities:Mo,sidebar:Ii,view:rr}=LZ({connection:Tt,currentUserId:so?.profile?.id??null,refreshToken:st?.accountMeta.asOf??null,setView:vt,showToast:oe}),Po=Co.aiThread?.conversationId??null,ai=Le==="team"&&!!Po&&ae&&se==="chat";b.useEffect(()=>{if(Le==="team"){if(Po){sa("chat"),vn(!0);return}se==="chat"&&vn(!1)}},[se,vn,sa,Po,Le]);const Ai=b.useCallback(()=>{if(Po){if(ai){vn(!1);return}sa("chat"),vn(!0)}},[vn,sa,ai,Po]),re=b.useMemo(()=>ti(an,st?.cloudProjects??[]),[st?.cloudProjects,an]),Je=wn?.provider==="codex"?Me:wn?.openPondCommandAccessMode??Me,tt=Le==="labs"&&st?.profile?.mode==="local"&&st.profile.repoPath?cv(st.profile.repoPath):null,$t=tt?`${st?.profile?.activeProfile??"default"} profile`:null,rt=tt??or,bn=tt??Pr,Pn=tt?"local_project":Go,on=$t??$r,{openPondActionCatalog:co,selectedActionCatalog:uo}=BG({cloudProjectById:Va,cloudProjects:st?.cloudProjects??[],connection:Tt,defaultTeamId:xo.defaultTeamId,accountScopeKey:Sr,localProjects:st?.localProjects??[],profileActionCatalogEntries:st?.profile.actionCatalog??[],selectedCloudProject:Vn,selectedProject:an}),{expandedProjectIds:wo,expandProject:Wa,toggleProjectExpanded:Ur,setExpandedProjectIds:Zo}=HG({selectedProjectId:He});DK({activeWorkspaceId:Pr,activeWorkspaceKind:Go,appDispatch:t,connection:Tt,expandProject:Wa,linkedProjectByAppId:Aa,providerSettings:st?.providers??null,selectedAppId:de,selectedSession:wn,selectedSessionId:xe,selectedSessionProjectId:yr,setDiffPanelExpanded:xn,setDraftModel:Xt,setDraftProvider:Sn,setError:Mt,setSelectedAppId:ct,setSelectedProjectId:pn,setSessions:gn,setTerminalOpen:Lt,toast:A});const{cloudBusy:ir,cloudError:oi,cloudLoading:ri,cloudWorkItemDetail:_o,cloudWorkItems:Ri,selectedCloudWorkItem:Ut,selectedCloudWorkItemId:Vt,selectedCloudWorkItemLocalProject:ko,applyCloudWorkItemPatchLocally:Ba,cancelCloudWorkItemCreatePipeline:Ra,cancelCloudWorkItemTask:Ya,createCloudWork:is,handleCloudWorkItemBackground:Lr,openCloudHome:Ti,selectCloudWorkItem:ss,sendCloudWorkItemMessage:ji,setCloudError:Ei}=WK({bootstrap:st,connection:Tt,cloudProjectById:Va,cloudProjectIdsByTeam:ni,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn,setView:vt,setError:Mt,rememberWorkspaceState:me,showToast:oe}),{changeCodexPermissionMode:qr,changeCodexReasoningEffort:Us}=ZK({connection:Tt,setBootstrap:Ia,setCodexPermissionMode:Ft,setCodexReasoningEffort:za,setError:Mt}),{changeOpenPondCommandAccessMode:Ls}=IV({connection:Tt,selectedSession:wn,setBootstrap:Ia,setError:Mt,setOpenPondCommandAccessMode:Nt,setSessions:gn}),ls=UK({connection:Tt,setError:Mt}),qs=b.useCallback(()=>{G(yn=>yn+1)},[]),Ta=qK({appDispatch:t,expandProject:Wa,linkedProjectByAppId:Aa,requestComposerFocus:qs,onBeginNewChat:()=>ue(null),setMentionedAppId:x}),ii=b.useCallback(yn=>{const xa=Wt("local",yn);t({type:"selectProject",projectId:xa}),Wa(xa)},[t,Wa]),{advanceAfterTurn:Bi,begin:cs,bindSession:Mi,dismiss:Bs,handoff:Pi,prepareTurn:xl,selectTask:No}=CG({activeModel:lo,activeProvider:Eo,applyBootstrapPayload:dt,beginNewChat:Ta,composerDraftStore:e,connection:Tt,requestComposerFocus:qs,selectedLocalProjectId:an?.id??null,selectedSessionId:xe,selectLocalProject:ii,setDraftModel:Xt,setDraftProvider:Sn,setError:Mt,view:Le});hG({connection:Tt,events:En,showToast:oe}),PV({searchOpen:fe,sectionMenuOpen:R,setSectionMenuOpen:Ne,setSearchOpen:Te,setQuery:ye}),b.useEffect(()=>{K({})},[st?.server.id]);const{chatHistoryLoadStates:fo,loadMoreSelectedChatHistory:si,selectedPagedSessionEvents:va,selectedRuntimeIndexes:Ha}=wG({approvals:Fn,codexHistoryEvents:La,connection:Tt,latestServerSequence:st?.eventWindow?.latestSequence,runtimeIndexes:ta,selectedSessionId:xe,serverId:st?.server.id,setCodexHistoryEvents:qa,setCodexHistorySessions:$a,setError:Mt}),{activeSessions:Ja,pinnedProjects:Oo,pinnedSessions:sr,pinnedItems:Br,projectRows:ya,localProjectRows:li,visibleProjectRows:Hi,cloudProjectRows:us,cloudWorkItemsByProjectId:Hs,projectSessionRowsByProjectId:Ni,childSessionRowsByParentId:Cl,sidebarProjectIdBySessionId:ds,chatRows:Fi,visibleChatRows:Oi,sessionEvents:Io,chatMessages:ci,contextUsage:Ao,goalRuntime:Hr,subagentRuntime:Ki}=AV({localProjects:st?.localProjects??[],cloudProjects:st?.cloudProjects??[],cloudWorkItems:Ri,sessions:Ga,runtimeIndexes:Ha,appPreferences:pt,selectedSessionId:xe,selectedProjectId:He,archivedChatsOpen:te,projectsExpanded:L,chatRowsVisibleCount:Ae}),{clearPendingChatUserMessage:Vi,pendingChatUserMessages:Gi,recordPendingChatUserMessage:fs,visibleChatMessages:Cr}=xV({chatMessages:ci,runtimeIndexes:ta,selectedSessionId:xe,serverId:st?.server.id}),mo=b.useMemo(()=>W4({selectedAppId:de,selectedProjectId:He,selectedSessionId:xe}),[de,He,xe]),Wo=b.useRef(null);b.useEffect(()=>{const yn=Wo.current;Wo.current=mo,!(!yn||yn.kind!=="draft"||mo.kind!=="session")&&(ed(yn,mo)||m(xa=>{const Xo=Y4({tabs:xa,previousScope:yn,activeScope:mo});return Xo.some((Xc,Qc)=>Xc!==xa[Qc])?Xo:xa}))},[mo]);const ui=b.useMemo(()=>J4(u),[u]),{runningSessionIds:_e,selectedSessionRunning:et,selectedSteerAutoDispatchBlocked:Gt,selectedSteerAutoDispatchReady:Qt,sidebarGoalRuntimeBySessionId:dn,sidebarSubagentRuntimeBySessionId:Gn}=MV({codexHistoryEvents:La,codexHistorySessions:St,connection:Tt,expandedProjectIds:wo,goalRuntime:Hr,locallyActiveCodexHistorySessionIds:I,pendingApproval:Ua,pinnedSessions:sr,projectSessionRowsByProjectId:Ni,rightChatHistoryEvents:B,runtimeIndexes:ta,selectedSession:wn,selectedSessionId:xe,serverId:st?.server.id,sessionEvents:Io,setCodexHistorySessions:$a,sidebarSessions:Ga,subagentRuntime:Ki,visibleChatRows:Oi,visibleProjectRows:Hi}),{dragItem:qt,pinnedPreviewKeys:Xa,startPinnedDrag:Bt,clearSidebarDrag:na,previewPinnedDrop:ja,commitPinnedDrop:da,commitPinnedPreviewDrop:lr}=vV({connection:Tt,appPreferences:pt,sessions:Ga,pinnedItems:Br,setAppPreferences:It,setCodexHistorySessions:$a,setSessions:gn,setError:Mt}),{commandProjectRows:Fr,contextWindowStatus:Zi,pinnedRows:ms,sidebarWorkspaceAppIds:Yo}=LK({activeProvider:Eo,contextCompaction:xo.contextCompaction,contextUsage:Ao,pinnedItems:Br,pinnedPreviewKeys:Xa??[],pinnedProjects:Oo,projectRows:ya,visibleProjectRows:Hi}),Jo=!!(rt&&(Le==="chat"||Le==="labs")&&(it||ae&&(se==="changes"||se==="goal"))),{workspaceStates:wr,workspaceBusy:cr,diffBusy:Kr,visibleWorkspaceState:Nn,visibleWorkspaceDiff:Wi,rememberWorkspaceState:Fs,refreshWorkspace:_d,refreshWorkspaceDiff:Sa,setWorkspaceBusy:Zn}=VG({connection:Tt,activeWorkspaceAppId:rt,view:Le,shouldLoadWorkspaceDiff:Jo,sidebarWorkspaceAppIds:Yo,setError:Mt});Se.current=Fs;const sn=b.useCallback((yn=rt)=>!yn||yn!==rt||!Jo?Promise.resolve(null):Sa(yn),[Sa,Jo,rt]),Yi=b.useCallback(async(yn={})=>{!rt||!Jo||await Sa(rt,yn)},[Sa,Jo,rt]),_r=!1,Zc=!!(wn?.provider==="codex"&&wn.cwd&&!xi(wn.workspaceKind)),Ji=!!(Nn&&!Nn.initialized&&Go!=="local_project"&&Eo!=="codex"&&!Zc&&!Or),kd=Go==="local_project"&&!!an?.sandboxTemplate?.detected&&!an?.linkedOpenPondApp?.appId,[Wc,ps]=b.useState(null),[hs,Yc]=b.useState(null),{projectTarget:wl,workspaceTarget:Jc}=jK({accountPending:So,accountSignedOut:br,activeWorkspaceLocation:Nr,bootstrap:st,busy:q,cloudLinked:vr,selectedCloudProject:Vn,selectedProject:an,selectedSession:wn,pendingWorkspaceTarget:Wc,workspaceStates:wr,workspaceBusy:cr});return b.useEffect(()=>{ps(null)},[Vn?.id,an?.id,wn?.id]),{composerDraftStore:e,appDispatch:t,pendingTerminalCommand:i,setPendingTerminalCommand:l,terminalTabs:u,setTerminalTabs:m,trainingDetailTasksetId:g,setTrainingDetailTasksetId:p,mentionedAppId:S,setMentionedAppId:x,cloudSetupDialog:C,setCloudSetupDialog:w,rightPanelTabRequest:E,setRightPanelTabRequest:j,workspaceDiffPanelViewState:U,setWorkspaceDiffPanelViewState:D,rightChatHistoryEvents:B,setRightChatHistoryEvents:K,locallyActiveCodexHistorySessionIds:I,setCodexHistoryTurnLocallyActive:N,mainComposerFocusRequestId:z,labSuggestionsRequestId:ne,setLabSuggestionsRequestId:ce,draftSubagentDelegationMode:Y,setDraftSubagentDelegationMode:ue,confirmProjectAction:qe,projectConfirmDialog:$,resolveProjectConfirmDialog:be,query:ie,searchOpen:fe,archivedChatsOpen:te,sectionMenuOpen:R,projectsExpanded:L,cloudProjectsExpanded:Q,sidebarOpen:je,view:Le,selectedAppId:de,selectedProjectId:He,selectedSessionId:xe,draftProvider:Ke,draftModel:Ue,codexPermissionMode:ot,codexReasoningEffort:$e,openPondCommandAccessMode:Me,busy:q,diffPanelOpen:ae,diffPanelExpanded:H,rightPanelMode:se,rightChatPanels:we,terminalOpen:ze,settingsSection:Ye,newProjectDialogOpen:Ct,newProjectMode:yt,newProjectName:Et,newProjectPath:gt,newProjectBusy:Be,commitDialogOpen:it,commitMessage:y,commitIncludeUnstaged:Z,commitNextStep:le,commitDraft:Pe,branchDialogOpen:V,branchDialogName:he,toast:A,error:W,labDetailNavigation:Ce,setQuery:ye,setSearchOpen:Te,setArchivedChatsOpen:De,setSectionMenuOpen:Ne,setProjectsExpanded:nt,setCloudProjectsExpanded:Qe,setChatRowsVisibleCount:Xe,setSidebarOpen:at,setView:vt,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn,setPrompt:Dt,setDraftProvider:Sn,setDraftModel:Xt,setDiffPanelOpen:vn,setDiffPanelExpanded:xn,setRightPanelMode:sa,setRightChatPanels:Qn,setTerminalOpen:Lt,setSyncingWorkspaceAppId:en,setSettingsSection:kt,setNewProjectDialogOpen:On,setNewProjectMode:_a,setNewProjectName:la,setNewProjectPath:kn,setNewProjectBusy:un,setCommitDialogOpen:ea,setCommitMessage:Ln,setCommitIncludeUnstaged:ba,setCommitNextStep:ka,setCommitDraft:ca,setBranchDialogOpen:tn,setBranchDialogName:Rt,setError:Mt,showToast:oe,appPreferences:pt,applyBootstrapPayload:dt,bootstrap:st,connection:Tt,events:En,sessions:bo,startup:wt,setAppPreferences:It,setCodexHistorySessions:$a,setEvents:qo,setSessions:gn,insights:vo,training:Da,pinnedCollapsed:Kn,projectsCollapsed:Bo,cloudProjectsCollapsed:nr,chatsCollapsed:Ho,sidebarWidth:pr,sidebarResizing:To,diffPanelWidth:hr,diffPanelResizing:ar,togglePinnedCollapsed:gr,toggleProjectsCollapsed:Fo,toggleCloudProjectsCollapsed:Ko,toggleChatsCollapsed:Cn,startSidebarResize:io,startDiffPanelResize:jo,revealProjectsSection:Xn,cloudProjectById:Va,localProjectById:Vo,selectedApp:Mn,selectedCloudProject:Vn,selectedProject:an,selectedProjectLinkedApp:yo,selectedProjectLinkedOpenPondApp:Tn,selectedSession:wn,sidebarSessions:Ga,runtimeIndexes:ta,chatMentionApps:Za,connectedAppMentions:zn,pendingApproval:Ua,codexHistoryEvents:La,setCodexHistoryEvents:qa,account:so,accountPending:So,accountSignedOut:br,activeModel:lo,activeProvider:Eo,activeWorkspaceAppId:or,activeWorkspaceId:Pr,activeWorkspaceKind:Go,activeWorkspaceLocation:Nr,appDefaults:xo,selectedSessionProjectId:yr,startMessage:zr,workspaceName:$r,accountScopeKey:Sr,teamChatOrganization:Dr,teamChatTeamId:rn,teamChat:Co,publishTeamProfileAgent:ki,communities:Mo,communitySidebar:Ii,communityView:rr,teamAiThreadId:Po,toggleTeamAiSidebar:Ai,selectedProjectConfirmedCloudProject:re,activeOpenPondCommandAccessMode:Je,profileWorkspaceId:tt,viewWorkspaceAppId:rt,viewWorkspaceId:bn,viewWorkspaceKind:Pn,viewWorkspaceName:on,openPondActionCatalog:co,selectedActionCatalog:uo,expandedProjectIds:wo,expandProject:Wa,toggleProjectExpanded:Ur,setExpandedProjectIds:Zo,cloudBusy:ir,cloudError:oi,cloudLoading:ri,cloudWorkItemDetail:_o,cloudWorkItems:Ri,selectedCloudWorkItem:Ut,selectedCloudWorkItemId:Vt,selectedCloudWorkItemLocalProject:ko,applyCloudWorkItemPatchLocally:Ba,cancelCloudWorkItemCreatePipeline:Ra,cancelCloudWorkItemTask:Ya,createCloudWork:is,handleCloudWorkItemBackground:Lr,openCloudHome:Ti,selectCloudWorkItem:ss,sendCloudWorkItemMessage:ji,setCloudError:Ei,changeCodexPermissionMode:qr,changeCodexReasoningEffort:Us,changeOpenPondCommandAccessMode:Ls,resolveApproval:ls,beginNewChat:Ta,advanceTrainingModelChatAfterTurn:Bi,beginNewChatWithTrainingModel:cs,bindTrainingModelChatSession:Mi,dismissTrainingChatHandoff:Bs,trainingChatHandoff:Pi,prepareTrainingModelChatTurn:xl,selectTrainingChatTaskForComposer:No,chatHistoryLoadStates:fo,loadMoreSelectedChatHistory:si,selectedPagedSessionEvents:va,activeSessions:Ja,pinnedSessions:sr,projectRows:ya,localProjectRows:li,visibleProjectRows:Hi,cloudProjectRows:us,cloudWorkItemsByProjectId:Hs,projectSessionRowsByProjectId:Ni,childSessionRowsByParentId:Cl,sidebarProjectIdBySessionId:ds,chatRows:Fi,visibleChatRows:Oi,sessionEvents:Io,chatMessages:ci,goalRuntime:Hr,subagentRuntime:Ki,clearPendingChatUserMessage:Vi,pendingChatUserMessages:Gi,recordPendingChatUserMessage:fs,visibleChatMessages:Cr,activeTerminalScope:mo,terminalSummaries:ui,runningSessionIds:_e,selectedSessionRunning:et,selectedSteerAutoDispatchBlocked:Gt,selectedSteerAutoDispatchReady:Qt,sidebarGoalRuntimeBySessionId:dn,sidebarSubagentRuntimeBySessionId:Gn,dragItem:qt,startPinnedDrag:Bt,clearSidebarDrag:na,previewPinnedDrop:ja,commitPinnedDrop:da,commitPinnedPreviewDrop:lr,commandProjectRows:Fr,contextWindowStatus:Zi,pinnedRows:ms,workspaceStates:wr,workspaceBusy:cr,diffBusy:Kr,visibleWorkspaceState:Nn,visibleWorkspaceDiff:Wi,rememberWorkspaceState:Fs,refreshWorkspace:_d,refreshWorkspaceDiff:Sa,setWorkspaceBusy:Zn,refreshWorkspaceDiffWhenNeeded:sn,refreshVisibleWorkspaceDiff:Yi,managedWorkspace:_r,canSyncActiveWorkspace:Ji,canPublishOpenPondProject:kd,pendingWorkspaceTarget:Wc,setPendingWorkspaceTarget:ps,pendingSidebarWorkspaceTarget:hs,setPendingSidebarWorkspaceTarget:Yc,projectTarget:wl,workspaceTarget:Jc}}function KZ({account:e,browserConversationId:t,cloudProjectById:n,cloudProjects:o,diffPanelOpen:i,rightPanelMode:l,selectedCloudWorkItem:u,selectedProjectId:m,setCloudError:g,setDiffPanelOpen:p,setNewProjectDialogOpen:S,setNewProjectMode:x,setNewProjectName:C,setRightPanelMode:w}){const E=b.useCallback(()=>{w("changes"),p(!0)},[p,w]),j=b.useCallback(()=>{if(i&&l==="changes"){p(!1);return}E()},[i,l,p,E]),U=b.useCallback(()=>{w("browser"),p(!0)},[p,w]),D=b.useCallback(()=>{w("goal"),p(!0)},[p,w]),B=b.useCallback((N,z)=>{Hv({conversationId:t,href:N,explicitFile:z?.explicitFile,newTab:z?.newTab}).then(G=>{G&&U()})},[t,U]),K=b.useCallback(()=>{x("cloud"),C(""),S(!0)},[S,x,C]),I=b.useCallback(N=>{const z=n.get(N);if(!z){g("Select a Cloud Project before setup.");return}B(Cb({accountBaseUrl:e?.baseUrl??e?.activeProfile?.baseUrl??null,teamId:z.teamId,projectId:z.id,projectName:z.name,baseBranch:z.defaultBranch,source:"openpond-app"}),{newTab:!0})},[e,n,B,g]);return{createCloudEnvironmentFromSidebar:b.useCallback(()=>{const N=m?.startsWith("cloud:")?m.slice(6):u?.projectId??o[0]?.id??null;if(N){I(N);return}K()},[o,K,u,m,I]),openCloudProjectDialog:K,openUrlInBrowserPanel:B,showBrowserPanel:U,showChangesPanel:E,showGoalSidebarTab:D,toggleChangesPanel:j,setupCloudProjectFromCloudView:I}}function VZ(e){const t=e.requestConversationId.trim();return t?t===e.currentConversationId?{reveal:!0,sessionIdToOpen:null}:new Set(e.sessionIds).has(t)?{reveal:!0,sessionIdToOpen:t}:{reveal:!1,sessionIdToOpen:null}:{reveal:!1,sessionIdToOpen:null}}function GZ({browserConversationId:e,sessionIds:t,onOpenSession:n,onShowBrowserPanel:o}){b.useEffect(()=>window.openpond?.browser?.onRevealRequest?.(l=>{const u=VZ({currentConversationId:e,requestConversationId:l.conversationId,sessionIds:t});u.reveal&&(u.sessionIdToOpen&&n(u.sessionIdToOpen),o())}),[e,n,o,t])}function ZZ({cloudProjects:e,selectedCloudProject:t,selectedProject:n}){const o=n?.linkedSandboxProject??null,i=e?ti(n,e):null,l=t?.id??i?.id??(e?null:o?.projectId??null),u=t?.teamId??i?.teamId??(e?null:o?.teamId??null);return!l||!u?{kind:"missing_cloud_project",message:"Upload/sync this Project to Cloud before using Hybrid."}:{kind:"ready",cloudProjectId:l,cloudTeamId:u,cwd:n?.workspacePath??null,localProjectId:n?.id??null,workspaceName:t?.name??i?.name??o?.projectName??n?.name??"Hybrid workspace"}}function WZ({modelRef:e,provider:t,target:n,title:o}){return{provider:t,...e?{modelRef:e}:{},appId:null,appName:null,workspaceKind:"sandbox",workspaceId:null,workspaceName:n.workspaceName,localProjectId:n.localProjectId,cloudProjectId:n.cloudProjectId,cloudTeamId:n.cloudTeamId,metadata:OA(),cwd:n.cwd,title:o}}function DY(e){return e==="owner"?"Owner":e==="admin"?"Admin":"Member"}function Qm(e){return e?.role==="owner"||e?.role==="admin"}function UY(e){const t=ep(e.organizations,e.defaultTeamId),n=Qm(t),o=e.localProject??null;if(!o)return YZ("Open a local project to set up an Agent.");const i=JZ(o,e.projects),l=XZ(o,i,e.agents),u=!!o.sandboxTemplate?.detected,m=t&&!n?"Ask an owner or admin to connect this project.":null;return u?i?QZ(o,i)?Bf({state:"needs_sync",actionLabel:"Sync Project",project:i,agent:l,canManage:n,actionBlockedReason:m}):l?{state:"ready",actionLabel:"Run Agent",canAct:!0,reason:null,project:i,agent:l}:Bf({state:"needs_agent",actionLabel:"Create Agent",project:i,agent:null,canManage:n,actionBlockedReason:m}):Bf({state:"needs_project",actionLabel:"Connect Project",project:null,agent:null,canManage:n,actionBlockedReason:m}):Bf({state:"missing_config",actionLabel:"Add Agent config",project:i,agent:l,canManage:n,actionBlockedReason:m})}function Bf(e){return e.canManage?{state:e.state,actionLabel:e.actionLabel,canAct:!0,reason:null,project:e.project,agent:e.agent}:{state:"blocked",actionLabel:"Ask admin",canAct:!1,reason:e.actionBlockedReason,project:e.project,agent:e.agent}}function YZ(e){return{state:"blocked",actionLabel:"Ask admin",canAct:!1,reason:e,project:null,agent:null}}function ep(e,t){if(e.length===0)return null;const n=t?.trim()??"";if(n){const o=e.find(i=>i.teamId===n);if(o)return o}return e.length===1?e[0]??null:e.find(o=>o.role==="owner")??e.find(o=>o.role==="admin")??e[0]??null}function JZ(e,t){const n=e.linkedSandboxProject;return n?.projectId?t.find(o=>o.id===n.projectId)??null:null}function XZ(e,t,n){if(!t)return null;const o=e.preferredSandboxAgentId;if(o){const i=n.find(l=>l.id===o&&l.projectId===t.id);if(i)return i}return n.find(i=>i.projectId===t.id)??null}function QZ(e,t){if(t.sandboxManifestError||!t.sandboxManifestSyncedAt||!t.sandboxManifestHash)return!0;if(e.sandboxTemplate?.manifestHash&&t.sandboxManifestHash)return e.sandboxTemplate.manifestHash!==t.sandboxManifestHash;if(e.linkedSandboxProject?.manifestHash&&t.sandboxManifestHash)return e.linkedSandboxProject.manifestHash!==t.sandboxManifestHash;const n=e.sandboxTemplate?.manifestPath;return n&&t.sandboxManifestPath?!n.endsWith(t.sandboxManifestPath):!1}function eW({model:e,provider:t,providerSettings:n}){return{model:Ev(t,e,n),modelRef:pi(t,e,n)}}function tW(e,t){return e.some(n=>n.id===t.id)?e:[...e,t]}function nW(e,t){const n=new Date().toISOString(),o=`codex_history_optimistic_${n}_${Math.random().toString(36).slice(2,8)}`;return{id:o,sessionId:e,turnId:`${o}_turn`,name:"turn.started",timestamp:n,source:"chat_action",args:{prompt:t},status:"started"}}function aW(e,t){return{id:`${e.id}_failed`,sessionId:e.sessionId,turnId:e.turnId,name:"turn.failed",timestamp:new Date().toISOString(),source:"server",status:"failed",error:t instanceof Error?t.message:String(t)}}function Pw({action:e,prompt:t,runPayload:n,sessionId:o}){const i=new Date().toISOString(),l=`openpond_action_${n.run.id}`,u=n.run.status==="failed"?"failed":n.run.status==="succeeded"?"completed":"started";return[{id:`${l}_user`,sessionId:o,turnId:l,name:"turn.started",timestamp:i,source:"chat_action",args:{prompt:t}},{id:`${l}_result`,sessionId:o,turnId:l,name:"workspace_action_result",timestamp:n.run.updatedAt??i,source:"chat_action",action:"sandbox_run_action",appId:null,status:u,output:u==="completed"?`Ran ${e.label??e.name??e.id}`:`Started ${e.label??e.name??e.id}`,data:{openPondActionRun:!0,action:{name:e.id,label:e.label??e.name??e.id,implementation:e.implementation},agent:n.agent,run:n.run,sandbox:n.sandbox??null,actionSummary:n.run.actionSummary??null,responseSummary:n.run.responseSummary??null,traceSummary:n.run.traceSummary??null,evalSummary:n.run.evalSummary??null,sourceSummary:n.run.sourceSummary??null}}]}function oW({applyBootstrapPayload:e,connection:t,codexPermissionMode:n,codexReasoningEffort:o,openPondCommandAccessMode:i,draftModel:l,draftProvider:u,expandProject:m,ensureCloudSessionReady:g,getPrompt:p,bootstrap:S,chatMessages:x,apps:C,connectedAppMentions:w,mentionedAppId:E,refreshWorkspace:j,refreshWorkspaceDiff:U,selectedApp:D,selectedActionCatalog:B,openPondActionCatalog:K,cloudProjects:I,accountScopeKey:O,selectedCloudProject:N,selectedProject:z,selectedProjectLinkedOpenPondApp:G,selectedSession:ne,workspaceTarget:ce,subagentDelegationMode:Y,setDraftModel:ue,setDraftProvider:Se,setError:me,setPrompt:qe,setMentionedAppId:$,setCodexHistoryEvents:be,setCodexHistorySessions:ie,onCodexHistoryTurnActivityChange:fe,onCodexHistoryTurnPayload:te,onPendingUserMessage:R,onClearPendingUserMessage:L,setEvents:Q,setSelectedAppId:Ae,setSelectedProjectId:je,setSelectedSessionId:Le,setSessions:de,setView:He,setWorkspaceBusy:xe}){const Ke=b.useRef(new Set),Ue=S?.providers??null;function ot(V,he){return V==="codex"?void 0:he}function $e(V){return!!(V&&V.provider!=="codex"&&(V.workspaceKind==="local_project"&&V.cwd?.trim()||(V.workspaceKind==="sandbox"||V.workspaceKind==="sandbox_template"||V.workspaceKind==="sandbox_app")&&V.workspaceId))}function Me(V){Se(V),ue(he=>as(V,he,Ue)),He("chat")}async function q(V,he){return(xR(he,O)??await ey({teamId:he,accountKey:O,fetchAgents:async Ce=>(await ge.listSandboxAgents(t,{teamId:Ce})).agents})).find(Ce=>Ce.projectId===V)??null}async function ae(){if(!t)throw new Error("OpenPond App server is not connected.");if(S?.account.state!=="signed_in")throw new Error("Add an OpenPond account before syncing a Project to Cloud.");const V=await ge.organizations(t),he=ep(V.organizations.map(Zm).filter(A=>!!A).filter(A=>A.status==="active"),S?.preferences.defaultTeamId??null);if(!he)throw new Error("Add an OpenPond account before syncing a Project to Cloud.");if(!Qm(he))throw new Error(`You need owner or admin access to create projects in ${he.displayName}.`);return he}async function H(V){if(!t)return!1;const he=z;if(!he)throw new Error("Select a local Project before using /sync-cloud.");const A=await ae(),W=he.linkedSandboxProject?.defaultBranch?.trim()||"main",Ce=Wt("local",he.id),ye=ti(he,I),Te=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",jm,Ue),openPondCommandAccessMode:ot("openpond",i),appId:null,appName:null,workspaceKind:"local_project",workspaceId:he.id,workspaceName:he.name,localProjectId:he.id,cloudProjectId:ye?.id??null,cloudTeamId:ye?.teamId??null,cwd:he.workspacePath,title:`Sync ${he.name} to Cloud`});de(De=>[Te,...De]),V.onSessionCreated?.(Te),V.selectSession&&(Le(Te.id),je(Ce),Ae(null),He("chat"),m(Ce)),V.clearPromptForTurn(),xe(!0);try{const De=await ge.uploadLocalProjectCloudSource(t,he.id,{teamId:A.teamId,projectName:he.name,branch:W,chatSessionId:Te.id,displayPrompt:V.displayPrompt});return e(De.bootstrap),m(Ce),m(Wt("cloud",De.project.id)),!0}catch(De){const Ne=await ge.bootstrap(t).catch(()=>null);throw Ne&&e(Ne),De}finally{xe(!1)}}async function se(V){if(!t||V.providerForTurn==="codex"||V.selectedSessionForTurn?.provider==="codex")return!1;let he=$e(V.selectedSessionForTurn)?V.selectedSessionForTurn:null;if(!he&&V.selectedSessionForTurn)throw new Error("Select a project to use this.");if(!he)if(N){const W=Wt("cloud",N.id),Ce=V.providerForTurn;he=await ge.createSession(t,{provider:Ce,modelRef:pi(Ce,V.modelForTurnValue,Ue),openPondCommandAccessMode:ot(Ce,V.openPondCommandAccessModeForTurn),appId:null,appName:null,workspaceKind:"sandbox",workspaceId:N.id,workspaceName:N.name,localProjectId:null,cloudProjectId:N.id,cloudTeamId:N.teamId,cwd:null,title:V.command.slice(0,64)}),de(ye=>[he,...ye]),V.onSessionCreated?.(he),V.selectSession&&(Le(he.id),je(W),Ae(null),He("chat"),m(W))}else{const W=z;if(!W)throw new Error("Select a project to use this.");const Ce=ti(W,I),ye=Wt("local",W.id),Te=V.providerForTurn;he=await ge.createSession(t,{provider:Te,modelRef:pi(Te,V.modelForTurnValue,Ue),openPondCommandAccessMode:ot(Te,V.openPondCommandAccessModeForTurn),appId:null,appName:null,workspaceKind:"local_project",workspaceId:W.id,workspaceName:W.name,localProjectId:W.id,cloudProjectId:Ce?.id??null,cloudTeamId:Ce?.teamId??null,cwd:W.workspacePath,title:V.command.slice(0,64)}),de(De=>[he,...De]),V.onSessionCreated?.(he),V.selectSession&&(Le(he.id),je(ye),Ae(null),He("chat"),m(ye))}if(!he)throw new Error("Select a project to use this.");V.clearPromptForTurn();const A=await ge.runSessionCommand(t,he.id,{command:V.command,cwd:he.cwd});return de(W=>Hu(W,A.session)),Q(W=>ql(W,A.events)),!0}async function we(V=[],he=null,A,W={}){const Ce=A??p();let ye=Ce.trim()||(V.length>0?"Please review the attached files.":"");if(!t||!ye)return!1;const Te=W.displayPrompt?.trim()||ye,De=W.provider??u,Ne=W.model??l,nt=W.openPondCommandAccessMode??i,Qe=W.session!==void 0,Xe=Qe?W.session??null:ne,at=Qe?null:D,vt=Qe?null:z,ct=Qe?null:N,pn=Qe?null:G,hn=!Qe&&ce==="hybrid",Dt=W.selectSession??!0,Sn=W.chatMessages??x,Xt=W.session!==void 0?null:E,Ft=W.clearPrompt===void 0?()=>{qe(""),$(null)}:W.clearPrompt,za=he?null:e5(ye,B),Nt=he??za?.action??null,vn=za?.prompt||ye,xn=Nt?null:v5(ye),sa=Nt||xn?null:Hm(ye),Qn=W.usageAttribution??(sa?{surface:"chat",workflowKind:"slash_command",commandName:`/${sa.command}`,commandSource:"prompt_parse"}:void 0);me(null);let Lt=null,en=null;try{if(xn&&De!=="codex"&&Xe?.provider!=="codex"){if(V.length>0)throw new Error("Direct commands do not accept attachments.");return await se({command:xn.command,clearPromptForTurn:Ft,modelForTurnValue:Ne,onSessionCreated:W.onSessionCreated,openPondCommandAccessModeForTurn:nt,providerForTurn:De,selectedSessionForTurn:Xe,selectSession:Dt})}if(!Qe&&sa?.command==="sync-cloud")return await H({clearPromptForTurn:Ft,displayPrompt:Te,onSessionCreated:W.onSessionCreated,selectSession:Dt});if(Nt){const Rt=PG(Nt);if(Rt){let st=Xe;if(!st||st.cloudProjectId!==Rt.projectId){st=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",Ne,Ue),openPondCommandAccessMode:ot("openpond",nt),appId:null,appName:null,workspaceKind:"sandbox",workspaceId:Rt.projectId,workspaceName:Rt.projectName??Rt.agentName,localProjectId:null,cloudProjectId:Rt.projectId,cloudTeamId:Rt.teamId,cwd:null,title:vn.slice(0,64)}),de(Fn=>[st,...Fn]),W.onSessionCreated?.(st),Dt&&Le(st.id);const En=Wt("cloud",Rt.projectId);Dt&&je(En),Dt&&m(En)}const St=await ge.runSandboxAgent(t,Rt.agentId,DG({agent:Rt,attachments:V,displayPrompt:Te,prompt:vn})),Tt=await ge.bootstrap(t);return e(Tt),Ft(),Q(En=>ql(En,Pw({action:Nt,prompt:Te,runPayload:St,sessionId:st.id}))),!0}const Kt=OG(Nt);if(Kt){let st=Xe;(!st||st.provider!=="openpond")&&(st=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",Ne,Ue),openPondCommandAccessMode:ot("openpond",nt),appId:null,appName:null,workspaceId:null,workspaceName:"OpenPond profile",localProjectId:null,cloudProjectId:null,cloudTeamId:null,cwd:null,title:vn.slice(0,64)}),de(Tt=>[st,...Tt]),W.onSessionCreated?.(st),Dt&&Le(st.id)),await ge.runProfileAction(t,zG({action:Kt,attachments:V,displayPrompt:Te,prompt:vn,sessionId:st.id}));const St=await ge.bootstrap(t);return e(St),Ft(),!0}const Ot=wR({cloudProjects:I,selectedCloudProject:N,selectedProject:z});if(!Ot)throw new Error("Select a Project linked to an OpenPond Cloud Project before running an action.");let Mt=Xe;(!Mt||Mt.cloudProjectId!==Ot.id)&&(Mt=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",Ne,Ue),openPondCommandAccessMode:ot("openpond",nt),appId:null,appName:null,workspaceKind:"sandbox",workspaceId:Ot.id,workspaceName:Ot.name,localProjectId:Ot.localProjectId,cloudProjectId:Ot.id,cloudTeamId:Ot.teamId,cwd:null,title:vn.slice(0,64)}),de(st=>[Mt,...st]),W.onSessionCreated?.(Mt),Dt&&(Le(Mt.id),je(Ot.selectionKey),m(Ot.selectionKey)));const oe=await q(Ot.id,Ot.teamId);if(!oe)throw new Error("No OpenPond Agent is available for this Project.");Ft();const pt=await ge.runSandboxAgent(t,oe.id,$G({action:Nt,attachments:V,displayPrompt:Te,prompt:vn,teamId:Ot.teamId})),dt=await ge.bootstrap(t);return e(dt),Q(st=>ql(st,Pw({action:Nt,prompt:Te,runPayload:pt,sessionId:Mt.id}))),!0}let kt=Xe;if(kt&&ia(kt.id)){Ft(),Lt=kt.id,Ke.current.add(Lt),fe?.(Lt,!0);const Rt=nW(kt.id,ye),Kt=Mt=>{(!Qe||ne?.id===kt.id)&&be(oe=>tW(oe,Mt)),W.onCodexHistoryOptimisticEvent?.(Mt)};Kt(Rt),ie(Mt=>Mt.map(oe=>oe.id===kt.id?{...oe,status:"active"}:oe));const Ot=await ge.sendCodexHistoryTurn(t,kt.id,{prompt:ye,attachments:V.length>0?V:void 0,model:Ev("codex",Ne,Ue),modelRef:pi("codex",Ne,Ue),...E1(n),codexPermissionMode:n,codexReasoningEffort:o}).catch(Mt=>{throw Kt(aW(Rt,Mt)),Mt});return(!Qe||ne?.id===kt.id)&&be(Ot.events),ie(Mt=>Hu(Mt,Ot.session)),te?.(Ot),!0}const _a=(Xt?C.find(Rt=>Rt.id===Xt&&GI(Ce,Rt)&&Rt.sandbox)??null:null)??UB(Ce,ZI(C)),la=s5(Ce,w).map(Rt=>Rt.ref);if(!kt){const Rt=pn?.appId??at?.id??null,Kt=pn?.appName??at?.name??null,Ot=ct,Mt=Qe?null:ti(vt,I),oe=hn?ZZ({cloudProjects:I,selectedCloudProject:Ot,selectedProject:vt}):null;if(oe?.kind==="missing_cloud_project")throw new Error(oe.message);const pt=oe?.kind==="ready",dt=pt?De:Ot?"openpond":De,st=pi(dt,Ne,Ue),St=ot(dt,nt);kt=await ge.createSession(t,pt?{...WZ({modelRef:st,provider:dt,target:oe,title:ye.slice(0,64)}),subagentDelegationMode:Y,...St?{openPondCommandAccessMode:St}:{}}:{provider:dt,modelRef:st,subagentDelegationMode:Y,...St?{openPondCommandAccessMode:St}:{},appId:Rt,appName:Kt,workspaceKind:Ot?"sandbox":vt?"local_project":at?"sandbox_app":void 0,workspaceId:vt?.id??(at?Rt:void 0),workspaceName:Ot?.name??vt?.name??Kt,localProjectId:vt?.id??null,cloudProjectId:Ot?.id??Mt?.id??null,cloudTeamId:Ot?.teamId??Mt?.teamId??null,cwd:vt?vt.workspacePath:null,title:ye.slice(0,64)}),de(Tt=>[kt,...Tt]),W.onSessionCreated?.(kt),Dt&&(Le(kt.id),Ot&&je(Wt("cloud",Ot.id)),kt.workspaceKind==="local_project"&&kt.workspaceId&&m(Wt("local",kt.workspaceId)),Ot&&m(Wt("cloud",Ot.id)))}if(xi(kt.workspaceKind)&&kt.provider!=="openpond"&&!os(kt))throw new Error("Cloud workspaces use OpenPond Chat. Switch to Local to use local providers.");if(xi(kt.workspaceKind)&&g)try{kt=await g(kt)}catch(Rt){const Kt=Rt instanceof Error?Rt.message:String(Rt);throw await ge.recordPreflightTurnFailure(t,kt.id,{prompt:ye,error:Kt,target:os(kt)?"hybrid_sandbox":"cloud_workspace"}).then(e).catch(()=>{}),Rt}const kn=sa,un=kn?(await Jn(async()=>{const{buildComposerCreateImproveRun:Rt}=await import("./create-pipeline-request-AJWLMTyw.js");return{buildComposerCreateImproveRun:Rt}},[],import.meta.url)).buildComposerCreateImproveRun({parsed:kn,prompt:ye,payload:S,session:kt,messages:Sn,attachments:V,apps:_a?[_a]:[]}):null;if(kn?.command==="edit"&&!un)throw new Error("Select an agent-backed chat before using /edit.");en=yV({afterMessageId:Sn.at(-1)?.id??null,attachments:V,content:ye,sessionId:kt.id}),Ft(),Lt=kt.id,Ke.current.add(Lt),R?.(en),de(Rt=>Rt.map(Kt=>Kt.id===Lt?{...Kt,status:"active"}:Kt));const ea=De,Ln=eW({provider:ea,model:Ne,providerSettings:Ue}),ba=pI(ea,Ln.model??Ne,Ue),ka=ea==="codex"?E1(n):{approvalPolicy:"on-request",sandbox:"workspace-write"};await ge.sendTurn(t,kt.id,{prompt:ye,metadata:W.turnMetadata,attachments:V.length>0?V:void 0,mentionedAppIds:_a?[_a.id]:void 0,mentionedConnectedApps:la.length>0?la:void 0,openPondActionCatalog:K.length>0?K:void 0,createImproveRun:un,usageAttribution:Qn,...Ln,...ka,codexPermissionMode:ea==="codex"?n:"default",codexReasoningEffort:ba?o:void 0});const ca=await ge.bootstrap(t);e(ca);const tn=kt.workspaceId??kt.appId;return tn&&kt.workspaceKind!=="sandbox"&&kt.workspaceKind!=="sandbox_template"&&j(tn,!1).then(Rt=>{Rt?.initialized&&U(tn)}),!0}catch(kt){return en&&L?.(en.sessionId,en.id),me(kt instanceof Error?kt.message:String(kt)),!1}finally{Lt&&Ke.current.delete(Lt),Lt&&ia(Lt)&&fe?.(Lt,!1),Lt&&(ia(Lt)?ie(kt=>kt.map(On=>On.id===Lt&&On.status==="active"?{...On,status:"idle"}:On)):de(kt=>kt.map(On=>On.id===Lt&&On.status==="active"?{...On,status:"idle"}:On)))}}async function ze(V){const he=Ke.current.values().next().value??null,A=V??ne?.id??he;if(!t||!A)return!1;if(me(null),ia(A))try{const W=await ge.interruptCodexHistoryTurn(t,A);if(!W.interrupted){if(W.reason==="no_active_openpond_turn"){const ye=await ge.codexHistoryThread(t,A,{tail:!0}),Te={...ye.session,status:"idle"};return ne?.id===A&&be(ye.events),ie(De=>Hu(De,Te)),me("OpenPond no longer has a live interrupt handle for this Codex history turn. The chat was marked idle so you can send again."),!0}return me("This Codex history turn is still starting. Try stopping it again in a moment."),!1}const Ce=await ge.codexHistoryThread(t,A,{tail:!0});return ne?.id===A&&be(Ce.events),ie(ye=>Hu(ye,Ce.session)),!0}catch(W){const Ce=W instanceof Error?W.message:String(W);return me(Ce==="Not found"?"OpenPond could not find this Codex history session, so it cannot interrupt it here.":Ce),!1}try{await ge.interruptTurn(t,A);const W=await ge.bootstrap(t);return e(W),!0}catch(W){return me(W instanceof Error?W.message:String(W)),!1}}async function Ye(V,he){if(!t){me("OpenPond App server is not connected.");return}me(null),await ge.applyCreateImproveAction(t,V.id,{...he,runId:V.id,expectedRevision:V.revision,actionId:`web:${he.type}:${crypto.randomUUID()}`});const A=await ge.bootstrap(t);e(A)}async function Ct(V){await Ye(V.run,{type:"approve_plan"})}async function yt(V){await Ye(V.run,{type:"cancel",reason:null})}async function Et(V,he){await Ye(V.run,{type:"revise_plan",revision:he})}async function gt(V,he,A){await Ye(V.run,{type:"answer_question",questionId:he,value:A})}async function Be(V){await Ye(V.run,{type:"pause"})}async function it(V){await Ye(V.run,{type:"resume"})}async function y(V,he){await Ye(V.run,{type:"open_pull_request",candidateId:he})}async function Z(V,he){await Ye(V.run,{type:"apply_candidate",candidateId:he})}async function le(V,he){await Ye(V.run,{type:"reject_candidate",candidateId:he,reason:null})}async function Pe(V,he){await Ye(V.run,{type:"reconcile_pull_request",candidateId:he})}return{answerCreateImproveQuestion:gt,approveCreateImproveRun:Ct,applyCreateImproveCandidate:Z,cancelCreateImproveRun:yt,changeDraftProvider:Me,openCreateImprovePullRequest:y,pauseCreateImproveRun:Be,reconcileCreateImprovePullRequest:Pe,rejectCreateImproveCandidate:le,resumeCreateImproveRun:it,reviseCreateImproveRun:Et,sendPrompt:we,stopTurn:ze}}async function rW({branch:e,connection:t,session:n}){if(!xi(n.workspaceKind))return{sandbox:null,session:n,status:"already_running"};const o=await ge.ensureCloudWorkspaceReady(t,n.id,{branch:e,surface:"desktop"});return{bootstrap:await ge.bootstrap(t),output:o.output,sandbox:null,session:o.session,status:o.status}}function iW(e){return os(e)?"Preparing Hybrid sandbox...":"Starting Cloud workspace..."}function sW(e,t){if(e==="already_running")return null;const n=os(t)?"Hybrid sandbox":"Cloud workspace";return e==="waited_for_creating"?`${n} is ready.`:e==="started"?`Started ${n}.`:e==="resumed"?`Resumed ${n}.`:e==="restored"?`Restored ${n}.`:`Recreated ${n}.`}function lW(e,t){return!e.cloudProjectId||!e.cloudTeamId?!0:t.some(n=>n.id===e.cloudProjectId&&n.teamId===e.cloudTeamId)}function cW({applyBootstrapPayload:e,cloudProjects:t,connection:n,localProjectById:o,selectedCloudProject:i,selectedProject:l,setWorkspaceBusy:u,showToast:m,visibleWorkspaceState:g}){return b.useCallback(async p=>{if(!n)throw new Error("OpenPond App server is not connected.");const S=l??(p.localProjectId?o.get(p.localProjectId)??null:null);if(p.cloudProjectId&&p.cloudTeamId&&!lW(p,t))throw new Error("This Cloud session belongs to a different OpenPond account. Sync or select a Project in the current account.");p.workspaceId||m(iW(p),"info"),u(!0);try{const x=await rW({branch:l?.linkedSandboxProject?.defaultBranch??i?.defaultBranch??g?.currentBranch??null,connection:n,localProject:S,session:p,source:os(p)?"openpond-app-hybrid-chat-preflight":"openpond-app-cloud-chat-preflight"});x.bootstrap&&e(x.bootstrap);const C=sW(x.status,p);return C&&m(C,"success"),x.session}finally{u(!1)}},[e,t,n,o,i,l,u,m,g?.currentBranch])}function uW(){return{diffPanelOpen:!1,diffPanelExpanded:!1,rightPanelMode:"changes",rightChatPanels:[]}}function dW(e){return e.keepOpen?fW():uW()}function fW(){return{diffPanelOpen:!0,diffPanelExpanded:!1,rightPanelMode:"home",rightChatPanels:[]}}function mW(e){return{diffPanelOpen:e.diffPanelOpen,diffPanelExpanded:e.diffPanelExpanded,rightPanelMode:e.rightPanelMode,rightChatPanels:e.rightChatPanels}}function Nw(e){return{...e,rightChatPanels:e.rightChatPanels.map(t=>({...t}))}}function pW(e,t){return e.diffPanelOpen!==t.diffPanelOpen||e.diffPanelExpanded!==t.diffPanelExpanded||e.rightPanelMode!==t.rightPanelMode||e.rightChatPanels.length!==t.rightChatPanels.length?!1:e.rightChatPanels.every((n,o)=>{const i=t.rightChatPanels[o];return!!(i&&n.id===i.id&&n.sessionId===i.sessionId&&n.prompt===i.prompt&&n.provider===i.provider&&n.model===i.model)})}function hW(e){return`${e.conversationId}\0${e.workspaceSourceKey||"none"}`}function gW(e){const{appDispatch:t,diffPanelExpanded:n,diffPanelOpen:o,rightChatPanels:i,rightPanelMode:l,selectedAppId:u,selectedCloudProject:m,selectedCloudWorkItem:g,selectedProjectId:p,selectedSession:S,selectedSessionId:x,setWorkspaceDiffPanelViewState:C,view:w,viewWorkspaceAppId:E,viewWorkspaceId:j,viewWorkspaceKind:U,workspaceDiffPanelViewState:D}=e,B=b.useRef(new Map),K=b.useRef(new Map),I=b.useRef(null),O=b.useRef(null),N=x??`draft:${p??u??m?.id??"general"}`,z=b.useMemo(()=>w==="cloud"&&g?.id?`cloud-work:${g.id}`:j?`${U??"workspace"}:${j}`:E?`app:${E}`:S?.cwd&&!xi(S.workspaceKind)?`cwd:${S.cwd}`:"none",[g?.id,S?.cwd,S?.workspaceKind,w,E,j,U]),G=hW({conversationId:N,workspaceSourceKey:z}),ne=b.useMemo(()=>mW({diffPanelExpanded:n,diffPanelOpen:o,rightChatPanels:i,rightPanelMode:l}),[n,o,i,l]);b.useEffect(()=>{const Y=I.current;Y&&B.current.set(Y,Nw(ne))},[N,ne]),b.useEffect(()=>{if(I.current===N)return;I.current=N;const ue=B.current.get(N)??dW({keepOpen:ne.diffPanelOpen});pW(ne,ue)||t({type:"patch",patch:Nw(ue)})},[N,ne]),b.useEffect(()=>{const Y=O.current;Y&&K.current.set(Y,Og(D))},[G,D]),b.useEffect(()=>{if(O.current===G)return;O.current=G;const ue=K.current.get(G)??aR();C(Se=>tw(Se,ue)?Se:Og(ue))},[G]);const ce=b.useCallback(Y=>{C(ue=>tw(ue,Y)?ue:Og(Y))},[]);return{browserConversationId:N,handleWorkspaceDiffPanelViewStateChange:ce}}function bW({account:e,accountPending:t,accountSignedOut:n,activeWorkspaceKind:o,activeWorkspaceLocation:i,appDispatch:l,applyBootstrapPayload:u,busy:m,cloudSetupDialog:g,cloudProjects:p,connection:S,defaultTeamId:x,expandProject:C,localProjectById:w,selectedCloudProject:E,selectedProject:j,selectedSession:U,selectedSessionProjectId:D,setCloudSetupDialog:B,setDiffPanelOpen:K,setError:I,setSessions:O,setWorkspaceBusy:N,showToast:z,visibleWorkspaceState:G,workspaceBusy:ne}){const ce=e?.baseUrl??e?.activeProfile?.baseUrl??null,Y=b.useCallback(async($,be)=>{if(S)try{const ie=await ge.previewLocalProjectCloudSource(S,$.id,{branch:be});B(fe=>!fe||fe.status!=="confirm"||fe.localProjectId!==$.id||fe.branch!==be?fe:{...fe,branch:ie.preview.branch,cloudProjectId:ie.preview.targetProjectId,preview:ie.preview,previewLoading:!1,previewError:null})}catch(ie){const fe=ie instanceof Error?ie.message:String(ie);B(te=>!te||te.status!=="confirm"||te.localProjectId!==$.id||te.branch!==be?te:{...te,preview:null,previewLoading:!1,previewError:fe})}},[S,B]),ue=b.useCallback(async()=>{const $=g;if(!$||$.status==="uploading")return;if($.projectKind==="cloud"){B(te=>te&&{...te,status:"ready",error:null});return}if(!S){B(te=>te&&{...te,status:"error",error:"OpenPond App server is not connected."});return}const be=$.localProjectId??"",ie=w.get(be);if(!ie){B(te=>te&&{...te,status:"error",error:"Project is no longer available."});return}N(!0);const fe=ti(ie,p);B(te=>te&&{...te,status:"uploading",error:null,previewLoading:!1});try{const te=await ge.organizations(S),R=ep(te.organizations.map(Zm).filter(He=>!!He).filter(He=>He.status==="active"),x);if(!R)throw new Error("Add an OpenPond account before creating a Cloud environment.");if(!Qm(R))throw new Error(`You need owner or admin access to create projects in ${R.displayName}.`);const L=$.branch||ie.linkedSandboxProject?.defaultBranch||"main",Q=Wt("local",ie.id),Ae=await ge.createSession(S,{provider:"openpond",appId:null,appName:null,workspaceKind:"local_project",workspaceId:ie.id,workspaceName:ie.name,localProjectId:ie.id,cloudProjectId:fe?.id??null,cloudTeamId:fe?.teamId??null,cwd:ie.workspacePath,title:`Sync ${ie.name} to Cloud`});O(He=>[Ae,...He]),l({type:"selectSession",sessionId:Ae.id,projectId:Q}),C(Q);const je=await ge.uploadLocalProjectCloudSource(S,ie.id,{teamId:R.teamId,projectName:ie.name,branch:L,chatSessionId:Ae.id,displayPrompt:`/sync-cloud ${ie.name}`});u(je.bootstrap),C(Q),C(Wt("cloud",je.project.id));const Le=Cb({accountBaseUrl:ce,teamId:je.project.teamId,projectId:je.project.id,projectName:je.project.name,baseBranch:je.upload.branch,localProjectId:ie.id,source:"openpond-app"}),de=IC({accountBaseUrl:ce,organizationSlug:je.project.organizationSlug,projectSlug:je.project.slug});B({status:"ready",localProjectId:ie.id,cloudProjectId:je.project.id,teamId:je.project.teamId,projectName:je.project.name,projectKind:"local",projectUrl:de,setupUrl:Le,branch:je.upload.branch,preview:$.preview??null,previewLoading:!1,previewError:null,upload:{branch:je.upload.branch,headCommit:je.upload.headCommit,fileCount:je.upload.fileCount,byteCount:je.upload.byteCount,skippedCount:je.upload.skippedCount,initializedEmptyProject:je.upload.initializedEmptyProject},error:null}),z("Source uploaded to OpenPond Git. Cloud setup link is ready.","success")}catch(te){const R=te instanceof Error?te.message:String(te),L=S?await ge.bootstrap(S).catch(()=>null):null;L&&u(L),I(R),B(Q=>Q&&{...Q,status:"error",error:R})}finally{N(!1)}},[ce,l,u,g,p,S,x,C,w,B,I,O,N,z]),Se=b.useCallback(($,be)=>{if(!S){z("OpenPond App server is not connected.","error");return}if(t){z("Checking OpenPond account. Try again in a moment.","info");return}if(n){z("Add an OpenPond account before using Cloud.","error");return}const ie=be||$.linkedSandboxProject?.defaultBranch||"main";B({status:"confirm",localProjectId:$.id,projectName:$.name,projectKind:"local",projectUrl:null,setupUrl:null,branch:ie,preview:null,previewLoading:!0,previewError:null,upload:null,error:null}),Y($,ie)},[t,n,S,Y,B,z]),me=b.useCallback(async $=>{if($===i||ne||m)return;if(I(null),$==="queue_cloud"){const fe=E??ti(j,p);if(!fe){if(j){Se(j,G?.currentBranch??null);return}z("Select a Project before queueing Cloud work.","error");return}z(`Next Cloud task will use ${fe.name}. Start the message with /goal-remote to queue it while this chat stays local.`,"info");return}if($==="upload_cloud"){if(!j){z("Select a local Project before uploading source.","error");return}Se(j,G?.currentBranch??null);return}if($==="local"){const fe=U?.localProjectId??j?.id??D??null,te=fe?w.get(fe)??null:null;if(!te){z("No linked local workspace for this Cloud chat.","error");return}if(xi(o)&&!window.confirm("Switch to Local? Cloud changes will stay in the hosted workspace until you preserve or export them."))return;const R=Wt("local",te.id);l({type:"selectProject",projectId:R}),C(R),K(!1),z(`Switched to Local: ${te.name}`,"info");return}if(!S){z("OpenPond App server is not connected.","error");return}if(t){z("Checking OpenPond account. Try again in a moment.","info");return}if(n){z("Add an OpenPond account before using Cloud.","error");return}if(E){B({status:"ready",cloudProjectId:E.id,teamId:E.teamId,projectName:E.name,projectKind:"cloud",projectUrl:IC({accountBaseUrl:ce,organizationSlug:E.organizationSlug,projectSlug:E.slug}),setupUrl:Cb({accountBaseUrl:ce,teamId:E.teamId,projectId:E.id,projectName:E.name,baseBranch:E.defaultBranch,source:"openpond-app"}),branch:E.defaultBranch??"main",preview:null,previewLoading:!1,previewError:null,upload:null,error:null});return}const be=j;if(!be){z("Select a Project before Cloud coding.","error");return}const ie=G?.currentBranch||be.linkedSandboxProject?.defaultBranch||"main";Se(be,ie)},[ce,t,n,o,i,l,m,S,p,C,w,Se,E,j,U,D,B,K,I,z,G?.currentBranch,ne]),qe=b.useCallback($=>{Tv($)&&Se($.project)},[Se]);return{changeWorkspaceTarget:me,moveProjectToCloud:qe,openCloudSetupForLocalProject:Se,startCloudSetupUpload:ue}}function vW(e){if(e.pendingWorkspaceTarget!=="queue_cloud"||e.actionSelected||e.promptOverrideProvided)return{kind:"not_queued"};if(e.attachmentCount>0)return{kind:"attachments_unsupported",message:"Queued Cloud work does not accept attachments yet. Add file context in the Cloud task thread."};const t=e.selectedCloudProjectId??e.selectedProjectCloudProjectId??null;if(!t)return{kind:"missing_cloud_project",message:"Upload/sync this Project to Cloud before queueing work."};const n=e.prompt.trim();return n?{kind:"ready",request:{projectId:t,prompt:n,select:!1,...e.selectedLocalProjectId?{localProjectId:e.selectedLocalProjectId}:{},...e.selectedLocalProjectName?{localProjectName:e.selectedLocalProjectName}:{},...e.selectedLocalWorkspacePath?{localWorkspacePath:e.selectedLocalWorkspacePath}:{},...e.selectedProjectCloudSourceRef?{sourceRef:e.selectedProjectCloudSourceRef}:{},...e.selectedProjectCloudBaseSha?{baseSha:e.selectedProjectCloudBaseSha}:{},requestedExecutionTarget:"queue_cloud"}}:{kind:"empty_prompt"}}function yW({advanceTrainingTurn:e,bindTrainingSession:t,composerDraftStore:n,createCloudWork:o,onSessionCreated:i,pendingWorkspaceTarget:l,prepareTrainingTurn:u,selectedCloudProjectId:m,selectedLocalProjectId:g,selectedLocalProjectName:p,selectedLocalWorkspacePath:S,selectedProjectCloudBaseSha:x,selectedProjectCloudProjectId:C,selectedProjectCloudSourceRef:w,sendPrompt:E,setMentionedAppId:j,setPendingWorkspaceTarget:U,setPrompt:D,showToast:B}){return b.useCallback(async(K=[],I=null,O,N={})=>{const z=O??n.getSnapshot(),G=u(z);if(G.active&&z.trim()&&!G.metadata)return B(G.error??"Load the selected generated Taskset question before sending, or close the generated-question handoff to write a normal prompt.","error"),!1;const ne=vW({pendingWorkspaceTarget:l,actionSelected:!!I,promptOverrideProvided:O!==void 0,attachmentCount:K.length,selectedCloudProjectId:m,selectedProjectCloudProjectId:C,selectedLocalProjectId:g,selectedLocalProjectName:p,selectedLocalWorkspacePath:S,selectedProjectCloudSourceRef:w,selectedProjectCloudBaseSha:x,prompt:z});if(ne.kind!=="not_queued"){if(ne.kind==="attachments_unsupported")return B(ne.message,"error"),!1;if(ne.kind==="missing_cloud_project")return B(ne.message,"error"),U(null),!1;if(ne.kind==="empty_prompt")return!1;const Y=await o(ne.request);return Y&&(N.preservePrompt||(D(""),j(null)),U(null)),Y}const ce=await E(K,I,O,{clearPrompt:N.preservePrompt?()=>{}:void 0,displayPrompt:N.displayPrompt,onSessionCreated:Y=>{i(Y),G.metadata&&t(Y.id)},turnMetadata:G.metadata??void 0});return ce&&G.metadata&&e(),ce},[e,t,n,o,i,l,u,m,g,p,S,x,C,w,E,j,U,D,B])}function SW({appDispatch:e,connection:t,sessions:n,setDiffPanelOpen:o,setRightPanelMode:i,setSessions:l,setView:u}){return b.useCallback(async m=>{if(!t)return;const g=n.find(x=>!x.archived&&x.workspaceKind==="sandbox"&&x.workspaceId===m.sandboxId);if(g){e({type:"selectSession",sessionId:g.id,appId:null,projectId:null}),i("changes"),o(!0),u("chat");return}const p=m.name??`Sandbox ${m.sandboxId.slice(0,8)}`,S=await ge.createSession(t,{provider:"openpond",appId:null,appName:null,workspaceKind:"sandbox",workspaceId:m.sandboxId,workspaceName:p,cwd:null,title:p});l(x=>[S,...x]),e({type:"selectSession",sessionId:S.id,appId:null,projectId:null}),i("changes"),o(!0),u("chat")},[e,t,n,o,i,l,u])}function xW({connection:e,defaultTeamId:t,sessions:n,selectedProjectId:o,confirmProjectAction:i,openExistingProjectDialog:l,applyBootstrapPayload:u,expandProject:m,revealProjectsSection:g,setExpandedProjectIds:p,setSelectedAppId:S,setSelectedProjectId:x,setSelectedSessionId:C,setError:w,setView:E,showToast:j}){function U(N){const z=Wt("local",N.id);S(null),x(z),C(null),E("chat"),g(),m(z)}async function D(N){if(!e)return!1;w(null);const z=N.trim();if(!z)return!1;try{const G=await ge.createLocalProject(e,{path:z});return u(G.bootstrap),U(G.project),j(G.created===!1?`Opened ${G.project.name}`:`Added ${G.project.name}`,"success"),!0}catch(G){return w(G instanceof Error?G.message:String(G)),j("Project folder could not be added","error"),!1}}async function B(){if(e){if(w(null),window.openpond?.selectFolder){const N=await window.openpond.selectFolder();if(N.canceled||!N.path)return;await D(N.path);return}l()}}async function K(N){if(!e)return!1;const z=N.trim();if(!z)return!1;w(null);try{const G=await ge.createLocalProject(e,{createNew:!0,name:z});return u(G.bootstrap),U(G.project),j(`Created ${G.project.name}`,"success"),!0}catch(G){return w(G instanceof Error?G.message:String(G)),j("Project could not be created","error"),!1}}async function I(N){if(!e)return!1;const z=N.trim();if(!z)return!1;w(null);try{const G=await ge.organizations(e),ne=ep(G.organizations.map(Zm).filter(me=>!!me).filter(me=>me.status==="active"),t);if(!ne)throw new Error("Add an OpenPond account before creating a Cloud Project.");if(!Qm(ne))throw new Error(`You need owner or admin access to create projects in ${ne.displayName}.`);const ce=`${oR(z)}-${Date.now().toString(36)}`;let Y=(await ge.upsertSandboxProject(e,{teamId:ne.teamId,name:z,sourceType:"internal_repo",normalizedSourceIdentity:ce,internalRepoPath:ce,defaultBranch:"main",sourceConfig:{sourceType:"internal_repo",sourceValue:ce},metadata:{source:"openpond-app-new-cloud-project"}})).project;Y=(await ge.uploadSandboxProjectSource(e,Y.id,{teamId:ne.teamId,branch:"main",commitMessage:"Initialize cloud project",entries:[{path:"README.md",type:"file",contentsBase64:xK(`# ${z}
|
|
181
|
+
`).filter(Boolean)),Q=te.map(Ae=>Xv({connection:fe,locallyActive:L.has(Ae),onPayload:je=>G(Jv(je,L.has(Ae))),reportedActive:R.has(Ae),sessionId:Ae,surface:"sidebar"}));return()=>Q.forEach(Ae=>Ae())},[G,ne,ce,z,o]);const Y=b.useMemo(()=>new Map(D.map(fe=>[fe.id,fe])),[D]),ue=b.useMemo(()=>{const fe=new Map(x.latestGoalRuntimeBySessionId);for(const te of D){const R=te.status==="active"?Mg(te.metadata):null;R&&fe.set(te.id,R)}for(const te of[O,S])for(const[R,L]of Object.entries(te)){const Q=Y.get(R),Ae=Q?.status==="active"?Mg(Q.metadata):null,je=jb(L)??Gv(L)??(Q?.status==="active"?gm(L)??Ae:null);je?fe.set(R,je):fe.delete(R)}if(w)if(l)fe.set(w,l);else if(C?.status==="active"&&t.length>0){const te=jb(t)??gm(t)??Mg(C.metadata);te?fe.set(w,te):fe.delete(w)}else(!ia(w)||t.length>0)&&fe.delete(w);return fe},[t.length,O,l,S,x.latestGoalRuntimeBySessionId,C?.status,C?.metadata,w,Y,D]),Se=b.useMemo(()=>{const fe=new Map(x.latestSubagentRuntimeBySessionId);return w&&(B?fe.set(w,B):fe.delete(w)),fe},[x.latestSubagentRuntimeBySessionId,w,B]),{runningSessionIds:me,selectedSessionRunning:qe}=EV({goalRuntime:l,goalRuntimeBySessionId:ue,runtimeIndexes:x,selectedSession:C,selectedSessionId:w,sidebarSessions:D,subagentRuntimeBySessionId:Se}),$=b.useMemo(()=>Jm(j),[j]);return{runningSessionIds:me,selectedSessionRunning:qe,selectedSteerAutoDispatchBlocked:!!m||$==="blocked",selectedSteerAutoDispatchReady:$==="completed"&&!m&&!qe,sidebarGoalRuntimeBySessionId:ue,sidebarSubagentRuntimeBySessionId:Se}}function PV({searchOpen:e,sectionMenuOpen:t,setSectionMenuOpen:n,setSearchOpen:o,setQuery:i}){b.useEffect(()=>{const l=u=>{if((u.metaKey||u.ctrlKey)&&u.key.toLowerCase()==="k"){u.preventDefault(),n(null),o(m=>!m);return}if(u.key==="Escape"&&e){u.preventDefault(),o(!1),i(""),n(null);return}u.key==="Escape"&&t&&(u.preventDefault(),n(null))};return document.addEventListener("keydown",l),()=>document.removeEventListener("keydown",l)},[e,t,i,o,n])}function NV({afterSequence:e,connection:t,setEvents:n,setApprovals:o,setSessions:i,setError:l,onDisconnected:u}){b.useEffect(()=>{if(!t?.token||e===null)return;let m=null,g=[],p=null;function S(){m!==null&&(window.clearTimeout(m),m=null)}function x(){l(j=>j==="Event stream disconnected"?null:j)}function C(){p=null;const j=g;if(g=[],j.length===0)return;n(D=>ql(D,j));const U=OV(j);U.length>0&&i(D=>U.reduce(Hu,D)),o(D=>{let B=D;for(const K of j)if(K.name==="approval.requested"&&K.data&&(B=[K.data,...B]),K.name==="approval.resolved"&&K.data&&typeof K.data=="object"){const I=K.data;I.approvalId&&(B=B.filter(O=>O.id!==I.approvalId))}return B})}function w(j){g.push(j),p===null&&(p=window.requestAnimationFrame(C))}const E=dB(t,j=>{S(),x(),w(j)},()=>{S(),m=window.setTimeout(()=>{E.isOpen()||(l("Event stream disconnected"),u?.())},2e3)},()=>{S(),x()},{afterSequence:e});return()=>{S(),p!==null&&window.cancelAnimationFrame(p),E.close()}},[e,t,u,o,l,n,i])}function OV(e){const t=new Map;for(const n of e){if(n.name!=="subagent.started"&&n.name!=="subagent.blocked")continue;const o=n.data;if(!o||typeof o!="object"||Array.isArray(o))continue;const i=am.safeParse(o.childSession);i.success&&t.set(i.data.id,i.data)}return[...t.values()]}function Dg(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function zV(e){return typeof e=="string"&&e.trim()?e.trim():null}function $V(e){for(let t=e.length-1;t>=0;t-=1){const n=e[t];if(n.name!=="create_improve.updated")continue;const o=Dg(n.data),i=Dg(o?.createImproveRun);if(i?.state!=="ready_local"&&i?.state!=="released"||Dg(i.adapter)?.kind!=="local")continue;const u=zV(i.id)??n.id;return[n.sessionId??"global",n.turnId??"turn",u].join(":")}return null}const DV=332,hw=244,gw=560,UV=560,bw=320,vw=2400,LV=440;function Ug(e){const t=typeof window>"u"?gw:Math.min(gw,Math.max(hw,window.innerWidth-420));return Math.min(t,Math.max(hw,Math.round(e)))}function Lg(e){const t=typeof window>"u"?vw:Math.min(vw,Math.max(bw,window.innerWidth-LV));return Math.min(t,Math.max(bw,Math.round(e)))}function qV(e,t){return!!(e&&e.serverUrl===t.serverUrl&&e.token===t.token&&e.platform===t.platform)}const Mc=new Map;function Qv(e,t){const n=e?.trim();return n?`${t?.trim()||"global"}|${n}`:null}function xR(e,t){const n=Qv(e,t);if(!n)return null;const o=Mc.get(n);return o?.updatedAt?o.agents:null}function BV(e,t,n){const o=Qv(e,n);o&&Mc.set(o,{agents:t,promise:null,updatedAt:Date.now()})}function ey(e){const t=e.teamId?.trim();if(!t)return Promise.resolve([]);const n=Qv(t,e.accountKey);if(!n)return Promise.resolve([]);const o=Mc.get(n);if(!e.force){if(o?.updatedAt)return Promise.resolve(o.agents);if(o?.promise)return o.promise}const i=e.fetchAgents(t).then(l=>(BV(t,l,e.accountKey),l)).catch(l=>{const u=Mc.get(n);throw u?.promise===i&&Mc.set(n,{agents:u.agents,promise:null,updatedAt:u.updatedAt}),l});return Mc.set(n,{agents:o?.agents??[],promise:i,updatedAt:o?.updatedAt??0}),i}const HV=6e4,FV=6e4,KV=6e4,ty=["pinned","projects","cloudProjects","chats"];function VV(e,t,n,o=Date.now()){for(const i of YV(t,n))CR(t[i],n[i])||(e[i]=o)}function GV(e,t,n,o=Date.now()){const i={...t};for(const[l,u]of Object.entries(n)){if(o-u>HV){delete n[l];continue}const m=XV(e,l),g=e[l];!m||CR(g,t[l])||(i[l]=g)}return i}function ZV(e,t,n,o=Date.now()){for(const i of ty)t[i]!==n[i]&&(e[i]=o)}function WV(e,t,n,o=Date.now()){const i={...t};for(const l of ty){const u=n[l];if(u!==void 0){if(o-u>FV){delete n[l];continue}if(e[l]===t[l]){delete n[l];continue}i[l]=e[l]}}return JV(e,i)?e:i}function yw(e,t,n=Date.now()){return e===t?null:{value:t,changedAt:n}}function Sw(e,t,n=Date.now()){return t?n-t.changedAt>KV?{value:e,localChange:null}:e===t.value?{value:e,localChange:t}:{value:t.value,localChange:t}:{value:e,localChange:null}}function YV(e,t){return new Set([...Object.keys(e),...Object.keys(t)])}function CR(e,t){return e?.pinned===t?.pinned&&e?.archived===t?.archived&&e?.order===t?.order}function JV(e,t){return ty.every(n=>e[n]===t[n])}function XV(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const QV={connecting:"Connecting to OpenPond",account:"Loading account",team:"Loading default team",ready:"Ready"};function eG(e){return{label:QV[e],ready:e==="ready",stage:e}}const tG=650,nG=1200,aG=6e4;function oG(e){const{setDraftModel:t,setDraftProvider:n,setCodexPermissionMode:o,setCodexReasoningEffort:i,setOpenPondCommandAccessMode:l,setError:u,setSelectedAppId:m,setSelectedProjectId:g,setSelectedSessionId:p}=e,[S,x]=b.useState(null),[C,w]=b.useState(null),[E,j]=b.useState([]),[U,D]=b.useState(null),[B,K]=b.useState([]),[I,O]=b.useState([]),[N,z]=b.useState([]),[G,ne]=b.useState({}),[ce,Y]=b.useState("connecting"),ue=Ob(C?.account),Se=b.useRef({}),me=b.useRef({}),qe=b.useRef({}),$=b.useRef([]),be=b.useRef([]),ie=b.useRef(null),fe=b.useRef(null),te=b.useRef(null),R=b.useRef(null),L=b.useRef(""),Q=b.useRef(!1),Ae=b.useRef(Date.now()),je=b.useRef(null),Le=b.useRef(null),de=b.useCallback(H=>{Q.current||Y(H)},[]),He=b.useCallback(H=>{ne(se=>{const we=typeof H=="function"?H(se):H;return VV(Se.current,se,we),we})},[]),xe=b.useCallback(H=>{K(se=>{const we=typeof H=="function"?H(se):H;return uw(me.current,se,we),$.current=we,we})},[]),Ke=b.useCallback(H=>{O(se=>{const we=typeof H=="function"?H(se):H;return uw(qe.current,se,we),be.current=we,we})},[]),Ue=b.useCallback(()=>{if(Q.current||je.current!==null)return;const H=()=>{je.current=null,!Q.current&&(Q.current=!0,Y("ready"))},se=Date.now()-Ae.current,we=rG(se);if(we===0){H();return}je.current=window.setTimeout(H,we)},[]);b.useEffect(()=>()=>{je.current!==null&&window.clearTimeout(je.current)},[]);const ot=b.useCallback(H=>{const se=ie.current,we=!se||se===H.server.id;ie.current=H.server.id,D(ze=>ze?.serverId===H.server.id?ze:{afterSequence:H.eventWindow?.latestSequence??Fv(H.events)??0,serverId:H.server.id}),L.current=H.preferences.defaultTeamId?.trim()??"",w(H),j(ze=>we?i7(H.events,ze):hm(H.events)),K(ze=>{const Ye=we?cw(ze,H.sessions,me.current):zb(ze,H.sessions,me.current);return $.current=Ye,Ye}),O(ze=>{const Ye=we?cw(ze,H.codexHistorySessions??[],qe.current):zb(ze,H.codexHistorySessions??[],qe.current);return be.current=Ye,Ye}),z(H.approvals),ne(ze=>GV(ze,H.sidebarAppPreferences,Se.current)),m(ze=>ze&&H.apps.some(Ye=>Ye.id===ze)?ze:null),g(ze=>{if(!ze)return null;const Ye=dI(ze);return Ye?.kind==="local"&&H.localProjects.some(Ct=>Ct.id===Ye.id)?Wt("local",Ye.id):Ye?.kind==="cloud"&&(H.cloudProjects??[]).some(Ct=>Ct.id===Ye.id)?Wt("cloud",Ye.id):H.localProjects.some(Ct=>Ct.id===ze)?Wt("local",ze):(H.cloudProjects??[]).some(Ct=>Ct.id===ze)?Wt("cloud",ze):null}),p(ze=>{if(!ze)return null;const Ye=[...H.sessions,...H.codexHistorySessions??[]];if(Ye.some(yt=>yt.id===ze&&!yt.archived))return ze;if(!we)return null;const Ct=$.current.find(yt=>yt.id===ze)??be.current.find(yt=>yt.id===ze)??null;return Ct&&!Ct.archived&&cR(Ct,Ye)?ze:null})},[m,g,p]),$e=b.useCallback(H=>{L.current=H.preferences.defaultTeamId?.trim()??"",w(se=>se&&{...se,preferences:H.preferences})},[]);b.useEffect(()=>{const H=jr(C?.preferences);n(H.defaultChatProvider),t(H.defaultChatModel)},[C?.preferences.defaultChatProvider,C?.preferences.defaultChatModel,t,n]),b.useEffect(()=>{o(lw(C?.preferences).codexPermissionMode)},[C?.preferences.codexPermissionMode,o]),b.useEffect(()=>{i(lw(C?.preferences).codexReasoningEffort)},[C?.preferences.codexReasoningEffort,i]),b.useEffect(()=>{l(_V(C?.preferences).openPondCommandAccessMode)},[C?.preferences.openPondCommandAccessMode,l]),b.useEffect(()=>{if(!S||!C)return;const H=GK(C.preferences),se=JSON.stringify(H);if(se==="{}"){fe.current=null;return}fe.current!==se&&(fe.current=se,ge.savePreferences(S,H).then($e).catch(we=>{fe.current=null,u(we instanceof Error?we.message:String(we))}))},[$e,C,C?.preferences.codexPermissionMode,C?.preferences.codexReasoningEffort,S,u]),b.useEffect(()=>{if(!S||!C)return;const H=kV(C.preferences),se=JSON.stringify(H);if(se==="{}"){te.current=null;return}te.current!==se&&(te.current=se,ge.savePreferences(S,H).then($e).catch(we=>{te.current=null,u(we instanceof Error?we.message:String(we))}))},[$e,C,C?.preferences.openPondCommandAccessMode,S,u]),b.useEffect(()=>{if(!S||!C){R.current=null;return}if(C.account.state!=="signed_in"){R.current=null,Ue();return}const H=Ob(C.account);if(!H){R.current=null,Ue();return}Ue(),de("team");const se=C.preferences.defaultTeamId?.trim()??"",we=Cw(H,se,C.accountMeta.asOf??"initial");if(R.current===we)return;R.current=we;let ze=!1;const Ye=Ct=>ey({teamId:Ct,accountKey:H,fetchAgents:async yt=>(await ge.listSandboxAgents(S,{teamId:yt})).agents}).catch(()=>{!ze&&R.current===we&&(R.current=null)});return ew({accountKey:H,force:!0,fetchOrganizations:()=>xw(S)}).then(async Ct=>{if(ze)return;if(Ct.length===0){Ue();return}if(!!se&&Ct.some(Z=>Z.teamId===se)){await Ye(se),Ue();return}const Et=CK(Ct)?.teamId;if(!Et){Ue();return}const gt=L.current;if(gt&>!==se){Ue();return}const Be=Ye(Et);R.current=Cw(H,Et,C.accountMeta.asOf??"initial");const it=await ge.savePreferences(S,{defaultTeamId:Et});await Be;const y=L.current;if(ze){y&&y!==Et&&ge.savePreferences(S,{defaultTeamId:y}).then($e).catch(Z=>{u(Z instanceof Error?Z.message:String(Z))});return}if(y&&y!==Et){$e(await ge.savePreferences(S,{defaultTeamId:y})),Ue();return}ze||($e(it),Ue())}).catch(Ct=>{ze||(R.current=null,u(Ct instanceof Error?Ct.message:String(Ct)),Ue())}),()=>{ze=!0}},[ot,$e,C?.account,C?.accountMeta.asOf,C?.preferences.defaultTeamId,Ue,S,de,u]),b.useEffect(()=>{if(!S||!ue)return;let H=!1;const se=()=>{H||(H=!0,ew({accountKey:ue,force:!0,fetchOrganizations:()=>xw(S)}).catch(()=>{}).finally(()=>{H=!1}))},we=()=>{document.visibilityState==="visible"&&se()},ze=window.setInterval(se,aG);return window.addEventListener("focus",se),document.addEventListener("visibilitychange",we),()=>{window.clearInterval(ze),window.removeEventListener("focus",se),document.removeEventListener("visibilitychange",we)}},[S,ue]);const Me=b.useCallback(async()=>{de("connecting"),D(null);const H=await PB();x(we=>qV(we,H)?we:H),de("account");const se=await ge.bootstrap(H);ot(se),Ue(),u(we=>we==="Failed to fetch"||we==="Event stream disconnected"?null:we)},[ot,Ue,de,u]);b.useEffect(()=>{let H=!1,se=null;const we=async ze=>{try{await Me()}catch(Ye){if(H)return;u(Ye instanceof Error?Ye.message:String(Ye));const Ct=Math.min(5e3,750+ze*750);se=window.setTimeout(()=>{we(ze+1)},Ct)}};return we(0),()=>{H=!0,se!==null&&window.clearTimeout(se)}},[Me,u]);const q=b.useCallback(()=>{Me().catch(()=>{})},[Me]);NV({afterSequence:U?.afterSequence??null,connection:S,setEvents:j,setApprovals:z,setSessions:xe,setError:u,onDisconnected:q}),b.useEffect(()=>{if(!S||!C){Le.current=null;return}const H=$V(E);!H||Le.current===H||(Le.current=H,ge.profileCurrent(S).then(se=>{w(we=>we&&{...we,profile:se})}).catch(se=>{Le.current=null,u(se instanceof Error?se.message:String(se))}))},[C,S,E,u]);const ae=b.useCallback(()=>{S&&ge.refreshOpenPondAccount(S).then(({account:H,accountMeta:se})=>{w(we=>we&&{...we,account:H,accountMeta:se})}).catch(H=>u(H instanceof Error?H.message:String(H)))},[S,u]);return{appPreferences:G,applyBootstrapPayload:ot,approvals:N,bootstrap:C,codexHistorySessions:I,connection:S,events:E,refreshOpenPondAccount:ae,sessions:B,startup:eG(ce),setAppPreferences:He,setBootstrap:w,setCodexHistorySessions:Ke,setEvents:j,setSessions:xe}}async function xw(e){return(await ge.organizations(e)).organizations.map(Zm).filter(n=>!!n).filter(n=>n.status==="active")}function rG(e){return e>=nG?0:Math.max(0,tG-e)}function Cw(e,t,n){return`${e}::${t||"none"}::${n}`}function iG({appDispatch:e,error:t,setErrorState:n}){const o=b.useRef(null),i=b.useRef(null),l=b.useRef(null),u=b.useRef(0),m=b.useCallback((S,x="info",C={})=>{const w=Date.now()+ ++u.current;return e({type:"showToast",toast:{id:w,message:S,tone:x,...C}}),w},[e]),g=b.useCallback(()=>{e({type:"patch",patch:{settingsSection:"diagnostics",sidebarOpen:!0,view:"settings"}})},[e]),p=b.useCallback(S=>{const x=i.current,C=typeof S=="function"?S(x):S;if(Object.is(x,C))return;if(i.current=C,n(C),!C){l.current!==null&&(e({type:"clearToast",toastId:l.current}),l.current=null);return}l.current=m(sG(C),"error",{actionLabel:"Open diagnostics settings",actionIcon:"settings",onAction:g,dismissible:!0});const w=o.current;w&&ge.recordClientDiagnostic(w,{message:C,surface:"app",context:{href:window.location.href}}).catch(E=>{console.warn("Unable to record client diagnostic.",E)})},[e,g,n,m]);return b.useEffect(()=>{i.current=t,!(t||l.current===null)&&(e({type:"clearToast",toastId:l.current}),l.current=null)},[e,t]),{connectionRef:o,setError:p,showToast:m}}function sG(e){return e==="Failed to fetch"?"Couldn’t connect to OpenPond.":e}const lG={query:"",searchOpen:!1,archivedChatsOpen:!1,sectionMenuOpen:null,projectsExpanded:!1,cloudProjectsExpanded:!1,chatRowsVisibleCount:Yn,sidebarOpen:!0,view:"chat",selectedAppId:null,selectedProjectId:null,selectedSessionId:null,prompt:"",promptDrafts:{},draftProvider:Em,draftModel:dk,codexPermissionMode:Mm,codexReasoningEffort:Pm,openPondCommandAccessMode:hd,busy:!1,diffPanelOpen:!1,diffPanelExpanded:!1,rightPanelMode:"changes",rightChatPanels:[],terminalOpen:!1,syncingWorkspaceAppId:null,settingsSection:"account",newProjectDialogOpen:!1,newProjectMode:"local",newProjectName:"",newProjectPath:"",newProjectBusy:!1,commitDialogOpen:!1,commitMessage:"",commitIncludeUnstaged:!0,commitNextStep:"commit",commitDraft:!0,branchDialogOpen:!1,branchDialogName:"",toast:null,error:null};function ny(e){return e.selectedSessionId?`session:${e.selectedSessionId}`:e.selectedProjectId?`project:${e.selectedProjectId}`:e.selectedAppId?`app:${e.selectedAppId}`:"new-chat"}function ay(e,t,n){if(!n){if(!(t in e))return e;const{[t]:o,...i}=e;return i}return e[t]===n?e:{...e,[t]:n}}function cG(e){return ay(e.promptDrafts,ny(e),e.prompt)}function Du(e,t,n={}){const o={...e,...t},i=ny(o),l=cG(e),u=n.clearSelectedDraft?ay(l,i,""):l;return{...e,...t,promptDrafts:u,prompt:n.clearSelectedDraft?"":u[i]??""}}function uG(e){return e==="selectedAppId"||e==="selectedProjectId"||e==="selectedSessionId"}function dG(e,t){switch(t.type){case"field":{const n=e[t.key],o=typeof t.value=="function"?t.value(n):t.value;if(Object.is(n,o))return e;if(t.key==="prompt"){const i=String(o);return{...e,prompt:i,promptDrafts:ay(e.promptDrafts,ny(e),i)}}return uG(t.key)?Du(e,{[t.key]:o}):{...e,[t.key]:o}}case"patch":return{...e,...t.patch};case"selectApp":return Du(e,{selectedAppId:t.appId,selectedProjectId:null,selectedSessionId:null,view:"chat"});case"selectProject":return Du(e,{selectedAppId:null,selectedProjectId:t.projectId,selectedSessionId:null,view:"chat"});case"selectSession":{const n=t.projectId??null;return Du(e,{selectedSessionId:t.sessionId,selectedAppId:n?null:t.appId??null,selectedProjectId:n,view:"chat"})}case"beginNewChat":return Du(e,{selectedSessionId:null,selectedAppId:t.appId,selectedProjectId:null,error:null,view:"chat"},{clearSelectedDraft:!0});case"openCommitDialog":return{...e,commitMessage:"",commitIncludeUnstaged:!0,commitNextStep:t.nextStep,commitDraft:!0,commitDialogOpen:!0,error:null,view:"chat"};case"openBranchDialog":return{...e,branchDialogName:t.branchName,branchDialogOpen:!0,error:null,view:"chat"};case"showToast":return{...e,toast:t.toast};case"clearToast":return e.toast?.id===t.toastId?{...e,toast:null}:e;default:return e}}function Jt(e,t){return n=>e({type:"field",key:t,value:n})}function fG(e){return{setQuery:Jt(e,"query"),setSearchOpen:Jt(e,"searchOpen"),setArchivedChatsOpen:Jt(e,"archivedChatsOpen"),setSectionMenuOpen:Jt(e,"sectionMenuOpen"),setProjectsExpanded:Jt(e,"projectsExpanded"),setCloudProjectsExpanded:Jt(e,"cloudProjectsExpanded"),setChatRowsVisibleCount:Jt(e,"chatRowsVisibleCount"),setSidebarOpen:Jt(e,"sidebarOpen"),setView:Jt(e,"view"),setSelectedAppId:Jt(e,"selectedAppId"),setSelectedProjectId:Jt(e,"selectedProjectId"),setSelectedSessionId:Jt(e,"selectedSessionId"),setPrompt:Jt(e,"prompt"),setDraftProvider:Jt(e,"draftProvider"),setDraftModel:Jt(e,"draftModel"),setCodexPermissionMode:Jt(e,"codexPermissionMode"),setCodexReasoningEffort:Jt(e,"codexReasoningEffort"),setOpenPondCommandAccessMode:Jt(e,"openPondCommandAccessMode"),setBusy:Jt(e,"busy"),setDiffPanelOpen:Jt(e,"diffPanelOpen"),setDiffPanelExpanded:Jt(e,"diffPanelExpanded"),setRightPanelMode:Jt(e,"rightPanelMode"),setRightChatPanels:Jt(e,"rightChatPanels"),setTerminalOpen:Jt(e,"terminalOpen"),setSyncingWorkspaceAppId:Jt(e,"syncingWorkspaceAppId"),setSettingsSection:Jt(e,"settingsSection"),setNewProjectDialogOpen:Jt(e,"newProjectDialogOpen"),setNewProjectMode:Jt(e,"newProjectMode"),setNewProjectName:Jt(e,"newProjectName"),setNewProjectPath:Jt(e,"newProjectPath"),setNewProjectBusy:Jt(e,"newProjectBusy"),setCommitDialogOpen:Jt(e,"commitDialogOpen"),setCommitMessage:Jt(e,"commitMessage"),setCommitIncludeUnstaged:Jt(e,"commitIncludeUnstaged"),setCommitNextStep:Jt(e,"commitNextStep"),setCommitDraft:Jt(e,"commitDraft"),setBranchDialogOpen:Jt(e,"branchDialogOpen"),setBranchDialogName:Jt(e,"branchDialogName"),setToast:Jt(e,"toast"),setError:Jt(e,"error")}}function mG(){const[e,t]=b.useReducer(dG,lG),[n]=b.useState(()=>OB()),o=b.useCallback(l=>{n.applyAppAction(l),t(l)},[n]),i=b.useMemo(()=>({...fG(o),setPrompt:n.set}),[n,o]);return{composerDraftStore:n,dispatch:o,setters:i,state:e}}function pG(e){return!!(e&&e.includes("Git is required for OpenPond app workspaces")&&e.includes("Command Line Tools"))}function hG(e){const{connection:t,events:n,showToast:o}=e,i=b.useRef(new Set),l=b.useCallback(async()=>{if(t)try{const m=await ge.installMacOSCommandLineTools(t);o(m.message,"info")}catch(m){o(m instanceof Error?m.message:String(m),"error")}},[t,o]),u=b.useCallback((m="OpenPond needs Git to create and sync local projects.")=>{o(m,"error",{actionLabel:"Install Tools",onAction:()=>{l()},persistent:!0})},[o,l]);b.useEffect(()=>{if(!t)return;let m=!1;return ge.gitAvailability(t).then(g=>{m||g.ok||g.installAction!=="macos_command_line_tools"||u("OpenPond needs Git before it can create local projects.")}).catch(()=>{}),()=>{m=!0}},[t,u]),b.useEffect(()=>{for(const m of n){if(i.current.has(m.id))continue;const g=m.error??m.output??null;m.name==="workspace_action_result"&&m.status==="failed"&&pG(g)&&(i.current.add(m.id),u("OpenPond needs Git before it can update this project."))}},[n,u])}function gG({connection:e,preferences:t,sidebarOpen:n,diffPanelOpen:o,diffPanelExpanded:i,setBootstrap:l,setError:u}){const[m,g]=b.useState(()=>jr().sidebarSectionsCollapsed),p=b.useRef(m),S=b.useRef({}),x=b.useRef(null),C=b.useRef(null),[w,E]=b.useState(DV),[j,U]=b.useState(!1),[D,B]=b.useState(UV),[K,I]=b.useState(!1),{pinned:O,projects:N,cloudProjects:z,chats:G}=m;b.useEffect(()=>{if(j)return;const te=Ug(jr(t).sidebarWidth),R=Sw(te,x.current);x.current=R.localChange,E(R.value)},[t,j]),b.useEffect(()=>{if(K)return;const te=Lg(jr(t).diffPanelWidth),R=Sw(te,C.current);C.current=R.localChange,B(R.value)},[K,t]),b.useEffect(()=>{const te=jr(t).sidebarSectionsCollapsed;g(R=>{const L=WV(R,te,S.current);return p.current=L,L})},[t]);const ne=b.useCallback(te=>{l(R=>R&&{...R,preferences:te.preferences})},[l]),ce=b.useCallback(async te=>{if(e&&Ug(jr(t).sidebarWidth)!==te)try{ne(await ge.savePreferences(e,{sidebarWidth:te}))}catch(R){u(R instanceof Error?R.message:String(R))}},[e,t,u,ne]),Y=b.useCallback(async te=>{if(e&&Lg(jr(t).diffPanelWidth)!==te)try{ne(await ge.savePreferences(e,{diffPanelWidth:te}))}catch(R){u(R instanceof Error?R.message:String(R))}},[e,t,u,ne]),ue=b.useCallback(async te=>{if(!e)return;const R=jr(t).sidebarSectionsCollapsed;if(!bG(R,te))try{ne(await ge.savePreferences(e,{sidebarSectionsCollapsed:te}))}catch(L){u(L instanceof Error?L.message:String(L))}},[e,t,u,ne]),Se=b.useCallback(te=>{const R=p.current;ZV(S.current,R,te),p.current=te,g(te),ue(te)},[ue]),me=b.useCallback(()=>{const te=p.current;Se({...te,pinned:!te.pinned})},[Se]),qe=b.useCallback(()=>{const te=p.current;Se({...te,projects:!te.projects})},[Se]),$=b.useCallback(()=>{const te=p.current;Se({...te,cloudProjects:!te.cloudProjects})},[Se]),be=b.useCallback(()=>{const te=p.current;Se({...te,chats:!te.chats})},[Se]),ie=b.useCallback(te=>{if(!n)return;te.preventDefault();const R=te.clientX,L=w;let Q=L;U(!0);function Ae(Le){Q=Ug(L+Le.clientX-R),E(Q)}function je(){window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",je);const Le=yw(L,Q);Le&&(x.current=Le),U(!1),ce(Q)}window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",je,{once:!0})},[ce,n,w]),fe=b.useCallback(te=>{if(!o||i)return;te.preventDefault();const R=te.clientX,L=D;let Q=L;I(!0);function Ae(Le){Q=Lg(L-(Le.clientX-R)),B(Q)}function je(){window.removeEventListener("pointermove",Ae),window.removeEventListener("pointerup",je);const Le=yw(L,Q);Le&&(C.current=Le),I(!1),Y(Q)}window.addEventListener("pointermove",Ae),window.addEventListener("pointerup",je,{once:!0})},[i,o,D,Y]);return{pinnedCollapsed:O,projectsCollapsed:N,cloudProjectsCollapsed:z,chatsCollapsed:G,sidebarWidth:w,sidebarResizing:j,diffPanelWidth:D,diffPanelResizing:K,togglePinnedCollapsed:me,toggleProjectsCollapsed:qe,toggleCloudProjectsCollapsed:$,toggleChatsCollapsed:be,startSidebarResize:ie,startDiffPanelResize:fe}}function bG(e,t){return e.pinned===t.pinned&&e.projects===t.projects&&e.cloudProjects===t.cloudProjects&&e.chats===t.chats}function vG(e){const[t,n]=b.useState({id:0,kind:null}),[o,i]=b.useState(null),l=b.useCallback((p=null)=>{n(S=>({id:S.id+1,kind:p}))},[]),u=b.useCallback(p=>{i(p)},[]),m=null,g=b.useMemo(()=>{if(e)return o?o.kind==="dataset"?[{label:"Lab",onSelect:()=>l(null)},{label:"Datasets",onSelect:()=>l("dataset")},...o.workproductLabel?[{label:o.workproductLabel}]:[],...o.sectionLabels.map(p=>({label:p}))]:[{label:"Lab",onSelect:()=>l(null)},{label:"Home",onSelect:()=>l(null)},{label:o.kindLabel,onSelect:()=>l(o.kind==="model"?null:o.kind)},...o.workproductLabel?[{label:o.workproductLabel}]:[],...o.sectionLabels.map(p=>({label:p}))]:[{label:"Lab"}]},[e,o,l]);return{backAction:m,breadcrumbs:g,closeDetailKind:t.kind,closeDetailRequestId:t.id,onDetailOpenChange:u}}const yG=6e4;function SG(e){const{connection:t}=e,[n,o]=b.useState(null),[i,l]=b.useState(!1),[u,m]=b.useState(!1),[g,p]=b.useState(null),S=t?.serverUrl??null,x=t?.token??null,C=b.useCallback(async()=>{if(!t)return null;l(!0);try{const U=await ge.insights(t,{status:"all",limit:200});return o(U),p(null),U}catch(U){return p(U instanceof Error?U.message:String(U)),null}finally{l(!1)}},[t]),w=b.useCallback(async(U={})=>{if(!t)return null;m(!0);try{const D=await ge.runInsightsScan(t,U);return o(D),p(null),D}catch(D){return p(D instanceof Error?D.message:String(D)),null}finally{m(!1)}},[t]),E=b.useCallback(async(U,D)=>{if(!t)return null;try{const B=await ge.patchInsight(t,U,{status:D});return o(B),p(null),B}catch(B){return p(B instanceof Error?B.message:String(B)),null}},[t]),j=b.useCallback(async U=>{if(!t)return null;m(!0);try{const D=await ge.askInsights(t,{question:U});return o(D),p(null),D}catch(D){return p(D instanceof Error?D.message:String(D)),null}finally{m(!1)}},[t]);return b.useEffect(()=>{if(!t){o(null),p(null);return}let U=!1;const D=async()=>{const K=await ge.insights(t,{status:"all",limit:200}).catch(I=>(p(I instanceof Error?I.message:String(I)),null));!U&&K&&(o(K),p(null))};D();const B=window.setInterval(D,yG);return()=>{U=!0,window.clearInterval(B)}},[t,S,x]),b.useEffect(()=>{if(!t||!n?.nextScanAt)return;const U=new Date(n.nextScanAt).getTime();if(Number.isNaN(U))return;const D=Math.max(1e3,Math.min(6e4,U-Date.now()+1e3)),B=window.setTimeout(()=>{C()},D);return()=>window.clearTimeout(B)},[t,n?.nextScanAt,C]),{payload:n,items:n?.items??[],runs:n?.runs??[],systemSessionId:n?.systemSessionId??null,systemSession:n?.systemSession??null,summary:n?.summary??null,nextScanAt:n?.nextScanAt??null,scanRunning:!!n?.scanRunning||u,scanStartedAt:n?.scanStartedAt??null,loading:i,scanning:u,error:g,refresh:C,runScan:w,askQuestion:j,patchStatus:E}}function xG(e){const{connection:t,profileId:n}=e,[o,i]=b.useState(null),[l,u]=b.useState(!1),[m,g]=b.useState(null),[p,S]=b.useState(null),x=b.useRef(null),C=b.useCallback(()=>{if(!t)return Promise.resolve(null);if(x.current)return x.current;u(!0);const I=ge.trainingState(t,n).then(O=>(i(O),S(null),O)).catch(O=>(S(Df(O)),null)).finally(()=>{x.current===I&&(x.current=null,u(!1))});return x.current=I,I},[t,n]),w=b.useCallback(async(I,O,N,z="POST",G={})=>{if(!t)return null;G.silent||g(I);try{const ne=await ge.trainingRequest(t,O,N,z);return await C(),G.silent||S(null),ne}catch(ne){return G.silent||S(Df(ne)),null}finally{G.silent||g(null)}},[t,C]);b.useEffect(()=>{if(!t){i(null);return}C()},[t,n,C]);const E=o?.jobs.some(I=>["queued","starting","running","cancelling","reconciling"].includes(I.status))??!1,j=o?.minerRuns.some(I=>["queued","running","cancelling"].includes(I.status))??!1,U=o?.frontierBaselineRuns.some(I=>["queued","running","cancelling"].includes(I.status))??!1,D=o?.servingSessions.some(I=>["starting","ready","stopping"].includes(I.state))??!1;b.useEffect(()=>{if(!t)return;let I=!0,O=null;const N=E||j||U||D?500:3e4,z=async()=>{await C(),I&&(O=window.setTimeout(()=>{z()},N))};return O=window.setTimeout(()=>{z()},N),()=>{I=!1,O!==null&&window.clearTimeout(O)}},[t,U,E,j,D,C]);const B=b.useMemo(()=>({addSource:(I,O)=>w("add-source","/sources",{profileId:n,sessionId:I,turnIds:O}),addSources:I=>w("add-sources","/sources/batch",{profileId:n,sessionIds:I}),estimateSources:I=>t?ge.trainingRequest(t,"/sources/estimate",{sessionIds:I}):Promise.resolve([]),searchChats:(I,O,N=0,z=20)=>t?ge.trainingRequest(t,"/sources/search",{query:I,candidates:O,offset:N,limit:z}):Promise.resolve({schemaVersion:"openpond.trainingChatSearchResult.v1",query:I,offset:N,limit:z,total:0,hasMore:!1,indexedChats:0,totalChats:0,indexing:!1,entries:[]}),runCrossSystemFrontierBaseline:(I,O,N,z=null)=>w("cross-system-frontier-baseline","/cross-system-operations/frontier-baseline",{profileId:n,createImproveRunId:z,localProjectId:I,model:O,reasoningEffort:N,worldSpecs:GL}),cancelCrossSystemFrontierBaseline:I=>w("cancel-cross-system-frontier-baseline",`/cross-system-operations/frontier-baseline/runs/${encodeURIComponent(I)}/cancel`,{}),removeSource:I=>w("remove-source",`/sources/${encodeURIComponent(I)}`,{},"DELETE"),deleteTaskset:I=>w("delete-model",`/tasksets/${encodeURIComponent(I)}`,{},"DELETE"),startCreation:(I,O={})=>w("create-taskset","/task-creations",{profileId:n,sourceIds:I,surface:O.surface??"training_page",mode:O.mode??"defaults",entryMode:O.entryMode??"manual",resourceIntent:O.resourceIntent??"workproduct",objective:O.objective??null,methodHint:O.methodHint??null,preferredBaseModelId:O.preferredBaseModelId??null,candidateId:O.candidateId??null,analysisModel:O.analysisModel??null,analysisReasoningEffort:O.analysisReasoningEffort??null,createImproveRunId:O.createImproveRunId??null,targetIntent:O.targetIntent??{kind:"model",id:null,displayName:null,operation:"create"}}),createModelFromTaskset:(I,O)=>w("create-model","/models/from-taskset",{profileId:n,tasksetId:I,preferredBaseModelId:O}),approveDisclosure:(I,O)=>w("approve-disclosure",`/task-creations/${encodeURIComponent(I)}/disclosure`,{approved:O}),retryCreation:I=>w("retry-creation",`/task-creations/${encodeURIComponent(I)}/retry`,{}),answerQuestions:(I,O)=>w("answer-questions",`/task-creations/${encodeURIComponent(I)}/questions`,{answers:O}),materialize:(I,O)=>w("materialize",`/task-creations/${encodeURIComponent(I)}/materialize`,{approved:O}),chatCreation:(I,O)=>w("task-creator-chat",`/task-creations/${encodeURIComponent(I)}/chat`,{message:O}),renameCreation:(I,O)=>w("rename-creation",`/task-creations/${encodeURIComponent(I)}/name`,{name:O},"PATCH"),cancelCreation:I=>w("cancel-creation",`/task-creations/${encodeURIComponent(I)}/cancel`,{}),runMiner:(I=[],O=[],N)=>w("run-miner","/miner/run",{profileId:n,sourceIds:I,sessionIds:O,config:N}),cancelMinerRun:I=>w("cancel-miner-run",`/miner/runs/${encodeURIComponent(I)}/cancel`,{}),configureMiner:I=>w("configure-miner","/miner/config",{profileId:n,config:I},"PUT"),patchCandidate:(I,O)=>w("candidate",`/candidates/${encodeURIComponent(I)}`,O,"PATCH"),createCandidate:(I,O,N,z)=>w("create-candidate",`/candidates/${encodeURIComponent(I)}/create`,{mode:O,analysisModel:N??null,analysisReasoningEffort:z??null}),baseline:(I,O)=>w("baseline","/baseline",{tasksetId:I,models:O,seeds:[0,1,2],attemptsPerTask:3}),auditGraders:I=>w("audit-graders","/audit-graders",{tasksetId:I}),calibrateJudges:I=>w("calibrate-judges","/calibrate-judges",{tasksetId:I}),readiness:I=>w("readiness","/readiness",{tasksetId:I}),previewExpertBootstrap:I=>w("preview-expert-bootstrap",`/tasksets/${encodeURIComponent(I)}/expert-bootstrap/preview`,{}),approveExpertBootstrap:(I,O)=>w("approve-expert-bootstrap",`/tasksets/${encodeURIComponent(I)}/expert-bootstrap/approve`,{previewHash:O}),createPlan:I=>w("create-plan","/plans",{...I,tasksetId:I.tasksetId}),buildBundle:I=>w("build-bundle","/bundles",{planId:I}),approveTraining:(I,O)=>w("approve-training","/approvals",{planId:I,bundleId:O}),launch:(I,O)=>w("launch","/launch",{planId:I,approvalId:O}),prepareTraining:I=>w("prepare-training","/prepare",I),startPreparedTraining:I=>w("start-prepared-training","/start/prepared",I),startTraining:I=>w("start-training","/start",I),cancelJob:I=>w("cancel-job",`/jobs/${encodeURIComponent(I)}/cancel`,{}),evaluateJob:I=>w("evaluate-job",`/jobs/${encodeURIComponent(I)}/evaluate`,{}),importArtifact:(I,O,N)=>w("import-artifact","/import",{planId:I,bundleId:O,artifactDirectory:N}),rejectModel:(I,O)=>w("reject-model",`/models/${encodeURIComponent(I)}/reject`,{reason:O}),startModelServing:I=>w("start-model-serving",`/models/${encodeURIComponent(I)}/serving`,{profileId:n}),stopModelServing:I=>w("stop-model-serving",`/serving/${encodeURIComponent(I)}/stop`,{}),bindModel:(I,O,N)=>w("bind-model",`/models/${encodeURIComponent(I)}/bind`,{profileId:n,role:O,roleTargetId:N,promotedBy:n}),rollbackModelBinding:I=>w("rollback-model-binding",`/bindings/${encodeURIComponent(I)}/rollback`,{rolledBackBy:n}),updateModelConfiguration:(I,O)=>w("update-model-configuration",`/models/${encodeURIComponent(I)}/configuration`,O,"PATCH",{silent:!0}),setModelPinned:(I,O)=>w("pin-model-version",`/models/${encodeURIComponent(I)}/pin`,{pinned:O},"PATCH"),downloadArtifact:async I=>{if(!t)return!1;g("download-artifact");try{const O=await fetch(`${t.serverUrl}/v1/training/artifacts/${encodeURIComponent(I)}/download`,{headers:{Authorization:`Bearer ${t.token}`}});if(!O.ok)throw new Error(await O.text());const N=O.headers.get("content-disposition")??"",z=/filename="([^"]+)"/.exec(N)?.[1]??"openpond-training-artifact",G=URL.createObjectURL(await O.blob()),ne=document.createElement("a");return ne.href=G,ne.download=z,ne.click(),URL.revokeObjectURL(G),!0}catch(O){return S(Df(O)),!1}finally{g(null)}},downloadModelPackage:async I=>K(`/models/${encodeURIComponent(I)}/download`,`${I}.openpond-lora.tar`),downloadBundle:async I=>K(`/bundles/${encodeURIComponent(I)}/download`,"openpond-training-bundle.json")}),[t,w,n]);async function K(I,O){if(!t)return!1;g("download-bundle");try{const N=await fetch(`${t.serverUrl}/v1/training${I}`,{headers:{Authorization:`Bearer ${t.token}`}});if(!N.ok)throw new Error(await N.text());const z=N.headers.get("content-disposition")??"",G=/filename="([^"]+)"/.exec(z)?.[1]??O,ne=URL.createObjectURL(await N.blob()),ce=document.createElement("a");return ce.href=ne,ce.download=G,ce.click(),URL.revokeObjectURL(ne),!0}catch(N){return S(Df(N)),!1}finally{g(null)}}return{payload:o,loading:l,busyAction:m,error:p,refresh:C,actions:B}}function Df(e){return e instanceof Error?e.message:String(e)}function CG({activeModel:e,activeProvider:t,applyBootstrapPayload:n,beginNewChat:o,composerDraftStore:i,connection:l,requestComposerFocus:u,selectedLocalProjectId:m,selectedSessionId:g,selectLocalProject:p,setDraftModel:S,setDraftProvider:x,setError:C,view:w}){const[E,j]=b.useState(null),U=b.useCallback(z=>{z.sourceProjectId?p(z.sourceProjectId):o(null)},[o,p]),D=b.useCallback(z=>{if(!E)return;const G={...uA(E,z),sessionId:E.sessionId?null:E.sessionId},ne=$l(G);j(G),ne&&(E.sessionId&&U(G),i.set(ne.prompt),u())},[U,i,E,u]),B=b.useCallback(()=>{const z=$l(E);z&&i.getSnapshot().trim()===z.prompt.trim()&&i.set(""),j(null)},[i,E]),K=b.useCallback(z=>{const G=z.model;l9({model:G,connection:l,loadBootstrap:ge.bootstrap,applyBootstrap:n}).then(()=>{const ne={...z,selectedTaskIndex:0,sessionId:null};x(G.providerId),S(G.modelId),j(ne.tasks.length?ne:null),U(ne);const ce=$l(ne);ce&&i.set(ce.prompt)}).catch(C)},[n,U,i,l,S,x,C]),I=b.useCallback(z=>{const G=!!(E&&E.model.providerId===t&&E.model.modelId===e);return{active:G,error:G?dA(E,m):null,metadata:G?s9(E,z,m):null}},[e,t,E,m]),O=b.useCallback(z=>{j(G=>G&&{...G,sessionId:z})},[]),N=b.useCallback(()=>{if(!E)return;const z={...i9(E),sessionId:null},G=$l(z);j(z),G&&(U(z),i.set(G.prompt),u())},[U,i,E,u]);return b.useEffect(()=>{const z=$l(E);!z||w!=="chat"||g||i.set(G=>G.trim()?G:z.prompt)},[i,E,m,g,w]),b.useEffect(()=>{E&&g&&E.sessionId!==g&&j(null)},[E?.sessionId,g]),{advanceAfterTurn:N,begin:K,bindSession:O,dismiss:B,handoff:E,prepareTurn:I,selectTask:D}}const Uu=[],qg=500;function wG(e){const{approvals:t,codexHistoryEvents:n,connection:o,latestServerSequence:i,runtimeIndexes:l,selectedSessionId:u,serverId:m,setCodexHistoryEvents:g,setCodexHistorySessions:p,setError:S}=e,[x,C]=b.useState({}),[w,E]=b.useState({}),j=b.useRef(new Set);b.useEffect(()=>{C({}),E({}),j.current.clear()},[m]);const U=b.useCallback(async()=>{if(!o||!u||j.current.has(u))return!1;const O=w[u];if(O?.hasMore===!1)return!1;if(ia(u)){const G=Math.max(O?.totalMatchingEvents??0,n.length,fR),ne=Math.min(dw,Math.max(aV,G*2));j.current.add(u),E(ce=>({...ce,[u]:{cursorSequence:null,hasMore:!0,loading:!0,totalMatchingEvents:ce[u]?.totalMatchingEvents??n.length}}));try{const ce=await mR(o,u,{force:!0,limit:ne,tail:!1});return g(ce.events),p(Y=>Wm(Y,ce.session)),E(Y=>({...Y,[u]:{cursorSequence:null,hasMore:ce.events.length>=ne&&ne<dw,loading:!1,totalMatchingEvents:ne}})),ce.events.length>n.length}catch(ce){return S(ce instanceof Error?ce.message:String(ce)),E(Y=>({...Y,[u]:{cursorSequence:null,hasMore:Y[u]?.hasMore??!0,loading:!1,totalMatchingEvents:Y[u]?.totalMatchingEvents??n.length}})),!1}finally{j.current.delete(u)}}const N=dl(x[u]??Uu,Ui(l,u)),z=O?.cursorSequence??_G(N);if(!z)return!1;j.current.add(u),E(G=>({...G,[u]:{cursorSequence:G[u]?.cursorSequence??z,hasMore:G[u]?.hasMore??!0,loading:!0,totalMatchingEvents:G[u]?.totalMatchingEvents??null}}));try{const G=await ge.runtimeEventsPage(o,{sessionId:u,beforeSequence:z,limit:qg}),ne=G.events.map(ce=>ce.event);return C(ce=>({...ce,[u]:dl(ne,ce[u]??Uu)})),E(ce=>({...ce,[u]:{cursorSequence:G.previousSequence,hasMore:G.hasMore,loading:!1,totalMatchingEvents:G.totalMatchingEvents}})),ne.length>0}catch(G){return S(G instanceof Error?G.message:String(G)),E(ne=>({...ne,[u]:{cursorSequence:ne[u]?.cursorSequence??z,hasMore:ne[u]?.hasMore??!0,loading:!1,totalMatchingEvents:ne[u]?.totalMatchingEvents??null}})),!1}finally{j.current.delete(u)}},[w,n.length,o,x,l,u,g,p,S]),D=u?x[u]??Uu:Uu,B=b.useMemo(()=>Ui(l,u).length,[l,u]),K=b.useRef(null);b.useEffect(()=>{if(!o||!u||ia(u)||j.current.has(u)||D.length>0||B>0)return;const O=i;if(!O)return;const N=u,z=O+1;j.current.add(N),E(G=>({...G,[N]:{cursorSequence:G[N]?.cursorSequence??z,hasMore:G[N]?.hasMore??!0,loading:!0,totalMatchingEvents:G[N]?.totalMatchingEvents??null}})),ge.runtimeEventsPage(o,{sessionId:N,beforeSequence:z,limit:qg}).then(G=>{const ne=G.events.map(ce=>ce.event);C(ce=>({...ce,[N]:dl(ne,ce[N]??Uu)})),E(ce=>({...ce,[N]:{cursorSequence:G.previousSequence,hasMore:G.hasMore,loading:!1,totalMatchingEvents:G.totalMatchingEvents}}))}).catch(G=>{S(G instanceof Error?G.message:String(G)),E(ne=>({...ne,[N]:{cursorSequence:ne[N]?.cursorSequence??z,hasMore:ne[N]?.hasMore??!0,loading:!1,totalMatchingEvents:ne[N]?.totalMatchingEvents??null}}))}).finally(()=>{j.current.delete(N)})},[i,o,D.length,B,u,S]),b.useEffect(()=>{if(!o||!u||ia(u)||j.current.has(u)||!i)return;const O=dl(D,Ui(l,u)),N=Fv(O);if(!N||N>=i)return;const z=`${u}:${N}:${i}`;if(K.current===z)return;K.current=z;let G=!1;return ge.runtimeEventsPage(o,{sessionId:u,afterSequence:N,limit:qg}).then(ne=>{if(G)return;const ce=ne.events.map(Y=>Y.event);ce.length!==0&&C(Y=>r7(Y,u,ce))}).catch(ne=>{G||(K.current=null,S(ne instanceof Error?ne.message:String(ne)))}),()=>{G=!0}},[i,o,l,D,u,S]);const I=b.useMemo(()=>ia(u)?Nb(n,[]):!u||D.length===0?l:Nb(dl(D,Ui(l,u)),t),[t,n,l,D,u]);return{chatHistoryLoadStates:w,loadMoreSelectedChatHistory:U,selectedPagedSessionEvents:D,selectedRuntimeIndexes:I}}function _G(e){let t=null;for(const n of e)n.sequence!==void 0&&(t===null||n.sequence<t)&&(t=n.sequence);return t}function kG(e,t){const n=b.useRef(null);return b.useMemo(()=>{const o=JA(e,t,n.current);return n.current={events:e,indexes:o},o},[t,e])}function Pc(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Bg(e){return Array.isArray(e)?e.filter(t=>!!Pc(t)):[]}function Ol(e){return typeof e=="string"&&e.trim()?e.trim():null}function ww(e){return Ol(e)??Pc(e)}function IG(e){if(!e)return[];const t=Pc(e.sandboxActionRegistry),n=Pc(e.sandboxManifest),o=new Map;for(const i of[...Bg(n?.actionCatalog),...Bg(t?.actions),...Bg(n?.actions)]){const l=Ol(i.id)??Ol(i.name);if(!l)continue;const u=o.get(l);o.set(l,{id:l,name:Ol(i.name)??u?.name??l,label:Ol(i.label)??u?.label??AG(l),description:Ol(i.description)??u?.description??null,visibility:Ol(i.visibility)??u?.visibility??"default",inputSchema:ww(i.inputSchema)??u?.inputSchema??null,outputSchema:ww(i.outputSchema)??u?.outputSchema??null,implementation:Pc(i.implementation)??u?.implementation??null,mcp:Pc(i.mcp)??u?.mcp??null,invokesModel:typeof i.invokesModel=="boolean"?i.invokesModel:u?.invokesModel})}return Array.from(o.values()).filter(i=>i.visibility!=="internal"&&i.visibility!=="debug")}function AG(e){const t=e.replace(/[._-]+/g," ").trim();return t?t.replace(/\b\w/g,n=>n.toUpperCase()):e}function RG(e){return!e?.agentSdk?.detected||!TG(e)?[]:Iv.map(t=>({id:t.name,sourcePath:e.path,sourceActionId:t.name,name:t.name,label:t.name,description:t.description,visibility:"end_user",inputSchema:structuredClone(t.parameters),implementation:{type:"tool",projectId:e.id},invokesModel:!1}))}function TG(e){return[e.name,e.workspacePath.split(/[\\/]/).at(-1)??""].some(t=>t.toLowerCase().replace(/[^a-z0-9]/g,"")==="crosssystemoperations")}function wR(e){if(e.selectedCloudProject)return{id:e.selectedCloudProject.id,teamId:e.selectedCloudProject.teamId,name:e.selectedCloudProject.name,selectionKey:Wt("cloud",e.selectedCloudProject.id),localProjectId:null};const t=e.selectedProject?.linkedSandboxProject??null;if(!t?.projectId||!t.teamId)return null;const n=e.cloudProjects?ti(e.selectedProject,e.cloudProjects):null;return e.cloudProjects&&!n?null:{id:n?.id??t.projectId,teamId:n?.teamId??t.teamId,name:n?.name??t.projectName??e.selectedProject?.name??"Cloud Project",selectionKey:Wt("cloud",n?.id??t.projectId),localProjectId:e.selectedProject?.id??null}}const _R="openpond-agent",kR="openpond-profile-action";function Xm(e){return e&&typeof e=="object"&&!Array.isArray(e)?e:null}function Ps(e){return typeof e=="string"&&e.trim()?e.trim():null}function oy(e){return e.displayPrompt&&/(?:^|\s)@[A-Za-z0-9_-]+/.test(e.displayPrompt)?"mention":"slash"}function jG(e){const t=Xm(e),n=Ps(t?.scope);return n!=="entire_manifest"&&n!=="start"&&n!=="action"&&n!=="service"&&n!=="schedule"?null:{scope:n,name:Ps(t?.name)}}function EG(e){const t=Ps(e);return t!=="readonly"&&t!=="attempt"&&t!=="feature"&&t!=="rollout"&&t!=="replay"&&t!=="template_build"&&t!=="scheduled_run"&&t!=="patch_only"&&t!=="hotfix"&&t!=="multi_feature_batch"?null:t}function MG(e,t=null){return{id:`agent:${e.id}`,name:e.slug||e.name,label:e.name,description:e.description||(t?`Agent for ${t}`:"OpenPond Agent"),visibility:"default",inputSchema:null,outputSchema:null,implementation:{type:_R,agentId:e.id,agentName:e.name,teamId:e.teamId,projectId:e.projectId,projectName:t,selectedEntrypoint:e.selectedEntrypoint,workflowMode:e.defaultWorkflowMode},mcp:null,invokesModel:!0}}function PG(e){const t=Xm(e.implementation);if(t?.type!==_R)return null;const n=Ps(t.agentId),o=Ps(t.teamId),i=Ps(t.projectId),l=jG(t.selectedEntrypoint),u=EG(t.workflowMode);return!n||!o||!i||!l||!u?null:{agentId:n,agentName:Ps(t.agentName)??e.label??e.name??e.id,teamId:o,projectId:i,projectName:Ps(t.projectName),selectedEntrypoint:l,workflowMode:u}}function NG(e){return{...e,implementation:{...Xm(e.implementation)??{},type:kR,actionId:e.id},invokesModel:e.invokesModel??!0}}function OG(e){const t=Xm(e.implementation);if(t?.type!==kR)return null;const n=Ps(t.actionId)??e.id;return n?{actionId:n,actionLabel:e.label??e.name??n}:null}function zG({action:e,attachments:t=[],displayPrompt:n,prompt:o,sessionId:i}){return{action:e.actionId,input:{prompt:o,message:o,source:"openpond_app",...t.length>0?{attachments:t}:{}},metadata:{source:"openpond_app",selectedActionId:e.actionId,selectedActionLabel:e.actionLabel,selectedBy:oy({displayPrompt:n}),...n&&n!==o?{displayPrompt:n}:{},...i?{sessionId:i}:{}}}}function $G({action:e,attachments:t=[],displayPrompt:n,prompt:o,teamId:i}){return{teamId:i,triggerType:"manual",entrypoint:{scope:"action",name:e.id},input:{prompt:o,message:o,actionName:e.id,source:"openpond_app",...t.length>0?{attachments:t}:{}},metadata:{source:"openpond_app",selectedActionId:e.id,selectedActionLabel:e.label??e.name??e.id,selectedBy:oy({displayPrompt:n}),...n&&n!==o?{displayPrompt:n}:{}}}}function DG({agent:e,attachments:t=[],displayPrompt:n,prompt:o}){return{teamId:e.teamId,triggerType:"manual",entrypoint:e.selectedEntrypoint,input:{prompt:o,message:o,source:"openpond_app",...t.length>0?{attachments:t}:{}},metadata:{source:"openpond_app",selectedAgentId:e.agentId,selectedAgentName:e.agentName,selectedActionId:`agent:${e.agentId}`,selectedActionLabel:e.agentName,selectedBy:oy({displayPrompt:n}),...n&&n!==o?{displayPrompt:n}:{}},workflowMode:e.workflowMode}}const Nc=new Map;function ry(e,t){const n=e?.trim();return n?`${t?.trim()||"global"}|${n}`:null}function UG(e,t){const n=ry(e,t);if(!n)return null;const o=Nc.get(n);return o?.updatedAt?o.projects:null}function LG(e,t,n){const o=ry(e,n);o&&Nc.set(o,{projects:t,promise:null,updatedAt:Date.now()})}function qG(e){const t=e.teamId?.trim();if(!t)return Promise.resolve([]);const n=ry(t,e.accountKey);if(!n)return Promise.resolve([]);const o=Nc.get(n);if(!e.force){if(o?.updatedAt)return Promise.resolve(o.projects);if(o?.promise)return o.promise}const i=e.fetchProjects(t).then(l=>(LG(t,l,e.accountKey),l)).catch(l=>{const u=Nc.get(n);throw u?.promise===i&&Nc.set(n,{projects:u.projects,promise:null,updatedAt:u.updatedAt}),l});return Nc.set(n,{projects:o?.projects??[],promise:i,updatedAt:o?.updatedAt??0}),i}function Hg(e){const t=new Map;for(const n of e)n.archivedAt||n.status!=="active"||t.set(n.id,n);return[...t.values()].sort((n,o)=>n.name.localeCompare(o.name))}function BG({cloudProjectById:e,cloudProjects:t,connection:n,defaultTeamId:o,accountScopeKey:i,localProjects:l,profileActionCatalogEntries:u,selectedCloudProject:m,selectedProject:g}){const[p,S]=b.useState(null),[x,C]=b.useState([]),w=b.useMemo(()=>{const O=new Set;o&&O.add(o);for(const N of t)O.add(N.teamId);for(const N of l){const z=t.find(G=>G.id===N.linkedSandboxProject?.projectId&&G.teamId===N.linkedSandboxProject?.teamId);z?.teamId&&O.add(z.teamId)}return[...O].sort()},[t,o,l]),E=w.join("\0"),j=b.useMemo(()=>wR({cloudProjects:t,selectedCloudProject:m,selectedProject:g}),[t,m,g]);b.useEffect(()=>{if(!n||w.length===0){C([]);return}let O=!1;const N=w.flatMap(z=>xR(z,i)??[]);return C(Hg(N)),Promise.all(w.map(z=>ey({teamId:z,accountKey:i,fetchAgents:async G=>(await ge.listSandboxAgents(n,{teamId:G})).agents}))).then(z=>{O||C(Hg(z.flat()))}).catch(()=>{O||C(Hg(N))}),()=>{O=!0}},[i,n,E]),b.useEffect(()=>{if(!n||!j){S(null);return}const O=UG(j.teamId,i);O&&S(O.find(z=>z.id===j.id)??null);let N=!1;return qG({teamId:j.teamId,accountKey:i,fetchProjects:async z=>(await ge.listSandboxProjects(n,{teamId:z})).projects}).then(z=>{N||S(z.find(G=>G.id===j.id)??null)}).catch(()=>{N||S(null)}),()=>{N=!0}},[i,n,j?.id,j?.teamId]);const U=b.useMemo(()=>RG(g),[g]),D=b.useMemo(()=>{const O=new Map;for(const N of IG(p))O.set(N.id,N);for(const N of U)O.set(N.id,N);return[...O.values()]},[U,p]),B=b.useMemo(()=>(u??[]).map(O=>NG(O)),[u]),K=b.useMemo(()=>[...x.map(O=>MG(O,e.get(O.projectId)?.name??null)),...B,...D],[e,B,D,x]);return{openPondActionCatalog:b.useMemo(()=>[...B,...D],[B,D]),selectedActionCatalog:K,selectedProjectActionCatalog:D}}function HG({selectedProjectId:e}){const[t,n]=b.useState(()=>new Set),o=b.useCallback(l=>{n(u=>{if(u.has(l))return u;const m=new Set(u);return m.add(l),m})},[]),i=b.useCallback(l=>{n(u=>{const m=new Set(u);return m.has(l)?m.delete(l):m.add(l),m})},[]);return b.useEffect(()=>{e&&o(e)},[o,e]),{expandedProjectIds:t,expandProject:o,toggleProjectExpanded:i,setExpandedProjectIds:n}}function FG(){const e=new Map;function t(i,l){const u=e.get(i);if(u)return u.consumers+=1,n(i,u,!0);const m=new AbortController,g={controller:m,consumers:1,settled:!1,promise:Promise.resolve().then(()=>l(m.signal)).finally(()=>{g.settled=!0,e.get(i)===g&&e.delete(i)})};return e.set(i,g),n(i,g,!1)}function n(i,l,u){let m=!1;return{key:i,promise:l.promise,shared:u,release:()=>{m||(m=!0,l.consumers=Math.max(0,l.consumers-1),l.consumers===0&&!l.settled&&l.controller.abort())}}}function o(){for(const i of e.values())i.consumers=0,i.settled||i.controller.abort()}return{request:t,cancelAll:o,inFlightCount:()=>e.size}}function Fg(e,t,n){return`workspace-status:${e.serverUrl}:${t}:${n?"ensure":"read"}`}function KG(e,t){return`workspace-diff:${e.serverUrl}:${t}`}function Kg(e){return e instanceof Error&&e.name==="AbortError"}function VG({connection:e,activeWorkspaceAppId:t,view:n,shouldLoadWorkspaceDiff:o,sidebarWorkspaceAppIds:i,setError:l}){const[u,m]=b.useState(null),[g,p]=b.useState({}),[S,x]=b.useState(null),[C,w]=b.useState(!1),[E,j]=b.useState(!1),U=b.useRef(new Set),D=b.useRef(new Set),B=b.useRef(FG()),K=t?g[t]??(u?.appId===t?u:null):null,I=S?.appId===t?S:null,O=n==="chat"||n==="labs",N=b.useCallback(ne=>{U.current.add(ne.appId),m(ne),p(ce=>({...ce,[ne.appId]:ne}))},[]),z=b.useCallback(async(ne,ce=!1)=>{if(!e||!ne)return m(null),null;w(!0);const Y=B.current.request(Fg(e,ne,ce),ue=>ge.workspaceStatus(e,ne,ce,{signal:ue}));try{const ue=await Y.promise;return N(ue),ce&&ue.error?l(`Workspace sync failed: ${ue.error}`):ce&&l(null),ue}catch(ue){return Kg(ue)||(m(null),l(ue instanceof Error?ue.message:String(ue))),null}finally{Y.release(),w(!1)}},[e,N,l]),G=b.useCallback(async(ne=t,ce={})=>{if(!e||!ne)return x(null),null;ce.silent||j(!0);const Y=B.current.request(KG(e,ne),ue=>ge.workspaceDiff(e,ne,{signal:ue}));try{const ue=await Y.promise;return x(ue),ue}catch(ue){return Kg(ue)||(x(null),l(ue instanceof Error?ue.message:String(ue))),null}finally{Y.release(),ce.silent||j(!1)}},[t,e,l]);return b.useEffect(()=>{if(!e||!t||!O){m(null),x(null),w(!1);return}let ne=!1;const ce=B.current.request(Fg(e,t,!1),Y=>ge.workspaceStatus(e,t,!1,{signal:Y}));return w(!0),ce.promise.then(Y=>{ne||(N(Y),Y.initialized||x(ue=>ue?.appId===Y.appId?null:ue))}).catch(Y=>{Kg(Y)||ne||(m(null),l(Y instanceof Error?Y.message:String(Y)))}).finally(()=>{ce.release(),ne||w(!1)}),()=>{ne=!0,ce.release()}},[t,e,N,l,O]),b.useEffect(()=>{if(!e||!t||!O){x(null);return}if(!K?.initialized){K&&!K.initialized&&x(ne=>ne?.appId===t?null:ne);return}o&&G(t)},[t,e,G,o,O,K?.dirty,K?.initialized]),b.useEffect(()=>{if(!e||i.length===0)return;const ne=i.filter(ue=>!U.current.has(ue)&&!D.current.has(ue));if(ne.length===0)return;ne.forEach(ue=>D.current.add(ue));let ce=!1;const Y=ne.map(ue=>({appId:ue,request:B.current.request(Fg(e,ue,!1),Se=>ge.workspaceStatus(e,ue,!1,{signal:Se}))}));return Promise.all(Y.map(({appId:ue,request:Se})=>Se.promise.then(me=>({appId:ue,state:me})).catch(()=>({appId:ue,state:null})).finally(()=>{Se.release(),D.current.delete(ue)}))).then(ue=>{if(!ce)for(const Se of ue)Se.state&&N(Se.state)}),()=>{ce=!0,Y.forEach(({appId:ue,request:Se})=>{Se.release(),D.current.delete(ue)})}},[e,N,i]),b.useEffect(()=>()=>B.current.cancelAll(),[]),{workspaceState:u,workspaceStates:g,workspaceDiff:S,workspaceBusy:C,diffBusy:E,visibleWorkspaceState:K,visibleWorkspaceDiff:I,rememberWorkspaceState:N,refreshWorkspace:z,refreshWorkspaceDiff:G,setWorkspaceBusy:w}}const GG=1,ZG=15e3,WG=15e3,IR=5*6e4,YG=5e3,JG=1e4;function AR(e,t=(o,i)=>new WebSocket(o,i),n={}){const o=new XG(e,t,n.reconnectDelayMs??QG);return o.open(),{close:()=>o.close()}}class XG{constructor(t,n,o){this.input=t,this.webSocketFactory=n,this.reconnectDelayMs=o}input;webSocketFactory;reconnectDelayMs;socket=null;closed=!1;generation=0;reconnectAttempt=0;reconnectTimer=null;connectionAckTimer=null;subscriptionAckTimer=null;keepAliveTimer=null;keepAliveTimeoutMs=IR;lastKeepAliveAt=Date.now();ready=!1;subscriptionChannels=new Map;acknowledgedSubscriptions=new Set;open(){this.connect()}close(){if(this.closed)return;this.closed=!0,this.clearTimers();const t=this.socket;if(this.socket=null,!!t){if(t.readyState===GG)for(const n of this.subscriptionChannels.keys())t.send(JSON.stringify({type:"unsubscribe",id:n}));t.onclose=null,t.onerror=null,t.onmessage=null,t.onopen=null,t.close(1e3,"Client closed")}}connect(){if(this.closed)return;const t=++this.generation;this.subscriptionChannels.clear(),this.acknowledgedSubscriptions.clear(),this.ready=!1,this.clearConnectionTimers();let n;try{n=this.webSocketFactory(this.input.realtimeUrl,["aws-appsync-event-ws",`header-${eZ(JSON.stringify({Authorization:this.input.authorizationToken,host:new URL(this.input.httpUrl).host}))}`])}catch(o){this.reportError(o),this.scheduleReconnect();return}this.socket=n,n.onopen=()=>{this.isCurrent(n,t)&&(n.send(JSON.stringify({type:"connection_init"})),this.connectionAckTimer=setTimeout(()=>{this.failConnection(new Error("Team chat realtime connection acknowledgement timed out."))},ZG))},n.onmessage=o=>{this.isCurrent(n,t)&&this.handleMessage(n,o)},n.onerror=()=>{this.isCurrent(n,t)&&this.failConnection(new Error("Team chat realtime socket failed."),!1)},n.onclose=o=>{this.isCurrent(n,t)&&(this.socket=null,this.clearConnectionTimers(),this.closed||((o.code===4401||o.code===4403)&&this.reportError(new Error("Team chat realtime authorization expired.")),this.scheduleReconnect()))}}handleMessage(t,n){if(typeof n.data!="string")return;let o;try{const l=JSON.parse(n.data);if(!l||typeof l!="object"||Array.isArray(l))return;o=l}catch{this.reportError(new Error("Team chat realtime returned an invalid frame."));return}const i=typeof o.type=="string"?o.type:"";if(i==="connection_ack"){this.connectionAckTimer&&clearTimeout(this.connectionAckTimer),this.connectionAckTimer=null,this.keepAliveTimeoutMs=nZ(o.connectionTimeoutMs),this.lastKeepAliveAt=Date.now(),this.startKeepAliveMonitor(),this.subscribe(t);return}if(i==="ka"){this.lastKeepAliveAt=Date.now();return}if(i==="subscribe_success"){const l=typeof o.id=="string"?o.id:"";if(!this.subscriptionChannels.has(l))return;this.acknowledgedSubscriptions.add(l),this.markReadyWhenSubscribed();return}if(i==="data"){if(this.lastKeepAliveAt=Date.now(),typeof o.event!="string")return;try{this.input.onEvent(JSON.parse(o.event))}catch{this.reportError(new Error("Team chat realtime returned an invalid event."))}return}if(i==="connection_error"||i==="subscribe_error"){const l=aZ(o);if(this.reportError(l),i==="connection_error")this.failConnection(l,!1);else{const u=typeof o.id=="string"?o.id:"";this.subscriptionChannels.delete(u),this.acknowledgedSubscriptions.delete(u),this.markReadyWhenSubscribed()}}}subscribe(t){const n={Authorization:this.input.authorizationToken,host:new URL(this.input.httpUrl).host};for(const o of Array.from(new Set(this.input.channels))){const i=tZ();this.subscriptionChannels.set(i,o),t.send(JSON.stringify({type:"subscribe",id:i,channel:o,authorization:n}))}this.subscriptionAckTimer=setTimeout(()=>{this.failConnection(new Error("Team chat realtime subscription acknowledgement timed out."))},WG)}startKeepAliveMonitor(){this.keepAliveTimer&&clearInterval(this.keepAliveTimer),this.keepAliveTimer=setInterval(()=>{Date.now()-this.lastKeepAliveAt<=this.keepAliveTimeoutMs||this.failConnection(new Error("Team chat realtime connection became stale."))},YG)}markReadyWhenSubscribed(){this.ready||this.subscriptionChannels.size===0||this.acknowledgedSubscriptions.size!==this.subscriptionChannels.size||(this.ready=!0,this.subscriptionAckTimer&&clearTimeout(this.subscriptionAckTimer),this.subscriptionAckTimer=null,this.reconnectAttempt=0,this.input.onReady?.())}failConnection(t,n=!0){if(this.closed)return;n&&this.reportError(t);const o=this.socket;if(this.clearConnectionTimers(),!o){this.scheduleReconnect();return}o.close(4e3,"Reconnect")}scheduleReconnect(){if(this.closed||this.reconnectTimer)return;const t=Math.max(0,Math.floor(this.reconnectDelayMs(this.reconnectAttempt)));this.reconnectAttempt+=1,this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=null,this.connect()},t)}reportError(t){this.input.onError?.(t)}isCurrent(t,n){return!this.closed&&this.socket===t&&this.generation===n}clearConnectionTimers(){this.connectionAckTimer&&clearTimeout(this.connectionAckTimer),this.subscriptionAckTimer&&clearTimeout(this.subscriptionAckTimer),this.keepAliveTimer&&clearInterval(this.keepAliveTimer),this.connectionAckTimer=null,this.subscriptionAckTimer=null,this.keepAliveTimer=null}clearTimers(){this.clearConnectionTimers(),this.reconnectTimer&&clearTimeout(this.reconnectTimer),this.reconnectTimer=null}}function QG(e){const t=Math.min(JG,500*2**Math.min(e,5));return Math.max(100,Math.floor(Math.random()*t))}function eZ(e){const t=new TextEncoder().encode(e);let n="";for(const o of t)n+=String.fromCharCode(o);return btoa(n).replaceAll("+","-").replaceAll("/","_").replace(/=+$/,"")}function tZ(){return globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2)}`}function nZ(e){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:IR}function aZ(e){const n=(Array.isArray(e.errors)?e.errors:[])[0];if(n&&typeof n=="object"){const o=n,i=typeof o.errorType=="string"?o.errorType:"RealtimeError",l=typeof o.message=="string"?o.message:"Request failed";return new Error(`${i}: ${l}`)}return new Error("Team chat realtime request failed.")}function oZ(e,t,n){const o=[`/team-chat/users/${e.session.userId}/${e.session.teamId}`,...Array.from(new Set(e.threadIds)).map(i=>`/team-chat/threads/${i}`)];return AR({realtimeUrl:e.session.realtimeUrl,httpUrl:e.session.httpUrl,authorizationToken:e.session.token,channels:o,onEvent:i=>{const l=Pk.safeParse(i);l.success&&e.onEvent(l.data)},onReady:e.onReady,onError:e.onError},t,n)}function rZ(e){return e.refs.find(t=>t.refType==="message_reply")??null}function iZ(e){return{id:e.id,authorType:e.authorType,authorUserId:e.authorUserId,authorAgentId:e.authorAgentId,body:e.body,deleted:!!e.deletedAt}}function MY(e,t){const n=rZ(e);if(!n)return null;const o=t.get(n.refId);return o?iZ(o):lZ(n)}function sZ(e){const t=e.body.slice(0,500);return{authorType:e.authorType,authorUserId:e.authorUserId,authorAgentId:e.authorAgentId,body:t,truncated:t.length<e.body.length}}function PY(e,t){return e.authorUserId?t.get(e.authorUserId)?.name??"Team member":e.authorType==="agent"||e.authorAgentId?"Agent":e.authorType==="system"?"System":"Team member"}function NY(e){return e.deleted?"Message deleted":e.body.replace(/\s+/g," ").trim()||"Attachment"}function lZ(e){const t=e.preview;return{id:e.refId,authorType:cZ(t.authorType),authorUserId:typeof t.authorUserId=="string"?t.authorUserId:null,authorAgentId:typeof t.authorAgentId=="string"?t.authorAgentId:null,body:typeof t.body=="string"?t.body:"",deleted:t.deleted===!0}}function cZ(e){return e==="agent"||e==="system"?e:"user"}function _w(e,t,n){return n===t.conversationId?{...e,aiThread:t}:e}function uZ(e,t){return!e||e.thread.id!==t.thread.id?t:{...t,messages:wd([...e.messages,...t.messages]),hasMoreBefore:e.messages.length>t.messages.length?e.hasMoreBefore:t.hasMoreBefore}}function Vg(e,t){const n=Array.from(t.values()).filter(i=>i.threadId===e.thread.id);if(n.length===0)return e;let o=e.thread;for(const i of n)o=Bc(o,i,"message.created",!0,i.authorUserId);return{...e,thread:o,messages:wd([...e.messages,...n])}}function dZ(e,t){const n=new Set(e.map(i=>i.lastMessage?.clientRequestId).filter(i=>!!i)),o=new Map;for(const i of t.values()){if(i.clientRequestId&&n.has(i.clientRequestId))continue;const l=o.get(i.threadId)??[];l.push(i),o.set(i.threadId,l)}return e.map(i=>{let l=i;for(const u of o.get(i.id)??[])l=Bc(l,u,"message.created",!0,u.authorUserId);return l}).sort((i,l)=>l.lastMessageAt.localeCompare(i.lastMessageAt))}function Gg(e,t,n){for(const o of e)!o.clientRequestId||o.id.startsWith("pending:")||(t.delete(o.clientRequestId),n.delete(o.clientRequestId))}function Zg(e,t,n){const o=e.get(t);o&&e.set(t,{...o,metadata:{...o.metadata,deliveryStatus:n}})}function kw(e,t,n){const o=e.get(t);o&&e.set(t,{...o,metadata:{...o.metadata,uploadProgress:n}})}function wd(e){const t=new Map,n=new Set(e.filter(o=>!o.id.startsWith("pending:")).map(o=>o.clientRequestId).filter(o=>!!o));for(const o of e)o.id.startsWith("pending:")&&o.clientRequestId&&n.has(o.clientRequestId)||t.set(o.id,o);return Array.from(t.values()).sort((o,i)=>o.sequence!==i.sequence?o.sequence-i.sequence:o.createdAt.localeCompare(i.createdAt))}function RR(e){return e.type!=="message.created"&&e.type!=="message.updated"&&e.type!=="message.deleted"?null:yv.safeParse(e.payload.message).data??null}function TR(e,t,n){const o=RR(t);if(o){const i=e.selectedThreadId===o.threadId,l=e.detail?.thread.id===o.threadId?{...e.detail,thread:Bc(e.detail.thread,o,t.type,i,n),messages:wd([...e.detail.messages,o])}:e.detail,m=e.threads.some(g=>g.id===o.threadId)?e.threads.map(g=>g.id===o.threadId?Bc(g,o,t.type,i,n):g).sort((g,p)=>p.lastMessageAt.localeCompare(g.lastMessageAt)):e.threads;return{...e,detail:l,threads:m,error:null}}if(t.type==="read.updated"){const i=typeof t.payload.userId=="string"?t.payload.userId:null,l=Number(t.payload.sequence);if(!i||!Number.isSafeInteger(l)||l<0)return e;const u=m=>({...m,participants:m.participants.map(g=>g.userId===i?{...g,lastReadSequence:Math.max(g.lastReadSequence,l)}:g)});return{...e,threads:e.threads.map(m=>m.id===t.threadId?u(m):m),detail:e.detail?.thread.id===t.threadId?{...e.detail,thread:u(e.detail.thread)}:e.detail}}return e}function Bc(e,t,n,o,i){const l=n==="message.created",u=t.sequence>=e.lastMessageSequence;return{...e,lastMessageId:u?t.id:e.lastMessageId,lastMessageSequence:Math.max(e.lastMessageSequence,t.sequence),lastMessageAt:u?t.createdAt:e.lastMessageAt,updatedAt:u?t.createdAt:e.updatedAt,lastMessage:u?t:e.lastMessage,unreadCount:o||t.authorUserId===i?0:l?e.unreadCount+1:e.unreadCount}}function fZ(e){const t=new Date().toISOString(),n=`pending:${e.clientRequestId}`;return{id:n,threadId:e.threadId,teamId:e.teamId,clientRequestId:e.clientRequestId,authorType:"user",authorUserId:e.userId,authorAgentId:null,sequence:e.sequence,kind:"text",body:e.body,metadata:{deliveryStatus:"sending",mentionUserIds:e.mentionUserIds,localAttachmentPreviews:e.attachments.map(o=>({id:o.id,url:`data:${o.mediaType};base64,${o.contentsBase64}`}))},editedAt:null,deletedAt:null,createdAt:t,refs:e.replyToMessage?[{id:`pending-reply:${e.clientRequestId}`,messageId:n,refType:"message_reply",refId:e.replyToMessage.id,preview:sZ(e.replyToMessage),createdAt:t}]:[],attachments:e.attachments.map(o=>({id:o.id,messageId:null,clientAttachmentId:o.id,kind:"image",name:o.name,mediaType:o.mediaType,sizeBytes:o.sizeBytes,status:"pending",createdAt:t,readyAt:null}))}}function mZ(e,t){const n=e.detail?.thread.id===t.threadId?{...e.detail,thread:Bc(e.detail.thread,t,"message.created",!0,t.authorUserId),messages:wd([...e.detail.messages,t])}:e.detail;return{...e,detail:n,threads:e.threads.map(o=>o.id===t.threadId?Bc(o,t,"message.created",!0,t.authorUserId):o).sort((o,i)=>i.lastMessageAt.localeCompare(o.lastMessageAt)),error:null}}function Iw(e,t,n){return TR(e,{teamId:t.teamId,threadId:t.threadId,type:"message.created",payload:{message:t},createdAt:t.createdAt},n)}function pZ(e,t){return $b(e,t,"failed")}function $b(e,t,n){const o=i=>i.clientRequestId===t&&i.id.startsWith("pending:")?{...i,metadata:{...i.metadata,deliveryStatus:n}}:i;return{...e,detail:e.detail?{...e.detail,thread:{...e.detail.thread,lastMessage:e.detail.thread.lastMessage?o(e.detail.thread.lastMessage):null},messages:e.detail.messages.map(o)}:null,threads:e.threads.map(i=>({...i,lastMessage:i.lastMessage?o(i.lastMessage):null}))}}function Aw(e,t,n){const o=i=>i.clientRequestId===t&&i.id.startsWith("pending:")?{...i,metadata:{...i.metadata,uploadProgress:n}}:i;return{...e,detail:e.detail?{...e.detail,thread:{...e.detail.thread,lastMessage:e.detail.thread.lastMessage?o(e.detail.thread.lastMessage):null},messages:e.detail.messages.map(o)}:null,threads:e.threads.map(i=>({...i,lastMessage:i.lastMessage?o(i.lastMessage):null}))}}function hZ(e,t){const n=e.detail?.messages.filter(l=>l.id!==t)??[],o=n.at(-1)??null,i=e.detail?{...e.detail,thread:e.detail.thread.lastMessageId===t?Rw(e.detail.thread,o):e.detail.thread,messages:n}:null;return{...e,detail:i,threads:e.threads.map(l=>l.lastMessageId===t?Rw(l,o):l)}}function gZ(e){if(e.length>bi.maxAttachments)return null;const t=[];for(const n of e){if(n.kind!=="image"||!bZ(n.mediaType)||!n.contentsBase64||n.sizeBytes<=0||n.sizeBytes>bi.maxAttachmentBytes)return null;t.push({...n,kind:"image",mediaType:n.mediaType,contentsBase64:n.contentsBase64})}return t}function Rw(e,t){return{...e,lastMessageId:t?.id??null,lastMessageSequence:t?.sequence??0,lastMessageAt:t?.createdAt??e.createdAt,updatedAt:t?.createdAt??e.createdAt,lastMessage:t}}function bZ(e){return e==="image/png"||e==="image/jpeg"||e==="image/webp"||e==="image/gif"}const vZ={team_chat_team_not_found:"You no longer have access to this workspace.",workspace_membership_required:"You no longer have access to this workspace.",team_chat_billing_inactive:"Workspace chat is unavailable while its subscription is inactive. Ask the workspace owner to review billing.",workspace_billing_suspended:"Workspace billing is suspended. Ask the workspace owner to update billing.",workspace_billing_cancelled:"This workspace subscription is cancelled. Ask the workspace owner to reactivate it.",workspace_checkout_pending:"Workspace checkout is still pending. Ask the workspace owner to finish setup.",member_paid_usage_disabled:"The workspace owner has not enabled paid model usage for your account.",member_spend_cap_exceeded:"You reached your workspace member spending limit. Ask the workspace owner to adjust it.",member_opchat_quota_exceeded:"You reached your workspace member OpChat limit. Ask the workspace owner to adjust it.",member_search_quota_exceeded:"You reached your workspace member Search limit. Ask the workspace owner to adjust it.",workspace_prepaid_credit_required:"This workspace needs more prepaid credits. Ask the workspace owner to add credits.",workspace_spend_cap_exceeded:"This workspace reached its spend cap. Ask the workspace owner to review billing.",opchat_workspace_quota_exceeded:"This workspace reached its included OpChat limit for the period.",search_workspace_quota_exceeded:"This workspace reached its included Search limit for the period."};function yZ(e){const t=e instanceof Error?e.message:String(e),n=t.trim().toLowerCase();for(const[o,i]of Object.entries(vZ))if(n.includes(o))return i;return n.includes("event stream ended")?"Team chat realtime disconnected. Messages will continue to refresh automatically.":t}const jR="openpond.team-chat.notification-mode";function ER(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function SZ(e=ER()){const t=e?.getItem(jR);return t==="direct_mentions"||t==="none"?t:"all"}function xZ(e,t=ER()){try{t?.setItem(jR,e)}catch{}}function CZ(e){return e.mode==="none"||!e.currentUserId||!e.thread||e.thread.mutedAt||e.message.deletedAt||e.message.authorUserId===e.currentUserId?!1:e.mode==="all"||e.thread.kind==="dm"?!0:(Array.isArray(e.message.metadata.mentionUserIds)?e.message.metadata.mentionUserIds:[]).includes(e.currentUserId)}function wZ(e){const t=e.message.authorUserId?e.members.find(u=>u.userId===e.message.authorUserId)?.name??"Team member":e.message.authorType==="agent"?"Agent":"Team",n=e.thread.title?.trim()||(e.thread.kind==="general"?"general":"conversation"),o=e.thread.kind==="dm"?t:`${t} in #${n}`,l=e.message.body.replace(/\s+/g," ").trim()||(e.message.attachments.length===1?"Sent an image":e.message.attachments.length>1?`Sent ${e.message.attachments.length} images`:"New message");return{eventId:e.eventId,threadId:e.message.threadId,title:o,body:l.length>160?`${l.slice(0,157)}…`:l}}const Tw={members:[],agents:[],threads:[],selectedThreadId:null,detail:null,aiThread:null,agentConversation:null,loading:!1,busy:!1,error:null};function Uf(e,t){return e.map(n=>n.id===t&&n.unreadCount!==0?{...n,unreadCount:0}:n)}function Lf(e){return!e||e.thread.unreadCount===0?e:{...e,thread:{...e.thread,unreadCount:0}}}function _Z(e){return{teamId:e.teamId,body:e.body.trim(),clientRequestId:e.clientRequestId,selectedAgentId:e.conversation.agent.id,conversationId:e.conversation.conversationId}}function kZ(e){return{teamId:e.teamId,body:e.body.trim(),clientRequestId:e.clientRequestId,selectedActionKey:e.selectedActionKey,approvalId:e.approvalId??null}}async function jw(e,t=ge.markTeamChatRead){return e.lastMessageSequence<=0?!1:t(e.connection,e.threadId,e.teamId,e.lastMessageSequence).then(()=>!0,()=>!1)}function IZ(e){const[t,n]=b.useState(Tw),o=b.useRef(t);o.current=t;const[i,l]=b.useState(SZ),[u,m]=b.useState(null),g=b.useRef(null),p=b.useRef(null),S=b.useRef(0),x=b.useRef(new Map),C=b.useRef(new Map),w=b.useRef(0),E=b.useRef(null),j=b.useRef(0),U=b.useRef(new Set),D=b.useRef(0),B=b.useRef(!1),K=b.useRef(new Map),I=b.useRef(new Map),[O,N]=b.useState(null),[z,G]=b.useState(null),ne=b.useCallback(q=>{l(q),xZ(q)},[]),ce=b.useCallback(q=>{m(ae=>ae?.eventId===q?null:ae)},[]),Y=b.useCallback(async()=>{if(!e.connection||!e.teamId)return[];const q=await ge.teamChatThreads(e.connection,e.teamId),ae=dZ(q.threads,K.current);return n(H=>({...H,threads:ae})),ae},[e.connection,e.teamId]),ue=b.useCallback(async()=>{if(!e.connection||!e.teamId)return{members:[],agents:[]};const[q,ae]=await Promise.all([ge.teamChatMembers(e.connection,e.teamId),ge.teamChatAgents(e.connection,e.teamId)]);return n(H=>({...H,members:q.members,agents:ae.agents})),{members:q.members,agents:ae.agents}},[e.connection,e.teamId]),Se=b.useCallback(async q=>{const ae=q??g.current;if(!e.connection||!e.teamId||!ae)return null;const H=(C.current.get(ae)??0)+1;C.current.set(ae,H);const se=await ge.teamChatThread(e.connection,e.teamId,ae);Gg(se.messages,K.current,I.current);const we=Vg(se,K.current);return C.current.get(ae)!==H||(n(ze=>ze.selectedThreadId===ae?{...ze,threads:Uf(ze.threads,ae),detail:Lf(uZ(ze.detail,we))}:ze),g.current===ae&&we.thread.lastMessageSequence>0&&await ge.markTeamChatRead(e.connection,ae,e.teamId,we.thread.lastMessageSequence).catch(()=>{})),we},[e.connection,e.teamId]),me=b.useCallback(async q=>{const ae=q??p.current;if(!e.connection||!e.teamId||!ae)return null;const H=(x.current.get(ae)??0)+1;x.current.set(ae,H);const se=await ge.teamChatAiThread(e.connection,e.teamId,ae);return x.current.get(ae)===H&&p.current===ae&&n(we=>_w(we,se,p.current)),se},[e.connection,e.teamId]),qe=b.useCallback(async q=>{const ae=q??E.current;if(!e.connection||!e.teamId||!ae)return null;const H=await ge.teamChatAgentConversation(e.connection,e.teamId,ae);return n(se=>se.agentConversation?.run.id===ae?{...se,agentConversation:H}:se),H},[e.connection,e.teamId]);b.useEffect(()=>{g.current=t.selectedThreadId},[t.selectedThreadId]),b.useEffect(()=>{E.current=t.agentConversation?.run.id??null},[t.agentConversation?.run.id]),b.useEffect(()=>{const q=t.agentConversation?.run.status;if(!q||!["pending","queued","running"].includes(q))return;const ae=window.setInterval(()=>{qe().catch(H=>{n(se=>({...se,error:ao(H)}))})},2500);return()=>window.clearInterval(ae)},[qe,t.agentConversation?.run.status]),b.useEffect(()=>{if(!e.connection||!e.teamId||!e.currentUserId){n(Tw),N(null),G(null),I.current.clear(),K.current.clear(),C.current.clear(),x.current.clear(),w.current+=1,m(null),U.current.clear(),D.current=0,j.current=0;return}let q=!1;return p.current=null,S.current+=1,w.current+=1,N(null),G(null),I.current.clear(),K.current.clear(),U.current.clear(),D.current=0,n(ae=>({...ae,aiThread:null,agentConversation:null,loading:!0,error:null})),(async()=>{try{const ae=await ge.teamChatEvents(e.connection,e.teamId);if(q)return;j.current=ae.cursor;const H=ge.teamChatMembers(e.connection,e.teamId),se=ge.teamChatAgents(e.connection,e.teamId),we=await ge.teamChatGeneral(e.connection,e.teamId),[ze,Ye,Ct]=await Promise.all([H,se,ge.teamChatThreads(e.connection,e.teamId)]);if(q)return;const yt=g.current&&Ct.threads.some(Be=>Be.id===g.current)?g.current:we.thread.id,Et=yt===we.thread.id?we:await ge.teamChatThread(e.connection,e.teamId,yt);if(q)return;const gt=Lf(Et);n(Be=>({...Be,members:ze.members,agents:Ye.agents,threads:Uf(Ct.threads,yt),selectedThreadId:yt,detail:gt,loading:!1,error:null})),jw({connection:e.connection,teamId:e.teamId,threadId:yt,lastMessageSequence:gt?.thread.lastMessageSequence??0}),G(e.teamId)}catch(ae){if(q)return;n(H=>({...H,loading:!1,error:ao(ae)}))}})(),()=>{q=!0}},[e.connection,e.currentUserId,e.refreshToken,e.teamId]);const $=b.useCallback(q=>{if(U.current.has(q.id))return;if(U.current.add(q.id),U.current.size>2e3){const H=U.current.values().next().value;typeof H=="number"&&U.current.delete(H)}const ae=RR(q);if(ae&&q.type==="message.created"){const H=o.current,se=H.threads.find(ze=>ze.id===ae.threadId)??(H.detail?.thread.id===ae.threadId?H.detail.thread:null),we=ze=>{q.id<=D.current||CZ({mode:i,currentUserId:e.currentUserId,message:ae,thread:ze})&&(D.current=q.id,m(wZ({eventId:q.id,message:ae,thread:ze,members:H.members})))};se?we(se):Y().then(ze=>{const Ye=ze.find(Ct=>Ct.id===ae.threadId);Ye&&we(Ye)}).catch(()=>{})}ae?.clientRequestId&&!ae.id.startsWith("pending:")&&(K.current.delete(ae.clientRequestId),I.current.delete(ae.clientRequestId)),n(H=>TR(H,q,e.currentUserId)),q.type==="thread.created"&&Y().catch(H=>{n(se=>({...se,error:ao(H)}))}),(q.type==="ai_thread.created"||q.type==="ai_turn.updated")&&(Se(q.threadId).catch(H=>{n(se=>({...se,error:ao(H)}))}),q.conversationId===p.current&&me(q.conversationId).catch(H=>{n(se=>({...se,error:ao(H)}))})),ae&&q.type==="message.created"&&g.current===ae.threadId&&ae.authorUserId!==e.currentUserId&&e.connection&&e.teamId&&ge.markTeamChatRead(e.connection,ae.threadId,e.teamId,ae.sequence).catch(()=>{})},[e.connection,e.currentUserId,e.teamId,i,me,Se,Y]),be=b.useCallback(async()=>{if(!(!e.connection||!e.teamId||B.current)){B.current=!0;try{let q=!0;for(;q;){const ae=await ge.teamChatEvents(e.connection,e.teamId,{after:j.current,limit:250});for(const H of ae.events)$(H);j.current=ae.cursor,q=ae.hasMore}}finally{B.current=!1}}},[$,e.connection,e.teamId]);b.useEffect(()=>{if(!e.connection||!e.teamId||z!==e.teamId)return;let q=!1,ae=null;const H=async()=>{try{const se=await ge.teamChatRealtimeSession(e.connection,e.teamId);if(q||(await be(),q))return;N(se);const we=Math.max(3e4,new Date(se.expiresAt).getTime()-Date.now()-3e4);ae=window.setTimeout(()=>{H()},we)}catch{q||(be().catch(()=>{}),ae=window.setTimeout(()=>{H()},1e4))}};return H(),()=>{q=!0,ae!==null&&window.clearTimeout(ae),N(null)}},[be,e.connection,e.teamId,z]);const ie=t.threads.map(q=>q.id).sort().join(",");b.useEffect(()=>{if(!O)return;const q=oZ({session:O,threadIds:ie?ie.split(","):[],onEvent:$,onReady:()=>{be().catch(ae=>{n(H=>({...H,error:ao(ae)}))})},onError:()=>{be().catch(()=>{})}});return()=>{q.close()}},[$,be,O,ie]),b.useEffect(()=>{if(!e.connection||!e.teamId||z!==e.teamId)return;const q=window.setInterval(()=>{be().catch(()=>{})},15e3);return()=>window.clearInterval(q)},[be,e.connection,e.teamId,z]);const fe=b.useCallback(async q=>{if(!e.connection||!e.teamId)return;const ae=w.current+1;w.current=ae;const H=g.current!==q;g.current=q,H&&(S.current+=1,p.current=null),n(se=>({...se,threads:Uf(se.threads,q),selectedThreadId:q,detail:se.detail?.thread.id===q?Lf(se.detail):null,aiThread:H?null:se.aiThread,agentConversation:H?null:se.agentConversation,loading:!0,error:null}));try{const se=await ge.teamChatThread(e.connection,e.teamId,q);if(w.current!==ae||g.current!==q)return;Gg(se.messages,K.current,I.current);const we=Vg(se,K.current);n(ze=>({...ze,threads:Uf(ze.threads,q),detail:Lf(we),loading:!1})),await ge.markTeamChatRead(e.connection,q,e.teamId,we.thread.lastMessageSequence).catch(()=>{})}catch(se){if(w.current!==ae)return;n(we=>({...we,loading:!1,error:ao(se)}))}},[e.connection,e.teamId]),te=b.useCallback(async q=>{if(!e.connection||!e.teamId)return null;const ae=w.current+1;w.current=ae,n(H=>({...H,busy:!0,error:null}));try{const H=await ge.teamChatDm(e.connection,e.teamId,q);if(w.current!==ae)return null;Gg(H.messages,K.current,I.current);const se=Vg(H,K.current),we=g.current!==se.thread.id;return g.current=se.thread.id,we&&(S.current+=1,p.current=null),n(ze=>({...ze,selectedThreadId:se.thread.id,detail:se,aiThread:we?null:ze.aiThread,agentConversation:we?null:ze.agentConversation,busy:!1})),await jw({connection:e.connection,teamId:e.teamId,threadId:se.thread.id,lastMessageSequence:se.thread.lastMessageSequence}),await Y(),se}catch(H){return w.current!==ae||n(se=>({...se,busy:!1,error:ao(H)})),null}},[e.connection,e.teamId,Y]),R=b.useCallback(async()=>{const q=t.detail,ae=q?.messages[0]?.sequence;if(!e.connection||!e.teamId||!q||!q.hasMoreBefore||ae==null)return!1;n(H=>({...H,loading:!0,error:null}));try{const H=await ge.teamChatThread(e.connection,e.teamId,q.thread.id,{beforeSequence:ae,limit:50});return n(se=>{if(se.detail?.thread.id!==q.thread.id)return se;const we=[...H.messages,...se.detail.messages];return{...se,loading:!1,detail:{...se.detail,messages:wd(we),hasMoreBefore:H.hasMoreBefore}}}),!0}catch(H){return n(se=>({...se,loading:!1,error:ao(H)})),!1}},[e.connection,e.teamId,t.detail]),L=b.useCallback(async q=>{const ae=g.current,H=gZ(q.attachments??[]);if(!H)return n(ze=>({...ze,error:"Team chat supports up to 10 PNG, JPEG, WebP, or GIF images per message."})),!1;if(!e.connection||!e.teamId||!ae||!q.body.trim()&&H.length===0)return!1;if(q.replyToMessage&&(q.replyToMessage.threadId!==ae||q.replyToMessage.teamId!==e.teamId||q.replyToMessage.id.startsWith("pending:")||q.replyToMessage.deletedAt))return n(ze=>({...ze,error:"That message is no longer available to reply to."})),!1;if(q.useModel){if(H.length>0)return n(Ye=>({...Ye,error:"Images can be sent to the team thread with Use model turned off."})),!1;const ze=S.current;n(Ye=>({...Ye,busy:!0,error:null}));try{const Ye=await ge.createTeamChatAiThread(e.connection,ae,{teamId:e.teamId,body:q.body.trim(),clientRequestId:crypto.randomUUID(),providerId:q.providerId,modelId:q.modelId}),Ct=S.current===ze&&g.current===ae;return Ct&&(S.current+=1,p.current=Ye.conversationId),n(yt=>({...yt,aiThread:Ct?Ye:yt.aiThread})),Ye.activeTurn&&await ge.executeTeamChatAiTurn(e.connection,Ye.activeTurn.id,e.teamId),await Promise.all([Se(ae),Y()]),n(yt=>({...yt,busy:!1})),!0}catch(Ye){return n(Ct=>({...Ct,busy:!1,error:ao(Ye)})),!1}}const se=crypto.randomUUID();if(q.selectedActionKey){if(H.length>0)return n(ze=>({...ze,error:"Agent invocations do not support image attachments yet."})),!1;n(ze=>({...ze,busy:!0,error:null}));try{return await ge.createTeamChatAgentRun(e.connection,ae,kZ({teamId:e.teamId,body:q.body,clientRequestId:se,selectedActionKey:q.selectedActionKey,approvalId:q.approvalId})),await Promise.all([Se(ae),Y()]),n(ze=>({...ze,busy:!1})),!0}catch(ze){return n(Ye=>({...Ye,busy:!1,error:ao(ze)})),!1}}I.current.set(se,{inputs:H,uploaded:null});const we=fZ({clientRequestId:se,threadId:ae,teamId:e.teamId,userId:e.currentUserId,body:q.body.trim(),mentionUserIds:q.mentionUserIds??[],attachments:H,replyToMessage:q.replyToMessage,sequence:(t.detail?.thread.lastMessageSequence??0)+1});K.current.set(se,we),n(ze=>mZ(ze,we));try{const ze=[];for(const[yt,Et]of H.entries())ze.push(await ge.uploadTeamChatAttachment(e.connection,ae,{teamId:e.teamId,attachment:Et})),kw(K.current,se,`${yt+1} of ${H.length}`),n(gt=>Aw(gt,se,`${yt+1} of ${H.length}`));const Ye=I.current.get(se);Ye&&(Ye.uploaded=ze);const Ct=await ge.sendTeamChatMessage(e.connection,ae,{teamId:e.teamId,body:q.body.trim(),clientRequestId:se,mentionUserIds:q.mentionUserIds,attachmentIds:ze.map(yt=>yt.id),replyToMessageId:q.replyToMessage?.id??null});return I.current.delete(se),K.current.delete(se),n(yt=>Iw(yt,Ct,e.currentUserId)),!0}catch(ze){return Zg(K.current,se,"failed"),n(Ye=>({...pZ(Ye,se),error:ao(ze)})),!1}},[e.connection,e.currentUserId,e.teamId,Se,Y,t.detail?.thread.lastMessageSequence]),Q=b.useCallback(async q=>{if(!(!e.connection||!e.teamId)){S.current+=1,p.current=q,n(ae=>({...ae,aiThread:ae.aiThread?.conversationId===q?ae.aiThread:null,busy:!0,error:null}));try{const ae=await ge.teamChatAiThread(e.connection,e.teamId,q);if(p.current!==q)return;n(H=>({...H,aiThread:ae,busy:!1}))}catch(ae){if(p.current!==q)return;n(H=>({...H,busy:!1,error:ao(ae)}))}}},[e.connection,e.teamId]),Ae=b.useCallback(async q=>{if(!(!e.connection||!e.teamId)){E.current=q,n(ae=>({...ae,busy:!0,error:null}));try{const ae=await ge.teamChatAgentConversation(e.connection,e.teamId,q);n(H=>({...H,agentConversation:ae,busy:!1}))}catch(ae){n(H=>({...H,busy:!1,error:ao(ae)}))}}},[e.connection,e.teamId]),je=b.useCallback(()=>{E.current=null,n(q=>({...q,agentConversation:null}))},[]),Le=b.useCallback(async q=>{const ae=g.current,H=t.agentConversation;if(!e.connection||!e.teamId||!ae||!H||!q.body.trim())return!1;n(se=>({...se,busy:!0,error:null}));try{const se=await ge.createTeamChatAgentRun(e.connection,ae,_Z({teamId:e.teamId,body:q.body,clientRequestId:q.clientRequestId,conversation:H}));E.current=se.run.id;const[we]=await Promise.all([ge.teamChatAgentConversation(e.connection,e.teamId,se.run.id),Se(ae),Y()]);return n(ze=>({...ze,agentConversation:we,busy:!1})),!0}catch(se){return n(we=>({...we,busy:!1,error:ao(se)})),!1}},[e.connection,e.teamId,Se,Y,t.agentConversation]),de=b.useCallback(()=>{S.current+=1,p.current=null,n(q=>({...q,aiThread:null}))},[]),He=b.useCallback(async q=>{const ae=p.current;if(!e.connection||!e.teamId||!ae||!q.body.trim())return!1;n(H=>({...H,busy:!0,error:null}));try{const H=await ge.sendTeamChatAiTurn(e.connection,ae,{teamId:e.teamId,body:q.body.trim(),clientRequestId:crypto.randomUUID(),providerId:q.providerId,modelId:q.modelId});return n(se=>({..._w(se,H,p.current),busy:!1})),H.activeTurn&&await ge.executeTeamChatAiTurn(e.connection,H.activeTurn.id,e.teamId),!0}catch(H){return n(se=>({...se,busy:!1,error:ao(H)})),!1}},[e.connection,e.teamId]),xe=b.useCallback(async()=>{const q=t.aiThread?.activeTurn?.id;return!e.connection||!e.teamId||!q?!1:(await ge.cancelTeamChatAiTurnExecution(e.connection,q,e.teamId)).cancelled},[e.connection,e.teamId,t.aiThread?.activeTurn?.id]),Ke=b.useCallback(async(q,ae)=>{if(!e.connection||!e.teamId)return!1;try{return await ge.editTeamChatMessage(e.connection,q.threadId,q.id,{teamId:e.teamId,body:ae}),await Se(q.threadId),!0}catch(H){return n(se=>({...se,error:ao(H)})),!1}},[e.connection,e.teamId,Se]),Ue=b.useCallback(async q=>{if(!e.connection||!e.teamId)return!1;try{return await ge.deleteTeamChatMessage(e.connection,q.threadId,q.id,e.teamId),await Se(q.threadId),!0}catch(ae){return n(H=>({...H,error:ao(ae)})),!1}},[e.connection,e.teamId,Se]),ot=b.useCallback(async q=>{if(!e.connection||!e.teamId||!q.clientRequestId||!q.id.startsWith("pending:"))return!1;const ae=Array.isArray(q.metadata.mentionUserIds)?q.metadata.mentionUserIds.filter(we=>typeof we=="string"):[],H=I.current.get(q.clientRequestId),se=q.refs.find(we=>we.refType==="message_reply");Zg(K.current,q.clientRequestId,"sending"),n(we=>$b(we,q.clientRequestId,"sending"));try{let we=H?.uploaded??[];if(H&&!H.uploaded){we=[];for(const[Ye,Ct]of H.inputs.entries())we.push(await ge.uploadTeamChatAttachment(e.connection,q.threadId,{teamId:e.teamId,attachment:Ct})),kw(K.current,q.clientRequestId,`${Ye+1} of ${H.inputs.length}`),n(yt=>Aw(yt,q.clientRequestId,`${Ye+1} of ${H.inputs.length}`));H.uploaded=we}const ze=await ge.sendTeamChatMessage(e.connection,q.threadId,{teamId:e.teamId,body:q.body,clientRequestId:q.clientRequestId,mentionUserIds:ae,attachmentIds:we.map(Ye=>Ye.id),replyToMessageId:se?.refId??null});return I.current.delete(q.clientRequestId),K.current.delete(q.clientRequestId),n(Ye=>Iw(Ye,ze,e.currentUserId)),!0}catch(we){return Zg(K.current,q.clientRequestId,"failed"),n(ze=>({...$b(ze,q.clientRequestId,"failed"),error:ao(we)})),!1}},[e.connection,e.currentUserId,e.teamId]),$e=b.useCallback(q=>{q.id.startsWith("pending:")&&(q.clientRequestId&&I.current.delete(q.clientRequestId),q.clientRequestId&&K.current.delete(q.clientRequestId),n(ae=>hZ(ae,q.id)))},[]),Me=b.useCallback(async(q,ae)=>{if(!e.connection||!e.teamId)return!1;try{const H=await ge.setTeamChatThreadMuted(e.connection,q,e.teamId,ae),se=we=>we.id===H.threadId?{...we,mutedAt:H.mutedAt}:we;return n(we=>({...we,threads:we.threads.map(se),detail:we.detail?.thread.id===H.threadId?{...we.detail,thread:se(we.detail.thread)}:we.detail,error:null})),!0}catch(H){return n(se=>({...se,error:ao(H)})),!1}},[e.connection,e.teamId]);return{...t,currentUserId:e.currentUserId,notificationMode:i,incomingNotification:u,setNotificationMode:ne,dismissIncomingNotification:ce,setThreadMuted:Me,selectThread:fe,openDm:te,loadMoreMessages:R,sendMessage:L,openAiThread:Q,openAgentConversation:Ae,closeAgentConversation:je,sendAgentTurn:Le,closeAiThread:de,sendAiTurn:He,stopAiTurn:xe,editMessage:Ke,deleteMessage:Ue,retryMessage:ot,dismissFailedMessage:$e,refreshDirectory:ue,refresh:async()=>{await Promise.all([ue(),Y(),Se(),me(),qe()])}}}function ao(e){return yZ(e)}const MR="local-profile-agent";function OY(e){const t=e.profile;if(!t||t.mode!=="local")return e.hostedActions;const n=new Set(e.hostedActions.flatMap(u=>{const m=u.implementation;return m?.type!=="openpond-agent"||m.profileName!==t.activeProfile?[]:[Dl(m.agentName),Dl(u.name),Dl(u.label)].filter(Boolean)})),o=t.hosted?.teamId===e.teamId?t.hosted.hostedSourceMaterialization:null,i=new Set(e.hostedActions.map(u=>u.implementation?.agentId).filter(u=>typeof u=="string")),l=t.agents.flatMap(u=>u.enabled?o?.agentId===u.id&&!!(o.runtimeAgentId&&i.has(o.runtimeAgentId))||n.has(Dl(u.name))||n.has(Dl(u.id))?[]:[TZ(t,u)]:[]);return[...e.hostedActions,...l]}function zY(e){return e?.implementation?.type===MR}function $Y(e){const t=e.implementation?.profileAgentId;return typeof t=="string"&&t.trim()?t.trim():null}function AZ(e,t){if(!e||e.mode!=="local")return"Load a local OpenPond profile before publishing an agent to Team.";const n=e.agents.find(o=>o.id===t);return n?n.enabled?e.git?.head?e.git.dirty?`Commit your profile changes before publishing ${n.name} to Team.`:e.setupGate.blockingCount>0?`${n.name} has ${e.setupGate.blockingCount} blocking setup requirement${e.setupGate.blockingCount===1?"":"s"}. Complete setup before publishing it to Team.`:null:`Commit ${n.name} before publishing it to Team.`:`${n.name} is disabled in the active profile.`:`Profile agent not found: ${t}`}function RZ(e,t){const n=t.runtimeAgentId?.trim()??"",o=t.profileName?.trim()??"",i=Dl(t.agentName);return e.find(l=>{const u=l.implementation;return u?.type!=="openpond-agent"?!1:n&&typeof u.agentId=="string"&&u.agentId===n?!0:!!(o&&u.profileName===o&&i&&[u.agentName,l.name,l.label].some(m=>Dl(m)===i))})??null}function TZ(e,t){return{id:`local-profile:${e.activeProfile??"default"}:${t.id}:chat`,name:t.name,label:t.name,description:jZ(e),approvalPolicy:{required:!1,risk:"write"},setupRequirements:e.setupGate.blockingRequirements,invokesModel:!0,implementation:{type:MR,profileAgentId:t.id,profileName:e.activeProfile??"default"}}}function jZ(e){return e.git?.head?e.git.dirty?"My Agent · Commit profile changes before publishing to this Team":e.setupGate.blockingCount>0?"My Agent · Complete required setup before publishing to this Team":"My Agent · Publishes to this Team on first use":"My Agent · Commit the profile before publishing to this Team"}function Dl(e){return typeof e=="string"?e.trim().toLowerCase().replace(/[^a-z0-9]+/g,""):""}const Ew=5;function EZ(e){return b.useCallback(async t=>{if(!e.connection||!e.teamId)throw new Error("Connect OpenPond to a Team before publishing an agent.");const n=await ge.profileCheck(e.connection,{kind:"all"}),o=AZ(n,t);if(o)throw new Error(o);const i=n?.agents.find(p=>p.id===t);if(!i)throw new Error(`Profile agent not found: ${t}`);const u=(await ge.profilePush(e.connection,{teamId:e.teamId,ensureHosted:!0,hostedSourceAgentId:t,message:null})).localProfile?.hosted?.hostedSourceMaterialization,m=u?.agentId===t?u.runtimeAgentId:null;e.applyBootstrapPayload(await ge.bootstrap(e.connection));let g=null;for(let p=0;p<Ew;p+=1){const S=await e.refreshDirectory();if(g=RZ(S.agents,{runtimeAgentId:m,profileName:n.activeProfile,agentName:i.name}),g)break;p<Ew-1&&await MZ(200*(p+1))}if(!g)throw new Error(`${i.name} was published, but the Team agent directory has not refreshed yet. Retry the mention in a moment.`);return g},[e.applyBootstrapPayload,e.connection,e.refreshDirectory,e.teamId])}function MZ(e){return new Promise(t=>{setTimeout(t,e)})}function PZ(e){b.useEffect(()=>{if(!e.notification)return;const{eventId:t,threadId:n,title:o,body:i}=e.notification;e.showToast(`${o}: ${i}`,"info",{actionLabel:"Open",onAction:()=>{e.setView("team"),e.selectThread(n)},dismissible:!0,durationMs:6500,placement:"top-right"}),e.dismiss(t)},[e.dismiss,e.notification,e.selectThread,e.setView,e.showToast])}function NZ(e){const{connection:t,refreshToken:n=null}=e,[o,i]=b.useState([]),[l,u]=b.useState(null),[m,g]=b.useState(null),[p,S]=b.useState(null),[x,C]=b.useState(!1),[w,E]=b.useState(!1),[j,U]=b.useState(!1),[D,B]=b.useState(null),[K,I]=b.useState(null),[O,N]=b.useState(null),[z,G]=b.useState(0),ne=b.useRef(0),ce=b.useMemo(()=>o.find(R=>R.id===m)??null,[o,m]),Y=b.useCallback(async()=>{if(!t)return!1;C(!0),B(null);try{const R=await ge.communities(t);return i(R.items),u(R.nextCursor),g(L=>L&&R.items.some(Q=>Q.id===L)?L:null),!0}catch(R){return B(Zf(R)),!1}finally{C(!1)}},[t]),ue=b.useCallback(async()=>{if(!t||!l||x)return!1;C(!0),B(null);try{const R=await ge.communities(t,l);return i(L=>OZ(L,R.items)),u(R.nextCursor),!0}catch(R){return B(Zf(R)),!1}finally{C(!1)}},[t,x,l]),Se=b.useCallback(async R=>{if(!t)return null;const L=++ne.current;E(!0),I(null);try{const Q=await ge.communityPreview(t,R.slug);return ne.current===L&&S(Q),Q}catch(Q){return ne.current===L&&I(Zf(Q)),null}finally{ne.current===L&&E(!1)}},[t]),me=b.useCallback(R=>{const L=o.find(Q=>Q.id===R);L&&(g(L.id),S(Q=>Q?.id===L.id?Q:null),N(null),Se(L))},[o,Se]),qe=b.useCallback(()=>{ne.current+=1,g(null),S(null),I(null),N(null)},[]);b.useEffect(()=>{if(!t){i([]),S(null),g(null);return}Y()},[t,Y,n]),b.useEffect(()=>{!ce||p?.id===ce.id||w||Se(ce)},[Se,p?.id,w,ce]);const $=b.useCallback(async()=>{const R=ce;await Y(),R&&await Se(R)},[Se,Y,ce]),be=b.useCallback(async()=>{if(!t||!p?.currentRules||j)return!1;U(!0),N(null);try{return await ge.joinCommunity(t,p.id,p.currentRules.id),G(R=>R+1),await $(),!0}catch(R){const L=qf(R);return N(L),L.kind==="rules_stale"&&await $(),!1}finally{U(!1)}},[t,j,p,$]),ie=b.useCallback(async()=>{if(!t||!p?.currentRules||j)return!1;U(!0),N(null);try{return await ge.acceptCommunityRules(t,p.id,p.currentRules.id),G(R=>R+1),await $(),!0}catch(R){const L=qf(R);return N(L),L.kind==="rules_stale"&&await $(),!1}finally{U(!1)}},[t,j,p,$]),fe=b.useCallback(async()=>{if(!t||!p||j)return!1;U(!0),N(null);try{return await ge.leaveCommunity(t,p.id),G(R=>R+1),await $(),!0}catch(R){return N(qf(R)),!1}finally{U(!1)}},[t,j,p,$]),te=b.useCallback(async R=>{if(!t||!p||j)return!1;U(!0),N(null);try{return await ge.updateCommunityNotifications(t,p.id,R),i(L=>L.map(Q=>Q.id===p.id&&Q.membership?{...Q,membership:{...Q.membership,notificationMode:R}}:Q)),S(L=>L?.id===p.id&&L.membership?{...L,membership:{...L.membership,notificationMode:R}}:L),!0}catch(L){return N(qf(L)),!1}finally{U(!1)}},[t,j,p]);return{items:o,nextCursor:l,selectedCommunityId:m,selectedSummary:ce,preview:p,discoveryLoading:x,previewLoading:w,membershipBusy:j,discoveryError:D,previewError:K,membershipError:O,membershipVersion:z,refresh:Y,loadMore:ue,showDiscovery:qe,selectCommunity:me,join:be,acceptRules:ie,leave:fe,updateNotifications:te,clearMembershipError:()=>N(null)}}function OZ(e,t){const n=new Map(e.map(o=>[o.id,o]));for(const o of t)n.set(o.id,o);return[...n.values()]}function Zf(e){return e instanceof Error?e.message:String(e)}function qf(e){const t=Zf(e);return t.includes("community_rules_version_stale")?{kind:"rules_stale",message:"The community rules changed. Review the newest version and try again."}:t.includes("community_membership_required")?{kind:"membership_lost",message:"Your community membership is no longer active."}:t.includes("community_join_closed")||t.includes("community_invalid_request")?{kind:"join_conflict",message:"The community could not be joined in its current state."}:{kind:"unknown",message:t}}function zZ(e,t,n){return AR({realtimeUrl:e.session.realtimeUrl,httpUrl:e.session.httpUrl,authorizationToken:e.session.token,channels:[e.session.channel],onEvent:o=>{const i=Bk.safeParse(o);i.success&&e.onEvent(i.data)},onReady:e.onReady,onError:e.onError},t,n)}function $Z(e){const{connection:t,preview:n,currentUserId:o,membershipVersion:i}=e,l=n?.id??null,u=n?.membership?.status==="active",m=!n?.capabilities.requiresRulesAcceptance,[g,p]=b.useState([]),[S,x]=b.useState(null),[C,w]=b.useState({}),[E,j]=b.useState([]),[U,D]=b.useState(!1),[B,K]=b.useState(!1),[I,O]=b.useState(!1),[N,z]=b.useState(!1),[G,ne]=b.useState(null),[ce,Y]=b.useState(null),[ue,Se]=b.useState(null),[me,qe]=b.useState(null),[$,be]=b.useState(!1),[ie,fe]=b.useState(null),[te,R]=b.useState(null),L=b.useRef(null),Q=b.useRef([]),Ae=b.useRef("mentions"),je=b.useRef(0),Le=b.useRef({}),de=b.useRef(new Set),He=b.useMemo(()=>g.find(Be=>Be.id===S)??null,[g,S]),xe=S?C[S]??null:null;b.useEffect(()=>{L.current=S},[S]),b.useEffect(()=>{Q.current=g},[g]),b.useEffect(()=>{Ae.current=n?.membership?.notificationMode??"mentions"},[n?.membership?.notificationMode]);const Ke=b.useCallback(async()=>{if(!t||!l)return!1;D(!0),ne(null);try{const Be=await ge.communityChannels(t,l);return p(Be.channels),x(it=>it&&Be.channels.some(y=>y.id===it)?it:Be.channels.find(y=>y.isDefault)?.id??Be.channels[0]?.id??null),be(!1),!0}catch(Be){const it=Jr(Be);return ne(it),Lu(it)&&be(!0),!1}finally{D(!1)}},[l,t]),Ue=b.useCallback(async Be=>{if(!t||!l)return!1;const it=++je.current;K(!0),Y(null);try{const y=await ge.communityMessages(t,l,Be,{limit:50});return it!==je.current?!1:(w(Z=>({...Z,[Be]:{items:y.messages,hasMoreBefore:y.hasMoreBefore,preview:y.preview}})),be(!1),!0)}catch(y){if(it!==je.current)return!1;const Z=Jr(y);return Y(Z),Lu(Z)&&be(!0),!1}finally{it===je.current&&K(!1)}},[l,t]);b.useEffect(()=>{p(n?.channels??[]),w({}),x(n?.channels.find(Be=>Be.isDefault)?.id??n?.channels[0]?.id??null),ne(null),Y(null),Se(null),be(!1),de.current.clear(),l&&Ke()},[l,Ke,i]),b.useEffect(()=>{S&&Ue(S)},[Ue,S]);const ot=b.useCallback(async(Be,it)=>{if(!t||!l||!u||!m||it<=0)return!1;if((Le.current[Be]??0)>=it)return!0;Le.current[Be]=it;try{const y=await ge.markCommunityRead(t,l,Be,it);return p(Z=>Z.map(le=>le.id===Be?{...le,unreadCount:0,readState:le.readState?{...le.readState,lastReadSequence:y.sequence,lastReadAt:new Date().toISOString()}:{lastReadSequence:y.sequence,lastReadAt:new Date().toISOString(),mutedAt:null,pinnedAt:null}}:le)),!0}catch(y){const Z=Jr(y);return Lu(Z)&&be(!0),!1}},[l,t,u,m]);b.useEffect(()=>{const Be=xe?.items.at(-1)?.sequence??0;S&&Be>0&&ot(S,Be)},[ot,S,xe?.items]);const $e=b.useCallback(Be=>{if(Be.communityId!==l||de.current.has(Be.id))return;de.current.add(Be.id);const it=qk.safeParse(Be.payload.message);if(it.success&&Be.type!=="read.updated"){const y=it.data;if(w(Z=>{const le=Z[Be.channelId];if(!le)return Z;const V=le.items.some(he=>he.id===y.id)?le.items.map(he=>he.id===y.id?y:he):[...le.items,y].sort((he,A)=>he.sequence-A.sequence);return{...Z,[Be.channelId]:{...le,items:V}}}),p(Z=>Z.map(le=>le.id===Be.channelId?{...le,lastMessageSequence:Math.max(le.lastMessageSequence,y.sequence),unreadCount:L.current===Be.channelId||y.authorUserId===o?0:Math.max(le.unreadCount+(Be.type==="message.created"?1:0),0)}:le)),Be.type==="message.created"&&y.authorUserId!==o){const Z=Q.current.find(V=>V.id===Be.channelId),le=DZ(y).includes(o??""),Pe=Ae.current;!Z?.readState?.mutedAt&&(Pe==="all"||Pe==="mentions"&&le)&&R({communityId:Be.communityId,channelId:Be.channelId,message:y})}L.current===Be.channelId&&ot(Be.channelId,y.sequence);return}Be.type==="read.updated"&&Be.payload.userId===o&&Ke()},[l,o,Ke,ot]);b.useEffect(()=>{if(!t||!l||!u||!m)return;let Be=!1,it=null;return Se(null),Promise.all([ge.communityRealtimeSession(t,l),ge.communityEvents(t,l)]).then(async([y,Z])=>{if(Be)return;const le=async()=>{let V=Z.cursor;for(;;){const he=await ge.communityEvents(t,l,{after:V,limit:200});if(Be)return;for(const A of he.events)$e(A);if(V=he.cursor,!he.hasMore)return}},Pe=zZ({session:y,onEvent:$e,onReady:()=>{Se(null),le().catch(V=>Se(Jr(V)))},onError:V=>Se(Jr(V))});it=()=>Pe.close(),await le()}).catch(y=>{if(!Be){const Z=Jr(y);Se(Z),Lu(Z)&&be(!0)}}),()=>{Be=!0,it?.()}},[$e,l,t,u,i,m]);const Me=b.useCallback(async()=>{if(!t||!l||!S||I)return!1;const Be=C[S],it=Be?.items[0]?.sequence;if(!Be?.hasMoreBefore||it==null)return!1;O(!0),Y(null);try{const y=await ge.communityMessages(t,l,S,{beforeSequence:it,limit:50});return w(Z=>{const le=Z[S]??Be,Pe=new Set(le.items.map(V=>V.id));return{...Z,[S]:{...le,items:[...y.messages.filter(V=>!Pe.has(V.id)),...le.items],hasMoreBefore:y.hasMoreBefore}}}),!0}catch(y){return Y(Jr(y)),!1}finally{O(!1)}},[l,t,C,I,S]),q=b.useCallback(async Be=>{if(!t||!l||!S||N)return!1;z(!0),qe(null),fe(null);try{const it=await Promise.all(Be.attachments.map(Z=>ge.uploadCommunityAttachment(t,l,S,Z))),y=await ge.sendCommunityMessage(t,l,S,{body:Be.body,clientRequestId:Be.clientRequestId,mentionUserIds:Be.mentionUserIds,attachmentIds:it.map(Z=>Z.id),replyToMessageId:Be.replyToMessageId});return w(Z=>{const le=Z[S]??{items:[],hasMoreBefore:!1,preview:!1};return le.items.some(Pe=>Pe.id===y.id)?Z:{...Z,[S]:{...le,items:[...le.items,y]}}}),await ot(S,y.sequence),!0}catch(it){const y=Jr(it);return qe(y),fe({...Be,message:y}),Lu(y)&&be(!0),!1}finally{z(!1)}},[l,t,ot,S,N]),ae=b.useCallback(Be=>q({body:Be.body,clientRequestId:crypto.randomUUID(),mentionUserIds:Be.mentionUserIds??[],attachments:Be.attachments??[],replyToMessageId:Be.replyToMessageId??null}),[q]),H=b.useCallback(async(Be,it)=>{if(!t||!l||!S)return!1;qe(null);try{const y=await ge.editCommunityMessage(t,l,S,Be,it);return Mw(w,S,y),!0}catch(y){return qe(Jr(y)),!1}},[l,t,S]),se=b.useCallback(async Be=>{if(!t||!l||!S)return!1;qe(null);try{const it=await ge.deleteCommunityMessage(t,l,S,Be);return Mw(w,S,it),!0}catch(it){return qe(Jr(it)),!1}},[l,t,S]),we=b.useCallback(async(Be,it)=>{if(!t||!l)return!1;qe(null);try{const y=await ge.setCommunityChannelMuted(t,l,Be,it);return p(Z=>Z.map(le=>le.id===Be&&le.readState?{...le,readState:{...le.readState,mutedAt:y.mutedAt}}:le)),!0}catch(y){return qe(Jr(y)),!1}},[l,t]),ze=b.useCallback(async(Be="")=>{if(!t||!l||!u)return[];try{const it=await ge.searchCommunityMembers(t,l,{query:Be,limit:50});return j(y=>UZ(y,it.items)),it.items}catch(it){return qe(Jr(it)),[]}},[l,t,u]);b.useEffect(()=>{u&&m?ze():j([])},[u,m,ze]);const Ye=b.useCallback(async Be=>{if(!t||!l||!S)return!1;try{const it=await ge.communityAttachmentDownload(t,l,S,Be);return window.open(it.url,"_blank","noopener,noreferrer"),!0}catch(it){return qe(Jr(it)),!1}},[l,t,S]),Ct=b.useCallback(()=>S?Ue(S):Promise.resolve(!1),[Ue,S]),yt=b.useCallback(()=>ie?q(ie):Promise.resolve(!1),[ie,q]),Et=b.useCallback(()=>fe(null),[]),gt=b.useCallback(()=>R(null),[]);return{channels:g,selectedChannelId:S,selectedChannel:He,messages:xe?.items??[],hasMoreBefore:xe?.hasMoreBefore??!1,previewMode:xe?.preview??!u,members:E,channelsLoading:U,messagesLoading:B,olderMessagesLoading:I,sending:N,channelsError:G,messagesError:ce,realtimeError:ue,actionError:me,lostMembership:$,failedSend:ie,incomingNotification:te,selectChannel:x,loadChannels:Ke,loadMessages:Ct,loadOlder:Me,sendMessage:ae,retrySend:yt,dismissFailedSend:Et,editMessage:H,deleteMessage:se,setMuted:we,searchMembers:ze,downloadAttachment:Ye,dismissIncomingNotification:gt}}function Mw(e,t,n){e(o=>{const i=o[t];return i?{...o,[t]:{...i,items:i.items.map(l=>l.id===n.id?n:l)}}:o})}function DZ(e){const t=e.metadata.mentionUserIds;return Array.isArray(t)?t.filter(n=>typeof n=="string"):[]}function UZ(e,t){const n=new Map(e.map(o=>[o.userId,o]));for(const o of t)n.set(o.userId,o);return[...n.values()].slice(-200)}function Lu(e){return e.includes("community_membership_required")||e.includes("community_rules")}function Jr(e){return e instanceof Error?e.message:String(e)}function LZ(e){const t=NZ({connection:e.connection,refreshToken:e.refreshToken}),n=$Z({connection:e.connection,preview:t.preview,currentUserId:e.currentUserId,membershipVersion:t.membershipVersion}),o=n.incomingNotification,i=t.items,l=n.channels,u=t.selectCommunity,m=n.selectChannel,g=n.dismissIncomingNotification,{setView:p,showToast:S}=e,x=b.useCallback(()=>{t.showDiscovery(),p("community")},[t.showDiscovery,p]),C=b.useCallback(E=>{t.selectCommunity(E),p("community")},[t.selectCommunity,p]),w=b.useCallback(E=>{n.selectChannel(E),p("community")},[n.selectChannel,p]);return b.useEffect(()=>{if(!o)return;const E=i.find(U=>U.id===o.communityId),j=l.find(U=>U.id===o.channelId);S(`${E?.displayName??"Community"} · #${j?.displayName??"channel"}: ${o.message.body.slice(0,120)||"New message"}`,"info",{actionLabel:"View",onAction:()=>{u(o.communityId),m(o.channelId),p("community")},placement:"top-right"}),g()},[l,i,g,o,m,u,p,S]),{communities:t,chat:n,sidebar:{communityItems:t.items,communityChannels:n.channels,communityLoading:t.discoveryLoading,communityError:t.discoveryError,selectedCommunityId:t.selectedCommunityId,selectedCommunityChannelId:n.selectedChannelId,discoverCommunities:x,selectCommunity:C,selectCommunityChannel:w},view:{communities:t,chat:n,currentUserId:e.currentUserId}}}const qZ=[];function BZ(e){const t=b.useCallback(o=>bK(e,o),[e]),n=b.useCallback(()=>hK(e)??qZ,[e]);return b.useSyncExternalStore(t,n,n)}function HZ(e){const[t,n]=b.useState(()=>dg());return b.useEffect(()=>{let o=!0;return e?(ge.connectedAppStatus(e,{status:"all"}).then(i=>{o&&n(i.apps)}).catch(i=>{console.warn("Unable to load connected app mention status.",i),o&&n(dg())}),()=>{o=!1}):(n(dg()),()=>{o=!1})},[e]),t}function FZ(){const{composerDraftStore:e,dispatch:t,setters:n,state:o}=mG(),[i,l]=b.useState(null),[u,m]=b.useState([]),[g,p]=b.useState(null),[S,x]=b.useState(null),[C,w]=b.useState(null),[E,j]=b.useState(null),[U,D]=b.useState(aR),[B,K]=b.useState({}),[I,O]=b.useState(()=>new Set),N=b.useCallback((yn,xa)=>{O(Xo=>{if(Xo.has(yn)===xa)return Xo;const po=new Set(Xo);return xa?po.add(yn):po.delete(yn),po})},[]),[z,G]=b.useState(0),[ne,ce]=b.useState(0),[Y,ue]=b.useState(null),Se=b.useRef(null),me=b.useCallback(yn=>{Se.current?.(yn)},[]),{confirmProjectAction:qe,projectConfirmDialog:$,resolveProjectConfirmDialog:be}=XF(),{query:ie,searchOpen:fe,archivedChatsOpen:te,sectionMenuOpen:R,projectsExpanded:L,cloudProjectsExpanded:Q,chatRowsVisibleCount:Ae,sidebarOpen:je,view:Le,selectedAppId:de,selectedProjectId:He,selectedSessionId:xe,draftProvider:Ke,draftModel:Ue,codexPermissionMode:ot,codexReasoningEffort:$e,openPondCommandAccessMode:Me,busy:q,diffPanelOpen:ae,diffPanelExpanded:H,rightPanelMode:se,rightChatPanels:we,terminalOpen:ze,settingsSection:Ye,newProjectDialogOpen:Ct,newProjectMode:yt,newProjectName:Et,newProjectPath:gt,newProjectBusy:Be,commitDialogOpen:it,commitMessage:y,commitIncludeUnstaged:Z,commitNextStep:le,commitDraft:Pe,branchDialogOpen:V,branchDialogName:he,toast:A,error:W}=o,Ce=vG(Le==="labs"),{setQuery:ye,setSearchOpen:Te,setArchivedChatsOpen:De,setSectionMenuOpen:Ne,setProjectsExpanded:nt,setCloudProjectsExpanded:Qe,setChatRowsVisibleCount:Xe,setSidebarOpen:at,setView:vt,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn,setPrompt:Dt,setDraftProvider:Sn,setDraftModel:Xt,setCodexPermissionMode:Ft,setCodexReasoningEffort:za,setOpenPondCommandAccessMode:Nt,setDiffPanelOpen:vn,setDiffPanelExpanded:xn,setRightPanelMode:sa,setRightChatPanels:Qn,setTerminalOpen:Lt,setSyncingWorkspaceAppId:en,setSettingsSection:kt,setNewProjectDialogOpen:On,setNewProjectMode:_a,setNewProjectName:la,setNewProjectPath:kn,setNewProjectBusy:un,setCommitDialogOpen:ea,setCommitMessage:Ln,setCommitIncludeUnstaged:ba,setCommitNextStep:ka,setCommitDraft:ca,setBranchDialogOpen:tn,setBranchDialogName:Rt,setError:Kt}=n,{connectionRef:Ot,setError:Mt,showToast:oe}=iG({appDispatch:t,error:W,setErrorState:Kt}),{appPreferences:pt,applyBootstrapPayload:dt,bootstrap:st,codexHistorySessions:St,connection:Tt,events:En,approvals:Fn,sessions:bo,startup:wt,setAppPreferences:It,setBootstrap:Ia,setCodexHistorySessions:$a,setEvents:qo,setSessions:gn}=oG({setDraftModel:Xt,setDraftProvider:Sn,setCodexPermissionMode:Ft,setCodexReasoningEffort:za,setOpenPondCommandAccessMode:Nt,setError:Mt,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn});Ot.current=Tt;const ro=HZ(Tt),vo=SG({connection:Tt}),Da=xG({connection:Tt,profileId:st?.profile?.activeProfile??"default"});b.useEffect(()=>{const yn=vo.systemSession;yn&&gn(xa=>xa.findIndex(po=>po.id===yn.id)===-1?[yn,...xa]:xa.map(po=>po.id===yn.id?yn:po))},[vo.systemSession,gn]);const{pinnedCollapsed:Kn,projectsCollapsed:Bo,cloudProjectsCollapsed:nr,chatsCollapsed:Ho,sidebarWidth:pr,sidebarResizing:To,diffPanelWidth:hr,diffPanelResizing:ar,togglePinnedCollapsed:gr,toggleProjectsCollapsed:Fo,toggleCloudProjectsCollapsed:Ko,toggleChatsCollapsed:Cn,startSidebarResize:io,startDiffPanelResize:jo}=gG({connection:Tt,preferences:st?.preferences,sidebarOpen:je,diffPanelOpen:ae,diffPanelExpanded:H,setBootstrap:Ia,setError:Mt}),Xn=b.useCallback(()=>{Bo&&Fo()},[Bo,Fo]),{cloudProjectById:Va,linkedProjectByAppId:Aa,localProjectById:Vo,mentionableSandboxApps:nn,selectedApp:Mn,selectedCloudProject:Vn,selectedProject:an,selectedProjectLinkedApp:yo,selectedProjectLinkedOpenPondApp:Tn,selectedSession:wn,selectedSessionLinkedProject:ua,sidebarSessions:Ga}=MK({bootstrap:st,codexHistorySessions:St,selectedAppId:de,selectedProjectId:He,selectedSessionId:xe,sessions:bo}),ta=kG(En,Fn),{chatMentionApps:Za,cloudProjectIdsByTeam:ni,connectedAppMentions:zn,pendingApproval:Ua}=BK({bootstrap:st,connectedAppRows:ro,mentionableSandboxApps:nn,runtimeIndexes:ta,selectedApp:Mn,selectedCloudProject:Vn,selectedProject:an,selectedSession:wn,selectedSessionId:xe}),{codexHistoryEvents:La,setCodexHistoryEvents:qa}=gV({connection:Tt,selectedSessionId:xe,selectedSessionLocallyActive:!!(xe&&I.has(xe)),selectedSessionStatus:wn?.status,setCodexHistorySessions:$a,setError:Mt}),{account:so,accountPending:So,accountSignedOut:br,activeModel:lo,activeProvider:Eo,activeWorkspaceAppId:or,activeWorkspaceId:Pr,activeWorkspaceKind:Go,activeWorkspaceLocation:Nr,appDefaults:xo,cloudLinked:vr,selectedCodexHistoryPending:Or,selectedSessionProjectId:yr,startMessage:zr,workspaceName:$r}=TK({bootstrap:st,draftModel:Ue,draftProvider:Ke,selectedApp:Mn,selectedAppId:de,selectedCloudProject:Vn,selectedProject:an,selectedSession:wn,selectedSessionId:xe,selectedSessionLinkedProject:ua}),Sr=b.useMemo(()=>SK(st?.account??null),[st?.account]),_i=b.useMemo(()=>Ob(st?.account??null),[st?.account]),xr=BZ(_i),Dr=b.useMemo(()=>wK(xr,xo.defaultTeamId),[xo.defaultTeamId,xr]),rn=Dr?.teamId??null,Co=IZ({connection:Tt,teamId:rn,currentUserId:so?.profile?.id??null,refreshToken:st?.accountMeta.asOf??null}),ki=EZ({connection:Tt,teamId:rn,applyBootstrapPayload:dt,refreshDirectory:Co.refreshDirectory});PZ({notification:Co.incomingNotification,dismiss:Co.dismissIncomingNotification,selectThread:Co.selectThread,setView:vt,showToast:oe});const{communities:Mo,sidebar:Ii,view:rr}=LZ({connection:Tt,currentUserId:so?.profile?.id??null,refreshToken:st?.accountMeta.asOf??null,setView:vt,showToast:oe}),Po=Co.aiThread?.conversationId??null,ai=Le==="team"&&!!Po&&ae&&se==="chat";b.useEffect(()=>{if(Le==="team"){if(Po){sa("chat"),vn(!0);return}se==="chat"&&vn(!1)}},[se,vn,sa,Po,Le]);const Ai=b.useCallback(()=>{if(Po){if(ai){vn(!1);return}sa("chat"),vn(!0)}},[vn,sa,ai,Po]),re=b.useMemo(()=>ti(an,st?.cloudProjects??[]),[st?.cloudProjects,an]),Je=wn?.provider==="codex"?Me:wn?.openPondCommandAccessMode??Me,tt=Le==="labs"&&st?.profile?.mode==="local"&&st.profile.repoPath?cv(st.profile.repoPath):null,$t=tt?`${st?.profile?.activeProfile??"default"} profile`:null,rt=tt??or,bn=tt??Pr,Pn=tt?"local_project":Go,on=$t??$r,{openPondActionCatalog:co,selectedActionCatalog:uo}=BG({cloudProjectById:Va,cloudProjects:st?.cloudProjects??[],connection:Tt,defaultTeamId:xo.defaultTeamId,accountScopeKey:Sr,localProjects:st?.localProjects??[],profileActionCatalogEntries:st?.profile.actionCatalog??[],selectedCloudProject:Vn,selectedProject:an}),{expandedProjectIds:wo,expandProject:Wa,toggleProjectExpanded:Ur,setExpandedProjectIds:Zo}=HG({selectedProjectId:He});DK({activeWorkspaceId:Pr,activeWorkspaceKind:Go,appDispatch:t,connection:Tt,expandProject:Wa,linkedProjectByAppId:Aa,providerSettings:st?.providers??null,selectedAppId:de,selectedSession:wn,selectedSessionId:xe,selectedSessionProjectId:yr,setDiffPanelExpanded:xn,setDraftModel:Xt,setDraftProvider:Sn,setError:Mt,setSelectedAppId:ct,setSelectedProjectId:pn,setSessions:gn,setTerminalOpen:Lt,toast:A});const{cloudBusy:ir,cloudError:oi,cloudLoading:ri,cloudWorkItemDetail:_o,cloudWorkItems:Ri,selectedCloudWorkItem:Ut,selectedCloudWorkItemId:Vt,selectedCloudWorkItemLocalProject:ko,applyCloudWorkItemPatchLocally:Ba,cancelCloudWorkItemCreatePipeline:Ra,cancelCloudWorkItemTask:Ya,createCloudWork:is,handleCloudWorkItemBackground:Lr,openCloudHome:Ti,selectCloudWorkItem:ss,sendCloudWorkItemMessage:ji,setCloudError:Ei}=WK({bootstrap:st,connection:Tt,cloudProjectById:Va,cloudProjectIdsByTeam:ni,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn,setView:vt,setError:Mt,rememberWorkspaceState:me,showToast:oe}),{changeCodexPermissionMode:qr,changeCodexReasoningEffort:Us}=ZK({connection:Tt,setBootstrap:Ia,setCodexPermissionMode:Ft,setCodexReasoningEffort:za,setError:Mt}),{changeOpenPondCommandAccessMode:Ls}=IV({connection:Tt,selectedSession:wn,setBootstrap:Ia,setError:Mt,setOpenPondCommandAccessMode:Nt,setSessions:gn}),ls=UK({connection:Tt,setError:Mt}),qs=b.useCallback(()=>{G(yn=>yn+1)},[]),Ta=qK({appDispatch:t,expandProject:Wa,linkedProjectByAppId:Aa,requestComposerFocus:qs,onBeginNewChat:()=>ue(null),setMentionedAppId:x}),ii=b.useCallback(yn=>{const xa=Wt("local",yn);t({type:"selectProject",projectId:xa}),Wa(xa)},[t,Wa]),{advanceAfterTurn:Bi,begin:cs,bindSession:Mi,dismiss:Bs,handoff:Pi,prepareTurn:xl,selectTask:No}=CG({activeModel:lo,activeProvider:Eo,applyBootstrapPayload:dt,beginNewChat:Ta,composerDraftStore:e,connection:Tt,requestComposerFocus:qs,selectedLocalProjectId:an?.id??null,selectedSessionId:xe,selectLocalProject:ii,setDraftModel:Xt,setDraftProvider:Sn,setError:Mt,view:Le});hG({connection:Tt,events:En,showToast:oe}),PV({searchOpen:fe,sectionMenuOpen:R,setSectionMenuOpen:Ne,setSearchOpen:Te,setQuery:ye}),b.useEffect(()=>{K({})},[st?.server.id]);const{chatHistoryLoadStates:fo,loadMoreSelectedChatHistory:si,selectedPagedSessionEvents:va,selectedRuntimeIndexes:Ha}=wG({approvals:Fn,codexHistoryEvents:La,connection:Tt,latestServerSequence:st?.eventWindow?.latestSequence,runtimeIndexes:ta,selectedSessionId:xe,serverId:st?.server.id,setCodexHistoryEvents:qa,setCodexHistorySessions:$a,setError:Mt}),{activeSessions:Ja,pinnedProjects:Oo,pinnedSessions:sr,pinnedItems:Br,projectRows:ya,localProjectRows:li,visibleProjectRows:Hi,cloudProjectRows:us,cloudWorkItemsByProjectId:Hs,projectSessionRowsByProjectId:Ni,childSessionRowsByParentId:Cl,sidebarProjectIdBySessionId:ds,chatRows:Fi,visibleChatRows:Oi,sessionEvents:Io,chatMessages:ci,contextUsage:Ao,goalRuntime:Hr,subagentRuntime:Ki}=AV({localProjects:st?.localProjects??[],cloudProjects:st?.cloudProjects??[],cloudWorkItems:Ri,sessions:Ga,runtimeIndexes:Ha,appPreferences:pt,selectedSessionId:xe,selectedProjectId:He,archivedChatsOpen:te,projectsExpanded:L,chatRowsVisibleCount:Ae}),{clearPendingChatUserMessage:Vi,pendingChatUserMessages:Gi,recordPendingChatUserMessage:fs,visibleChatMessages:Cr}=xV({chatMessages:ci,runtimeIndexes:ta,selectedSessionId:xe,serverId:st?.server.id}),mo=b.useMemo(()=>W4({selectedAppId:de,selectedProjectId:He,selectedSessionId:xe}),[de,He,xe]),Wo=b.useRef(null);b.useEffect(()=>{const yn=Wo.current;Wo.current=mo,!(!yn||yn.kind!=="draft"||mo.kind!=="session")&&(ed(yn,mo)||m(xa=>{const Xo=Y4({tabs:xa,previousScope:yn,activeScope:mo});return Xo.some((Xc,Qc)=>Xc!==xa[Qc])?Xo:xa}))},[mo]);const ui=b.useMemo(()=>J4(u),[u]),{runningSessionIds:_e,selectedSessionRunning:et,selectedSteerAutoDispatchBlocked:Gt,selectedSteerAutoDispatchReady:Qt,sidebarGoalRuntimeBySessionId:dn,sidebarSubagentRuntimeBySessionId:Gn}=MV({codexHistoryEvents:La,codexHistorySessions:St,connection:Tt,expandedProjectIds:wo,goalRuntime:Hr,locallyActiveCodexHistorySessionIds:I,pendingApproval:Ua,pinnedSessions:sr,projectSessionRowsByProjectId:Ni,rightChatHistoryEvents:B,runtimeIndexes:ta,selectedSession:wn,selectedSessionId:xe,serverId:st?.server.id,sessionEvents:Io,setCodexHistorySessions:$a,sidebarSessions:Ga,subagentRuntime:Ki,visibleChatRows:Oi,visibleProjectRows:Hi}),{dragItem:qt,pinnedPreviewKeys:Xa,startPinnedDrag:Bt,clearSidebarDrag:na,previewPinnedDrop:ja,commitPinnedDrop:da,commitPinnedPreviewDrop:lr}=vV({connection:Tt,appPreferences:pt,sessions:Ga,pinnedItems:Br,setAppPreferences:It,setCodexHistorySessions:$a,setSessions:gn,setError:Mt}),{commandProjectRows:Fr,contextWindowStatus:Zi,pinnedRows:ms,sidebarWorkspaceAppIds:Yo}=LK({activeProvider:Eo,contextCompaction:xo.contextCompaction,contextUsage:Ao,pinnedItems:Br,pinnedPreviewKeys:Xa??[],pinnedProjects:Oo,projectRows:ya,visibleProjectRows:Hi}),Jo=!!(rt&&(Le==="chat"||Le==="labs")&&(it||ae&&(se==="changes"||se==="goal"))),{workspaceStates:wr,workspaceBusy:cr,diffBusy:Kr,visibleWorkspaceState:Nn,visibleWorkspaceDiff:Wi,rememberWorkspaceState:Fs,refreshWorkspace:_d,refreshWorkspaceDiff:Sa,setWorkspaceBusy:Zn}=VG({connection:Tt,activeWorkspaceAppId:rt,view:Le,shouldLoadWorkspaceDiff:Jo,sidebarWorkspaceAppIds:Yo,setError:Mt});Se.current=Fs;const sn=b.useCallback((yn=rt)=>!yn||yn!==rt||!Jo?Promise.resolve(null):Sa(yn),[Sa,Jo,rt]),Yi=b.useCallback(async(yn={})=>{!rt||!Jo||await Sa(rt,yn)},[Sa,Jo,rt]),_r=!1,Zc=!!(wn?.provider==="codex"&&wn.cwd&&!xi(wn.workspaceKind)),Ji=!!(Nn&&!Nn.initialized&&Go!=="local_project"&&Eo!=="codex"&&!Zc&&!Or),kd=Go==="local_project"&&!!an?.sandboxTemplate?.detected&&!an?.linkedOpenPondApp?.appId,[Wc,ps]=b.useState(null),[hs,Yc]=b.useState(null),{projectTarget:wl,workspaceTarget:Jc}=jK({accountPending:So,accountSignedOut:br,activeWorkspaceLocation:Nr,bootstrap:st,busy:q,cloudLinked:vr,selectedCloudProject:Vn,selectedProject:an,selectedSession:wn,pendingWorkspaceTarget:Wc,workspaceStates:wr,workspaceBusy:cr});return b.useEffect(()=>{ps(null)},[Vn?.id,an?.id,wn?.id]),{composerDraftStore:e,appDispatch:t,pendingTerminalCommand:i,setPendingTerminalCommand:l,terminalTabs:u,setTerminalTabs:m,trainingDetailTasksetId:g,setTrainingDetailTasksetId:p,mentionedAppId:S,setMentionedAppId:x,cloudSetupDialog:C,setCloudSetupDialog:w,rightPanelTabRequest:E,setRightPanelTabRequest:j,workspaceDiffPanelViewState:U,setWorkspaceDiffPanelViewState:D,rightChatHistoryEvents:B,setRightChatHistoryEvents:K,locallyActiveCodexHistorySessionIds:I,setCodexHistoryTurnLocallyActive:N,mainComposerFocusRequestId:z,labSuggestionsRequestId:ne,setLabSuggestionsRequestId:ce,draftSubagentDelegationMode:Y,setDraftSubagentDelegationMode:ue,confirmProjectAction:qe,projectConfirmDialog:$,resolveProjectConfirmDialog:be,query:ie,searchOpen:fe,archivedChatsOpen:te,sectionMenuOpen:R,projectsExpanded:L,cloudProjectsExpanded:Q,sidebarOpen:je,view:Le,selectedAppId:de,selectedProjectId:He,selectedSessionId:xe,draftProvider:Ke,draftModel:Ue,codexPermissionMode:ot,codexReasoningEffort:$e,openPondCommandAccessMode:Me,busy:q,diffPanelOpen:ae,diffPanelExpanded:H,rightPanelMode:se,rightChatPanels:we,terminalOpen:ze,settingsSection:Ye,newProjectDialogOpen:Ct,newProjectMode:yt,newProjectName:Et,newProjectPath:gt,newProjectBusy:Be,commitDialogOpen:it,commitMessage:y,commitIncludeUnstaged:Z,commitNextStep:le,commitDraft:Pe,branchDialogOpen:V,branchDialogName:he,toast:A,error:W,labDetailNavigation:Ce,setQuery:ye,setSearchOpen:Te,setArchivedChatsOpen:De,setSectionMenuOpen:Ne,setProjectsExpanded:nt,setCloudProjectsExpanded:Qe,setChatRowsVisibleCount:Xe,setSidebarOpen:at,setView:vt,setSelectedAppId:ct,setSelectedProjectId:pn,setSelectedSessionId:hn,setPrompt:Dt,setDraftProvider:Sn,setDraftModel:Xt,setDiffPanelOpen:vn,setDiffPanelExpanded:xn,setRightPanelMode:sa,setRightChatPanels:Qn,setTerminalOpen:Lt,setSyncingWorkspaceAppId:en,setSettingsSection:kt,setNewProjectDialogOpen:On,setNewProjectMode:_a,setNewProjectName:la,setNewProjectPath:kn,setNewProjectBusy:un,setCommitDialogOpen:ea,setCommitMessage:Ln,setCommitIncludeUnstaged:ba,setCommitNextStep:ka,setCommitDraft:ca,setBranchDialogOpen:tn,setBranchDialogName:Rt,setError:Mt,showToast:oe,appPreferences:pt,applyBootstrapPayload:dt,bootstrap:st,connection:Tt,events:En,sessions:bo,startup:wt,setAppPreferences:It,setCodexHistorySessions:$a,setEvents:qo,setSessions:gn,insights:vo,training:Da,pinnedCollapsed:Kn,projectsCollapsed:Bo,cloudProjectsCollapsed:nr,chatsCollapsed:Ho,sidebarWidth:pr,sidebarResizing:To,diffPanelWidth:hr,diffPanelResizing:ar,togglePinnedCollapsed:gr,toggleProjectsCollapsed:Fo,toggleCloudProjectsCollapsed:Ko,toggleChatsCollapsed:Cn,startSidebarResize:io,startDiffPanelResize:jo,revealProjectsSection:Xn,cloudProjectById:Va,localProjectById:Vo,selectedApp:Mn,selectedCloudProject:Vn,selectedProject:an,selectedProjectLinkedApp:yo,selectedProjectLinkedOpenPondApp:Tn,selectedSession:wn,sidebarSessions:Ga,runtimeIndexes:ta,chatMentionApps:Za,connectedAppMentions:zn,pendingApproval:Ua,codexHistoryEvents:La,setCodexHistoryEvents:qa,account:so,accountPending:So,accountSignedOut:br,activeModel:lo,activeProvider:Eo,activeWorkspaceAppId:or,activeWorkspaceId:Pr,activeWorkspaceKind:Go,activeWorkspaceLocation:Nr,appDefaults:xo,selectedSessionProjectId:yr,startMessage:zr,workspaceName:$r,accountScopeKey:Sr,teamChatOrganization:Dr,teamChatTeamId:rn,teamChat:Co,publishTeamProfileAgent:ki,communities:Mo,communitySidebar:Ii,communityView:rr,teamAiThreadId:Po,toggleTeamAiSidebar:Ai,selectedProjectConfirmedCloudProject:re,activeOpenPondCommandAccessMode:Je,profileWorkspaceId:tt,viewWorkspaceAppId:rt,viewWorkspaceId:bn,viewWorkspaceKind:Pn,viewWorkspaceName:on,openPondActionCatalog:co,selectedActionCatalog:uo,expandedProjectIds:wo,expandProject:Wa,toggleProjectExpanded:Ur,setExpandedProjectIds:Zo,cloudBusy:ir,cloudError:oi,cloudLoading:ri,cloudWorkItemDetail:_o,cloudWorkItems:Ri,selectedCloudWorkItem:Ut,selectedCloudWorkItemId:Vt,selectedCloudWorkItemLocalProject:ko,applyCloudWorkItemPatchLocally:Ba,cancelCloudWorkItemCreatePipeline:Ra,cancelCloudWorkItemTask:Ya,createCloudWork:is,handleCloudWorkItemBackground:Lr,openCloudHome:Ti,selectCloudWorkItem:ss,sendCloudWorkItemMessage:ji,setCloudError:Ei,changeCodexPermissionMode:qr,changeCodexReasoningEffort:Us,changeOpenPondCommandAccessMode:Ls,resolveApproval:ls,beginNewChat:Ta,advanceTrainingModelChatAfterTurn:Bi,beginNewChatWithTrainingModel:cs,bindTrainingModelChatSession:Mi,dismissTrainingChatHandoff:Bs,trainingChatHandoff:Pi,prepareTrainingModelChatTurn:xl,selectTrainingChatTaskForComposer:No,chatHistoryLoadStates:fo,loadMoreSelectedChatHistory:si,selectedPagedSessionEvents:va,activeSessions:Ja,pinnedSessions:sr,projectRows:ya,localProjectRows:li,visibleProjectRows:Hi,cloudProjectRows:us,cloudWorkItemsByProjectId:Hs,projectSessionRowsByProjectId:Ni,childSessionRowsByParentId:Cl,sidebarProjectIdBySessionId:ds,chatRows:Fi,visibleChatRows:Oi,sessionEvents:Io,chatMessages:ci,goalRuntime:Hr,subagentRuntime:Ki,clearPendingChatUserMessage:Vi,pendingChatUserMessages:Gi,recordPendingChatUserMessage:fs,visibleChatMessages:Cr,activeTerminalScope:mo,terminalSummaries:ui,runningSessionIds:_e,selectedSessionRunning:et,selectedSteerAutoDispatchBlocked:Gt,selectedSteerAutoDispatchReady:Qt,sidebarGoalRuntimeBySessionId:dn,sidebarSubagentRuntimeBySessionId:Gn,dragItem:qt,startPinnedDrag:Bt,clearSidebarDrag:na,previewPinnedDrop:ja,commitPinnedDrop:da,commitPinnedPreviewDrop:lr,commandProjectRows:Fr,contextWindowStatus:Zi,pinnedRows:ms,workspaceStates:wr,workspaceBusy:cr,diffBusy:Kr,visibleWorkspaceState:Nn,visibleWorkspaceDiff:Wi,rememberWorkspaceState:Fs,refreshWorkspace:_d,refreshWorkspaceDiff:Sa,setWorkspaceBusy:Zn,refreshWorkspaceDiffWhenNeeded:sn,refreshVisibleWorkspaceDiff:Yi,managedWorkspace:_r,canSyncActiveWorkspace:Ji,canPublishOpenPondProject:kd,pendingWorkspaceTarget:Wc,setPendingWorkspaceTarget:ps,pendingSidebarWorkspaceTarget:hs,setPendingSidebarWorkspaceTarget:Yc,projectTarget:wl,workspaceTarget:Jc}}function KZ({account:e,browserConversationId:t,cloudProjectById:n,cloudProjects:o,diffPanelOpen:i,rightPanelMode:l,selectedCloudWorkItem:u,selectedProjectId:m,setCloudError:g,setDiffPanelOpen:p,setNewProjectDialogOpen:S,setNewProjectMode:x,setNewProjectName:C,setRightPanelMode:w}){const E=b.useCallback(()=>{w("changes"),p(!0)},[p,w]),j=b.useCallback(()=>{if(i&&l==="changes"){p(!1);return}E()},[i,l,p,E]),U=b.useCallback(()=>{w("browser"),p(!0)},[p,w]),D=b.useCallback(()=>{w("goal"),p(!0)},[p,w]),B=b.useCallback((N,z)=>{Hv({conversationId:t,href:N,explicitFile:z?.explicitFile,newTab:z?.newTab}).then(G=>{G&&U()})},[t,U]),K=b.useCallback(()=>{x("cloud"),C(""),S(!0)},[S,x,C]),I=b.useCallback(N=>{const z=n.get(N);if(!z){g("Select a Cloud Project before setup.");return}B(Cb({accountBaseUrl:e?.baseUrl??e?.activeProfile?.baseUrl??null,teamId:z.teamId,projectId:z.id,projectName:z.name,baseBranch:z.defaultBranch,source:"openpond-app"}),{newTab:!0})},[e,n,B,g]);return{createCloudEnvironmentFromSidebar:b.useCallback(()=>{const N=m?.startsWith("cloud:")?m.slice(6):u?.projectId??o[0]?.id??null;if(N){I(N);return}K()},[o,K,u,m,I]),openCloudProjectDialog:K,openUrlInBrowserPanel:B,showBrowserPanel:U,showChangesPanel:E,showGoalSidebarTab:D,toggleChangesPanel:j,setupCloudProjectFromCloudView:I}}function VZ(e){const t=e.requestConversationId.trim();return t?t===e.currentConversationId?{reveal:!0,sessionIdToOpen:null}:new Set(e.sessionIds).has(t)?{reveal:!0,sessionIdToOpen:t}:{reveal:!1,sessionIdToOpen:null}:{reveal:!1,sessionIdToOpen:null}}function GZ({browserConversationId:e,sessionIds:t,onOpenSession:n,onShowBrowserPanel:o}){b.useEffect(()=>window.openpond?.browser?.onRevealRequest?.(l=>{const u=VZ({currentConversationId:e,requestConversationId:l.conversationId,sessionIds:t});u.reveal&&(u.sessionIdToOpen&&n(u.sessionIdToOpen),o())}),[e,n,o,t])}function ZZ({cloudProjects:e,selectedCloudProject:t,selectedProject:n}){const o=n?.linkedSandboxProject??null,i=e?ti(n,e):null,l=t?.id??i?.id??(e?null:o?.projectId??null),u=t?.teamId??i?.teamId??(e?null:o?.teamId??null);return!l||!u?{kind:"missing_cloud_project",message:"Upload/sync this Project to Cloud before using Hybrid."}:{kind:"ready",cloudProjectId:l,cloudTeamId:u,cwd:n?.workspacePath??null,localProjectId:n?.id??null,workspaceName:t?.name??i?.name??o?.projectName??n?.name??"Hybrid workspace"}}function WZ({modelRef:e,provider:t,target:n,title:o}){return{provider:t,...e?{modelRef:e}:{},appId:null,appName:null,workspaceKind:"sandbox",workspaceId:null,workspaceName:n.workspaceName,localProjectId:n.localProjectId,cloudProjectId:n.cloudProjectId,cloudTeamId:n.cloudTeamId,metadata:OA(),cwd:n.cwd,title:o}}function DY(e){return e==="owner"?"Owner":e==="admin"?"Admin":"Member"}function Qm(e){return e?.role==="owner"||e?.role==="admin"}function UY(e){const t=ep(e.organizations,e.defaultTeamId),n=Qm(t),o=e.localProject??null;if(!o)return YZ("Open a local project to set up an Agent.");const i=JZ(o,e.projects),l=XZ(o,i,e.agents),u=!!o.sandboxTemplate?.detected,m=t&&!n?"Ask an owner or admin to connect this project.":null;return u?i?QZ(o,i)?Bf({state:"needs_sync",actionLabel:"Sync Project",project:i,agent:l,canManage:n,actionBlockedReason:m}):l?{state:"ready",actionLabel:"Run Agent",canAct:!0,reason:null,project:i,agent:l}:Bf({state:"needs_agent",actionLabel:"Create Agent",project:i,agent:null,canManage:n,actionBlockedReason:m}):Bf({state:"needs_project",actionLabel:"Connect Project",project:null,agent:null,canManage:n,actionBlockedReason:m}):Bf({state:"missing_config",actionLabel:"Add Agent config",project:i,agent:l,canManage:n,actionBlockedReason:m})}function Bf(e){return e.canManage?{state:e.state,actionLabel:e.actionLabel,canAct:!0,reason:null,project:e.project,agent:e.agent}:{state:"blocked",actionLabel:"Ask admin",canAct:!1,reason:e.actionBlockedReason,project:e.project,agent:e.agent}}function YZ(e){return{state:"blocked",actionLabel:"Ask admin",canAct:!1,reason:e,project:null,agent:null}}function ep(e,t){if(e.length===0)return null;const n=t?.trim()??"";if(n){const o=e.find(i=>i.teamId===n);if(o)return o}return e.length===1?e[0]??null:e.find(o=>o.role==="owner")??e.find(o=>o.role==="admin")??e[0]??null}function JZ(e,t){const n=e.linkedSandboxProject;return n?.projectId?t.find(o=>o.id===n.projectId)??null:null}function XZ(e,t,n){if(!t)return null;const o=e.preferredSandboxAgentId;if(o){const i=n.find(l=>l.id===o&&l.projectId===t.id);if(i)return i}return n.find(i=>i.projectId===t.id)??null}function QZ(e,t){if(t.sandboxManifestError||!t.sandboxManifestSyncedAt||!t.sandboxManifestHash)return!0;if(e.sandboxTemplate?.manifestHash&&t.sandboxManifestHash)return e.sandboxTemplate.manifestHash!==t.sandboxManifestHash;if(e.linkedSandboxProject?.manifestHash&&t.sandboxManifestHash)return e.linkedSandboxProject.manifestHash!==t.sandboxManifestHash;const n=e.sandboxTemplate?.manifestPath;return n&&t.sandboxManifestPath?!n.endsWith(t.sandboxManifestPath):!1}function eW({model:e,provider:t,providerSettings:n}){return{model:Ev(t,e,n),modelRef:pi(t,e,n)}}function tW(e,t){return e.some(n=>n.id===t.id)?e:[...e,t]}function nW(e,t){const n=new Date().toISOString(),o=`codex_history_optimistic_${n}_${Math.random().toString(36).slice(2,8)}`;return{id:o,sessionId:e,turnId:`${o}_turn`,name:"turn.started",timestamp:n,source:"chat_action",args:{prompt:t},status:"started"}}function aW(e,t){return{id:`${e.id}_failed`,sessionId:e.sessionId,turnId:e.turnId,name:"turn.failed",timestamp:new Date().toISOString(),source:"server",status:"failed",error:t instanceof Error?t.message:String(t)}}function Pw({action:e,prompt:t,runPayload:n,sessionId:o}){const i=new Date().toISOString(),l=`openpond_action_${n.run.id}`,u=n.run.status==="failed"?"failed":n.run.status==="succeeded"?"completed":"started";return[{id:`${l}_user`,sessionId:o,turnId:l,name:"turn.started",timestamp:i,source:"chat_action",args:{prompt:t}},{id:`${l}_result`,sessionId:o,turnId:l,name:"workspace_action_result",timestamp:n.run.updatedAt??i,source:"chat_action",action:"sandbox_run_action",appId:null,status:u,output:u==="completed"?`Ran ${e.label??e.name??e.id}`:`Started ${e.label??e.name??e.id}`,data:{openPondActionRun:!0,action:{name:e.id,label:e.label??e.name??e.id,implementation:e.implementation},agent:n.agent,run:n.run,sandbox:n.sandbox??null,actionSummary:n.run.actionSummary??null,responseSummary:n.run.responseSummary??null,traceSummary:n.run.traceSummary??null,evalSummary:n.run.evalSummary??null,sourceSummary:n.run.sourceSummary??null}}]}function oW({applyBootstrapPayload:e,connection:t,codexPermissionMode:n,codexReasoningEffort:o,openPondCommandAccessMode:i,draftModel:l,draftProvider:u,expandProject:m,ensureCloudSessionReady:g,getPrompt:p,bootstrap:S,chatMessages:x,apps:C,connectedAppMentions:w,mentionedAppId:E,refreshWorkspace:j,refreshWorkspaceDiff:U,selectedApp:D,selectedActionCatalog:B,openPondActionCatalog:K,cloudProjects:I,accountScopeKey:O,selectedCloudProject:N,selectedProject:z,selectedProjectLinkedOpenPondApp:G,selectedSession:ne,workspaceTarget:ce,subagentDelegationMode:Y,setDraftModel:ue,setDraftProvider:Se,setError:me,setPrompt:qe,setMentionedAppId:$,setCodexHistoryEvents:be,setCodexHistorySessions:ie,onCodexHistoryTurnActivityChange:fe,onCodexHistoryTurnPayload:te,onPendingUserMessage:R,onClearPendingUserMessage:L,setEvents:Q,setSelectedAppId:Ae,setSelectedProjectId:je,setSelectedSessionId:Le,setSessions:de,setView:He,setWorkspaceBusy:xe}){const Ke=b.useRef(new Set),Ue=S?.providers??null;function ot(V,he){return V==="codex"?void 0:he}function $e(V){return!!(V&&V.provider!=="codex"&&(V.workspaceKind==="local_project"&&V.cwd?.trim()||(V.workspaceKind==="sandbox"||V.workspaceKind==="sandbox_template"||V.workspaceKind==="sandbox_app")&&V.workspaceId))}function Me(V){Se(V),ue(he=>as(V,he,Ue)),He("chat")}async function q(V,he){return(xR(he,O)??await ey({teamId:he,accountKey:O,fetchAgents:async Ce=>(await ge.listSandboxAgents(t,{teamId:Ce})).agents})).find(Ce=>Ce.projectId===V)??null}async function ae(){if(!t)throw new Error("OpenPond App server is not connected.");if(S?.account.state!=="signed_in")throw new Error("Add an OpenPond account before syncing a Project to Cloud.");const V=await ge.organizations(t),he=ep(V.organizations.map(Zm).filter(A=>!!A).filter(A=>A.status==="active"),S?.preferences.defaultTeamId??null);if(!he)throw new Error("Add an OpenPond account before syncing a Project to Cloud.");if(!Qm(he))throw new Error(`You need owner or admin access to create projects in ${he.displayName}.`);return he}async function H(V){if(!t)return!1;const he=z;if(!he)throw new Error("Select a local Project before using /sync-cloud.");const A=await ae(),W=he.linkedSandboxProject?.defaultBranch?.trim()||"main",Ce=Wt("local",he.id),ye=ti(he,I),Te=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",jm,Ue),openPondCommandAccessMode:ot("openpond",i),appId:null,appName:null,workspaceKind:"local_project",workspaceId:he.id,workspaceName:he.name,localProjectId:he.id,cloudProjectId:ye?.id??null,cloudTeamId:ye?.teamId??null,cwd:he.workspacePath,title:`Sync ${he.name} to Cloud`});de(De=>[Te,...De]),V.onSessionCreated?.(Te),V.selectSession&&(Le(Te.id),je(Ce),Ae(null),He("chat"),m(Ce)),V.clearPromptForTurn(),xe(!0);try{const De=await ge.uploadLocalProjectCloudSource(t,he.id,{teamId:A.teamId,projectName:he.name,branch:W,chatSessionId:Te.id,displayPrompt:V.displayPrompt});return e(De.bootstrap),m(Ce),m(Wt("cloud",De.project.id)),!0}catch(De){const Ne=await ge.bootstrap(t).catch(()=>null);throw Ne&&e(Ne),De}finally{xe(!1)}}async function se(V){if(!t||V.providerForTurn==="codex"||V.selectedSessionForTurn?.provider==="codex")return!1;let he=$e(V.selectedSessionForTurn)?V.selectedSessionForTurn:null;if(!he&&V.selectedSessionForTurn)throw new Error("Select a project to use this.");if(!he)if(N){const W=Wt("cloud",N.id),Ce=V.providerForTurn;he=await ge.createSession(t,{provider:Ce,modelRef:pi(Ce,V.modelForTurnValue,Ue),openPondCommandAccessMode:ot(Ce,V.openPondCommandAccessModeForTurn),appId:null,appName:null,workspaceKind:"sandbox",workspaceId:N.id,workspaceName:N.name,localProjectId:null,cloudProjectId:N.id,cloudTeamId:N.teamId,cwd:null,title:V.command.slice(0,64)}),de(ye=>[he,...ye]),V.onSessionCreated?.(he),V.selectSession&&(Le(he.id),je(W),Ae(null),He("chat"),m(W))}else{const W=z;if(!W)throw new Error("Select a project to use this.");const Ce=ti(W,I),ye=Wt("local",W.id),Te=V.providerForTurn;he=await ge.createSession(t,{provider:Te,modelRef:pi(Te,V.modelForTurnValue,Ue),openPondCommandAccessMode:ot(Te,V.openPondCommandAccessModeForTurn),appId:null,appName:null,workspaceKind:"local_project",workspaceId:W.id,workspaceName:W.name,localProjectId:W.id,cloudProjectId:Ce?.id??null,cloudTeamId:Ce?.teamId??null,cwd:W.workspacePath,title:V.command.slice(0,64)}),de(De=>[he,...De]),V.onSessionCreated?.(he),V.selectSession&&(Le(he.id),je(ye),Ae(null),He("chat"),m(ye))}if(!he)throw new Error("Select a project to use this.");V.clearPromptForTurn();const A=await ge.runSessionCommand(t,he.id,{command:V.command,cwd:he.cwd});return de(W=>Hu(W,A.session)),Q(W=>ql(W,A.events)),!0}async function we(V=[],he=null,A,W={}){const Ce=A??p();let ye=Ce.trim()||(V.length>0?"Please review the attached files.":"");if(!t||!ye)return!1;const Te=W.displayPrompt?.trim()||ye,De=W.provider??u,Ne=W.model??l,nt=W.openPondCommandAccessMode??i,Qe=W.session!==void 0,Xe=Qe?W.session??null:ne,at=Qe?null:D,vt=Qe?null:z,ct=Qe?null:N,pn=Qe?null:G,hn=!Qe&&ce==="hybrid",Dt=W.selectSession??!0,Sn=W.chatMessages??x,Xt=W.session!==void 0?null:E,Ft=W.clearPrompt===void 0?()=>{qe(""),$(null)}:W.clearPrompt,za=he?null:e5(ye,B),Nt=he??za?.action??null,vn=za?.prompt||ye,xn=Nt?null:v5(ye),sa=Nt||xn?null:Hm(ye),Qn=W.usageAttribution??(sa?{surface:"chat",workflowKind:"slash_command",commandName:`/${sa.command}`,commandSource:"prompt_parse"}:void 0);me(null);let Lt=null,en=null;try{if(xn&&De!=="codex"&&Xe?.provider!=="codex"){if(V.length>0)throw new Error("Direct commands do not accept attachments.");return await se({command:xn.command,clearPromptForTurn:Ft,modelForTurnValue:Ne,onSessionCreated:W.onSessionCreated,openPondCommandAccessModeForTurn:nt,providerForTurn:De,selectedSessionForTurn:Xe,selectSession:Dt})}if(!Qe&&sa?.command==="sync-cloud")return await H({clearPromptForTurn:Ft,displayPrompt:Te,onSessionCreated:W.onSessionCreated,selectSession:Dt});if(Nt){const Rt=PG(Nt);if(Rt){let st=Xe;if(!st||st.cloudProjectId!==Rt.projectId){st=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",Ne,Ue),openPondCommandAccessMode:ot("openpond",nt),appId:null,appName:null,workspaceKind:"sandbox",workspaceId:Rt.projectId,workspaceName:Rt.projectName??Rt.agentName,localProjectId:null,cloudProjectId:Rt.projectId,cloudTeamId:Rt.teamId,cwd:null,title:vn.slice(0,64)}),de(Fn=>[st,...Fn]),W.onSessionCreated?.(st),Dt&&Le(st.id);const En=Wt("cloud",Rt.projectId);Dt&&je(En),Dt&&m(En)}const St=await ge.runSandboxAgent(t,Rt.agentId,DG({agent:Rt,attachments:V,displayPrompt:Te,prompt:vn})),Tt=await ge.bootstrap(t);return e(Tt),Ft(),Q(En=>ql(En,Pw({action:Nt,prompt:Te,runPayload:St,sessionId:st.id}))),!0}const Kt=OG(Nt);if(Kt){let st=Xe;(!st||st.provider!=="openpond")&&(st=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",Ne,Ue),openPondCommandAccessMode:ot("openpond",nt),appId:null,appName:null,workspaceId:null,workspaceName:"OpenPond profile",localProjectId:null,cloudProjectId:null,cloudTeamId:null,cwd:null,title:vn.slice(0,64)}),de(Tt=>[st,...Tt]),W.onSessionCreated?.(st),Dt&&Le(st.id)),await ge.runProfileAction(t,zG({action:Kt,attachments:V,displayPrompt:Te,prompt:vn,sessionId:st.id}));const St=await ge.bootstrap(t);return e(St),Ft(),!0}const Ot=wR({cloudProjects:I,selectedCloudProject:N,selectedProject:z});if(!Ot)throw new Error("Select a Project linked to an OpenPond Cloud Project before running an action.");let Mt=Xe;(!Mt||Mt.cloudProjectId!==Ot.id)&&(Mt=await ge.createSession(t,{provider:"openpond",modelRef:pi("openpond",Ne,Ue),openPondCommandAccessMode:ot("openpond",nt),appId:null,appName:null,workspaceKind:"sandbox",workspaceId:Ot.id,workspaceName:Ot.name,localProjectId:Ot.localProjectId,cloudProjectId:Ot.id,cloudTeamId:Ot.teamId,cwd:null,title:vn.slice(0,64)}),de(st=>[Mt,...st]),W.onSessionCreated?.(Mt),Dt&&(Le(Mt.id),je(Ot.selectionKey),m(Ot.selectionKey)));const oe=await q(Ot.id,Ot.teamId);if(!oe)throw new Error("No OpenPond Agent is available for this Project.");Ft();const pt=await ge.runSandboxAgent(t,oe.id,$G({action:Nt,attachments:V,displayPrompt:Te,prompt:vn,teamId:Ot.teamId})),dt=await ge.bootstrap(t);return e(dt),Q(st=>ql(st,Pw({action:Nt,prompt:Te,runPayload:pt,sessionId:Mt.id}))),!0}let kt=Xe;if(kt&&ia(kt.id)){Ft(),Lt=kt.id,Ke.current.add(Lt),fe?.(Lt,!0);const Rt=nW(kt.id,ye),Kt=Mt=>{(!Qe||ne?.id===kt.id)&&be(oe=>tW(oe,Mt)),W.onCodexHistoryOptimisticEvent?.(Mt)};Kt(Rt),ie(Mt=>Mt.map(oe=>oe.id===kt.id?{...oe,status:"active"}:oe));const Ot=await ge.sendCodexHistoryTurn(t,kt.id,{prompt:ye,attachments:V.length>0?V:void 0,model:Ev("codex",Ne,Ue),modelRef:pi("codex",Ne,Ue),...E1(n),codexPermissionMode:n,codexReasoningEffort:o}).catch(Mt=>{throw Kt(aW(Rt,Mt)),Mt});return(!Qe||ne?.id===kt.id)&&be(Ot.events),ie(Mt=>Hu(Mt,Ot.session)),te?.(Ot),!0}const _a=(Xt?C.find(Rt=>Rt.id===Xt&&GI(Ce,Rt)&&Rt.sandbox)??null:null)??UB(Ce,ZI(C)),la=s5(Ce,w).map(Rt=>Rt.ref);if(!kt){const Rt=pn?.appId??at?.id??null,Kt=pn?.appName??at?.name??null,Ot=ct,Mt=Qe?null:ti(vt,I),oe=hn?ZZ({cloudProjects:I,selectedCloudProject:Ot,selectedProject:vt}):null;if(oe?.kind==="missing_cloud_project")throw new Error(oe.message);const pt=oe?.kind==="ready",dt=pt?De:Ot?"openpond":De,st=pi(dt,Ne,Ue),St=ot(dt,nt);kt=await ge.createSession(t,pt?{...WZ({modelRef:st,provider:dt,target:oe,title:ye.slice(0,64)}),subagentDelegationMode:Y,...St?{openPondCommandAccessMode:St}:{}}:{provider:dt,modelRef:st,subagentDelegationMode:Y,...St?{openPondCommandAccessMode:St}:{},appId:Rt,appName:Kt,workspaceKind:Ot?"sandbox":vt?"local_project":at?"sandbox_app":void 0,workspaceId:vt?.id??(at?Rt:void 0),workspaceName:Ot?.name??vt?.name??Kt,localProjectId:vt?.id??null,cloudProjectId:Ot?.id??Mt?.id??null,cloudTeamId:Ot?.teamId??Mt?.teamId??null,cwd:vt?vt.workspacePath:null,title:ye.slice(0,64)}),de(Tt=>[kt,...Tt]),W.onSessionCreated?.(kt),Dt&&(Le(kt.id),Ot&&je(Wt("cloud",Ot.id)),kt.workspaceKind==="local_project"&&kt.workspaceId&&m(Wt("local",kt.workspaceId)),Ot&&m(Wt("cloud",Ot.id)))}if(xi(kt.workspaceKind)&&kt.provider!=="openpond"&&!os(kt))throw new Error("Cloud workspaces use OpenPond Chat. Switch to Local to use local providers.");if(xi(kt.workspaceKind)&&g)try{kt=await g(kt)}catch(Rt){const Kt=Rt instanceof Error?Rt.message:String(Rt);throw await ge.recordPreflightTurnFailure(t,kt.id,{prompt:ye,error:Kt,target:os(kt)?"hybrid_sandbox":"cloud_workspace"}).then(e).catch(()=>{}),Rt}const kn=sa,un=kn?(await Jn(async()=>{const{buildComposerCreateImproveRun:Rt}=await import("./create-pipeline-request-CoUS3TxW.js");return{buildComposerCreateImproveRun:Rt}},[],import.meta.url)).buildComposerCreateImproveRun({parsed:kn,prompt:ye,payload:S,session:kt,messages:Sn,attachments:V,apps:_a?[_a]:[]}):null;if(kn?.command==="edit"&&!un)throw new Error("Select an agent-backed chat before using /edit.");en=yV({afterMessageId:Sn.at(-1)?.id??null,attachments:V,content:ye,sessionId:kt.id}),Ft(),Lt=kt.id,Ke.current.add(Lt),R?.(en),de(Rt=>Rt.map(Kt=>Kt.id===Lt?{...Kt,status:"active"}:Kt));const ea=De,Ln=eW({provider:ea,model:Ne,providerSettings:Ue}),ba=pI(ea,Ln.model??Ne,Ue),ka=ea==="codex"?E1(n):{approvalPolicy:"on-request",sandbox:"workspace-write"};await ge.sendTurn(t,kt.id,{prompt:ye,metadata:W.turnMetadata,attachments:V.length>0?V:void 0,mentionedAppIds:_a?[_a.id]:void 0,mentionedConnectedApps:la.length>0?la:void 0,openPondActionCatalog:K.length>0?K:void 0,createImproveRun:un,usageAttribution:Qn,...Ln,...ka,codexPermissionMode:ea==="codex"?n:"default",codexReasoningEffort:ba?o:void 0});const ca=await ge.bootstrap(t);e(ca);const tn=kt.workspaceId??kt.appId;return tn&&kt.workspaceKind!=="sandbox"&&kt.workspaceKind!=="sandbox_template"&&j(tn,!1).then(Rt=>{Rt?.initialized&&U(tn)}),!0}catch(kt){return en&&L?.(en.sessionId,en.id),me(kt instanceof Error?kt.message:String(kt)),!1}finally{Lt&&Ke.current.delete(Lt),Lt&&ia(Lt)&&fe?.(Lt,!1),Lt&&(ia(Lt)?ie(kt=>kt.map(On=>On.id===Lt&&On.status==="active"?{...On,status:"idle"}:On)):de(kt=>kt.map(On=>On.id===Lt&&On.status==="active"?{...On,status:"idle"}:On)))}}async function ze(V){const he=Ke.current.values().next().value??null,A=V??ne?.id??he;if(!t||!A)return!1;if(me(null),ia(A))try{const W=await ge.interruptCodexHistoryTurn(t,A);if(!W.interrupted){if(W.reason==="no_active_openpond_turn"){const ye=await ge.codexHistoryThread(t,A,{tail:!0}),Te={...ye.session,status:"idle"};return ne?.id===A&&be(ye.events),ie(De=>Hu(De,Te)),me("OpenPond no longer has a live interrupt handle for this Codex history turn. The chat was marked idle so you can send again."),!0}return me("This Codex history turn is still starting. Try stopping it again in a moment."),!1}const Ce=await ge.codexHistoryThread(t,A,{tail:!0});return ne?.id===A&&be(Ce.events),ie(ye=>Hu(ye,Ce.session)),!0}catch(W){const Ce=W instanceof Error?W.message:String(W);return me(Ce==="Not found"?"OpenPond could not find this Codex history session, so it cannot interrupt it here.":Ce),!1}try{await ge.interruptTurn(t,A);const W=await ge.bootstrap(t);return e(W),!0}catch(W){return me(W instanceof Error?W.message:String(W)),!1}}async function Ye(V,he){if(!t){me("OpenPond App server is not connected.");return}me(null),await ge.applyCreateImproveAction(t,V.id,{...he,runId:V.id,expectedRevision:V.revision,actionId:`web:${he.type}:${crypto.randomUUID()}`});const A=await ge.bootstrap(t);e(A)}async function Ct(V){await Ye(V.run,{type:"approve_plan"})}async function yt(V){await Ye(V.run,{type:"cancel",reason:null})}async function Et(V,he){await Ye(V.run,{type:"revise_plan",revision:he})}async function gt(V,he,A){await Ye(V.run,{type:"answer_question",questionId:he,value:A})}async function Be(V){await Ye(V.run,{type:"pause"})}async function it(V){await Ye(V.run,{type:"resume"})}async function y(V,he){await Ye(V.run,{type:"open_pull_request",candidateId:he})}async function Z(V,he){await Ye(V.run,{type:"apply_candidate",candidateId:he})}async function le(V,he){await Ye(V.run,{type:"reject_candidate",candidateId:he,reason:null})}async function Pe(V,he){await Ye(V.run,{type:"reconcile_pull_request",candidateId:he})}return{answerCreateImproveQuestion:gt,approveCreateImproveRun:Ct,applyCreateImproveCandidate:Z,cancelCreateImproveRun:yt,changeDraftProvider:Me,openCreateImprovePullRequest:y,pauseCreateImproveRun:Be,reconcileCreateImprovePullRequest:Pe,rejectCreateImproveCandidate:le,resumeCreateImproveRun:it,reviseCreateImproveRun:Et,sendPrompt:we,stopTurn:ze}}async function rW({branch:e,connection:t,session:n}){if(!xi(n.workspaceKind))return{sandbox:null,session:n,status:"already_running"};const o=await ge.ensureCloudWorkspaceReady(t,n.id,{branch:e,surface:"desktop"});return{bootstrap:await ge.bootstrap(t),output:o.output,sandbox:null,session:o.session,status:o.status}}function iW(e){return os(e)?"Preparing Hybrid sandbox...":"Starting Cloud workspace..."}function sW(e,t){if(e==="already_running")return null;const n=os(t)?"Hybrid sandbox":"Cloud workspace";return e==="waited_for_creating"?`${n} is ready.`:e==="started"?`Started ${n}.`:e==="resumed"?`Resumed ${n}.`:e==="restored"?`Restored ${n}.`:`Recreated ${n}.`}function lW(e,t){return!e.cloudProjectId||!e.cloudTeamId?!0:t.some(n=>n.id===e.cloudProjectId&&n.teamId===e.cloudTeamId)}function cW({applyBootstrapPayload:e,cloudProjects:t,connection:n,localProjectById:o,selectedCloudProject:i,selectedProject:l,setWorkspaceBusy:u,showToast:m,visibleWorkspaceState:g}){return b.useCallback(async p=>{if(!n)throw new Error("OpenPond App server is not connected.");const S=l??(p.localProjectId?o.get(p.localProjectId)??null:null);if(p.cloudProjectId&&p.cloudTeamId&&!lW(p,t))throw new Error("This Cloud session belongs to a different OpenPond account. Sync or select a Project in the current account.");p.workspaceId||m(iW(p),"info"),u(!0);try{const x=await rW({branch:l?.linkedSandboxProject?.defaultBranch??i?.defaultBranch??g?.currentBranch??null,connection:n,localProject:S,session:p,source:os(p)?"openpond-app-hybrid-chat-preflight":"openpond-app-cloud-chat-preflight"});x.bootstrap&&e(x.bootstrap);const C=sW(x.status,p);return C&&m(C,"success"),x.session}finally{u(!1)}},[e,t,n,o,i,l,u,m,g?.currentBranch])}function uW(){return{diffPanelOpen:!1,diffPanelExpanded:!1,rightPanelMode:"changes",rightChatPanels:[]}}function dW(e){return e.keepOpen?fW():uW()}function fW(){return{diffPanelOpen:!0,diffPanelExpanded:!1,rightPanelMode:"home",rightChatPanels:[]}}function mW(e){return{diffPanelOpen:e.diffPanelOpen,diffPanelExpanded:e.diffPanelExpanded,rightPanelMode:e.rightPanelMode,rightChatPanels:e.rightChatPanels}}function Nw(e){return{...e,rightChatPanels:e.rightChatPanels.map(t=>({...t}))}}function pW(e,t){return e.diffPanelOpen!==t.diffPanelOpen||e.diffPanelExpanded!==t.diffPanelExpanded||e.rightPanelMode!==t.rightPanelMode||e.rightChatPanels.length!==t.rightChatPanels.length?!1:e.rightChatPanels.every((n,o)=>{const i=t.rightChatPanels[o];return!!(i&&n.id===i.id&&n.sessionId===i.sessionId&&n.prompt===i.prompt&&n.provider===i.provider&&n.model===i.model)})}function hW(e){return`${e.conversationId}\0${e.workspaceSourceKey||"none"}`}function gW(e){const{appDispatch:t,diffPanelExpanded:n,diffPanelOpen:o,rightChatPanels:i,rightPanelMode:l,selectedAppId:u,selectedCloudProject:m,selectedCloudWorkItem:g,selectedProjectId:p,selectedSession:S,selectedSessionId:x,setWorkspaceDiffPanelViewState:C,view:w,viewWorkspaceAppId:E,viewWorkspaceId:j,viewWorkspaceKind:U,workspaceDiffPanelViewState:D}=e,B=b.useRef(new Map),K=b.useRef(new Map),I=b.useRef(null),O=b.useRef(null),N=x??`draft:${p??u??m?.id??"general"}`,z=b.useMemo(()=>w==="cloud"&&g?.id?`cloud-work:${g.id}`:j?`${U??"workspace"}:${j}`:E?`app:${E}`:S?.cwd&&!xi(S.workspaceKind)?`cwd:${S.cwd}`:"none",[g?.id,S?.cwd,S?.workspaceKind,w,E,j,U]),G=hW({conversationId:N,workspaceSourceKey:z}),ne=b.useMemo(()=>mW({diffPanelExpanded:n,diffPanelOpen:o,rightChatPanels:i,rightPanelMode:l}),[n,o,i,l]);b.useEffect(()=>{const Y=I.current;Y&&B.current.set(Y,Nw(ne))},[N,ne]),b.useEffect(()=>{if(I.current===N)return;I.current=N;const ue=B.current.get(N)??dW({keepOpen:ne.diffPanelOpen});pW(ne,ue)||t({type:"patch",patch:Nw(ue)})},[N,ne]),b.useEffect(()=>{const Y=O.current;Y&&K.current.set(Y,Og(D))},[G,D]),b.useEffect(()=>{if(O.current===G)return;O.current=G;const ue=K.current.get(G)??aR();C(Se=>tw(Se,ue)?Se:Og(ue))},[G]);const ce=b.useCallback(Y=>{C(ue=>tw(ue,Y)?ue:Og(Y))},[]);return{browserConversationId:N,handleWorkspaceDiffPanelViewStateChange:ce}}function bW({account:e,accountPending:t,accountSignedOut:n,activeWorkspaceKind:o,activeWorkspaceLocation:i,appDispatch:l,applyBootstrapPayload:u,busy:m,cloudSetupDialog:g,cloudProjects:p,connection:S,defaultTeamId:x,expandProject:C,localProjectById:w,selectedCloudProject:E,selectedProject:j,selectedSession:U,selectedSessionProjectId:D,setCloudSetupDialog:B,setDiffPanelOpen:K,setError:I,setSessions:O,setWorkspaceBusy:N,showToast:z,visibleWorkspaceState:G,workspaceBusy:ne}){const ce=e?.baseUrl??e?.activeProfile?.baseUrl??null,Y=b.useCallback(async($,be)=>{if(S)try{const ie=await ge.previewLocalProjectCloudSource(S,$.id,{branch:be});B(fe=>!fe||fe.status!=="confirm"||fe.localProjectId!==$.id||fe.branch!==be?fe:{...fe,branch:ie.preview.branch,cloudProjectId:ie.preview.targetProjectId,preview:ie.preview,previewLoading:!1,previewError:null})}catch(ie){const fe=ie instanceof Error?ie.message:String(ie);B(te=>!te||te.status!=="confirm"||te.localProjectId!==$.id||te.branch!==be?te:{...te,preview:null,previewLoading:!1,previewError:fe})}},[S,B]),ue=b.useCallback(async()=>{const $=g;if(!$||$.status==="uploading")return;if($.projectKind==="cloud"){B(te=>te&&{...te,status:"ready",error:null});return}if(!S){B(te=>te&&{...te,status:"error",error:"OpenPond App server is not connected."});return}const be=$.localProjectId??"",ie=w.get(be);if(!ie){B(te=>te&&{...te,status:"error",error:"Project is no longer available."});return}N(!0);const fe=ti(ie,p);B(te=>te&&{...te,status:"uploading",error:null,previewLoading:!1});try{const te=await ge.organizations(S),R=ep(te.organizations.map(Zm).filter(He=>!!He).filter(He=>He.status==="active"),x);if(!R)throw new Error("Add an OpenPond account before creating a Cloud environment.");if(!Qm(R))throw new Error(`You need owner or admin access to create projects in ${R.displayName}.`);const L=$.branch||ie.linkedSandboxProject?.defaultBranch||"main",Q=Wt("local",ie.id),Ae=await ge.createSession(S,{provider:"openpond",appId:null,appName:null,workspaceKind:"local_project",workspaceId:ie.id,workspaceName:ie.name,localProjectId:ie.id,cloudProjectId:fe?.id??null,cloudTeamId:fe?.teamId??null,cwd:ie.workspacePath,title:`Sync ${ie.name} to Cloud`});O(He=>[Ae,...He]),l({type:"selectSession",sessionId:Ae.id,projectId:Q}),C(Q);const je=await ge.uploadLocalProjectCloudSource(S,ie.id,{teamId:R.teamId,projectName:ie.name,branch:L,chatSessionId:Ae.id,displayPrompt:`/sync-cloud ${ie.name}`});u(je.bootstrap),C(Q),C(Wt("cloud",je.project.id));const Le=Cb({accountBaseUrl:ce,teamId:je.project.teamId,projectId:je.project.id,projectName:je.project.name,baseBranch:je.upload.branch,localProjectId:ie.id,source:"openpond-app"}),de=IC({accountBaseUrl:ce,organizationSlug:je.project.organizationSlug,projectSlug:je.project.slug});B({status:"ready",localProjectId:ie.id,cloudProjectId:je.project.id,teamId:je.project.teamId,projectName:je.project.name,projectKind:"local",projectUrl:de,setupUrl:Le,branch:je.upload.branch,preview:$.preview??null,previewLoading:!1,previewError:null,upload:{branch:je.upload.branch,headCommit:je.upload.headCommit,fileCount:je.upload.fileCount,byteCount:je.upload.byteCount,skippedCount:je.upload.skippedCount,initializedEmptyProject:je.upload.initializedEmptyProject},error:null}),z("Source uploaded to OpenPond Git. Cloud setup link is ready.","success")}catch(te){const R=te instanceof Error?te.message:String(te),L=S?await ge.bootstrap(S).catch(()=>null):null;L&&u(L),I(R),B(Q=>Q&&{...Q,status:"error",error:R})}finally{N(!1)}},[ce,l,u,g,p,S,x,C,w,B,I,O,N,z]),Se=b.useCallback(($,be)=>{if(!S){z("OpenPond App server is not connected.","error");return}if(t){z("Checking OpenPond account. Try again in a moment.","info");return}if(n){z("Add an OpenPond account before using Cloud.","error");return}const ie=be||$.linkedSandboxProject?.defaultBranch||"main";B({status:"confirm",localProjectId:$.id,projectName:$.name,projectKind:"local",projectUrl:null,setupUrl:null,branch:ie,preview:null,previewLoading:!0,previewError:null,upload:null,error:null}),Y($,ie)},[t,n,S,Y,B,z]),me=b.useCallback(async $=>{if($===i||ne||m)return;if(I(null),$==="queue_cloud"){const fe=E??ti(j,p);if(!fe){if(j){Se(j,G?.currentBranch??null);return}z("Select a Project before queueing Cloud work.","error");return}z(`Next Cloud task will use ${fe.name}. Start the message with /goal-remote to queue it while this chat stays local.`,"info");return}if($==="upload_cloud"){if(!j){z("Select a local Project before uploading source.","error");return}Se(j,G?.currentBranch??null);return}if($==="local"){const fe=U?.localProjectId??j?.id??D??null,te=fe?w.get(fe)??null:null;if(!te){z("No linked local workspace for this Cloud chat.","error");return}if(xi(o)&&!window.confirm("Switch to Local? Cloud changes will stay in the hosted workspace until you preserve or export them."))return;const R=Wt("local",te.id);l({type:"selectProject",projectId:R}),C(R),K(!1),z(`Switched to Local: ${te.name}`,"info");return}if(!S){z("OpenPond App server is not connected.","error");return}if(t){z("Checking OpenPond account. Try again in a moment.","info");return}if(n){z("Add an OpenPond account before using Cloud.","error");return}if(E){B({status:"ready",cloudProjectId:E.id,teamId:E.teamId,projectName:E.name,projectKind:"cloud",projectUrl:IC({accountBaseUrl:ce,organizationSlug:E.organizationSlug,projectSlug:E.slug}),setupUrl:Cb({accountBaseUrl:ce,teamId:E.teamId,projectId:E.id,projectName:E.name,baseBranch:E.defaultBranch,source:"openpond-app"}),branch:E.defaultBranch??"main",preview:null,previewLoading:!1,previewError:null,upload:null,error:null});return}const be=j;if(!be){z("Select a Project before Cloud coding.","error");return}const ie=G?.currentBranch||be.linkedSandboxProject?.defaultBranch||"main";Se(be,ie)},[ce,t,n,o,i,l,m,S,p,C,w,Se,E,j,U,D,B,K,I,z,G?.currentBranch,ne]),qe=b.useCallback($=>{Tv($)&&Se($.project)},[Se]);return{changeWorkspaceTarget:me,moveProjectToCloud:qe,openCloudSetupForLocalProject:Se,startCloudSetupUpload:ue}}function vW(e){if(e.pendingWorkspaceTarget!=="queue_cloud"||e.actionSelected||e.promptOverrideProvided)return{kind:"not_queued"};if(e.attachmentCount>0)return{kind:"attachments_unsupported",message:"Queued Cloud work does not accept attachments yet. Add file context in the Cloud task thread."};const t=e.selectedCloudProjectId??e.selectedProjectCloudProjectId??null;if(!t)return{kind:"missing_cloud_project",message:"Upload/sync this Project to Cloud before queueing work."};const n=e.prompt.trim();return n?{kind:"ready",request:{projectId:t,prompt:n,select:!1,...e.selectedLocalProjectId?{localProjectId:e.selectedLocalProjectId}:{},...e.selectedLocalProjectName?{localProjectName:e.selectedLocalProjectName}:{},...e.selectedLocalWorkspacePath?{localWorkspacePath:e.selectedLocalWorkspacePath}:{},...e.selectedProjectCloudSourceRef?{sourceRef:e.selectedProjectCloudSourceRef}:{},...e.selectedProjectCloudBaseSha?{baseSha:e.selectedProjectCloudBaseSha}:{},requestedExecutionTarget:"queue_cloud"}}:{kind:"empty_prompt"}}function yW({advanceTrainingTurn:e,bindTrainingSession:t,composerDraftStore:n,createCloudWork:o,onSessionCreated:i,pendingWorkspaceTarget:l,prepareTrainingTurn:u,selectedCloudProjectId:m,selectedLocalProjectId:g,selectedLocalProjectName:p,selectedLocalWorkspacePath:S,selectedProjectCloudBaseSha:x,selectedProjectCloudProjectId:C,selectedProjectCloudSourceRef:w,sendPrompt:E,setMentionedAppId:j,setPendingWorkspaceTarget:U,setPrompt:D,showToast:B}){return b.useCallback(async(K=[],I=null,O,N={})=>{const z=O??n.getSnapshot(),G=u(z);if(G.active&&z.trim()&&!G.metadata)return B(G.error??"Load the selected generated Taskset question before sending, or close the generated-question handoff to write a normal prompt.","error"),!1;const ne=vW({pendingWorkspaceTarget:l,actionSelected:!!I,promptOverrideProvided:O!==void 0,attachmentCount:K.length,selectedCloudProjectId:m,selectedProjectCloudProjectId:C,selectedLocalProjectId:g,selectedLocalProjectName:p,selectedLocalWorkspacePath:S,selectedProjectCloudSourceRef:w,selectedProjectCloudBaseSha:x,prompt:z});if(ne.kind!=="not_queued"){if(ne.kind==="attachments_unsupported")return B(ne.message,"error"),!1;if(ne.kind==="missing_cloud_project")return B(ne.message,"error"),U(null),!1;if(ne.kind==="empty_prompt")return!1;const Y=await o(ne.request);return Y&&(N.preservePrompt||(D(""),j(null)),U(null)),Y}const ce=await E(K,I,O,{clearPrompt:N.preservePrompt?()=>{}:void 0,displayPrompt:N.displayPrompt,onSessionCreated:Y=>{i(Y),G.metadata&&t(Y.id)},turnMetadata:G.metadata??void 0});return ce&&G.metadata&&e(),ce},[e,t,n,o,i,l,u,m,g,p,S,x,C,w,E,j,U,D,B])}function SW({appDispatch:e,connection:t,sessions:n,setDiffPanelOpen:o,setRightPanelMode:i,setSessions:l,setView:u}){return b.useCallback(async m=>{if(!t)return;const g=n.find(x=>!x.archived&&x.workspaceKind==="sandbox"&&x.workspaceId===m.sandboxId);if(g){e({type:"selectSession",sessionId:g.id,appId:null,projectId:null}),i("changes"),o(!0),u("chat");return}const p=m.name??`Sandbox ${m.sandboxId.slice(0,8)}`,S=await ge.createSession(t,{provider:"openpond",appId:null,appName:null,workspaceKind:"sandbox",workspaceId:m.sandboxId,workspaceName:p,cwd:null,title:p});l(x=>[S,...x]),e({type:"selectSession",sessionId:S.id,appId:null,projectId:null}),i("changes"),o(!0),u("chat")},[e,t,n,o,i,l,u])}function xW({connection:e,defaultTeamId:t,sessions:n,selectedProjectId:o,confirmProjectAction:i,openExistingProjectDialog:l,applyBootstrapPayload:u,expandProject:m,revealProjectsSection:g,setExpandedProjectIds:p,setSelectedAppId:S,setSelectedProjectId:x,setSelectedSessionId:C,setError:w,setView:E,showToast:j}){function U(N){const z=Wt("local",N.id);S(null),x(z),C(null),E("chat"),g(),m(z)}async function D(N){if(!e)return!1;w(null);const z=N.trim();if(!z)return!1;try{const G=await ge.createLocalProject(e,{path:z});return u(G.bootstrap),U(G.project),j(G.created===!1?`Opened ${G.project.name}`:`Added ${G.project.name}`,"success"),!0}catch(G){return w(G instanceof Error?G.message:String(G)),j("Project folder could not be added","error"),!1}}async function B(){if(e){if(w(null),window.openpond?.selectFolder){const N=await window.openpond.selectFolder();if(N.canceled||!N.path)return;await D(N.path);return}l()}}async function K(N){if(!e)return!1;const z=N.trim();if(!z)return!1;w(null);try{const G=await ge.createLocalProject(e,{createNew:!0,name:z});return u(G.bootstrap),U(G.project),j(`Created ${G.project.name}`,"success"),!0}catch(G){return w(G instanceof Error?G.message:String(G)),j("Project could not be created","error"),!1}}async function I(N){if(!e)return!1;const z=N.trim();if(!z)return!1;w(null);try{const G=await ge.organizations(e),ne=ep(G.organizations.map(Zm).filter(me=>!!me).filter(me=>me.status==="active"),t);if(!ne)throw new Error("Add an OpenPond account before creating a Cloud Project.");if(!Qm(ne))throw new Error(`You need owner or admin access to create projects in ${ne.displayName}.`);const ce=`${oR(z)}-${Date.now().toString(36)}`;let Y=(await ge.upsertSandboxProject(e,{teamId:ne.teamId,name:z,sourceType:"internal_repo",normalizedSourceIdentity:ce,internalRepoPath:ce,defaultBranch:"main",sourceConfig:{sourceType:"internal_repo",sourceValue:ce},metadata:{source:"openpond-app-new-cloud-project"}})).project;Y=(await ge.uploadSandboxProjectSource(e,Y.id,{teamId:ne.teamId,branch:"main",commitMessage:"Initialize cloud project",entries:[{path:"README.md",type:"file",contentsBase64:xK(`# ${z}
|
|
182
182
|
|
|
183
183
|
Created in OpenPond Cloud.
|
|
184
184
|
`)}]})).project;const ue=await ge.bootstrap(e);u(ue);const Se=Wt("cloud",Y.id);return S(null),x(Se),C(null),E("chat"),g(),m(Se),j(`Created Cloud Project: ${Y.name}`,"success"),!0}catch(G){const ne=G instanceof Error?G.message:String(G);return w(ne),j(ne,"error"),!1}}async function O(N){if(!e)return;if($4(N)){const ce=`Archive ${N.project.name} in OpenPond Cloud?`;if(!(i?await i({title:"Archive Cloud Project",body:`${N.project.name} will be archived in OpenPond Cloud. Existing task history stays available through Cloud history.`,confirmLabel:"Archive project"}):window.confirm(ce)))return;w(null);try{await ge.archiveSandboxProject(e,N.project.id,{teamId:N.project.teamId}),u(await ge.bootstrap(e)),p(ue=>{const Se=new Set(ue);return Se.delete(N.id),Se}),o===N.id&&(x(null),C(null)),j(`Archived ${N.project.name}`,"success")}catch(ue){w(ue instanceof Error?ue.message:String(ue)),j("Cloud Project could not be archived","error")}return}if(!Tv(N))return;const z=N.project,G=`Remove ${z.name} from Projects? The folder will not be deleted.`;if(i?await i({title:"Remove Project",body:`${z.name} will be removed from the sidebar. The folder and files on disk will not be deleted.`,confirmLabel:"Remove project"}):window.confirm(G)){w(null);try{const ce=await ge.deleteLocalProject(e,z.id);u(ce),p(Y=>{const ue=new Set(Y);return ue.delete(N.id),ue}),o===N.id&&(x(null),C(Y=>{const ue=n.find(Se=>Se.id===Y);return ue?.workspaceKind==="local_project"&&ue.workspaceId===z.id?null:Y})),j(`Removed ${z.name}`,"success")}catch(ce){w(ce instanceof Error?ce.message:String(ce)),j("Project could not be removed","error")}}}return{addProjectFolder:B,addProjectFolderPath:D,createCloudProjectFromScratch:I,createProjectFromScratch:K,removeProject:O}}function CW({addProjectFolder:e,addProjectFolderPath:t,appDispatch:n,busy:o,cloudProjectById:i,createCloudProjectFromScratch:l,createProjectFromScratch:u,expandProject:m,localProjectById:g,newProjectBusy:p,newProjectMode:S,newProjectName:x,newProjectPath:C,projectTargetValue:w,setDiffPanelOpen:E,setDraftModel:j,setDraftProvider:U,setError:D,setNewProjectBusy:B,setNewProjectDialogOpen:K,setNewProjectName:I,setNewProjectPath:O,showToast:N,workspaceBusy:z}){const G=b.useCallback(ce=>{if(ce===w||o||z)return;if(D(null),ce==="action:add-local-project"){e();return}if(ce==="none"){n({type:"beginNewChat",appId:null}),E(!1),N("Started a chat without project files.","info");return}const Y=ce.indexOf(":"),ue=Y>=0?ce.slice(0,Y):"",Se=Y>=0?ce.slice(Y+1):"";if(ue==="local"){const me=g.get(Se);if(!me){N("Project is no longer available.","error");return}const qe=Wt("local",me.id);n({type:"selectProject",projectId:qe}),m(qe),E(!1),N(`Selected ${me.name}.`,"info");return}if(ue==="cloud"){const me=i.get(Se);if(!me){N("Cloud Project is no longer available.","error");return}const qe=Wt("cloud",me.id);n({type:"selectProject",projectId:qe}),m(qe),U("openpond"),j($=>as("openpond",$)),E(!1),N(`Selected Cloud Project: ${me.name}.`,"info")}},[e,n,o,i,m,g,w,E,j,U,D,N,z]),ne=b.useCallback(async()=>{const ce=x.trim(),Y=C.trim();if(!p&&!(S==="existing-local"?!Y:!ce)){B(!0);try{(S==="cloud"?await l(ce):S==="existing-local"?await t(Y):await u(ce))&&(K(!1),I(""),O(""))}finally{B(!1)}}},[t,l,u,p,S,x,C,B,K,I,O]);return{changeProjectTarget:G,submitNewProjectDialog:ne}}function wW(e){return{id:`right-chat-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,sessionId:e.sessionId,prompt:e.prompt??"",provider:e.provider,model:e.model}}function PR(e){return!!(e.parentSessionId&&e.subagentRunId)}function _W(e){const t=e.sessions.filter(PR);return{knownSessionIds:new Set(t.map(n=>n.id)),newSessions:t.filter(n=>!e.knownSessionIds.has(n.id))}}function kW(e,t){const n=new Set(e.map(i=>i.sessionId).filter(Boolean)),o=t.filter(PR).filter(i=>!n.has(i.id)).map(i=>({id:`right-subagent-${i.id}`,sessionId:i.id,prompt:"",provider:i.provider,model:i.modelRef?.modelId??""}));return o.length>0?[...e,...o]:e}const Ow=[];function IW(e,t){const n=t.trim();return e.id==="create"?`/create ${n}`:e.id==="edit"?`/edit ${n}`:e.id==="skill"?`/skill ${n}`:e.id==="submit-issue"?eA(n):`Goal: ${n}`}function AW(e){const{activeModel:t,activeProvider:n,applyRightCodexHistoryPayload:o,codexHistoryEvents:i,connectedAppMentions:l,connection:u,contextCompaction:m,insights:g,openLabSuggestions:p,locallyActiveCodexHistorySessionIds:S,openPondCommandAccessMode:x,pendingChatUserMessages:C,providerSettings:w,rightChatHistoryEvents:E,rightChatPanels:j,rightPanelMode:U,runtimeIndexes:D,runningSessionIds:B,selectedSession:K,selectedSessionId:I,sendPrompt:O,setDiffPanelOpen:N,setDraftModel:z,setDraftProvider:G,setError:ne,setRightChatHistoryEvents:ce,setRightChatPanels:Y,setRightPanelMode:ue,setRightPanelTabRequest:Se,setView:me,showChangesPanel:qe,showToast:$,sidebarSessions:be,startupReady:ie}=e,fe=b.useRef(null),te=b.useRef(new Map),R=b.useCallback($e=>{Se(Me=>({id:(Me?.id??0)+1,tab:$e})),qe()},[qe]),L=b.useCallback(($e=null,Me={})=>{const q=wW({sessionId:$e?.id??null,provider:$e?.provider??n,model:$e?.modelRef?.modelId??t,prompt:Me.prompt});return Y(ae=>$e?.id&&ae.some(H=>H.sessionId===$e.id)?ae:[...ae,q]),N(!0),ue("chat"),Me.preserveView||me("chat"),q.id},[t,n,N,Y,ue,me]);b.useEffect(()=>{if(!ie)return;const $e=fe.current;if(!$e){fe.current=new Set(be.filter(H=>!!(H.parentSessionId&&H.subagentRunId)).map(H=>H.id));return}const Me=_W({sessions:be,knownSessionIds:$e});fe.current=Me.knownSessionIds;for(const H of Me.newSessions)te.current.set(H.id,H);const q=K?.parentSessionId??K?.id??null;if(!q)return;const ae=[...te.current.values()].filter(H=>H.parentSessionId===q);if(ae.length!==0){for(const H of ae)te.current.delete(H.id);Y(H=>kW(H,ae)),N(!0),ue("chat")}},[K?.id,K?.parentSessionId,N,Y,ue,be,ie]);const Q=b.useCallback(()=>{if(j.length===0){L(null);return}N(!0),ue("chat"),me("chat")},[L,j.length,N,ue,me]),Ae=b.useCallback($e=>{const Me=j.length<=1&&j.some(ae=>ae.id===$e),q=()=>{Y(ae=>ae.filter(H=>H.id!==$e))};if(Me&&U==="chat"){if(R("files"),typeof window>"u"){q();return}window.requestAnimationFrame(q);return}q()},[j,U,Y,R]),je=b.useCallback(($e,Me)=>{Y(q=>q.map(ae=>ae.id===$e?{...ae,prompt:Me}:ae))},[Y]),Le=b.useCallback(($e,Me)=>{const q=j.find(ae=>ae.id===$e);q&&(G(q.provider),z(Me)),Y(ae=>ae.map(H=>H.id===$e?{...H,model:Me}:H))},[j,z,G,Y]),de=b.useCallback(($e,Me)=>{const q=j.find(H=>H.id===$e),ae=as(Me,q?.model,w);q&&(G(Me),z(ae)),Y(H=>H.map(se=>se.id===$e?{...se,provider:Me,model:as(Me,se.model,w)}:se))},[w,j,z,G,Y]),He=b.useMemo(()=>{const $e=new Set,Me=[];for(const q of j)!ia(q.sessionId)||!q.sessionId||$e.has(q.sessionId)||($e.add(q.sessionId),Me.push(q.sessionId));return Me.join(`
|