tide-commander 0.69.1 → 0.69.2
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/assets/main-BOFXGJQm.css +1 -0
- package/dist/assets/{main-CkwIbXCi.js → main-DkIjeEeR.js} +2 -2
- package/dist/index.html +2 -2
- package/dist/src/packages/server/services/runtime-events.js +46 -73
- package/dist/src/packages/server/websocket/listeners/runtime-listeners.js +2 -1
- package/package.json +1 -1
- package/dist/assets/main-CzElx71o.css +0 -1
|
@@ -145,7 +145,7 @@ Error generating stack: `+v.message+`
|
|
|
145
145
|
float h = normalize(vWorldPosition + offset).y;
|
|
146
146
|
gl_FragColor = vec4(mix(bottomColor, topColor, max(pow(max(h, 0.0), exponent), 0.0)), 1.0);
|
|
147
147
|
}
|
|
148
|
-
`,side:JN});a.add(new Pe(i,o)),a.add(new Qy(16777215,1));const l=n.fromScene(a,.04).texture;t.environment=l,n.dispose(),i.dispose(),o.dispose()}createInputCallbacks(){return{onAgentClick:(e,t)=>this.inputEventHandlers.handleAgentClick(e,t),onAgentDoubleClick:e=>this.inputEventHandlers.handleAgentDoubleClick(e),onAgentHover:(e,t)=>this.inputEventHandlers.handleAgentHover(e,t),onGroundClick:()=>this.inputEventHandlers.handleGroundClick(),onMoveCommand:(e,t)=>this.inputEventHandlers.handleMoveCommand(e,t),onSelectionBox:(e,t)=>this.inputEventHandlers.handleSelectionBox(e,t),onDrawStart:e=>this.drawingManager.startDrawing(e),onDrawMove:e=>this.drawingManager.updateDrawing(e),onDrawEnd:e=>this.drawingManager.finishDrawing(e),onAreaRightClick:e=>this.inputEventHandlers.handleAreaRightClick(e),onAreaClick:e=>this.inputEventHandlers.handleAreaClick(e),onAreaDoubleClick:e=>this.inputEventHandlers.handleAreaDoubleClick(e),onResizeStart:(e,t)=>this.drawingManager.startResize(e,t),onResizeMove:e=>this.drawingManager.updateResize(e),onResizeEnd:()=>this.drawingManager.finishResize(),onGroundClickOutsideArea:()=>this.inputEventHandlers.handleGroundClickOutsideArea(),onFolderIconClick:(e,t)=>{var n;t?U.openFileExplorerForAreaFolder(e,t):U.openFileExplorerForArea(e),(n=this.onFolderIconClickCallback)==null||n.call(this,e)},onBuildingClick:(e,t)=>this.inputEventHandlers.handleBuildingClick(e,t),onBuildingDoubleClick:e=>this.inputEventHandlers.handleBuildingDoubleClick(e),onBuildingHover:(e,t)=>this.inputEventHandlers.handleBuildingHover(e,t),onBuildingDragStart:()=>{},onBuildingDragMove:(e,t)=>this.buildingManager.setBuildingPosition(e,t),onBuildingDragEnd:(e,t)=>U.updateBuildingPosition(e,t),onContextMenu:(e,t,n)=>this.callbackManager.triggerContextMenu(e,t,n),onActivity:()=>this.renderLoop.markActivity(),onToggleTerminal:()=>U.toggleTerminal()}}setupInputHandlerHelpers(){this.inputHandler.setDrawingModeChecker(()=>this.drawingManager.isInDrawingMode()),this.inputHandler.setResizeHandlers(()=>this.drawingManager.getResizeHandles(),()=>this.drawingManager.isCurrentlyResizing()),this.inputHandler.setAreaAtPositionGetter(e=>this.drawingManager.getAreaAtPosition(e)),this.inputHandler.setFolderIconMeshesGetter(()=>this.drawingManager.getFolderIconMeshes()),this.inputHandler.setBuildingAtPositionGetter(e=>{const t=this.buildingManager.getBuildingAtPosition(e);return t?{id:t.id}:null}),this.inputHandler.setBuildingPositionsGetter(()=>{const e=new Map;for(const[t,n]of this.buildingManager.getBuildingMeshData())e.set(t,n.group.position.clone());return e})}setupEventListeners(e){window.addEventListener("resize",this.onWindowResize),this.resizeObserver=new ResizeObserver(()=>this.onWindowResize()),e.parentElement&&this.resizeObserver.observe(e.parentElement),e.addEventListener("webglcontextlost",this.onContextLost),e.addEventListener("webglcontextrestored",this.onContextRestored)}updateInputHandlerReferences(){this.inputHandler.setReferences(this.battlefield.getGround(),this.agentManager.getAgentMeshes())}updateBattlefield(e,t){t-this.lastTimeUpdate>6e4&&(this.battlefield.updateTimeOfDay(),this.lastTimeUpdate=t),this.battlefield.updateGalacticAnimation(e),this.battlefield.updateCloudAnimation(e)}updateAnimations(e){const t=this.movementAnimator.update(this.agentManager.getAgentMeshes(),e);return this.effectsManager.update(),this.buildingManager.update(e),t}updateProceduralAnimations(e){if(this.proceduralBodiesDirty){this.proceduralBodiesCache.clear();for(const[t,n]of this.agentManager.getAgentMeshes())if(this.proceduralAnimator.has(t)&&n.animations.size===0){const a=n.group.getObjectByName("characterBody");a&&this.proceduralBodiesCache.set(t,a)}this.proceduralBodiesDirty=!1}this.proceduralBodiesCache.size>0&&this.proceduralAnimator.update(e,this.proceduralBodiesCache)}updateIndicatorScales(e,t,n){for(const[,a]of t){const i=e.position.distanceTo(a.group.position),o=Math.max(.5,Math.min(2.5,i/15))*n,l=a.group.userData.isBoss===!0,c=a.group.getObjectByName("statusBar"),d=a.group.getObjectByName("nameLabelSprite");if(c){const p=typeof c.userData.baseIndicatorScale=="number"?c.userData.baseIndicatorScale:l?2:1.6,g=typeof c.userData.aspectRatio=="number"?c.userData.aspectRatio:2560/4096;c.scale.set(p*o,p*g*o,1)}if(d){const p=typeof d.userData.baseIndicatorScale=="number"?d.userData.baseIndicatorScale:l?1.5:1.25,y=Math.max(l?1.35:1.1,Math.min(l?1.65:1.35,p)),w=typeof d.userData.aspectRatio=="number"?d.userData.aspectRatio:1024/4096;d.scale.set(y*o,y*w*o,1)}const f=a.group.getObjectByName("combinedUI");if(f){const p=typeof f.userData.baseIndicatorScale=="number"?f.userData.baseIndicatorScale:l?3:2.4,g=typeof f.userData.aspectRatio=="number"?f.userData.aspectRatio:1024/2048;f.scale.set(p*o,p*g*o,1)}if(!c&&!f){const p=a.group.getObjectByName("nameLabel");if(p){const y=.3*o;p.scale.set(y*(p.userData.aspectRatio||2),y,1)}const g=a.group.getObjectByName("manaBar");g&&g.scale.set(.9,.14,1);const b=a.group.getObjectByName("idleTimer");b&&b.scale.set(.9*o,.14*o,1)}}for(const[,a]of this.buildingManager.getBuildingMeshData()){const i=e.position.distanceTo(a.group.position),o=Math.max(.5,Math.min(2.5,i/15))*n,l=a.group.getObjectByName("buildingLabel");if(l){const c=.3*o;l.scale.set(c*(l.userData.aspectRatio||2),c,1)}}this.effectsManager.updateWithCamera(e)}async loadCharacterModels(){await this.agentManager.loadCharacterModels()}upgradeAgentModels(){this.agentManager.upgradeAgentModels(),this.updateInputHandlerReferences()}addAgent(e){this.agentManager.addAgent(e)}removeAgent(e){this.agentManager.removeAgent(e),this.updateInputHandlerReferences()}updateAgent(e,t=!1){this.agentManager.updateAgent(e,t)}syncAgents(e){this.agentManager.syncAgents(e)}setCustomAgentClasses(e){this.agentManager.setCustomAgentClasses(e)}refreshSelectionVisuals(){this.selectionManager.refreshSelectionVisuals()}createMoveOrderEffect(e){this.effectsManager.createMoveOrderEffect(e)}showToolBubble(e,t,n){this.effectsManager.setAgentMeshes(this.agentManager.getAgentMeshes()),this.effectsManager.createSpeechBubble(e,t,n)}showDelegationEffect(e,t){this.effectsManager.setAgentMeshes(this.agentManager.getAgentMeshes()),this.effectsManager.createDelegationEffect(e,t)}addSubagentEffect(e,t,n,a){this.effectsManager.setAgentMeshes(this.agentManager.getAgentMeshes()),this.effectsManager.addSubagentEffect(e,t,n,a)}completeSubagentEffect(e){this.effectsManager.completeSubagentEffect(e)}removeSubagentEffect(e){this.effectsManager.removeSubagentEffect(e)}focusAgent(e){this.cameraManager.focusAgent(e)}callSubordinates(e){var o;const n=U.getState().agents.get(e);if(!n||!(n.isBoss||n.class==="boss")||!((o=n.subordinateIds)!=null&&o.length))return;const a=new gt(n.position.x,n.position.y,n.position.z),i=this.inputHandler.calculateFormationPositions(a,n.subordinateIds.length);this.effectsManager.createMoveOrderEffect(a.clone()),n.subordinateIds.forEach((l,c)=>{const d=this.agentManager.getAgentMeshes().get(l);U.moveAgent(l,i[c]),d&&this.movementAnimator.startMovement(l,d,i[c])})}setDrawingTool(e){this.drawingManager.setTool(e),U.setActiveTool(e)}syncAreas(){this.drawingManager.syncFromStore()}highlightArea(e){this.drawingManager.highlightArea(e)}clearAreaSelection(){this.drawingManager.highlightArea(null)}addBuilding(e){this.buildingManager.addBuilding(e)}removeBuilding(e){this.buildingManager.removeBuilding(e)}updateBuilding(e){this.buildingManager.updateBuilding(e)}syncBuildings(){this.buildingManager.syncFromStore()}highlightBuilding(e){this.buildingManager.highlightBuilding(e)}setOnBuildingClick(e){this.callbackManager.setOnBuildingClick(e)}setOnBuildingDoubleClick(e){this.callbackManager.setOnBuildingDoubleClick(e)}setOnContextMenu(e){this.callbackManager.setOnContextMenu(e)}setOnAgentHover(e){this.callbackManager.setOnAgentHover(e)}setOnBuildingHover(e){this.callbackManager.setOnBuildingHover(e)}setOnGroundClick(e){this.callbackManager.setOnGroundClick(e)}setOnAreaDoubleClick(e){this.callbackManager.setOnAreaDoubleClick(e)}setOnFolderIconClick(e){this.onFolderIconClickCallback=e}setOnToast(e){this.agentManager.setOnToast(e)}setCharacterScale(e){this.agentManager.setCharacterScale(e),this.selectionManager.setCharacterScale(e)}setIndicatorScale(e){this.renderLoop.setIndicatorScale(e),this.effectsManager.setIndicatorScale(e)}setFpsLimit(e){this.renderLoop.setFpsLimit(e)}setPowerSaving(e){this.renderLoop.setPowerSaving(e)}setGridVisible(e){this.battlefield.setGridVisible(e)}setDebugTime(e){this.battlefield.setDebugTime(e)}setTimeMode(e){this.battlefield.setTimeMode(e)}setTerrainConfig(e){this.battlefield.setTerrainConfig(e),e.brightness!==void 0&&(this.drawingManager.setBrightness(e.brightness),this.buildingManager.setBrightness(e.brightness),this.agentManager.setBrightness(e.brightness))}setFloorStyle(e,t=!1){this.battlefield.setFloorStyle(e,t)}setIdleAnimation(e){this.agentManager.setIdleAnimation(e)}setWorkingAnimation(e){this.agentManager.setWorkingAnimation(e)}setAgentModelStyle(e){this.agentManager.setModelStyle(e)}getAgentModelStyle(){return this.agentManager.getModelStyle()}setGlobalSaturation(e){this.sceneCore.setSaturation(e)}getGlobalSaturation(){return this.sceneCore.getSaturation()}setPostProcessingEnabled(e){this.sceneCore.setPostProcessingEnabled(e)}reattach(e,t){var i,o;console.log("[SceneManager] Reattaching to new canvas (HMR)"),this.isReattaching=!0,this.renderLoop.stop(),(i=this.resizeObserver)==null||i.disconnect();const n=this.sceneCore.getCanvas();n.removeEventListener("webglcontextlost",this.onContextLost),n.removeEventListener("webglcontextrestored",this.onContextRestored),this.sceneCore.reattach(e),this.cameraManager.recreateControls(this.sceneCore.getRenderer()),this.sceneCore.updateCamera(this.cameraManager.getCamera()),e.addEventListener("webglcontextlost",this.onContextLost),e.addEventListener("webglcontextrestored",this.onContextRestored),this.inputHandler.reattach(e,t,this.cameraManager.getControls()),this.updateInputHandlerReferences(),e.parentElement&&((o=this.resizeObserver)==null||o.observe(e.parentElement)),this.onWindowResize();const a=(l=0)=>{this.isReattaching=!1,e.isConnected&&this.sceneCore.getRenderer()?(console.log("[SceneManager] Restarting animation loop after HMR reattach"),this.renderLoop.start()):l<10?(console.log(`[SceneManager] Canvas not connected, retrying... (attempt ${l+1})`),this.isReattaching=!0,requestAnimationFrame(()=>a(l+1))):console.warn("[SceneManager] Failed to restart animation loop - canvas never connected")};requestAnimationFrame(()=>a())}getMemoryDiagnostics(){var t;const e=this.sceneCore.getRenderer().info;return{threeJs:e!=null&&e.memory?{geometries:e.memory.geometries,textures:e.memory.textures,programs:((t=e.programs)==null?void 0:t.length)??0}:null,heap:Yl.getUsage(),agentMeshCount:this.agentManager.getAgentMeshes().size,bossLineCount:0}}getRenderStats(){var t,n;const e=(n=(t=this.sceneCore.getRenderer())==null?void 0:t.info)==null?void 0:n.render;return e?{calls:e.calls,triangles:e.triangles,points:e.points,lines:e.lines}:null}get renderer(){return this.sceneCore.getRenderer()}logMemoryDiagnostics(){const e=this.getMemoryDiagnostics(),t=this.characterLoader.getCacheStats();console.group("%c[SceneManager Memory]","color: #ff6600; font-weight: bold"),e.threeJs&&console.log(`Three.js: ${e.threeJs.geometries} geometries, ${e.threeJs.textures} textures, ${e.threeJs.programs} programs`),e.heap&&console.log(`Heap: ${e.heap.usedMB}MB / ${e.heap.totalMB}MB (limit: ${e.heap.limitMB}MB)`),console.log(`Agent meshes: ${e.agentMeshCount}`),console.log(`CharacterLoader cache: ${t.builtInModels} built-in, ${t.customModels} custom`),t.modelNames.length>0&&console.log(` Built-in models: ${t.modelNames.join(", ")}`),t.customModelIds.length>0&&console.log(` Custom models: ${t.customModelIds.join(", ")}`),console.groupEnd()}dispose(){var n;console.log("%c[SceneManager] dispose() called - starting cleanup","color: #ff0000; font-weight: bold");const e=this.characterLoader.getCacheStats();console.log(`[SceneManager] Pre-dispose: ${e.builtInModels} built-in models, ${e.customModels} custom models`),this.renderLoop.stop(),window.removeEventListener("resize",this.onWindowResize);const t=this.sceneCore.getCanvas();t.removeEventListener("webglcontextlost",this.onContextLost),t.removeEventListener("webglcontextrestored",this.onContextRestored),(n=this.resizeObserver)==null||n.disconnect(),this.resizeObserver=null,this.inputHandler.dispose(),this.drawingManager.dispose(),this.buildingManager.dispose(),this.effectsManager.dispose(),this.agentManager.dispose(),this.selectionManager.dispose(),this.battlefield.dispose(),this.characterLoader.dispose(),this.cameraManager.dispose(),this.sceneCore.dispose(),console.log("%c[SceneManager] dispose() complete - all resources freed","color: #00ff00; font-weight: bold")}}const jp="tide_webgl_active";typeof window<"u"&&(window.__tidePersistedScene===void 0&&(window.__tidePersistedScene=null),window.__tidePersistedCanvas===void 0&&(window.__tidePersistedCanvas=null),window.__tideWsConnected===void 0&&(window.__tideWsConnected=!1),window.__tideIsPageUnloading===void 0&&(window.__tideIsPageUnloading=!1));function sf(){return typeof window<"u"?window.__tidePersistedScene??null:null}function UA(){return typeof window<"u"?window.__tidePersistedCanvas??null:null}function BI(){return typeof window<"u"?window.__tideWsConnected??!1:!1}function nd(s){typeof window<"u"&&(window.__tidePersistedScene=s)}function Cp(s){typeof window<"u"&&(window.__tidePersistedCanvas=s)}function GA(s){typeof window<"u"&&(window.__tideWsConnected=s)}function FI(s){typeof window<"u"&&(window.__tideIsPageUnloading=s)}function zI(){sessionStorage.setItem(jp,"true")}function Bh(s){FI(!0),sessionStorage.removeItem(jp),TA(),DR(),window.__tideScene&&(window.__tideScene=null);const e=sf();e?(console.log("[App] Calling persistedScene.dispose()"),e.dispose(),nd(null)):console.log("[App] No persistedScene to dispose"),Cp(null),GA(!1);const t=document.getElementById("battlefield");t&&t.remove();const n=document.getElementById("app");n&&(n.innerHTML="")}function $I(){var a,i;if(window.__tideAppInitialized)return;if(window.__tideAppInitialized=!0,sessionStorage.getItem(jp)==="true"&&console.log("[App] Detected unclean shutdown from previous session - forcing cleanup"),window.__tideScene){console.log("[App] Cleaning up stale __tideScene reference");try{(i=(a=window.__tideScene).dispose)==null||i.call(a)}catch{}window.__tideScene=null}const e=sf();if(e){console.log("[App] Cleaning up stale persistedScene");try{e.dispose()}catch{}nd(null)}const t=document.getElementById("battlefield"),n=UA();t&&t!==n&&t.remove(),sessionStorage.removeItem(jp)}function HI(){typeof window>"u"||($I(),window.addEventListener("pageshow",s=>{s.persisted&&(console.log("[App] Page restored from bfcache - cleaning up"),Bh(),window.location.reload())}),window.onunload=()=>Bh(),window.onbeforeunload=s=>{Bh()},window.addEventListener("pagehide",s=>{Bh(`pagehide (persisted=${s.persisted})`)}))}HI();const dj={showTrees:!0,showBushes:!0,showHouse:!0,showLamps:!0,showGrass:!0,showClouds:!0,fogDensity:1,floorStyle:"metal",brightness:1,skyColor:null},hj={saturation:2,roughness:.5,metalness:-1,emissiveBoost:0,envMapIntensity:1,wireframe:!1,colorMode:"normal"},pj={idleAnimation:"sit",workingAnimation:"sprint"},UI=0;function WA(){const s={characterScale:2,indicatorScale:1,gridVisible:!1,timeMode:"day",terrain:dj,modelStyle:hj,animations:pj,fpsLimit:UI},e=qa(dt.CONFIG,null);return e?{characterScale:e.characterScale??s.characterScale,indicatorScale:e.indicatorScale??s.indicatorScale,gridVisible:e.gridVisible??s.gridVisible,timeMode:e.timeMode??s.timeMode,terrain:{...dj,...e.terrain},modelStyle:{...hj,...e.modelStyle},animations:{...pj,...e.animations},fpsLimit:e.fpsLimit??s.fpsLimit}:s}function GI(s){bi(dt.CONFIG,s)}typeof window<"u"&&!window.__tideHmrRefreshListeners&&(window.__tideHmrRefreshListeners=new Set);function qA(){console.log("[Tide HMR] Manual scene refresh triggered");const s=sf();if(s){try{s.dispose()}catch(t){console.warn("[Tide HMR] Error disposing scene:",t)}nd(null)}Cp(null),window.__tideScene&&(window.__tideScene=null);const e=document.getElementById("battlefield");if(e){const t=e.getContext("webgl2")||e.getContext("webgl");if(t){const n=t.getExtension("WEBGL_lose_context");n&&n.loseContext()}}window.__tideHmrPendingSceneChanges=!1,window.location.reload()}typeof window<"u"&&(window.__tideHmrSceneRefresh=qA);function WI({canvasRef:s,selectionBoxRef:e,showToast:t,showAgentNotification:n,toolboxModal:a,contextMenu:i,setHoveredAgentPopup:o,setBuildingPopup:l,getBuildingPopup:c,openBuildingModal:d,openPM2LogsModal:f,openBossLogsModal:p,openDatabasePanel:g}){const b=x.useRef(null),y=x.useRef(null),w=x.useRef(null);return x.useEffect(()=>{if(!s.current||!e.current)return;let k=!1;const S=sf(),C=UA()===s.current;function A(){var _,M,$,E,D,P,R,L;(_=b.current)==null||_.setOnToast(t),(M=b.current)==null||M.setOnBuildingClick((z,B)=>{U.selectBuilding(z);const F=U.getState().buildings.get(z);(F==null?void 0:F.type)==="folder"&&F.folderPath?U.openFileExplorer(F.folderPath):(F==null?void 0:F.type)==="server"||(F==null?void 0:F.type)==="boss"||(F==null?void 0:F.type)==="database"?(y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{l({buildingId:z,screenPos:B,fromClick:!0}),y.current=null},150)):d(z)}),($=b.current)==null||$.setOnContextMenu((z,B,F)=>{i.open(z,B,F)}),(E=b.current)==null||E.setOnAgentHover(()=>{}),(D=b.current)==null||D.setOnBuildingHover((z,B)=>{const F=c();if(z&&B){const H=U.getState().buildings.get(z);((H==null?void 0:H.type)==="server"||(H==null?void 0:H.type)==="boss"||(H==null?void 0:H.type)==="database")&&!(F!=null&&F.fromClick)&&l({buildingId:z,screenPos:B,fromClick:!1})}else F!=null&&F.fromClick||l(null)}),(P=b.current)==null||P.setOnGroundClick(()=>{l(null)}),(R=b.current)==null||R.setOnAreaDoubleClick(z=>{U.selectArea(z),a.open()}),(L=b.current)==null||L.setOnBuildingDoubleClick(z=>{var F;y.current&&(clearTimeout(y.current),y.current=null),l(null);const B=U.getState().buildings.get(z);(B==null?void 0:B.type)==="server"&&((F=B.pm2)!=null&&F.enabled)?f==null||f(z):(B==null?void 0:B.type)==="boss"?p==null||p(z):(B==null?void 0:B.type)==="database"?g==null||g(z):(B==null?void 0:B.type)==="folder"&&B.folderPath?U.openFileExplorer(B.folderPath):d(z)})}if(S&&C){b.current=S,console.log("[Tide] Reusing existing scene (StrictMode remount)");const _=U.getState();S.syncAreas(),S.syncBuildings(),_.agents.size>0&&(console.log("[Tide] Re-syncing agents from store after remount:",_.agents.size),S.syncAgents(Array.from(_.agents.values()))),A()}else{const _=s.current,M=e.current,$=()=>{if(k){console.log("[Tide] Effect cleaned up before scene init, skipping");return}if(!_.isConnected||!M.isConnected){console.warn("[Tide] Canvas disconnected before initialization");return}(!_.clientWidth||!_.clientHeight)&&(console.log("[Tide] Canvas has no CSS dimensions, using window fallback"),_.style.width="100%",_.style.height="100%",_.offsetHeight),(!_.clientWidth||!_.clientHeight)&&(_.width=window.innerWidth,_.height=window.innerHeight),zI();try{const E=new II(_,M);b.current=E,nd(E),Cp(_);const D=WA();E.setCharacterScale(D.characterScale),E.setIndicatorScale(D.indicatorScale),E.setGridVisible(D.gridVisible),E.setTimeMode(D.timeMode),E.setTerrainConfig(D.terrain),E.setFloorStyle(D.terrain.floorStyle,!0),E.setAgentModelStyle(D.modelStyle),E.setIdleAnimation(D.animations.idleAnimation),E.setWorkingAnimation(D.animations.workingAnimation),E.setFpsLimit(D.fpsLimit),E.syncAreas(),E.syncBuildings(),E.loadCharacterModels().then(()=>{console.log("[Tide] Character models ready");const P=U.getState();P.customAgentClasses.size>0&&(console.log("[Tide] Applying custom classes from store:",P.customAgentClasses.size),E.setCustomAgentClasses(P.customAgentClasses)),P.agents.size>0&&(console.log("[Tide] Syncing agents from store:",P.agents.size),E.syncAgents(Array.from(P.agents.values()))),E.upgradeAgentModels()}).catch(P=>{console.warn("[Tide] Some models failed to load, using fallback:",P)}),A()}catch(E){console.error("[Tide] Failed to initialize 3D scene:",E)}};w.current=requestAnimationFrame($)}return NA({onAgentCreated:_=>{var M,$;(M=b.current)==null||M.addAgent(_),($=window.__spawnModalSuccess)==null||$.call(window)},onAgentUpdated:(_,M)=>{var $;($=b.current)==null||$.updateAgent(_,M)},onAgentDeleted:_=>{var M;(M=b.current)==null||M.removeAgent(_)},onAgentsSync:_=>{var M;(M=b.current)==null||M.syncAgents(_)},onAreasSync:()=>{var M,$;(M=b.current)==null||M.syncAreas();const _=Array.from(U.getState().agents.values());($=b.current)==null||$.syncAgents(_)},onSpawnError:()=>{var _;(_=window.__spawnModalError)==null||_.call(window)},onSpawnSuccess:()=>{var _;(_=window.__spawnModalSuccess)==null||_.call(window)},onDirectoryNotFound:_=>{var M;(M=window.__spawnModalDirNotFound)==null||M.call(window,_)},onToolUse:(_,M,$)=>{var E;(E=b.current)==null||E.showToolBubble(_,M,$)},onDelegation:(_,M)=>{var $;($=b.current)==null||$.showDelegationEffect(_,M)},onCustomClassesSync:_=>{var M,$;(M=b.current)==null||M.setCustomAgentClasses(_),($=b.current)==null||$.upgradeAgentModels()},onBuildingUpdated:_=>{var M;(M=b.current)==null||M.updateBuilding(_)},onSubagentStarted:_=>{var M;(M=b.current)==null||M.addSubagentEffect(_.id,_.parentAgentId,_.name,_.subagentType)},onSubagentCompleted:_=>{var E;const M=U.getSubagent(_)||U.getSubagentByToolUseId(_),$=(M==null?void 0:M.id)||_;(E=b.current)==null||E.completeSubagentEffect($),setTimeout(()=>{var D;(D=b.current)==null||D.removeSubagentEffect($)},3e4)}}),()=>{var _;k=!0,w.current!==null&&(cancelAnimationFrame(w.current),w.current=null),!((_=s.current)!=null&&_.isConnected)&&b.current&&(console.log("[Tide] 3D canvas unmounted - disposing scene to free memory"),PR(),b.current.dispose(),b.current=null,nd(null),Cp(null))}},[s.current,e.current]),b}let sd,Vl;try{sd=require("@capacitor/local-notifications").LocalNotifications,Vl=require("@capacitor/core").Capacitor}catch{}let qI=1;const YI="agent_alerts",YA="tide-notification-tap";function VI(){return typeof window<"u"&&window.innerWidth<=768&&"ontouchstart"in window}function VA(s){if(VI()){U.openTerminalOnMobile(s);return}U.selectAgent(s),U.setTerminalOpen(!0)}function lx(){var s;return((s=Vl==null?void 0:Vl.isNativePlatform)==null?void 0:s.call(Vl))??!1}async function KI(){return lx()?(await sd.requestPermissions()).display==="granted":"Notification"in window?await Notification.requestPermission()==="granted":!1}async function XI(s){const{title:e,body:t,icon:n,data:a}=s;if(lx())await sd.schedule({notifications:[{id:qI++,title:e,body:t,schedule:{at:new Date(Date.now()+100)},extra:a,channelId:YI,smallIcon:"ic_launcher",autoCancel:!0}]});else if("Notification"in window&&Notification.permission==="granted"){const i=new Notification(e,{body:t,icon:n,data:a});i.onclick=()=>{window.focus(),a&&window.dispatchEvent(new CustomEvent(YA,{detail:a}))}}}async function ZI(s){s&&window.addEventListener(YA,e=>{const t=e;t.detail&&s(t.detail)}),lx()&&sd&&await sd.addListener("localNotificationActionPerformed",e=>{s&&e.notification.extra&&s(e.notification.extra)})}function QI({showToast:s,showAgentNotification:e}){const t=x.useRef(!1);x.useEffect(()=>{if(t.current||BI())return;t.current=!0,NA({onToast:s,onReconnect:()=>{U.triggerReconnect()},onAgentNotification:a=>{e(a)}}),td(),GA(!0),KI(),ZI(a=>{a.type==="agent_notification"&&typeof a.agentId=="string"&&VA(a.agentId)});const n=()=>{console.log("[Tide] App resumed from background, reconnecting..."),setTimeout(()=>td(),100)};return window.addEventListener("tideAppResume",n),()=>{window.removeEventListener("tideAppResume",n)}},[s,e])}function JI(s){x.useEffect(()=>{let e="",t="",n=new Map;const a=i=>{var c;let o=!1;const l=new Map;for(const[d,f]of i){const g=`${f.position.x.toFixed(2)},${f.position.z.toFixed(2)},${f.status},${f.class},${f.isBoss},${((c=f.subordinateIds)==null?void 0:c.length)??0}`.split("").reduce((b,y)=>(b<<5)-b+y.charCodeAt(0),0);l.set(d,g),n.get(d)!==g&&(o=!0)}return l.size!==n.size&&(o=!0),{newVersion:l,changed:o}};return U.subscribe(()=>{var g;const i=U.getState(),o=Array.from(i.selectedAgentIds).sort().join(","),l=Array.from(i.selectedBuildingIds).sort().join(","),c=o!==e,d=l!==t,{newVersion:f,changed:p}=a(i.agents);(c||d||p)&&(e=o,t=l,n=f,(g=s.current)==null||g.refreshSelectionVisuals())})},[s])}function eB(s){x.useEffect(()=>{var n;(n=s.current)==null||n.syncAreas();let e=0,t=0;return U.subscribe(()=>{var l,c;const i=U.getState().areas;if(i.size!==e){e=i.size,t=Date.now(),(l=s.current)==null||l.syncAreas();return}let o=0;for(const[d,f]of i){let p=d.charCodeAt(0);p+=(f.width??0)+(f.height??0)+(f.radius??0),p+=Math.floor(f.center.x*100)+Math.floor(f.center.z*100),p+=(f.zIndex??0)*1e3;for(let g=0;g<f.name.length;g++)p+=f.name.charCodeAt(g);for(let g=0;g<f.color.length;g++)p+=f.color.charCodeAt(g);if(f.directoryGitCounts)for(const g of f.directoryGitCounts)p+=(g+1)*7;o^=p|0}o!==t&&(t=o,(c=s.current)==null||c.syncAreas())})},[s])}function tB(s){x.useEffect(()=>{var n;(n=s.current)==null||n.syncBuildings();let e=0,t=0;return U.subscribe(()=>{var l,c;const i=U.getState().buildings;if(i.size!==e){e=i.size,t=Date.now(),(l=s.current)==null||l.syncBuildings();return}let o=0;for(const[d,f]of i){o^=f.position.x*1e3+f.position.z|0,o^=(f.scale||1)*1e4|0;const p=`${f.style||""}${f.name}${f.status}${f.gitChangesCount||0}`;for(let g=0;g<p.length;g++)o=(o<<5)-o+p.charCodeAt(g)|0}o!==t&&(t=o,(c=s.current)==null||c.syncBuildings())})},[s])}function nB(s,e){x.useEffect(()=>{var t;(t=s.current)==null||t.highlightArea(e)},[s,e])}function sB(s,e){x.useEffect(()=>{var t;(t=s.current)==null||t.setPowerSaving(e)},[s,e])}function aB({sceneRef:s,spawnModal:e,commanderModal:t,explorerModal:n,spotlightModal:a,deleteConfirmModal:i,onRequestBuildingDelete:o,onOpenDatabasePanel:l,onCloseDatabasePanel:c,databasePanelOpen:d}){x.useEffect(()=>{const f=p=>{var P,R,L,z;const g=U.getShortcuts(),b=p.target,y=b.tagName==="INPUT"||b.tagName==="TEXTAREA",w=g.find(B=>B.id==="deselect-all");if(xt(p,w)){if(ay()){p.preventDefault();return}const B=U.getState();if(B.activeTool==="rectangle"||B.activeTool==="circle"){(P=s.current)==null||P.setDrawingTool(null),typeof window<"u"&&window.__tideScene2D_setDrawingTool&&window.__tideScene2D_setDrawingTool(null);return}e.isOpen?e.close():B.terminalOpen?(U.setTerminalOpen(!1),document.activeElement instanceof HTMLElement&&document.activeElement.blur()):(U.deselectAll(),(R=s.current)==null||R.refreshSelectionVisuals())}for(let B=1;B<=9;B++){const F=g.find(H=>H.id===`select-agent-${B}`);if(xt(p,F)){p.preventDefault();const H=U.getState(),G=B-1,K=Array.from(H.agents.keys());G<K.length&&(U.selectAgent(K[G]),(L=s.current)==null||L.refreshSelectionVisuals());return}}const k=g.find(B=>B.id==="spawn-agent");if(xt(p,k)){p.preventDefault(),e.open();return}const S=g.find(B=>B.id==="toggle-commander-tab");if(xt(p,S)&&!y){p.preventDefault(),t.toggle();return}const j=g.find(B=>B.id==="toggle-commander");if(xt(p,j)){p.preventDefault(),t.toggle();return}const C=g.find(B=>B.id==="toggle-file-explorer");if(xt(p,C)){p.preventDefault();const B=U.getState();if(n.isOpen||B.explorerFolderPath!==null||B.explorerAreaId!==null)n.close(),U.closeFileExplorer();else{const H=U.getLastExplorerState();if((H==null?void 0:H.type)==="folder")U.openFileExplorer(H.path);else if((H==null?void 0:H.type)==="area")if(B.areas.has(H.areaId))n.open(H.areaId);else{const G=Array.from(B.areas.values()).filter(K=>K.directories&&K.directories.length>0);G.length>0&&n.open(G[0].id)}else{const G=Array.from(B.areas.values()).filter(K=>K.directories&&K.directories.length>0);G.length>0&&n.open(G[0].id)}}return}if(p.altKey&&!p.ctrlKey&&!p.shiftKey&&!p.metaKey&&p.code==="KeyD"){if(p.preventDefault(),p.stopPropagation(),d){c();return}const B=localStorage.getItem("tide-commander-last-database-building"),F=U.getState();if(B){const H=F.buildings.get(B);if((H==null?void 0:H.type)==="database"){l(B);return}}for(const[H,G]of F.buildings)if(G.type==="database"){l(H);return}return}const A=g.find(B=>B.id==="toggle-spotlight");if(xt(p,A)||p.altKey&&!p.ctrlKey&&!p.metaKey&&p.code==="KeyP"){console.log("[useKeyboardShortcuts] Spotlight shortcut matched!",{spotlightShortcut:A,altKey:p.altKey,code:p.code}),p.preventDefault(),a.toggle();return}const _=g.find(B=>B.id==="toggle-2d-view");if(xt(p,_)){p.preventDefault();const B=U.getState().viewMode,F=B==="3d"?"2d":B==="2d"?"dashboard":"3d";U.setViewMode(F);return}const M=g.find(B=>B.id==="next-working-agent"),$=g.find(B=>B.id==="prev-working-agent");if((xt(p,M)||xt(p,$))&&!y){const B=U.getState();if(B.terminalOpen)return;const F=Array.from(B.agents.values());let H=F.filter(I=>B.agentsWithUnseenOutput.has(I.id));if(H.length===0&&(H=F.filter(I=>I.status==="working")),H.length===0)return;p.preventDefault();const G=B.selectedAgentIds.size===1?Array.from(B.selectedAgentIds)[0]:null,K=G?H.findIndex(I=>I.id===G):-1;let X;xt(p,M)?X=K===-1?0:(K+1)%H.length:X=K===-1?H.length-1:(K-1+H.length)%H.length,U.selectAgent(H[X].id),(z=s.current)==null||z.refreshSelectionVisuals();return}const E=g.find(B=>B.id==="delete-selected"),D=g.find(B=>B.id==="delete-selected-backspace");if((xt(p,E)||xt(p,D))&&!y){const B=U.getState();if(B.selectedAgentIds.size>0){p.preventDefault(),i.open();return}if(B.selectedBuildingIds.size>0){p.preventDefault(),o();return}return}};return document.addEventListener("keydown",f,!0),()=>document.removeEventListener("keydown",f,!0)},[s,e,t,n,a,i,o,l,c,d])}function iB(){const[s,e]=x.useState(!1);return window.__tideSetBackNavModal=e,x.useEffect(()=>{if(!(window.innerWidth<=768))return;if(window.__tideBackNavSetup){window.location.hash.includes("app")||(window.location.hash="#app");return}window.__tideBackNavSetup=!0,window.location.hash.includes("app")||(window.location.hash="#app");const a=()=>{var o;window.innerWidth>768||window.location.hash.includes("app")||(window.location.hash="#app",ay()||(o=window.__tideSetBackNavModal)==null||o.call(window,!0))},i=()=>{var o;window.innerWidth>768||(window.location.hash.includes("app")||(window.location.hash="#app"),window.location.hash==="#app"&&setTimeout(()=>{window.location.hash==="#app"&&!window.location.hash.includes("app2")&&(window.history.pushState(null,"","#app2"),window.history.pushState(null,"","#app"))},50),ay()||(o=window.__tideSetBackNavModal)==null||o.call(window,!0))};window.history.pushState(null,"","#app1"),window.history.pushState(null,"","#app2"),window.history.pushState(null,"","#app"),window.addEventListener("hashchange",a),window.addEventListener("popstate",i)},[]),{showBackNavModal:s,setShowBackNavModal:e,handleLeave:()=>{e(!1);const n=window.__tideHistoryDepth??2;window.history.go(-(n+1))}}}const Qg="agent-order-change";function KA(s){const e=x.useMemo(()=>new Set(s.map(c=>c.id)),[s]),[t,n]=x.useState(()=>qa(dt.AGENT_ORDER,[]));x.useEffect(()=>{const c=d=>{n(d.detail)};return window.addEventListener(Qg,c),()=>{window.removeEventListener(Qg,c)}},[]);const a=x.useMemo(()=>{const c=t.filter(g=>e.has(g)),d=s.filter(g=>!c.includes(g.id)).map(g=>g.id),f=[...c,...d],p=new Map(s.map(g=>[g.id,g]));return f.map(g=>p.get(g)).filter(g=>g!==void 0)},[s,t,e]),i=x.useCallback(c=>{n(c),bi(dt.AGENT_ORDER,c),window.dispatchEvent(new CustomEvent(Qg,{detail:c}))},[]),o=x.useCallback((c,d)=>{const f=a.map(g=>g.id),[p]=f.splice(c,1);f.splice(d,0,p),i(f)},[a,i]),l=x.useCallback(()=>{n([]),bi(dt.AGENT_ORDER,[])},[]);return x.useEffect(()=>{if(e.size===0)return;const c=t.filter(d=>e.has(d));c.length!==t.length&&i(c)},[e,t,i]),{orderedAgents:a,moveAgent:o,resetOrder:l}}let ci,by;try{ci=require("@capacitor/core").Capacitor,by=require("@capacitor/core").CapacitorHttp}catch{}const cx="deivid11/tide-commander",rB=`https://api.github.com/repos/${cx}/releases/latest`,oB=`https://api.github.com/repos/${cx}/releases?per_page=3`,lB=3600*1e3,fj="app_update_dismissed_version",mj="0.69.1";function cB(){var f;const[s,e]=x.useState({isChecking:!1,updateAvailable:!1,updateInfo:null,recentReleases:[],error:null,currentVersion:mj}),t=((f=ci==null?void 0:ci.getPlatform)==null?void 0:f.call(ci))==="android"||!1,n=p=>p.replace(/^v/,"").split(".").map(b=>parseInt(b,10)||0),a=(p,g)=>{const b=n(p),y=n(g),w=Math.max(b.length,y.length);for(let k=0;k<w;k++){const S=b[k]||0,j=y[k]||0;if(S>j)return 1;if(S<j)return-1}return 0},i=async p=>{var b;if(ci&&by&&((b=ci.isNativePlatform)==null?void 0:b.call(ci))===!0){const y=await by.get({url:p,headers:{Accept:"application/vnd.github.v3+json"}});return{data:y.data,status:y.status}}else{const y=await fetch(p,{headers:{Accept:"application/vnd.github.v3+json"}});return y.ok?{data:await y.json(),status:y.status}:{data:null,status:y.status}}},o=x.useCallback(async(p=!1)=>{e(g=>({...g,isChecking:!0,error:null}));try{const[g,b]=await Promise.all([i(rB),i(oB)]);if(g.status!==200)throw new Error(`GitHub API error: ${g.status}`);const y=g.data,w=y.tag_name;let k=[];b.status===200&&b.data&&(k=b.data.map(_=>({version:_.tag_name,name:_.name,publishedAt:_.published_at,releaseUrl:_.html_url})));const S=localStorage.getItem(fj);if(!p&&S===w)return e(_=>({..._,isChecking:!1,updateAvailable:!1,recentReleases:k})),null;if(!(a(w,mj)>0))return e(_=>({..._,isChecking:!1,updateAvailable:!1,recentReleases:k})),null;const C=y.assets.find(_=>_.name.endsWith(".apk")&&_.content_type==="application/vnd.android.package-archive"),A={version:w,name:y.name,changelog:y.body,releaseUrl:y.html_url,apkUrl:(C==null?void 0:C.browser_download_url)||null,apkSize:(C==null?void 0:C.size)||null,publishedAt:y.published_at};return e(_=>({..._,isChecking:!1,updateAvailable:!0,updateInfo:A,recentReleases:k})),A}catch(g){const b=g instanceof Error?g.message:"Failed to check for updates";return e(y=>({...y,isChecking:!1,error:b})),null}},[]),l=x.useCallback(async()=>{var p,g,b;if(!((p=s.updateInfo)!=null&&p.apkUrl)){(g=s.updateInfo)!=null&&g.releaseUrl&&window.open(s.updateInfo.releaseUrl,"_blank");return}if(!t){(b=s.updateInfo)!=null&&b.releaseUrl&&window.open(s.updateInfo.releaseUrl,"_blank");return}try{window.open(s.updateInfo.apkUrl,"_system"),e(y=>({...y,error:null}))}catch(y){const w=y instanceof Error?y.message:"Failed to open download";e(k=>({...k,error:w}))}},[s.updateInfo,t]),c=x.useCallback(()=>{s.updateInfo&&localStorage.setItem(fj,s.updateInfo.version),e(p=>({...p,updateAvailable:!1,updateInfo:null}))},[s.updateInfo]),d=x.useCallback(()=>{var p;(p=s.updateInfo)!=null&&p.releaseUrl?window.open(s.updateInfo.releaseUrl,"_blank"):window.open(`https://github.com/${cx}/releases`,"_blank")},[s.updateInfo]);return x.useEffect(()=>{if(!t)return;const p=setTimeout(()=>{o()},5e3),g=setInterval(()=>{o()},lB);return()=>{clearTimeout(p),clearInterval(g)}},[t,o]),{...s,isAndroid:t,checkForUpdate:o,downloadAndInstall:l,dismissUpdate:c,openReleasePage:d}}function As(s){const e=x.useRef(null),t=x.useCallback(a=>{e.current=a.target,a.target===a.currentTarget&&a.stopPropagation()},[]),n=x.useCallback(a=>{a.target===a.currentTarget&&e.current===a.currentTarget&&(a.stopPropagation(),s()),e.current=null},[s]);return{handleMouseDown:t,handleClick:n}}const uB=3e4;function dB(){const s=x.useRef(null);x.useEffect(()=>{const e=async()=>{var o,l;const t=U.getState(),n=new Map,a=new Map;for(const[c,d]of t.buildings){const f=d.folderPath||d.cwd;f&&(a.has(f)||a.set(f,[]),a.get(f).push(c))}for(const[c,d]of a)try{const f=await ht(it(`/api/files/git-status?path=${encodeURIComponent(c)}`));if(!f.ok)continue;const g=((o=(await f.json()).files)==null?void 0:o.length)||0;n.set(c,g);for(const b of d){const y=U.getState().buildings.get(b);y&&y.gitChangesCount!==g&&U.updateBuildingLocal(b,{gitChangesCount:g})}}catch{}const i=new Map;for(const[c,d]of t.areas)d.archived||!d.directories||d.directories.forEach((f,p)=>{f&&(i.has(f)||i.set(f,[]),i.get(f).push({areaId:c,dirIndex:p}))});if(i.size!==0)for(const[c,d]of i)try{let f;if(n.has(c))f=n.get(c);else{const g=await ht(it(`/api/files/git-status?path=${encodeURIComponent(c)}`));if(!g.ok)continue;f=((l=(await g.json()).files)==null?void 0:l.length)||0,n.set(c,f)}const p=new Map;for(const g of d)p.has(g.areaId)||p.set(g.areaId,[]),p.get(g.areaId).push({dirIndex:g.dirIndex,count:f});for(const[g,b]of p){const y=U.getState().areas.get(g);if(!y)continue;const w=y.directoryGitCounts?[...y.directoryGitCounts]:new Array(y.directories.length).fill(0);let k=!1;for(const{dirIndex:S,count:j}of b)w[S]!==j&&(w[S]=j,k=!0);k&&U.updateAreaLocal(g,{directoryGitCounts:w})}}catch{}};return e(),s.current=setInterval(e,uB),()=>{s.current&&(clearInterval(s.current),s.current=null)}},[])}const gj={historyLimit:500,hideCost:!0,showFPS:!1,powerSaving:!1,customAgentNames:[],experimental2DView:!1,experimentalVoiceAssistant:!1,experimentalTTS:!1,experimentalEchoPrompt:!1,externalEditorCommand:""};function hB(s,e,t,n,a){return{setAgents(i){const o=new Map;for(const c of i)o.set(c.id,c),(c.class==="boss"||c.isBoss)&&console.log("[Store.setAgents] Boss agent:",c.name,"subordinateIds:",c.subordinateIds);const l=i.find(c=>c.status==="working");e(c=>{c.agents=o,l&&c.selectedAgentIds.size===0&&(c.selectedAgentIds.add(l.id),c.terminalOpen=!0)}),t()},addAgent(i){e(o=>{const l=new Map(o.agents);l.set(i.id,i),o.agents=l}),t()},updateAgent(i){var f;const l=s().agents.get(i.id),c=(l==null?void 0:l.status)!==i.status;c&&console.log(`[Store] Agent ${i.name} status update: ${l==null?void 0:l.status} → ${i.status}`);let d=!1;e(p=>{const g=new Map(p.agents);g.set(i.id,i),p.agents=g,c&&(l==null?void 0:l.status)==="working"&&i.status==="idle"&&(p.terminalOpen&&p.selectedAgentIds.has(i.id)||(p.agentsWithUnseenOutput=new Set(p.agentsWithUnseenOutput),p.agentsWithUnseenOutput.add(i.id),console.log(`[Store] Agent ${i.name} completed work - marked as unseen`),d=!0))}),d&&a&&a(),t(),c&&console.log(`[Store] Agent ${i.name} status now in store: ${(f=s().agents.get(i.id))==null?void 0:f.status}`)},updateAgentContextStats(i,o){const c=s().agents.get(i);c&&(e(d=>{const f=new Map(d.agents);f.set(i,{...c,contextStats:o,contextUsed:o.totalTokens,contextLimit:o.contextWindow}),d.agents=f}),t())},updateAgentContext(i,o,l){const d=s().agents.get(i);if(d){const f=Math.max(1,l||2e5),p=Math.max(0,Math.min(100,Number((o/f*100).toFixed(1))));e(g=>{const b=new Map(g.agents),y=d.contextStats?{...d.contextStats,totalTokens:o,contextWindow:f,usedPercent:p,lastUpdated:Date.now()}:void 0;b.set(i,{...d,contextUsed:o,contextLimit:f,contextStats:y}),g.agents=b}),t()}},removeAgent(i){const o=s().agentsWithUnseenOutput.has(i);e(l=>{const c=new Map(l.agents);c.delete(i),l.agents=c,l.selectedAgentIds.delete(i),l.agentOutputs.delete(i),l.agentsWithUnseenOutput.has(i)&&(l.agentsWithUnseenOutput=new Set(l.agentsWithUnseenOutput),l.agentsWithUnseenOutput.delete(i))}),o&&a&&a(),t()},selectAgent(i){let o=!1;e(l=>{l.selectedAgentIds.clear(),i&&(l.selectedAgentIds.add(i),l.lastSelectedAgentId=i,l.agentsWithUnseenOutput.has(i)&&(l.agentsWithUnseenOutput=new Set(l.agentsWithUnseenOutput),l.agentsWithUnseenOutput.delete(i),console.log(`[Store] Cleared unseen badge for selected agent ${i}`),o=!0)),l.currentSnapshot=null}),o&&a&&a(),t()},addToSelection(i){let o=!1;e(l=>{l.selectedAgentIds.has(i)?l.selectedAgentIds.delete(i):(l.selectedAgentIds.add(i),l.agentsWithUnseenOutput.has(i)&&(l.agentsWithUnseenOutput=new Set(l.agentsWithUnseenOutput),l.agentsWithUnseenOutput.delete(i),console.log(`[Store] Cleared unseen badge for multi-selected agent ${i}`),o=!0))}),o&&a&&a(),t()},selectMultiple(i){e(o=>{o.selectedAgentIds.clear();for(const l of i)o.selectedAgentIds.add(l)}),t()},deselectAll(){e(i=>{i.selectedAgentIds.clear()}),t()},spawnAgent(i,o,l,c,d,f,p,g,b,y,w,k,S){console.log("[Store] spawnAgent called with:",{name:i,agentClass:o,cwd:l,position:c,sessionId:d,useChrome:f,permissionMode:p,initialSkillIds:g,provider:b,codexConfig:y,codexModel:w,model:k,customInstructions:S?`${S.length} chars`:void 0});const j=c?{x:c.x,y:0,z:c.z}:void 0,C={type:"spawn_agent",payload:{name:i,class:o,cwd:l,position:j,sessionId:d,useChrome:f,permissionMode:p,initialSkillIds:g,provider:b,codexConfig:y,codexModel:w,model:k,customInstructions:S}},A=n();if(!A){console.error("[Store] sendMessage is not defined! WebSocket may not be connected");return}A(C),console.log("[Store] Message sent to WebSocket")},createDirectoryAndSpawn(i,o,l){var c;(c=n())==null||c({type:"create_directory",payload:{path:i,name:o,class:l}})},sendCommand(i,o){var l;e(c=>{c.lastPrompts.set(i,{text:o,timestamp:Date.now()})}),t(),(l=n())==null||l({type:"send_command",payload:{agentId:i,command:o}})},refreshAgentContext(i){var o;(o=n())==null||o({type:"request_context_stats",payload:{agentId:i}})},moveAgentLocal(i,o){const c=s().agents.get(i);c&&(e(d=>{const f={...c,position:o},p=new Map(d.agents);p.set(i,f),d.agents=p}),t())},moveAgent(i,o){var d;const c=s().agents.get(i);c&&(e(f=>{const p={...c,position:o},g=new Map(f.agents);g.set(i,p),f.agents=g}),t()),(d=n())==null||d({type:"move_agent",payload:{agentId:i,position:o}})},killAgent(i){var o;(o=n())==null||o({type:"kill_agent",payload:{agentId:i}})},stopAgent(i){var o;(o=n())==null||o({type:"stop_agent",payload:{agentId:i}})},clearContext(i){var o;(o=n())==null||o({type:"clear_context",payload:{agentId:i}}),e(l=>{const c=new Map(l.agentOutputs);c.delete(i),l.agentOutputs=c}),t()},collapseContext(i){var o;(o=n())==null||o({type:"collapse_context",payload:{agentId:i}})},removeAgentFromServer(i){var o;(o=n())==null||o({type:"remove_agent",payload:{agentId:i}})},renameAgent(i,o){var d;const c=s().agents.get(i);c&&(e(f=>{const p={...c,name:o},g=new Map(f.agents);g.set(i,p),f.agents=g}),t()),(d=n())==null||d({type:"rename_agent",payload:{agentId:i,name:o}})},updateAgentProperties(i,o){var d;const c=s().agents.get(i);c&&(e(f=>{const p={...c};o.class!==void 0&&(p.class=o.class),o.permissionMode!==void 0&&(p.permissionMode=o.permissionMode),o.model!==void 0&&(p.model=o.model),o.provider!==void 0&&(p.provider=o.provider),o.codexConfig!==void 0&&(p.codexConfig=o.codexConfig),o.codexModel!==void 0&&(p.codexModel=o.codexModel),o.useChrome!==void 0&&(p.useChrome=o.useChrome),o.cwd!==void 0&&(p.cwd=o.cwd);const g=new Map(f.agents);g.set(i,p),f.agents=g}),t()),(d=n())==null||d({type:"update_agent_properties",payload:{agentId:i,updates:o}})},getTotalTokens(){let i=0;for(const o of s().agents.values())i+=o.tokensUsed;return i},getSelectedAgents(){const i=s(),o=[];for(const l of i.selectedAgentIds){const c=i.agents.get(l);c&&o.push(c)}return o},addActivity(i){e(o=>{o.activities.unshift(i),o.activities.length>100&&o.activities.pop()}),t()},addToolExecution(i,o,l){const d=s().agents.get(i);e(f=>{f.toolExecutions.unshift({agentId:i,agentName:(d==null?void 0:d.name)||"Unknown",toolName:o,toolInput:l,timestamp:Date.now()}),f.toolExecutions.length>200&&f.toolExecutions.pop()}),t()},addFileChange(i,o,l){const d=s().agents.get(i);e(f=>{f.fileChanges.unshift({agentId:i,agentName:(d==null?void 0:d.name)||"Unknown",action:o,filePath:l,timestamp:Date.now()}),f.fileChanges.length>200&&f.fileChanges.pop()}),t()},async loadToolHistory(){try{const o=await(await ht(it("/api/agents/tool-history?limit=100"))).json();e(l=>{o.toolExecutions&&(l.toolExecutions=o.toolExecutions),o.fileChanges&&(l.fileChanges=o.fileChanges)}),t()}catch(i){console.error("[Store] Failed to load tool history:",i)}}}}function pB(s,e,t,n){return{addOutput(a,i){const o=n();e(l=>{const c=l.agentOutputs.get(a)||[];if(i.uuid&&c.some(g=>g.uuid===i.uuid))return;let d=[...c,i];d.length>200&&(d=d.slice(-200)),ed.info(`Store: ${c.length} -> ${d.length}`,{agentId:a,text:i.text.slice(0,60),isStreaming:i.isStreaming,listeners:o},"store:addOutput");const f=new Map(l.agentOutputs);f.set(a,d),l.agentOutputs=f}),t()},clearOutputs(a){e(i=>{const o=new Map(i.agentOutputs);o.delete(a),i.agentOutputs=o}),t()},getOutputs(a){return s().agentOutputs.get(a)||[]},addUserPromptToOutput(a,i){this.addOutput(a,{text:i,isStreaming:!1,timestamp:Date.now(),isUserPrompt:!0})},getLastPrompt(a){return s().lastPrompts.get(a)},setLastPrompt(a,i){e(o=>{o.lastPrompts.set(a,{text:i,timestamp:Date.now()})}),t()},preserveOutputs(){const a=s(),i=new Map;for(const[o,l]of a.agentOutputs)i.set(o,l.map(c=>({...c})));return i},mergeOutputsWithHistory(a,i,o){const l=[...i,...o];return l.sort((c,d)=>c.timestamp-d.timestamp),e(c=>{const d=new Map(c.agentOutputs);d.set(a,l),c.agentOutputs=d}),t(),l}}}function fB(s,e,t,n){return{setSupervisorReport(a){e(i=>{i.supervisor.lastReport=a,i.supervisor.lastReportTime=a.timestamp;const o=new Map(i.supervisor.agentHistories);for(const l of a.agentSummaries){const c=o.get(l.agentId)||[],d={id:`${a.id}-${l.agentId}`,timestamp:a.timestamp,reportId:a.id,analysis:l};if(!c.some(f=>f.reportId===a.id)){const f=[d,...c];f.length>50&&f.pop(),o.set(l.agentId,f)}}i.supervisor.agentHistories=o,i.supervisor.generatingReport=!1}),t()},addNarrative(a,i){e(o=>{const l=o.supervisor.narratives.get(a)||[];l.unshift(i),l.length>50&&l.pop();const c=new Map(o.supervisor.narratives);c.set(a,l),o.supervisor.narratives=c}),t()},getNarratives(a){return s().supervisor.narratives.get(a)||[]},setSupervisorStatus(a){e(i=>{i.supervisor.enabled=a.enabled,a.autoReportOnComplete!==void 0&&(i.supervisor.autoReportOnComplete=a.autoReportOnComplete),i.supervisor.lastReportTime=a.lastReportTime,i.supervisor.nextReportTime=a.nextReportTime}),t()},setSupervisorConfig(a){var i;(i=n())==null||i({type:"set_supervisor_config",payload:a})},requestSupervisorReport(){var a;e(i=>{i.supervisor.generatingReport=!0}),t(),(a=n())==null||a({type:"request_supervisor_report",payload:{}})},requestAgentSupervisorHistory(a){var i;e(o=>{o.supervisor.loadingHistoryForAgent=a}),t(),(i=n())==null||i({type:"request_agent_supervisor_history",payload:{agentId:a}})},setAgentSupervisorHistory(a){e(i=>{const o=new Map(i.supervisor.agentHistories);o.set(a.agentId,a.entries),i.supervisor.agentHistories=o,i.supervisor.historyFetchedForAgents.add(a.agentId),i.supervisor.loadingHistoryForAgent===a.agentId&&(i.supervisor.loadingHistoryForAgent=null)}),t()},getAgentSupervisorHistory(a){return s().supervisor.agentHistories.get(a)||[]},addAgentAnalysis(a,i){e(o=>{const l=new Map(o.supervisor.agentHistories),c=l.get(a)||[],d={id:`single-${Date.now()}-${a}`,timestamp:Date.now(),reportId:`single-${Date.now()}`,analysis:i};if(!c.some(p=>Math.abs(p.timestamp-d.timestamp)<5e3&&p.analysis.statusDescription===i.statusDescription)){const p=[d,...c];p.length>50&&p.pop(),l.set(a,p),o.supervisor.agentHistories=l}}),t()},isLoadingHistoryForAgent(a){return s().supervisor.loadingHistoryForAgent===a},hasHistoryBeenFetched(a){return s().supervisor.historyFetchedForAgents.has(a)},setGlobalUsage(a){console.log("[Supervisor] setGlobalUsage called with:",a),e(i=>{i.supervisor.globalUsage=a,i.supervisor.refreshingUsage=!1}),t()},requestGlobalUsage(){console.log("[Supervisor] requestGlobalUsage called"),e(i=>{i.supervisor.refreshingUsage=!0}),t();const a=n();console.log("[Supervisor] sendMessage function:",a?"available":"null"),a?(console.log("[Supervisor] Sending request_global_usage message"),a({type:"request_global_usage",payload:{}})):console.warn("[Supervisor] Cannot send request_global_usage - no sendMessage function")},getGlobalUsage(){return s().supervisor.globalUsage}}}function mB(s,e,t,n){const a=()=>{var o;const i=Array.from(s().areas.values());(o=n())==null||o({type:"sync_areas",payload:i})};return{setActiveTool(i){e(o=>{o.activeTool=i,i!=="select"&&(o.selectedAreaId=null)}),t()},selectArea(i){e(o=>{o.selectedAreaId=i}),t()},addArea(i){if(i.zIndex===void 0||i.zIndex===null){const o=Array.from(s().areas.values()),l=o.length===0?-1:Math.max(...o.map(c=>c.zIndex??0));i.zIndex=l+1}e(o=>{o.areas.set(i.id,i)}),a(),t()},updateArea(i,o){s().areas.get(i)&&(e(d=>{Object.assign(d.areas.get(i),o)}),a(),t())},updateAreaLocal(i,o){s().areas.get(i)&&(e(d=>{Object.assign(d.areas.get(i),o)}),t())},deleteArea(i){e(o=>{o.areas.delete(i),o.selectedAreaId===i&&(o.selectedAreaId=null)}),a(),t()},assignAgentToArea(i,o){const c=s().areas.get(o);c&&!c.assignedAgentIds.includes(i)&&(e(d=>{for(const f of d.areas.values()){const p=f.assignedAgentIds.indexOf(i);p!==-1&&f.assignedAgentIds.splice(p,1)}d.areas.get(o).assignedAgentIds.push(i)}),a(),t())},unassignAgentFromArea(i,o){const c=s().areas.get(o);if(c){const d=c.assignedAgentIds.indexOf(i);d!==-1&&(e(f=>{f.areas.get(o).assignedAgentIds.splice(d,1)}),a(),t())}},addDirectoryToArea(i,o){const c=s().areas.get(i);c&&!c.directories.includes(o)&&(e(d=>{d.areas.get(i).directories.push(o)}),a(),t())},removeDirectoryFromArea(i,o){const c=s().areas.get(i);if(c){const d=c.directories.indexOf(o);d!==-1&&(e(f=>{f.areas.get(i).directories.splice(d,1)}),a(),t())}},getAreaDirectories(i){const o=s().areas.get(i);return(o==null?void 0:o.directories)||[]},isPositionInArea(i,o){if(o.type==="rectangle"&&o.width&&o.height){const l=o.width/2,c=o.height/2;return i.x>=o.center.x-l&&i.x<=o.center.x+l&&i.z>=o.center.z-c&&i.z<=o.center.z+c}else if(o.type==="circle"&&o.radius){const l=i.x-o.center.x,c=i.z-o.center.z;return l*l+c*c<=o.radius*o.radius}return!1},getAreaForAgent(i){const o=s(),l=o.agents.get(i);if(!l)return null;for(const c of o.areas.values())if(this.isPositionInArea({x:l.position.x,z:l.position.z},c))return c;return null},setAreasFromServer(i){e(o=>{const l=new Map;for(let c=0;c<i.length;c++){const d=i[c];d.directories||(d.directories=[]),(d.zIndex===void 0||d.zIndex===null)&&(d.zIndex=c),d.archived===void 0&&(d.archived=!1),l.set(d.id,d)}o.areas=l}),t()},getAreasInZOrder(){return Array.from(s().areas.values()).sort((o,l)=>(o.zIndex??0)-(l.zIndex??0))},getNextZIndex(){const i=Array.from(s().areas.values());return i.length===0?0:Math.max(...i.map(l=>l.zIndex??0))+1},bringAreaToFront(i){const o=s(),l=o.areas.get(i);if(!l)return;const c=Array.from(o.areas.values()),d=c.length===0?-1:Math.max(...c.map(b=>b.zIndex??0)),f=d+1,p=l.zIndex??0,g=c.filter(b=>(b.zIndex??0)===d);p===d&&g.length===1||(e(b=>{b.areas.get(i).zIndex=f}),a(),t())},sendAreaToBack(i){const o=s(),l=o.areas.get(i);if(!l)return;const c=Array.from(o.areas.values()),d=Math.min(...c.map(g=>g.zIndex??0)),f=l.zIndex??0,p=c.filter(g=>(g.zIndex??0)===d);f===d&&p.length===1||(e(g=>{for(const b of g.areas.values())b.id!==i&&(b.zIndex=(b.zIndex??0)+1);g.areas.get(i).zIndex=0}),a(),t())},setAreaZIndex(i,o){s().areas.get(i)&&(e(d=>{d.areas.get(i).zIndex=o}),a(),t())},archiveArea(i,o){const c=s().areas.get(i);if(!(!c||c.archived)){if(o)for(const d of c.assignedAgentIds)o(d);e(d=>{const f=d.areas.get(i);f.archived=!0,f.archivedAt=Date.now(),f.originalCenter={...f.center},d.selectedAreaId===i&&(d.selectedAreaId=null)}),a(),t()}},restoreArchivedArea(i,o){const l=s(),c=l.areas.get(i);if(!c||!c.archived)return;const d=c.center,f=o||c.originalCenter||c.center,p=f.x-d.x,g=f.z-d.z,b=Array.from(l.areas.values()),w=(b.length===0?-1:Math.max(...b.map(k=>k.zIndex??0)))+1;e(k=>{const S=k.areas.get(i);if(S.archived=!1,S.archivedAt=void 0,S.center=f,S.zIndex=w,p!==0||g!==0)for(const j of S.assignedAgentIds){const C=k.agents.get(j);C&&(C.position={x:C.position.x+p,y:C.position.y,z:C.position.z+g})}}),a(),t()},getArchivedAreas(){return Array.from(s().areas.values()).filter(i=>i.archived===!0)},getVisibleAreas(){return Array.from(s().areas.values()).filter(i=>!i.archived)},isAgentInArchivedArea(i){const o=s();for(const l of o.areas.values())if(l.archived&&l.assignedAgentIds.includes(i))return!0;return!1}}}function gB(s,e,t,n){const a=()=>{var l;const o=Array.from(s().buildings.values());(l=n())==null||l({type:"sync_buildings",payload:o})},i={selectBuilding(o){e(l=>{l.selectedBuildingIds.clear(),o&&l.selectedBuildingIds.add(o)}),t()},selectMultipleBuildings(o){e(l=>{l.selectedBuildingIds.clear();for(const c of o)l.selectedBuildingIds.add(c)}),t()},toggleBuildingSelection(o){e(l=>{l.selectedBuildingIds.has(o)?l.selectedBuildingIds.delete(o):l.selectedBuildingIds.add(o)}),t()},isBuildingSelected(o){return s().selectedBuildingIds.has(o)},getSelectedBuildingIds(){return Array.from(s().selectedBuildingIds)},deleteSelectedBuildings(){var l,c,d;const o=s();for(const f of o.selectedBuildingIds){const p=o.buildings.get(f);((l=p==null?void 0:p.pm2)!=null&&l.enabled||(c=p==null?void 0:p.docker)!=null&&c.enabled)&&((d=n())==null||d({type:"building_command",payload:{buildingId:f,command:"delete"}}))}e(f=>{const p=new Map(f.buildings);for(const g of f.selectedBuildingIds)p.delete(g);f.buildings=p,f.selectedBuildingIds.clear()}),a(),t()},addBuilding(o){e(l=>{const c=new Map(l.buildings);c.set(o.id,o),l.buildings=c}),a(),t()},updateBuilding(o,l){const d=s().buildings.get(o);d&&(e(f=>{const p=new Map(f.buildings);p.set(o,{...d,...l}),f.buildings=p}),a(),t())},updateBuildingLocal(o,l){const d=s().buildings.get(o);d&&(e(f=>{const p=new Map(f.buildings);p.set(o,{...d,...l}),f.buildings=p}),t())},deleteBuilding(o){var d,f,p;const c=s().buildings.get(o);((d=c==null?void 0:c.pm2)!=null&&d.enabled||(f=c==null?void 0:c.docker)!=null&&f.enabled)&&((p=n())==null||p({type:"building_command",payload:{buildingId:o,command:"delete"}})),e(g=>{const b=new Map(g.buildings);b.delete(o),g.buildings=b,g.selectedBuildingIds.delete(o)}),a(),t()},moveBuilding(o,l){const d=s().buildings.get(o);d&&(e(f=>{const p=new Map(f.buildings);p.set(o,{...d,position:l}),f.buildings=p}),a(),t())},updateBuildingPosition(o,l){i.moveBuilding(o,l)},createBuilding(o){const l={...o,id:`building_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,status:"stopped",createdAt:Date.now()};i.addBuilding(l)},sendBuildingCommand(o,l){var c;(c=n())==null||c({type:"building_command",payload:{buildingId:o,command:l}})},addBuildingLogs(o,l){e(c=>{const f=[...c.buildingLogs.get(o)||[],l];f.length>500&&f.splice(0,f.length-500);const p=new Map(c.buildingLogs);p.set(o,f),c.buildingLogs=p}),t()},getBuildingLogs(o){return s().buildingLogs.get(o)||[]},clearBuildingLogs(o){e(l=>{const c=new Map(l.buildingLogs);c.delete(o),l.buildingLogs=c}),t()},setBuildingsFromServer(o){e(l=>{const c=new Map;for(const d of o)c.set(d.id,d);l.buildings=c}),t()},updateBuildingFromServer(o){e(l=>{const c=new Map(l.buildings);c.set(o.id,o),l.buildings=c}),t()},removeBuildingFromServer(o){e(l=>{const c=new Map(l.buildings);c.delete(o),l.buildings=c,l.selectedBuildingIds.delete(o)}),t()},startLogStreaming(o,l=100){var d,f,p;const c=s().buildings.get(o);e(g=>{const b=new Map(g.streamingBuildingLogs);b.set(o,""),g.streamingBuildingLogs=b}),(d=c==null?void 0:c.docker)!=null&&d.enabled?(f=n())==null||f({type:"docker_logs_start",payload:{buildingId:o,lines:l}}):(p=n())==null||p({type:"pm2_logs_start",payload:{buildingId:o,lines:l}})},stopLogStreaming(o){var c,d,f;const l=s().buildings.get(o);(c=l==null?void 0:l.docker)!=null&&c.enabled?(d=n())==null||d({type:"docker_logs_stop",payload:{buildingId:o}}):(f=n())==null||f({type:"pm2_logs_stop",payload:{buildingId:o}})},appendStreamingLogChunk(o,l){e(c=>{const d=c.streamingBuildingLogs.get(o)||"",f=500*1024;let p=d+l;if(p.length>f){const b=p.indexOf(`
|
|
148
|
+
`,side:JN});a.add(new Pe(i,o)),a.add(new Qy(16777215,1));const l=n.fromScene(a,.04).texture;t.environment=l,n.dispose(),i.dispose(),o.dispose()}createInputCallbacks(){return{onAgentClick:(e,t)=>this.inputEventHandlers.handleAgentClick(e,t),onAgentDoubleClick:e=>this.inputEventHandlers.handleAgentDoubleClick(e),onAgentHover:(e,t)=>this.inputEventHandlers.handleAgentHover(e,t),onGroundClick:()=>this.inputEventHandlers.handleGroundClick(),onMoveCommand:(e,t)=>this.inputEventHandlers.handleMoveCommand(e,t),onSelectionBox:(e,t)=>this.inputEventHandlers.handleSelectionBox(e,t),onDrawStart:e=>this.drawingManager.startDrawing(e),onDrawMove:e=>this.drawingManager.updateDrawing(e),onDrawEnd:e=>this.drawingManager.finishDrawing(e),onAreaRightClick:e=>this.inputEventHandlers.handleAreaRightClick(e),onAreaClick:e=>this.inputEventHandlers.handleAreaClick(e),onAreaDoubleClick:e=>this.inputEventHandlers.handleAreaDoubleClick(e),onResizeStart:(e,t)=>this.drawingManager.startResize(e,t),onResizeMove:e=>this.drawingManager.updateResize(e),onResizeEnd:()=>this.drawingManager.finishResize(),onGroundClickOutsideArea:()=>this.inputEventHandlers.handleGroundClickOutsideArea(),onFolderIconClick:(e,t)=>{var n;t?U.openFileExplorerForAreaFolder(e,t):U.openFileExplorerForArea(e),(n=this.onFolderIconClickCallback)==null||n.call(this,e)},onBuildingClick:(e,t)=>this.inputEventHandlers.handleBuildingClick(e,t),onBuildingDoubleClick:e=>this.inputEventHandlers.handleBuildingDoubleClick(e),onBuildingHover:(e,t)=>this.inputEventHandlers.handleBuildingHover(e,t),onBuildingDragStart:()=>{},onBuildingDragMove:(e,t)=>this.buildingManager.setBuildingPosition(e,t),onBuildingDragEnd:(e,t)=>U.updateBuildingPosition(e,t),onContextMenu:(e,t,n)=>this.callbackManager.triggerContextMenu(e,t,n),onActivity:()=>this.renderLoop.markActivity(),onToggleTerminal:()=>U.toggleTerminal()}}setupInputHandlerHelpers(){this.inputHandler.setDrawingModeChecker(()=>this.drawingManager.isInDrawingMode()),this.inputHandler.setResizeHandlers(()=>this.drawingManager.getResizeHandles(),()=>this.drawingManager.isCurrentlyResizing()),this.inputHandler.setAreaAtPositionGetter(e=>this.drawingManager.getAreaAtPosition(e)),this.inputHandler.setFolderIconMeshesGetter(()=>this.drawingManager.getFolderIconMeshes()),this.inputHandler.setBuildingAtPositionGetter(e=>{const t=this.buildingManager.getBuildingAtPosition(e);return t?{id:t.id}:null}),this.inputHandler.setBuildingPositionsGetter(()=>{const e=new Map;for(const[t,n]of this.buildingManager.getBuildingMeshData())e.set(t,n.group.position.clone());return e})}setupEventListeners(e){window.addEventListener("resize",this.onWindowResize),this.resizeObserver=new ResizeObserver(()=>this.onWindowResize()),e.parentElement&&this.resizeObserver.observe(e.parentElement),e.addEventListener("webglcontextlost",this.onContextLost),e.addEventListener("webglcontextrestored",this.onContextRestored)}updateInputHandlerReferences(){this.inputHandler.setReferences(this.battlefield.getGround(),this.agentManager.getAgentMeshes())}updateBattlefield(e,t){t-this.lastTimeUpdate>6e4&&(this.battlefield.updateTimeOfDay(),this.lastTimeUpdate=t),this.battlefield.updateGalacticAnimation(e),this.battlefield.updateCloudAnimation(e)}updateAnimations(e){const t=this.movementAnimator.update(this.agentManager.getAgentMeshes(),e);return this.effectsManager.update(),this.buildingManager.update(e),t}updateProceduralAnimations(e){if(this.proceduralBodiesDirty){this.proceduralBodiesCache.clear();for(const[t,n]of this.agentManager.getAgentMeshes())if(this.proceduralAnimator.has(t)&&n.animations.size===0){const a=n.group.getObjectByName("characterBody");a&&this.proceduralBodiesCache.set(t,a)}this.proceduralBodiesDirty=!1}this.proceduralBodiesCache.size>0&&this.proceduralAnimator.update(e,this.proceduralBodiesCache)}updateIndicatorScales(e,t,n){for(const[,a]of t){const i=e.position.distanceTo(a.group.position),o=Math.max(.5,Math.min(2.5,i/15))*n,l=a.group.userData.isBoss===!0,c=a.group.getObjectByName("statusBar"),d=a.group.getObjectByName("nameLabelSprite");if(c){const p=typeof c.userData.baseIndicatorScale=="number"?c.userData.baseIndicatorScale:l?2:1.6,g=typeof c.userData.aspectRatio=="number"?c.userData.aspectRatio:2560/4096;c.scale.set(p*o,p*g*o,1)}if(d){const p=typeof d.userData.baseIndicatorScale=="number"?d.userData.baseIndicatorScale:l?1.5:1.25,y=Math.max(l?1.35:1.1,Math.min(l?1.65:1.35,p)),w=typeof d.userData.aspectRatio=="number"?d.userData.aspectRatio:1024/4096;d.scale.set(y*o,y*w*o,1)}const f=a.group.getObjectByName("combinedUI");if(f){const p=typeof f.userData.baseIndicatorScale=="number"?f.userData.baseIndicatorScale:l?3:2.4,g=typeof f.userData.aspectRatio=="number"?f.userData.aspectRatio:1024/2048;f.scale.set(p*o,p*g*o,1)}if(!c&&!f){const p=a.group.getObjectByName("nameLabel");if(p){const y=.3*o;p.scale.set(y*(p.userData.aspectRatio||2),y,1)}const g=a.group.getObjectByName("manaBar");g&&g.scale.set(.9,.14,1);const b=a.group.getObjectByName("idleTimer");b&&b.scale.set(.9*o,.14*o,1)}}for(const[,a]of this.buildingManager.getBuildingMeshData()){const i=e.position.distanceTo(a.group.position),o=Math.max(.5,Math.min(2.5,i/15))*n,l=a.group.getObjectByName("buildingLabel");if(l){const c=.3*o;l.scale.set(c*(l.userData.aspectRatio||2),c,1)}}this.effectsManager.updateWithCamera(e)}async loadCharacterModels(){await this.agentManager.loadCharacterModels()}upgradeAgentModels(){this.agentManager.upgradeAgentModels(),this.updateInputHandlerReferences()}addAgent(e){this.agentManager.addAgent(e)}removeAgent(e){this.agentManager.removeAgent(e),this.updateInputHandlerReferences()}updateAgent(e,t=!1){this.agentManager.updateAgent(e,t)}syncAgents(e){this.agentManager.syncAgents(e)}setCustomAgentClasses(e){this.agentManager.setCustomAgentClasses(e)}refreshSelectionVisuals(){this.selectionManager.refreshSelectionVisuals()}createMoveOrderEffect(e){this.effectsManager.createMoveOrderEffect(e)}showToolBubble(e,t,n){this.effectsManager.setAgentMeshes(this.agentManager.getAgentMeshes()),this.effectsManager.createSpeechBubble(e,t,n)}showDelegationEffect(e,t){this.effectsManager.setAgentMeshes(this.agentManager.getAgentMeshes()),this.effectsManager.createDelegationEffect(e,t)}addSubagentEffect(e,t,n,a){this.effectsManager.setAgentMeshes(this.agentManager.getAgentMeshes()),this.effectsManager.addSubagentEffect(e,t,n,a)}completeSubagentEffect(e){this.effectsManager.completeSubagentEffect(e)}removeSubagentEffect(e){this.effectsManager.removeSubagentEffect(e)}focusAgent(e){this.cameraManager.focusAgent(e)}callSubordinates(e){var o;const n=U.getState().agents.get(e);if(!n||!(n.isBoss||n.class==="boss")||!((o=n.subordinateIds)!=null&&o.length))return;const a=new gt(n.position.x,n.position.y,n.position.z),i=this.inputHandler.calculateFormationPositions(a,n.subordinateIds.length);this.effectsManager.createMoveOrderEffect(a.clone()),n.subordinateIds.forEach((l,c)=>{const d=this.agentManager.getAgentMeshes().get(l);U.moveAgent(l,i[c]),d&&this.movementAnimator.startMovement(l,d,i[c])})}setDrawingTool(e){this.drawingManager.setTool(e),U.setActiveTool(e)}syncAreas(){this.drawingManager.syncFromStore()}highlightArea(e){this.drawingManager.highlightArea(e)}clearAreaSelection(){this.drawingManager.highlightArea(null)}addBuilding(e){this.buildingManager.addBuilding(e)}removeBuilding(e){this.buildingManager.removeBuilding(e)}updateBuilding(e){this.buildingManager.updateBuilding(e)}syncBuildings(){this.buildingManager.syncFromStore()}highlightBuilding(e){this.buildingManager.highlightBuilding(e)}setOnBuildingClick(e){this.callbackManager.setOnBuildingClick(e)}setOnBuildingDoubleClick(e){this.callbackManager.setOnBuildingDoubleClick(e)}setOnContextMenu(e){this.callbackManager.setOnContextMenu(e)}setOnAgentHover(e){this.callbackManager.setOnAgentHover(e)}setOnBuildingHover(e){this.callbackManager.setOnBuildingHover(e)}setOnGroundClick(e){this.callbackManager.setOnGroundClick(e)}setOnAreaDoubleClick(e){this.callbackManager.setOnAreaDoubleClick(e)}setOnFolderIconClick(e){this.onFolderIconClickCallback=e}setOnToast(e){this.agentManager.setOnToast(e)}setCharacterScale(e){this.agentManager.setCharacterScale(e),this.selectionManager.setCharacterScale(e)}setIndicatorScale(e){this.renderLoop.setIndicatorScale(e),this.effectsManager.setIndicatorScale(e)}setFpsLimit(e){this.renderLoop.setFpsLimit(e)}setPowerSaving(e){this.renderLoop.setPowerSaving(e)}setGridVisible(e){this.battlefield.setGridVisible(e)}setDebugTime(e){this.battlefield.setDebugTime(e)}setTimeMode(e){this.battlefield.setTimeMode(e)}setTerrainConfig(e){this.battlefield.setTerrainConfig(e),e.brightness!==void 0&&(this.drawingManager.setBrightness(e.brightness),this.buildingManager.setBrightness(e.brightness),this.agentManager.setBrightness(e.brightness))}setFloorStyle(e,t=!1){this.battlefield.setFloorStyle(e,t)}setIdleAnimation(e){this.agentManager.setIdleAnimation(e)}setWorkingAnimation(e){this.agentManager.setWorkingAnimation(e)}setAgentModelStyle(e){this.agentManager.setModelStyle(e)}getAgentModelStyle(){return this.agentManager.getModelStyle()}setGlobalSaturation(e){this.sceneCore.setSaturation(e)}getGlobalSaturation(){return this.sceneCore.getSaturation()}setPostProcessingEnabled(e){this.sceneCore.setPostProcessingEnabled(e)}reattach(e,t){var i,o;console.log("[SceneManager] Reattaching to new canvas (HMR)"),this.isReattaching=!0,this.renderLoop.stop(),(i=this.resizeObserver)==null||i.disconnect();const n=this.sceneCore.getCanvas();n.removeEventListener("webglcontextlost",this.onContextLost),n.removeEventListener("webglcontextrestored",this.onContextRestored),this.sceneCore.reattach(e),this.cameraManager.recreateControls(this.sceneCore.getRenderer()),this.sceneCore.updateCamera(this.cameraManager.getCamera()),e.addEventListener("webglcontextlost",this.onContextLost),e.addEventListener("webglcontextrestored",this.onContextRestored),this.inputHandler.reattach(e,t,this.cameraManager.getControls()),this.updateInputHandlerReferences(),e.parentElement&&((o=this.resizeObserver)==null||o.observe(e.parentElement)),this.onWindowResize();const a=(l=0)=>{this.isReattaching=!1,e.isConnected&&this.sceneCore.getRenderer()?(console.log("[SceneManager] Restarting animation loop after HMR reattach"),this.renderLoop.start()):l<10?(console.log(`[SceneManager] Canvas not connected, retrying... (attempt ${l+1})`),this.isReattaching=!0,requestAnimationFrame(()=>a(l+1))):console.warn("[SceneManager] Failed to restart animation loop - canvas never connected")};requestAnimationFrame(()=>a())}getMemoryDiagnostics(){var t;const e=this.sceneCore.getRenderer().info;return{threeJs:e!=null&&e.memory?{geometries:e.memory.geometries,textures:e.memory.textures,programs:((t=e.programs)==null?void 0:t.length)??0}:null,heap:Yl.getUsage(),agentMeshCount:this.agentManager.getAgentMeshes().size,bossLineCount:0}}getRenderStats(){var t,n;const e=(n=(t=this.sceneCore.getRenderer())==null?void 0:t.info)==null?void 0:n.render;return e?{calls:e.calls,triangles:e.triangles,points:e.points,lines:e.lines}:null}get renderer(){return this.sceneCore.getRenderer()}logMemoryDiagnostics(){const e=this.getMemoryDiagnostics(),t=this.characterLoader.getCacheStats();console.group("%c[SceneManager Memory]","color: #ff6600; font-weight: bold"),e.threeJs&&console.log(`Three.js: ${e.threeJs.geometries} geometries, ${e.threeJs.textures} textures, ${e.threeJs.programs} programs`),e.heap&&console.log(`Heap: ${e.heap.usedMB}MB / ${e.heap.totalMB}MB (limit: ${e.heap.limitMB}MB)`),console.log(`Agent meshes: ${e.agentMeshCount}`),console.log(`CharacterLoader cache: ${t.builtInModels} built-in, ${t.customModels} custom`),t.modelNames.length>0&&console.log(` Built-in models: ${t.modelNames.join(", ")}`),t.customModelIds.length>0&&console.log(` Custom models: ${t.customModelIds.join(", ")}`),console.groupEnd()}dispose(){var n;console.log("%c[SceneManager] dispose() called - starting cleanup","color: #ff0000; font-weight: bold");const e=this.characterLoader.getCacheStats();console.log(`[SceneManager] Pre-dispose: ${e.builtInModels} built-in models, ${e.customModels} custom models`),this.renderLoop.stop(),window.removeEventListener("resize",this.onWindowResize);const t=this.sceneCore.getCanvas();t.removeEventListener("webglcontextlost",this.onContextLost),t.removeEventListener("webglcontextrestored",this.onContextRestored),(n=this.resizeObserver)==null||n.disconnect(),this.resizeObserver=null,this.inputHandler.dispose(),this.drawingManager.dispose(),this.buildingManager.dispose(),this.effectsManager.dispose(),this.agentManager.dispose(),this.selectionManager.dispose(),this.battlefield.dispose(),this.characterLoader.dispose(),this.cameraManager.dispose(),this.sceneCore.dispose(),console.log("%c[SceneManager] dispose() complete - all resources freed","color: #00ff00; font-weight: bold")}}const jp="tide_webgl_active";typeof window<"u"&&(window.__tidePersistedScene===void 0&&(window.__tidePersistedScene=null),window.__tidePersistedCanvas===void 0&&(window.__tidePersistedCanvas=null),window.__tideWsConnected===void 0&&(window.__tideWsConnected=!1),window.__tideIsPageUnloading===void 0&&(window.__tideIsPageUnloading=!1));function sf(){return typeof window<"u"?window.__tidePersistedScene??null:null}function UA(){return typeof window<"u"?window.__tidePersistedCanvas??null:null}function BI(){return typeof window<"u"?window.__tideWsConnected??!1:!1}function nd(s){typeof window<"u"&&(window.__tidePersistedScene=s)}function Cp(s){typeof window<"u"&&(window.__tidePersistedCanvas=s)}function GA(s){typeof window<"u"&&(window.__tideWsConnected=s)}function FI(s){typeof window<"u"&&(window.__tideIsPageUnloading=s)}function zI(){sessionStorage.setItem(jp,"true")}function Bh(s){FI(!0),sessionStorage.removeItem(jp),TA(),DR(),window.__tideScene&&(window.__tideScene=null);const e=sf();e?(console.log("[App] Calling persistedScene.dispose()"),e.dispose(),nd(null)):console.log("[App] No persistedScene to dispose"),Cp(null),GA(!1);const t=document.getElementById("battlefield");t&&t.remove();const n=document.getElementById("app");n&&(n.innerHTML="")}function $I(){var a,i;if(window.__tideAppInitialized)return;if(window.__tideAppInitialized=!0,sessionStorage.getItem(jp)==="true"&&console.log("[App] Detected unclean shutdown from previous session - forcing cleanup"),window.__tideScene){console.log("[App] Cleaning up stale __tideScene reference");try{(i=(a=window.__tideScene).dispose)==null||i.call(a)}catch{}window.__tideScene=null}const e=sf();if(e){console.log("[App] Cleaning up stale persistedScene");try{e.dispose()}catch{}nd(null)}const t=document.getElementById("battlefield"),n=UA();t&&t!==n&&t.remove(),sessionStorage.removeItem(jp)}function HI(){typeof window>"u"||($I(),window.addEventListener("pageshow",s=>{s.persisted&&(console.log("[App] Page restored from bfcache - cleaning up"),Bh(),window.location.reload())}),window.onunload=()=>Bh(),window.onbeforeunload=s=>{Bh()},window.addEventListener("pagehide",s=>{Bh(`pagehide (persisted=${s.persisted})`)}))}HI();const dj={showTrees:!0,showBushes:!0,showHouse:!0,showLamps:!0,showGrass:!0,showClouds:!0,fogDensity:1,floorStyle:"metal",brightness:1,skyColor:null},hj={saturation:2,roughness:.5,metalness:-1,emissiveBoost:0,envMapIntensity:1,wireframe:!1,colorMode:"normal"},pj={idleAnimation:"sit",workingAnimation:"sprint"},UI=0;function WA(){const s={characterScale:2,indicatorScale:1,gridVisible:!1,timeMode:"day",terrain:dj,modelStyle:hj,animations:pj,fpsLimit:UI},e=qa(dt.CONFIG,null);return e?{characterScale:e.characterScale??s.characterScale,indicatorScale:e.indicatorScale??s.indicatorScale,gridVisible:e.gridVisible??s.gridVisible,timeMode:e.timeMode??s.timeMode,terrain:{...dj,...e.terrain},modelStyle:{...hj,...e.modelStyle},animations:{...pj,...e.animations},fpsLimit:e.fpsLimit??s.fpsLimit}:s}function GI(s){bi(dt.CONFIG,s)}typeof window<"u"&&!window.__tideHmrRefreshListeners&&(window.__tideHmrRefreshListeners=new Set);function qA(){console.log("[Tide HMR] Manual scene refresh triggered");const s=sf();if(s){try{s.dispose()}catch(t){console.warn("[Tide HMR] Error disposing scene:",t)}nd(null)}Cp(null),window.__tideScene&&(window.__tideScene=null);const e=document.getElementById("battlefield");if(e){const t=e.getContext("webgl2")||e.getContext("webgl");if(t){const n=t.getExtension("WEBGL_lose_context");n&&n.loseContext()}}window.__tideHmrPendingSceneChanges=!1,window.location.reload()}typeof window<"u"&&(window.__tideHmrSceneRefresh=qA);function WI({canvasRef:s,selectionBoxRef:e,showToast:t,showAgentNotification:n,toolboxModal:a,contextMenu:i,setHoveredAgentPopup:o,setBuildingPopup:l,getBuildingPopup:c,openBuildingModal:d,openPM2LogsModal:f,openBossLogsModal:p,openDatabasePanel:g}){const b=x.useRef(null),y=x.useRef(null),w=x.useRef(null);return x.useEffect(()=>{if(!s.current||!e.current)return;let k=!1;const S=sf(),C=UA()===s.current;function A(){var _,M,$,E,D,P,R,L;(_=b.current)==null||_.setOnToast(t),(M=b.current)==null||M.setOnBuildingClick((z,B)=>{U.selectBuilding(z);const F=U.getState().buildings.get(z);(F==null?void 0:F.type)==="folder"&&F.folderPath?U.openFileExplorer(F.folderPath):(F==null?void 0:F.type)==="server"||(F==null?void 0:F.type)==="boss"||(F==null?void 0:F.type)==="database"?(y.current&&clearTimeout(y.current),y.current=setTimeout(()=>{l({buildingId:z,screenPos:B,fromClick:!0}),y.current=null},150)):d(z)}),($=b.current)==null||$.setOnContextMenu((z,B,F)=>{i.open(z,B,F)}),(E=b.current)==null||E.setOnAgentHover(()=>{}),(D=b.current)==null||D.setOnBuildingHover((z,B)=>{const F=c();if(z&&B){const H=U.getState().buildings.get(z);((H==null?void 0:H.type)==="server"||(H==null?void 0:H.type)==="boss"||(H==null?void 0:H.type)==="database")&&!(F!=null&&F.fromClick)&&l({buildingId:z,screenPos:B,fromClick:!1})}else F!=null&&F.fromClick||l(null)}),(P=b.current)==null||P.setOnGroundClick(()=>{l(null)}),(R=b.current)==null||R.setOnAreaDoubleClick(z=>{U.selectArea(z),a.open()}),(L=b.current)==null||L.setOnBuildingDoubleClick(z=>{var F;y.current&&(clearTimeout(y.current),y.current=null),l(null);const B=U.getState().buildings.get(z);(B==null?void 0:B.type)==="server"&&((F=B.pm2)!=null&&F.enabled)?f==null||f(z):(B==null?void 0:B.type)==="boss"?p==null||p(z):(B==null?void 0:B.type)==="database"?g==null||g(z):(B==null?void 0:B.type)==="folder"&&B.folderPath?U.openFileExplorer(B.folderPath):d(z)})}if(S&&C){b.current=S,console.log("[Tide] Reusing existing scene (StrictMode remount)");const _=U.getState();S.syncAreas(),S.syncBuildings(),_.agents.size>0&&(console.log("[Tide] Re-syncing agents from store after remount:",_.agents.size),S.syncAgents(Array.from(_.agents.values()))),A()}else{const _=s.current,M=e.current,$=()=>{if(k){console.log("[Tide] Effect cleaned up before scene init, skipping");return}if(!_.isConnected||!M.isConnected){console.warn("[Tide] Canvas disconnected before initialization");return}(!_.clientWidth||!_.clientHeight)&&(console.log("[Tide] Canvas has no CSS dimensions, using window fallback"),_.style.width="100%",_.style.height="100%",_.offsetHeight),(!_.clientWidth||!_.clientHeight)&&(_.width=window.innerWidth,_.height=window.innerHeight),zI();try{const E=new II(_,M);b.current=E,nd(E),Cp(_);const D=WA();E.setCharacterScale(D.characterScale),E.setIndicatorScale(D.indicatorScale),E.setGridVisible(D.gridVisible),E.setTimeMode(D.timeMode),E.setTerrainConfig(D.terrain),E.setFloorStyle(D.terrain.floorStyle,!0),E.setAgentModelStyle(D.modelStyle),E.setIdleAnimation(D.animations.idleAnimation),E.setWorkingAnimation(D.animations.workingAnimation),E.setFpsLimit(D.fpsLimit),E.syncAreas(),E.syncBuildings(),E.loadCharacterModels().then(()=>{console.log("[Tide] Character models ready");const P=U.getState();P.customAgentClasses.size>0&&(console.log("[Tide] Applying custom classes from store:",P.customAgentClasses.size),E.setCustomAgentClasses(P.customAgentClasses)),P.agents.size>0&&(console.log("[Tide] Syncing agents from store:",P.agents.size),E.syncAgents(Array.from(P.agents.values()))),E.upgradeAgentModels()}).catch(P=>{console.warn("[Tide] Some models failed to load, using fallback:",P)}),A()}catch(E){console.error("[Tide] Failed to initialize 3D scene:",E)}};w.current=requestAnimationFrame($)}return NA({onAgentCreated:_=>{var M,$;(M=b.current)==null||M.addAgent(_),($=window.__spawnModalSuccess)==null||$.call(window)},onAgentUpdated:(_,M)=>{var $;($=b.current)==null||$.updateAgent(_,M)},onAgentDeleted:_=>{var M;(M=b.current)==null||M.removeAgent(_)},onAgentsSync:_=>{var M;(M=b.current)==null||M.syncAgents(_)},onAreasSync:()=>{var M,$;(M=b.current)==null||M.syncAreas();const _=Array.from(U.getState().agents.values());($=b.current)==null||$.syncAgents(_)},onSpawnError:()=>{var _;(_=window.__spawnModalError)==null||_.call(window)},onSpawnSuccess:()=>{var _;(_=window.__spawnModalSuccess)==null||_.call(window)},onDirectoryNotFound:_=>{var M;(M=window.__spawnModalDirNotFound)==null||M.call(window,_)},onToolUse:(_,M,$)=>{var E;(E=b.current)==null||E.showToolBubble(_,M,$)},onDelegation:(_,M)=>{var $;($=b.current)==null||$.showDelegationEffect(_,M)},onCustomClassesSync:_=>{var M,$;(M=b.current)==null||M.setCustomAgentClasses(_),($=b.current)==null||$.upgradeAgentModels()},onBuildingUpdated:_=>{var M;(M=b.current)==null||M.updateBuilding(_)},onSubagentStarted:_=>{var M;(M=b.current)==null||M.addSubagentEffect(_.id,_.parentAgentId,_.name,_.subagentType)},onSubagentCompleted:_=>{var E;const M=U.getSubagent(_)||U.getSubagentByToolUseId(_),$=(M==null?void 0:M.id)||_;(E=b.current)==null||E.completeSubagentEffect($),setTimeout(()=>{var D;(D=b.current)==null||D.removeSubagentEffect($)},3e4)}}),()=>{var _;k=!0,w.current!==null&&(cancelAnimationFrame(w.current),w.current=null),!((_=s.current)!=null&&_.isConnected)&&b.current&&(console.log("[Tide] 3D canvas unmounted - disposing scene to free memory"),PR(),b.current.dispose(),b.current=null,nd(null),Cp(null))}},[s.current,e.current]),b}let sd,Vl;try{sd=require("@capacitor/local-notifications").LocalNotifications,Vl=require("@capacitor/core").Capacitor}catch{}let qI=1;const YI="agent_alerts",YA="tide-notification-tap";function VI(){return typeof window<"u"&&window.innerWidth<=768&&"ontouchstart"in window}function VA(s){if(VI()){U.openTerminalOnMobile(s);return}U.selectAgent(s),U.setTerminalOpen(!0)}function lx(){var s;return((s=Vl==null?void 0:Vl.isNativePlatform)==null?void 0:s.call(Vl))??!1}async function KI(){return lx()?(await sd.requestPermissions()).display==="granted":"Notification"in window?await Notification.requestPermission()==="granted":!1}async function XI(s){const{title:e,body:t,icon:n,data:a}=s;if(lx())await sd.schedule({notifications:[{id:qI++,title:e,body:t,schedule:{at:new Date(Date.now()+100)},extra:a,channelId:YI,smallIcon:"ic_launcher",autoCancel:!0}]});else if("Notification"in window&&Notification.permission==="granted"){const i=new Notification(e,{body:t,icon:n,data:a});i.onclick=()=>{window.focus(),a&&window.dispatchEvent(new CustomEvent(YA,{detail:a}))}}}async function ZI(s){s&&window.addEventListener(YA,e=>{const t=e;t.detail&&s(t.detail)}),lx()&&sd&&await sd.addListener("localNotificationActionPerformed",e=>{s&&e.notification.extra&&s(e.notification.extra)})}function QI({showToast:s,showAgentNotification:e}){const t=x.useRef(!1);x.useEffect(()=>{if(t.current||BI())return;t.current=!0,NA({onToast:s,onReconnect:()=>{U.triggerReconnect()},onAgentNotification:a=>{e(a)}}),td(),GA(!0),KI(),ZI(a=>{a.type==="agent_notification"&&typeof a.agentId=="string"&&VA(a.agentId)});const n=()=>{console.log("[Tide] App resumed from background, reconnecting..."),setTimeout(()=>td(),100)};return window.addEventListener("tideAppResume",n),()=>{window.removeEventListener("tideAppResume",n)}},[s,e])}function JI(s){x.useEffect(()=>{let e="",t="",n=new Map;const a=i=>{var c;let o=!1;const l=new Map;for(const[d,f]of i){const g=`${f.position.x.toFixed(2)},${f.position.z.toFixed(2)},${f.status},${f.class},${f.isBoss},${((c=f.subordinateIds)==null?void 0:c.length)??0}`.split("").reduce((b,y)=>(b<<5)-b+y.charCodeAt(0),0);l.set(d,g),n.get(d)!==g&&(o=!0)}return l.size!==n.size&&(o=!0),{newVersion:l,changed:o}};return U.subscribe(()=>{var g;const i=U.getState(),o=Array.from(i.selectedAgentIds).sort().join(","),l=Array.from(i.selectedBuildingIds).sort().join(","),c=o!==e,d=l!==t,{newVersion:f,changed:p}=a(i.agents);(c||d||p)&&(e=o,t=l,n=f,(g=s.current)==null||g.refreshSelectionVisuals())})},[s])}function eB(s){x.useEffect(()=>{var n;(n=s.current)==null||n.syncAreas();let e=0,t=0;return U.subscribe(()=>{var l,c;const i=U.getState().areas;if(i.size!==e){e=i.size,t=Date.now(),(l=s.current)==null||l.syncAreas();return}let o=0;for(const[d,f]of i){let p=d.charCodeAt(0);p+=(f.width??0)+(f.height??0)+(f.radius??0),p+=Math.floor(f.center.x*100)+Math.floor(f.center.z*100),p+=(f.zIndex??0)*1e3;for(let g=0;g<f.name.length;g++)p+=f.name.charCodeAt(g);for(let g=0;g<f.color.length;g++)p+=f.color.charCodeAt(g);if(f.directoryGitCounts)for(const g of f.directoryGitCounts)p+=(g+1)*7;o^=p|0}o!==t&&(t=o,(c=s.current)==null||c.syncAreas())})},[s])}function tB(s){x.useEffect(()=>{var n;(n=s.current)==null||n.syncBuildings();let e=0,t=0;return U.subscribe(()=>{var l,c;const i=U.getState().buildings;if(i.size!==e){e=i.size,t=Date.now(),(l=s.current)==null||l.syncBuildings();return}let o=0;for(const[d,f]of i){o^=f.position.x*1e3+f.position.z|0,o^=(f.scale||1)*1e4|0;const p=`${f.style||""}${f.name}${f.status}${f.gitChangesCount||0}`;for(let g=0;g<p.length;g++)o=(o<<5)-o+p.charCodeAt(g)|0}o!==t&&(t=o,(c=s.current)==null||c.syncBuildings())})},[s])}function nB(s,e){x.useEffect(()=>{var t;(t=s.current)==null||t.highlightArea(e)},[s,e])}function sB(s,e){x.useEffect(()=>{var t;(t=s.current)==null||t.setPowerSaving(e)},[s,e])}function aB({sceneRef:s,spawnModal:e,commanderModal:t,explorerModal:n,spotlightModal:a,deleteConfirmModal:i,onRequestBuildingDelete:o,onOpenDatabasePanel:l,onCloseDatabasePanel:c,databasePanelOpen:d}){x.useEffect(()=>{const f=p=>{var P,R,L,z;const g=U.getShortcuts(),b=p.target,y=b.tagName==="INPUT"||b.tagName==="TEXTAREA",w=g.find(B=>B.id==="deselect-all");if(xt(p,w)){if(ay()){p.preventDefault();return}const B=U.getState();if(B.activeTool==="rectangle"||B.activeTool==="circle"){(P=s.current)==null||P.setDrawingTool(null),typeof window<"u"&&window.__tideScene2D_setDrawingTool&&window.__tideScene2D_setDrawingTool(null);return}e.isOpen?e.close():B.terminalOpen?(U.setTerminalOpen(!1),document.activeElement instanceof HTMLElement&&document.activeElement.blur()):(U.deselectAll(),(R=s.current)==null||R.refreshSelectionVisuals())}for(let B=1;B<=9;B++){const F=g.find(H=>H.id===`select-agent-${B}`);if(xt(p,F)){p.preventDefault();const H=U.getState(),G=B-1,K=Array.from(H.agents.keys());G<K.length&&(U.selectAgent(K[G]),(L=s.current)==null||L.refreshSelectionVisuals());return}}const k=g.find(B=>B.id==="spawn-agent");if(xt(p,k)){p.preventDefault(),e.open();return}const S=g.find(B=>B.id==="toggle-commander-tab");if(xt(p,S)&&!y){p.preventDefault(),t.toggle();return}const j=g.find(B=>B.id==="toggle-commander");if(xt(p,j)){p.preventDefault(),t.toggle();return}const C=g.find(B=>B.id==="toggle-file-explorer");if(xt(p,C)){p.preventDefault();const B=U.getState();if(n.isOpen||B.explorerFolderPath!==null||B.explorerAreaId!==null)n.close(),U.closeFileExplorer();else{const H=U.getLastExplorerState();if((H==null?void 0:H.type)==="folder")U.openFileExplorer(H.path);else if((H==null?void 0:H.type)==="area")if(B.areas.has(H.areaId))n.open(H.areaId);else{const G=Array.from(B.areas.values()).filter(K=>K.directories&&K.directories.length>0);G.length>0&&n.open(G[0].id)}else{const G=Array.from(B.areas.values()).filter(K=>K.directories&&K.directories.length>0);G.length>0&&n.open(G[0].id)}}return}if(p.altKey&&!p.ctrlKey&&!p.shiftKey&&!p.metaKey&&p.code==="KeyD"){if(p.preventDefault(),p.stopPropagation(),d){c();return}const B=localStorage.getItem("tide-commander-last-database-building"),F=U.getState();if(B){const H=F.buildings.get(B);if((H==null?void 0:H.type)==="database"){l(B);return}}for(const[H,G]of F.buildings)if(G.type==="database"){l(H);return}return}const A=g.find(B=>B.id==="toggle-spotlight");if(xt(p,A)||p.altKey&&!p.ctrlKey&&!p.metaKey&&p.code==="KeyP"){console.log("[useKeyboardShortcuts] Spotlight shortcut matched!",{spotlightShortcut:A,altKey:p.altKey,code:p.code}),p.preventDefault(),a.toggle();return}const _=g.find(B=>B.id==="toggle-2d-view");if(xt(p,_)){p.preventDefault();const B=U.getState().viewMode,F=B==="3d"?"2d":B==="2d"?"dashboard":"3d";U.setViewMode(F);return}const M=g.find(B=>B.id==="next-working-agent"),$=g.find(B=>B.id==="prev-working-agent");if((xt(p,M)||xt(p,$))&&!y){const B=U.getState();if(B.terminalOpen)return;const F=Array.from(B.agents.values());let H=F.filter(I=>B.agentsWithUnseenOutput.has(I.id));if(H.length===0&&(H=F.filter(I=>I.status==="working")),H.length===0)return;p.preventDefault();const G=B.selectedAgentIds.size===1?Array.from(B.selectedAgentIds)[0]:null,K=G?H.findIndex(I=>I.id===G):-1;let X;xt(p,M)?X=K===-1?0:(K+1)%H.length:X=K===-1?H.length-1:(K-1+H.length)%H.length,U.selectAgent(H[X].id),(z=s.current)==null||z.refreshSelectionVisuals();return}const E=g.find(B=>B.id==="delete-selected"),D=g.find(B=>B.id==="delete-selected-backspace");if((xt(p,E)||xt(p,D))&&!y){const B=U.getState();if(B.selectedAgentIds.size>0){p.preventDefault(),i.open();return}if(B.selectedBuildingIds.size>0){p.preventDefault(),o();return}return}};return document.addEventListener("keydown",f,!0),()=>document.removeEventListener("keydown",f,!0)},[s,e,t,n,a,i,o,l,c,d])}function iB(){const[s,e]=x.useState(!1);return window.__tideSetBackNavModal=e,x.useEffect(()=>{if(!(window.innerWidth<=768))return;if(window.__tideBackNavSetup){window.location.hash.includes("app")||(window.location.hash="#app");return}window.__tideBackNavSetup=!0,window.location.hash.includes("app")||(window.location.hash="#app");const a=()=>{var o;window.innerWidth>768||window.location.hash.includes("app")||(window.location.hash="#app",ay()||(o=window.__tideSetBackNavModal)==null||o.call(window,!0))},i=()=>{var o;window.innerWidth>768||(window.location.hash.includes("app")||(window.location.hash="#app"),window.location.hash==="#app"&&setTimeout(()=>{window.location.hash==="#app"&&!window.location.hash.includes("app2")&&(window.history.pushState(null,"","#app2"),window.history.pushState(null,"","#app"))},50),ay()||(o=window.__tideSetBackNavModal)==null||o.call(window,!0))};window.history.pushState(null,"","#app1"),window.history.pushState(null,"","#app2"),window.history.pushState(null,"","#app"),window.addEventListener("hashchange",a),window.addEventListener("popstate",i)},[]),{showBackNavModal:s,setShowBackNavModal:e,handleLeave:()=>{e(!1);const n=window.__tideHistoryDepth??2;window.history.go(-(n+1))}}}const Qg="agent-order-change";function KA(s){const e=x.useMemo(()=>new Set(s.map(c=>c.id)),[s]),[t,n]=x.useState(()=>qa(dt.AGENT_ORDER,[]));x.useEffect(()=>{const c=d=>{n(d.detail)};return window.addEventListener(Qg,c),()=>{window.removeEventListener(Qg,c)}},[]);const a=x.useMemo(()=>{const c=t.filter(g=>e.has(g)),d=s.filter(g=>!c.includes(g.id)).map(g=>g.id),f=[...c,...d],p=new Map(s.map(g=>[g.id,g]));return f.map(g=>p.get(g)).filter(g=>g!==void 0)},[s,t,e]),i=x.useCallback(c=>{n(c),bi(dt.AGENT_ORDER,c),window.dispatchEvent(new CustomEvent(Qg,{detail:c}))},[]),o=x.useCallback((c,d)=>{const f=a.map(g=>g.id),[p]=f.splice(c,1);f.splice(d,0,p),i(f)},[a,i]),l=x.useCallback(()=>{n([]),bi(dt.AGENT_ORDER,[])},[]);return x.useEffect(()=>{if(e.size===0)return;const c=t.filter(d=>e.has(d));c.length!==t.length&&i(c)},[e,t,i]),{orderedAgents:a,moveAgent:o,resetOrder:l}}let ci,by;try{ci=require("@capacitor/core").Capacitor,by=require("@capacitor/core").CapacitorHttp}catch{}const cx="deivid11/tide-commander",rB=`https://api.github.com/repos/${cx}/releases/latest`,oB=`https://api.github.com/repos/${cx}/releases?per_page=3`,lB=3600*1e3,fj="app_update_dismissed_version",mj="0.69.2";function cB(){var f;const[s,e]=x.useState({isChecking:!1,updateAvailable:!1,updateInfo:null,recentReleases:[],error:null,currentVersion:mj}),t=((f=ci==null?void 0:ci.getPlatform)==null?void 0:f.call(ci))==="android"||!1,n=p=>p.replace(/^v/,"").split(".").map(b=>parseInt(b,10)||0),a=(p,g)=>{const b=n(p),y=n(g),w=Math.max(b.length,y.length);for(let k=0;k<w;k++){const S=b[k]||0,j=y[k]||0;if(S>j)return 1;if(S<j)return-1}return 0},i=async p=>{var b;if(ci&&by&&((b=ci.isNativePlatform)==null?void 0:b.call(ci))===!0){const y=await by.get({url:p,headers:{Accept:"application/vnd.github.v3+json"}});return{data:y.data,status:y.status}}else{const y=await fetch(p,{headers:{Accept:"application/vnd.github.v3+json"}});return y.ok?{data:await y.json(),status:y.status}:{data:null,status:y.status}}},o=x.useCallback(async(p=!1)=>{e(g=>({...g,isChecking:!0,error:null}));try{const[g,b]=await Promise.all([i(rB),i(oB)]);if(g.status!==200)throw new Error(`GitHub API error: ${g.status}`);const y=g.data,w=y.tag_name;let k=[];b.status===200&&b.data&&(k=b.data.map(_=>({version:_.tag_name,name:_.name,publishedAt:_.published_at,releaseUrl:_.html_url})));const S=localStorage.getItem(fj);if(!p&&S===w)return e(_=>({..._,isChecking:!1,updateAvailable:!1,recentReleases:k})),null;if(!(a(w,mj)>0))return e(_=>({..._,isChecking:!1,updateAvailable:!1,recentReleases:k})),null;const C=y.assets.find(_=>_.name.endsWith(".apk")&&_.content_type==="application/vnd.android.package-archive"),A={version:w,name:y.name,changelog:y.body,releaseUrl:y.html_url,apkUrl:(C==null?void 0:C.browser_download_url)||null,apkSize:(C==null?void 0:C.size)||null,publishedAt:y.published_at};return e(_=>({..._,isChecking:!1,updateAvailable:!0,updateInfo:A,recentReleases:k})),A}catch(g){const b=g instanceof Error?g.message:"Failed to check for updates";return e(y=>({...y,isChecking:!1,error:b})),null}},[]),l=x.useCallback(async()=>{var p,g,b;if(!((p=s.updateInfo)!=null&&p.apkUrl)){(g=s.updateInfo)!=null&&g.releaseUrl&&window.open(s.updateInfo.releaseUrl,"_blank");return}if(!t){(b=s.updateInfo)!=null&&b.releaseUrl&&window.open(s.updateInfo.releaseUrl,"_blank");return}try{window.open(s.updateInfo.apkUrl,"_system"),e(y=>({...y,error:null}))}catch(y){const w=y instanceof Error?y.message:"Failed to open download";e(k=>({...k,error:w}))}},[s.updateInfo,t]),c=x.useCallback(()=>{s.updateInfo&&localStorage.setItem(fj,s.updateInfo.version),e(p=>({...p,updateAvailable:!1,updateInfo:null}))},[s.updateInfo]),d=x.useCallback(()=>{var p;(p=s.updateInfo)!=null&&p.releaseUrl?window.open(s.updateInfo.releaseUrl,"_blank"):window.open(`https://github.com/${cx}/releases`,"_blank")},[s.updateInfo]);return x.useEffect(()=>{if(!t)return;const p=setTimeout(()=>{o()},5e3),g=setInterval(()=>{o()},lB);return()=>{clearTimeout(p),clearInterval(g)}},[t,o]),{...s,isAndroid:t,checkForUpdate:o,downloadAndInstall:l,dismissUpdate:c,openReleasePage:d}}function As(s){const e=x.useRef(null),t=x.useCallback(a=>{e.current=a.target,a.target===a.currentTarget&&a.stopPropagation()},[]),n=x.useCallback(a=>{a.target===a.currentTarget&&e.current===a.currentTarget&&(a.stopPropagation(),s()),e.current=null},[s]);return{handleMouseDown:t,handleClick:n}}const uB=3e4;function dB(){const s=x.useRef(null);x.useEffect(()=>{const e=async()=>{var o,l;const t=U.getState(),n=new Map,a=new Map;for(const[c,d]of t.buildings){const f=d.folderPath||d.cwd;f&&(a.has(f)||a.set(f,[]),a.get(f).push(c))}for(const[c,d]of a)try{const f=await ht(it(`/api/files/git-status?path=${encodeURIComponent(c)}`));if(!f.ok)continue;const g=((o=(await f.json()).files)==null?void 0:o.length)||0;n.set(c,g);for(const b of d){const y=U.getState().buildings.get(b);y&&y.gitChangesCount!==g&&U.updateBuildingLocal(b,{gitChangesCount:g})}}catch{}const i=new Map;for(const[c,d]of t.areas)d.archived||!d.directories||d.directories.forEach((f,p)=>{f&&(i.has(f)||i.set(f,[]),i.get(f).push({areaId:c,dirIndex:p}))});if(i.size!==0)for(const[c,d]of i)try{let f;if(n.has(c))f=n.get(c);else{const g=await ht(it(`/api/files/git-status?path=${encodeURIComponent(c)}`));if(!g.ok)continue;f=((l=(await g.json()).files)==null?void 0:l.length)||0,n.set(c,f)}const p=new Map;for(const g of d)p.has(g.areaId)||p.set(g.areaId,[]),p.get(g.areaId).push({dirIndex:g.dirIndex,count:f});for(const[g,b]of p){const y=U.getState().areas.get(g);if(!y)continue;const w=y.directoryGitCounts?[...y.directoryGitCounts]:new Array(y.directories.length).fill(0);let k=!1;for(const{dirIndex:S,count:j}of b)w[S]!==j&&(w[S]=j,k=!0);k&&U.updateAreaLocal(g,{directoryGitCounts:w})}}catch{}};return e(),s.current=setInterval(e,uB),()=>{s.current&&(clearInterval(s.current),s.current=null)}},[])}const gj={historyLimit:500,hideCost:!0,showFPS:!1,powerSaving:!1,customAgentNames:[],experimental2DView:!1,experimentalVoiceAssistant:!1,experimentalTTS:!1,experimentalEchoPrompt:!1,externalEditorCommand:""};function hB(s,e,t,n,a){return{setAgents(i){const o=new Map;for(const c of i)o.set(c.id,c),(c.class==="boss"||c.isBoss)&&console.log("[Store.setAgents] Boss agent:",c.name,"subordinateIds:",c.subordinateIds);const l=i.find(c=>c.status==="working");e(c=>{c.agents=o,l&&c.selectedAgentIds.size===0&&(c.selectedAgentIds.add(l.id),c.terminalOpen=!0)}),t()},addAgent(i){e(o=>{const l=new Map(o.agents);l.set(i.id,i),o.agents=l}),t()},updateAgent(i){var f;const l=s().agents.get(i.id),c=(l==null?void 0:l.status)!==i.status;c&&console.log(`[Store] Agent ${i.name} status update: ${l==null?void 0:l.status} → ${i.status}`);let d=!1;e(p=>{const g=new Map(p.agents);g.set(i.id,i),p.agents=g,c&&(l==null?void 0:l.status)==="working"&&i.status==="idle"&&(p.terminalOpen&&p.selectedAgentIds.has(i.id)||(p.agentsWithUnseenOutput=new Set(p.agentsWithUnseenOutput),p.agentsWithUnseenOutput.add(i.id),console.log(`[Store] Agent ${i.name} completed work - marked as unseen`),d=!0))}),d&&a&&a(),t(),c&&console.log(`[Store] Agent ${i.name} status now in store: ${(f=s().agents.get(i.id))==null?void 0:f.status}`)},updateAgentContextStats(i,o){const c=s().agents.get(i);c&&(e(d=>{const f=new Map(d.agents);f.set(i,{...c,contextStats:o,contextUsed:o.totalTokens,contextLimit:o.contextWindow}),d.agents=f}),t())},updateAgentContext(i,o,l){const d=s().agents.get(i);if(d){const f=Math.max(1,l||2e5),p=Math.max(0,Math.min(100,Number((o/f*100).toFixed(1))));e(g=>{const b=new Map(g.agents),y=d.contextStats?{...d.contextStats,totalTokens:o,contextWindow:f,usedPercent:p,lastUpdated:Date.now()}:void 0;b.set(i,{...d,contextUsed:o,contextLimit:f,contextStats:y}),g.agents=b}),t()}},removeAgent(i){const o=s().agentsWithUnseenOutput.has(i);e(l=>{const c=new Map(l.agents);c.delete(i),l.agents=c,l.selectedAgentIds.delete(i),l.agentOutputs.delete(i),l.agentsWithUnseenOutput.has(i)&&(l.agentsWithUnseenOutput=new Set(l.agentsWithUnseenOutput),l.agentsWithUnseenOutput.delete(i))}),o&&a&&a(),t()},selectAgent(i){let o=!1;e(l=>{l.selectedAgentIds.clear(),i&&(l.selectedAgentIds.add(i),l.lastSelectedAgentId=i,l.agentsWithUnseenOutput.has(i)&&(l.agentsWithUnseenOutput=new Set(l.agentsWithUnseenOutput),l.agentsWithUnseenOutput.delete(i),console.log(`[Store] Cleared unseen badge for selected agent ${i}`),o=!0)),l.currentSnapshot=null}),o&&a&&a(),t()},addToSelection(i){let o=!1;e(l=>{l.selectedAgentIds.has(i)?l.selectedAgentIds.delete(i):(l.selectedAgentIds.add(i),l.agentsWithUnseenOutput.has(i)&&(l.agentsWithUnseenOutput=new Set(l.agentsWithUnseenOutput),l.agentsWithUnseenOutput.delete(i),console.log(`[Store] Cleared unseen badge for multi-selected agent ${i}`),o=!0))}),o&&a&&a(),t()},selectMultiple(i){e(o=>{o.selectedAgentIds.clear();for(const l of i)o.selectedAgentIds.add(l)}),t()},deselectAll(){e(i=>{i.selectedAgentIds.clear()}),t()},spawnAgent(i,o,l,c,d,f,p,g,b,y,w,k,S){console.log("[Store] spawnAgent called with:",{name:i,agentClass:o,cwd:l,position:c,sessionId:d,useChrome:f,permissionMode:p,initialSkillIds:g,provider:b,codexConfig:y,codexModel:w,model:k,customInstructions:S?`${S.length} chars`:void 0});const j=c?{x:c.x,y:0,z:c.z}:void 0,C={type:"spawn_agent",payload:{name:i,class:o,cwd:l,position:j,sessionId:d,useChrome:f,permissionMode:p,initialSkillIds:g,provider:b,codexConfig:y,codexModel:w,model:k,customInstructions:S}},A=n();if(!A){console.error("[Store] sendMessage is not defined! WebSocket may not be connected");return}A(C),console.log("[Store] Message sent to WebSocket")},createDirectoryAndSpawn(i,o,l){var c;(c=n())==null||c({type:"create_directory",payload:{path:i,name:o,class:l}})},sendCommand(i,o){var l;e(c=>{c.lastPrompts.set(i,{text:o,timestamp:Date.now()})}),t(),(l=n())==null||l({type:"send_command",payload:{agentId:i,command:o}})},refreshAgentContext(i){var o;(o=n())==null||o({type:"request_context_stats",payload:{agentId:i}})},moveAgentLocal(i,o){const c=s().agents.get(i);c&&(e(d=>{const f={...c,position:o},p=new Map(d.agents);p.set(i,f),d.agents=p}),t())},moveAgent(i,o){var d;const c=s().agents.get(i);c&&(e(f=>{const p={...c,position:o},g=new Map(f.agents);g.set(i,p),f.agents=g}),t()),(d=n())==null||d({type:"move_agent",payload:{agentId:i,position:o}})},killAgent(i){var o;(o=n())==null||o({type:"kill_agent",payload:{agentId:i}})},stopAgent(i){var o;(o=n())==null||o({type:"stop_agent",payload:{agentId:i}})},clearContext(i){var o;(o=n())==null||o({type:"clear_context",payload:{agentId:i}}),e(l=>{const c=new Map(l.agentOutputs);c.delete(i),l.agentOutputs=c}),t()},collapseContext(i){var o;(o=n())==null||o({type:"collapse_context",payload:{agentId:i}})},removeAgentFromServer(i){var o;(o=n())==null||o({type:"remove_agent",payload:{agentId:i}})},renameAgent(i,o){var d;const c=s().agents.get(i);c&&(e(f=>{const p={...c,name:o},g=new Map(f.agents);g.set(i,p),f.agents=g}),t()),(d=n())==null||d({type:"rename_agent",payload:{agentId:i,name:o}})},updateAgentProperties(i,o){var d;const c=s().agents.get(i);c&&(e(f=>{const p={...c};o.class!==void 0&&(p.class=o.class),o.permissionMode!==void 0&&(p.permissionMode=o.permissionMode),o.model!==void 0&&(p.model=o.model),o.provider!==void 0&&(p.provider=o.provider),o.codexConfig!==void 0&&(p.codexConfig=o.codexConfig),o.codexModel!==void 0&&(p.codexModel=o.codexModel),o.useChrome!==void 0&&(p.useChrome=o.useChrome),o.cwd!==void 0&&(p.cwd=o.cwd);const g=new Map(f.agents);g.set(i,p),f.agents=g}),t()),(d=n())==null||d({type:"update_agent_properties",payload:{agentId:i,updates:o}})},getTotalTokens(){let i=0;for(const o of s().agents.values())i+=o.tokensUsed;return i},getSelectedAgents(){const i=s(),o=[];for(const l of i.selectedAgentIds){const c=i.agents.get(l);c&&o.push(c)}return o},addActivity(i){e(o=>{o.activities.unshift(i),o.activities.length>100&&o.activities.pop()}),t()},addToolExecution(i,o,l){const d=s().agents.get(i);e(f=>{f.toolExecutions.unshift({agentId:i,agentName:(d==null?void 0:d.name)||"Unknown",toolName:o,toolInput:l,timestamp:Date.now()}),f.toolExecutions.length>200&&f.toolExecutions.pop()}),t()},addFileChange(i,o,l){const d=s().agents.get(i);e(f=>{f.fileChanges.unshift({agentId:i,agentName:(d==null?void 0:d.name)||"Unknown",action:o,filePath:l,timestamp:Date.now()}),f.fileChanges.length>200&&f.fileChanges.pop()}),t()},async loadToolHistory(){try{const o=await(await ht(it("/api/agents/tool-history?limit=100"))).json();e(l=>{o.toolExecutions&&(l.toolExecutions=o.toolExecutions),o.fileChanges&&(l.fileChanges=o.fileChanges)}),t()}catch(i){console.error("[Store] Failed to load tool history:",i)}}}}function pB(s,e,t,n){return{addOutput(a,i){const o=n();e(l=>{const c=l.agentOutputs.get(a)||[];if(i.uuid&&c.some(g=>g.uuid===i.uuid))return;let d=[...c,i];d.length>200&&(d=d.slice(-200)),ed.info(`Store: ${c.length} -> ${d.length}`,{agentId:a,text:i.text.slice(0,60),isStreaming:i.isStreaming,listeners:o},"store:addOutput");const f=new Map(l.agentOutputs);f.set(a,d),l.agentOutputs=f}),t()},clearOutputs(a){e(i=>{const o=new Map(i.agentOutputs);o.delete(a),i.agentOutputs=o}),t()},getOutputs(a){return s().agentOutputs.get(a)||[]},addUserPromptToOutput(a,i){this.addOutput(a,{text:i,isStreaming:!1,timestamp:Date.now(),isUserPrompt:!0})},getLastPrompt(a){return s().lastPrompts.get(a)},setLastPrompt(a,i){e(o=>{o.lastPrompts.set(a,{text:i,timestamp:Date.now()})}),t()},preserveOutputs(){const a=s(),i=new Map;for(const[o,l]of a.agentOutputs)i.set(o,l.map(c=>({...c})));return i},mergeOutputsWithHistory(a,i,o){const l=[...i,...o];return l.sort((c,d)=>c.timestamp-d.timestamp),e(c=>{const d=new Map(c.agentOutputs);d.set(a,l),c.agentOutputs=d}),t(),l}}}function fB(s,e,t,n){return{setSupervisorReport(a){e(i=>{i.supervisor.lastReport=a,i.supervisor.lastReportTime=a.timestamp;const o=new Map(i.supervisor.agentHistories);for(const l of a.agentSummaries){const c=o.get(l.agentId)||[],d={id:`${a.id}-${l.agentId}`,timestamp:a.timestamp,reportId:a.id,analysis:l};if(!c.some(f=>f.reportId===a.id)){const f=[d,...c];f.length>50&&f.pop(),o.set(l.agentId,f)}}i.supervisor.agentHistories=o,i.supervisor.generatingReport=!1}),t()},addNarrative(a,i){e(o=>{const l=o.supervisor.narratives.get(a)||[];l.unshift(i),l.length>50&&l.pop();const c=new Map(o.supervisor.narratives);c.set(a,l),o.supervisor.narratives=c}),t()},getNarratives(a){return s().supervisor.narratives.get(a)||[]},setSupervisorStatus(a){e(i=>{i.supervisor.enabled=a.enabled,a.autoReportOnComplete!==void 0&&(i.supervisor.autoReportOnComplete=a.autoReportOnComplete),i.supervisor.lastReportTime=a.lastReportTime,i.supervisor.nextReportTime=a.nextReportTime}),t()},setSupervisorConfig(a){var i;(i=n())==null||i({type:"set_supervisor_config",payload:a})},requestSupervisorReport(){var a;e(i=>{i.supervisor.generatingReport=!0}),t(),(a=n())==null||a({type:"request_supervisor_report",payload:{}})},requestAgentSupervisorHistory(a){var i;e(o=>{o.supervisor.loadingHistoryForAgent=a}),t(),(i=n())==null||i({type:"request_agent_supervisor_history",payload:{agentId:a}})},setAgentSupervisorHistory(a){e(i=>{const o=new Map(i.supervisor.agentHistories);o.set(a.agentId,a.entries),i.supervisor.agentHistories=o,i.supervisor.historyFetchedForAgents.add(a.agentId),i.supervisor.loadingHistoryForAgent===a.agentId&&(i.supervisor.loadingHistoryForAgent=null)}),t()},getAgentSupervisorHistory(a){return s().supervisor.agentHistories.get(a)||[]},addAgentAnalysis(a,i){e(o=>{const l=new Map(o.supervisor.agentHistories),c=l.get(a)||[],d={id:`single-${Date.now()}-${a}`,timestamp:Date.now(),reportId:`single-${Date.now()}`,analysis:i};if(!c.some(p=>Math.abs(p.timestamp-d.timestamp)<5e3&&p.analysis.statusDescription===i.statusDescription)){const p=[d,...c];p.length>50&&p.pop(),l.set(a,p),o.supervisor.agentHistories=l}}),t()},isLoadingHistoryForAgent(a){return s().supervisor.loadingHistoryForAgent===a},hasHistoryBeenFetched(a){return s().supervisor.historyFetchedForAgents.has(a)},setGlobalUsage(a){console.log("[Supervisor] setGlobalUsage called with:",a),e(i=>{i.supervisor.globalUsage=a,i.supervisor.refreshingUsage=!1}),t()},requestGlobalUsage(){console.log("[Supervisor] requestGlobalUsage called"),e(i=>{i.supervisor.refreshingUsage=!0}),t();const a=n();console.log("[Supervisor] sendMessage function:",a?"available":"null"),a?(console.log("[Supervisor] Sending request_global_usage message"),a({type:"request_global_usage",payload:{}})):console.warn("[Supervisor] Cannot send request_global_usage - no sendMessage function")},getGlobalUsage(){return s().supervisor.globalUsage}}}function mB(s,e,t,n){const a=()=>{var o;const i=Array.from(s().areas.values());(o=n())==null||o({type:"sync_areas",payload:i})};return{setActiveTool(i){e(o=>{o.activeTool=i,i!=="select"&&(o.selectedAreaId=null)}),t()},selectArea(i){e(o=>{o.selectedAreaId=i}),t()},addArea(i){if(i.zIndex===void 0||i.zIndex===null){const o=Array.from(s().areas.values()),l=o.length===0?-1:Math.max(...o.map(c=>c.zIndex??0));i.zIndex=l+1}e(o=>{o.areas.set(i.id,i)}),a(),t()},updateArea(i,o){s().areas.get(i)&&(e(d=>{Object.assign(d.areas.get(i),o)}),a(),t())},updateAreaLocal(i,o){s().areas.get(i)&&(e(d=>{Object.assign(d.areas.get(i),o)}),t())},deleteArea(i){e(o=>{o.areas.delete(i),o.selectedAreaId===i&&(o.selectedAreaId=null)}),a(),t()},assignAgentToArea(i,o){const c=s().areas.get(o);c&&!c.assignedAgentIds.includes(i)&&(e(d=>{for(const f of d.areas.values()){const p=f.assignedAgentIds.indexOf(i);p!==-1&&f.assignedAgentIds.splice(p,1)}d.areas.get(o).assignedAgentIds.push(i)}),a(),t())},unassignAgentFromArea(i,o){const c=s().areas.get(o);if(c){const d=c.assignedAgentIds.indexOf(i);d!==-1&&(e(f=>{f.areas.get(o).assignedAgentIds.splice(d,1)}),a(),t())}},addDirectoryToArea(i,o){const c=s().areas.get(i);c&&!c.directories.includes(o)&&(e(d=>{d.areas.get(i).directories.push(o)}),a(),t())},removeDirectoryFromArea(i,o){const c=s().areas.get(i);if(c){const d=c.directories.indexOf(o);d!==-1&&(e(f=>{f.areas.get(i).directories.splice(d,1)}),a(),t())}},getAreaDirectories(i){const o=s().areas.get(i);return(o==null?void 0:o.directories)||[]},isPositionInArea(i,o){if(o.type==="rectangle"&&o.width&&o.height){const l=o.width/2,c=o.height/2;return i.x>=o.center.x-l&&i.x<=o.center.x+l&&i.z>=o.center.z-c&&i.z<=o.center.z+c}else if(o.type==="circle"&&o.radius){const l=i.x-o.center.x,c=i.z-o.center.z;return l*l+c*c<=o.radius*o.radius}return!1},getAreaForAgent(i){const o=s(),l=o.agents.get(i);if(!l)return null;for(const c of o.areas.values())if(this.isPositionInArea({x:l.position.x,z:l.position.z},c))return c;return null},setAreasFromServer(i){e(o=>{const l=new Map;for(let c=0;c<i.length;c++){const d=i[c];d.directories||(d.directories=[]),(d.zIndex===void 0||d.zIndex===null)&&(d.zIndex=c),d.archived===void 0&&(d.archived=!1),l.set(d.id,d)}o.areas=l}),t()},getAreasInZOrder(){return Array.from(s().areas.values()).sort((o,l)=>(o.zIndex??0)-(l.zIndex??0))},getNextZIndex(){const i=Array.from(s().areas.values());return i.length===0?0:Math.max(...i.map(l=>l.zIndex??0))+1},bringAreaToFront(i){const o=s(),l=o.areas.get(i);if(!l)return;const c=Array.from(o.areas.values()),d=c.length===0?-1:Math.max(...c.map(b=>b.zIndex??0)),f=d+1,p=l.zIndex??0,g=c.filter(b=>(b.zIndex??0)===d);p===d&&g.length===1||(e(b=>{b.areas.get(i).zIndex=f}),a(),t())},sendAreaToBack(i){const o=s(),l=o.areas.get(i);if(!l)return;const c=Array.from(o.areas.values()),d=Math.min(...c.map(g=>g.zIndex??0)),f=l.zIndex??0,p=c.filter(g=>(g.zIndex??0)===d);f===d&&p.length===1||(e(g=>{for(const b of g.areas.values())b.id!==i&&(b.zIndex=(b.zIndex??0)+1);g.areas.get(i).zIndex=0}),a(),t())},setAreaZIndex(i,o){s().areas.get(i)&&(e(d=>{d.areas.get(i).zIndex=o}),a(),t())},archiveArea(i,o){const c=s().areas.get(i);if(!(!c||c.archived)){if(o)for(const d of c.assignedAgentIds)o(d);e(d=>{const f=d.areas.get(i);f.archived=!0,f.archivedAt=Date.now(),f.originalCenter={...f.center},d.selectedAreaId===i&&(d.selectedAreaId=null)}),a(),t()}},restoreArchivedArea(i,o){const l=s(),c=l.areas.get(i);if(!c||!c.archived)return;const d=c.center,f=o||c.originalCenter||c.center,p=f.x-d.x,g=f.z-d.z,b=Array.from(l.areas.values()),w=(b.length===0?-1:Math.max(...b.map(k=>k.zIndex??0)))+1;e(k=>{const S=k.areas.get(i);if(S.archived=!1,S.archivedAt=void 0,S.center=f,S.zIndex=w,p!==0||g!==0)for(const j of S.assignedAgentIds){const C=k.agents.get(j);C&&(C.position={x:C.position.x+p,y:C.position.y,z:C.position.z+g})}}),a(),t()},getArchivedAreas(){return Array.from(s().areas.values()).filter(i=>i.archived===!0)},getVisibleAreas(){return Array.from(s().areas.values()).filter(i=>!i.archived)},isAgentInArchivedArea(i){const o=s();for(const l of o.areas.values())if(l.archived&&l.assignedAgentIds.includes(i))return!0;return!1}}}function gB(s,e,t,n){const a=()=>{var l;const o=Array.from(s().buildings.values());(l=n())==null||l({type:"sync_buildings",payload:o})},i={selectBuilding(o){e(l=>{l.selectedBuildingIds.clear(),o&&l.selectedBuildingIds.add(o)}),t()},selectMultipleBuildings(o){e(l=>{l.selectedBuildingIds.clear();for(const c of o)l.selectedBuildingIds.add(c)}),t()},toggleBuildingSelection(o){e(l=>{l.selectedBuildingIds.has(o)?l.selectedBuildingIds.delete(o):l.selectedBuildingIds.add(o)}),t()},isBuildingSelected(o){return s().selectedBuildingIds.has(o)},getSelectedBuildingIds(){return Array.from(s().selectedBuildingIds)},deleteSelectedBuildings(){var l,c,d;const o=s();for(const f of o.selectedBuildingIds){const p=o.buildings.get(f);((l=p==null?void 0:p.pm2)!=null&&l.enabled||(c=p==null?void 0:p.docker)!=null&&c.enabled)&&((d=n())==null||d({type:"building_command",payload:{buildingId:f,command:"delete"}}))}e(f=>{const p=new Map(f.buildings);for(const g of f.selectedBuildingIds)p.delete(g);f.buildings=p,f.selectedBuildingIds.clear()}),a(),t()},addBuilding(o){e(l=>{const c=new Map(l.buildings);c.set(o.id,o),l.buildings=c}),a(),t()},updateBuilding(o,l){const d=s().buildings.get(o);d&&(e(f=>{const p=new Map(f.buildings);p.set(o,{...d,...l}),f.buildings=p}),a(),t())},updateBuildingLocal(o,l){const d=s().buildings.get(o);d&&(e(f=>{const p=new Map(f.buildings);p.set(o,{...d,...l}),f.buildings=p}),t())},deleteBuilding(o){var d,f,p;const c=s().buildings.get(o);((d=c==null?void 0:c.pm2)!=null&&d.enabled||(f=c==null?void 0:c.docker)!=null&&f.enabled)&&((p=n())==null||p({type:"building_command",payload:{buildingId:o,command:"delete"}})),e(g=>{const b=new Map(g.buildings);b.delete(o),g.buildings=b,g.selectedBuildingIds.delete(o)}),a(),t()},moveBuilding(o,l){const d=s().buildings.get(o);d&&(e(f=>{const p=new Map(f.buildings);p.set(o,{...d,position:l}),f.buildings=p}),a(),t())},updateBuildingPosition(o,l){i.moveBuilding(o,l)},createBuilding(o){const l={...o,id:`building_${Date.now()}_${Math.random().toString(36).substr(2,9)}`,status:"stopped",createdAt:Date.now()};i.addBuilding(l)},sendBuildingCommand(o,l){var c;(c=n())==null||c({type:"building_command",payload:{buildingId:o,command:l}})},addBuildingLogs(o,l){e(c=>{const f=[...c.buildingLogs.get(o)||[],l];f.length>500&&f.splice(0,f.length-500);const p=new Map(c.buildingLogs);p.set(o,f),c.buildingLogs=p}),t()},getBuildingLogs(o){return s().buildingLogs.get(o)||[]},clearBuildingLogs(o){e(l=>{const c=new Map(l.buildingLogs);c.delete(o),l.buildingLogs=c}),t()},setBuildingsFromServer(o){e(l=>{const c=new Map;for(const d of o)c.set(d.id,d);l.buildings=c}),t()},updateBuildingFromServer(o){e(l=>{const c=new Map(l.buildings);c.set(o.id,o),l.buildings=c}),t()},removeBuildingFromServer(o){e(l=>{const c=new Map(l.buildings);c.delete(o),l.buildings=c,l.selectedBuildingIds.delete(o)}),t()},startLogStreaming(o,l=100){var d,f,p;const c=s().buildings.get(o);e(g=>{const b=new Map(g.streamingBuildingLogs);b.set(o,""),g.streamingBuildingLogs=b}),(d=c==null?void 0:c.docker)!=null&&d.enabled?(f=n())==null||f({type:"docker_logs_start",payload:{buildingId:o,lines:l}}):(p=n())==null||p({type:"pm2_logs_start",payload:{buildingId:o,lines:l}})},stopLogStreaming(o){var c,d,f;const l=s().buildings.get(o);(c=l==null?void 0:l.docker)!=null&&c.enabled?(d=n())==null||d({type:"docker_logs_stop",payload:{buildingId:o}}):(f=n())==null||f({type:"pm2_logs_stop",payload:{buildingId:o}})},appendStreamingLogChunk(o,l){e(c=>{const d=c.streamingBuildingLogs.get(o)||"",f=500*1024;let p=d+l;if(p.length>f){const b=p.indexOf(`
|
|
149
149
|
`,p.length-f);b>0?p=p.slice(b+1):p=p.slice(-f)}const g=new Map(c.streamingBuildingLogs);g.set(o,p),c.streamingBuildingLogs=g}),t()},setStreamingStatus(o,l){e(c=>{const d=new Set(c.streamingBuildingIds);l?d.add(o):d.delete(o),c.streamingBuildingIds=d}),t()},getStreamingLogs(o){return s().streamingBuildingLogs.get(o)||""},clearStreamingLogs(o){e(l=>{const c=new Map(l.streamingBuildingLogs);c.delete(o),l.streamingBuildingLogs=c}),t()},isLogStreaming(o){return s().streamingBuildingIds.has(o)},sendBossBuildingCommand(o,l){var c;(c=n())==null||c({type:"boss_building_command",payload:{buildingId:o,command:l}})},assignBuildingsToBoSS(o,l){var f;const d=s().buildings.get(o);d&&(e(p=>{const g=new Map(p.buildings);g.set(o,{...d,subordinateBuildingIds:l}),p.buildings=g}),a(),t()),(f=n())==null||f({type:"assign_buildings",payload:{bossBuildingId:o,subordinateBuildingIds:l}})},startBossLogStreaming(o,l=50){var c;e(d=>{const f=new Map(d.bossStreamingLogs);f.set(o,[]),d.bossStreamingLogs=f}),(c=n())==null||c({type:"boss_building_logs_start",payload:{buildingId:o,lines:l}})},stopBossLogStreaming(o){var l;(l=n())==null||l({type:"boss_building_logs_stop",payload:{buildingId:o}})},appendBossStreamingLogChunk(o,l,c,d,f){e(p=>{const g=p.bossStreamingLogs.get(o)||[],b={subordinateId:l,subordinateName:c,chunk:d,timestamp:Date.now(),isError:f},y=[...g,b];y.length>1e3&&y.splice(0,y.length-1e3);const w=new Map(p.bossStreamingLogs);w.set(o,y),p.bossStreamingLogs=w}),t()},getBossStreamingLogs(o){return s().bossStreamingLogs.get(o)||[]},clearBossStreamingLogs(o){e(l=>{const c=new Map(l.bossStreamingLogs);c.delete(o),l.bossStreamingLogs=c}),t()},requestDockerContainersList(){var o;(o=n())==null||o({type:"docker_list_containers",payload:{}})},setDockerContainersList(o,l){e(c=>{c.dockerContainersList=o,c.dockerComposeProjectsList=l}),t()},getDockerContainersList(){return s().dockerContainersList},getDockerComposeProjectsList(){return s().dockerComposeProjectsList}};return i}function bB(s,e,t,n){return{addPermissionRequest(a){e(i=>{const o=new Map(i.permissionRequests);o.set(a.id,a),i.permissionRequests=o}),t()},resolvePermissionRequest(a,i){const l=s().permissionRequests.get(a);l&&(e(c=>{const d=new Map(c.permissionRequests);d.set(a,{...l,status:i?"approved":"denied"}),c.permissionRequests=d}),t(),setTimeout(()=>{e(c=>{const d=new Map(c.permissionRequests);d.delete(a),c.permissionRequests=d}),t()},2e3))},respondToPermissionRequest(a,i,o,l){var c;(c=n())==null||c({type:"permission_response",payload:{requestId:a,approved:i,reason:o,remember:l}})},getPendingPermissionsForAgent(a){return Array.from(s().permissionRequests.values()).filter(i=>i.agentId===a&&i.status==="pending")},clearAllPermissions(){e(a=>{a.permissionRequests=new Map}),t()}}}function yB(s,e,t,n){return{spawnBossAgent(a,i,o,l,c,d,f,p,g,b,y,w,k){var j;const S=l?{x:l.x,y:0,z:l.z}:void 0;(j=n())==null||j({type:"spawn_boss_agent",payload:{name:a,class:i,cwd:o,position:S,subordinateIds:c,useChrome:d,permissionMode:f,provider:p,codexConfig:g,codexModel:b,model:y,customInstructions:w,initialSkillIds:k}})},assignSubordinates(a,i){var o;(o=n())==null||o({type:"assign_subordinates",payload:{bossId:a,subordinateIds:i}})},removeSubordinate(a,i){var o;(o=n())==null||o({type:"remove_subordinate",payload:{bossId:a,subordinateId:i}})},sendBossCommand(a,i){var o;e(l=>{l.pendingDelegation={bossId:a,command:i}}),t(),(o=n())==null||o({type:"send_boss_command",payload:{bossId:a,command:i}})},requestDelegationHistory(a){var i;(i=n())==null||i({type:"request_delegation_history",payload:{bossId:a}})},handleDelegationDecision(a){e(i=>{var d;const o=new Map(i.delegationHistories),l=o.get(a.bossId)||[],c=l.findIndex(f=>f.id===a.id);if(c!==-1?l[c]=a:(l.unshift(a),l.length>100&&l.pop()),o.set(a.bossId,l),i.delegationHistories=o,a.status==="sent"&&a.selectedAgentId){const f=i.agents.get(a.bossId),p=new Map(i.lastDelegationReceived);p.set(a.selectedAgentId,{bossName:(f==null?void 0:f.name)||"Boss",taskCommand:a.userCommand,timestamp:Date.now()}),i.lastDelegationReceived=p}((d=i.pendingDelegation)==null?void 0:d.bossId)===a.bossId&&a.status!=="pending"&&(i.pendingDelegation=null)}),t()},setDelegationHistory(a,i){e(o=>{const l=new Map(o.delegationHistories);l.set(a,i),o.delegationHistories=l}),t()},getDelegationHistory(a){return s().delegationHistories.get(a)||[]},getLastDelegationReceived(a){return s().lastDelegationReceived.get(a)||null},clearLastDelegationReceived(a){s().lastDelegationReceived.has(a)&&(e(o=>{const l=new Map(o.lastDelegationReceived);l.delete(a),o.lastDelegationReceived=l}),t())},updateBossSubordinates(a,i){const l=s().agents.get(a);l&&(e(c=>{const d={...l,subordinateIds:i},f=new Map(c.agents);f.set(a,d),c.agents=f}),t())},getSubordinates(a){const i=s(),o=i.agents.get(a),l=(o==null?void 0:o.isBoss)===!0||(o==null?void 0:o.class)==="boss";return!o||!l||!o.subordinateIds?[]:o.subordinateIds.map(c=>i.agents.get(c)).filter(c=>c!==void 0)},isBossAgent(a){const i=s().agents.get(a);return(i==null?void 0:i.isBoss)===!0||(i==null?void 0:i.class)==="boss"},getBossForAgent(a){const i=s(),o=i.agents.get(a);return o!=null&&o.bossId&&i.agents.get(o.bossId)||null},getAvailableSubordinates(){return Array.from(s().agents.values()).filter(a=>a.class!=="boss")},handleAgentTaskStarted(a,i,o,l){e(c=>{const d=new Map(c.agentTaskProgress);let f=d.get(a);f||(f=new Map,d.set(a,f)),f.set(i,{agentId:i,agentName:o,taskDescription:l,status:"working",output:[],startedAt:Date.now()}),c.agentTaskProgress=d}),t()},handleAgentTaskOutput(a,i,o){e(l=>{const c=l.agentTaskProgress.get(a);if(!c)return;const d=c.get(i);if(!d)return;const f=new Map(l.agentTaskProgress),p=new Map(c);p.set(i,{...d,output:[...d.output,o]}),f.set(a,p),l.agentTaskProgress=f}),t()},handleAgentTaskCompleted(a,i,o){e(l=>{const c=l.agentTaskProgress.get(a);if(!c)return;const d=c.get(i);if(!d)return;const f=new Map(l.agentTaskProgress),p=new Map(c);p.set(i,{...d,status:o?"completed":"failed",completedAt:Date.now()}),f.set(a,p),l.agentTaskProgress=f}),t()},getAgentTaskProgress(a){return s().agentTaskProgress.get(a)||new Map},clearAgentTaskProgress(a,i){e(o=>{if(i){const l=o.agentTaskProgress.get(a);if(l){const c=new Map(o.agentTaskProgress),d=new Map(l);d.delete(i),c.set(a,d),o.agentTaskProgress=c}}else{const l=new Map(o.agentTaskProgress);l.delete(a),o.agentTaskProgress=l}}),t()},clearAllSubordinatesContext(a){const o=s().agents.get(a),l=(o==null?void 0:o.isBoss)===!0||(o==null?void 0:o.class)==="boss";if(console.log("[Store] clearAllSubordinatesContext called:",{bossId:a,bossName:o==null?void 0:o.name,isBoss:l,subordinateIds:o==null?void 0:o.subordinateIds}),!o||!l||!o.subordinateIds||o.subordinateIds.length===0){console.log("[Store] clearAllSubordinatesContext: No boss or subordinates found, returning early");return}const c=n();console.log("[Store] clearAllSubordinatesContext: sendMessage available:",!!c);for(const d of o.subordinateIds)console.log("[Store] clearAllSubordinatesContext: Sending clear_context for subordinate:",d),c==null||c({type:"clear_context",payload:{agentId:d}});e(d=>{const f=new Map(d.agentOutputs);for(const p of o.subordinateIds||[])f.delete(p);d.agentOutputs=f}),t(),console.log("[Store] clearAllSubordinatesContext: Completed")}}}function xB(s,e,t,n){return{setSkillsFromServer(a){e(i=>{const o=new Map;for(const l of a)o.set(l.id,l);i.skills=o}),t()},addSkillFromServer(a){e(i=>{const o=new Map(i.skills);o.set(a.id,a),i.skills=o}),t()},updateSkillFromServer(a){e(i=>{const o=new Map(i.skills);o.set(a.id,a),i.skills=o}),t()},removeSkillFromServer(a){e(i=>{const o=new Map(i.skills);o.delete(a),i.skills=o}),t()},getSkill(a){return s().skills.get(a)},getAllSkills(){return Array.from(s().skills.values())},getSkillsForAgent(a){const i=s(),o=i.agents.get(a);return o?Array.from(i.skills.values()).filter(l=>l.enabled?!!(l.assignedAgentIds.includes(a)||l.assignedAgentClasses.includes(o.class)):!1):[]},createSkill(a){var i;(i=n())==null||i({type:"create_skill",payload:a})},updateSkill(a,i){var o;(o=n())==null||o({type:"update_skill",payload:{id:a,updates:i}})},deleteSkill(a){var i;(i=n())==null||i({type:"delete_skill",payload:{id:a}})},assignSkillToAgent(a,i){var o;(o=n())==null||o({type:"assign_skill",payload:{skillId:a,agentId:i}})},unassignSkillFromAgent(a,i){var o;(o=n())==null||o({type:"unassign_skill",payload:{skillId:a,agentId:i}})},requestAgentSkills(a){var i;(i=n())==null||i({type:"request_agent_skills",payload:{agentId:a}})},setCustomAgentClassesFromServer(a){e(i=>{const o=new Map;for(const l of a)o.set(l.id,l);i.customAgentClasses=o}),t()},addCustomAgentClassFromServer(a){e(i=>{const o=new Map(i.customAgentClasses);o.set(a.id,a),i.customAgentClasses=o}),t()},updateCustomAgentClassFromServer(a){e(i=>{const o=new Map(i.customAgentClasses);o.set(a.id,a),i.customAgentClasses=o}),t()},removeCustomAgentClassFromServer(a){e(i=>{const o=new Map(i.customAgentClasses);o.delete(a),i.customAgentClasses=o}),t()},getCustomAgentClass(a){return s().customAgentClasses.get(a)},getAllCustomAgentClasses(){return Array.from(s().customAgentClasses.values())},createCustomAgentClass(a){var i;(i=n())==null||i({type:"create_custom_agent_class",payload:a})},updateCustomAgentClass(a,i){var o;(o=n())==null||o({type:"update_custom_agent_class",payload:{id:a,updates:i}})},deleteCustomAgentClass(a){var i;(i=n())==null||i({type:"delete_custom_agent_class",payload:{id:a}})}}}function vB(s,e,t){return{handleExecTaskStarted(n,a,i,o,l){e(c=>{const d={taskId:n,agentId:a,agentName:i,command:o,cwd:l,status:"running",output:[],startedAt:Date.now()};c.execTasks||(c.execTasks=new Map),c.execTasks.set(n,d)}),t()},handleExecTaskOutput(n,a,i,o){e(l=>{var d;const c=(d=l.execTasks)==null?void 0:d.get(n);if(c){const f=i.split(`
|
|
150
150
|
`);for(const p of f)p.length>0&&c.output.push(o?`[stderr] ${p}`:p);c.output.length>500&&(c.output=c.output.slice(-500))}}),t()},handleExecTaskCompleted(n,a,i,o){e(l=>{var d;const c=(d=l.execTasks)==null?void 0:d.get(n);c&&(c.status=o?"completed":"failed",c.exitCode=i,c.completedAt=Date.now())}),t()},async stopExecTask(n){try{return(await fetch(`/api/exec/tasks/${n}`,{method:"DELETE"})).ok?(e(i=>{var l;const o=(l=i.execTasks)==null?void 0:l.get(n);o&&o.status==="running"&&(o.status="failed",o.exitCode=-15,o.completedAt=Date.now(),o.output.push("[Task stopped by user]"))}),t(),!0):!1}catch(a){return console.error("Failed to stop exec task:",a),!1}},getExecTasks(n){const a=s();return a.execTasks?Array.from(a.execTasks.values()).filter(i=>i.agentId===n):[]},getAllExecTasks(){const n=s();return n.execTasks?Array.from(n.execTasks.values()):[]},getExecTask(n){var i;return(i=s().execTasks)==null?void 0:i.get(n)},clearCompletedExecTasks(n){e(a=>{if(a.execTasks)for(const[i,o]of a.execTasks.entries())o.agentId===n&&o.status!=="running"&&a.execTasks.delete(i)}),t()},clearAllExecTasks(n){e(a=>{if(a.execTasks)for(const[i,o]of a.execTasks.entries())o.agentId===n&&a.execTasks.delete(i)}),t()},removeExecTask(n){e(a=>{a.execTasks&&a.execTasks.delete(n)}),t()}}}function wB(s,e,t,n){return{setSecretsFromServer(a){e(i=>{const o=new Map;for(const l of a)o.set(l.id,l);i.secrets=o}),t()},addSecretFromServer(a){e(i=>{const o=new Map(i.secrets);o.set(a.id,a),i.secrets=o}),t()},updateSecretFromServer(a){e(i=>{const o=new Map(i.secrets);o.set(a.id,a),i.secrets=o}),t()},removeSecretFromServer(a){e(i=>{const o=new Map(i.secrets);o.delete(a),i.secrets=o}),t()},getSecret(a){return s().secrets.get(a)},getSecretByKey(a){return Array.from(s().secrets.values()).find(i=>i.key===a)},getAllSecrets(){return Array.from(s().secrets.values())},createSecret(a){var i;(i=n())==null||i({type:"create_secret",payload:a})},updateSecret(a,i){var o;(o=n())==null||o({type:"update_secret",payload:{id:a,updates:i}})},deleteSecret(a){var i;(i=n())==null||i({type:"delete_secret",payload:{id:a}})}}}function bj(){return{connectionStatus:new Map,databases:new Map,tables:new Map,tableSchemas:new Map,queryResults:[],queryHistory:[],executingQuery:!1,activeConnectionId:null,activeDatabase:null,lastSilentQueryResult:null}}function kB(s,e,t,n){const a=o=>{s().databaseState.has(o)||e(c=>{const d=new Map(c.databaseState);d.set(o,bj()),c.databaseState=d})};return{testDatabaseConnection(o,l){var c;(c=n())==null||c({type:"test_database_connection",payload:{buildingId:o,connectionId:l}})},setConnectionStatus(o,l,c){a(o),e(d=>{const f=d.databaseState.get(o);if(f){const p=new Map(f.connectionStatus);p.set(l,c);const g={...f,connectionStatus:p},b=new Map(d.databaseState);b.set(o,g),d.databaseState=b}}),t()},listDatabases(o,l){var c;(c=n())==null||c({type:"list_databases",payload:{buildingId:o,connectionId:l}})},setDatabases(o,l,c){a(o),e(d=>{const f=d.databaseState.get(o);if(f){const p=new Map(f.databases);p.set(l,c);const g={...f,databases:p},b=new Map(d.databaseState);b.set(o,g),d.databaseState=b}}),t()},listTables(o,l,c){var d;(d=n())==null||d({type:"list_tables",payload:{buildingId:o,connectionId:l,database:c}})},setTables(o,l,c,d){a(o);const f=`${l}:${c}`;e(p=>{const g=p.databaseState.get(o);if(g){const b=new Map(g.tables);b.set(f,d);const y={...g,tables:b},w=new Map(p.databaseState);w.set(o,y),p.databaseState=w}}),t()},getTableSchema(o,l,c,d){var f;(f=n())==null||f({type:"get_table_schema",payload:{buildingId:o,connectionId:l,database:c,table:d}})},setTableSchema(o,l,c,d,f){a(o);const p=`${l}:${c}:${d}`;e(g=>{const b=g.databaseState.get(o);if(b){const y=new Map(b.tableSchemas);y.set(p,f);const w={...b,tableSchemas:y},k=new Map(g.databaseState);k.set(o,w),g.databaseState=k}}),t()},executeQuery(o,l,c,d,f=1e3){var p;a(o),e(g=>{const b=g.databaseState.get(o);if(b){const y={...b,executingQuery:!0},w=new Map(g.databaseState);w.set(o,y),g.databaseState=w}}),t(),(p=n())==null||p({type:"execute_query",payload:{buildingId:o,connectionId:l,database:c,query:d,limit:f}})},executeSilentQuery(o,l,c,d,f){var p;(p=n())==null||p({type:"execute_query",payload:{buildingId:o,connectionId:l,database:c,query:d,limit:0,silent:!0,requestId:f}})},setSilentQueryResult(o,l){a(o),e(c=>{const d=c.databaseState.get(o);if(d){const f={...d,lastSilentQueryResult:{...l,timestamp:Date.now()}},p=new Map(c.databaseState);p.set(o,f),c.databaseState=p}}),t()},setQueryResult(o,l){a(o),e(c=>{const d=c.databaseState.get(o);if(d){const f=[l,...d.queryResults].slice(0,20),p={...d,queryResults:f,executingQuery:!1},g=new Map(c.databaseState);g.set(o,p),c.databaseState=g}}),t()},setExecutingQuery(o,l){a(o),e(c=>{const d=c.databaseState.get(o);if(d){const f={...d,executingQuery:l},p=new Map(c.databaseState);p.set(o,f),c.databaseState=p}}),t()},requestQueryHistory(o,l=100){var c;(c=n())==null||c({type:"request_query_history",payload:{buildingId:o,limit:l}})},setQueryHistory(o,l){a(o),e(c=>{const d=c.databaseState.get(o);if(d){const f={...d,queryHistory:l},p=new Map(c.databaseState);p.set(o,f),c.databaseState=p}}),t()},toggleQueryFavorite(o,l){var c;(c=n())==null||c({type:"toggle_query_favorite",payload:{buildingId:o,queryId:l}})},deleteQueryFromHistory(o,l){var c;(c=n())==null||c({type:"delete_query_history",payload:{buildingId:o,queryId:l}})},clearQueryHistory(o){var l;(l=n())==null||l({type:"clear_query_history",payload:{buildingId:o}})},setActiveConnection(o,l){a(o),e(c=>{const d=c.databaseState.get(o);if(d){const f={...d,activeConnectionId:l,activeDatabase:null},p=new Map(c.databaseState);p.set(o,f),c.databaseState=p}}),t()},setActiveDatabase(o,l){a(o),e(c=>{const d=c.databaseState.get(o);if(d){const f={...d,activeDatabase:l},p=new Map(c.databaseState);p.set(o,f),c.databaseState=p}}),t()},getDatabaseState(o){return s().databaseState.get(o)||bj()},clearDatabaseState(o){e(l=>{const c=new Map(l.databaseState);c.delete(o),l.databaseState=c}),t()}}}function SB(s,e,t){return{async fetchSnapshots(){e(n=>{n.snapshotsLoading=!0,n.snapshotsError=null}),t();try{const n=await ht(it("/api/snapshots"));if(!n.ok)throw new Error(`Failed to fetch snapshots: ${n.statusText}`);const a=await n.json(),i=Array.isArray(a)?a:a.snapshots||[];this.setSnapshots(i)}catch(n){const a=n instanceof Error?n.message:"Failed to fetch snapshots";this.setError(a),console.error("Snapshot fetch error:",n)}finally{e(n=>{n.snapshotsLoading=!1}),t()}},setSnapshots(n){e(a=>{const i=new Map;n.forEach(o=>{i.set(o.id,o)}),a.snapshots=i}),t()},async createSnapshot(n,a,i,o,l,c){e(d=>{d.snapshotsLoading=!0,d.snapshotsError=null}),t();try{const d={agentId:n,agentName:a,title:i,description:o,outputs:l||[],files:c||[]},f=await ht(it("/api/snapshots"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)});if(!f.ok)throw new Error(`Failed to create snapshot: ${f.statusText}`);const p=await f.json();return await this.fetchSnapshots(),p}catch(d){const f=d instanceof Error?d.message:"Failed to create snapshot";throw this.setError(f),console.error("Snapshot creation error:",d),d}finally{e(d=>{d.snapshotsLoading=!1}),t()}},async loadSnapshot(n){e(a=>{a.snapshotsLoading=!0,a.snapshotsError=null}),t();try{const a=await ht(it(`/api/snapshots/${n}`));if(!a.ok)throw new Error(`Failed to load snapshot: ${a.statusText}`);const i=await a.json();this.setCurrentSnapshot(i)}catch(a){const i=a instanceof Error?a.message:"Failed to load snapshot";this.setError(i),console.error("Snapshot load error:",a)}finally{e(a=>{a.snapshotsLoading=!1}),t()}},setCurrentSnapshot(n){e(a=>{a.currentSnapshot=n}),t()},async deleteSnapshot(n){var a;e(i=>{i.snapshotsLoading=!0,i.snapshotsError=null}),t();try{const i=await ht(it(`/api/snapshots/${n}`),{method:"DELETE"});if(!i.ok)throw new Error(`Failed to delete snapshot: ${i.statusText}`);await this.fetchSnapshots(),((a=s().currentSnapshot)==null?void 0:a.id)===n&&this.setCurrentSnapshot(null)}catch(i){const o=i instanceof Error?i.message:"Failed to delete snapshot";throw this.setError(o),console.error("Snapshot deletion error:",i),i}finally{e(i=>{i.snapshotsLoading=!1}),t()}},async restoreFiles(n,a){e(i=>{i.snapshotsLoading=!0,i.snapshotsError=null}),t();try{const i=a?{filePaths:a}:{},o=await ht(it(`/api/snapshots/${n}/restore`),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});if(!o.ok)throw new Error(`Failed to restore files: ${o.statusText}`)}catch(i){const o=i instanceof Error?i.message:"Failed to restore files";throw this.setError(o),console.error("File restoration error:",i),i}finally{e(i=>{i.snapshotsLoading=!1}),t()}},setLoading(n){e(a=>{a.snapshotsLoading=n}),t()},setError(n){e(a=>{a.snapshotsError=n}),t()},clearError(){this.setError(null)},reset(){e(n=>{n.snapshots=new Map,n.currentSnapshot=null,n.snapshotsLoading=!1,n.snapshotsError=null}),t()}}}function Jg(s,e,t){let n=s.get(e);if(!n){for(const[,a]of s)if(a.toolUseId===e&&a.parentAgentId===t){n=a;break}}return n}function jB(s,e,t){return{addSubagent(n){e(a=>{const i=new Map(a.subagents);i.set(n.id,n),a.subagents=i}),t(),console.log(`[Subagent] Added: ${n.name} (${n.id}) for agent ${n.parentAgentId}`)},completeSubagent(n,a,i){e(o=>{const l=Jg(o.subagents,n,a);if(l){const c=new Map(o.subagents);c.set(l.id,{...l,status:i?"completed":"failed",completedAt:Date.now()}),o.subagents=c,console.log(`[Subagent] Completed: ${l.name} (${l.id}) success=${i}`),setTimeout(()=>{e(d=>{const f=d.subagents.get(l.id);if(f&&(f.status==="completed"||f.status==="failed")){const p=new Map(d.subagents);p.delete(l.id),d.subagents=p}}),t()},3e4)}}),t()},addSubagentActivity(n,a,i){e(o=>{const l=Jg(o.subagents,n,a);if(l){const c=[...l.activities||[],i].slice(-50),d=new Map(o.subagents);d.set(l.id,{...l,activities:c}),o.subagents=d}}),t()},updateSubagentStats(n,a,i){e(o=>{const l=Jg(o.subagents,n,a);if(l){const c=new Map(o.subagents);c.set(l.id,{...l,stats:i}),o.subagents=c}}),t()},getSubagentsForAgent(n){const a=s();return Array.from(a.subagents.values()).filter(i=>i.parentAgentId===n)},getSubagent(n){return s().subagents.get(n)},removeSubagent(n){e(a=>{const i=new Map(a.subagents);i.delete(n),a.subagents=i}),t()},getSubagentByToolUseId(n){const a=s();for(const[,i]of a.subagents)if(i.toolUseId===n)return i}}}function na(s,e){if(s===e)return!0;if(s.length!==e.length)return!1;for(let t=0;t<s.length;t++)if(s[t]!==e[t])return!1;return!0}function rr(s,e){if(s===e)return!0;if(s.size!==e.size)return!1;for(const[t,n]of s)if(e.get(t)!==n)return!1;return!0}function CB(s,e){if(s===e)return!0;if(s.size!==e.size)return!1;for(const t of s)if(!e.has(t))return!1;return!0}function Dt(s,e=Object.is){const[t,n]=x.useState(()=>s(U.getState())),a=x.useRef(t);return x.useEffect(()=>{a.current=t},[t]),x.useEffect(()=>{const i=()=>{const o=s(U.getState());e(a.current,o)||(a.current=o,n(o))};return i(),U.subscribe(i)},[s,e]),t}function En(){const[,s]=x.useState({});return x.useEffect(()=>U.subscribe(()=>s({})),[]),U.getState()}function or(){return Dt(x.useCallback(s=>s.agents,[]),rr)}function af(){const s=or(),e=x.useRef([]),t=Array.from(s.values());return na(e.current,t)||(e.current=t),e.current}function ux(s){return Dt(x.useCallback(e=>s?e.agents.get(s):void 0,[s]))}function XA(){return Dt(x.useCallback(s=>s.selectedAgentIds,[]),CB)}function dx(s){const e=x.useRef([]),t=x.useRef(0),n=Dt(x.useCallback(a=>s&&a.agentOutputs.get(s)||e.current,[s]),na);return n.length!==t.current&&(ed.info(`Selector: ${t.current} -> ${n.length}`,{agentId:s,lastText:n.length>0?n[n.length-1].text.slice(0,40):null},"useAgentOutputs"),t.current=n.length),n}function NB(s){return Dt(x.useCallback(e=>s?e.lastPrompts.get(s):void 0,[s]))}function hx(){return Dt(x.useCallback(s=>s.lastPrompts,[]),rr)}function AB(){return Dt(x.useCallback(s=>s.isConnected,[]))}function rf(){return Dt(x.useCallback(s=>s.areas,[]),rr)}function MB(){return Dt(x.useCallback(s=>s.buildings,[]),rr)}function ZA(){return Dt(x.useCallback(s=>s.supervisor,[]))}function sl(){return Dt(x.useCallback(s=>s.settings,[]))}function QA(){return Dt(x.useCallback(s=>s.settings.hideCost,[]))}function TB(){return Dt(x.useCallback(s=>s.settings.customAgentNames,[]),na)}function EB(){return Dt(x.useCallback(s=>s.shortcuts,[]),na)}function JA(){return Dt(x.useCallback(s=>s.mouseControls,[]))}function _B(){return Dt(x.useCallback(s=>s.mouseControls.trackpad,[]))}function eM(){return Dt(x.useCallback(s=>s.terminalOpen,[]))}function tM(){return Dt(x.useCallback(s=>s.mobileView,[]))}function px(){return Dt(x.useCallback(s=>s.fileViewerPath,[]))}function DB(){return Dt(x.useCallback(s=>s.fileViewerEditData,[]))}function PB(){return Dt(x.useCallback(s=>s.fileViewerSearchRoot,[]))}function RB(){return Dt(x.useCallback(s=>s.explorerFolderPath,[]))}function fx(){return Dt(x.useCallback(s=>s.contextModalAgentId,[]))}function nM(){return Dt(x.useCallback(s=>s.toolExecutions,[]),na)}function OB(){return Dt(x.useCallback(s=>s.fileChanges,[]),na)}function sM(){return Dt(x.useCallback(s=>s.skills,[]),rr)}function of(){const s=sM(),e=x.useRef([]),t=Array.from(s.values());return na(e.current,t)||(e.current=t),e.current}function LB(s){return Dt(x.useCallback(e=>s?e.skills.get(s):void 0,[s]))}function IB(s){const e=x.useRef([]),t=or(),n=sM();if(!s)return e.current;const a=t.get(s);return a?Array.from(n.values()).filter(o=>o.enabled?!!(o.assignedAgentIds.includes(s)||o.assignedAgentClasses.includes(a.class)):!1):e.current}function BB(){return Dt(x.useCallback(s=>s.customAgentClasses,[]),rr)}function ti(){const s=BB(),e=x.useRef([]),t=Array.from(s.values());return na(e.current,t)||(e.current=t),e.current}function aM(s){return Dt(x.useCallback(e=>s?e.customAgentClasses.get(s):void 0,[s]))}function mx(){return Dt(x.useCallback(s=>s.reconnectCount,[]))}function FB(){return Dt(x.useCallback(s=>s.supervisor.globalUsage,[]))}function zB(){return Dt(x.useCallback(s=>s.supervisor.refreshingUsage,[]))}function $B(s){const e=x.useRef(new Map);return Dt(x.useCallback(t=>s&&t.agentTaskProgress.get(s)||e.current,[s]),rr)}function HB(s){return Dt(x.useCallback(e=>!s||!e.execTasks?[]:Array.from(e.execTasks.values()).filter(t=>t.agentId===s),[s]),na)}function UB(){return Dt(x.useCallback(s=>s.secrets,[]),rr)}function GB(){const s=UB(),e=x.useRef([]),t=Array.from(s.values());return na(e.current,t)||(e.current=t),e.current}const WB={connectionStatus:new Map,databases:new Map,tables:new Map,tableSchemas:new Map,queryResults:[],queryHistory:[],executingQuery:!1,activeConnectionId:null,activeDatabase:null,lastSilentQueryResult:null};function lf(s){return Dt(x.useCallback(e=>(s?e.databaseState.get(s):void 0)??WB,[s]))}function qB(s){return Dt(x.useCallback(e=>{if(!s)return[];const t=e.databaseState.get(s);return(t==null?void 0:t.queryResults)??[]},[s]),na)}function YB(s){return Dt(x.useCallback(e=>{if(!s)return[];const t=e.databaseState.get(s);return(t==null?void 0:t.queryHistory)??[]},[s]),na)}function VB(s){return Dt(x.useCallback(e=>{if(!s)return!1;const t=e.databaseState.get(s);return(t==null?void 0:t.executingQuery)??!1},[s]))}function KB(){return Dt(s=>s.dockerContainersList,na)}function XB(){return Dt(s=>s.currentSnapshot)}function iM(){return Dt(s=>s.subagents,rr)}function ZB(s){return Dt(x.useCallback(e=>s?Array.from(e.subagents.values()).filter(t=>t.parentAgentId===s):[],[s]),na)}function QB(){return Dt(s=>s.viewMode)}function JB(){return Dt(x.useCallback(s=>s.overviewPanelOpen,[]))}function gx(){return Dt(x.useCallback(s=>s.agentsWithUnseenOutput,[]))}class yj{constructor(){W(this,"state");W(this,"listeners",new Set);W(this,"sendMessage",null);W(this,"agentActions");W(this,"outputActions");W(this,"supervisorActions");W(this,"areaActions");W(this,"buildingActions");W(this,"permissionActions");W(this,"delegationActions");W(this,"skillActions");W(this,"execTaskActions");W(this,"secretActions");W(this,"databaseActions");W(this,"snapshotActions");W(this,"subagentActions");W(this,"statusPollInterval",null);this.state={agents:new Map,selectedAgentIds:new Set,lastSelectedAgentId:null,activities:[],isConnected:!1,areas:new Map,activeTool:null,selectedAreaId:null,buildings:new Map,selectedBuildingIds:new Set,buildingLogs:new Map,streamingBuildingLogs:new Map,streamingBuildingIds:new Set,bossStreamingLogs:new Map,agentOutputs:new Map,lastPrompts:new Map,toolExecutions:[],fileChanges:[],terminalOpen:!1,terminalResizing:!1,mobileView:this.loadMobileView(),settings:this.loadSettings(),shortcuts:this.loadShortcuts(),mouseControls:this.loadMouseControls(),fileViewerPath:null,fileViewerSearchRoot:null,fileViewerEditData:null,explorerFolderPath:null,explorerAreaId:null,contextModalAgentId:null,supervisor:{enabled:!0,autoReportOnComplete:!1,lastReport:null,narratives:new Map,lastReportTime:null,nextReportTime:null,agentHistories:new Map,loadingHistoryForAgent:null,historyFetchedForAgents:new Set,generatingReport:!1,globalUsage:null,refreshingUsage:!1},permissionRequests:new Map,delegationHistories:new Map,pendingDelegation:null,lastDelegationReceived:new Map,agentTaskProgress:new Map,skills:new Map,customAgentClasses:new Map,reconnectCount:0,execTasks:new Map,secrets:new Map,databaseState:new Map,dockerContainersList:[],dockerComposeProjectsList:[],snapshots:new Map,currentSnapshot:null,snapshotsLoading:!1,snapshotsError:null,lastSelectionViaSwipe:!1,lastSelectionViaDirectClick:!1,subagents:new Map,viewMode:(()=>{const o=Ns(dt.SCENE_VIEW_MODE,"3d");return o==="2d"||o==="3d"||o==="dashboard"?o:"3d"})(),overviewPanelOpen:!1,agentsWithUnseenOutput:this.loadUnseenAgents()};const e=()=>this.state,t=o=>{o(this.state)},n=()=>this.notify(),a=()=>this.sendMessage,i=()=>this.listeners.size;this.agentActions=hB(e,t,n,a,()=>this.saveUnseenAgents()),this.outputActions=pB(e,t,n,i),this.supervisorActions=fB(e,t,n,a),this.areaActions=mB(e,t,n,a),this.buildingActions=gB(e,t,n,a),this.permissionActions=bB(e,t,n,a),this.delegationActions=yB(e,t,n,a),this.skillActions=xB(e,t,n,a),this.execTaskActions=vB(e,t,n),this.secretActions=wB(e,t,n,a),this.databaseActions=kB(e,t,n,a),this.snapshotActions=SB(e,t,n),this.subagentActions=jB(e,t,n)}loadSettings(){const e=qa(dt.SETTINGS,null);return e?{...gj,...e}:{...gj}}loadShortcuts(){const e=qa(dt.SHORTCUTS,null);return e?Vg.map(n=>{const a=e.find(i=>i.id===n.id);return a?{...n,...a}:n}):[...Vg]}loadMouseControls(){var t;const e=qa(dt.MOUSE_CONTROLS,null);return e?{bindings:Xg.map(a=>{var o;const i=(o=e.bindings)==null?void 0:o.find(l=>l.id===a.id);return i?{...a,...i}:a}),sensitivity:{...Kg,...e.sensitivity},trackpad:{...Lh,...e.trackpad,sensitivity:{...Lh.sensitivity,...(t=e.trackpad)==null?void 0:t.sensitivity}}}:{bindings:[...Xg],sensitivity:{...Kg},trackpad:{...Lh}}}loadMobileView(){const e=Ns(dt.MOBILE_VIEW,"");return e==="terminal"||e==="3d"?e:typeof window<"u"&&window.innerWidth<=768&&"ontouchstart"in window?"3d":"terminal"}loadUnseenAgents(){const e=qa(dt.UNSEEN_AGENTS,[]);return new Set(e)}saveUnseenAgents(){const e=Array.from(this.state.agentsWithUnseenOutput);bi(dt.UNSEEN_AGENTS,e)}subscribe(e){return this.listeners.add(e),()=>this.listeners.delete(e)}notify(){this.listeners.forEach(e=>e())}getState(){return this.state}setSendMessage(e){this.sendMessage=e}setConnected(e){this.state.isConnected=e,this.notify()}triggerReconnect(){this.state.reconnectCount++,this.notify()}toggleTerminal(e){e&&!this.state.selectedAgentIds.has(e)&&(this.state.selectedAgentIds.clear(),this.state.selectedAgentIds.add(e)),this.state.terminalOpen=!this.state.terminalOpen,this.notify()}setTerminalOpen(e){if(console.log("[Store] setTerminalOpen called with:",e,"current:",this.state.terminalOpen),!e&&this.state.terminalOpen&&console.trace("[Store] Closing terminal - stack trace:"),this.state.terminalOpen=e,e){if(this.state.mobileView="terminal",this.state.selectedAgentIds.size===0&&this.state.agents.size>0&&!this.state.currentSnapshot){const n=Array.from(this.state.agents.keys())[0];console.log("[Store] Auto-selecting first agent for terminal open:",n),this.state.selectedAgentIds=new Set([n])}let t=!1;for(const n of this.state.selectedAgentIds)this.state.agentsWithUnseenOutput.has(n)&&(t||(this.state.agentsWithUnseenOutput=new Set(this.state.agentsWithUnseenOutput),t=!0),this.state.agentsWithUnseenOutput.delete(n),console.log(`[Store] Cleared unseen badge for agent ${n}`));t&&this.saveUnseenAgents()}this.notify(),console.log("[Store] After notify, terminalOpen:",this.state.terminalOpen)}setOverviewPanelOpen(e){this.state.overviewPanelOpen=e,this.notify()}setMobileView(e){if(console.log("[Store] setMobileView called:",e,"previous:",this.state.mobileView),this.state.mobileView=e,ta(dt.MOBILE_VIEW,e),e==="terminal"&&this.state.selectedAgentIds.size===0&&this.state.agents.size>0&&!this.state.currentSnapshot){const t=Array.from(this.state.agents.keys())[0];console.log("[Store] Auto-selecting first agent for terminal view:",t),this.state.selectedAgentIds=new Set([t]),this.state.terminalOpen=!0}this.notify()}setViewMode(e){this.state.viewMode=e,ta(dt.SCENE_VIEW_MODE,e),this.state.settings.experimental2DView=e==="2d",this.notify()}openTerminalOnMobile(e){console.log("[Store] openTerminalOnMobile called for agent:",e),kR("terminal"),this.state.selectedAgentIds.clear(),this.state.selectedAgentIds.add(e),this.state.terminalOpen=!0,this.state.mobileView="terminal",this.state.agentsWithUnseenOutput.has(e)&&(this.state.agentsWithUnseenOutput=new Set(this.state.agentsWithUnseenOutput),this.state.agentsWithUnseenOutput.delete(e),console.log(`[Store] Cleared unseen badge for agent ${e}`),this.saveUnseenAgents()),this.notify()}clearUnseenForAgent(e){this.state.agentsWithUnseenOutput.has(e)&&(this.state.agentsWithUnseenOutput=new Set(this.state.agentsWithUnseenOutput),this.state.agentsWithUnseenOutput.delete(e),this.saveUnseenAgents(),this.notify())}setTerminalResizing(e){this.state.terminalResizing=e,this.notify()}setLastSelectionViaSwipe(e){this.state.lastSelectionViaSwipe=e}consumeSwipeSelectionFlag(){const e=this.state.lastSelectionViaSwipe;return this.state.lastSelectionViaSwipe=!1,e}setLastSelectionViaDirectClick(e){this.state.lastSelectionViaDirectClick=e}consumeDirectClickSelectionFlag(){const e=this.state.lastSelectionViaDirectClick;return this.state.lastSelectionViaDirectClick=!1,e}setFileViewerPath(e,t,n){this.state.fileViewerPath=e,this.state.fileViewerEditData=t||null,this.state.fileViewerSearchRoot=n||null,this.notify()}clearFileViewerPath(){this.state.fileViewerPath=null,this.state.fileViewerEditData=null,this.state.fileViewerSearchRoot=null,this.notify()}getLastExplorerState(){try{const e=localStorage.getItem("file-explorer-last-opened");return e?JSON.parse(e):null}catch{return null}}setExplorerFolderPath(e){this.state.explorerFolderPath=e,this.notify()}openFileExplorer(e){this.state.explorerFolderPath=e,this.state.explorerAreaId=null,this.notify()}closeFileExplorer(){this.state.explorerFolderPath=null,this.state.explorerAreaId=null,this.notify()}openFileExplorerForArea(e){this.state.explorerFolderPath=null,this.state.explorerAreaId=e,this.notify()}openFileExplorerForAreaFolder(e,t){this.state.explorerAreaId=e,this.state.explorerFolderPath=t,this.notify()}setContextModalAgentId(e){this.state.contextModalAgentId=e,this.notify()}closeContextModal(){this.state.contextModalAgentId=null,this.notify()}updateSettings(e){this.state.settings={...this.state.settings,...e},bi(dt.SETTINGS,this.state.settings),this.notify()}getSettings(){return this.state.settings}getShortcuts(){return this.state.shortcuts}getShortcut(e){return this.state.shortcuts.find(t=>t.id===e)}updateShortcut(e,t){const n=this.state.shortcuts.findIndex(a=>a.id===e);n!==-1&&(this.state.shortcuts=[...this.state.shortcuts.slice(0,n),{...this.state.shortcuts[n],...t},...this.state.shortcuts.slice(n+1)],this.saveShortcuts(),this.notify())}resetShortcuts(){this.state.shortcuts=[...Vg],this.saveShortcuts(),this.notify()}saveShortcuts(){bi(dt.SHORTCUTS,this.state.shortcuts)}getMouseControls(){return this.state.mouseControls}getMouseBinding(e){return this.state.mouseControls.bindings.find(t=>t.id===e)}updateMouseBinding(e,t){const n=this.state.mouseControls.bindings.findIndex(a=>a.id===e);n!==-1&&(this.state.mouseControls.bindings=[...this.state.mouseControls.bindings.slice(0,n),{...this.state.mouseControls.bindings[n],...t},...this.state.mouseControls.bindings.slice(n+1)],this.saveMouseControls(),this.notify())}updateCameraSensitivity(e){this.state.mouseControls.sensitivity={...this.state.mouseControls.sensitivity,...e},this.saveMouseControls(),this.notify()}resetMouseControls(){this.state.mouseControls={bindings:[...Xg],sensitivity:{...Kg},trackpad:{...Lh}},this.saveMouseControls(),this.notify()}getTrackpadConfig(){return this.state.mouseControls.trackpad}updateTrackpadConfig(e){this.state.mouseControls.trackpad={...this.state.mouseControls.trackpad,...e,sensitivity:{...this.state.mouseControls.trackpad.sensitivity,...e.sensitivity||{}}},this.saveMouseControls(),this.notify()}saveMouseControls(){bi(dt.MOUSE_CONTROLS,this.state.mouseControls)}startStatusPolling(){}stopStatusPolling(){this.statusPollInterval&&(clearInterval(this.statusPollInterval),this.statusPollInterval=null)}setAgents(...e){return this.agentActions.setAgents(...e)}addAgent(...e){return this.agentActions.addAgent(...e)}updateAgent(...e){return this.agentActions.updateAgent(...e)}updateAgentContextStats(...e){return this.agentActions.updateAgentContextStats(...e)}updateAgentContext(...e){return this.agentActions.updateAgentContext(...e)}removeAgent(...e){return this.agentActions.removeAgent(...e)}selectAgent(...e){return this.agentActions.selectAgent(...e)}addToSelection(...e){return this.agentActions.addToSelection(...e)}selectMultiple(...e){return this.agentActions.selectMultiple(...e)}deselectAll(...e){return this.agentActions.deselectAll(...e)}spawnAgent(...e){return this.agentActions.spawnAgent(...e)}createDirectoryAndSpawn(...e){return this.agentActions.createDirectoryAndSpawn(...e)}sendCommand(...e){return this.agentActions.sendCommand(...e)}refreshAgentContext(...e){return this.agentActions.refreshAgentContext(...e)}moveAgentLocal(...e){return this.agentActions.moveAgentLocal(...e)}moveAgent(...e){return this.agentActions.moveAgent(...e)}killAgent(...e){return this.agentActions.killAgent(...e)}stopAgent(...e){return this.agentActions.stopAgent(...e)}clearContext(...e){return this.agentActions.clearContext(...e)}collapseContext(...e){return this.agentActions.collapseContext(...e)}removeAgentFromServer(...e){return this.agentActions.removeAgentFromServer(...e)}renameAgent(...e){return this.agentActions.renameAgent(...e)}updateAgentProperties(...e){return this.agentActions.updateAgentProperties(...e)}getTotalTokens(){return this.agentActions.getTotalTokens()}getSelectedAgents(){return this.agentActions.getSelectedAgents()}addActivity(...e){return this.agentActions.addActivity(...e)}addToolExecution(...e){return this.agentActions.addToolExecution(...e)}addFileChange(...e){return this.agentActions.addFileChange(...e)}loadToolHistory(){return this.agentActions.loadToolHistory()}addOutput(...e){return this.outputActions.addOutput(...e)}clearOutputs(...e){return this.outputActions.clearOutputs(...e)}getOutputs(...e){return this.outputActions.getOutputs(...e)}addUserPromptToOutput(...e){return this.outputActions.addUserPromptToOutput(...e)}getLastPrompt(...e){return this.outputActions.getLastPrompt(...e)}setLastPrompt(...e){return this.outputActions.setLastPrompt(...e)}preserveOutputs(){return this.outputActions.preserveOutputs()}mergeOutputsWithHistory(...e){return this.outputActions.mergeOutputsWithHistory(...e)}setSupervisorReport(...e){return this.supervisorActions.setSupervisorReport(...e)}addNarrative(...e){return this.supervisorActions.addNarrative(...e)}getNarratives(...e){return this.supervisorActions.getNarratives(...e)}setSupervisorStatus(...e){return this.supervisorActions.setSupervisorStatus(...e)}setSupervisorConfig(...e){return this.supervisorActions.setSupervisorConfig(...e)}requestSupervisorReport(){return this.supervisorActions.requestSupervisorReport()}requestAgentSupervisorHistory(...e){return this.supervisorActions.requestAgentSupervisorHistory(...e)}setAgentSupervisorHistory(...e){return this.supervisorActions.setAgentSupervisorHistory(...e)}getAgentSupervisorHistory(...e){return this.supervisorActions.getAgentSupervisorHistory(...e)}addAgentAnalysis(...e){return this.supervisorActions.addAgentAnalysis(...e)}isLoadingHistoryForAgent(...e){return this.supervisorActions.isLoadingHistoryForAgent(...e)}hasHistoryBeenFetched(...e){return this.supervisorActions.hasHistoryBeenFetched(...e)}setGlobalUsage(...e){return this.supervisorActions.setGlobalUsage(...e)}requestGlobalUsage(){return this.supervisorActions.requestGlobalUsage()}getGlobalUsage(){return this.supervisorActions.getGlobalUsage()}setActiveTool(...e){return this.areaActions.setActiveTool(...e)}selectArea(...e){return this.areaActions.selectArea(...e)}addArea(...e){return this.areaActions.addArea(...e)}updateArea(...e){return this.areaActions.updateArea(...e)}updateAreaLocal(...e){return this.areaActions.updateAreaLocal(...e)}deleteArea(...e){return this.areaActions.deleteArea(...e)}assignAgentToArea(...e){return this.areaActions.assignAgentToArea(...e)}unassignAgentFromArea(...e){return this.areaActions.unassignAgentFromArea(...e)}addDirectoryToArea(...e){return this.areaActions.addDirectoryToArea(...e)}removeDirectoryFromArea(...e){return this.areaActions.removeDirectoryFromArea(...e)}getAreaDirectories(...e){return this.areaActions.getAreaDirectories(...e)}isPositionInArea(...e){return this.areaActions.isPositionInArea(...e)}getAreaForAgent(...e){return this.areaActions.getAreaForAgent(...e)}setAreasFromServer(...e){return this.areaActions.setAreasFromServer(...e)}getAreasInZOrder(...e){return this.areaActions.getAreasInZOrder(...e)}getNextZIndex(...e){return this.areaActions.getNextZIndex(...e)}bringAreaToFront(...e){return this.areaActions.bringAreaToFront(...e)}sendAreaToBack(...e){return this.areaActions.sendAreaToBack(...e)}setAreaZIndex(...e){return this.areaActions.setAreaZIndex(...e)}archiveArea(...e){return this.areaActions.archiveArea(...e)}restoreArchivedArea(...e){return this.areaActions.restoreArchivedArea(...e)}getArchivedAreas(...e){return this.areaActions.getArchivedAreas(...e)}getVisibleAreas(...e){return this.areaActions.getVisibleAreas(...e)}isAgentInArchivedArea(...e){return this.areaActions.isAgentInArchivedArea(...e)}selectBuilding(...e){return this.buildingActions.selectBuilding(...e)}selectMultipleBuildings(...e){return this.buildingActions.selectMultipleBuildings(...e)}toggleBuildingSelection(...e){return this.buildingActions.toggleBuildingSelection(...e)}isBuildingSelected(...e){return this.buildingActions.isBuildingSelected(...e)}getSelectedBuildingIds(){return this.buildingActions.getSelectedBuildingIds()}deleteSelectedBuildings(){return this.buildingActions.deleteSelectedBuildings()}addBuilding(...e){return this.buildingActions.addBuilding(...e)}updateBuilding(...e){return this.buildingActions.updateBuilding(...e)}updateBuildingLocal(...e){return this.buildingActions.updateBuildingLocal(...e)}deleteBuilding(...e){return this.buildingActions.deleteBuilding(...e)}moveBuilding(...e){return this.buildingActions.moveBuilding(...e)}updateBuildingPosition(...e){return this.buildingActions.updateBuildingPosition(...e)}createBuilding(...e){return this.buildingActions.createBuilding(...e)}sendBuildingCommand(...e){return this.buildingActions.sendBuildingCommand(...e)}addBuildingLogs(...e){return this.buildingActions.addBuildingLogs(...e)}getBuildingLogs(...e){return this.buildingActions.getBuildingLogs(...e)}clearBuildingLogs(...e){return this.buildingActions.clearBuildingLogs(...e)}setBuildingsFromServer(...e){return this.buildingActions.setBuildingsFromServer(...e)}updateBuildingFromServer(...e){return this.buildingActions.updateBuildingFromServer(...e)}removeBuildingFromServer(...e){return this.buildingActions.removeBuildingFromServer(...e)}startLogStreaming(...e){return this.buildingActions.startLogStreaming(...e)}stopLogStreaming(...e){return this.buildingActions.stopLogStreaming(...e)}appendStreamingLogChunk(...e){return this.buildingActions.appendStreamingLogChunk(...e)}setStreamingStatus(...e){return this.buildingActions.setStreamingStatus(...e)}getStreamingLogs(...e){return this.buildingActions.getStreamingLogs(...e)}clearStreamingLogs(...e){return this.buildingActions.clearStreamingLogs(...e)}isLogStreaming(...e){return this.buildingActions.isLogStreaming(...e)}sendBossBuildingCommand(...e){return this.buildingActions.sendBossBuildingCommand(...e)}assignBuildingsToBoSS(...e){return this.buildingActions.assignBuildingsToBoSS(...e)}startBossLogStreaming(...e){return this.buildingActions.startBossLogStreaming(...e)}stopBossLogStreaming(...e){return this.buildingActions.stopBossLogStreaming(...e)}appendBossStreamingLogChunk(...e){return this.buildingActions.appendBossStreamingLogChunk(...e)}getBossStreamingLogs(...e){return this.buildingActions.getBossStreamingLogs(...e)}clearBossStreamingLogs(...e){return this.buildingActions.clearBossStreamingLogs(...e)}requestDockerContainersList(){return this.buildingActions.requestDockerContainersList()}setDockerContainersList(...e){return this.buildingActions.setDockerContainersList(...e)}getDockerContainersList(){return this.buildingActions.getDockerContainersList()}getDockerComposeProjectsList(){return this.buildingActions.getDockerComposeProjectsList()}addPermissionRequest(...e){return this.permissionActions.addPermissionRequest(...e)}resolvePermissionRequest(...e){return this.permissionActions.resolvePermissionRequest(...e)}respondToPermissionRequest(...e){return this.permissionActions.respondToPermissionRequest(...e)}getPendingPermissionsForAgent(...e){return this.permissionActions.getPendingPermissionsForAgent(...e)}clearAllPermissions(...e){return this.permissionActions.clearAllPermissions(...e)}spawnBossAgent(...e){return this.delegationActions.spawnBossAgent(...e)}assignSubordinates(...e){return this.delegationActions.assignSubordinates(...e)}removeSubordinate(...e){return this.delegationActions.removeSubordinate(...e)}sendBossCommand(...e){return this.delegationActions.sendBossCommand(...e)}requestDelegationHistory(...e){return this.delegationActions.requestDelegationHistory(...e)}handleDelegationDecision(...e){return this.delegationActions.handleDelegationDecision(...e)}setDelegationHistory(...e){return this.delegationActions.setDelegationHistory(...e)}getDelegationHistory(...e){return this.delegationActions.getDelegationHistory(...e)}getLastDelegationReceived(...e){return this.delegationActions.getLastDelegationReceived(...e)}clearLastDelegationReceived(...e){return this.delegationActions.clearLastDelegationReceived(...e)}updateBossSubordinates(...e){return this.delegationActions.updateBossSubordinates(...e)}getSubordinates(...e){return this.delegationActions.getSubordinates(...e)}isBossAgent(...e){return this.delegationActions.isBossAgent(...e)}getBossForAgent(...e){return this.delegationActions.getBossForAgent(...e)}getAvailableSubordinates(){return this.delegationActions.getAvailableSubordinates()}handleAgentTaskStarted(...e){return this.delegationActions.handleAgentTaskStarted(...e)}handleAgentTaskOutput(...e){return this.delegationActions.handleAgentTaskOutput(...e)}handleAgentTaskCompleted(...e){return this.delegationActions.handleAgentTaskCompleted(...e)}getAgentTaskProgress(...e){return this.delegationActions.getAgentTaskProgress(...e)}clearAgentTaskProgress(...e){return this.delegationActions.clearAgentTaskProgress(...e)}clearAllSubordinatesContext(...e){return this.delegationActions.clearAllSubordinatesContext(...e)}setSkillsFromServer(...e){return this.skillActions.setSkillsFromServer(...e)}addSkillFromServer(...e){return this.skillActions.addSkillFromServer(...e)}updateSkillFromServer(...e){return this.skillActions.updateSkillFromServer(...e)}removeSkillFromServer(...e){return this.skillActions.removeSkillFromServer(...e)}getSkill(...e){return this.skillActions.getSkill(...e)}getAllSkills(){return this.skillActions.getAllSkills()}getSkillsForAgent(...e){return this.skillActions.getSkillsForAgent(...e)}createSkill(...e){return this.skillActions.createSkill(...e)}updateSkill(...e){return this.skillActions.updateSkill(...e)}deleteSkill(...e){return this.skillActions.deleteSkill(...e)}assignSkillToAgent(...e){return this.skillActions.assignSkillToAgent(...e)}unassignSkillFromAgent(...e){return this.skillActions.unassignSkillFromAgent(...e)}requestAgentSkills(...e){return this.skillActions.requestAgentSkills(...e)}setCustomAgentClassesFromServer(...e){return this.skillActions.setCustomAgentClassesFromServer(...e)}addCustomAgentClassFromServer(...e){return this.skillActions.addCustomAgentClassFromServer(...e)}updateCustomAgentClassFromServer(...e){return this.skillActions.updateCustomAgentClassFromServer(...e)}removeCustomAgentClassFromServer(...e){return this.skillActions.removeCustomAgentClassFromServer(...e)}getCustomAgentClass(...e){return this.skillActions.getCustomAgentClass(...e)}getAllCustomAgentClasses(){return this.skillActions.getAllCustomAgentClasses()}createCustomAgentClass(...e){return this.skillActions.createCustomAgentClass(...e)}updateCustomAgentClass(...e){return this.skillActions.updateCustomAgentClass(...e)}deleteCustomAgentClass(...e){return this.skillActions.deleteCustomAgentClass(...e)}handleExecTaskStarted(...e){return this.execTaskActions.handleExecTaskStarted(...e)}handleExecTaskOutput(...e){return this.execTaskActions.handleExecTaskOutput(...e)}handleExecTaskCompleted(...e){return this.execTaskActions.handleExecTaskCompleted(...e)}stopExecTask(...e){return this.execTaskActions.stopExecTask(...e)}getExecTasks(...e){return this.execTaskActions.getExecTasks(...e)}getAllExecTasks(){return this.execTaskActions.getAllExecTasks()}getExecTask(...e){return this.execTaskActions.getExecTask(...e)}clearCompletedExecTasks(...e){return this.execTaskActions.clearCompletedExecTasks(...e)}clearAllExecTasks(...e){return this.execTaskActions.clearAllExecTasks(...e)}removeExecTask(...e){return this.execTaskActions.removeExecTask(...e)}setSecretsFromServer(...e){return this.secretActions.setSecretsFromServer(...e)}addSecretFromServer(...e){return this.secretActions.addSecretFromServer(...e)}updateSecretFromServer(...e){return this.secretActions.updateSecretFromServer(...e)}removeSecretFromServer(...e){return this.secretActions.removeSecretFromServer(...e)}getSecret(...e){return this.secretActions.getSecret(...e)}getSecretByKey(...e){return this.secretActions.getSecretByKey(...e)}getAllSecrets(){return this.secretActions.getAllSecrets()}createSecret(...e){return this.secretActions.createSecret(...e)}updateSecret(...e){return this.secretActions.updateSecret(...e)}deleteSecret(...e){return this.secretActions.deleteSecret(...e)}testDatabaseConnection(...e){return this.databaseActions.testDatabaseConnection(...e)}setConnectionStatus(...e){return this.databaseActions.setConnectionStatus(...e)}listDatabases(...e){return this.databaseActions.listDatabases(...e)}setDatabases(...e){return this.databaseActions.setDatabases(...e)}listTables(...e){return this.databaseActions.listTables(...e)}setTables(...e){return this.databaseActions.setTables(...e)}getTableSchema(...e){return this.databaseActions.getTableSchema(...e)}setTableSchema(...e){return this.databaseActions.setTableSchema(...e)}executeQuery(...e){return this.databaseActions.executeQuery(...e)}executeSilentQuery(...e){return this.databaseActions.executeSilentQuery(...e)}setSilentQueryResult(...e){return this.databaseActions.setSilentQueryResult(...e)}setQueryResult(...e){return this.databaseActions.setQueryResult(...e)}setExecutingQuery(...e){return this.databaseActions.setExecutingQuery(...e)}requestQueryHistory(...e){return this.databaseActions.requestQueryHistory(...e)}setQueryHistory(...e){return this.databaseActions.setQueryHistory(...e)}toggleQueryFavorite(...e){return this.databaseActions.toggleQueryFavorite(...e)}deleteQueryFromHistory(...e){return this.databaseActions.deleteQueryFromHistory(...e)}clearQueryHistory(...e){return this.databaseActions.clearQueryHistory(...e)}setActiveConnection(...e){return this.databaseActions.setActiveConnection(...e)}setActiveDatabase(...e){return this.databaseActions.setActiveDatabase(...e)}getDatabaseState(...e){return this.databaseActions.getDatabaseState(...e)}clearDatabaseState(...e){return this.databaseActions.clearDatabaseState(...e)}fetchSnapshots(...e){return this.snapshotActions.fetchSnapshots(...e)}setSnapshots(...e){return this.snapshotActions.setSnapshots(...e)}createSnapshot(...e){return this.snapshotActions.createSnapshot(...e)}loadSnapshot(...e){return this.snapshotActions.loadSnapshot(...e)}setCurrentSnapshot(...e){return this.snapshotActions.setCurrentSnapshot(...e)}deleteSnapshot(...e){return this.snapshotActions.deleteSnapshot(...e)}restoreFiles(...e){return this.snapshotActions.restoreFiles(...e)}setLoading(...e){return this.snapshotActions.setLoading(...e)}setError(...e){return this.snapshotActions.setError(...e)}clearError(...e){return this.snapshotActions.clearError(...e)}reset(...e){return this.snapshotActions.reset(...e)}addSubagent(...e){return this.subagentActions.addSubagent(...e)}completeSubagent(...e){return this.subagentActions.completeSubagent(...e)}getSubagentsForAgent(...e){return this.subagentActions.getSubagentsForAgent(...e)}getSubagent(...e){return this.subagentActions.getSubagent(...e)}removeSubagent(...e){return this.subagentActions.removeSubagent(...e)}getSubagentByToolUseId(...e){return this.subagentActions.getSubagentByToolUseId(...e)}addSubagentActivity(...e){return this.subagentActions.addSubagentActivity(...e)}updateSubagentStats(...e){return this.subagentActions.updateSubagentStats(...e)}}const xj=1;function e5(){return typeof window<"u"?(window.__tideStore&&window.__tideStoreVersion===xj||(window.__tideStore=new yj,window.__tideStoreVersion=xj),window.__tideStore):new yj}const U=e5(),rM=x.createContext(null),t5={error:"❌",success:"✅",warning:"⚠️",info:"ℹ️"};let n5=0;function s5({children:s}){const[e,t]=x.useState(null),n=x.useRef([]),a=x.useRef(null),i=x.useCallback(()=>{if(n.current.length>0&&!e){const c=n.current.shift();t(c)}},[e]);x.useEffect(()=>{e||i()},[e,i]),x.useEffect(()=>{if(e&&e.duration>0)return a.current=window.setTimeout(()=>{t(null)},e.duration),()=>{a.current&&clearTimeout(a.current)}},[e]);const o=x.useCallback((c,d,f,p=5e3)=>{const b={id:++n5,type:c,title:d,message:f,duration:p};if(n.current.push(b),!e){const y=n.current.shift();t(y)}},[e]),l=x.useCallback(()=>{a.current&&clearTimeout(a.current),t(null)},[]);return r.jsxs(rM.Provider,{value:{showToast:o},children:[s,r.jsx("div",{id:"toast-container",children:e&&r.jsxs("div",{className:`toast ${e.type}`,children:[r.jsx("span",{className:"toast-icon",children:t5[e.type]}),r.jsxs("div",{className:"toast-content",children:[r.jsx("div",{className:"toast-title",children:e.title}),r.jsx("div",{className:"toast-message",children:e.message})]}),r.jsx("button",{className:"toast-close",onClick:l,children:"×"})]},e.id)})]})}function bx(){const s=x.useContext(rM);if(!s)throw new Error("useToast must be used within ToastProvider");return s}const nr={scout:{icon:"🔍",color:"#4a9eff",description:"Codebase exploration, file discovery"},builder:{icon:"🔨",color:"#ff9e4a",description:"Feature implementation, writing code"},debugger:{icon:"🐛",color:"#ff4a4a",description:"Bug hunting, fixing issues"},architect:{icon:"📐",color:"#9e4aff",description:"Planning, design decisions"},warrior:{icon:"⚔️",color:"#ff4a9e",description:"Aggressive refactoring, migrations"},support:{icon:"💚",color:"#4aff9e",description:"Documentation, tests, cleanup"},boss:{icon:"👑",color:"#ffd700",description:"Team leader, delegates tasks to subordinates"}},wi=nr,Ka={bypass:{label:"Permissionless",description:"Skip all permission prompts (less safe, faster)"},interactive:{label:"Interactive",description:"Ask for approval before sensitive operations"}},Ra={"gpt-5.3-codex":{label:"GPT-5.3 Codex",description:"Latest frontier agentic coding model",icon:"⚙️"},"gpt-5.2-codex":{label:"GPT-5.2 Codex",description:"Frontier agentic coding model",icon:"🧠"},"gpt-5.1-codex-max":{label:"GPT-5.1 Codex Max",description:"Codex-optimized flagship for deep and fast reasoning",icon:"🚀"},"gpt-5.1-codex-mini":{label:"GPT-5.1 Codex Mini",description:"Optimized for codex, cheaper and faster",icon:"⚡"},"gpt-5.2":{label:"GPT-5.2",description:"General frontier model with strong reasoning and coding",icon:"🧩"}},Oa={sonnet:{label:"Sonnet",description:"Balanced performance and cost (recommended)",icon:"⚡"},opus:{label:"Opus",description:"Most capable, higher cost",icon:"🧠"},haiku:{label:"Haiku",description:"Fast and economical",icon:"🚀"}},yy="<<<BOSS_CONTEXT_START>>>",vj="<<<BOSS_CONTEXT_END>>>",ac={server:{icon:"🖥️",color:"#4aff9e",description:"Service with start/stop commands and logs"},link:{icon:"🔗",color:"#4a9eff",description:"Quick links to URLs"},database:{icon:"🗄️",color:"#ff9e4a",description:"Database connection and queries"},docker:{icon:"🐳",color:"#4ac1ff",description:"Docker container management"},monitor:{icon:"📊",color:"#ff4a9e",description:"System metrics and monitoring"},folder:{icon:"📁",color:"#ffd700",description:"Folder shortcut - opens file explorer on click"},boss:{icon:"👑",color:"#ffd700",description:"Boss building - manages multiple buildings with unified controls"}},sp={"server-rack":{label:"Server Rack",description:"Classic server rack with blinking LEDs"},tower:{label:"Control Tower",description:"Tall tower with rotating antenna"},dome:{label:"Data Dome",description:"Futuristic dome with energy ring"},pyramid:{label:"Power Pyramid",description:"Egyptian-style pyramid with glowing core"},desktop:{label:"Desktop PC",description:"Retro computer with monitor and keyboard"},"filing-cabinet":{label:"Filing Cabinet",description:"Office cabinet with sliding drawers"},satellite:{label:"Satellite Dish",description:"Communication dish with rotating receiver"},crystal:{label:"Data Crystal",description:"Floating crystal with energy particles"},factory:{label:"Mini Factory",description:"Industrial building with smoking chimney"},"command-center":{label:"Command Center",description:"Grand central hub for boss buildings with holographic rings"}},wj={"":{label:"Auto-detect",description:"Let PM2 detect the interpreter"},node:{label:"Node.js",description:"JavaScript/TypeScript runtime"},bun:{label:"Bun",description:"Bun JavaScript runtime"},python3:{label:"Python 3",description:"Python 3 interpreter"},python:{label:"Python 2",description:"Python 2 interpreter (legacy)"},java:{label:"Java",description:"Java runtime (use with -jar args)"},php:{label:"PHP",description:"PHP interpreter"},bash:{label:"Bash",description:"Bash shell script"},none:{label:"None (Binary)",description:"Direct execution (compiled binaries)"}},kj={no:{label:"No",description:"Do not automatically restart"},always:{label:"Always",description:"Always restart when stopped"},"unless-stopped":{label:"Unless Stopped",description:"Restart unless manually stopped"},"on-failure":{label:"On Failure",description:"Restart only on failure"}},Sj={always:{label:"Always",description:"Always pull the image"},missing:{label:"If Missing",description:"Pull only if image not present"},never:{label:"Never",description:"Never pull, use local only"}},wu={mysql:{label:"MySQL",icon:"🐬",defaultPort:3306},postgresql:{label:"PostgreSQL",icon:"🐘",defaultPort:5432},oracle:{label:"Oracle",icon:"🔶",defaultPort:1521}},oM=x.createContext(null);function a5(s){const e=nr[s];if(e)return e.icon;const n=U.getState().customAgentClasses.get(s);return n?n.icon:"🤖"}function i5(s){const e=nr[s];if(e)return e.color;const n=U.getState().customAgentClasses.get(s);return n?n.color:"#888888"}const r5=3;function o5({children:s}){const{t:e}=Ue(["notifications"]),[t,n]=x.useState([]),a=x.useRef(new Map);x.useEffect(()=>()=>{a.current.forEach(c=>clearTimeout(c))},[]);const i=x.useCallback(c=>{n(f=>f.filter(p=>p.id!==c));const d=a.current.get(c);d&&(clearTimeout(d),a.current.delete(c))},[]),o=x.useCallback(c=>{n(f=>{const p=[...f,c];if(p.length>r5){const g=p.shift();if(g){const b=a.current.get(g.id);b&&(clearTimeout(b),a.current.delete(g.id))}}return p});const d=window.setTimeout(()=>{i(c.id)},8e3);a.current.set(c.id,d),XI({title:`${c.agentName}: ${c.title}`,body:c.message,data:{type:"agent_notification",agentId:c.agentId,notificationId:c.id}})},[i]),l=x.useCallback(c=>{VA(c.agentId),i(c.id)},[i]);return r.jsxs(oM.Provider,{value:{showAgentNotification:o},children:[s,r.jsx("div",{id:"agent-notification-container",children:t.map(c=>{const d=a5(c.agentClass),f=i5(c.agentClass);return r.jsxs("div",{className:"agent-notification",onClick:()=>l(c),style:{"--agent-color":f},children:[r.jsx("div",{className:"agent-notification-avatar",children:r.jsx("span",{className:"agent-notification-icon",children:d})}),r.jsxs("div",{className:"agent-notification-content",children:[r.jsxs("div",{className:"agent-notification-header",children:[r.jsx("span",{className:"agent-notification-name",children:c.agentName}),r.jsx("span",{className:"agent-notification-hint",children:e("notifications:agent.clickToFocus")})]}),r.jsx("div",{className:"agent-notification-title",children:c.title}),r.jsx("div",{className:"agent-notification-message",children:c.message})]}),r.jsx("button",{className:"agent-notification-close",onClick:p=>{p.stopPropagation(),i(c.id)},children:"×"})]},c.id)})})]})}function l5(){const s=x.useContext(oM);if(!s)throw new Error("useAgentNotification must be used within AgentNotificationProvider");return s}function c5(s){return typeof s=="string"?s:"#"+s.toString(16).padStart(6,"0")}function Qr(s,e){const t=La[s];if(t)return{icon:t.icon,color:c5(t.color),description:t.description};const n=e.find(a=>a.id===s);return n?{icon:n.icon,color:n.color,description:n.description}:{icon:"🤖",color:"#888888"}}function u5(s){const e=Math.floor((Date.now()-s)/1e3);if(e<60)return`${e}s`;const t=Math.floor(e/60);if(t<60)return`${t}m`;const n=Math.floor(t/60);return n<24?`${n}h`:`${Math.floor(n/24)}d`}function Np(s){const e=Math.floor((Date.now()-s)/1e3);if(e<60)return"just now";const t=Math.floor(e/60);if(t<60)return`${t}m ago`;const n=Math.floor(t/60);return n<24?`${n}h ago`:`${Math.floor(n/24)}d ago`}function lM(s){const e=s.contextStats;if(e){const i=e.usedPercent,o=100-i,l=e.contextWindow-e.totalTokens;return{remainingPercent:o,usedPercent:i,hasData:!0,totalTokens:e.totalTokens,contextWindow:e.contextWindow,freeTokens:l}}const t=s.contextUsed||0,n=s.contextLimit||2e5,a=Math.max(0,n-t);return{remainingPercent:a/n*100,usedPercent:t/n*100,hasData:!1,totalTokens:t,contextWindow:n,freeTokens:a}}function d5(s){return s<20?"#c85858":s<50?"#c89858":"#6a9a78"}function h5(s,e){const t=new Map;for(const n of s){const a=e(n.id),i=(a==null?void 0:a.id)||null;t.has(i)||t.set(i,[]),t.get(i).push(n)}return t}function p5(s,e){return[...s].sort((t,n)=>{if(t===null)return 1;if(n===null)return-1;const a=t?e(t):void 0,i=n?e(n):void 0;return((a==null?void 0:a.name)||"").localeCompare((i==null?void 0:i.name)||"")})}function jj({onOpenAreaExplorer:s}){const{t:e}=Ue(["common"]),t=En(),n=Array.from(t.agents.values()),a=Array.from(t.areas.values()),i=x.useMemo(()=>n.map(d=>d.id).sort().join(","),[n]),o=x.useRef(new Set);x.useEffect(()=>{for(const d of n){if(o.current.has(d.id))continue;U.getAgentSupervisorHistory(d.id).length===0&&!U.isLoadingHistoryForAgent(d.id)&&(o.current.add(d.id),U.requestAgentSupervisorHistory(d.id))}},[i]);const l=h5(n,d=>U.getAreaForAgent(d));for(const d of a)l.has(d.id)||l.set(d.id,[]);const c=p5(Array.from(l.keys()),d=>t.areas.get(d));return n.length===0&&a.length===0?r.jsxs("div",{className:"empty-state",children:[r.jsx("div",{className:"empty-state-icon",children:"⚔️"}),r.jsx("div",{className:"empty-state-title",children:e("agentsList.noAgentsDeployed")}),r.jsx("div",{className:"empty-state-desc",children:e("agentsList.clickNewAgent")})]}):r.jsxs("div",{className:"agents-list",children:[r.jsx("div",{className:"agents-list-header",children:e("agentsList.areasAndAgents")}),c.map(d=>{const f=l.get(d),p=d?t.areas.get(d):null;return r.jsxs("div",{className:"agents-group",children:[r.jsxs("div",{className:"agents-group-header",style:p?{borderLeftColor:p.color,background:`${p.color}15`}:void 0,children:[p?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"agents-group-dot",style:{background:p.color}}),r.jsx("span",{className:"agents-group-name",children:p.name}),p.directories.length>0&&r.jsx("button",{className:"area-browse-btn",onClick:()=>s==null?void 0:s(p.id),title:e("agentsList.browseFiles"),children:"📂"})]}):r.jsx("span",{className:"agents-group-name unassigned",children:e("agentsList.unassigned")}),r.jsx("span",{className:"agents-group-count",children:f.length})]}),f.length>0&&r.jsx("div",{className:"agents-group-items",style:p?{background:`${p.color}08`}:void 0,children:f.map(g=>r.jsx(f5,{agent:g,area:p},g.id))})]},d||"unassigned")}),n.length>0&&r.jsx(m5,{agents:n})]})}const f5=x.memo(function({agent:e,area:t}){const n=En(),a=ti(),i=Qr(e.class,a),o=n.selectedAgentIds.has(e.id),[,l]=x.useState(0);x.useEffect(()=>{if(e.status==="idle"){const p=setInterval(()=>{l(g=>g+1)},15e3);return()=>clearInterval(p)}},[e.status]);const c=()=>{U.selectAgent(e.id)},d=e.status==="idle"&&e.lastActivity>0,f=e.lastActivity>0?ef(e.lastActivity):void 0;return r.jsxs("div",{className:`agent-item ${o?"selected":""}`,onClick:c,children:[r.jsx("div",{className:"agent-item-icon",style:{background:`${i.color}20`},children:i.icon}),r.jsxs("div",{className:"agent-item-info",children:[r.jsx("div",{className:"agent-item-name",children:e.name}),r.jsxs("div",{className:"agent-item-status",children:[e.status,e.currentTool?` • ${e.currentTool}`:"",d&&r.jsxs("span",{className:"agent-item-idle",style:{color:f},title:tf(e.lastActivity),children:[" ","⏱ ",u5(e.lastActivity)]})]})]}),r.jsx("div",{className:`agent-status-dot ${e.status}`})]})}),m5=x.memo(function({agents:e}){const{t}=Ue(["common"]),n=En(),a=ti(),i=n.settings.hideCost,[o,l]=x.useState(()=>ny(dt.GLOBAL_SUPERVISOR_COLLAPSED)),c=()=>{const p=!o;l(p),sy(dt.GLOBAL_SUPERVISOR_COLLAPSED,p)},d=x.useMemo(()=>e.map(p=>{const g=U.getAgentSupervisorHistory(p.id),b=g.length>0?g[0]:null;return{agent:p,entry:b,timestamp:(b==null?void 0:b.timestamp)||p.lastActivity||0}}).filter(p=>p.entry!==null).sort((p,g)=>g.timestamp-p.timestamp),[e,n.supervisor.agentHistories]),f=d.length>0?d[0].timestamp:Date.now();return d.length===0?null:r.jsxs("div",{className:"global-supervisor-status",children:[r.jsxs("div",{className:"global-supervisor-header",onClick:c,children:[r.jsx("span",{className:"global-supervisor-toggle",children:o?"▶":"▼"}),r.jsx("span",{className:"global-supervisor-title",children:t("agentsList.supervisorStatus")}),r.jsx("span",{className:"global-supervisor-time",children:Np(f)})]}),!o&&r.jsx("div",{className:"global-supervisor-list",children:d.map(({agent:p,entry:g})=>{const b=Qr(p.class,a),y=g.analysis;return r.jsxs("div",{className:"global-supervisor-item",onClick:()=>U.selectAgent(p.id),children:[r.jsxs("div",{className:"global-supervisor-item-header",children:[r.jsx("span",{className:"global-supervisor-progress-dot",style:{background:gA[y.progress]||"#888"}}),r.jsx("span",{className:"global-supervisor-agent-icon",children:b.icon}),r.jsx("span",{className:"global-supervisor-agent-name",children:p.name}),r.jsx("span",{className:"global-supervisor-item-time",children:Np(g.timestamp)})]}),r.jsx("div",{className:"global-supervisor-status-line",children:Gr(y.statusDescription,i)}),r.jsx("div",{className:"global-supervisor-summary-text",children:Gr(y.recentWorkSummary,i)})]},p.id)})})]})}),g5={idle:"idle",working:"walk",waiting:"sit",waiting_permission:"idle",error:"emote-no",offline:"static",orphaned:"idle"},Cj={idle:4915102,working:4890367,waiting:16752202,waiting_permission:16763904,error:16730698,offline:8947848,orphaned:16752202};function uc({agentClass:s,modelFile:e,customModelFile:t,customModelUrl:n,modelScale:a=1,modelOffset:i,idleAnimation:o,status:l="idle",width:c=150,height:d=200}){const f=x.useRef(null),p=x.useRef(null),g=x.useRef(null),b=x.useRef(null),y=x.useRef(null),w=x.useRef(null),k=x.useRef(new Map),S=x.useRef(null),j=x.useRef(null),C=x.useRef(0),A=x.useRef(new eA),[_,M]=x.useState(!1),[$,E]=x.useState(!1),D=x.useRef(!1),P=x.useRef(0),R=x.useRef(new gt),L=x.useRef(!1),z=x.useRef({x:0,y:0}),B=x.useRef({x:0,y:0});x.useEffect(()=>{const H=f.current;if(!H)return;E(!1);const G=new Jy;G.background=new Bt(1710628),g.current=G;const K=new Zy(45,c/d,.1,100);K.position.set(0,1.2,1.4),K.lookAt(0,.4,0),b.current=K;let X;try{X=new tA({antialias:!0,alpha:!0})}catch{console.warn("[ModelPreview] WebGL context creation failed — too many active contexts"),E(!0);return}X.setSize(c,d),X.setPixelRatio(Math.min(window.devicePixelRatio,2)),X.setClearColor(1710628,1),H.appendChild(X.domElement),p.current=X;const I=new Qy(16777215,1);G.add(I);const ee=new tc(16777215,1.5);ee.position.set(2,3,2),G.add(ee);const se=new tc(4890367,.6);se.position.set(-2,1,-1),G.add(se);const O=new qb(1,32),V=new rt({color:2763322,roughness:.8}),J=new Pe(O,V);J.rotation.x=-Math.PI/2,J.position.y=0,G.add(J);const Q=new Ko(.35,.42,32),ae=new We({color:Cj.idle,side:Cs,transparent:!0,opacity:.8}),te=new Pe(Q,ae);te.rotation.x=-Math.PI/2,te.position.y=.01,G.add(te),j.current=te,M(!0);const Z=pe=>{L.current=!0,z.current={x:pe.clientX,y:pe.clientY},H.style.cursor="grabbing"},re=pe=>{if(!L.current||!y.current)return;const Ae=pe.clientX-z.current.x,Me=pe.clientY-z.current.y;B.current.y+=Ae*.01,B.current.x+=Me*.01,B.current.x=Math.max(-Math.PI/4,Math.min(Math.PI/4,B.current.x)),y.current.rotation.y=B.current.y,y.current.rotation.x=B.current.x,z.current={x:pe.clientX,y:pe.clientY}},de=()=>{L.current=!1,H.style.cursor="grab"},ge=()=>{L.current=!1,H.style.cursor="grab"};H.addEventListener("mousedown",Z),window.addEventListener("mousemove",re),window.addEventListener("mouseup",de),H.addEventListener("mouseleave",ge),H.style.cursor="grab";const we=()=>{C.current=requestAnimationFrame(we);const pe=A.current.getDelta();if(w.current)w.current.update(pe);else if(y.current&&!D.current){P.current+=pe;const Ae=P.current,Y=Math.sin(Ae*1.5)*.02,be=Math.sin(Ae*.8)*.01;y.current.position.set(R.current.x+be,R.current.y+Y,R.current.z)}p.current&&g.current&&b.current&&p.current.render(g.current,b.current)};return we(),()=>{if(cancelAnimationFrame(C.current),H.removeEventListener("mousedown",Z),window.removeEventListener("mousemove",re),window.removeEventListener("mouseup",de),H.removeEventListener("mouseleave",ge),y.current&&g.current&&(g.current.remove(y.current),y.current.traverse(pe=>{var Ae,Me;pe instanceof Pe&&((Ae=pe.geometry)==null||Ae.dispose(),Array.isArray(pe.material)?pe.material.forEach(Oe=>{Oe.map&&Oe.map.dispose(),Oe.dispose()}):pe.material&&(pe.material.map&&((Me=pe.material.map)==null||Me.dispose()),pe.material.dispose()))}),y.current=null),j.current&&g.current&&(g.current.remove(j.current),j.current.geometry.dispose(),j.current.material.dispose(),j.current=null),g.current&&(g.current.traverse(pe=>{var Ae;pe instanceof Pe&&((Ae=pe.geometry)==null||Ae.dispose(),pe.material instanceof Ur&&pe.material.dispose())}),g.current.clear()),w.current=null,S.current=null,k.current.clear(),p.current){try{const Ae=p.current.getContext().getExtension("WEBGL_lose_context");Ae&&Ae.loseContext()}catch{}p.current.dispose(),H.contains(p.current.domElement)&&H.removeChild(p.current.domElement),p.current=null}g.current=null,b.current=null,M(!1)}},[c,d]),x.useEffect(()=>{if(!_||!g.current)return;const H=new sx,G=new ax;G.setDecoderPath("https://www.gstatic.com/draco/versioned/decoders/1.5.7/"),H.setDRACOLoader(G),H.setMeshoptDecoder(ix);let K=null;const X=I=>{y.current&&g.current&&(g.current.remove(y.current),y.current=null,w.current=null,S.current=null);const ee=I.scene;ee.scale.setScalar(a);const se=(i==null?void 0:i.x)??0,O=(i==null?void 0:i.y)??0,V=(i==null?void 0:i.z)??0;if(ee.position.set(se,V,O),ee.visible=!0,B.current={x:0,y:0},ee.rotation.set(0,0,0),ee.traverse(J=>{if(J instanceof Pe&&(J.castShadow=!0,J.receiveShadow=!0,J.material)){const Q=J.material;Q.map&&(Q.map.colorSpace=Ya)}}),g.current)if(g.current.add(ee),y.current=ee,R.current.copy(ee.position),I.animations.length>0){D.current=!0;const J=new $u(ee);w.current=J,k.current.clear();for(const Q of I.animations)k.current.set(Q.name.toLowerCase(),Q);if(o!==""){const Q=o?k.current.get(o.toLowerCase())||I.animations[0]:k.current.get("idle")||I.animations[0];if(Q){const ae=J.clipAction(Q);ae.reset().play(),S.current=ae}}}else D.current=!1,w.current=null,k.current.clear()};if(t)K=URL.createObjectURL(t),console.log("[ModelPreview] Loading custom model from file:",t.name,"blob URL:",K),H.load(K,I=>{console.log("[ModelPreview] Successfully loaded custom model file, animations:",I.animations.length),X(I)},void 0,I=>{console.error("[ModelPreview] Failed to load custom model file:",I)});else if(n){const I=kA(n);console.log("[ModelPreview] Loading custom model from URL:",n),H.load(I,ee=>{console.log("[ModelPreview] Successfully loaded custom model URL, animations:",ee.animations.length),X(ee)},void 0,ee=>{console.error("[ModelPreview] Failed to load custom model URL:",n,ee)})}else{const I=e||(s?Jl[s]:void 0)||"character-male-a.glb";H.load(`/assets/characters/${I}`,X,void 0,ee=>{console.error("[ModelPreview] Failed to load model:",I,ee)})}return()=>{K&&URL.revokeObjectURL(K),G.dispose()}},[s,e,t,n,a,i,_]);const F=H=>{if(!w.current)return;const G=g5[H],K=k.current.get(G);if(!K){const I=k.current.get("idle");if(I){const ee=w.current.clipAction(I);ee.reset().play(),S.current=ee}return}const X=w.current.clipAction(K);H==="working"?X.timeScale=1.5:H==="error"&&(X.setLoop(XN,1),X.clampWhenFinished=!0),S.current&&S.current!==X?(S.current.fadeOut(.3),X.reset().fadeIn(.3).play()):X.reset().play(),S.current=X};return x.useEffect(()=>{if(_){if(j.current){const H=j.current.material;H.color.setHex(Cj[l]),l==="working"?H.opacity=.6+Math.sin(Date.now()*.005)*.4:H.opacity=.8}F(l)}},[l,_]),x.useEffect(()=>{if(!_||!w.current||l!=="idle")return;if(o===""){S.current&&(S.current.stop(),S.current=null);return}const H=o?o.toLowerCase():"idle",G=k.current.get(H);if(G){const K=w.current.clipAction(G);S.current&&S.current!==K?(S.current.fadeOut(.3),K.reset().fadeIn(.3).play()):K.reset().play(),S.current=K}else S.current&&(S.current.stop(),S.current=null)},[o,_,l]),$?r.jsx("div",{className:"model-preview",style:{width:c,height:d,borderRadius:8,overflow:"hidden",background:"#1a1a24",display:"flex",alignItems:"center",justifyContent:"center",color:"#666",fontSize:12,textAlign:"center",padding:8},children:"3D preview unavailable"}):r.jsx("div",{ref:f,className:"model-preview",style:{width:c,height:d,borderRadius:8,overflow:"hidden",background:"#1a1a24"}})}function Jr({value:s,onChange:e,onSubmit:t,placeholder:n="/path/to/folder",className:a="",directoriesOnly:i=!0,autoFocus:o=!1,hasError:l=!1,disabled:c=!1}){const[d,f]=x.useState([]),[p,g]=x.useState(-1),[b,y]=x.useState(!1),[w,k]=x.useState(!1),S=x.useRef(null),j=x.useRef(null),C=x.useRef(null),A=x.useCallback(async R=>{if(!R){f([]);return}k(!0);try{const L=new URLSearchParams({path:R,dirs:i?"true":"false",limit:"15"}),z=await ht(it(`/api/files/autocomplete?${L}`));if(z.ok){const B=await z.json();f(B.suggestions||[]),g(-1)}}catch(L){console.error("Failed to fetch path suggestions:",L)}finally{k(!1)}},[i]);x.useEffect(()=>(C.current&&clearTimeout(C.current),s&&b?C.current=setTimeout(()=>{A(s)},150):f([]),()=>{C.current&&clearTimeout(C.current)}),[s,b,A]);const _=R=>{e(R.target.value),y(!0)},M=x.useCallback(R=>{var z;const L=R.isDirectory?R.path+"/":R.path;e(L),y(R.isDirectory),g(-1),(z=S.current)==null||z.focus(),R.isDirectory&&A(L)},[e,A]),$=R=>{if(!b||d.length===0){R.key==="Enter"&&t&&(R.preventDefault(),t()),R.key==="Escape"&&y(!1);return}switch(R.key){case"ArrowDown":R.preventDefault(),g(L=>L<d.length-1?L+1:L);break;case"ArrowUp":R.preventDefault(),g(L=>L>0?L-1:-1);break;case"Tab":if(R.preventDefault(),d.length>0){const L=p>=0?p:0;M(d[L])}break;case"Enter":R.preventDefault(),p>=0&&d[p]?M(d[p]):t&&(y(!1),t());break;case"Escape":R.preventDefault(),y(!1),g(-1);break}},E=()=>{y(!0),s&&A(s)},D=()=>{setTimeout(()=>{y(!1),g(-1)},200)};x.useEffect(()=>{if(p>=0&&j.current){const L=j.current.querySelectorAll(".folder-input-suggestion")[p];L&&L.scrollIntoView({block:"nearest"})}},[p]);const P=["folder-input",a,l?"error":""].filter(Boolean).join(" ");return r.jsxs("div",{className:"folder-input-container",children:[r.jsx("input",{ref:S,type:"text",className:P,value:s,onChange:_,onKeyDown:$,onFocus:E,onBlur:D,placeholder:n,autoFocus:o,disabled:c,autoComplete:"off",spellCheck:!1}),b&&(d.length>0||w)&&r.jsx("div",{ref:j,className:"folder-input-suggestions",children:w&&d.length===0?r.jsx("div",{className:"folder-input-loading",children:"Loading..."}):d.map((R,L)=>r.jsxs("div",{className:`folder-input-suggestion ${L===p?"selected":""}`,onClick:()=>M(R),onMouseEnter:()=>g(L),children:[r.jsx("span",{className:"folder-input-suggestion-icon",children:R.isDirectory?"📁":"📄"}),r.jsx("span",{className:"folder-input-suggestion-name",children:R.name}),R.isDirectory&&r.jsx("span",{className:"folder-input-suggestion-hint",children:"/"})]},R.path))})]})}function cM({agent:s,isOpen:e,onClose:t}){const{t:n}=Ue(["terminal","common","tools"]),a=of(),i=ti(),[o,l]=x.useState(s.name),[c,d]=x.useState(s.class),[f,p]=x.useState(s.permissionMode),[g,b]=x.useState(s.provider||"claude"),[y,w]=x.useState(s.codexConfig||{fullAuto:!0,sandbox:"workspace-write",approvalMode:"on-request",search:!1}),[k,S]=x.useState(s.model||"sonnet"),[j,C]=x.useState(s.codexModel||"gpt-5.3-codex"),[A,_]=x.useState(s.useChrome||!1),[M,$]=x.useState(s.cwd),[E,D]=x.useState(new Set),[P,R]=x.useState("");x.useMemo(()=>a.filter(J=>J.enabled&&(J.assignedAgentIds.includes(s.id)||J.assignedAgentClasses.includes(s.class))),[a,s.id,s.class]),x.useEffect(()=>{const J=a.filter(Q=>Q.assignedAgentIds.includes(s.id)).map(Q=>Q.id);D(new Set(J))},[a,s.id]),x.useEffect(()=>{if(e){l(s.name),d(s.class),p(s.permissionMode),b(s.provider||"claude"),w(s.codexConfig||{fullAuto:!0,sandbox:"workspace-write",approvalMode:"on-request",search:!1}),S(s.model||"sonnet"),C(s.codexModel||"gpt-5.3-codex"),_(s.useChrome||!1),$(s.cwd);const J=a.filter(Q=>Q.assignedAgentIds.includes(s.id)).map(Q=>Q.id);D(new Set(J))}},[e,s,a]);const L=x.useMemo(()=>a.filter(J=>J.enabled),[a]),z=x.useMemo(()=>{if(!P.trim())return L;const J=P.toLowerCase();return L.filter(Q=>Q.name.toLowerCase().includes(J)||Q.description.toLowerCase().includes(J)||Q.slug.toLowerCase().includes(J))},[L,P]),B=x.useMemo(()=>L.filter(J=>J.assignedAgentClasses.includes(c)),[L,c]),F=x.useCallback(J=>{D(Q=>{const ae=new Set(Q);return ae.has(J)?ae.delete(J):ae.add(J),ae})},[]),H=x.useMemo(()=>{const J=i.find(Q=>Q.id===c);if(J!=null&&J.model)return J.model},[i,c]),G=x.useMemo(()=>{const J=i.find(Q=>Q.id===c);if(J!=null&&J.customModelPath)return it(`/api/custom-models/${J.id}`)},[i,c]),K=x.useMemo(()=>{const J=i.find(Q=>Q.id===c);return J==null?void 0:J.modelScale},[i,c]),X=x.useMemo(()=>i.find(J=>J.id===c),[i,c]),I=x.useMemo(()=>i.find(Q=>Q.id===c)?"scout":c,[i,c]),ee=x.useMemo(()=>{const J=o.trim();if(J&&J!==s.name||c!==s.class||f!==s.permissionMode||g!==(s.provider||"claude")||g==="claude"&&k!==(s.model||"sonnet")||g==="codex"&&j!==(s.codexModel||"gpt-5.3-codex")||g==="codex"&&JSON.stringify(y||{})!==JSON.stringify(s.codexConfig||{})||A!==(s.useChrome||!1)||M!==s.cwd)return!0;const Q=a.filter(te=>te.assignedAgentIds.includes(s.id)).map(te=>te.id).sort().join(","),ae=Array.from(E).sort().join(",");return Q!==ae},[o,c,f,g,k,j,y,A,M,E,s,a]),se=()=>{const J=o.trim(),Q={};J&&J!==s.name&&U.renameAgent(s.id,J),c!==s.class&&(Q.class=c),f!==s.permissionMode&&(Q.permissionMode=f),g!==(s.provider||"claude")&&(Q.provider=g),g==="codex"&&JSON.stringify(y||{})!==JSON.stringify(s.codexConfig||{})&&(Q.codexConfig=y),g==="codex"&&j!==(s.codexModel||"gpt-5.3-codex")&&(Q.codexModel=j),g==="claude"&&k!==(s.model||"sonnet")&&(Q.model=k),A!==(s.useChrome||!1)&&(Q.useChrome=A),M!==s.cwd&&(Q.cwd=M);const ae=a.filter(Z=>Z.assignedAgentIds.includes(s.id)).map(Z=>Z.id).sort().join(","),te=Array.from(E).sort().join(",");ae!==te&&(Q.skillIds=Array.from(E)),Object.keys(Q).length>0&&U.updateAgentProperties(s.id,Q),t()},{handleMouseDown:O,handleClick:V}=As(t);return e?r.jsx("div",{className:"modal-overlay visible",onMouseDown:O,onClick:V,children:r.jsxs("div",{className:"modal agent-edit-modal",children:[r.jsxs("div",{className:"modal-header",children:[n("terminal:spawn.editAgentTitle"),": ",o.trim()||s.name]}),r.jsxs("div",{className:"modal-body spawn-modal-body",children:[r.jsxs("div",{className:"spawn-top-section",children:[r.jsx("div",{className:"spawn-preview-compact",children:r.jsx(uc,{agentClass:I,modelFile:H,customModelUrl:G,modelScale:K,width:100,height:120})}),r.jsxs("div",{className:"spawn-class-section",children:[r.jsx("div",{className:"spawn-class-label",children:n("terminal:spawn.agentClass")}),r.jsxs("div",{className:"class-selector-inline",children:[i.map(J=>r.jsxs("button",{className:`class-chip ${c===J.id?"selected":""}`,onClick:()=>d(J.id),title:J.description,children:[r.jsx("span",{className:"class-chip-icon",children:J.icon}),r.jsx("span",{className:"class-chip-name",children:J.name})]},J.id)),Object.entries(nr).filter(([J])=>J!=="boss").map(([J,Q])=>r.jsxs("button",{className:`class-chip ${c===J?"selected":""}`,onClick:()=>d(J),title:Q.description,children:[r.jsx("span",{className:"class-chip-icon",children:Q.icon}),r.jsx("span",{className:"class-chip-name",children:J.charAt(0).toUpperCase()+J.slice(1)})]},J))]})]})]}),(X==null?void 0:X.instructions)&&r.jsxs("div",{className:"custom-class-notice",children:[r.jsxs("div",{className:"custom-class-notice-header",children:[r.jsx("span",{children:"📋"}),r.jsx("span",{children:n("terminal:spawn.hasCustomInstructions")})]}),r.jsx("div",{className:"custom-class-notice-info",children:n("terminal:spawn.instructionsInjected",{count:X.instructions.length})})]}),r.jsxs("div",{className:"spawn-form-section",children:[r.jsx("div",{className:"spawn-form-row",children:r.jsxs("div",{className:"spawn-field",children:[r.jsx("label",{className:"spawn-label",children:n("common:labels.name")}),r.jsx("input",{type:"text",className:"spawn-input",value:o,onChange:J=>l(J.target.value),placeholder:n("terminal:spawn.agentNamePlaceholder")})]})}),r.jsxs("div",{className:"spawn-form-row",children:[r.jsxs("div",{className:"spawn-field",children:[r.jsx("label",{className:"spawn-label",children:n("common:labels.runtime")}),r.jsxs("div",{className:"spawn-select-row",children:[r.jsxs("button",{className:`spawn-select-btn ${g==="claude"?"selected":""}`,onClick:()=>b("claude"),children:[r.jsx("span",{children:"🧠"}),r.jsx("span",{children:"Claude"})]}),r.jsxs("button",{className:`spawn-select-btn ${g==="codex"?"selected":""}`,onClick:()=>b("codex"),children:[r.jsx("span",{children:"⚙️"}),r.jsx("span",{children:"Codex"})]})]})]}),r.jsxs("div",{className:"spawn-field",children:[r.jsx("label",{className:"spawn-label",children:n("common:labels.permissions")}),r.jsx("div",{className:"spawn-select-row",children:Object.keys(Ka).map(J=>r.jsxs("button",{className:`spawn-select-btn ${f===J?"selected":""}`,onClick:()=>p(J),title:Ka[J].description,children:[r.jsx("span",{children:J==="bypass"?"⚡":"🔐"}),r.jsx("span",{children:Ka[J].label})]},J))})]})]}),r.jsx("div",{className:"spawn-form-row",children:r.jsxs("div",{className:"spawn-field",children:[r.jsx("label",{className:"spawn-label",children:n("common:labels.model")}),g==="claude"?r.jsx("div",{className:"spawn-select-row",children:Object.keys(Oa).map(J=>r.jsxs("button",{className:`spawn-select-btn ${k===J?"selected":""}`,onClick:()=>S(J),title:Oa[J].description,children:[r.jsx("span",{children:Oa[J].icon}),r.jsx("span",{children:Oa[J].label})]},J))}):g==="codex"?r.jsx("div",{className:"spawn-select-row spawn-select-row--codex-models",children:Object.keys(Ra).map(J=>r.jsxs("button",{className:`spawn-select-btn ${j===J?"selected":""}`,onClick:()=>C(J),title:Ra[J].description,children:[r.jsx("span",{children:Ra[J].icon}),r.jsx("span",{children:Ra[J].label})]},J))}):r.jsx("div",{className:"spawn-inline-hint",children:n("terminal:spawn.codex.configuration")})]})}),g==="codex"&&r.jsx("div",{className:"spawn-form-row",children:r.jsxs("div",{className:"spawn-field",children:[r.jsx("label",{className:"spawn-label",children:n("terminal:spawn.codex.config")}),r.jsxs("div",{className:"spawn-options-row",style:{display:"flex",flexDirection:"column",gap:8},children:[r.jsxs("label",{className:"spawn-checkbox",children:[r.jsx("input",{type:"checkbox",checked:y.fullAuto!==!1,onChange:J=>w(Q=>({...Q,fullAuto:J.target.checked}))}),r.jsx("span",{children:n("terminal:spawn.codex.useFullAuto")})]}),r.jsxs("label",{className:"spawn-checkbox",children:[r.jsx("input",{type:"checkbox",checked:!!y.search,onChange:J=>w(Q=>({...Q,search:J.target.checked}))}),r.jsx("span",{children:n("terminal:spawn.codex.enableSearch")})]}),y.fullAuto===!1&&r.jsxs(r.Fragment,{children:[r.jsxs("select",{className:"spawn-input",value:y.sandbox||"workspace-write",onChange:J=>w(Q=>({...Q,sandbox:J.target.value})),children:[r.jsx("option",{value:"read-only",children:n("terminal:spawn.codex.sandboxReadOnly")}),r.jsx("option",{value:"workspace-write",children:n("terminal:spawn.codex.sandboxWorkspaceWrite")}),r.jsx("option",{value:"danger-full-access",children:n("terminal:spawn.codex.sandboxDangerFullAccess")})]}),r.jsxs("select",{className:"spawn-input",value:y.approvalMode||"on-request",onChange:J=>w(Q=>({...Q,approvalMode:J.target.value})),children:[r.jsx("option",{value:"untrusted",children:n("terminal:spawn.codex.approvalsUntrusted")}),r.jsx("option",{value:"on-failure",children:n("terminal:spawn.codex.approvalsOnFailure")}),r.jsx("option",{value:"on-request",children:n("terminal:spawn.codex.approvalsOnRequest")}),r.jsx("option",{value:"never",children:n("terminal:spawn.codex.approvalsNever")})]})]}),r.jsx("input",{type:"text",className:"spawn-input",placeholder:n("terminal:spawn.codex.profileOptional"),value:y.profile||"",onChange:J=>w(Q=>({...Q,profile:J.target.value||void 0}))})]})]})}),g==="claude"&&k!==(s.model||"sonnet")&&r.jsx("div",{className:"model-change-notice",children:n("terminal:spawn.contextPreserved")}),r.jsx("div",{className:"spawn-form-row spawn-options-row",children:r.jsxs("label",{className:"spawn-checkbox",children:[r.jsx("input",{type:"checkbox",checked:A,onChange:J=>_(J.target.checked),disabled:g!=="claude"}),r.jsx("span",{children:n("terminal:spawn.chromeBrowser")})]})}),r.jsx("div",{className:"spawn-form-row",children:r.jsxs("div",{className:"spawn-field",children:[r.jsx("label",{className:"spawn-label",children:n("terminal:spawn.workingDir")}),r.jsx(Jr,{value:M,onChange:$,placeholder:n("terminal:spawn.workingDirPlaceholder"),className:"spawn-input",directoriesOnly:!0})]})}),M!==s.cwd&&r.jsx("div",{className:"model-change-notice warning",children:n("terminal:spawn.newSessionWarning")}),r.jsxs("div",{className:"spawn-skills-section",children:[r.jsxs("label",{className:"spawn-label",children:[n("terminal:spawn.skills")," ",r.jsxs("span",{className:"spawn-label-hint",children:["(",n("terminal:spawn.clickToToggle"),")"]})]}),L.length>6&&r.jsx("input",{type:"text",className:"spawn-input skill-search-input",placeholder:n("terminal:spawn.filterSkills"),value:P,onChange:J=>R(J.target.value)}),r.jsx("div",{className:"skills-chips-compact",children:L.length===0?r.jsx("div",{className:"skills-empty",children:n("terminal:spawn.noEnabledSkills")}):z.length===0?r.jsx("div",{className:"skills-empty",children:n("terminal:spawn.noSkillsMatch",{query:P})}):z.map(J=>{const Q=B.includes(J),te=E.has(J.id)||Q;return r.jsxs("button",{className:`skill-chip ${te?"selected":""} ${Q?"class-based":""}`,onClick:()=>!Q&&F(J.id),title:Q?n("terminal:spawn.assignedViaClass"):J.name,children:[te&&r.jsx("span",{className:"skill-check",children:"✓"}),r.jsx("span",{className:"skill-chip-name",children:J.name}),J.builtin&&r.jsx("span",{className:"skill-chip-badge builtin",children:"TC"}),Q&&r.jsx("span",{className:"skill-chip-badge",children:"class"})]},J.id)})})]})]})]}),r.jsxs("div",{className:"modal-footer",children:[r.jsx("button",{className:"btn btn-secondary",onClick:t,children:n("common:buttons.cancel")}),r.jsx("button",{className:"btn btn-primary",onClick:se,disabled:!ee,children:n("common:buttons2.saveChanges")})]})]})}):null}var wc=FN();const b5=ud(wc);function no({children:s}){return typeof document>"u"?null:wc.createPortal(s,document.body)}function ku(s){return s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toString()}function Nj(s){return`${s.toFixed(1)}%`}function y5(s){return s>=80?"#ff4a4a":s>=60?"#ff9e4a":s>=40?"#ffd700":"#4aff9e"}const x5={systemPrompt:"#4a9eff",systemTools:"#9e4aff",messages:"#4aff9e",freeSpace:"rgba(255,255,255,0.1)",autocompactBuffer:"#ff9e4a"},v5={systemPrompt:"terminal:context.systemPrompt",systemTools:"terminal:context.systemTools",messages:"terminal:context.messagesCategory",freeSpace:"terminal:context.freeSpace",autocompactBuffer:"terminal:context.autocompactBuffer"},w5={systemPrompt:"terminal:context.systemPromptDesc",systemTools:"terminal:context.systemToolsDesc",messages:"terminal:context.messagesDesc",freeSpace:"terminal:context.freeSpaceDesc",autocompactBuffer:"terminal:context.autocompactBufferDesc"};function uM({agent:s,isOpen:e,onClose:t,onRefresh:n}){const{t:a}=Ue(["terminal","common"]),i=s.contextStats,[o,l]=x.useState(!1),c=()=>{n&&!o&&(l(!0),n(),setTimeout(()=>l(!1),3e3))},d=["systemPrompt","systemTools","messages","autocompactBuffer","freeSpace"],f=x.useMemo(()=>i?d.map(y=>({key:y,...i.categories[y],label:a(v5[y]),description:a(w5[y]),color:x5[y]})):[],[i]),p=x.useMemo(()=>f.filter(y=>y.key!=="freeSpace"),[f]),{handleMouseDown:g,handleClick:b}=As(t);return e?r.jsx(no,{children:r.jsx("div",{className:"modal-overlay visible",onMouseDown:g,onClick:b,children:r.jsxs("div",{className:"modal context-view-modal",style:{maxWidth:"520px"},children:[r.jsxs("div",{className:"modal-header",style:{display:"flex",alignItems:"center",gap:"12px"},children:[r.jsx("span",{style:{flex:1},children:a("terminal:context.contextWindow",{name:s.name})}),n&&r.jsxs("button",{className:"btn btn-primary",onClick:c,disabled:o||s.status!=="idle",style:{padding:"6px 12px",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px"},title:s.status!=="idle"?a("terminal:context.agentMustBeIdle"):a("terminal:context.fetchContextStats"),children:[r.jsx("span",{style:{display:"inline-block",animation:o?"spin 1s linear infinite":"none"},children:o?"⟳":"↻"}),a(o?"common:status.loading":"common:buttons.refresh")]})]}),r.jsx("div",{className:"modal-body",style:{padding:"16px"},children:i?r.jsxs(r.Fragment,{children:[r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"16px",padding:"8px 12px",background:"var(--bg-secondary)",borderRadius:"6px"},children:[r.jsxs("div",{children:[r.jsx("div",{style:{fontSize:"11px",color:"var(--text-secondary)"},children:a("terminal:context.model")}),r.jsx("div",{style:{fontSize:"13px",fontWeight:500},children:i.model})]}),r.jsxs("div",{style:{textAlign:"right"},children:[r.jsx("div",{style:{fontSize:"11px",color:"var(--text-secondary)"},children:a("terminal:context.contextWindowLabel")}),r.jsx("div",{style:{fontSize:"13px",fontWeight:500},children:ku(i.contextWindow)})]})]}),r.jsxs("div",{style:{marginBottom:"24px"},children:[r.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginBottom:"8px",fontSize:"13px"},children:[r.jsx("span",{children:a("terminal:context.contextUsage")}),r.jsxs("span",{style:{color:y5(i.usedPercent)},children:[ku(i.totalTokens)," / ",ku(i.contextWindow)," (",i.usedPercent,"%)"]})]}),r.jsx("div",{style:{height:"28px",background:"var(--bg-tertiary)",borderRadius:"6px",overflow:"hidden",display:"flex"},children:p.map(y=>y.percent>0&&r.jsx("div",{style:{width:`${y.percent}%`,background:y.color,height:"100%",minWidth:y.percent>.5?"2px":"0",transition:"width 0.3s ease"},title:`${y.label}: ${ku(y.tokens)} (${Nj(y.percent)})`},y.key))})]}),r.jsxs("div",{style:{marginBottom:"16px"},children:[r.jsx("div",{style:{fontSize:"12px",color:"var(--text-secondary)",marginBottom:"8px",textTransform:"uppercase",letterSpacing:"0.5px"},children:a("terminal:context.tokenBreakdown")}),r.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"6px"},children:f.map(y=>r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",padding:"10px 12px",background:y.key==="freeSpace"?"transparent":"var(--bg-secondary)",borderRadius:"6px",borderLeft:y.key==="freeSpace"?"3px dashed rgba(255,255,255,0.2)":`3px solid ${y.color}`,opacity:y.key==="freeSpace"?.7:1},children:[r.jsx("div",{style:{width:"12px",height:"12px",borderRadius:"3px",background:y.color,flexShrink:0,border:y.key==="freeSpace"?"1px dashed rgba(255,255,255,0.3)":"none"}}),r.jsxs("div",{style:{flex:1},children:[r.jsx("div",{style:{fontSize:"13px",fontWeight:500},children:y.label}),r.jsx("div",{style:{fontSize:"11px",color:"var(--text-secondary)"},children:y.description})]}),r.jsxs("div",{style:{textAlign:"right"},children:[r.jsx("div",{style:{fontSize:"13px",fontWeight:500},children:ku(y.tokens)}),r.jsx("div",{style:{fontSize:"11px",color:"var(--text-secondary)"},children:Nj(y.percent)})]})]},y.key))})]}),r.jsx("div",{style:{fontSize:"11px",color:"var(--text-muted)",textAlign:"center"},children:a("terminal:context.lastUpdated",{time:new Date(i.lastUpdated).toLocaleTimeString()})})]}):r.jsxs("div",{style:{textAlign:"center",color:"var(--text-secondary)",padding:"32px"},children:[r.jsx("div",{style:{fontSize:"48px",marginBottom:"16px",opacity:.5},children:"📊"}),r.jsx("div",{style:{fontSize:"14px",marginBottom:"8px"},children:a("terminal:context.noContextData")}),r.jsx("div",{style:{fontSize:"12px",marginBottom:"20px",opacity:.7},children:a("terminal:context.clickRefresh")}),n&&r.jsxs("button",{className:"btn btn-primary",onClick:c,disabled:o||s.status!=="idle",style:{padding:"10px 24px",fontSize:"14px",display:"inline-flex",alignItems:"center",gap:"8px"},children:[r.jsx("span",{style:{display:"inline-block",animation:o?"spin 1s linear infinite":"none"},children:o?"⟳":"↻"}),a(o?"terminal:context.fetchingStats":"terminal:context.fetchContextStats")]}),s.status!=="idle"&&r.jsx("div",{style:{fontSize:"11px",color:"var(--text-muted)",marginTop:"12px"},children:a("terminal:context.agentMustBeIdle")})]})}),r.jsx("div",{className:"modal-footer",style:{display:"flex",justifyContent:"flex-end",padding:"12px 16px",borderTop:"1px solid var(--border-color)"},children:r.jsx("button",{className:"btn btn-secondary",onClick:t,children:a("common:buttons.close")})})]})})}):null}const k5=x.memo(function({tokensUsed:e,createdAt:t}){const{t:n}=Ue(["common"]);return r.jsxs("div",{className:"unit-stats",children:[r.jsxs("div",{className:"unit-stat",children:[r.jsx("div",{className:"unit-stat-label",children:n("labels.tokens")}),r.jsx("div",{className:"unit-stat-value",children:ty(e)})]}),r.jsxs("div",{className:"unit-stat",children:[r.jsx("div",{className:"unit-stat-label",children:n("labels.uptime")}),r.jsx("div",{className:"unit-stat-value",children:yA(t)})]})]})}),dM=x.memo(function({contextInfo:e,onClick:t}){const{t:n}=Ue(["common"]),{remainingPercent:a,hasData:i}=e;return r.jsxs("div",{className:"unit-context unit-context-clickable",onClick:t,title:n(i?"unitPanel.remainingContext":"unitPanel.notRetrievedYet"),style:{cursor:"pointer"},children:[r.jsxs("div",{className:"unit-stat-label",style:{display:"flex",alignItems:"center",gap:"4px"},children:[r.jsx("span",{children:n("unitPanel.remainingContext")}),i?r.jsx("span",{style:{fontSize:"10px",opacity:.6},children:"📊"}):r.jsx("span",{style:{fontSize:"9px",color:"#ff9e4a",opacity:.8},title:n("unitPanel.notRetrievedYet"),children:"⚠️"})]}),i?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"unit-context-bar",children:r.jsx("div",{className:"unit-context-fill",style:{width:`${a}%`,background:d5(a)}})}),r.jsxs("span",{className:"unit-context-value",children:[Math.round(a),"%"]})]}):r.jsx("div",{style:{fontSize:"11px",color:"var(--text-muted)",fontStyle:"italic"},children:n("unitPanel.notRetrievedYet")})]})}),S5=x.memo(function({lastActivity:e}){const{t}=Ue(["common"]);return r.jsxs("div",{className:"unit-idle-timer",title:t("unitPanel.timeSinceActivity"),style:{color:ef(e)},children:["⏱ ",tf(e)]})}),j5=x.memo(function({toolName:e}){const{t}=Ue(["common"]);return r.jsxs("div",{className:"unit-current-tool",children:[r.jsx("span",{className:"unit-stat-label",children:t("unitPanel.using")}),r.jsx("span",{className:"unit-tool-name",children:e})]})}),C5=x.memo(function({task:e}){const{t}=Ue(["common"]);return r.jsxs("div",{className:"unit-task",children:[r.jsx("div",{className:"unit-stat-label",children:t("labels.task")}),r.jsx("div",{className:"unit-task-text",children:e})]})}),N5=x.memo(function({cwd:e}){const{t}=Ue(["common"]);return r.jsxs("div",{className:"unit-cwd",children:[r.jsx("div",{className:"unit-stat-label",children:t("labels.cwd")}),r.jsx("div",{className:"unit-cwd-path",title:e,children:e})]})}),A5=x.memo(function({text:e,maxLength:t=150}){const{t:n}=Ue(["common"]);return r.jsxs("div",{className:"unit-last-prompt",children:[r.jsx("div",{className:"unit-stat-label",children:n("unitPanel.lastPrompt")}),r.jsx("div",{className:"unit-last-prompt-text",children:e.length>t?e.slice(0,t)+"...":e})]})}),M5=x.memo(function({text:e,maxLength:t=200}){const{t:n}=Ue(["common"]);return r.jsxs("div",{className:"unit-last-message",children:[r.jsx("div",{className:"unit-stat-label",children:n("unitPanel.lastResponse")}),r.jsx("div",{className:"unit-last-message-text",children:e.length>t?e.slice(0,t)+"...":e})]})});function T5({agent:s,onFocusAgent:e,onKillAgent:t,onCallSubordinates:n,onOpenAreaExplorer:a}){var Z,re;const{t:i}=Ue(["common"]),o=En(),l=ti(),{showToast:c}=bx(),d=o.agents.get(s.id)||s,f=Qr(d.class,l),p=l.find(de=>de.id===d.class),g=p==null?void 0:p.model,b=p!=null&&p.customModelPath?it(`/api/custom-models/${p.id}`):void 0,y=p==null?void 0:p.modelScale,[w,k]=x.useState(!1),[S,j]=x.useState(d.name),C=x.useRef(null),[,A]=x.useState(0),[_,M]=x.useState(!0),[$,E]=x.useState(!1),[D,P]=x.useState([]),[R,L]=x.useState(null),[z,B]=x.useState(!1),[F,H]=x.useState(!1),G=U.getAgentSupervisorHistory(d.id),K=U.isLoadingHistoryForAgent(d.id);x.useEffect(()=>{!U.hasHistoryBeenFetched(d.id)&&!K&&U.requestAgentSupervisorHistory(d.id)},[d.id,K]),x.useEffect(()=>{j(d.name)},[d.name]),x.useEffect(()=>{w&&C.current&&(C.current.focus(),C.current.select())},[w]),x.useEffect(()=>{if(d.status==="idle"){const de=setInterval(()=>{A(ge=>ge+1)},15e3);return()=>clearInterval(de)}},[d.status]),x.useEffect(()=>{d.permissionMode==="interactive"&&ht(it("/api/remembered-patterns")).then(de=>de.json()).then(P).catch(de=>console.error("Failed to fetch remembered patterns:",de))},[d.permissionMode]);const X=x.useMemo(()=>lM(d),[d.contextStats,d.contextUsed,d.contextLimit]),I=U.getAreaForAgent(d.id),ee=o.agentOutputs.get(d.id)||[],se=ee.length>0?ee[ee.length-1]:null,O=o.lastPrompts.get(d.id),V=async(de,ge)=>{try{(await ht(it(`/api/remembered-patterns/${de}/${encodeURIComponent(ge)}`),{method:"DELETE"})).ok&&P(pe=>pe.filter(Ae=>!(Ae.tool===de&&Ae.pattern===ge)))}catch(we){console.error("Failed to remove pattern:",we)}},J=async()=>{if(confirm(i("confirm.clearPatterns")))try{(await ht(it("/api/remembered-patterns"),{method:"DELETE"})).ok&&P([])}catch(de){console.error("Failed to clear patterns:",de)}},Q=()=>{confirm(i("confirm.terminateAgent"))&&t(d.id)},ae=()=>{const de=S.trim();de&&de!==d.name?U.renameAgent(d.id,de):j(d.name),k(!1)},te=de=>{de.key==="Enter"?ae():de.key==="Escape"&&(j(d.name),k(!1))};return r.jsxs("div",{className:"unit-panel",children:[r.jsx("div",{className:"unit-model-preview",children:r.jsx(uc,{agentClass:d.class,modelFile:g,customModelUrl:b,modelScale:y,status:d.status,width:80,height:80})}),r.jsxs("div",{className:"unit-panel-header",children:[r.jsx("div",{className:"unit-class-icon",style:{background:`${f.color}20`},children:f.icon}),r.jsxs("div",{className:"unit-header-info",children:[w?r.jsx("input",{ref:C,type:"text",className:"unit-name-input",value:S,onChange:de=>j(de.target.value),onBlur:ae,onKeyDown:te}):r.jsx("div",{className:"unit-name unit-name-editable",onClick:()=>k(!0),title:i("unitPanel.clickToRename"),children:d.name}),r.jsxs("div",{className:"unit-status",children:[r.jsx("span",{style:{color:xp[d.status]||xp.default},children:d.status}),r.jsxs("span",{children:[" • ",d.class," • ",d.provider]})]}),d.status==="idle"&&d.lastActivity>0&&r.jsx(S5,{lastActivity:d.lastActivity})]}),r.jsxs("div",{className:"unit-header-actions",children:[r.jsx("button",{className:"unit-action-icon",onClick:()=>e(d.id),title:i("unitPanel.focusOnAgent"),children:"🎯"}),r.jsx("button",{className:"unit-action-icon",onClick:()=>B(!0),title:i("unitPanel.editProperties"),children:"✏️"}),(d.isBoss||d.class==="boss")&&d.subordinateIds&&d.subordinateIds.length>0&&r.jsx("button",{className:"unit-action-icon",onClick:()=>n==null?void 0:n(d.id),title:i("unitPanel.callSubordinates"),children:"📢"}),r.jsx("button",{className:"unit-action-icon",onClick:()=>L("collapse"),title:i("unitPanel.collapseContext"),disabled:d.status!=="idle",children:"📦"}),r.jsx("button",{className:"unit-action-icon warning",onClick:()=>L("clear"),title:i("unitPanel.clearContext"),children:"🗑️"}),r.jsx("button",{className:"unit-action-icon danger",onClick:Q,title:i("unitPanel.killAgent"),children:"☠️"})]})]}),I&&r.jsxs("div",{className:"unit-area",children:[r.jsx("span",{className:"unit-area-dot",style:{background:I.color}}),r.jsx("span",{className:"unit-area-name",children:I.name})]}),O&&r.jsx(A5,{text:O.text}),se&&r.jsx(M5,{text:se.text}),r.jsx(k5,{tokensUsed:d.tokensUsed,createdAt:d.createdAt}),r.jsx(dM,{contextInfo:X,onClick:()=>H(!0)}),d.currentTool&&r.jsx(j5,{toolName:d.currentTool}),d.currentTask&&r.jsx(C5,{task:d.currentTask}),r.jsx(N5,{cwd:d.cwd}),r.jsxs("div",{className:"unit-permission-mode",children:[r.jsx("div",{className:"unit-stat-label",children:i("unitPanel.permissions")}),r.jsxs("div",{className:"unit-permission-mode-value",title:(Z=Ka[d.permissionMode])==null?void 0:Z.description,children:[r.jsx("span",{className:"unit-permission-mode-icon",children:d.permissionMode==="bypass"?"⚡":"🔐"}),r.jsx("span",{className:"unit-permission-mode-label",children:((re=Ka[d.permissionMode])==null?void 0:re.label)||d.permissionMode})]})]}),d.permissionMode==="interactive"&&r.jsx(E5,{patterns:D,showPatterns:$,onToggle:()=>E(!$),onRemovePattern:V,onClearAll:J}),d.sessionId?r.jsxs("div",{className:"unit-resume-cmd",children:[r.jsx("div",{className:"unit-stat-label",children:i("unitPanel.resumeSession")}),r.jsxs("div",{className:"unit-resume-cmd-text",title:i("unitPanel.clickToCopy"),onClick:async()=>{const de=d.provider==="codex"?`codex resume ${d.sessionId}`:`claude --resume ${d.sessionId}`;try{await navigator.clipboard.writeText(de),c("success",i("toast.copied"),i("toast.resumeCommandCopied"),2e3)}catch{c("error",i("toast.errorTitle"),i("toast.failedToCopy"),3e3)}},children:[d.provider==="codex"?"codex resume":"claude --resume"," ",d.sessionId]})]}):r.jsxs("div",{className:"unit-resume-cmd",children:[r.jsx("div",{className:"unit-stat-label",children:i("unitPanel.session")}),r.jsx("div",{className:"unit-new-session-indicator",children:i("unitPanel.newSession")})]}),r.jsxs("div",{className:"unit-supervisor-history",children:[r.jsxs("div",{className:"unit-supervisor-history-header",onClick:()=>M(!_),children:[r.jsx("div",{className:"unit-stat-label",children:i("unitPanel.supervisorHistory")}),r.jsxs("span",{className:"unit-supervisor-history-toggle",children:[G.length>0&&r.jsx("span",{className:"unit-supervisor-history-count",children:G.length}),_?"▼":"▶"]})]}),_&&r.jsx("div",{className:"unit-supervisor-history-list",children:K?r.jsx("div",{className:"unit-supervisor-history-loading",children:i("status.loading")}):G.length===0?r.jsx("div",{className:"unit-supervisor-history-empty",children:i("unitPanel.noSupervisorReports")}):G.slice(0,10).map((de,ge)=>r.jsx(D5,{entry:de,defaultExpanded:ge===0},de.id))})]}),(d.isBoss||d.class==="boss")&&r.jsx(P5,{agent:d}),d.bossId&&r.jsx(O5,{agentId:d.id,bossId:d.bossId}),d.class!=="boss"&&!d.isBoss&&!d.bossId&&r.jsx(L5,{agentId:d.id}),R&&r.jsx(_5,{action:R,agentName:d.name,onClose:()=>L(null),onConfirm:()=>{R==="collapse"?U.collapseContext(d.id):U.clearContext(d.id),L(null)}}),r.jsx(cM,{agent:d,isOpen:z,onClose:()=>B(!1)}),r.jsx(uM,{agent:d,isOpen:F,onClose:()=>H(!1),onRefresh:()=>{U.refreshAgentContext(d.id)}})]})}const E5=x.memo(function({patterns:e,showPatterns:t,onToggle:n,onRemovePattern:a,onClearAll:i}){const{t:o}=Ue(["common"]);return r.jsxs("div",{className:"unit-remembered-patterns",children:[r.jsxs("div",{className:"unit-remembered-patterns-header",onClick:n,children:[r.jsx("div",{className:"unit-stat-label",children:o("unitPanel.allowedPatterns")}),r.jsxs("span",{className:"unit-remembered-patterns-toggle",children:[e.length>0&&r.jsx("span",{className:"unit-remembered-patterns-count",children:e.length}),t?"▼":"▶"]})]}),t&&r.jsx("div",{className:"unit-remembered-patterns-list",children:e.length===0?r.jsx("div",{className:"unit-remembered-patterns-empty",children:o("unitPanel.noPatterns")}):r.jsxs(r.Fragment,{children:[e.map((l,c)=>r.jsxs("div",{className:"unit-remembered-pattern-item",children:[r.jsx("span",{className:"unit-pattern-tool",children:l.tool}),r.jsx("span",{className:"unit-pattern-desc",title:l.pattern,children:l.description}),r.jsx("button",{className:"unit-pattern-remove",onClick:()=>a(l.tool,l.pattern),title:o("unitPanel.removePattern"),children:"×"})]},c)),r.jsx("button",{className:"unit-patterns-clear-all",onClick:i,children:o("buttons.clearAll")})]})})]})}),_5=x.memo(function({action:e,agentName:t,onClose:n,onConfirm:a}){const{t:i}=Ue(["common"]),{handleMouseDown:o,handleClick:l}=As(n);return r.jsx("div",{className:"modal-overlay visible",onMouseDown:o,onClick:l,children:r.jsxs("div",{className:"modal confirm-modal",children:[r.jsx("div",{className:"modal-header",children:i(e==="collapse"?"unitPanel.collapseContextTitle":"unitPanel.clearContextTitle")}),r.jsx("div",{className:"modal-body confirm-modal-body",children:e==="collapse"?r.jsxs(r.Fragment,{children:[r.jsx("p",{dangerouslySetInnerHTML:{__html:i("unitPanel.collapseContextMsg",{name:t})}}),r.jsx("p",{className:"confirm-modal-note",children:i("unitPanel.collapseContextNote")})]}):r.jsxs(r.Fragment,{children:[r.jsx("p",{dangerouslySetInnerHTML:{__html:i("unitPanel.clearContextMsg",{name:t})}}),r.jsx("p",{className:"confirm-modal-note",children:i("unitPanel.clearContextNote")})]})}),r.jsxs("div",{className:"modal-footer",children:[r.jsx("button",{className:"btn btn-secondary",onClick:n,children:i("buttons.cancel")}),r.jsx("button",{className:`btn ${e==="clear"?"btn-danger":"btn-primary"}`,onClick:a,autoFocus:!0,children:i(e==="collapse"?"unitPanel.collapseBtn":"unitPanel.clearContextBtn")})]})]})})}),D5=x.memo(function({entry:e,defaultExpanded:t=!1}){var g;const{t:n}=Ue(["common"]),[a,i]=x.useState(t),o=En(),{analysis:l}=e,c=o.settings.hideCost,d=Gr(l.statusDescription,c),f=Gr(l.recentWorkSummary,c),p=(g=l.concerns)==null?void 0:g.map(b=>Gr(b,c)).filter(b=>b.length>0);return r.jsxs("div",{className:"supervisor-history-item",children:[r.jsxs("div",{className:"supervisor-history-item-header",onClick:()=>i(!a),children:[r.jsx("span",{className:"supervisor-history-progress-dot",style:{background:gA[l.progress]||"#888"},title:l.progress}),r.jsx("span",{className:"supervisor-history-status",children:d}),r.jsx("span",{className:"supervisor-history-time",children:Np(e.timestamp)})]}),a&&r.jsxs("div",{className:"supervisor-history-item-details",children:[r.jsxs("div",{className:"supervisor-history-summary",children:[r.jsxs("strong",{children:[n("labels.summary"),":"]})," ",f]}),p&&p.length>0&&r.jsxs("div",{className:"supervisor-history-concerns",children:[r.jsxs("strong",{children:[n("labels.concerns"),":"]}),r.jsx("ul",{children:p.map((b,y)=>r.jsx("li",{children:b},y))})]})]})]})}),P5=x.memo(function({agent:e}){const{t}=Ue(["common"]),n=En(),a=ti(),[i,o]=x.useState(!0),[l,c]=x.useState(!0),d=x.useMemo(()=>{const y=n.agents.get(e.id);return!y||!y.isBoss&&y.class!=="boss"||!y.subordinateIds?[]:y.subordinateIds.map(w=>n.agents.get(w)).filter(w=>w!==void 0)},[n.agents,e.id]),f=U.getDelegationHistory(e.id),p=n.pendingDelegation,g=(p==null?void 0:p.bossId)===e.id;x.useEffect(()=>{U.requestDelegationHistory(e.id)},[e.id]);const b=wi.boss;return r.jsxs("div",{className:"boss-section",children:[r.jsxs("div",{className:"boss-header",children:[r.jsx("span",{className:"boss-crown-icon",style:{color:b.color},children:b.icon}),r.jsx("span",{className:"boss-title",children:t("unitPanel.bossAgent")})]}),r.jsxs("div",{className:"boss-subordinates",children:[r.jsxs("div",{className:"boss-subordinates-header",onClick:()=>o(!i),children:[r.jsxs("div",{className:"unit-stat-label",children:[t("labels.team")," (",d.length,")"]}),r.jsx("span",{className:"boss-toggle",children:i?"▼":"▶"})]}),i&&r.jsx("div",{className:"boss-subordinates-list",children:d.length===0?r.jsx("div",{className:"boss-subordinates-empty",children:t("unitPanel.noSubordinates")}):d.map(y=>{const w=Qr(y.class,a);return r.jsxs("div",{className:"boss-subordinate-item",onClick:()=>U.selectAgent(y.id),children:[r.jsx("span",{className:"boss-subordinate-icon",style:{color:w.color},children:w.icon}),r.jsx("span",{className:"boss-subordinate-name",children:y.name}),r.jsx("span",{className:`boss-subordinate-status status-${y.status}`,children:y.status}),r.jsx("button",{className:"boss-subordinate-unlink",onClick:k=>{k.stopPropagation(),U.removeSubordinate(e.id,y.id)},title:t("unitPanel.unlinkSubordinate"),children:"✕"})]},y.id)})})]}),r.jsxs("div",{className:"boss-delegation-history",children:[r.jsxs("div",{className:"boss-delegation-history-header",onClick:()=>c(!l),children:[r.jsxs("div",{className:"unit-stat-label",children:[t("unitPanel.delegationHistory")," (",f.length,")"]}),r.jsx("span",{className:"boss-toggle",children:l?"▼":"▶"})]}),l&&r.jsxs("div",{className:"boss-delegation-history-list",children:[g&&r.jsxs("div",{className:"boss-delegation-pending",children:[r.jsx("span",{className:"delegation-spinner",children:"⏳"}),t("unitPanel.analyzingRequest")]}),f.length===0&&!g?r.jsx("div",{className:"boss-delegation-empty",children:t("unitPanel.noDelegationHistory")}):f.slice(0,10).map(y=>r.jsx(R5,{decision:y},y.id))]})]})]})}),R5=x.memo(function({decision:e}){const{t}=Ue(["common"]),[n,a]=x.useState(!1),o=En().agents.get(e.selectedAgentId),l=o?wi[o.class]:null,c={high:"#4aff9e",medium:"#ff9e4a",low:"#ff4a4a"};return r.jsxs("div",{className:"delegation-decision-item",children:[r.jsxs("div",{className:"delegation-decision-header",onClick:()=>a(!n),children:[r.jsx("span",{className:"delegation-decision-arrow",children:n?"▼":"▶"}),l&&r.jsx("span",{className:"delegation-decision-icon",style:{color:l.color},children:l.icon}),r.jsxs("span",{className:"delegation-decision-agent",children:["→ ",e.selectedAgentName]}),r.jsx("span",{className:"delegation-decision-confidence",style:{color:c[e.confidence]},title:t("unitPanel.confidence",{level:e.confidence}),children:e.confidence==="high"?"●●●":e.confidence==="medium"?"●●○":"●○○"}),r.jsx("span",{className:"delegation-decision-time",children:Np(e.timestamp)})]}),n&&r.jsxs("div",{className:"delegation-decision-details",children:[r.jsxs("div",{className:"delegation-decision-command",children:[r.jsxs("strong",{children:[t("labels.command"),":"]}),r.jsx("div",{className:"delegation-command-text",children:e.userCommand.length>200?e.userCommand.slice(0,200)+"...":e.userCommand})]}),r.jsxs("div",{className:"delegation-decision-reasoning",children:[r.jsxs("strong",{children:[t("labels.reasoning"),":"]})," ",e.reasoning]}),e.alternativeAgents.length>0&&r.jsxs("div",{className:"delegation-decision-alternatives",children:[r.jsxs("strong",{children:[t("labels.alternatives"),":"]})," ",e.alternativeAgents.join(", ")]})]})]})}),O5=x.memo(function({agentId:e,bossId:t}){const{t:n}=Ue(["common"]),i=En().agents.get(t);if(!i)return null;const o=wi.boss,l=c=>{c.stopPropagation(),U.removeSubordinate(t,e)};return r.jsxs("div",{className:"subordinate-badge",children:[r.jsx("span",{className:"subordinate-badge-icon",style:{color:o.color},children:o.icon}),r.jsxs("span",{className:"subordinate-badge-text",children:[n("labels.reportsTo"),": ",r.jsx("strong",{children:i.name})]}),r.jsx("button",{className:"subordinate-badge-goto",onClick:()=>U.selectAgent(t),title:n("unitPanel.goToBoss"),children:"→"}),r.jsx("button",{className:"subordinate-badge-unlink",onClick:l,title:n("unitPanel.unlinkFromBoss"),children:"✕"})]})}),L5=x.memo(function({agentId:e}){const{t}=Ue(["common"]),n=En(),[a,i]=x.useState(!1),o=Array.from(n.agents.values()).filter(d=>d.isBoss===!0||d.class==="boss");if(o.length===0)return null;const l=wi.boss,c=d=>{const f=n.agents.get(d);if(!f)return;const p=f.subordinateIds||[];U.assignSubordinates(d,[...p,e]),i(!1)};return r.jsx("div",{className:"link-to-boss-section",children:a?r.jsxs("div",{className:"link-to-boss-dropdown",children:[r.jsxs("div",{className:"link-to-boss-header",children:[r.jsx("span",{children:t("unitPanel.selectBoss")}),r.jsx("button",{className:"link-to-boss-close",onClick:()=>i(!1),children:"✕"})]}),r.jsx("div",{className:"link-to-boss-list",children:o.map(d=>{var f;return r.jsxs("div",{className:"link-to-boss-item",onClick:()=>c(d.id),children:[r.jsx("span",{className:"link-to-boss-item-icon",style:{color:l.color},children:l.icon}),r.jsx("span",{className:"link-to-boss-item-name",children:d.name}),r.jsx("span",{className:"link-to-boss-item-count",children:t("unitPanel.agentsCount",{count:((f=d.subordinateIds)==null?void 0:f.length)||0})})]},d.id)})})]}):r.jsxs("button",{className:"link-to-boss-btn",onClick:()=>i(!0),children:[r.jsx("span",{className:"link-to-boss-icon",style:{color:l.color},children:l.icon}),r.jsx("span",{children:t("unitPanel.linkToBoss")})]})})}),I5=x.memo(function({agents:e}){const{t}=Ue(["common"]),n=ti(),a=e.reduce((o,l)=>o+l.tokensUsed,0),i=e.filter(o=>o.status==="working").length;return r.jsxs("div",{className:"unit-panel",children:[r.jsxs("div",{className:"unit-panel-header",children:[r.jsx("div",{className:"unit-class-icon",style:{background:"#4a9eff20"},children:"👥"}),r.jsxs("div",{children:[r.jsx("div",{className:"unit-name",children:t("multiAgent.agentsSelected",{count:e.length})}),r.jsx("div",{className:"unit-status",children:t("multiAgent.groupSelection")})]})]}),r.jsxs("div",{className:"unit-stats",children:[r.jsxs("div",{className:"unit-stat",children:[r.jsx("div",{className:"unit-stat-label",children:t("multiAgent.totalTokens")}),r.jsx("div",{className:"unit-stat-value",children:bR(a)})]}),r.jsxs("div",{className:"unit-stat",children:[r.jsx("div",{className:"unit-stat-label",children:t("multiAgent.working")}),r.jsx("div",{className:"unit-stat-value",children:i})]})]}),r.jsx("div",{style:{padding:"8px 0",maxHeight:100,overflowY:"auto"},children:e.map(o=>r.jsx(B5,{agent:o,customClasses:n},o.id))}),r.jsx("div",{className:"unit-actions",children:r.jsx("button",{className:"unit-action-btn",onClick:()=>U.deselectAll(),children:t("buttons.deselectAll")})})]})}),B5=x.memo(function({agent:e,customClasses:t}){const n=Qr(e.class,t);return r.jsxs("div",{style:{display:"flex",alignItems:"center",gap:6,padding:"4px 0",fontSize:12},children:[r.jsx("span",{children:n.icon}),r.jsx("span",{style:{flex:1},children:e.name}),r.jsx("span",{style:{color:"var(--text-secondary)"},children:e.status})]})});function Aj({onFocusAgent:s,onKillAgent:e,onCallSubordinates:t,onOpenAreaExplorer:n}){const a=En(),i=U.getSelectedAgents();if(a.selectedAgentIds.size===0)return r.jsx(jj,{onOpenAreaExplorer:n});if(a.selectedAgentIds.size===1){const o=i[0];return o?r.jsx(T5,{agent:o,onFocusAgent:s,onKillAgent:e,onCallSubordinates:t,onOpenAreaExplorer:n}):r.jsx(jj,{onOpenAreaExplorer:n})}return r.jsx(I5,{agents:i})}function F5(s,e){const t={};return(s[s.length-1]===""?[...s,""]:s).join((t.padRight?" ":"")+","+(t.padLeft===!1?"":" ")).trim()}const z5=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,$5=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,H5={};function Mj(s,e){return(H5.jsx?$5:z5).test(s)}const U5=/[ \t\n\f\r]/g;function G5(s){return typeof s=="object"?s.type==="text"?Tj(s.value):!1:Tj(s)}function Tj(s){return s.replace(U5,"")===""}class pd{constructor(e,t,n){this.normal=t,this.property=e,n&&(this.space=n)}}pd.prototype.normal={};pd.prototype.property={};pd.prototype.space=void 0;function hM(s,e){const t={},n={};for(const a of s)Object.assign(t,a.property),Object.assign(n,a.normal);return new pd(t,n,e)}function xy(s){return s.toLowerCase()}class sa{constructor(e,t){this.attribute=t,this.property=e}}sa.prototype.attribute="";sa.prototype.booleanish=!1;sa.prototype.boolean=!1;sa.prototype.commaOrSpaceSeparated=!1;sa.prototype.commaSeparated=!1;sa.prototype.defined=!1;sa.prototype.mustUseProperty=!1;sa.prototype.number=!1;sa.prototype.overloadedBoolean=!1;sa.prototype.property="";sa.prototype.spaceSeparated=!1;sa.prototype.space=void 0;let W5=0;const It=al(),ds=al(),vy=al(),tt=al(),Rn=al(),ic=al(),fa=al();function al(){return 2**++W5}const wy=Object.freeze(Object.defineProperty({__proto__:null,boolean:It,booleanish:ds,commaOrSpaceSeparated:fa,commaSeparated:ic,number:tt,overloadedBoolean:vy,spaceSeparated:Rn},Symbol.toStringTag,{value:"Module"})),eb=Object.keys(wy);class yx extends sa{constructor(e,t,n,a){let i=-1;if(super(e,t),Ej(this,"space",a),typeof n=="number")for(;++i<eb.length;){const o=eb[i];Ej(this,eb[i],(n&wy[o])===wy[o])}}}yx.prototype.defined=!0;function Ej(s,e,t){t&&(s[e]=t)}function kc(s){const e={},t={};for(const[n,a]of Object.entries(s.properties)){const i=new yx(n,s.transform(s.attributes||{},n),a,s.space);s.mustUseProperty&&s.mustUseProperty.includes(n)&&(i.mustUseProperty=!0),e[n]=i,t[xy(n)]=n,t[xy(i.attribute)]=n}return new pd(e,t,s.space)}const pM=kc({properties:{ariaActiveDescendant:null,ariaAtomic:ds,ariaAutoComplete:null,ariaBusy:ds,ariaChecked:ds,ariaColCount:tt,ariaColIndex:tt,ariaColSpan:tt,ariaControls:Rn,ariaCurrent:null,ariaDescribedBy:Rn,ariaDetails:null,ariaDisabled:ds,ariaDropEffect:Rn,ariaErrorMessage:null,ariaExpanded:ds,ariaFlowTo:Rn,ariaGrabbed:ds,ariaHasPopup:null,ariaHidden:ds,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Rn,ariaLevel:tt,ariaLive:null,ariaModal:ds,ariaMultiLine:ds,ariaMultiSelectable:ds,ariaOrientation:null,ariaOwns:Rn,ariaPlaceholder:null,ariaPosInSet:tt,ariaPressed:ds,ariaReadOnly:ds,ariaRelevant:null,ariaRequired:ds,ariaRoleDescription:Rn,ariaRowCount:tt,ariaRowIndex:tt,ariaRowSpan:tt,ariaSelected:ds,ariaSetSize:tt,ariaSort:null,ariaValueMax:tt,ariaValueMin:tt,ariaValueNow:tt,ariaValueText:null,role:null},transform(s,e){return e==="role"?e:"aria-"+e.slice(4).toLowerCase()}});function fM(s,e){return e in s?s[e]:e}function mM(s,e){return fM(s,e.toLowerCase())}const q5=kc({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ic,acceptCharset:Rn,accessKey:Rn,action:null,allow:null,allowFullScreen:It,allowPaymentRequest:It,allowUserMedia:It,alt:null,as:null,async:It,autoCapitalize:null,autoComplete:Rn,autoFocus:It,autoPlay:It,blocking:Rn,capture:null,charSet:null,checked:It,cite:null,className:Rn,cols:tt,colSpan:null,content:null,contentEditable:ds,controls:It,controlsList:Rn,coords:tt|ic,crossOrigin:null,data:null,dateTime:null,decoding:null,default:It,defer:It,dir:null,dirName:null,disabled:It,download:vy,draggable:ds,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:It,formTarget:null,headers:Rn,height:tt,hidden:vy,high:tt,href:null,hrefLang:null,htmlFor:Rn,httpEquiv:Rn,id:null,imageSizes:null,imageSrcSet:null,inert:It,inputMode:null,integrity:null,is:null,isMap:It,itemId:null,itemProp:Rn,itemRef:Rn,itemScope:It,itemType:Rn,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:It,low:tt,manifest:null,max:null,maxLength:tt,media:null,method:null,min:null,minLength:tt,multiple:It,muted:It,name:null,nonce:null,noModule:It,noValidate:It,onAbort:null,onAfterPrint:null,onAuxClick:null,onBeforeMatch:null,onBeforePrint:null,onBeforeToggle:null,onBeforeUnload:null,onBlur:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onContextLost:null,onContextMenu:null,onContextRestored:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnded:null,onError:null,onFocus:null,onFormData:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLanguageChange:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadEnd:null,onLoadStart:null,onMessage:null,onMessageError:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRejectionHandled:null,onReset:null,onResize:null,onScroll:null,onScrollEnd:null,onSecurityPolicyViolation:null,onSeeked:null,onSeeking:null,onSelect:null,onSlotChange:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnhandledRejection:null,onUnload:null,onVolumeChange:null,onWaiting:null,onWheel:null,open:It,optimum:tt,pattern:null,ping:Rn,placeholder:null,playsInline:It,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:It,referrerPolicy:null,rel:Rn,required:It,reversed:It,rows:tt,rowSpan:tt,sandbox:Rn,scope:null,scoped:It,seamless:It,selected:It,shadowRootClonable:It,shadowRootDelegatesFocus:It,shadowRootMode:null,shape:null,size:tt,sizes:null,slot:null,span:tt,spellCheck:ds,src:null,srcDoc:null,srcLang:null,srcSet:null,start:tt,step:null,style:null,tabIndex:tt,target:null,title:null,translate:null,type:null,typeMustMatch:It,useMap:null,value:ds,width:tt,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Rn,axis:null,background:null,bgColor:null,border:tt,borderColor:null,bottomMargin:tt,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:It,declare:It,event:null,face:null,frame:null,frameBorder:null,hSpace:tt,leftMargin:tt,link:null,longDesc:null,lowSrc:null,marginHeight:tt,marginWidth:tt,noResize:It,noHref:It,noShade:It,noWrap:It,object:null,profile:null,prompt:null,rev:null,rightMargin:tt,rules:null,scheme:null,scrolling:ds,standby:null,summary:null,text:null,topMargin:tt,valueType:null,version:null,vAlign:null,vLink:null,vSpace:tt,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:It,disableRemotePlayback:It,prefix:null,property:null,results:tt,security:null,unselectable:null},space:"html",transform:mM}),Y5=kc({attributes:{accentHeight:"accent-height",alignmentBaseline:"alignment-baseline",arabicForm:"arabic-form",baselineShift:"baseline-shift",capHeight:"cap-height",className:"class",clipPath:"clip-path",clipRule:"clip-rule",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",crossOrigin:"crossorigin",dataType:"datatype",dominantBaseline:"dominant-baseline",enableBackground:"enable-background",fillOpacity:"fill-opacity",fillRule:"fill-rule",floodColor:"flood-color",floodOpacity:"flood-opacity",fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",hrefLang:"hreflang",horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",horizOriginY:"horiz-origin-y",imageRendering:"image-rendering",letterSpacing:"letter-spacing",lightingColor:"lighting-color",markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",navDown:"nav-down",navDownLeft:"nav-down-left",navDownRight:"nav-down-right",navLeft:"nav-left",navNext:"nav-next",navPrev:"nav-prev",navRight:"nav-right",navUp:"nav-up",navUpLeft:"nav-up-left",navUpRight:"nav-up-right",onAbort:"onabort",onActivate:"onactivate",onAfterPrint:"onafterprint",onBeforePrint:"onbeforeprint",onBegin:"onbegin",onCancel:"oncancel",onCanPlay:"oncanplay",onCanPlayThrough:"oncanplaythrough",onChange:"onchange",onClick:"onclick",onClose:"onclose",onCopy:"oncopy",onCueChange:"oncuechange",onCut:"oncut",onDblClick:"ondblclick",onDrag:"ondrag",onDragEnd:"ondragend",onDragEnter:"ondragenter",onDragExit:"ondragexit",onDragLeave:"ondragleave",onDragOver:"ondragover",onDragStart:"ondragstart",onDrop:"ondrop",onDurationChange:"ondurationchange",onEmptied:"onemptied",onEnd:"onend",onEnded:"onended",onError:"onerror",onFocus:"onfocus",onFocusIn:"onfocusin",onFocusOut:"onfocusout",onHashChange:"onhashchange",onInput:"oninput",onInvalid:"oninvalid",onKeyDown:"onkeydown",onKeyPress:"onkeypress",onKeyUp:"onkeyup",onLoad:"onload",onLoadedData:"onloadeddata",onLoadedMetadata:"onloadedmetadata",onLoadStart:"onloadstart",onMessage:"onmessage",onMouseDown:"onmousedown",onMouseEnter:"onmouseenter",onMouseLeave:"onmouseleave",onMouseMove:"onmousemove",onMouseOut:"onmouseout",onMouseOver:"onmouseover",onMouseUp:"onmouseup",onMouseWheel:"onmousewheel",onOffline:"onoffline",onOnline:"ononline",onPageHide:"onpagehide",onPageShow:"onpageshow",onPaste:"onpaste",onPause:"onpause",onPlay:"onplay",onPlaying:"onplaying",onPopState:"onpopstate",onProgress:"onprogress",onRateChange:"onratechange",onRepeat:"onrepeat",onReset:"onreset",onResize:"onresize",onScroll:"onscroll",onSeeked:"onseeked",onSeeking:"onseeking",onSelect:"onselect",onShow:"onshow",onStalled:"onstalled",onStorage:"onstorage",onSubmit:"onsubmit",onSuspend:"onsuspend",onTimeUpdate:"ontimeupdate",onToggle:"ontoggle",onUnload:"onunload",onVolumeChange:"onvolumechange",onWaiting:"onwaiting",onZoom:"onzoom",overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pointerEvents:"pointer-events",referrerPolicy:"referrerpolicy",renderingIntent:"rendering-intent",shapeRendering:"shape-rendering",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",strokeDashArray:"stroke-dasharray",strokeDashOffset:"stroke-dashoffset",strokeLineCap:"stroke-linecap",strokeLineJoin:"stroke-linejoin",strokeMiterLimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",tabIndex:"tabindex",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",transformOrigin:"transform-origin",typeOf:"typeof",underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",vectorEffect:"vector-effect",vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",wordSpacing:"word-spacing",writingMode:"writing-mode",xHeight:"x-height",playbackOrder:"playbackorder",timelineBegin:"timelinebegin"},properties:{about:fa,accentHeight:tt,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:tt,amplitude:tt,arabicForm:null,ascent:tt,attributeName:null,attributeType:null,azimuth:tt,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:tt,by:null,calcMode:null,capHeight:tt,className:Rn,clip:null,clipPath:null,clipPathUnits:null,clipRule:null,color:null,colorInterpolation:null,colorInterpolationFilters:null,colorProfile:null,colorRendering:null,content:null,contentScriptType:null,contentStyleType:null,crossOrigin:null,cursor:null,cx:null,cy:null,d:null,dataType:null,defaultAction:null,descent:tt,diffuseConstant:tt,direction:null,display:null,dur:null,divisor:tt,dominantBaseline:null,download:It,dx:null,dy:null,edgeMode:null,editable:null,elevation:tt,enableBackground:null,end:null,event:null,exponent:tt,externalResourcesRequired:null,fill:null,fillOpacity:tt,fillRule:null,filter:null,filterRes:null,filterUnits:null,floodColor:null,floodOpacity:null,focusable:null,focusHighlight:null,fontFamily:null,fontSize:null,fontSizeAdjust:null,fontStretch:null,fontStyle:null,fontVariant:null,fontWeight:null,format:null,fr:null,from:null,fx:null,fy:null,g1:ic,g2:ic,glyphName:ic,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:tt,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:tt,horizOriginX:tt,horizOriginY:tt,id:null,ideographic:tt,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:tt,k:tt,k1:tt,k2:tt,k3:tt,k4:tt,kernelMatrix:fa,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:tt,local:null,markerEnd:null,markerMid:null,markerStart:null,markerHeight:null,markerUnits:null,markerWidth:null,mask:null,maskContentUnits:null,maskUnits:null,mathematical:null,max:null,media:null,mediaCharacterEncoding:null,mediaContentEncodings:null,mediaSize:tt,mediaTime:null,method:null,min:null,mode:null,name:null,navDown:null,navDownLeft:null,navDownRight:null,navLeft:null,navNext:null,navPrev:null,navRight:null,navUp:null,navUpLeft:null,navUpRight:null,numOctaves:null,observer:null,offset:null,onAbort:null,onActivate:null,onAfterPrint:null,onBeforePrint:null,onBegin:null,onCancel:null,onCanPlay:null,onCanPlayThrough:null,onChange:null,onClick:null,onClose:null,onCopy:null,onCueChange:null,onCut:null,onDblClick:null,onDrag:null,onDragEnd:null,onDragEnter:null,onDragExit:null,onDragLeave:null,onDragOver:null,onDragStart:null,onDrop:null,onDurationChange:null,onEmptied:null,onEnd:null,onEnded:null,onError:null,onFocus:null,onFocusIn:null,onFocusOut:null,onHashChange:null,onInput:null,onInvalid:null,onKeyDown:null,onKeyPress:null,onKeyUp:null,onLoad:null,onLoadedData:null,onLoadedMetadata:null,onLoadStart:null,onMessage:null,onMouseDown:null,onMouseEnter:null,onMouseLeave:null,onMouseMove:null,onMouseOut:null,onMouseOver:null,onMouseUp:null,onMouseWheel:null,onOffline:null,onOnline:null,onPageHide:null,onPageShow:null,onPaste:null,onPause:null,onPlay:null,onPlaying:null,onPopState:null,onProgress:null,onRateChange:null,onRepeat:null,onReset:null,onResize:null,onScroll:null,onSeeked:null,onSeeking:null,onSelect:null,onShow:null,onStalled:null,onStorage:null,onSubmit:null,onSuspend:null,onTimeUpdate:null,onToggle:null,onUnload:null,onVolumeChange:null,onWaiting:null,onZoom:null,opacity:null,operator:null,order:null,orient:null,orientation:null,origin:null,overflow:null,overlay:null,overlinePosition:tt,overlineThickness:tt,paintOrder:null,panose1:null,path:null,pathLength:tt,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Rn,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:tt,pointsAtY:tt,pointsAtZ:tt,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:fa,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:fa,rev:fa,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:fa,requiredFeatures:fa,requiredFonts:fa,requiredFormats:fa,resource:null,restart:null,result:null,rotate:null,rx:null,ry:null,scale:null,seed:null,shapeRendering:null,side:null,slope:null,snapshotTime:null,specularConstant:tt,specularExponent:tt,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:tt,strikethroughThickness:tt,string:null,stroke:null,strokeDashArray:fa,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:tt,strokeOpacity:tt,strokeWidth:null,style:null,surfaceScale:tt,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:fa,tabIndex:tt,tableValues:null,target:null,targetX:tt,targetY:tt,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:fa,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:tt,underlineThickness:tt,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:tt,values:null,vAlphabetic:tt,vMathematical:tt,vectorEffect:null,vHanging:tt,vIdeographic:tt,version:null,vertAdvY:tt,vertOriginX:tt,vertOriginY:tt,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:tt,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:fM}),gM=kc({properties:{xLinkActuate:null,xLinkArcRole:null,xLinkHref:null,xLinkRole:null,xLinkShow:null,xLinkTitle:null,xLinkType:null},space:"xlink",transform(s,e){return"xlink:"+e.slice(5).toLowerCase()}}),bM=kc({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:mM}),yM=kc({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(s,e){return"xml:"+e.slice(3).toLowerCase()}}),V5={classId:"classID",dataType:"datatype",itemId:"itemID",strokeDashArray:"strokeDasharray",strokeDashOffset:"strokeDashoffset",strokeLineCap:"strokeLinecap",strokeLineJoin:"strokeLinejoin",strokeMiterLimit:"strokeMiterlimit",typeOf:"typeof",xLinkActuate:"xlinkActuate",xLinkArcRole:"xlinkArcrole",xLinkHref:"xlinkHref",xLinkRole:"xlinkRole",xLinkShow:"xlinkShow",xLinkTitle:"xlinkTitle",xLinkType:"xlinkType",xmlnsXLink:"xmlnsXlink"},K5=/[A-Z]/g,_j=/-[a-z]/g,X5=/^data[-\w.:]+$/i;function Z5(s,e){const t=xy(e);let n=e,a=sa;if(t in s.normal)return s.property[s.normal[t]];if(t.length>4&&t.slice(0,4)==="data"&&X5.test(e)){if(e.charAt(4)==="-"){const i=e.slice(5).replace(_j,J5);n="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=e.slice(4);if(!_j.test(i)){let o=i.replace(K5,Q5);o.charAt(0)!=="-"&&(o="-"+o),e="data"+o}}a=yx}return new a(n,e)}function Q5(s){return"-"+s.toLowerCase()}function J5(s){return s.charAt(1).toUpperCase()}const eF=hM([pM,q5,gM,bM,yM],"html"),xx=hM([pM,Y5,gM,bM,yM],"svg");function tF(s){return s.join(" ").trim()}var zl={},tb,Dj;function nF(){if(Dj)return tb;Dj=1;var s=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,e=/\n/g,t=/^\s*/,n=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,a=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,o=/^[;\s]*/,l=/^\s+|\s+$/g,c=`
|
|
151
151
|
`,d="/",f="*",p="",g="comment",b="declaration";function y(k,S){if(typeof k!="string")throw new TypeError("First argument must be a string");if(!k)return[];S=S||{};var j=1,C=1;function A(B){var F=B.match(e);F&&(j+=F.length);var H=B.lastIndexOf(c);C=~H?B.length-H:C+B.length}function _(){var B={line:j,column:C};return function(F){return F.position=new M(B),D(),F}}function M(B){this.start=B,this.end={line:j,column:C},this.source=S.source}M.prototype.content=k;function $(B){var F=new Error(S.source+":"+j+":"+C+": "+B);if(F.reason=B,F.filename=S.source,F.line=j,F.column=C,F.source=k,!S.silent)throw F}function E(B){var F=B.exec(k);if(F){var H=F[0];return A(H),k=k.slice(H.length),F}}function D(){E(t)}function P(B){var F;for(B=B||[];F=R();)F!==!1&&B.push(F);return B}function R(){var B=_();if(!(d!=k.charAt(0)||f!=k.charAt(1))){for(var F=2;p!=k.charAt(F)&&(f!=k.charAt(F)||d!=k.charAt(F+1));)++F;if(F+=2,p===k.charAt(F-1))return $("End of comment missing");var H=k.slice(2,F-2);return C+=2,A(H),k=k.slice(F),C+=2,B({type:g,comment:H})}}function L(){var B=_(),F=E(n);if(F){if(R(),!E(a))return $("property missing ':'");var H=E(i),G=B({type:b,property:w(F[0].replace(s,p)),value:H?w(H[0].replace(s,p)):p});return E(o),G}}function z(){var B=[];P(B);for(var F;F=L();)F!==!1&&(B.push(F),P(B));return B}return D(),z()}function w(k){return k?k.replace(l,p):p}return tb=y,tb}var Pj;function sF(){if(Pj)return zl;Pj=1;var s=zl&&zl.__importDefault||function(n){return n&&n.__esModule?n:{default:n}};Object.defineProperty(zl,"__esModule",{value:!0}),zl.default=t;const e=s(nF());function t(n,a){let i=null;if(!n||typeof n!="string")return i;const o=(0,e.default)(n),l=typeof a=="function";return o.forEach(c=>{if(c.type!=="declaration")return;const{property:d,value:f}=c;l?a(d,f,c):f&&(i=i||{},i[d]=f)}),i}return zl}var Su={},Rj;function aF(){if(Rj)return Su;Rj=1,Object.defineProperty(Su,"__esModule",{value:!0}),Su.camelCase=void 0;var s=/^--[a-zA-Z0-9_-]+$/,e=/-([a-z])/g,t=/^[^-]+$/,n=/^-(webkit|moz|ms|o|khtml)-/,a=/^-(ms)-/,i=function(d){return!d||t.test(d)||s.test(d)},o=function(d,f){return f.toUpperCase()},l=function(d,f){return"".concat(f,"-")},c=function(d,f){return f===void 0&&(f={}),i(d)?d:(d=d.toLowerCase(),f.reactCompat?d=d.replace(a,l):d=d.replace(n,l),d.replace(e,o))};return Su.camelCase=c,Su}var ju,Oj;function iF(){if(Oj)return ju;Oj=1;var s=ju&&ju.__importDefault||function(a){return a&&a.__esModule?a:{default:a}},e=s(sF()),t=aF();function n(a,i){var o={};return!a||typeof a!="string"||(0,e.default)(a,function(l,c){l&&c&&(o[(0,t.camelCase)(l,i)]=c)}),o}return n.default=n,ju=n,ju}var rF=iF();const oF=ud(rF),xM=vM("end"),vx=vM("start");function vM(s){return e;function e(t){const n=t&&t.position&&t.position[s]||{};if(typeof n.line=="number"&&n.line>0&&typeof n.column=="number"&&n.column>0)return{line:n.line,column:n.column,offset:typeof n.offset=="number"&&n.offset>-1?n.offset:void 0}}}function lF(s){const e=vx(s),t=xM(s);if(e&&t)return{start:e,end:t}}function Wu(s){return!s||typeof s!="object"?"":"position"in s||"type"in s?Lj(s.position):"start"in s||"end"in s?Lj(s):"line"in s||"column"in s?ky(s):""}function ky(s){return Ij(s&&s.line)+":"+Ij(s&&s.column)}function Lj(s){return ky(s&&s.start)+"-"+ky(s&&s.end)}function Ij(s){return s&&typeof s=="number"?s:1}class Rs extends Error{constructor(e,t,n){super(),typeof t=="string"&&(n=t,t=void 0);let a="",i={},o=!1;if(t&&("line"in t&&"column"in t?i={place:t}:"start"in t&&"end"in t?i={place:t}:"type"in t?i={ancestors:[t],place:t.position}:i={...t}),typeof e=="string"?a=e:!i.cause&&e&&(o=!0,a=e.message,i.cause=e),!i.ruleId&&!i.source&&typeof n=="string"){const c=n.indexOf(":");c===-1?i.ruleId=n:(i.source=n.slice(0,c),i.ruleId=n.slice(c+1))}if(!i.place&&i.ancestors&&i.ancestors){const c=i.ancestors[i.ancestors.length-1];c&&(i.place=c.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=a,this.line=l?l.line:void 0,this.name=Wu(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=o&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}Rs.prototype.file="";Rs.prototype.name="";Rs.prototype.reason="";Rs.prototype.message="";Rs.prototype.stack="";Rs.prototype.column=void 0;Rs.prototype.line=void 0;Rs.prototype.ancestors=void 0;Rs.prototype.cause=void 0;Rs.prototype.fatal=void 0;Rs.prototype.place=void 0;Rs.prototype.ruleId=void 0;Rs.prototype.source=void 0;const wx={}.hasOwnProperty,cF=new Map,uF=/[A-Z]/g,dF=new Set(["table","tbody","thead","tfoot","tr"]),hF=new Set(["td","th"]),wM="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function pF(s,e){if(!e||e.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const t=e.filePath||void 0;let n;if(e.development){if(typeof e.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");n=wF(t,e.jsxDEV)}else{if(typeof e.jsx!="function")throw new TypeError("Expected `jsx` in production options");if(typeof e.jsxs!="function")throw new TypeError("Expected `jsxs` in production options");n=vF(t,e.jsx,e.jsxs)}const a={Fragment:e.Fragment,ancestors:[],components:e.components||{},create:n,elementAttributeNameCase:e.elementAttributeNameCase||"react",evaluater:e.createEvaluater?e.createEvaluater():void 0,filePath:t,ignoreInvalidStyle:e.ignoreInvalidStyle||!1,passKeys:e.passKeys!==!1,passNode:e.passNode||!1,schema:e.space==="svg"?xx:eF,stylePropertyNameCase:e.stylePropertyNameCase||"dom",tableCellAlignToStyle:e.tableCellAlignToStyle!==!1},i=kM(a,s,void 0);return i&&typeof i!="string"?i:a.create(s,a.Fragment,{children:i||void 0},void 0)}function kM(s,e,t){if(e.type==="element")return fF(s,e,t);if(e.type==="mdxFlowExpression"||e.type==="mdxTextExpression")return mF(s,e);if(e.type==="mdxJsxFlowElement"||e.type==="mdxJsxTextElement")return bF(s,e,t);if(e.type==="mdxjsEsm")return gF(s,e);if(e.type==="root")return yF(s,e,t);if(e.type==="text")return xF(s,e)}function fF(s,e,t){const n=s.schema;let a=n;e.tagName.toLowerCase()==="svg"&&n.space==="html"&&(a=xx,s.schema=a),s.ancestors.push(e);const i=jM(s,e.tagName,!1),o=kF(s,e);let l=Sx(s,e);return dF.has(e.tagName)&&(l=l.filter(function(c){return typeof c=="string"?!G5(c):!0})),SM(s,o,i,e),kx(o,l),s.ancestors.pop(),s.schema=n,s.create(e,i,o,t)}function mF(s,e){if(e.data&&e.data.estree&&s.evaluater){const n=e.data.estree.body[0];return n.type,s.evaluater.evaluateExpression(n.expression)}ad(s,e.position)}function gF(s,e){if(e.data&&e.data.estree&&s.evaluater)return s.evaluater.evaluateProgram(e.data.estree);ad(s,e.position)}function bF(s,e,t){const n=s.schema;let a=n;e.name==="svg"&&n.space==="html"&&(a=xx,s.schema=a),s.ancestors.push(e);const i=e.name===null?s.Fragment:jM(s,e.name,!0),o=SF(s,e),l=Sx(s,e);return SM(s,o,i,e),kx(o,l),s.ancestors.pop(),s.schema=n,s.create(e,i,o,t)}function yF(s,e,t){const n={};return kx(n,Sx(s,e)),s.create(e,s.Fragment,n,t)}function xF(s,e){return e.value}function SM(s,e,t,n){typeof t!="string"&&t!==s.Fragment&&s.passNode&&(e.node=n)}function kx(s,e){if(e.length>0){const t=e.length>1?e:e[0];t&&(s.children=t)}}function vF(s,e,t){return n;function n(a,i,o,l){const d=Array.isArray(o.children)?t:e;return l?d(i,o,l):d(i,o)}}function wF(s,e){return t;function t(n,a,i,o){const l=Array.isArray(i.children),c=vx(n);return e(a,i,o,l,{columnNumber:c?c.column-1:void 0,fileName:s,lineNumber:c?c.line:void 0},void 0)}}function kF(s,e){const t={};let n,a;for(a in e.properties)if(a!=="children"&&wx.call(e.properties,a)){const i=jF(s,a,e.properties[a]);if(i){const[o,l]=i;s.tableCellAlignToStyle&&o==="align"&&typeof l=="string"&&hF.has(e.tagName)?n=l:t[o]=l}}if(n){const i=t.style||(t.style={});i[s.stylePropertyNameCase==="css"?"text-align":"textAlign"]=n}return t}function SF(s,e){const t={};for(const n of e.attributes)if(n.type==="mdxJsxExpressionAttribute")if(n.data&&n.data.estree&&s.evaluater){const i=n.data.estree.body[0];i.type;const o=i.expression;o.type;const l=o.properties[0];l.type,Object.assign(t,s.evaluater.evaluateExpression(l.argument))}else ad(s,e.position);else{const a=n.name;let i;if(n.value&&typeof n.value=="object")if(n.value.data&&n.value.data.estree&&s.evaluater){const l=n.value.data.estree.body[0];l.type,i=s.evaluater.evaluateExpression(l.expression)}else ad(s,e.position);else i=n.value===null?!0:n.value;t[a]=i}return t}function Sx(s,e){const t=[];let n=-1;const a=s.passKeys?new Map:cF;for(;++n<e.children.length;){const i=e.children[n];let o;if(s.passKeys){const c=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(c){const d=a.get(c)||0;o=c+"-"+d,a.set(c,d+1)}}const l=kM(s,i,o);l!==void 0&&t.push(l)}return t}function jF(s,e,t){const n=Z5(s.schema,e);if(!(t==null||typeof t=="number"&&Number.isNaN(t))){if(Array.isArray(t)&&(t=n.commaSeparated?F5(t):tF(t)),n.property==="style"){let a=typeof t=="object"?t:CF(s,String(t));return s.stylePropertyNameCase==="css"&&(a=NF(a)),["style",a]}return[s.elementAttributeNameCase==="react"&&n.space?V5[n.property]||n.property:n.attribute,t]}}function CF(s,e){try{return oF(e,{reactCompat:!0})}catch(t){if(s.ignoreInvalidStyle)return{};const n=t,a=new Rs("Cannot parse `style` attribute",{ancestors:s.ancestors,cause:n,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw a.file=s.filePath||void 0,a.url=wM+"#cannot-parse-style-attribute",a}}function jM(s,e,t){let n;if(!t)n={type:"Literal",value:e};else if(e.includes(".")){const a=e.split(".");let i=-1,o;for(;++i<a.length;){const l=Mj(a[i])?{type:"Identifier",name:a[i]}:{type:"Literal",value:a[i]};o=o?{type:"MemberExpression",object:o,property:l,computed:!!(i&&l.type==="Literal"),optional:!1}:l}n=o}else n=Mj(e)&&!/^[a-z]/.test(e)?{type:"Identifier",name:e}:{type:"Literal",value:e};if(n.type==="Literal"){const a=n.value;return wx.call(s.components,a)?s.components[a]:a}if(s.evaluater)return s.evaluater.evaluateExpression(n);ad(s)}function ad(s,e){const t=new Rs("Cannot handle MDX estrees without `createEvaluater`",{ancestors:s.ancestors,place:e,ruleId:"mdx-estree",source:"hast-util-to-jsx-runtime"});throw t.file=s.filePath||void 0,t.url=wM+"#cannot-handle-mdx-estrees-without-createevaluater",t}function NF(s){const e={};let t;for(t in s)wx.call(s,t)&&(e[AF(t)]=s[t]);return e}function AF(s){let e=s.replace(uF,MF);return e.slice(0,3)==="ms-"&&(e="-"+e),e}function MF(s){return"-"+s.toLowerCase()}const nb={action:["form"],cite:["blockquote","del","ins","q"],data:["object"],formAction:["button","input"],href:["a","area","base","link"],icon:["menuitem"],itemId:null,manifest:["html"],ping:["a","area"],poster:["video"],src:["audio","embed","iframe","img","input","script","source","track","video"]},TF={};function jx(s,e){const t=TF,n=typeof t.includeImageAlt=="boolean"?t.includeImageAlt:!0,a=typeof t.includeHtml=="boolean"?t.includeHtml:!0;return CM(s,n,a)}function CM(s,e,t){if(EF(s)){if("value"in s)return s.type==="html"&&!t?"":s.value;if(e&&"alt"in s&&s.alt)return s.alt;if("children"in s)return Bj(s.children,e,t)}return Array.isArray(s)?Bj(s,e,t):""}function Bj(s,e,t){const n=[];let a=-1;for(;++a<s.length;)n[a]=CM(s[a],e,t);return n.join("")}function EF(s){return!!(s&&typeof s=="object")}const Fj=document.createElement("i");function Cx(s){const e="&"+s+";";Fj.innerHTML=e;const t=Fj.textContent;return t.charCodeAt(t.length-1)===59&&s!=="semi"||t===e?!1:t}function ya(s,e,t,n){const a=s.length;let i=0,o;if(e<0?e=-e>a?0:a+e:e=e>a?a:e,t=t>0?t:0,n.length<1e4)o=Array.from(n),o.unshift(e,t),s.splice(...o);else for(t&&s.splice(e,t);i<n.length;)o=n.slice(i,i+1e4),o.unshift(e,0),s.splice(...o),i+=1e4,e+=1e4}function _a(s,e){return s.length>0?(ya(s,s.length,0,e),s):e}const zj={}.hasOwnProperty;function NM(s){const e={};let t=-1;for(;++t<s.length;)_F(e,s[t]);return e}function _F(s,e){let t;for(t in e){const a=(zj.call(s,t)?s[t]:void 0)||(s[t]={}),i=e[t];let o;if(i)for(o in i){zj.call(a,o)||(a[o]=[]);const l=i[o];DF(a[o],Array.isArray(l)?l:l?[l]:[])}}}function DF(s,e){let t=-1;const n=[];for(;++t<e.length;)(e[t].add==="after"?s:n).push(e[t]);ya(s,0,0,n)}function AM(s,e){const t=Number.parseInt(s,e);return t<9||t===11||t>13&&t<32||t>126&&t<160||t>55295&&t<57344||t>64975&&t<65008||(t&65535)===65535||(t&65535)===65534||t>1114111?"�":String.fromCodePoint(t)}function Xa(s){return s.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const $s=so(/[A-Za-z]/),Ps=so(/[\dA-Za-z]/),PF=so(/[#-'*+\--9=?A-Z^-~]/);function Ap(s){return s!==null&&(s<32||s===127)}const Sy=so(/\d/),RF=so(/[\dA-Fa-f]/),OF=so(/[!-/:-@[-`{-~]/);function jt(s){return s!==null&&s<-2}function Pn(s){return s!==null&&(s<0||s===32)}function Zt(s){return s===-2||s===-1||s===32}const cf=so(new RegExp("\\p{P}|\\p{S}","u")),Jo=so(/\s/);function so(s){return e;function e(t){return t!==null&&t>-1&&s.test(String.fromCharCode(t))}}function Sc(s){const e=[];let t=-1,n=0,a=0;for(;++t<s.length;){const i=s.charCodeAt(t);let o="";if(i===37&&Ps(s.charCodeAt(t+1))&&Ps(s.charCodeAt(t+2)))a=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(o=String.fromCharCode(i));else if(i>55295&&i<57344){const l=s.charCodeAt(t+1);i<56320&&l>56319&&l<57344?(o=String.fromCharCode(i,l),a=1):o="�"}else o=String.fromCharCode(i);o&&(e.push(s.slice(n,t),encodeURIComponent(o)),n=t+a+1,o=""),a&&(t+=a,a=0)}return e.join("")+s.slice(n)}function cn(s,e,t,n){const a=n?n-1:Number.POSITIVE_INFINITY;let i=0;return o;function o(c){return Zt(c)?(s.enter(t),l(c)):e(c)}function l(c){return Zt(c)&&i++<a?(s.consume(c),l):(s.exit(t),e(c))}}const LF={tokenize:IF};function IF(s){const e=s.attempt(this.parser.constructs.contentInitial,n,a);let t;return e;function n(l){if(l===null){s.consume(l);return}return s.enter("lineEnding"),s.consume(l),s.exit("lineEnding"),cn(s,e,"linePrefix")}function a(l){return s.enter("paragraph"),i(l)}function i(l){const c=s.enter("chunkText",{contentType:"text",previous:t});return t&&(t.next=c),t=c,o(l)}function o(l){if(l===null){s.exit("chunkText"),s.exit("paragraph"),s.consume(l);return}return jt(l)?(s.consume(l),s.exit("chunkText"),i):(s.consume(l),o)}}const BF={tokenize:FF},$j={tokenize:zF};function FF(s){const e=this,t=[];let n=0,a,i,o;return l;function l(C){if(n<t.length){const A=t[n];return e.containerState=A[1],s.attempt(A[0].continuation,c,d)(C)}return d(C)}function c(C){if(n++,e.containerState._closeFlow){e.containerState._closeFlow=void 0,a&&j();const A=e.events.length;let _=A,M;for(;_--;)if(e.events[_][0]==="exit"&&e.events[_][1].type==="chunkFlow"){M=e.events[_][1].end;break}S(n);let $=A;for(;$<e.events.length;)e.events[$][1].end={...M},$++;return ya(e.events,_+1,0,e.events.slice(A)),e.events.length=$,d(C)}return l(C)}function d(C){if(n===t.length){if(!a)return g(C);if(a.currentConstruct&&a.currentConstruct.concrete)return y(C);e.interrupt=!!(a.currentConstruct&&!a._gfmTableDynamicInterruptHack)}return e.containerState={},s.check($j,f,p)(C)}function f(C){return a&&j(),S(n),g(C)}function p(C){return e.parser.lazy[e.now().line]=n!==t.length,o=e.now().offset,y(C)}function g(C){return e.containerState={},s.attempt($j,b,y)(C)}function b(C){return n++,t.push([e.currentConstruct,e.containerState]),g(C)}function y(C){if(C===null){a&&j(),S(0),s.consume(C);return}return a=a||e.parser.flow(e.now()),s.enter("chunkFlow",{_tokenizer:a,contentType:"flow",previous:i}),w(C)}function w(C){if(C===null){k(s.exit("chunkFlow"),!0),S(0),s.consume(C);return}return jt(C)?(s.consume(C),k(s.exit("chunkFlow")),n=0,e.interrupt=void 0,l):(s.consume(C),w)}function k(C,A){const _=e.sliceStream(C);if(A&&_.push(null),C.previous=i,i&&(i.next=C),i=C,a.defineSkip(C.start),a.write(_),e.parser.lazy[C.start.line]){let M=a.events.length;for(;M--;)if(a.events[M][1].start.offset<o&&(!a.events[M][1].end||a.events[M][1].end.offset>o))return;const $=e.events.length;let E=$,D,P;for(;E--;)if(e.events[E][0]==="exit"&&e.events[E][1].type==="chunkFlow"){if(D){P=e.events[E][1].end;break}D=!0}for(S(n),M=$;M<e.events.length;)e.events[M][1].end={...P},M++;ya(e.events,E+1,0,e.events.slice($)),e.events.length=M}}function S(C){let A=t.length;for(;A-- >C;){const _=t[A];e.containerState=_[1],_[0].exit.call(e,s)}t.length=C}function j(){a.write([null]),i=void 0,a=void 0,e.containerState._closeFlow=void 0}}function zF(s,e,t){return cn(s,s.attempt(this.parser.constructs.document,e,t),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function dc(s){if(s===null||Pn(s)||Jo(s))return 1;if(cf(s))return 2}function uf(s,e,t){const n=[];let a=-1;for(;++a<s.length;){const i=s[a].resolveAll;i&&!n.includes(i)&&(e=i(e,t),n.push(i))}return e}const jy={name:"attention",resolveAll:$F,tokenize:HF};function $F(s,e){let t=-1,n,a,i,o,l,c,d,f;for(;++t<s.length;)if(s[t][0]==="enter"&&s[t][1].type==="attentionSequence"&&s[t][1]._close){for(n=t;n--;)if(s[n][0]==="exit"&&s[n][1].type==="attentionSequence"&&s[n][1]._open&&e.sliceSerialize(s[n][1]).charCodeAt(0)===e.sliceSerialize(s[t][1]).charCodeAt(0)){if((s[n][1]._close||s[t][1]._open)&&(s[t][1].end.offset-s[t][1].start.offset)%3&&!((s[n][1].end.offset-s[n][1].start.offset+s[t][1].end.offset-s[t][1].start.offset)%3))continue;c=s[n][1].end.offset-s[n][1].start.offset>1&&s[t][1].end.offset-s[t][1].start.offset>1?2:1;const p={...s[n][1].end},g={...s[t][1].start};Hj(p,-c),Hj(g,c),o={type:c>1?"strongSequence":"emphasisSequence",start:p,end:{...s[n][1].end}},l={type:c>1?"strongSequence":"emphasisSequence",start:{...s[t][1].start},end:g},i={type:c>1?"strongText":"emphasisText",start:{...s[n][1].end},end:{...s[t][1].start}},a={type:c>1?"strong":"emphasis",start:{...o.start},end:{...l.end}},s[n][1].end={...o.start},s[t][1].start={...l.end},d=[],s[n][1].end.offset-s[n][1].start.offset&&(d=_a(d,[["enter",s[n][1],e],["exit",s[n][1],e]])),d=_a(d,[["enter",a,e],["enter",o,e],["exit",o,e],["enter",i,e]]),d=_a(d,uf(e.parser.constructs.insideSpan.null,s.slice(n+1,t),e)),d=_a(d,[["exit",i,e],["enter",l,e],["exit",l,e],["exit",a,e]]),s[t][1].end.offset-s[t][1].start.offset?(f=2,d=_a(d,[["enter",s[t][1],e],["exit",s[t][1],e]])):f=0,ya(s,n-1,t-n+3,d),t=n+d.length-f-2;break}}for(t=-1;++t<s.length;)s[t][1].type==="attentionSequence"&&(s[t][1].type="data");return s}function HF(s,e){const t=this.parser.constructs.attentionMarkers.null,n=this.previous,a=dc(n);let i;return o;function o(c){return i=c,s.enter("attentionSequence"),l(c)}function l(c){if(c===i)return s.consume(c),l;const d=s.exit("attentionSequence"),f=dc(c),p=!f||f===2&&a||t.includes(c),g=!a||a===2&&f||t.includes(n);return d._open=!!(i===42?p:p&&(a||!g)),d._close=!!(i===42?g:g&&(f||!p)),e(c)}}function Hj(s,e){s.column+=e,s.offset+=e,s._bufferIndex+=e}const UF={name:"autolink",tokenize:GF};function GF(s,e,t){let n=0;return a;function a(b){return s.enter("autolink"),s.enter("autolinkMarker"),s.consume(b),s.exit("autolinkMarker"),s.enter("autolinkProtocol"),i}function i(b){return $s(b)?(s.consume(b),o):b===64?t(b):d(b)}function o(b){return b===43||b===45||b===46||Ps(b)?(n=1,l(b)):d(b)}function l(b){return b===58?(s.consume(b),n=0,c):(b===43||b===45||b===46||Ps(b))&&n++<32?(s.consume(b),l):(n=0,d(b))}function c(b){return b===62?(s.exit("autolinkProtocol"),s.enter("autolinkMarker"),s.consume(b),s.exit("autolinkMarker"),s.exit("autolink"),e):b===null||b===32||b===60||Ap(b)?t(b):(s.consume(b),c)}function d(b){return b===64?(s.consume(b),f):PF(b)?(s.consume(b),d):t(b)}function f(b){return Ps(b)?p(b):t(b)}function p(b){return b===46?(s.consume(b),n=0,f):b===62?(s.exit("autolinkProtocol").type="autolinkEmail",s.enter("autolinkMarker"),s.consume(b),s.exit("autolinkMarker"),s.exit("autolink"),e):g(b)}function g(b){if((b===45||Ps(b))&&n++<63){const y=b===45?g:p;return s.consume(b),y}return t(b)}}const fd={partial:!0,tokenize:WF};function WF(s,e,t){return n;function n(i){return Zt(i)?cn(s,a,"linePrefix")(i):a(i)}function a(i){return i===null||jt(i)?e(i):t(i)}}const MM={continuation:{tokenize:YF},exit:VF,name:"blockQuote",tokenize:qF};function qF(s,e,t){const n=this;return a;function a(o){if(o===62){const l=n.containerState;return l.open||(s.enter("blockQuote",{_container:!0}),l.open=!0),s.enter("blockQuotePrefix"),s.enter("blockQuoteMarker"),s.consume(o),s.exit("blockQuoteMarker"),i}return t(o)}function i(o){return Zt(o)?(s.enter("blockQuotePrefixWhitespace"),s.consume(o),s.exit("blockQuotePrefixWhitespace"),s.exit("blockQuotePrefix"),e):(s.exit("blockQuotePrefix"),e(o))}}function YF(s,e,t){const n=this;return a;function a(o){return Zt(o)?cn(s,i,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(o):i(o)}function i(o){return s.attempt(MM,e,t)(o)}}function VF(s){s.exit("blockQuote")}const TM={name:"characterEscape",tokenize:KF};function KF(s,e,t){return n;function n(i){return s.enter("characterEscape"),s.enter("escapeMarker"),s.consume(i),s.exit("escapeMarker"),a}function a(i){return OF(i)?(s.enter("characterEscapeValue"),s.consume(i),s.exit("characterEscapeValue"),s.exit("characterEscape"),e):t(i)}}const EM={name:"characterReference",tokenize:XF};function XF(s,e,t){const n=this;let a=0,i,o;return l;function l(p){return s.enter("characterReference"),s.enter("characterReferenceMarker"),s.consume(p),s.exit("characterReferenceMarker"),c}function c(p){return p===35?(s.enter("characterReferenceMarkerNumeric"),s.consume(p),s.exit("characterReferenceMarkerNumeric"),d):(s.enter("characterReferenceValue"),i=31,o=Ps,f(p))}function d(p){return p===88||p===120?(s.enter("characterReferenceMarkerHexadecimal"),s.consume(p),s.exit("characterReferenceMarkerHexadecimal"),s.enter("characterReferenceValue"),i=6,o=RF,f):(s.enter("characterReferenceValue"),i=7,o=Sy,f(p))}function f(p){if(p===59&&a){const g=s.exit("characterReferenceValue");return o===Ps&&!Cx(n.sliceSerialize(g))?t(p):(s.enter("characterReferenceMarker"),s.consume(p),s.exit("characterReferenceMarker"),s.exit("characterReference"),e)}return o(p)&&a++<i?(s.consume(p),f):t(p)}}const Uj={partial:!0,tokenize:QF},Gj={concrete:!0,name:"codeFenced",tokenize:ZF};function ZF(s,e,t){const n=this,a={partial:!0,tokenize:_};let i=0,o=0,l;return c;function c(M){return d(M)}function d(M){const $=n.events[n.events.length-1];return i=$&&$[1].type==="linePrefix"?$[2].sliceSerialize($[1],!0).length:0,l=M,s.enter("codeFenced"),s.enter("codeFencedFence"),s.enter("codeFencedFenceSequence"),f(M)}function f(M){return M===l?(o++,s.consume(M),f):o<3?t(M):(s.exit("codeFencedFenceSequence"),Zt(M)?cn(s,p,"whitespace")(M):p(M))}function p(M){return M===null||jt(M)?(s.exit("codeFencedFence"),n.interrupt?e(M):s.check(Uj,w,A)(M)):(s.enter("codeFencedFenceInfo"),s.enter("chunkString",{contentType:"string"}),g(M))}function g(M){return M===null||jt(M)?(s.exit("chunkString"),s.exit("codeFencedFenceInfo"),p(M)):Zt(M)?(s.exit("chunkString"),s.exit("codeFencedFenceInfo"),cn(s,b,"whitespace")(M)):M===96&&M===l?t(M):(s.consume(M),g)}function b(M){return M===null||jt(M)?p(M):(s.enter("codeFencedFenceMeta"),s.enter("chunkString",{contentType:"string"}),y(M))}function y(M){return M===null||jt(M)?(s.exit("chunkString"),s.exit("codeFencedFenceMeta"),p(M)):M===96&&M===l?t(M):(s.consume(M),y)}function w(M){return s.attempt(a,A,k)(M)}function k(M){return s.enter("lineEnding"),s.consume(M),s.exit("lineEnding"),S}function S(M){return i>0&&Zt(M)?cn(s,j,"linePrefix",i+1)(M):j(M)}function j(M){return M===null||jt(M)?s.check(Uj,w,A)(M):(s.enter("codeFlowValue"),C(M))}function C(M){return M===null||jt(M)?(s.exit("codeFlowValue"),j(M)):(s.consume(M),C)}function A(M){return s.exit("codeFenced"),e(M)}function _(M,$,E){let D=0;return P;function P(F){return M.enter("lineEnding"),M.consume(F),M.exit("lineEnding"),R}function R(F){return M.enter("codeFencedFence"),Zt(F)?cn(M,L,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):L(F)}function L(F){return F===l?(M.enter("codeFencedFenceSequence"),z(F)):E(F)}function z(F){return F===l?(D++,M.consume(F),z):D>=o?(M.exit("codeFencedFenceSequence"),Zt(F)?cn(M,B,"whitespace")(F):B(F)):E(F)}function B(F){return F===null||jt(F)?(M.exit("codeFencedFence"),$(F)):E(F)}}}function QF(s,e,t){const n=this;return a;function a(o){return o===null?t(o):(s.enter("lineEnding"),s.consume(o),s.exit("lineEnding"),i)}function i(o){return n.parser.lazy[n.now().line]?t(o):e(o)}}const sb={name:"codeIndented",tokenize:ez},JF={partial:!0,tokenize:tz};function ez(s,e,t){const n=this;return a;function a(d){return s.enter("codeIndented"),cn(s,i,"linePrefix",5)(d)}function i(d){const f=n.events[n.events.length-1];return f&&f[1].type==="linePrefix"&&f[2].sliceSerialize(f[1],!0).length>=4?o(d):t(d)}function o(d){return d===null?c(d):jt(d)?s.attempt(JF,o,c)(d):(s.enter("codeFlowValue"),l(d))}function l(d){return d===null||jt(d)?(s.exit("codeFlowValue"),o(d)):(s.consume(d),l)}function c(d){return s.exit("codeIndented"),e(d)}}function tz(s,e,t){const n=this;return a;function a(o){return n.parser.lazy[n.now().line]?t(o):jt(o)?(s.enter("lineEnding"),s.consume(o),s.exit("lineEnding"),a):cn(s,i,"linePrefix",5)(o)}function i(o){const l=n.events[n.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?e(o):jt(o)?a(o):t(o)}}const nz={name:"codeText",previous:az,resolve:sz,tokenize:iz};function sz(s){let e=s.length-4,t=3,n,a;if((s[t][1].type==="lineEnding"||s[t][1].type==="space")&&(s[e][1].type==="lineEnding"||s[e][1].type==="space")){for(n=t;++n<e;)if(s[n][1].type==="codeTextData"){s[t][1].type="codeTextPadding",s[e][1].type="codeTextPadding",t+=2,e-=2;break}}for(n=t-1,e++;++n<=e;)a===void 0?n!==e&&s[n][1].type!=="lineEnding"&&(a=n):(n===e||s[n][1].type==="lineEnding")&&(s[a][1].type="codeTextData",n!==a+2&&(s[a][1].end=s[n-1][1].end,s.splice(a+2,n-a-2),e-=n-a-2,n=a+2),a=void 0);return s}function az(s){return s!==96||this.events[this.events.length-1][1].type==="characterEscape"}function iz(s,e,t){let n=0,a,i;return o;function o(p){return s.enter("codeText"),s.enter("codeTextSequence"),l(p)}function l(p){return p===96?(s.consume(p),n++,l):(s.exit("codeTextSequence"),c(p))}function c(p){return p===null?t(p):p===32?(s.enter("space"),s.consume(p),s.exit("space"),c):p===96?(i=s.enter("codeTextSequence"),a=0,f(p)):jt(p)?(s.enter("lineEnding"),s.consume(p),s.exit("lineEnding"),c):(s.enter("codeTextData"),d(p))}function d(p){return p===null||p===32||p===96||jt(p)?(s.exit("codeTextData"),c(p)):(s.consume(p),d)}function f(p){return p===96?(s.consume(p),a++,f):a===n?(s.exit("codeTextSequence"),s.exit("codeText"),e(p)):(i.type="codeTextData",d(p))}}class rz{constructor(e){this.left=e?[...e]:[],this.right=[]}get(e){if(e<0||e>=this.left.length+this.right.length)throw new RangeError("Cannot access index `"+e+"` in a splice buffer of size `"+(this.left.length+this.right.length)+"`");return e<this.left.length?this.left[e]:this.right[this.right.length-e+this.left.length-1]}get length(){return this.left.length+this.right.length}shift(){return this.setCursor(0),this.right.pop()}slice(e,t){const n=t??Number.POSITIVE_INFINITY;return n<this.left.length?this.left.slice(e,n):e>this.left.length?this.right.slice(this.right.length-n+this.left.length,this.right.length-e+this.left.length).reverse():this.left.slice(e).concat(this.right.slice(this.right.length-n+this.left.length).reverse())}splice(e,t,n){const a=t||0;this.setCursor(Math.trunc(e));const i=this.right.splice(this.right.length-a,Number.POSITIVE_INFINITY);return n&&Cu(this.left,n),i.reverse()}pop(){return this.setCursor(Number.POSITIVE_INFINITY),this.left.pop()}push(e){this.setCursor(Number.POSITIVE_INFINITY),this.left.push(e)}pushMany(e){this.setCursor(Number.POSITIVE_INFINITY),Cu(this.left,e)}unshift(e){this.setCursor(0),this.right.push(e)}unshiftMany(e){this.setCursor(0),Cu(this.right,e.reverse())}setCursor(e){if(!(e===this.left.length||e>this.left.length&&this.right.length===0||e<0&&this.left.length===0))if(e<this.left.length){const t=this.left.splice(e,Number.POSITIVE_INFINITY);Cu(this.right,t.reverse())}else{const t=this.right.splice(this.left.length+this.right.length-e,Number.POSITIVE_INFINITY);Cu(this.left,t.reverse())}}}function Cu(s,e){let t=0;if(e.length<1e4)s.push(...e);else for(;t<e.length;)s.push(...e.slice(t,t+1e4)),t+=1e4}function _M(s){const e={};let t=-1,n,a,i,o,l,c,d;const f=new rz(s);for(;++t<f.length;){for(;t in e;)t=e[t];if(n=f.get(t),t&&n[1].type==="chunkFlow"&&f.get(t-1)[1].type==="listItemPrefix"&&(c=n[1]._tokenizer.events,i=0,i<c.length&&c[i][1].type==="lineEndingBlank"&&(i+=2),i<c.length&&c[i][1].type==="content"))for(;++i<c.length&&c[i][1].type!=="content";)c[i][1].type==="chunkText"&&(c[i][1]._isInFirstContentOfListItem=!0,i++);if(n[0]==="enter")n[1].contentType&&(Object.assign(e,oz(f,t)),t=e[t],d=!0);else if(n[1]._container){for(i=t,a=void 0;i--;)if(o=f.get(i),o[1].type==="lineEnding"||o[1].type==="lineEndingBlank")o[0]==="enter"&&(a&&(f.get(a)[1].type="lineEndingBlank"),o[1].type="lineEnding",a=i);else if(!(o[1].type==="linePrefix"||o[1].type==="listItemIndent"))break;a&&(n[1].end={...f.get(a)[1].start},l=f.slice(a,t),l.unshift(n),f.splice(a,t-a+1,l))}}return ya(s,0,Number.POSITIVE_INFINITY,f.slice(0)),!d}function oz(s,e){const t=s.get(e)[1],n=s.get(e)[2];let a=e-1;const i=[];let o=t._tokenizer;o||(o=n.parser[t.contentType](t.start),t._contentTypeTextTrailing&&(o._contentTypeTextTrailing=!0));const l=o.events,c=[],d={};let f,p,g=-1,b=t,y=0,w=0;const k=[w];for(;b;){for(;s.get(++a)[1]!==b;);i.push(a),b._tokenizer||(f=n.sliceStream(b),b.next||f.push(null),p&&o.defineSkip(b.start),b._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=!0),o.write(f),b._isInFirstContentOfListItem&&(o._gfmTasklistFirstContentOfListItem=void 0)),p=b,b=b.next}for(b=t;++g<l.length;)l[g][0]==="exit"&&l[g-1][0]==="enter"&&l[g][1].type===l[g-1][1].type&&l[g][1].start.line!==l[g][1].end.line&&(w=g+1,k.push(w),b._tokenizer=void 0,b.previous=void 0,b=b.next);for(o.events=[],b?(b._tokenizer=void 0,b.previous=void 0):k.pop(),g=k.length;g--;){const S=l.slice(k[g],k[g+1]),j=i.pop();c.push([j,j+S.length-1]),s.splice(j,2,S)}for(c.reverse(),g=-1;++g<c.length;)d[y+c[g][0]]=y+c[g][1],y+=c[g][1]-c[g][0]-1;return d}const lz={resolve:uz,tokenize:dz},cz={partial:!0,tokenize:hz};function uz(s){return _M(s),s}function dz(s,e){let t;return n;function n(l){return s.enter("content"),t=s.enter("chunkContent",{contentType:"content"}),a(l)}function a(l){return l===null?i(l):jt(l)?s.check(cz,o,i)(l):(s.consume(l),a)}function i(l){return s.exit("chunkContent"),s.exit("content"),e(l)}function o(l){return s.consume(l),s.exit("chunkContent"),t.next=s.enter("chunkContent",{contentType:"content",previous:t}),t=t.next,a}}function hz(s,e,t){const n=this;return a;function a(o){return s.exit("chunkContent"),s.enter("lineEnding"),s.consume(o),s.exit("lineEnding"),cn(s,i,"linePrefix")}function i(o){if(o===null||jt(o))return t(o);const l=n.events[n.events.length-1];return!n.parser.constructs.disable.null.includes("codeIndented")&&l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?e(o):s.interrupt(n.parser.constructs.flow,t,e)(o)}}function DM(s,e,t,n,a,i,o,l,c){const d=c||Number.POSITIVE_INFINITY;let f=0;return p;function p(S){return S===60?(s.enter(n),s.enter(a),s.enter(i),s.consume(S),s.exit(i),g):S===null||S===32||S===41||Ap(S)?t(S):(s.enter(n),s.enter(o),s.enter(l),s.enter("chunkString",{contentType:"string"}),w(S))}function g(S){return S===62?(s.enter(i),s.consume(S),s.exit(i),s.exit(a),s.exit(n),e):(s.enter(l),s.enter("chunkString",{contentType:"string"}),b(S))}function b(S){return S===62?(s.exit("chunkString"),s.exit(l),g(S)):S===null||S===60||jt(S)?t(S):(s.consume(S),S===92?y:b)}function y(S){return S===60||S===62||S===92?(s.consume(S),b):b(S)}function w(S){return!f&&(S===null||S===41||Pn(S))?(s.exit("chunkString"),s.exit(l),s.exit(o),s.exit(n),e(S)):f<d&&S===40?(s.consume(S),f++,w):S===41?(s.consume(S),f--,w):S===null||S===32||S===40||Ap(S)?t(S):(s.consume(S),S===92?k:w)}function k(S){return S===40||S===41||S===92?(s.consume(S),w):w(S)}}function PM(s,e,t,n,a,i){const o=this;let l=0,c;return d;function d(b){return s.enter(n),s.enter(a),s.consume(b),s.exit(a),s.enter(i),f}function f(b){return l>999||b===null||b===91||b===93&&!c||b===94&&!l&&"_hiddenFootnoteSupport"in o.parser.constructs?t(b):b===93?(s.exit(i),s.enter(a),s.consume(b),s.exit(a),s.exit(n),e):jt(b)?(s.enter("lineEnding"),s.consume(b),s.exit("lineEnding"),f):(s.enter("chunkString",{contentType:"string"}),p(b))}function p(b){return b===null||b===91||b===93||jt(b)||l++>999?(s.exit("chunkString"),f(b)):(s.consume(b),c||(c=!Zt(b)),b===92?g:p)}function g(b){return b===91||b===92||b===93?(s.consume(b),l++,p):p(b)}}function RM(s,e,t,n,a,i){let o;return l;function l(g){return g===34||g===39||g===40?(s.enter(n),s.enter(a),s.consume(g),s.exit(a),o=g===40?41:g,c):t(g)}function c(g){return g===o?(s.enter(a),s.consume(g),s.exit(a),s.exit(n),e):(s.enter(i),d(g))}function d(g){return g===o?(s.exit(i),c(o)):g===null?t(g):jt(g)?(s.enter("lineEnding"),s.consume(g),s.exit("lineEnding"),cn(s,d,"linePrefix")):(s.enter("chunkString",{contentType:"string"}),f(g))}function f(g){return g===o||g===null||jt(g)?(s.exit("chunkString"),d(g)):(s.consume(g),g===92?p:f)}function p(g){return g===o||g===92?(s.consume(g),f):f(g)}}function qu(s,e){let t;return n;function n(a){return jt(a)?(s.enter("lineEnding"),s.consume(a),s.exit("lineEnding"),t=!0,n):Zt(a)?cn(s,n,t?"linePrefix":"lineSuffix")(a):e(a)}}const pz={name:"definition",tokenize:mz},fz={partial:!0,tokenize:gz};function mz(s,e,t){const n=this;let a;return i;function i(b){return s.enter("definition"),o(b)}function o(b){return PM.call(n,s,l,t,"definitionLabel","definitionLabelMarker","definitionLabelString")(b)}function l(b){return a=Xa(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)),b===58?(s.enter("definitionMarker"),s.consume(b),s.exit("definitionMarker"),c):t(b)}function c(b){return Pn(b)?qu(s,d)(b):d(b)}function d(b){return DM(s,f,t,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(b)}function f(b){return s.attempt(fz,p,p)(b)}function p(b){return Zt(b)?cn(s,g,"whitespace")(b):g(b)}function g(b){return b===null||jt(b)?(s.exit("definition"),n.parser.defined.push(a),e(b)):t(b)}}function gz(s,e,t){return n;function n(l){return Pn(l)?qu(s,a)(l):t(l)}function a(l){return RM(s,i,t,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return Zt(l)?cn(s,o,"whitespace")(l):o(l)}function o(l){return l===null||jt(l)?e(l):t(l)}}const bz={name:"hardBreakEscape",tokenize:yz};function yz(s,e,t){return n;function n(i){return s.enter("hardBreakEscape"),s.consume(i),a}function a(i){return jt(i)?(s.exit("hardBreakEscape"),e(i)):t(i)}}const xz={name:"headingAtx",resolve:vz,tokenize:wz};function vz(s,e){let t=s.length-2,n=3,a,i;return s[n][1].type==="whitespace"&&(n+=2),t-2>n&&s[t][1].type==="whitespace"&&(t-=2),s[t][1].type==="atxHeadingSequence"&&(n===t-1||t-4>n&&s[t-2][1].type==="whitespace")&&(t-=n+1===t?2:4),t>n&&(a={type:"atxHeadingText",start:s[n][1].start,end:s[t][1].end},i={type:"chunkText",start:s[n][1].start,end:s[t][1].end,contentType:"text"},ya(s,n,t-n+1,[["enter",a,e],["enter",i,e],["exit",i,e],["exit",a,e]])),s}function wz(s,e,t){let n=0;return a;function a(f){return s.enter("atxHeading"),i(f)}function i(f){return s.enter("atxHeadingSequence"),o(f)}function o(f){return f===35&&n++<6?(s.consume(f),o):f===null||Pn(f)?(s.exit("atxHeadingSequence"),l(f)):t(f)}function l(f){return f===35?(s.enter("atxHeadingSequence"),c(f)):f===null||jt(f)?(s.exit("atxHeading"),e(f)):Zt(f)?cn(s,l,"whitespace")(f):(s.enter("atxHeadingText"),d(f))}function c(f){return f===35?(s.consume(f),c):(s.exit("atxHeadingSequence"),l(f))}function d(f){return f===null||f===35||Pn(f)?(s.exit("atxHeadingText"),l(f)):(s.consume(f),d)}}const kz=["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"],Wj=["pre","script","style","textarea"],Sz={concrete:!0,name:"htmlFlow",resolveTo:Nz,tokenize:Az},jz={partial:!0,tokenize:Tz},Cz={partial:!0,tokenize:Mz};function Nz(s){let e=s.length;for(;e--&&!(s[e][0]==="enter"&&s[e][1].type==="htmlFlow"););return e>1&&s[e-2][1].type==="linePrefix"&&(s[e][1].start=s[e-2][1].start,s[e+1][1].start=s[e-2][1].start,s.splice(e-2,2)),s}function Az(s,e,t){const n=this;let a,i,o,l,c;return d;function d(O){return f(O)}function f(O){return s.enter("htmlFlow"),s.enter("htmlFlowData"),s.consume(O),p}function p(O){return O===33?(s.consume(O),g):O===47?(s.consume(O),i=!0,w):O===63?(s.consume(O),a=3,n.interrupt?e:I):$s(O)?(s.consume(O),o=String.fromCharCode(O),k):t(O)}function g(O){return O===45?(s.consume(O),a=2,b):O===91?(s.consume(O),a=5,l=0,y):$s(O)?(s.consume(O),a=4,n.interrupt?e:I):t(O)}function b(O){return O===45?(s.consume(O),n.interrupt?e:I):t(O)}function y(O){const V="CDATA[";return O===V.charCodeAt(l++)?(s.consume(O),l===V.length?n.interrupt?e:L:y):t(O)}function w(O){return $s(O)?(s.consume(O),o=String.fromCharCode(O),k):t(O)}function k(O){if(O===null||O===47||O===62||Pn(O)){const V=O===47,J=o.toLowerCase();return!V&&!i&&Wj.includes(J)?(a=1,n.interrupt?e(O):L(O)):kz.includes(o.toLowerCase())?(a=6,V?(s.consume(O),S):n.interrupt?e(O):L(O)):(a=7,n.interrupt&&!n.parser.lazy[n.now().line]?t(O):i?j(O):C(O))}return O===45||Ps(O)?(s.consume(O),o+=String.fromCharCode(O),k):t(O)}function S(O){return O===62?(s.consume(O),n.interrupt?e:L):t(O)}function j(O){return Zt(O)?(s.consume(O),j):P(O)}function C(O){return O===47?(s.consume(O),P):O===58||O===95||$s(O)?(s.consume(O),A):Zt(O)?(s.consume(O),C):P(O)}function A(O){return O===45||O===46||O===58||O===95||Ps(O)?(s.consume(O),A):_(O)}function _(O){return O===61?(s.consume(O),M):Zt(O)?(s.consume(O),_):C(O)}function M(O){return O===null||O===60||O===61||O===62||O===96?t(O):O===34||O===39?(s.consume(O),c=O,$):Zt(O)?(s.consume(O),M):E(O)}function $(O){return O===c?(s.consume(O),c=null,D):O===null||jt(O)?t(O):(s.consume(O),$)}function E(O){return O===null||O===34||O===39||O===47||O===60||O===61||O===62||O===96||Pn(O)?_(O):(s.consume(O),E)}function D(O){return O===47||O===62||Zt(O)?C(O):t(O)}function P(O){return O===62?(s.consume(O),R):t(O)}function R(O){return O===null||jt(O)?L(O):Zt(O)?(s.consume(O),R):t(O)}function L(O){return O===45&&a===2?(s.consume(O),H):O===60&&a===1?(s.consume(O),G):O===62&&a===4?(s.consume(O),ee):O===63&&a===3?(s.consume(O),I):O===93&&a===5?(s.consume(O),X):jt(O)&&(a===6||a===7)?(s.exit("htmlFlowData"),s.check(jz,se,z)(O)):O===null||jt(O)?(s.exit("htmlFlowData"),z(O)):(s.consume(O),L)}function z(O){return s.check(Cz,B,se)(O)}function B(O){return s.enter("lineEnding"),s.consume(O),s.exit("lineEnding"),F}function F(O){return O===null||jt(O)?z(O):(s.enter("htmlFlowData"),L(O))}function H(O){return O===45?(s.consume(O),I):L(O)}function G(O){return O===47?(s.consume(O),o="",K):L(O)}function K(O){if(O===62){const V=o.toLowerCase();return Wj.includes(V)?(s.consume(O),ee):L(O)}return $s(O)&&o.length<8?(s.consume(O),o+=String.fromCharCode(O),K):L(O)}function X(O){return O===93?(s.consume(O),I):L(O)}function I(O){return O===62?(s.consume(O),ee):O===45&&a===2?(s.consume(O),I):L(O)}function ee(O){return O===null||jt(O)?(s.exit("htmlFlowData"),se(O)):(s.consume(O),ee)}function se(O){return s.exit("htmlFlow"),e(O)}}function Mz(s,e,t){const n=this;return a;function a(o){return jt(o)?(s.enter("lineEnding"),s.consume(o),s.exit("lineEnding"),i):t(o)}function i(o){return n.parser.lazy[n.now().line]?t(o):e(o)}}function Tz(s,e,t){return n;function n(a){return s.enter("lineEnding"),s.consume(a),s.exit("lineEnding"),s.attempt(fd,e,t)}}const Ez={name:"htmlText",tokenize:_z};function _z(s,e,t){const n=this;let a,i,o;return l;function l(I){return s.enter("htmlText"),s.enter("htmlTextData"),s.consume(I),c}function c(I){return I===33?(s.consume(I),d):I===47?(s.consume(I),_):I===63?(s.consume(I),C):$s(I)?(s.consume(I),E):t(I)}function d(I){return I===45?(s.consume(I),f):I===91?(s.consume(I),i=0,y):$s(I)?(s.consume(I),j):t(I)}function f(I){return I===45?(s.consume(I),b):t(I)}function p(I){return I===null?t(I):I===45?(s.consume(I),g):jt(I)?(o=p,G(I)):(s.consume(I),p)}function g(I){return I===45?(s.consume(I),b):p(I)}function b(I){return I===62?H(I):I===45?g(I):p(I)}function y(I){const ee="CDATA[";return I===ee.charCodeAt(i++)?(s.consume(I),i===ee.length?w:y):t(I)}function w(I){return I===null?t(I):I===93?(s.consume(I),k):jt(I)?(o=w,G(I)):(s.consume(I),w)}function k(I){return I===93?(s.consume(I),S):w(I)}function S(I){return I===62?H(I):I===93?(s.consume(I),S):w(I)}function j(I){return I===null||I===62?H(I):jt(I)?(o=j,G(I)):(s.consume(I),j)}function C(I){return I===null?t(I):I===63?(s.consume(I),A):jt(I)?(o=C,G(I)):(s.consume(I),C)}function A(I){return I===62?H(I):C(I)}function _(I){return $s(I)?(s.consume(I),M):t(I)}function M(I){return I===45||Ps(I)?(s.consume(I),M):$(I)}function $(I){return jt(I)?(o=$,G(I)):Zt(I)?(s.consume(I),$):H(I)}function E(I){return I===45||Ps(I)?(s.consume(I),E):I===47||I===62||Pn(I)?D(I):t(I)}function D(I){return I===47?(s.consume(I),H):I===58||I===95||$s(I)?(s.consume(I),P):jt(I)?(o=D,G(I)):Zt(I)?(s.consume(I),D):H(I)}function P(I){return I===45||I===46||I===58||I===95||Ps(I)?(s.consume(I),P):R(I)}function R(I){return I===61?(s.consume(I),L):jt(I)?(o=R,G(I)):Zt(I)?(s.consume(I),R):D(I)}function L(I){return I===null||I===60||I===61||I===62||I===96?t(I):I===34||I===39?(s.consume(I),a=I,z):jt(I)?(o=L,G(I)):Zt(I)?(s.consume(I),L):(s.consume(I),B)}function z(I){return I===a?(s.consume(I),a=void 0,F):I===null?t(I):jt(I)?(o=z,G(I)):(s.consume(I),z)}function B(I){return I===null||I===34||I===39||I===60||I===61||I===96?t(I):I===47||I===62||Pn(I)?D(I):(s.consume(I),B)}function F(I){return I===47||I===62||Pn(I)?D(I):t(I)}function H(I){return I===62?(s.consume(I),s.exit("htmlTextData"),s.exit("htmlText"),e):t(I)}function G(I){return s.exit("htmlTextData"),s.enter("lineEnding"),s.consume(I),s.exit("lineEnding"),K}function K(I){return Zt(I)?cn(s,X,"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(I):X(I)}function X(I){return s.enter("htmlTextData"),o(I)}}const Nx={name:"labelEnd",resolveAll:Oz,resolveTo:Lz,tokenize:Iz},Dz={tokenize:Bz},Pz={tokenize:Fz},Rz={tokenize:zz};function Oz(s){let e=-1;const t=[];for(;++e<s.length;){const n=s[e][1];if(t.push(s[e]),n.type==="labelImage"||n.type==="labelLink"||n.type==="labelEnd"){const a=n.type==="labelImage"?4:2;n.type="data",e+=a}}return s.length!==t.length&&ya(s,0,s.length,t),s}function Lz(s,e){let t=s.length,n=0,a,i,o,l;for(;t--;)if(a=s[t][1],i){if(a.type==="link"||a.type==="labelLink"&&a._inactive)break;s[t][0]==="enter"&&a.type==="labelLink"&&(a._inactive=!0)}else if(o){if(s[t][0]==="enter"&&(a.type==="labelImage"||a.type==="labelLink")&&!a._balanced&&(i=t,a.type!=="labelLink")){n=2;break}}else a.type==="labelEnd"&&(o=t);const c={type:s[i][1].type==="labelLink"?"link":"image",start:{...s[i][1].start},end:{...s[s.length-1][1].end}},d={type:"label",start:{...s[i][1].start},end:{...s[o][1].end}},f={type:"labelText",start:{...s[i+n+2][1].end},end:{...s[o-2][1].start}};return l=[["enter",c,e],["enter",d,e]],l=_a(l,s.slice(i+1,i+n+3)),l=_a(l,[["enter",f,e]]),l=_a(l,uf(e.parser.constructs.insideSpan.null,s.slice(i+n+4,o-3),e)),l=_a(l,[["exit",f,e],s[o-2],s[o-1],["exit",d,e]]),l=_a(l,s.slice(o+1)),l=_a(l,[["exit",c,e]]),ya(s,i,s.length,l),s}function Iz(s,e,t){const n=this;let a=n.events.length,i,o;for(;a--;)if((n.events[a][1].type==="labelImage"||n.events[a][1].type==="labelLink")&&!n.events[a][1]._balanced){i=n.events[a][1];break}return l;function l(g){return i?i._inactive?p(g):(o=n.parser.defined.includes(Xa(n.sliceSerialize({start:i.end,end:n.now()}))),s.enter("labelEnd"),s.enter("labelMarker"),s.consume(g),s.exit("labelMarker"),s.exit("labelEnd"),c):t(g)}function c(g){return g===40?s.attempt(Dz,f,o?f:p)(g):g===91?s.attempt(Pz,f,o?d:p)(g):o?f(g):p(g)}function d(g){return s.attempt(Rz,f,p)(g)}function f(g){return e(g)}function p(g){return i._balanced=!0,t(g)}}function Bz(s,e,t){return n;function n(p){return s.enter("resource"),s.enter("resourceMarker"),s.consume(p),s.exit("resourceMarker"),a}function a(p){return Pn(p)?qu(s,i)(p):i(p)}function i(p){return p===41?f(p):DM(s,o,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(p)}function o(p){return Pn(p)?qu(s,c)(p):f(p)}function l(p){return t(p)}function c(p){return p===34||p===39||p===40?RM(s,d,t,"resourceTitle","resourceTitleMarker","resourceTitleString")(p):f(p)}function d(p){return Pn(p)?qu(s,f)(p):f(p)}function f(p){return p===41?(s.enter("resourceMarker"),s.consume(p),s.exit("resourceMarker"),s.exit("resource"),e):t(p)}}function Fz(s,e,t){const n=this;return a;function a(l){return PM.call(n,s,i,o,"reference","referenceMarker","referenceString")(l)}function i(l){return n.parser.defined.includes(Xa(n.sliceSerialize(n.events[n.events.length-1][1]).slice(1,-1)))?e(l):t(l)}function o(l){return t(l)}}function zz(s,e,t){return n;function n(i){return s.enter("reference"),s.enter("referenceMarker"),s.consume(i),s.exit("referenceMarker"),a}function a(i){return i===93?(s.enter("referenceMarker"),s.consume(i),s.exit("referenceMarker"),s.exit("reference"),e):t(i)}}const $z={name:"labelStartImage",resolveAll:Nx.resolveAll,tokenize:Hz};function Hz(s,e,t){const n=this;return a;function a(l){return s.enter("labelImage"),s.enter("labelImageMarker"),s.consume(l),s.exit("labelImageMarker"),i}function i(l){return l===91?(s.enter("labelMarker"),s.consume(l),s.exit("labelMarker"),s.exit("labelImage"),o):t(l)}function o(l){return l===94&&"_hiddenFootnoteSupport"in n.parser.constructs?t(l):e(l)}}const Uz={name:"labelStartLink",resolveAll:Nx.resolveAll,tokenize:Gz};function Gz(s,e,t){const n=this;return a;function a(o){return s.enter("labelLink"),s.enter("labelMarker"),s.consume(o),s.exit("labelMarker"),s.exit("labelLink"),i}function i(o){return o===94&&"_hiddenFootnoteSupport"in n.parser.constructs?t(o):e(o)}}const ab={name:"lineEnding",tokenize:Wz};function Wz(s,e){return t;function t(n){return s.enter("lineEnding"),s.consume(n),s.exit("lineEnding"),cn(s,e,"linePrefix")}}const ap={name:"thematicBreak",tokenize:qz};function qz(s,e,t){let n=0,a;return i;function i(d){return s.enter("thematicBreak"),o(d)}function o(d){return a=d,l(d)}function l(d){return d===a?(s.enter("thematicBreakSequence"),c(d)):n>=3&&(d===null||jt(d))?(s.exit("thematicBreak"),e(d)):t(d)}function c(d){return d===a?(s.consume(d),n++,c):(s.exit("thematicBreakSequence"),Zt(d)?cn(s,l,"whitespace")(d):l(d))}}const Zs={continuation:{tokenize:Xz},exit:Qz,name:"list",tokenize:Kz},Yz={partial:!0,tokenize:Jz},Vz={partial:!0,tokenize:Zz};function Kz(s,e,t){const n=this,a=n.events[n.events.length-1];let i=a&&a[1].type==="linePrefix"?a[2].sliceSerialize(a[1],!0).length:0,o=0;return l;function l(b){const y=n.containerState.type||(b===42||b===43||b===45?"listUnordered":"listOrdered");if(y==="listUnordered"?!n.containerState.marker||b===n.containerState.marker:Sy(b)){if(n.containerState.type||(n.containerState.type=y,s.enter(y,{_container:!0})),y==="listUnordered")return s.enter("listItemPrefix"),b===42||b===45?s.check(ap,t,d)(b):d(b);if(!n.interrupt||b===49)return s.enter("listItemPrefix"),s.enter("listItemValue"),c(b)}return t(b)}function c(b){return Sy(b)&&++o<10?(s.consume(b),c):(!n.interrupt||o<2)&&(n.containerState.marker?b===n.containerState.marker:b===41||b===46)?(s.exit("listItemValue"),d(b)):t(b)}function d(b){return s.enter("listItemMarker"),s.consume(b),s.exit("listItemMarker"),n.containerState.marker=n.containerState.marker||b,s.check(fd,n.interrupt?t:f,s.attempt(Yz,g,p))}function f(b){return n.containerState.initialBlankLine=!0,i++,g(b)}function p(b){return Zt(b)?(s.enter("listItemPrefixWhitespace"),s.consume(b),s.exit("listItemPrefixWhitespace"),g):t(b)}function g(b){return n.containerState.size=i+n.sliceSerialize(s.exit("listItemPrefix"),!0).length,e(b)}}function Xz(s,e,t){const n=this;return n.containerState._closeFlow=void 0,s.check(fd,a,i);function a(l){return n.containerState.furtherBlankLines=n.containerState.furtherBlankLines||n.containerState.initialBlankLine,cn(s,e,"listItemIndent",n.containerState.size+1)(l)}function i(l){return n.containerState.furtherBlankLines||!Zt(l)?(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,o(l)):(n.containerState.furtherBlankLines=void 0,n.containerState.initialBlankLine=void 0,s.attempt(Vz,e,o)(l))}function o(l){return n.containerState._closeFlow=!0,n.interrupt=void 0,cn(s,s.attempt(Zs,e,t),"linePrefix",n.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function Zz(s,e,t){const n=this;return cn(s,a,"listItemIndent",n.containerState.size+1);function a(i){const o=n.events[n.events.length-1];return o&&o[1].type==="listItemIndent"&&o[2].sliceSerialize(o[1],!0).length===n.containerState.size?e(i):t(i)}}function Qz(s){s.exit(this.containerState.type)}function Jz(s,e,t){const n=this;return cn(s,a,"listItemPrefixWhitespace",n.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function a(i){const o=n.events[n.events.length-1];return!Zt(i)&&o&&o[1].type==="listItemPrefixWhitespace"?e(i):t(i)}}const qj={name:"setextUnderline",resolveTo:e3,tokenize:t3};function e3(s,e){let t=s.length,n,a,i;for(;t--;)if(s[t][0]==="enter"){if(s[t][1].type==="content"){n=t;break}s[t][1].type==="paragraph"&&(a=t)}else s[t][1].type==="content"&&s.splice(t,1),!i&&s[t][1].type==="definition"&&(i=t);const o={type:"setextHeading",start:{...s[n][1].start},end:{...s[s.length-1][1].end}};return s[a][1].type="setextHeadingText",i?(s.splice(a,0,["enter",o,e]),s.splice(i+1,0,["exit",s[n][1],e]),s[n][1].end={...s[i][1].end}):s[n][1]=o,s.push(["exit",o,e]),s}function t3(s,e,t){const n=this;let a;return i;function i(d){let f=n.events.length,p;for(;f--;)if(n.events[f][1].type!=="lineEnding"&&n.events[f][1].type!=="linePrefix"&&n.events[f][1].type!=="content"){p=n.events[f][1].type==="paragraph";break}return!n.parser.lazy[n.now().line]&&(n.interrupt||p)?(s.enter("setextHeadingLine"),a=d,o(d)):t(d)}function o(d){return s.enter("setextHeadingLineSequence"),l(d)}function l(d){return d===a?(s.consume(d),l):(s.exit("setextHeadingLineSequence"),Zt(d)?cn(s,c,"lineSuffix")(d):c(d))}function c(d){return d===null||jt(d)?(s.exit("setextHeadingLine"),e(d)):t(d)}}const n3={tokenize:s3};function s3(s){const e=this,t=s.attempt(fd,n,s.attempt(this.parser.constructs.flowInitial,a,cn(s,s.attempt(this.parser.constructs.flow,a,s.attempt(lz,a)),"linePrefix")));return t;function n(i){if(i===null){s.consume(i);return}return s.enter("lineEndingBlank"),s.consume(i),s.exit("lineEndingBlank"),e.currentConstruct=void 0,t}function a(i){if(i===null){s.consume(i);return}return s.enter("lineEnding"),s.consume(i),s.exit("lineEnding"),e.currentConstruct=void 0,t}}const a3={resolveAll:LM()},i3=OM("string"),r3=OM("text");function OM(s){return{resolveAll:LM(s==="text"?o3:void 0),tokenize:e};function e(t){const n=this,a=this.parser.constructs[s],i=t.attempt(a,o,l);return o;function o(f){return d(f)?i(f):l(f)}function l(f){if(f===null){t.consume(f);return}return t.enter("data"),t.consume(f),c}function c(f){return d(f)?(t.exit("data"),i(f)):(t.consume(f),c)}function d(f){if(f===null)return!0;const p=a[f];let g=-1;if(p)for(;++g<p.length;){const b=p[g];if(!b.previous||b.previous.call(n,n.previous))return!0}return!1}}}function LM(s){return e;function e(t,n){let a=-1,i;for(;++a<=t.length;)i===void 0?t[a]&&t[a][1].type==="data"&&(i=a,a++):(!t[a]||t[a][1].type!=="data")&&(a!==i+2&&(t[i][1].end=t[a-1][1].end,t.splice(i+2,a-i-2),a=i+2),i=void 0);return s?s(t,n):t}}function o3(s,e){let t=0;for(;++t<=s.length;)if((t===s.length||s[t][1].type==="lineEnding")&&s[t-1][1].type==="data"){const n=s[t-1][1],a=e.sliceStream(n);let i=a.length,o=-1,l=0,c;for(;i--;){const d=a[i];if(typeof d=="string"){for(o=d.length;d.charCodeAt(o-1)===32;)l++,o--;if(o)break;o=-1}else if(d===-2)c=!0,l++;else if(d!==-1){i++;break}}if(e._contentTypeTextTrailing&&t===s.length&&(l=0),l){const d={type:t===s.length||c||l<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?o:n.start._bufferIndex+o,_index:n.start._index+i,line:n.end.line,column:n.end.column-l,offset:n.end.offset-l},end:{...n.end}};n.end={...d.start},n.start.offset===n.end.offset?Object.assign(n,d):(s.splice(t,0,["enter",d,e],["exit",d,e]),t+=2)}t++}return s}const l3={42:Zs,43:Zs,45:Zs,48:Zs,49:Zs,50:Zs,51:Zs,52:Zs,53:Zs,54:Zs,55:Zs,56:Zs,57:Zs,62:MM},c3={91:pz},u3={[-2]:sb,[-1]:sb,32:sb},d3={35:xz,42:ap,45:[qj,ap],60:Sz,61:qj,95:ap,96:Gj,126:Gj},h3={38:EM,92:TM},p3={[-5]:ab,[-4]:ab,[-3]:ab,33:$z,38:EM,42:jy,60:[UF,Ez],91:Uz,92:[bz,TM],93:Nx,95:jy,96:nz},f3={null:[jy,a3]},m3={null:[42,95]},g3={null:[]},b3=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:m3,contentInitial:c3,disable:g3,document:l3,flow:d3,flowInitial:u3,insideSpan:f3,string:h3,text:p3},Symbol.toStringTag,{value:"Module"}));function y3(s,e,t){let n={_bufferIndex:-1,_index:0,line:t&&t.line||1,column:t&&t.column||1,offset:t&&t.offset||0};const a={},i=[];let o=[],l=[];const c={attempt:$(_),check:$(M),consume:j,enter:C,exit:A,interrupt:$(M,{interrupt:!0})},d={code:null,containerState:{},defineSkip:w,events:[],now:y,parser:s,previous:null,sliceSerialize:g,sliceStream:b,write:p};let f=e.tokenize.call(d,c);return e.resolveAll&&i.push(e),d;function p(R){return o=_a(o,R),k(),o[o.length-1]!==null?[]:(E(e,0),d.events=uf(i,d.events,d),d.events)}function g(R,L){return v3(b(R),L)}function b(R){return x3(o,R)}function y(){const{_bufferIndex:R,_index:L,line:z,column:B,offset:F}=n;return{_bufferIndex:R,_index:L,line:z,column:B,offset:F}}function w(R){a[R.line]=R.column,P()}function k(){let R;for(;n._index<o.length;){const L=o[n._index];if(typeof L=="string")for(R=n._index,n._bufferIndex<0&&(n._bufferIndex=0);n._index===R&&n._bufferIndex<L.length;)S(L.charCodeAt(n._bufferIndex));else S(L)}}function S(R){f=f(R)}function j(R){jt(R)?(n.line++,n.column=1,n.offset+=R===-3?2:1,P()):R!==-1&&(n.column++,n.offset++),n._bufferIndex<0?n._index++:(n._bufferIndex++,n._bufferIndex===o[n._index].length&&(n._bufferIndex=-1,n._index++)),d.previous=R}function C(R,L){const z=L||{};return z.type=R,z.start=y(),d.events.push(["enter",z,d]),l.push(z),z}function A(R){const L=l.pop();return L.end=y(),d.events.push(["exit",L,d]),L}function _(R,L){E(R,L.from)}function M(R,L){L.restore()}function $(R,L){return z;function z(B,F,H){let G,K,X,I;return Array.isArray(B)?se(B):"tokenize"in B?se([B]):ee(B);function ee(Q){return ae;function ae(te){const Z=te!==null&&Q[te],re=te!==null&&Q.null,de=[...Array.isArray(Z)?Z:Z?[Z]:[],...Array.isArray(re)?re:re?[re]:[]];return se(de)(te)}}function se(Q){return G=Q,K=0,Q.length===0?H:O(Q[K])}function O(Q){return ae;function ae(te){return I=D(),X=Q,Q.partial||(d.currentConstruct=Q),Q.name&&d.parser.constructs.disable.null.includes(Q.name)?J():Q.tokenize.call(L?Object.assign(Object.create(d),L):d,c,V,J)(te)}}function V(Q){return R(X,I),F}function J(Q){return I.restore(),++K<G.length?O(G[K]):H}}}function E(R,L){R.resolveAll&&!i.includes(R)&&i.push(R),R.resolve&&ya(d.events,L,d.events.length-L,R.resolve(d.events.slice(L),d)),R.resolveTo&&(d.events=R.resolveTo(d.events,d))}function D(){const R=y(),L=d.previous,z=d.currentConstruct,B=d.events.length,F=Array.from(l);return{from:B,restore:H};function H(){n=R,d.previous=L,d.currentConstruct=z,d.events.length=B,l=F,P()}}function P(){n.line in a&&n.column<2&&(n.column=a[n.line],n.offset+=a[n.line]-1)}}function x3(s,e){const t=e.start._index,n=e.start._bufferIndex,a=e.end._index,i=e.end._bufferIndex;let o;if(t===a)o=[s[t].slice(n,i)];else{if(o=s.slice(t,a),n>-1){const l=o[0];typeof l=="string"?o[0]=l.slice(n):o.shift()}i>0&&o.push(s[a].slice(0,i))}return o}function v3(s,e){let t=-1;const n=[];let a;for(;++t<s.length;){const i=s[t];let o;if(typeof i=="string")o=i;else switch(i){case-5:{o="\r";break}case-4:{o=`
|
|
@@ -228,7 +228,7 @@ ${me}`:Y=me}U.sendCommand(e,Y),a(""),o(!1),w(new Map),d([]),k(),window.innerWidt
|
|
|
228
228
|
`),children:["⑂",w.length]}),y.length>0&&w.length===0&&r.jsxs("span",{className:"aop-subagent-count",title:c("terminal:overview.subagentsCompleted",{count:y.length}),style:{opacity:.5},children:["⑂",y.length]})]}),g&&r.jsxs("div",{className:`aop-last-message ${g.isUserPrompt?"user":"assistant"}`,title:g.text.split(`
|
|
229
229
|
`)[0],children:[r.jsx("span",{className:"lm-prefix",children:g.isUserPrompt?"▶":"◀"}),r.jsx("span",{className:"lm-text",children:JC(g.text,80)}),r.jsx("span",{className:"lm-time",children:wp(g.timestamp)})]}),t&&r.jsxs("div",{className:"aop-agent-body",children:[y.length>0&&r.jsxs("div",{className:"aop-subagents",children:[r.jsx("div",{className:"aop-section-label",children:c("terminal:overview.subagents",{count:y.length})}),y.map(k=>r.jsxs("div",{className:`aop-subagent-item ${k.status}`,children:[r.jsx("span",{className:"sub-icon",children:k.status==="completed"?"✅":k.status==="failed"?"❌":k.status==="unknown"?"⬜":"⑂"}),r.jsx("span",{className:"sub-name",children:k.name}),r.jsx("span",{className:"sub-type",children:k.type}),k.description&&r.jsx("span",{className:"sub-desc",title:k.description,children:JC(k.description,50)})]},k.id))]}),p.length>0&&r.jsxs("div",{className:"aop-tool-timeline",children:[r.jsx("div",{className:"aop-section-label",children:c("terminal:overview.recentActivity")}),p.map((k,S)=>{var C,A;const j=k.toolInput&&(k.toolInput.file_path||((C=k.toolInput.command)==null?void 0:C.slice(0,40))||k.toolInput.pattern||k.toolInput.description||((A=k.toolInput.prompt)==null?void 0:A.slice(0,50)))||"";return r.jsxs("div",{className:"aop-timeline-entry",children:[r.jsx("span",{className:"tl-time",children:wp(k.timestamp)}),r.jsx("span",{className:"tl-icon",children:ss[k.toolName]||ss.default}),r.jsx("span",{className:"tl-tool",children:k.toolName}),j&&r.jsx("span",{className:"tl-param",children:j})]},`${k.timestamp}-${S}`)})]}),n.length===0&&a.length===0&&r.jsx("div",{className:"aop-no-activity",children:c("terminal:overview.noToolActivity")})]})]})}function M9({progress:s,defaultExpanded:e=!1,onAgentClick:t}){const[n,a]=x.useState(null),i=x.useRef(s.status),o=n!==null?!n:s.status==="working"||s.status==="completed"||s.status==="failed";x.useEffect(()=>{i.current!==s.status&&(i.current==="working"&&(s.status==="completed"||s.status==="failed")&&a(!1),i.current=s.status)},[s.status]);const l={working:"#4a9eff",completed:"#22c55e",failed:"#ef4444"},c={working:"⚙️",completed:"✅",failed:"❌"},{t:d}=Ue(["tools"]),f={working:d("tools:progress.workingOn"),completed:d("tools:progress.taskFinished"),failed:d("tools:progress.taskFailed")},p=s.taskDescription.length>80?s.taskDescription.slice(0,80)+"...":s.taskDescription,g=()=>{const y=s.completedAt||Date.now(),w=Math.floor((y-s.startedAt)/1e3);if(w<60)return`${w}s`;const k=Math.floor(w/60),S=w%60;return`${k}m ${S}s`},b=()=>{a(o)};return r.jsxs("div",{className:`agent-progress-indicator status-${s.status} ${o?"expanded":"collapsed"}`,children:[r.jsxs("div",{className:"agent-progress-header",onClick:b,children:[r.jsx("span",{className:"agent-progress-status-icon",style:{color:l[s.status]},children:c[s.status]}),r.jsx("span",{className:"agent-progress-agent-name",onClick:y=>{t&&(y.stopPropagation(),t(s.agentId))},children:s.agentName}),r.jsx("span",{className:"agent-progress-status-text",style:{color:l[s.status]},children:f[s.status]}),r.jsx("span",{className:"agent-progress-elapsed",children:g()}),r.jsx("span",{className:"agent-progress-toggle",children:o?"▼":"▶"})]}),!o&&r.jsx("div",{className:"agent-progress-task-preview",children:p}),o&&r.jsxs("div",{className:"agent-progress-expanded",children:[r.jsx("div",{className:"agent-progress-task-full",children:s.taskDescription}),s.output.length>0&&r.jsx("div",{className:"agent-progress-output-section",children:r.jsx(T9,{output:s.output,agentId:s.agentId,maxHeight:200})})]})]})}function T9({output:s,agentId:e,maxHeight:t=200}){const n=x.useRef(null),a=x.useMemo(()=>s.map((o,l)=>({text:o,isStreaming:!1,timestamp:Date.now()-(s.length-l)*100})),[s]),i=Lx({outputs:a,viewMode:"simple"});return x.useEffect(()=>{n.current&&(n.current.scrollTop=n.current.scrollHeight)},[i]),i.length===0?null:r.jsx("div",{ref:n,className:"agent-progress-output",style:{maxHeight:`${t}px`},children:i.map((o,l)=>r.jsx(bf,{output:o,agentId:e},`progress-${l}`))})}const E9={id:"dracula",name:"Dracula",description:"Vampire purple with fangs pink",colors:{bgPrimary:"#282a36",bgSecondary:"#21222c",bgTertiary:"#343746",borderColor:"#44475a",textPrimary:"#f8f8f2",textSecondary:"#bfbfbf",textMuted:"#6272a4",accentBlue:"#8be9fd",accentGreen:"#50fa7b",accentOrange:"#ffb86c",accentRed:"#ff5555",accentPurple:"#bd93f9",accentCyan:"#8be9fd",accentClaude:"#50fa7b",accentClaudeLight:"#69ff94",accentPink:"#ff79c6",accentYellow:"#f1fa8c",msgUserBg:"rgba(189, 147, 249, 0.12)",msgUserBorder:"#bd93f9",msgUserText:"#bd93f9",msgAssistantBg:"rgba(255, 121, 198, 0.12)",msgAssistantBorder:"#ff79c6",msgAssistantText:"#ff79c6",toolUseBg:"rgba(255, 184, 108, 0.08)",toolUseBorder:"#ffb86c",toolUseText:"#ffb86c",toolUseName:"#8be9fd",toolResultBg:"rgba(80, 250, 123, 0.08)",toolResultBorder:"#50fa7b",toolResultText:"#50fa7b",outputLineBg:"rgba(189, 147, 249, 0.04)",contextBarBg:"rgba(189, 147, 249, 0.25)",contextBarFill:"#bd93f9"}},zT={id:"muted",name:"Muted",description:"Foggy dawn through frosted glass",colors:{bgPrimary:"#16181c",bgSecondary:"#1c1f24",bgTertiary:"#24282e",borderColor:"#33393f",textPrimary:"#c8ccd4",textSecondary:"#9099a4",textMuted:"#5c6670",accentBlue:"#7aa8c8",accentGreen:"#8ab898",accentOrange:"#c8a878",accentRed:"#c88888",accentPurple:"#a898b8",accentCyan:"#88b8c0",accentClaude:"#8ab898",accentClaudeLight:"#9ac8a8",accentPink:"#b898a8",accentYellow:"#c8c098",msgUserBg:"rgba(138, 184, 152, 0.06)",msgUserBorder:"rgba(138, 184, 152, 0.3)",msgUserText:"#8ab898",msgAssistantBg:"rgba(168, 152, 184, 0.06)",msgAssistantBorder:"rgba(168, 152, 184, 0.3)",msgAssistantText:"#a898b8",toolUseBg:"rgba(200, 168, 120, 0.05)",toolUseBorder:"rgba(200, 168, 120, 0.3)",toolUseText:"#c8a878",toolUseName:"#88b8c0",toolResultBg:"rgba(136, 184, 192, 0.05)",toolResultBorder:"rgba(136, 184, 192, 0.3)",toolResultText:"#88b8c0",outputLineBg:"rgba(144, 153, 164, 0.03)",contextBarBg:"rgba(168, 152, 184, 0.2)",contextBarFill:"#a898b8"}},_9={id:"muted-red",name:"Rosewood",description:"Aged wine by candlelight",colors:{bgPrimary:"#1a1014",bgSecondary:"#221418",bgTertiary:"#2c1c20",borderColor:"#482830",textPrimary:"#f0e4e8",textSecondary:"#c8b0b8",textMuted:"#8c6878",accentBlue:"#8898c8",accentGreen:"#78a890",accentOrange:"#d8a068",accentRed:"#c85868",accentPurple:"#a878a0",accentCyan:"#88a8b0",accentClaude:"#78a890",accentClaudeLight:"#88b8a0",accentPink:"#d88898",accentYellow:"#d8c088",msgUserBg:"rgba(216, 136, 152, 0.10)",msgUserBorder:"#d88898",msgUserText:"#d88898",msgAssistantBg:"rgba(200, 88, 104, 0.10)",msgAssistantBorder:"#c85868",msgAssistantText:"#c85868",toolUseBg:"rgba(216, 160, 104, 0.08)",toolUseBorder:"#d8a068",toolUseText:"#d8a068",toolUseName:"#d8c088",toolResultBg:"rgba(168, 120, 160, 0.08)",toolResultBorder:"#a878a0",toolResultText:"#a878a0",outputLineBg:"rgba(200, 88, 104, 0.03)",contextBarBg:"rgba(216, 136, 152, 0.25)",contextBarFill:"#d88898"}},D9={id:"nord",name:"Nord",description:"Polar night with aurora",colors:{bgPrimary:"#2e3440",bgSecondary:"#3b4252",bgTertiary:"#434c5e",borderColor:"#4c566a",textPrimary:"#eceff4",textSecondary:"#d8dee9",textMuted:"#7b88a1",accentBlue:"#81a1c1",accentGreen:"#a3be8c",accentOrange:"#d08770",accentRed:"#bf616a",accentPurple:"#b48ead",accentCyan:"#88c0d0",accentClaude:"#a3be8c",accentClaudeLight:"#b3ce9c",accentPink:"#b48ead",accentYellow:"#ebcb8b",msgUserBg:"rgba(136, 192, 208, 0.10)",msgUserBorder:"#88c0d0",msgUserText:"#88c0d0",msgAssistantBg:"rgba(163, 190, 140, 0.10)",msgAssistantBorder:"#a3be8c",msgAssistantText:"#a3be8c",toolUseBg:"rgba(208, 135, 112, 0.08)",toolUseBorder:"#d08770",toolUseText:"#d08770",toolUseName:"#ebcb8b",toolResultBg:"rgba(180, 142, 173, 0.08)",toolResultBorder:"#b48ead",toolResultText:"#b48ead",outputLineBg:"rgba(67, 76, 94, 0.3)",contextBarBg:"rgba(129, 161, 193, 0.25)",contextBarFill:"#81a1c1"}},P9={id:"solarized-dark",name:"Solarized",description:"Precision-engineered contrast",colors:{bgPrimary:"#002b36",bgSecondary:"#073642",bgTertiary:"#094652",borderColor:"#586e75",textPrimary:"#93a1a1",textSecondary:"#839496",textMuted:"#657b83",accentBlue:"#268bd2",accentGreen:"#859900",accentOrange:"#cb4b16",accentRed:"#dc322f",accentPurple:"#6c71c4",accentCyan:"#2aa198",accentClaude:"#859900",accentClaudeLight:"#95a910",accentPink:"#d33682",accentYellow:"#b58900",msgUserBg:"rgba(42, 161, 152, 0.12)",msgUserBorder:"#2aa198",msgUserText:"#2aa198",msgAssistantBg:"rgba(133, 153, 0, 0.12)",msgAssistantBorder:"#859900",msgAssistantText:"#859900",toolUseBg:"rgba(203, 75, 22, 0.10)",toolUseBorder:"#cb4b16",toolUseText:"#cb4b16",toolUseName:"#b58900",toolResultBg:"rgba(108, 113, 196, 0.10)",toolResultBorder:"#6c71c4",toolResultText:"#6c71c4",outputLineBg:"rgba(7, 54, 66, 0.5)",contextBarBg:"rgba(38, 139, 210, 0.25)",contextBarFill:"#268bd2"}},R9={id:"monokai",name:"Monokai",description:"Neon jungle on warm charcoal",colors:{bgPrimary:"#272822",bgSecondary:"#1e1f1a",bgTertiary:"#3e3d32",borderColor:"#49483e",textPrimary:"#f8f8f2",textSecondary:"#cfcfc2",textMuted:"#75715e",accentBlue:"#66d9ef",accentGreen:"#a6e22e",accentOrange:"#fd971f",accentRed:"#f92672",accentPurple:"#ae81ff",accentCyan:"#66d9ef",accentClaude:"#a6e22e",accentClaudeLight:"#b6f23e",accentPink:"#f92672",accentYellow:"#e6db74",msgUserBg:"rgba(249, 38, 114, 0.10)",msgUserBorder:"#f92672",msgUserText:"#f92672",msgAssistantBg:"rgba(166, 226, 46, 0.10)",msgAssistantBorder:"#a6e22e",msgAssistantText:"#a6e22e",toolUseBg:"rgba(253, 151, 31, 0.08)",toolUseBorder:"#fd971f",toolUseText:"#fd971f",toolUseName:"#66d9ef",toolResultBg:"rgba(174, 129, 255, 0.08)",toolResultBorder:"#ae81ff",toolResultText:"#ae81ff",outputLineBg:"rgba(62, 61, 50, 0.3)",contextBarBg:"rgba(249, 38, 114, 0.25)",contextBarFill:"#f92672"}},O9={id:"gruvbox",name:"Gruvbox",description:"Retro coffee shop warmth",colors:{bgPrimary:"#282828",bgSecondary:"#1d2021",bgTertiary:"#3c3836",borderColor:"#504945",textPrimary:"#ebdbb2",textSecondary:"#d5c4a1",textMuted:"#928374",accentBlue:"#83a598",accentGreen:"#b8bb26",accentOrange:"#fe8019",accentRed:"#fb4934",accentPurple:"#d3869b",accentCyan:"#8ec07c",accentClaude:"#b8bb26",accentClaudeLight:"#c8cb36",accentPink:"#d3869b",accentYellow:"#fabd2f",msgUserBg:"rgba(254, 128, 25, 0.10)",msgUserBorder:"#fe8019",msgUserText:"#fe8019",msgAssistantBg:"rgba(142, 192, 124, 0.10)",msgAssistantBorder:"#8ec07c",msgAssistantText:"#8ec07c",toolUseBg:"rgba(250, 189, 47, 0.08)",toolUseBorder:"#fabd2f",toolUseText:"#fabd2f",toolUseName:"#83a598",toolResultBg:"rgba(211, 134, 155, 0.08)",toolResultBorder:"#d3869b",toolResultText:"#d3869b",outputLineBg:"rgba(60, 56, 54, 0.4)",contextBarBg:"rgba(254, 128, 25, 0.25)",contextBarFill:"#fe8019"}},L9={id:"atom",name:"Atom",description:"Deep space exploration",colors:{bgPrimary:"#0c1014",bgSecondary:"#121820",bgTertiary:"#1a222c",borderColor:"#283040",textPrimary:"#d8e0f0",textSecondary:"#9ca8c0",textMuted:"#5a6880",accentBlue:"#5dade2",accentGreen:"#58d68d",accentOrange:"#f0b060",accentRed:"#ec7063",accentPurple:"#af7ac5",accentCyan:"#48c9b0",accentClaude:"#58d68d",accentClaudeLight:"#68e69d",accentPink:"#f1948a",accentYellow:"#f7dc6f",msgUserBg:"rgba(93, 173, 226, 0.10)",msgUserBorder:"#5dade2",msgUserText:"#5dade2",msgAssistantBg:"rgba(88, 214, 141, 0.10)",msgAssistantBorder:"#58d68d",msgAssistantText:"#58d68d",toolUseBg:"rgba(240, 176, 96, 0.08)",toolUseBorder:"#f0b060",toolUseText:"#f0b060",toolUseName:"#48c9b0",toolResultBg:"rgba(175, 122, 197, 0.08)",toolResultBorder:"#af7ac5",toolResultText:"#af7ac5",outputLineBg:"rgba(26, 34, 44, 0.5)",contextBarBg:"rgba(175, 122, 197, 0.25)",contextBarFill:"#af7ac5"}},I9={id:"cyberpunk",name:"Cyberpunk",description:"Neon noir dystopia",colors:{bgPrimary:"#030308",bgSecondary:"#08080f",bgTertiary:"#101018",borderColor:"#181828",textPrimary:"#e8e8ff",textSecondary:"#a0a0c8",textMuted:"#5050a0",accentBlue:"#00f0ff",accentGreen:"#00ff9f",accentOrange:"#ff6600",accentRed:"#ff003c",accentPurple:"#bf00ff",accentCyan:"#00f0ff",accentClaude:"#00ff9f",accentClaudeLight:"#50ffbf",accentPink:"#ff00aa",accentYellow:"#fff000",msgUserBg:"rgba(255, 0, 170, 0.12)",msgUserBorder:"#ff00aa",msgUserText:"#ff00aa",msgAssistantBg:"rgba(0, 255, 159, 0.10)",msgAssistantBorder:"#00ff9f",msgAssistantText:"#00ff9f",toolUseBg:"rgba(191, 0, 255, 0.10)",toolUseBorder:"#bf00ff",toolUseText:"#bf00ff",toolUseName:"#00f0ff",toolResultBg:"rgba(0, 240, 255, 0.08)",toolResultBorder:"#00f0ff",toolResultText:"#00f0ff",outputLineBg:"rgba(191, 0, 255, 0.03)",contextBarBg:"rgba(255, 0, 170, 0.30)",contextBarFill:"#ff00aa"}},B9={id:"synthwave",name:"Synthwave",description:"Sunset over chrome horizon",colors:{bgPrimary:"#241b30",bgSecondary:"#1a1424",bgTertiary:"#2e2540",borderColor:"#4a3860",textPrimary:"#f8e8f8",textSecondary:"#c8a8d0",textMuted:"#7860a0",accentBlue:"#2de2e6",accentGreen:"#0abdc6",accentOrange:"#ff9e64",accentRed:"#ff3864",accentPurple:"#9d4edd",accentCyan:"#2de2e6",accentClaude:"#0abdc6",accentClaudeLight:"#2ad0d8",accentPink:"#f706cf",accentYellow:"#fede5d",msgUserBg:"rgba(247, 6, 207, 0.12)",msgUserBorder:"#f706cf",msgUserText:"#f706cf",msgAssistantBg:"rgba(45, 226, 230, 0.10)",msgAssistantBorder:"#2de2e6",msgAssistantText:"#2de2e6",toolUseBg:"rgba(255, 158, 100, 0.10)",toolUseBorder:"#ff9e64",toolUseText:"#ff9e64",toolUseName:"#fede5d",toolResultBg:"rgba(157, 78, 221, 0.10)",toolResultBorder:"#9d4edd",toolResultText:"#9d4edd",outputLineBg:"rgba(157, 78, 221, 0.05)",contextBarBg:"rgba(247, 6, 207, 0.25)",contextBarFill:"#f706cf"}},F9={id:"abyss",name:"Abyss",description:"Deep black, vivid accents",colors:{bgPrimary:"#080a0c",bgSecondary:"#0c0e12",bgTertiary:"#12161a",borderColor:"#1c2028",textPrimary:"#a8b0b8",textSecondary:"#889098",textMuted:"#505860",accentBlue:"#4da8da",accentGreen:"#50c878",accentOrange:"#e89050",accentRed:"#e85050",accentPurple:"#a070d8",accentCyan:"#50d0d0",accentClaude:"#50c878",accentClaudeLight:"#68e090",accentPink:"#e070a0",accentYellow:"#e8d050",msgUserBg:"#0b0b0b",msgUserBorder:"transparent",msgUserText:"#98a0a8",msgAssistantBg:"#1B1C25",msgAssistantBorder:"transparent",msgAssistantText:"#98a0a8",toolUseBg:"#1B1C25",toolUseBorder:"#e89050",toolUseText:"#98a0a8",toolUseName:"#e89050",toolResultBg:"#1B1C25",toolResultBorder:"#a070d8",toolResultText:"#98a0a8",outputLineBg:"#0a0c10",contextBarBg:"rgba(80, 88, 96, 0.3)",contextBarFill:"#606870"}},z9={id:"catppuccin",name:"Catppuccin",description:"Cozy pastel mocha cafe",colors:{bgPrimary:"#1e1e2e",bgSecondary:"#181825",bgTertiary:"#313244",borderColor:"#45475a",textPrimary:"#cdd6f4",textSecondary:"#bac2de",textMuted:"#6c7086",accentBlue:"#89b4fa",accentGreen:"#a6e3a1",accentOrange:"#fab387",accentRed:"#f38ba8",accentPurple:"#cba6f7",accentCyan:"#94e2d5",accentClaude:"#a6e3a1",accentClaudeLight:"#b6f3b1",accentPink:"#f5c2e7",accentYellow:"#f9e2af",msgUserBg:"rgba(180, 190, 254, 0.10)",msgUserBorder:"#b4befe",msgUserText:"#b4befe",msgAssistantBg:"rgba(148, 226, 213, 0.10)",msgAssistantBorder:"#94e2d5",msgAssistantText:"#94e2d5",toolUseBg:"rgba(250, 179, 135, 0.08)",toolUseBorder:"#fab387",toolUseText:"#fab387",toolUseName:"#f9e2af",toolResultBg:"rgba(203, 166, 247, 0.08)",toolResultBorder:"#cba6f7",toolResultText:"#cba6f7",outputLineBg:"rgba(49, 50, 68, 0.4)",contextBarBg:"rgba(245, 194, 231, 0.25)",contextBarFill:"#f5c2e7"}},$9={id:"github-dark",name:"GitHub Dark",description:"Developer professional minimal",colors:{bgPrimary:"#0d1117",bgSecondary:"#161b22",bgTertiary:"#21262d",borderColor:"#30363d",textPrimary:"#c9d1d9",textSecondary:"#8b949e",textMuted:"#484f58",accentBlue:"#58a6ff",accentGreen:"#3fb950",accentOrange:"#d29922",accentRed:"#f85149",accentPurple:"#a371f7",accentCyan:"#79c0ff",accentClaude:"#3fb950",accentClaudeLight:"#56d364",accentPink:"#f778ba",accentYellow:"#e3b341",msgUserBg:"rgba(88, 166, 255, 0.08)",msgUserBorder:"#58a6ff",msgUserText:"#58a6ff",msgAssistantBg:"rgba(63, 185, 80, 0.08)",msgAssistantBorder:"#3fb950",msgAssistantText:"#3fb950",toolUseBg:"rgba(210, 153, 34, 0.08)",toolUseBorder:"#d29922",toolUseText:"#d29922",toolUseName:"#79c0ff",toolResultBg:"rgba(163, 113, 247, 0.08)",toolResultBorder:"#a371f7",toolResultText:"#a371f7",outputLineBg:"rgba(33, 38, 45, 0.5)",contextBarBg:"rgba(88, 166, 255, 0.25)",contextBarFill:"#58a6ff"}},H9={id:"one-dark",name:"One Dark",description:"Moonlit late night coding",colors:{bgPrimary:"#282c34",bgSecondary:"#21252b",bgTertiary:"#2c323c",borderColor:"#3e4451",textPrimary:"#abb2bf",textSecondary:"#828997",textMuted:"#5c6370",accentBlue:"#61afef",accentGreen:"#98c379",accentOrange:"#d19a66",accentRed:"#e06c75",accentPurple:"#c678dd",accentCyan:"#56b6c2",accentClaude:"#98c379",accentClaudeLight:"#a8d389",accentPink:"#e06c75",accentYellow:"#e5c07b",msgUserBg:"rgba(86, 182, 194, 0.10)",msgUserBorder:"#56b6c2",msgUserText:"#56b6c2",msgAssistantBg:"rgba(152, 195, 121, 0.10)",msgAssistantBorder:"#98c379",msgAssistantText:"#98c379",toolUseBg:"rgba(209, 154, 102, 0.08)",toolUseBorder:"#d19a66",toolUseText:"#d19a66",toolUseName:"#e5c07b",toolResultBg:"rgba(198, 120, 221, 0.08)",toolResultBorder:"#c678dd",toolResultText:"#c678dd",outputLineBg:"rgba(44, 50, 60, 0.5)",contextBarBg:"rgba(97, 175, 239, 0.25)",contextBarFill:"#61afef"}},U9={id:"classic",name:"Classic",description:"Original transparent style",colors:{bgPrimary:"#0d0d14",bgSecondary:"#14141e",bgTertiary:"#1c1c28",borderColor:"#2a2a3a",textPrimary:"#d0d0d8",textSecondary:"#8a8a98",textMuted:"#5a6a8a",accentBlue:"#5a8fd4",accentGreen:"#50fa7b",accentOrange:"#c89a5a",accentRed:"#c85a5a",accentPurple:"#9a80c0",accentCyan:"#8be9fd",accentClaude:"#50fa7b",accentClaudeLight:"#69ff94",accentPink:"#c87a9a",accentYellow:"#c8c87a",msgUserBg:"rgba(139, 233, 253, 0.12)",msgUserBorder:"transparent",msgUserText:"#8be9fd",msgAssistantBg:"rgba(80, 250, 123, 0.12)",msgAssistantBorder:"transparent",msgAssistantText:"#50fa7b",toolUseBg:"rgba(255, 184, 108, 0.05)",toolUseBorder:"transparent",toolUseText:"#8be9fd",toolUseName:"#ffb86c",toolResultBg:"rgba(80, 250, 123, 0.06)",toolResultBorder:"transparent",toolResultText:"#50fa7b",outputLineBg:"transparent",contextBarBg:"rgba(106, 154, 120, 0.25)",contextBarFill:"#6a9a78"}},ma=[U9,F9,E9,zT,_9,D9,P9,R9,O9,L9,I9,B9,z9,$9,H9];function Ku(s){return ma.find(e=>e.id===s)||zT}const G9="classic";function Op(s){const e=document.documentElement,{colors:t}=s;e.style.setProperty("--bg-primary",t.bgPrimary),e.style.setProperty("--bg-secondary",t.bgSecondary),e.style.setProperty("--bg-tertiary",t.bgTertiary),e.style.setProperty("--border-color",t.borderColor),e.style.setProperty("--text-primary",t.textPrimary),e.style.setProperty("--text-secondary",t.textSecondary),e.style.setProperty("--text-muted",t.textMuted),e.style.setProperty("--accent-blue",t.accentBlue),e.style.setProperty("--accent-green",t.accentGreen),e.style.setProperty("--accent-orange",t.accentOrange),e.style.setProperty("--accent-red",t.accentRed),e.style.setProperty("--accent-purple",t.accentPurple),e.style.setProperty("--accent-cyan",t.accentCyan),e.style.setProperty("--accent-claude",t.accentClaude),e.style.setProperty("--accent-claude-light",t.accentClaudeLight),e.style.setProperty("--accent-pink",t.accentPink),e.style.setProperty("--accent-yellow",t.accentYellow),e.style.setProperty("--msg-user-bg",t.msgUserBg),e.style.setProperty("--msg-user-border",t.msgUserBorder),e.style.setProperty("--msg-user-text",t.msgUserText),e.style.setProperty("--msg-assistant-bg",t.msgAssistantBg),e.style.setProperty("--msg-assistant-border",t.msgAssistantBorder),e.style.setProperty("--msg-assistant-text",t.msgAssistantText),e.style.setProperty("--tool-use-bg",t.toolUseBg),e.style.setProperty("--tool-use-border",t.toolUseBorder),e.style.setProperty("--tool-use-text",t.toolUseText),e.style.setProperty("--tool-use-name",t.toolUseName),e.style.setProperty("--tool-result-bg",t.toolResultBg),e.style.setProperty("--tool-result-border",t.toolResultBorder),e.style.setProperty("--tool-result-text",t.toolResultText),e.style.setProperty("--output-line-bg",t.outputLineBg),e.style.setProperty("--context-bar-bg",t.contextBarBg),e.style.setProperty("--context-bar-fill",t.contextBarFill);try{localStorage.setItem("tide-theme",s.id)}catch{}}function Ux(){try{const s=localStorage.getItem("tide-theme");if(s&&ma.some(e=>e.id===s))return s}catch{}return G9}function W9(){const s=Ux(),e=Ku(s);Op(e)}function q9(){const{t:s}=Ue(["terminal"]),[e,t]=x.useState(!1),[n,a]=x.useState(()=>Ux()),[i,o]=x.useState(-1),l=x.useRef(null),c=x.useRef(null),d=ma.findIndex(y=>y.id===n);x.useEffect(()=>{if(!e)return;const y=w=>{l.current&&!l.current.contains(w.target)&&t(!1)};return document.addEventListener("mousedown",y),()=>document.removeEventListener("mousedown",y)},[e]),x.useEffect(()=>{e&&o(d)},[e,d]);const f=y=>{const w=y==="next"?(d+1)%ma.length:(d-1+ma.length)%ma.length,k=ma[w],S=Ku(k.id);Op(S),a(k.id)},p=y=>{e||(y.key==="ArrowUp"||y.key==="ArrowLeft"?(y.preventDefault(),f("prev")):y.key==="ArrowDown"||y.key==="ArrowRight"?(y.preventDefault(),f("next")):(y.key==="Enter"||y.key===" ")&&(y.preventDefault(),t(!0)))};x.useEffect(()=>{if(!e)return;const y=w=>{var k,S;w.key==="Escape"?(t(!1),(k=c.current)==null||k.focus()):w.key==="ArrowDown"?(w.preventDefault(),o(j=>(j+1)%ma.length)):w.key==="ArrowUp"?(w.preventDefault(),o(j=>(j-1+ma.length)%ma.length)):w.key==="Enter"&&i>=0&&(w.preventDefault(),g(ma[i].id),(S=c.current)==null||S.focus())};return document.addEventListener("keydown",y),()=>document.removeEventListener("keydown",y)},[e,i]);const g=y=>{const w=Ku(y);Op(w),a(y),t(!1)},b=Ku(n);return r.jsxs("div",{className:"theme-selector",ref:l,children:[r.jsxs("button",{ref:c,className:"theme-selector-trigger",onClick:()=>t(!e),onKeyDown:p,title:s("terminal:themeSelector.themeTitle",{name:b.name}),children:[r.jsx("span",{className:"theme-selector-icon",children:"🎨"}),r.jsx("span",{className:"theme-selector-name",children:b.name}),r.jsx("span",{className:"theme-selector-arrow",children:e?"▲":"▼"})]}),e&&r.jsxs("div",{className:"theme-selector-dropdown",onMouseDown:y=>y.stopPropagation(),onClick:y=>y.stopPropagation(),children:[r.jsx("div",{className:"theme-selector-header",children:s("terminal:themeSelector.selectTheme")}),r.jsx("div",{className:"theme-selector-list",children:ma.map((y,w)=>r.jsxs("button",{className:`theme-selector-option ${y.id===n?"active":""} ${w===i?"highlighted":""}`,onClick:k=>{k.stopPropagation(),g(y.id)},onMouseDown:k=>k.stopPropagation(),onMouseEnter:()=>o(w),children:[r.jsx("span",{className:"theme-option-preview",style:{background:`linear-gradient(135deg, ${y.colors.bgPrimary} 0%, ${y.colors.bgSecondary} 50%, ${y.colors.accentPurple} 100%)`}}),r.jsxs("span",{className:"theme-option-info",children:[r.jsx("span",{className:"theme-option-name",children:y.name}),r.jsx("span",{className:"theme-option-desc",children:y.description})]}),y.id===n&&r.jsx("span",{className:"theme-option-check",children:"✓"})]},y.id))})]})]})}const e1=1e4,Y9=3e4,V9=12e4;function wb(s){const e=Bx(s);return Fx(e.userMessage).userMessage.trim().replace(/\r\n/g,`
|
|
230
230
|
`)}function Gh(s){return s.trim().replace(/\r\n/g,`
|
|
231
|
-
`)}function K9(s){return s.startsWith("Using tool:")||s.startsWith("Tool input:")||s.startsWith("Tool result:")||s.startsWith("Bash output:")||s.startsWith("Session started:")||s.startsWith("[thinking]")||s.startsWith("Tokens:")||s.startsWith("Cost:")||s.startsWith("Context (estimated from Codex turn usage):")||s.startsWith("🔄 [System]")||s.startsWith("📋 [System]")||s.startsWith("[System]")}function X9({onSaveSnapshot:s}={}){var Qe,ut,on,Cn,Qt;const{t:e}=Ue(["terminal","common"]),t=or(),n=XA(),a=eM(),i=hx(),o=mx(),l=tM(),c=px(),d=fx(),f=XB(),p=!!f,g=x.useMemo(()=>f?{id:f.agentId,name:f.agentName,class:f.agentClass,status:"idle",provider:"claude",position:{x:0,y:0,z:0},cwd:f.cwd,permissionMode:"interactive",tokensUsed:0,contextUsed:0,contextLimit:2e5,taskCount:0,createdAt:f.createdAt,lastActivity:f.createdAt}:null,[f]),b=Array.from(n),w=b.length===1?b[0]:null,S=(ux(w)||null)??(p?g:null),j=w??(p?(f==null?void 0:f.agentId)??null:null),C=!!(S!=null&&S.sessionId)&&!p,{terminalHeight:A,terminalRef:_,handleResizeStart:M}=A6(),$=C6(),E=dx(j),D=p&&f?f.outputs.map(Ve=>((!Ve.text||!Ve.text.trim())&&console.warn("[GuakeOutputPanel] Empty snapshot output:",Ve),{text:Ve.text||"",timestamp:Ve.timestamp,isStreaming:!1,isUserPrompt:!1})):E,P=x.useRef(null),R=x.useRef(null),L=x.useRef(null),[z,B]=x.useState(()=>{const Ve=Ns(dt.VIEW_MODE);return Ve==="simple"||Ve==="chat"||Ve==="advanced"?Ve:Ns(dt.ADVANCED_VIEW)==="true"?"advanced":"simple"}),[F,H]=x.useState(null),[G,K]=x.useState(null),[X,I]=x.useState(null),[ee,se]=x.useState(null),[O,V]=x.useState(!1);Dn("guake-image-modal",F!==null,()=>H(null)),Dn("guake-bash-modal",G!==null,()=>K(null)),Dn("guake-response-modal",ee!==null,()=>se(null)),Dn("guake-context-confirm",X!==null,()=>I(null)),Dn("guake-agent-info",O,()=>V(!1));const[J,Q]=x.useState(!1),[ae,te]=x.useState(()=>xs.isEnabled()),Z=JB(),re=x.useCallback(Ve=>U.setOverviewPanelOpen(Ve),[]),[de,ge]=x.useState(!1),[we,pe]=x.useState(null),Ae=x.useRef(null),Me=x.useRef(null),[Oe,Y]=x.useState(!1),[le,ce]=x.useState(!1),be=a&&S!==null,me=xT({selectedAgentId:j,hasSessionId:C,reconnectCount:o,lastPrompts:i,outputScrollRef:P}),_e=_6({selectedAgentId:j,isOpen:be}),xe=M6({agents:t,selectedAgentId:j,isOpen:be,loadingHistory:me.fetchingHistory,hasModalOpen:!!(F||G||ee||c||d),outputRef:P}),Ke=vT({selectedAgentId:w}),ue=!p&&j?U.getPendingPermissionsForAgent(j):[],ie=(S==null?void 0:S.class)==="boss"||(S==null?void 0:S.isBoss),ye=$B(!p&&ie?j:null),oe=HB(p?null:j),Ee=iM();x.useEffect(()=>{J&&!ae&&(te(!0),xs.setEnabled(!0))},[J,ae]),x.useEffect(()=>{be||V(!1)},[be]),x.useEffect(()=>{const Ve=S==null?void 0:S.status;if(Ae.current==="working"&&Ve==="idle"){Me.current&&clearTimeout(Me.current);const ft=j?i.get(j):void 0;pe(ft!=null&&ft.timestamp?Date.now()-ft.timestamp:null),ge(!0),Me.current=setTimeout(()=>{ge(!1),pe(null),Me.current=null},4e3)}else Ve==="working"&&(Me.current&&(clearTimeout(Me.current),Me.current=null),ge(!1),pe(null));return Ae.current=Ve||null,()=>{Me.current&&clearTimeout(Me.current)}},[S==null?void 0:S.status]);const Te=x.useMemo(()=>{const{history:Ve}=me,et=new Map;for(const vt of Ve)vt.type==="tool_result"&&vt.toolUseId&&et.set(vt.toolUseId,vt.content);return(vt=>vt.map(Nt=>{if(Nt.type==="tool_use"&&Nt.toolName==="Bash"&&Nt.toolUseId){const Wt=et.get(Nt.toolUseId);let Pt;try{Pt=(Nt.toolInput||(Nt.content?JSON.parse(Nt.content):{})).command}catch{}return{...Nt,_bashOutput:Wt,_bashCommand:Pt}}return Nt}))(Ve)},[me.history,z]),Fe=wT({outputs:D,viewMode:z}),Je=x.useMemo(()=>{const Ve=[],et=new Set,ft=new Set;let vt=null,Nt=0;for(const Wt of Te){if(Wt.type==="assistant"){const Vn=Wt.uuid?`uuid:${Wt.uuid}:${Gh(Wt.content)}`:`sig:${Wt.timestamp}:${Gh(Wt.content)}`;if(et.has(Vn))continue;et.add(Vn),Ve.push(Wt);continue}if(Wt.type!=="user"){Ve.push(Wt);continue}const Pt=wb(Wt.content),dn=Wt.uuid?`uuid:${Wt.uuid}:${Pt}`:null;if(dn&&ft.has(dn))continue;const Ht=Wt.timestamp?new Date(Wt.timestamp).getTime():0;vt===Pt&&Math.abs(Ht-Nt)<=e1||(Ve.push(Wt),dn&&ft.add(dn),vt=Pt,Nt=Ht)}return Ve},[Te]),nt=x.useMemo(()=>{const Ve=new Map,et=new Set,ft=new Map;for(const Pt of Je){const dn=Pt.timestamp?new Date(Pt.timestamp).getTime():0;if(Pt.type==="user"){const lt=wb(Pt.content),Ut=Ve.get(lt)??0;dn>Ut&&Ve.set(lt,dn);continue}if(Pt.type!=="assistant")continue;Pt.uuid&&et.add(Pt.uuid);const Ht=Gh(Pt.content),Vn=ft.get(Ht)??0;dn>Vn&&ft.set(Ht,dn)}const vt=[];let Nt=null,Wt=0;for(const Pt of Fe){if(!Pt.isUserPrompt){if(!Pt.isStreaming&&!K9(Pt.text)){if(Pt.uuid&&et.has(Pt.uuid))continue;const lt=Gh(Pt.text),Ut=Pt.timestamp||0,hn=ft.get(lt);if(hn&&Math.abs(Ut-hn)<=V9)continue}vt.push(Pt);continue}const dn=wb(Pt.text),Ht=Pt.timestamp||0,Vn=Ve.get(dn);Vn&&Ht>=Vn&&Ht-Vn<=Y9||Nt===dn&&Math.abs(Ht-Wt)<=e1||(vt.push(Pt),Nt=dn,Wt=Ht)}return vt},[Fe,Je]),pt=Je.length+nt.length,st=D6({totalMessages:pt,isOpen:be,hasModalOpen:!!(F||G||ee||c),scrollContainerRef:P,selectedAgentId:j,inputRef:R,textareaRef:L,useTextarea:Ke.useTextarea});x.useEffect(()=>{if(!(!(G!=null&&G.isLive)||!G.command)){for(const Ve of nt)if(Ve._bashCommand===G.command&&Ve._bashOutput){K({command:G.command,output:Ve._bashOutput,isLive:!1});return}}},[G,nt]);const St=x.useCallback((Ve,et)=>{H({url:Ve,name:et})},[]),Ft=x.useCallback((Ve,et)=>{const ft=gd(Ve,S==null?void 0:S.cwd),vt=ft.line?{...et||{},targetLine:ft.line}:et;U.setFileViewerPath(ft.path,vt,S==null?void 0:S.cwd)},[S==null?void 0:S.cwd]),yt=x.useCallback((Ve,et)=>{K({command:Ve,output:et,isLive:et==="Running..."})},[]),gn=x.useCallback(Ve=>{se(Ve)},[]),[Se,he]=x.useState(!0),Be=x.useRef(!1),ot=x.useRef(!1),Xe=x.useCallback(()=>{ot.current||(Be.current=!0,he(!1))},[]);x.useEffect(()=>{he(!0),Be.current=!1,ot.current=!0;const Ve=setTimeout(()=>{ot.current=!1},3e3);return()=>clearTimeout(Ve)},[j]);const kt=x.useCallback(()=>{if(!P.current||$.keyboardScrollLockRef.current)return;const{scrollTop:Ve,scrollHeight:et,clientHeight:ft}=P.current,vt=et-Ve-ft<150;ot.current||(Be.current=!vt,vt&&he(!0)),me.handleScroll($.keyboardScrollLockRef)},[P,$.keyboardScrollLockRef,me]),sn=E.length>0&&((ut=(Qe=E[E.length-1])==null?void 0:Qe.text)==null?void 0:ut.length)||0;x.useEffect(()=>{$.keyboardScrollLockRef.current||Be.current||requestAnimationFrame(()=>{if(P.current){const{scrollTop:Ve,scrollHeight:et,clientHeight:ft}=P.current;et-Ve-ft<150&&(P.current.scrollTop=et)}})},[E.length,sn,$.keyboardScrollLockRef,P]);const Rt=x.useRef(null);x.useLayoutEffect(()=>{Y(!1);const et=Rt.current!==w;Rt.current=w,et&&U.getState().currentSnapshot&&U.setCurrentSnapshot(null)},[w]);const Ct=x.useRef(!1);x.useEffect(()=>{be&&w&&U.clearUnseenForAgent(w)},[be,w]),x.useEffect(()=>{Ct.current=!0,ce(!0)},[j,o]),x.useEffect(()=>{me.fetchingHistory&&(Ct.current=!0,ce(!0))},[me.fetchingHistory]),x.useEffect(()=>{if(!le||!be||me.fetchingHistory)return;const Ve=P.current;if(!Ve)return;let et=null;const ft=performance.now();let vt=0,Nt=-1;const Wt=()=>{const{scrollTop:dn,scrollHeight:Ht,clientHeight:Vn}=Ve;return Ht-dn-Vn<=2},Pt=()=>{const dn=performance.now(),Ht=Ve.scrollHeight,Vn=Math.abs(Ht-Nt)<=1,lt=Wt();if(Vn&<?vt+=1:vt=0,Nt=Ht,vt>=8){ce(!1),et=null;return}if(dn-ft>8e3){ce(!1),et=null;return}et=requestAnimationFrame(Pt)};return et=requestAnimationFrame(Pt),()=>{et!==null&&cancelAnimationFrame(et)}},[le,be,me.fetchingHistory,me.historyLoadVersion]),x.useEffect(()=>{if(!be||!Ct.current)return;const Ve=setTimeout(()=>{requestAnimationFrame(()=>{Ct.current=!1,Y(!0)})},50);return()=>clearTimeout(Ve)},[me.historyLoadVersion,be,P]),x.useEffect(()=>{const Ve=et=>{if(et.key==="`"&&!et.ctrlKey&&!et.altKey&&S){const ft=et.target;ft.tagName!=="INPUT"&&ft.tagName!=="TEXTAREA"&&(et.preventDefault(),U.toggleTerminal())}};return document.addEventListener("keydown",Ve),()=>document.removeEventListener("keydown",Ve)},[S]),x.useEffect(()=>{const Ve=et=>{et.key==="Escape"&&(c?(et.stopImmediatePropagation(),U.clearFileViewerPath()):d?(et.stopImmediatePropagation(),U.closeContextModal()):ee?(et.stopImmediatePropagation(),se(null)):G?(et.stopImmediatePropagation(),K(null)):F?(et.stopImmediatePropagation(),H(null)):_e.searchMode&&(et.stopImmediatePropagation(),_e.closeSearch()))};return document.addEventListener("keydown",Ve,!0),()=>document.removeEventListener("keydown",Ve,!0)},[F,G,ee,_e,c,d]);const an=x.useRef(be),bn=x.useRef(!1);x.useEffect(()=>{an.current=be},[be]),x.useEffect(()=>{if(window.innerWidth<=768)return;const et=Nt=>{var Ht;if(!(Nt instanceof Element))return!1;const Wt=(Ht=_.current)==null?void 0:Ht.contains(Nt),Pt=Nt.closest(".agent-bar"),dn=!!Nt.closest(".modal-overlay, .modal, .image-modal-overlay, .image-modal, .bash-modal-overlay, .bash-modal, .agent-info-modal-overlay, .agent-info-modal, .agent-response-modal, .pasted-text-modal-overlay, .pasted-text-modal, .file-viewer-overlay, .file-viewer-modal, .context-view-modal, .guake-context-confirm-overlay, .guake-context-confirm-modal");return!!Wt||!!Pt||dn},ft=Nt=>{if(!an.current){bn.current=!1;return}bn.current=!et(Nt.target)},vt=Nt=>{bn.current&&(et(Nt.target)||U.setTerminalOpen(!1),bn.current=!1)};return document.addEventListener("mousedown",ft,!0),document.addEventListener("mouseup",vt,!0),()=>{document.removeEventListener("mousedown",ft,!0),document.removeEventListener("mouseup",vt,!0)}},[]),x.useEffect(()=>{const Ve=()=>{document.hidden&&$.cleanup()};return document.addEventListener("visibilitychange",Ve),()=>document.removeEventListener("visibilitychange",Ve)},[$]);const Ne=typeof window<"u"&&window.innerWidth<=768;return S?j?r.jsxs("div",{ref:_,className:`guake-terminal ${be?"open":"collapsed"} ${J&&be?"with-debug-panel":""} ${Z&&be?"with-overview-panel":""}`,style:{"--terminal-height":`${A}%`},children:[!p&&J&&be&&j&&r.jsx(k9,{agentId:j,onClose:()=>Q(!1)}),!p&&Z&&be&&j&&r.jsx(N9,{activeAgentId:j,onClose:()=>re(!1),onSelectAgent:Ve=>{U.selectAgent(Ve)}}),r.jsxs("div",{className:"guake-content",children:[r.jsx($6,{selectedAgent:S,selectedAgentId:j,sortedAgents:xe.sortedAgents,swipeOffset:xe.swipeOffset,viewMode:z,setViewMode:B,searchMode:_e.searchMode,toggleSearch:_e.toggleSearch,closeSearch:_e.closeSearch,debugPanelOpen:J,setDebugPanelOpen:Q,debuggerEnabled:ae,setDebuggerEnabled:te,overviewPanelOpen:Z,setOverviewPanelOpen:re,agentInfoOpen:O,onToggleAgentInfo:()=>V(!O),outputsLength:Je.length+nt.length,setContextConfirm:I,headerRef:xe.headerRef,onSaveSnapshot:p?void 0:s,isSnapshotView:p}),_e.searchMode&&r.jsx(H6,{searchInputRef:_e.searchInputRef,searchQuery:_e.searchQuery,setSearchQuery:_e.setSearchQuery,handleSearch:_e.handleSearch,closeSearch:_e.closeSearch,searchLoading:_e.searchLoading,searchResultsCount:_e.searchResults.length}),r.jsxs("div",{className:`guake-swipe-container ${xe.swipeAnimationClass}`,style:xe.swipeOffset!==0?{transform:`translateX(${xe.swipeOffset*40}%)`}:void 0,children:[xe.sortedAgents.length>1&&xe.swipeOffset!==0&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:`swipe-indicator left ${xe.swipeOffset>.3?"visible":""}`,children:[r.jsx("span",{className:"indicator-icon",children:"←"}),r.jsx("span",{className:"indicator-name",children:(on=xe.prevAgent)==null?void 0:on.name})]}),r.jsxs("div",{className:`swipe-indicator right ${xe.swipeOffset<-.3?"visible":""}`,children:[r.jsx("span",{className:"indicator-name",children:(Cn=xe.nextAgent)==null?void 0:Cn.name}),r.jsx("span",{className:"indicator-icon",children:"→"})]})]}),xe.sortedAgents.length>1&&xe.sortedAgents.length<=8&&xe.swipeOffset!==0&&r.jsx("div",{className:`swipe-dots ${Math.abs(xe.swipeOffset)>.1?"visible":""}`,children:xe.sortedAgents.map((Ve,et)=>r.jsx("div",{className:`swipe-dot ${et===xe.currentAgentIndex?"active":""}`},Ve.id))}),r.jsx("div",{className:"guake-output",ref:P,onScroll:kt,children:_e.searchMode&&_e.searchResults.length>0?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"guake-search-header",children:e("terminal:header.searchResultsTitle")}),_e.searchResults.map((Ve,et)=>r.jsx(gf,{message:Ve,agentId:j,highlight:_e.searchQuery,onImageClick:St,onFileClick:Ft,onBashClick:yt,onViewMarkdown:gn},`s-${et}`))]}):r.jsxs("div",{className:`guake-history-content ${Oe?"fade-in":""}`,children:[me.loadingHistory&&me.history.length===0&&E.length===0&&r.jsxs("div",{className:"guake-empty loading",children:[e("terminal:empty.loadingConversation"),r.jsxs("span",{className:"loading-dots",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})]}),!me.loadingHistory&&me.history.length===0&&D.length===0&&S.status!=="working"&&r.jsx("div",{className:"guake-empty",children:e("terminal:empty.noOutput")}),me.hasMore&&!_e.searchMode&&r.jsx("div",{className:"guake-load-more",children:me.loadingMore?r.jsx("span",{children:e("terminal:empty.loadingOlder")}):r.jsx("button",{onClick:me.loadMoreHistory,children:e("terminal:empty.loadMore",{count:me.totalCount-me.history.length})})}),r.jsx(w9,{historyMessages:Je,liveOutputs:nt,agentId:j,execTasks:oe,subagents:Ee,viewMode:z,selectedMessageIndex:st.selectedIndex,isMessageSelected:st.isSelected,onImageClick:St,onFileClick:Ft,onBashClick:yt,onViewMarkdown:gn,scrollContainerRef:P,onScrollTopReached:me.loadMoreHistory,isLoadingMore:me.loadingMore,hasMore:me.hasMore,shouldAutoScroll:Se,onUserScroll:Xe,pinToBottom:le,onPinCancel:()=>ce(!1),isLoadingHistory:me.fetchingHistory}),ie&&ye.size>0&&r.jsxs("div",{className:"agent-progress-container",children:[r.jsxs("div",{className:"agent-progress-container-header",children:[r.jsx("span",{className:"progress-crown",children:"👑"}),r.jsx("span",{children:e("terminal:empty.subordinateProgress")}),r.jsx("span",{className:"progress-count",children:e("terminal:empty.activeCount",{count:ye.size})})]}),Array.from(ye.values()).map(Ve=>r.jsx(M9,{progress:Ve,defaultExpanded:Ve.status==="working",onAgentClick:et=>U.selectAgent(et)},Ve.agentId))]})]})})]}),r.jsx(V6,{selectedAgent:S,selectedAgentId:j,isOpen:be,command:Ke.command,setCommand:Ke.setCommand,forceTextarea:Ke.forceTextarea,setForceTextarea:Ke.setForceTextarea,useTextarea:Ke.useTextarea,attachedFiles:Ke.attachedFiles,setAttachedFiles:Ke.setAttachedFiles,removeAttachedFile:Ke.removeAttachedFile,uploadFile:Ke.uploadFile,pastedTexts:Ke.pastedTexts,expandPastedTexts:Ke.expandPastedTexts,incrementPastedCount:Ke.incrementPastedCount,setPastedTexts:Ke.setPastedTexts,resetPastedCount:Ke.resetPastedCount,handleInputFocus:$.handleInputFocus,handleInputBlur:$.handleInputBlur,pendingPermissions:ue,showCompletion:de,completionElapsed:we,onImageClick:St,inputRef:R,textareaRef:L,isSnapshotView:p,onClearHistory:me.clearHistory}),r.jsxs("div",{className:"guake-agent-status-bar",children:[!p&&(S==null?void 0:S.isDetached)&&r.jsx(Dp,{content:r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"tide-tooltip__title",children:["🔄 ",e("terminal:empty.reattachingSessionTitle")]}),r.jsxs("div",{className:"tide-tooltip__text",children:[e("terminal:empty.reattachingSessionDesc"),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("strong",{children:[e("common:labels.status"),":"]})," ",e("terminal:empty.reattachingSessionStatus")]})]}),position:"top",className:"tide-tooltip--detached",children:r.jsxs("span",{className:"guake-detached-badge",title:e("terminal:empty.reattachingBadge"),children:[r.jsx("span",{className:"guake-detached-spinner",children:"🔄"})," ",e("terminal:empty.reattaching")]})}),(S==null?void 0:S.cwd)&&r.jsxs("span",{className:"guake-agent-cwd",children:["📁 ",S.cwd.split("/").filter(Boolean).slice(-2).join("/")||S.cwd]}),!p&&S&&(()=>{const Ve=S.contextStats,et=!!Ve,ft=Ve?Ve.totalTokens:S.contextUsed||0,vt=Ve?Ve.contextWindow:S.contextLimit||2e5,Nt=Ve?Ve.usedPercent:Math.round(ft/vt*100),Wt=Math.round(100-Nt),Pt=Nt>=80?"#ff4a4a":Nt>=60?"#ff9e4a":Nt>=40?"#ffd700":"#4aff9e",dn=(ft/1e3).toFixed(1),Ht=(vt/1e3).toFixed(1);return r.jsxs("span",{className:"guake-agent-context",onClick:()=>U.setContextModalAgentId(j),title:e(et?"terminal:context.clickToViewStats":"terminal:context.clickToFetchStats"),children:[r.jsx("span",{className:"context-icon",children:"📊"}),r.jsxs("span",{className:"context-label",children:[e("terminal:agentInfo.context"),":"]}),r.jsx("span",{className:"context-bar-mini",children:r.jsx("span",{className:"context-bar-mini-fill",style:{width:`${Math.min(100,Nt)}%`,backgroundColor:Pt}})}),r.jsxs("span",{className:"context-tokens",style:{color:Pt},children:[dn,"k/",Ht,"k"]}),r.jsxs("span",{className:"context-free",children:["(",e("terminal:context.percentFree",{percent:Wt}),")"]}),!et&&r.jsx("span",{className:"context-warning",title:e("terminal:context.clickToFetchStats"),children:"⚠️"})]})})(),r.jsx(q9,{})]})]}),be&&r.jsx("div",{className:"guake-resize-handle",onMouseDown:M,title:e("common:rightPanel.dragToResize")}),r.jsxs("div",{className:"guake-handle",onClick:()=>{be&&U.toggleTerminal()},onDoubleClick:()=>{be||U.toggleTerminal()},style:{top:be?`${A}%`:"0"},children:[r.jsx("span",{className:"guake-handle-icon",children:be?"▲":"▼"}),r.jsx("span",{className:"guake-handle-text",children:S.name})]}),F&&r.jsx(ET,{url:F.url,name:F.name,onClose:()=>H(null)}),G&&r.jsx(_T,{state:G,onClose:()=>K(null)}),X&&r.jsx(Z6,{action:X,selectedAgentId:j,subordinateCount:((Qt=S==null?void 0:S.subordinateIds)==null?void 0:Qt.length)||0,onClose:()=>I(null),onClearHistory:me.clearHistory}),r.jsx(Q6,{}),r.jsx(J6,{}),r.jsx(e9,{agent:S,isOpen:O,onClose:()=>V(!1)}),!p&&r.jsx(DT,{agent:S,content:ee,onClose:()=>se(null)})]}):null:Ne&&l==="terminal"&&n.size===0?r.jsx("div",{ref:_,className:"guake-terminal open",style:{"--terminal-height":`${A}%`},children:r.jsx("div",{className:"guake-content",children:r.jsx("div",{className:"guake-output",style:{display:"flex",alignItems:"center",justifyContent:"center",color:"#6272a4"},children:r.jsxs("div",{style:{textAlign:"center"},children:[r.jsx("div",{style:{fontSize:"48px",marginBottom:"16px"},children:"👆"}),r.jsx("div",{style:{fontSize:"16px"},children:e("terminal:empty.tapAgent")}),r.jsx("div",{style:{fontSize:"14px",marginTop:"8px",opacity:.7},children:e("terminal:empty.switchTo3D")})]})})})}):Ne&&l==="terminal"&&n.size>0?r.jsx("div",{ref:_,className:"guake-terminal open",style:{"--terminal-height":`${A}%`},children:r.jsx("div",{className:"guake-content",children:r.jsx("div",{className:"guake-output",style:{display:"flex",alignItems:"center",justifyContent:"center",color:"#6272a4"},children:r.jsxs("div",{className:"guake-empty loading",children:[e("terminal:empty.loadingTerminal"),r.jsxs("span",{className:"loading-dots",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})]})})})}):null}function Z9(s){return s.trim().replace(/^v/i,"")}function t1(s){const t=Z9(s).match(/^(\d+(?:\.\d+)*)(?:-([0-9A-Za-z.-]+))?/);if(!t)return null;const n=t[1].split(".").map(i=>Number.parseInt(i,10));if(n.some(Number.isNaN))return null;const a=t[2]?t[2].split("."):[];return{core:n,prerelease:a}}function Q9(s,e){if(s.length===0&&e.length===0)return 0;if(s.length===0)return 1;if(e.length===0)return-1;const t=Math.max(s.length,e.length);for(let n=0;n<t;n+=1){const a=s[n],i=e[n];if(a===void 0)return-1;if(i===void 0)return 1;const o=/^\d+$/.test(a)?Number.parseInt(a,10):null,l=/^\d+$/.test(i)?Number.parseInt(i,10):null;if(o!==null&&l!==null){if(o>l)return 1;if(o<l)return-1;continue}if(o!==null)return-1;if(l!==null)return 1;const c=a.localeCompare(i);if(c!==0)return c>0?1:-1}return 0}function J9(s,e){const t=t1(s),n=t1(e);if(!t||!n)return null;const a=Math.max(t.core.length,n.core.length);for(let i=0;i<a;i+=1){const o=t.core[i]??0,l=n.core[i]??0;if(o>l)return 1;if(o<l)return-1}return Q9(t.prerelease,n.prerelease)}function eH(s,e){const t=J9(s,e);return t===null?"unknown":t<0?"behind":t>0?"ahead":"equal"}async function tH(s,e={}){const{timeoutMs:t=5e3,fetchImpl:n=fetch}=e;try{const a=new AbortController,i=setTimeout(()=>a.abort(),t),o=Date.now(),l=await n(`https://registry.npmjs.org/${encodeURIComponent(s)}/latest?t=${o}`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(i),!l.ok)return null;const c=await l.json();return typeof c.version=="string"?c.version:null}catch{return null}}async function nH(s,e,t={}){const n=await tH(s,t);return n?{currentVersion:e,latestVersion:n,relation:eH(e,n)}:{currentVersion:e,latestVersion:null,relation:"unknown"}}const sH="tide-commander",kb="0.69.1";function aH(){const[s,e]=x.useState({currentVersion:kb,latestVersion:null,relation:"unknown",isChecking:!1}),t=x.useCallback(async()=>{e(a=>({...a,isChecking:!0}));const n=await nH(sH,kb);e({currentVersion:kb,latestVersion:n.latestVersion,relation:n.relation,isChecking:!1})},[]);return x.useEffect(()=>{t()},[t]),{...s,refresh:t}}function iH({onFocusAgent:s,onSpawnClick:e,onSpawnBossClick:t,onNewBuildingClick:n,onNewAreaClick:a}){const{t:i}=Ue(["common"]),o=En(),l=sl(),c=ti(),d=gx(),[f,p]=x.useState(!1),g=x.useRef(null),b=x.useRef(null),y=x.useRef(null),w=x.useRef(new Map);x.useEffect(()=>{{p(!1);return}},[l.experimental2DView]),x.useEffect(()=>{const re=b.current;if(!re)return;const de=ge=>{re.scrollWidth<=re.clientWidth||(ge.preventDefault(),re.scrollLeft+=ge.deltaY)};return re.addEventListener("wheel",de,{passive:!1}),()=>re.removeEventListener("wheel",de)},[]);const[k,S]=x.useState(null),[j,C]=x.useState(new Map),[A,_]=x.useState(null),[M,$]=x.useState(null),E=x.useRef(0),D=x.useMemo(()=>Array.from(o.agents.values()).filter(re=>!U.isAgentInArchivedArea(re.id)).sort((re,de)=>(re.createdAt||0)-(de.createdAt||0)),[o.agents,o.areas]),{orderedAgents:P,moveAgent:R}=KA(D),L=P,z=x.useMemo(()=>{const re=new Map;for(const de of L)re.set(de.id,U.getAreaForAgent(de.id));return re},[L,o.areas]),B=x.useMemo(()=>{const re=new Map;for(const ge of L){const we=z.get(ge.id)||null,pe=(we==null?void 0:we.id)||null;re.has(pe)||re.set(pe,{area:we,agents:[]}),re.get(pe).agents.push(ge)}const de=Array.from(re.values());return de.sort((ge,we)=>{var pe,Ae;return!ge.area&&we.area?1:ge.area&&!we.area?-1:!ge.area&&!we.area?0:(((pe=ge.area)==null?void 0:pe.name)||"").localeCompare(((Ae=we.area)==null?void 0:Ae.name)||"")}),de},[L,z]);x.useEffect(()=>{const re=new Map(j);let de=!1;for(const ge of L){const we=j.get(ge.id);ge.currentTool?(!we||we.tool!==ge.currentTool)&&(re.set(ge.id,{tool:ge.currentTool,key:Date.now()}),de=!0):we&&setTimeout(()=>{C(pe=>{const Ae=new Map(pe);return Ae.delete(ge.id),Ae})},1500)}de&&C(re)},[L.map(re=>re.currentTool).join(",")]),x.useEffect(()=>{const re=o.lastSelectedAgentId;if(!re)return;const de=w.current.get(re),ge=b.current;de&&ge&&requestAnimationFrame(()=>{const we=de.getBoundingClientRect(),pe=ge.getBoundingClientRect(),Me=we.left-pe.left+ge.scrollLeft+we.width/2,Oe=ge.clientWidth;ge.scrollTo({left:Me-Oe/2,behavior:"smooth"})})},[o.lastSelectedAgentId]);const F=(re,de)=>{U.setLastSelectionViaDirectClick(!0),de.shiftKey?U.addToSelection(re.id):U.selectAgent(re.id),(window.innerWidth<=768||o.terminalOpen)&&U.setTerminalOpen(!0)},H=re=>{s==null||s(re.id),U.setTerminalOpen(!0)},G=x.useCallback((re,de)=>{_(de),re.dataTransfer.effectAllowed="move",re.dataTransfer.setData("text/plain",de.id),requestAnimationFrame(()=>{re.target.classList.add("dragging")})},[]),K=x.useCallback(re=>{_(null),$(null),E.current=0,re.target.classList.remove("dragging")},[]),X=x.useCallback((re,de)=>{if(re.preventDefault(),A){const ge=z.get(A.id),we=L[de],pe=we?z.get(we.id):null,Ae=(ge==null?void 0:ge.id)??null,Me=(pe==null?void 0:pe.id)??null;re.dataTransfer.dropEffect=Ae===Me?"move":"none"}else re.dataTransfer.dropEffect="move"},[A,L,z]),I=x.useCallback((re,de)=>{if(re.preventDefault(),E.current++,A){const ge=z.get(A.id),we=L[de],pe=we?z.get(we.id):null,Ae=(ge==null?void 0:ge.id)??null,Me=(pe==null?void 0:pe.id)??null;$(Ae===Me?de:null)}else $(de)},[A,L,z]),ee=x.useCallback(re=>{E.current--,E.current===0&&$(null)},[]),se=x.useCallback((re,de)=>{if(re.preventDefault(),!A)return;const ge=L.findIndex(we=>we.id===A.id);if(ge!==-1&&ge!==de){const we=z.get(A.id),pe=L[de],Ae=pe?z.get(pe.id):null,Me=(we==null?void 0:we.id)??null,Oe=(Ae==null?void 0:Ae.id)??null;Me===Oe&&R(ge,de)}_(null),$(null),E.current=0},[A,L,R,z]),O=re=>{const de=`common:status.${re}`;return i(de,{defaultValue:i("common:status.unknown")})},{currentVersion:V,latestVersion:J,relation:Q,isChecking:ae}=aH(),te=V;let Z=0;return r.jsxs("div",{className:"agent-bar",ref:g,children:[r.jsxs("div",{className:"agent-bar-scroll",ref:b,children:[r.jsxs("div",{className:"agent-bar-version",title:J?`Tide Commander v${te} (npm: v${J})`:`Tide Commander v${te}`,children:[r.jsxs("span",{children:["v",te]}),Q==="behind"&&J?r.jsxs("span",{className:"agent-bar-version-badge agent-bar-version-badge-behind",title:`Behind npm latest v${J}`,children:["npm v",J]}):Q==="ahead"&&J?r.jsxs("span",{className:"agent-bar-version-badge agent-bar-version-badge-ahead",title:`Ahead of npm latest v${J}`,children:["npm v",J]}):null,Q==="behind"?r.jsx("a",{href:"https://github.com/deivid11/tide-commander/releases",target:"_blank",rel:"noopener noreferrer",className:"agent-bar-version-status agent-bar-version-status-behind",title:i("common:agentBar.behindNpmTooltip",{defaultValue:"Current version is behind npm latest"}),children:i("common:agentBar.behindNpm",{defaultValue:"(behind npm)"})}):Q==="ahead"?r.jsx("span",{className:"agent-bar-version-status agent-bar-version-status-ahead",title:i("common:agentBar.aheadNpmTooltip",{defaultValue:"Current version is newer than npm latest"}),children:i("common:agentBar.aheadNpm",{defaultValue:"(ahead of npm)"})}):Q==="equal"?r.jsx("a",{href:"https://github.com/deivid11/tide-commander/releases",target:"_blank",rel:"noopener noreferrer",className:"agent-bar-version-status",children:i("common:agentBar.updated")}):ae?r.jsx("span",{className:"agent-bar-version-status",children:i("common:agentBar.checkingNpm",{defaultValue:"(checking npm)"})}):r.jsx("span",{className:"agent-bar-version-status",children:i("common:agentBar.unknownNpm",{defaultValue:"(npm unknown)"})}),f&&r.jsx("button",{className:"agent-bar-hmr-refresh",onClick:qA,title:"Refresh 3D Scene (HMR changes pending)",children:"↻"})]}),r.jsxs("div",{className:"agent-bar-list",ref:y,children:[r.jsxs("button",{className:"agent-bar-spawn-btn",onClick:e,title:i("common:agentBar.spawnNewAgent"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"+"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newAgent")})]}),r.jsxs("button",{className:"agent-bar-spawn-btn agent-bar-boss-btn",onClick:t,title:i("common:agentBar.spawnBoss"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"👑"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newBoss")})]}),r.jsxs("button",{className:"agent-bar-spawn-btn agent-bar-building-btn",onClick:n,title:i("common:agentBar.addNewBuilding"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"🏢"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newBuilding")})]}),r.jsxs("button",{className:"agent-bar-spawn-btn agent-bar-area-btn",onClick:a,title:i("common:agentBar.drawNewArea"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"▢"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newArea")})]}),B.map(re=>{var we,pe,Ae,Me,Oe;const de=re.agents,ge=!re.area;return r.jsxs("div",{className:`agent-bar-group ${ge?"unassigned":""}`,style:{borderColor:((we=re.area)==null?void 0:we.color)||void 0,background:re.area?`${re.area.color}15`:void 0},children:[r.jsx("div",{className:"agent-bar-area-label",children:r.jsx("span",{className:"agent-bar-area-name",style:{color:((pe=re.area)==null?void 0:pe.color)||"#888"},children:((Ae=re.area)==null?void 0:Ae.name)||i("common:agentBar.unassigned")})}),((Me=re.area)==null?void 0:Me.directories)&&re.area.directories.length>0&&r.jsx("div",{className:"agent-bar-folders",children:re.area.directories.map((Y,le)=>r.jsxs("div",{className:"agent-bar-folder-item",onClick:ce=>{ce.stopPropagation(),U.openFileExplorer(Y)},children:[r.jsx("span",{className:"agent-bar-folder-icon",children:"📁"}),r.jsxs("div",{className:"agent-bar-folder-tooltip",children:[r.jsx("div",{className:"agent-bar-folder-tooltip-path",children:Y}),r.jsx("div",{className:"agent-bar-folder-tooltip-hint",children:i("common:agentBar.clickToOpen")})]})]},le))}),de.map(Y=>{const le=Z++,ce=L.findIndex(ie=>ie.id===Y.id),be=o.selectedAgentIds.has(Y.id),me=Qr(Y.class,c),_e=o.lastPrompts.get(Y.id),xe=j.get(Y.id);xe&&(ss[xe.tool]||ss.default),_e!=null&&_e.text&&(_e.text.length>30?_e.text.substring(0,30)+"":_e.text);const Ke=(A==null?void 0:A.id)===Y.id,ue=M===ce;return r.jsxs("div",{ref:ie=>{ie?w.current.set(Y.id,ie):w.current.delete(Y.id)},className:`agent-bar-item ${be?"selected":""} ${Y.status} ${Y.isBoss?"is-boss":""} ${Ke?"dragging":""} ${ue?"drag-over":""}`,draggable:!0,onDragStart:ie=>G(ie,Y),onDragEnd:K,onDragOver:ie=>X(ie,ce),onDragEnter:ie=>I(ie,ce),onDragLeave:ee,onDrop:ie=>se(ie,ce),onClick:ie=>F(Y,ie),onDoubleClick:()=>H(Y),onMouseEnter:()=>S(Y),onMouseLeave:()=>S(null),title:`${Y.name} (${le+1}) - Drag to reorder within group`,children:[r.jsxs("div",{className:"agent-bar-avatar",children:[r.jsx("span",{className:"agent-bar-icon",children:me.icon}),r.jsx("span",{className:"agent-bar-status",style:{backgroundColor:ey(Y.status)}}),d.has(Y.id)&&r.jsx("span",{className:"agent-bar-notification-badge",title:"New output available - click to view"}),Y.status==="idle"&&Y.lastActivity>0&&r.jsx("span",{className:"agent-bar-idle-clock",style:{color:ef(Y.lastActivity)},title:tf(Y.lastActivity),children:"⏱"})]}),r.jsxs("span",{className:"agent-bar-hotkey",title:`Ctrl+${le+1}`,children:["^",le+1]})]},Y.id)})]},((Oe=re.area)==null?void 0:Oe.id)||"unassigned")})]})]}),Array.from(j.entries()).map(([re,de])=>{const ge=w.current.get(re);if(!ge)return null;const we=ge.getBoundingClientRect(),pe=ss[de.tool]||ss.default;return r.jsxs("div",{className:"agent-bar-tool-bubble",title:de.tool,style:{position:"fixed",left:we.left+we.width/2,bottom:window.innerHeight-we.top+8},children:[r.jsx("span",{className:"agent-bar-tool-icon",children:pe}),r.jsx("span",{className:"agent-bar-tool-name",children:de.tool})]},`tool-${re}-${de.key}`)}),k&&(()=>{const re=U.getAreaForAgent(k.id),de=o.lastPrompts.get(k.id),ge=Qr(k.class,c),we=U.getAgentSupervisorHistory(k.id),pe=we.length>0?we[we.length-1]:void 0,Ae=Date.now()-(k.createdAt||Date.now()),Me=Math.floor(Ae/6e4),Oe=Math.floor(Me/60),Y=Oe>0?`${Oe}h ${Me%60}m`:`${Me}m`,le=xe=>xe>=1e6?`${(xe/1e6).toFixed(1)}M`:xe>=1e3?`${(xe/1e3).toFixed(1)}K`:xe.toString(),ce=k.contextLimit>0?Math.round(k.contextUsed/k.contextLimit*100):0,be=xe=>{switch(xe){case"on_track":return"#4aff9e";case"completed":return"#4a9eff";case"stalled":return"#ff9e4a";case"blocked":return"#ff4a4a";case"idle":return"#888888";default:return"#888888"}},me=w.current.get(k.id),_e={};if(me){const xe=me.getBoundingClientRect();_e.position="fixed",_e.left=xe.left+xe.width/2,_e.bottom=window.innerHeight-xe.top+12}return r.jsxs("div",{className:"agent-bar-tooltip",style:_e,children:[r.jsxs("div",{className:"agent-bar-tooltip-header",children:[r.jsx("span",{className:"agent-bar-tooltip-icon",children:ge.icon}),r.jsxs("span",{className:"agent-bar-tooltip-name",children:[r.jsx("img",{src:k.provider==="codex"?"/assets/codex.png":"/assets/claude.png",alt:k.provider,className:"agent-bar-provider-icon",title:k.provider==="codex"?"Codex Agent":"Claude Agent"}),k.name]}),r.jsx("span",{className:"agent-bar-tooltip-status",style:{color:ey(k.status)},children:O(k.status)})]}),r.jsxs("div",{className:"agent-bar-tooltip-info",children:[r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.class"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[k.class," — ",ge.description]})]}),re&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.area"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-area",style:{color:re.color},children:re.name})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.directory"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-path",children:k.cwd})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.uptime"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",children:Y})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.tokens"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[le(k.tokensUsed)," ",i("common:agentPopup.used")]})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.context"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",style:{color:ce>80?"#ff4a4a":ce>60?"#ff9e4a":void 0},children:[le(k.contextUsed)," / ",le(k.contextLimit)," (",ce,"%)"]})]}),k.currentTool&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.tool"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-tool",children:[ss[k.currentTool]||ss.default," ",k.currentTool]})]}),k.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.task"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[k.currentTask.substring(0,150),k.currentTask.length>150?"...":""]})]}),k.lastAssignedTask&&!k.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.assignedTask"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[k.lastAssignedTask.substring(0,200),k.lastAssignedTask.length>200?"...":""]})]}),de&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.lastQuery"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[de.text.substring(0,300),de.text.length>300?"...":""]})]}),pe&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"agent-bar-tooltip-divider"}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.supervisor"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",style:{color:be(pe.analysis.progress)},children:pe.analysis.progress.replace("_"," ")})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.status"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:pe.analysis.statusDescription})]}),pe.analysis.recentWorkSummary&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.summary"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:[pe.analysis.recentWorkSummary.substring(0,300),pe.analysis.recentWorkSummary.length>300?"...":""]})]}),pe.analysis.concerns&&pe.analysis.concerns.length>0&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.concerns"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-concerns",children:pe.analysis.concerns.join("; ")})]})]})]})]})})()]})}function rH({activeTool:s,onExit:e}){const{t}=Ue(["notifications","terminal"]);if(!s||s==="select")return null;const n=t(s==="rectangle"?"notifications:drawing.rectangleTool":"notifications:drawing.circleTool"),a=s==="rectangle"?"▭":"○";return r.jsxs("div",{className:"drawing-mode-indicator",children:[r.jsxs("div",{className:"drawing-mode-content",children:[r.jsx("span",{className:"drawing-mode-icon",children:a}),r.jsxs("div",{className:"drawing-mode-text",children:[r.jsxs("span",{className:"drawing-mode-title",children:[t("terminal:drawingMode.drawingArea"),": ",n]}),r.jsxs("span",{className:"drawing-mode-hint",children:[t("terminal:drawingMode.clickAndDrag")," • ",t("terminal:drawingMode.pressEscape")]})]})]}),r.jsx("button",{className:"drawing-mode-exit",onClick:e,title:t("terminal:drawingMode.exitDrawingMode"),children:"✕"})]})}const oH={idle:"common:status.idle",working:"common:status.working",waiting:"common:status.waiting",error:"common:status.error",offline:"common:status.offline"},Sb=s=>s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toString(),lH=s=>{switch(s){case"on_track":return"#4aff9e";case"completed":return"#4a9eff";case"stalled":return"#ff9e4a";case"blocked":return"#ff4a4a";case"idle":return"#888888";default:return"#888888"}},cH=x.memo(function({agent:e,screenPos:t,onClose:n}){const{t:a}=Ue(["common"]),i=ti(),o=U.getAreaForAgent(e.id),l=U.getState().lastPrompts.get(e.id),c=Qr(e.class,i),d=U.getAgentSupervisorHistory(e.id),f=d.length>0?d[d.length-1]:void 0,p=Date.now()-(e.createdAt||Date.now()),g=Math.floor(p/6e4),b=Math.floor(g/60),y=b>0?`${b}h ${g%60}m`:`${g}m`,w=e.contextLimit>0?Math.round(e.contextUsed/e.contextLimit*100):0,k=x.useMemo(()=>{let C=t.x-150,A=t.y-320-10;return typeof window<"u"&&(C<10?C=10:C+300>window.innerWidth-10&&(C=window.innerWidth-300-10),A<10&&(A=t.y+10)),{position:"fixed",left:C,top:A,zIndex:1e4,maxWidth:300,maxHeight:320,fontSize:"0.85em"}},[t.x,t.y]);return r.jsxs("div",{className:"agent-hover-popup",style:k,onMouseLeave:n,children:[r.jsxs("div",{className:"agent-bar-tooltip-header",children:[r.jsx("span",{className:"agent-bar-tooltip-icon",children:c.icon}),r.jsx("span",{className:"agent-bar-tooltip-name",children:e.name}),r.jsx("span",{className:"agent-bar-tooltip-status",style:{color:ey(e.status)},children:a(oH[e.status]||"common:status.unknown")})]}),r.jsxs("div",{className:"agent-bar-tooltip-info",children:[r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.class"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[e.class," — ",c.description]})]}),o&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.area"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-area",style:{color:o.color},children:o.name})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.directory"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-path",children:e.cwd})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.uptime"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",children:y})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.tokens"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[Sb(e.tokensUsed)," ",a("common:agentPopup.used")]})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.context"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",style:{color:w>80?"#ff4a4a":w>60?"#ff9e4a":void 0},children:[Sb(e.contextUsed)," / ",Sb(e.contextLimit)," (",w,"%)"]})]}),e.currentTool&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.tool"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-tool",children:[ss[e.currentTool]||ss.default," ",e.currentTool]})]}),e.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.task"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[e.currentTask.substring(0,150),e.currentTask.length>150?"...":""]})]}),e.lastAssignedTask&&!e.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.assignedTask"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[e.lastAssignedTask.substring(0,200),e.lastAssignedTask.length>200?"...":""]})]}),l&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.lastQuery"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[l.text.substring(0,300),l.text.length>300?"...":""]})]}),f&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"agent-bar-tooltip-divider"}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.supervisor"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",style:{color:lH(f.analysis.progress)},children:f.analysis.progress.replace("_"," ")})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.status"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:f.analysis.statusDescription})]}),f.analysis.recentWorkSummary&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.summary"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:[f.analysis.recentWorkSummary.substring(0,300),f.analysis.recentWorkSummary.length>300?"...":""]})]}),f.analysis.concerns&&f.analysis.concerns.length>0&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.concerns"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-concerns",children:f.analysis.concerns.join("; ")})]})]})]})]})});function n1(s){if(s===0)return"0 B";const e=1024,t=["B","KB","MB","GB"],n=Math.floor(Math.log(s)/Math.log(e));return parseFloat((s/Math.pow(e,n)).toFixed(1))+" "+t[n]}function s1(s){const t=Date.now()-s,n=Math.floor(t/(1e3*60*60)),a=Math.floor(t%(1e3*60*60)/(1e3*60));return n>0?`${n}h ${a}m`:`${a}m`}const a1={30:"#1a1a1a",31:"#e74c3c",32:"#2ecc71",33:"#f39c12",34:"#3498db",35:"#9b59b6",36:"#00bcd4",37:"#ecf0f1",90:"#7f8c8d",91:"#ff6b6b",92:"#4ade80",93:"#fbbf24",94:"#60a5fa",95:"#c084fc",96:"#22d3ee",97:"#ffffff"};function uH(s){const e=[],t=/\x1B\[([0-9;]*)m/g;let n=0,a=null,i;for(;(i=t.exec(s))!==null;){if(i.index>n){const l=s.slice(n,i.index);a?e.push(r.jsx("span",{style:{color:a},children:l},e.length)):e.push(l)}const o=i[1].split(";").map(Number);for(const l of o)l===0||l===39?a=null:a1[l]&&(a=a1[l]);n=t.lastIndex}if(n<s.length){const o=s.slice(n);a?e.push(r.jsx("span",{style:{color:a},children:o},e.length)):e.push(o)}return e.length>0?e:[s]}const dH=x.memo(function({building:e,screenPos:t,onClose:n,onOpenSettings:a,onOpenLogsModal:i,onOpenUrlInModal:o}){var H,G,K,X,I,ee,se,O,V,J,Q,ae,te,Z,re,de,ge,we,pe,Ae;const{t:l}=Ue(["terminal","common"]),[c,d]=x.useState(!1),[f,p]=x.useState(null),[g,b]=x.useState(!1),y=x.useRef(null),w=x.useRef(f);w.current=f;const{buildingLogs:k}=En(),S=U.getBuildingLogs(e.id),j=(H=e.pm2)==null?void 0:H.enabled,C=(G=e.docker)==null?void 0:G.enabled,A=x.useRef(null),_=x.useRef(null),M=x.useCallback(Me=>{Me.preventDefault();const Oe=w.current?w.current.x:0,Y=w.current?w.current.y:0;y.current={mouseX:Me.clientX,mouseY:Me.clientY,popupX:Oe,popupY:Y},b(!0),A.current=le=>{if(!y.current)return;const ce=le.clientX-y.current.mouseX,be=le.clientY-y.current.mouseY;p({x:y.current.popupX+ce,y:y.current.popupY+be})},_.current=()=>{b(!1),y.current=null,A.current&&document.removeEventListener("mousemove",A.current),_.current&&document.removeEventListener("mouseup",_.current)},document.addEventListener("mousemove",A.current),document.addEventListener("mouseup",_.current)},[]);x.useEffect(()=>()=>{A.current&&document.removeEventListener("mousemove",A.current),_.current&&document.removeEventListener("mouseup",_.current)},[]);const $=Me=>{if(Me==="logs"){if((j||C)&&i){i();return}U.sendBuildingCommand(e.id,Me),d(!0)}else U.sendBuildingCommand(e.id,Me)},E=(Me,Oe)=>{if(Me){const Y=`http://localhost:${Me}`;Oe&&o?o(Y):window.open(Y,"_blank")}},D=((K=e.pm2Status)==null?void 0:K.ports)||[],P=((I=(X=e.dockerStatus)==null?void 0:X.ports)==null?void 0:I.map(Me=>Me.host))||[],R=j?D:C?P:[],L=j?!!((ee=e.pm2)!=null&&ee.script):C?!!((se=e.docker)!=null&&se.image)||((O=e.docker)==null?void 0:O.mode)==="compose"||((V=e.docker)==null?void 0:V.mode)==="existing":!!((J=e.commands)!=null&&J.start),z=j?!!((Q=e.pm2)!=null&&Q.script):C?!0:!!((ae=e.commands)!=null&&ae.stop),B=j?!!((te=e.pm2)!=null&&te.script):C?!0:!!((Z=e.commands)!=null&&Z.restart),F=x.useMemo(()=>{const Oe=c?400:250;let Y=t.x+20,le=t.y-80;return typeof window<"u"&&!f&&(t.x+20+280>window.innerWidth&&(Y=t.x-280-20),t.y-80<0?le=10:t.y-80+Oe>window.innerHeight&&(le=window.innerHeight-Oe-10)),{position:"fixed",left:Y+((f==null?void 0:f.x)||0),top:le+((f==null?void 0:f.y)||0),zIndex:1e3,cursor:g?"grabbing":void 0}},[t.x,t.y,c,f,g]);return r.jsxs("div",{className:"building-action-popup",style:F,onClick:Me=>Me.stopPropagation(),children:[r.jsxs("div",{className:`building-popup-header ${g?"dragging":""}`,onMouseDown:M,children:[r.jsx("span",{className:"building-popup-name",children:e.name}),R.length>0&&r.jsx("span",{className:"building-popup-ports",children:R.map(Me=>r.jsxs("a",{href:`http://localhost:${Me}`,className:"building-popup-port-link",onClick:Oe=>{Oe.preventDefault(),Oe.stopPropagation(),E(Me,Oe.altKey)},onMouseDown:Oe=>Oe.stopPropagation(),title:`Open http://localhost:${Me} (Alt+Click for modal)`,children:[":",Me]},Me))}),r.jsx("span",{className:"building-popup-status",style:{backgroundColor:Zr[e.status]},children:e.status}),r.jsx("button",{className:"building-popup-close",onClick:n,children:"x"})]}),j&&e.pm2Status&&r.jsxs("div",{className:"building-popup-metrics",children:[r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"PID"}),r.jsx("span",{className:"value",children:e.pm2Status.pid||"-"})]}),r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"CPU"}),r.jsxs("span",{className:"value",children:[((re=e.pm2Status.cpu)==null?void 0:re.toFixed(1))||"0","%"]})]}),r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"MEM"}),r.jsx("span",{className:"value",children:n1(e.pm2Status.memory||0)})]}),e.pm2Status.restarts!==void 0&&e.pm2Status.restarts>0&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"RST"}),r.jsx("span",{className:"value",children:e.pm2Status.restarts})]}),e.pm2Status.uptime&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"UP"}),r.jsx("span",{className:"value",children:s1(e.pm2Status.uptime)})]})]}),C&&e.dockerStatus&&r.jsxs("div",{className:"building-popup-metrics",children:[r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"ID"}),r.jsx("span",{className:"value",children:e.dockerStatus.containerId||"-"})]}),e.dockerStatus.cpu!==void 0&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"CPU"}),r.jsxs("span",{className:"value",children:[e.dockerStatus.cpu.toFixed(1),"%"]})]}),e.dockerStatus.memory!==void 0&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"MEM"}),r.jsx("span",{className:"value",children:n1(e.dockerStatus.memory)})]}),e.dockerStatus.health&&e.dockerStatus.health!=="none"&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"HEALTH"}),r.jsx("span",{className:"value",style:{color:e.dockerStatus.health==="healthy"?"#4ade80":e.dockerStatus.health==="unhealthy"?"#f87171":"#fbbf24"},children:e.dockerStatus.health==="healthy"?"✓":e.dockerStatus.health==="unhealthy"?"✗":"..."})]}),e.dockerStatus.startedAt&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"UP"}),r.jsx("span",{className:"value",children:s1(e.dockerStatus.startedAt)})]})]}),C&&((de=e.dockerStatus)==null?void 0:de.services)&&e.dockerStatus.services.length>0&&r.jsx("div",{className:"building-popup-services",children:e.dockerStatus.services.map((Me,Oe)=>r.jsxs("span",{className:"service-item",title:`${Me.name}: ${Me.status}`,children:[r.jsx("span",{className:"service-indicator",style:{backgroundColor:Me.status==="running"?"#4ade80":"#f87171"}}),r.jsx("span",{className:"service-name",children:Me.name})]},Oe))}),(e.lastError||j&&((ge=e.pm2Status)==null?void 0:ge.status)==="errored"||C&&((we=e.dockerStatus)==null?void 0:we.status)==="dead")&&r.jsxs("div",{className:"building-popup-error",children:[e.lastError||l("terminal:building.processFailedToStart"),j&&((pe=e.pm2Status)==null?void 0:pe.restarts)&&e.pm2Status.restarts>5&&r.jsxs("span",{className:"error-hint",children:[" - ",l("terminal:building.checkLogsOrConfig")]}),C&&((Ae=e.dockerStatus)==null?void 0:Ae.health)==="unhealthy"&&r.jsxs("span",{className:"error-hint",children:[" - ",l("terminal:building.healthCheckFailing")]})]}),r.jsxs("div",{className:"building-popup-actions",children:[r.jsxs("button",{className:"action-btn start",onClick:()=>$("start"),disabled:!L||e.status==="running"||e.status==="starting",title:l(L?"terminal:buildingAction.start":"terminal:buildingAction.noStartCommand"),children:[r.jsx("span",{className:"icon",children:"▶"}),l("terminal:buildingAction.start")]}),r.jsxs("button",{className:"action-btn stop",onClick:()=>$("stop"),disabled:!z||e.status==="stopped"||e.status==="stopping",title:l(z?"terminal:buildingAction.stop":"terminal:buildingAction.noStopCommand"),children:[r.jsx("span",{className:"icon",children:"■"}),l("terminal:buildingAction.stop")]}),r.jsxs("button",{className:"action-btn restart",onClick:()=>$("restart"),disabled:!B,title:l(B?"terminal:buildingAction.restart":"terminal:buildingAction.noRestartCommand"),children:[r.jsx("span",{className:"icon",children:"↺"}),l("terminal:buildingAction.restart")]}),r.jsxs("button",{className:"action-btn logs",onClick:()=>$("logs"),title:l("terminal:buildingAction.viewLogs"),children:[r.jsx("span",{className:"icon",children:"📄"}),l("terminal:logs.title")]}),R.length===1&&r.jsxs("button",{className:"action-btn open-url",onClick:Me=>E(R[0],Me.altKey),title:`Open http://localhost:${R[0]} (Alt+Click for modal)`,children:[r.jsx("span",{className:"icon",children:"🔗"}),l("terminal:buildingAction.openInBrowser")]}),R.length>1&&r.jsxs("div",{className:"action-btn-group",children:[r.jsxs("span",{className:"action-btn-label",children:[l("terminal:buildingAction.openInBrowser"),":"]}),R.map(Me=>r.jsxs("button",{className:"action-btn open-url port-btn",onClick:Oe=>E(Me,Oe.altKey),title:`Open http://localhost:${Me} (Alt+Click for modal)`,children:[":",Me]},Me))]})]}),c&&S.length>0&&r.jsxs("div",{className:"building-popup-logs",children:[r.jsxs("div",{className:"logs-header",children:[r.jsx("span",{children:l("terminal:logs.title")}),r.jsx("button",{onClick:()=>U.clearBuildingLogs(e.id),children:l("terminal:logs.clear")})]}),r.jsx("div",{className:"logs-content",children:S.slice(-50).map((Me,Oe)=>r.jsx("pre",{children:uH(Me)},Oe))})]}),r.jsx("button",{className:"building-popup-settings",onClick:a,children:l("terminal:buildingAction.fullSettings")})]})});function hH(s){if(s===0)return"0 B";const e=1024,t=["B","KB","MB","GB"],n=Math.floor(Math.log(s)/Math.log(e));return parseFloat((s/Math.pow(e,n)).toFixed(1))+" "+t[n]}function pH(s){const t=Date.now()-s,n=Math.floor(t/(1e3*60*60)),a=Math.floor(t%(1e3*60*60)/(1e3*60));return n>0?`${n}h ${a}m`:`${a}m`}const fH=x.memo(function({building:e,screenPos:t,onClose:n,onOpenSettings:a,onOpenLogsModal:i,onOpenUrlInModal:o}){const{t:l}=Ue(["terminal","common"]),[c,d]=x.useState(null),[f,p]=x.useState(!1),g=x.useRef(null),b=x.useRef(c);b.current=c;const{buildings:y}=En(),k=(e.subordinateBuildingIds||[]).map(D=>y.get(D)).filter(D=>D!==void 0),S=x.useRef(null),j=x.useRef(null),C=x.useCallback(D=>{D.preventDefault();const P=b.current?b.current.x:0,R=b.current?b.current.y:0;g.current={mouseX:D.clientX,mouseY:D.clientY,popupX:P,popupY:R},p(!0),S.current=L=>{if(!g.current)return;const z=L.clientX-g.current.mouseX,B=L.clientY-g.current.mouseY;d({x:g.current.popupX+z,y:g.current.popupY+B})},j.current=()=>{p(!1),g.current=null,S.current&&document.removeEventListener("mousemove",S.current),j.current&&document.removeEventListener("mouseup",j.current)},document.addEventListener("mousemove",S.current),document.addEventListener("mouseup",j.current)},[]);x.useEffect(()=>()=>{S.current&&document.removeEventListener("mousemove",S.current),j.current&&document.removeEventListener("mouseup",j.current)},[]);const A=D=>{U.sendBossBuildingCommand(e.id,D)},_=k.reduce((D,P)=>(D[P.status]=(D[P.status]||0)+1,D),{}),M=k.some(D=>{var P;return(P=D.pm2)==null?void 0:P.enabled}),$=(D,P)=>{const R=`http://localhost:${D}`;P&&o?o(R):window.open(R,"_blank")},E=x.useMemo(()=>{let R=t.x+20,L=t.y-80;return typeof window<"u"&&!c&&(t.x+20+340>window.innerWidth&&(R=t.x-340-20),t.y-80<0?L=10:t.y-80+350>window.innerHeight&&(L=window.innerHeight-350-10)),{position:"fixed",left:R+((c==null?void 0:c.x)||0),top:L+((c==null?void 0:c.y)||0),zIndex:1e3,cursor:f?"grabbing":void 0}},[t.x,t.y,c,f]);return r.jsxs("div",{className:"building-action-popup boss-building-popup",style:E,onClick:D=>D.stopPropagation(),children:[r.jsxs("div",{className:`building-popup-header boss-header ${f?"dragging":""}`,onMouseDown:C,children:[r.jsx("span",{className:"boss-icon",children:"👑"}),r.jsx("span",{className:"building-popup-name",children:e.name}),r.jsx("span",{className:"subordinate-count",children:l("terminal:building.unitsCount",{count:k.length})}),r.jsx("button",{className:"building-popup-close",onClick:n,children:"x"})]}),r.jsxs("div",{className:"boss-status-overview",children:[Object.entries(_).map(([D,P])=>r.jsxs("span",{className:"status-badge",style:{backgroundColor:Zr[D]||"#666"},children:[P," ",D]},D)),k.length===0&&r.jsx("span",{className:"no-subordinates",children:l("terminal:building.noSubordinates")})]}),k.length>0&&r.jsx("div",{className:"subordinate-list",children:k.map(D=>{var P,R,L;return r.jsxs("div",{className:"subordinate-item",children:[r.jsx("span",{className:"sub-status-dot",style:{backgroundColor:Zr[D.status]}}),r.jsx("span",{className:"sub-name",children:D.name}),((P=D.pm2Status)==null?void 0:P.ports)&&D.pm2Status.ports.length>0&&r.jsx("span",{className:"sub-port",children:D.pm2Status.ports.map(z=>r.jsxs("a",{href:`http://localhost:${z}`,className:"building-popup-port-link",onClick:B=>{B.preventDefault(),B.stopPropagation(),$(z,B.altKey)},title:`Open http://localhost:${z} (Alt+Click for modal)`,children:[":",z]},z))}),D.pm2Status&&r.jsxs("span",{className:"sub-metrics",children:[(R=D.pm2Status.cpu)==null?void 0:R.toFixed(0),"% | ",hH(D.pm2Status.memory||0)]}),((L=D.pm2Status)==null?void 0:L.uptime)&&r.jsx("span",{className:"sub-uptime",children:pH(D.pm2Status.uptime)})]},D.id)})}),r.jsxs("div",{className:"building-popup-actions boss-actions",children:[r.jsxs("button",{className:"action-btn start",onClick:()=>A("start_all"),disabled:k.length===0,title:l("terminal:building.startAllSubs"),children:[r.jsx("span",{className:"icon",children:"▶"}),l("terminal:building.startAll")]}),r.jsxs("button",{className:"action-btn stop",onClick:()=>A("stop_all"),disabled:k.length===0,title:l("terminal:building.stopAllSubs"),children:[r.jsx("span",{className:"icon",children:"■"}),l("terminal:building.stopAll")]}),r.jsxs("button",{className:"action-btn restart",onClick:()=>A("restart_all"),disabled:k.length===0,title:l("terminal:building.restartAllSubs"),children:[r.jsx("span",{className:"icon",children:"↺"}),l("terminal:building.restartAll")]}),M&&r.jsxs("button",{className:"action-btn logs",onClick:i,title:l("terminal:building.viewUnifiedLogs"),children:[r.jsx("span",{className:"icon",children:"📄"}),l("terminal:building.logs")]})]}),r.jsx("button",{className:"building-popup-settings",onClick:a,children:l("terminal:building.fullSettings")})]})}),mH=x.memo(function({building:e,screenPos:t,onClose:n,onOpenSettings:a,onOpenDatabasePanel:i}){var _;const{t:o}=Ue(["terminal","common"]),[l,c]=x.useState(null),[d,f]=x.useState(!1),p=x.useRef(null),g=x.useRef(l);g.current=l;const b=lf(e.id),y=((_=e.database)==null?void 0:_.connections)??[],w=x.useRef(null),k=x.useRef(null),S=x.useCallback(M=>{M.preventDefault();const $=g.current?g.current.x:0,E=g.current?g.current.y:0;p.current={mouseX:M.clientX,mouseY:M.clientY,popupX:$,popupY:E},f(!0),w.current=D=>{if(!p.current)return;const P=D.clientX-p.current.mouseX,R=D.clientY-p.current.mouseY;c({x:p.current.popupX+P,y:p.current.popupY+R})},k.current=()=>{f(!1),p.current=null,w.current&&document.removeEventListener("mousemove",w.current),k.current&&document.removeEventListener("mouseup",k.current)},document.addEventListener("mousemove",w.current),document.addEventListener("mouseup",k.current)},[]);x.useEffect(()=>()=>{w.current&&document.removeEventListener("mousemove",w.current),k.current&&document.removeEventListener("mouseup",k.current)},[]);const j=M=>{U.testDatabaseConnection(e.id,M)},C=M=>b.connectionStatus.get(M),A=x.useMemo(()=>{let E=t.x+20,D=t.y-80;return typeof window<"u"&&!l&&(t.x+20+320>window.innerWidth&&(E=t.x-320-20),t.y-80<0?D=10:t.y-80+300>window.innerHeight&&(D=window.innerHeight-300-10)),{position:"fixed",left:E+((l==null?void 0:l.x)||0),top:D+((l==null?void 0:l.y)||0),zIndex:1e3,cursor:d?"grabbing":void 0}},[t.x,t.y,l,d]);return r.jsxs("div",{className:"building-action-popup database-building-popup",style:A,onClick:M=>M.stopPropagation(),children:[r.jsxs("div",{className:`building-popup-header database-header ${d?"dragging":""}`,onMouseDown:S,children:[r.jsx("span",{className:"database-icon",children:"🗄️"}),r.jsx("span",{className:"building-popup-name",children:e.name}),r.jsx("span",{className:"connection-count",children:o("terminal:building.connCount",{count:y.length})}),r.jsx("button",{className:"building-popup-close",onClick:n,children:"x"})]}),y.length>0?r.jsx("div",{className:"database-connection-list",children:y.map(M=>{const $=C(M.id);return r.jsxs("div",{className:"database-connection-item",children:[r.jsx("span",{className:"conn-engine",children:M.engine==="mysql"?"🐬":"🐘"}),r.jsx("span",{className:"conn-name",children:M.name}),r.jsxs("span",{className:"conn-host",children:[M.host,":",M.port]}),$&&r.jsx("span",{className:`conn-status ${$.connected?"connected":"disconnected"}`,children:$.connected?"●":"○"}),r.jsx("button",{className:"conn-test-btn",onClick:()=>j(M.id),title:o("terminal:building.testConnection"),children:"↻"})]},M.id)})}):r.jsxs("div",{className:"database-no-connections",children:[r.jsx("p",{children:o("terminal:building.noConnections")}),r.jsx("p",{className:"hint",children:o("terminal:building.clickSettingsToAdd")})]}),r.jsxs("div",{className:"building-popup-actions database-actions",children:[r.jsxs("button",{className:"action-btn query",onClick:i,disabled:y.length===0,title:o("terminal:building.openDbExplorer"),children:[r.jsx("span",{className:"icon",children:"⌨"}),o("terminal:building.query")]}),r.jsxs("button",{className:"action-btn test-all",onClick:()=>y.forEach(M=>j(M.id)),disabled:y.length===0,title:o("terminal:building.testAllConnections"),children:[r.jsx("span",{className:"icon",children:"↻"}),o("terminal:building.testAll")]})]}),r.jsx("button",{className:"building-popup-settings",onClick:a,children:o("common:buttons.settings")})]})}),gH=({building:s,connections:e,activeConnectionId:t,activeDatabase:n,collapsed:a,onToggleCollapse:i,onConnectionChange:o,onDatabaseChange:l,onInsertTable:c,onSelectTableQuery:d})=>{const{t:f}=Ue(["terminal"]),p=lf(s.id),[g,b]=x.useState(new Set),[y,w]=x.useState(""),[k,S]=x.useState(!1),[j,C]=x.useState(null),A=x.useRef(null),_=x.useRef(null),M=t?p.databases.get(t)??[]:[],$=t&&n?`${t}:${n}`:"",E=$?p.tables.get($)??[]:[],D=t?p.connectionStatus.get(t):void 0,P=x.useMemo(()=>{if(!y.trim())return M;const z=y.toLowerCase();return M.filter(B=>B.toLowerCase().includes(z))},[M,y]);x.useEffect(()=>{const z=B=>{_.current&&!_.current.contains(B.target)&&S(!1)};return k&&document.addEventListener("mousedown",z),()=>document.removeEventListener("mousedown",z)},[k]),x.useEffect(()=>{t&&!D&&U.testDatabaseConnection(s.id,t)},[s.id,t,D]),x.useEffect(()=>{t&&(D!=null&&D.connected)&&M.length===0&&U.listDatabases(s.id,t)},[s.id,t,D==null?void 0:D.connected,M.length]),x.useEffect(()=>{t&&n&&E.length===0&&U.listTables(s.id,t,n)},[s.id,t,n,E.length]),x.useEffect(()=>{C(null)},[t,n]);const R=x.useCallback(z=>{b(B=>{const F=new Set(B);if(F.has(z))F.delete(z);else if(F.add(z),t&&n){const H=`${t}:${n}:${z}`;p.tableSchemas.has(H)||U.getTableSchema(s.id,t,n,z)}return F})},[s.id,t,n,p.tableSchemas]),L=z=>{if(!t||!n)return null;const B=`${t}:${n}:${z}`;return p.tableSchemas.get(B)};return a?r.jsx("div",{className:"database-sidebar database-sidebar--collapsed",children:r.jsx("button",{className:"database-sidebar__toggle",onClick:i,title:f("terminal:database.expandSidebar"),children:"»"})}):r.jsxs("div",{className:"database-sidebar",children:[r.jsxs("div",{className:"database-sidebar__header",children:[r.jsx("span",{children:f("terminal:database.explorer")}),r.jsx("button",{className:"database-sidebar__toggle",onClick:i,title:f("terminal:database.collapseSidebar"),children:"«"})]}),r.jsxs("div",{className:"database-sidebar__section",children:[r.jsx("div",{className:"database-sidebar__section-title",children:f("terminal:database.connection")}),r.jsx("select",{className:"database-sidebar__select",value:t||"",onChange:z=>o(z.target.value),children:e.length===0?r.jsx("option",{value:"",children:f("terminal:database.noConnections")}):e.map(z=>r.jsxs("option",{value:z.id,children:[z.engine==="mysql"?"🐬":"🐘"," ",z.name]},z.id))}),D&&r.jsx("div",{className:`database-sidebar__status ${D.connected?"database-sidebar__status--connected":"database-sidebar__status--error"}`,children:D.connected?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"database-sidebar__status-icon",children:"✓"}),f("terminal:database.connected"),D.serverVersion&&r.jsxs("span",{className:"database-sidebar__version",children:["(",D.serverVersion,")"]})]}):r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"database-sidebar__status-icon",children:"✗"}),D.error||f("terminal:database.disconnected")]})})]}),M.length>0&&r.jsxs("div",{className:"database-sidebar__section",children:[r.jsx("div",{className:"database-sidebar__section-title",children:f("terminal:database.databaseTitle")}),r.jsxs("div",{className:"database-sidebar__searchable-select",ref:_,children:[r.jsx("input",{ref:A,className:"database-sidebar__search-input",type:"text",value:k?y:n||"",placeholder:f("terminal:database.selectDatabase"),onChange:z=>{w(z.target.value),k||S(!0)},onFocus:()=>{S(!0),w("")},onKeyDown:z=>{var B,F;z.key==="Escape"?(S(!1),w(""),(B=A.current)==null||B.blur()):z.key==="Enter"&&P.length===1&&(l(P[0]),S(!1),w(""),(F=A.current)==null||F.blur())}}),k&&r.jsx("div",{className:"database-sidebar__dropdown",children:P.length===0?r.jsx("div",{className:"database-sidebar__dropdown-empty",children:"No matches"}):P.map(z=>r.jsx("div",{className:`database-sidebar__dropdown-item ${z===n?"database-sidebar__dropdown-item--active":""}`,onMouseDown:B=>{B.preventDefault(),l(z),S(!1),w("")},children:z},z))})]})]}),E.length>0&&r.jsxs("div",{className:"database-sidebar__section database-sidebar__section--tables",children:[r.jsx("div",{className:"database-sidebar__section-title",children:f("terminal:database.tablesCount",{count:E.length})}),r.jsx("div",{className:"database-sidebar__tables",children:E.map(z=>{const B=g.has(z.name),F=B?L(z.name):null;return r.jsxs("div",{className:"database-sidebar__table",children:[r.jsxs("div",{className:"database-sidebar__table-header",children:[r.jsx("button",{className:"database-sidebar__table-expand",onClick:()=>R(z.name),title:B?"Collapse table schema":"Expand table schema",children:B?"▼":"▶"}),r.jsx("span",{className:"database-sidebar__table-icon",children:z.type==="view"?"👁":"📋"}),r.jsx("span",{className:`database-sidebar__table-name ${j===z.name?"database-sidebar__table-name--selected":""}`,onClick:()=>C(z.name),onDoubleClick:()=>{C(z.name),d(z.name)},children:z.name}),r.jsx("button",{className:"database-sidebar__table-insert",onClick:H=>{H.stopPropagation(),c(z.name)},title:f("terminal:database.insertTableName"),children:"+"})]}),B&&F&&r.jsx("div",{className:"database-sidebar__table-columns",children:F.columns.map(H=>r.jsxs("div",{className:"database-sidebar__column",onClick:()=>c(H.name),title:`${H.type}${H.nullable?" NULL":" NOT NULL"}${H.primaryKey?" PK":""}`,children:[r.jsx("span",{className:"database-sidebar__column-icon",children:H.primaryKey?"🔑":""}),r.jsx("span",{className:"database-sidebar__column-name",children:H.name}),r.jsx("span",{className:"database-sidebar__column-type",children:H.type})]},H.name))})]},z.name)})})]})]})},bH=({query:s,onChange:e,onExecute:t,isExecuting:n,disabled:a,autoFocus:i=!0})=>{const{t:o}=Ue(["terminal"]),l=x.useRef(null),c=x.useRef(null);x.useEffect(()=>{if(i&&!a&&l.current){const b=setTimeout(()=>{var y;(y=l.current)==null||y.focus()},100);return()=>clearTimeout(b)}},[i,a]);const d=x.useCallback(b=>{const y=b.currentTarget;c.current&&(c.current.scrollLeft=y.scrollLeft,c.current.scrollTop=y.scrollTop)},[]),f=x.useCallback(b=>{if((b.ctrlKey||b.metaKey)&&b.key==="Enter"&&(b.preventDefault(),!a&&!n&&t()),b.key==="Tab"){b.preventDefault();const y=b.currentTarget,w=y.selectionStart,k=y.selectionEnd,S=s.substring(0,w)+" "+s.substring(k);e(S),setTimeout(()=>{y.selectionStart=y.selectionEnd=w+2},0)}},[s,e,t,a,n]),p=x.useMemo(()=>{if(!s)return"";try{return el.highlight(s,el.languages.sql,"sql")}catch{return s}},[s]),g=x.useMemo(()=>s.split(`
|
|
231
|
+
`)}function K9(s){return s.startsWith("Using tool:")||s.startsWith("Tool input:")||s.startsWith("Tool result:")||s.startsWith("Bash output:")||s.startsWith("Session started:")||s.startsWith("[thinking]")||s.startsWith("Tokens:")||s.startsWith("Cost:")||s.startsWith("Context (estimated from Codex turn usage):")||s.startsWith("🔄 [System]")||s.startsWith("📋 [System]")||s.startsWith("[System]")}function X9({onSaveSnapshot:s}={}){var Qe,ut,on,Cn,Qt;const{t:e}=Ue(["terminal","common"]),t=or(),n=XA(),a=eM(),i=hx(),o=mx(),l=tM(),c=px(),d=fx(),f=XB(),p=!!f,g=x.useMemo(()=>f?{id:f.agentId,name:f.agentName,class:f.agentClass,status:"idle",provider:"claude",position:{x:0,y:0,z:0},cwd:f.cwd,permissionMode:"interactive",tokensUsed:0,contextUsed:0,contextLimit:2e5,taskCount:0,createdAt:f.createdAt,lastActivity:f.createdAt}:null,[f]),b=Array.from(n),w=b.length===1?b[0]:null,S=(ux(w)||null)??(p?g:null),j=w??(p?(f==null?void 0:f.agentId)??null:null),C=!!(S!=null&&S.sessionId)&&!p,{terminalHeight:A,terminalRef:_,handleResizeStart:M}=A6(),$=C6(),E=dx(j),D=p&&f?f.outputs.map(Ve=>((!Ve.text||!Ve.text.trim())&&console.warn("[GuakeOutputPanel] Empty snapshot output:",Ve),{text:Ve.text||"",timestamp:Ve.timestamp,isStreaming:!1,isUserPrompt:!1})):E,P=x.useRef(null),R=x.useRef(null),L=x.useRef(null),[z,B]=x.useState(()=>{const Ve=Ns(dt.VIEW_MODE);return Ve==="simple"||Ve==="chat"||Ve==="advanced"?Ve:Ns(dt.ADVANCED_VIEW)==="true"?"advanced":"simple"}),[F,H]=x.useState(null),[G,K]=x.useState(null),[X,I]=x.useState(null),[ee,se]=x.useState(null),[O,V]=x.useState(!1);Dn("guake-image-modal",F!==null,()=>H(null)),Dn("guake-bash-modal",G!==null,()=>K(null)),Dn("guake-response-modal",ee!==null,()=>se(null)),Dn("guake-context-confirm",X!==null,()=>I(null)),Dn("guake-agent-info",O,()=>V(!1));const[J,Q]=x.useState(!1),[ae,te]=x.useState(()=>xs.isEnabled()),Z=JB(),re=x.useCallback(Ve=>U.setOverviewPanelOpen(Ve),[]),[de,ge]=x.useState(!1),[we,pe]=x.useState(null),Ae=x.useRef(null),Me=x.useRef(null),[Oe,Y]=x.useState(!1),[le,ce]=x.useState(!1),be=a&&S!==null,me=xT({selectedAgentId:j,hasSessionId:C,reconnectCount:o,lastPrompts:i,outputScrollRef:P}),_e=_6({selectedAgentId:j,isOpen:be}),xe=M6({agents:t,selectedAgentId:j,isOpen:be,loadingHistory:me.fetchingHistory,hasModalOpen:!!(F||G||ee||c||d),outputRef:P}),Ke=vT({selectedAgentId:w}),ue=!p&&j?U.getPendingPermissionsForAgent(j):[],ie=(S==null?void 0:S.class)==="boss"||(S==null?void 0:S.isBoss),ye=$B(!p&&ie?j:null),oe=HB(p?null:j),Ee=iM();x.useEffect(()=>{J&&!ae&&(te(!0),xs.setEnabled(!0))},[J,ae]),x.useEffect(()=>{be||V(!1)},[be]),x.useEffect(()=>{const Ve=S==null?void 0:S.status;if(Ae.current==="working"&&Ve==="idle"){Me.current&&clearTimeout(Me.current);const ft=j?i.get(j):void 0;pe(ft!=null&&ft.timestamp?Date.now()-ft.timestamp:null),ge(!0),Me.current=setTimeout(()=>{ge(!1),pe(null),Me.current=null},4e3)}else Ve==="working"&&(Me.current&&(clearTimeout(Me.current),Me.current=null),ge(!1),pe(null));return Ae.current=Ve||null,()=>{Me.current&&clearTimeout(Me.current)}},[S==null?void 0:S.status]);const Te=x.useMemo(()=>{const{history:Ve}=me,et=new Map;for(const vt of Ve)vt.type==="tool_result"&&vt.toolUseId&&et.set(vt.toolUseId,vt.content);return(vt=>vt.map(Nt=>{if(Nt.type==="tool_use"&&Nt.toolName==="Bash"&&Nt.toolUseId){const Wt=et.get(Nt.toolUseId);let Pt;try{Pt=(Nt.toolInput||(Nt.content?JSON.parse(Nt.content):{})).command}catch{}return{...Nt,_bashOutput:Wt,_bashCommand:Pt}}return Nt}))(Ve)},[me.history,z]),Fe=wT({outputs:D,viewMode:z}),Je=x.useMemo(()=>{const Ve=[],et=new Set,ft=new Set;let vt=null,Nt=0;for(const Wt of Te){if(Wt.type==="assistant"){const Vn=Wt.uuid?`uuid:${Wt.uuid}:${Gh(Wt.content)}`:`sig:${Wt.timestamp}:${Gh(Wt.content)}`;if(et.has(Vn))continue;et.add(Vn),Ve.push(Wt);continue}if(Wt.type!=="user"){Ve.push(Wt);continue}const Pt=wb(Wt.content),dn=Wt.uuid?`uuid:${Wt.uuid}:${Pt}`:null;if(dn&&ft.has(dn))continue;const Ht=Wt.timestamp?new Date(Wt.timestamp).getTime():0;vt===Pt&&Math.abs(Ht-Nt)<=e1||(Ve.push(Wt),dn&&ft.add(dn),vt=Pt,Nt=Ht)}return Ve},[Te]),nt=x.useMemo(()=>{const Ve=new Map,et=new Set,ft=new Map;for(const Pt of Je){const dn=Pt.timestamp?new Date(Pt.timestamp).getTime():0;if(Pt.type==="user"){const lt=wb(Pt.content),Ut=Ve.get(lt)??0;dn>Ut&&Ve.set(lt,dn);continue}if(Pt.type!=="assistant")continue;Pt.uuid&&et.add(Pt.uuid);const Ht=Gh(Pt.content),Vn=ft.get(Ht)??0;dn>Vn&&ft.set(Ht,dn)}const vt=[];let Nt=null,Wt=0;for(const Pt of Fe){if(!Pt.isUserPrompt){if(!Pt.isStreaming&&!K9(Pt.text)){if(Pt.uuid&&et.has(Pt.uuid))continue;const lt=Gh(Pt.text),Ut=Pt.timestamp||0,hn=ft.get(lt);if(hn&&Math.abs(Ut-hn)<=V9)continue}vt.push(Pt);continue}const dn=wb(Pt.text),Ht=Pt.timestamp||0,Vn=Ve.get(dn);Vn&&Ht>=Vn&&Ht-Vn<=Y9||Nt===dn&&Math.abs(Ht-Wt)<=e1||(vt.push(Pt),Nt=dn,Wt=Ht)}return vt},[Fe,Je]),pt=Je.length+nt.length,st=D6({totalMessages:pt,isOpen:be,hasModalOpen:!!(F||G||ee||c),scrollContainerRef:P,selectedAgentId:j,inputRef:R,textareaRef:L,useTextarea:Ke.useTextarea});x.useEffect(()=>{if(!(!(G!=null&&G.isLive)||!G.command)){for(const Ve of nt)if(Ve._bashCommand===G.command&&Ve._bashOutput){K({command:G.command,output:Ve._bashOutput,isLive:!1});return}}},[G,nt]);const St=x.useCallback((Ve,et)=>{H({url:Ve,name:et})},[]),Ft=x.useCallback((Ve,et)=>{const ft=gd(Ve,S==null?void 0:S.cwd),vt=ft.line?{...et||{},targetLine:ft.line}:et;U.setFileViewerPath(ft.path,vt,S==null?void 0:S.cwd)},[S==null?void 0:S.cwd]),yt=x.useCallback((Ve,et)=>{K({command:Ve,output:et,isLive:et==="Running..."})},[]),gn=x.useCallback(Ve=>{se(Ve)},[]),[Se,he]=x.useState(!0),Be=x.useRef(!1),ot=x.useRef(!1),Xe=x.useCallback(()=>{ot.current||(Be.current=!0,he(!1))},[]);x.useEffect(()=>{he(!0),Be.current=!1,ot.current=!0;const Ve=setTimeout(()=>{ot.current=!1},3e3);return()=>clearTimeout(Ve)},[j]);const kt=x.useCallback(()=>{if(!P.current||$.keyboardScrollLockRef.current)return;const{scrollTop:Ve,scrollHeight:et,clientHeight:ft}=P.current,vt=et-Ve-ft<150;ot.current||(Be.current=!vt,vt&&he(!0)),me.handleScroll($.keyboardScrollLockRef)},[P,$.keyboardScrollLockRef,me]),sn=E.length>0&&((ut=(Qe=E[E.length-1])==null?void 0:Qe.text)==null?void 0:ut.length)||0;x.useEffect(()=>{$.keyboardScrollLockRef.current||Be.current||requestAnimationFrame(()=>{if(P.current){const{scrollTop:Ve,scrollHeight:et,clientHeight:ft}=P.current;et-Ve-ft<150&&(P.current.scrollTop=et)}})},[E.length,sn,$.keyboardScrollLockRef,P]);const Rt=x.useRef(null);x.useLayoutEffect(()=>{Y(!1);const et=Rt.current!==w;Rt.current=w,et&&U.getState().currentSnapshot&&U.setCurrentSnapshot(null)},[w]);const Ct=x.useRef(!1);x.useEffect(()=>{be&&w&&U.clearUnseenForAgent(w)},[be,w]),x.useEffect(()=>{Ct.current=!0,ce(!0)},[j,o]),x.useEffect(()=>{me.fetchingHistory&&(Ct.current=!0,ce(!0))},[me.fetchingHistory]),x.useEffect(()=>{if(!le||!be||me.fetchingHistory)return;const Ve=P.current;if(!Ve)return;let et=null;const ft=performance.now();let vt=0,Nt=-1;const Wt=()=>{const{scrollTop:dn,scrollHeight:Ht,clientHeight:Vn}=Ve;return Ht-dn-Vn<=2},Pt=()=>{const dn=performance.now(),Ht=Ve.scrollHeight,Vn=Math.abs(Ht-Nt)<=1,lt=Wt();if(Vn&<?vt+=1:vt=0,Nt=Ht,vt>=8){ce(!1),et=null;return}if(dn-ft>8e3){ce(!1),et=null;return}et=requestAnimationFrame(Pt)};return et=requestAnimationFrame(Pt),()=>{et!==null&&cancelAnimationFrame(et)}},[le,be,me.fetchingHistory,me.historyLoadVersion]),x.useEffect(()=>{if(!be||!Ct.current)return;const Ve=setTimeout(()=>{requestAnimationFrame(()=>{Ct.current=!1,Y(!0)})},50);return()=>clearTimeout(Ve)},[me.historyLoadVersion,be,P]),x.useEffect(()=>{const Ve=et=>{if(et.key==="`"&&!et.ctrlKey&&!et.altKey&&S){const ft=et.target;ft.tagName!=="INPUT"&&ft.tagName!=="TEXTAREA"&&(et.preventDefault(),U.toggleTerminal())}};return document.addEventListener("keydown",Ve),()=>document.removeEventListener("keydown",Ve)},[S]),x.useEffect(()=>{const Ve=et=>{et.key==="Escape"&&(c?(et.stopImmediatePropagation(),U.clearFileViewerPath()):d?(et.stopImmediatePropagation(),U.closeContextModal()):ee?(et.stopImmediatePropagation(),se(null)):G?(et.stopImmediatePropagation(),K(null)):F?(et.stopImmediatePropagation(),H(null)):_e.searchMode&&(et.stopImmediatePropagation(),_e.closeSearch()))};return document.addEventListener("keydown",Ve,!0),()=>document.removeEventListener("keydown",Ve,!0)},[F,G,ee,_e,c,d]);const an=x.useRef(be),bn=x.useRef(!1);x.useEffect(()=>{an.current=be},[be]),x.useEffect(()=>{if(window.innerWidth<=768)return;const et=Nt=>{var Ht;if(!(Nt instanceof Element))return!1;const Wt=(Ht=_.current)==null?void 0:Ht.contains(Nt),Pt=Nt.closest(".agent-bar"),dn=!!Nt.closest(".modal-overlay, .modal, .image-modal-overlay, .image-modal, .bash-modal-overlay, .bash-modal, .agent-info-modal-overlay, .agent-info-modal, .agent-response-modal, .pasted-text-modal-overlay, .pasted-text-modal, .file-viewer-overlay, .file-viewer-modal, .context-view-modal, .guake-context-confirm-overlay, .guake-context-confirm-modal");return!!Wt||!!Pt||dn},ft=Nt=>{if(!an.current){bn.current=!1;return}bn.current=!et(Nt.target)},vt=Nt=>{bn.current&&(et(Nt.target)||U.setTerminalOpen(!1),bn.current=!1)};return document.addEventListener("mousedown",ft,!0),document.addEventListener("mouseup",vt,!0),()=>{document.removeEventListener("mousedown",ft,!0),document.removeEventListener("mouseup",vt,!0)}},[]),x.useEffect(()=>{const Ve=()=>{document.hidden&&$.cleanup()};return document.addEventListener("visibilitychange",Ve),()=>document.removeEventListener("visibilitychange",Ve)},[$]);const Ne=typeof window<"u"&&window.innerWidth<=768;return S?j?r.jsxs("div",{ref:_,className:`guake-terminal ${be?"open":"collapsed"} ${J&&be?"with-debug-panel":""} ${Z&&be?"with-overview-panel":""}`,style:{"--terminal-height":`${A}%`},children:[!p&&J&&be&&j&&r.jsx(k9,{agentId:j,onClose:()=>Q(!1)}),!p&&Z&&be&&j&&r.jsx(N9,{activeAgentId:j,onClose:()=>re(!1),onSelectAgent:Ve=>{U.selectAgent(Ve)}}),r.jsxs("div",{className:"guake-content",children:[r.jsx($6,{selectedAgent:S,selectedAgentId:j,sortedAgents:xe.sortedAgents,swipeOffset:xe.swipeOffset,viewMode:z,setViewMode:B,searchMode:_e.searchMode,toggleSearch:_e.toggleSearch,closeSearch:_e.closeSearch,debugPanelOpen:J,setDebugPanelOpen:Q,debuggerEnabled:ae,setDebuggerEnabled:te,overviewPanelOpen:Z,setOverviewPanelOpen:re,agentInfoOpen:O,onToggleAgentInfo:()=>V(!O),outputsLength:Je.length+nt.length,setContextConfirm:I,headerRef:xe.headerRef,onSaveSnapshot:p?void 0:s,isSnapshotView:p}),_e.searchMode&&r.jsx(H6,{searchInputRef:_e.searchInputRef,searchQuery:_e.searchQuery,setSearchQuery:_e.setSearchQuery,handleSearch:_e.handleSearch,closeSearch:_e.closeSearch,searchLoading:_e.searchLoading,searchResultsCount:_e.searchResults.length}),r.jsxs("div",{className:`guake-swipe-container ${xe.swipeAnimationClass}`,style:xe.swipeOffset!==0?{transform:`translateX(${xe.swipeOffset*40}%)`}:void 0,children:[xe.sortedAgents.length>1&&xe.swipeOffset!==0&&r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:`swipe-indicator left ${xe.swipeOffset>.3?"visible":""}`,children:[r.jsx("span",{className:"indicator-icon",children:"←"}),r.jsx("span",{className:"indicator-name",children:(on=xe.prevAgent)==null?void 0:on.name})]}),r.jsxs("div",{className:`swipe-indicator right ${xe.swipeOffset<-.3?"visible":""}`,children:[r.jsx("span",{className:"indicator-name",children:(Cn=xe.nextAgent)==null?void 0:Cn.name}),r.jsx("span",{className:"indicator-icon",children:"→"})]})]}),xe.sortedAgents.length>1&&xe.sortedAgents.length<=8&&xe.swipeOffset!==0&&r.jsx("div",{className:`swipe-dots ${Math.abs(xe.swipeOffset)>.1?"visible":""}`,children:xe.sortedAgents.map((Ve,et)=>r.jsx("div",{className:`swipe-dot ${et===xe.currentAgentIndex?"active":""}`},Ve.id))}),r.jsx("div",{className:"guake-output",ref:P,onScroll:kt,children:_e.searchMode&&_e.searchResults.length>0?r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"guake-search-header",children:e("terminal:header.searchResultsTitle")}),_e.searchResults.map((Ve,et)=>r.jsx(gf,{message:Ve,agentId:j,highlight:_e.searchQuery,onImageClick:St,onFileClick:Ft,onBashClick:yt,onViewMarkdown:gn},`s-${et}`))]}):r.jsxs("div",{className:`guake-history-content ${Oe?"fade-in":""}`,children:[me.loadingHistory&&me.history.length===0&&E.length===0&&r.jsxs("div",{className:"guake-empty loading",children:[e("terminal:empty.loadingConversation"),r.jsxs("span",{className:"loading-dots",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})]}),!me.loadingHistory&&me.history.length===0&&D.length===0&&S.status!=="working"&&r.jsx("div",{className:"guake-empty",children:e("terminal:empty.noOutput")}),me.hasMore&&!_e.searchMode&&r.jsx("div",{className:"guake-load-more",children:me.loadingMore?r.jsx("span",{children:e("terminal:empty.loadingOlder")}):r.jsx("button",{onClick:me.loadMoreHistory,children:e("terminal:empty.loadMore",{count:me.totalCount-me.history.length})})}),r.jsx(w9,{historyMessages:Je,liveOutputs:nt,agentId:j,execTasks:oe,subagents:Ee,viewMode:z,selectedMessageIndex:st.selectedIndex,isMessageSelected:st.isSelected,onImageClick:St,onFileClick:Ft,onBashClick:yt,onViewMarkdown:gn,scrollContainerRef:P,onScrollTopReached:me.loadMoreHistory,isLoadingMore:me.loadingMore,hasMore:me.hasMore,shouldAutoScroll:Se,onUserScroll:Xe,pinToBottom:le,onPinCancel:()=>ce(!1),isLoadingHistory:me.fetchingHistory}),ie&&ye.size>0&&r.jsxs("div",{className:"agent-progress-container",children:[r.jsxs("div",{className:"agent-progress-container-header",children:[r.jsx("span",{className:"progress-crown",children:"👑"}),r.jsx("span",{children:e("terminal:empty.subordinateProgress")}),r.jsx("span",{className:"progress-count",children:e("terminal:empty.activeCount",{count:ye.size})})]}),Array.from(ye.values()).map(Ve=>r.jsx(M9,{progress:Ve,defaultExpanded:Ve.status==="working",onAgentClick:et=>U.selectAgent(et)},Ve.agentId))]})]})})]}),r.jsx(V6,{selectedAgent:S,selectedAgentId:j,isOpen:be,command:Ke.command,setCommand:Ke.setCommand,forceTextarea:Ke.forceTextarea,setForceTextarea:Ke.setForceTextarea,useTextarea:Ke.useTextarea,attachedFiles:Ke.attachedFiles,setAttachedFiles:Ke.setAttachedFiles,removeAttachedFile:Ke.removeAttachedFile,uploadFile:Ke.uploadFile,pastedTexts:Ke.pastedTexts,expandPastedTexts:Ke.expandPastedTexts,incrementPastedCount:Ke.incrementPastedCount,setPastedTexts:Ke.setPastedTexts,resetPastedCount:Ke.resetPastedCount,handleInputFocus:$.handleInputFocus,handleInputBlur:$.handleInputBlur,pendingPermissions:ue,showCompletion:de,completionElapsed:we,onImageClick:St,inputRef:R,textareaRef:L,isSnapshotView:p,onClearHistory:me.clearHistory}),r.jsxs("div",{className:"guake-agent-status-bar",children:[!p&&(S==null?void 0:S.isDetached)&&r.jsx(Dp,{content:r.jsxs(r.Fragment,{children:[r.jsxs("div",{className:"tide-tooltip__title",children:["🔄 ",e("terminal:empty.reattachingSessionTitle")]}),r.jsxs("div",{className:"tide-tooltip__text",children:[e("terminal:empty.reattachingSessionDesc"),r.jsx("br",{}),r.jsx("br",{}),r.jsxs("strong",{children:[e("common:labels.status"),":"]})," ",e("terminal:empty.reattachingSessionStatus")]})]}),position:"top",className:"tide-tooltip--detached",children:r.jsxs("span",{className:"guake-detached-badge",title:e("terminal:empty.reattachingBadge"),children:[r.jsx("span",{className:"guake-detached-spinner",children:"🔄"})," ",e("terminal:empty.reattaching")]})}),(S==null?void 0:S.cwd)&&r.jsxs("span",{className:"guake-agent-cwd",children:["📁 ",S.cwd.split("/").filter(Boolean).slice(-2).join("/")||S.cwd]}),!p&&S&&(()=>{const Ve=S.contextStats,et=!!Ve,ft=Ve?Ve.totalTokens:S.contextUsed||0,vt=Ve?Ve.contextWindow:S.contextLimit||2e5,Nt=Ve?Ve.usedPercent:Math.round(ft/vt*100),Wt=Math.round(100-Nt),Pt=Nt>=80?"#ff4a4a":Nt>=60?"#ff9e4a":Nt>=40?"#ffd700":"#4aff9e",dn=(ft/1e3).toFixed(1),Ht=(vt/1e3).toFixed(1);return r.jsxs("span",{className:"guake-agent-context",onClick:()=>U.setContextModalAgentId(j),title:e(et?"terminal:context.clickToViewStats":"terminal:context.clickToFetchStats"),children:[r.jsx("span",{className:"context-icon",children:"📊"}),r.jsxs("span",{className:"context-label",children:[e("terminal:agentInfo.context"),":"]}),r.jsx("span",{className:"context-bar-mini",children:r.jsx("span",{className:"context-bar-mini-fill",style:{width:`${Math.min(100,Nt)}%`,backgroundColor:Pt}})}),r.jsxs("span",{className:"context-tokens",style:{color:Pt},children:[dn,"k/",Ht,"k"]}),r.jsxs("span",{className:"context-free",children:["(",e("terminal:context.percentFree",{percent:Wt}),")"]}),!et&&r.jsx("span",{className:"context-warning",title:e("terminal:context.clickToFetchStats"),children:"⚠️"})]})})(),r.jsx(q9,{})]})]}),be&&r.jsx("div",{className:"guake-resize-handle",onMouseDown:M,title:e("common:rightPanel.dragToResize")}),r.jsxs("div",{className:"guake-handle",onClick:()=>{be&&U.toggleTerminal()},onDoubleClick:()=>{be||U.toggleTerminal()},style:{top:be?`${A}%`:"0"},children:[r.jsx("span",{className:"guake-handle-icon",children:be?"▲":"▼"}),r.jsx("span",{className:"guake-handle-text",children:S.name})]}),F&&r.jsx(ET,{url:F.url,name:F.name,onClose:()=>H(null)}),G&&r.jsx(_T,{state:G,onClose:()=>K(null)}),X&&r.jsx(Z6,{action:X,selectedAgentId:j,subordinateCount:((Qt=S==null?void 0:S.subordinateIds)==null?void 0:Qt.length)||0,onClose:()=>I(null),onClearHistory:me.clearHistory}),r.jsx(Q6,{}),r.jsx(J6,{}),r.jsx(e9,{agent:S,isOpen:O,onClose:()=>V(!1)}),!p&&r.jsx(DT,{agent:S,content:ee,onClose:()=>se(null)})]}):null:Ne&&l==="terminal"&&n.size===0?r.jsx("div",{ref:_,className:"guake-terminal open",style:{"--terminal-height":`${A}%`},children:r.jsx("div",{className:"guake-content",children:r.jsx("div",{className:"guake-output",style:{display:"flex",alignItems:"center",justifyContent:"center",color:"#6272a4"},children:r.jsxs("div",{style:{textAlign:"center"},children:[r.jsx("div",{style:{fontSize:"48px",marginBottom:"16px"},children:"👆"}),r.jsx("div",{style:{fontSize:"16px"},children:e("terminal:empty.tapAgent")}),r.jsx("div",{style:{fontSize:"14px",marginTop:"8px",opacity:.7},children:e("terminal:empty.switchTo3D")})]})})})}):Ne&&l==="terminal"&&n.size>0?r.jsx("div",{ref:_,className:"guake-terminal open",style:{"--terminal-height":`${A}%`},children:r.jsx("div",{className:"guake-content",children:r.jsx("div",{className:"guake-output",style:{display:"flex",alignItems:"center",justifyContent:"center",color:"#6272a4"},children:r.jsxs("div",{className:"guake-empty loading",children:[e("terminal:empty.loadingTerminal"),r.jsxs("span",{className:"loading-dots",children:[r.jsx("span",{}),r.jsx("span",{}),r.jsx("span",{})]})]})})})}):null}function Z9(s){return s.trim().replace(/^v/i,"")}function t1(s){const t=Z9(s).match(/^(\d+(?:\.\d+)*)(?:-([0-9A-Za-z.-]+))?/);if(!t)return null;const n=t[1].split(".").map(i=>Number.parseInt(i,10));if(n.some(Number.isNaN))return null;const a=t[2]?t[2].split("."):[];return{core:n,prerelease:a}}function Q9(s,e){if(s.length===0&&e.length===0)return 0;if(s.length===0)return 1;if(e.length===0)return-1;const t=Math.max(s.length,e.length);for(let n=0;n<t;n+=1){const a=s[n],i=e[n];if(a===void 0)return-1;if(i===void 0)return 1;const o=/^\d+$/.test(a)?Number.parseInt(a,10):null,l=/^\d+$/.test(i)?Number.parseInt(i,10):null;if(o!==null&&l!==null){if(o>l)return 1;if(o<l)return-1;continue}if(o!==null)return-1;if(l!==null)return 1;const c=a.localeCompare(i);if(c!==0)return c>0?1:-1}return 0}function J9(s,e){const t=t1(s),n=t1(e);if(!t||!n)return null;const a=Math.max(t.core.length,n.core.length);for(let i=0;i<a;i+=1){const o=t.core[i]??0,l=n.core[i]??0;if(o>l)return 1;if(o<l)return-1}return Q9(t.prerelease,n.prerelease)}function eH(s,e){const t=J9(s,e);return t===null?"unknown":t<0?"behind":t>0?"ahead":"equal"}async function tH(s,e={}){const{timeoutMs:t=5e3,fetchImpl:n=fetch}=e;try{const a=new AbortController,i=setTimeout(()=>a.abort(),t),o=Date.now(),l=await n(`https://registry.npmjs.org/${encodeURIComponent(s)}/latest?t=${o}`,{signal:a.signal,headers:{Accept:"application/json"}});if(clearTimeout(i),!l.ok)return null;const c=await l.json();return typeof c.version=="string"?c.version:null}catch{return null}}async function nH(s,e,t={}){const n=await tH(s,t);return n?{currentVersion:e,latestVersion:n,relation:eH(e,n)}:{currentVersion:e,latestVersion:null,relation:"unknown"}}const sH="tide-commander",kb="0.69.2";function aH(){const[s,e]=x.useState({currentVersion:kb,latestVersion:null,relation:"unknown",isChecking:!1}),t=x.useCallback(async()=>{e(a=>({...a,isChecking:!0}));const n=await nH(sH,kb);e({currentVersion:kb,latestVersion:n.latestVersion,relation:n.relation,isChecking:!1})},[]);return x.useEffect(()=>{t()},[t]),{...s,refresh:t}}function iH({onFocusAgent:s,onSpawnClick:e,onSpawnBossClick:t,onNewBuildingClick:n,onNewAreaClick:a}){const{t:i}=Ue(["common"]),o=En(),l=sl(),c=ti(),d=gx(),[f,p]=x.useState(!1),g=x.useRef(null),b=x.useRef(null),y=x.useRef(null),w=x.useRef(new Map);x.useEffect(()=>{{p(!1);return}},[l.experimental2DView]),x.useEffect(()=>{const re=b.current;if(!re)return;const de=ge=>{re.scrollWidth<=re.clientWidth||(ge.preventDefault(),re.scrollLeft+=ge.deltaY)};return re.addEventListener("wheel",de,{passive:!1}),()=>re.removeEventListener("wheel",de)},[]);const[k,S]=x.useState(null),[j,C]=x.useState(new Map),[A,_]=x.useState(null),[M,$]=x.useState(null),E=x.useRef(0),D=x.useMemo(()=>Array.from(o.agents.values()).filter(re=>!U.isAgentInArchivedArea(re.id)).sort((re,de)=>(re.createdAt||0)-(de.createdAt||0)),[o.agents,o.areas]),{orderedAgents:P,moveAgent:R}=KA(D),L=P,z=x.useMemo(()=>{const re=new Map;for(const de of L)re.set(de.id,U.getAreaForAgent(de.id));return re},[L,o.areas]),B=x.useMemo(()=>{const re=new Map;for(const ge of L){const we=z.get(ge.id)||null,pe=(we==null?void 0:we.id)||null;re.has(pe)||re.set(pe,{area:we,agents:[]}),re.get(pe).agents.push(ge)}const de=Array.from(re.values());return de.sort((ge,we)=>{var pe,Ae;return!ge.area&&we.area?1:ge.area&&!we.area?-1:!ge.area&&!we.area?0:(((pe=ge.area)==null?void 0:pe.name)||"").localeCompare(((Ae=we.area)==null?void 0:Ae.name)||"")}),de},[L,z]);x.useEffect(()=>{const re=new Map(j);let de=!1;for(const ge of L){const we=j.get(ge.id);ge.currentTool?(!we||we.tool!==ge.currentTool)&&(re.set(ge.id,{tool:ge.currentTool,key:Date.now()}),de=!0):we&&setTimeout(()=>{C(pe=>{const Ae=new Map(pe);return Ae.delete(ge.id),Ae})},1500)}de&&C(re)},[L.map(re=>re.currentTool).join(",")]),x.useEffect(()=>{const re=o.lastSelectedAgentId;if(!re)return;const de=w.current.get(re),ge=b.current;de&&ge&&requestAnimationFrame(()=>{const we=de.getBoundingClientRect(),pe=ge.getBoundingClientRect(),Me=we.left-pe.left+ge.scrollLeft+we.width/2,Oe=ge.clientWidth;ge.scrollTo({left:Me-Oe/2,behavior:"smooth"})})},[o.lastSelectedAgentId]);const F=(re,de)=>{U.setLastSelectionViaDirectClick(!0),de.shiftKey?U.addToSelection(re.id):U.selectAgent(re.id),(window.innerWidth<=768||o.terminalOpen)&&U.setTerminalOpen(!0)},H=re=>{s==null||s(re.id),U.setTerminalOpen(!0)},G=x.useCallback((re,de)=>{_(de),re.dataTransfer.effectAllowed="move",re.dataTransfer.setData("text/plain",de.id),requestAnimationFrame(()=>{re.target.classList.add("dragging")})},[]),K=x.useCallback(re=>{_(null),$(null),E.current=0,re.target.classList.remove("dragging")},[]),X=x.useCallback((re,de)=>{if(re.preventDefault(),A){const ge=z.get(A.id),we=L[de],pe=we?z.get(we.id):null,Ae=(ge==null?void 0:ge.id)??null,Me=(pe==null?void 0:pe.id)??null;re.dataTransfer.dropEffect=Ae===Me?"move":"none"}else re.dataTransfer.dropEffect="move"},[A,L,z]),I=x.useCallback((re,de)=>{if(re.preventDefault(),E.current++,A){const ge=z.get(A.id),we=L[de],pe=we?z.get(we.id):null,Ae=(ge==null?void 0:ge.id)??null,Me=(pe==null?void 0:pe.id)??null;$(Ae===Me?de:null)}else $(de)},[A,L,z]),ee=x.useCallback(re=>{E.current--,E.current===0&&$(null)},[]),se=x.useCallback((re,de)=>{if(re.preventDefault(),!A)return;const ge=L.findIndex(we=>we.id===A.id);if(ge!==-1&&ge!==de){const we=z.get(A.id),pe=L[de],Ae=pe?z.get(pe.id):null,Me=(we==null?void 0:we.id)??null,Oe=(Ae==null?void 0:Ae.id)??null;Me===Oe&&R(ge,de)}_(null),$(null),E.current=0},[A,L,R,z]),O=re=>{const de=`common:status.${re}`;return i(de,{defaultValue:i("common:status.unknown")})},{currentVersion:V,latestVersion:J,relation:Q,isChecking:ae}=aH(),te=V;let Z=0;return r.jsxs("div",{className:"agent-bar",ref:g,children:[r.jsxs("div",{className:"agent-bar-scroll",ref:b,children:[r.jsxs("div",{className:"agent-bar-version",title:J?`Tide Commander v${te} (npm: v${J})`:`Tide Commander v${te}`,children:[r.jsxs("span",{children:["v",te]}),Q==="behind"&&J?r.jsxs("span",{className:"agent-bar-version-badge agent-bar-version-badge-behind",title:`Behind npm latest v${J}`,children:["npm v",J]}):Q==="ahead"&&J?r.jsxs("span",{className:"agent-bar-version-badge agent-bar-version-badge-ahead",title:`Ahead of npm latest v${J}`,children:["npm v",J]}):null,Q==="behind"?r.jsx("a",{href:"https://github.com/deivid11/tide-commander/releases",target:"_blank",rel:"noopener noreferrer",className:"agent-bar-version-status agent-bar-version-status-behind",title:i("common:agentBar.behindNpmTooltip",{defaultValue:"Current version is behind npm latest"}),children:i("common:agentBar.behindNpm",{defaultValue:"(behind npm)"})}):Q==="ahead"?r.jsx("span",{className:"agent-bar-version-status agent-bar-version-status-ahead",title:i("common:agentBar.aheadNpmTooltip",{defaultValue:"Current version is newer than npm latest"}),children:i("common:agentBar.aheadNpm",{defaultValue:"(ahead of npm)"})}):Q==="equal"?r.jsx("a",{href:"https://github.com/deivid11/tide-commander/releases",target:"_blank",rel:"noopener noreferrer",className:"agent-bar-version-status",children:i("common:agentBar.updated")}):ae?r.jsx("span",{className:"agent-bar-version-status",children:i("common:agentBar.checkingNpm",{defaultValue:"(checking npm)"})}):r.jsx("span",{className:"agent-bar-version-status",children:i("common:agentBar.unknownNpm",{defaultValue:"(npm unknown)"})}),f&&r.jsx("button",{className:"agent-bar-hmr-refresh",onClick:qA,title:"Refresh 3D Scene (HMR changes pending)",children:"↻"})]}),r.jsxs("div",{className:"agent-bar-list",ref:y,children:[r.jsxs("button",{className:"agent-bar-spawn-btn",onClick:e,title:i("common:agentBar.spawnNewAgent"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"+"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newAgent")})]}),r.jsxs("button",{className:"agent-bar-spawn-btn agent-bar-boss-btn",onClick:t,title:i("common:agentBar.spawnBoss"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"👑"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newBoss")})]}),r.jsxs("button",{className:"agent-bar-spawn-btn agent-bar-building-btn",onClick:n,title:i("common:agentBar.addNewBuilding"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"🏢"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newBuilding")})]}),r.jsxs("button",{className:"agent-bar-spawn-btn agent-bar-area-btn",onClick:a,title:i("common:agentBar.drawNewArea"),children:[r.jsx("span",{className:"agent-bar-spawn-icon",children:"▢"}),r.jsx("span",{className:"agent-bar-spawn-label",children:i("common:agentBar.newArea")})]}),B.map(re=>{var we,pe,Ae,Me,Oe;const de=re.agents,ge=!re.area;return r.jsxs("div",{className:`agent-bar-group ${ge?"unassigned":""}`,style:{borderColor:((we=re.area)==null?void 0:we.color)||void 0,background:re.area?`${re.area.color}15`:void 0},children:[r.jsx("div",{className:"agent-bar-area-label",children:r.jsx("span",{className:"agent-bar-area-name",style:{color:((pe=re.area)==null?void 0:pe.color)||"#888"},children:((Ae=re.area)==null?void 0:Ae.name)||i("common:agentBar.unassigned")})}),((Me=re.area)==null?void 0:Me.directories)&&re.area.directories.length>0&&r.jsx("div",{className:"agent-bar-folders",children:re.area.directories.map((Y,le)=>r.jsxs("div",{className:"agent-bar-folder-item",onClick:ce=>{ce.stopPropagation(),U.openFileExplorer(Y)},children:[r.jsx("span",{className:"agent-bar-folder-icon",children:"📁"}),r.jsxs("div",{className:"agent-bar-folder-tooltip",children:[r.jsx("div",{className:"agent-bar-folder-tooltip-path",children:Y}),r.jsx("div",{className:"agent-bar-folder-tooltip-hint",children:i("common:agentBar.clickToOpen")})]})]},le))}),de.map(Y=>{const le=Z++,ce=L.findIndex(ie=>ie.id===Y.id),be=o.selectedAgentIds.has(Y.id),me=Qr(Y.class,c),_e=o.lastPrompts.get(Y.id),xe=j.get(Y.id);xe&&(ss[xe.tool]||ss.default),_e!=null&&_e.text&&(_e.text.length>30?_e.text.substring(0,30)+"":_e.text);const Ke=(A==null?void 0:A.id)===Y.id,ue=M===ce;return r.jsxs("div",{ref:ie=>{ie?w.current.set(Y.id,ie):w.current.delete(Y.id)},className:`agent-bar-item ${be?"selected":""} ${Y.status} ${Y.isBoss?"is-boss":""} ${Ke?"dragging":""} ${ue?"drag-over":""}`,draggable:!0,onDragStart:ie=>G(ie,Y),onDragEnd:K,onDragOver:ie=>X(ie,ce),onDragEnter:ie=>I(ie,ce),onDragLeave:ee,onDrop:ie=>se(ie,ce),onClick:ie=>F(Y,ie),onDoubleClick:()=>H(Y),onMouseEnter:()=>S(Y),onMouseLeave:()=>S(null),title:`${Y.name} (${le+1}) - Drag to reorder within group`,children:[r.jsxs("div",{className:"agent-bar-avatar",children:[r.jsx("span",{className:"agent-bar-icon",children:me.icon}),r.jsx("span",{className:"agent-bar-status",style:{backgroundColor:ey(Y.status)}}),d.has(Y.id)&&r.jsx("span",{className:"agent-bar-notification-badge",title:"New output available - click to view"}),Y.status==="idle"&&Y.lastActivity>0&&r.jsx("span",{className:"agent-bar-idle-clock",style:{color:ef(Y.lastActivity)},title:tf(Y.lastActivity),children:"⏱"})]}),r.jsxs("span",{className:"agent-bar-hotkey",title:`Ctrl+${le+1}`,children:["^",le+1]})]},Y.id)})]},((Oe=re.area)==null?void 0:Oe.id)||"unassigned")})]})]}),Array.from(j.entries()).map(([re,de])=>{const ge=w.current.get(re);if(!ge)return null;const we=ge.getBoundingClientRect(),pe=ss[de.tool]||ss.default;return r.jsxs("div",{className:"agent-bar-tool-bubble",title:de.tool,style:{position:"fixed",left:we.left+we.width/2,bottom:window.innerHeight-we.top+8},children:[r.jsx("span",{className:"agent-bar-tool-icon",children:pe}),r.jsx("span",{className:"agent-bar-tool-name",children:de.tool})]},`tool-${re}-${de.key}`)}),k&&(()=>{const re=U.getAreaForAgent(k.id),de=o.lastPrompts.get(k.id),ge=Qr(k.class,c),we=U.getAgentSupervisorHistory(k.id),pe=we.length>0?we[we.length-1]:void 0,Ae=Date.now()-(k.createdAt||Date.now()),Me=Math.floor(Ae/6e4),Oe=Math.floor(Me/60),Y=Oe>0?`${Oe}h ${Me%60}m`:`${Me}m`,le=xe=>xe>=1e6?`${(xe/1e6).toFixed(1)}M`:xe>=1e3?`${(xe/1e3).toFixed(1)}K`:xe.toString(),ce=k.contextLimit>0?Math.round(k.contextUsed/k.contextLimit*100):0,be=xe=>{switch(xe){case"on_track":return"#4aff9e";case"completed":return"#4a9eff";case"stalled":return"#ff9e4a";case"blocked":return"#ff4a4a";case"idle":return"#888888";default:return"#888888"}},me=w.current.get(k.id),_e={};if(me){const xe=me.getBoundingClientRect();_e.position="fixed",_e.left=xe.left+xe.width/2,_e.bottom=window.innerHeight-xe.top+12}return r.jsxs("div",{className:"agent-bar-tooltip",style:_e,children:[r.jsxs("div",{className:"agent-bar-tooltip-header",children:[r.jsx("span",{className:"agent-bar-tooltip-icon",children:ge.icon}),r.jsxs("span",{className:"agent-bar-tooltip-name",children:[r.jsx("img",{src:k.provider==="codex"?"/assets/codex.png":"/assets/claude.png",alt:k.provider,className:"agent-bar-provider-icon",title:k.provider==="codex"?"Codex Agent":"Claude Agent"}),k.name]}),r.jsx("span",{className:"agent-bar-tooltip-status",style:{color:ey(k.status)},children:O(k.status)})]}),r.jsxs("div",{className:"agent-bar-tooltip-info",children:[r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.class"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[k.class," — ",ge.description]})]}),re&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.area"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-area",style:{color:re.color},children:re.name})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.directory"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-path",children:k.cwd})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.uptime"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",children:Y})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.tokens"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[le(k.tokensUsed)," ",i("common:agentPopup.used")]})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.context"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",style:{color:ce>80?"#ff4a4a":ce>60?"#ff9e4a":void 0},children:[le(k.contextUsed)," / ",le(k.contextLimit)," (",ce,"%)"]})]}),k.currentTool&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.tool"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-tool",children:[ss[k.currentTool]||ss.default," ",k.currentTool]})]}),k.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.task"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[k.currentTask.substring(0,150),k.currentTask.length>150?"...":""]})]}),k.lastAssignedTask&&!k.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.assignedTask"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[k.lastAssignedTask.substring(0,200),k.lastAssignedTask.length>200?"...":""]})]}),de&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.lastQuery"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[de.text.substring(0,300),de.text.length>300?"...":""]})]}),pe&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"agent-bar-tooltip-divider"}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:agentPopup.supervisor"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",style:{color:be(pe.analysis.progress)},children:pe.analysis.progress.replace("_"," ")})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.status"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:pe.analysis.statusDescription})]}),pe.analysis.recentWorkSummary&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.summary"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:[pe.analysis.recentWorkSummary.substring(0,300),pe.analysis.recentWorkSummary.length>300?"...":""]})]}),pe.analysis.concerns&&pe.analysis.concerns.length>0&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[i("common:labels.concerns"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-concerns",children:pe.analysis.concerns.join("; ")})]})]})]})]})})()]})}function rH({activeTool:s,onExit:e}){const{t}=Ue(["notifications","terminal"]);if(!s||s==="select")return null;const n=t(s==="rectangle"?"notifications:drawing.rectangleTool":"notifications:drawing.circleTool"),a=s==="rectangle"?"▭":"○";return r.jsxs("div",{className:"drawing-mode-indicator",children:[r.jsxs("div",{className:"drawing-mode-content",children:[r.jsx("span",{className:"drawing-mode-icon",children:a}),r.jsxs("div",{className:"drawing-mode-text",children:[r.jsxs("span",{className:"drawing-mode-title",children:[t("terminal:drawingMode.drawingArea"),": ",n]}),r.jsxs("span",{className:"drawing-mode-hint",children:[t("terminal:drawingMode.clickAndDrag")," • ",t("terminal:drawingMode.pressEscape")]})]})]}),r.jsx("button",{className:"drawing-mode-exit",onClick:e,title:t("terminal:drawingMode.exitDrawingMode"),children:"✕"})]})}const oH={idle:"common:status.idle",working:"common:status.working",waiting:"common:status.waiting",error:"common:status.error",offline:"common:status.offline"},Sb=s=>s>=1e6?`${(s/1e6).toFixed(1)}M`:s>=1e3?`${(s/1e3).toFixed(1)}K`:s.toString(),lH=s=>{switch(s){case"on_track":return"#4aff9e";case"completed":return"#4a9eff";case"stalled":return"#ff9e4a";case"blocked":return"#ff4a4a";case"idle":return"#888888";default:return"#888888"}},cH=x.memo(function({agent:e,screenPos:t,onClose:n}){const{t:a}=Ue(["common"]),i=ti(),o=U.getAreaForAgent(e.id),l=U.getState().lastPrompts.get(e.id),c=Qr(e.class,i),d=U.getAgentSupervisorHistory(e.id),f=d.length>0?d[d.length-1]:void 0,p=Date.now()-(e.createdAt||Date.now()),g=Math.floor(p/6e4),b=Math.floor(g/60),y=b>0?`${b}h ${g%60}m`:`${g}m`,w=e.contextLimit>0?Math.round(e.contextUsed/e.contextLimit*100):0,k=x.useMemo(()=>{let C=t.x-150,A=t.y-320-10;return typeof window<"u"&&(C<10?C=10:C+300>window.innerWidth-10&&(C=window.innerWidth-300-10),A<10&&(A=t.y+10)),{position:"fixed",left:C,top:A,zIndex:1e4,maxWidth:300,maxHeight:320,fontSize:"0.85em"}},[t.x,t.y]);return r.jsxs("div",{className:"agent-hover-popup",style:k,onMouseLeave:n,children:[r.jsxs("div",{className:"agent-bar-tooltip-header",children:[r.jsx("span",{className:"agent-bar-tooltip-icon",children:c.icon}),r.jsx("span",{className:"agent-bar-tooltip-name",children:e.name}),r.jsx("span",{className:"agent-bar-tooltip-status",style:{color:ey(e.status)},children:a(oH[e.status]||"common:status.unknown")})]}),r.jsxs("div",{className:"agent-bar-tooltip-info",children:[r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.class"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[e.class," — ",c.description]})]}),o&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.area"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-area",style:{color:o.color},children:o.name})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.directory"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-path",children:e.cwd})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.uptime"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",children:y})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.tokens"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[Sb(e.tokensUsed)," ",a("common:agentPopup.used")]})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.context"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",style:{color:w>80?"#ff4a4a":w>60?"#ff9e4a":void 0},children:[Sb(e.contextUsed)," / ",Sb(e.contextLimit)," (",w,"%)"]})]}),e.currentTool&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.tool"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-tool",children:[ss[e.currentTool]||ss.default," ",e.currentTool]})]}),e.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.task"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value",children:[e.currentTask.substring(0,150),e.currentTask.length>150?"...":""]})]}),e.lastAssignedTask&&!e.currentTask&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.assignedTask"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[e.lastAssignedTask.substring(0,200),e.lastAssignedTask.length>200?"...":""]})]}),l&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.lastQuery"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-query",children:[l.text.substring(0,300),l.text.length>300?"...":""]})]}),f&&r.jsxs(r.Fragment,{children:[r.jsx("div",{className:"agent-bar-tooltip-divider"}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:agentPopup.supervisor"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value",style:{color:lH(f.analysis.progress)},children:f.analysis.progress.replace("_"," ")})]}),r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.status"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:f.analysis.statusDescription})]}),f.analysis.recentWorkSummary&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.summary"),":"]}),r.jsxs("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-supervisor",children:[f.analysis.recentWorkSummary.substring(0,300),f.analysis.recentWorkSummary.length>300?"...":""]})]}),f.analysis.concerns&&f.analysis.concerns.length>0&&r.jsxs("div",{className:"agent-bar-tooltip-row",children:[r.jsxs("span",{className:"agent-bar-tooltip-label",children:[a("common:labels.concerns"),":"]}),r.jsx("span",{className:"agent-bar-tooltip-value agent-bar-tooltip-concerns",children:f.analysis.concerns.join("; ")})]})]})]})]})});function n1(s){if(s===0)return"0 B";const e=1024,t=["B","KB","MB","GB"],n=Math.floor(Math.log(s)/Math.log(e));return parseFloat((s/Math.pow(e,n)).toFixed(1))+" "+t[n]}function s1(s){const t=Date.now()-s,n=Math.floor(t/(1e3*60*60)),a=Math.floor(t%(1e3*60*60)/(1e3*60));return n>0?`${n}h ${a}m`:`${a}m`}const a1={30:"#1a1a1a",31:"#e74c3c",32:"#2ecc71",33:"#f39c12",34:"#3498db",35:"#9b59b6",36:"#00bcd4",37:"#ecf0f1",90:"#7f8c8d",91:"#ff6b6b",92:"#4ade80",93:"#fbbf24",94:"#60a5fa",95:"#c084fc",96:"#22d3ee",97:"#ffffff"};function uH(s){const e=[],t=/\x1B\[([0-9;]*)m/g;let n=0,a=null,i;for(;(i=t.exec(s))!==null;){if(i.index>n){const l=s.slice(n,i.index);a?e.push(r.jsx("span",{style:{color:a},children:l},e.length)):e.push(l)}const o=i[1].split(";").map(Number);for(const l of o)l===0||l===39?a=null:a1[l]&&(a=a1[l]);n=t.lastIndex}if(n<s.length){const o=s.slice(n);a?e.push(r.jsx("span",{style:{color:a},children:o},e.length)):e.push(o)}return e.length>0?e:[s]}const dH=x.memo(function({building:e,screenPos:t,onClose:n,onOpenSettings:a,onOpenLogsModal:i,onOpenUrlInModal:o}){var H,G,K,X,I,ee,se,O,V,J,Q,ae,te,Z,re,de,ge,we,pe,Ae;const{t:l}=Ue(["terminal","common"]),[c,d]=x.useState(!1),[f,p]=x.useState(null),[g,b]=x.useState(!1),y=x.useRef(null),w=x.useRef(f);w.current=f;const{buildingLogs:k}=En(),S=U.getBuildingLogs(e.id),j=(H=e.pm2)==null?void 0:H.enabled,C=(G=e.docker)==null?void 0:G.enabled,A=x.useRef(null),_=x.useRef(null),M=x.useCallback(Me=>{Me.preventDefault();const Oe=w.current?w.current.x:0,Y=w.current?w.current.y:0;y.current={mouseX:Me.clientX,mouseY:Me.clientY,popupX:Oe,popupY:Y},b(!0),A.current=le=>{if(!y.current)return;const ce=le.clientX-y.current.mouseX,be=le.clientY-y.current.mouseY;p({x:y.current.popupX+ce,y:y.current.popupY+be})},_.current=()=>{b(!1),y.current=null,A.current&&document.removeEventListener("mousemove",A.current),_.current&&document.removeEventListener("mouseup",_.current)},document.addEventListener("mousemove",A.current),document.addEventListener("mouseup",_.current)},[]);x.useEffect(()=>()=>{A.current&&document.removeEventListener("mousemove",A.current),_.current&&document.removeEventListener("mouseup",_.current)},[]);const $=Me=>{if(Me==="logs"){if((j||C)&&i){i();return}U.sendBuildingCommand(e.id,Me),d(!0)}else U.sendBuildingCommand(e.id,Me)},E=(Me,Oe)=>{if(Me){const Y=`http://localhost:${Me}`;Oe&&o?o(Y):window.open(Y,"_blank")}},D=((K=e.pm2Status)==null?void 0:K.ports)||[],P=((I=(X=e.dockerStatus)==null?void 0:X.ports)==null?void 0:I.map(Me=>Me.host))||[],R=j?D:C?P:[],L=j?!!((ee=e.pm2)!=null&&ee.script):C?!!((se=e.docker)!=null&&se.image)||((O=e.docker)==null?void 0:O.mode)==="compose"||((V=e.docker)==null?void 0:V.mode)==="existing":!!((J=e.commands)!=null&&J.start),z=j?!!((Q=e.pm2)!=null&&Q.script):C?!0:!!((ae=e.commands)!=null&&ae.stop),B=j?!!((te=e.pm2)!=null&&te.script):C?!0:!!((Z=e.commands)!=null&&Z.restart),F=x.useMemo(()=>{const Oe=c?400:250;let Y=t.x+20,le=t.y-80;return typeof window<"u"&&!f&&(t.x+20+280>window.innerWidth&&(Y=t.x-280-20),t.y-80<0?le=10:t.y-80+Oe>window.innerHeight&&(le=window.innerHeight-Oe-10)),{position:"fixed",left:Y+((f==null?void 0:f.x)||0),top:le+((f==null?void 0:f.y)||0),zIndex:1e3,cursor:g?"grabbing":void 0}},[t.x,t.y,c,f,g]);return r.jsxs("div",{className:"building-action-popup",style:F,onClick:Me=>Me.stopPropagation(),children:[r.jsxs("div",{className:`building-popup-header ${g?"dragging":""}`,onMouseDown:M,children:[r.jsx("span",{className:"building-popup-name",children:e.name}),R.length>0&&r.jsx("span",{className:"building-popup-ports",children:R.map(Me=>r.jsxs("a",{href:`http://localhost:${Me}`,className:"building-popup-port-link",onClick:Oe=>{Oe.preventDefault(),Oe.stopPropagation(),E(Me,Oe.altKey)},onMouseDown:Oe=>Oe.stopPropagation(),title:`Open http://localhost:${Me} (Alt+Click for modal)`,children:[":",Me]},Me))}),r.jsx("span",{className:"building-popup-status",style:{backgroundColor:Zr[e.status]},children:e.status}),r.jsx("button",{className:"building-popup-close",onClick:n,children:"x"})]}),j&&e.pm2Status&&r.jsxs("div",{className:"building-popup-metrics",children:[r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"PID"}),r.jsx("span",{className:"value",children:e.pm2Status.pid||"-"})]}),r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"CPU"}),r.jsxs("span",{className:"value",children:[((re=e.pm2Status.cpu)==null?void 0:re.toFixed(1))||"0","%"]})]}),r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"MEM"}),r.jsx("span",{className:"value",children:n1(e.pm2Status.memory||0)})]}),e.pm2Status.restarts!==void 0&&e.pm2Status.restarts>0&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"RST"}),r.jsx("span",{className:"value",children:e.pm2Status.restarts})]}),e.pm2Status.uptime&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"UP"}),r.jsx("span",{className:"value",children:s1(e.pm2Status.uptime)})]})]}),C&&e.dockerStatus&&r.jsxs("div",{className:"building-popup-metrics",children:[r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"ID"}),r.jsx("span",{className:"value",children:e.dockerStatus.containerId||"-"})]}),e.dockerStatus.cpu!==void 0&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"CPU"}),r.jsxs("span",{className:"value",children:[e.dockerStatus.cpu.toFixed(1),"%"]})]}),e.dockerStatus.memory!==void 0&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"MEM"}),r.jsx("span",{className:"value",children:n1(e.dockerStatus.memory)})]}),e.dockerStatus.health&&e.dockerStatus.health!=="none"&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"HEALTH"}),r.jsx("span",{className:"value",style:{color:e.dockerStatus.health==="healthy"?"#4ade80":e.dockerStatus.health==="unhealthy"?"#f87171":"#fbbf24"},children:e.dockerStatus.health==="healthy"?"✓":e.dockerStatus.health==="unhealthy"?"✗":"..."})]}),e.dockerStatus.startedAt&&r.jsxs("span",{className:"metric",children:[r.jsx("span",{className:"label",children:"UP"}),r.jsx("span",{className:"value",children:s1(e.dockerStatus.startedAt)})]})]}),C&&((de=e.dockerStatus)==null?void 0:de.services)&&e.dockerStatus.services.length>0&&r.jsx("div",{className:"building-popup-services",children:e.dockerStatus.services.map((Me,Oe)=>r.jsxs("span",{className:"service-item",title:`${Me.name}: ${Me.status}`,children:[r.jsx("span",{className:"service-indicator",style:{backgroundColor:Me.status==="running"?"#4ade80":"#f87171"}}),r.jsx("span",{className:"service-name",children:Me.name})]},Oe))}),(e.lastError||j&&((ge=e.pm2Status)==null?void 0:ge.status)==="errored"||C&&((we=e.dockerStatus)==null?void 0:we.status)==="dead")&&r.jsxs("div",{className:"building-popup-error",children:[e.lastError||l("terminal:building.processFailedToStart"),j&&((pe=e.pm2Status)==null?void 0:pe.restarts)&&e.pm2Status.restarts>5&&r.jsxs("span",{className:"error-hint",children:[" - ",l("terminal:building.checkLogsOrConfig")]}),C&&((Ae=e.dockerStatus)==null?void 0:Ae.health)==="unhealthy"&&r.jsxs("span",{className:"error-hint",children:[" - ",l("terminal:building.healthCheckFailing")]})]}),r.jsxs("div",{className:"building-popup-actions",children:[r.jsxs("button",{className:"action-btn start",onClick:()=>$("start"),disabled:!L||e.status==="running"||e.status==="starting",title:l(L?"terminal:buildingAction.start":"terminal:buildingAction.noStartCommand"),children:[r.jsx("span",{className:"icon",children:"▶"}),l("terminal:buildingAction.start")]}),r.jsxs("button",{className:"action-btn stop",onClick:()=>$("stop"),disabled:!z||e.status==="stopped"||e.status==="stopping",title:l(z?"terminal:buildingAction.stop":"terminal:buildingAction.noStopCommand"),children:[r.jsx("span",{className:"icon",children:"■"}),l("terminal:buildingAction.stop")]}),r.jsxs("button",{className:"action-btn restart",onClick:()=>$("restart"),disabled:!B,title:l(B?"terminal:buildingAction.restart":"terminal:buildingAction.noRestartCommand"),children:[r.jsx("span",{className:"icon",children:"↺"}),l("terminal:buildingAction.restart")]}),r.jsxs("button",{className:"action-btn logs",onClick:()=>$("logs"),title:l("terminal:buildingAction.viewLogs"),children:[r.jsx("span",{className:"icon",children:"📄"}),l("terminal:logs.title")]}),R.length===1&&r.jsxs("button",{className:"action-btn open-url",onClick:Me=>E(R[0],Me.altKey),title:`Open http://localhost:${R[0]} (Alt+Click for modal)`,children:[r.jsx("span",{className:"icon",children:"🔗"}),l("terminal:buildingAction.openInBrowser")]}),R.length>1&&r.jsxs("div",{className:"action-btn-group",children:[r.jsxs("span",{className:"action-btn-label",children:[l("terminal:buildingAction.openInBrowser"),":"]}),R.map(Me=>r.jsxs("button",{className:"action-btn open-url port-btn",onClick:Oe=>E(Me,Oe.altKey),title:`Open http://localhost:${Me} (Alt+Click for modal)`,children:[":",Me]},Me))]})]}),c&&S.length>0&&r.jsxs("div",{className:"building-popup-logs",children:[r.jsxs("div",{className:"logs-header",children:[r.jsx("span",{children:l("terminal:logs.title")}),r.jsx("button",{onClick:()=>U.clearBuildingLogs(e.id),children:l("terminal:logs.clear")})]}),r.jsx("div",{className:"logs-content",children:S.slice(-50).map((Me,Oe)=>r.jsx("pre",{children:uH(Me)},Oe))})]}),r.jsx("button",{className:"building-popup-settings",onClick:a,children:l("terminal:buildingAction.fullSettings")})]})});function hH(s){if(s===0)return"0 B";const e=1024,t=["B","KB","MB","GB"],n=Math.floor(Math.log(s)/Math.log(e));return parseFloat((s/Math.pow(e,n)).toFixed(1))+" "+t[n]}function pH(s){const t=Date.now()-s,n=Math.floor(t/(1e3*60*60)),a=Math.floor(t%(1e3*60*60)/(1e3*60));return n>0?`${n}h ${a}m`:`${a}m`}const fH=x.memo(function({building:e,screenPos:t,onClose:n,onOpenSettings:a,onOpenLogsModal:i,onOpenUrlInModal:o}){const{t:l}=Ue(["terminal","common"]),[c,d]=x.useState(null),[f,p]=x.useState(!1),g=x.useRef(null),b=x.useRef(c);b.current=c;const{buildings:y}=En(),k=(e.subordinateBuildingIds||[]).map(D=>y.get(D)).filter(D=>D!==void 0),S=x.useRef(null),j=x.useRef(null),C=x.useCallback(D=>{D.preventDefault();const P=b.current?b.current.x:0,R=b.current?b.current.y:0;g.current={mouseX:D.clientX,mouseY:D.clientY,popupX:P,popupY:R},p(!0),S.current=L=>{if(!g.current)return;const z=L.clientX-g.current.mouseX,B=L.clientY-g.current.mouseY;d({x:g.current.popupX+z,y:g.current.popupY+B})},j.current=()=>{p(!1),g.current=null,S.current&&document.removeEventListener("mousemove",S.current),j.current&&document.removeEventListener("mouseup",j.current)},document.addEventListener("mousemove",S.current),document.addEventListener("mouseup",j.current)},[]);x.useEffect(()=>()=>{S.current&&document.removeEventListener("mousemove",S.current),j.current&&document.removeEventListener("mouseup",j.current)},[]);const A=D=>{U.sendBossBuildingCommand(e.id,D)},_=k.reduce((D,P)=>(D[P.status]=(D[P.status]||0)+1,D),{}),M=k.some(D=>{var P;return(P=D.pm2)==null?void 0:P.enabled}),$=(D,P)=>{const R=`http://localhost:${D}`;P&&o?o(R):window.open(R,"_blank")},E=x.useMemo(()=>{let R=t.x+20,L=t.y-80;return typeof window<"u"&&!c&&(t.x+20+340>window.innerWidth&&(R=t.x-340-20),t.y-80<0?L=10:t.y-80+350>window.innerHeight&&(L=window.innerHeight-350-10)),{position:"fixed",left:R+((c==null?void 0:c.x)||0),top:L+((c==null?void 0:c.y)||0),zIndex:1e3,cursor:f?"grabbing":void 0}},[t.x,t.y,c,f]);return r.jsxs("div",{className:"building-action-popup boss-building-popup",style:E,onClick:D=>D.stopPropagation(),children:[r.jsxs("div",{className:`building-popup-header boss-header ${f?"dragging":""}`,onMouseDown:C,children:[r.jsx("span",{className:"boss-icon",children:"👑"}),r.jsx("span",{className:"building-popup-name",children:e.name}),r.jsx("span",{className:"subordinate-count",children:l("terminal:building.unitsCount",{count:k.length})}),r.jsx("button",{className:"building-popup-close",onClick:n,children:"x"})]}),r.jsxs("div",{className:"boss-status-overview",children:[Object.entries(_).map(([D,P])=>r.jsxs("span",{className:"status-badge",style:{backgroundColor:Zr[D]||"#666"},children:[P," ",D]},D)),k.length===0&&r.jsx("span",{className:"no-subordinates",children:l("terminal:building.noSubordinates")})]}),k.length>0&&r.jsx("div",{className:"subordinate-list",children:k.map(D=>{var P,R,L;return r.jsxs("div",{className:"subordinate-item",children:[r.jsx("span",{className:"sub-status-dot",style:{backgroundColor:Zr[D.status]}}),r.jsx("span",{className:"sub-name",children:D.name}),((P=D.pm2Status)==null?void 0:P.ports)&&D.pm2Status.ports.length>0&&r.jsx("span",{className:"sub-port",children:D.pm2Status.ports.map(z=>r.jsxs("a",{href:`http://localhost:${z}`,className:"building-popup-port-link",onClick:B=>{B.preventDefault(),B.stopPropagation(),$(z,B.altKey)},title:`Open http://localhost:${z} (Alt+Click for modal)`,children:[":",z]},z))}),D.pm2Status&&r.jsxs("span",{className:"sub-metrics",children:[(R=D.pm2Status.cpu)==null?void 0:R.toFixed(0),"% | ",hH(D.pm2Status.memory||0)]}),((L=D.pm2Status)==null?void 0:L.uptime)&&r.jsx("span",{className:"sub-uptime",children:pH(D.pm2Status.uptime)})]},D.id)})}),r.jsxs("div",{className:"building-popup-actions boss-actions",children:[r.jsxs("button",{className:"action-btn start",onClick:()=>A("start_all"),disabled:k.length===0,title:l("terminal:building.startAllSubs"),children:[r.jsx("span",{className:"icon",children:"▶"}),l("terminal:building.startAll")]}),r.jsxs("button",{className:"action-btn stop",onClick:()=>A("stop_all"),disabled:k.length===0,title:l("terminal:building.stopAllSubs"),children:[r.jsx("span",{className:"icon",children:"■"}),l("terminal:building.stopAll")]}),r.jsxs("button",{className:"action-btn restart",onClick:()=>A("restart_all"),disabled:k.length===0,title:l("terminal:building.restartAllSubs"),children:[r.jsx("span",{className:"icon",children:"↺"}),l("terminal:building.restartAll")]}),M&&r.jsxs("button",{className:"action-btn logs",onClick:i,title:l("terminal:building.viewUnifiedLogs"),children:[r.jsx("span",{className:"icon",children:"📄"}),l("terminal:building.logs")]})]}),r.jsx("button",{className:"building-popup-settings",onClick:a,children:l("terminal:building.fullSettings")})]})}),mH=x.memo(function({building:e,screenPos:t,onClose:n,onOpenSettings:a,onOpenDatabasePanel:i}){var _;const{t:o}=Ue(["terminal","common"]),[l,c]=x.useState(null),[d,f]=x.useState(!1),p=x.useRef(null),g=x.useRef(l);g.current=l;const b=lf(e.id),y=((_=e.database)==null?void 0:_.connections)??[],w=x.useRef(null),k=x.useRef(null),S=x.useCallback(M=>{M.preventDefault();const $=g.current?g.current.x:0,E=g.current?g.current.y:0;p.current={mouseX:M.clientX,mouseY:M.clientY,popupX:$,popupY:E},f(!0),w.current=D=>{if(!p.current)return;const P=D.clientX-p.current.mouseX,R=D.clientY-p.current.mouseY;c({x:p.current.popupX+P,y:p.current.popupY+R})},k.current=()=>{f(!1),p.current=null,w.current&&document.removeEventListener("mousemove",w.current),k.current&&document.removeEventListener("mouseup",k.current)},document.addEventListener("mousemove",w.current),document.addEventListener("mouseup",k.current)},[]);x.useEffect(()=>()=>{w.current&&document.removeEventListener("mousemove",w.current),k.current&&document.removeEventListener("mouseup",k.current)},[]);const j=M=>{U.testDatabaseConnection(e.id,M)},C=M=>b.connectionStatus.get(M),A=x.useMemo(()=>{let E=t.x+20,D=t.y-80;return typeof window<"u"&&!l&&(t.x+20+320>window.innerWidth&&(E=t.x-320-20),t.y-80<0?D=10:t.y-80+300>window.innerHeight&&(D=window.innerHeight-300-10)),{position:"fixed",left:E+((l==null?void 0:l.x)||0),top:D+((l==null?void 0:l.y)||0),zIndex:1e3,cursor:d?"grabbing":void 0}},[t.x,t.y,l,d]);return r.jsxs("div",{className:"building-action-popup database-building-popup",style:A,onClick:M=>M.stopPropagation(),children:[r.jsxs("div",{className:`building-popup-header database-header ${d?"dragging":""}`,onMouseDown:S,children:[r.jsx("span",{className:"database-icon",children:"🗄️"}),r.jsx("span",{className:"building-popup-name",children:e.name}),r.jsx("span",{className:"connection-count",children:o("terminal:building.connCount",{count:y.length})}),r.jsx("button",{className:"building-popup-close",onClick:n,children:"x"})]}),y.length>0?r.jsx("div",{className:"database-connection-list",children:y.map(M=>{const $=C(M.id);return r.jsxs("div",{className:"database-connection-item",children:[r.jsx("span",{className:"conn-engine",children:M.engine==="mysql"?"🐬":"🐘"}),r.jsx("span",{className:"conn-name",children:M.name}),r.jsxs("span",{className:"conn-host",children:[M.host,":",M.port]}),$&&r.jsx("span",{className:`conn-status ${$.connected?"connected":"disconnected"}`,children:$.connected?"●":"○"}),r.jsx("button",{className:"conn-test-btn",onClick:()=>j(M.id),title:o("terminal:building.testConnection"),children:"↻"})]},M.id)})}):r.jsxs("div",{className:"database-no-connections",children:[r.jsx("p",{children:o("terminal:building.noConnections")}),r.jsx("p",{className:"hint",children:o("terminal:building.clickSettingsToAdd")})]}),r.jsxs("div",{className:"building-popup-actions database-actions",children:[r.jsxs("button",{className:"action-btn query",onClick:i,disabled:y.length===0,title:o("terminal:building.openDbExplorer"),children:[r.jsx("span",{className:"icon",children:"⌨"}),o("terminal:building.query")]}),r.jsxs("button",{className:"action-btn test-all",onClick:()=>y.forEach(M=>j(M.id)),disabled:y.length===0,title:o("terminal:building.testAllConnections"),children:[r.jsx("span",{className:"icon",children:"↻"}),o("terminal:building.testAll")]})]}),r.jsx("button",{className:"building-popup-settings",onClick:a,children:o("common:buttons.settings")})]})}),gH=({building:s,connections:e,activeConnectionId:t,activeDatabase:n,collapsed:a,onToggleCollapse:i,onConnectionChange:o,onDatabaseChange:l,onInsertTable:c,onSelectTableQuery:d})=>{const{t:f}=Ue(["terminal"]),p=lf(s.id),[g,b]=x.useState(new Set),[y,w]=x.useState(""),[k,S]=x.useState(!1),[j,C]=x.useState(null),A=x.useRef(null),_=x.useRef(null),M=t?p.databases.get(t)??[]:[],$=t&&n?`${t}:${n}`:"",E=$?p.tables.get($)??[]:[],D=t?p.connectionStatus.get(t):void 0,P=x.useMemo(()=>{if(!y.trim())return M;const z=y.toLowerCase();return M.filter(B=>B.toLowerCase().includes(z))},[M,y]);x.useEffect(()=>{const z=B=>{_.current&&!_.current.contains(B.target)&&S(!1)};return k&&document.addEventListener("mousedown",z),()=>document.removeEventListener("mousedown",z)},[k]),x.useEffect(()=>{t&&!D&&U.testDatabaseConnection(s.id,t)},[s.id,t,D]),x.useEffect(()=>{t&&(D!=null&&D.connected)&&M.length===0&&U.listDatabases(s.id,t)},[s.id,t,D==null?void 0:D.connected,M.length]),x.useEffect(()=>{t&&n&&E.length===0&&U.listTables(s.id,t,n)},[s.id,t,n,E.length]),x.useEffect(()=>{C(null)},[t,n]);const R=x.useCallback(z=>{b(B=>{const F=new Set(B);if(F.has(z))F.delete(z);else if(F.add(z),t&&n){const H=`${t}:${n}:${z}`;p.tableSchemas.has(H)||U.getTableSchema(s.id,t,n,z)}return F})},[s.id,t,n,p.tableSchemas]),L=z=>{if(!t||!n)return null;const B=`${t}:${n}:${z}`;return p.tableSchemas.get(B)};return a?r.jsx("div",{className:"database-sidebar database-sidebar--collapsed",children:r.jsx("button",{className:"database-sidebar__toggle",onClick:i,title:f("terminal:database.expandSidebar"),children:"»"})}):r.jsxs("div",{className:"database-sidebar",children:[r.jsxs("div",{className:"database-sidebar__header",children:[r.jsx("span",{children:f("terminal:database.explorer")}),r.jsx("button",{className:"database-sidebar__toggle",onClick:i,title:f("terminal:database.collapseSidebar"),children:"«"})]}),r.jsxs("div",{className:"database-sidebar__section",children:[r.jsx("div",{className:"database-sidebar__section-title",children:f("terminal:database.connection")}),r.jsx("select",{className:"database-sidebar__select",value:t||"",onChange:z=>o(z.target.value),children:e.length===0?r.jsx("option",{value:"",children:f("terminal:database.noConnections")}):e.map(z=>r.jsxs("option",{value:z.id,children:[z.engine==="mysql"?"🐬":"🐘"," ",z.name]},z.id))}),D&&r.jsx("div",{className:`database-sidebar__status ${D.connected?"database-sidebar__status--connected":"database-sidebar__status--error"}`,children:D.connected?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"database-sidebar__status-icon",children:"✓"}),f("terminal:database.connected"),D.serverVersion&&r.jsxs("span",{className:"database-sidebar__version",children:["(",D.serverVersion,")"]})]}):r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"database-sidebar__status-icon",children:"✗"}),D.error||f("terminal:database.disconnected")]})})]}),M.length>0&&r.jsxs("div",{className:"database-sidebar__section",children:[r.jsx("div",{className:"database-sidebar__section-title",children:f("terminal:database.databaseTitle")}),r.jsxs("div",{className:"database-sidebar__searchable-select",ref:_,children:[r.jsx("input",{ref:A,className:"database-sidebar__search-input",type:"text",value:k?y:n||"",placeholder:f("terminal:database.selectDatabase"),onChange:z=>{w(z.target.value),k||S(!0)},onFocus:()=>{S(!0),w("")},onKeyDown:z=>{var B,F;z.key==="Escape"?(S(!1),w(""),(B=A.current)==null||B.blur()):z.key==="Enter"&&P.length===1&&(l(P[0]),S(!1),w(""),(F=A.current)==null||F.blur())}}),k&&r.jsx("div",{className:"database-sidebar__dropdown",children:P.length===0?r.jsx("div",{className:"database-sidebar__dropdown-empty",children:"No matches"}):P.map(z=>r.jsx("div",{className:`database-sidebar__dropdown-item ${z===n?"database-sidebar__dropdown-item--active":""}`,onMouseDown:B=>{B.preventDefault(),l(z),S(!1),w("")},children:z},z))})]})]}),E.length>0&&r.jsxs("div",{className:"database-sidebar__section database-sidebar__section--tables",children:[r.jsx("div",{className:"database-sidebar__section-title",children:f("terminal:database.tablesCount",{count:E.length})}),r.jsx("div",{className:"database-sidebar__tables",children:E.map(z=>{const B=g.has(z.name),F=B?L(z.name):null;return r.jsxs("div",{className:"database-sidebar__table",children:[r.jsxs("div",{className:"database-sidebar__table-header",children:[r.jsx("button",{className:"database-sidebar__table-expand",onClick:()=>R(z.name),title:B?"Collapse table schema":"Expand table schema",children:B?"▼":"▶"}),r.jsx("span",{className:"database-sidebar__table-icon",children:z.type==="view"?"👁":"📋"}),r.jsx("span",{className:`database-sidebar__table-name ${j===z.name?"database-sidebar__table-name--selected":""}`,onClick:()=>C(z.name),onDoubleClick:()=>{C(z.name),d(z.name)},children:z.name}),r.jsx("button",{className:"database-sidebar__table-insert",onClick:H=>{H.stopPropagation(),c(z.name)},title:f("terminal:database.insertTableName"),children:"+"})]}),B&&F&&r.jsx("div",{className:"database-sidebar__table-columns",children:F.columns.map(H=>r.jsxs("div",{className:"database-sidebar__column",onClick:()=>c(H.name),title:`${H.type}${H.nullable?" NULL":" NOT NULL"}${H.primaryKey?" PK":""}`,children:[r.jsx("span",{className:"database-sidebar__column-icon",children:H.primaryKey?"🔑":""}),r.jsx("span",{className:"database-sidebar__column-name",children:H.name}),r.jsx("span",{className:"database-sidebar__column-type",children:H.type})]},H.name))})]},z.name)})})]})]})},bH=({query:s,onChange:e,onExecute:t,isExecuting:n,disabled:a,autoFocus:i=!0})=>{const{t:o}=Ue(["terminal"]),l=x.useRef(null),c=x.useRef(null);x.useEffect(()=>{if(i&&!a&&l.current){const b=setTimeout(()=>{var y;(y=l.current)==null||y.focus()},100);return()=>clearTimeout(b)}},[i,a]);const d=x.useCallback(b=>{const y=b.currentTarget;c.current&&(c.current.scrollLeft=y.scrollLeft,c.current.scrollTop=y.scrollTop)},[]),f=x.useCallback(b=>{if((b.ctrlKey||b.metaKey)&&b.key==="Enter"&&(b.preventDefault(),!a&&!n&&t()),b.key==="Tab"){b.preventDefault();const y=b.currentTarget,w=y.selectionStart,k=y.selectionEnd,S=s.substring(0,w)+" "+s.substring(k);e(S),setTimeout(()=>{y.selectionStart=y.selectionEnd=w+2},0)}},[s,e,t,a,n]),p=x.useMemo(()=>{if(!s)return"";try{return el.highlight(s,el.languages.sql,"sql")}catch{return s}},[s]),g=x.useMemo(()=>s.split(`
|
|
232
232
|
`).map((y,w)=>w+1),[s]);return r.jsxs("div",{className:"query-editor",children:[r.jsxs("div",{className:"query-editor__toolbar",children:[r.jsx("button",{className:"query-editor__execute",onClick:t,disabled:a||n||!s.trim(),title:o("terminal:database.executeShortcut"),children:n?r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"query-editor__spinner"}),o("common:status.running")]}):r.jsxs(r.Fragment,{children:[r.jsx("span",{className:"query-editor__play-icon",children:"▶"}),o("terminal:database.runQuery")]})}),r.jsx("div",{className:"query-editor__hint",children:o("terminal:database.pressCtrlEnter")})]}),r.jsxs("div",{className:"query-editor__input-wrapper",children:[r.jsx("div",{className:"query-editor__line-numbers",children:g.map(b=>r.jsx("span",{children:b},b))}),r.jsxs("div",{className:"query-editor__editor",children:[r.jsx("pre",{ref:c,className:"query-editor__highlight","aria-hidden":"true",dangerouslySetInnerHTML:{__html:p+`
|
|
233
233
|
`}}),r.jsx("textarea",{ref:l,className:"query-editor__textarea",value:s,onChange:b=>e(b.target.value),onKeyDown:f,onScroll:d,placeholder:o(a?"terminal:database.selectDbPlaceholder":"terminal:database.enterQueryPlaceholder"),disabled:a,spellCheck:!1,autoComplete:"off",autoCorrect:"off",autoCapitalize:"off"})]})]})]})};function $T(s){var e,t,n="";if(typeof s=="string"||typeof s=="number")n+=s;else if(typeof s=="object")if(Array.isArray(s)){var a=s.length;for(e=0;e<a;e++)s[e]&&(t=$T(s[e]))&&(n&&(n+=" "),n+=t)}else for(t in s)s[t]&&(n&&(n+=" "),n+=t);return n}function ms(){for(var s,e,t=0,n="",a=arguments.length;t<a;t++)(s=arguments[t])&&(e=$T(s))&&(n&&(n+=" "),n+=e);return n}const HT=6048e5,yH=864e5,yf=6e4,xf=36e5,xH=1e3,i1=Symbol.for("constructDateFrom");function jn(s,e){return typeof s=="function"?s(e):s&&typeof s=="object"&&i1 in s?s[i1](e):s instanceof Date?new s.constructor(e):new Date(e)}function bt(s,e){return jn(e||s,s)}function Za(s,e,t){const n=bt(s,t==null?void 0:t.in);return isNaN(e)?jn((t==null?void 0:t.in)||s,NaN):(e&&n.setDate(n.getDate()+e),n)}function Ja(s,e,t){const n=bt(s,t==null?void 0:t.in);if(isNaN(e))return jn(s,NaN);if(!e)return n;const a=n.getDate(),i=jn(s,n.getTime());i.setMonth(n.getMonth()+e+1,0);const o=i.getDate();return a>=o?i:(n.setFullYear(i.getFullYear(),i.getMonth(),a),n)}function UT(s,e,t){return jn(s,+bt(s)+e)}function vH(s,e,t){return UT(s,e*xf)}let wH={};function il(){return wH}function sr(s,e){var l,c,d,f;const t=il(),n=(e==null?void 0:e.weekStartsOn)??((c=(l=e==null?void 0:e.locale)==null?void 0:l.options)==null?void 0:c.weekStartsOn)??t.weekStartsOn??((f=(d=t.locale)==null?void 0:d.options)==null?void 0:f.weekStartsOn)??0,a=bt(s,e==null?void 0:e.in),i=a.getDay(),o=(i<n?7:0)+i-n;return a.setDate(a.getDate()-o),a.setHours(0,0,0,0),a}function pc(s,e){return sr(s,{...e,weekStartsOn:1})}function GT(s,e){const t=bt(s,e==null?void 0:e.in),n=t.getFullYear(),a=jn(t,0);a.setFullYear(n+1,0,4),a.setHours(0,0,0,0);const i=pc(a),o=jn(t,0);o.setFullYear(n,0,4),o.setHours(0,0,0,0);const l=pc(o);return t.getTime()>=i.getTime()?n+1:t.getTime()>=l.getTime()?n:n-1}function Lp(s){const e=bt(s),t=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return t.setUTCFullYear(e.getFullYear()),+s-+t}function cr(s,...e){const t=jn.bind(null,e.find(n=>typeof n=="object"));return e.map(t)}function tl(s,e){const t=bt(s,e==null?void 0:e.in);return t.setHours(0,0,0,0),t}function fc(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e),i=tl(n),o=tl(a),l=+i-Lp(i),c=+o-Lp(o);return Math.round((l-c)/yH)}function kH(s,e){const t=GT(s,e),n=jn(s,0);return n.setFullYear(t,0,4),n.setHours(0,0,0,0),pc(n)}function od(s,e,t){const n=bt(s,t==null?void 0:t.in);return n.setTime(n.getTime()+e*yf),n}function Gx(s,e,t){return Ja(s,e*3,t)}function SH(s,e,t){return UT(s,e*1e3)}function Ip(s,e,t){return Za(s,e*7,t)}function Qa(s,e,t){return Ja(s,e*12,t)}function r1(s,e){let t,n=e==null?void 0:e.in;return s.forEach(a=>{!n&&typeof a=="object"&&(n=jn.bind(null,a));const i=bt(a,n);(!t||t<i||isNaN(+i))&&(t=i)}),jn(n,t||NaN)}function o1(s,e){let t,n=e==null?void 0:e.in;return s.forEach(a=>{!n&&typeof a=="object"&&(n=jn.bind(null,a));const i=bt(a,n);(!t||t>i||isNaN(+i))&&(t=i)}),jn(n,t||NaN)}function jH(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e);return+tl(n)==+tl(a)}function ki(s){return s instanceof Date||typeof s=="object"&&Object.prototype.toString.call(s)==="[object Date]"}function mc(s){return!(!ki(s)&&typeof s!="number"||isNaN(+bt(s)))}function Bp(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e),i=n.getFullYear()-a.getFullYear(),o=n.getMonth()-a.getMonth();return i*12+o}function Hr(s,e){const t=bt(s,e==null?void 0:e.in);return Math.trunc(t.getMonth()/3)+1}function Fp(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e),i=n.getFullYear()-a.getFullYear(),o=Hr(n)-Hr(a);return i*4+o}function zp(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e);return n.getFullYear()-a.getFullYear()}function CH(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e),i=l1(n,a),o=Math.abs(fc(n,a));n.setDate(n.getDate()-i*o);const l=+(l1(n,a)===-i),c=i*(o-l);return c===0?0:c}function l1(s,e){const t=s.getFullYear()-e.getFullYear()||s.getMonth()-e.getMonth()||s.getDate()-e.getDate()||s.getHours()-e.getHours()||s.getMinutes()-e.getMinutes()||s.getSeconds()-e.getSeconds()||s.getMilliseconds()-e.getMilliseconds();return t<0?-1:t>0?1:t}function WT(s,e){const t=bt(s,e==null?void 0:e.in);return t.setHours(23,59,59,999),t}function qT(s,e){const t=bt(s,e==null?void 0:e.in),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function Py(s,e){const t=bt(s,e==null?void 0:e.in),n=t.getMonth(),a=n-n%3;return t.setMonth(a,1),t.setHours(0,0,0,0),t}function YT(s,e){const t=bt(s,e==null?void 0:e.in);return t.setDate(1),t.setHours(0,0,0,0),t}function VT(s,e){const t=bt(s,e==null?void 0:e.in),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}function vf(s,e){const t=bt(s,e==null?void 0:e.in);return t.setFullYear(t.getFullYear(),0,1),t.setHours(0,0,0,0),t}function NH(s,e){var l,c;const t=il(),n=t.weekStartsOn??((c=(l=t.locale)==null?void 0:l.options)==null?void 0:c.weekStartsOn)??0,a=bt(s,e==null?void 0:e.in),i=a.getDay(),o=(i<n?-7:0)+6-(i-n);return a.setDate(a.getDate()+o),a.setHours(23,59,59,999),a}const AH={lessThanXSeconds:{one:"less than a second",other:"less than {{count}} seconds"},xSeconds:{one:"1 second",other:"{{count}} seconds"},halfAMinute:"half a minute",lessThanXMinutes:{one:"less than a minute",other:"less than {{count}} minutes"},xMinutes:{one:"1 minute",other:"{{count}} minutes"},aboutXHours:{one:"about 1 hour",other:"about {{count}} hours"},xHours:{one:"1 hour",other:"{{count}} hours"},xDays:{one:"1 day",other:"{{count}} days"},aboutXWeeks:{one:"about 1 week",other:"about {{count}} weeks"},xWeeks:{one:"1 week",other:"{{count}} weeks"},aboutXMonths:{one:"about 1 month",other:"about {{count}} months"},xMonths:{one:"1 month",other:"{{count}} months"},aboutXYears:{one:"about 1 year",other:"about {{count}} years"},xYears:{one:"1 year",other:"{{count}} years"},overXYears:{one:"over 1 year",other:"over {{count}} years"},almostXYears:{one:"almost 1 year",other:"almost {{count}} years"}},MH=(s,e,t)=>{let n;const a=AH[s];return typeof a=="string"?n=a:e===1?n=a.one:n=a.other.replace("{{count}}",e.toString()),t!=null&&t.addSuffix?t.comparison&&t.comparison>0?"in "+n:n+" ago":n};function jb(s){return(e={})=>{const t=e.width?String(e.width):s.defaultWidth;return s.formats[t]||s.formats[s.defaultWidth]}}const TH={full:"EEEE, MMMM do, y",long:"MMMM do, y",medium:"MMM d, y",short:"MM/dd/yyyy"},EH={full:"h:mm:ss a zzzz",long:"h:mm:ss a z",medium:"h:mm:ss a",short:"h:mm a"},_H={full:"{{date}} 'at' {{time}}",long:"{{date}} 'at' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},DH={date:jb({formats:TH,defaultWidth:"full"}),time:jb({formats:EH,defaultWidth:"full"}),dateTime:jb({formats:_H,defaultWidth:"full"})},PH={lastWeek:"'last' eeee 'at' p",yesterday:"'yesterday at' p",today:"'today at' p",tomorrow:"'tomorrow at' p",nextWeek:"eeee 'at' p",other:"P"},RH=(s,e,t,n)=>PH[s];function Mu(s){return(e,t)=>{const n=t!=null&&t.context?String(t.context):"standalone";let a;if(n==="formatting"&&s.formattingValues){const o=s.defaultFormattingWidth||s.defaultWidth,l=t!=null&&t.width?String(t.width):o;a=s.formattingValues[l]||s.formattingValues[o]}else{const o=s.defaultWidth,l=t!=null&&t.width?String(t.width):s.defaultWidth;a=s.values[l]||s.values[o]}const i=s.argumentCallback?s.argumentCallback(e):e;return a[i]}}const OH={narrow:["B","A"],abbreviated:["BC","AD"],wide:["Before Christ","Anno Domini"]},LH={narrow:["1","2","3","4"],abbreviated:["Q1","Q2","Q3","Q4"],wide:["1st quarter","2nd quarter","3rd quarter","4th quarter"]},IH={narrow:["J","F","M","A","M","J","J","A","S","O","N","D"],abbreviated:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],wide:["January","February","March","April","May","June","July","August","September","October","November","December"]},BH={narrow:["S","M","T","W","T","F","S"],short:["Su","Mo","Tu","We","Th","Fr","Sa"],abbreviated:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],wide:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]},FH={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"}},zH={narrow:{am:"a",pm:"p",midnight:"mi",noon:"n",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},abbreviated:{am:"AM",pm:"PM",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"},wide:{am:"a.m.",pm:"p.m.",midnight:"midnight",noon:"noon",morning:"in the morning",afternoon:"in the afternoon",evening:"in the evening",night:"at night"}},$H=(s,e)=>{const t=Number(s),n=t%100;if(n>20||n<10)switch(n%10){case 1:return t+"st";case 2:return t+"nd";case 3:return t+"rd"}return t+"th"},HH={ordinalNumber:$H,era:Mu({values:OH,defaultWidth:"wide"}),quarter:Mu({values:LH,defaultWidth:"wide",argumentCallback:s=>s-1}),month:Mu({values:IH,defaultWidth:"wide"}),day:Mu({values:BH,defaultWidth:"wide"}),dayPeriod:Mu({values:FH,defaultWidth:"wide",formattingValues:zH,defaultFormattingWidth:"wide"})};function Tu(s){return(e,t={})=>{const n=t.width,a=n&&s.matchPatterns[n]||s.matchPatterns[s.defaultMatchWidth],i=e.match(a);if(!i)return null;const o=i[0],l=n&&s.parsePatterns[n]||s.parsePatterns[s.defaultParseWidth],c=Array.isArray(l)?GH(l,p=>p.test(o)):UH(l,p=>p.test(o));let d;d=s.valueCallback?s.valueCallback(c):c,d=t.valueCallback?t.valueCallback(d):d;const f=e.slice(o.length);return{value:d,rest:f}}}function UH(s,e){for(const t in s)if(Object.prototype.hasOwnProperty.call(s,t)&&e(s[t]))return t}function GH(s,e){for(let t=0;t<s.length;t++)if(e(s[t]))return t}function WH(s){return(e,t={})=>{const n=e.match(s.matchPattern);if(!n)return null;const a=n[0],i=e.match(s.parsePattern);if(!i)return null;let o=s.valueCallback?s.valueCallback(i[0]):i[0];o=t.valueCallback?t.valueCallback(o):o;const l=e.slice(a.length);return{value:o,rest:l}}}const qH=/^(\d+)(th|st|nd|rd)?/i,YH=/\d+/i,VH={narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},KH={any:[/^b/i,/^(a|c)/i]},XH={narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},ZH={any:[/1/i,/2/i,/3/i,/4/i]},QH={narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},JH={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},eU={narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},tU={narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},nU={narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},sU={any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},aU={ordinalNumber:WH({matchPattern:qH,parsePattern:YH,valueCallback:s=>parseInt(s,10)}),era:Tu({matchPatterns:VH,defaultMatchWidth:"wide",parsePatterns:KH,defaultParseWidth:"any"}),quarter:Tu({matchPatterns:XH,defaultMatchWidth:"wide",parsePatterns:ZH,defaultParseWidth:"any",valueCallback:s=>s+1}),month:Tu({matchPatterns:QH,defaultMatchWidth:"wide",parsePatterns:JH,defaultParseWidth:"any"}),day:Tu({matchPatterns:eU,defaultMatchWidth:"wide",parsePatterns:tU,defaultParseWidth:"any"}),dayPeriod:Tu({matchPatterns:nU,defaultMatchWidth:"any",parsePatterns:sU,defaultParseWidth:"any"})},KT={code:"en-US",formatDistance:MH,formatLong:DH,formatRelative:RH,localize:HH,match:aU,options:{weekStartsOn:0,firstWeekContainsDate:1}};function iU(s,e){const t=bt(s,e==null?void 0:e.in);return fc(t,vf(t))+1}function Wx(s,e){const t=bt(s,e==null?void 0:e.in),n=+pc(t)-+kH(t);return Math.round(n/HT)+1}function qx(s,e){var f,p,g,b;const t=bt(s,e==null?void 0:e.in),n=t.getFullYear(),a=il(),i=(e==null?void 0:e.firstWeekContainsDate)??((p=(f=e==null?void 0:e.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??a.firstWeekContainsDate??((b=(g=a.locale)==null?void 0:g.options)==null?void 0:b.firstWeekContainsDate)??1,o=jn((e==null?void 0:e.in)||s,0);o.setFullYear(n+1,0,i),o.setHours(0,0,0,0);const l=sr(o,e),c=jn((e==null?void 0:e.in)||s,0);c.setFullYear(n,0,i),c.setHours(0,0,0,0);const d=sr(c,e);return+t>=+l?n+1:+t>=+d?n:n-1}function rU(s,e){var l,c,d,f;const t=il(),n=(e==null?void 0:e.firstWeekContainsDate)??((c=(l=e==null?void 0:e.locale)==null?void 0:l.options)==null?void 0:c.firstWeekContainsDate)??t.firstWeekContainsDate??((f=(d=t.locale)==null?void 0:d.options)==null?void 0:f.firstWeekContainsDate)??1,a=qx(s,e),i=jn((e==null?void 0:e.in)||s,0);return i.setFullYear(a,0,n),i.setHours(0,0,0,0),sr(i,e)}function XT(s,e){const t=bt(s,e==null?void 0:e.in),n=+sr(t,e)-+rU(t,e);return Math.round(n/HT)+1}function Sn(s,e){const t=s<0?"-":"",n=Math.abs(s).toString().padStart(e,"0");return t+n}const Fr={y(s,e){const t=s.getFullYear(),n=t>0?t:1-t;return Sn(e==="yy"?n%100:n,e.length)},M(s,e){const t=s.getMonth();return e==="M"?String(t+1):Sn(t+1,2)},d(s,e){return Sn(s.getDate(),e.length)},a(s,e){const t=s.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.toUpperCase();case"aaa":return t;case"aaaaa":return t[0];case"aaaa":default:return t==="am"?"a.m.":"p.m."}},h(s,e){return Sn(s.getHours()%12||12,e.length)},H(s,e){return Sn(s.getHours(),e.length)},m(s,e){return Sn(s.getMinutes(),e.length)},s(s,e){return Sn(s.getSeconds(),e.length)},S(s,e){const t=e.length,n=s.getMilliseconds(),a=Math.trunc(n*Math.pow(10,t-3));return Sn(a,e.length)}},Gl={midnight:"midnight",noon:"noon",morning:"morning",afternoon:"afternoon",evening:"evening",night:"night"},c1={G:function(s,e,t){const n=s.getFullYear()>0?1:0;switch(e){case"G":case"GG":case"GGG":return t.era(n,{width:"abbreviated"});case"GGGGG":return t.era(n,{width:"narrow"});case"GGGG":default:return t.era(n,{width:"wide"})}},y:function(s,e,t){if(e==="yo"){const n=s.getFullYear(),a=n>0?n:1-n;return t.ordinalNumber(a,{unit:"year"})}return Fr.y(s,e)},Y:function(s,e,t,n){const a=qx(s,n),i=a>0?a:1-a;if(e==="YY"){const o=i%100;return Sn(o,2)}return e==="Yo"?t.ordinalNumber(i,{unit:"year"}):Sn(i,e.length)},R:function(s,e){const t=GT(s);return Sn(t,e.length)},u:function(s,e){const t=s.getFullYear();return Sn(t,e.length)},Q:function(s,e,t){const n=Math.ceil((s.getMonth()+1)/3);switch(e){case"Q":return String(n);case"QQ":return Sn(n,2);case"Qo":return t.ordinalNumber(n,{unit:"quarter"});case"QQQ":return t.quarter(n,{width:"abbreviated",context:"formatting"});case"QQQQQ":return t.quarter(n,{width:"narrow",context:"formatting"});case"QQQQ":default:return t.quarter(n,{width:"wide",context:"formatting"})}},q:function(s,e,t){const n=Math.ceil((s.getMonth()+1)/3);switch(e){case"q":return String(n);case"qq":return Sn(n,2);case"qo":return t.ordinalNumber(n,{unit:"quarter"});case"qqq":return t.quarter(n,{width:"abbreviated",context:"standalone"});case"qqqqq":return t.quarter(n,{width:"narrow",context:"standalone"});case"qqqq":default:return t.quarter(n,{width:"wide",context:"standalone"})}},M:function(s,e,t){const n=s.getMonth();switch(e){case"M":case"MM":return Fr.M(s,e);case"Mo":return t.ordinalNumber(n+1,{unit:"month"});case"MMM":return t.month(n,{width:"abbreviated",context:"formatting"});case"MMMMM":return t.month(n,{width:"narrow",context:"formatting"});case"MMMM":default:return t.month(n,{width:"wide",context:"formatting"})}},L:function(s,e,t){const n=s.getMonth();switch(e){case"L":return String(n+1);case"LL":return Sn(n+1,2);case"Lo":return t.ordinalNumber(n+1,{unit:"month"});case"LLL":return t.month(n,{width:"abbreviated",context:"standalone"});case"LLLLL":return t.month(n,{width:"narrow",context:"standalone"});case"LLLL":default:return t.month(n,{width:"wide",context:"standalone"})}},w:function(s,e,t,n){const a=XT(s,n);return e==="wo"?t.ordinalNumber(a,{unit:"week"}):Sn(a,e.length)},I:function(s,e,t){const n=Wx(s);return e==="Io"?t.ordinalNumber(n,{unit:"week"}):Sn(n,e.length)},d:function(s,e,t){return e==="do"?t.ordinalNumber(s.getDate(),{unit:"date"}):Fr.d(s,e)},D:function(s,e,t){const n=iU(s);return e==="Do"?t.ordinalNumber(n,{unit:"dayOfYear"}):Sn(n,e.length)},E:function(s,e,t){const n=s.getDay();switch(e){case"E":case"EE":case"EEE":return t.day(n,{width:"abbreviated",context:"formatting"});case"EEEEE":return t.day(n,{width:"narrow",context:"formatting"});case"EEEEEE":return t.day(n,{width:"short",context:"formatting"});case"EEEE":default:return t.day(n,{width:"wide",context:"formatting"})}},e:function(s,e,t,n){const a=s.getDay(),i=(a-n.weekStartsOn+8)%7||7;switch(e){case"e":return String(i);case"ee":return Sn(i,2);case"eo":return t.ordinalNumber(i,{unit:"day"});case"eee":return t.day(a,{width:"abbreviated",context:"formatting"});case"eeeee":return t.day(a,{width:"narrow",context:"formatting"});case"eeeeee":return t.day(a,{width:"short",context:"formatting"});case"eeee":default:return t.day(a,{width:"wide",context:"formatting"})}},c:function(s,e,t,n){const a=s.getDay(),i=(a-n.weekStartsOn+8)%7||7;switch(e){case"c":return String(i);case"cc":return Sn(i,e.length);case"co":return t.ordinalNumber(i,{unit:"day"});case"ccc":return t.day(a,{width:"abbreviated",context:"standalone"});case"ccccc":return t.day(a,{width:"narrow",context:"standalone"});case"cccccc":return t.day(a,{width:"short",context:"standalone"});case"cccc":default:return t.day(a,{width:"wide",context:"standalone"})}},i:function(s,e,t){const n=s.getDay(),a=n===0?7:n;switch(e){case"i":return String(a);case"ii":return Sn(a,e.length);case"io":return t.ordinalNumber(a,{unit:"day"});case"iii":return t.day(n,{width:"abbreviated",context:"formatting"});case"iiiii":return t.day(n,{width:"narrow",context:"formatting"});case"iiiiii":return t.day(n,{width:"short",context:"formatting"});case"iiii":default:return t.day(n,{width:"wide",context:"formatting"})}},a:function(s,e,t){const a=s.getHours()/12>=1?"pm":"am";switch(e){case"a":case"aa":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"aaa":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"aaaaa":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"aaaa":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},b:function(s,e,t){const n=s.getHours();let a;switch(n===12?a=Gl.noon:n===0?a=Gl.midnight:a=n/12>=1?"pm":"am",e){case"b":case"bb":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"bbb":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"}).toLowerCase();case"bbbbb":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"bbbb":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},B:function(s,e,t){const n=s.getHours();let a;switch(n>=17?a=Gl.evening:n>=12?a=Gl.afternoon:n>=4?a=Gl.morning:a=Gl.night,e){case"B":case"BB":case"BBB":return t.dayPeriod(a,{width:"abbreviated",context:"formatting"});case"BBBBB":return t.dayPeriod(a,{width:"narrow",context:"formatting"});case"BBBB":default:return t.dayPeriod(a,{width:"wide",context:"formatting"})}},h:function(s,e,t){if(e==="ho"){let n=s.getHours()%12;return n===0&&(n=12),t.ordinalNumber(n,{unit:"hour"})}return Fr.h(s,e)},H:function(s,e,t){return e==="Ho"?t.ordinalNumber(s.getHours(),{unit:"hour"}):Fr.H(s,e)},K:function(s,e,t){const n=s.getHours()%12;return e==="Ko"?t.ordinalNumber(n,{unit:"hour"}):Sn(n,e.length)},k:function(s,e,t){let n=s.getHours();return n===0&&(n=24),e==="ko"?t.ordinalNumber(n,{unit:"hour"}):Sn(n,e.length)},m:function(s,e,t){return e==="mo"?t.ordinalNumber(s.getMinutes(),{unit:"minute"}):Fr.m(s,e)},s:function(s,e,t){return e==="so"?t.ordinalNumber(s.getSeconds(),{unit:"second"}):Fr.s(s,e)},S:function(s,e){return Fr.S(s,e)},X:function(s,e,t){const n=s.getTimezoneOffset();if(n===0)return"Z";switch(e){case"X":return d1(n);case"XXXX":case"XX":return Do(n);case"XXXXX":case"XXX":default:return Do(n,":")}},x:function(s,e,t){const n=s.getTimezoneOffset();switch(e){case"x":return d1(n);case"xxxx":case"xx":return Do(n);case"xxxxx":case"xxx":default:return Do(n,":")}},O:function(s,e,t){const n=s.getTimezoneOffset();switch(e){case"O":case"OO":case"OOO":return"GMT"+u1(n,":");case"OOOO":default:return"GMT"+Do(n,":")}},z:function(s,e,t){const n=s.getTimezoneOffset();switch(e){case"z":case"zz":case"zzz":return"GMT"+u1(n,":");case"zzzz":default:return"GMT"+Do(n,":")}},t:function(s,e,t){const n=Math.trunc(+s/1e3);return Sn(n,e.length)},T:function(s,e,t){return Sn(+s,e.length)}};function u1(s,e=""){const t=s>0?"-":"+",n=Math.abs(s),a=Math.trunc(n/60),i=n%60;return i===0?t+String(a):t+String(a)+e+Sn(i,2)}function d1(s,e){return s%60===0?(s>0?"-":"+")+Sn(Math.abs(s)/60,2):Do(s,e)}function Do(s,e=""){const t=s>0?"-":"+",n=Math.abs(s),a=Sn(Math.trunc(n/60),2),i=Sn(n%60,2);return t+a+e+i}const h1=(s,e)=>{switch(s){case"P":return e.date({width:"short"});case"PP":return e.date({width:"medium"});case"PPP":return e.date({width:"long"});case"PPPP":default:return e.date({width:"full"})}},ZT=(s,e)=>{switch(s){case"p":return e.time({width:"short"});case"pp":return e.time({width:"medium"});case"ppp":return e.time({width:"long"});case"pppp":default:return e.time({width:"full"})}},oU=(s,e)=>{const t=s.match(/(P+)(p+)?/)||[],n=t[1],a=t[2];if(!a)return h1(s,e);let i;switch(n){case"P":i=e.dateTime({width:"short"});break;case"PP":i=e.dateTime({width:"medium"});break;case"PPP":i=e.dateTime({width:"long"});break;case"PPPP":default:i=e.dateTime({width:"full"});break}return i.replace("{{date}}",h1(n,e)).replace("{{time}}",ZT(a,e))},Ry={p:ZT,P:oU},lU=/^D+$/,cU=/^Y+$/,uU=["D","DD","YY","YYYY"];function dU(s){return lU.test(s)}function hU(s){return cU.test(s)}function pU(s,e,t){const n=fU(s,e,t);if(console.warn(n),uU.includes(s))throw new RangeError(n)}function fU(s,e,t){const n=s[0]==="Y"?"years":"days of the month";return`Use \`${s.toLowerCase()}\` instead of \`${s}\` (in \`${e}\`) for formatting ${n} to the input \`${t}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}const mU=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,gU=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,bU=/^'([^]*?)'?$/,yU=/''/g,xU=/[a-zA-Z]/;function p1(s,e,t){var f,p,g,b,y,w,k,S;const n=il(),a=(t==null?void 0:t.locale)??n.locale??KT,i=(t==null?void 0:t.firstWeekContainsDate)??((p=(f=t==null?void 0:t.locale)==null?void 0:f.options)==null?void 0:p.firstWeekContainsDate)??n.firstWeekContainsDate??((b=(g=n.locale)==null?void 0:g.options)==null?void 0:b.firstWeekContainsDate)??1,o=(t==null?void 0:t.weekStartsOn)??((w=(y=t==null?void 0:t.locale)==null?void 0:y.options)==null?void 0:w.weekStartsOn)??n.weekStartsOn??((S=(k=n.locale)==null?void 0:k.options)==null?void 0:S.weekStartsOn)??0,l=bt(s,t==null?void 0:t.in);if(!mc(l))throw new RangeError("Invalid time value");let c=e.match(gU).map(j=>{const C=j[0];if(C==="p"||C==="P"){const A=Ry[C];return A(j,a.formatLong)}return j}).join("").match(mU).map(j=>{if(j==="''")return{isToken:!1,value:"'"};const C=j[0];if(C==="'")return{isToken:!1,value:vU(j)};if(c1[C])return{isToken:!0,value:j};if(C.match(xU))throw new RangeError("Format string contains an unescaped latin alphabet character `"+C+"`");return{isToken:!1,value:j}});a.localize.preprocessor&&(c=a.localize.preprocessor(l,c));const d={firstWeekContainsDate:i,weekStartsOn:o,locale:a};return c.map(j=>{if(!j.isToken)return j.value;const C=j.value;(!(t!=null&&t.useAdditionalWeekYearTokens)&&hU(C)||!(t!=null&&t.useAdditionalDayOfYearTokens)&&dU(C))&&pU(C,e,String(s));const A=c1[C[0]];return A(l,C,a.localize,d)}).join("")}function vU(s){const e=s.match(bU);return e?e[1].replace(yU,"'"):s}function f1(s,e){return bt(s,e==null?void 0:e.in).getDate()}function wU(s,e){return bt(s,e==null?void 0:e.in).getDay()}function kU(s,e){const t=bt(s,e==null?void 0:e.in),n=t.getFullYear(),a=t.getMonth(),i=jn(t,0);return i.setFullYear(n,a+1,0),i.setHours(0,0,0,0),i.getDate()}function SU(){return Object.assign({},il())}function _s(s,e){return bt(s,e==null?void 0:e.in).getHours()}function jU(s,e){const t=bt(s,e==null?void 0:e.in).getDay();return t===0?7:t}function Ds(s,e){return bt(s,e==null?void 0:e.in).getMinutes()}function ea(s,e){return bt(s,e==null?void 0:e.in).getMonth()}function Yr(s){return bt(s).getSeconds()}function Oy(s){return+bt(s)}function Xt(s,e){return bt(s,e==null?void 0:e.in).getFullYear()}function er(s,e){return+bt(s)>+bt(e)}function yi(s,e){return+bt(s)<+bt(e)}function CU(s,e){return+bt(s)==+bt(e)}function NU(s,e){const t=AU(e)?new e(0):jn(e,0);return t.setFullYear(s.getFullYear(),s.getMonth(),s.getDate()),t.setHours(s.getHours(),s.getMinutes(),s.getSeconds(),s.getMilliseconds()),t}function AU(s){var e;return typeof s=="function"&&((e=s.prototype)==null?void 0:e.constructor)===s}const MU=10;class QT{constructor(){W(this,"subPriority",0)}validate(e,t){return!0}}class TU extends QT{constructor(e,t,n,a,i){super(),this.value=e,this.validateValue=t,this.setValue=n,this.priority=a,i&&(this.subPriority=i)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,n){return this.setValue(e,t,this.value,n)}}class EU extends QT{constructor(t,n){super();W(this,"priority",MU);W(this,"subPriority",-1);this.context=t||(a=>jn(n,a))}set(t,n){return n.timestampIsSet?t:jn(t,NU(t,this.context))}}class xn{run(e,t,n,a){const i=this.parse(e,t,n,a);return i?{setter:new TU(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(e,t,n){return!0}}class _U extends xn{constructor(){super(...arguments);W(this,"priority",140);W(this,"incompatibleTokens",["R","u","t","T"])}parse(t,n,a){switch(n){case"G":case"GG":case"GGG":return a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"});case"GGGGG":return a.era(t,{width:"narrow"});case"GGGG":default:return a.era(t,{width:"wide"})||a.era(t,{width:"abbreviated"})||a.era(t,{width:"narrow"})}}set(t,n,a){return n.era=a,t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}}const as={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},fi={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function is(s,e){return s&&{value:e(s.value),rest:s.rest}}function Yn(s,e){const t=e.match(s);return t?{value:parseInt(t[0],10),rest:e.slice(t[0].length)}:null}function mi(s,e){const t=e.match(s);if(!t)return null;if(t[0]==="Z")return{value:0,rest:e.slice(1)};const n=t[1]==="+"?1:-1,a=t[2]?parseInt(t[2],10):0,i=t[3]?parseInt(t[3],10):0,o=t[5]?parseInt(t[5],10):0;return{value:n*(a*xf+i*yf+o*xH),rest:e.slice(t[0].length)}}function JT(s){return Yn(as.anyDigitsSigned,s)}function es(s,e){switch(s){case 1:return Yn(as.singleDigit,e);case 2:return Yn(as.twoDigits,e);case 3:return Yn(as.threeDigits,e);case 4:return Yn(as.fourDigits,e);default:return Yn(new RegExp("^\\d{1,"+s+"}"),e)}}function $p(s,e){switch(s){case 1:return Yn(as.singleDigitSigned,e);case 2:return Yn(as.twoDigitsSigned,e);case 3:return Yn(as.threeDigitsSigned,e);case 4:return Yn(as.fourDigitsSigned,e);default:return Yn(new RegExp("^-?\\d{1,"+s+"}"),e)}}function Yx(s){switch(s){case"morning":return 4;case"evening":return 17;case"pm":case"noon":case"afternoon":return 12;case"am":case"midnight":case"night":default:return 0}}function eE(s,e){const t=e>0,n=t?e:1-e;let a;if(n<=50)a=s||100;else{const i=n+50,o=Math.trunc(i/100)*100,l=s>=i%100;a=s+o-(l?100:0)}return t?a:1-a}function tE(s){return s%400===0||s%4===0&&s%100!==0}class DU extends xn{constructor(){super(...arguments);W(this,"priority",130);W(this,"incompatibleTokens",["Y","R","u","w","I","i","e","c","t","T"])}parse(t,n,a){const i=o=>({year:o,isTwoDigitYear:n==="yy"});switch(n){case"y":return is(es(4,t),i);case"yo":return is(a.ordinalNumber(t,{unit:"year"}),i);default:return is(es(n.length,t),i)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a){const i=t.getFullYear();if(a.isTwoDigitYear){const l=eE(a.year,i);return t.setFullYear(l,0,1),t.setHours(0,0,0,0),t}const o=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(o,0,1),t.setHours(0,0,0,0),t}}class PU extends xn{constructor(){super(...arguments);W(this,"priority",130);W(this,"incompatibleTokens",["y","R","u","Q","q","M","L","I","d","D","i","t","T"])}parse(t,n,a){const i=o=>({year:o,isTwoDigitYear:n==="YY"});switch(n){case"Y":return is(es(4,t),i);case"Yo":return is(a.ordinalNumber(t,{unit:"year"}),i);default:return is(es(n.length,t),i)}}validate(t,n){return n.isTwoDigitYear||n.year>0}set(t,n,a,i){const o=qx(t,i);if(a.isTwoDigitYear){const c=eE(a.year,o);return t.setFullYear(c,0,i.firstWeekContainsDate),t.setHours(0,0,0,0),sr(t,i)}const l=!("era"in n)||n.era===1?a.year:1-a.year;return t.setFullYear(l,0,i.firstWeekContainsDate),t.setHours(0,0,0,0),sr(t,i)}}class RU extends xn{constructor(){super(...arguments);W(this,"priority",130);W(this,"incompatibleTokens",["G","y","Y","u","Q","q","M","L","w","d","D","e","c","t","T"])}parse(t,n){return $p(n==="R"?4:n.length,t)}set(t,n,a){const i=jn(t,0);return i.setFullYear(a,0,4),i.setHours(0,0,0,0),pc(i)}}class OU extends xn{constructor(){super(...arguments);W(this,"priority",130);W(this,"incompatibleTokens",["G","y","Y","R","w","I","i","e","c","t","T"])}parse(t,n){return $p(n==="u"?4:n.length,t)}set(t,n,a){return t.setFullYear(a,0,1),t.setHours(0,0,0,0),t}}class LU extends xn{constructor(){super(...arguments);W(this,"priority",120);W(this,"incompatibleTokens",["Y","R","q","M","L","w","I","d","D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"Q":case"QQ":return es(n.length,t);case"Qo":return a.ordinalNumber(t,{unit:"quarter"});case"QQQ":return a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"});case"QQQQQ":return a.quarter(t,{width:"narrow",context:"formatting"});case"QQQQ":default:return a.quarter(t,{width:"wide",context:"formatting"})||a.quarter(t,{width:"abbreviated",context:"formatting"})||a.quarter(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}}class IU extends xn{constructor(){super(...arguments);W(this,"priority",120);W(this,"incompatibleTokens",["Y","R","Q","M","L","w","I","d","D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"q":case"qq":return es(n.length,t);case"qo":return a.ordinalNumber(t,{unit:"quarter"});case"qqq":return a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"});case"qqqqq":return a.quarter(t,{width:"narrow",context:"standalone"});case"qqqq":default:return a.quarter(t,{width:"wide",context:"standalone"})||a.quarter(t,{width:"abbreviated",context:"standalone"})||a.quarter(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=1&&n<=4}set(t,n,a){return t.setMonth((a-1)*3,1),t.setHours(0,0,0,0),t}}class BU extends xn{constructor(){super(...arguments);W(this,"incompatibleTokens",["Y","R","q","Q","L","w","I","D","i","e","c","t","T"]);W(this,"priority",110)}parse(t,n,a){const i=o=>o-1;switch(n){case"M":return is(Yn(as.month,t),i);case"MM":return is(es(2,t),i);case"Mo":return is(a.ordinalNumber(t,{unit:"month"}),i);case"MMM":return a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"});case"MMMMM":return a.month(t,{width:"narrow",context:"formatting"});case"MMMM":default:return a.month(t,{width:"wide",context:"formatting"})||a.month(t,{width:"abbreviated",context:"formatting"})||a.month(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}}class FU extends xn{constructor(){super(...arguments);W(this,"priority",110);W(this,"incompatibleTokens",["Y","R","q","Q","M","w","I","D","i","e","c","t","T"])}parse(t,n,a){const i=o=>o-1;switch(n){case"L":return is(Yn(as.month,t),i);case"LL":return is(es(2,t),i);case"Lo":return is(a.ordinalNumber(t,{unit:"month"}),i);case"LLL":return a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"});case"LLLLL":return a.month(t,{width:"narrow",context:"standalone"});case"LLLL":default:return a.month(t,{width:"wide",context:"standalone"})||a.month(t,{width:"abbreviated",context:"standalone"})||a.month(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.setMonth(a,1),t.setHours(0,0,0,0),t}}function zU(s,e,t){const n=bt(s,t==null?void 0:t.in),a=XT(n,t)-e;return n.setDate(n.getDate()-a*7),bt(n,t==null?void 0:t.in)}class $U extends xn{constructor(){super(...arguments);W(this,"priority",100);W(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","i","t","T"])}parse(t,n,a){switch(n){case"w":return Yn(as.week,t);case"wo":return a.ordinalNumber(t,{unit:"week"});default:return es(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a,i){return sr(zU(t,a,i),i)}}function HU(s,e,t){const n=bt(s,t==null?void 0:t.in),a=Wx(n,t)-e;return n.setDate(n.getDate()-a*7),n}class UU extends xn{constructor(){super(...arguments);W(this,"priority",100);W(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","e","c","t","T"])}parse(t,n,a){switch(n){case"I":return Yn(as.week,t);case"Io":return a.ordinalNumber(t,{unit:"week"});default:return es(n.length,t)}}validate(t,n){return n>=1&&n<=53}set(t,n,a){return pc(HU(t,a))}}const GU=[31,28,31,30,31,30,31,31,30,31,30,31],WU=[31,29,31,30,31,30,31,31,30,31,30,31];class qU extends xn{constructor(){super(...arguments);W(this,"priority",90);W(this,"subPriority",1);W(this,"incompatibleTokens",["Y","R","q","Q","w","I","D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"d":return Yn(as.date,t);case"do":return a.ordinalNumber(t,{unit:"date"});default:return es(n.length,t)}}validate(t,n){const a=t.getFullYear(),i=tE(a),o=t.getMonth();return i?n>=1&&n<=WU[o]:n>=1&&n<=GU[o]}set(t,n,a){return t.setDate(a),t.setHours(0,0,0,0),t}}class YU extends xn{constructor(){super(...arguments);W(this,"priority",90);W(this,"subpriority",1);W(this,"incompatibleTokens",["Y","R","q","Q","M","L","w","I","d","E","i","e","c","t","T"])}parse(t,n,a){switch(n){case"D":case"DD":return Yn(as.dayOfYear,t);case"Do":return a.ordinalNumber(t,{unit:"date"});default:return es(n.length,t)}}validate(t,n){const a=t.getFullYear();return tE(a)?n>=1&&n<=366:n>=1&&n<=365}set(t,n,a){return t.setMonth(0,a),t.setHours(0,0,0,0),t}}function Vx(s,e,t){var p,g,b,y;const n=il(),a=(t==null?void 0:t.weekStartsOn)??((g=(p=t==null?void 0:t.locale)==null?void 0:p.options)==null?void 0:g.weekStartsOn)??n.weekStartsOn??((y=(b=n.locale)==null?void 0:b.options)==null?void 0:y.weekStartsOn)??0,i=bt(s,t==null?void 0:t.in),o=i.getDay(),c=(e%7+7)%7,d=7-a,f=e<0||e>6?e-(o+d)%7:(c+d)%7-(o+d)%7;return Za(i,f,t)}class VU extends xn{constructor(){super(...arguments);W(this,"priority",90);W(this,"incompatibleTokens",["D","i","e","c","t","T"])}parse(t,n,a){switch(n){case"E":case"EE":case"EEE":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"EEEEE":return a.day(t,{width:"narrow",context:"formatting"});case"EEEEEE":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"EEEE":default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,i){return t=Vx(t,a,i),t.setHours(0,0,0,0),t}}class KU extends xn{constructor(){super(...arguments);W(this,"priority",90);W(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","c","t","T"])}parse(t,n,a,i){const o=l=>{const c=Math.floor((l-1)/7)*7;return(l+i.weekStartsOn+6)%7+c};switch(n){case"e":case"ee":return is(es(n.length,t),o);case"eo":return is(a.ordinalNumber(t,{unit:"day"}),o);case"eee":return a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"eeeee":return a.day(t,{width:"narrow",context:"formatting"});case"eeeeee":return a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"});case"eeee":default:return a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,i){return t=Vx(t,a,i),t.setHours(0,0,0,0),t}}class XU extends xn{constructor(){super(...arguments);W(this,"priority",90);W(this,"incompatibleTokens",["y","R","u","q","Q","M","L","I","d","D","E","i","e","t","T"])}parse(t,n,a,i){const o=l=>{const c=Math.floor((l-1)/7)*7;return(l+i.weekStartsOn+6)%7+c};switch(n){case"c":case"cc":return is(es(n.length,t),o);case"co":return is(a.ordinalNumber(t,{unit:"day"}),o);case"ccc":return a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});case"ccccc":return a.day(t,{width:"narrow",context:"standalone"});case"cccccc":return a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"});case"cccc":default:return a.day(t,{width:"wide",context:"standalone"})||a.day(t,{width:"abbreviated",context:"standalone"})||a.day(t,{width:"short",context:"standalone"})||a.day(t,{width:"narrow",context:"standalone"})}}validate(t,n){return n>=0&&n<=6}set(t,n,a,i){return t=Vx(t,a,i),t.setHours(0,0,0,0),t}}function ZU(s,e,t){const n=bt(s,t==null?void 0:t.in),a=jU(n,t),i=e-a;return Za(n,i,t)}class QU extends xn{constructor(){super(...arguments);W(this,"priority",90);W(this,"incompatibleTokens",["y","Y","u","q","Q","M","L","w","d","D","E","e","c","t","T"])}parse(t,n,a){const i=o=>o===0?7:o;switch(n){case"i":case"ii":return es(n.length,t);case"io":return a.ordinalNumber(t,{unit:"day"});case"iii":return is(a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),i);case"iiiii":return is(a.day(t,{width:"narrow",context:"formatting"}),i);case"iiiiii":return is(a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),i);case"iiii":default:return is(a.day(t,{width:"wide",context:"formatting"})||a.day(t,{width:"abbreviated",context:"formatting"})||a.day(t,{width:"short",context:"formatting"})||a.day(t,{width:"narrow",context:"formatting"}),i)}}validate(t,n){return n>=1&&n<=7}set(t,n,a){return t=ZU(t,a),t.setHours(0,0,0,0),t}}class JU extends xn{constructor(){super(...arguments);W(this,"priority",80);W(this,"incompatibleTokens",["b","B","H","k","t","T"])}parse(t,n,a){switch(n){case"a":case"aa":case"aaa":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaaa":return a.dayPeriod(t,{width:"narrow",context:"formatting"});case"aaaa":default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(Yx(a),0,0,0),t}}class eG extends xn{constructor(){super(...arguments);W(this,"priority",80);W(this,"incompatibleTokens",["a","B","H","k","t","T"])}parse(t,n,a){switch(n){case"b":case"bb":case"bbb":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbbb":return a.dayPeriod(t,{width:"narrow",context:"formatting"});case"bbbb":default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(Yx(a),0,0,0),t}}class tG extends xn{constructor(){super(...arguments);W(this,"priority",80);W(this,"incompatibleTokens",["a","b","t","T"])}parse(t,n,a){switch(n){case"B":case"BB":case"BBB":return a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBBB":return a.dayPeriod(t,{width:"narrow",context:"formatting"});case"BBBB":default:return a.dayPeriod(t,{width:"wide",context:"formatting"})||a.dayPeriod(t,{width:"abbreviated",context:"formatting"})||a.dayPeriod(t,{width:"narrow",context:"formatting"})}}set(t,n,a){return t.setHours(Yx(a),0,0,0),t}}class nG extends xn{constructor(){super(...arguments);W(this,"priority",70);W(this,"incompatibleTokens",["H","K","k","t","T"])}parse(t,n,a){switch(n){case"h":return Yn(as.hour12h,t);case"ho":return a.ordinalNumber(t,{unit:"hour"});default:return es(n.length,t)}}validate(t,n){return n>=1&&n<=12}set(t,n,a){const i=t.getHours()>=12;return i&&a<12?t.setHours(a+12,0,0,0):!i&&a===12?t.setHours(0,0,0,0):t.setHours(a,0,0,0),t}}class sG extends xn{constructor(){super(...arguments);W(this,"priority",70);W(this,"incompatibleTokens",["a","b","h","K","k","t","T"])}parse(t,n,a){switch(n){case"H":return Yn(as.hour23h,t);case"Ho":return a.ordinalNumber(t,{unit:"hour"});default:return es(n.length,t)}}validate(t,n){return n>=0&&n<=23}set(t,n,a){return t.setHours(a,0,0,0),t}}class aG extends xn{constructor(){super(...arguments);W(this,"priority",70);W(this,"incompatibleTokens",["h","H","k","t","T"])}parse(t,n,a){switch(n){case"K":return Yn(as.hour11h,t);case"Ko":return a.ordinalNumber(t,{unit:"hour"});default:return es(n.length,t)}}validate(t,n){return n>=0&&n<=11}set(t,n,a){return t.getHours()>=12&&a<12?t.setHours(a+12,0,0,0):t.setHours(a,0,0,0),t}}class iG extends xn{constructor(){super(...arguments);W(this,"priority",70);W(this,"incompatibleTokens",["a","b","h","H","K","t","T"])}parse(t,n,a){switch(n){case"k":return Yn(as.hour24h,t);case"ko":return a.ordinalNumber(t,{unit:"hour"});default:return es(n.length,t)}}validate(t,n){return n>=1&&n<=24}set(t,n,a){const i=a<=24?a%24:a;return t.setHours(i,0,0,0),t}}class rG extends xn{constructor(){super(...arguments);W(this,"priority",60);W(this,"incompatibleTokens",["t","T"])}parse(t,n,a){switch(n){case"m":return Yn(as.minute,t);case"mo":return a.ordinalNumber(t,{unit:"minute"});default:return es(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setMinutes(a,0,0),t}}class oG extends xn{constructor(){super(...arguments);W(this,"priority",50);W(this,"incompatibleTokens",["t","T"])}parse(t,n,a){switch(n){case"s":return Yn(as.second,t);case"so":return a.ordinalNumber(t,{unit:"second"});default:return es(n.length,t)}}validate(t,n){return n>=0&&n<=59}set(t,n,a){return t.setSeconds(a,0),t}}class lG extends xn{constructor(){super(...arguments);W(this,"priority",30);W(this,"incompatibleTokens",["t","T"])}parse(t,n){const a=i=>Math.trunc(i*Math.pow(10,-n.length+3));return is(es(n.length,t),a)}set(t,n,a){return t.setMilliseconds(a),t}}class cG extends xn{constructor(){super(...arguments);W(this,"priority",10);W(this,"incompatibleTokens",["t","T","x"])}parse(t,n){switch(n){case"X":return mi(fi.basicOptionalMinutes,t);case"XX":return mi(fi.basic,t);case"XXXX":return mi(fi.basicOptionalSeconds,t);case"XXXXX":return mi(fi.extendedOptionalSeconds,t);case"XXX":default:return mi(fi.extended,t)}}set(t,n,a){return n.timestampIsSet?t:jn(t,t.getTime()-Lp(t)-a)}}class uG extends xn{constructor(){super(...arguments);W(this,"priority",10);W(this,"incompatibleTokens",["t","T","X"])}parse(t,n){switch(n){case"x":return mi(fi.basicOptionalMinutes,t);case"xx":return mi(fi.basic,t);case"xxxx":return mi(fi.basicOptionalSeconds,t);case"xxxxx":return mi(fi.extendedOptionalSeconds,t);case"xxx":default:return mi(fi.extended,t)}}set(t,n,a){return n.timestampIsSet?t:jn(t,t.getTime()-Lp(t)-a)}}class dG extends xn{constructor(){super(...arguments);W(this,"priority",40);W(this,"incompatibleTokens","*")}parse(t){return JT(t)}set(t,n,a){return[jn(t,a*1e3),{timestampIsSet:!0}]}}class hG extends xn{constructor(){super(...arguments);W(this,"priority",20);W(this,"incompatibleTokens","*")}parse(t){return JT(t)}set(t,n,a){return[jn(t,a),{timestampIsSet:!0}]}}const pG={G:new _U,y:new DU,Y:new PU,R:new RU,u:new OU,Q:new LU,q:new IU,M:new BU,L:new FU,w:new $U,I:new UU,d:new qU,D:new YU,E:new VU,e:new KU,c:new XU,i:new QU,a:new JU,b:new eG,B:new tG,h:new nG,H:new sG,K:new aG,k:new iG,m:new rG,s:new oG,S:new lG,X:new cG,x:new uG,t:new dG,T:new hG},fG=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,mG=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,gG=/^'([^]*?)'?$/,bG=/''/g,yG=/\S/,xG=/[a-zA-Z]/;function vG(s,e,t,n){var k,S,j,C,A,_,M,$;const a=()=>jn((n==null?void 0:n.in)||t,NaN),i=SU(),o=(n==null?void 0:n.locale)??i.locale??KT,l=(n==null?void 0:n.firstWeekContainsDate)??((S=(k=n==null?void 0:n.locale)==null?void 0:k.options)==null?void 0:S.firstWeekContainsDate)??i.firstWeekContainsDate??((C=(j=i.locale)==null?void 0:j.options)==null?void 0:C.firstWeekContainsDate)??1,c=(n==null?void 0:n.weekStartsOn)??((_=(A=n==null?void 0:n.locale)==null?void 0:A.options)==null?void 0:_.weekStartsOn)??i.weekStartsOn??(($=(M=i.locale)==null?void 0:M.options)==null?void 0:$.weekStartsOn)??0;if(!e)return s?a():bt(t,n==null?void 0:n.in);const d={firstWeekContainsDate:l,weekStartsOn:c,locale:o},f=[new EU(n==null?void 0:n.in,t)],p=e.match(mG).map(E=>{const D=E[0];if(D in Ry){const P=Ry[D];return P(E,o.formatLong)}return E}).join("").match(fG),g=[];for(let E of p){const D=E[0],P=pG[D];if(P){const{incompatibleTokens:R}=P;if(Array.isArray(R)){const z=g.find(B=>R.includes(B.token)||B.token===D);if(z)throw new RangeError(`The format string mustn't contain \`${z.fullToken}\` and \`${E}\` at the same time`)}else if(P.incompatibleTokens==="*"&&g.length>0)throw new RangeError(`The format string mustn't contain \`${E}\` and any other token at the same time`);g.push({token:D,fullToken:E});const L=P.run(s,E,o.match,d);if(!L)return a();f.push(L.setter),s=L.rest}else{if(D.match(xG))throw new RangeError("Format string contains an unescaped latin alphabet character `"+D+"`");if(E==="''"?E="'":D==="'"&&(E=wG(E)),s.indexOf(E)===0)s=s.slice(E.length);else return a()}}if(s.length>0&&yG.test(s))return a();const b=f.map(E=>E.priority).sort((E,D)=>D-E).filter((E,D,P)=>P.indexOf(E)===D).map(E=>f.filter(D=>D.priority===E).sort((D,P)=>P.subPriority-D.subPriority)).map(E=>E[0]);let y=bt(t,n==null?void 0:n.in);if(isNaN(+y))return a();const w={};for(const E of b){if(!E.validate(y,d))return a();const D=E.set(y,w,d);Array.isArray(D)?(y=D[0],Object.assign(w,D[1])):y=D}return y}function wG(s){return s.match(gG)[1].replace(bG,"'")}function kG(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e);return n.getFullYear()===a.getFullYear()&&n.getMonth()===a.getMonth()}function SG(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e);return+Py(n)==+Py(a)}function jG(s,e,t){const[n,a]=cr(t==null?void 0:t.in,s,e);return n.getFullYear()===a.getFullYear()}function ld(s,e,t){const n=+bt(s,t==null?void 0:t.in),[a,i]=[+bt(e.start,t==null?void 0:t.in),+bt(e.end,t==null?void 0:t.in)].sort((o,l)=>o-l);return n>=a&&n<=i}function CG(s,e,t){return Za(s,-1,t)}function NG(s,e){const t=()=>jn(e==null?void 0:e.in,NaN),a=EG(s);let i;if(a.date){const d=_G(a.date,2);i=DG(d.restDateString,d.year)}if(!i||isNaN(+i))return t();const o=+i;let l=0,c;if(a.time&&(l=PG(a.time),isNaN(l)))return t();if(a.timezone){if(c=RG(a.timezone),isNaN(c))return t()}else{const d=new Date(o+l),f=bt(0,e==null?void 0:e.in);return f.setFullYear(d.getUTCFullYear(),d.getUTCMonth(),d.getUTCDate()),f.setHours(d.getUTCHours(),d.getUTCMinutes(),d.getUTCSeconds(),d.getUTCMilliseconds()),f}return bt(o+l+c,e==null?void 0:e.in)}const Wh={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},AG=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,MG=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,TG=/^([+-])(\d{2})(?::?(\d{2}))?$/;function EG(s){const e={},t=s.split(Wh.dateTimeDelimiter);let n;if(t.length>2)return e;if(/:/.test(t[0])?n=t[0]:(e.date=t[0],n=t[1],Wh.timeZoneDelimiter.test(e.date)&&(e.date=s.split(Wh.timeZoneDelimiter)[0],n=s.substr(e.date.length,s.length))),n){const a=Wh.timezone.exec(n);a?(e.time=n.replace(a[1],""),e.timezone=a[1]):e.time=n}return e}function _G(s,e){const t=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+e)+"})|(\\d{2}|[+-]\\d{"+(2+e)+"})$)"),n=s.match(t);if(!n)return{year:NaN,restDateString:""};const a=n[1]?parseInt(n[1]):null,i=n[2]?parseInt(n[2]):null;return{year:i===null?a:i*100,restDateString:s.slice((n[1]||n[2]).length)}}function DG(s,e){if(e===null)return new Date(NaN);const t=s.match(AG);if(!t)return new Date(NaN);const n=!!t[4],a=Eu(t[1]),i=Eu(t[2])-1,o=Eu(t[3]),l=Eu(t[4]),c=Eu(t[5])-1;if(n)return FG(e,l,c)?OG(e,l,c):new Date(NaN);{const d=new Date(0);return!IG(e,i,o)||!BG(e,a)?new Date(NaN):(d.setUTCFullYear(e,i,Math.max(a,o)),d)}}function Eu(s){return s?parseInt(s):1}function PG(s){const e=s.match(MG);if(!e)return NaN;const t=Cb(e[1]),n=Cb(e[2]),a=Cb(e[3]);return zG(t,n,a)?t*xf+n*yf+a*1e3:NaN}function Cb(s){return s&&parseFloat(s.replace(",","."))||0}function RG(s){if(s==="Z")return 0;const e=s.match(TG);if(!e)return 0;const t=e[1]==="+"?-1:1,n=parseInt(e[2]),a=e[3]&&parseInt(e[3])||0;return $G(n,a)?t*(n*xf+a*yf):NaN}function OG(s,e,t){const n=new Date(0);n.setUTCFullYear(s,0,4);const a=n.getUTCDay()||7,i=(e-1)*7+t+1-a;return n.setUTCDate(n.getUTCDate()+i),n}const LG=[31,null,31,30,31,30,31,31,30,31,30,31];function nE(s){return s%400===0||s%4===0&&s%100!==0}function IG(s,e,t){return e>=0&&e<=11&&t>=1&&t<=(LG[e]||(nE(s)?29:28))}function BG(s,e){return e>=1&&e<=(nE(s)?366:365)}function FG(s,e,t){return e>=1&&e<=53&&t>=0&&t<=6}function zG(s,e,t){return s===24?e===0&&t===0:t>=0&&t<60&&e>=0&&e<60&&s>=0&&s<25}function $G(s,e){return e>=0&&e<=59}function ga(s,e,t){const n=bt(s,t==null?void 0:t.in),a=n.getFullYear(),i=n.getDate(),o=jn(s,0);o.setFullYear(a,e,15),o.setHours(0,0,0,0);const l=kU(o);return n.setMonth(e,Math.min(i,l)),n}function ip(s,e,t){const n=bt(s,t==null?void 0:t.in);return n.setHours(e),n}function rp(s,e,t){const n=bt(s,t==null?void 0:t.in);return n.setMinutes(e),n}function Xl(s,e,t){const n=bt(s,t==null?void 0:t.in),a=Math.trunc(n.getMonth()/3)+1,i=e-a;return ga(n,n.getMonth()+i*3)}function op(s,e,t){const n=bt(s,t==null?void 0:t.in);return n.setSeconds(e),n}function di(s,e,t){const n=bt(s,t==null?void 0:t.in);return isNaN(+n)?jn(s,NaN):(n.setFullYear(e),n)}function Go(s,e,t){return Ja(s,-e,t)}function sE(s,e,t){return Gx(s,-1,t)}function m1(s,e,t){return Ip(s,-1,t)}function eo(s,e,t){return Qa(s,-e,t)}function wf(){return typeof window<"u"}function Cc(s){return aE(s)?(s.nodeName||"").toLowerCase():"#document"}function xa(s){var e;return(s==null||(e=s.ownerDocument)==null?void 0:e.defaultView)||window}function Ti(s){var e;return(e=(aE(s)?s.ownerDocument:s.document)||window.document)==null?void 0:e.documentElement}function aE(s){return wf()?s instanceof Node||s instanceof xa(s).Node:!1}function Hs(s){return wf()?s instanceof Element||s instanceof xa(s).Element:!1}function Ci(s){return wf()?s instanceof HTMLElement||s instanceof xa(s).HTMLElement:!1}function g1(s){return!wf()||typeof ShadowRoot>"u"?!1:s instanceof ShadowRoot||s instanceof xa(s).ShadowRoot}const HG=new Set(["inline","contents"]);function bd(s){const{overflow:e,overflowX:t,overflowY:n,display:a}=Ia(s);return/auto|scroll|overlay|hidden|clip/.test(e+n+t)&&!HG.has(a)}const UG=new Set(["table","td","th"]);function GG(s){return UG.has(Cc(s))}const WG=[":popover-open",":modal"];function kf(s){return WG.some(e=>{try{return s.matches(e)}catch{return!1}})}const qG=["transform","translate","scale","rotate","perspective"],YG=["transform","translate","scale","rotate","perspective","filter"],VG=["paint","layout","strict","content"];function Kx(s){const e=Xx(),t=Hs(s)?Ia(s):s;return qG.some(n=>t[n]?t[n]!=="none":!1)||(t.containerType?t.containerType!=="normal":!1)||!e&&(t.backdropFilter?t.backdropFilter!=="none":!1)||!e&&(t.filter?t.filter!=="none":!1)||YG.some(n=>(t.willChange||"").includes(n))||VG.some(n=>(t.contain||"").includes(n))}function KG(s){let e=to(s);for(;Ci(e)&&!gc(e);){if(Kx(e))return e;if(kf(e))return null;e=to(e)}return null}function Xx(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const XG=new Set(["html","body","#document"]);function gc(s){return XG.has(Cc(s))}function Ia(s){return xa(s).getComputedStyle(s)}function Sf(s){return Hs(s)?{scrollLeft:s.scrollLeft,scrollTop:s.scrollTop}:{scrollLeft:s.scrollX,scrollTop:s.scrollY}}function to(s){if(Cc(s)==="html")return s;const e=s.assignedSlot||s.parentNode||g1(s)&&s.host||Ti(s);return g1(e)?e.host:e}function iE(s){const e=to(s);return gc(e)?s.ownerDocument?s.ownerDocument.body:s.body:Ci(e)&&bd(e)?e:iE(e)}function cd(s,e,t){var n;e===void 0&&(e=[]),t===void 0&&(t=!0);const a=iE(s),i=a===((n=s.ownerDocument)==null?void 0:n.body),o=xa(a);if(i){const l=Ly(o);return e.concat(o,o.visualViewport||[],bd(a)?a:[],l&&t?cd(l):[])}return e.concat(a,cd(a,[],t))}function Ly(s){return s.parent&&Object.getPrototypeOf(s.parent)?s.frameElement:null}const bc=Math.min,Wo=Math.max,Hp=Math.round,qh=Math.floor,Si=s=>({x:s,y:s}),ZG={left:"right",right:"left",bottom:"top",top:"bottom"},QG={start:"end",end:"start"};function JG(s,e,t){return Wo(s,bc(e,t))}function jf(s,e){return typeof s=="function"?s(e):s}function yc(s){return s.split("-")[0]}function yd(s){return s.split("-")[1]}function eW(s){return s==="x"?"y":"x"}function Zx(s){return s==="y"?"height":"width"}const tW=new Set(["top","bottom"]);function Io(s){return tW.has(yc(s))?"y":"x"}function Qx(s){return eW(Io(s))}function nW(s,e,t){t===void 0&&(t=!1);const n=yd(s),a=Qx(s),i=Zx(a);let o=a==="x"?n===(t?"end":"start")?"right":"left":n==="start"?"bottom":"top";return e.reference[i]>e.floating[i]&&(o=Up(o)),[o,Up(o)]}function sW(s){const e=Up(s);return[Iy(s),e,Iy(e)]}function Iy(s){return s.replace(/start|end/g,e=>QG[e])}const b1=["left","right"],y1=["right","left"],aW=["top","bottom"],iW=["bottom","top"];function rW(s,e,t){switch(s){case"top":case"bottom":return t?e?y1:b1:e?b1:y1;case"left":case"right":return e?aW:iW;default:return[]}}function oW(s,e,t,n){const a=yd(s);let i=rW(yc(s),t==="start",n);return a&&(i=i.map(o=>o+"-"+a),e&&(i=i.concat(i.map(Iy)))),i}function Up(s){return s.replace(/left|right|bottom|top/g,e=>ZG[e])}function lW(s){return{top:0,right:0,bottom:0,left:0,...s}}function rE(s){return typeof s!="number"?lW(s):{top:s,right:s,bottom:s,left:s}}function Gp(s){const{x:e,y:t,width:n,height:a}=s;return{width:n,height:a,top:t,left:e,right:e+n,bottom:t+a,x:e,y:t}}var cW=typeof document<"u",uW=function(){},Wp=cW?x.useLayoutEffect:uW;const dW={...nA},hW=dW.useInsertionEffect,pW=hW||(s=>s());function fW(s){const e=x.useRef(()=>{});return pW(()=>{e.current=s}),x.useCallback(function(){for(var t=arguments.length,n=new Array(t),a=0;a<t;a++)n[a]=arguments[a];return e.current==null?void 0:e.current(...n)},[])}function x1(s,e,t){let{reference:n,floating:a}=s;const i=Io(e),o=Qx(e),l=Zx(o),c=yc(e),d=i==="y",f=n.x+n.width/2-a.width/2,p=n.y+n.height/2-a.height/2,g=n[l]/2-a[l]/2;let b;switch(c){case"top":b={x:f,y:n.y-a.height};break;case"bottom":b={x:f,y:n.y+n.height};break;case"right":b={x:n.x+n.width,y:p};break;case"left":b={x:n.x-a.width,y:p};break;default:b={x:n.x,y:n.y}}switch(yd(e)){case"start":b[o]-=g*(t&&d?-1:1);break;case"end":b[o]+=g*(t&&d?-1:1);break}return b}async function mW(s,e){var t;e===void 0&&(e={});const{x:n,y:a,platform:i,rects:o,elements:l,strategy:c}=s,{boundary:d="clippingAncestors",rootBoundary:f="viewport",elementContext:p="floating",altBoundary:g=!1,padding:b=0}=jf(e,s),y=rE(b),k=l[g?p==="floating"?"reference":"floating":p],S=Gp(await i.getClippingRect({element:(t=await(i.isElement==null?void 0:i.isElement(k)))==null||t?k:k.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:d,rootBoundary:f,strategy:c})),j=p==="floating"?{x:n,y:a,width:o.floating.width,height:o.floating.height}:o.reference,C=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),A=await(i.isElement==null?void 0:i.isElement(C))?await(i.getScale==null?void 0:i.getScale(C))||{x:1,y:1}:{x:1,y:1},_=Gp(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:j,offsetParent:C,strategy:c}):j);return{top:(S.top-_.top+y.top)/A.y,bottom:(_.bottom-S.bottom+y.bottom)/A.y,left:(S.left-_.left+y.left)/A.x,right:(_.right-S.right+y.right)/A.x}}const gW=async(s,e,t)=>{const{placement:n="bottom",strategy:a="absolute",middleware:i=[],platform:o}=t,l=i.filter(Boolean),c=await(o.isRTL==null?void 0:o.isRTL(e));let d=await o.getElementRects({reference:s,floating:e,strategy:a}),{x:f,y:p}=x1(d,n,c),g=n,b={},y=0;for(let k=0;k<l.length;k++){var w;const{name:S,fn:j}=l[k],{x:C,y:A,data:_,reset:M}=await j({x:f,y:p,initialPlacement:n,placement:g,strategy:a,middlewareData:b,rects:d,platform:{...o,detectOverflow:(w=o.detectOverflow)!=null?w:mW},elements:{reference:s,floating:e}});f=C??f,p=A??p,b={...b,[S]:{...b[S],..._}},M&&y<=50&&(y++,typeof M=="object"&&(M.placement&&(g=M.placement),M.rects&&(d=M.rects===!0?await o.getElementRects({reference:s,floating:e,strategy:a}):M.rects),{x:f,y:p}=x1(d,g,c)),k=-1)}return{x:f,y:p,placement:g,strategy:a,middlewareData:b}},bW=s=>({name:"arrow",options:s,async fn(e){const{x:t,y:n,placement:a,rects:i,platform:o,elements:l,middlewareData:c}=e,{element:d,padding:f=0}=jf(s,e)||{};if(d==null)return{};const p=rE(f),g={x:t,y:n},b=Qx(a),y=Zx(b),w=await o.getDimensions(d),k=b==="y",S=k?"top":"left",j=k?"bottom":"right",C=k?"clientHeight":"clientWidth",A=i.reference[y]+i.reference[b]-g[b]-i.floating[y],_=g[b]-i.reference[b],M=await(o.getOffsetParent==null?void 0:o.getOffsetParent(d));let $=M?M[C]:0;(!$||!await(o.isElement==null?void 0:o.isElement(M)))&&($=l.floating[C]||i.floating[y]);const E=A/2-_/2,D=$/2-w[y]/2-1,P=bc(p[S],D),R=bc(p[j],D),L=P,z=$-w[y]-R,B=$/2-w[y]/2+E,F=JG(L,B,z),H=!c.arrow&&yd(a)!=null&&B!==F&&i.reference[y]/2-(B<L?P:R)-w[y]/2<0,G=H?B<L?B-L:B-z:0;return{[b]:g[b]+G,data:{[b]:F,centerOffset:B-F-G,...H&&{alignmentOffset:G}},reset:H}}}),yW=function(s){return s===void 0&&(s={}),{name:"flip",options:s,async fn(e){var t,n;const{placement:a,middlewareData:i,rects:o,initialPlacement:l,platform:c,elements:d}=e,{mainAxis:f=!0,crossAxis:p=!0,fallbackPlacements:g,fallbackStrategy:b="bestFit",fallbackAxisSideDirection:y="none",flipAlignment:w=!0,...k}=jf(s,e);if((t=i.arrow)!=null&&t.alignmentOffset)return{};const S=yc(a),j=Io(l),C=yc(l)===l,A=await(c.isRTL==null?void 0:c.isRTL(d.floating)),_=g||(C||!w?[Up(l)]:sW(l)),M=y!=="none";!g&&M&&_.push(...oW(l,w,y,A));const $=[l,..._],E=await c.detectOverflow(e,k),D=[];let P=((n=i.flip)==null?void 0:n.overflows)||[];if(f&&D.push(E[S]),p){const B=nW(a,o,A);D.push(E[B[0]],E[B[1]])}if(P=[...P,{placement:a,overflows:D}],!D.every(B=>B<=0)){var R,L;const B=(((R=i.flip)==null?void 0:R.index)||0)+1,F=$[B];if(F&&(!(p==="alignment"?j!==Io(F):!1)||P.every(K=>Io(K.placement)===j?K.overflows[0]>0:!0)))return{data:{index:B,overflows:P},reset:{placement:F}};let H=(L=P.filter(G=>G.overflows[0]<=0).sort((G,K)=>G.overflows[1]-K.overflows[1])[0])==null?void 0:L.placement;if(!H)switch(b){case"bestFit":{var z;const G=(z=P.filter(K=>{if(M){const X=Io(K.placement);return X===j||X==="y"}return!0}).map(K=>[K.placement,K.overflows.filter(X=>X>0).reduce((X,I)=>X+I,0)]).sort((K,X)=>K[1]-X[1])[0])==null?void 0:z[0];G&&(H=G);break}case"initialPlacement":H=l;break}if(a!==H)return{reset:{placement:H}}}return{}}}},xW=new Set(["left","top"]);async function vW(s,e){const{placement:t,platform:n,elements:a}=s,i=await(n.isRTL==null?void 0:n.isRTL(a.floating)),o=yc(t),l=yd(t),c=Io(t)==="y",d=xW.has(o)?-1:1,f=i&&c?-1:1,p=jf(e,s);let{mainAxis:g,crossAxis:b,alignmentAxis:y}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return l&&typeof y=="number"&&(b=l==="end"?y*-1:y),c?{x:b*f,y:g*d}:{x:g*d,y:b*f}}const wW=function(s){return s===void 0&&(s=0),{name:"offset",options:s,async fn(e){var t,n;const{x:a,y:i,placement:o,middlewareData:l}=e,c=await vW(e,s);return o===((t=l.offset)==null?void 0:t.placement)&&(n=l.arrow)!=null&&n.alignmentOffset?{}:{x:a+c.x,y:i+c.y,data:{...c,placement:o}}}}};function oE(s){const e=Ia(s);let t=parseFloat(e.width)||0,n=parseFloat(e.height)||0;const a=Ci(s),i=a?s.offsetWidth:t,o=a?s.offsetHeight:n,l=Hp(t)!==i||Hp(n)!==o;return l&&(t=i,n=o),{width:t,height:n,$:l}}function Jx(s){return Hs(s)?s:s.contextElement}function rc(s){const e=Jx(s);if(!Ci(e))return Si(1);const t=e.getBoundingClientRect(),{width:n,height:a,$:i}=oE(e);let o=(i?Hp(t.width):t.width)/n,l=(i?Hp(t.height):t.height)/a;return(!o||!Number.isFinite(o))&&(o=1),(!l||!Number.isFinite(l))&&(l=1),{x:o,y:l}}const kW=Si(0);function lE(s){const e=xa(s);return!Xx()||!e.visualViewport?kW:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function SW(s,e,t){return e===void 0&&(e=!1),!t||e&&t!==xa(s)?!1:e}function nl(s,e,t,n){e===void 0&&(e=!1),t===void 0&&(t=!1);const a=s.getBoundingClientRect(),i=Jx(s);let o=Si(1);e&&(n?Hs(n)&&(o=rc(n)):o=rc(s));const l=SW(i,t,n)?lE(i):Si(0);let c=(a.left+l.x)/o.x,d=(a.top+l.y)/o.y,f=a.width/o.x,p=a.height/o.y;if(i){const g=xa(i),b=n&&Hs(n)?xa(n):n;let y=g,w=Ly(y);for(;w&&n&&b!==y;){const k=rc(w),S=w.getBoundingClientRect(),j=Ia(w),C=S.left+(w.clientLeft+parseFloat(j.paddingLeft))*k.x,A=S.top+(w.clientTop+parseFloat(j.paddingTop))*k.y;c*=k.x,d*=k.y,f*=k.x,p*=k.y,c+=C,d+=A,y=xa(w),w=Ly(y)}}return Gp({width:f,height:p,x:c,y:d})}function Cf(s,e){const t=Sf(s).scrollLeft;return e?e.left+t:nl(Ti(s)).left+t}function cE(s,e){const t=s.getBoundingClientRect(),n=t.left+e.scrollLeft-Cf(s,t),a=t.top+e.scrollTop;return{x:n,y:a}}function jW(s){let{elements:e,rect:t,offsetParent:n,strategy:a}=s;const i=a==="fixed",o=Ti(n),l=e?kf(e.floating):!1;if(n===o||l&&i)return t;let c={scrollLeft:0,scrollTop:0},d=Si(1);const f=Si(0),p=Ci(n);if((p||!p&&!i)&&((Cc(n)!=="body"||bd(o))&&(c=Sf(n)),Ci(n))){const b=nl(n);d=rc(n),f.x=b.x+n.clientLeft,f.y=b.y+n.clientTop}const g=o&&!p&&!i?cE(o,c):Si(0);return{width:t.width*d.x,height:t.height*d.y,x:t.x*d.x-c.scrollLeft*d.x+f.x+g.x,y:t.y*d.y-c.scrollTop*d.y+f.y+g.y}}function CW(s){return Array.from(s.getClientRects())}function NW(s){const e=Ti(s),t=Sf(s),n=s.ownerDocument.body,a=Wo(e.scrollWidth,e.clientWidth,n.scrollWidth,n.clientWidth),i=Wo(e.scrollHeight,e.clientHeight,n.scrollHeight,n.clientHeight);let o=-t.scrollLeft+Cf(s);const l=-t.scrollTop;return Ia(n).direction==="rtl"&&(o+=Wo(e.clientWidth,n.clientWidth)-a),{width:a,height:i,x:o,y:l}}const v1=25;function AW(s,e){const t=xa(s),n=Ti(s),a=t.visualViewport;let i=n.clientWidth,o=n.clientHeight,l=0,c=0;if(a){i=a.width,o=a.height;const f=Xx();(!f||f&&e==="fixed")&&(l=a.offsetLeft,c=a.offsetTop)}const d=Cf(n);if(d<=0){const f=n.ownerDocument,p=f.body,g=getComputedStyle(p),b=f.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,y=Math.abs(n.clientWidth-p.clientWidth-b);y<=v1&&(i-=y)}else d<=v1&&(i+=d);return{width:i,height:o,x:l,y:c}}const MW=new Set(["absolute","fixed"]);function TW(s,e){const t=nl(s,!0,e==="fixed"),n=t.top+s.clientTop,a=t.left+s.clientLeft,i=Ci(s)?rc(s):Si(1),o=s.clientWidth*i.x,l=s.clientHeight*i.y,c=a*i.x,d=n*i.y;return{width:o,height:l,x:c,y:d}}function w1(s,e,t){let n;if(e==="viewport")n=AW(s,t);else if(e==="document")n=NW(Ti(s));else if(Hs(e))n=TW(e,t);else{const a=lE(s);n={x:e.x-a.x,y:e.y-a.y,width:e.width,height:e.height}}return Gp(n)}function uE(s,e){const t=to(s);return t===e||!Hs(t)||gc(t)?!1:Ia(t).position==="fixed"||uE(t,e)}function EW(s,e){const t=e.get(s);if(t)return t;let n=cd(s,[],!1).filter(l=>Hs(l)&&Cc(l)!=="body"),a=null;const i=Ia(s).position==="fixed";let o=i?to(s):s;for(;Hs(o)&&!gc(o);){const l=Ia(o),c=Kx(o);!c&&l.position==="fixed"&&(a=null),(i?!c&&!a:!c&&l.position==="static"&&!!a&&MW.has(a.position)||bd(o)&&!c&&uE(s,o))?n=n.filter(f=>f!==o):a=l,o=to(o)}return e.set(s,n),n}function _W(s){let{element:e,boundary:t,rootBoundary:n,strategy:a}=s;const o=[...t==="clippingAncestors"?kf(e)?[]:EW(e,this._c):[].concat(t),n],l=o[0],c=o.reduce((d,f)=>{const p=w1(e,f,a);return d.top=Wo(p.top,d.top),d.right=bc(p.right,d.right),d.bottom=bc(p.bottom,d.bottom),d.left=Wo(p.left,d.left),d},w1(e,l,a));return{width:c.right-c.left,height:c.bottom-c.top,x:c.left,y:c.top}}function DW(s){const{width:e,height:t}=oE(s);return{width:e,height:t}}function PW(s,e,t){const n=Ci(e),a=Ti(e),i=t==="fixed",o=nl(s,!0,i,e);let l={scrollLeft:0,scrollTop:0};const c=Si(0);function d(){c.x=Cf(a)}if(n||!n&&!i)if((Cc(e)!=="body"||bd(a))&&(l=Sf(e)),n){const b=nl(e,!0,i,e);c.x=b.x+e.clientLeft,c.y=b.y+e.clientTop}else a&&d();i&&!n&&a&&d();const f=a&&!n&&!i?cE(a,l):Si(0),p=o.left+l.scrollLeft-c.x-f.x,g=o.top+l.scrollTop-c.y-f.y;return{x:p,y:g,width:o.width,height:o.height}}function Nb(s){return Ia(s).position==="static"}function k1(s,e){if(!Ci(s)||Ia(s).position==="fixed")return null;if(e)return e(s);let t=s.offsetParent;return Ti(s)===t&&(t=t.ownerDocument.body),t}function dE(s,e){const t=xa(s);if(kf(s))return t;if(!Ci(s)){let a=to(s);for(;a&&!gc(a);){if(Hs(a)&&!Nb(a))return a;a=to(a)}return t}let n=k1(s,e);for(;n&&GG(n)&&Nb(n);)n=k1(n,e);return n&&gc(n)&&Nb(n)&&!Kx(n)?t:n||KG(s)||t}const RW=async function(s){const e=this.getOffsetParent||dE,t=this.getDimensions,n=await t(s.floating);return{reference:PW(s.reference,await e(s.floating),s.strategy),floating:{x:0,y:0,width:n.width,height:n.height}}};function OW(s){return Ia(s).direction==="rtl"}const LW={convertOffsetParentRelativeRectToViewportRelativeRect:jW,getDocumentElement:Ti,getClippingRect:_W,getOffsetParent:dE,getElementRects:RW,getClientRects:CW,getDimensions:DW,getScale:rc,isElement:Hs,isRTL:OW};function hE(s,e){return s.x===e.x&&s.y===e.y&&s.width===e.width&&s.height===e.height}function IW(s,e){let t=null,n;const a=Ti(s);function i(){var l;clearTimeout(n),(l=t)==null||l.disconnect(),t=null}function o(l,c){l===void 0&&(l=!1),c===void 0&&(c=1),i();const d=s.getBoundingClientRect(),{left:f,top:p,width:g,height:b}=d;if(l||e(),!g||!b)return;const y=qh(p),w=qh(a.clientWidth-(f+g)),k=qh(a.clientHeight-(p+b)),S=qh(f),C={rootMargin:-y+"px "+-w+"px "+-k+"px "+-S+"px",threshold:Wo(0,bc(1,c))||1};let A=!0;function _(M){const $=M[0].intersectionRatio;if($!==c){if(!A)return o();$?o(!1,$):n=setTimeout(()=>{o(!1,1e-7)},1e3)}$===1&&!hE(d,s.getBoundingClientRect())&&o(),A=!1}try{t=new IntersectionObserver(_,{...C,root:a.ownerDocument})}catch{t=new IntersectionObserver(_,C)}t.observe(s)}return o(!0),i}function BW(s,e,t,n){n===void 0&&(n={});const{ancestorScroll:a=!0,ancestorResize:i=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:c=!1}=n,d=Jx(s),f=a||i?[...d?cd(d):[],...cd(e)]:[];f.forEach(S=>{a&&S.addEventListener("scroll",t,{passive:!0}),i&&S.addEventListener("resize",t)});const p=d&&l?IW(d,t):null;let g=-1,b=null;o&&(b=new ResizeObserver(S=>{let[j]=S;j&&j.target===d&&b&&(b.unobserve(e),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var C;(C=b)==null||C.observe(e)})),t()}),d&&!c&&b.observe(d),b.observe(e));let y,w=c?nl(s):null;c&&k();function k(){const S=nl(s);w&&!hE(w,S)&&t(),w=S,y=requestAnimationFrame(k)}return t(),()=>{var S;f.forEach(j=>{a&&j.removeEventListener("scroll",t),i&&j.removeEventListener("resize",t)}),p==null||p(),(S=b)==null||S.disconnect(),b=null,c&&cancelAnimationFrame(y)}}const FW=wW,zW=yW,S1=bW,$W=(s,e,t)=>{const n=new Map,a={platform:LW,...t},i={...a.platform,_c:n};return gW(s,e,{...a,platform:i})};var HW=typeof document<"u",UW=function(){},lp=HW?x.useLayoutEffect:UW;function qp(s,e){if(s===e)return!0;if(typeof s!=typeof e)return!1;if(typeof s=="function"&&s.toString()===e.toString())return!0;let t,n,a;if(s&&e&&typeof s=="object"){if(Array.isArray(s)){if(t=s.length,t!==e.length)return!1;for(n=t;n--!==0;)if(!qp(s[n],e[n]))return!1;return!0}if(a=Object.keys(s),t=a.length,t!==Object.keys(e).length)return!1;for(n=t;n--!==0;)if(!{}.hasOwnProperty.call(e,a[n]))return!1;for(n=t;n--!==0;){const i=a[n];if(!(i==="_owner"&&s.$$typeof)&&!qp(s[i],e[i]))return!1}return!0}return s!==s&&e!==e}function pE(s){return typeof window>"u"?1:(s.ownerDocument.defaultView||window).devicePixelRatio||1}function j1(s,e){const t=pE(s);return Math.round(e*t)/t}function Ab(s){const e=x.useRef(s);return lp(()=>{e.current=s}),e}function GW(s){s===void 0&&(s={});const{placement:e="bottom",strategy:t="absolute",middleware:n=[],platform:a,elements:{reference:i,floating:o}={},transform:l=!0,whileElementsMounted:c,open:d}=s,[f,p]=x.useState({x:0,y:0,strategy:t,placement:e,middlewareData:{},isPositioned:!1}),[g,b]=x.useState(n);qp(g,n)||b(n);const[y,w]=x.useState(null),[k,S]=x.useState(null),j=x.useCallback(K=>{K!==M.current&&(M.current=K,w(K))},[]),C=x.useCallback(K=>{K!==$.current&&($.current=K,S(K))},[]),A=i||y,_=o||k,M=x.useRef(null),$=x.useRef(null),E=x.useRef(f),D=c!=null,P=Ab(c),R=Ab(a),L=Ab(d),z=x.useCallback(()=>{if(!M.current||!$.current)return;const K={placement:e,strategy:t,middleware:g};R.current&&(K.platform=R.current),$W(M.current,$.current,K).then(X=>{const I={...X,isPositioned:L.current!==!1};B.current&&!qp(E.current,I)&&(E.current=I,wc.flushSync(()=>{p(I)}))})},[g,e,t,R,L]);lp(()=>{d===!1&&E.current.isPositioned&&(E.current.isPositioned=!1,p(K=>({...K,isPositioned:!1})))},[d]);const B=x.useRef(!1);lp(()=>(B.current=!0,()=>{B.current=!1}),[]),lp(()=>{if(A&&(M.current=A),_&&($.current=_),A&&_){if(P.current)return P.current(A,_,z);z()}},[A,_,z,P,D]);const F=x.useMemo(()=>({reference:M,floating:$,setReference:j,setFloating:C}),[j,C]),H=x.useMemo(()=>({reference:A,floating:_}),[A,_]),G=x.useMemo(()=>{const K={position:t,left:0,top:0};if(!H.floating)return K;const X=j1(H.floating,f.x),I=j1(H.floating,f.y);return l?{...K,transform:"translate("+X+"px, "+I+"px)",...pE(H.floating)>=1.5&&{willChange:"transform"}}:{position:t,left:X,top:I}},[t,l,H.floating,f.x,f.y]);return x.useMemo(()=>({...f,update:z,refs:F,elements:H,floatingStyles:G}),[f,z,F,H,G])}const WW=s=>{function e(t){return{}.hasOwnProperty.call(t,"current")}return{name:"arrow",options:s,fn(t){const{element:n,padding:a}=typeof s=="function"?s(t):s;return n&&e(n)?n.current!=null?S1({element:n.current,padding:a}).fn(t):{}:n?S1({element:n,padding:a}).fn(t):{}}}},qW=(s,e)=>({...FW(s),options:[s,e]}),YW=(s,e)=>({...zW(s),options:[s,e]}),VW=(s,e)=>({...WW(s),options:[s,e]}),KW={...nA};let C1=!1,XW=0;const N1=()=>"floating-ui-"+Math.random().toString(36).slice(2,6)+XW++;function ZW(){const[s,e]=x.useState(()=>C1?N1():void 0);return Wp(()=>{s==null&&e(N1())},[]),x.useEffect(()=>{C1=!0},[]),s}const QW=KW.useId,fE=QW||ZW,JW=x.forwardRef(function(e,t){const{context:{placement:n,elements:{floating:a},middlewareData:{arrow:i,shift:o}},width:l=14,height:c=7,tipRadius:d=0,strokeWidth:f=0,staticOffset:p,stroke:g,d:b,style:{transform:y,...w}={},...k}=e,S=fE(),[j,C]=x.useState(!1);if(Wp(()=>{if(!a)return;Ia(a).direction==="rtl"&&C(!0)},[a]),!a)return null;const[A,_]=n.split("-"),M=A==="top"||A==="bottom";let $=p;(M&&o!=null&&o.x||!M&&o!=null&&o.y)&&($=null);const E=f*2,D=E/2,P=l/2*(d/-8+1),R=c/2*d/4,L=!!b,z=$&&_==="end"?"bottom":"top";let B=$&&_==="end"?"right":"left";$&&j&&(B=_==="end"?"left":"right");const F=(i==null?void 0:i.x)!=null?$||i.x:"",H=(i==null?void 0:i.y)!=null?$||i.y:"",G=b||"M0,0"+(" H"+l)+(" L"+(l-P)+","+(c-R))+(" Q"+l/2+","+c+" "+P+","+(c-R))+" Z",K={top:L?"rotate(180deg)":"",left:L?"rotate(90deg)":"rotate(-90deg)",bottom:L?"":"rotate(180deg)",right:L?"rotate(-90deg)":"rotate(90deg)"}[A];return r.jsxs("svg",{...k,"aria-hidden":!0,ref:t,width:L?l:l+E,height:l,viewBox:"0 0 "+l+" "+(c>l?c:l),style:{position:"absolute",pointerEvents:"none",[B]:F,[z]:H,[A]:M||L?"100%":"calc(100% - "+E/2+"px)",transform:[K,y].filter(X=>!!X).join(" "),...w},children:[E>0&&r.jsx("path",{clipPath:"url(#"+S+")",fill:"none",stroke:g,strokeWidth:E+(b?0:1),d:G}),r.jsx("path",{stroke:E&&!b?k.fill:"none",d:G}),r.jsx("clipPath",{id:S,children:r.jsx("rect",{x:-D,y:D*(L?-1:1),width:l+E,height:l})})]})});function e7(){const s=new Map;return{emit(e,t){var n;(n=s.get(e))==null||n.forEach(a=>a(t))},on(e,t){s.has(e)||s.set(e,new Set),s.get(e).add(t)},off(e,t){var n;(n=s.get(e))==null||n.delete(t)}}}const t7=x.createContext(null),n7=x.createContext(null),s7=()=>{var s;return((s=x.useContext(t7))==null?void 0:s.id)||null},a7=()=>x.useContext(n7);function i7(s){const{open:e=!1,onOpenChange:t,elements:n}=s,a=fE(),i=x.useRef({}),[o]=x.useState(()=>e7()),l=s7()!=null,[c,d]=x.useState(n.reference),f=fW((b,y,w)=>{i.current.openEvent=b?y:void 0,o.emit("openchange",{open:b,event:y,reason:w,nested:l}),t==null||t(b,y,w)}),p=x.useMemo(()=>({setPositionReference:d}),[]),g=x.useMemo(()=>({reference:c||n.reference||null,floating:n.floating||null,domReference:n.reference}),[c,n.reference,n.floating]);return x.useMemo(()=>({dataRef:i,open:e,onOpenChange:f,elements:g,events:o,floatingId:a,refs:p}),[e,f,g,o,a,p])}function r7(s){s===void 0&&(s={});const{nodeId:e}=s,t=i7({...s,elements:{reference:null,floating:null,...s.elements}}),n=s.rootContext||t,a=n.elements,[i,o]=x.useState(null),[l,c]=x.useState(null),f=(a==null?void 0:a.domReference)||i,p=x.useRef(null),g=a7();Wp(()=>{f&&(p.current=f)},[f]);const b=GW({...s,elements:{...a,...l&&{reference:l}}}),y=x.useCallback(C=>{const A=Hs(C)?{getBoundingClientRect:()=>C.getBoundingClientRect(),getClientRects:()=>C.getClientRects(),contextElement:C}:C;c(A),b.refs.setReference(A)},[b.refs]),w=x.useCallback(C=>{(Hs(C)||C===null)&&(p.current=C,o(C)),(Hs(b.refs.reference.current)||b.refs.reference.current===null||C!==null&&!Hs(C))&&b.refs.setReference(C)},[b.refs]),k=x.useMemo(()=>({...b.refs,setReference:w,setPositionReference:y,domReference:p}),[b.refs,w,y]),S=x.useMemo(()=>({...b.elements,domReference:f}),[b.elements,f]),j=x.useMemo(()=>({...b,...n,refs:k,elements:S,nodeId:e}),[b,k,S,e,n]);return Wp(()=>{n.dataRef.current.floatingContext=j;const C=g==null?void 0:g.nodesRef.current.find(A=>A.id===e);C&&(C.context=j)}),x.useMemo(()=>({...b,context:j,refs:k,elements:S}),[b,k,S,j])}/*!
|
|
234
234
|
react-datepicker v9.1.0
|