teapot-coding-agent 0.25.1 → 0.26.0
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/agent/agent.js +146 -9
- package/dist/agent/tools.js +55 -5
- package/dist/master.js +31 -0
- package/dist/server/api.js +45 -1
- package/package.json +1 -1
- package/public/assets/{index-DLBs15ef.js → index-BrEdnC4L.js} +8 -8
- package/public/assets/index-BrEdnC4L.js.map +1 -0
- package/public/assets/{shiki-DavJK6MV.js → shiki-D1LowWvE.js} +2 -2
- package/public/assets/{shiki-DavJK6MV.js.map → shiki-D1LowWvE.js.map} +1 -1
- package/public/index.html +1 -1
- package/public/assets/index-DLBs15ef.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"mappings":"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,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK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,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,IAAI,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE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","names":["mdCache","Map","renderMarkdownCached","src","hit","get","undefined","html","renderMarkdown","set","size","delete","keys","next","value","REASONING_EFFORT_OPTIONS","NARROW_PX","AUTHORS","prompt","name","icon","color","user","message","progress","question","HARNESS_AUTH","flash","setFlash","createSignal","flashTimer","flashHint","msg","clearTimeout","setTimeout","imeInProgress","THEMES","key","label","mode","sw","themeColors","bg","fg","cs","getComputedStyle","document","documentElement","getPropertyValue","trim","background","foreground","authorOf","e","data","actor","String","type","source","startsWith","slice","FEED_TYPES","Set","NOTE_FEED_TYPES","fmtTs","iso","d","Date","getHours","padStart","getMinutes","api","path","opts","token","localStorage","getItem","headers","Headers","has","res","fetch","ok","status","window","dispatchEvent","CustomEvent","body","json","detail","error","Object","assign","Error","payload","hashTok","location","hash","match","setItem","decodeURIComponent","history","replaceState","pathname","search","wsTokenQuery","t","encodeURIComponent","App","agents","setAgents","selected","setSelected","timelineId","setTimelineId","masterSessionIndex","setMasterSessionIndex","sessionsByAgent","setSessionsByAgent","sessionIndexFetched","refreshSessionIndex","force","r","byId","byAgent","s","sessions","id","agentId","list","push","events","setEvents","eventsTotal","setEventsTotal","branches","setBranches","metrics","setMetrics","drafts","draft","setDraft","saveDraft","v","cfg","setCfg","providers","showNew","setShowNew","showCfg","setShowCfg","isNarrow","innerWidth","narrow","setNarrow","onMount","onResize","addEventListener","onCleanup","removeEventListener","showRight","setShowRight","setRight","toggleRight","closeRight","showThemes","setShowThemes","fixedTheme","setFixedTheme","themeAuto","setThemeAuto","sysLightTheme","setSysLightTheme","sysDarkTheme","setSysDarkTheme","sysMql","matchMedia","sysPrefersLight","setSysPrefersLight","matches","onChange","createEffect","active","dataset","theme","appearance","find","modelProvider","setModelProvider","modelDraft","setModelDraft","effortDraft","setEffortDraft","untrack","a","reasoningEffort","models","setModels","providerList","loadModels","prov","modalityBadge","m","text","image","audio","video","file","side","map","k","join","modalities","input","output","modelSpec","sel","model","x","parts","badge","contextLength","fmtK","price","p","Math","round","toFixed","pricing","pin","pout","completion","_prevModelAgent","provider","defaultProvider","curProv","curDraft","composerMaximized","setComposerMaximized","atBottom","setAtBottom","missed","setMissed","compacting","setCompacting","liveIsCompact","liveText","liveBody","setLive","l","liveByAgent","setLiveByAgent","live","patch","prev","at","now","setLiveText","thinkStartedAt","setThinkStartedAt","liveStartedAt","liveReasoning","setLiveReasoning","liveRenderTimer","reasoning","length","st","txt","rsn","requestAnimationFrame","scrollBottom","queued","pendingPrompts","liveIds","pendingPromptIds","setPendingMsgs","matched","filter","promptId","unidentifiable","onVisible","visibilityState","nearBottom","createMemo","isSelLive","editing","setEditing","add","callId","pendingMsgs","notifs","setNotifs","hideGhosts","setHideGhosts","showNotifs","setShowNotifs","unreadCount","n","read","markSessionRead","changed","subtreeUnread","total","child","parent","notifSeq","addNotif","maybeNotify","ev","who","eid","final","kind","title","content","eventId","doing","recent","Boolean","jumpToEvent","el","querySelector","scrollIntoView","behavior","block","classList","remove","pairInfo","resFor","consumed","awaiting","orphanCalls","q","call","shift","locallyAnswered","setLocallyAnswered","markAnswered","clearLocallyAnswered","answeredQuestionIds","lastQuestionAt","lastUserPromptAt","seq","event","max","chatEvents","lastKind","_prevKind","real","metaToolName","progressEcho","expanded","sub","norm","replace","toLowerCase","deduped","i","role","includes","dec","decision","deliveredIds","loggedUserPrompts","deliveredNotes","cancelledNotes","pid","stillPendingIds","visible","cancelSeq","cancelled","resequenceToDelivery","placeEchoesBelow","pend","echoEv","echoes","echoCache","sent","clear","ts","toISOString","session","branch","pending","images","loadCfg","then","catch","authLocked","setAuthLocked","onUnauthorized","todoDraft","setTodoDraft","todoViewMode","setTodoViewMode","todoDirty","setTodoDirty","todoSeededFor","serverTodo","todo","saveTodo","notify","getElementById","checked","method","JSON","stringify","refreshAgents","ex","todoStats","done","line","split","agentSetChanged","prevById","refreshMetrics","tasks","setTasks","loadTasks","agentTasks","agent","collapsedSubs","setCollapsedSubs","parse","toggleCollapse","chatGroupKey","chatGroupKeyOf","wsCollapsed","setWsCollapsed","raw","Array","isArray","chatCollapsed","out","treeRows","treeRowsOf","toggleWsGroup","groupKey","isCollapsed","alsoClear","open","basenameOf","pop","wsCountLabel","ws","wsChatCounts","wsChatCountsOf","sidebarRows","sidebarRowsOf","FEED_PAGE","branchFilter","setBranchFilter","evCache","cacheKey","stabilize","from","known","oldest","loadingOlder","setLoadingOlder","olderDone","setOlderDone","feedGeneration","lastBranchesGen","mergeEvents","incoming","values","sort","b","backfillUntilScrollable","measurable","f","feedEl","clientHeight","guard","scrollHeight","before","loadOlder","prevH","prevTop","scrollTop","bf","tid","sessQ","page","loadEvents","sessionId","genAtStart","needsBranches","br","sk","Promise","all","resolve","skills","setAgentSkills","bottomSlack","c","min","timelineCache","latestSessionOf","requested","bound","select","forceSession","prevId","prevTid","prevEvents","prevTotal","TIMELINE_CACHE_MAX","entries","y","userScrolledUp","lastScrollGap","navigate","cached","ctx","phase","connected","setConnected","timer","close","pendingRefresh","onTabVisible","connectWs","proto","protocol","WebSocket","host","onopen","onclose","onerror","FEED_IRRELEVANT","onmessage","isTurnBoundary","clearLive","applyDelta","summarized","snapshot","findIndex","cur","j","et","ed","runFeedRefresh","beforeId","beforeTotal","buf","isCoveredByLog","covered","pathId","url","pushState","sid","owner","base","target","tagName","isContentEditable","blur","preventDefault","focus","toggleTerm","idx","termOpen","setTermOpen","termTabs","setTermTabs","paneL","setPaneL","paneR","setPaneR","splitView","setSplitView","focusedPane","setFocusedPane","termHeight","setTermHeight","Number","innerHeight","liveTerms","termSeq","paneHosts","activeTab","focusTab","focused","mineIdx","otherIdx","setMine","setOther","addFromSelected","addTab","perAgent","tab","closeTab","ro","disconnect","term","dispose","rest","_","disposeAllTerms","ensureSession","parentElement","appendChild","fit","createElement","className","Terminal","cursorBlink","fontSize","fontFamily","FitAddon","loadAddon","w","write","code","onData","readyState","OPEN","send","last","cols","rows","resizeTimer","pushResize","ResizeObserver","observe","mountPane","some","owned","replaceChildren","other","_termFollowAgent","forEach","startGrip","startY","clientY","startH","move","h","up","toggleSplit","candidates","setPaneHost","want","initial","loadPersonas","mi","setInterval","clearInterval","SLASH_COMMANDS","cmd","desc","personas","setPersonas","mentionFork","setMentionFork","mentionQuery","mentionMatches","NO_ARG_COMMANDS","agentSkills","cmdIdx","setCmdIdx","suggestions","cmdName","argPart","exact","insert","description","composerEl","autosizeComposer","suppressScrollEval","wasFollowing","style","height","MAX_COMPOSER_H","pendingImages","setPendingImages","addImages","files","reader","FileReader","onload","result","readAsDataURL","sendText","targetId","start","random","toString","console","sp","indexOf","arg","isPersona","knownAgent","persona","task","context","executeSlash","post","ran","rightbarEl","rightbarTop","abs","act","goalDraft","setGoalDraft","goalVerifyDraft","setGoalVerifyDraft","goalDirty","setGoalDirty","goalNotify","setGoalNotify","goalSeededFor","goal","setGoal","verify","_$createComponent","Show","when","needsSetup","fallback","children","SetupWizard","onDone","reload","_el$","_tmpl$","_el$4","firstChild","nextSibling","_el$5","_tmpl$27","_el$6","_el$7","_el$8","_el$11","_el$12","_el$15","_el$18","_el$20","_el$21","_el$23","_el$90","_el$91","_$insert","For","each","row","_$memo","wsHeader","_el$101","_tmpl$33","_el$102","$$click","wsCollapsedGroup","collapsedVia","_el$103","_tmpl$32","_$effect","_$setAttribute","headerOnly","_el$104","_tmpl$38","_el$105","_el$106","chatCollapsedGroup","_tmpl$39","isChat","off","_el$113","_tmpl$40","stopPropagation","_c$3","workspaceMissing","_tmpl$41","_el$107","_tmpl$34","kids","running","_el$115","_tmpl$42","_$className","_tmpl$35","_el$110","_tmpl$36","schedule","_tmpl$37","_p$","_v$11","depth","_v$12","_v$13","_v$14","_v$15","_v$16","workspace","_$style","o","_el$9","_tmpl$3","_el$1","currentTarget","_el$117","_tmpl$43","_el$119","_el$123","_tmpl$45","_el$120","_tmpl$44","_el$122","_el$124","_el$10","_tmpl$2","_el$125","_tmpl$46","_el$126","_el$127","_tmpl$47","_$setStyleProperty","_v$17","_v$18","_el$14","_tmpl$4","IconBtn","onClick","firstVisible","rssMb","heapUsedMb","_tmpl$5","loadavg1","floor","uptimeSec","keyed","_tmpl$48","_el$24","_tmpl$9","_el$26","_el$27","_el$34","_el$35","_el$39","_el$40","_el$41","_el$42","_el$28","_tmpl$6","_el$31","_el$32","_tmpl$7","forked","stats","turns","toolCalls","statusReason","_el$43","_tmpl$8","_el$44","_tmpl$14","nb","gap","_el$129","_tmpl$49","_c$4","_tmpl$0","_tmpl$1","_tmpl$50","MessageRow","orphan","onOption","answeredIds","onAnswered","agentActive","isOwnLiveWork","onCancel","back","onEdit","_el$47","_tmpl$13","_el$49","_el$51","_tmpl$10","_el$52","_el$54","ThinkingTimer","startedAt","_$use","stick","_tmpl$51","_el$133","_tmpl$12","innerHTML","_tmpl$11","_el$56","_el$57","_tmpl$19","_el$58","_el$59","_el$60","_el$61","_el$62","_el$63","_el$64","$$dblclick","$$pointerdown","_el$134","_tmpl$52","_el$136","_v$19","_v$20","_c$","_ref$","_tmpl$15","_tmpl$16","_el$67","_tmpl$18","_ref$2","_tmpl$17","toggle","_v$","_v$2","_v$3","_el$69","_tmpl$25","_el$74","_el$80","_el$83","_el$86","_el$87","_el$88","_el$70","_tmpl$20","_c$2","_el$72","_tmpl$21","_el$137","_tmpl$53","_el$138","_el$139","_v$21","_v$22","_el$73","_el$140","_tmpl$54","_el$141","_el$143","_el$75","_tmpl$22","_el$76","_el$77","_el$79","im","_el$144","_tmpl$55","_el$145","_el$146","_v$23","_v$24","_v$25","$$keydown","sugg","shiftKey","$$input","imgs","clipboardData","_ref$3","_el$81","_tmpl$23","_el$82","click","_el$84","_tmpl$24","_v$4","_v$5","_v$6","_el$89","_tmpl$26","_ref$4","_aid","_tmpl$56","_el$148","_tmpl$57","_el$149","_el$151","_el$152","_el$153","_el$155","_el$158","_el$159","_v$26","_v$27","aid","FilesPanel","_tmpl$58","_el$161","_tmpl$61","_el$162","_el$163","_el$164","_el$165","_el$166","_el$172","_el$247","_el$248","btn","disabled","contextWindowTokens","textContent","alert","effortSupported","_el$167","_tmpl$59","_el$169","_el$171","_el$249","_el$174","_tmpl$60","_tmpl$62","_el$176","_tmpl$64","_el$177","_el$178","_el$179","_$addEventListener","confirm","_el$180","_tmpl$63","stopped","_v$28","_v$29","_el$181","_tmpl$65","_el$183","autoContinue","_el$184","_tmpl$67","_tmpl$85","_el$186","_tmpl$66","_el$187","_tmpl$68","_el$251","_tmpl$86","_v$32","_v$33","_tmpl$87","_el$189","_tmpl$69","_el$190","_el$191","_tmpl$70","_el$193","audit","_el$253","_tmpl$88","_el$254","_el$255","_el$256","verdict","relTime","_v$34","_v$35","isPlaceholderDetail","feedback","_tmpl$71","_el$195","_tmpl$72","_el$196","_el$197","_el$200","_el$201","_tmpl$74","_el$207","_el$203","_tmpl$73","_el$204","_el$206","_$p","_el$208","_tmpl$75","_el$209","_v$30","_v$31","TodoEditor","viewMode","onDraft","_el$210","_tmpl$76","_el$211","_el$212","_tmpl$77","latestProgress","_tmpl$89","_el$258","_tmpl$94","_el$259","_el$261","_el$274","_el$262","_tmpl$90","_el$264","problems","_el$265","_tmpl$91","_el$267","_el$268","_tmpl$92","_el$270","goalStatus","_el$271","_tmpl$93","_el$273","_tmpl$78","_el$215","_tmpl$81","_el$216","_el$217","_el$219","_el$220","_el$222","_el$225","_el$226","_el$228","_el$229","_el$231","compactions","inputTokens","outputTokens","cachedInputTokens","_el$232","_tmpl$79","_el$235","costUsd","_el$236","_tmpl$80","_el$238","costFmt","_tmpl$95","ctxVals","cv","modelMeta","effectiveWindow","pct","usedTokens","compactAt","cls","derivedBudget","usingDerived","compactAtIsManual","fmtPct","isInteger","_el$276","_tmpl$100","_el$277","_el$279","_el$282","_el$287","_el$289","_el$290","_el$291","_el$298","_el$300","_el$301","_el$304","_el$283","_tmpl$96","_el$284","_el$285","_tmpl$97","_el$286","_v$36","_v$37","_el$292","_tmpl$98","_el$293","_v$38","_v$39","_el$294","_tmpl$99","_el$297","autoCompact","_el$240","_tmpl$83","_el$241","_el$243","_tmpl$82","_el$245","_el$305","_tmpl$101","_el$306","_el$307","_el$308","changing","_v$40","_v$41","_tmpl$84","_tmpl$102","_el$310","_tmpl$104","_el$311","_el$312","_el$313","_el$316","_el$317","_el$318","_tmpl$103","_c$5","_c$6","oneLine","_v$42","_v$43","_v$7","_v$8","_v$9","_v$0","_v$1","_v$10","_el$93","_tmpl$28","_el$94","_tmpl$31","_el$97","_el$99","_el$98","_tmpl$29","_tmpl$105","_el$100","_tmpl$30","_el$320","_tmpl$107","_el$322","_el$323","_el$324","_el$325","_c$7","_el$326","_tmpl$106","truncate","_v$44","_v$45","_v$46","NewAgentModal","onClose","onCreated","ConfigModal","onSaved","afterCount","tail","setTail","Modal","_el$327","_tmpl$109","_el$328","_el$336","_el$337","ta","_el$329","_tmpl$108","_el$330","_el$331","_el$332","_el$333","_el$335","BashElapsed","props","getTime","setNow","fmtDur","inline","_el$338","_tmpl$110","_c$8","timeoutMs","_el$340","_tmpl$111","_el$341","_el$342","_tmpl$112","ToolRow","staleDone","hint","_el$343","_tmpl$113","args","argStr","cmdText","effTimeout","codeBlock","_el$344","_tmpl$114","resultBlock","_el$345","_tmpl$115","durationMs","outcomeMarker","shellOutcome","CopyBtn","_tmpl$116","isBg","bgJob","outcome","shellHint","_el$347","_tmpl$117","_el$349","_el$352","_tmpl$118","bits","offset","limit","_el$354","_tmpl$119","_el$355","_el$356","_tmpl$120","replace_all","_el$358","_tmpl$121","_el$359","_tmpl$122","_el$360","_tmpl$123","_el$361","_tmpl$124","patchLines","test","shown","MAX_PATCH_LINES","_el$363","_tmpl$125","_el$364","_tmpl$126","_c$0","_c$9","_el$365","_tmpl$127","_el$368","_el$369","_tmpl$128","u","URL","_el$371","_el$373","_tmpl$130","_el$372","_tmpl$129","action","mdBody","_el$374","_el$375","_tmpl$131","_el$377","_tmpl$132","_el$379","_el$380","_tmpl$133","_el$382","_tmpl$135","_el$383","_el$384","_el$389","_el$390","_el$387","_tmpl$134","rawOf","actorKey","grouped","_el$391","_tmpl$136","_el$394","fromBranch","newBranch","goalLine","_el$395","_tmpl$137","_el$396","hasCard","_el$397","_v$47","tone","_v$48","markdown","_el$398","_tmpl$138","_el$401","by","to","_el$402","_tmpl$139","_el$403","_c$1","reason","_el$404","_tmpl$140","_el$405","_el$409","_el$410","_el$411","_el$414","failures","lastTool","lastError","_el$415","_tmpl$141","_el$416","_el$420","_el$421","attempt","waitMs","failed","secs","_el$422","jobId","_el$423","_tmpl$142","_el$428","_el$429","_el$430","tokensBefore","tokensAfter","_el$431","_tmpl$143","_el$437","_el$438","_el$439","messages","_el$440","_tmpl$147","_el$441","_el$442","_el$451","_tmpl$148","_el$443","_tmpl$146","_el$444","_el$447","_el$448","_el$445","_c$10","_el$449","_tmpl$144","_el$450","_tmpl$145","SwitchContent","_v$49","_v$50","_v$51","_v$52","_v$53","FreeTextAnswer","val","setVal","submit","answered","_el$452","_tmpl$149","_el$453","_el$454","isComposing","_v$54","_v$55","_v$56","_el$455","_el$456","_tmpl$150","_el$457","_tmpl$151","_el$458","_tmpl$152","_el$459","_el$461","_c$11","_el$462","interrupted","_tmpl$153","_el$464","_tmpl$154","_el$465","_el$466","_tmpl$156","_el$467","_el$469","_el$470","_el$471","_tmpl$155","alts","alternatives","_el$473","_tmpl$158","_el$474","_el$477","_el$478","_el$479","_tmpl$157","_v$57","_v$58","rationale","options","_el$481","_tmpl$161","_el$484","_tmpl$159","_el$486","_tmpl$160","_el$487","_tmpl$162","_v$59","_v$60","_el$488","_tmpl$163","_el$491","_el$492","_el$494","_el$495","_el$497","_el$498","_el$500","_el$501","_el$503","_el$504","_tmpl$164","_el$505","_el$507","_tmpl$166","_el$510","_el$511","_el$515","_el$516","_c$12","dropped","summary","_tmpl$165","_el$518","_el$519","_tmpl$167","ms","unit","usd","toLocaleString","_el$520","_tmpl$168","_el$521","_v$61","class","_v$62","_v$63","copyText","writeText","navigator","clipboard","position","opacity","execCommand","setDone","setFailed","copy","_el$522","_tmpl$169","_c$13","_el$523","_tmpl$170","_el$524","_el$526","_el$527","dir","setDir","setEntries","setName","setProvider","setModel","err","setErr","browse","setParent","create","_el$528","_tmpl$172","_el$529","_el$532","_el$533","_el$534","_el$535","_el$536","_el$537","_el$539","_el$540","_el$542","_el$545","_el$547","_el$548","_tmpl$173","_el$550","_el$546","_tmpl$171","IMAGE_EXT","VIDEO_EXT","AUDIO_EXT","ficon","ext","mk","mediaKindOf","fileUi","fileUiFor","preview","media","_el$552","_tmpl$175","_el$551","_tmpl$174","ui","setKids","setExpandedRaw","setPreviewRaw","setPreview","setExpanded","setMediaRaw","setMedia","setViewModeRaw","setViewMode","ignoreMode","setIgnoreMode","cycleIgnoreMode","order","ignoreFilter","ignored","showHidden","setShowHidden","toggleHidden","targets","fetchDirWith","results","mergeKids","parseEntries","parentPath","fetchDir","hidden","qs","URLSearchParams","old","merged","fresh","kept","kidsFor","toggleDir","node","hlHtml","setHlHtml","hlPending","setHlPending","editBuf","setEditBuf","saving","setSaving","isMd","hlRun","startHighlighting","run","highlightChunks","chunk","openFileWith","binary","truncated","saveFile","pv","baseContent","conflict","current","take","isEditable","_el$553","_tmpl$177","_el$554","_el$555","_c$14","_el$556","_tmpl$176","_v$64","_v$65","_v$66","wsName","refreshing","setRefreshing","refreshTree","_el$557","_tmpl$178","_el$559","_el$561","_tmpl$179","_el$562","_tmpl$180","_el$567","_tmpl$185","_el$569","_el$568","_tmpl$183","_el$570","_tmpl$184","_tmpl$187","CodePreview","_el$578","_tmpl$188","_el$571","_tmpl$186","_el$572","_el$574","_el$575","_el$576","_el$563","_tmpl$182","_el$565","_el$566","_el$580","_tmpl$190","_el$579","_tmpl$189","_el$564","_tmpl$181","_v$67","_v$68","_el$583","_tmpl$193","_el$586","_el$587","_tmpl$194","_el$581","_tmpl$191","_tmpl$192","PROVIDER_PRESETS","CUSTOM_PRESET","preset","setPreset","baseUrl","setBaseUrl","apiKey","setApiKey","setWorkspace","password","setPassword","busy","setBusy","pick","specOf","_el$588","_tmpl$198","_el$592","_el$593","_el$595","_el$597","_el$598","_el$599","_el$601","_el$602","_el$604","_el$605","_el$609","_el$611","_el$613","_el$616","_el$618","_el$619","_tmpl$199","_v$71","_v$72","_el$594","_tmpl$195","_el$620","_el$621","_tmpl$200","_el$606","_tmpl$197","_el$607","_el$608","_tmpl$196","_el$617","_v$69","_v$70","setProviders","setDefaultProvider","cfgDefaultProvider","providerNames","names","staleDefaultProvider","intervalMin","setIntervalMin","progressIntervalMs","minChars","setMinChars","progressMinChars","ctxBudgetK","setCtxBudgetK","contextTokenBudget","ctxWinK","setCtxWinK","maxDepth","setMaxDepth","maxSpawnDepth","agentIds","saveProviders","save","cleanTasks","numInput","oninput","_el$623","_tmpl$201","_el$624","_el$625","_tmpl$203","_el$626","_el$628","_el$629","_el$634","_el$644","_el$646","_el$647","_el$649","_el$650","_el$652","_el$653","_el$655","_el$658","_el$660","_el$662","Index","_el$663","_tmpl$204","_el$664","_el$665","_el$666","_el$667","_el$668","_el$669","_tmpl$205","_el$671","_el$636","_tmpl$202","_el$638","_el$643","_el$642","_el$672","_tmpl$206","_el$673","_el$674","_el$675","_el$676","_el$677","_el$678","_el$679","_el$680","_el$681","_tmpl$208","_el$682","_el$683","_el$684","_tmpl$207","version","reloaded","_el$661","_$delegateEvents","render"],"ignoreList":[0,1,9,10],"sources":["../../node_modules/.pnpm/solid-js@1.9.15/node_modules/solid-js/dist/solid.js","../../node_modules/.pnpm/solid-js@1.9.15/node_modules/solid-js/web/dist/web.js","../../frontend/md.js","../../frontend/format.ts","../../frontend/live-buffer.ts","../../frontend/timeline-order.ts","../../frontend/goal-timeline.ts","../../frontend/shell-outcome.ts","../../frontend/sidebar-tree.ts","../../node_modules/.pnpm/@xterm+xterm@6.0.0/node_modules/@xterm/xterm/lib/xterm.mjs","../../node_modules/.pnpm/@xterm+addon-fit@0.11.0/node_modules/@xterm/addon-fit/lib/addon-fit.mjs","../../frontend/App.tsx","../../frontend/index.tsx"],"sourcesContent":["let taskIdCounter = 1,\n isCallbackScheduled = false,\n isPerformingWork = false,\n taskQueue = [],\n currentTask = null,\n shouldYieldToHost = null,\n yieldInterval = 5,\n deadline = 0,\n maxYieldInterval = 300,\n maxDeadline = 0,\n scheduleCallback = null,\n scheduledCallback = null;\nconst maxSigned31BitInt = 1073741823;\nfunction setupScheduler() {\n const channel = new MessageChannel(),\n port1 = channel.port1,\n port = channel.port2;\n if (typeof port1.unref === \"function\") port1.unref();\n if (typeof port.unref === \"function\") port.unref();\n scheduleCallback = () => port.postMessage(null);\n port1.onmessage = () => {\n if (scheduledCallback !== null) {\n const currentTime = performance.now();\n deadline = currentTime + yieldInterval;\n maxDeadline = currentTime + maxYieldInterval;\n try {\n const hasMoreWork = scheduledCallback(currentTime);\n if (!hasMoreWork) {\n scheduledCallback = null;\n } else port.postMessage(null);\n } catch (error) {\n port.postMessage(null);\n throw error;\n }\n }\n };\n if (navigator && navigator.scheduling && navigator.scheduling.isInputPending) {\n const scheduling = navigator.scheduling;\n shouldYieldToHost = () => {\n const currentTime = performance.now();\n if (currentTime >= deadline) {\n if (scheduling.isInputPending()) {\n return true;\n }\n return currentTime >= maxDeadline;\n } else {\n return false;\n }\n };\n } else {\n shouldYieldToHost = () => performance.now() >= deadline;\n }\n}\nfunction enqueue(taskQueue, task) {\n function findIndex() {\n let m = 0;\n let n = taskQueue.length - 1;\n while (m <= n) {\n const k = n + m >> 1;\n const cmp = task.expirationTime - taskQueue[k].expirationTime;\n if (cmp > 0) m = k + 1;else if (cmp < 0) n = k - 1;else return k;\n }\n return m;\n }\n taskQueue.splice(findIndex(), 0, task);\n}\nfunction requestCallback(fn, options) {\n if (!scheduleCallback) setupScheduler();\n let startTime = performance.now(),\n timeout = maxSigned31BitInt;\n if (options && options.timeout) timeout = options.timeout;\n const newTask = {\n id: taskIdCounter++,\n fn,\n startTime,\n expirationTime: startTime + timeout\n };\n enqueue(taskQueue, newTask);\n if (!isCallbackScheduled && !isPerformingWork) {\n isCallbackScheduled = true;\n scheduledCallback = flushWork;\n scheduleCallback();\n }\n return newTask;\n}\nfunction cancelCallback(task) {\n task.fn = null;\n}\nfunction flushWork(initialTime) {\n isCallbackScheduled = false;\n isPerformingWork = true;\n try {\n return workLoop(initialTime);\n } finally {\n currentTask = null;\n isPerformingWork = false;\n }\n}\nfunction workLoop(initialTime) {\n let currentTime = initialTime;\n currentTask = taskQueue[0] || null;\n while (currentTask !== null) {\n if (currentTask.expirationTime > currentTime && shouldYieldToHost()) {\n break;\n }\n const callback = currentTask.fn;\n if (callback !== null) {\n currentTask.fn = null;\n const didUserCallbackTimeout = currentTask.expirationTime <= currentTime;\n callback(didUserCallbackTimeout);\n currentTime = performance.now();\n if (currentTask === taskQueue[0]) {\n taskQueue.shift();\n }\n } else taskQueue.shift();\n currentTask = taskQueue[0] || null;\n }\n return currentTask !== null;\n}\n\nconst sharedConfig = {\n context: undefined,\n registry: undefined,\n effects: undefined,\n done: false,\n getContextId() {\n return getContextId(this.context.count);\n },\n getNextContextId() {\n return getContextId(this.context.count++);\n }\n};\nfunction getContextId(count) {\n const num = String(count),\n len = num.length - 1;\n return sharedConfig.context.id + (len ? String.fromCharCode(96 + len) : \"\") + num;\n}\nfunction setHydrateContext(context) {\n sharedConfig.context = context;\n}\nfunction nextHydrateContext() {\n return {\n ...sharedConfig.context,\n id: sharedConfig.getNextContextId(),\n count: 0\n };\n}\n\nconst IS_DEV = false;\nconst equalFn = (a, b) => a === b;\nconst $PROXY = Symbol(\"solid-proxy\");\nconst SUPPORTS_PROXY = typeof Proxy === \"function\";\nconst $TRACK = Symbol(\"solid-track\");\nconst $DEVCOMP = Symbol(\"solid-dev-component\");\nconst signalOptions = {\n equals: equalFn\n};\nlet ERROR = null;\nlet runEffects = runQueue;\nconst STALE = 1;\nconst PENDING = 2;\nconst UNOWNED = {\n owned: null,\n cleanups: null,\n context: null,\n owner: null\n};\nconst NO_INIT = {};\nvar Owner = null;\nlet Transition = null;\nlet Scheduler = null;\nlet ExternalSourceConfig = null;\nlet Listener = null;\nlet Updates = null;\nlet Effects = null;\nlet ExecCount = 0;\nfunction createRoot(fn, detachedOwner) {\n const listener = Listener,\n owner = Owner,\n unowned = fn.length === 0,\n current = detachedOwner === undefined ? owner : detachedOwner,\n root = unowned ? UNOWNED : {\n owned: null,\n cleanups: null,\n context: current ? current.context : null,\n owner: current\n },\n updateFn = unowned ? fn : () => fn(() => untrack(() => cleanNode(root)));\n Owner = root;\n Listener = null;\n try {\n return runUpdates(updateFn, true);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n}\nfunction createSignal(value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const s = {\n value,\n observers: null,\n observerSlots: null,\n comparator: options.equals || undefined\n };\n const setter = value => {\n if (typeof value === \"function\") {\n if (Transition && Transition.running && Transition.sources.has(s)) value = value(s.tValue);else value = value(s.value);\n }\n return writeSignal(s, value);\n };\n return [readSignal.bind(s), setter];\n}\nfunction createComputed(fn, value, options) {\n const c = createComputation(fn, value, true, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createRenderEffect(fn, value, options) {\n const c = createComputation(fn, value, false, STALE);\n if (Scheduler && Transition && Transition.running) Updates.push(c);else updateComputation(c);\n}\nfunction createEffect(fn, value, options) {\n runEffects = runUserEffects;\n const c = createComputation(fn, value, false, STALE),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n if (!options || !options.render) c.user = true;\n Effects ? Effects.push(c) : updateComputation(c);\n}\nfunction createReaction(onInvalidate, options) {\n let fn;\n const c = createComputation(() => {\n fn ? fn() : untrack(onInvalidate);\n fn = undefined;\n }, undefined, false, 0),\n s = SuspenseContext && useContext(SuspenseContext);\n if (s) c.suspense = s;\n c.user = true;\n return tracking => {\n fn = tracking;\n updateComputation(c);\n };\n}\nfunction createMemo(fn, value, options) {\n options = options ? Object.assign({}, signalOptions, options) : signalOptions;\n const c = createComputation(fn, value, true, 0);\n c.observers = null;\n c.observerSlots = null;\n c.comparator = options.equals || undefined;\n if (Scheduler && Transition && Transition.running) {\n c.tState = STALE;\n Updates.push(c);\n } else updateComputation(c);\n return readSignal.bind(c);\n}\nfunction isPromise(v) {\n return v && typeof v === \"object\" && \"then\" in v;\n}\nfunction createResource(pSource, pFetcher, pOptions) {\n let source;\n let fetcher;\n let options;\n if (typeof pFetcher === \"function\") {\n source = pSource;\n fetcher = pFetcher;\n options = pOptions || {};\n } else {\n source = true;\n fetcher = pSource;\n options = pFetcher || {};\n }\n let pr = null,\n initP = NO_INIT,\n id = null,\n loadedUnderTransition = false,\n scheduled = false,\n resolved = \"initialValue\" in options,\n dynamic = typeof source === \"function\" && createMemo(source);\n const contexts = new Set(),\n [value, setValue] = (options.storage || createSignal)(options.initialValue),\n [error, setError] = createSignal(undefined),\n [track, trigger] = createSignal(undefined, {\n equals: false\n }),\n [state, setState] = createSignal(resolved ? \"ready\" : \"unresolved\");\n if (Owner) onCleanup(() => {\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n if (Transition && pr) Transition.promises.delete(pr);\n pr = null;\n });\n if (sharedConfig.context) {\n id = sharedConfig.getNextContextId();\n if (options.ssrLoadFrom === \"initial\") initP = options.initialValue;else if (sharedConfig.load && sharedConfig.has(id)) initP = sharedConfig.load(id);\n }\n function loadEnd(p, v, error, key) {\n if (pr === p) {\n pr = null;\n key !== undefined && (resolved = true);\n if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {\n value: v\n }));\n initP = NO_INIT;\n if (Transition && p && loadedUnderTransition) {\n Transition.promises.delete(p);\n loadedUnderTransition = false;\n runUpdates(() => {\n Transition.running = true;\n completeLoad(v, error);\n }, false);\n } else completeLoad(v, error);\n }\n return v;\n }\n function completeLoad(v, err) {\n runUpdates(() => {\n if (err === undefined) setValue(() => v);\n setState(err !== undefined ? \"errored\" : resolved ? \"ready\" : \"unresolved\");\n setError(err);\n for (const c of contexts.keys()) c.decrement();\n contexts.clear();\n }, false);\n }\n function read() {\n const c = SuspenseContext && useContext(SuspenseContext),\n v = value(),\n err = error();\n if (err !== undefined && !pr) throw err;\n if (Listener && !Listener.user && c) {\n createComputed(() => {\n track();\n if (pr) {\n if (c.resolved && Transition && loadedUnderTransition) Transition.promises.add(pr);else if (!contexts.has(c)) {\n c.increment();\n contexts.add(c);\n }\n }\n });\n }\n return v;\n }\n function load(refetching = true) {\n if (refetching !== false && scheduled) return;\n scheduled = false;\n const lookup = dynamic ? dynamic() : source;\n loadedUnderTransition = Transition && Transition.running;\n if (lookup == null || lookup === false) {\n loadEnd(pr, untrack(value));\n return;\n }\n if (Transition && pr) Transition.promises.delete(pr);\n let error;\n const p = initP !== NO_INIT ? initP : untrack(() => {\n try {\n return fetcher(lookup, {\n value: value(),\n refetching\n });\n } catch (fetcherError) {\n error = fetcherError;\n }\n });\n if (error !== undefined) {\n loadEnd(pr, undefined, castError(error), lookup);\n return;\n } else if (!isPromise(p)) {\n loadEnd(pr, p, undefined, lookup);\n return p;\n }\n pr = p;\n if (\"v\" in p) {\n if (p.s === 1) loadEnd(pr, p.v, undefined, lookup);else loadEnd(pr, undefined, castError(p.v), lookup);\n return p;\n }\n scheduled = true;\n queueMicrotask(() => scheduled = false);\n runUpdates(() => {\n setState(resolved ? \"refreshing\" : \"pending\");\n trigger();\n }, false);\n return p.then(v => loadEnd(p, v, undefined, lookup), e => loadEnd(p, undefined, castError(e), lookup));\n }\n Object.defineProperties(read, {\n state: {\n get: () => state()\n },\n error: {\n get: () => error()\n },\n loading: {\n get() {\n const s = state();\n return s === \"pending\" || s === \"refreshing\";\n }\n },\n latest: {\n get() {\n if (!resolved) return read();\n const err = error();\n if (err && !pr) throw err;\n return value();\n }\n }\n });\n let owner = Owner;\n if (dynamic) createComputed(() => (owner = Owner, load(false)));else load(false);\n return [read, {\n refetch: info => runWithOwner(owner, () => load(info)),\n mutate: setValue\n }];\n}\nfunction createDeferred(source, options) {\n let t,\n timeout = options ? options.timeoutMs : undefined;\n const node = createComputation(() => {\n if (!t || !t.fn) t = requestCallback(() => setDeferred(() => node.value), timeout !== undefined ? {\n timeout\n } : undefined);\n return source();\n }, undefined, true);\n const [deferred, setDeferred] = createSignal(Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, options);\n updateComputation(node);\n setDeferred(() => Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n return deferred;\n}\nfunction createSelector(source, fn = equalFn, options) {\n const subs = new Map();\n const node = createComputation(p => {\n const v = source();\n for (const [key, val] of subs.entries()) if (fn(key, v) !== fn(key, p)) {\n for (const c of val.values()) {\n if (Transition && Transition.running) c.tState = STALE;else c.state = STALE;\n if (c.pure) Updates.push(c);else Effects.push(c);\n }\n }\n return v;\n }, undefined, true, STALE);\n updateComputation(node);\n return key => {\n const listener = Listener;\n if (listener) {\n let l;\n if (l = subs.get(key)) l.add(listener);else subs.set(key, l = new Set([listener]));\n onCleanup(() => {\n l.delete(listener);\n !l.size && subs.delete(key);\n });\n }\n return fn(key, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);\n };\n}\nfunction batch(fn) {\n return runUpdates(fn, false);\n}\nfunction untrack(fn) {\n if (!ExternalSourceConfig && Listener === null) return fn();\n const listener = Listener;\n Listener = null;\n try {\n if (ExternalSourceConfig) return ExternalSourceConfig.untrack(fn);\n return fn();\n } finally {\n Listener = listener;\n }\n}\nfunction on(deps, fn, options) {\n const isArray = Array.isArray(deps);\n let prevInput;\n let defer = options && options.defer;\n return prevValue => {\n let input;\n if (isArray) {\n input = Array(deps.length);\n for (let i = 0; i < deps.length; i++) input[i] = deps[i]();\n } else input = deps();\n if (defer) {\n defer = false;\n return prevValue;\n }\n const result = untrack(() => fn(input, prevInput, prevValue));\n prevInput = input;\n return result;\n };\n}\nfunction onMount(fn) {\n createEffect(() => untrack(fn));\n}\nfunction onCleanup(fn) {\n if (Owner === null) ;else if (Owner.cleanups === null) Owner.cleanups = [fn];else Owner.cleanups.push(fn);\n return fn;\n}\nfunction catchError(fn, handler) {\n ERROR || (ERROR = Symbol(\"error\"));\n Owner = createComputation(undefined, undefined, true);\n Owner.context = {\n ...Owner.context,\n [ERROR]: [handler]\n };\n if (Transition && Transition.running) Transition.sources.add(Owner);\n try {\n return fn();\n } catch (err) {\n handleError(err);\n } finally {\n Owner = Owner.owner;\n }\n}\nfunction getListener() {\n return Listener;\n}\nfunction getOwner() {\n return Owner;\n}\nfunction runWithOwner(o, fn) {\n const prev = Owner;\n const prevListener = Listener;\n Owner = o;\n Listener = null;\n try {\n return runUpdates(fn, true);\n } catch (err) {\n handleError(err);\n } finally {\n Owner = prev;\n Listener = prevListener;\n }\n}\nfunction enableScheduling(scheduler = requestCallback) {\n Scheduler = scheduler;\n}\nfunction startTransition(fn) {\n if (Transition && Transition.running) {\n fn();\n return Transition.done;\n }\n const l = Listener;\n const o = Owner;\n return Promise.resolve().then(() => {\n Listener = l;\n Owner = o;\n let t;\n if (Scheduler || SuspenseContext) {\n t = Transition || (Transition = {\n sources: new Set(),\n effects: [],\n promises: new Set(),\n disposed: new Set(),\n queue: new Set(),\n running: true\n });\n t.done || (t.done = new Promise(res => t.resolve = res));\n t.running = true;\n }\n runUpdates(fn, false);\n Listener = Owner = null;\n return t ? t.done : undefined;\n });\n}\nconst [transPending, setTransPending] = /*@__PURE__*/createSignal(false);\nfunction useTransition() {\n return [transPending, startTransition];\n}\nfunction resumeEffects(e) {\n Effects.push.apply(Effects, e);\n e.length = 0;\n}\nfunction createContext(defaultValue, options) {\n const id = Symbol(\"context\");\n return {\n id,\n Provider: createProvider(id),\n defaultValue\n };\n}\nfunction useContext(context) {\n let value;\n return Owner && Owner.context && (value = Owner.context[context.id]) !== undefined ? value : context.defaultValue;\n}\nfunction children(fn) {\n const children = createMemo(fn);\n const memo = createMemo(() => resolveChildren(children()));\n memo.toArray = () => {\n const c = memo();\n return Array.isArray(c) ? c : c != null ? [c] : [];\n };\n return memo;\n}\nlet SuspenseContext;\nfunction getSuspenseContext() {\n return SuspenseContext || (SuspenseContext = createContext());\n}\nfunction enableExternalSource(factory, untrack = fn => fn()) {\n if (ExternalSourceConfig) {\n const {\n factory: oldFactory,\n untrack: oldUntrack\n } = ExternalSourceConfig;\n ExternalSourceConfig = {\n factory: (fn, trigger) => {\n const oldSource = oldFactory(fn, trigger);\n const source = factory(x => oldSource.track(x), trigger);\n return {\n track: x => source.track(x),\n dispose() {\n source.dispose();\n oldSource.dispose();\n }\n };\n },\n untrack: fn => oldUntrack(() => untrack(fn))\n };\n } else {\n ExternalSourceConfig = {\n factory,\n untrack\n };\n }\n}\nfunction readSignal() {\n const runningTransition = Transition && Transition.running;\n if (this.sources && (runningTransition ? this.tState : this.state)) {\n if ((runningTransition ? this.tState : this.state) === STALE) updateComputation(this);else {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(this), false);\n Updates = updates;\n }\n }\n if (Listener) {\n const observers = this.observers;\n if (!observers || observers[observers.length - 1] !== Listener) {\n const sSlot = observers ? observers.length : 0;\n if (!Listener.sources) {\n Listener.sources = [this];\n Listener.sourceSlots = [sSlot];\n } else {\n Listener.sources.push(this);\n Listener.sourceSlots.push(sSlot);\n }\n if (!observers) {\n this.observers = [Listener];\n this.observerSlots = [Listener.sources.length - 1];\n } else {\n observers.push(Listener);\n this.observerSlots.push(Listener.sources.length - 1);\n }\n }\n }\n if (runningTransition && Transition.sources.has(this)) return this.tValue;\n return this.value;\n}\nfunction writeSignal(node, value, isComp) {\n let current = Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value;\n if (!node.comparator || !node.comparator(current, value)) {\n if (Transition) {\n const TransitionRunning = Transition.running;\n if (TransitionRunning || !isComp && Transition.sources.has(node)) {\n Transition.sources.add(node);\n node.tValue = value;\n }\n if (!TransitionRunning) node.value = value;\n } else node.value = value;\n if (node.observers && node.observers.length) {\n runUpdates(() => {\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n const TransitionRunning = Transition && Transition.running;\n if (TransitionRunning && Transition.disposed.has(o)) continue;\n if (TransitionRunning ? !o.tState : !o.state) {\n if (o.pure) Updates.push(o);else Effects.push(o);\n if (o.observers) markDownstream(o);\n }\n if (!TransitionRunning) o.state = STALE;else o.tState = STALE;\n }\n if (Updates.length > 10e5) {\n Updates = [];\n if (IS_DEV) ;\n throw new Error();\n }\n }, false);\n }\n }\n return value;\n}\nfunction updateComputation(node) {\n if (!node.fn) return;\n cleanNode(node);\n const time = ExecCount;\n runComputation(node, Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, time);\n if (Transition && !Transition.running && Transition.sources.has(node)) {\n queueMicrotask(() => {\n runUpdates(() => {\n Transition && (Transition.running = true);\n Listener = Owner = node;\n runComputation(node, node.tValue, time);\n Listener = Owner = null;\n }, false);\n });\n }\n}\nfunction runComputation(node, value, time) {\n let nextValue;\n const owner = Owner,\n listener = Listener;\n Listener = Owner = node;\n try {\n nextValue = node.fn(value);\n } catch (err) {\n if (node.pure) {\n if (Transition && Transition.running) {\n node.tState = STALE;\n node.tOwned && node.tOwned.forEach(cleanNode);\n node.tOwned = undefined;\n } else {\n node.state = STALE;\n node.owned && node.owned.forEach(cleanNode);\n node.owned = null;\n }\n }\n node.updatedAt = time + 1;\n return handleError(err);\n } finally {\n Listener = listener;\n Owner = owner;\n }\n if (!node.updatedAt || node.updatedAt <= time) {\n if (node.updatedAt != null && \"observers\" in node) {\n writeSignal(node, nextValue, true);\n } else if (Transition && Transition.running && node.pure) {\n if (!Transition.sources.has(node)) node.value = nextValue;\n Transition.sources.add(node);\n node.tValue = nextValue;\n } else node.value = nextValue;\n node.updatedAt = time;\n }\n}\nfunction createComputation(fn, init, pure, state = STALE, options) {\n const c = {\n fn,\n state: state,\n updatedAt: null,\n owned: null,\n sources: null,\n sourceSlots: null,\n cleanups: null,\n value: init,\n owner: Owner,\n context: Owner ? Owner.context : null,\n pure\n };\n if (Transition && Transition.running) {\n c.state = 0;\n c.tState = state;\n }\n if (Owner === null) ;else if (Owner !== UNOWNED) {\n if (Transition && Transition.running && Owner.pure) {\n if (!Owner.tOwned) Owner.tOwned = [c];else Owner.tOwned.push(c);\n } else {\n if (!Owner.owned) Owner.owned = [c];else Owner.owned.push(c);\n }\n }\n if (ExternalSourceConfig && c.fn) {\n const sourceFn = c.fn;\n const [track, trigger] = createSignal(undefined, {\n equals: false\n });\n const ordinary = ExternalSourceConfig.factory(sourceFn, trigger);\n onCleanup(() => ordinary.dispose());\n let inTransition;\n let trackedOrdinary = false;\n const triggerInTransition = () => startTransition(trigger).then(() => {\n if (inTransition) {\n inTransition.dispose();\n inTransition = undefined;\n if (!trackedOrdinary) trigger();\n }\n });\n c.fn = x => {\n track();\n if (Transition && Transition.running) {\n if (!inTransition) inTransition = ExternalSourceConfig.factory(sourceFn, triggerInTransition);\n return inTransition.track(x);\n }\n trackedOrdinary = true;\n return ordinary.track(x);\n };\n }\n return c;\n}\nfunction runTop(node) {\n const runningTransition = Transition && Transition.running;\n if ((runningTransition ? node.tState : node.state) === 0) return;\n if ((runningTransition ? node.tState : node.state) === PENDING) return lookUpstream(node);\n if (node.suspense && untrack(node.suspense.inFallback)) return node.suspense.effects.push(node);\n const ancestors = [node];\n while ((node = node.owner) && (!node.updatedAt || node.updatedAt < ExecCount)) {\n if (runningTransition && Transition.disposed.has(node)) return;\n if (runningTransition ? node.tState : node.state) ancestors.push(node);\n }\n for (let i = ancestors.length - 1; i >= 0; i--) {\n node = ancestors[i];\n if (runningTransition) {\n let top = node,\n prev = ancestors[i + 1];\n while ((top = top.owner) && top !== prev) {\n if (Transition.disposed.has(top)) return;\n }\n }\n if ((runningTransition ? node.tState : node.state) === STALE) {\n updateComputation(node);\n } else if ((runningTransition ? node.tState : node.state) === PENDING) {\n const updates = Updates;\n Updates = null;\n runUpdates(() => lookUpstream(node, ancestors[0]), false);\n Updates = updates;\n }\n }\n}\nfunction runUpdates(fn, init) {\n if (Updates) return fn();\n let wait = false;\n if (!init) Updates = [];\n if (Effects) wait = true;else Effects = [];\n ExecCount++;\n try {\n const res = fn();\n completeUpdates(wait);\n return res;\n } catch (err) {\n if (!wait) Effects = null;\n Updates = null;\n handleError(err);\n }\n}\nfunction completeUpdates(wait) {\n if (Updates) {\n if (Scheduler && Transition && Transition.running) scheduleQueue(Updates);else runQueue(Updates);\n Updates = null;\n }\n if (wait) return;\n let res;\n if (Transition) {\n if (!Transition.promises.size && !Transition.queue.size) {\n const sources = Transition.sources;\n const disposed = Transition.disposed;\n Effects.push.apply(Effects, Transition.effects);\n res = Transition.resolve;\n for (const e of Effects) {\n \"tState\" in e && (e.state = e.tState);\n delete e.tState;\n }\n Transition = null;\n runUpdates(() => {\n for (const d of disposed) cleanNode(d);\n for (const v of sources) {\n v.value = v.tValue;\n if (v.owned) {\n for (let i = 0, len = v.owned.length; i < len; i++) cleanNode(v.owned[i]);\n }\n if (v.tOwned) v.owned = v.tOwned;\n delete v.tValue;\n delete v.tOwned;\n v.tState = 0;\n }\n setTransPending(false);\n }, false);\n } else if (Transition.running) {\n Transition.running = false;\n Transition.effects.push.apply(Transition.effects, Effects);\n Effects = null;\n setTransPending(true);\n return;\n }\n }\n const e = Effects;\n Effects = null;\n if (e.length) runUpdates(() => runEffects(e), false);\n if (res) res();\n}\nfunction runQueue(queue) {\n for (let i = 0; i < queue.length; i++) runTop(queue[i]);\n}\nfunction scheduleQueue(queue) {\n for (let i = 0; i < queue.length; i++) {\n const item = queue[i];\n const tasks = Transition.queue;\n if (!tasks.has(item)) {\n tasks.add(item);\n Scheduler(() => {\n tasks.delete(item);\n runUpdates(() => {\n Transition.running = true;\n runTop(item);\n }, false);\n Transition && (Transition.running = false);\n });\n }\n }\n}\nfunction runUserEffects(queue) {\n let i,\n userLength = 0;\n for (i = 0; i < queue.length; i++) {\n const e = queue[i];\n if (!e.user) runTop(e);else queue[userLength++] = e;\n }\n if (sharedConfig.context) {\n if (sharedConfig.count) {\n sharedConfig.effects || (sharedConfig.effects = []);\n sharedConfig.effects.push(...queue.slice(0, userLength));\n return;\n }\n setHydrateContext();\n }\n if (sharedConfig.effects && (sharedConfig.done || !sharedConfig.count)) {\n queue = [...sharedConfig.effects, ...queue];\n userLength += sharedConfig.effects.length;\n delete sharedConfig.effects;\n }\n for (i = 0; i < userLength; i++) runTop(queue[i]);\n}\nfunction lookUpstream(node, ignore) {\n const runningTransition = Transition && Transition.running;\n if (runningTransition) node.tState = 0;else node.state = 0;\n for (let i = 0; i < node.sources.length; i += 1) {\n const source = node.sources[i];\n if (source.sources) {\n const state = runningTransition ? source.tState : source.state;\n if (state === STALE) {\n if (source !== ignore && (!source.updatedAt || source.updatedAt < ExecCount)) runTop(source);\n } else if (state === PENDING) lookUpstream(source, ignore);\n }\n }\n}\nfunction markDownstream(node) {\n const runningTransition = Transition && Transition.running;\n for (let i = 0; i < node.observers.length; i += 1) {\n const o = node.observers[i];\n if (runningTransition ? !o.tState : !o.state) {\n if (runningTransition) o.tState = PENDING;else o.state = PENDING;\n if (o.pure) Updates.push(o);else Effects.push(o);\n o.observers && markDownstream(o);\n }\n }\n}\nfunction cleanNode(node) {\n let i;\n if (node.sources) {\n while (node.sources.length) {\n const source = node.sources.pop(),\n index = node.sourceSlots.pop(),\n obs = source.observers;\n if (obs && obs.length) {\n const n = obs.pop(),\n s = source.observerSlots.pop();\n if (index < obs.length) {\n n.sourceSlots[s] = index;\n obs[index] = n;\n source.observerSlots[index] = s;\n }\n }\n }\n }\n if (node.tOwned) {\n for (i = node.tOwned.length - 1; i >= 0; i--) cleanNode(node.tOwned[i]);\n delete node.tOwned;\n }\n if (Transition && Transition.running && node.pure) {\n reset(node, true);\n } else if (node.owned) {\n for (i = node.owned.length - 1; i >= 0; i--) cleanNode(node.owned[i]);\n node.owned = null;\n }\n if (node.cleanups) {\n for (i = node.cleanups.length - 1; i >= 0; i--) node.cleanups[i]();\n node.cleanups = null;\n }\n if (Transition && Transition.running) node.tState = 0;else node.state = 0;\n}\nfunction reset(node, top) {\n if (!top) {\n node.tState = 0;\n Transition.disposed.add(node);\n }\n if (node.owned) {\n for (let i = 0; i < node.owned.length; i++) reset(node.owned[i]);\n }\n}\nfunction castError(err) {\n if (err instanceof Error) return err;\n return new Error(typeof err === \"string\" ? err : \"Unknown error\", {\n cause: err\n });\n}\nfunction runErrors(err, fns, owner) {\n try {\n for (const f of fns) f(err);\n } catch (e) {\n handleError(e, owner && owner.owner || null);\n }\n}\nfunction handleError(err, owner = Owner) {\n const fns = ERROR && owner && owner.context && owner.context[ERROR];\n const error = castError(err);\n if (!fns) throw error;\n if (Effects) Effects.push({\n fn() {\n runErrors(error, fns, owner);\n },\n state: STALE\n });else runErrors(error, fns, owner);\n}\nfunction resolveChildren(children) {\n if (typeof children === \"function\" && !children.length) return resolveChildren(children());\n if (Array.isArray(children)) {\n const results = [];\n for (let i = 0; i < children.length; i++) {\n const result = resolveChildren(children[i]);\n if (Array.isArray(result)) {\n if (result.length < 32768) results.push.apply(results, result);else for (let j = 0; j < result.length; j++) results.push(result[j]);\n } else {\n results.push(result);\n }\n }\n return results;\n }\n return children;\n}\nfunction createProvider(id, options) {\n return function provider(props) {\n let res;\n createRenderEffect(() => res = untrack(() => {\n Owner.context = {\n ...Owner.context,\n [id]: props.value\n };\n return children(() => props.children);\n }), undefined);\n return res;\n };\n}\nfunction onError(fn) {\n ERROR || (ERROR = Symbol(\"error\"));\n if (Owner === null) ;else if (Owner.context === null || !Owner.context[ERROR]) {\n Owner.context = {\n ...Owner.context,\n [ERROR]: [fn]\n };\n mutateContext(Owner, ERROR, [fn]);\n } else Owner.context[ERROR].push(fn);\n}\nfunction mutateContext(o, key, value) {\n if (o.owned) {\n for (let i = 0; i < o.owned.length; i++) {\n if (o.owned[i].context === o.context) mutateContext(o.owned[i], key, value);\n if (!o.owned[i].context) {\n o.owned[i].context = o.context;\n mutateContext(o.owned[i], key, value);\n } else if (!o.owned[i].context[key]) {\n o.owned[i].context[key] = value;\n mutateContext(o.owned[i], key, value);\n }\n }\n }\n}\n\nfunction observable(input) {\n return {\n subscribe(observer) {\n if (!(observer instanceof Object) || observer == null) {\n throw new TypeError(\"Expected the observer to be an object.\");\n }\n const handler = typeof observer === \"function\" ? observer : observer.next && observer.next.bind(observer);\n if (!handler) {\n return {\n unsubscribe() {}\n };\n }\n const dispose = createRoot(disposer => {\n createEffect(() => {\n const v = input();\n untrack(() => handler(v));\n });\n return disposer;\n });\n if (getOwner()) onCleanup(dispose);\n return {\n unsubscribe() {\n dispose();\n }\n };\n },\n [Symbol.observable || \"@@observable\"]() {\n return this;\n }\n };\n}\nfunction from(producer, initalValue = undefined) {\n const [s, set] = createSignal(initalValue, {\n equals: false\n });\n if (\"subscribe\" in producer) {\n const unsub = producer.subscribe(v => set(() => v));\n onCleanup(() => \"unsubscribe\" in unsub ? unsub.unsubscribe() : unsub());\n } else {\n const clean = producer(set);\n onCleanup(clean);\n }\n return s;\n}\n\nconst FALLBACK = Symbol(\"fallback\");\nfunction dispose(d) {\n for (let i = 0; i < d.length; i++) d[i]();\n}\nfunction mapArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n len = 0,\n indexes = mapFn.length > 1 ? [] : null;\n onCleanup(() => dispose(disposers));\n return () => {\n let newItems = list() || [],\n newLen = newItems.length,\n i,\n j;\n newItems[$TRACK];\n return untrack(() => {\n let newIndices, newIndicesNext, temp, tempdisposers, tempIndexes, start, end, newEnd, item;\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n indexes && (indexes = []);\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n }\n else if (len === 0) {\n mapped = new Array(newLen);\n for (j = 0; j < newLen; j++) {\n items[j] = newItems[j];\n mapped[j] = createRoot(mapper);\n }\n len = newLen;\n } else {\n temp = new Array(newLen);\n tempdisposers = new Array(newLen);\n indexes && (tempIndexes = new Array(newLen));\n for (start = 0, end = Math.min(len, newLen); start < end && items[start] === newItems[start]; start++);\n for (end = len - 1, newEnd = newLen - 1; end >= start && newEnd >= start && items[end] === newItems[newEnd]; end--, newEnd--) {\n temp[newEnd] = mapped[end];\n tempdisposers[newEnd] = disposers[end];\n indexes && (tempIndexes[newEnd] = indexes[end]);\n }\n newIndices = new Map();\n newIndicesNext = new Array(newEnd + 1);\n for (j = newEnd; j >= start; j--) {\n item = newItems[j];\n i = newIndices.get(item);\n newIndicesNext[j] = i === undefined ? -1 : i;\n newIndices.set(item, j);\n }\n for (i = start; i <= end; i++) {\n item = items[i];\n j = newIndices.get(item);\n if (j !== undefined && j !== -1) {\n temp[j] = mapped[i];\n tempdisposers[j] = disposers[i];\n indexes && (tempIndexes[j] = indexes[i]);\n j = newIndicesNext[j];\n newIndices.set(item, j);\n } else disposers[i]();\n }\n for (j = start; j < newLen; j++) {\n if (j in temp) {\n mapped[j] = temp[j];\n disposers[j] = tempdisposers[j];\n if (indexes) {\n indexes[j] = tempIndexes[j];\n indexes[j](j);\n }\n } else mapped[j] = createRoot(mapper);\n }\n mapped = mapped.slice(0, len = newLen);\n items = newItems.slice(0);\n }\n return mapped;\n });\n function mapper(disposer) {\n disposers[j] = disposer;\n if (indexes) {\n const [s, set] = createSignal(j);\n indexes[j] = set;\n return mapFn(newItems[j], s);\n }\n return mapFn(newItems[j]);\n }\n };\n}\nfunction indexArray(list, mapFn, options = {}) {\n let items = [],\n mapped = [],\n disposers = [],\n signals = [],\n len = 0,\n i;\n onCleanup(() => dispose(disposers));\n return () => {\n const newItems = list() || [],\n newLen = newItems.length;\n newItems[$TRACK];\n return untrack(() => {\n if (newLen === 0) {\n if (len !== 0) {\n dispose(disposers);\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n signals = [];\n }\n if (options.fallback) {\n items = [FALLBACK];\n mapped[0] = createRoot(disposer => {\n disposers[0] = disposer;\n return options.fallback();\n });\n len = 1;\n }\n return mapped;\n }\n if (items[0] === FALLBACK) {\n disposers[0]();\n disposers = [];\n items = [];\n mapped = [];\n len = 0;\n }\n for (i = 0; i < newLen; i++) {\n if (i < items.length && items[i] !== newItems[i]) {\n signals[i](() => newItems[i]);\n } else if (i >= items.length) {\n mapped[i] = createRoot(mapper);\n }\n }\n for (; i < items.length; i++) {\n disposers[i]();\n }\n len = signals.length = disposers.length = newLen;\n items = newItems.slice(0);\n return mapped = mapped.slice(0, len);\n });\n function mapper(disposer) {\n disposers[i] = disposer;\n const [s, set] = createSignal(newItems[i]);\n signals[i] = set;\n return mapFn(s, i);\n }\n };\n}\n\nlet hydrationEnabled = false;\nfunction enableHydration() {\n hydrationEnabled = true;\n}\nfunction createComponent(Comp, props) {\n if (hydrationEnabled) {\n if (sharedConfig.context) {\n const c = sharedConfig.context;\n setHydrateContext(nextHydrateContext());\n const r = untrack(() => Comp(props || {}));\n setHydrateContext(c);\n return r;\n }\n }\n return untrack(() => Comp(props || {}));\n}\nfunction trueFn() {\n return true;\n}\nconst propTraps = {\n get(_, property, receiver) {\n if (property === $PROXY) return receiver;\n return _.get(property);\n },\n has(_, property) {\n if (property === $PROXY) return true;\n return _.has(property);\n },\n set: trueFn,\n deleteProperty: trueFn,\n getOwnPropertyDescriptor(_, property) {\n return {\n configurable: true,\n enumerable: true,\n get() {\n return _.get(property);\n },\n set: trueFn,\n deleteProperty: trueFn\n };\n },\n ownKeys(_) {\n return _.keys();\n }\n};\nfunction resolveSource(s) {\n return !(s = typeof s === \"function\" ? s() : s) ? {} : s;\n}\nfunction resolveSources() {\n for (let i = 0, length = this.length; i < length; ++i) {\n const v = this[i]();\n if (v !== undefined) return v;\n }\n}\nfunction mergeProps(...sources) {\n let proxy = false;\n for (let i = 0; i < sources.length; i++) {\n const s = sources[i];\n proxy = proxy || !!s && $PROXY in s;\n sources[i] = typeof s === \"function\" ? (proxy = true, createMemo(s)) : s;\n }\n if (SUPPORTS_PROXY && proxy) {\n return new Proxy({\n get(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n const v = resolveSource(sources[i])[property];\n if (v !== undefined) return v;\n }\n },\n has(property) {\n for (let i = sources.length - 1; i >= 0; i--) {\n if (property in resolveSource(sources[i])) return true;\n }\n return false;\n },\n keys() {\n const keys = [];\n for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));\n return [...new Set(keys)];\n }\n }, propTraps);\n }\n const sourcesMap = {};\n const defined = Object.create(null);\n for (let i = sources.length - 1; i >= 0; i--) {\n const source = sources[i];\n if (!source) continue;\n const sourceKeys = Object.getOwnPropertyNames(source);\n for (let i = sourceKeys.length - 1; i >= 0; i--) {\n const key = sourceKeys[i];\n if (key === \"__proto__\" || key === \"constructor\") continue;\n const desc = Object.getOwnPropertyDescriptor(source, key);\n if (!defined[key]) {\n defined[key] = desc.get ? {\n enumerable: true,\n configurable: true,\n get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])\n } : desc.value !== undefined ? desc : undefined;\n } else {\n const sources = sourcesMap[key];\n if (sources) {\n if (desc.get) sources.push(desc.get.bind(source));else if (desc.value !== undefined) sources.push(() => desc.value);\n }\n }\n }\n }\n const target = {};\n const definedKeys = Object.keys(defined);\n for (let i = definedKeys.length - 1; i >= 0; i--) {\n const key = definedKeys[i],\n desc = defined[key];\n if (desc && desc.get) Object.defineProperty(target, key, desc);else target[key] = desc ? desc.value : undefined;\n }\n return target;\n}\nfunction splitProps(props, ...keys) {\n const len = keys.length;\n if (SUPPORTS_PROXY && $PROXY in props) {\n const blocked = len > 1 ? keys.flat() : keys[0];\n const claimed = new Set();\n const res = keys.map(k => {\n const owned = k.filter(property => !claimed.has(property) && (claimed.add(property), true));\n return new Proxy({\n get(property) {\n return owned.includes(property) ? props[property] : undefined;\n },\n has(property) {\n return owned.includes(property) && property in props;\n },\n keys() {\n return owned.filter(property => property in props);\n }\n }, propTraps);\n });\n res.push(new Proxy({\n get(property) {\n return blocked.includes(property) ? undefined : props[property];\n },\n has(property) {\n return blocked.includes(property) ? false : property in props;\n },\n keys() {\n return Object.keys(props).filter(k => !blocked.includes(k));\n }\n }, propTraps));\n return res;\n }\n const objects = [];\n for (let i = 0; i <= len; i++) {\n objects[i] = {};\n }\n for (const propName of Object.getOwnPropertyNames(props)) {\n let keyIndex = len;\n for (let i = 0; i < keys.length; i++) {\n if (keys[i].includes(propName)) {\n keyIndex = i;\n break;\n }\n }\n const desc = Object.getOwnPropertyDescriptor(props, propName);\n const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;\n isDefaultDesc ? objects[keyIndex][propName] = desc.value : Object.defineProperty(objects[keyIndex], propName, desc);\n }\n return objects;\n}\nfunction lazy(fn) {\n let comp;\n let p;\n const load = () => {\n if (!p) {\n const cur = p = fn();\n cur.then(mod => {\n comp = () => mod.default;\n }, () => {\n if (p === cur) p = undefined;\n });\n }\n return p;\n };\n const wrap = props => {\n const ctx = sharedConfig.context;\n if (ctx) {\n const [s, set] = createSignal();\n sharedConfig.count || (sharedConfig.count = 0);\n sharedConfig.count++;\n load().then(mod => {\n !sharedConfig.done && setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => mod.default);\n setHydrateContext();\n }, err => {\n !sharedConfig.done && setHydrateContext(ctx);\n sharedConfig.count--;\n set(() => () => {\n throw err;\n });\n setHydrateContext();\n });\n comp = s;\n } else if (!comp) {\n const [s] = createResource(() => load().then(mod => mod.default));\n comp = s;\n onCleanup(() => comp = undefined);\n }\n let Comp;\n return createMemo(() => (Comp = comp?.()) ? untrack(() => {\n if (IS_DEV) ;\n if (!ctx || sharedConfig.done) return Comp(props);\n const c = sharedConfig.context;\n setHydrateContext(ctx);\n const r = Comp(props);\n setHydrateContext(c);\n return r;\n }) : \"\");\n };\n wrap.preload = () => load();\n return wrap;\n}\nlet counter = 0;\nfunction createUniqueId() {\n const ctx = sharedConfig.context;\n return ctx ? sharedConfig.getNextContextId() : `cl-${counter++}`;\n}\n\nconst narrowedError = name => `Stale read from <${name}>.`;\nfunction For(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(mapArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Index(props) {\n const fallback = \"fallback\" in props && {\n fallback: () => props.fallback\n };\n return createMemo(indexArray(() => props.each, props.children, fallback || undefined));\n}\nfunction Show(props) {\n const keyed = props.keyed;\n const conditionValue = createMemo(() => props.when, undefined, undefined);\n const condition = keyed ? conditionValue : createMemo(conditionValue, undefined, {\n equals: (a, b) => !a === !b\n });\n return createMemo(() => {\n const c = condition();\n if (c) {\n const child = props.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(() => child(keyed ? c : () => {\n if (!untrack(condition)) throw narrowedError(\"Show\");\n return conditionValue();\n })) : child;\n }\n return props.fallback;\n }, undefined, undefined);\n}\nfunction Switch(props) {\n const chs = children(() => props.children);\n const switchFunc = createMemo(() => {\n const ch = chs();\n const mps = Array.isArray(ch) ? ch : [ch];\n let func = () => undefined;\n for (let i = 0; i < mps.length; i++) {\n const index = i;\n const mp = mps[i];\n const prevFunc = func;\n const conditionValue = createMemo(() => prevFunc() ? undefined : mp.when, undefined, undefined);\n const condition = mp.keyed ? conditionValue : createMemo(conditionValue, undefined, {\n equals: (a, b) => !a === !b\n });\n func = () => prevFunc() || (condition() ? [index, conditionValue, mp] : undefined);\n }\n return func;\n });\n return createMemo(() => {\n const sel = switchFunc()();\n if (!sel) return props.fallback;\n const [index, conditionValue, mp] = sel;\n const child = mp.children;\n const fn = typeof child === \"function\" && child.length > 0;\n return fn ? untrack(() => child(mp.keyed ? conditionValue() : () => {\n if (untrack(switchFunc)()?.[0] !== index) throw narrowedError(\"Match\");\n return conditionValue();\n })) : child;\n }, undefined, undefined);\n}\nfunction Match(props) {\n return props;\n}\nlet Errors;\nfunction resetErrorBoundaries() {\n Errors && [...Errors].forEach(fn => fn());\n}\nfunction ErrorBoundary(props) {\n let err;\n if (sharedConfig.context && sharedConfig.load) err = sharedConfig.load(sharedConfig.getContextId());\n const [errored, setErrored] = createSignal(err, undefined);\n Errors || (Errors = new Set());\n Errors.add(setErrored);\n onCleanup(() => Errors.delete(setErrored));\n return createMemo(() => {\n let e;\n if (e = errored()) {\n const f = props.fallback;\n return typeof f === \"function\" && f.length ? untrack(() => f(e, () => setErrored())) : f;\n }\n return catchError(() => props.children, setErrored);\n }, undefined, undefined);\n}\n\nconst suspenseListEquals = (a, b) => a.showContent === b.showContent && a.showFallback === b.showFallback;\nconst SuspenseListContext = /* #__PURE__ */createContext();\nfunction SuspenseList(props) {\n let [wrapper, setWrapper] = createSignal(() => ({\n inFallback: false\n })),\n show;\n const listContext = useContext(SuspenseListContext);\n const [registry, setRegistry] = createSignal([]);\n if (listContext) {\n show = listContext.register(createMemo(() => wrapper()().inFallback));\n }\n const resolved = createMemo(prev => {\n const reveal = props.revealOrder,\n tail = props.tail,\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {},\n reg = registry(),\n reverse = reveal === \"backwards\";\n if (reveal === \"together\") {\n const all = reg.every(inFallback => !inFallback());\n const res = reg.map(() => ({\n showContent: all && showContent,\n showFallback\n }));\n res.inFallback = !all;\n return res;\n }\n let stop = false;\n let inFallback = prev.inFallback;\n const res = [];\n for (let i = 0, len = reg.length; i < len; i++) {\n const n = reverse ? len - i - 1 : i,\n s = reg[n]();\n if (!stop && !s) {\n res[n] = {\n showContent,\n showFallback\n };\n } else {\n const next = !stop;\n if (next) inFallback = true;\n res[n] = {\n showContent: next,\n showFallback: !tail || next && tail === \"collapsed\" ? showFallback : false\n };\n stop = true;\n }\n }\n if (!stop) inFallback = false;\n res.inFallback = inFallback;\n return res;\n }, {\n inFallback: false\n });\n setWrapper(() => resolved);\n return createComponent(SuspenseListContext.Provider, {\n value: {\n register: inFallback => {\n let index;\n setRegistry(registry => {\n index = registry.length;\n return [...registry, inFallback];\n });\n return createMemo(() => resolved()[index], undefined, {\n equals: suspenseListEquals\n });\n }\n },\n get children() {\n return props.children;\n }\n });\n}\nfunction Suspense(props) {\n let counter = 0,\n show,\n ctx,\n p,\n flicker,\n error;\n const [inFallback, setFallback] = createSignal(false),\n SuspenseContext = getSuspenseContext(),\n store = {\n increment: () => {\n if (++counter === 1) setFallback(true);\n },\n decrement: () => {\n if (--counter === 0) setFallback(false);\n },\n inFallback,\n effects: [],\n resolved: false\n },\n owner = getOwner();\n if (sharedConfig.context && sharedConfig.load) {\n const key = sharedConfig.getContextId();\n let ref = sharedConfig.load(key);\n if (ref) {\n if (typeof ref !== \"object\" || ref.s !== 1) p = ref;else sharedConfig.gather(key);\n }\n if (p && p !== \"$$f\") {\n const [s, set] = createSignal(undefined, {\n equals: false\n });\n flicker = s;\n p.then(() => {\n if (sharedConfig.done) return set();\n sharedConfig.gather(key);\n setHydrateContext(ctx);\n set();\n setHydrateContext();\n }, err => {\n error = err;\n set();\n });\n }\n }\n const listContext = useContext(SuspenseListContext);\n if (listContext) show = listContext.register(store.inFallback);\n let dispose;\n onCleanup(() => dispose && dispose());\n return createComponent(SuspenseContext.Provider, {\n value: store,\n get children() {\n return createMemo(() => {\n if (error) throw error;\n ctx = sharedConfig.context;\n if (flicker) {\n flicker();\n return flicker = undefined;\n }\n if (ctx && p === \"$$f\") setHydrateContext();\n const rendered = createMemo(() => props.children);\n return createMemo(prev => {\n const inFallback = store.inFallback(),\n {\n showContent = true,\n showFallback = true\n } = show ? show() : {};\n if ((!inFallback || p && p !== \"$$f\") && showContent) {\n store.resolved = true;\n dispose && dispose();\n dispose = ctx = p = undefined;\n resumeEffects(store.effects);\n return rendered();\n }\n if (!showFallback) return;\n if (dispose) return prev;\n return createRoot(disposer => {\n dispose = disposer;\n if (ctx) {\n setHydrateContext({\n id: ctx.id + \"F\",\n count: 0\n });\n ctx = undefined;\n }\n return props.fallback;\n }, owner);\n });\n });\n }\n });\n}\n\nconst DEV = undefined;\n\nexport { $DEVCOMP, $PROXY, $TRACK, DEV, ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, batch, cancelCallback, catchError, children, createComponent, createComputed, createContext, createDeferred, createEffect, createMemo, createReaction, createRenderEffect, createResource, createRoot, createSelector, createSignal, createUniqueId, enableExternalSource, enableHydration, enableScheduling, equalFn, from, getListener, getOwner, indexArray, lazy, mapArray, mergeProps, observable, on, onCleanup, onError, onMount, requestCallback, resetErrorBoundaries, runWithOwner, sharedConfig, splitProps, startTransition, untrack, useContext, useTransition };\n","import { createMemo, sharedConfig, createRenderEffect, createRoot, untrack, splitProps, getOwner, createEffect, runWithOwner, createSignal, onCleanup, enableHydration } from 'solid-js';\nexport { ErrorBoundary, For, Index, Match, Show, Suspense, SuspenseList, Switch, createComponent, createRenderEffect as effect, getOwner, mergeProps, untrack } from 'solid-js';\n\nconst booleans = [\"allowfullscreen\", \"async\", \"alpha\",\n\"autofocus\",\n\"autoplay\", \"checked\", \"controls\", \"default\", \"disabled\", \"formnovalidate\", \"hidden\",\n\"indeterminate\", \"inert\",\n\"ismap\", \"loop\", \"multiple\", \"muted\", \"nomodule\", \"novalidate\", \"open\", \"playsinline\", \"readonly\", \"required\", \"reversed\", \"seamless\",\n\"selected\", \"adauctionheaders\",\n\"browsingtopics\",\n\"credentialless\",\n\"defaultchecked\", \"defaultmuted\", \"defaultselected\", \"defer\", \"disablepictureinpicture\", \"disableremoteplayback\", \"preservespitch\",\n\"shadowrootclonable\", \"shadowrootcustomelementregistry\",\n\"shadowrootdelegatesfocus\", \"shadowrootserializable\",\n\"sharedstoragewritable\"\n];\nconst Properties = /*#__PURE__*/new Set([\n\"className\", \"value\",\n\"readOnly\", \"noValidate\", \"formNoValidate\", \"isMap\", \"noModule\", \"playsInline\", \"adAuctionHeaders\",\n\"allowFullscreen\", \"browsingTopics\",\n\"defaultChecked\", \"defaultMuted\", \"defaultSelected\", \"disablePictureInPicture\", \"disableRemotePlayback\", \"preservesPitch\", \"shadowRootClonable\", \"shadowRootCustomElementRegistry\",\n\"shadowRootDelegatesFocus\", \"shadowRootSerializable\",\n\"sharedStorageWritable\",\n...booleans]);\nconst ChildProperties = /*#__PURE__*/new Set([\"innerHTML\", \"textContent\", \"innerText\", \"children\"]);\nconst Aliases = /*#__PURE__*/Object.assign(Object.create(null), {\n className: \"class\",\n htmlFor: \"for\"\n});\nconst PropAliases = /*#__PURE__*/Object.assign(Object.create(null), {\n class: \"className\",\n novalidate: {\n $: \"noValidate\",\n FORM: 1\n },\n formnovalidate: {\n $: \"formNoValidate\",\n BUTTON: 1,\n INPUT: 1\n },\n ismap: {\n $: \"isMap\",\n IMG: 1\n },\n nomodule: {\n $: \"noModule\",\n SCRIPT: 1\n },\n playsinline: {\n $: \"playsInline\",\n VIDEO: 1\n },\n readonly: {\n $: \"readOnly\",\n INPUT: 1,\n TEXTAREA: 1\n },\n adauctionheaders: {\n $: \"adAuctionHeaders\",\n IFRAME: 1\n },\n allowfullscreen: {\n $: \"allowFullscreen\",\n IFRAME: 1\n },\n browsingtopics: {\n $: \"browsingTopics\",\n IMG: 1\n },\n defaultchecked: {\n $: \"defaultChecked\",\n INPUT: 1\n },\n defaultmuted: {\n $: \"defaultMuted\",\n AUDIO: 1,\n VIDEO: 1\n },\n defaultselected: {\n $: \"defaultSelected\",\n OPTION: 1\n },\n disablepictureinpicture: {\n $: \"disablePictureInPicture\",\n VIDEO: 1\n },\n disableremoteplayback: {\n $: \"disableRemotePlayback\",\n AUDIO: 1,\n VIDEO: 1\n },\n preservespitch: {\n $: \"preservesPitch\",\n AUDIO: 1,\n VIDEO: 1\n },\n shadowrootclonable: {\n $: \"shadowRootClonable\",\n TEMPLATE: 1\n },\n shadowrootdelegatesfocus: {\n $: \"shadowRootDelegatesFocus\",\n TEMPLATE: 1\n },\n shadowrootserializable: {\n $: \"shadowRootSerializable\",\n TEMPLATE: 1\n },\n sharedstoragewritable: {\n $: \"sharedStorageWritable\",\n IFRAME: 1,\n IMG: 1\n }\n});\nfunction getPropAlias(prop, tagName) {\n const a = PropAliases[prop];\n return typeof a === \"object\" ? a[tagName] ? a[\"$\"] : undefined : a;\n}\nconst DelegatedEvents = /*#__PURE__*/new Set([\"beforeinput\", \"click\", \"dblclick\", \"contextmenu\", \"focusin\", \"focusout\", \"input\", \"keydown\", \"keyup\", \"mousedown\", \"mousemove\", \"mouseout\", \"mouseover\", \"mouseup\", \"pointerdown\", \"pointermove\", \"pointerout\", \"pointerover\", \"pointerup\", \"touchend\", \"touchmove\", \"touchstart\"]);\nconst SVGElements = /*#__PURE__*/new Set([\n\"altGlyph\", \"altGlyphDef\", \"altGlyphItem\", \"animate\", \"animateColor\", \"animateMotion\", \"animateTransform\", \"circle\", \"clipPath\", \"color-profile\", \"cursor\", \"defs\", \"desc\", \"ellipse\", \"feBlend\", \"feColorMatrix\", \"feComponentTransfer\", \"feComposite\", \"feConvolveMatrix\", \"feDiffuseLighting\", \"feDisplacementMap\", \"feDistantLight\", \"feDropShadow\", \"feFlood\", \"feFuncA\", \"feFuncB\", \"feFuncG\", \"feFuncR\", \"feGaussianBlur\", \"feImage\", \"feMerge\", \"feMergeNode\", \"feMorphology\", \"feOffset\", \"fePointLight\", \"feSpecularLighting\", \"feSpotLight\", \"feTile\", \"feTurbulence\", \"filter\", \"font\", \"font-face\", \"font-face-format\", \"font-face-name\", \"font-face-src\", \"font-face-uri\", \"foreignObject\", \"g\", \"glyph\", \"glyphRef\", \"hkern\", \"image\", \"line\", \"linearGradient\", \"marker\", \"mask\", \"metadata\", \"missing-glyph\", \"mpath\", \"path\", \"pattern\", \"polygon\", \"polyline\", \"radialGradient\", \"rect\",\n\"set\", \"stop\",\n\"svg\", \"switch\", \"symbol\", \"text\", \"textPath\",\n\"tref\", \"tspan\", \"use\", \"view\", \"vkern\"]);\nconst SVGNamespace = {\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\"\n};\nconst DOMElements = /*#__PURE__*/new Set([\"html\", \"base\", \"head\", \"link\", \"meta\", \"style\", \"title\", \"body\", \"address\", \"article\", \"aside\", \"footer\", \"header\", \"main\", \"nav\", \"section\", \"body\", \"blockquote\", \"dd\", \"div\", \"dl\", \"dt\", \"figcaption\", \"figure\", \"hr\", \"li\", \"ol\", \"p\", \"pre\", \"ul\", \"a\", \"abbr\", \"b\", \"bdi\", \"bdo\", \"br\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"rp\", \"rt\", \"ruby\", \"s\", \"samp\", \"small\", \"span\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\", \"wbr\", \"area\", \"audio\", \"img\", \"map\", \"track\", \"video\", \"embed\", \"iframe\", \"object\", \"param\", \"picture\", \"portal\", \"source\", \"svg\", \"math\", \"canvas\", \"noscript\", \"script\", \"del\", \"ins\", \"caption\", \"col\", \"colgroup\", \"table\", \"tbody\", \"td\", \"tfoot\", \"th\", \"thead\", \"tr\", \"button\", \"datalist\", \"fieldset\", \"form\", \"input\", \"label\", \"legend\", \"meter\", \"optgroup\", \"option\", \"output\", \"progress\", \"select\", \"textarea\", \"details\", \"dialog\", \"menu\", \"summary\", \"details\", \"slot\", \"template\", \"acronym\", \"applet\", \"basefont\", \"bgsound\", \"big\", \"blink\", \"center\", \"content\", \"dir\", \"font\", \"frame\", \"frameset\", \"hgroup\", \"image\", \"keygen\", \"marquee\", \"menuitem\", \"nobr\", \"noembed\", \"noframes\", \"plaintext\", \"rb\", \"rtc\", \"shadow\", \"spacer\", \"strike\", \"tt\", \"xmp\", \"a\", \"abbr\", \"acronym\", \"address\", \"applet\", \"area\", \"article\", \"aside\", \"audio\", \"b\", \"base\", \"basefont\", \"bdi\", \"bdo\", \"bgsound\", \"big\", \"blink\", \"blockquote\", \"body\", \"br\", \"button\", \"canvas\", \"caption\", \"center\", \"cite\", \"code\", \"col\", \"colgroup\", \"content\", \"data\", \"datalist\", \"dd\", \"del\", \"details\", \"dfn\", \"dialog\", \"dir\", \"div\", \"dl\", \"dt\", \"em\", \"embed\", \"fieldset\", \"figcaption\", \"figure\", \"font\", \"footer\", \"form\", \"frame\", \"frameset\", \"head\", \"header\", \"hgroup\", \"hr\", \"html\", \"i\", \"iframe\", \"image\", \"img\", \"input\", \"ins\", \"kbd\", \"keygen\", \"label\", \"legend\", \"li\", \"link\", \"main\", \"map\", \"mark\", \"marquee\", \"menu\", \"menuitem\", \"meta\", \"meter\", \"nav\", \"nobr\", \"noembed\", \"noframes\", \"noscript\", \"object\", \"ol\", \"optgroup\", \"option\", \"output\", \"p\", \"param\", \"picture\", \"plaintext\", \"portal\", \"pre\", \"progress\", \"q\", \"rb\", \"rp\", \"rt\", \"rtc\", \"ruby\", \"s\", \"samp\", \"script\", \"section\", \"select\", \"shadow\", \"slot\", \"small\", \"source\", \"spacer\", \"span\", \"strike\", \"strong\", \"style\", \"sub\", \"summary\", \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"time\", \"title\", \"tr\", \"track\", \"tt\", \"u\", \"ul\", \"var\", \"video\", \"wbr\", \"xmp\", \"input\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\",\n\"webview\",\n\"isindex\", \"listing\", \"multicol\", \"nextid\", \"noindex\", \"search\"]);\n\nconst memo = fn => createMemo(() => fn());\n\nfunction reconcileArrays(parentNode, a, b) {\n let bLength = b.length,\n aEnd = a.length,\n bEnd = bLength,\n aStart = 0,\n bStart = 0,\n after = a[aEnd - 1].nextSibling,\n map = null;\n while (aStart < aEnd || bStart < bEnd) {\n if (a[aStart] === b[bStart]) {\n aStart++;\n bStart++;\n continue;\n }\n while (a[aEnd - 1] === b[bEnd - 1]) {\n aEnd--;\n bEnd--;\n }\n if (aEnd === aStart) {\n const node = bEnd < bLength ? bStart ? b[bStart - 1].nextSibling : b[bEnd - bStart] : after;\n while (bStart < bEnd) parentNode.insertBefore(b[bStart++], node);\n } else if (bEnd === bStart) {\n while (aStart < aEnd) {\n if (!map || !map.has(a[aStart])) a[aStart].remove();\n aStart++;\n }\n } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {\n const node = a[--aEnd].nextSibling;\n parentNode.insertBefore(b[bStart++], a[aStart++].nextSibling);\n parentNode.insertBefore(b[--bEnd], node);\n a[aEnd] = b[bEnd];\n } else {\n if (!map) {\n map = new Map();\n let i = bStart;\n while (i < bEnd) map.set(b[i], i++);\n }\n const index = map.get(a[aStart]);\n if (index != null) {\n if (bStart < index && index < bEnd) {\n let i = aStart,\n sequence = 1,\n t;\n while (++i < aEnd && i < bEnd) {\n if ((t = map.get(a[i])) == null || t !== index + sequence) break;\n sequence++;\n }\n if (sequence > index - bStart) {\n const node = a[aStart];\n while (bStart < index) parentNode.insertBefore(b[bStart++], node);\n } else parentNode.replaceChild(b[bStart++], a[aStart++]);\n } else aStart++;\n } else a[aStart++].remove();\n }\n }\n}\n\nconst $$EVENTS = \"_$DX_DELEGATE\";\nfunction render(code, element, init, options = {}) {\n let disposer;\n createRoot(dispose => {\n disposer = dispose;\n element === document ? code() : insert(element, code(), element.firstChild ? null : undefined, init);\n }, options.owner);\n return () => {\n disposer();\n element.textContent = \"\";\n };\n}\nfunction template(html, isImportNode, isSVG, isMathML) {\n let node;\n const create = () => {\n const t = isMathML ? document.createElementNS(\"http://www.w3.org/1998/Math/MathML\", \"template\") : document.createElement(\"template\");\n t.innerHTML = html;\n return isSVG ? t.content.firstChild.firstChild : isMathML ? t.firstChild : t.content.firstChild;\n };\n const fn = isImportNode ? () => untrack(() => document.importNode(node || (node = create()), true)) : () => (node || (node = create())).cloneNode(true);\n fn.cloneNode = fn;\n return fn;\n}\nfunction delegateEvents(eventNames, document = window.document) {\n const e = document[$$EVENTS] || (document[$$EVENTS] = new Set());\n for (let i = 0, l = eventNames.length; i < l; i++) {\n const name = eventNames[i];\n if (!e.has(name)) {\n e.add(name);\n document.addEventListener(name, eventHandler);\n }\n }\n}\nfunction clearDelegatedEvents(document = window.document) {\n if (document[$$EVENTS]) {\n for (let name of document[$$EVENTS].keys()) document.removeEventListener(name, eventHandler);\n delete document[$$EVENTS];\n }\n}\nfunction setProperty(node, name, value) {\n if (isHydrating(node)) return;\n if ((name === \"value\" || name === \"defaultValue\") && (node.nodeName === \"INPUT\" || node.nodeName === \"TEXTAREA\")) node[name] = value ?? \"\";else node[name] = value;\n}\nfunction setAttribute(node, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(name);else node.setAttribute(name, value);\n}\nfunction setAttributeNS(node, namespace, name, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttributeNS(namespace, name);else node.setAttributeNS(namespace, name, value);\n}\nfunction setBoolAttribute(node, name, value) {\n if (isHydrating(node)) return;\n value ? node.setAttribute(name, \"\") : node.removeAttribute(name);\n}\nfunction className(node, value) {\n if (isHydrating(node)) return;\n if (value == null) node.removeAttribute(\"class\");else node.className = value;\n}\nfunction addEventListener(node, name, handler, delegate) {\n if (delegate) {\n if (Array.isArray(handler)) {\n node[`$$${name}`] = handler[0];\n node[`$$${name}Data`] = handler[1];\n } else node[`$$${name}`] = handler;\n } else if (Array.isArray(handler)) {\n const handlerFn = handler[0];\n node.addEventListener(name, handler[0] = e => handlerFn.call(node, handler[1], e));\n } else node.addEventListener(name, handler, typeof handler !== \"function\" && handler);\n}\nfunction classList(node, value, prev = {}) {\n const classKeys = Object.keys(value || {}),\n prevKeys = Object.keys(prev);\n let i, len;\n for (i = 0, len = prevKeys.length; i < len; i++) {\n const key = prevKeys[i];\n if (!key || key === \"undefined\" || value[key]) continue;\n toggleClassKey(node, key, false);\n delete prev[key];\n }\n for (i = 0, len = classKeys.length; i < len; i++) {\n const key = classKeys[i],\n classValue = !!value[key];\n if (!key || key === \"undefined\" || prev[key] === classValue || !classValue) continue;\n toggleClassKey(node, key, true);\n prev[key] = classValue;\n }\n return prev;\n}\nfunction style(node, value, prev) {\n if (!value) return prev ? setAttribute(node, \"style\") : value;\n const nodeStyle = node.style;\n if (typeof value === \"string\") return nodeStyle.cssText = value;\n typeof prev === \"string\" && (nodeStyle.cssText = prev = undefined);\n prev || (prev = {});\n value || (value = {});\n let v, s;\n for (s in prev) {\n value[s] == null && nodeStyle.removeProperty(s);\n delete prev[s];\n }\n for (s in value) {\n v = value[s];\n if (v !== prev[s]) {\n nodeStyle.setProperty(s, v);\n prev[s] = v;\n }\n }\n return prev;\n}\nfunction setStyleProperty(node, name, value) {\n value != null ? node.style.setProperty(name, value) : node.style.removeProperty(name);\n}\nfunction spread(node, props = {}, isSVG, skipChildren) {\n const prevProps = {};\n if (!skipChildren) {\n createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));\n }\n createRenderEffect(() => typeof props.ref === \"function\" && use(props.ref, node));\n createRenderEffect(() => assign(node, props, isSVG, true, prevProps, true));\n return prevProps;\n}\nfunction dynamicProperty(props, key) {\n const src = props[key];\n Object.defineProperty(props, key, {\n get() {\n return src();\n },\n enumerable: true\n });\n return props;\n}\nfunction use(fn, element, arg) {\n return untrack(() => fn(element, arg));\n}\nfunction insert(parent, accessor, marker, initial) {\n if (marker !== undefined && !initial) initial = [];\n if (typeof accessor !== \"function\") return insertExpression(parent, accessor, initial, marker);\n createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);\n}\nfunction assign(node, props, isSVG, skipChildren, prevProps = {}, skipRef = false) {\n props || (props = {});\n for (const prop in prevProps) {\n if (!(prop in props)) {\n if (prop === \"children\") continue;\n prevProps[prop] = assignProp(node, prop, null, prevProps[prop], isSVG, skipRef, props);\n }\n }\n for (const prop in props) {\n if (prop === \"children\") {\n if (!skipChildren) insertExpression(node, props.children);\n continue;\n }\n const value = props[prop];\n prevProps[prop] = assignProp(node, prop, value, prevProps[prop], isSVG, skipRef, props);\n }\n}\nfunction hydrate$1(code, element, options = {}) {\n if (globalThis._$HY.done) return render(code, element, [...element.childNodes], options);\n sharedConfig.completed = globalThis._$HY.completed;\n sharedConfig.events = globalThis._$HY.events;\n sharedConfig.load = id => globalThis._$HY.r[id];\n sharedConfig.has = id => id in globalThis._$HY.r;\n sharedConfig.gather = root => gatherHydratable(element, root);\n sharedConfig.registry = new Map();\n sharedConfig.context = {\n id: options.renderId || \"\",\n count: 0\n };\n try {\n gatherHydratable(element, options.renderId);\n return render(code, element, [...element.childNodes], options);\n } finally {\n sharedConfig.context = null;\n }\n}\nfunction getNextElement(template) {\n let node,\n key,\n hydrating = isHydrating();\n if (!hydrating || !(node = sharedConfig.registry.get(key = getHydrationKey()))) {\n return template();\n }\n if (sharedConfig.completed) sharedConfig.completed.add(node);\n sharedConfig.registry.delete(key);\n return node;\n}\nfunction getNextMatch(el, nodeName) {\n while (el && el.localName !== nodeName) el = el.nextSibling;\n return el;\n}\nfunction getNextMarker(start) {\n let end = start,\n count = 0,\n current = [];\n if (isHydrating(start)) {\n while (end) {\n if (end.nodeType === 8) {\n const v = end.nodeValue;\n if (v === \"$\") count++;else if (v === \"/\") {\n if (count === 0) return [end, current];\n count--;\n }\n }\n current.push(end);\n end = end.nextSibling;\n }\n }\n return [end, current];\n}\nfunction runHydrationEvents() {\n if (sharedConfig.events && !sharedConfig.events.queued) {\n queueMicrotask(() => {\n const {\n completed,\n events\n } = sharedConfig;\n if (!events) return;\n events.queued = false;\n while (events.length) {\n const [el, e] = events[0];\n if (!completed.has(el)) return;\n events.shift();\n eventHandler(e);\n }\n if (sharedConfig.done) {\n sharedConfig.events = _$HY.events = null;\n sharedConfig.completed = _$HY.completed = null;\n }\n });\n sharedConfig.events.queued = true;\n }\n}\nfunction isHydrating(node) {\n return !!sharedConfig.context && !sharedConfig.done && (!node || node.isConnected);\n}\nfunction toPropertyName(name) {\n return name.toLowerCase().replace(/-([a-z])/g, (_, w) => w.toUpperCase());\n}\nfunction toggleClassKey(node, key, value) {\n const classNames = key.trim().split(/\\s+/);\n for (let i = 0, nameLen = classNames.length; i < nameLen; i++) node.classList.toggle(classNames[i], value);\n}\nfunction assignProp(node, prop, value, prev, isSVG, skipRef, props) {\n let isCE, isProp, isChildProp, propAlias, forceProp;\n if (prop === \"style\") return style(node, value, prev);\n if (prop === \"classList\") return classList(node, value, prev);\n if (value === prev) return prev;\n if (prop === \"ref\") {\n if (!skipRef) value(node);\n } else if (prop.slice(0, 3) === \"on:\") {\n const e = prop.slice(3);\n prev && node.removeEventListener(e, prev, typeof prev !== \"function\" && prev);\n value && node.addEventListener(e, value, typeof value !== \"function\" && value);\n } else if (prop.slice(0, 10) === \"oncapture:\") {\n const e = prop.slice(10);\n prev && node.removeEventListener(e, prev, true);\n value && node.addEventListener(e, value, true);\n } else if (prop.slice(0, 2) === \"on\") {\n const name = prop.slice(2).toLowerCase();\n const delegate = DelegatedEvents.has(name);\n if (!delegate && prev) {\n const h = Array.isArray(prev) ? prev[0] : prev;\n node.removeEventListener(name, h);\n }\n if (delegate || value) {\n addEventListener(node, name, value, delegate);\n delegate && delegateEvents([name]);\n }\n } else if (prop.slice(0, 5) === \"attr:\") {\n setAttribute(node, prop.slice(5), value);\n } else if (prop.slice(0, 5) === \"bool:\") {\n setBoolAttribute(node, prop.slice(5), value);\n } else if ((forceProp = prop.slice(0, 5) === \"prop:\") || (isChildProp = ChildProperties.has(prop)) || !isSVG && ((propAlias = getPropAlias(prop, node.tagName)) || (isProp = Properties.has(prop))) || (isCE = node.nodeName.includes(\"-\") || \"is\" in props)) {\n if (forceProp) {\n prop = prop.slice(5);\n isProp = true;\n } else if (isHydrating(node)) return value;\n if (prop === \"class\" || prop === \"className\") className(node, value);else if (isCE && !isProp && !isChildProp) node[toPropertyName(prop)] = value;else if ((prop === \"value\" || prop === \"defaultValue\") && (node.nodeName === \"INPUT\" || node.nodeName === \"TEXTAREA\"))\n node[propAlias || prop] = value ?? \"\";else node[propAlias || prop] = value;\n } else {\n const ns = isSVG && prop.indexOf(\":\") > -1 && SVGNamespace[prop.split(\":\")[0]];\n if (ns) setAttributeNS(node, ns, prop, value);else setAttribute(node, Aliases[prop] || prop, value);\n }\n return value;\n}\nfunction eventHandler(e) {\n if (sharedConfig.registry && sharedConfig.events) {\n if (sharedConfig.events.find(([el, ev]) => ev === e)) return;\n }\n let node = e.target;\n const key = `$$${e.type}`;\n const oriTarget = e.target;\n const oriCurrentTarget = e.currentTarget;\n const retarget = value => Object.defineProperty(e, \"target\", {\n configurable: true,\n value\n });\n const handleNode = () => {\n const handler = node[key];\n if (handler && !node.disabled) {\n const data = node[`${key}Data`];\n data !== undefined ? handler.call(node, data, e) : handler.call(node, e);\n if (e.cancelBubble) return;\n }\n node.host && typeof node.host !== \"string\" && !node.host._$host && node.contains(e.target) && retarget(node.host);\n return true;\n };\n const walkUpTree = () => {\n while (handleNode() && (node = node._$host || node.parentNode || node.host));\n };\n Object.defineProperty(e, \"currentTarget\", {\n configurable: true,\n get() {\n return node || document;\n }\n });\n if (sharedConfig.registry && !sharedConfig.done) sharedConfig.done = _$HY.done = true;\n if (e.composedPath) {\n const path = e.composedPath();\n retarget(path[0]);\n for (let i = 0; i < path.length - 2; i++) {\n node = path[i];\n if (!handleNode()) break;\n if (node._$host) {\n node = node._$host;\n walkUpTree();\n break;\n }\n if (node.parentNode === oriCurrentTarget) {\n break;\n }\n }\n }\n else walkUpTree();\n retarget(oriTarget);\n}\nfunction insertExpression(parent, value, current, marker, unwrapArray) {\n const hydrating = isHydrating(parent);\n if (hydrating) {\n !current && (current = [...parent.childNodes]);\n let cleaned = [];\n for (let i = 0; i < current.length; i++) {\n const node = current[i];\n if (node.nodeType === 8 && node.data.slice(0, 2) === \"!$\") node.remove();else cleaned.push(node);\n }\n current = cleaned;\n }\n while (typeof current === \"function\") current = current();\n if (value === current) return current;\n const t = typeof value,\n multi = marker !== undefined;\n parent = multi && current[0] && current[0].parentNode || parent;\n if (t === \"string\" || t === \"number\") {\n if (hydrating) return current;\n if (t === \"number\") {\n value = value.toString();\n if (value === current) return current;\n }\n if (multi) {\n let node = current[0];\n if (node && node.nodeType === 3) {\n node.data !== value && (node.data = value);\n } else node = document.createTextNode(value);\n current = cleanChildren(parent, current, marker, node);\n } else {\n if (current !== \"\" && typeof current === \"string\") {\n current = parent.firstChild.data = value;\n } else current = parent.textContent = value;\n }\n } else if (value == null || t === \"boolean\") {\n if (hydrating) return current;\n current = cleanChildren(parent, current, marker);\n } else if (t === \"function\") {\n createRenderEffect(() => {\n let v = value();\n while (typeof v === \"function\") v = v();\n current = insertExpression(parent, v, current, marker);\n });\n return () => current;\n } else if (Array.isArray(value)) {\n const array = [];\n const currentArray = current && Array.isArray(current);\n if (normalizeIncomingArray(array, value, current, unwrapArray)) {\n createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));\n return () => current;\n }\n if (hydrating) {\n if (!array.length) return current;\n if (marker === undefined) return current = [...parent.childNodes];\n let node = array[0];\n if (node.parentNode !== parent) return current;\n const nodes = [node];\n while ((node = node.nextSibling) !== marker) nodes.push(node);\n return current = nodes;\n }\n if (array.length === 0) {\n current = cleanChildren(parent, current, marker);\n if (multi) return current;\n } else if (currentArray) {\n if (current.length === 0) {\n appendNodes(parent, array, marker);\n } else reconcileArrays(parent, current, array);\n } else {\n current && cleanChildren(parent);\n appendNodes(parent, array);\n }\n current = array;\n } else if (value.nodeType) {\n if (hydrating && value.parentNode) return current = multi ? [value] : value;\n if (Array.isArray(current)) {\n if (multi) return current = cleanChildren(parent, current, marker, value);\n cleanChildren(parent, current, null, value);\n } else if (current == null || current === \"\" || !parent.firstChild) {\n parent.appendChild(value);\n } else parent.replaceChild(value, parent.firstChild);\n current = value;\n } else ;\n return current;\n}\nfunction normalizeIncomingArray(normalized, array, current, unwrap) {\n let dynamic = false;\n for (let i = 0, len = array.length; i < len; i++) {\n let item = array[i],\n prev = current && current[normalized.length],\n t;\n if (item == null || item === true || item === false) ; else if ((t = typeof item) === \"object\" && item.nodeType) {\n normalized.push(item);\n } else if (Array.isArray(item)) {\n dynamic = normalizeIncomingArray(normalized, item, prev) || dynamic;\n } else if (t === \"function\") {\n if (unwrap) {\n while (typeof item === \"function\") item = item();\n dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item], Array.isArray(prev) ? prev : [prev]) || dynamic;\n } else {\n normalized.push(item);\n dynamic = true;\n }\n } else {\n const value = String(item);\n if (prev && prev.nodeType === 3 && prev.data === value) normalized.push(prev);else normalized.push(document.createTextNode(value));\n }\n }\n return dynamic;\n}\nfunction appendNodes(parent, array, marker = null) {\n for (let i = 0, len = array.length; i < len; i++) parent.insertBefore(array[i], marker);\n}\nfunction cleanChildren(parent, current, marker, replacement) {\n if (marker === undefined) return parent.textContent = \"\";\n const node = replacement || document.createTextNode(\"\");\n if (current.length) {\n let inserted = false;\n for (let i = current.length - 1; i >= 0; i--) {\n const el = current[i];\n if (node !== el) {\n const isParent = el.parentNode === parent;\n if (!inserted && !i) isParent ? parent.replaceChild(node, el) : parent.insertBefore(node, marker);else isParent && el.remove();\n } else inserted = true;\n }\n } else parent.insertBefore(node, marker);\n return [node];\n}\nfunction gatherHydratable(element, root) {\n const templates = element.querySelectorAll(`*[data-hk]`);\n for (let i = 0; i < templates.length; i++) {\n const node = templates[i];\n const key = node.getAttribute(\"data-hk\");\n if ((!root || key.startsWith(root)) && !sharedConfig.registry.has(key)) sharedConfig.registry.set(key, node);\n }\n}\nfunction getHydrationKey() {\n return sharedConfig.getNextContextId();\n}\nfunction NoHydration(props) {\n return sharedConfig.context ? undefined : props.children;\n}\nfunction Hydration(props) {\n return props.children;\n}\nconst voidFn = () => undefined;\nconst RequestContext = Symbol();\nfunction innerHTML(parent, content) {\n !sharedConfig.context && (parent.innerHTML = content);\n}\n\nfunction throwInBrowser(func) {\n const err = new Error(`${func.name} is not supported in the browser, returning undefined`);\n console.error(err);\n}\nfunction renderToString(fn, options) {\n throwInBrowser(renderToString);\n}\nfunction renderToStringAsync(fn, options) {\n throwInBrowser(renderToStringAsync);\n}\nfunction renderToStream(fn, options) {\n throwInBrowser(renderToStream);\n}\nfunction ssr(template, ...nodes) {}\nfunction ssrElement(name, props, children, needsId) {}\nfunction ssrClassList(value) {}\nfunction ssrStyle(value) {}\nfunction ssrAttribute(key, value) {}\nfunction ssrHydrationKey() {}\nfunction resolveSSRNode(node) {}\nfunction escape(html) {}\nfunction ssrSpread(props, isSVG, skipChildren) {}\n\nconst isServer = false;\nconst isDev = false;\nconst SVG_NAMESPACE = \"http://www.w3.org/2000/svg\";\nfunction createElement(tagName, isSVG = false, is = undefined) {\n return isSVG ? document.createElementNS(SVG_NAMESPACE, tagName) : document.createElement(tagName, {\n is\n });\n}\nconst hydrate = (...args) => {\n enableHydration();\n return hydrate$1(...args);\n};\nfunction Portal(props) {\n const {\n useShadow\n } = props,\n marker = document.createTextNode(\"\"),\n mount = () => props.mount || document.body,\n owner = getOwner();\n let content;\n let hydrating = !!sharedConfig.context;\n createEffect(() => {\n if (hydrating) getOwner().user = hydrating = false;\n content || (content = runWithOwner(owner, () => createMemo(() => props.children)));\n const el = mount();\n if (el instanceof HTMLHeadElement) {\n const [clean, setClean] = createSignal(false);\n const cleanup = () => setClean(true);\n createRoot(dispose => insert(el, () => !clean() ? content() : dispose(), null));\n onCleanup(cleanup);\n } else {\n const container = createElement(props.isSVG ? \"g\" : \"div\", props.isSVG),\n renderRoot = useShadow && container.attachShadow ? container.attachShadow({\n mode: \"open\"\n }) : container;\n Object.defineProperty(container, \"_$host\", {\n get() {\n return marker.parentNode;\n },\n configurable: true\n });\n insert(renderRoot, content);\n el.appendChild(container);\n props.ref && props.ref(container);\n onCleanup(() => el.contains(container) && el.removeChild(container));\n }\n }, undefined, {\n render: !hydrating\n });\n return marker;\n}\nfunction createDynamic(component, props) {\n const cached = createMemo(component);\n return createMemo(() => {\n const component = cached();\n switch (typeof component) {\n case \"function\":\n return untrack(() => component(props));\n case \"string\":\n const isSvg = SVGElements.has(component);\n const el = sharedConfig.context ? getNextElement() : createElement(component, isSvg, untrack(() => props.is));\n spread(el, props, isSvg);\n return el;\n }\n });\n}\nfunction Dynamic(props) {\n const [, others] = splitProps(props, [\"component\"]);\n return createDynamic(() => props.component, others);\n}\n\nexport { Aliases, voidFn as Assets, ChildProperties, DOMElements, DelegatedEvents, Dynamic, Hydration, voidFn as HydrationScript, NoHydration, Portal, Properties, RequestContext, SVGElements, SVGNamespace, addEventListener, assign, classList, className, clearDelegatedEvents, createDynamic, delegateEvents, dynamicProperty, escape, voidFn as generateHydrationScript, voidFn as getAssets, getHydrationKey, getNextElement, getNextMarker, getNextMatch, getPropAlias, voidFn as getRequestEvent, hydrate, innerHTML, insert, isDev, isServer, memo, render, renderToStream, renderToString, renderToStringAsync, resolveSSRNode, runHydrationEvents, setAttribute, setAttributeNS, setBoolAttribute, setProperty, setStyleProperty, spread, ssr, ssrAttribute, ssrClassList, ssrElement, ssrHydrationKey, ssrSpread, ssrStyle, style, template, use, voidFn as useAssets };\n","/**\n * Tiny dependency-free Markdown renderer (plain ES module, no build step).\n * Strategy: escape ALL HTML first, then apply a small set of block/inline\n * rules on the escaped text. Output is XSS-safe because raw <,>,& in input\n * can never survive as markup.\n *\n * Blocks: fenced code · headings #–###### · ul/ol incl. one-level nesting &\n * task items · GFM pipe tables (alignment, escaped pipes) · blockquotes ·\n * horizontal rules · paragraphs.\n * Inline: code spans (protected), images, links, bare autolinks, ***bold-\n * italic***, **bold**, __bold__, *em*, _em_, ~~strike~~.\n */\nconst LIST_ITEM = /^(\\s*)([-*+]|\\d+[.)])\\s+(.*)$/;\n\n/** Public entry: escape everything up front, then structure the lines. */\nexport function renderMarkdown(src) {\n return renderEscaped(escapeHtml(src.replace(/\\r\\n/g, \"\\n\")).split(\"\\n\"));\n}\n\n/**\n * Structure already-escaped lines into HTML. Blockquote recursion calls this\n * directly so inner content is never double-escaped.\n */\nfunction renderEscaped(lines) {\n const out = [];\n let i = 0;\n while (i < lines.length) {\n const line = lines[i];\n // fenced code block. The info string may be any non-whitespace run\n // (`js`, `/subject/why-qa`, `text .txt`…) — the old /\\w*/ pattern rejected\n // slash-y pseudo-paths, which made the line fall through to paragraph\n // handling and HANGED the renderer on such chats.\n if (/^```[^\\n]*$/.test(line) && !/^```.+\\`\\`\\`/.test(line)) {\n const buf = [];\n i++;\n while (i < lines.length && !/^```\\s*$/.test(lines[i])) buf.push(lines[i++]);\n i++; // closing fence (may be missing — unclosed fence just runs to EOF)\n out.push(`<pre><code>${buf.join(\"\\n\")}</code></pre>`);\n continue;\n }\n // horizontal rule (before list: *** / --- would otherwise look like items)\n if (/^ {0,3}(?:-{3,}|\\*{3,}|_{3,})\\s*$/.test(line)) {\n out.push(\"<hr>\");\n i++;\n continue;\n }\n // heading (# through ###### → h1–h6)\n const h = line.match(/^(#{1,6})\\s+(.*)$/);\n if (h) {\n out.push(`<h${h[1].length}>${inline(h[2])}</h${h[1].length}>`);\n i++;\n continue;\n }\n // blockquote (recursive → nested quotes/lists/tables all work);\n // escapeHtml turned \">\" into \">\", so match the escaped marker\n if (/^\\s*>/.test(line)) {\n const buf = [];\n while (i < lines.length && /^\\s*>/.test(lines[i])) buf.push(lines[i++].replace(/^\\s*>\\s?/, \"\"));\n out.push(`<blockquote>${renderEscaped(buf)}</blockquote>`);\n continue;\n }\n // table (GFM): header row containing |, then a --- separator row\n if (line.includes(\"|\") && i + 1 < lines.length && isSeparatorRow(lines[i + 1])) {\n const align = splitRow(lines[i + 1]).map((c) =>\n c.startsWith(\":\") && c.endsWith(\":\") ? \"center\" : c.endsWith(\":\") ? \"right\" : \"left\",\n );\n const head = splitRow(line);\n i += 2;\n const rows = [];\n while (i < lines.length && /\\S/.test(lines[i]) && lines[i].includes(\"|\")) {\n rows.push(splitRow(lines[i]));\n i++;\n }\n const cell = (c, idx, tag) => {\n const a = align[idx];\n const style = a && a !== \"left\" ? ` style=\"text-align:${a}\"` : \"\";\n return `<${tag}${style}>${inline(c)}</${tag}>`;\n };\n // A header row of nothing but blank cells is a legal GFM table, and\n // cmark-gfm does render a <thead> for it — but visually it is a bare\n // strip of dark cells and a border above the real content, reading as a\n // stray empty row rather than as column headings. It also happens by\n // accident whenever someone pipes a table out of a tool whose header is\n // empty. So: keep the table, drop the meaningless <thead> entirely.\n // Only when EVERY cell is blank — a table with one real heading still\n // needs its header, and a partially-blank one keeps the blanks so the\n // real columns stay aligned over their data.\n const hasHeader = head.some((c) => c !== \"\");\n out.push(\n `<div class=\"tbl\"><table>` +\n (hasHeader ? `<thead><tr>${head.map((c, k) => cell(c, k, \"th\")).join(\"\")}</tr></thead>` : \"\") +\n `<tbody>${rows.map((r) => `<tr>${r.map((c, k) => cell(c, k, \"td\")).join(\"\")}</tr>`).join(\"\")}</tbody></table></div>`,\n );\n continue;\n }\n // list (ul/ol, task items, one level of nesting via indentation)\n if (LIST_ITEM.test(line)) {\n out.push(parseList(indentOf(line.match(LIST_ITEM)[1])));\n continue;\n }\n // blank line\n if (/^\\s*$/.test(line)) {\n i++;\n continue;\n }\n // paragraph\n //\n // TERMINATION IS THE WHOLE CONTRACT HERE. Every branch in this loop must\n // consume at least one line, or the outer `while` re-reads the same line\n // forever. A line can match a guard ABOVE (which therefore declines it) and\n // still match one of these — \"```js```\" opens a fence but also contains\n // its own closer, so the fence branch skips it, and then the paragraph loop\n // skips it for starting with ```. Nothing consumed it. That hung the whole\n // browser tab, growing `out` by one empty <p> per spin, and it was\n // reachable from ordinary model output: a reply that typed an inline fence\n // (```js```) while streaming.\n //\n // So: if the paragraph is empty and we are still on the line we started\n // from, consume it unconditionally rather than spinning. A stray ``` is\n // better rendered as a paragraph than as a hang.\n const startLine = i;\n const para = [];\n while (\n i < lines.length &&\n !/^\\s*$/.test(lines[i]) &&\n !/^#{1,6}\\s/.test(lines[i]) &&\n !lines[i].startsWith(\"```\") &&\n !/^ {0,3}(?:-{3,}|\\*{3,}|_{3,})\\s*$/.test(lines[i]) &&\n !/^\\s*>/.test(lines[i]) &&\n !LIST_ITEM.test(lines[i]) &&\n !(lines[i].includes(\"|\") && i + 1 < lines.length && isSeparatorRow(lines[i + 1]))\n ) {\n para.push(lines[i++]);\n }\n if (i === startLine) para.push(lines[i++]);\n out.push(`<p>${para.map(inline).join(\"<br>\")}</p>`);\n }\n return out.join(\"\\n\");\n\n function indentOf(ws) {\n return ws.replace(/\\t/g, \" \").length;\n }\n\n /** Consumes list lines from i onward; returns HTML. One nesting level. */\n function parseList(minIndent) {\n let ordered = null;\n const items = [];\n while (i < lines.length) {\n const m = lines[i].match(LIST_ITEM);\n if (!m) break;\n const ind = indentOf(m[1]);\n if (ind < minIndent) break;\n const ol = /^\\d/.test(m[2]);\n if (ordered === null) ordered = ol;\n else if (ol !== ordered) break; // marker type changed → close this list\n i++;\n let body = m[3];\n // folded continuation lines (wrapped text belonging to this item)\n while (\n i < lines.length &&\n /\\S/.test(lines[i]) &&\n !LIST_ITEM.test(lines[i]) &&\n !/^#{1,6}\\s/.test(lines[i]) &&\n!lines[i].startsWith(\"```\") &&\n !/^\\s*>/.test(lines[i])\n ) {\n body += \" \" + lines[i].trim();\n i++;\n }\n // nested list deeper-indented than this item?\n let sub = \"\";\n const n = lines[i]?.match(LIST_ITEM);\n if (n && indentOf(n[1]) > ind) sub = parseList(indentOf(n[1]));\n // task-list checkbox\n const task = body.match(/^\\[( |x|X)\\]\\s+(.*)$/);\n const box = task\n ? `<input type=\"checkbox\" disabled${task[1].toLowerCase() === \"x\" ? \" checked\" : \"\"}> `\n : \"\";\n items.push(`<li>${box}${inline(task ? task[2] : body)}${sub}</li>`);\n }\n return ordered ? `<ol>${items.join(\"\")}</ol>` : `<ul>${items.join(\"\")}</ul>`;\n }\n\n function inline(s) {\n // protect code spans from further processing. The placeholder uses a\n // private-use char + sentinel pair; literal NULs in the source were a\n // collision (user text containing \\u0000<digits>\\u0000 swapped in another\n // span's HTML). escapeHtml keeps them, so strip before placeholdering.\n const codes = [];\n s = s.replace(/\\u0000/g, \"\");\n s = s.replace(/`([^`]+)`/g, (_, c) => {\n codes.push(`<code>${c}</code>`);\n return `\\ue000${codes.length - 1}\\uE001`;\n });\n // images before links\n s = s.replace(\n /!\\[([^\\]]*)\\]\\((https?:\\/\\/[^)\\s]+)(?:\\s+"[^)]*")?\\)/g,\n '<img src=\"$2\" alt=\"$1\" loading=\"lazy\">',\n );\n s = s.replace(\n /\\[([^\\]]+)\\]\\((https?:\\/\\/[^)\\s]+)(?:\\s+"[^)]*")?\\)/g,\n '<a href=\"$2\" rel=\"noopener noreferrer\" target=\"_blank\">$1</a>',\n );\n // bare autolinks (skip anything already inside an attribute/text)\n s = s.replace(\n /(?<![\"'=\\w])(https?:\\/\\/[^\\s<>\"')\\]]*[^\\s<>\"')\\].,;:!?\"')\\]])/g,\n '<a href=\"$1\">$1</a>',\n );\n // emphasis — triple first, then bold, then italic; permissive about inner\n // spaces so half-written streaming text and \"** spaced **\" both work\n s = s.replace(/\\*\\*\\*([\\s\\S]+?)\\*\\*\\*/g, \"<strong><em>$1</em></strong>\");\n s = s.replace(/\\*\\*([\\s\\S]+?)\\*\\*/g, \"<strong>$1</strong>\");\n s = s.replace(/(^|[^\\w])__(?=\\S)([\\s\\S]*?\\S)__(?!\\w)/g, \"$1<strong>$2</strong>\");\n s = s.replace(/(^|[^\\w*])\\*(?!\\s)([^*\\n]+?)\\*(?![\\w*])/g, \"$1<em>$2</em>\");\n s = s.replace(/(^|[^\\w])_(?!\\s)([^_\\n]+?)_(?!\\w)/g, \"$1<em>$2</em>\");\n s = s.replace(/~~([\\s\\S]+?)~~/g, \"<del>$1</del>\");\n // eslint-disable-next-line no-control-regex\n return s.replace(/\\ue000(\\d+)\\ue001/g, (_, k) => codes[+k] ?? \"\");\n }\n}\n\n/**\n * Split a table row into cells.\n *\n * A pipe is a cell boundary only when it is NOT:\n * - escaped as `\\|` → a literal pipe, and\n * - inside a CODE SPAN, where it is ordinary text.\n *\n * The code-span rule deliberately mirrors `inline()`'s `/`([^`]+)`/g exactly.\n * The two must agree, or a cell is split at a place the inline renderer treats\n * as code — which is how `| `N| ` gutter |` came out as four columns instead of\n * two, and how `` `a|b` `` lost its code formatting. GFM agrees: inside a code\n * span a pipe is content, and the only escape needed is `\\|`.\n *\n * Note the escaped pipe is also suppressed INSIDE a span: `` `a\\|b` `` is the\n * documented way to write a pipe in code, and the backslash there is the\n * author's, not markup.\n */\nfunction splitRow(line) {\n let s = line.trim();\n if (s.startsWith(\"|\")) s = s.slice(1);\n const cells = [];\n let cur = \"\";\n for (let k = 0; k < s.length; k++) {\n const ch = s[k];\n if (ch === \"\\\\\" && s[k + 1] === \"|\") {\n // a literal pipe, inside a span or out\n cur += \"|\";\n k++;\n continue;\n }\n if (ch === \"`\") {\n // Only enter a span if it actually CLOSES. `inline()` uses\n // /`([^`]+)`/g, so an unclosed backtick is literal text THERE — if we\n // treated it as a span here, this row would keep every pipe to its end\n // and merge columns the inline renderer does consider separate. A\n // half-open span is the exact disagreement this fix exists to remove,\n // so a span must be complete on BOTH ends before any pipe is\n // suppressed.\n const close = s.indexOf(\"`\", k + 1);\n if (close !== -1) {\n cur += s.slice(k, close + 1); // the span verbatim, pipes included\n k = close;\n continue;\n }\n cur += ch;\n continue;\n }\n if (ch === \"|\" && k === s.length - 1) break; // trailing pipe\n if (ch === \"|\") {\n cells.push(cur.trim());\n cur = \"\";\n continue;\n }\n cur += ch;\n }\n cells.push(cur.trim());\n return cells.filter((c, idx) => !(c === \"\" && idx === cells.length - 1 && s.endsWith(\"|\")));\n}\n\n/** `| --- | :--: |` — the second row of a GFM table. */\nfunction isSeparatorRow(line) {\n const s = line.trim();\n if (!s.includes(\"|\") || !s.includes(\"-\")) return false;\n const cells = splitRow(s);\n return cells.every((c) => /^:?-+:?$/.test(c)) && cells.some((c) => c !== \"\");\n}\n\nfunction escapeHtml(s) {\n return s\n .replace(/&/g, \"&\")\n .replace(/</g, \"<\")\n .replace(/>/g, \">\")\n .replace(/\"/g, \""\");\n}\n","/**\n * Formatting helpers shared by the chat/tool timeline.\n *\n * Kept in its own dependency-free module (no solid-js, no DOM) so they can be\n * unit-tested directly under `node --test`, the same way md.js is.\n */\n\n/**\n * Milliseconds → a duration a human reads at a glance (#24).\n *\n * Tool rows used to interpolate raw `${durationMs}ms`, so a seven-minute build\n * rendered as \"431113ms · timeout 3300s\" — the exact complaint from the issue.\n * Sub-second work keeps sub-second precision (the common case), seconds take\n * over quickly, and hours only appear when they are real.\n *\n * A missing value renders as \"?\" — the same unknown the old template produced\n * via `?? \"?\"`, so an event without timing data still looks deliberate.\n */\nexport function fmtDur(ms: number | undefined | null): string {\n if (ms === undefined || ms === null || !Number.isFinite(ms)) return \"?\";\n const n = Math.max(0, ms);\n if (n < 1_000) return `${Math.round(n)}ms`;\n if (n < 60_000) return `${(n / 1000).toFixed(1)}s`;\n if (n < 3_600_000) {\n const m = Math.floor(n / 60_000);\n const s = Math.round((n % 60_000) / 1000);\n return s ? `${m}m ${s}s` : `${m}m`;\n }\n const h = Math.floor(n / 3_600_000);\n const m = Math.round((n % 3_600_000) / 60_000);\n return m ? `${h}h ${m}m` : `${h}h`;\n}","/**\n * Live-streaming buffer bookkeeping.\n *\n * The UI keeps ONE in-progress assistant buffer per agent, so several agents\n * can stream at once without clobbering each other. What goes wrong is not the\n * keying — it is WHEN a buffer is dropped.\n *\n * #40: an agent's `status` does not change between tool calls within one round,\n * so a finished reply's buffer was never cleared. The feed refresh only drops\n * it once a persisted assistant message matches its text, and the\n * `status !== \"running\"` short-circuit kept it alive until then — leaving the\n * previous turn's text on screen under the streaming…/writing… chrome.\n *\n * These helpers are pure and dependency-free so they can be unit-tested under\n * `node --test` without pulling in solid-js.\n */\n\nexport interface LiveBuf {\n text: string;\n reasoning: string;\n at: number;\n}\n\n/**\n * Apply a streaming delta for one agent, returning the next map.\n *\n * A delta never touches another agent's buffer — that per-agent isolation is\n * the whole point of the map (an earlier single-slot design made every session\n * switch clobber the visible reply).\n */\nexport function applyDelta(\n prev: Map<string, LiveBuf>,\n agentId: string,\n patch: { text?: string; reasoning?: string },\n now = Date.now(),\n): Map<string, LiveBuf> {\n const m = new Map(prev);\n m.set(agentId, {\n text: patch.text ?? \"\",\n reasoning: patch.reasoning ?? \"\",\n at: now,\n });\n return m;\n}\n\n/**\n * Clear one agent's buffer, returning the SAME map when there is nothing to\n * clear. Identity matters: Solid's reference-stabilization skips re-rendering\n * every expression bound to unchanged state, and returning a fresh Map for a\n * no-op would defeat it.\n */\nexport function clearLive(prev: Map<string, LiveBuf>, agentId: string): Map<string, LiveBuf> {\n if (!prev.has(agentId)) return prev;\n const m = new Map(prev);\n m.delete(agentId);\n return m;\n}\n\n/** True when a logged event marks the start of a NEW LLM turn for an agent. */\nexport function isTurnBoundary(ev: unknown): boolean {\n const e = ev as { type?: string; data?: { detail?: string } } | null;\n return e?.type === \"state\" && e.data?.detail === \"llm turn start\";\n}\n\n/**\n * Should the live bubble be dropped because the log now covers what it shows?\n *\n * `status !== \"running\"` means the agent is no longer mid-reply, so the buffer\n * is definitionally stale. Otherwise the log must contain an assistant message\n * whose text is exactly what the bubble is showing.\n */\nexport function isCoveredByLog(\n buf: LiveBuf | null | undefined,\n events: { type?: string; data?: { role?: string; content?: string } }[],\n status: string | undefined,\n): boolean {\n if (!buf) return false;\n if (!buf.text) return status !== \"running\";\n if (status !== \"running\") return true;\n const body = buf.text.trim();\n return events.some(\n (e) =>\n e.type === \"message\" &&\n e.data?.role === \"assistant\" &&\n String(e.data.content ?? \"\").trim() === body,\n );\n}\n\n/**\n * Is this row the SELECTED agent's own in-flight work?\n *\n * #40 — \"agent2's message is agent1's content, with a writing cursor on it.\"\n * The timeline marked every row live based on the selected agent's status\n * alone, so a row could wear another actor's \"writing…\" / \"running…\" chrome.\n *\n * Two kinds of row can do that, and both are real:\n *\n * 1. MIRRORED SUB-AGENT ACTIVITY. The master appends a child's events into\n * the parent's own log as `sub` rows, which the feed expands into\n * normal-looking rows tagged with `actor` (see the expansion in App.tsx).\n * Those rows are the CHILD's work: they belong in the parent's feed for\n * context, but the parent going `running` says nothing about whether the\n * child is still going, so painting them as the parent's live work is\n * simply wrong.\n * 2. A TOOL CALL whose result never arrived. A row with no result and a live\n * agent reads as \"in flight\"; once the agent is idle it is simply stale,\n * and the existing `staleDone` guard in ToolRow already covers that.\n *\n * A row with an `actor` is therefore never the selected agent's own work.\n * Everything else — the parent's own messages, tool calls and results — is.\n */\nexport function isOwnLiveWork(row: { data?: { actor?: unknown } } | null | undefined): boolean {\n if (!row) return false;\n const actor = row.data?.actor;\n return !(typeof actor === \"string\" && actor.length > 0);\n}","/**\n * Timeline ordering for queued (pending) user messages.\n *\n * #37: \"pending messages should appear at the BOTTOM of the timeline, because\n * they are sent to the LLM after the messages already on the timeline.\"\n *\n * A pending message has NOT been delivered to the model yet — it is queued\n * behind whatever the agent is doing. The timeline read it as if it had already\n * happened (its log row carries the seq it was TYPED at), so the operator saw\n * their queued message sitting above agent output that came after it.\n *\n * The UI already re-sequences a DELIVERED prompt down to its\n * prompt-delivered note for the same reason (\"read in true context order\").\n * Undelivered echoes need the same treatment: they belong after everything the\n * log already contains.\n *\n * Pure and dependency-free so it is unit-testable under `node --test`.\n */\n\nexport interface SeqRow {\n seq: number;\n}\n\n/**\n * Place echoes (pending, undelivered user messages) below every settled row,\n * preserving their own send order.\n *\n * `visible` rows keep their seq. Each echo is given a seq above the log's\n * maximum, in send order, so the block reads top-down the way the operator\n * typed it. The input rows are NOT mutated — callers hand us rows they still\n * own, and mutating them here would corrupt the event cache.\n */\nexport function placeEchoesBelow<T extends SeqRow>(visible: T[], echoes: T[]): T[] {\n if (!echoes.length) return visible;\n const maxSeq = visible.reduce((m, e) => Math.max(m, e.seq), 0);\n const placed = echoes.map((e, i) => ({ ...e, seq: maxSeq + 1 + i }));\n return [...visible, ...placed];\n}\n\n/**\n * Re-sequence a DELIVERED user prompt's log row down to its delivery note, so\n * it sits where the model actually received it rather than where it was typed.\n */\nexport function resequenceToDelivery<T extends SeqRow>(row: T, noteSeq: number | undefined): T {\n if (noteSeq === undefined || noteSeq <= row.seq) return row;\n return { ...row, seq: noteSeq };\n}\n\n/**\n * Where a not-yet-delivered message will eventually land: after everything the\n * log holds now. Used by the UI to keep the echo pinned below the last row\n * without needing the log's max seq directly.\n */\nexport function pendingFloor(visible: SeqRow[]): number {\n return visible.reduce((m, e) => Math.max(m, e.seq), 0) + 1;\n}","/**\n * Timeline rendering of the goal / completion-audit lifecycle.\n *\n * #41: \"finish → audit reject → continue is hard to follow on the timeline.\"\n *\n * The audit emits four distinct `goal` events (status → audit-started → audit\n * → status), but the renderer collapsed every one of them into\n *\n * 🎯 goal <event>: <d.text ?? \"\">\n *\n * so `audit-started` and `audit` rendered as bare labels with an EMPTY body —\n * the verification contract and the verdict/feedback were dropped entirely.\n * Worse, `marked done` is logged before the audit that may reject it, so the\n * timeline read as if the goal had completed when it had not.\n *\n * Pure and dependency-free so it is unit-testable under `node --test`.\n */\n\nexport type AuditPhase = \"status\" | \"audit-started\" | \"audit\" | \"audit-failed\" | \"other\";\n\nexport interface GoalEventData {\n event?: string;\n status?: string;\n verify?: string;\n verdict?: string;\n feedback?: string;\n detail?: string;\n text?: string;\n}\n\nexport function auditPhase(d: GoalEventData): AuditPhase {\n const e = d.event;\n if (e === \"status\" || e === \"audit-started\" || e === \"audit\" || e === \"audit-failed\") return e;\n return \"other\";\n}\n\n/** Is this goal event part of the finish→audit lifecycle worth calling out? */\nexport function isAuditLifecycle(d: GoalEventData): boolean {\n return auditPhase(d) !== \"other\";\n}\n\nexport interface GoalLine {\n /** short label for the divider row */\n label: string;\n /**\n * The detail body — may be EMPTY when there is genuinely nothing to show.\n *\n * #41 required every branch to carry a non-empty detail, because the old\n * template produced a bare \"🎯 goal audit:\" with nothing after it. #51 is the\n * exception that proves the rule: a verdict the auditor gave NO reason for\n * must render as a label alone, because a card reading \"(no detail)\" is the\n * absence of a finding dressed up as one. `hasCard` says which case this is,\n * so a consumer never has to guess from an empty string.\n */\n detail: string;\n /** \"ok\" | \"warn\" | \"err\" | \"\" — drives the accent colour */\n tone: \"ok\" | \"warn\" | \"err\" | \"\";\n /** render the body as markdown rather than plain text */\n markdown: boolean;\n /** true when `detail` is real content that deserves its own card */\n hasCard: boolean;\n}\n\n/**\n * True when this text is one of the harness's own \"the model said nothing\n * useful\" placeholders rather than real feedback.\n *\n * The harness stored the literal \"(no detail)\" when the auditor returned no\n * usable text, and the UI then drew it as a card as if it were the auditor's\n * finding. The report called that card ちょっと気持ち悪い — and rightly: it is a\n * card whose entire content is the absence of content. Anything that is empty,\n * or one of these placeholders, renders as no card at all (#51).\n */\nexport function isPlaceholderDetail(s: string): boolean {\n const t = s.trim().toLowerCase();\n return t === \"\" || t === \"(no detail)\" || t === \"no detail\" || t === \"(none)\" || t === \"(empty)\";\n}\n\n/**\n * The detail to render, or \"\" when it would only be a placeholder.\n *\n * Exported so the renderer and this module agree on one rule — the bug was two\n * places each deciding independently what \"no detail\" meant.\n */\nexport function cardDetail(raw: string, fallback: string): string {\n const t = String(raw ?? \"\").trim();\n if (!isPlaceholderDetail(t)) return t;\n return isPlaceholderDetail(fallback) ? \"\" : fallback;\n}\n\n/**\n * Turn one `goal` event into a labelled, COLOURED line that says what actually\n * happened. Every branch carries a non-empty detail, which is the bug this\n * fixes: the old template produced `🎯 goal audit:` with nothing after it.\n */\nexport function goalLine(d: GoalEventData): GoalLine {\n switch (auditPhase(d)) {\n case \"audit-started\":\n return {\n label: \"🔍 completion audit started\",\n detail: String(d.verify ?? \"\").trim() || \"checking the verification contract…\",\n tone: \"\",\n markdown: false,\n hasCard: true,\n };\n case \"audit\": {\n const verdictHasReason = !isPlaceholderDetail(String(d.feedback ?? \"\"));\n return d.verdict === \"approved\"\n ? {\n label: \"✅ audit: approved\",\n // an empty verdict body is a LABEL, not a card (#51): the auditor\n // approved without giving a reason, and \"(no detail)\" as a card\n // looked like a finding when it was the absence of one\n detail: cardDetail(d.feedback ?? \"\", \"\"),\n tone: \"ok\",\n markdown: true,\n hasCard: verdictHasReason,\n }\n : {\n label: \"⚠ audit: changes required\",\n detail: cardDetail(d.feedback ?? \"\", \"\"),\n tone: \"warn\",\n markdown: true,\n hasCard: verdictHasReason,\n };\n }\n case \"audit-failed\":\n return {\n label: \"🔍 audit unavailable — finish accepted\",\n detail: String(d.detail ?? \"\").trim() || \"the auditor could not be reached\",\n tone: \"err\",\n markdown: false,\n hasCard: true,\n };\n case \"status\": {\n const s = String(d.status ?? \"\").trim();\n // a status event with no status value is still a status event — never\n // fall through to a bare label (#41)\n if (!s)\n return {\n label: \"🎯 goal status updated\",\n detail: String(d.text ?? \"\").trim() || \"no status recorded\",\n tone: \"\",\n markdown: false,\n hasCard: true,\n };\n // \"done\" is logged BEFORE the audit runs, so it must not read as final\n if (s === \"done\")\n return {\n label: \"🏁 finish claimed — pending audit\",\n detail: \"the agent called finish(goalComplete=true); the verification contract is now being audited\",\n tone: \"\",\n markdown: false,\n hasCard: true,\n };\n if (s === \"active\")\n return {\n label: \"▶ goal reopened\",\n detail: \"the audit rejected the finish — work continues on the same goal\",\n tone: \"warn\",\n markdown: false,\n hasCard: true,\n };\n return {\n label: `🎯 goal ${s || \"updated\"}`,\n detail: String(d.text ?? \"\").trim(),\n tone: \"\",\n markdown: false,\n hasCard: true,\n };\n }\n default: {\n const what = String(d.text ?? \"\").trim();\n const name = String(d.event ?? \"\").trim();\n return {\n label: name ? `🎯 goal ${name}` : \"🎯 goal updated\",\n // #41: never render a bare label with nothing after it — that was the\n // exact shape of the reported bug. An unknown event with no text still\n // gets a body, but it must SAY something rather than read as a verdict\n // that was never delivered (#51).\n detail: what || `the \"${name || \"goal\"}\" event carried no further detail`,\n tone: \"\",\n markdown: false,\n hasCard: true,\n };\n }\n }\n}","/**\n * How a shell invocation ENDED, as shown on the timeline.\n *\n * #46: \"a timed-out bash never reads as complete on the timeline.\"\n *\n * The bash summary line is built from the tool_result's duration and the\n * requested timeout — so a command killed by the timeout rendered as\n * `300ms · timeout 1s`. That reads exactly like a fast SUCCESS: nothing on the\n * summary line said it had been killed, and the row kept its normal (unmarked)\n * appearance. The only hint was a `· FAILED` buried in the body's result block,\n * which is below the fold for a long-running command.\n *\n * The three terminal shapes come straight from runShell():\n * - `TIMEOUT after <n>ms. …` the timeout fired and the group was killed\n * - `ABORTED (harness shutdown).…` the operator stopped the agent\n * - anything else a normal exit (ok, or `exit=<code>`)\n */\n\n/** Where a tool_result's text came out; null when it is not a shell result. */\nexport type ShellOutcome = \"timeout\" | \"aborted\" | \"exit\" | \"ok\" | \"empty\";\n\nexport function shellOutcome(\n ok: boolean | undefined,\n result: string | null | undefined,\n): ShellOutcome {\n const text = String(result ?? \"\");\n if (/^TIMEOUT after\\b/.test(text)) return \"timeout\";\n if (/^ABORTED\\b/.test(text)) return \"aborted\";\n if (/^exit=\\d+/.test(text)) return \"exit\";\n if (ok === false) return \"exit\";\n return text.trim() ? \"ok\" : \"empty\";\n}\n\n/** True only when the harness killed the command rather than it exiting. */\nexport function wasKilled(outcome: ShellOutcome): boolean {\n return outcome === \"timeout\" || outcome === \"aborted\";\n}\n\n/**\n * The marker appended to a tool row's summary line.\n *\n * `· FAILED` alone is deliberately kept for non-zero exits, so the common\n * failure path reads exactly as before; only the KILLED cases — which used to\n * look like successes — get their own wording.\n */\nexport function outcomeMarker(outcome: ShellOutcome): string {\n switch (outcome) {\n case \"timeout\":\n return \" · TIMED OUT\";\n case \"aborted\":\n return \" · ABORTED\";\n case \"exit\":\n return \" · FAILED\";\n default:\n return \"\";\n }\n}\n\n/**\n * The full summary hint for a shell row, e.g.\n * `7.2m · timeout 3300s` or `300ms · timeout 1s · TIMED OUT`.\n */\nexport function shellHint(opts: {\n outcome: ShellOutcome;\n durationMs: number | undefined;\n timeoutMs: number | undefined;\n fmtDur: (ms: number | undefined) => string;\n}): string {\n const parts: string[] = [];\n if (opts.outcome !== \"empty\") parts.push(opts.fmtDur(opts.durationMs));\n if (opts.timeoutMs) parts.push(`timeout ${Math.round(opts.timeoutMs / 1000)}s`);\n const marker = outcomeMarker(opts.outcome);\n if (marker) parts.push(marker.trim());\n return parts.join(\" · \");\n}","/**\n * Sidebar tree layout — the pure part, extracted so it can be unit-tested.\n *\n * The sidebar interleaves three hierarchies and the ORDER they are emitted in\n * is the whole UX. Extracting this keeps the rule testable without a DOM\n * (happy-dom does no layout) and without pulling solid-js into `node --test`,\n * matching the split already used by live-buffer.ts and timeline-order.ts.\n *\n * Two group levels exist:\n * - WORKSPACE (#18): a header wherever the working directory changes, so\n * unrelated projects stop interleaving in one undifferentiated list;\n * - CHAT: each TOP-LEVEL chat is its own group, so two chats that happen to\n * share a directory stay independently collapsible.\n *\n * #58 — the CHAT level is emitted ONLY when the directory holds more than one\n * top-level chat. Emitted unconditionally, the common case (one chat per\n * project) rendered three rows saying the same thing — the directory header,\n * the chat header restating it, then the chat itself. Dropping the redundant\n * level is safe precisely because the workspace header is already keyed on\n * the directory, which in the solo case IS that chat's group.\n */\n\nexport interface TreeAgent {\n id: string;\n parent?: string;\n workspace: string;\n workspaceMissing?: boolean;\n}\n\nexport interface TreeRow<T extends TreeAgent = TreeAgent> {\n a: T;\n depth: number;\n}\n\n/** A sidebar row: either a header or a chat. */\nexport interface SidebarRow<T extends TreeAgent = TreeAgent> {\n a: T;\n depth: number;\n /** the working directory this header names */\n wsHeader?: string;\n /** the `chat:<id>` group this header collapses */\n chatHeader?: string;\n /** a HEADER row: renders its caret + label, never the chat itself */\n headerOnly?: boolean;\n wsCollapsedGroup?: boolean;\n chatCollapsedGroup?: boolean;\n /**\n * The key that is ACTUALLY holding this directory collapsed, when it is not\n * the header's own `ws:<dir>` key.\n *\n * A solo chat used to have its own `chat:<id>` header, so a collapse from\n * before #58 is persisted under that key while the header is now the\n * directory's. The row must report it so the click handler can clear it —\n * otherwise the chat stays hidden and the caret keeps pointing \"open\", with\n * no control anywhere that can bring it back.\n */\n collapsedVia?: string;\n}\n\n/**\n * Flatten the agent forest into display order: each agent followed by its\n * sub-agents, newest sub first (a freshly spawned agent is what you want to\n * see), with collapsed subtrees omitted entirely.\n */\n/**\n * Flatten the agent forest into display order: each agent followed by its\n * sub-agents, newest sub first (a freshly spawned agent is what you want to\n * see), with collapsed subtrees omitted entirely.\n *\n * `collapsed` holds agent ids whose SUBTREE is hidden. A top-level chat's row\n * is collapsible too — it is a group in its own right, because its sub-agents\n * hang beneath it — so the caller passes the chat group keys as well and both\n * kinds of collapse end up here, in one place.\n */\nexport function treeRowsOf<T extends TreeAgent>(\n agents: readonly T[],\n collapsedSubs: ReadonlySet<string> = new Set(),\n hideGhosts = false,\n collapsedChats: ReadonlySet<string> = new Set(),\n): TreeRow<T>[] {\n // #81: the ghost filter used to drop ghost sessions outright, BEFORE the\n // parent-presence check below. A ghost PARENT with a live CHILD therefore\n // orphaned that child: it became a root, and the directory grouping then put\n // it under the ghost's directory as a separate group at the BOTTOM of the\n // list, separated from everything it belongs with. That is the reported\n // \"a session that has sub-agents shows none of them\".\n //\n // So a ghost is only dropped when nothing visible hangs under it. A ghost that\n // still has live descendants stays in the list as the anchor they need — it is\n // exactly the structure 👻 is meant to hide, but hiding the parent hides the\n // children too.\n const list = hideGhosts\n ? agents.filter((a) => {\n if (!a.workspaceMissing) return true;\n // keep a ghost if anything NOT hidden descends from it\n const stack = [a.id];\n const seenIds = new Set<string>();\n while (stack.length) {\n const id = stack.pop()!;\n if (seenIds.has(id)) continue;\n seenIds.add(id);\n for (const c of agents) if (c.parent === id && !seenIds.has(c.id)) stack.push(c.id);\n }\n // if every descendant is also a ghost, this ghost can go safely\n for (const id of seenIds) {\n const d = agents.find((x) => x.id === id);\n if (d && !d.workspaceMissing) return true; // a live descendant needs this anchor\n }\n return false;\n })\n : agents;\n const byParent = new Map<string, T[]>();\n const roots: T[] = [];\n for (const a of list) {\n const isSub = a.parent && list.some((p) => p.id === a.parent);\n if (isSub) {\n // newest sub first — a freshly spawned agent is what you want to see\n if (!byParent.has(a.parent!)) byParent.set(a.parent!, []);\n byParent.get(a.parent!)!.unshift(a);\n } else roots.push(a);\n }\n const rows: TreeRow<T>[] = [];\n const walk = (nodes: T[], depth: number) => {\n for (const a of nodes) {\n // A collapsed TOP-LEVEL chat still contributes its OWN row (so the caret\n // on it can bring the chat back) but NOT its sub-agents, which are what\n // the collapse actually hides. Dropping the row too is what strands a\n // chat: with the `chat:<id>` header gone, nothing else on screen controls\n // it and the stored key is never cleared.\n //\n // #81: this used to `continue`, which emitted the row here AND skipped the\n // recursion — while sidebarRowsOf ALSO emits the row. So the chat appeared\n // once (fine) but nothing marked it collapsed and, more importantly, the\n // recursion into its children was skipped for a reason that had nothing to\n // do with them. The row is emitted once, here, and the collapse simply\n // stops DESCENDING — the sub-agents stay in the tree, hidden under their\n // parent by sidebarRowsOf, which is what the 🧩 count has always implied.\n const chatOff = depth === 0 && collapsedChats.has(chatGroupKeyOf(list, a));\n rows.push({ a, depth });\n if (chatOff) continue;\n const kids = byParent.get(a.id);\n if (kids?.length && !collapsedSubs.has(a.id)) walk(kids, depth + 1);\n }\n };\n // #62: a workspace header is only meaningful if a directory's chats are\n // CONTIGUOUS. Roots arrive in whatever order the server sent them, so a chat\n // created later (teapot-7) landed after another project's group and split\n // /p/teapot into two sections under the same header — the sidebar read as\n // three projects where there were two, and the count badge then contradicted\n // the rows beneath it.\n //\n // So group the roots by directory first. Directories keep first-seen order,\n // so the sidebar stays stable and predictable (sorting by name would reshuffle\n // everything whenever a project was added), and each group's chats keep their\n // own relative order.\n const groupKeys: string[] = [];\n const groups = new Map<string, T[]>();\n for (const a of roots) {\n // #81: an orphaned sub-agent (parent not in `list`) is handled in the\n // dedicated pass below, which can resolve a workspace for it. Grouping it\n // here as well would emit it twice.\n if (a.parent) continue;\n const ws = workspaceOf(list, a.id);\n const g = groups.get(ws);\n if (g) g.push(a);\n else {\n groups.set(ws, [a]);\n groupKeys.push(ws);\n }\n }\n // #81: a sub-agent whose parent is NOT in `list` is treated as a ROOT, and\n // the grouping above then emits it BEFORE any header — so it rendered as a\n // bare row outside its project, with nothing above it. Two real ways that\n // happens: 👻 (hideGhosts) filters the list BEFORE the parent-presence check,\n // and removing a parent deletes it without reparenting its children.\n //\n // The 🧩 badge counts against `agents()`, not this list, so an orphan was\n // counted but not displayed — the badge and the tree disagreed, which is the\n // reported symptom: a session that HAS sub-agents showing none of them.\n //\n // So an orphan is grouped under its parent's DIRECTORY (workspaceOf walks up\n // through the missing parent), giving it the header it belongs to.\n //\n // An orphan with no resolvable directory gets a synthetic group rather than\n // being dropped: #81 was \"a session that HAS sub-agents shows none of them\",\n // and grouping silently is how it hid. These agents have no project to belong\n // to, so they are collected under one, which keeps them listed and keeps every\n // project group homogeneous — a header for them is honest (\"no workspace\")\n // rather than a bare row floating above the list.\n const ORPHANS = \"\";\n for (const a of roots) {\n if (!a.parent) continue;\n const ws = workspaceOf(agents, a.id) || ORPHANS;\n const g = groups.get(ws);\n if (g) g.push(a);\n else {\n groups.set(ws, [a]);\n groupKeys.push(ws);\n }\n }\n\n for (const ws of groupKeys) walk(groups.get(ws)!, 0);\n return rows;\n}\n\n/**\n * The directory an agent belongs to; a sub-agent inherits its parent's.\n *\n * #81: an ORPHANED sub-agent — one whose parent is not in the list, which\n * happens when 👻 (hideGhosts) filters the parent out or a parent is removed\n * without reparenting — used to resolve to `\"\"`, because the walk stops at an\n * id it cannot find. That put it outside every group: no header above it, and\n * no project. Its 🧩 badge still counted (that asks `agents()`), so the badge\n * said 4 and the tree showed none.\n *\n * So when the parent cannot be resolved, fall back to this agent's OWN\n * declared workspace. Many sub-agents carry one; and where it is empty too,\n * the row still renders (just ungrouped) rather than vanishing.\n */\nexport function workspaceOf(agents: readonly TreeAgent[], id: string, seen = new Set<string>()): string {\n const a = agents.find((x) => x.id === id);\n if (!a) return \"\";\n if (!a.parent) return a.workspace || \"\";\n if (seen.has(id)) return a.workspace || \"\"; // cycle guard\n seen.add(id);\n const parentWs = workspaceOf(agents, a.parent, seen);\n if (parentWs) return parentWs;\n // parent unresolvable — use our own workspace rather than nothing\n return a.workspace || \"\";\n}\n\n/** The group a chat collapses under — resolved to its TOP-LEVEL ancestor. */\nexport function chatGroupKeyOf(agents: readonly TreeAgent[], a: TreeAgent): string {\n let id = a.id;\n const seen = new Set<string>();\n for (;;) {\n const cur = agents.find((x) => x.id === id);\n if (!cur?.parent || seen.has(id)) break;\n seen.add(id);\n id = cur.parent;\n }\n return `chat:${id || a.id}`;\n}\n\n/**\n * How many TOP-LEVEL chats sit in each workspace.\n *\n * Sub-agents are excluded: one hangs under its parent's group, and counting it\n * would make a directory holding a single chat look like it held several —\n * which under #58 would wrongly keep the redundant chat header alive.\n */\nexport function wsChatCountsOf(agents: readonly TreeAgent[]): Map<string, number> {\n const counts = new Map<string, number>();\n for (const a of agents) {\n if (a.parent) continue; // a sub-agent is part of its parent's group\n const ws = workspaceOf(agents, a.id);\n if (!ws) continue;\n counts.set(ws, (counts.get(ws) ?? 0) + 1);\n }\n return counts;\n}\n\n/**\n * Annotate the tree with its group headers, dropping collapsed members.\n *\n * `collapsed` holds the persisted collapse keys: `ws:<dir>` for a directory\n * and `chat:<id>` for a single top-level chat.\n */\nexport function sidebarRowsOf<T extends TreeAgent>(\n agents: readonly T[],\n rows: readonly TreeRow<T>[],\n collapsed: ReadonlySet<string> = new Set(),\n): SidebarRow<T>[] {\n const out: SidebarRow<T>[] = [];\n let lastWs: string | null = null;\n for (const r of rows) {\n const ws = workspaceOf(agents, r.a.id);\n // A chat with no working directory has nothing to group by, so it gets no\n // header at all rather than one labelled with the empty string.\n if (!ws) {\n out.push({ a: r.a, depth: r.depth });\n continue;\n }\n // ONE header level: the working directory (#18).\n //\n // There used to be a second level — a `chat:<id>` header per top-level chat\n // — so a directory holding six chats rendered thirteen rows:\n //\n // ▾ TEAPOT\n // ▾ teapot\n // teapot <- same name again\n //\n // The chat level existed to make each top-level chat independently\n // collapsible, and that ability does not need its own row: a top-level chat\n // IS an agent row, and its sub-agents already hang beneath it. So the row\n // itself carries the collapse caret, exactly as a sub-agent's does, and\n // `chat:<id>` remains the group key so an old collapse still applies.\n if (ws !== lastWs) {\n lastWs = ws;\n out.push({\n a: r.a,\n depth: 0,\n headerOnly: true,\n wsHeader: ws,\n wsCollapsedGroup: collapsed.has(`ws:${ws}`),\n });\n }\n if (collapsed.has(`ws:${ws}`)) continue;\n // A collapsed CHAT keeps a row. With the `chat:<id>` header gone, that row\n // carries the caret — so hiding the row too would leave the chat\n // permanently unreachable: no header to click, no row to click, and the\n // stored key is never cleared. This is the strand-a-chat bug, and the\n // header used to be what prevented it.\n //\n // The row is marked so the UI can show it as collapsed (▸, dimmed) rather\n // than as a normal chat, and its sub-agents stay hidden.\n if (collapsed.has(chatGroupKeyOf(agents, r.a))) {\n out.push({ a: r.a, depth: r.depth, chatCollapsedGroup: true });\n continue;\n }\n out.push({ a: r.a, depth: r.depth });\n }\n return out;\n}\n","/**\n * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n *\n * Originally forked from (with the author's permission):\n * Fabrice Bellard's javascript vt100 for jslinux:\n * http://bellard.org/jslinux/\n * Copyright (c) 2011 Fabrice Bellard\n */\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar zs=Object.defineProperty;var Rl=Object.getOwnPropertyDescriptor;var Ll=(s,t)=>{for(var e in t)zs(s,e,{get:t[e],enumerable:!0})};var M=(s,t,e,i)=>{for(var r=i>1?void 0:i?Rl(t,e):t,n=s.length-1,o;n>=0;n--)(o=s[n])&&(r=(i?o(t,e,r):o(r))||r);return i&&r&&zs(t,e,r),r},S=(s,t)=>(e,i)=>t(e,i,s);var Gs=\"Terminal input\",mi={get:()=>Gs,set:s=>Gs=s},$s=\"Too much output to announce, navigate to rows manually to read\",_i={get:()=>$s,set:s=>$s=s};function Al(s){return s.replace(/\\r?\\n/g,\"\\r\")}function kl(s,t){return t?\"\\x1B[200~\"+s+\"\\x1B[201~\":s}function Vs(s,t){s.clipboardData&&s.clipboardData.setData(\"text/plain\",t.selectionText),s.preventDefault()}function qs(s,t,e,i){if(s.stopPropagation(),s.clipboardData){let r=s.clipboardData.getData(\"text/plain\");Cn(r,t,e,i)}}function Cn(s,t,e,i){s=Al(s),s=kl(s,e.decPrivateModes.bracketedPasteMode&&i.rawOptions.ignoreBracketedPasteMode!==!0),e.triggerDataEvent(s,!0),t.value=\"\"}function Mn(s,t,e){let i=e.getBoundingClientRect(),r=s.clientX-i.left-10,n=s.clientY-i.top-10;t.style.width=\"20px\",t.style.height=\"20px\",t.style.left=`${r}px`,t.style.top=`${n}px`,t.style.zIndex=\"1000\",t.focus()}function Pn(s,t,e,i,r){Mn(s,t,e),r&&i.rightClickSelect(s),t.value=i.selectionText,t.select()}function Ce(s){return s>65535?(s-=65536,String.fromCharCode((s>>10)+55296)+String.fromCharCode(s%1024+56320)):String.fromCharCode(s)}function It(s,t=0,e=s.length){let i=\"\";for(let r=t;r<e;++r){let n=s[r];n>65535?(n-=65536,i+=String.fromCharCode((n>>10)+55296)+String.fromCharCode(n%1024+56320)):i+=String.fromCharCode(n)}return i}var er=class{constructor(){this._interim=0}clear(){this._interim=0}decode(t,e){let i=t.length;if(!i)return 0;let r=0,n=0;if(this._interim){let o=t.charCodeAt(n++);56320<=o&&o<=57343?e[r++]=(this._interim-55296)*1024+o-56320+65536:(e[r++]=this._interim,e[r++]=o),this._interim=0}for(let o=n;o<i;++o){let l=t.charCodeAt(o);if(55296<=l&&l<=56319){if(++o>=i)return this._interim=l,r;let a=t.charCodeAt(o);56320<=a&&a<=57343?e[r++]=(l-55296)*1024+a-56320+65536:(e[r++]=l,e[r++]=a);continue}l!==65279&&(e[r++]=l)}return r}},tr=class{constructor(){this.interim=new Uint8Array(3)}clear(){this.interim.fill(0)}decode(t,e){let i=t.length;if(!i)return 0;let r=0,n,o,l,a,u=0,h=0;if(this.interim[0]){let _=!1,p=this.interim[0];p&=(p&224)===192?31:(p&240)===224?15:7;let m=0,f;for(;(f=this.interim[++m]&63)&&m<4;)p<<=6,p|=f;let A=(this.interim[0]&224)===192?2:(this.interim[0]&240)===224?3:4,R=A-m;for(;h<R;){if(h>=i)return 0;if(f=t[h++],(f&192)!==128){h--,_=!0;break}else this.interim[m++]=f,p<<=6,p|=f&63}_||(A===2?p<128?h--:e[r++]=p:A===3?p<2048||p>=55296&&p<=57343||p===65279||(e[r++]=p):p<65536||p>1114111||(e[r++]=p)),this.interim.fill(0)}let c=i-4,d=h;for(;d<i;){for(;d<c&&!((n=t[d])&128)&&!((o=t[d+1])&128)&&!((l=t[d+2])&128)&&!((a=t[d+3])&128);)e[r++]=n,e[r++]=o,e[r++]=l,e[r++]=a,d+=4;if(n=t[d++],n<128)e[r++]=n;else if((n&224)===192){if(d>=i)return this.interim[0]=n,r;if(o=t[d++],(o&192)!==128){d--;continue}if(u=(n&31)<<6|o&63,u<128){d--;continue}e[r++]=u}else if((n&240)===224){if(d>=i)return this.interim[0]=n,r;if(o=t[d++],(o&192)!==128){d--;continue}if(d>=i)return this.interim[0]=n,this.interim[1]=o,r;if(l=t[d++],(l&192)!==128){d--;continue}if(u=(n&15)<<12|(o&63)<<6|l&63,u<2048||u>=55296&&u<=57343||u===65279)continue;e[r++]=u}else if((n&248)===240){if(d>=i)return this.interim[0]=n,r;if(o=t[d++],(o&192)!==128){d--;continue}if(d>=i)return this.interim[0]=n,this.interim[1]=o,r;if(l=t[d++],(l&192)!==128){d--;continue}if(d>=i)return this.interim[0]=n,this.interim[1]=o,this.interim[2]=l,r;if(a=t[d++],(a&192)!==128){d--;continue}if(u=(n&7)<<18|(o&63)<<12|(l&63)<<6|a&63,u<65536||u>1114111)continue;e[r++]=u}}return r}};var ir=\"\";var we=\" \";var De=class s{constructor(){this.fg=0;this.bg=0;this.extended=new rt}static toColorRGB(t){return[t>>>16&255,t>>>8&255,t&255]}static fromColorRGB(t){return(t[0]&255)<<16|(t[1]&255)<<8|t[2]&255}clone(){let t=new s;return t.fg=this.fg,t.bg=this.bg,t.extended=this.extended.clone(),t}isInverse(){return this.fg&67108864}isBold(){return this.fg&134217728}isUnderline(){return this.hasExtendedAttrs()&&this.extended.underlineStyle!==0?1:this.fg&268435456}isBlink(){return this.fg&536870912}isInvisible(){return this.fg&1073741824}isItalic(){return this.bg&67108864}isDim(){return this.bg&134217728}isStrikethrough(){return this.fg&2147483648}isProtected(){return this.bg&536870912}isOverline(){return this.bg&1073741824}getFgColorMode(){return this.fg&50331648}getBgColorMode(){return this.bg&50331648}isFgRGB(){return(this.fg&50331648)===50331648}isBgRGB(){return(this.bg&50331648)===50331648}isFgPalette(){return(this.fg&50331648)===16777216||(this.fg&50331648)===33554432}isBgPalette(){return(this.bg&50331648)===16777216||(this.bg&50331648)===33554432}isFgDefault(){return(this.fg&50331648)===0}isBgDefault(){return(this.bg&50331648)===0}isAttributeDefault(){return this.fg===0&&this.bg===0}getFgColor(){switch(this.fg&50331648){case 16777216:case 33554432:return this.fg&255;case 50331648:return this.fg&16777215;default:return-1}}getBgColor(){switch(this.bg&50331648){case 16777216:case 33554432:return this.bg&255;case 50331648:return this.bg&16777215;default:return-1}}hasExtendedAttrs(){return this.bg&268435456}updateExtended(){this.extended.isEmpty()?this.bg&=-268435457:this.bg|=268435456}getUnderlineColor(){if(this.bg&268435456&&~this.extended.underlineColor)switch(this.extended.underlineColor&50331648){case 16777216:case 33554432:return this.extended.underlineColor&255;case 50331648:return this.extended.underlineColor&16777215;default:return this.getFgColor()}return this.getFgColor()}getUnderlineColorMode(){return this.bg&268435456&&~this.extended.underlineColor?this.extended.underlineColor&50331648:this.getFgColorMode()}isUnderlineColorRGB(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===50331648:this.isFgRGB()}isUnderlineColorPalette(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===16777216||(this.extended.underlineColor&50331648)===33554432:this.isFgPalette()}isUnderlineColorDefault(){return this.bg&268435456&&~this.extended.underlineColor?(this.extended.underlineColor&50331648)===0:this.isFgDefault()}getUnderlineStyle(){return this.fg&268435456?this.bg&268435456?this.extended.underlineStyle:1:0}getUnderlineVariantOffset(){return this.extended.underlineVariantOffset}},rt=class s{constructor(t=0,e=0){this._ext=0;this._urlId=0;this._ext=t,this._urlId=e}get ext(){return this._urlId?this._ext&-469762049|this.underlineStyle<<26:this._ext}set ext(t){this._ext=t}get underlineStyle(){return this._urlId?5:(this._ext&469762048)>>26}set underlineStyle(t){this._ext&=-469762049,this._ext|=t<<26&469762048}get underlineColor(){return this._ext&67108863}set underlineColor(t){this._ext&=-67108864,this._ext|=t&67108863}get urlId(){return this._urlId}set urlId(t){this._urlId=t}get underlineVariantOffset(){let t=(this._ext&3758096384)>>29;return t<0?t^4294967288:t}set underlineVariantOffset(t){this._ext&=536870911,this._ext|=t<<29&3758096384}clone(){return new s(this._ext,this._urlId)}isEmpty(){return this.underlineStyle===0&&this._urlId===0}};var q=class s extends De{constructor(){super(...arguments);this.content=0;this.fg=0;this.bg=0;this.extended=new rt;this.combinedData=\"\"}static fromCharData(e){let i=new s;return i.setFromCharData(e),i}isCombined(){return this.content&2097152}getWidth(){return this.content>>22}getChars(){return this.content&2097152?this.combinedData:this.content&2097151?Ce(this.content&2097151):\"\"}getCode(){return this.isCombined()?this.combinedData.charCodeAt(this.combinedData.length-1):this.content&2097151}setFromCharData(e){this.fg=e[0],this.bg=0;let i=!1;if(e[1].length>2)i=!0;else if(e[1].length===2){let r=e[1].charCodeAt(0);if(55296<=r&&r<=56319){let n=e[1].charCodeAt(1);56320<=n&&n<=57343?this.content=(r-55296)*1024+n-56320+65536|e[2]<<22:i=!0}else i=!0}else this.content=e[1].charCodeAt(0)|e[2]<<22;i&&(this.combinedData=e[1],this.content=2097152|e[2]<<22)}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}};var js=\"di$target\",Hn=\"di$dependencies\",Fn=new Map;function Xs(s){return s[Hn]||[]}function ie(s){if(Fn.has(s))return Fn.get(s);let t=function(e,i,r){if(arguments.length!==3)throw new Error(\"@IServiceName-decorator can only be used to decorate a parameter\");Pl(t,e,r)};return t._id=s,Fn.set(s,t),t}function Pl(s,t,e){t[js]===t?t[Hn].push({id:s,index:e}):(t[Hn]=[{id:s,index:e}],t[js]=t)}var F=ie(\"BufferService\"),rr=ie(\"CoreMouseService\"),ge=ie(\"CoreService\"),Zs=ie(\"CharsetService\"),xt=ie(\"InstantiationService\");var nr=ie(\"LogService\"),H=ie(\"OptionsService\"),sr=ie(\"OscLinkService\"),Js=ie(\"UnicodeService\"),Be=ie(\"DecorationService\");var wt=class{constructor(t,e,i){this._bufferService=t;this._optionsService=e;this._oscLinkService=i}provideLinks(t,e){let i=this._bufferService.buffer.lines.get(t-1);if(!i){e(void 0);return}let r=[],n=this._optionsService.rawOptions.linkHandler,o=new q,l=i.getTrimmedLength(),a=-1,u=-1,h=!1;for(let c=0;c<l;c++)if(!(u===-1&&!i.hasContent(c))){if(i.loadCell(c,o),o.hasExtendedAttrs()&&o.extended.urlId)if(u===-1){u=c,a=o.extended.urlId;continue}else h=o.extended.urlId!==a;else u!==-1&&(h=!0);if(h||u!==-1&&c===l-1){let d=this._oscLinkService.getLinkData(a)?.uri;if(d){let _={start:{x:u+1,y:t},end:{x:c+(!h&&c===l-1?1:0),y:t}},p=!1;if(!n?.allowNonHttpProtocols)try{let m=new URL(d);[\"http:\",\"https:\"].includes(m.protocol)||(p=!0)}catch{p=!0}p||r.push({text:d,range:_,activate:(m,f)=>n?n.activate(m,f,_):Ol(m,f),hover:(m,f)=>n?.hover?.(m,f,_),leave:(m,f)=>n?.leave?.(m,f,_)})}h=!1,o.hasExtendedAttrs()&&o.extended.urlId?(u=c,a=o.extended.urlId):(u=-1,a=-1)}}e(r)}};wt=M([S(0,F),S(1,H),S(2,sr)],wt);function Ol(s,t){if(confirm(`Do you want to navigate to ${t}?\n\nWARNING: This link could potentially be dangerous`)){let i=window.open();if(i){try{i.opener=null}catch{}i.location.href=t}else console.warn(\"Opening link blocked as opener could not be cleared\")}}var nt=ie(\"CharSizeService\"),ae=ie(\"CoreBrowserService\"),Dt=ie(\"MouseService\"),ce=ie(\"RenderService\"),Qs=ie(\"SelectionService\"),or=ie(\"CharacterJoinerService\"),Re=ie(\"ThemeService\"),lr=ie(\"LinkProviderService\");var Wn=class{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(t){setTimeout(()=>{throw t.stack?ar.isErrorNoTelemetry(t)?new ar(t.message+`\n\n`+t.stack):new Error(t.message+`\n\n`+t.stack):t},0)}}addListener(t){return this.listeners.push(t),()=>{this._removeListener(t)}}emit(t){this.listeners.forEach(e=>{e(t)})}_removeListener(t){this.listeners.splice(this.listeners.indexOf(t),1)}setUnexpectedErrorHandler(t){this.unexpectedErrorHandler=t}getUnexpectedErrorHandler(){return this.unexpectedErrorHandler}onUnexpectedError(t){this.unexpectedErrorHandler(t),this.emit(t)}onUnexpectedExternalError(t){this.unexpectedErrorHandler(t)}},Bl=new Wn;function Lt(s){Nl(s)||Bl.onUnexpectedError(s)}var Un=\"Canceled\";function Nl(s){return s instanceof bi?!0:s instanceof Error&&s.name===Un&&s.message===Un}var bi=class extends Error{constructor(){super(Un),this.name=this.message}};function eo(s){return s?new Error(`Illegal argument: ${s}`):new Error(\"Illegal argument\")}var ar=class s extends Error{constructor(t){super(t),this.name=\"CodeExpectedError\"}static fromError(t){if(t instanceof s)return t;let e=new s;return e.message=t.message,e.stack=t.stack,e}static isErrorNoTelemetry(t){return t.name===\"CodeExpectedError\"}},Rt=class s extends Error{constructor(t){super(t||\"An unexpected bug occurred.\"),Object.setPrototypeOf(this,s.prototype)}};function Fl(s,t,e=0,i=s.length){let r=e,n=i;for(;r<n;){let o=Math.floor((r+n)/2);t(s[o])?r=o+1:n=o}return r-1}var cr=class cr{constructor(t){this._array=t;this._findLastMonotonousLastIdx=0}findLastMonotonous(t){if(cr.assertInvariants){if(this._prevFindLastPredicate){for(let i of this._array)if(this._prevFindLastPredicate(i)&&!t(i))throw new Error(\"MonotonousArray: current predicate must be weaker than (or equal to) the previous predicate.\")}this._prevFindLastPredicate=t}let e=Fl(this._array,t,this._findLastMonotonousLastIdx);return this._findLastMonotonousLastIdx=e+1,e===-1?void 0:this._array[e]}};cr.assertInvariants=!1;var to=cr;function Se(s,t=0){return s[s.length-(1+t)]}var ro;(l=>{function s(a){return a<0}l.isLessThan=s;function t(a){return a<=0}l.isLessThanOrEqual=t;function e(a){return a>0}l.isGreaterThan=e;function i(a){return a===0}l.isNeitherLessOrGreaterThan=i,l.greaterThan=1,l.lessThan=-1,l.neitherLessOrGreaterThan=0})(ro||={});function no(s,t){return(e,i)=>t(s(e),s(i))}var so=(s,t)=>s-t;var At=class At{constructor(t){this.iterate=t}forEach(t){this.iterate(e=>(t(e),!0))}toArray(){let t=[];return this.iterate(e=>(t.push(e),!0)),t}filter(t){return new At(e=>this.iterate(i=>t(i)?e(i):!0))}map(t){return new At(e=>this.iterate(i=>e(t(i))))}some(t){let e=!1;return this.iterate(i=>(e=t(i),!e)),e}findFirst(t){let e;return this.iterate(i=>t(i)?(e=i,!1):!0),e}findLast(t){let e;return this.iterate(i=>(t(i)&&(e=i),!0)),e}findLastMaxBy(t){let e,i=!0;return this.iterate(r=>((i||ro.isGreaterThan(t(r,e)))&&(i=!1,e=r),!0)),e}};At.empty=new At(t=>{});var io=At;function co(s,t){let e=Object.create(null);for(let i of s){let r=t(i),n=e[r];n||(n=e[r]=[]),n.push(i)}return e}var lo,ao,oo=class{constructor(t,e){this.toKey=e;this._map=new Map;this[lo]=\"SetWithKey\";for(let i of t)this.add(i)}get size(){return this._map.size}add(t){let e=this.toKey(t);return this._map.set(e,t),this}delete(t){return this._map.delete(this.toKey(t))}has(t){return this._map.has(this.toKey(t))}*entries(){for(let t of this._map.values())yield[t,t]}keys(){return this.values()}*values(){for(let t of this._map.values())yield t}clear(){this._map.clear()}forEach(t,e){this._map.forEach(i=>t.call(e,i,i,this))}[(ao=Symbol.iterator,lo=Symbol.toStringTag,ao)](){return this.values()}};var ur=class{constructor(){this.map=new Map}add(t,e){let i=this.map.get(t);i||(i=new Set,this.map.set(t,i)),i.add(e)}delete(t,e){let i=this.map.get(t);i&&(i.delete(e),i.size===0&&this.map.delete(t))}forEach(t,e){let i=this.map.get(t);i&&i.forEach(e)}get(t){let e=this.map.get(t);return e||new Set}};function Kn(s,t){let e=this,i=!1,r;return function(){if(i)return r;if(i=!0,t)try{r=s.apply(e,arguments)}finally{t()}else r=s.apply(e,arguments);return r}}var zn;(O=>{function s(I){return I&&typeof I==\"object\"&&typeof I[Symbol.iterator]==\"function\"}O.is=s;let t=Object.freeze([]);function e(){return t}O.empty=e;function*i(I){yield I}O.single=i;function r(I){return s(I)?I:i(I)}O.wrap=r;function n(I){return I||t}O.from=n;function*o(I){for(let k=I.length-1;k>=0;k--)yield I[k]}O.reverse=o;function l(I){return!I||I[Symbol.iterator]().next().done===!0}O.isEmpty=l;function a(I){return I[Symbol.iterator]().next().value}O.first=a;function u(I,k){let P=0;for(let oe of I)if(k(oe,P++))return!0;return!1}O.some=u;function h(I,k){for(let P of I)if(k(P))return P}O.find=h;function*c(I,k){for(let P of I)k(P)&&(yield P)}O.filter=c;function*d(I,k){let P=0;for(let oe of I)yield k(oe,P++)}O.map=d;function*_(I,k){let P=0;for(let oe of I)yield*k(oe,P++)}O.flatMap=_;function*p(...I){for(let k of I)yield*k}O.concat=p;function m(I,k,P){let oe=P;for(let Me of I)oe=k(oe,Me);return oe}O.reduce=m;function*f(I,k,P=I.length){for(k<0&&(k+=I.length),P<0?P+=I.length:P>I.length&&(P=I.length);k<P;k++)yield I[k]}O.slice=f;function A(I,k=Number.POSITIVE_INFINITY){let P=[];if(k===0)return[P,I];let oe=I[Symbol.iterator]();for(let Me=0;Me<k;Me++){let Pe=oe.next();if(Pe.done)return[P,O.empty()];P.push(Pe.value)}return[P,{[Symbol.iterator](){return oe}}]}O.consume=A;async function R(I){let k=[];for await(let P of I)k.push(P);return Promise.resolve(k)}O.asyncToArray=R})(zn||={});var Wl=!1,dt=null,hr=class hr{constructor(){this.livingDisposables=new Map}getDisposableData(t){let e=this.livingDisposables.get(t);return e||(e={parent:null,source:null,isSingleton:!1,value:t,idx:hr.idx++},this.livingDisposables.set(t,e)),e}trackDisposable(t){let e=this.getDisposableData(t);e.source||(e.source=new Error().stack)}setParent(t,e){let i=this.getDisposableData(t);i.parent=e}markAsDisposed(t){this.livingDisposables.delete(t)}markAsSingleton(t){this.getDisposableData(t).isSingleton=!0}getRootParent(t,e){let i=e.get(t);if(i)return i;let r=t.parent?this.getRootParent(this.getDisposableData(t.parent),e):t;return e.set(t,r),r}getTrackedDisposables(){let t=new Map;return[...this.livingDisposables.entries()].filter(([,i])=>i.source!==null&&!this.getRootParent(i,t).isSingleton).flatMap(([i])=>i)}computeLeakingDisposables(t=10,e){let i;if(e)i=e;else{let a=new Map,u=[...this.livingDisposables.values()].filter(c=>c.source!==null&&!this.getRootParent(c,a).isSingleton);if(u.length===0)return;let h=new Set(u.map(c=>c.value));if(i=u.filter(c=>!(c.parent&&h.has(c.parent))),i.length===0)throw new Error(\"There are cyclic diposable chains!\")}if(!i)return;function r(a){function u(c,d){for(;c.length>0&&d.some(_=>typeof _==\"string\"?_===c[0]:c[0].match(_));)c.shift()}let h=a.source.split(`\n`).map(c=>c.trim().replace(\"at \",\"\")).filter(c=>c!==\"\");return u(h,[\"Error\",/^trackDisposable \\(.*\\)$/,/^DisposableTracker.trackDisposable \\(.*\\)$/]),h.reverse()}let n=new ur;for(let a of i){let u=r(a);for(let h=0;h<=u.length;h++)n.add(u.slice(0,h).join(`\n`),a)}i.sort(no(a=>a.idx,so));let o=\"\",l=0;for(let a of i.slice(0,t)){l++;let u=r(a),h=[];for(let c=0;c<u.length;c++){let d=u[c];d=`(shared with ${n.get(u.slice(0,c+1).join(`\n`)).size}/${i.length} leaks) at ${d}`;let p=n.get(u.slice(0,c).join(`\n`)),m=co([...p].map(f=>r(f)[c]),f=>f);delete m[u[c]];for(let[f,A]of Object.entries(m))h.unshift(` - stacktraces of ${A.length} other leaks continue with ${f}`);h.unshift(d)}o+=`\n\n\n==================== Leaking disposable ${l}/${i.length}: ${a.value.constructor.name} ====================\n${h.join(`\n`)}\n============================================================\n\n`}return i.length>t&&(o+=`\n\n\n... and ${i.length-t} more leaking disposables\n\n`),{leaks:i,details:o}}};hr.idx=0;var uo=hr;function Ul(s){dt=s}if(Wl){let s=\"__is_disposable_tracked__\";Ul(new class{trackDisposable(t){let e=new Error(\"Potentially leaked disposable\").stack;setTimeout(()=>{t[s]||console.log(e)},3e3)}setParent(t,e){if(t&&t!==D.None)try{t[s]=!0}catch{}}markAsDisposed(t){if(t&&t!==D.None)try{t[s]=!0}catch{}}markAsSingleton(t){}})}function fr(s){return dt?.trackDisposable(s),s}function pr(s){dt?.markAsDisposed(s)}function vi(s,t){dt?.setParent(s,t)}function Kl(s,t){if(dt)for(let e of s)dt.setParent(e,t)}function Gn(s){return dt?.markAsSingleton(s),s}function Ne(s){if(zn.is(s)){let t=[];for(let e of s)if(e)try{e.dispose()}catch(i){t.push(i)}if(t.length===1)throw t[0];if(t.length>1)throw new AggregateError(t,\"Encountered errors while disposing of store\");return Array.isArray(s)?[]:s}else if(s)return s.dispose(),s}function ho(...s){let t=C(()=>Ne(s));return Kl(s,t),t}function C(s){let t=fr({dispose:Kn(()=>{pr(t),s()})});return t}var dr=class dr{constructor(){this._toDispose=new Set;this._isDisposed=!1;fr(this)}dispose(){this._isDisposed||(pr(this),this._isDisposed=!0,this.clear())}get isDisposed(){return this._isDisposed}clear(){if(this._toDispose.size!==0)try{Ne(this._toDispose)}finally{this._toDispose.clear()}}add(t){if(!t)return t;if(t===this)throw new Error(\"Cannot register a disposable on itself!\");return vi(t,this),this._isDisposed?dr.DISABLE_DISPOSED_WARNING||console.warn(new Error(\"Trying to add a disposable to a DisposableStore that has already been disposed of. The added object will be leaked!\").stack):this._toDispose.add(t),t}delete(t){if(t){if(t===this)throw new Error(\"Cannot dispose a disposable on itself!\");this._toDispose.delete(t),t.dispose()}}deleteAndLeak(t){t&&this._toDispose.has(t)&&(this._toDispose.delete(t),vi(t,null))}};dr.DISABLE_DISPOSED_WARNING=!1;var Ee=dr,D=class{constructor(){this._store=new Ee;fr(this),vi(this._store,this)}dispose(){pr(this),this._store.dispose()}_register(t){if(t===this)throw new Error(\"Cannot register a disposable on itself!\");return this._store.add(t)}};D.None=Object.freeze({dispose(){}});var ye=class{constructor(){this._isDisposed=!1;fr(this)}get value(){return this._isDisposed?void 0:this._value}set value(t){this._isDisposed||t===this._value||(this._value?.dispose(),t&&vi(t,this),this._value=t)}clear(){this.value=void 0}dispose(){this._isDisposed=!0,pr(this),this._value?.dispose(),this._value=void 0}clearAndLeak(){let t=this._value;return this._value=void 0,t&&vi(t,null),t}};var fe=typeof window==\"object\"?window:globalThis;var kt=class kt{constructor(t){this.element=t,this.next=kt.Undefined,this.prev=kt.Undefined}};kt.Undefined=new kt(void 0);var G=kt,Ct=class{constructor(){this._first=G.Undefined;this._last=G.Undefined;this._size=0}get size(){return this._size}isEmpty(){return this._first===G.Undefined}clear(){let t=this._first;for(;t!==G.Undefined;){let e=t.next;t.prev=G.Undefined,t.next=G.Undefined,t=e}this._first=G.Undefined,this._last=G.Undefined,this._size=0}unshift(t){return this._insert(t,!1)}push(t){return this._insert(t,!0)}_insert(t,e){let i=new G(t);if(this._first===G.Undefined)this._first=i,this._last=i;else if(e){let n=this._last;this._last=i,i.prev=n,n.next=i}else{let n=this._first;this._first=i,i.next=n,n.prev=i}this._size+=1;let r=!1;return()=>{r||(r=!0,this._remove(i))}}shift(){if(this._first!==G.Undefined){let t=this._first.element;return this._remove(this._first),t}}pop(){if(this._last!==G.Undefined){let t=this._last.element;return this._remove(this._last),t}}_remove(t){if(t.prev!==G.Undefined&&t.next!==G.Undefined){let e=t.prev;e.next=t.next,t.next.prev=e}else t.prev===G.Undefined&&t.next===G.Undefined?(this._first=G.Undefined,this._last=G.Undefined):t.next===G.Undefined?(this._last=this._last.prev,this._last.next=G.Undefined):t.prev===G.Undefined&&(this._first=this._first.next,this._first.prev=G.Undefined);this._size-=1}*[Symbol.iterator](){let t=this._first;for(;t!==G.Undefined;)yield t.element,t=t.next}};var zl=globalThis.performance&&typeof globalThis.performance.now==\"function\",mr=class s{static create(t){return new s(t)}constructor(t){this._now=zl&&t===!1?Date.now:globalThis.performance.now.bind(globalThis.performance),this._startTime=this._now(),this._stopTime=-1}stop(){this._stopTime=this._now()}reset(){this._startTime=this._now(),this._stopTime=-1}elapsed(){return this._stopTime!==-1?this._stopTime-this._startTime:this._now()-this._startTime}};var Gl=!1,fo=!1,$l=!1,$;(Qe=>{Qe.None=()=>D.None;function t(y){if($l){let{onDidAddListener:T}=y,g=gi.create(),w=0;y.onDidAddListener=()=>{++w===2&&(console.warn(\"snapshotted emitter LIKELY used public and SHOULD HAVE BEEN created with DisposableStore. snapshotted here\"),g.print()),T?.()}}}function e(y,T){return d(y,()=>{},0,void 0,!0,void 0,T)}Qe.defer=e;function i(y){return(T,g=null,w)=>{let E=!1,x;return x=y(N=>{if(!E)return x?x.dispose():E=!0,T.call(g,N)},null,w),E&&x.dispose(),x}}Qe.once=i;function r(y,T,g){return h((w,E=null,x)=>y(N=>w.call(E,T(N)),null,x),g)}Qe.map=r;function n(y,T,g){return h((w,E=null,x)=>y(N=>{T(N),w.call(E,N)},null,x),g)}Qe.forEach=n;function o(y,T,g){return h((w,E=null,x)=>y(N=>T(N)&&w.call(E,N),null,x),g)}Qe.filter=o;function l(y){return y}Qe.signal=l;function a(...y){return(T,g=null,w)=>{let E=ho(...y.map(x=>x(N=>T.call(g,N))));return c(E,w)}}Qe.any=a;function u(y,T,g,w){let E=g;return r(y,x=>(E=T(E,x),E),w)}Qe.reduce=u;function h(y,T){let g,w={onWillAddFirstListener(){g=y(E.fire,E)},onDidRemoveLastListener(){g?.dispose()}};T||t(w);let E=new v(w);return T?.add(E),E.event}function c(y,T){return T instanceof Array?T.push(y):T&&T.add(y),y}function d(y,T,g=100,w=!1,E=!1,x,N){let Z,te,Oe,ze=0,le,et={leakWarningThreshold:x,onWillAddFirstListener(){Z=y(ht=>{ze++,te=T(te,ht),w&&!Oe&&(me.fire(te),te=void 0),le=()=>{let fi=te;te=void 0,Oe=void 0,(!w||ze>1)&&me.fire(fi),ze=0},typeof g==\"number\"?(clearTimeout(Oe),Oe=setTimeout(le,g)):Oe===void 0&&(Oe=0,queueMicrotask(le))})},onWillRemoveListener(){E&&ze>0&&le?.()},onDidRemoveLastListener(){le=void 0,Z.dispose()}};N||t(et);let me=new v(et);return N?.add(me),me.event}Qe.debounce=d;function _(y,T=0,g){return Qe.debounce(y,(w,E)=>w?(w.push(E),w):[E],T,void 0,!0,void 0,g)}Qe.accumulate=_;function p(y,T=(w,E)=>w===E,g){let w=!0,E;return o(y,x=>{let N=w||!T(x,E);return w=!1,E=x,N},g)}Qe.latch=p;function m(y,T,g){return[Qe.filter(y,T,g),Qe.filter(y,w=>!T(w),g)]}Qe.split=m;function f(y,T=!1,g=[],w){let E=g.slice(),x=y(te=>{E?E.push(te):Z.fire(te)});w&&w.add(x);let N=()=>{E?.forEach(te=>Z.fire(te)),E=null},Z=new v({onWillAddFirstListener(){x||(x=y(te=>Z.fire(te)),w&&w.add(x))},onDidAddFirstListener(){E&&(T?setTimeout(N):N())},onDidRemoveLastListener(){x&&x.dispose(),x=null}});return w&&w.add(Z),Z.event}Qe.buffer=f;function A(y,T){return(w,E,x)=>{let N=T(new O);return y(function(Z){let te=N.evaluate(Z);te!==R&&w.call(E,te)},void 0,x)}}Qe.chain=A;let R=Symbol(\"HaltChainable\");class O{constructor(){this.steps=[]}map(T){return this.steps.push(T),this}forEach(T){return this.steps.push(g=>(T(g),g)),this}filter(T){return this.steps.push(g=>T(g)?g:R),this}reduce(T,g){let w=g;return this.steps.push(E=>(w=T(w,E),w)),this}latch(T=(g,w)=>g===w){let g=!0,w;return this.steps.push(E=>{let x=g||!T(E,w);return g=!1,w=E,x?E:R}),this}evaluate(T){for(let g of this.steps)if(T=g(T),T===R)break;return T}}function I(y,T,g=w=>w){let w=(...Z)=>N.fire(g(...Z)),E=()=>y.on(T,w),x=()=>y.removeListener(T,w),N=new v({onWillAddFirstListener:E,onDidRemoveLastListener:x});return N.event}Qe.fromNodeEventEmitter=I;function k(y,T,g=w=>w){let w=(...Z)=>N.fire(g(...Z)),E=()=>y.addEventListener(T,w),x=()=>y.removeEventListener(T,w),N=new v({onWillAddFirstListener:E,onDidRemoveLastListener:x});return N.event}Qe.fromDOMEventEmitter=k;function P(y){return new Promise(T=>i(y)(T))}Qe.toPromise=P;function oe(y){let T=new v;return y.then(g=>{T.fire(g)},()=>{T.fire(void 0)}).finally(()=>{T.dispose()}),T.event}Qe.fromPromise=oe;function Me(y,T){return y(g=>T.fire(g))}Qe.forward=Me;function Pe(y,T,g){return T(g),y(w=>T(w))}Qe.runAndSubscribe=Pe;class Ke{constructor(T,g){this._observable=T;this._counter=0;this._hasChanged=!1;let w={onWillAddFirstListener:()=>{T.addObserver(this)},onDidRemoveLastListener:()=>{T.removeObserver(this)}};g||t(w),this.emitter=new v(w),g&&g.add(this.emitter)}beginUpdate(T){this._counter++}handlePossibleChange(T){}handleChange(T,g){this._hasChanged=!0}endUpdate(T){this._counter--,this._counter===0&&(this._observable.reportChanges(),this._hasChanged&&(this._hasChanged=!1,this.emitter.fire(this._observable.get())))}}function di(y,T){return new Ke(y,T).emitter.event}Qe.fromObservable=di;function V(y){return(T,g,w)=>{let E=0,x=!1,N={beginUpdate(){E++},endUpdate(){E--,E===0&&(y.reportChanges(),x&&(x=!1,T.call(g)))},handlePossibleChange(){},handleChange(){x=!0}};y.addObserver(N),y.reportChanges();let Z={dispose(){y.removeObserver(N)}};return w instanceof Ee?w.add(Z):Array.isArray(w)&&w.push(Z),Z}}Qe.fromObservableLight=V})($||={});var Mt=class Mt{constructor(t){this.listenerCount=0;this.invocationCount=0;this.elapsedOverall=0;this.durations=[];this.name=`${t}_${Mt._idPool++}`,Mt.all.add(this)}start(t){this._stopWatch=new mr,this.listenerCount=t}stop(){if(this._stopWatch){let t=this._stopWatch.elapsed();this.durations.push(t),this.elapsedOverall+=t,this.invocationCount+=1,this._stopWatch=void 0}}};Mt.all=new Set,Mt._idPool=0;var $n=Mt,po=-1;var br=class br{constructor(t,e,i=(br._idPool++).toString(16).padStart(3,\"0\")){this._errorHandler=t;this.threshold=e;this.name=i;this._warnCountdown=0}dispose(){this._stacks?.clear()}check(t,e){let i=this.threshold;if(i<=0||e<i)return;this._stacks||(this._stacks=new Map);let r=this._stacks.get(t.value)||0;if(this._stacks.set(t.value,r+1),this._warnCountdown-=1,this._warnCountdown<=0){this._warnCountdown=i*.5;let[n,o]=this.getMostFrequentStack(),l=`[${this.name}] potential listener LEAK detected, having ${e} listeners already. MOST frequent listener (${o}):`;console.warn(l),console.warn(n);let a=new qn(l,n);this._errorHandler(a)}return()=>{let n=this._stacks.get(t.value)||0;this._stacks.set(t.value,n-1)}}getMostFrequentStack(){if(!this._stacks)return;let t,e=0;for(let[i,r]of this._stacks)(!t||e<r)&&(t=[i,r],e=r);return t}};br._idPool=1;var Vn=br,gi=class s{constructor(t){this.value=t}static create(){let t=new Error;return new s(t.stack??\"\")}print(){console.warn(this.value.split(`\n`).slice(2).join(`\n`))}},qn=class extends Error{constructor(t,e){super(t),this.name=\"ListenerLeakError\",this.stack=e}},Yn=class extends Error{constructor(t,e){super(t),this.name=\"ListenerRefusalError\",this.stack=e}},Vl=0,Pt=class{constructor(t){this.value=t;this.id=Vl++}},ql=2,Yl=(s,t)=>{if(s instanceof Pt)t(s);else for(let e=0;e<s.length;e++){let i=s[e];i&&t(i)}},_r;if(Gl){let s=[];setInterval(()=>{s.length!==0&&(console.warn(\"[LEAKING LISTENERS] GC'ed these listeners that were NOT yet disposed:\"),console.warn(s.join(`\n`)),s.length=0)},3e3),_r=new FinalizationRegistry(t=>{typeof t==\"string\"&&s.push(t)})}var v=class{constructor(t){this._size=0;this._options=t,this._leakageMon=po>0||this._options?.leakWarningThreshold?new Vn(t?.onListenerError??Lt,this._options?.leakWarningThreshold??po):void 0,this._perfMon=this._options?._profName?new $n(this._options._profName):void 0,this._deliveryQueue=this._options?.deliveryQueue}dispose(){if(!this._disposed){if(this._disposed=!0,this._deliveryQueue?.current===this&&this._deliveryQueue.reset(),this._listeners){if(fo){let t=this._listeners;queueMicrotask(()=>{Yl(t,e=>e.stack?.print())})}this._listeners=void 0,this._size=0}this._options?.onDidRemoveLastListener?.(),this._leakageMon?.dispose()}}get event(){return this._event??=(t,e,i)=>{if(this._leakageMon&&this._size>this._leakageMon.threshold**2){let a=`[${this._leakageMon.name}] REFUSES to accept new listeners because it exceeded its threshold by far (${this._size} vs ${this._leakageMon.threshold})`;console.warn(a);let u=this._leakageMon.getMostFrequentStack()??[\"UNKNOWN stack\",-1],h=new Yn(`${a}. HINT: Stack shows most frequent listener (${u[1]}-times)`,u[0]);return(this._options?.onListenerError||Lt)(h),D.None}if(this._disposed)return D.None;e&&(t=t.bind(e));let r=new Pt(t),n,o;this._leakageMon&&this._size>=Math.ceil(this._leakageMon.threshold*.2)&&(r.stack=gi.create(),n=this._leakageMon.check(r.stack,this._size+1)),fo&&(r.stack=o??gi.create()),this._listeners?this._listeners instanceof Pt?(this._deliveryQueue??=new jn,this._listeners=[this._listeners,r]):this._listeners.push(r):(this._options?.onWillAddFirstListener?.(this),this._listeners=r,this._options?.onDidAddFirstListener?.(this)),this._size++;let l=C(()=>{_r?.unregister(l),n?.(),this._removeListener(r)});if(i instanceof Ee?i.add(l):Array.isArray(i)&&i.push(l),_r){let a=new Error().stack.split(`\n`).slice(2,3).join(`\n`).trim(),u=/(file:|vscode-file:\\/\\/vscode-app)?(\\/[^:]*:\\d+:\\d+)/.exec(a);_r.register(l,u?.[2]??a,l)}return l},this._event}_removeListener(t){if(this._options?.onWillRemoveListener?.(this),!this._listeners)return;if(this._size===1){this._listeners=void 0,this._options?.onDidRemoveLastListener?.(this),this._size=0;return}let e=this._listeners,i=e.indexOf(t);if(i===-1)throw console.log(\"disposed?\",this._disposed),console.log(\"size?\",this._size),console.log(\"arr?\",JSON.stringify(this._listeners)),new Error(\"Attempted to dispose unknown listener\");this._size--,e[i]=void 0;let r=this._deliveryQueue.current===this;if(this._size*ql<=e.length){let n=0;for(let o=0;o<e.length;o++)e[o]?e[n++]=e[o]:r&&(this._deliveryQueue.end--,n<this._deliveryQueue.i&&this._deliveryQueue.i--);e.length=n}}_deliver(t,e){if(!t)return;let i=this._options?.onListenerError||Lt;if(!i){t.value(e);return}try{t.value(e)}catch(r){i(r)}}_deliverQueue(t){let e=t.current._listeners;for(;t.i<t.end;)this._deliver(e[t.i++],t.value);t.reset()}fire(t){if(this._deliveryQueue?.current&&(this._deliverQueue(this._deliveryQueue),this._perfMon?.stop()),this._perfMon?.start(this._size),this._listeners)if(this._listeners instanceof Pt)this._deliver(this._listeners,t);else{let e=this._deliveryQueue;e.enqueue(this,t,this._listeners.length),this._deliverQueue(e)}this._perfMon?.stop()}hasListeners(){return this._size>0}};var jn=class{constructor(){this.i=-1;this.end=0}enqueue(t,e,i){this.i=0,this.end=i,this.current=t,this.value=e}reset(){this.i=this.end,this.current=void 0,this.value=void 0}};var gr=class gr{constructor(){this.mapWindowIdToZoomLevel=new Map;this._onDidChangeZoomLevel=new v;this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event;this.mapWindowIdToZoomFactor=new Map;this._onDidChangeFullscreen=new v;this.onDidChangeFullscreen=this._onDidChangeFullscreen.event;this.mapWindowIdToFullScreen=new Map}getZoomLevel(t){return this.mapWindowIdToZoomLevel.get(this.getWindowId(t))??0}setZoomLevel(t,e){if(this.getZoomLevel(e)===t)return;let i=this.getWindowId(e);this.mapWindowIdToZoomLevel.set(i,t),this._onDidChangeZoomLevel.fire(i)}getZoomFactor(t){return this.mapWindowIdToZoomFactor.get(this.getWindowId(t))??1}setZoomFactor(t,e){this.mapWindowIdToZoomFactor.set(this.getWindowId(e),t)}setFullscreen(t,e){if(this.isFullscreen(e)===t)return;let i=this.getWindowId(e);this.mapWindowIdToFullScreen.set(i,t),this._onDidChangeFullscreen.fire(i)}isFullscreen(t){return!!this.mapWindowIdToFullScreen.get(this.getWindowId(t))}getWindowId(t){return t.vscodeWindowId}};gr.INSTANCE=new gr;var Si=gr;function Xl(s,t,e){typeof t==\"string\"&&(t=s.matchMedia(t)),t.addEventListener(\"change\",e)}var Eu=Si.INSTANCE.onDidChangeZoomLevel;function mo(s){return Si.INSTANCE.getZoomFactor(s)}var Tu=Si.INSTANCE.onDidChangeFullscreen,Ot=typeof navigator==\"object\"?navigator.userAgent:\"\",Ei=Ot.indexOf(\"Firefox\")>=0,Bt=Ot.indexOf(\"AppleWebKit\")>=0,Ti=Ot.indexOf(\"Chrome\")>=0,Sr=!Ti&&Ot.indexOf(\"Safari\")>=0;var Iu=Ot.indexOf(\"Electron/\")>=0,yu=Ot.indexOf(\"Android\")>=0,vr=!1;if(typeof fe.matchMedia==\"function\"){let s=fe.matchMedia(\"(display-mode: standalone) or (display-mode: window-controls-overlay)\"),t=fe.matchMedia(\"(display-mode: fullscreen)\");vr=s.matches,Xl(fe,s,({matches:e})=>{vr&&t.matches||(vr=e)})}function _o(){return vr}var Nt=\"en\",yr=!1,xr=!1,Ii=!1,Zl=!1,vo=!1,go=!1,Jl=!1,Ql=!1,ea=!1,ta=!1,Tr,Ir=Nt,bo=Nt,ia,$e,Ve=globalThis,xe;typeof Ve.vscode<\"u\"&&typeof Ve.vscode.process<\"u\"?xe=Ve.vscode.process:typeof process<\"u\"&&typeof process?.versions?.node==\"string\"&&(xe=process);var So=typeof xe?.versions?.electron==\"string\",ra=So&&xe?.type===\"renderer\";if(typeof xe==\"object\"){yr=xe.platform===\"win32\",xr=xe.platform===\"darwin\",Ii=xe.platform===\"linux\",Zl=Ii&&!!xe.env.SNAP&&!!xe.env.SNAP_REVISION,Jl=So,ea=!!xe.env.CI||!!xe.env.BUILD_ARTIFACTSTAGINGDIRECTORY,Tr=Nt,Ir=Nt;let s=xe.env.VSCODE_NLS_CONFIG;if(s)try{let t=JSON.parse(s);Tr=t.userLocale,bo=t.osLocale,Ir=t.resolvedLanguage||Nt,ia=t.languagePack?.translationsConfigFile}catch{}vo=!0}else typeof navigator==\"object\"&&!ra?($e=navigator.userAgent,yr=$e.indexOf(\"Windows\")>=0,xr=$e.indexOf(\"Macintosh\")>=0,Ql=($e.indexOf(\"Macintosh\")>=0||$e.indexOf(\"iPad\")>=0||$e.indexOf(\"iPhone\")>=0)&&!!navigator.maxTouchPoints&&navigator.maxTouchPoints>0,Ii=$e.indexOf(\"Linux\")>=0,ta=$e?.indexOf(\"Mobi\")>=0,go=!0,Ir=globalThis._VSCODE_NLS_LANGUAGE||Nt,Tr=navigator.language.toLowerCase(),bo=Tr):console.error(\"Unable to resolve platform.\");var Xn=0;xr?Xn=1:yr?Xn=3:Ii&&(Xn=2);var wr=yr,Te=xr,Zn=Ii;var Dr=vo;var na=go&&typeof Ve.importScripts==\"function\",xu=na?Ve.origin:void 0;var Fe=$e,st=Ir,sa;(i=>{function s(){return st}i.value=s;function t(){return st.length===2?st===\"en\":st.length>=3?st[0]===\"e\"&&st[1]===\"n\"&&st[2]===\"-\":!1}i.isDefaultVariant=t;function e(){return st===\"en\"}i.isDefault=e})(sa||={});var oa=typeof Ve.postMessage==\"function\"&&!Ve.importScripts,Eo=(()=>{if(oa){let s=[];Ve.addEventListener(\"message\",e=>{if(e.data&&e.data.vscodeScheduleAsyncWork)for(let i=0,r=s.length;i<r;i++){let n=s[i];if(n.id===e.data.vscodeScheduleAsyncWork){s.splice(i,1),n.callback();return}}});let t=0;return e=>{let i=++t;s.push({id:i,callback:e}),Ve.postMessage({vscodeScheduleAsyncWork:i},\"*\")}}return s=>setTimeout(s)})();var la=!!(Fe&&Fe.indexOf(\"Chrome\")>=0),wu=!!(Fe&&Fe.indexOf(\"Firefox\")>=0),Du=!!(!la&&Fe&&Fe.indexOf(\"Safari\")>=0),Ru=!!(Fe&&Fe.indexOf(\"Edg/\")>=0),Lu=!!(Fe&&Fe.indexOf(\"Android\")>=0);var ot=typeof navigator==\"object\"?navigator:{},aa={clipboard:{writeText:Dr||document.queryCommandSupported&&document.queryCommandSupported(\"copy\")||!!(ot&&ot.clipboard&&ot.clipboard.writeText),readText:Dr||!!(ot&&ot.clipboard&&ot.clipboard.readText)},keyboard:Dr||_o()?0:ot.keyboard||Sr?1:2,touch:\"ontouchstart\"in fe||ot.maxTouchPoints>0,pointerEvents:fe.PointerEvent&&(\"ontouchstart\"in fe||navigator.maxTouchPoints>0)};var yi=class{constructor(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}define(t,e){this._keyCodeToStr[t]=e,this._strToKeyCode[e.toLowerCase()]=t}keyCodeToStr(t){return this._keyCodeToStr[t]}strToKeyCode(t){return this._strToKeyCode[t.toLowerCase()]||0}},Jn=new yi,To=new yi,Io=new yi,yo=new Array(230);var Qn;(o=>{function s(l){return Jn.keyCodeToStr(l)}o.toString=s;function t(l){return Jn.strToKeyCode(l)}o.fromString=t;function e(l){return To.keyCodeToStr(l)}o.toUserSettingsUS=e;function i(l){return Io.keyCodeToStr(l)}o.toUserSettingsGeneral=i;function r(l){return To.strToKeyCode(l)||Io.strToKeyCode(l)}o.fromUserSettings=r;function n(l){if(l>=98&&l<=113)return null;switch(l){case 16:return\"Up\";case 18:return\"Down\";case 15:return\"Left\";case 17:return\"Right\"}return Jn.keyCodeToStr(l)}o.toElectronAccelerator=n})(Qn||={});var Rr=class s{constructor(t,e,i,r,n){this.ctrlKey=t;this.shiftKey=e;this.altKey=i;this.metaKey=r;this.keyCode=n}equals(t){return t instanceof s&&this.ctrlKey===t.ctrlKey&&this.shiftKey===t.shiftKey&&this.altKey===t.altKey&&this.metaKey===t.metaKey&&this.keyCode===t.keyCode}getHashCode(){let t=this.ctrlKey?\"1\":\"0\",e=this.shiftKey?\"1\":\"0\",i=this.altKey?\"1\":\"0\",r=this.metaKey?\"1\":\"0\";return`K${t}${e}${i}${r}${this.keyCode}`}isModifierKey(){return this.keyCode===0||this.keyCode===5||this.keyCode===57||this.keyCode===6||this.keyCode===4}toKeybinding(){return new es([this])}isDuplicateModifierCase(){return this.ctrlKey&&this.keyCode===5||this.shiftKey&&this.keyCode===4||this.altKey&&this.keyCode===6||this.metaKey&&this.keyCode===57}};var es=class{constructor(t){if(t.length===0)throw eo(\"chords\");this.chords=t}getHashCode(){let t=\"\";for(let e=0,i=this.chords.length;e<i;e++)e!==0&&(t+=\";\"),t+=this.chords[e].getHashCode();return t}equals(t){if(t===null||this.chords.length!==t.chords.length)return!1;for(let e=0;e<this.chords.length;e++)if(!this.chords[e].equals(t.chords[e]))return!1;return!0}};function ca(s){if(s.charCode){let e=String.fromCharCode(s.charCode).toUpperCase();return Qn.fromString(e)}let t=s.keyCode;if(t===3)return 7;if(Ei)switch(t){case 59:return 85;case 60:if(Zn)return 97;break;case 61:return 86;case 107:return 109;case 109:return 111;case 173:return 88;case 224:if(Te)return 57;break}else if(Bt){if(Te&&t===93)return 57;if(!Te&&t===92)return 57}return yo[t]||0}var ua=Te?256:2048,ha=512,da=1024,fa=Te?2048:256;var ft=class{constructor(t){this._standardKeyboardEventBrand=!0;let e=t;this.browserEvent=e,this.target=e.target,this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,this.altGraphKey=e.getModifierState?.(\"AltGraph\"),this.keyCode=ca(e),this.code=e.code,this.ctrlKey=this.ctrlKey||this.keyCode===5,this.altKey=this.altKey||this.keyCode===6,this.shiftKey=this.shiftKey||this.keyCode===4,this.metaKey=this.metaKey||this.keyCode===57,this._asKeybinding=this._computeKeybinding(),this._asKeyCodeChord=this._computeKeyCodeChord()}preventDefault(){this.browserEvent&&this.browserEvent.preventDefault&&this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent&&this.browserEvent.stopPropagation&&this.browserEvent.stopPropagation()}toKeyCodeChord(){return this._asKeyCodeChord}equals(t){return this._asKeybinding===t}_computeKeybinding(){let t=0;this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(t=this.keyCode);let e=0;return this.ctrlKey&&(e|=ua),this.altKey&&(e|=ha),this.shiftKey&&(e|=da),this.metaKey&&(e|=fa),e|=t,e}_computeKeyCodeChord(){let t=0;return this.keyCode!==5&&this.keyCode!==4&&this.keyCode!==6&&this.keyCode!==57&&(t=this.keyCode),new Rr(this.ctrlKey,this.shiftKey,this.altKey,this.metaKey,t)}};var wo=new WeakMap;function pa(s){if(!s.parent||s.parent===s)return null;try{let t=s.location,e=s.parent.location;if(t.origin!==\"null\"&&e.origin!==\"null\"&&t.origin!==e.origin)return null}catch{return null}return s.parent}var Lr=class{static getSameOriginWindowChain(t){let e=wo.get(t);if(!e){e=[],wo.set(t,e);let i=t,r;do r=pa(i),r?e.push({window:new WeakRef(i),iframeElement:i.frameElement||null}):e.push({window:new WeakRef(i),iframeElement:null}),i=r;while(i)}return e.slice(0)}static getPositionOfChildWindowRelativeToAncestorWindow(t,e){if(!e||t===e)return{top:0,left:0};let i=0,r=0,n=this.getSameOriginWindowChain(t);for(let o of n){let l=o.window.deref();if(i+=l?.scrollY??0,r+=l?.scrollX??0,l===e||!o.iframeElement)break;let a=o.iframeElement.getBoundingClientRect();i+=a.top,r+=a.left}return{top:i,left:r}}};var qe=class{constructor(t,e){this.timestamp=Date.now(),this.browserEvent=e,this.leftButton=e.button===0,this.middleButton=e.button===1,this.rightButton=e.button===2,this.buttons=e.buttons,this.target=e.target,this.detail=e.detail||1,e.type===\"dblclick\"&&(this.detail=2),this.ctrlKey=e.ctrlKey,this.shiftKey=e.shiftKey,this.altKey=e.altKey,this.metaKey=e.metaKey,typeof e.pageX==\"number\"?(this.posx=e.pageX,this.posy=e.pageY):(this.posx=e.clientX+this.target.ownerDocument.body.scrollLeft+this.target.ownerDocument.documentElement.scrollLeft,this.posy=e.clientY+this.target.ownerDocument.body.scrollTop+this.target.ownerDocument.documentElement.scrollTop);let i=Lr.getPositionOfChildWindowRelativeToAncestorWindow(t,e.view);this.posx-=i.left,this.posy-=i.top}preventDefault(){this.browserEvent.preventDefault()}stopPropagation(){this.browserEvent.stopPropagation()}};var xi=class{constructor(t,e=0,i=0){this.browserEvent=t||null,this.target=t?t.target||t.targetNode||t.srcElement:null,this.deltaY=i,this.deltaX=e;let r=!1;if(Ti){let n=navigator.userAgent.match(/Chrome\\/(\\d+)/);r=(n?parseInt(n[1]):123)<=122}if(t){let n=t,o=t,l=t.view?.devicePixelRatio||1;if(typeof n.wheelDeltaY<\"u\")r?this.deltaY=n.wheelDeltaY/(120*l):this.deltaY=n.wheelDeltaY/120;else if(typeof o.VERTICAL_AXIS<\"u\"&&o.axis===o.VERTICAL_AXIS)this.deltaY=-o.detail/3;else if(t.type===\"wheel\"){let a=t;a.deltaMode===a.DOM_DELTA_LINE?Ei&&!Te?this.deltaY=-t.deltaY/3:this.deltaY=-t.deltaY:this.deltaY=-t.deltaY/40}if(typeof n.wheelDeltaX<\"u\")Sr&&wr?this.deltaX=-(n.wheelDeltaX/120):r?this.deltaX=n.wheelDeltaX/(120*l):this.deltaX=n.wheelDeltaX/120;else if(typeof o.HORIZONTAL_AXIS<\"u\"&&o.axis===o.HORIZONTAL_AXIS)this.deltaX=-t.detail/3;else if(t.type===\"wheel\"){let a=t;a.deltaMode===a.DOM_DELTA_LINE?Ei&&!Te?this.deltaX=-t.deltaX/3:this.deltaX=-t.deltaX:this.deltaX=-t.deltaX/40}this.deltaY===0&&this.deltaX===0&&t.wheelDelta&&(r?this.deltaY=t.wheelDelta/(120*l):this.deltaY=t.wheelDelta/120)}}preventDefault(){this.browserEvent?.preventDefault()}stopPropagation(){this.browserEvent?.stopPropagation()}};var Do=Object.freeze(function(s,t){let e=setTimeout(s.bind(t),0);return{dispose(){clearTimeout(e)}}}),ma;(i=>{function s(r){return r===i.None||r===i.Cancelled||r instanceof ts?!0:!r||typeof r!=\"object\"?!1:typeof r.isCancellationRequested==\"boolean\"&&typeof r.onCancellationRequested==\"function\"}i.isCancellationToken=s,i.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:$.None}),i.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:Do})})(ma||={});var ts=class{constructor(){this._isCancelled=!1;this._emitter=null}cancel(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))}get isCancellationRequested(){return this._isCancelled}get onCancellationRequested(){return this._isCancelled?Do:(this._emitter||(this._emitter=new v),this._emitter.event)}dispose(){this._emitter&&(this._emitter.dispose(),this._emitter=null)}};var _a=Symbol(\"MicrotaskDelay\");var Ye=class{constructor(t,e){this._isDisposed=!1;this._token=-1,typeof t==\"function\"&&typeof e==\"number\"&&this.setIfNotSet(t,e)}dispose(){this.cancel(),this._isDisposed=!0}cancel(){this._token!==-1&&(clearTimeout(this._token),this._token=-1)}cancelAndSet(t,e){if(this._isDisposed)throw new Rt(\"Calling 'cancelAndSet' on a disposed TimeoutTimer\");this.cancel(),this._token=setTimeout(()=>{this._token=-1,t()},e)}setIfNotSet(t,e){if(this._isDisposed)throw new Rt(\"Calling 'setIfNotSet' on a disposed TimeoutTimer\");this._token===-1&&(this._token=setTimeout(()=>{this._token=-1,t()},e))}},kr=class{constructor(){this.disposable=void 0;this.isDisposed=!1}cancel(){this.disposable?.dispose(),this.disposable=void 0}cancelAndSet(t,e,i=globalThis){if(this.isDisposed)throw new Rt(\"Calling 'cancelAndSet' on a disposed IntervalTimer\");this.cancel();let r=i.setInterval(()=>{t()},e);this.disposable=C(()=>{i.clearInterval(r),this.disposable=void 0})}dispose(){this.cancel(),this.isDisposed=!0}};var ba,Ar;(function(){typeof globalThis.requestIdleCallback!=\"function\"||typeof globalThis.cancelIdleCallback!=\"function\"?Ar=(s,t)=>{Eo(()=>{if(e)return;let i=Date.now()+15;t(Object.freeze({didTimeout:!0,timeRemaining(){return Math.max(0,i-Date.now())}}))});let e=!1;return{dispose(){e||(e=!0)}}}:Ar=(s,t,e)=>{let i=s.requestIdleCallback(t,typeof e==\"number\"?{timeout:e}:void 0),r=!1;return{dispose(){r||(r=!0,s.cancelIdleCallback(i))}}},ba=s=>Ar(globalThis,s)})();var va;(e=>{async function s(i){let r,n=await Promise.all(i.map(o=>o.then(l=>l,l=>{r||(r=l)})));if(typeof r<\"u\")throw r;return n}e.settled=s;function t(i){return new Promise(async(r,n)=>{try{await i(r,n)}catch(o){n(o)}})}e.withAsyncBody=t})(va||={});var _e=class _e{static fromArray(t){return new _e(e=>{e.emitMany(t)})}static fromPromise(t){return new _e(async e=>{e.emitMany(await t)})}static fromPromises(t){return new _e(async e=>{await Promise.all(t.map(async i=>e.emitOne(await i)))})}static merge(t){return new _e(async e=>{await Promise.all(t.map(async i=>{for await(let r of i)e.emitOne(r)}))})}constructor(t,e){this._state=0,this._results=[],this._error=null,this._onReturn=e,this._onStateChanged=new v,queueMicrotask(async()=>{let i={emitOne:r=>this.emitOne(r),emitMany:r=>this.emitMany(r),reject:r=>this.reject(r)};try{await Promise.resolve(t(i)),this.resolve()}catch(r){this.reject(r)}finally{i.emitOne=void 0,i.emitMany=void 0,i.reject=void 0}})}[Symbol.asyncIterator](){let t=0;return{next:async()=>{do{if(this._state===2)throw this._error;if(t<this._results.length)return{done:!1,value:this._results[t++]};if(this._state===1)return{done:!0,value:void 0};await $.toPromise(this._onStateChanged.event)}while(!0)},return:async()=>(this._onReturn?.(),{done:!0,value:void 0})}}static map(t,e){return new _e(async i=>{for await(let r of t)i.emitOne(e(r))})}map(t){return _e.map(this,t)}static filter(t,e){return new _e(async i=>{for await(let r of t)e(r)&&i.emitOne(r)})}filter(t){return _e.filter(this,t)}static coalesce(t){return _e.filter(t,e=>!!e)}coalesce(){return _e.coalesce(this)}static async toPromise(t){let e=[];for await(let i of t)e.push(i);return e}toPromise(){return _e.toPromise(this)}emitOne(t){this._state===0&&(this._results.push(t),this._onStateChanged.fire())}emitMany(t){this._state===0&&(this._results=this._results.concat(t),this._onStateChanged.fire())}resolve(){this._state===0&&(this._state=1,this._onStateChanged.fire())}reject(t){this._state===0&&(this._state=2,this._error=t,this._onStateChanged.fire())}};_e.EMPTY=_e.fromArray([]);var Ro=_e;function Lo(s){return 55296<=s&&s<=56319}function is(s){return 56320<=s&&s<=57343}function Ao(s,t){return(s-55296<<10)+(t-56320)+65536}function Mo(s){return ns(s,0)}function ns(s,t){switch(typeof s){case\"object\":return s===null?je(349,t):Array.isArray(s)?Ea(s,t):Ta(s,t);case\"string\":return Po(s,t);case\"boolean\":return Sa(s,t);case\"number\":return je(s,t);case\"undefined\":return je(937,t);default:return je(617,t)}}function je(s,t){return(t<<5)-t+s|0}function Sa(s,t){return je(s?433:863,t)}function Po(s,t){t=je(149417,t);for(let e=0,i=s.length;e<i;e++)t=je(s.charCodeAt(e),t);return t}function Ea(s,t){return t=je(104579,t),s.reduce((e,i)=>ns(i,e),t)}function Ta(s,t){return t=je(181387,t),Object.keys(s).sort().reduce((e,i)=>(e=Po(i,e),ns(s[i],e)),t)}function rs(s,t,e=32){let i=e-t,r=~((1<<i)-1);return(s<<t|(r&s)>>>i)>>>0}function ko(s,t=0,e=s.byteLength,i=0){for(let r=0;r<e;r++)s[t+r]=i}function Ia(s,t,e=\"0\"){for(;s.length<t;)s=e+s;return s}function wi(s,t=32){return s instanceof ArrayBuffer?Array.from(new Uint8Array(s)).map(e=>e.toString(16).padStart(2,\"0\")).join(\"\"):Ia((s>>>0).toString(16),t/4)}var Cr=class Cr{constructor(){this._h0=1732584193;this._h1=4023233417;this._h2=2562383102;this._h3=271733878;this._h4=3285377520;this._buff=new Uint8Array(67),this._buffDV=new DataView(this._buff.buffer),this._buffLen=0,this._totalLen=0,this._leftoverHighSurrogate=0,this._finished=!1}update(t){let e=t.length;if(e===0)return;let i=this._buff,r=this._buffLen,n=this._leftoverHighSurrogate,o,l;for(n!==0?(o=n,l=-1,n=0):(o=t.charCodeAt(0),l=0);;){let a=o;if(Lo(o))if(l+1<e){let u=t.charCodeAt(l+1);is(u)?(l++,a=Ao(o,u)):a=65533}else{n=o;break}else is(o)&&(a=65533);if(r=this._push(i,r,a),l++,l<e)o=t.charCodeAt(l);else break}this._buffLen=r,this._leftoverHighSurrogate=n}_push(t,e,i){return i<128?t[e++]=i:i<2048?(t[e++]=192|(i&1984)>>>6,t[e++]=128|(i&63)>>>0):i<65536?(t[e++]=224|(i&61440)>>>12,t[e++]=128|(i&4032)>>>6,t[e++]=128|(i&63)>>>0):(t[e++]=240|(i&1835008)>>>18,t[e++]=128|(i&258048)>>>12,t[e++]=128|(i&4032)>>>6,t[e++]=128|(i&63)>>>0),e>=64&&(this._step(),e-=64,this._totalLen+=64,t[0]=t[64],t[1]=t[65],t[2]=t[66]),e}digest(){return this._finished||(this._finished=!0,this._leftoverHighSurrogate&&(this._leftoverHighSurrogate=0,this._buffLen=this._push(this._buff,this._buffLen,65533)),this._totalLen+=this._buffLen,this._wrapUp()),wi(this._h0)+wi(this._h1)+wi(this._h2)+wi(this._h3)+wi(this._h4)}_wrapUp(){this._buff[this._buffLen++]=128,ko(this._buff,this._buffLen),this._buffLen>56&&(this._step(),ko(this._buff));let t=8*this._totalLen;this._buffDV.setUint32(56,Math.floor(t/4294967296),!1),this._buffDV.setUint32(60,t%4294967296,!1),this._step()}_step(){let t=Cr._bigBlock32,e=this._buffDV;for(let c=0;c<64;c+=4)t.setUint32(c,e.getUint32(c,!1),!1);for(let c=64;c<320;c+=4)t.setUint32(c,rs(t.getUint32(c-12,!1)^t.getUint32(c-32,!1)^t.getUint32(c-56,!1)^t.getUint32(c-64,!1),1),!1);let i=this._h0,r=this._h1,n=this._h2,o=this._h3,l=this._h4,a,u,h;for(let c=0;c<80;c++)c<20?(a=r&n|~r&o,u=1518500249):c<40?(a=r^n^o,u=1859775393):c<60?(a=r&n|r&o|n&o,u=2400959708):(a=r^n^o,u=3395469782),h=rs(i,5)+a+l+u+t.getUint32(c*4,!1)&4294967295,l=o,o=n,n=rs(r,30),r=i,i=h;this._h0=this._h0+i&4294967295,this._h1=this._h1+r&4294967295,this._h2=this._h2+n&4294967295,this._h3=this._h3+o&4294967295,this._h4=this._h4+l&4294967295}};Cr._bigBlock32=new DataView(new ArrayBuffer(320));var Co=Cr;var{registerWindow:Bh,getWindow:be,getDocument:Nh,getWindows:Fh,getWindowsCount:Hh,getWindowId:Oo,getWindowById:Wh,hasWindow:Uh,onDidRegisterWindow:No,onWillUnregisterWindow:Kh,onDidUnregisterWindow:zh}=function(){let s=new Map;fe;let t={window:fe,disposables:new Ee};s.set(fe.vscodeWindowId,t);let e=new v,i=new v,r=new v;function n(o,l){return(typeof o==\"number\"?s.get(o):void 0)??(l?t:void 0)}return{onDidRegisterWindow:e.event,onWillUnregisterWindow:r.event,onDidUnregisterWindow:i.event,registerWindow(o){if(s.has(o.vscodeWindowId))return D.None;let l=new Ee,a={window:o,disposables:l.add(new Ee)};return s.set(o.vscodeWindowId,a),l.add(C(()=>{s.delete(o.vscodeWindowId),i.fire(o)})),l.add(L(o,Y.BEFORE_UNLOAD,()=>{r.fire(o)})),e.fire(a),l},getWindows(){return s.values()},getWindowsCount(){return s.size},getWindowId(o){return o.vscodeWindowId},hasWindow(o){return s.has(o)},getWindowById:n,getWindow(o){let l=o;if(l?.ownerDocument?.defaultView)return l.ownerDocument.defaultView.window;let a=o;return a?.view?a.view.window:fe},getDocument(o){return be(o).document}}}();var ss=class{constructor(t,e,i,r){this._node=t,this._type=e,this._handler=i,this._options=r||!1,this._node.addEventListener(this._type,this._handler,this._options)}dispose(){this._handler&&(this._node.removeEventListener(this._type,this._handler,this._options),this._node=null,this._handler=null)}};function L(s,t,e,i){return new ss(s,t,e,i)}function ya(s,t){return function(e){return t(new qe(s,e))}}function xa(s){return function(t){return s(new ft(t))}}var os=function(t,e,i,r){let n=i;return e===\"click\"||e===\"mousedown\"||e===\"contextmenu\"?n=ya(be(t),i):(e===\"keydown\"||e===\"keypress\"||e===\"keyup\")&&(n=xa(i)),L(t,e,n,r)};var wa,mt;var Mr=class extends kr{constructor(t){super(),this.defaultTarget=t&&be(t)}cancelAndSet(t,e,i){return super.cancelAndSet(t,e,i??this.defaultTarget)}},Di=class{constructor(t,e=0){this._runner=t,this.priority=e,this._canceled=!1}dispose(){this._canceled=!0}execute(){if(!this._canceled)try{this._runner()}catch(t){Lt(t)}}static sort(t,e){return e.priority-t.priority}};(function(){let s=new Map,t=new Map,e=new Map,i=new Map,r=n=>{e.set(n,!1);let o=s.get(n)??[];for(t.set(n,o),s.set(n,[]),i.set(n,!0);o.length>0;)o.sort(Di.sort),o.shift().execute();i.set(n,!1)};mt=(n,o,l=0)=>{let a=Oo(n),u=new Di(o,l),h=s.get(a);return h||(h=[],s.set(a,h)),h.push(u),e.get(a)||(e.set(a,!0),n.requestAnimationFrame(()=>r(a))),u},wa=(n,o,l)=>{let a=Oo(n);if(i.get(a)){let u=new Di(o,l),h=t.get(a);return h||(h=[],t.set(a,h)),h.push(u),u}else return mt(n,o,l)}})();var pt=class pt{constructor(t,e){this.width=t;this.height=e}with(t=this.width,e=this.height){return t!==this.width||e!==this.height?new pt(t,e):this}static is(t){return typeof t==\"object\"&&typeof t.height==\"number\"&&typeof t.width==\"number\"}static lift(t){return t instanceof pt?t:new pt(t.width,t.height)}static equals(t,e){return t===e?!0:!t||!e?!1:t.width===e.width&&t.height===e.height}};pt.None=new pt(0,0);var Bo=pt;function Fo(s){let t=s.getBoundingClientRect(),e=be(s);return{left:t.left+e.scrollX,top:t.top+e.scrollY,width:t.width,height:t.height}}var Gh=new class{constructor(){this.mutationObservers=new Map}observe(s,t,e){let i=this.mutationObservers.get(s);i||(i=new Map,this.mutationObservers.set(s,i));let r=Mo(e),n=i.get(r);if(n)n.users+=1;else{let o=new v,l=new MutationObserver(u=>o.fire(u));l.observe(s,e);let a=n={users:1,observer:l,onDidMutate:o.event};t.add(C(()=>{a.users-=1,a.users===0&&(o.dispose(),l.disconnect(),i?.delete(r),i?.size===0&&this.mutationObservers.delete(s))})),i.set(r,n)}return n.onDidMutate}};var Y={CLICK:\"click\",AUXCLICK:\"auxclick\",DBLCLICK:\"dblclick\",MOUSE_UP:\"mouseup\",MOUSE_DOWN:\"mousedown\",MOUSE_OVER:\"mouseover\",MOUSE_MOVE:\"mousemove\",MOUSE_OUT:\"mouseout\",MOUSE_ENTER:\"mouseenter\",MOUSE_LEAVE:\"mouseleave\",MOUSE_WHEEL:\"wheel\",POINTER_UP:\"pointerup\",POINTER_DOWN:\"pointerdown\",POINTER_MOVE:\"pointermove\",POINTER_LEAVE:\"pointerleave\",CONTEXT_MENU:\"contextmenu\",WHEEL:\"wheel\",KEY_DOWN:\"keydown\",KEY_PRESS:\"keypress\",KEY_UP:\"keyup\",LOAD:\"load\",BEFORE_UNLOAD:\"beforeunload\",UNLOAD:\"unload\",PAGE_SHOW:\"pageshow\",PAGE_HIDE:\"pagehide\",PASTE:\"paste\",ABORT:\"abort\",ERROR:\"error\",RESIZE:\"resize\",SCROLL:\"scroll\",FULLSCREEN_CHANGE:\"fullscreenchange\",WK_FULLSCREEN_CHANGE:\"webkitfullscreenchange\",SELECT:\"select\",CHANGE:\"change\",SUBMIT:\"submit\",RESET:\"reset\",FOCUS:\"focus\",FOCUS_IN:\"focusin\",FOCUS_OUT:\"focusout\",BLUR:\"blur\",INPUT:\"input\",STORAGE:\"storage\",DRAG_START:\"dragstart\",DRAG:\"drag\",DRAG_ENTER:\"dragenter\",DRAG_LEAVE:\"dragleave\",DRAG_OVER:\"dragover\",DROP:\"drop\",DRAG_END:\"dragend\",ANIMATION_START:Bt?\"webkitAnimationStart\":\"animationstart\",ANIMATION_END:Bt?\"webkitAnimationEnd\":\"animationend\",ANIMATION_ITERATION:Bt?\"webkitAnimationIteration\":\"animationiteration\"};var Da=/([\\w\\-]+)?(#([\\w\\-]+))?((\\.([\\w\\-]+))*)/;function Ho(s,t,e,...i){let r=Da.exec(t);if(!r)throw new Error(\"Bad use of emmet\");let n=r[1]||\"div\",o;return s!==\"http://www.w3.org/1999/xhtml\"?o=document.createElementNS(s,n):o=document.createElement(n),r[3]&&(o.id=r[3]),r[4]&&(o.className=r[4].replace(/\\./g,\" \").trim()),e&&Object.entries(e).forEach(([l,a])=>{typeof a>\"u\"||(/^on\\w+$/.test(l)?o[l]=a:l===\"selected\"?a&&o.setAttribute(l,\"true\"):o.setAttribute(l,a))}),o.append(...i),o}function Ra(s,t,...e){return Ho(\"http://www.w3.org/1999/xhtml\",s,t,...e)}Ra.SVG=function(s,t,...e){return Ho(\"http://www.w3.org/2000/svg\",s,t,...e)};var ls=class{constructor(t){this.domNode=t;this._maxWidth=\"\";this._width=\"\";this._height=\"\";this._top=\"\";this._left=\"\";this._bottom=\"\";this._right=\"\";this._paddingTop=\"\";this._paddingLeft=\"\";this._paddingBottom=\"\";this._paddingRight=\"\";this._fontFamily=\"\";this._fontWeight=\"\";this._fontSize=\"\";this._fontStyle=\"\";this._fontFeatureSettings=\"\";this._fontVariationSettings=\"\";this._textDecoration=\"\";this._lineHeight=\"\";this._letterSpacing=\"\";this._className=\"\";this._display=\"\";this._position=\"\";this._visibility=\"\";this._color=\"\";this._backgroundColor=\"\";this._layerHint=!1;this._contain=\"none\";this._boxShadow=\"\"}setMaxWidth(t){let e=Ie(t);this._maxWidth!==e&&(this._maxWidth=e,this.domNode.style.maxWidth=this._maxWidth)}setWidth(t){let e=Ie(t);this._width!==e&&(this._width=e,this.domNode.style.width=this._width)}setHeight(t){let e=Ie(t);this._height!==e&&(this._height=e,this.domNode.style.height=this._height)}setTop(t){let e=Ie(t);this._top!==e&&(this._top=e,this.domNode.style.top=this._top)}setLeft(t){let e=Ie(t);this._left!==e&&(this._left=e,this.domNode.style.left=this._left)}setBottom(t){let e=Ie(t);this._bottom!==e&&(this._bottom=e,this.domNode.style.bottom=this._bottom)}setRight(t){let e=Ie(t);this._right!==e&&(this._right=e,this.domNode.style.right=this._right)}setPaddingTop(t){let e=Ie(t);this._paddingTop!==e&&(this._paddingTop=e,this.domNode.style.paddingTop=this._paddingTop)}setPaddingLeft(t){let e=Ie(t);this._paddingLeft!==e&&(this._paddingLeft=e,this.domNode.style.paddingLeft=this._paddingLeft)}setPaddingBottom(t){let e=Ie(t);this._paddingBottom!==e&&(this._paddingBottom=e,this.domNode.style.paddingBottom=this._paddingBottom)}setPaddingRight(t){let e=Ie(t);this._paddingRight!==e&&(this._paddingRight=e,this.domNode.style.paddingRight=this._paddingRight)}setFontFamily(t){this._fontFamily!==t&&(this._fontFamily=t,this.domNode.style.fontFamily=this._fontFamily)}setFontWeight(t){this._fontWeight!==t&&(this._fontWeight=t,this.domNode.style.fontWeight=this._fontWeight)}setFontSize(t){let e=Ie(t);this._fontSize!==e&&(this._fontSize=e,this.domNode.style.fontSize=this._fontSize)}setFontStyle(t){this._fontStyle!==t&&(this._fontStyle=t,this.domNode.style.fontStyle=this._fontStyle)}setFontFeatureSettings(t){this._fontFeatureSettings!==t&&(this._fontFeatureSettings=t,this.domNode.style.fontFeatureSettings=this._fontFeatureSettings)}setFontVariationSettings(t){this._fontVariationSettings!==t&&(this._fontVariationSettings=t,this.domNode.style.fontVariationSettings=this._fontVariationSettings)}setTextDecoration(t){this._textDecoration!==t&&(this._textDecoration=t,this.domNode.style.textDecoration=this._textDecoration)}setLineHeight(t){let e=Ie(t);this._lineHeight!==e&&(this._lineHeight=e,this.domNode.style.lineHeight=this._lineHeight)}setLetterSpacing(t){let e=Ie(t);this._letterSpacing!==e&&(this._letterSpacing=e,this.domNode.style.letterSpacing=this._letterSpacing)}setClassName(t){this._className!==t&&(this._className=t,this.domNode.className=this._className)}toggleClassName(t,e){this.domNode.classList.toggle(t,e),this._className=this.domNode.className}setDisplay(t){this._display!==t&&(this._display=t,this.domNode.style.display=this._display)}setPosition(t){this._position!==t&&(this._position=t,this.domNode.style.position=this._position)}setVisibility(t){this._visibility!==t&&(this._visibility=t,this.domNode.style.visibility=this._visibility)}setColor(t){this._color!==t&&(this._color=t,this.domNode.style.color=this._color)}setBackgroundColor(t){this._backgroundColor!==t&&(this._backgroundColor=t,this.domNode.style.backgroundColor=this._backgroundColor)}setLayerHinting(t){this._layerHint!==t&&(this._layerHint=t,this.domNode.style.transform=this._layerHint?\"translate3d(0px, 0px, 0px)\":\"\")}setBoxShadow(t){this._boxShadow!==t&&(this._boxShadow=t,this.domNode.style.boxShadow=t)}setContain(t){this._contain!==t&&(this._contain=t,this.domNode.style.contain=this._contain)}setAttribute(t,e){this.domNode.setAttribute(t,e)}removeAttribute(t){this.domNode.removeAttribute(t)}appendChild(t){this.domNode.appendChild(t.domNode)}removeChild(t){this.domNode.removeChild(t.domNode)}};function Ie(s){return typeof s==\"number\"?`${s}px`:s}function _t(s){return new ls(s)}var Wt=class{constructor(){this._hooks=new Ee;this._pointerMoveCallback=null;this._onStopCallback=null}dispose(){this.stopMonitoring(!1),this._hooks.dispose()}stopMonitoring(t,e){if(!this.isMonitoring())return;this._hooks.clear(),this._pointerMoveCallback=null;let i=this._onStopCallback;this._onStopCallback=null,t&&i&&i(e)}isMonitoring(){return!!this._pointerMoveCallback}startMonitoring(t,e,i,r,n){this.isMonitoring()&&this.stopMonitoring(!1),this._pointerMoveCallback=r,this._onStopCallback=n;let o=t;try{t.setPointerCapture(e),this._hooks.add(C(()=>{try{t.releasePointerCapture(e)}catch{}}))}catch{o=be(t)}this._hooks.add(L(o,Y.POINTER_MOVE,l=>{if(l.buttons!==i){this.stopMonitoring(!0);return}l.preventDefault(),this._pointerMoveCallback(l)})),this._hooks.add(L(o,Y.POINTER_UP,l=>this.stopMonitoring(!0)))}};function Wo(s,t,e){let i=null,r=null;if(typeof e.value==\"function\"?(i=\"value\",r=e.value,r.length!==0&&console.warn(\"Memoize should only be used in functions with zero parameters\")):typeof e.get==\"function\"&&(i=\"get\",r=e.get),!r)throw new Error(\"not supported\");let n=`$memoize$${t}`;e[i]=function(...o){return this.hasOwnProperty(n)||Object.defineProperty(this,n,{configurable:!1,enumerable:!1,writable:!1,value:r.apply(this,o)}),this[n]}}var He;(n=>(n.Tap=\"-xterm-gesturetap\",n.Change=\"-xterm-gesturechange\",n.Start=\"-xterm-gesturestart\",n.End=\"-xterm-gesturesend\",n.Contextmenu=\"-xterm-gesturecontextmenu\"))(He||={});var Q=class Q extends D{constructor(){super();this.dispatched=!1;this.targets=new Ct;this.ignoreTargets=new Ct;this.activeTouches={},this.handle=null,this._lastSetTapCountTime=0,this._register($.runAndSubscribe(No,({window:e,disposables:i})=>{i.add(L(e.document,\"touchstart\",r=>this.onTouchStart(r),{passive:!1})),i.add(L(e.document,\"touchend\",r=>this.onTouchEnd(e,r))),i.add(L(e.document,\"touchmove\",r=>this.onTouchMove(r),{passive:!1}))},{window:fe,disposables:this._store}))}static addTarget(e){if(!Q.isTouchDevice())return D.None;Q.INSTANCE||(Q.INSTANCE=Gn(new Q));let i=Q.INSTANCE.targets.push(e);return C(i)}static ignoreTarget(e){if(!Q.isTouchDevice())return D.None;Q.INSTANCE||(Q.INSTANCE=Gn(new Q));let i=Q.INSTANCE.ignoreTargets.push(e);return C(i)}static isTouchDevice(){return\"ontouchstart\"in fe||navigator.maxTouchPoints>0}dispose(){this.handle&&(this.handle.dispose(),this.handle=null),super.dispose()}onTouchStart(e){let i=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(let r=0,n=e.targetTouches.length;r<n;r++){let o=e.targetTouches.item(r);this.activeTouches[o.identifier]={id:o.identifier,initialTarget:o.target,initialTimeStamp:i,initialPageX:o.pageX,initialPageY:o.pageY,rollingTimestamps:[i],rollingPageX:[o.pageX],rollingPageY:[o.pageY]};let l=this.newGestureEvent(He.Start,o.target);l.pageX=o.pageX,l.pageY=o.pageY,this.dispatchEvent(l)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}onTouchEnd(e,i){let r=Date.now(),n=Object.keys(this.activeTouches).length;for(let o=0,l=i.changedTouches.length;o<l;o++){let a=i.changedTouches.item(o);if(!this.activeTouches.hasOwnProperty(String(a.identifier))){console.warn(\"move of an UNKNOWN touch\",a);continue}let u=this.activeTouches[a.identifier],h=Date.now()-u.initialTimeStamp;if(h<Q.HOLD_DELAY&&Math.abs(u.initialPageX-Se(u.rollingPageX))<30&&Math.abs(u.initialPageY-Se(u.rollingPageY))<30){let c=this.newGestureEvent(He.Tap,u.initialTarget);c.pageX=Se(u.rollingPageX),c.pageY=Se(u.rollingPageY),this.dispatchEvent(c)}else if(h>=Q.HOLD_DELAY&&Math.abs(u.initialPageX-Se(u.rollingPageX))<30&&Math.abs(u.initialPageY-Se(u.rollingPageY))<30){let c=this.newGestureEvent(He.Contextmenu,u.initialTarget);c.pageX=Se(u.rollingPageX),c.pageY=Se(u.rollingPageY),this.dispatchEvent(c)}else if(n===1){let c=Se(u.rollingPageX),d=Se(u.rollingPageY),_=Se(u.rollingTimestamps)-u.rollingTimestamps[0],p=c-u.rollingPageX[0],m=d-u.rollingPageY[0],f=[...this.targets].filter(A=>u.initialTarget instanceof Node&&A.contains(u.initialTarget));this.inertia(e,f,r,Math.abs(p)/_,p>0?1:-1,c,Math.abs(m)/_,m>0?1:-1,d)}this.dispatchEvent(this.newGestureEvent(He.End,u.initialTarget)),delete this.activeTouches[a.identifier]}this.dispatched&&(i.preventDefault(),i.stopPropagation(),this.dispatched=!1)}newGestureEvent(e,i){let r=document.createEvent(\"CustomEvent\");return r.initEvent(e,!1,!0),r.initialTarget=i,r.tapCount=0,r}dispatchEvent(e){if(e.type===He.Tap){let i=new Date().getTime(),r=0;i-this._lastSetTapCountTime>Q.CLEAR_TAP_COUNT_TIME?r=1:r=2,this._lastSetTapCountTime=i,e.tapCount=r}else(e.type===He.Change||e.type===He.Contextmenu)&&(this._lastSetTapCountTime=0);if(e.initialTarget instanceof Node){for(let r of this.ignoreTargets)if(r.contains(e.initialTarget))return;let i=[];for(let r of this.targets)if(r.contains(e.initialTarget)){let n=0,o=e.initialTarget;for(;o&&o!==r;)n++,o=o.parentElement;i.push([n,r])}i.sort((r,n)=>r[0]-n[0]);for(let[r,n]of i)n.dispatchEvent(e),this.dispatched=!0}}inertia(e,i,r,n,o,l,a,u,h){this.handle=mt(e,()=>{let c=Date.now(),d=c-r,_=0,p=0,m=!0;n+=Q.SCROLL_FRICTION*d,a+=Q.SCROLL_FRICTION*d,n>0&&(m=!1,_=o*n*d),a>0&&(m=!1,p=u*a*d);let f=this.newGestureEvent(He.Change);f.translationX=_,f.translationY=p,i.forEach(A=>A.dispatchEvent(f)),m||this.inertia(e,i,c,n,o,l+_,a,u,h+p)})}onTouchMove(e){let i=Date.now();for(let r=0,n=e.changedTouches.length;r<n;r++){let o=e.changedTouches.item(r);if(!this.activeTouches.hasOwnProperty(String(o.identifier))){console.warn(\"end of an UNKNOWN touch\",o);continue}let l=this.activeTouches[o.identifier],a=this.newGestureEvent(He.Change,l.initialTarget);a.translationX=o.pageX-Se(l.rollingPageX),a.translationY=o.pageY-Se(l.rollingPageY),a.pageX=o.pageX,a.pageY=o.pageY,this.dispatchEvent(a),l.rollingPageX.length>3&&(l.rollingPageX.shift(),l.rollingPageY.shift(),l.rollingTimestamps.shift()),l.rollingPageX.push(o.pageX),l.rollingPageY.push(o.pageY),l.rollingTimestamps.push(i)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)}};Q.SCROLL_FRICTION=-.005,Q.HOLD_DELAY=700,Q.CLEAR_TAP_COUNT_TIME=400,M([Wo],Q,\"isTouchDevice\",1);var Pr=Q;var lt=class extends D{onclick(t,e){this._register(L(t,Y.CLICK,i=>e(new qe(be(t),i))))}onmousedown(t,e){this._register(L(t,Y.MOUSE_DOWN,i=>e(new qe(be(t),i))))}onmouseover(t,e){this._register(L(t,Y.MOUSE_OVER,i=>e(new qe(be(t),i))))}onmouseleave(t,e){this._register(L(t,Y.MOUSE_LEAVE,i=>e(new qe(be(t),i))))}onkeydown(t,e){this._register(L(t,Y.KEY_DOWN,i=>e(new ft(i))))}onkeyup(t,e){this._register(L(t,Y.KEY_UP,i=>e(new ft(i))))}oninput(t,e){this._register(L(t,Y.INPUT,e))}onblur(t,e){this._register(L(t,Y.BLUR,e))}onfocus(t,e){this._register(L(t,Y.FOCUS,e))}onchange(t,e){this._register(L(t,Y.CHANGE,e))}ignoreGesture(t){return Pr.ignoreTarget(t)}};var Uo=11,Or=class extends lt{constructor(t){super(),this._onActivate=t.onActivate,this.bgDomNode=document.createElement(\"div\"),this.bgDomNode.className=\"arrow-background\",this.bgDomNode.style.position=\"absolute\",this.bgDomNode.style.width=t.bgWidth+\"px\",this.bgDomNode.style.height=t.bgHeight+\"px\",typeof t.top<\"u\"&&(this.bgDomNode.style.top=\"0px\"),typeof t.left<\"u\"&&(this.bgDomNode.style.left=\"0px\"),typeof t.bottom<\"u\"&&(this.bgDomNode.style.bottom=\"0px\"),typeof t.right<\"u\"&&(this.bgDomNode.style.right=\"0px\"),this.domNode=document.createElement(\"div\"),this.domNode.className=t.className,this.domNode.style.position=\"absolute\",this.domNode.style.width=Uo+\"px\",this.domNode.style.height=Uo+\"px\",typeof t.top<\"u\"&&(this.domNode.style.top=t.top+\"px\"),typeof t.left<\"u\"&&(this.domNode.style.left=t.left+\"px\"),typeof t.bottom<\"u\"&&(this.domNode.style.bottom=t.bottom+\"px\"),typeof t.right<\"u\"&&(this.domNode.style.right=t.right+\"px\"),this._pointerMoveMonitor=this._register(new Wt),this._register(os(this.bgDomNode,Y.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._register(os(this.domNode,Y.POINTER_DOWN,e=>this._arrowPointerDown(e))),this._pointerdownRepeatTimer=this._register(new Mr),this._pointerdownScheduleRepeatTimer=this._register(new Ye)}_arrowPointerDown(t){if(!t.target||!(t.target instanceof Element))return;let e=()=>{this._pointerdownRepeatTimer.cancelAndSet(()=>this._onActivate(),1e3/24,be(t))};this._onActivate(),this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancelAndSet(e,200),this._pointerMoveMonitor.startMonitoring(t.target,t.pointerId,t.buttons,i=>{},()=>{this._pointerdownRepeatTimer.cancel(),this._pointerdownScheduleRepeatTimer.cancel()}),t.preventDefault()}};var cs=class s{constructor(t,e,i,r,n,o,l){this._forceIntegerValues=t;this._scrollStateBrand=void 0;this._forceIntegerValues&&(e=e|0,i=i|0,r=r|0,n=n|0,o=o|0,l=l|0),this.rawScrollLeft=r,this.rawScrollTop=l,e<0&&(e=0),r+e>i&&(r=i-e),r<0&&(r=0),n<0&&(n=0),l+n>o&&(l=o-n),l<0&&(l=0),this.width=e,this.scrollWidth=i,this.scrollLeft=r,this.height=n,this.scrollHeight=o,this.scrollTop=l}equals(t){return this.rawScrollLeft===t.rawScrollLeft&&this.rawScrollTop===t.rawScrollTop&&this.width===t.width&&this.scrollWidth===t.scrollWidth&&this.scrollLeft===t.scrollLeft&&this.height===t.height&&this.scrollHeight===t.scrollHeight&&this.scrollTop===t.scrollTop}withScrollDimensions(t,e){return new s(this._forceIntegerValues,typeof t.width<\"u\"?t.width:this.width,typeof t.scrollWidth<\"u\"?t.scrollWidth:this.scrollWidth,e?this.rawScrollLeft:this.scrollLeft,typeof t.height<\"u\"?t.height:this.height,typeof t.scrollHeight<\"u\"?t.scrollHeight:this.scrollHeight,e?this.rawScrollTop:this.scrollTop)}withScrollPosition(t){return new s(this._forceIntegerValues,this.width,this.scrollWidth,typeof t.scrollLeft<\"u\"?t.scrollLeft:this.rawScrollLeft,this.height,this.scrollHeight,typeof t.scrollTop<\"u\"?t.scrollTop:this.rawScrollTop)}createScrollEvent(t,e){let i=this.width!==t.width,r=this.scrollWidth!==t.scrollWidth,n=this.scrollLeft!==t.scrollLeft,o=this.height!==t.height,l=this.scrollHeight!==t.scrollHeight,a=this.scrollTop!==t.scrollTop;return{inSmoothScrolling:e,oldWidth:t.width,oldScrollWidth:t.scrollWidth,oldScrollLeft:t.scrollLeft,width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,oldHeight:t.height,oldScrollHeight:t.scrollHeight,oldScrollTop:t.scrollTop,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:i,scrollWidthChanged:r,scrollLeftChanged:n,heightChanged:o,scrollHeightChanged:l,scrollTopChanged:a}}},Ri=class extends D{constructor(e){super();this._scrollableBrand=void 0;this._onScroll=this._register(new v);this.onScroll=this._onScroll.event;this._smoothScrollDuration=e.smoothScrollDuration,this._scheduleAtNextAnimationFrame=e.scheduleAtNextAnimationFrame,this._state=new cs(e.forceIntegerValues,0,0,0,0,0,0),this._smoothScrolling=null}dispose(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),super.dispose()}setSmoothScrollDuration(e){this._smoothScrollDuration=e}validateScrollPosition(e){return this._state.withScrollPosition(e)}getScrollDimensions(){return this._state}setScrollDimensions(e,i){let r=this._state.withScrollDimensions(e,i);this._setState(r,!!this._smoothScrolling),this._smoothScrolling?.acceptScrollDimensions(this._state)}getFutureScrollPosition(){return this._smoothScrolling?this._smoothScrolling.to:this._state}getCurrentScrollPosition(){return this._state}setScrollPositionNow(e){let i=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(i,!1)}setScrollPositionSmooth(e,i){if(this._smoothScrollDuration===0)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:typeof e.scrollLeft>\"u\"?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:typeof e.scrollTop>\"u\"?this._smoothScrolling.to.scrollTop:e.scrollTop};let r=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===r.scrollLeft&&this._smoothScrolling.to.scrollTop===r.scrollTop)return;let n;i?n=new Nr(this._smoothScrolling.from,r,this._smoothScrolling.startTime,this._smoothScrolling.duration):n=this._smoothScrolling.combine(this._state,r,this._smoothScrollDuration),this._smoothScrolling.dispose(),this._smoothScrolling=n}else{let r=this._state.withScrollPosition(e);this._smoothScrolling=Nr.start(this._state,r,this._smoothScrollDuration)}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}hasPendingScrollAnimation(){return!!this._smoothScrolling}_performSmoothScrolling(){if(!this._smoothScrolling)return;let e=this._smoothScrolling.tick(),i=this._state.withScrollPosition(e);if(this._setState(i,!0),!!this._smoothScrolling){if(e.isDone){this._smoothScrolling.dispose(),this._smoothScrolling=null;return}this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(()=>{this._smoothScrolling&&(this._smoothScrolling.animationFrameDisposable=null,this._performSmoothScrolling())})}}_setState(e,i){let r=this._state;r.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(r,i)))}},Br=class{constructor(t,e,i){this.scrollLeft=t,this.scrollTop=e,this.isDone=i}};function as(s,t){let e=t-s;return function(i){return s+e*ka(i)}}function La(s,t,e){return function(i){return i<e?s(i/e):t((i-e)/(1-e))}}var Nr=class s{constructor(t,e,i,r){this.from=t,this.to=e,this.duration=r,this.startTime=i,this.animationFrameDisposable=null,this._initAnimations()}_initAnimations(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)}_initAnimation(t,e,i){if(Math.abs(t-e)>2.5*i){let n,o;return t<e?(n=t+.75*i,o=e-.75*i):(n=t-.75*i,o=e+.75*i),La(as(t,n),as(o,e),.33)}return as(t,e)}dispose(){this.animationFrameDisposable!==null&&(this.animationFrameDisposable.dispose(),this.animationFrameDisposable=null)}acceptScrollDimensions(t){this.to=t.withScrollPosition(this.to),this._initAnimations()}tick(){return this._tick(Date.now())}_tick(t){let e=(t-this.startTime)/this.duration;if(e<1){let i=this.scrollLeft(e),r=this.scrollTop(e);return new Br(i,r,!1)}return new Br(this.to.scrollLeft,this.to.scrollTop,!0)}combine(t,e,i){return s.start(t,e,i)}static start(t,e,i){i=i+10;let r=Date.now()-10;return new s(t,e,r,i)}};function Aa(s){return Math.pow(s,3)}function ka(s){return 1-Aa(1-s)}var Fr=class extends D{constructor(t,e,i){super(),this._visibility=t,this._visibleClassName=e,this._invisibleClassName=i,this._domNode=null,this._isVisible=!1,this._isNeeded=!1,this._rawShouldBeVisible=!1,this._shouldBeVisible=!1,this._revealTimer=this._register(new Ye)}setVisibility(t){this._visibility!==t&&(this._visibility=t,this._updateShouldBeVisible())}setShouldBeVisible(t){this._rawShouldBeVisible=t,this._updateShouldBeVisible()}_applyVisibilitySetting(){return this._visibility===2?!1:this._visibility===3?!0:this._rawShouldBeVisible}_updateShouldBeVisible(){let t=this._applyVisibilitySetting();this._shouldBeVisible!==t&&(this._shouldBeVisible=t,this.ensureVisibility())}setIsNeeded(t){this._isNeeded!==t&&(this._isNeeded=t,this.ensureVisibility())}setDomNode(t){this._domNode=t,this._domNode.setClassName(this._invisibleClassName),this.setShouldBeVisible(!1)}ensureVisibility(){if(!this._isNeeded){this._hide(!1);return}this._shouldBeVisible?this._reveal():this._hide(!0)}_reveal(){this._isVisible||(this._isVisible=!0,this._revealTimer.setIfNotSet(()=>{this._domNode?.setClassName(this._visibleClassName)},0))}_hide(t){this._revealTimer.cancel(),this._isVisible&&(this._isVisible=!1,this._domNode?.setClassName(this._invisibleClassName+(t?\" fade\":\"\")))}};var Ca=140,Ut=class extends lt{constructor(t){super(),this._lazyRender=t.lazyRender,this._host=t.host,this._scrollable=t.scrollable,this._scrollByPage=t.scrollByPage,this._scrollbarState=t.scrollbarState,this._visibilityController=this._register(new Fr(t.visibility,\"visible scrollbar \"+t.extraScrollbarClassName,\"invisible scrollbar \"+t.extraScrollbarClassName)),this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._pointerMoveMonitor=this._register(new Wt),this._shouldRender=!0,this.domNode=_t(document.createElement(\"div\")),this.domNode.setAttribute(\"role\",\"presentation\"),this.domNode.setAttribute(\"aria-hidden\",\"true\"),this._visibilityController.setDomNode(this.domNode),this.domNode.setPosition(\"absolute\"),this._register(L(this.domNode.domNode,Y.POINTER_DOWN,e=>this._domNodePointerDown(e)))}_createArrow(t){let e=this._register(new Or(t));this.domNode.domNode.appendChild(e.bgDomNode),this.domNode.domNode.appendChild(e.domNode)}_createSlider(t,e,i,r){this.slider=_t(document.createElement(\"div\")),this.slider.setClassName(\"slider\"),this.slider.setPosition(\"absolute\"),this.slider.setTop(t),this.slider.setLeft(e),typeof i==\"number\"&&this.slider.setWidth(i),typeof r==\"number\"&&this.slider.setHeight(r),this.slider.setLayerHinting(!0),this.slider.setContain(\"strict\"),this.domNode.domNode.appendChild(this.slider.domNode),this._register(L(this.slider.domNode,Y.POINTER_DOWN,n=>{n.button===0&&(n.preventDefault(),this._sliderPointerDown(n))})),this.onclick(this.slider.domNode,n=>{n.leftButton&&n.stopPropagation()})}_onElementSize(t){return this._scrollbarState.setVisibleSize(t)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollSize(t){return this._scrollbarState.setScrollSize(t)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}_onElementScrollPosition(t){return this._scrollbarState.setScrollPosition(t)&&(this._visibilityController.setIsNeeded(this._scrollbarState.isNeeded()),this._shouldRender=!0,this._lazyRender||this.render()),this._shouldRender}beginReveal(){this._visibilityController.setShouldBeVisible(!0)}beginHide(){this._visibilityController.setShouldBeVisible(!1)}render(){this._shouldRender&&(this._shouldRender=!1,this._renderDomNode(this._scrollbarState.getRectangleLargeSize(),this._scrollbarState.getRectangleSmallSize()),this._updateSlider(this._scrollbarState.getSliderSize(),this._scrollbarState.getArrowSize()+this._scrollbarState.getSliderPosition()))}_domNodePointerDown(t){t.target===this.domNode.domNode&&this._onPointerDown(t)}delegatePointerDown(t){let e=this.domNode.domNode.getClientRects()[0].top,i=e+this._scrollbarState.getSliderPosition(),r=e+this._scrollbarState.getSliderPosition()+this._scrollbarState.getSliderSize(),n=this._sliderPointerPosition(t);i<=n&&n<=r?t.button===0&&(t.preventDefault(),this._sliderPointerDown(t)):this._onPointerDown(t)}_onPointerDown(t){let e,i;if(t.target===this.domNode.domNode&&typeof t.offsetX==\"number\"&&typeof t.offsetY==\"number\")e=t.offsetX,i=t.offsetY;else{let n=Fo(this.domNode.domNode);e=t.pageX-n.left,i=t.pageY-n.top}let r=this._pointerDownRelativePosition(e,i);this._setDesiredScrollPositionNow(this._scrollByPage?this._scrollbarState.getDesiredScrollPositionFromOffsetPaged(r):this._scrollbarState.getDesiredScrollPositionFromOffset(r)),t.button===0&&(t.preventDefault(),this._sliderPointerDown(t))}_sliderPointerDown(t){if(!t.target||!(t.target instanceof Element))return;let e=this._sliderPointerPosition(t),i=this._sliderOrthogonalPointerPosition(t),r=this._scrollbarState.clone();this.slider.toggleClassName(\"active\",!0),this._pointerMoveMonitor.startMonitoring(t.target,t.pointerId,t.buttons,n=>{let o=this._sliderOrthogonalPointerPosition(n),l=Math.abs(o-i);if(wr&&l>Ca){this._setDesiredScrollPositionNow(r.getScrollPosition());return}let u=this._sliderPointerPosition(n)-e;this._setDesiredScrollPositionNow(r.getDesiredScrollPositionFromDelta(u))},()=>{this.slider.toggleClassName(\"active\",!1),this._host.onDragEnd()}),this._host.onDragStart()}_setDesiredScrollPositionNow(t){let e={};this.writeScrollPosition(e,t),this._scrollable.setScrollPositionNow(e)}updateScrollbarSize(t){this._updateScrollbarSize(t),this._scrollbarState.setScrollbarSize(t),this._shouldRender=!0,this._lazyRender||this.render()}isNeeded(){return this._scrollbarState.isNeeded()}};var Kt=class s{constructor(t,e,i,r,n,o){this._scrollbarSize=Math.round(e),this._oppositeScrollbarSize=Math.round(i),this._arrowSize=Math.round(t),this._visibleSize=r,this._scrollSize=n,this._scrollPosition=o,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}clone(){return new s(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize,this._visibleSize,this._scrollSize,this._scrollPosition)}setVisibleSize(t){let e=Math.round(t);return this._visibleSize!==e?(this._visibleSize=e,this._refreshComputedValues(),!0):!1}setScrollSize(t){let e=Math.round(t);return this._scrollSize!==e?(this._scrollSize=e,this._refreshComputedValues(),!0):!1}setScrollPosition(t){let e=Math.round(t);return this._scrollPosition!==e?(this._scrollPosition=e,this._refreshComputedValues(),!0):!1}setScrollbarSize(t){this._scrollbarSize=Math.round(t)}setOppositeScrollbarSize(t){this._oppositeScrollbarSize=Math.round(t)}static _computeValues(t,e,i,r,n){let o=Math.max(0,i-t),l=Math.max(0,o-2*e),a=r>0&&r>i;if(!a)return{computedAvailableSize:Math.round(o),computedIsNeeded:a,computedSliderSize:Math.round(l),computedSliderRatio:0,computedSliderPosition:0};let u=Math.round(Math.max(20,Math.floor(i*l/r))),h=(l-u)/(r-i),c=n*h;return{computedAvailableSize:Math.round(o),computedIsNeeded:a,computedSliderSize:Math.round(u),computedSliderRatio:h,computedSliderPosition:Math.round(c)}}_refreshComputedValues(){let t=s._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition}getArrowSize(){return this._arrowSize}getScrollPosition(){return this._scrollPosition}getRectangleLargeSize(){return this._computedAvailableSize}getRectangleSmallSize(){return this._scrollbarSize}isNeeded(){return this._computedIsNeeded}getSliderSize(){return this._computedSliderSize}getSliderPosition(){return this._computedSliderPosition}getDesiredScrollPositionFromOffset(t){if(!this._computedIsNeeded)return 0;let e=t-this._arrowSize-this._computedSliderSize/2;return Math.round(e/this._computedSliderRatio)}getDesiredScrollPositionFromOffsetPaged(t){if(!this._computedIsNeeded)return 0;let e=t-this._arrowSize,i=this._scrollPosition;return e<this._computedSliderPosition?i-=this._visibleSize:i+=this._visibleSize,i}getDesiredScrollPositionFromDelta(t){if(!this._computedIsNeeded)return 0;let e=this._computedSliderPosition+t;return Math.round(e/this._computedSliderRatio)}};var Wr=class extends Ut{constructor(t,e,i){let r=t.getScrollDimensions(),n=t.getCurrentScrollPosition();if(super({lazyRender:e.lazyRender,host:i,scrollbarState:new Kt(e.horizontalHasArrows?e.arrowSize:0,e.horizontal===2?0:e.horizontalScrollbarSize,e.vertical===2?0:e.verticalScrollbarSize,r.width,r.scrollWidth,n.scrollLeft),visibility:e.horizontal,extraScrollbarClassName:\"horizontal\",scrollable:t,scrollByPage:e.scrollByPage}),e.horizontalHasArrows)throw new Error(\"horizontalHasArrows is not supported in xterm.js\");this._createSlider(Math.floor((e.horizontalScrollbarSize-e.horizontalSliderSize)/2),0,void 0,e.horizontalSliderSize)}_updateSlider(t,e){this.slider.setWidth(t),this.slider.setLeft(e)}_renderDomNode(t,e){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setLeft(0),this.domNode.setBottom(0)}onDidScroll(t){return this._shouldRender=this._onElementScrollSize(t.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(t.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(t.width)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(t,e){return t}_sliderPointerPosition(t){return t.pageX}_sliderOrthogonalPointerPosition(t){return t.pageY}_updateScrollbarSize(t){this.slider.setHeight(t)}writeScrollPosition(t,e){t.scrollLeft=e}updateOptions(t){this.updateScrollbarSize(t.horizontal===2?0:t.horizontalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(t.vertical===2?0:t.verticalScrollbarSize),this._visibilityController.setVisibility(t.horizontal),this._scrollByPage=t.scrollByPage}};var Ur=class extends Ut{constructor(t,e,i){let r=t.getScrollDimensions(),n=t.getCurrentScrollPosition();if(super({lazyRender:e.lazyRender,host:i,scrollbarState:new Kt(e.verticalHasArrows?e.arrowSize:0,e.vertical===2?0:e.verticalScrollbarSize,0,r.height,r.scrollHeight,n.scrollTop),visibility:e.vertical,extraScrollbarClassName:\"vertical\",scrollable:t,scrollByPage:e.scrollByPage}),e.verticalHasArrows)throw new Error(\"horizontalHasArrows is not supported in xterm.js\");this._createSlider(0,Math.floor((e.verticalScrollbarSize-e.verticalSliderSize)/2),e.verticalSliderSize,void 0)}_updateSlider(t,e){this.slider.setHeight(t),this.slider.setTop(e)}_renderDomNode(t,e){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setRight(0),this.domNode.setTop(0)}onDidScroll(t){return this._shouldRender=this._onElementScrollSize(t.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(t.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(t.height)||this._shouldRender,this._shouldRender}_pointerDownRelativePosition(t,e){return e}_sliderPointerPosition(t){return t.pageY}_sliderOrthogonalPointerPosition(t){return t.pageX}_updateScrollbarSize(t){this.slider.setWidth(t)}writeScrollPosition(t,e){t.scrollTop=e}updateOptions(t){this.updateScrollbarSize(t.vertical===2?0:t.verticalScrollbarSize),this._scrollbarState.setOppositeScrollbarSize(0),this._visibilityController.setVisibility(t.vertical),this._scrollByPage=t.scrollByPage}};var Ma=500,Ko=50,zo=!0,us=class{constructor(t,e,i){this.timestamp=t,this.deltaX=e,this.deltaY=i,this.score=0}},zr=class zr{constructor(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}isPhysicalMouseWheel(){if(this._front===-1&&this._rear===-1)return!1;let t=1,e=0,i=1,r=this._rear;do{let n=r===this._front?t:Math.pow(2,-i);if(t-=n,e+=this._memory[r].score*n,r===this._front)break;r=(this._capacity+r-1)%this._capacity,i++}while(!0);return e<=.5}acceptStandardWheelEvent(t){if(Ti){let e=be(t.browserEvent),i=mo(e);this.accept(Date.now(),t.deltaX*i,t.deltaY*i)}else this.accept(Date.now(),t.deltaX,t.deltaY)}accept(t,e,i){let r=null,n=new us(t,e,i);this._front===-1&&this._rear===-1?(this._memory[0]=n,this._front=0,this._rear=0):(r=this._memory[this._rear],this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=n),n.score=this._computeScore(n,r)}_computeScore(t,e){if(Math.abs(t.deltaX)>0&&Math.abs(t.deltaY)>0)return 1;let i=.5;if((!this._isAlmostInt(t.deltaX)||!this._isAlmostInt(t.deltaY))&&(i+=.25),e){let r=Math.abs(t.deltaX),n=Math.abs(t.deltaY),o=Math.abs(e.deltaX),l=Math.abs(e.deltaY),a=Math.max(Math.min(r,o),1),u=Math.max(Math.min(n,l),1),h=Math.max(r,o),c=Math.max(n,l);h%a===0&&c%u===0&&(i-=.5)}return Math.min(Math.max(i,0),1)}_isAlmostInt(t){return Math.abs(Math.round(t)-t)<.01}};zr.INSTANCE=new zr;var hs=zr,ds=class extends lt{constructor(e,i,r){super();this._onScroll=this._register(new v);this.onScroll=this._onScroll.event;this._onWillScroll=this._register(new v);this.onWillScroll=this._onWillScroll.event;this._options=Pa(i),this._scrollable=r,this._register(this._scrollable.onScroll(o=>{this._onWillScroll.fire(o),this._onDidScroll(o),this._onScroll.fire(o)}));let n={onMouseWheel:o=>this._onMouseWheel(o),onDragStart:()=>this._onDragStart(),onDragEnd:()=>this._onDragEnd()};this._verticalScrollbar=this._register(new Ur(this._scrollable,this._options,n)),this._horizontalScrollbar=this._register(new Wr(this._scrollable,this._options,n)),this._domNode=document.createElement(\"div\"),this._domNode.className=\"xterm-scrollable-element \"+this._options.className,this._domNode.setAttribute(\"role\",\"presentation\"),this._domNode.style.position=\"relative\",this._domNode.appendChild(e),this._domNode.appendChild(this._horizontalScrollbar.domNode.domNode),this._domNode.appendChild(this._verticalScrollbar.domNode.domNode),this._options.useShadows?(this._leftShadowDomNode=_t(document.createElement(\"div\")),this._leftShadowDomNode.setClassName(\"shadow\"),this._domNode.appendChild(this._leftShadowDomNode.domNode),this._topShadowDomNode=_t(document.createElement(\"div\")),this._topShadowDomNode.setClassName(\"shadow\"),this._domNode.appendChild(this._topShadowDomNode.domNode),this._topLeftShadowDomNode=_t(document.createElement(\"div\")),this._topLeftShadowDomNode.setClassName(\"shadow\"),this._domNode.appendChild(this._topLeftShadowDomNode.domNode)):(this._leftShadowDomNode=null,this._topShadowDomNode=null,this._topLeftShadowDomNode=null),this._listenOnDomNode=this._options.listenOnDomNode||this._domNode,this._mouseWheelToDispose=[],this._setListeningToMouseWheel(this._options.handleMouseWheel),this.onmouseover(this._listenOnDomNode,o=>this._onMouseOver(o)),this.onmouseleave(this._listenOnDomNode,o=>this._onMouseLeave(o)),this._hideTimeout=this._register(new Ye),this._isDragging=!1,this._mouseIsOver=!1,this._shouldRender=!0,this._revealOnScroll=!0}get options(){return this._options}dispose(){this._mouseWheelToDispose=Ne(this._mouseWheelToDispose),super.dispose()}getDomNode(){return this._domNode}getOverviewRulerLayoutInfo(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}}delegateVerticalScrollbarPointerDown(e){this._verticalScrollbar.delegatePointerDown(e)}getScrollDimensions(){return this._scrollable.getScrollDimensions()}setScrollDimensions(e){this._scrollable.setScrollDimensions(e,!1)}updateClassName(e){this._options.className=e,Te&&(this._options.className+=\" mac\"),this._domNode.className=\"xterm-scrollable-element \"+this._options.className}updateOptions(e){typeof e.handleMouseWheel<\"u\"&&(this._options.handleMouseWheel=e.handleMouseWheel,this._setListeningToMouseWheel(this._options.handleMouseWheel)),typeof e.mouseWheelScrollSensitivity<\"u\"&&(this._options.mouseWheelScrollSensitivity=e.mouseWheelScrollSensitivity),typeof e.fastScrollSensitivity<\"u\"&&(this._options.fastScrollSensitivity=e.fastScrollSensitivity),typeof e.scrollPredominantAxis<\"u\"&&(this._options.scrollPredominantAxis=e.scrollPredominantAxis),typeof e.horizontal<\"u\"&&(this._options.horizontal=e.horizontal),typeof e.vertical<\"u\"&&(this._options.vertical=e.vertical),typeof e.horizontalScrollbarSize<\"u\"&&(this._options.horizontalScrollbarSize=e.horizontalScrollbarSize),typeof e.verticalScrollbarSize<\"u\"&&(this._options.verticalScrollbarSize=e.verticalScrollbarSize),typeof e.scrollByPage<\"u\"&&(this._options.scrollByPage=e.scrollByPage),this._horizontalScrollbar.updateOptions(this._options),this._verticalScrollbar.updateOptions(this._options),this._options.lazyRender||this._render()}setRevealOnScroll(e){this._revealOnScroll=e}delegateScrollFromMouseWheelEvent(e){this._onMouseWheel(new xi(e))}_setListeningToMouseWheel(e){if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=Ne(this._mouseWheelToDispose),e)){let r=n=>{this._onMouseWheel(new xi(n))};this._mouseWheelToDispose.push(L(this._listenOnDomNode,Y.MOUSE_WHEEL,r,{passive:!1}))}}_onMouseWheel(e){if(e.browserEvent?.defaultPrevented)return;let i=hs.INSTANCE;zo&&i.acceptStandardWheelEvent(e);let r=!1;if(e.deltaY||e.deltaX){let o=e.deltaY*this._options.mouseWheelScrollSensitivity,l=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.scrollPredominantAxis&&(this._options.scrollYToX&&l+o===0?l=o=0:Math.abs(o)>=Math.abs(l)?l=0:o=0),this._options.flipAxes&&([o,l]=[l,o]);let a=!Te&&e.browserEvent&&e.browserEvent.shiftKey;(this._options.scrollYToX||a)&&!l&&(l=o,o=0),e.browserEvent&&e.browserEvent.altKey&&(l=l*this._options.fastScrollSensitivity,o=o*this._options.fastScrollSensitivity);let u=this._scrollable.getFutureScrollPosition(),h={};if(o){let c=Ko*o,d=u.scrollTop-(c<0?Math.floor(c):Math.ceil(c));this._verticalScrollbar.writeScrollPosition(h,d)}if(l){let c=Ko*l,d=u.scrollLeft-(c<0?Math.floor(c):Math.ceil(c));this._horizontalScrollbar.writeScrollPosition(h,d)}h=this._scrollable.validateScrollPosition(h),(u.scrollLeft!==h.scrollLeft||u.scrollTop!==h.scrollTop)&&(zo&&this._options.mouseWheelSmoothScroll&&i.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(h):this._scrollable.setScrollPositionNow(h),r=!0)}let n=r;!n&&this._options.alwaysConsumeMouseWheel&&(n=!0),!n&&this._options.consumeMouseWheelIfScrollbarIsNeeded&&(this._verticalScrollbar.isNeeded()||this._horizontalScrollbar.isNeeded())&&(n=!0),n&&(e.preventDefault(),e.stopPropagation())}_onDidScroll(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()}renderNow(){if(!this._options.lazyRender)throw new Error(\"Please use `lazyRender` together with `renderNow`!\");this._render()}_render(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){let e=this._scrollable.getCurrentScrollPosition(),i=e.scrollTop>0,r=e.scrollLeft>0,n=r?\" left\":\"\",o=i?\" top\":\"\",l=r||i?\" top-left-corner\":\"\";this._leftShadowDomNode.setClassName(`shadow${n}`),this._topShadowDomNode.setClassName(`shadow${o}`),this._topLeftShadowDomNode.setClassName(`shadow${l}${o}${n}`)}}_onDragStart(){this._isDragging=!0,this._reveal()}_onDragEnd(){this._isDragging=!1,this._hide()}_onMouseLeave(e){this._mouseIsOver=!1,this._hide()}_onMouseOver(e){this._mouseIsOver=!0,this._reveal()}_reveal(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()}_hide(){!this._mouseIsOver&&!this._isDragging&&(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())}_scheduleHide(){!this._mouseIsOver&&!this._isDragging&&this._hideTimeout.cancelAndSet(()=>this._hide(),Ma)}};var Kr=class extends ds{constructor(t,e,i){super(t,e,i)}setScrollPosition(t){t.reuseAnimation?this._scrollable.setScrollPositionSmooth(t,t.reuseAnimation):this._scrollable.setScrollPositionNow(t)}getScrollPosition(){return this._scrollable.getCurrentScrollPosition()}};function Pa(s){let t={lazyRender:typeof s.lazyRender<\"u\"?s.lazyRender:!1,className:typeof s.className<\"u\"?s.className:\"\",useShadows:typeof s.useShadows<\"u\"?s.useShadows:!0,handleMouseWheel:typeof s.handleMouseWheel<\"u\"?s.handleMouseWheel:!0,flipAxes:typeof s.flipAxes<\"u\"?s.flipAxes:!1,consumeMouseWheelIfScrollbarIsNeeded:typeof s.consumeMouseWheelIfScrollbarIsNeeded<\"u\"?s.consumeMouseWheelIfScrollbarIsNeeded:!1,alwaysConsumeMouseWheel:typeof s.alwaysConsumeMouseWheel<\"u\"?s.alwaysConsumeMouseWheel:!1,scrollYToX:typeof s.scrollYToX<\"u\"?s.scrollYToX:!1,mouseWheelScrollSensitivity:typeof s.mouseWheelScrollSensitivity<\"u\"?s.mouseWheelScrollSensitivity:1,fastScrollSensitivity:typeof s.fastScrollSensitivity<\"u\"?s.fastScrollSensitivity:5,scrollPredominantAxis:typeof s.scrollPredominantAxis<\"u\"?s.scrollPredominantAxis:!0,mouseWheelSmoothScroll:typeof s.mouseWheelSmoothScroll<\"u\"?s.mouseWheelSmoothScroll:!0,arrowSize:typeof s.arrowSize<\"u\"?s.arrowSize:11,listenOnDomNode:typeof s.listenOnDomNode<\"u\"?s.listenOnDomNode:null,horizontal:typeof s.horizontal<\"u\"?s.horizontal:1,horizontalScrollbarSize:typeof s.horizontalScrollbarSize<\"u\"?s.horizontalScrollbarSize:10,horizontalSliderSize:typeof s.horizontalSliderSize<\"u\"?s.horizontalSliderSize:0,horizontalHasArrows:typeof s.horizontalHasArrows<\"u\"?s.horizontalHasArrows:!1,vertical:typeof s.vertical<\"u\"?s.vertical:1,verticalScrollbarSize:typeof s.verticalScrollbarSize<\"u\"?s.verticalScrollbarSize:10,verticalHasArrows:typeof s.verticalHasArrows<\"u\"?s.verticalHasArrows:!1,verticalSliderSize:typeof s.verticalSliderSize<\"u\"?s.verticalSliderSize:0,scrollByPage:typeof s.scrollByPage<\"u\"?s.scrollByPage:!1};return t.horizontalSliderSize=typeof s.horizontalSliderSize<\"u\"?s.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=typeof s.verticalSliderSize<\"u\"?s.verticalSliderSize:t.verticalScrollbarSize,Te&&(t.className+=\" mac\"),t}var zt=class extends D{constructor(e,i,r,n,o,l,a,u){super();this._bufferService=r;this._optionsService=a;this._renderService=u;this._onRequestScrollLines=this._register(new v);this.onRequestScrollLines=this._onRequestScrollLines.event;this._isSyncing=!1;this._isHandlingScroll=!1;this._suppressOnScrollHandler=!1;let h=this._register(new Ri({forceIntegerValues:!1,smoothScrollDuration:this._optionsService.rawOptions.smoothScrollDuration,scheduleAtNextAnimationFrame:c=>mt(n.window,c)}));this._register(this._optionsService.onSpecificOptionChange(\"smoothScrollDuration\",()=>{h.setSmoothScrollDuration(this._optionsService.rawOptions.smoothScrollDuration)})),this._scrollableElement=this._register(new Kr(i,{vertical:1,horizontal:2,useShadows:!1,mouseWheelSmoothScroll:!0,...this._getChangeOptions()},h)),this._register(this._optionsService.onMultipleOptionChange([\"scrollSensitivity\",\"fastScrollSensitivity\",\"overviewRuler\"],()=>this._scrollableElement.updateOptions(this._getChangeOptions()))),this._register(o.onProtocolChange(c=>{this._scrollableElement.updateOptions({handleMouseWheel:!(c&16)})})),this._scrollableElement.setScrollDimensions({height:0,scrollHeight:0}),this._register($.runAndSubscribe(l.onChangeColors,()=>{this._scrollableElement.getDomNode().style.backgroundColor=l.colors.background.css})),e.appendChild(this._scrollableElement.getDomNode()),this._register(C(()=>this._scrollableElement.getDomNode().remove())),this._styleElement=n.mainDocument.createElement(\"style\"),i.appendChild(this._styleElement),this._register(C(()=>this._styleElement.remove())),this._register($.runAndSubscribe(l.onChangeColors,()=>{this._styleElement.textContent=[\".xterm .xterm-scrollable-element > .scrollbar > .slider {\",` background: ${l.colors.scrollbarSliderBackground.css};`,\"}\",\".xterm .xterm-scrollable-element > .scrollbar > .slider:hover {\",` background: ${l.colors.scrollbarSliderHoverBackground.css};`,\"}\",\".xterm .xterm-scrollable-element > .scrollbar > .slider.active {\",` background: ${l.colors.scrollbarSliderActiveBackground.css};`,\"}\"].join(`\n`)})),this._register(this._bufferService.onResize(()=>this.queueSync())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._latestYDisp=void 0,this.queueSync()})),this._register(this._bufferService.onScroll(()=>this._sync())),this._register(this._scrollableElement.onScroll(c=>this._handleScroll(c)))}scrollLines(e){let i=this._scrollableElement.getScrollPosition();this._scrollableElement.setScrollPosition({reuseAnimation:!0,scrollTop:i.scrollTop+e*this._renderService.dimensions.css.cell.height})}scrollToLine(e,i){i&&(this._latestYDisp=e),this._scrollableElement.setScrollPosition({reuseAnimation:!i,scrollTop:e*this._renderService.dimensions.css.cell.height})}_getChangeOptions(){return{mouseWheelScrollSensitivity:this._optionsService.rawOptions.scrollSensitivity,fastScrollSensitivity:this._optionsService.rawOptions.fastScrollSensitivity,verticalScrollbarSize:this._optionsService.rawOptions.overviewRuler?.width||14}}queueSync(e){e!==void 0&&(this._latestYDisp=e),this._queuedAnimationFrame===void 0&&(this._queuedAnimationFrame=this._renderService.addRefreshCallback(()=>{this._queuedAnimationFrame=void 0,this._sync(this._latestYDisp)}))}_sync(e=this._bufferService.buffer.ydisp){!this._renderService||this._isSyncing||(this._isSyncing=!0,this._suppressOnScrollHandler=!0,this._scrollableElement.setScrollDimensions({height:this._renderService.dimensions.css.canvas.height,scrollHeight:this._renderService.dimensions.css.cell.height*this._bufferService.buffer.lines.length}),this._suppressOnScrollHandler=!1,e!==this._latestYDisp&&this._scrollableElement.setScrollPosition({scrollTop:e*this._renderService.dimensions.css.cell.height}),this._isSyncing=!1)}_handleScroll(e){if(!this._renderService||this._isHandlingScroll||this._suppressOnScrollHandler)return;this._isHandlingScroll=!0;let i=Math.round(e.scrollTop/this._renderService.dimensions.css.cell.height),r=i-this._bufferService.buffer.ydisp;r!==0&&(this._latestYDisp=i,this._onRequestScrollLines.fire(r)),this._isHandlingScroll=!1}};zt=M([S(2,F),S(3,ae),S(4,rr),S(5,Re),S(6,H),S(7,ce)],zt);var Gt=class extends D{constructor(e,i,r,n,o){super();this._screenElement=e;this._bufferService=i;this._coreBrowserService=r;this._decorationService=n;this._renderService=o;this._decorationElements=new Map;this._altBufferIsActive=!1;this._dimensionsChanged=!1;this._container=document.createElement(\"div\"),this._container.classList.add(\"xterm-decoration-container\"),this._screenElement.appendChild(this._container),this._register(this._renderService.onRenderedViewportChange(()=>this._doRefreshDecorations())),this._register(this._renderService.onDimensionsChange(()=>{this._dimensionsChanged=!0,this._queueRefresh()})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._altBufferIsActive=this._bufferService.buffer===this._bufferService.buffers.alt})),this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh())),this._register(this._decorationService.onDecorationRemoved(l=>this._removeDecoration(l))),this._register(C(()=>{this._container.remove(),this._decorationElements.clear()}))}_queueRefresh(){this._animationFrame===void 0&&(this._animationFrame=this._renderService.addRefreshCallback(()=>{this._doRefreshDecorations(),this._animationFrame=void 0}))}_doRefreshDecorations(){for(let e of this._decorationService.decorations)this._renderDecoration(e);this._dimensionsChanged=!1}_renderDecoration(e){this._refreshStyle(e),this._dimensionsChanged&&this._refreshXPosition(e)}_createElement(e){let i=this._coreBrowserService.mainDocument.createElement(\"div\");i.classList.add(\"xterm-decoration\"),i.classList.toggle(\"xterm-decoration-top-layer\",e?.options?.layer===\"top\"),i.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,i.style.height=`${(e.options.height||1)*this._renderService.dimensions.css.cell.height}px`,i.style.top=`${(e.marker.line-this._bufferService.buffers.active.ydisp)*this._renderService.dimensions.css.cell.height}px`,i.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`;let r=e.options.x??0;return r&&r>this._bufferService.cols&&(i.style.display=\"none\"),this._refreshXPosition(e,i),i}_refreshStyle(e){let i=e.marker.line-this._bufferService.buffers.active.ydisp;if(i<0||i>=this._bufferService.rows)e.element&&(e.element.style.display=\"none\",e.onRenderEmitter.fire(e.element));else{let r=this._decorationElements.get(e);r||(r=this._createElement(e),e.element=r,this._decorationElements.set(e,r),this._container.appendChild(r),e.onDispose(()=>{this._decorationElements.delete(e),r.remove()})),r.style.display=this._altBufferIsActive?\"none\":\"block\",this._altBufferIsActive||(r.style.width=`${Math.round((e.options.width||1)*this._renderService.dimensions.css.cell.width)}px`,r.style.height=`${(e.options.height||1)*this._renderService.dimensions.css.cell.height}px`,r.style.top=`${i*this._renderService.dimensions.css.cell.height}px`,r.style.lineHeight=`${this._renderService.dimensions.css.cell.height}px`),e.onRenderEmitter.fire(r)}}_refreshXPosition(e,i=e.element){if(!i)return;let r=e.options.x??0;(e.options.anchor||\"left\")===\"right\"?i.style.right=r?`${r*this._renderService.dimensions.css.cell.width}px`:\"\":i.style.left=r?`${r*this._renderService.dimensions.css.cell.width}px`:\"\"}_removeDecoration(e){this._decorationElements.get(e)?.remove(),this._decorationElements.delete(e),e.dispose()}};Gt=M([S(1,F),S(2,ae),S(3,Be),S(4,ce)],Gt);var Gr=class{constructor(){this._zones=[];this._zonePool=[];this._zonePoolIndex=0;this._linePadding={full:0,left:0,center:0,right:0}}get zones(){return this._zonePool.length=Math.min(this._zonePool.length,this._zones.length),this._zones}clear(){this._zones.length=0,this._zonePoolIndex=0}addDecoration(t){if(t.options.overviewRulerOptions){for(let e of this._zones)if(e.color===t.options.overviewRulerOptions.color&&e.position===t.options.overviewRulerOptions.position){if(this._lineIntersectsZone(e,t.marker.line))return;if(this._lineAdjacentToZone(e,t.marker.line,t.options.overviewRulerOptions.position)){this._addLineToZone(e,t.marker.line);return}}if(this._zonePoolIndex<this._zonePool.length){this._zonePool[this._zonePoolIndex].color=t.options.overviewRulerOptions.color,this._zonePool[this._zonePoolIndex].position=t.options.overviewRulerOptions.position,this._zonePool[this._zonePoolIndex].startBufferLine=t.marker.line,this._zonePool[this._zonePoolIndex].endBufferLine=t.marker.line,this._zones.push(this._zonePool[this._zonePoolIndex++]);return}this._zones.push({color:t.options.overviewRulerOptions.color,position:t.options.overviewRulerOptions.position,startBufferLine:t.marker.line,endBufferLine:t.marker.line}),this._zonePool.push(this._zones[this._zones.length-1]),this._zonePoolIndex++}}setPadding(t){this._linePadding=t}_lineIntersectsZone(t,e){return e>=t.startBufferLine&&e<=t.endBufferLine}_lineAdjacentToZone(t,e,i){return e>=t.startBufferLine-this._linePadding[i||\"full\"]&&e<=t.endBufferLine+this._linePadding[i||\"full\"]}_addLineToZone(t,e){t.startBufferLine=Math.min(t.startBufferLine,e),t.endBufferLine=Math.max(t.endBufferLine,e)}};var We={full:0,left:0,center:0,right:0},at={full:0,left:0,center:0,right:0},Li={full:0,left:0,center:0,right:0},bt=class extends D{constructor(e,i,r,n,o,l,a,u){super();this._viewportElement=e;this._screenElement=i;this._bufferService=r;this._decorationService=n;this._renderService=o;this._optionsService=l;this._themeService=a;this._coreBrowserService=u;this._colorZoneStore=new Gr;this._shouldUpdateDimensions=!0;this._shouldUpdateAnchor=!0;this._lastKnownBufferLength=0;this._canvas=this._coreBrowserService.mainDocument.createElement(\"canvas\"),this._canvas.classList.add(\"xterm-decoration-overview-ruler\"),this._refreshCanvasDimensions(),this._viewportElement.parentElement?.insertBefore(this._canvas,this._viewportElement),this._register(C(()=>this._canvas?.remove()));let h=this._canvas.getContext(\"2d\");if(h)this._ctx=h;else throw new Error(\"Ctx cannot be null\");this._register(this._decorationService.onDecorationRegistered(()=>this._queueRefresh(void 0,!0))),this._register(this._decorationService.onDecorationRemoved(()=>this._queueRefresh(void 0,!0))),this._register(this._renderService.onRenderedViewportChange(()=>this._queueRefresh())),this._register(this._bufferService.buffers.onBufferActivate(()=>{this._canvas.style.display=this._bufferService.buffer===this._bufferService.buffers.alt?\"none\":\"block\"})),this._register(this._bufferService.onScroll(()=>{this._lastKnownBufferLength!==this._bufferService.buffers.normal.lines.length&&(this._refreshDrawHeightConstants(),this._refreshColorZonePadding())})),this._register(this._renderService.onRender(()=>{(!this._containerHeight||this._containerHeight!==this._screenElement.clientHeight)&&(this._queueRefresh(!0),this._containerHeight=this._screenElement.clientHeight)})),this._register(this._coreBrowserService.onDprChange(()=>this._queueRefresh(!0))),this._register(this._optionsService.onSpecificOptionChange(\"overviewRuler\",()=>this._queueRefresh(!0))),this._register(this._themeService.onChangeColors(()=>this._queueRefresh())),this._queueRefresh(!0)}get _width(){return this._optionsService.options.overviewRuler?.width||0}_refreshDrawConstants(){let e=Math.floor((this._canvas.width-1)/3),i=Math.ceil((this._canvas.width-1)/3);at.full=this._canvas.width,at.left=e,at.center=i,at.right=e,this._refreshDrawHeightConstants(),Li.full=1,Li.left=1,Li.center=1+at.left,Li.right=1+at.left+at.center}_refreshDrawHeightConstants(){We.full=Math.round(2*this._coreBrowserService.dpr);let e=this._canvas.height/this._bufferService.buffer.lines.length,i=Math.round(Math.max(Math.min(e,12),6)*this._coreBrowserService.dpr);We.left=i,We.center=i,We.right=i}_refreshColorZonePadding(){this._colorZoneStore.setPadding({full:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*We.full),left:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*We.left),center:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*We.center),right:Math.floor(this._bufferService.buffers.active.lines.length/(this._canvas.height-1)*We.right)}),this._lastKnownBufferLength=this._bufferService.buffers.normal.lines.length}_refreshCanvasDimensions(){this._canvas.style.width=`${this._width}px`,this._canvas.width=Math.round(this._width*this._coreBrowserService.dpr),this._canvas.style.height=`${this._screenElement.clientHeight}px`,this._canvas.height=Math.round(this._screenElement.clientHeight*this._coreBrowserService.dpr),this._refreshDrawConstants(),this._refreshColorZonePadding()}_refreshDecorations(){this._shouldUpdateDimensions&&this._refreshCanvasDimensions(),this._ctx.clearRect(0,0,this._canvas.width,this._canvas.height),this._colorZoneStore.clear();for(let i of this._decorationService.decorations)this._colorZoneStore.addDecoration(i);this._ctx.lineWidth=1,this._renderRulerOutline();let e=this._colorZoneStore.zones;for(let i of e)i.position!==\"full\"&&this._renderColorZone(i);for(let i of e)i.position===\"full\"&&this._renderColorZone(i);this._shouldUpdateDimensions=!1,this._shouldUpdateAnchor=!1}_renderRulerOutline(){this._ctx.fillStyle=this._themeService.colors.overviewRulerBorder.css,this._ctx.fillRect(0,0,1,this._canvas.height),this._optionsService.rawOptions.overviewRuler.showTopBorder&&this._ctx.fillRect(1,0,this._canvas.width-1,1),this._optionsService.rawOptions.overviewRuler.showBottomBorder&&this._ctx.fillRect(1,this._canvas.height-1,this._canvas.width-1,this._canvas.height)}_renderColorZone(e){this._ctx.fillStyle=e.color,this._ctx.fillRect(Li[e.position||\"full\"],Math.round((this._canvas.height-1)*(e.startBufferLine/this._bufferService.buffers.active.lines.length)-We[e.position||\"full\"]/2),at[e.position||\"full\"],Math.round((this._canvas.height-1)*((e.endBufferLine-e.startBufferLine)/this._bufferService.buffers.active.lines.length)+We[e.position||\"full\"]))}_queueRefresh(e,i){this._shouldUpdateDimensions=e||this._shouldUpdateDimensions,this._shouldUpdateAnchor=i||this._shouldUpdateAnchor,this._animationFrame===void 0&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>{this._refreshDecorations(),this._animationFrame=void 0}))}};bt=M([S(2,F),S(3,Be),S(4,ce),S(5,H),S(6,Re),S(7,ae)],bt);var b;(E=>(E.NUL=\"\\0\",E.SOH=\"\u0001\",E.STX=\"\u0002\",E.ETX=\"\u0003\",E.EOT=\"\u0004\",E.ENQ=\"\u0005\",E.ACK=\"\u0006\",E.BEL=\"\\x07\",E.BS=\"\\b\",E.HT=\"\t\",E.LF=`\n`,E.VT=\"\\v\",E.FF=\"\\f\",E.CR=\"\\r\",E.SO=\"\u000e\",E.SI=\"\u000f\",E.DLE=\"\u0010\",E.DC1=\"\u0011\",E.DC2=\"\u0012\",E.DC3=\"\u0013\",E.DC4=\"\u0014\",E.NAK=\"\u0015\",E.SYN=\"\u0016\",E.ETB=\"\u0017\",E.CAN=\"\u0018\",E.EM=\"\u0019\",E.SUB=\"\u001a\",E.ESC=\"\\x1B\",E.FS=\"\u001c\",E.GS=\"\u001d\",E.RS=\"\u001e\",E.US=\"\u001f\",E.SP=\" \",E.DEL=\"\\x7F\"))(b||={});var Ai;(g=>(g.PAD=\"\\x80\",g.HOP=\"\\x81\",g.BPH=\"\\x82\",g.NBH=\"\\x83\",g.IND=\"\\x84\",g.NEL=\"\\x85\",g.SSA=\"\\x86\",g.ESA=\"\\x87\",g.HTS=\"\\x88\",g.HTJ=\"\\x89\",g.VTS=\"\\x8A\",g.PLD=\"\\x8B\",g.PLU=\"\\x8C\",g.RI=\"\\x8D\",g.SS2=\"\\x8E\",g.SS3=\"\\x8F\",g.DCS=\"\\x90\",g.PU1=\"\\x91\",g.PU2=\"\\x92\",g.STS=\"\\x93\",g.CCH=\"\\x94\",g.MW=\"\\x95\",g.SPA=\"\\x96\",g.EPA=\"\\x97\",g.SOS=\"\\x98\",g.SGCI=\"\\x99\",g.SCI=\"\\x9A\",g.CSI=\"\\x9B\",g.ST=\"\\x9C\",g.OSC=\"\\x9D\",g.PM=\"\\x9E\",g.APC=\"\\x9F\"))(Ai||={});var fs;(t=>t.ST=`${b.ESC}\\\\`)(fs||={});var $t=class{constructor(t,e,i,r,n,o){this._textarea=t;this._compositionView=e;this._bufferService=i;this._optionsService=r;this._coreService=n;this._renderService=o;this._isComposing=!1,this._isSendingComposition=!1,this._compositionPosition={start:0,end:0},this._dataAlreadySent=\"\"}get isComposing(){return this._isComposing}compositionstart(){this._isComposing=!0,this._compositionPosition.start=this._textarea.value.length,this._compositionView.textContent=\"\",this._dataAlreadySent=\"\",this._compositionView.classList.add(\"active\")}compositionupdate(t){this._compositionView.textContent=t.data,this.updateCompositionElements(),setTimeout(()=>{this._compositionPosition.end=this._textarea.value.length},0)}compositionend(){this._finalizeComposition(!0)}keydown(t){if(this._isComposing||this._isSendingComposition){if(t.keyCode===20||t.keyCode===229||t.keyCode===16||t.keyCode===17||t.keyCode===18)return!1;this._finalizeComposition(!1)}return t.keyCode===229?(this._handleAnyTextareaChanges(),!1):!0}_finalizeComposition(t){if(this._compositionView.classList.remove(\"active\"),this._isComposing=!1,t){let e={start:this._compositionPosition.start,end:this._compositionPosition.end};this._isSendingComposition=!0,setTimeout(()=>{if(this._isSendingComposition){this._isSendingComposition=!1;let i;e.start+=this._dataAlreadySent.length,this._isComposing?i=this._textarea.value.substring(e.start,this._compositionPosition.start):i=this._textarea.value.substring(e.start),i.length>0&&this._coreService.triggerDataEvent(i,!0)}},0)}else{this._isSendingComposition=!1;let e=this._textarea.value.substring(this._compositionPosition.start,this._compositionPosition.end);this._coreService.triggerDataEvent(e,!0)}}_handleAnyTextareaChanges(){let t=this._textarea.value;setTimeout(()=>{if(!this._isComposing){let e=this._textarea.value,i=e.replace(t,\"\");this._dataAlreadySent=i,e.length>t.length?this._coreService.triggerDataEvent(i,!0):e.length<t.length?this._coreService.triggerDataEvent(`${b.DEL}`,!0):e.length===t.length&&e!==t&&this._coreService.triggerDataEvent(e,!0)}},0)}updateCompositionElements(t){if(this._isComposing){if(this._bufferService.buffer.isCursorInViewport){let e=Math.min(this._bufferService.buffer.x,this._bufferService.cols-1),i=this._renderService.dimensions.css.cell.height,r=this._bufferService.buffer.y*this._renderService.dimensions.css.cell.height,n=e*this._renderService.dimensions.css.cell.width;this._compositionView.style.left=n+\"px\",this._compositionView.style.top=r+\"px\",this._compositionView.style.height=i+\"px\",this._compositionView.style.lineHeight=i+\"px\",this._compositionView.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._compositionView.style.fontSize=this._optionsService.rawOptions.fontSize+\"px\";let o=this._compositionView.getBoundingClientRect();this._textarea.style.left=n+\"px\",this._textarea.style.top=r+\"px\",this._textarea.style.width=Math.max(o.width,1)+\"px\",this._textarea.style.height=Math.max(o.height,1)+\"px\",this._textarea.style.lineHeight=o.height+\"px\"}t||setTimeout(()=>this.updateCompositionElements(!0),0)}}};$t=M([S(2,F),S(3,H),S(4,ge),S(5,ce)],$t);var ue=0,he=0,de=0,J=0,ps={css:\"#00000000\",rgba:0},j;(i=>{function s(r,n,o,l){return l!==void 0?`#${vt(r)}${vt(n)}${vt(o)}${vt(l)}`:`#${vt(r)}${vt(n)}${vt(o)}`}i.toCss=s;function t(r,n,o,l=255){return(r<<24|n<<16|o<<8|l)>>>0}i.toRgba=t;function e(r,n,o,l){return{css:i.toCss(r,n,o,l),rgba:i.toRgba(r,n,o,l)}}i.toColor=e})(j||={});var U;(l=>{function s(a,u){if(J=(u.rgba&255)/255,J===1)return{css:u.css,rgba:u.rgba};let h=u.rgba>>24&255,c=u.rgba>>16&255,d=u.rgba>>8&255,_=a.rgba>>24&255,p=a.rgba>>16&255,m=a.rgba>>8&255;ue=_+Math.round((h-_)*J),he=p+Math.round((c-p)*J),de=m+Math.round((d-m)*J);let f=j.toCss(ue,he,de),A=j.toRgba(ue,he,de);return{css:f,rgba:A}}l.blend=s;function t(a){return(a.rgba&255)===255}l.isOpaque=t;function e(a,u,h){let c=$r.ensureContrastRatio(a.rgba,u.rgba,h);if(c)return j.toColor(c>>24&255,c>>16&255,c>>8&255)}l.ensureContrastRatio=e;function i(a){let u=(a.rgba|255)>>>0;return[ue,he,de]=$r.toChannels(u),{css:j.toCss(ue,he,de),rgba:u}}l.opaque=i;function r(a,u){return J=Math.round(u*255),[ue,he,de]=$r.toChannels(a.rgba),{css:j.toCss(ue,he,de,J),rgba:j.toRgba(ue,he,de,J)}}l.opacity=r;function n(a,u){return J=a.rgba&255,r(a,J*u/255)}l.multiplyOpacity=n;function o(a){return[a.rgba>>24&255,a.rgba>>16&255,a.rgba>>8&255]}l.toColorRGB=o})(U||={});var z;(i=>{let s,t;try{let r=document.createElement(\"canvas\");r.width=1,r.height=1;let n=r.getContext(\"2d\",{willReadFrequently:!0});n&&(s=n,s.globalCompositeOperation=\"copy\",t=s.createLinearGradient(0,0,1,1))}catch{}function e(r){if(r.match(/#[\\da-f]{3,8}/i))switch(r.length){case 4:return ue=parseInt(r.slice(1,2).repeat(2),16),he=parseInt(r.slice(2,3).repeat(2),16),de=parseInt(r.slice(3,4).repeat(2),16),j.toColor(ue,he,de);case 5:return ue=parseInt(r.slice(1,2).repeat(2),16),he=parseInt(r.slice(2,3).repeat(2),16),de=parseInt(r.slice(3,4).repeat(2),16),J=parseInt(r.slice(4,5).repeat(2),16),j.toColor(ue,he,de,J);case 7:return{css:r,rgba:(parseInt(r.slice(1),16)<<8|255)>>>0};case 9:return{css:r,rgba:parseInt(r.slice(1),16)>>>0}}let n=r.match(/rgba?\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*(,\\s*(0|1|\\d?\\.(\\d+))\\s*)?\\)/);if(n)return ue=parseInt(n[1]),he=parseInt(n[2]),de=parseInt(n[3]),J=Math.round((n[5]===void 0?1:parseFloat(n[5]))*255),j.toColor(ue,he,de,J);if(!s||!t)throw new Error(\"css.toColor: Unsupported css format\");if(s.fillStyle=t,s.fillStyle=r,typeof s.fillStyle!=\"string\")throw new Error(\"css.toColor: Unsupported css format\");if(s.fillRect(0,0,1,1),[ue,he,de,J]=s.getImageData(0,0,1,1).data,J!==255)throw new Error(\"css.toColor: Unsupported css format\");return{rgba:j.toRgba(ue,he,de,J),css:r}}i.toColor=e})(z||={});var ve;(e=>{function s(i){return t(i>>16&255,i>>8&255,i&255)}e.relativeLuminance=s;function t(i,r,n){let o=i/255,l=r/255,a=n/255,u=o<=.03928?o/12.92:Math.pow((o+.055)/1.055,2.4),h=l<=.03928?l/12.92:Math.pow((l+.055)/1.055,2.4),c=a<=.03928?a/12.92:Math.pow((a+.055)/1.055,2.4);return u*.2126+h*.7152+c*.0722}e.relativeLuminance2=t})(ve||={});var $r;(n=>{function s(o,l){if(J=(l&255)/255,J===1)return l;let a=l>>24&255,u=l>>16&255,h=l>>8&255,c=o>>24&255,d=o>>16&255,_=o>>8&255;return ue=c+Math.round((a-c)*J),he=d+Math.round((u-d)*J),de=_+Math.round((h-_)*J),j.toRgba(ue,he,de)}n.blend=s;function t(o,l,a){let u=ve.relativeLuminance(o>>8),h=ve.relativeLuminance(l>>8);if(Xe(u,h)<a){if(h<u){let p=e(o,l,a),m=Xe(u,ve.relativeLuminance(p>>8));if(m<a){let f=i(o,l,a),A=Xe(u,ve.relativeLuminance(f>>8));return m>A?p:f}return p}let d=i(o,l,a),_=Xe(u,ve.relativeLuminance(d>>8));if(_<a){let p=e(o,l,a),m=Xe(u,ve.relativeLuminance(p>>8));return _>m?d:p}return d}}n.ensureContrastRatio=t;function e(o,l,a){let u=o>>24&255,h=o>>16&255,c=o>>8&255,d=l>>24&255,_=l>>16&255,p=l>>8&255,m=Xe(ve.relativeLuminance2(d,_,p),ve.relativeLuminance2(u,h,c));for(;m<a&&(d>0||_>0||p>0);)d-=Math.max(0,Math.ceil(d*.1)),_-=Math.max(0,Math.ceil(_*.1)),p-=Math.max(0,Math.ceil(p*.1)),m=Xe(ve.relativeLuminance2(d,_,p),ve.relativeLuminance2(u,h,c));return(d<<24|_<<16|p<<8|255)>>>0}n.reduceLuminance=e;function i(o,l,a){let u=o>>24&255,h=o>>16&255,c=o>>8&255,d=l>>24&255,_=l>>16&255,p=l>>8&255,m=Xe(ve.relativeLuminance2(d,_,p),ve.relativeLuminance2(u,h,c));for(;m<a&&(d<255||_<255||p<255);)d=Math.min(255,d+Math.ceil((255-d)*.1)),_=Math.min(255,_+Math.ceil((255-_)*.1)),p=Math.min(255,p+Math.ceil((255-p)*.1)),m=Xe(ve.relativeLuminance2(d,_,p),ve.relativeLuminance2(u,h,c));return(d<<24|_<<16|p<<8|255)>>>0}n.increaseLuminance=i;function r(o){return[o>>24&255,o>>16&255,o>>8&255,o&255]}n.toChannels=r})($r||={});function vt(s){let t=s.toString(16);return t.length<2?\"0\"+t:t}function Xe(s,t){return s<t?(t+.05)/(s+.05):(s+.05)/(t+.05)}var Vr=class extends De{constructor(e,i,r){super();this.content=0;this.combinedData=\"\";this.fg=e.fg,this.bg=e.bg,this.combinedData=i,this._width=r}isCombined(){return 2097152}getWidth(){return this._width}getChars(){return this.combinedData}getCode(){return 2097151}setFromCharData(e){throw new Error(\"not implemented\")}getAsCharData(){return[this.fg,this.getChars(),this.getWidth(),this.getCode()]}},ct=class{constructor(t){this._bufferService=t;this._characterJoiners=[];this._nextCharacterJoinerId=0;this._workCell=new q}register(t){let e={id:this._nextCharacterJoinerId++,handler:t};return this._characterJoiners.push(e),e.id}deregister(t){for(let e=0;e<this._characterJoiners.length;e++)if(this._characterJoiners[e].id===t)return this._characterJoiners.splice(e,1),!0;return!1}getJoinedCharacters(t){if(this._characterJoiners.length===0)return[];let e=this._bufferService.buffer.lines.get(t);if(!e||e.length===0)return[];let i=[],r=e.translateToString(!0),n=0,o=0,l=0,a=e.getFg(0),u=e.getBg(0);for(let h=0;h<e.getTrimmedLength();h++)if(e.loadCell(h,this._workCell),this._workCell.getWidth()!==0){if(this._workCell.fg!==a||this._workCell.bg!==u){if(h-n>1){let c=this._getJoinedRanges(r,l,o,e,n);for(let d=0;d<c.length;d++)i.push(c[d])}n=h,l=o,a=this._workCell.fg,u=this._workCell.bg}o+=this._workCell.getChars().length||we.length}if(this._bufferService.cols-n>1){let h=this._getJoinedRanges(r,l,o,e,n);for(let c=0;c<h.length;c++)i.push(h[c])}return i}_getJoinedRanges(t,e,i,r,n){let o=t.substring(e,i),l=[];try{l=this._characterJoiners[0].handler(o)}catch(a){console.error(a)}for(let a=1;a<this._characterJoiners.length;a++)try{let u=this._characterJoiners[a].handler(o);for(let h=0;h<u.length;h++)ct._mergeRanges(l,u[h])}catch(u){console.error(u)}return this._stringRangesToCellRanges(l,r,n),l}_stringRangesToCellRanges(t,e,i){let r=0,n=!1,o=0,l=t[r];if(l){for(let a=i;a<this._bufferService.cols;a++){let u=e.getWidth(a),h=e.getString(a).length||we.length;if(u!==0){if(!n&&l[0]<=o&&(l[0]=a,n=!0),l[1]<=o){if(l[1]=a,l=t[++r],!l)break;l[0]<=o?(l[0]=a,n=!0):n=!1}o+=h}}l&&(l[1]=this._bufferService.cols)}}static _mergeRanges(t,e){let i=!1;for(let r=0;r<t.length;r++){let n=t[r];if(i){if(e[1]<=n[0])return t[r-1][1]=e[1],t;if(e[1]<=n[1])return t[r-1][1]=Math.max(e[1],n[1]),t.splice(r,1),t;t.splice(r,1),r--}else{if(e[1]<=n[0])return t.splice(r,0,e),t;if(e[1]<=n[1])return n[0]=Math.min(e[0],n[0]),t;e[0]<n[1]&&(n[0]=Math.min(e[0],n[0]),i=!0);continue}}return i?t[t.length-1][1]=e[1]:t.push(e),t}};ct=M([S(0,F)],ct);function Oa(s){return 57508<=s&&s<=57558}function Ba(s){return 9472<=s&&s<=9631}function $o(s){return Oa(s)||Ba(s)}function Vo(){return{css:{canvas:qr(),cell:qr()},device:{canvas:qr(),cell:qr(),char:{width:0,height:0,left:0,top:0}}}}function qr(){return{width:0,height:0}}var Vt=class{constructor(t,e,i,r,n,o,l){this._document=t;this._characterJoinerService=e;this._optionsService=i;this._coreBrowserService=r;this._coreService=n;this._decorationService=o;this._themeService=l;this._workCell=new q;this._columnSelectMode=!1;this.defaultSpacing=0}handleSelectionChanged(t,e,i){this._selectionStart=t,this._selectionEnd=e,this._columnSelectMode=i}createRow(t,e,i,r,n,o,l,a,u,h,c){let d=[],_=this._characterJoinerService.getJoinedCharacters(e),p=this._themeService.colors,m=t.getNoBgTrimmedLength();i&&m<o+1&&(m=o+1);let f,A=0,R=\"\",O=0,I=0,k=0,P=0,oe=!1,Me=0,Pe=!1,Ke=0,di=0,V=[],Qe=h!==-1&&c!==-1;for(let y=0;y<m;y++){t.loadCell(y,this._workCell);let T=this._workCell.getWidth();if(T===0)continue;let g=!1,w=y>=di,E=y,x=this._workCell;if(_.length>0&&y===_[0][0]&&w){let W=_.shift(),An=this._isCellInSelection(W[0],e);for(O=W[0]+1;O<W[1];O++)w&&=An===this._isCellInSelection(O,e);w&&=!i||o<W[0]||o>=W[1],w?(g=!0,x=new Vr(this._workCell,t.translateToString(!0,W[0],W[1]),W[1]-W[0]),E=W[1]-1,T=x.getWidth()):di=W[1]}let N=this._isCellInSelection(y,e),Z=i&&y===o,te=Qe&&y>=h&&y<=c,Oe=!1;this._decorationService.forEachDecorationAtCell(y,e,void 0,W=>{Oe=!0});let ze=x.getChars()||we;if(ze===\" \"&&(x.isUnderline()||x.isOverline())&&(ze=\"\\xA0\"),Ke=T*a-u.get(ze,x.isBold(),x.isItalic()),!f)f=this._document.createElement(\"span\");else if(A&&(N&&Pe||!N&&!Pe&&x.bg===I)&&(N&&Pe&&p.selectionForeground||x.fg===k)&&x.extended.ext===P&&te===oe&&Ke===Me&&!Z&&!g&&!Oe&&w){x.isInvisible()?R+=we:R+=ze,A++;continue}else A&&(f.textContent=R),f=this._document.createElement(\"span\"),A=0,R=\"\";if(I=x.bg,k=x.fg,P=x.extended.ext,oe=te,Me=Ke,Pe=N,g&&o>=y&&o<=E&&(o=y),!this._coreService.isCursorHidden&&Z&&this._coreService.isCursorInitialized){if(V.push(\"xterm-cursor\"),this._coreBrowserService.isFocused)l&&V.push(\"xterm-cursor-blink\"),V.push(r===\"bar\"?\"xterm-cursor-bar\":r===\"underline\"?\"xterm-cursor-underline\":\"xterm-cursor-block\");else if(n)switch(n){case\"outline\":V.push(\"xterm-cursor-outline\");break;case\"block\":V.push(\"xterm-cursor-block\");break;case\"bar\":V.push(\"xterm-cursor-bar\");break;case\"underline\":V.push(\"xterm-cursor-underline\");break;default:break}}if(x.isBold()&&V.push(\"xterm-bold\"),x.isItalic()&&V.push(\"xterm-italic\"),x.isDim()&&V.push(\"xterm-dim\"),x.isInvisible()?R=we:R=x.getChars()||we,x.isUnderline()&&(V.push(`xterm-underline-${x.extended.underlineStyle}`),R===\" \"&&(R=\"\\xA0\"),!x.isUnderlineColorDefault()))if(x.isUnderlineColorRGB())f.style.textDecorationColor=`rgb(${De.toColorRGB(x.getUnderlineColor()).join(\",\")})`;else{let W=x.getUnderlineColor();this._optionsService.rawOptions.drawBoldTextInBrightColors&&x.isBold()&&W<8&&(W+=8),f.style.textDecorationColor=p.ansi[W].css}x.isOverline()&&(V.push(\"xterm-overline\"),R===\" \"&&(R=\"\\xA0\")),x.isStrikethrough()&&V.push(\"xterm-strikethrough\"),te&&(f.style.textDecoration=\"underline\");let le=x.getFgColor(),et=x.getFgColorMode(),me=x.getBgColor(),ht=x.getBgColorMode(),fi=!!x.isInverse();if(fi){let W=le;le=me,me=W;let An=et;et=ht,ht=An}let tt,Qi,pi=!1;this._decorationService.forEachDecorationAtCell(y,e,void 0,W=>{W.options.layer!==\"top\"&&pi||(W.backgroundColorRGB&&(ht=50331648,me=W.backgroundColorRGB.rgba>>8&16777215,tt=W.backgroundColorRGB),W.foregroundColorRGB&&(et=50331648,le=W.foregroundColorRGB.rgba>>8&16777215,Qi=W.foregroundColorRGB),pi=W.options.layer===\"top\")}),!pi&&N&&(tt=this._coreBrowserService.isFocused?p.selectionBackgroundOpaque:p.selectionInactiveBackgroundOpaque,me=tt.rgba>>8&16777215,ht=50331648,pi=!0,p.selectionForeground&&(et=50331648,le=p.selectionForeground.rgba>>8&16777215,Qi=p.selectionForeground)),pi&&V.push(\"xterm-decoration-top\");let it;switch(ht){case 16777216:case 33554432:it=p.ansi[me],V.push(`xterm-bg-${me}`);break;case 50331648:it=j.toColor(me>>16,me>>8&255,me&255),this._addStyle(f,`background-color:#${qo((me>>>0).toString(16),\"0\",6)}`);break;case 0:default:fi?(it=p.foreground,V.push(`xterm-bg-${257}`)):it=p.background}switch(tt||x.isDim()&&(tt=U.multiplyOpacity(it,.5)),et){case 16777216:case 33554432:x.isBold()&&le<8&&this._optionsService.rawOptions.drawBoldTextInBrightColors&&(le+=8),this._applyMinimumContrast(f,it,p.ansi[le],x,tt,void 0)||V.push(`xterm-fg-${le}`);break;case 50331648:let W=j.toColor(le>>16&255,le>>8&255,le&255);this._applyMinimumContrast(f,it,W,x,tt,Qi)||this._addStyle(f,`color:#${qo(le.toString(16),\"0\",6)}`);break;case 0:default:this._applyMinimumContrast(f,it,p.foreground,x,tt,Qi)||fi&&V.push(`xterm-fg-${257}`)}V.length&&(f.className=V.join(\" \"),V.length=0),!Z&&!g&&!Oe&&w?A++:f.textContent=R,Ke!==this.defaultSpacing&&(f.style.letterSpacing=`${Ke}px`),d.push(f),y=E}return f&&A&&(f.textContent=R),d}_applyMinimumContrast(t,e,i,r,n,o){if(this._optionsService.rawOptions.minimumContrastRatio===1||$o(r.getCode()))return!1;let l=this._getContrastCache(r),a;if(!n&&!o&&(a=l.getColor(e.rgba,i.rgba)),a===void 0){let u=this._optionsService.rawOptions.minimumContrastRatio/(r.isDim()?2:1);a=U.ensureContrastRatio(n||e,o||i,u),l.setColor((n||e).rgba,(o||i).rgba,a??null)}return a?(this._addStyle(t,`color:${a.css}`),!0):!1}_getContrastCache(t){return t.isDim()?this._themeService.colors.halfContrastCache:this._themeService.colors.contrastCache}_addStyle(t,e){t.setAttribute(\"style\",`${t.getAttribute(\"style\")||\"\"}${e};`)}_isCellInSelection(t,e){let i=this._selectionStart,r=this._selectionEnd;return!i||!r?!1:this._columnSelectMode?i[0]<=r[0]?t>=i[0]&&e>=i[1]&&t<r[0]&&e<=r[1]:t<i[0]&&e>=i[1]&&t>=r[0]&&e<=r[1]:e>i[1]&&e<r[1]||i[1]===r[1]&&e===i[1]&&t>=i[0]&&t<r[0]||i[1]<r[1]&&e===r[1]&&t<r[0]||i[1]<r[1]&&e===i[1]&&t>=i[0]}};Vt=M([S(1,or),S(2,H),S(3,ae),S(4,ge),S(5,Be),S(6,Re)],Vt);function qo(s,t,e){for(;s.length<e;)s=t+s;return s}var Yr=class{constructor(t,e){this._flat=new Float32Array(256);this._font=\"\";this._fontSize=0;this._weight=\"normal\";this._weightBold=\"bold\";this._measureElements=[];this._container=t.createElement(\"div\"),this._container.classList.add(\"xterm-width-cache-measure-container\"),this._container.setAttribute(\"aria-hidden\",\"true\"),this._container.style.whiteSpace=\"pre\",this._container.style.fontKerning=\"none\";let i=t.createElement(\"span\");i.classList.add(\"xterm-char-measure-element\");let r=t.createElement(\"span\");r.classList.add(\"xterm-char-measure-element\"),r.style.fontWeight=\"bold\";let n=t.createElement(\"span\");n.classList.add(\"xterm-char-measure-element\"),n.style.fontStyle=\"italic\";let o=t.createElement(\"span\");o.classList.add(\"xterm-char-measure-element\"),o.style.fontWeight=\"bold\",o.style.fontStyle=\"italic\",this._measureElements=[i,r,n,o],this._container.appendChild(i),this._container.appendChild(r),this._container.appendChild(n),this._container.appendChild(o),e.appendChild(this._container),this.clear()}dispose(){this._container.remove(),this._measureElements.length=0,this._holey=void 0}clear(){this._flat.fill(-9999),this._holey=new Map}setFont(t,e,i,r){t===this._font&&e===this._fontSize&&i===this._weight&&r===this._weightBold||(this._font=t,this._fontSize=e,this._weight=i,this._weightBold=r,this._container.style.fontFamily=this._font,this._container.style.fontSize=`${this._fontSize}px`,this._measureElements[0].style.fontWeight=`${i}`,this._measureElements[1].style.fontWeight=`${r}`,this._measureElements[2].style.fontWeight=`${i}`,this._measureElements[3].style.fontWeight=`${r}`,this.clear())}get(t,e,i){let r=0;if(!e&&!i&&t.length===1&&(r=t.charCodeAt(0))<256){if(this._flat[r]!==-9999)return this._flat[r];let l=this._measure(t,0);return l>0&&(this._flat[r]=l),l}let n=t;e&&(n+=\"B\"),i&&(n+=\"I\");let o=this._holey.get(n);if(o===void 0){let l=0;e&&(l|=1),i&&(l|=2),o=this._measure(t,l),o>0&&this._holey.set(n,o)}return o}_measure(t,e){let i=this._measureElements[e];return i.textContent=t.repeat(32),i.offsetWidth/32}};var ms=class{constructor(){this.clear()}clear(){this.hasSelection=!1,this.columnSelectMode=!1,this.viewportStartRow=0,this.viewportEndRow=0,this.viewportCappedStartRow=0,this.viewportCappedEndRow=0,this.startCol=0,this.endCol=0,this.selectionStart=void 0,this.selectionEnd=void 0}update(t,e,i,r=!1){if(this.selectionStart=e,this.selectionEnd=i,!e||!i||e[0]===i[0]&&e[1]===i[1]){this.clear();return}let n=t.buffers.active.ydisp,o=e[1]-n,l=i[1]-n,a=Math.max(o,0),u=Math.min(l,t.rows-1);if(a>=t.rows||u<0){this.clear();return}this.hasSelection=!0,this.columnSelectMode=r,this.viewportStartRow=o,this.viewportEndRow=l,this.viewportCappedStartRow=a,this.viewportCappedEndRow=u,this.startCol=e[0],this.endCol=i[0]}isCellSelected(t,e,i){return this.hasSelection?(i-=t.buffer.active.viewportY,this.columnSelectMode?this.startCol<=this.endCol?e>=this.startCol&&i>=this.viewportCappedStartRow&&e<this.endCol&&i<=this.viewportCappedEndRow:e<this.startCol&&i>=this.viewportCappedStartRow&&e>=this.endCol&&i<=this.viewportCappedEndRow:i>this.viewportStartRow&&i<this.viewportEndRow||this.viewportStartRow===this.viewportEndRow&&i===this.viewportStartRow&&e>=this.startCol&&e<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportEndRow&&e<this.endCol||this.viewportStartRow<this.viewportEndRow&&i===this.viewportStartRow&&e>=this.startCol):!1}};function Yo(){return new ms}var _s=\"xterm-dom-renderer-owner-\",Le=\"xterm-rows\",jr=\"xterm-fg-\",jo=\"xterm-bg-\",ki=\"xterm-focus\",Xr=\"xterm-selection\",Na=1,Yt=class extends D{constructor(e,i,r,n,o,l,a,u,h,c,d,_,p,m){super();this._terminal=e;this._document=i;this._element=r;this._screenElement=n;this._viewportElement=o;this._helperContainer=l;this._linkifier2=a;this._charSizeService=h;this._optionsService=c;this._bufferService=d;this._coreService=_;this._coreBrowserService=p;this._themeService=m;this._terminalClass=Na++;this._rowElements=[];this._selectionRenderModel=Yo();this.onRequestRedraw=this._register(new v).event;this._rowContainer=this._document.createElement(\"div\"),this._rowContainer.classList.add(Le),this._rowContainer.style.lineHeight=\"normal\",this._rowContainer.setAttribute(\"aria-hidden\",\"true\"),this._refreshRowElements(this._bufferService.cols,this._bufferService.rows),this._selectionContainer=this._document.createElement(\"div\"),this._selectionContainer.classList.add(Xr),this._selectionContainer.setAttribute(\"aria-hidden\",\"true\"),this.dimensions=Vo(),this._updateDimensions(),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._themeService.onChangeColors(f=>this._injectCss(f))),this._injectCss(this._themeService.colors),this._rowFactory=u.createInstance(Vt,document),this._element.classList.add(_s+this._terminalClass),this._screenElement.appendChild(this._rowContainer),this._screenElement.appendChild(this._selectionContainer),this._register(this._linkifier2.onShowLinkUnderline(f=>this._handleLinkHover(f))),this._register(this._linkifier2.onHideLinkUnderline(f=>this._handleLinkLeave(f))),this._register(C(()=>{this._element.classList.remove(_s+this._terminalClass),this._rowContainer.remove(),this._selectionContainer.remove(),this._widthCache.dispose(),this._themeStyleElement.remove(),this._dimensionsStyleElement.remove()})),this._widthCache=new Yr(this._document,this._helperContainer),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}_updateDimensions(){let e=this._coreBrowserService.dpr;this.dimensions.device.char.width=this._charSizeService.width*e,this.dimensions.device.char.height=Math.ceil(this._charSizeService.height*e),this.dimensions.device.cell.width=this.dimensions.device.char.width+Math.round(this._optionsService.rawOptions.letterSpacing),this.dimensions.device.cell.height=Math.floor(this.dimensions.device.char.height*this._optionsService.rawOptions.lineHeight),this.dimensions.device.char.left=0,this.dimensions.device.char.top=0,this.dimensions.device.canvas.width=this.dimensions.device.cell.width*this._bufferService.cols,this.dimensions.device.canvas.height=this.dimensions.device.cell.height*this._bufferService.rows,this.dimensions.css.canvas.width=Math.round(this.dimensions.device.canvas.width/e),this.dimensions.css.canvas.height=Math.round(this.dimensions.device.canvas.height/e),this.dimensions.css.cell.width=this.dimensions.css.canvas.width/this._bufferService.cols,this.dimensions.css.cell.height=this.dimensions.css.canvas.height/this._bufferService.rows;for(let r of this._rowElements)r.style.width=`${this.dimensions.css.canvas.width}px`,r.style.height=`${this.dimensions.css.cell.height}px`,r.style.lineHeight=`${this.dimensions.css.cell.height}px`,r.style.overflow=\"hidden\";this._dimensionsStyleElement||(this._dimensionsStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._dimensionsStyleElement));let i=`${this._terminalSelector} .${Le} span { display: inline-block; height: 100%; vertical-align: top;}`;this._dimensionsStyleElement.textContent=i,this._selectionContainer.style.height=this._viewportElement.style.height,this._screenElement.style.width=`${this.dimensions.css.canvas.width}px`,this._screenElement.style.height=`${this.dimensions.css.canvas.height}px`}_injectCss(e){this._themeStyleElement||(this._themeStyleElement=this._document.createElement(\"style\"),this._screenElement.appendChild(this._themeStyleElement));let i=`${this._terminalSelector} .${Le} { pointer-events: none; color: ${e.foreground.css}; font-family: ${this._optionsService.rawOptions.fontFamily}; font-size: ${this._optionsService.rawOptions.fontSize}px; font-kerning: none; white-space: pre}`;i+=`${this._terminalSelector} .${Le} .xterm-dim { color: ${U.multiplyOpacity(e.foreground,.5).css};}`,i+=`${this._terminalSelector} span:not(.xterm-bold) { font-weight: ${this._optionsService.rawOptions.fontWeight};}${this._terminalSelector} span.xterm-bold { font-weight: ${this._optionsService.rawOptions.fontWeightBold};}${this._terminalSelector} span.xterm-italic { font-style: italic;}`;let r=`blink_underline_${this._terminalClass}`,n=`blink_bar_${this._terminalClass}`,o=`blink_block_${this._terminalClass}`;i+=`@keyframes ${r} { 50% { border-bottom-style: hidden; }}`,i+=`@keyframes ${n} { 50% { box-shadow: none; }}`,i+=`@keyframes ${o} { 0% { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css}; } 50% { background-color: inherit; color: ${e.cursor.css}; }}`,i+=`${this._terminalSelector} .${Le}.${ki} .xterm-cursor.xterm-cursor-blink.xterm-cursor-underline { animation: ${r} 1s step-end infinite;}${this._terminalSelector} .${Le}.${ki} .xterm-cursor.xterm-cursor-blink.xterm-cursor-bar { animation: ${n} 1s step-end infinite;}${this._terminalSelector} .${Le}.${ki} .xterm-cursor.xterm-cursor-blink.xterm-cursor-block { animation: ${o} 1s step-end infinite;}${this._terminalSelector} .${Le} .xterm-cursor.xterm-cursor-block { background-color: ${e.cursor.css}; color: ${e.cursorAccent.css};}${this._terminalSelector} .${Le} .xterm-cursor.xterm-cursor-block:not(.xterm-cursor-blink) { background-color: ${e.cursor.css} !important; color: ${e.cursorAccent.css} !important;}${this._terminalSelector} .${Le} .xterm-cursor.xterm-cursor-outline { outline: 1px solid ${e.cursor.css}; outline-offset: -1px;}${this._terminalSelector} .${Le} .xterm-cursor.xterm-cursor-bar { box-shadow: ${this._optionsService.rawOptions.cursorWidth}px 0 0 ${e.cursor.css} inset;}${this._terminalSelector} .${Le} .xterm-cursor.xterm-cursor-underline { border-bottom: 1px ${e.cursor.css}; border-bottom-style: solid; height: calc(100% - 1px);}`,i+=`${this._terminalSelector} .${Xr} { position: absolute; top: 0; left: 0; z-index: 1; pointer-events: none;}${this._terminalSelector}.focus .${Xr} div { position: absolute; background-color: ${e.selectionBackgroundOpaque.css};}${this._terminalSelector} .${Xr} div { position: absolute; background-color: ${e.selectionInactiveBackgroundOpaque.css};}`;for(let[l,a]of e.ansi.entries())i+=`${this._terminalSelector} .${jr}${l} { color: ${a.css}; }${this._terminalSelector} .${jr}${l}.xterm-dim { color: ${U.multiplyOpacity(a,.5).css}; }${this._terminalSelector} .${jo}${l} { background-color: ${a.css}; }`;i+=`${this._terminalSelector} .${jr}${257} { color: ${U.opaque(e.background).css}; }${this._terminalSelector} .${jr}${257}.xterm-dim { color: ${U.multiplyOpacity(U.opaque(e.background),.5).css}; }${this._terminalSelector} .${jo}${257} { background-color: ${e.foreground.css}; }`,this._themeStyleElement.textContent=i}_setDefaultSpacing(){let e=this.dimensions.css.cell.width-this._widthCache.get(\"W\",!1,!1);this._rowContainer.style.letterSpacing=`${e}px`,this._rowFactory.defaultSpacing=e}handleDevicePixelRatioChange(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}_refreshRowElements(e,i){for(let r=this._rowElements.length;r<=i;r++){let n=this._document.createElement(\"div\");this._rowContainer.appendChild(n),this._rowElements.push(n)}for(;this._rowElements.length>i;)this._rowContainer.removeChild(this._rowElements.pop())}handleResize(e,i){this._refreshRowElements(e,i),this._updateDimensions(),this.handleSelectionChanged(this._selectionRenderModel.selectionStart,this._selectionRenderModel.selectionEnd,this._selectionRenderModel.columnSelectMode)}handleCharSizeChanged(){this._updateDimensions(),this._widthCache.clear(),this._setDefaultSpacing()}handleBlur(){this._rowContainer.classList.remove(ki),this.renderRows(0,this._bufferService.rows-1)}handleFocus(){this._rowContainer.classList.add(ki),this.renderRows(this._bufferService.buffer.y,this._bufferService.buffer.y)}handleSelectionChanged(e,i,r){if(this._selectionContainer.replaceChildren(),this._rowFactory.handleSelectionChanged(e,i,r),this.renderRows(0,this._bufferService.rows-1),!e||!i||(this._selectionRenderModel.update(this._terminal,e,i,r),!this._selectionRenderModel.hasSelection))return;let n=this._selectionRenderModel.viewportStartRow,o=this._selectionRenderModel.viewportEndRow,l=this._selectionRenderModel.viewportCappedStartRow,a=this._selectionRenderModel.viewportCappedEndRow,u=this._document.createDocumentFragment();if(r){let h=e[0]>i[0];u.appendChild(this._createSelectionElement(l,h?i[0]:e[0],h?e[0]:i[0],a-l+1))}else{let h=n===l?e[0]:0,c=l===o?i[0]:this._bufferService.cols;u.appendChild(this._createSelectionElement(l,h,c));let d=a-l-1;if(u.appendChild(this._createSelectionElement(l+1,0,this._bufferService.cols,d)),l!==a){let _=o===a?i[0]:this._bufferService.cols;u.appendChild(this._createSelectionElement(a,0,_))}}this._selectionContainer.appendChild(u)}_createSelectionElement(e,i,r,n=1){let o=this._document.createElement(\"div\"),l=i*this.dimensions.css.cell.width,a=this.dimensions.css.cell.width*(r-i);return l+a>this.dimensions.css.canvas.width&&(a=this.dimensions.css.canvas.width-l),o.style.height=`${n*this.dimensions.css.cell.height}px`,o.style.top=`${e*this.dimensions.css.cell.height}px`,o.style.left=`${l}px`,o.style.width=`${a}px`,o}handleCursorMove(){}_handleOptionsChanged(){this._updateDimensions(),this._injectCss(this._themeService.colors),this._widthCache.setFont(this._optionsService.rawOptions.fontFamily,this._optionsService.rawOptions.fontSize,this._optionsService.rawOptions.fontWeight,this._optionsService.rawOptions.fontWeightBold),this._setDefaultSpacing()}clear(){for(let e of this._rowElements)e.replaceChildren()}renderRows(e,i){let r=this._bufferService.buffer,n=r.ybase+r.y,o=Math.min(r.x,this._bufferService.cols-1),l=this._coreService.decPrivateModes.cursorBlink??this._optionsService.rawOptions.cursorBlink,a=this._coreService.decPrivateModes.cursorStyle??this._optionsService.rawOptions.cursorStyle,u=this._optionsService.rawOptions.cursorInactiveStyle;for(let h=e;h<=i;h++){let c=h+r.ydisp,d=this._rowElements[h],_=r.lines.get(c);if(!d||!_)break;d.replaceChildren(...this._rowFactory.createRow(_,c,c===n,a,u,o,l,this.dimensions.css.cell.width,this._widthCache,-1,-1))}}get _terminalSelector(){return`.${_s}${this._terminalClass}`}_handleLinkHover(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!0)}_handleLinkLeave(e){this._setCellUnderline(e.x1,e.x2,e.y1,e.y2,e.cols,!1)}_setCellUnderline(e,i,r,n,o,l){r<0&&(e=0),n<0&&(i=0);let a=this._bufferService.rows-1;r=Math.max(Math.min(r,a),0),n=Math.max(Math.min(n,a),0),o=Math.min(o,this._bufferService.cols);let u=this._bufferService.buffer,h=u.ybase+u.y,c=Math.min(u.x,o-1),d=this._optionsService.rawOptions.cursorBlink,_=this._optionsService.rawOptions.cursorStyle,p=this._optionsService.rawOptions.cursorInactiveStyle;for(let m=r;m<=n;++m){let f=m+u.ydisp,A=this._rowElements[m],R=u.lines.get(f);if(!A||!R)break;A.replaceChildren(...this._rowFactory.createRow(R,f,f===h,_,p,c,d,this.dimensions.css.cell.width,this._widthCache,l?m===r?e:0:-1,l?(m===n?i:o)-1:-1))}}};Yt=M([S(7,xt),S(8,nt),S(9,H),S(10,F),S(11,ge),S(12,ae),S(13,Re)],Yt);var jt=class extends D{constructor(e,i,r){super();this._optionsService=r;this.width=0;this.height=0;this._onCharSizeChange=this._register(new v);this.onCharSizeChange=this._onCharSizeChange.event;try{this._measureStrategy=this._register(new vs(this._optionsService))}catch{this._measureStrategy=this._register(new bs(e,i,this._optionsService))}this._register(this._optionsService.onMultipleOptionChange([\"fontFamily\",\"fontSize\"],()=>this.measure()))}get hasValidSize(){return this.width>0&&this.height>0}measure(){let e=this._measureStrategy.measure();(e.width!==this.width||e.height!==this.height)&&(this.width=e.width,this.height=e.height,this._onCharSizeChange.fire())}};jt=M([S(2,H)],jt);var Zr=class extends D{constructor(){super(...arguments);this._result={width:0,height:0}}_validateAndSet(e,i){e!==void 0&&e>0&&i!==void 0&&i>0&&(this._result.width=e,this._result.height=i)}},bs=class extends Zr{constructor(e,i,r){super();this._document=e;this._parentElement=i;this._optionsService=r;this._measureElement=this._document.createElement(\"span\"),this._measureElement.classList.add(\"xterm-char-measure-element\"),this._measureElement.textContent=\"W\".repeat(32),this._measureElement.setAttribute(\"aria-hidden\",\"true\"),this._measureElement.style.whiteSpace=\"pre\",this._measureElement.style.fontKerning=\"none\",this._parentElement.appendChild(this._measureElement)}measure(){return this._measureElement.style.fontFamily=this._optionsService.rawOptions.fontFamily,this._measureElement.style.fontSize=`${this._optionsService.rawOptions.fontSize}px`,this._validateAndSet(Number(this._measureElement.offsetWidth)/32,Number(this._measureElement.offsetHeight)),this._result}},vs=class extends Zr{constructor(e){super();this._optionsService=e;this._canvas=new OffscreenCanvas(100,100),this._ctx=this._canvas.getContext(\"2d\");let i=this._ctx.measureText(\"W\");if(!(\"width\"in i&&\"fontBoundingBoxAscent\"in i&&\"fontBoundingBoxDescent\"in i))throw new Error(\"Required font metrics not supported\")}measure(){this._ctx.font=`${this._optionsService.rawOptions.fontSize}px ${this._optionsService.rawOptions.fontFamily}`;let e=this._ctx.measureText(\"W\");return this._validateAndSet(e.width,e.fontBoundingBoxAscent+e.fontBoundingBoxDescent),this._result}};var Jr=class extends D{constructor(e,i,r){super();this._textarea=e;this._window=i;this.mainDocument=r;this._isFocused=!1;this._cachedIsFocused=void 0;this._screenDprMonitor=this._register(new gs(this._window));this._onDprChange=this._register(new v);this.onDprChange=this._onDprChange.event;this._onWindowChange=this._register(new v);this.onWindowChange=this._onWindowChange.event;this._register(this.onWindowChange(n=>this._screenDprMonitor.setWindow(n))),this._register($.forward(this._screenDprMonitor.onDprChange,this._onDprChange)),this._register(L(this._textarea,\"focus\",()=>this._isFocused=!0)),this._register(L(this._textarea,\"blur\",()=>this._isFocused=!1))}get window(){return this._window}set window(e){this._window!==e&&(this._window=e,this._onWindowChange.fire(this._window))}get dpr(){return this.window.devicePixelRatio}get isFocused(){return this._cachedIsFocused===void 0&&(this._cachedIsFocused=this._isFocused&&this._textarea.ownerDocument.hasFocus(),queueMicrotask(()=>this._cachedIsFocused=void 0)),this._cachedIsFocused}},gs=class extends D{constructor(e){super();this._parentWindow=e;this._windowResizeListener=this._register(new ye);this._onDprChange=this._register(new v);this.onDprChange=this._onDprChange.event;this._outerListener=()=>this._setDprAndFireIfDiffers(),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._updateDpr(),this._setWindowResizeListener(),this._register(C(()=>this.clearListener()))}setWindow(e){this._parentWindow=e,this._setWindowResizeListener(),this._setDprAndFireIfDiffers()}_setWindowResizeListener(){this._windowResizeListener.value=L(this._parentWindow,\"resize\",()=>this._setDprAndFireIfDiffers())}_setDprAndFireIfDiffers(){this._parentWindow.devicePixelRatio!==this._currentDevicePixelRatio&&this._onDprChange.fire(this._parentWindow.devicePixelRatio),this._updateDpr()}_updateDpr(){this._outerListener&&(this._resolutionMediaMatchList?.removeListener(this._outerListener),this._currentDevicePixelRatio=this._parentWindow.devicePixelRatio,this._resolutionMediaMatchList=this._parentWindow.matchMedia(`screen and (resolution: ${this._parentWindow.devicePixelRatio}dppx)`),this._resolutionMediaMatchList.addListener(this._outerListener))}clearListener(){!this._resolutionMediaMatchList||!this._outerListener||(this._resolutionMediaMatchList.removeListener(this._outerListener),this._resolutionMediaMatchList=void 0,this._outerListener=void 0)}};var Qr=class extends D{constructor(){super();this.linkProviders=[];this._register(C(()=>this.linkProviders.length=0))}registerLinkProvider(e){return this.linkProviders.push(e),{dispose:()=>{let i=this.linkProviders.indexOf(e);i!==-1&&this.linkProviders.splice(i,1)}}}};function Ci(s,t,e){let i=e.getBoundingClientRect(),r=s.getComputedStyle(e),n=parseInt(r.getPropertyValue(\"padding-left\")),o=parseInt(r.getPropertyValue(\"padding-top\"));return[t.clientX-i.left-n,t.clientY-i.top-o]}function Xo(s,t,e,i,r,n,o,l,a){if(!n)return;let u=Ci(s,t,e);if(u)return u[0]=Math.ceil((u[0]+(a?o/2:0))/o),u[1]=Math.ceil(u[1]/l),u[0]=Math.min(Math.max(u[0],1),i+(a?1:0)),u[1]=Math.min(Math.max(u[1],1),r),u}var Xt=class{constructor(t,e){this._renderService=t;this._charSizeService=e}getCoords(t,e,i,r,n){return Xo(window,t,e,i,r,this._charSizeService.hasValidSize,this._renderService.dimensions.css.cell.width,this._renderService.dimensions.css.cell.height,n)}getMouseReportCoords(t,e){let i=Ci(window,t,e);if(this._charSizeService.hasValidSize)return i[0]=Math.min(Math.max(i[0],0),this._renderService.dimensions.css.canvas.width-1),i[1]=Math.min(Math.max(i[1],0),this._renderService.dimensions.css.canvas.height-1),{col:Math.floor(i[0]/this._renderService.dimensions.css.cell.width),row:Math.floor(i[1]/this._renderService.dimensions.css.cell.height),x:Math.floor(i[0]),y:Math.floor(i[1])}}};Xt=M([S(0,ce),S(1,nt)],Xt);var en=class{constructor(t,e){this._renderCallback=t;this._coreBrowserService=e;this._refreshCallbacks=[]}dispose(){this._animationFrame&&(this._coreBrowserService.window.cancelAnimationFrame(this._animationFrame),this._animationFrame=void 0)}addRefreshCallback(t){return this._refreshCallbacks.push(t),this._animationFrame||(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh())),this._animationFrame}refresh(t,e,i){this._rowCount=i,t=t!==void 0?t:0,e=e!==void 0?e:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,t):t,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,e):e,!this._animationFrame&&(this._animationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._innerRefresh()))}_innerRefresh(){if(this._animationFrame=void 0,this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0){this._runRefreshCallbacks();return}let t=Math.max(this._rowStart,0),e=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(t,e),this._runRefreshCallbacks()}_runRefreshCallbacks(){for(let t of this._refreshCallbacks)t(0);this._refreshCallbacks=[]}};var tn={};Ll(tn,{getSafariVersion:()=>Ha,isChromeOS:()=>Ts,isFirefox:()=>Ss,isIpad:()=>Wa,isIphone:()=>Ua,isLegacyEdge:()=>Fa,isLinux:()=>Bi,isMac:()=>Zt,isNode:()=>Mi,isSafari:()=>Zo,isWindows:()=>Es});var Mi=typeof process<\"u\"&&\"title\"in process,Pi=Mi?\"node\":navigator.userAgent,Oi=Mi?\"node\":navigator.platform,Ss=Pi.includes(\"Firefox\"),Fa=Pi.includes(\"Edge\"),Zo=/^((?!chrome|android).)*safari/i.test(Pi);function Ha(){if(!Zo)return 0;let s=Pi.match(/Version\\/(\\d+)/);return s===null||s.length<2?0:parseInt(s[1])}var Zt=[\"Macintosh\",\"MacIntel\",\"MacPPC\",\"Mac68K\"].includes(Oi),Wa=Oi===\"iPad\",Ua=Oi===\"iPhone\",Es=[\"Windows\",\"Win16\",\"Win32\",\"WinCE\"].includes(Oi),Bi=Oi.indexOf(\"Linux\")>=0,Ts=/\\bCrOS\\b/.test(Pi);var rn=class{constructor(){this._tasks=[];this._i=0}enqueue(t){this._tasks.push(t),this._start()}flush(){for(;this._i<this._tasks.length;)this._tasks[this._i]()||this._i++;this.clear()}clear(){this._idleCallback&&(this._cancelCallback(this._idleCallback),this._idleCallback=void 0),this._i=0,this._tasks.length=0}_start(){this._idleCallback||(this._idleCallback=this._requestCallback(this._process.bind(this)))}_process(t){this._idleCallback=void 0;let e=0,i=0,r=t.timeRemaining(),n=0;for(;this._i<this._tasks.length;){if(e=performance.now(),this._tasks[this._i]()||this._i++,e=Math.max(1,performance.now()-e),i=Math.max(e,i),n=t.timeRemaining(),i*1.5>n){r-e<-20&&console.warn(`task queue exceeded allotted deadline by ${Math.abs(Math.round(r-e))}ms`),this._start();return}r=n}this.clear()}},Is=class extends rn{_requestCallback(t){return setTimeout(()=>t(this._createDeadline(16)))}_cancelCallback(t){clearTimeout(t)}_createDeadline(t){let e=performance.now()+t;return{timeRemaining:()=>Math.max(0,e-performance.now())}}},ys=class extends rn{_requestCallback(t){return requestIdleCallback(t)}_cancelCallback(t){cancelIdleCallback(t)}},Jt=!Mi&&\"requestIdleCallback\"in window?ys:Is,nn=class{constructor(){this._queue=new Jt}set(t){this._queue.clear(),this._queue.enqueue(t)}flush(){this._queue.flush()}};var Qt=class extends D{constructor(e,i,r,n,o,l,a,u,h){super();this._rowCount=e;this._optionsService=r;this._charSizeService=n;this._coreService=o;this._coreBrowserService=u;this._renderer=this._register(new ye);this._pausedResizeTask=new nn;this._observerDisposable=this._register(new ye);this._isPaused=!1;this._needsFullRefresh=!1;this._isNextRenderRedrawOnly=!0;this._needsSelectionRefresh=!1;this._canvasWidth=0;this._canvasHeight=0;this._selectionState={start:void 0,end:void 0,columnSelectMode:!1};this._onDimensionsChange=this._register(new v);this.onDimensionsChange=this._onDimensionsChange.event;this._onRenderedViewportChange=this._register(new v);this.onRenderedViewportChange=this._onRenderedViewportChange.event;this._onRender=this._register(new v);this.onRender=this._onRender.event;this._onRefreshRequest=this._register(new v);this.onRefreshRequest=this._onRefreshRequest.event;this._renderDebouncer=new en((c,d)=>this._renderRows(c,d),this._coreBrowserService),this._register(this._renderDebouncer),this._syncOutputHandler=new xs(this._coreBrowserService,this._coreService,()=>this._fullRefresh()),this._register(C(()=>this._syncOutputHandler.dispose())),this._register(this._coreBrowserService.onDprChange(()=>this.handleDevicePixelRatioChange())),this._register(a.onResize(()=>this._fullRefresh())),this._register(a.buffers.onBufferActivate(()=>this._renderer.value?.clear())),this._register(this._optionsService.onOptionChange(()=>this._handleOptionsChanged())),this._register(this._charSizeService.onCharSizeChange(()=>this.handleCharSizeChanged())),this._register(l.onDecorationRegistered(()=>this._fullRefresh())),this._register(l.onDecorationRemoved(()=>this._fullRefresh())),this._register(this._optionsService.onMultipleOptionChange([\"customGlyphs\",\"drawBoldTextInBrightColors\",\"letterSpacing\",\"lineHeight\",\"fontFamily\",\"fontSize\",\"fontWeight\",\"fontWeightBold\",\"minimumContrastRatio\",\"rescaleOverlappingGlyphs\"],()=>{this.clear(),this.handleResize(a.cols,a.rows),this._fullRefresh()})),this._register(this._optionsService.onMultipleOptionChange([\"cursorBlink\",\"cursorStyle\"],()=>this.refreshRows(a.buffer.y,a.buffer.y,!0))),this._register(h.onChangeColors(()=>this._fullRefresh())),this._registerIntersectionObserver(this._coreBrowserService.window,i),this._register(this._coreBrowserService.onWindowChange(c=>this._registerIntersectionObserver(c,i)))}get dimensions(){return this._renderer.value.dimensions}_registerIntersectionObserver(e,i){if(\"IntersectionObserver\"in e){let r=new e.IntersectionObserver(n=>this._handleIntersectionChange(n[n.length-1]),{threshold:0});r.observe(i),this._observerDisposable.value=C(()=>r.disconnect())}}_handleIntersectionChange(e){this._isPaused=e.isIntersecting===void 0?e.intersectionRatio===0:!e.isIntersecting,!this._isPaused&&!this._charSizeService.hasValidSize&&this._charSizeService.measure(),!this._isPaused&&this._needsFullRefresh&&(this._pausedResizeTask.flush(),this.refreshRows(0,this._rowCount-1),this._needsFullRefresh=!1)}refreshRows(e,i,r=!1){if(this._isPaused){this._needsFullRefresh=!0;return}if(this._coreService.decPrivateModes.synchronizedOutput){this._syncOutputHandler.bufferRows(e,i);return}let n=this._syncOutputHandler.flush();n&&(e=Math.min(e,n.start),i=Math.max(i,n.end)),r||(this._isNextRenderRedrawOnly=!1),this._renderDebouncer.refresh(e,i,this._rowCount)}_renderRows(e,i){if(this._renderer.value){if(this._coreService.decPrivateModes.synchronizedOutput){this._syncOutputHandler.bufferRows(e,i);return}e=Math.min(e,this._rowCount-1),i=Math.min(i,this._rowCount-1),this._renderer.value.renderRows(e,i),this._needsSelectionRefresh&&(this._renderer.value.handleSelectionChanged(this._selectionState.start,this._selectionState.end,this._selectionState.columnSelectMode),this._needsSelectionRefresh=!1),this._isNextRenderRedrawOnly||this._onRenderedViewportChange.fire({start:e,end:i}),this._onRender.fire({start:e,end:i}),this._isNextRenderRedrawOnly=!0}}resize(e,i){this._rowCount=i,this._fireOnCanvasResize()}_handleOptionsChanged(){this._renderer.value&&(this.refreshRows(0,this._rowCount-1),this._fireOnCanvasResize())}_fireOnCanvasResize(){this._renderer.value&&(this._renderer.value.dimensions.css.canvas.width===this._canvasWidth&&this._renderer.value.dimensions.css.canvas.height===this._canvasHeight||this._onDimensionsChange.fire(this._renderer.value.dimensions))}hasRenderer(){return!!this._renderer.value}setRenderer(e){this._renderer.value=e,this._renderer.value&&(this._renderer.value.onRequestRedraw(i=>this.refreshRows(i.start,i.end,!0)),this._needsSelectionRefresh=!0,this._fullRefresh())}addRefreshCallback(e){return this._renderDebouncer.addRefreshCallback(e)}_fullRefresh(){this._isPaused?this._needsFullRefresh=!0:this.refreshRows(0,this._rowCount-1)}clearTextureAtlas(){this._renderer.value&&(this._renderer.value.clearTextureAtlas?.(),this._fullRefresh())}handleDevicePixelRatioChange(){this._charSizeService.measure(),this._renderer.value&&(this._renderer.value.handleDevicePixelRatioChange(),this.refreshRows(0,this._rowCount-1))}handleResize(e,i){this._renderer.value&&(this._isPaused?this._pausedResizeTask.set(()=>this._renderer.value?.handleResize(e,i)):this._renderer.value.handleResize(e,i),this._fullRefresh())}handleCharSizeChanged(){this._renderer.value?.handleCharSizeChanged()}handleBlur(){this._renderer.value?.handleBlur()}handleFocus(){this._renderer.value?.handleFocus()}handleSelectionChanged(e,i,r){this._selectionState.start=e,this._selectionState.end=i,this._selectionState.columnSelectMode=r,this._renderer.value?.handleSelectionChanged(e,i,r)}handleCursorMove(){this._renderer.value?.handleCursorMove()}clear(){this._renderer.value?.clear()}};Qt=M([S(2,H),S(3,nt),S(4,ge),S(5,Be),S(6,F),S(7,ae),S(8,Re)],Qt);var xs=class{constructor(t,e,i){this._coreBrowserService=t;this._coreService=e;this._onTimeout=i;this._start=0;this._end=0;this._isBuffering=!1}bufferRows(t,e){this._isBuffering?(this._start=Math.min(this._start,t),this._end=Math.max(this._end,e)):(this._start=t,this._end=e,this._isBuffering=!0),this._timeout===void 0&&(this._timeout=this._coreBrowserService.window.setTimeout(()=>{this._timeout=void 0,this._coreService.decPrivateModes.synchronizedOutput=!1,this._onTimeout()},1e3))}flush(){if(this._timeout!==void 0&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0),!this._isBuffering)return;let t={start:this._start,end:this._end};return this._isBuffering=!1,t}dispose(){this._timeout!==void 0&&(this._coreBrowserService.window.clearTimeout(this._timeout),this._timeout=void 0)}};function Jo(s,t,e,i){let r=e.buffer.x,n=e.buffer.y;if(!e.buffer.hasScrollback)return Ga(r,n,s,t,e,i)+sn(n,t,e,i)+$a(r,n,s,t,e,i);let o;if(n===t)return o=r>s?\"D\":\"C\",Fi(Math.abs(r-s),Ni(o,i));o=n>t?\"D\":\"C\";let l=Math.abs(n-t),a=za(n>t?s:r,e)+(l-1)*e.cols+1+Ka(n>t?r:s,e);return Fi(a,Ni(o,i))}function Ka(s,t){return s-1}function za(s,t){return t.cols-s}function Ga(s,t,e,i,r,n){return sn(t,i,r,n).length===0?\"\":Fi(el(s,t,s,t-gt(t,r),!1,r).length,Ni(\"D\",n))}function sn(s,t,e,i){let r=s-gt(s,e),n=t-gt(t,e),o=Math.abs(r-n)-Va(s,t,e);return Fi(o,Ni(Qo(s,t),i))}function $a(s,t,e,i,r,n){let o;sn(t,i,r,n).length>0?o=i-gt(i,r):o=t;let l=i,a=qa(s,t,e,i,r,n);return Fi(el(s,o,e,l,a===\"C\",r).length,Ni(a,n))}function Va(s,t,e){let i=0,r=s-gt(s,e),n=t-gt(t,e);for(let o=0;o<Math.abs(r-n);o++){let l=Qo(s,t)===\"A\"?-1:1;e.buffer.lines.get(r+l*o)?.isWrapped&&i++}return i}function gt(s,t){let e=0,i=t.buffer.lines.get(s),r=i?.isWrapped;for(;r&&s>=0&&s<t.rows;)e++,i=t.buffer.lines.get(--s),r=i?.isWrapped;return e}function qa(s,t,e,i,r,n){let o;return sn(e,i,r,n).length>0?o=i-gt(i,r):o=t,s<e&&o<=i||s>=e&&o<i?\"C\":\"D\"}function Qo(s,t){return s>t?\"A\":\"B\"}function el(s,t,e,i,r,n){let o=s,l=t,a=\"\";for(;(o!==e||l!==i)&&l>=0&&l<n.buffer.lines.length;)o+=r?1:-1,r&&o>n.cols-1?(a+=n.buffer.translateBufferLineToString(l,!1,s,o),o=0,s=0,l++):!r&&o<0&&(a+=n.buffer.translateBufferLineToString(l,!1,0,s+1),o=n.cols-1,s=o,l--);return a+n.buffer.translateBufferLineToString(l,!1,s,o)}function Ni(s,t){let e=t?\"O\":\"[\";return b.ESC+e+s}function Fi(s,t){s=Math.floor(s);let e=\"\";for(let i=0;i<s;i++)e+=t;return e}var on=class{constructor(t){this._bufferService=t;this.isSelectAllActive=!1;this.selectionStartLength=0}clearSelection(){this.selectionStart=void 0,this.selectionEnd=void 0,this.isSelectAllActive=!1,this.selectionStartLength=0}get finalSelectionStart(){return this.isSelectAllActive?[0,0]:!this.selectionEnd||!this.selectionStart?this.selectionStart:this.areSelectionValuesReversed()?this.selectionEnd:this.selectionStart}get finalSelectionEnd(){if(this.isSelectAllActive)return[this._bufferService.cols,this._bufferService.buffer.ybase+this._bufferService.rows-1];if(this.selectionStart){if(!this.selectionEnd||this.areSelectionValuesReversed()){let t=this.selectionStart[0]+this.selectionStartLength;return t>this._bufferService.cols?t%this._bufferService.cols===0?[this._bufferService.cols,this.selectionStart[1]+Math.floor(t/this._bufferService.cols)-1]:[t%this._bufferService.cols,this.selectionStart[1]+Math.floor(t/this._bufferService.cols)]:[t,this.selectionStart[1]]}if(this.selectionStartLength&&this.selectionEnd[1]===this.selectionStart[1]){let t=this.selectionStart[0]+this.selectionStartLength;return t>this._bufferService.cols?[t%this._bufferService.cols,this.selectionStart[1]+Math.floor(t/this._bufferService.cols)]:[Math.max(t,this.selectionEnd[0]),this.selectionEnd[1]]}return this.selectionEnd}}areSelectionValuesReversed(){let t=this.selectionStart,e=this.selectionEnd;return!t||!e?!1:t[1]>e[1]||t[1]===e[1]&&t[0]>e[0]}handleTrim(t){return this.selectionStart&&(this.selectionStart[1]-=t),this.selectionEnd&&(this.selectionEnd[1]-=t),this.selectionEnd&&this.selectionEnd[1]<0?(this.clearSelection(),!0):(this.selectionStart&&this.selectionStart[1]<0&&(this.selectionStart[1]=0),!1)}};function ws(s,t){if(s.start.y>s.end.y)throw new Error(`Buffer range end (${s.end.x}, ${s.end.y}) cannot be before start (${s.start.x}, ${s.start.y})`);return t*(s.end.y-s.start.y)+(s.end.x-s.start.x+1)}var Ds=50,Ya=15,ja=50,Xa=500,Za=\"\\xA0\",Ja=new RegExp(Za,\"g\");var ei=class extends D{constructor(e,i,r,n,o,l,a,u,h){super();this._element=e;this._screenElement=i;this._linkifier=r;this._bufferService=n;this._coreService=o;this._mouseService=l;this._optionsService=a;this._renderService=u;this._coreBrowserService=h;this._dragScrollAmount=0;this._enabled=!0;this._workCell=new q;this._mouseDownTimeStamp=0;this._oldHasSelection=!1;this._oldSelectionStart=void 0;this._oldSelectionEnd=void 0;this._onLinuxMouseSelection=this._register(new v);this.onLinuxMouseSelection=this._onLinuxMouseSelection.event;this._onRedrawRequest=this._register(new v);this.onRequestRedraw=this._onRedrawRequest.event;this._onSelectionChange=this._register(new v);this.onSelectionChange=this._onSelectionChange.event;this._onRequestScrollLines=this._register(new v);this.onRequestScrollLines=this._onRequestScrollLines.event;this._mouseMoveListener=c=>this._handleMouseMove(c),this._mouseUpListener=c=>this._handleMouseUp(c),this._coreService.onUserInput(()=>{this.hasSelection&&this.clearSelection()}),this._trimListener=this._bufferService.buffer.lines.onTrim(c=>this._handleTrim(c)),this._register(this._bufferService.buffers.onBufferActivate(c=>this._handleBufferActivate(c))),this.enable(),this._model=new on(this._bufferService),this._activeSelectionMode=0,this._register(C(()=>{this._removeMouseDownListeners()})),this._register(this._bufferService.onResize(c=>{c.rowsChanged&&this.clearSelection()}))}reset(){this.clearSelection()}disable(){this.clearSelection(),this._enabled=!1}enable(){this._enabled=!0}get selectionStart(){return this._model.finalSelectionStart}get selectionEnd(){return this._model.finalSelectionEnd}get hasSelection(){let e=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;return!e||!i?!1:e[0]!==i[0]||e[1]!==i[1]}get selectionText(){let e=this._model.finalSelectionStart,i=this._model.finalSelectionEnd;if(!e||!i)return\"\";let r=this._bufferService.buffer,n=[];if(this._activeSelectionMode===3){if(e[0]===i[0])return\"\";let l=e[0]<i[0]?e[0]:i[0],a=e[0]<i[0]?i[0]:e[0];for(let u=e[1];u<=i[1];u++){let h=r.translateBufferLineToString(u,!0,l,a);n.push(h)}}else{let l=e[1]===i[1]?i[0]:void 0;n.push(r.translateBufferLineToString(e[1],!0,e[0],l));for(let a=e[1]+1;a<=i[1]-1;a++){let u=r.lines.get(a),h=r.translateBufferLineToString(a,!0);u?.isWrapped?n[n.length-1]+=h:n.push(h)}if(e[1]!==i[1]){let a=r.lines.get(i[1]),u=r.translateBufferLineToString(i[1],!0,0,i[0]);a&&a.isWrapped?n[n.length-1]+=u:n.push(u)}}return n.map(l=>l.replace(Ja,\" \")).join(Es?`\\r\n`:`\n`)}clearSelection(){this._model.clearSelection(),this._removeMouseDownListeners(),this.refresh(),this._onSelectionChange.fire()}refresh(e){this._refreshAnimationFrame||(this._refreshAnimationFrame=this._coreBrowserService.window.requestAnimationFrame(()=>this._refresh())),Bi&&e&&this.selectionText.length&&this._onLinuxMouseSelection.fire(this.selectionText)}_refresh(){this._refreshAnimationFrame=void 0,this._onRedrawRequest.fire({start:this._model.finalSelectionStart,end:this._model.finalSelectionEnd,columnSelectMode:this._activeSelectionMode===3})}_isClickInSelection(e){let i=this._getMouseBufferCoords(e),r=this._model.finalSelectionStart,n=this._model.finalSelectionEnd;return!r||!n||!i?!1:this._areCoordsInSelection(i,r,n)}isCellInSelection(e,i){let r=this._model.finalSelectionStart,n=this._model.finalSelectionEnd;return!r||!n?!1:this._areCoordsInSelection([e,i],r,n)}_areCoordsInSelection(e,i,r){return e[1]>i[1]&&e[1]<r[1]||i[1]===r[1]&&e[1]===i[1]&&e[0]>=i[0]&&e[0]<r[0]||i[1]<r[1]&&e[1]===r[1]&&e[0]<r[0]||i[1]<r[1]&&e[1]===i[1]&&e[0]>=i[0]}_selectWordAtCursor(e,i){let r=this._linkifier.currentLink?.link?.range;if(r)return this._model.selectionStart=[r.start.x-1,r.start.y-1],this._model.selectionStartLength=ws(r,this._bufferService.cols),this._model.selectionEnd=void 0,!0;let n=this._getMouseBufferCoords(e);return n?(this._selectWordAt(n,i),this._model.selectionEnd=void 0,!0):!1}selectAll(){this._model.isSelectAllActive=!0,this.refresh(),this._onSelectionChange.fire()}selectLines(e,i){this._model.clearSelection(),e=Math.max(e,0),i=Math.min(i,this._bufferService.buffer.lines.length-1),this._model.selectionStart=[0,e],this._model.selectionEnd=[this._bufferService.cols,i],this.refresh(),this._onSelectionChange.fire()}_handleTrim(e){this._model.handleTrim(e)&&this.refresh()}_getMouseBufferCoords(e){let i=this._mouseService.getCoords(e,this._screenElement,this._bufferService.cols,this._bufferService.rows,!0);if(i)return i[0]--,i[1]--,i[1]+=this._bufferService.buffer.ydisp,i}_getMouseEventScrollAmount(e){let i=Ci(this._coreBrowserService.window,e,this._screenElement)[1],r=this._renderService.dimensions.css.canvas.height;return i>=0&&i<=r?0:(i>r&&(i-=r),i=Math.min(Math.max(i,-Ds),Ds),i/=Ds,i/Math.abs(i)+Math.round(i*(Ya-1)))}shouldForceSelection(e){return Zt?e.altKey&&this._optionsService.rawOptions.macOptionClickForcesSelection:e.shiftKey}handleMouseDown(e){if(this._mouseDownTimeStamp=e.timeStamp,!(e.button===2&&this.hasSelection)&&e.button===0){if(!this._enabled){if(!this.shouldForceSelection(e))return;e.stopPropagation()}e.preventDefault(),this._dragScrollAmount=0,this._enabled&&e.shiftKey?this._handleIncrementalClick(e):e.detail===1?this._handleSingleClick(e):e.detail===2?this._handleDoubleClick(e):e.detail===3&&this._handleTripleClick(e),this._addMouseDownListeners(),this.refresh(!0)}}_addMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.addEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.addEventListener(\"mouseup\",this._mouseUpListener)),this._dragScrollIntervalTimer=this._coreBrowserService.window.setInterval(()=>this._dragScroll(),ja)}_removeMouseDownListeners(){this._screenElement.ownerDocument&&(this._screenElement.ownerDocument.removeEventListener(\"mousemove\",this._mouseMoveListener),this._screenElement.ownerDocument.removeEventListener(\"mouseup\",this._mouseUpListener)),this._coreBrowserService.window.clearInterval(this._dragScrollIntervalTimer),this._dragScrollIntervalTimer=void 0}_handleIncrementalClick(e){this._model.selectionStart&&(this._model.selectionEnd=this._getMouseBufferCoords(e))}_handleSingleClick(e){if(this._model.selectionStartLength=0,this._model.isSelectAllActive=!1,this._activeSelectionMode=this.shouldColumnSelect(e)?3:0,this._model.selectionStart=this._getMouseBufferCoords(e),!this._model.selectionStart)return;this._model.selectionEnd=void 0;let i=this._bufferService.buffer.lines.get(this._model.selectionStart[1]);i&&i.length!==this._model.selectionStart[0]&&i.hasWidth(this._model.selectionStart[0])===0&&this._model.selectionStart[0]++}_handleDoubleClick(e){this._selectWordAtCursor(e,!0)&&(this._activeSelectionMode=1)}_handleTripleClick(e){let i=this._getMouseBufferCoords(e);i&&(this._activeSelectionMode=2,this._selectLineAt(i[1]))}shouldColumnSelect(e){return e.altKey&&!(Zt&&this._optionsService.rawOptions.macOptionClickForcesSelection)}_handleMouseMove(e){if(e.stopImmediatePropagation(),!this._model.selectionStart)return;let i=this._model.selectionEnd?[this._model.selectionEnd[0],this._model.selectionEnd[1]]:null;if(this._model.selectionEnd=this._getMouseBufferCoords(e),!this._model.selectionEnd){this.refresh(!0);return}this._activeSelectionMode===2?this._model.selectionEnd[1]<this._model.selectionStart[1]?this._model.selectionEnd[0]=0:this._model.selectionEnd[0]=this._bufferService.cols:this._activeSelectionMode===1&&this._selectToWordAt(this._model.selectionEnd),this._dragScrollAmount=this._getMouseEventScrollAmount(e),this._activeSelectionMode!==3&&(this._dragScrollAmount>0?this._model.selectionEnd[0]=this._bufferService.cols:this._dragScrollAmount<0&&(this._model.selectionEnd[0]=0));let r=this._bufferService.buffer;if(this._model.selectionEnd[1]<r.lines.length){let n=r.lines.get(this._model.selectionEnd[1]);n&&n.hasWidth(this._model.selectionEnd[0])===0&&this._model.selectionEnd[0]<this._bufferService.cols&&this._model.selectionEnd[0]++}(!i||i[0]!==this._model.selectionEnd[0]||i[1]!==this._model.selectionEnd[1])&&this.refresh(!0)}_dragScroll(){if(!(!this._model.selectionEnd||!this._model.selectionStart)&&this._dragScrollAmount){this._onRequestScrollLines.fire({amount:this._dragScrollAmount,suppressScrollEvent:!1});let e=this._bufferService.buffer;this._dragScrollAmount>0?(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=this._bufferService.cols),this._model.selectionEnd[1]=Math.min(e.ydisp+this._bufferService.rows,e.lines.length-1)):(this._activeSelectionMode!==3&&(this._model.selectionEnd[0]=0),this._model.selectionEnd[1]=e.ydisp),this.refresh()}}_handleMouseUp(e){let i=e.timeStamp-this._mouseDownTimeStamp;if(this._removeMouseDownListeners(),this.selectionText.length<=1&&i<Xa&&e.altKey&&this._optionsService.rawOptions.altClickMovesCursor){if(this._bufferService.buffer.ybase===this._bufferService.buffer.ydisp){let r=this._mouseService.getCoords(e,this._element,this._bufferService.cols,this._bufferService.rows,!1);if(r&&r[0]!==void 0&&r[1]!==void 0){let n=Jo(r[0]-1,r[1]-1,this._bufferService,this._coreService.decPrivateModes.applicationCursorKeys);this._coreService.triggerDataEvent(n,!0)}}}else this._fireEventIfSelectionChanged()}_fireEventIfSelectionChanged(){let e=this._model.finalSelectionStart,i=this._model.finalSelectionEnd,r=!!e&&!!i&&(e[0]!==i[0]||e[1]!==i[1]);if(!r){this._oldHasSelection&&this._fireOnSelectionChange(e,i,r);return}!e||!i||(!this._oldSelectionStart||!this._oldSelectionEnd||e[0]!==this._oldSelectionStart[0]||e[1]!==this._oldSelectionStart[1]||i[0]!==this._oldSelectionEnd[0]||i[1]!==this._oldSelectionEnd[1])&&this._fireOnSelectionChange(e,i,r)}_fireOnSelectionChange(e,i,r){this._oldSelectionStart=e,this._oldSelectionEnd=i,this._oldHasSelection=r,this._onSelectionChange.fire()}_handleBufferActivate(e){this.clearSelection(),this._trimListener.dispose(),this._trimListener=e.activeBuffer.lines.onTrim(i=>this._handleTrim(i))}_convertViewportColToCharacterIndex(e,i){let r=i;for(let n=0;i>=n;n++){let o=e.loadCell(n,this._workCell).getChars().length;this._workCell.getWidth()===0?r--:o>1&&i!==n&&(r+=o-1)}return r}setSelection(e,i,r){this._model.clearSelection(),this._removeMouseDownListeners(),this._model.selectionStart=[e,i],this._model.selectionStartLength=r,this.refresh(),this._fireEventIfSelectionChanged()}rightClickSelect(e){this._isClickInSelection(e)||(this._selectWordAtCursor(e,!1)&&this.refresh(!0),this._fireEventIfSelectionChanged())}_getWordAt(e,i,r=!0,n=!0){if(e[0]>=this._bufferService.cols)return;let o=this._bufferService.buffer,l=o.lines.get(e[1]);if(!l)return;let a=o.translateBufferLineToString(e[1],!1),u=this._convertViewportColToCharacterIndex(l,e[0]),h=u,c=e[0]-u,d=0,_=0,p=0,m=0;if(a.charAt(u)===\" \"){for(;u>0&&a.charAt(u-1)===\" \";)u--;for(;h<a.length&&a.charAt(h+1)===\" \";)h++}else{let R=e[0],O=e[0];l.getWidth(R)===0&&(d++,R--),l.getWidth(O)===2&&(_++,O++);let I=l.getString(O).length;for(I>1&&(m+=I-1,h+=I-1);R>0&&u>0&&!this._isCharWordSeparator(l.loadCell(R-1,this._workCell));){l.loadCell(R-1,this._workCell);let k=this._workCell.getChars().length;this._workCell.getWidth()===0?(d++,R--):k>1&&(p+=k-1,u-=k-1),u--,R--}for(;O<l.length&&h+1<a.length&&!this._isCharWordSeparator(l.loadCell(O+1,this._workCell));){l.loadCell(O+1,this._workCell);let k=this._workCell.getChars().length;this._workCell.getWidth()===2?(_++,O++):k>1&&(m+=k-1,h+=k-1),h++,O++}}h++;let f=u+c-d+p,A=Math.min(this._bufferService.cols,h-u+d+_-p-m);if(!(!i&&a.slice(u,h).trim()===\"\")){if(r&&f===0&&l.getCodePoint(0)!==32){let R=o.lines.get(e[1]-1);if(R&&l.isWrapped&&R.getCodePoint(this._bufferService.cols-1)!==32){let O=this._getWordAt([this._bufferService.cols-1,e[1]-1],!1,!0,!1);if(O){let I=this._bufferService.cols-O.start;f-=I,A+=I}}}if(n&&f+A===this._bufferService.cols&&l.getCodePoint(this._bufferService.cols-1)!==32){let R=o.lines.get(e[1]+1);if(R?.isWrapped&&R.getCodePoint(0)!==32){let O=this._getWordAt([0,e[1]+1],!1,!1,!0);O&&(A+=O.length)}}return{start:f,length:A}}}_selectWordAt(e,i){let r=this._getWordAt(e,i);if(r){for(;r.start<0;)r.start+=this._bufferService.cols,e[1]--;this._model.selectionStart=[r.start,e[1]],this._model.selectionStartLength=r.length}}_selectToWordAt(e){let i=this._getWordAt(e,!0);if(i){let r=e[1];for(;i.start<0;)i.start+=this._bufferService.cols,r--;if(!this._model.areSelectionValuesReversed())for(;i.start+i.length>this._bufferService.cols;)i.length-=this._bufferService.cols,r++;this._model.selectionEnd=[this._model.areSelectionValuesReversed()?i.start:i.start+i.length,r]}}_isCharWordSeparator(e){return e.getWidth()===0?!1:this._optionsService.rawOptions.wordSeparator.indexOf(e.getChars())>=0}_selectLineAt(e){let i=this._bufferService.buffer.getWrappedRangeForLine(e),r={start:{x:0,y:i.first},end:{x:this._bufferService.cols-1,y:i.last}};this._model.selectionStart=[0,i.first],this._model.selectionEnd=void 0,this._model.selectionStartLength=ws(r,this._bufferService.cols)}};ei=M([S(3,F),S(4,ge),S(5,Dt),S(6,H),S(7,ce),S(8,ae)],ei);var Hi=class{constructor(){this._data={}}set(t,e,i){this._data[t]||(this._data[t]={}),this._data[t][e]=i}get(t,e){return this._data[t]?this._data[t][e]:void 0}clear(){this._data={}}};var Wi=class{constructor(){this._color=new Hi;this._css=new Hi}setCss(t,e,i){this._css.set(t,e,i)}getCss(t,e){return this._css.get(t,e)}setColor(t,e,i){this._color.set(t,e,i)}getColor(t,e){return this._color.get(t,e)}clear(){this._color.clear(),this._css.clear()}};var re=Object.freeze((()=>{let s=[z.toColor(\"#2e3436\"),z.toColor(\"#cc0000\"),z.toColor(\"#4e9a06\"),z.toColor(\"#c4a000\"),z.toColor(\"#3465a4\"),z.toColor(\"#75507b\"),z.toColor(\"#06989a\"),z.toColor(\"#d3d7cf\"),z.toColor(\"#555753\"),z.toColor(\"#ef2929\"),z.toColor(\"#8ae234\"),z.toColor(\"#fce94f\"),z.toColor(\"#729fcf\"),z.toColor(\"#ad7fa8\"),z.toColor(\"#34e2e2\"),z.toColor(\"#eeeeec\")],t=[0,95,135,175,215,255];for(let e=0;e<216;e++){let i=t[e/36%6|0],r=t[e/6%6|0],n=t[e%6];s.push({css:j.toCss(i,r,n),rgba:j.toRgba(i,r,n)})}for(let e=0;e<24;e++){let i=8+e*10;s.push({css:j.toCss(i,i,i),rgba:j.toRgba(i,i,i)})}return s})());var St=z.toColor(\"#ffffff\"),Ki=z.toColor(\"#000000\"),tl=z.toColor(\"#ffffff\"),il=Ki,Ui={css:\"rgba(255, 255, 255, 0.3)\",rgba:4294967117},Qa=St,ti=class extends D{constructor(e){super();this._optionsService=e;this._contrastCache=new Wi;this._halfContrastCache=new Wi;this._onChangeColors=this._register(new v);this.onChangeColors=this._onChangeColors.event;this._colors={foreground:St,background:Ki,cursor:tl,cursorAccent:il,selectionForeground:void 0,selectionBackgroundTransparent:Ui,selectionBackgroundOpaque:U.blend(Ki,Ui),selectionInactiveBackgroundTransparent:Ui,selectionInactiveBackgroundOpaque:U.blend(Ki,Ui),scrollbarSliderBackground:U.opacity(St,.2),scrollbarSliderHoverBackground:U.opacity(St,.4),scrollbarSliderActiveBackground:U.opacity(St,.5),overviewRulerBorder:St,ansi:re.slice(),contrastCache:this._contrastCache,halfContrastCache:this._halfContrastCache},this._updateRestoreColors(),this._setTheme(this._optionsService.rawOptions.theme),this._register(this._optionsService.onSpecificOptionChange(\"minimumContrastRatio\",()=>this._contrastCache.clear())),this._register(this._optionsService.onSpecificOptionChange(\"theme\",()=>this._setTheme(this._optionsService.rawOptions.theme)))}get colors(){return this._colors}_setTheme(e={}){let i=this._colors;if(i.foreground=K(e.foreground,St),i.background=K(e.background,Ki),i.cursor=U.blend(i.background,K(e.cursor,tl)),i.cursorAccent=U.blend(i.background,K(e.cursorAccent,il)),i.selectionBackgroundTransparent=K(e.selectionBackground,Ui),i.selectionBackgroundOpaque=U.blend(i.background,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundTransparent=K(e.selectionInactiveBackground,i.selectionBackgroundTransparent),i.selectionInactiveBackgroundOpaque=U.blend(i.background,i.selectionInactiveBackgroundTransparent),i.selectionForeground=e.selectionForeground?K(e.selectionForeground,ps):void 0,i.selectionForeground===ps&&(i.selectionForeground=void 0),U.isOpaque(i.selectionBackgroundTransparent)&&(i.selectionBackgroundTransparent=U.opacity(i.selectionBackgroundTransparent,.3)),U.isOpaque(i.selectionInactiveBackgroundTransparent)&&(i.selectionInactiveBackgroundTransparent=U.opacity(i.selectionInactiveBackgroundTransparent,.3)),i.scrollbarSliderBackground=K(e.scrollbarSliderBackground,U.opacity(i.foreground,.2)),i.scrollbarSliderHoverBackground=K(e.scrollbarSliderHoverBackground,U.opacity(i.foreground,.4)),i.scrollbarSliderActiveBackground=K(e.scrollbarSliderActiveBackground,U.opacity(i.foreground,.5)),i.overviewRulerBorder=K(e.overviewRulerBorder,Qa),i.ansi=re.slice(),i.ansi[0]=K(e.black,re[0]),i.ansi[1]=K(e.red,re[1]),i.ansi[2]=K(e.green,re[2]),i.ansi[3]=K(e.yellow,re[3]),i.ansi[4]=K(e.blue,re[4]),i.ansi[5]=K(e.magenta,re[5]),i.ansi[6]=K(e.cyan,re[6]),i.ansi[7]=K(e.white,re[7]),i.ansi[8]=K(e.brightBlack,re[8]),i.ansi[9]=K(e.brightRed,re[9]),i.ansi[10]=K(e.brightGreen,re[10]),i.ansi[11]=K(e.brightYellow,re[11]),i.ansi[12]=K(e.brightBlue,re[12]),i.ansi[13]=K(e.brightMagenta,re[13]),i.ansi[14]=K(e.brightCyan,re[14]),i.ansi[15]=K(e.brightWhite,re[15]),e.extendedAnsi){let r=Math.min(i.ansi.length-16,e.extendedAnsi.length);for(let n=0;n<r;n++)i.ansi[n+16]=K(e.extendedAnsi[n],re[n+16])}this._contrastCache.clear(),this._halfContrastCache.clear(),this._updateRestoreColors(),this._onChangeColors.fire(this.colors)}restoreColor(e){this._restoreColor(e),this._onChangeColors.fire(this.colors)}_restoreColor(e){if(e===void 0){for(let i=0;i<this._restoreColors.ansi.length;++i)this._colors.ansi[i]=this._restoreColors.ansi[i];return}switch(e){case 256:this._colors.foreground=this._restoreColors.foreground;break;case 257:this._colors.background=this._restoreColors.background;break;case 258:this._colors.cursor=this._restoreColors.cursor;break;default:this._colors.ansi[e]=this._restoreColors.ansi[e]}}modifyColors(e){e(this._colors),this._onChangeColors.fire(this.colors)}_updateRestoreColors(){this._restoreColors={foreground:this._colors.foreground,background:this._colors.background,cursor:this._colors.cursor,ansi:this._colors.ansi.slice()}}};ti=M([S(0,H)],ti);function K(s,t){if(s!==void 0)try{return z.toColor(s)}catch{}return t}var Rs=class{constructor(...t){this._entries=new Map;for(let[e,i]of t)this.set(e,i)}set(t,e){let i=this._entries.get(t);return this._entries.set(t,e),i}forEach(t){for(let[e,i]of this._entries.entries())t(e,i)}has(t){return this._entries.has(t)}get(t){return this._entries.get(t)}},ln=class{constructor(){this._services=new Rs;this._services.set(xt,this)}setService(t,e){this._services.set(t,e)}getService(t){return this._services.get(t)}createInstance(t,...e){let i=Xs(t).sort((o,l)=>o.index-l.index),r=[];for(let o of i){let l=this._services.get(o.id);if(!l)throw new Error(`[createInstance] ${t.name} depends on UNKNOWN service ${o.id._id}.`);r.push(l)}let n=i.length>0?i[0].index:e.length;if(e.length!==n)throw new Error(`[createInstance] First service dependency of ${t.name} at position ${n+1} conflicts with ${e.length} static arguments`);return new t(...e,...r)}};var ec={trace:0,debug:1,info:2,warn:3,error:4,off:5},tc=\"xterm.js: \",ii=class extends D{constructor(e){super();this._optionsService=e;this._logLevel=5;this._updateLogLevel(),this._register(this._optionsService.onSpecificOptionChange(\"logLevel\",()=>this._updateLogLevel())),ic=this}get logLevel(){return this._logLevel}_updateLogLevel(){this._logLevel=ec[this._optionsService.rawOptions.logLevel]}_evalLazyOptionalParams(e){for(let i=0;i<e.length;i++)typeof e[i]==\"function\"&&(e[i]=e[i]())}_log(e,i,r){this._evalLazyOptionalParams(r),e.call(console,(this._optionsService.options.logger?\"\":tc)+i,...r)}trace(e,...i){this._logLevel<=0&&this._log(this._optionsService.options.logger?.trace.bind(this._optionsService.options.logger)??console.log,e,i)}debug(e,...i){this._logLevel<=1&&this._log(this._optionsService.options.logger?.debug.bind(this._optionsService.options.logger)??console.log,e,i)}info(e,...i){this._logLevel<=2&&this._log(this._optionsService.options.logger?.info.bind(this._optionsService.options.logger)??console.info,e,i)}warn(e,...i){this._logLevel<=3&&this._log(this._optionsService.options.logger?.warn.bind(this._optionsService.options.logger)??console.warn,e,i)}error(e,...i){this._logLevel<=4&&this._log(this._optionsService.options.logger?.error.bind(this._optionsService.options.logger)??console.error,e,i)}};ii=M([S(0,H)],ii);var ic;var zi=class extends D{constructor(e){super();this._maxLength=e;this.onDeleteEmitter=this._register(new v);this.onDelete=this.onDeleteEmitter.event;this.onInsertEmitter=this._register(new v);this.onInsert=this.onInsertEmitter.event;this.onTrimEmitter=this._register(new v);this.onTrim=this.onTrimEmitter.event;this._array=new Array(this._maxLength),this._startIndex=0,this._length=0}get maxLength(){return this._maxLength}set maxLength(e){if(this._maxLength===e)return;let i=new Array(e);for(let r=0;r<Math.min(e,this.length);r++)i[r]=this._array[this._getCyclicIndex(r)];this._array=i,this._maxLength=e,this._startIndex=0}get length(){return this._length}set length(e){if(e>this._length)for(let i=this._length;i<e;i++)this._array[i]=void 0;this._length=e}get(e){return this._array[this._getCyclicIndex(e)]}set(e,i){this._array[this._getCyclicIndex(e)]=i}push(e){this._array[this._getCyclicIndex(this._length)]=e,this._length===this._maxLength?(this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1)):this._length++}recycle(){if(this._length!==this._maxLength)throw new Error(\"Can only recycle when the buffer is full\");return this._startIndex=++this._startIndex%this._maxLength,this.onTrimEmitter.fire(1),this._array[this._getCyclicIndex(this._length-1)]}get isFull(){return this._length===this._maxLength}pop(){return this._array[this._getCyclicIndex(this._length---1)]}splice(e,i,...r){if(i){for(let n=e;n<this._length-i;n++)this._array[this._getCyclicIndex(n)]=this._array[this._getCyclicIndex(n+i)];this._length-=i,this.onDeleteEmitter.fire({index:e,amount:i})}for(let n=this._length-1;n>=e;n--)this._array[this._getCyclicIndex(n+r.length)]=this._array[this._getCyclicIndex(n)];for(let n=0;n<r.length;n++)this._array[this._getCyclicIndex(e+n)]=r[n];if(r.length&&this.onInsertEmitter.fire({index:e,amount:r.length}),this._length+r.length>this._maxLength){let n=this._length+r.length-this._maxLength;this._startIndex+=n,this._length=this._maxLength,this.onTrimEmitter.fire(n)}else this._length+=r.length}trimStart(e){e>this._length&&(e=this._length),this._startIndex+=e,this._length-=e,this.onTrimEmitter.fire(e)}shiftElements(e,i,r){if(!(i<=0)){if(e<0||e>=this._length)throw new Error(\"start argument out of range\");if(e+r<0)throw new Error(\"Cannot shift elements in list beyond index 0\");if(r>0){for(let o=i-1;o>=0;o--)this.set(e+o+r,this.get(e+o));let n=e+i+r-this._length;if(n>0)for(this._length+=n;this._length>this._maxLength;)this._length--,this._startIndex++,this.onTrimEmitter.fire(1)}else for(let n=0;n<i;n++)this.set(e+n+r,this.get(e+n))}}_getCyclicIndex(e){return(this._startIndex+e)%this._maxLength}};var B=3;var X=Object.freeze(new De),an=0,Ls=2,Ze=class s{constructor(t,e,i=!1){this.isWrapped=i;this._combined={};this._extendedAttrs={};this._data=new Uint32Array(t*B);let r=e||q.fromCharData([0,ir,1,0]);for(let n=0;n<t;++n)this.setCell(n,r);this.length=t}get(t){let e=this._data[t*B+0],i=e&2097151;return[this._data[t*B+1],e&2097152?this._combined[t]:i?Ce(i):\"\",e>>22,e&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):i]}set(t,e){this._data[t*B+1]=e[0],e[1].length>1?(this._combined[t]=e[1],this._data[t*B+0]=t|2097152|e[2]<<22):this._data[t*B+0]=e[1].charCodeAt(0)|e[2]<<22}getWidth(t){return this._data[t*B+0]>>22}hasWidth(t){return this._data[t*B+0]&12582912}getFg(t){return this._data[t*B+1]}getBg(t){return this._data[t*B+2]}hasContent(t){return this._data[t*B+0]&4194303}getCodePoint(t){let e=this._data[t*B+0];return e&2097152?this._combined[t].charCodeAt(this._combined[t].length-1):e&2097151}isCombined(t){return this._data[t*B+0]&2097152}getString(t){let e=this._data[t*B+0];return e&2097152?this._combined[t]:e&2097151?Ce(e&2097151):\"\"}isProtected(t){return this._data[t*B+2]&536870912}loadCell(t,e){return an=t*B,e.content=this._data[an+0],e.fg=this._data[an+1],e.bg=this._data[an+2],e.content&2097152&&(e.combinedData=this._combined[t]),e.bg&268435456&&(e.extended=this._extendedAttrs[t]),e}setCell(t,e){e.content&2097152&&(this._combined[t]=e.combinedData),e.bg&268435456&&(this._extendedAttrs[t]=e.extended),this._data[t*B+0]=e.content,this._data[t*B+1]=e.fg,this._data[t*B+2]=e.bg}setCellFromCodepoint(t,e,i,r){r.bg&268435456&&(this._extendedAttrs[t]=r.extended),this._data[t*B+0]=e|i<<22,this._data[t*B+1]=r.fg,this._data[t*B+2]=r.bg}addCodepointToCell(t,e,i){let r=this._data[t*B+0];r&2097152?this._combined[t]+=Ce(e):r&2097151?(this._combined[t]=Ce(r&2097151)+Ce(e),r&=-2097152,r|=2097152):r=e|1<<22,i&&(r&=-12582913,r|=i<<22),this._data[t*B+0]=r}insertCells(t,e,i){if(t%=this.length,t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,i),e<this.length-t){let r=new q;for(let n=this.length-t-e-1;n>=0;--n)this.setCell(t+e+n,this.loadCell(t+n,r));for(let n=0;n<e;++n)this.setCell(t+n,i)}else for(let r=t;r<this.length;++r)this.setCell(r,i);this.getWidth(this.length-1)===2&&this.setCellFromCodepoint(this.length-1,0,1,i)}deleteCells(t,e,i){if(t%=this.length,e<this.length-t){let r=new q;for(let n=0;n<this.length-t-e;++n)this.setCell(t+n,this.loadCell(t+e+n,r));for(let n=this.length-e;n<this.length;++n)this.setCell(n,i)}else for(let r=t;r<this.length;++r)this.setCell(r,i);t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,i),this.getWidth(t)===0&&!this.hasContent(t)&&this.setCellFromCodepoint(t,0,1,i)}replaceCells(t,e,i,r=!1){if(r){for(t&&this.getWidth(t-1)===2&&!this.isProtected(t-1)&&this.setCellFromCodepoint(t-1,0,1,i),e<this.length&&this.getWidth(e-1)===2&&!this.isProtected(e)&&this.setCellFromCodepoint(e,0,1,i);t<e&&t<this.length;)this.isProtected(t)||this.setCell(t,i),t++;return}for(t&&this.getWidth(t-1)===2&&this.setCellFromCodepoint(t-1,0,1,i),e<this.length&&this.getWidth(e-1)===2&&this.setCellFromCodepoint(e,0,1,i);t<e&&t<this.length;)this.setCell(t++,i)}resize(t,e){if(t===this.length)return this._data.length*4*Ls<this._data.buffer.byteLength;let i=t*B;if(t>this.length){if(this._data.buffer.byteLength>=i*4)this._data=new Uint32Array(this._data.buffer,0,i);else{let r=new Uint32Array(i);r.set(this._data),this._data=r}for(let r=this.length;r<t;++r)this.setCell(r,e)}else{this._data=this._data.subarray(0,i);let r=Object.keys(this._combined);for(let o=0;o<r.length;o++){let l=parseInt(r[o],10);l>=t&&delete this._combined[l]}let n=Object.keys(this._extendedAttrs);for(let o=0;o<n.length;o++){let l=parseInt(n[o],10);l>=t&&delete this._extendedAttrs[l]}}return this.length=t,i*4*Ls<this._data.buffer.byteLength}cleanupMemory(){if(this._data.length*4*Ls<this._data.buffer.byteLength){let t=new Uint32Array(this._data.length);return t.set(this._data),this._data=t,1}return 0}fill(t,e=!1){if(e){for(let i=0;i<this.length;++i)this.isProtected(i)||this.setCell(i,t);return}this._combined={},this._extendedAttrs={};for(let i=0;i<this.length;++i)this.setCell(i,t)}copyFrom(t){this.length!==t.length?this._data=new Uint32Array(t._data):this._data.set(t._data),this.length=t.length,this._combined={};for(let e in t._combined)this._combined[e]=t._combined[e];this._extendedAttrs={};for(let e in t._extendedAttrs)this._extendedAttrs[e]=t._extendedAttrs[e];this.isWrapped=t.isWrapped}clone(){let t=new s(0);t._data=new Uint32Array(this._data),t.length=this.length;for(let e in this._combined)t._combined[e]=this._combined[e];for(let e in this._extendedAttrs)t._extendedAttrs[e]=this._extendedAttrs[e];return t.isWrapped=this.isWrapped,t}getTrimmedLength(){for(let t=this.length-1;t>=0;--t)if(this._data[t*B+0]&4194303)return t+(this._data[t*B+0]>>22);return 0}getNoBgTrimmedLength(){for(let t=this.length-1;t>=0;--t)if(this._data[t*B+0]&4194303||this._data[t*B+2]&50331648)return t+(this._data[t*B+0]>>22);return 0}copyCellsFrom(t,e,i,r,n){let o=t._data;if(n)for(let a=r-1;a>=0;a--){for(let u=0;u<B;u++)this._data[(i+a)*B+u]=o[(e+a)*B+u];o[(e+a)*B+2]&268435456&&(this._extendedAttrs[i+a]=t._extendedAttrs[e+a])}else for(let a=0;a<r;a++){for(let u=0;u<B;u++)this._data[(i+a)*B+u]=o[(e+a)*B+u];o[(e+a)*B+2]&268435456&&(this._extendedAttrs[i+a]=t._extendedAttrs[e+a])}let l=Object.keys(t._combined);for(let a=0;a<l.length;a++){let u=parseInt(l[a],10);u>=e&&(this._combined[u-e+i]=t._combined[u])}}translateToString(t,e,i,r){e=e??0,i=i??this.length,t&&(i=Math.min(i,this.getTrimmedLength())),r&&(r.length=0);let n=\"\";for(;e<i;){let o=this._data[e*B+0],l=o&2097151,a=o&2097152?this._combined[e]:l?Ce(l):we;if(n+=a,r)for(let u=0;u<a.length;++u)r.push(e);e+=o>>22||1}return r&&r.push(e),n}};function sl(s,t,e,i,r,n){let o=[];for(let l=0;l<s.length-1;l++){let a=l,u=s.get(++a);if(!u.isWrapped)continue;let h=[s.get(l)];for(;a<s.length&&u.isWrapped;)h.push(u),u=s.get(++a);if(!n&&i>=l&&i<a){l+=h.length-1;continue}let c=0,d=ri(h,c,t),_=1,p=0;for(;_<h.length;){let f=ri(h,_,t),A=f-p,R=e-d,O=Math.min(A,R);h[c].copyCellsFrom(h[_],p,d,O,!1),d+=O,d===e&&(c++,d=0),p+=O,p===f&&(_++,p=0),d===0&&c!==0&&h[c-1].getWidth(e-1)===2&&(h[c].copyCellsFrom(h[c-1],e-1,d++,1,!1),h[c-1].setCell(e-1,r))}h[c].replaceCells(d,e,r);let m=0;for(let f=h.length-1;f>0&&(f>c||h[f].getTrimmedLength()===0);f--)m++;m>0&&(o.push(l+h.length-m),o.push(m)),l+=h.length-1}return o}function ol(s,t){let e=[],i=0,r=t[i],n=0;for(let o=0;o<s.length;o++)if(r===o){let l=t[++i];s.onDeleteEmitter.fire({index:o-n,amount:l}),o+=l-1,n+=l,r=t[++i]}else e.push(o);return{layout:e,countRemoved:n}}function ll(s,t){let e=[];for(let i=0;i<t.length;i++)e.push(s.get(t[i]));for(let i=0;i<e.length;i++)s.set(i,e[i]);s.length=t.length}function al(s,t,e){let i=[],r=s.map((a,u)=>ri(s,u,t)).reduce((a,u)=>a+u),n=0,o=0,l=0;for(;l<r;){if(r-l<e){i.push(r-l);break}n+=e;let a=ri(s,o,t);n>a&&(n-=a,o++);let u=s[o].getWidth(n-1)===2;u&&n--;let h=u?e-1:e;i.push(h),l+=h}return i}function ri(s,t,e){if(t===s.length-1)return s[t].getTrimmedLength();let i=!s[t].hasContent(e-1)&&s[t].getWidth(e-1)===1,r=s[t+1].getWidth(0)===2;return i&&r?e-1:e}var un=class un{constructor(t){this.line=t;this.isDisposed=!1;this._disposables=[];this._id=un._nextId++;this._onDispose=this.register(new v);this.onDispose=this._onDispose.event}get id(){return this._id}dispose(){this.isDisposed||(this.isDisposed=!0,this.line=-1,this._onDispose.fire(),Ne(this._disposables),this._disposables.length=0)}register(t){return this._disposables.push(t),t}};un._nextId=1;var cn=un;var ne={},Je=ne.B;ne[0]={\"`\":\"\\u25C6\",a:\"\\u2592\",b:\"\\u2409\",c:\"\\u240C\",d:\"\\u240D\",e:\"\\u240A\",f:\"\\xB0\",g:\"\\xB1\",h:\"\\u2424\",i:\"\\u240B\",j:\"\\u2518\",k:\"\\u2510\",l:\"\\u250C\",m:\"\\u2514\",n:\"\\u253C\",o:\"\\u23BA\",p:\"\\u23BB\",q:\"\\u2500\",r:\"\\u23BC\",s:\"\\u23BD\",t:\"\\u251C\",u:\"\\u2524\",v:\"\\u2534\",w:\"\\u252C\",x:\"\\u2502\",y:\"\\u2264\",z:\"\\u2265\",\"{\":\"\\u03C0\",\"|\":\"\\u2260\",\"}\":\"\\xA3\",\"~\":\"\\xB7\"};ne.A={\"#\":\"\\xA3\"};ne.B=void 0;ne[4]={\"#\":\"\\xA3\",\"@\":\"\\xBE\",\"[\":\"ij\",\"\\\\\":\"\\xBD\",\"]\":\"|\",\"{\":\"\\xA8\",\"|\":\"f\",\"}\":\"\\xBC\",\"~\":\"\\xB4\"};ne.C=ne[5]={\"[\":\"\\xC4\",\"\\\\\":\"\\xD6\",\"]\":\"\\xC5\",\"^\":\"\\xDC\",\"`\":\"\\xE9\",\"{\":\"\\xE4\",\"|\":\"\\xF6\",\"}\":\"\\xE5\",\"~\":\"\\xFC\"};ne.R={\"#\":\"\\xA3\",\"@\":\"\\xE0\",\"[\":\"\\xB0\",\"\\\\\":\"\\xE7\",\"]\":\"\\xA7\",\"{\":\"\\xE9\",\"|\":\"\\xF9\",\"}\":\"\\xE8\",\"~\":\"\\xA8\"};ne.Q={\"@\":\"\\xE0\",\"[\":\"\\xE2\",\"\\\\\":\"\\xE7\",\"]\":\"\\xEA\",\"^\":\"\\xEE\",\"`\":\"\\xF4\",\"{\":\"\\xE9\",\"|\":\"\\xF9\",\"}\":\"\\xE8\",\"~\":\"\\xFB\"};ne.K={\"@\":\"\\xA7\",\"[\":\"\\xC4\",\"\\\\\":\"\\xD6\",\"]\":\"\\xDC\",\"{\":\"\\xE4\",\"|\":\"\\xF6\",\"}\":\"\\xFC\",\"~\":\"\\xDF\"};ne.Y={\"#\":\"\\xA3\",\"@\":\"\\xA7\",\"[\":\"\\xB0\",\"\\\\\":\"\\xE7\",\"]\":\"\\xE9\",\"`\":\"\\xF9\",\"{\":\"\\xE0\",\"|\":\"\\xF2\",\"}\":\"\\xE8\",\"~\":\"\\xEC\"};ne.E=ne[6]={\"@\":\"\\xC4\",\"[\":\"\\xC6\",\"\\\\\":\"\\xD8\",\"]\":\"\\xC5\",\"^\":\"\\xDC\",\"`\":\"\\xE4\",\"{\":\"\\xE6\",\"|\":\"\\xF8\",\"}\":\"\\xE5\",\"~\":\"\\xFC\"};ne.Z={\"#\":\"\\xA3\",\"@\":\"\\xA7\",\"[\":\"\\xA1\",\"\\\\\":\"\\xD1\",\"]\":\"\\xBF\",\"{\":\"\\xB0\",\"|\":\"\\xF1\",\"}\":\"\\xE7\"};ne.H=ne[7]={\"@\":\"\\xC9\",\"[\":\"\\xC4\",\"\\\\\":\"\\xD6\",\"]\":\"\\xC5\",\"^\":\"\\xDC\",\"`\":\"\\xE9\",\"{\":\"\\xE4\",\"|\":\"\\xF6\",\"}\":\"\\xE5\",\"~\":\"\\xFC\"};ne[\"=\"]={\"#\":\"\\xF9\",\"@\":\"\\xE0\",\"[\":\"\\xE9\",\"\\\\\":\"\\xE7\",\"]\":\"\\xEA\",\"^\":\"\\xEE\",_:\"\\xE8\",\"`\":\"\\xF4\",\"{\":\"\\xE4\",\"|\":\"\\xF6\",\"}\":\"\\xFC\",\"~\":\"\\xFB\"};var cl=4294967295,$i=class{constructor(t,e,i){this._hasScrollback=t;this._optionsService=e;this._bufferService=i;this.ydisp=0;this.ybase=0;this.y=0;this.x=0;this.tabs={};this.savedY=0;this.savedX=0;this.savedCurAttrData=X.clone();this.savedCharset=Je;this.markers=[];this._nullCell=q.fromCharData([0,ir,1,0]);this._whitespaceCell=q.fromCharData([0,we,1,32]);this._isClearing=!1;this._memoryCleanupQueue=new Jt;this._memoryCleanupPosition=0;this._cols=this._bufferService.cols,this._rows=this._bufferService.rows,this.lines=new zi(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}getNullCell(t){return t?(this._nullCell.fg=t.fg,this._nullCell.bg=t.bg,this._nullCell.extended=t.extended):(this._nullCell.fg=0,this._nullCell.bg=0,this._nullCell.extended=new rt),this._nullCell}getWhitespaceCell(t){return t?(this._whitespaceCell.fg=t.fg,this._whitespaceCell.bg=t.bg,this._whitespaceCell.extended=t.extended):(this._whitespaceCell.fg=0,this._whitespaceCell.bg=0,this._whitespaceCell.extended=new rt),this._whitespaceCell}getBlankLine(t,e){return new Ze(this._bufferService.cols,this.getNullCell(t),e)}get hasScrollback(){return this._hasScrollback&&this.lines.maxLength>this._rows}get isCursorInViewport(){let e=this.ybase+this.y-this.ydisp;return e>=0&&e<this._rows}_getCorrectBufferLength(t){if(!this._hasScrollback)return t;let e=t+this._optionsService.rawOptions.scrollback;return e>cl?cl:e}fillViewportRows(t){if(this.lines.length===0){t===void 0&&(t=X);let e=this._rows;for(;e--;)this.lines.push(this.getBlankLine(t))}}clear(){this.ydisp=0,this.ybase=0,this.y=0,this.x=0,this.lines=new zi(this._getCorrectBufferLength(this._rows)),this.scrollTop=0,this.scrollBottom=this._rows-1,this.setupTabStops()}resize(t,e){let i=this.getNullCell(X),r=0,n=this._getCorrectBufferLength(e);if(n>this.lines.maxLength&&(this.lines.maxLength=n),this.lines.length>0){if(this._cols<t)for(let l=0;l<this.lines.length;l++)r+=+this.lines.get(l).resize(t,i);let o=0;if(this._rows<e)for(let l=this._rows;l<e;l++)this.lines.length<e+this.ybase&&(this._optionsService.rawOptions.windowsMode||this._optionsService.rawOptions.windowsPty.backend!==void 0||this._optionsService.rawOptions.windowsPty.buildNumber!==void 0?this.lines.push(new Ze(t,i)):this.ybase>0&&this.lines.length<=this.ybase+this.y+o+1?(this.ybase--,o++,this.ydisp>0&&this.ydisp--):this.lines.push(new Ze(t,i)));else for(let l=this._rows;l>e;l--)this.lines.length>e+this.ybase&&(this.lines.length>this.ybase+this.y+1?this.lines.pop():(this.ybase++,this.ydisp++));if(n<this.lines.maxLength){let l=this.lines.length-n;l>0&&(this.lines.trimStart(l),this.ybase=Math.max(this.ybase-l,0),this.ydisp=Math.max(this.ydisp-l,0),this.savedY=Math.max(this.savedY-l,0)),this.lines.maxLength=n}this.x=Math.min(this.x,t-1),this.y=Math.min(this.y,e-1),o&&(this.y+=o),this.savedX=Math.min(this.savedX,t-1),this.scrollTop=0}if(this.scrollBottom=e-1,this._isReflowEnabled&&(this._reflow(t,e),this._cols>t))for(let o=0;o<this.lines.length;o++)r+=+this.lines.get(o).resize(t,i);this._cols=t,this._rows=e,this._memoryCleanupQueue.clear(),r>.1*this.lines.length&&(this._memoryCleanupPosition=0,this._memoryCleanupQueue.enqueue(()=>this._batchedMemoryCleanup()))}_batchedMemoryCleanup(){let t=!0;this._memoryCleanupPosition>=this.lines.length&&(this._memoryCleanupPosition=0,t=!1);let e=0;for(;this._memoryCleanupPosition<this.lines.length;)if(e+=this.lines.get(this._memoryCleanupPosition++).cleanupMemory(),e>100)return!0;return t}get _isReflowEnabled(){let t=this._optionsService.rawOptions.windowsPty;return t&&t.buildNumber?this._hasScrollback&&t.backend===\"conpty\"&&t.buildNumber>=21376:this._hasScrollback&&!this._optionsService.rawOptions.windowsMode}_reflow(t,e){this._cols!==t&&(t>this._cols?this._reflowLarger(t,e):this._reflowSmaller(t,e))}_reflowLarger(t,e){let i=this._optionsService.rawOptions.reflowCursorLine,r=sl(this.lines,this._cols,t,this.ybase+this.y,this.getNullCell(X),i);if(r.length>0){let n=ol(this.lines,r);ll(this.lines,n.layout),this._reflowLargerAdjustViewport(t,e,n.countRemoved)}}_reflowLargerAdjustViewport(t,e,i){let r=this.getNullCell(X),n=i;for(;n-- >0;)this.ybase===0?(this.y>0&&this.y--,this.lines.length<e&&this.lines.push(new Ze(t,r))):(this.ydisp===this.ybase&&this.ydisp--,this.ybase--);this.savedY=Math.max(this.savedY-i,0)}_reflowSmaller(t,e){let i=this._optionsService.rawOptions.reflowCursorLine,r=this.getNullCell(X),n=[],o=0;for(let l=this.lines.length-1;l>=0;l--){let a=this.lines.get(l);if(!a||!a.isWrapped&&a.getTrimmedLength()<=t)continue;let u=[a];for(;a.isWrapped&&l>0;)a=this.lines.get(--l),u.unshift(a);if(!i){let I=this.ybase+this.y;if(I>=l&&I<l+u.length)continue}let h=u[u.length-1].getTrimmedLength(),c=al(u,this._cols,t),d=c.length-u.length,_;this.ybase===0&&this.y!==this.lines.length-1?_=Math.max(0,this.y-this.lines.maxLength+d):_=Math.max(0,this.lines.length-this.lines.maxLength+d);let p=[];for(let I=0;I<d;I++){let k=this.getBlankLine(X,!0);p.push(k)}p.length>0&&(n.push({start:l+u.length+o,newLines:p}),o+=p.length),u.push(...p);let m=c.length-1,f=c[m];f===0&&(m--,f=c[m]);let A=u.length-d-1,R=h;for(;A>=0;){let I=Math.min(R,f);if(u[m]===void 0)break;if(u[m].copyCellsFrom(u[A],R-I,f-I,I,!0),f-=I,f===0&&(m--,f=c[m]),R-=I,R===0){A--;let k=Math.max(A,0);R=ri(u,k,this._cols)}}for(let I=0;I<u.length;I++)c[I]<t&&u[I].setCell(c[I],r);let O=d-_;for(;O-- >0;)this.ybase===0?this.y<e-1?(this.y++,this.lines.pop()):(this.ybase++,this.ydisp++):this.ybase<Math.min(this.lines.maxLength,this.lines.length+o)-e&&(this.ybase===this.ydisp&&this.ydisp++,this.ybase++);this.savedY=Math.min(this.savedY+d,this.ybase+e-1)}if(n.length>0){let l=[],a=[];for(let f=0;f<this.lines.length;f++)a.push(this.lines.get(f));let u=this.lines.length,h=u-1,c=0,d=n[c];this.lines.length=Math.min(this.lines.maxLength,this.lines.length+o);let _=0;for(let f=Math.min(this.lines.maxLength-1,u+o-1);f>=0;f--)if(d&&d.start>h+_){for(let A=d.newLines.length-1;A>=0;A--)this.lines.set(f--,d.newLines[A]);f++,l.push({index:h+1,amount:d.newLines.length}),_+=d.newLines.length,d=n[++c]}else this.lines.set(f,a[h--]);let p=0;for(let f=l.length-1;f>=0;f--)l[f].index+=p,this.lines.onInsertEmitter.fire(l[f]),p+=l[f].amount;let m=Math.max(0,u+o-this.lines.maxLength);m>0&&this.lines.onTrimEmitter.fire(m)}}translateBufferLineToString(t,e,i=0,r){let n=this.lines.get(t);return n?n.translateToString(e,i,r):\"\"}getWrappedRangeForLine(t){let e=t,i=t;for(;e>0&&this.lines.get(e).isWrapped;)e--;for(;i+1<this.lines.length&&this.lines.get(i+1).isWrapped;)i++;return{first:e,last:i}}setupTabStops(t){for(t!=null?this.tabs[t]||(t=this.prevStop(t)):(this.tabs={},t=0);t<this._cols;t+=this._optionsService.rawOptions.tabStopWidth)this.tabs[t]=!0}prevStop(t){for(t==null&&(t=this.x);!this.tabs[--t]&&t>0;);return t>=this._cols?this._cols-1:t<0?0:t}nextStop(t){for(t==null&&(t=this.x);!this.tabs[++t]&&t<this._cols;);return t>=this._cols?this._cols-1:t<0?0:t}clearMarkers(t){this._isClearing=!0;for(let e=0;e<this.markers.length;e++)this.markers[e].line===t&&(this.markers[e].dispose(),this.markers.splice(e--,1));this._isClearing=!1}clearAllMarkers(){this._isClearing=!0;for(let t=0;t<this.markers.length;t++)this.markers[t].dispose();this.markers.length=0,this._isClearing=!1}addMarker(t){let e=new cn(t);return this.markers.push(e),e.register(this.lines.onTrim(i=>{e.line-=i,e.line<0&&e.dispose()})),e.register(this.lines.onInsert(i=>{e.line>=i.index&&(e.line+=i.amount)})),e.register(this.lines.onDelete(i=>{e.line>=i.index&&e.line<i.index+i.amount&&e.dispose(),e.line>i.index&&(e.line-=i.amount)})),e.register(e.onDispose(()=>this._removeMarker(e))),e}_removeMarker(t){this._isClearing||this.markers.splice(this.markers.indexOf(t),1)}};var hn=class extends D{constructor(e,i){super();this._optionsService=e;this._bufferService=i;this._onBufferActivate=this._register(new v);this.onBufferActivate=this._onBufferActivate.event;this.reset(),this._register(this._optionsService.onSpecificOptionChange(\"scrollback\",()=>this.resize(this._bufferService.cols,this._bufferService.rows))),this._register(this._optionsService.onSpecificOptionChange(\"tabStopWidth\",()=>this.setupTabStops()))}reset(){this._normal=new $i(!0,this._optionsService,this._bufferService),this._normal.fillViewportRows(),this._alt=new $i(!1,this._optionsService,this._bufferService),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}),this.setupTabStops()}get alt(){return this._alt}get active(){return this._activeBuffer}get normal(){return this._normal}activateNormalBuffer(){this._activeBuffer!==this._normal&&(this._normal.x=this._alt.x,this._normal.y=this._alt.y,this._alt.clearAllMarkers(),this._alt.clear(),this._activeBuffer=this._normal,this._onBufferActivate.fire({activeBuffer:this._normal,inactiveBuffer:this._alt}))}activateAltBuffer(e){this._activeBuffer!==this._alt&&(this._alt.fillViewportRows(e),this._alt.x=this._normal.x,this._alt.y=this._normal.y,this._activeBuffer=this._alt,this._onBufferActivate.fire({activeBuffer:this._alt,inactiveBuffer:this._normal}))}resize(e,i){this._normal.resize(e,i),this._alt.resize(e,i),this.setupTabStops(e)}setupTabStops(e){this._normal.setupTabStops(e),this._alt.setupTabStops(e)}};var ks=2,Cs=1,ni=class extends D{constructor(e){super();this.isUserScrolling=!1;this._onResize=this._register(new v);this.onResize=this._onResize.event;this._onScroll=this._register(new v);this.onScroll=this._onScroll.event;this.cols=Math.max(e.rawOptions.cols||0,ks),this.rows=Math.max(e.rawOptions.rows||0,Cs),this.buffers=this._register(new hn(e,this)),this._register(this.buffers.onBufferActivate(i=>{this._onScroll.fire(i.activeBuffer.ydisp)}))}get buffer(){return this.buffers.active}resize(e,i){let r=this.cols!==e,n=this.rows!==i;this.cols=e,this.rows=i,this.buffers.resize(e,i),this._onResize.fire({cols:e,rows:i,colsChanged:r,rowsChanged:n})}reset(){this.buffers.reset(),this.isUserScrolling=!1}scroll(e,i=!1){let r=this.buffer,n;n=this._cachedBlankLine,(!n||n.length!==this.cols||n.getFg(0)!==e.fg||n.getBg(0)!==e.bg)&&(n=r.getBlankLine(e,i),this._cachedBlankLine=n),n.isWrapped=i;let o=r.ybase+r.scrollTop,l=r.ybase+r.scrollBottom;if(r.scrollTop===0){let a=r.lines.isFull;l===r.lines.length-1?a?r.lines.recycle().copyFrom(n):r.lines.push(n.clone()):r.lines.splice(l+1,0,n.clone()),a?this.isUserScrolling&&(r.ydisp=Math.max(r.ydisp-1,0)):(r.ybase++,this.isUserScrolling||r.ydisp++)}else{let a=l-o+1;r.lines.shiftElements(o+1,a-1,-1),r.lines.set(l,n.clone())}this.isUserScrolling||(r.ydisp=r.ybase),this._onScroll.fire(r.ydisp)}scrollLines(e,i){let r=this.buffer;if(e<0){if(r.ydisp===0)return;this.isUserScrolling=!0}else e+r.ydisp>=r.ybase&&(this.isUserScrolling=!1);let n=r.ydisp;r.ydisp=Math.max(Math.min(r.ydisp+e,r.ybase),0),n!==r.ydisp&&(i||this._onScroll.fire(r.ydisp))}};ni=M([S(0,H)],ni);var si={cols:80,rows:24,cursorBlink:!1,cursorStyle:\"block\",cursorWidth:1,cursorInactiveStyle:\"outline\",customGlyphs:!0,drawBoldTextInBrightColors:!0,documentOverride:null,fastScrollModifier:\"alt\",fastScrollSensitivity:5,fontFamily:\"monospace\",fontSize:15,fontWeight:\"normal\",fontWeightBold:\"bold\",ignoreBracketedPasteMode:!1,lineHeight:1,letterSpacing:0,linkHandler:null,logLevel:\"info\",logger:null,scrollback:1e3,scrollOnEraseInDisplay:!1,scrollOnUserInput:!0,scrollSensitivity:1,screenReaderMode:!1,smoothScrollDuration:0,macOptionIsMeta:!1,macOptionClickForcesSelection:!1,minimumContrastRatio:1,disableStdin:!1,allowProposedApi:!1,allowTransparency:!1,tabStopWidth:8,theme:{},reflowCursorLine:!1,rescaleOverlappingGlyphs:!1,rightClickSelectsWord:Zt,windowOptions:{},windowsMode:!1,windowsPty:{},wordSeparator:\" ()[]{}',\\\"`\",altClickMovesCursor:!0,convertEol:!1,termName:\"xterm\",cancelEvents:!1,overviewRuler:{}},nc=[\"normal\",\"bold\",\"100\",\"200\",\"300\",\"400\",\"500\",\"600\",\"700\",\"800\",\"900\"],dn=class extends D{constructor(e){super();this._onOptionChange=this._register(new v);this.onOptionChange=this._onOptionChange.event;let i={...si};for(let r in e)if(r in i)try{let n=e[r];i[r]=this._sanitizeAndValidateOption(r,n)}catch(n){console.error(n)}this.rawOptions=i,this.options={...i},this._setupOptions(),this._register(C(()=>{this.rawOptions.linkHandler=null,this.rawOptions.documentOverride=null}))}onSpecificOptionChange(e,i){return this.onOptionChange(r=>{r===e&&i(this.rawOptions[e])})}onMultipleOptionChange(e,i){return this.onOptionChange(r=>{e.indexOf(r)!==-1&&i()})}_setupOptions(){let e=r=>{if(!(r in si))throw new Error(`No option with key \"${r}\"`);return this.rawOptions[r]},i=(r,n)=>{if(!(r in si))throw new Error(`No option with key \"${r}\"`);n=this._sanitizeAndValidateOption(r,n),this.rawOptions[r]!==n&&(this.rawOptions[r]=n,this._onOptionChange.fire(r))};for(let r in this.rawOptions){let n={get:e.bind(this,r),set:i.bind(this,r)};Object.defineProperty(this.options,r,n)}}_sanitizeAndValidateOption(e,i){switch(e){case\"cursorStyle\":if(i||(i=si[e]),!sc(i))throw new Error(`\"${i}\" is not a valid value for ${e}`);break;case\"wordSeparator\":i||(i=si[e]);break;case\"fontWeight\":case\"fontWeightBold\":if(typeof i==\"number\"&&1<=i&&i<=1e3)break;i=nc.includes(i)?i:si[e];break;case\"cursorWidth\":i=Math.floor(i);case\"lineHeight\":case\"tabStopWidth\":if(i<1)throw new Error(`${e} cannot be less than 1, value: ${i}`);break;case\"minimumContrastRatio\":i=Math.max(1,Math.min(21,Math.round(i*10)/10));break;case\"scrollback\":if(i=Math.min(i,4294967295),i<0)throw new Error(`${e} cannot be less than 0, value: ${i}`);break;case\"fastScrollSensitivity\":case\"scrollSensitivity\":if(i<=0)throw new Error(`${e} cannot be less than or equal to 0, value: ${i}`);break;case\"rows\":case\"cols\":if(!i&&i!==0)throw new Error(`${e} must be numeric, value: ${i}`);break;case\"windowsPty\":i=i??{};break}return i}};function sc(s){return s===\"block\"||s===\"underline\"||s===\"bar\"}function oi(s,t=5){if(typeof s!=\"object\")return s;let e=Array.isArray(s)?[]:{};for(let i in s)e[i]=t<=1?s[i]:s[i]&&oi(s[i],t-1);return e}var ul=Object.freeze({insertMode:!1}),hl=Object.freeze({applicationCursorKeys:!1,applicationKeypad:!1,bracketedPasteMode:!1,cursorBlink:void 0,cursorStyle:void 0,origin:!1,reverseWraparound:!1,sendFocus:!1,synchronizedOutput:!1,wraparound:!0}),li=class extends D{constructor(e,i,r){super();this._bufferService=e;this._logService=i;this._optionsService=r;this.isCursorInitialized=!1;this.isCursorHidden=!1;this._onData=this._register(new v);this.onData=this._onData.event;this._onUserInput=this._register(new v);this.onUserInput=this._onUserInput.event;this._onBinary=this._register(new v);this.onBinary=this._onBinary.event;this._onRequestScrollToBottom=this._register(new v);this.onRequestScrollToBottom=this._onRequestScrollToBottom.event;this.modes=oi(ul),this.decPrivateModes=oi(hl)}reset(){this.modes=oi(ul),this.decPrivateModes=oi(hl)}triggerDataEvent(e,i=!1){if(this._optionsService.rawOptions.disableStdin)return;let r=this._bufferService.buffer;i&&this._optionsService.rawOptions.scrollOnUserInput&&r.ybase!==r.ydisp&&this._onRequestScrollToBottom.fire(),i&&this._onUserInput.fire(),this._logService.debug(`sending data \"${e}\"`),this._logService.trace(\"sending data (codes)\",()=>e.split(\"\").map(n=>n.charCodeAt(0))),this._onData.fire(e)}triggerBinaryEvent(e){this._optionsService.rawOptions.disableStdin||(this._logService.debug(`sending binary \"${e}\"`),this._logService.trace(\"sending binary (codes)\",()=>e.split(\"\").map(i=>i.charCodeAt(0))),this._onBinary.fire(e))}};li=M([S(0,F),S(1,nr),S(2,H)],li);var dl={NONE:{events:0,restrict:()=>!1},X10:{events:1,restrict:s=>s.button===4||s.action!==1?!1:(s.ctrl=!1,s.alt=!1,s.shift=!1,!0)},VT200:{events:19,restrict:s=>s.action!==32},DRAG:{events:23,restrict:s=>!(s.action===32&&s.button===3)},ANY:{events:31,restrict:s=>!0}};function Ms(s,t){let e=(s.ctrl?16:0)|(s.shift?4:0)|(s.alt?8:0);return s.button===4?(e|=64,e|=s.action):(e|=s.button&3,s.button&4&&(e|=64),s.button&8&&(e|=128),s.action===32?e|=32:s.action===0&&!t&&(e|=3)),e}var Ps=String.fromCharCode,fl={DEFAULT:s=>{let t=[Ms(s,!1)+32,s.col+32,s.row+32];return t[0]>255||t[1]>255||t[2]>255?\"\":`\\x1B[M${Ps(t[0])}${Ps(t[1])}${Ps(t[2])}`},SGR:s=>{let t=s.action===0&&s.button!==4?\"m\":\"M\";return`\\x1B[<${Ms(s,!0)};${s.col};${s.row}${t}`},SGR_PIXELS:s=>{let t=s.action===0&&s.button!==4?\"m\":\"M\";return`\\x1B[<${Ms(s,!0)};${s.x};${s.y}${t}`}},ai=class extends D{constructor(e,i,r){super();this._bufferService=e;this._coreService=i;this._optionsService=r;this._protocols={};this._encodings={};this._activeProtocol=\"\";this._activeEncoding=\"\";this._lastEvent=null;this._wheelPartialScroll=0;this._onProtocolChange=this._register(new v);this.onProtocolChange=this._onProtocolChange.event;for(let n of Object.keys(dl))this.addProtocol(n,dl[n]);for(let n of Object.keys(fl))this.addEncoding(n,fl[n]);this.reset()}addProtocol(e,i){this._protocols[e]=i}addEncoding(e,i){this._encodings[e]=i}get activeProtocol(){return this._activeProtocol}get areMouseEventsActive(){return this._protocols[this._activeProtocol].events!==0}set activeProtocol(e){if(!this._protocols[e])throw new Error(`unknown protocol \"${e}\"`);this._activeProtocol=e,this._onProtocolChange.fire(this._protocols[e].events)}get activeEncoding(){return this._activeEncoding}set activeEncoding(e){if(!this._encodings[e])throw new Error(`unknown encoding \"${e}\"`);this._activeEncoding=e}reset(){this.activeProtocol=\"NONE\",this.activeEncoding=\"DEFAULT\",this._lastEvent=null,this._wheelPartialScroll=0}consumeWheelEvent(e,i,r){if(e.deltaY===0||e.shiftKey||i===void 0||r===void 0)return 0;let n=i/r,o=this._applyScrollModifier(e.deltaY,e);return e.deltaMode===WheelEvent.DOM_DELTA_PIXEL?(o/=n+0,Math.abs(e.deltaY)<50&&(o*=.3),this._wheelPartialScroll+=o,o=Math.floor(Math.abs(this._wheelPartialScroll))*(this._wheelPartialScroll>0?1:-1),this._wheelPartialScroll%=1):e.deltaMode===WheelEvent.DOM_DELTA_PAGE&&(o*=this._bufferService.rows),o}_applyScrollModifier(e,i){return i.altKey||i.ctrlKey||i.shiftKey?e*this._optionsService.rawOptions.fastScrollSensitivity*this._optionsService.rawOptions.scrollSensitivity:e*this._optionsService.rawOptions.scrollSensitivity}triggerMouseEvent(e){if(e.col<0||e.col>=this._bufferService.cols||e.row<0||e.row>=this._bufferService.rows||e.button===4&&e.action===32||e.button===3&&e.action!==32||e.button!==4&&(e.action===2||e.action===3)||(e.col++,e.row++,e.action===32&&this._lastEvent&&this._equalEvents(this._lastEvent,e,this._activeEncoding===\"SGR_PIXELS\"))||!this._protocols[this._activeProtocol].restrict(e))return!1;let i=this._encodings[this._activeEncoding](e);return i&&(this._activeEncoding===\"DEFAULT\"?this._coreService.triggerBinaryEvent(i):this._coreService.triggerDataEvent(i,!0)),this._lastEvent=e,!0}explainEvents(e){return{down:!!(e&1),up:!!(e&2),drag:!!(e&4),move:!!(e&8),wheel:!!(e&16)}}_equalEvents(e,i,r){if(r){if(e.x!==i.x||e.y!==i.y)return!1}else if(e.col!==i.col||e.row!==i.row)return!1;return!(e.button!==i.button||e.action!==i.action||e.ctrl!==i.ctrl||e.alt!==i.alt||e.shift!==i.shift)}};ai=M([S(0,F),S(1,ge),S(2,H)],ai);var Os=[[768,879],[1155,1158],[1160,1161],[1425,1469],[1471,1471],[1473,1474],[1476,1477],[1479,1479],[1536,1539],[1552,1557],[1611,1630],[1648,1648],[1750,1764],[1767,1768],[1770,1773],[1807,1807],[1809,1809],[1840,1866],[1958,1968],[2027,2035],[2305,2306],[2364,2364],[2369,2376],[2381,2381],[2385,2388],[2402,2403],[2433,2433],[2492,2492],[2497,2500],[2509,2509],[2530,2531],[2561,2562],[2620,2620],[2625,2626],[2631,2632],[2635,2637],[2672,2673],[2689,2690],[2748,2748],[2753,2757],[2759,2760],[2765,2765],[2786,2787],[2817,2817],[2876,2876],[2879,2879],[2881,2883],[2893,2893],[2902,2902],[2946,2946],[3008,3008],[3021,3021],[3134,3136],[3142,3144],[3146,3149],[3157,3158],[3260,3260],[3263,3263],[3270,3270],[3276,3277],[3298,3299],[3393,3395],[3405,3405],[3530,3530],[3538,3540],[3542,3542],[3633,3633],[3636,3642],[3655,3662],[3761,3761],[3764,3769],[3771,3772],[3784,3789],[3864,3865],[3893,3893],[3895,3895],[3897,3897],[3953,3966],[3968,3972],[3974,3975],[3984,3991],[3993,4028],[4038,4038],[4141,4144],[4146,4146],[4150,4151],[4153,4153],[4184,4185],[4448,4607],[4959,4959],[5906,5908],[5938,5940],[5970,5971],[6002,6003],[6068,6069],[6071,6077],[6086,6086],[6089,6099],[6109,6109],[6155,6157],[6313,6313],[6432,6434],[6439,6440],[6450,6450],[6457,6459],[6679,6680],[6912,6915],[6964,6964],[6966,6970],[6972,6972],[6978,6978],[7019,7027],[7616,7626],[7678,7679],[8203,8207],[8234,8238],[8288,8291],[8298,8303],[8400,8431],[12330,12335],[12441,12442],[43014,43014],[43019,43019],[43045,43046],[64286,64286],[65024,65039],[65056,65059],[65279,65279],[65529,65531]],ac=[[68097,68099],[68101,68102],[68108,68111],[68152,68154],[68159,68159],[119143,119145],[119155,119170],[119173,119179],[119210,119213],[119362,119364],[917505,917505],[917536,917631],[917760,917999]],se;function cc(s,t){let e=0,i=t.length-1,r;if(s<t[0][0]||s>t[i][1])return!1;for(;i>=e;)if(r=e+i>>1,s>t[r][1])e=r+1;else if(s<t[r][0])i=r-1;else return!0;return!1}var fn=class{constructor(){this.version=\"6\";if(!se){se=new Uint8Array(65536),se.fill(1),se[0]=0,se.fill(0,1,32),se.fill(0,127,160),se.fill(2,4352,4448),se[9001]=2,se[9002]=2,se.fill(2,11904,42192),se[12351]=1,se.fill(2,44032,55204),se.fill(2,63744,64256),se.fill(2,65040,65050),se.fill(2,65072,65136),se.fill(2,65280,65377),se.fill(2,65504,65511);for(let t=0;t<Os.length;++t)se.fill(0,Os[t][0],Os[t][1]+1)}}wcwidth(t){return t<32?0:t<127?1:t<65536?se[t]:cc(t,ac)?0:t>=131072&&t<=196605||t>=196608&&t<=262141?2:1}charProperties(t,e){let i=this.wcwidth(t),r=i===0&&e!==0;if(r){let n=Ae.extractWidth(e);n===0?r=!1:n>i&&(i=n)}return Ae.createPropertyValue(0,i,r)}};var Ae=class s{constructor(){this._providers=Object.create(null);this._active=\"\";this._onChange=new v;this.onChange=this._onChange.event;let t=new fn;this.register(t),this._active=t.version,this._activeProvider=t}static extractShouldJoin(t){return(t&1)!==0}static extractWidth(t){return t>>1&3}static extractCharKind(t){return t>>3}static createPropertyValue(t,e,i=!1){return(t&16777215)<<3|(e&3)<<1|(i?1:0)}dispose(){this._onChange.dispose()}get versions(){return Object.keys(this._providers)}get activeVersion(){return this._active}set activeVersion(t){if(!this._providers[t])throw new Error(`unknown Unicode version \"${t}\"`);this._active=t,this._activeProvider=this._providers[t],this._onChange.fire(t)}register(t){this._providers[t.version]=t}wcwidth(t){return this._activeProvider.wcwidth(t)}getStringCellWidth(t){let e=0,i=0,r=t.length;for(let n=0;n<r;++n){let o=t.charCodeAt(n);if(55296<=o&&o<=56319){if(++n>=r)return e+this.wcwidth(o);let u=t.charCodeAt(n);56320<=u&&u<=57343?o=(o-55296)*1024+u-56320+65536:e+=this.wcwidth(u)}let l=this.charProperties(o,i),a=s.extractWidth(l);s.extractShouldJoin(l)&&(a-=s.extractWidth(i)),e+=a,i=l}return e}charProperties(t,e){return this._activeProvider.charProperties(t,e)}};var pn=class{constructor(){this.glevel=0;this._charsets=[]}reset(){this.charset=void 0,this._charsets=[],this.glevel=0}setgLevel(t){this.glevel=t,this.charset=this._charsets[t]}setgCharset(t,e){this._charsets[t]=e,this.glevel===t&&(this.charset=e)}};function Bs(s){let e=s.buffer.lines.get(s.buffer.ybase+s.buffer.y-1)?.get(s.cols-1),i=s.buffer.lines.get(s.buffer.ybase+s.buffer.y);i&&e&&(i.isWrapped=e[3]!==0&&e[3]!==32)}var Vi=2147483647,uc=256,ci=class s{constructor(t=32,e=32){this.maxLength=t;this.maxSubParamsLength=e;if(e>uc)throw new Error(\"maxSubParamsLength must not be greater than 256\");this.params=new Int32Array(t),this.length=0,this._subParams=new Int32Array(e),this._subParamsLength=0,this._subParamsIdx=new Uint16Array(t),this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}static fromArray(t){let e=new s;if(!t.length)return e;for(let i=Array.isArray(t[0])?1:0;i<t.length;++i){let r=t[i];if(Array.isArray(r))for(let n=0;n<r.length;++n)e.addSubParam(r[n]);else e.addParam(r)}return e}clone(){let t=new s(this.maxLength,this.maxSubParamsLength);return t.params.set(this.params),t.length=this.length,t._subParams.set(this._subParams),t._subParamsLength=this._subParamsLength,t._subParamsIdx.set(this._subParamsIdx),t._rejectDigits=this._rejectDigits,t._rejectSubDigits=this._rejectSubDigits,t._digitIsSub=this._digitIsSub,t}toArray(){let t=[];for(let e=0;e<this.length;++e){t.push(this.params[e]);let i=this._subParamsIdx[e]>>8,r=this._subParamsIdx[e]&255;r-i>0&&t.push(Array.prototype.slice.call(this._subParams,i,r))}return t}reset(){this.length=0,this._subParamsLength=0,this._rejectDigits=!1,this._rejectSubDigits=!1,this._digitIsSub=!1}addParam(t){if(this._digitIsSub=!1,this.length>=this.maxLength){this._rejectDigits=!0;return}if(t<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParamsIdx[this.length]=this._subParamsLength<<8|this._subParamsLength,this.params[this.length++]=t>Vi?Vi:t}addSubParam(t){if(this._digitIsSub=!0,!!this.length){if(this._rejectDigits||this._subParamsLength>=this.maxSubParamsLength){this._rejectSubDigits=!0;return}if(t<-1)throw new Error(\"values lesser than -1 are not allowed\");this._subParams[this._subParamsLength++]=t>Vi?Vi:t,this._subParamsIdx[this.length-1]++}}hasSubParams(t){return(this._subParamsIdx[t]&255)-(this._subParamsIdx[t]>>8)>0}getSubParams(t){let e=this._subParamsIdx[t]>>8,i=this._subParamsIdx[t]&255;return i-e>0?this._subParams.subarray(e,i):null}getSubParamsAll(){let t={};for(let e=0;e<this.length;++e){let i=this._subParamsIdx[e]>>8,r=this._subParamsIdx[e]&255;r-i>0&&(t[e]=this._subParams.slice(i,r))}return t}addDigit(t){let e;if(this._rejectDigits||!(e=this._digitIsSub?this._subParamsLength:this.length)||this._digitIsSub&&this._rejectSubDigits)return;let i=this._digitIsSub?this._subParams:this.params,r=i[e-1];i[e-1]=~r?Math.min(r*10+t,Vi):t}};var qi=[],mn=class{constructor(){this._state=0;this._active=qi;this._id=-1;this._handlers=Object.create(null);this._handlerFb=()=>{};this._stack={paused:!1,loopPosition:0,fallThrough:!1}}registerHandler(t,e){this._handlers[t]===void 0&&(this._handlers[t]=[]);let i=this._handlers[t];return i.push(e),{dispose:()=>{let r=i.indexOf(e);r!==-1&&i.splice(r,1)}}}clearHandler(t){this._handlers[t]&&delete this._handlers[t]}setHandlerFallback(t){this._handlerFb=t}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=qi}reset(){if(this._state===2)for(let t=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;t>=0;--t)this._active[t].end(!1);this._stack.paused=!1,this._active=qi,this._id=-1,this._state=0}_start(){if(this._active=this._handlers[this._id]||qi,!this._active.length)this._handlerFb(this._id,\"START\");else for(let t=this._active.length-1;t>=0;t--)this._active[t].start()}_put(t,e,i){if(!this._active.length)this._handlerFb(this._id,\"PUT\",It(t,e,i));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(t,e,i)}start(){this.reset(),this._state=1}put(t,e,i){if(this._state!==3){if(this._state===1)for(;e<i;){let r=t[e++];if(r===59){this._state=2,this._start();break}if(r<48||57<r){this._state=3;return}this._id===-1&&(this._id=0),this._id=this._id*10+r-48}this._state===2&&i-e>0&&this._put(t,e,i)}}end(t,e=!0){if(this._state!==0){if(this._state!==3)if(this._state===1&&this._start(),!this._active.length)this._handlerFb(this._id,\"END\",t);else{let i=!1,r=this._active.length-1,n=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,i=e,n=this._stack.fallThrough,this._stack.paused=!1),!n&&i===!1){for(;r>=0&&(i=this._active[r].end(t),i!==!0);r--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,i;r--}for(;r>=0;r--)if(i=this._active[r].end(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,i}this._active=qi,this._id=-1,this._state=0}}},pe=class{constructor(t){this._handler=t;this._data=\"\";this._hitLimit=!1}start(){this._data=\"\",this._hitLimit=!1}put(t,e,i){this._hitLimit||(this._data+=It(t,e,i),this._data.length>1e7&&(this._data=\"\",this._hitLimit=!0))}end(t){let e=!1;if(this._hitLimit)e=!1;else if(t&&(e=this._handler(this._data),e instanceof Promise))return e.then(i=>(this._data=\"\",this._hitLimit=!1,i));return this._data=\"\",this._hitLimit=!1,e}};var Yi=[],_n=class{constructor(){this._handlers=Object.create(null);this._active=Yi;this._ident=0;this._handlerFb=()=>{};this._stack={paused:!1,loopPosition:0,fallThrough:!1}}dispose(){this._handlers=Object.create(null),this._handlerFb=()=>{},this._active=Yi}registerHandler(t,e){this._handlers[t]===void 0&&(this._handlers[t]=[]);let i=this._handlers[t];return i.push(e),{dispose:()=>{let r=i.indexOf(e);r!==-1&&i.splice(r,1)}}}clearHandler(t){this._handlers[t]&&delete this._handlers[t]}setHandlerFallback(t){this._handlerFb=t}reset(){if(this._active.length)for(let t=this._stack.paused?this._stack.loopPosition-1:this._active.length-1;t>=0;--t)this._active[t].unhook(!1);this._stack.paused=!1,this._active=Yi,this._ident=0}hook(t,e){if(this.reset(),this._ident=t,this._active=this._handlers[t]||Yi,!this._active.length)this._handlerFb(this._ident,\"HOOK\",e);else for(let i=this._active.length-1;i>=0;i--)this._active[i].hook(e)}put(t,e,i){if(!this._active.length)this._handlerFb(this._ident,\"PUT\",It(t,e,i));else for(let r=this._active.length-1;r>=0;r--)this._active[r].put(t,e,i)}unhook(t,e=!0){if(!this._active.length)this._handlerFb(this._ident,\"UNHOOK\",t);else{let i=!1,r=this._active.length-1,n=!1;if(this._stack.paused&&(r=this._stack.loopPosition-1,i=e,n=this._stack.fallThrough,this._stack.paused=!1),!n&&i===!1){for(;r>=0&&(i=this._active[r].unhook(t),i!==!0);r--)if(i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!1,i;r--}for(;r>=0;r--)if(i=this._active[r].unhook(!1),i instanceof Promise)return this._stack.paused=!0,this._stack.loopPosition=r,this._stack.fallThrough=!0,i}this._active=Yi,this._ident=0}},ji=new ci;ji.addParam(0);var Xi=class{constructor(t){this._handler=t;this._data=\"\";this._params=ji;this._hitLimit=!1}hook(t){this._params=t.length>1||t.params[0]?t.clone():ji,this._data=\"\",this._hitLimit=!1}put(t,e,i){this._hitLimit||(this._data+=It(t,e,i),this._data.length>1e7&&(this._data=\"\",this._hitLimit=!0))}unhook(t){let e=!1;if(this._hitLimit)e=!1;else if(t&&(e=this._handler(this._data,this._params),e instanceof Promise))return e.then(i=>(this._params=ji,this._data=\"\",this._hitLimit=!1,i));return this._params=ji,this._data=\"\",this._hitLimit=!1,e}};var Fs=class{constructor(t){this.table=new Uint8Array(t)}setDefault(t,e){this.table.fill(t<<4|e)}add(t,e,i,r){this.table[e<<8|t]=i<<4|r}addMany(t,e,i,r){for(let n=0;n<t.length;n++)this.table[e<<8|t[n]]=i<<4|r}},ke=160,hc=function(){let s=new Fs(4095),e=Array.apply(null,Array(256)).map((a,u)=>u),i=(a,u)=>e.slice(a,u),r=i(32,127),n=i(0,24);n.push(25),n.push.apply(n,i(28,32));let o=i(0,14),l;s.setDefault(1,0),s.addMany(r,0,2,0);for(l in o)s.addMany([24,26,153,154],l,3,0),s.addMany(i(128,144),l,3,0),s.addMany(i(144,152),l,3,0),s.add(156,l,0,0),s.add(27,l,11,1),s.add(157,l,4,8),s.addMany([152,158,159],l,0,7),s.add(155,l,11,3),s.add(144,l,11,9);return s.addMany(n,0,3,0),s.addMany(n,1,3,1),s.add(127,1,0,1),s.addMany(n,8,0,8),s.addMany(n,3,3,3),s.add(127,3,0,3),s.addMany(n,4,3,4),s.add(127,4,0,4),s.addMany(n,6,3,6),s.addMany(n,5,3,5),s.add(127,5,0,5),s.addMany(n,2,3,2),s.add(127,2,0,2),s.add(93,1,4,8),s.addMany(r,8,5,8),s.add(127,8,5,8),s.addMany([156,27,24,26,7],8,6,0),s.addMany(i(28,32),8,0,8),s.addMany([88,94,95],1,0,7),s.addMany(r,7,0,7),s.addMany(n,7,0,7),s.add(156,7,0,0),s.add(127,7,0,7),s.add(91,1,11,3),s.addMany(i(64,127),3,7,0),s.addMany(i(48,60),3,8,4),s.addMany([60,61,62,63],3,9,4),s.addMany(i(48,60),4,8,4),s.addMany(i(64,127),4,7,0),s.addMany([60,61,62,63],4,0,6),s.addMany(i(32,64),6,0,6),s.add(127,6,0,6),s.addMany(i(64,127),6,0,0),s.addMany(i(32,48),3,9,5),s.addMany(i(32,48),5,9,5),s.addMany(i(48,64),5,0,6),s.addMany(i(64,127),5,7,0),s.addMany(i(32,48),4,9,5),s.addMany(i(32,48),1,9,2),s.addMany(i(32,48),2,9,2),s.addMany(i(48,127),2,10,0),s.addMany(i(48,80),1,10,0),s.addMany(i(81,88),1,10,0),s.addMany([89,90,92],1,10,0),s.addMany(i(96,127),1,10,0),s.add(80,1,11,9),s.addMany(n,9,0,9),s.add(127,9,0,9),s.addMany(i(28,32),9,0,9),s.addMany(i(32,48),9,9,12),s.addMany(i(48,60),9,8,10),s.addMany([60,61,62,63],9,9,10),s.addMany(n,11,0,11),s.addMany(i(32,128),11,0,11),s.addMany(i(28,32),11,0,11),s.addMany(n,10,0,10),s.add(127,10,0,10),s.addMany(i(28,32),10,0,10),s.addMany(i(48,60),10,8,10),s.addMany([60,61,62,63],10,0,11),s.addMany(i(32,48),10,9,12),s.addMany(n,12,0,12),s.add(127,12,0,12),s.addMany(i(28,32),12,0,12),s.addMany(i(32,48),12,9,12),s.addMany(i(48,64),12,0,11),s.addMany(i(64,127),12,12,13),s.addMany(i(64,127),10,12,13),s.addMany(i(64,127),9,12,13),s.addMany(n,13,13,13),s.addMany(r,13,13,13),s.add(127,13,0,13),s.addMany([27,156,24,26],13,14,0),s.add(ke,0,2,0),s.add(ke,8,5,8),s.add(ke,6,0,6),s.add(ke,11,0,11),s.add(ke,13,13,13),s}(),bn=class extends D{constructor(e=hc){super();this._transitions=e;this._parseStack={state:0,handlers:[],handlerPos:0,transition:0,chunkPos:0};this.initialState=0,this.currentState=this.initialState,this._params=new ci,this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._printHandlerFb=(i,r,n)=>{},this._executeHandlerFb=i=>{},this._csiHandlerFb=(i,r)=>{},this._escHandlerFb=i=>{},this._errorHandlerFb=i=>i,this._printHandler=this._printHandlerFb,this._executeHandlers=Object.create(null),this._csiHandlers=Object.create(null),this._escHandlers=Object.create(null),this._register(C(()=>{this._csiHandlers=Object.create(null),this._executeHandlers=Object.create(null),this._escHandlers=Object.create(null)})),this._oscParser=this._register(new mn),this._dcsParser=this._register(new _n),this._errorHandler=this._errorHandlerFb,this.registerEscHandler({final:\"\\\\\"},()=>!0)}_identifier(e,i=[64,126]){let r=0;if(e.prefix){if(e.prefix.length>1)throw new Error(\"only one byte as prefix supported\");if(r=e.prefix.charCodeAt(0),r&&60>r||r>63)throw new Error(\"prefix must be in range 0x3c .. 0x3f\")}if(e.intermediates){if(e.intermediates.length>2)throw new Error(\"only two bytes as intermediates are supported\");for(let o=0;o<e.intermediates.length;++o){let l=e.intermediates.charCodeAt(o);if(32>l||l>47)throw new Error(\"intermediate must be in range 0x20 .. 0x2f\");r<<=8,r|=l}}if(e.final.length!==1)throw new Error(\"final must be a single byte\");let n=e.final.charCodeAt(0);if(i[0]>n||n>i[1])throw new Error(`final must be in range ${i[0]} .. ${i[1]}`);return r<<=8,r|=n,r}identToString(e){let i=[];for(;e;)i.push(String.fromCharCode(e&255)),e>>=8;return i.reverse().join(\"\")}setPrintHandler(e){this._printHandler=e}clearPrintHandler(){this._printHandler=this._printHandlerFb}registerEscHandler(e,i){let r=this._identifier(e,[48,126]);this._escHandlers[r]===void 0&&(this._escHandlers[r]=[]);let n=this._escHandlers[r];return n.push(i),{dispose:()=>{let o=n.indexOf(i);o!==-1&&n.splice(o,1)}}}clearEscHandler(e){this._escHandlers[this._identifier(e,[48,126])]&&delete this._escHandlers[this._identifier(e,[48,126])]}setEscHandlerFallback(e){this._escHandlerFb=e}setExecuteHandler(e,i){this._executeHandlers[e.charCodeAt(0)]=i}clearExecuteHandler(e){this._executeHandlers[e.charCodeAt(0)]&&delete this._executeHandlers[e.charCodeAt(0)]}setExecuteHandlerFallback(e){this._executeHandlerFb=e}registerCsiHandler(e,i){let r=this._identifier(e);this._csiHandlers[r]===void 0&&(this._csiHandlers[r]=[]);let n=this._csiHandlers[r];return n.push(i),{dispose:()=>{let o=n.indexOf(i);o!==-1&&n.splice(o,1)}}}clearCsiHandler(e){this._csiHandlers[this._identifier(e)]&&delete this._csiHandlers[this._identifier(e)]}setCsiHandlerFallback(e){this._csiHandlerFb=e}registerDcsHandler(e,i){return this._dcsParser.registerHandler(this._identifier(e),i)}clearDcsHandler(e){this._dcsParser.clearHandler(this._identifier(e))}setDcsHandlerFallback(e){this._dcsParser.setHandlerFallback(e)}registerOscHandler(e,i){return this._oscParser.registerHandler(e,i)}clearOscHandler(e){this._oscParser.clearHandler(e)}setOscHandlerFallback(e){this._oscParser.setHandlerFallback(e)}setErrorHandler(e){this._errorHandler=e}clearErrorHandler(){this._errorHandler=this._errorHandlerFb}reset(){this.currentState=this.initialState,this._oscParser.reset(),this._dcsParser.reset(),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0,this._parseStack.state!==0&&(this._parseStack.state=2,this._parseStack.handlers=[])}_preserveStack(e,i,r,n,o){this._parseStack.state=e,this._parseStack.handlers=i,this._parseStack.handlerPos=r,this._parseStack.transition=n,this._parseStack.chunkPos=o}parse(e,i,r){let n=0,o=0,l=0,a;if(this._parseStack.state)if(this._parseStack.state===2)this._parseStack.state=0,l=this._parseStack.chunkPos+1;else{if(r===void 0||this._parseStack.state===1)throw this._parseStack.state=1,new Error(\"improper continuation due to previous async handler, giving up parsing\");let u=this._parseStack.handlers,h=this._parseStack.handlerPos-1;switch(this._parseStack.state){case 3:if(r===!1&&h>-1){for(;h>=0&&(a=u[h](this._params),a!==!0);h--)if(a instanceof Promise)return this._parseStack.handlerPos=h,a}this._parseStack.handlers=[];break;case 4:if(r===!1&&h>-1){for(;h>=0&&(a=u[h](),a!==!0);h--)if(a instanceof Promise)return this._parseStack.handlerPos=h,a}this._parseStack.handlers=[];break;case 6:if(n=e[this._parseStack.chunkPos],a=this._dcsParser.unhook(n!==24&&n!==26,r),a)return a;n===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break;case 5:if(n=e[this._parseStack.chunkPos],a=this._oscParser.end(n!==24&&n!==26,r),a)return a;n===27&&(this._parseStack.transition|=1),this._params.reset(),this._params.addParam(0),this._collect=0;break}this._parseStack.state=0,l=this._parseStack.chunkPos+1,this.precedingJoinState=0,this.currentState=this._parseStack.transition&15}for(let u=l;u<i;++u){switch(n=e[u],o=this._transitions.table[this.currentState<<8|(n<160?n:ke)],o>>4){case 2:for(let m=u+1;;++m){if(m>=i||(n=e[m])<32||n>126&&n<ke){this._printHandler(e,u,m),u=m-1;break}if(++m>=i||(n=e[m])<32||n>126&&n<ke){this._printHandler(e,u,m),u=m-1;break}if(++m>=i||(n=e[m])<32||n>126&&n<ke){this._printHandler(e,u,m),u=m-1;break}if(++m>=i||(n=e[m])<32||n>126&&n<ke){this._printHandler(e,u,m),u=m-1;break}}break;case 3:this._executeHandlers[n]?this._executeHandlers[n]():this._executeHandlerFb(n),this.precedingJoinState=0;break;case 0:break;case 1:if(this._errorHandler({position:u,code:n,currentState:this.currentState,collect:this._collect,params:this._params,abort:!1}).abort)return;break;case 7:let c=this._csiHandlers[this._collect<<8|n],d=c?c.length-1:-1;for(;d>=0&&(a=c[d](this._params),a!==!0);d--)if(a instanceof Promise)return this._preserveStack(3,c,d,o,u),a;d<0&&this._csiHandlerFb(this._collect<<8|n,this._params),this.precedingJoinState=0;break;case 8:do switch(n){case 59:this._params.addParam(0);break;case 58:this._params.addSubParam(-1);break;default:this._params.addDigit(n-48)}while(++u<i&&(n=e[u])>47&&n<60);u--;break;case 9:this._collect<<=8,this._collect|=n;break;case 10:let _=this._escHandlers[this._collect<<8|n],p=_?_.length-1:-1;for(;p>=0&&(a=_[p](),a!==!0);p--)if(a instanceof Promise)return this._preserveStack(4,_,p,o,u),a;p<0&&this._escHandlerFb(this._collect<<8|n),this.precedingJoinState=0;break;case 11:this._params.reset(),this._params.addParam(0),this._collect=0;break;case 12:this._dcsParser.hook(this._collect<<8|n,this._params);break;case 13:for(let m=u+1;;++m)if(m>=i||(n=e[m])===24||n===26||n===27||n>127&&n<ke){this._dcsParser.put(e,u,m),u=m-1;break}break;case 14:if(a=this._dcsParser.unhook(n!==24&&n!==26),a)return this._preserveStack(6,[],0,o,u),a;n===27&&(o|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break;case 4:this._oscParser.start();break;case 5:for(let m=u+1;;m++)if(m>=i||(n=e[m])<32||n>127&&n<ke){this._oscParser.put(e,u,m),u=m-1;break}break;case 6:if(a=this._oscParser.end(n!==24&&n!==26),a)return this._preserveStack(5,[],0,o,u),a;n===27&&(o|=1),this._params.reset(),this._params.addParam(0),this._collect=0,this.precedingJoinState=0;break}this.currentState=o&15}}};var dc=/^([\\da-f])\\/([\\da-f])\\/([\\da-f])$|^([\\da-f]{2})\\/([\\da-f]{2})\\/([\\da-f]{2})$|^([\\da-f]{3})\\/([\\da-f]{3})\\/([\\da-f]{3})$|^([\\da-f]{4})\\/([\\da-f]{4})\\/([\\da-f]{4})$/,fc=/^[\\da-f]+$/;function Ws(s){if(!s)return;let t=s.toLowerCase();if(t.indexOf(\"rgb:\")===0){t=t.slice(4);let e=dc.exec(t);if(e){let i=e[1]?15:e[4]?255:e[7]?4095:65535;return[Math.round(parseInt(e[1]||e[4]||e[7]||e[10],16)/i*255),Math.round(parseInt(e[2]||e[5]||e[8]||e[11],16)/i*255),Math.round(parseInt(e[3]||e[6]||e[9]||e[12],16)/i*255)]}}else if(t.indexOf(\"#\")===0&&(t=t.slice(1),fc.exec(t)&&[3,6,9,12].includes(t.length))){let e=t.length/3,i=[0,0,0];for(let r=0;r<3;++r){let n=parseInt(t.slice(e*r,e*r+e),16);i[r]=e===1?n<<4:e===2?n:e===3?n>>4:n>>8}return i}}function Hs(s,t){let e=s.toString(16),i=e.length<2?\"0\"+e:e;switch(t){case 4:return e[0];case 8:return i;case 12:return(i+i).slice(0,3);default:return i+i}}function ml(s,t=16){let[e,i,r]=s;return`rgb:${Hs(e,t)}/${Hs(i,t)}/${Hs(r,t)}`}var mc={\"(\":0,\")\":1,\"*\":2,\"+\":3,\"-\":1,\".\":2},ut=131072,_l=10;function bl(s,t){if(s>24)return t.setWinLines||!1;switch(s){case 1:return!!t.restoreWin;case 2:return!!t.minimizeWin;case 3:return!!t.setWinPosition;case 4:return!!t.setWinSizePixels;case 5:return!!t.raiseWin;case 6:return!!t.lowerWin;case 7:return!!t.refreshWin;case 8:return!!t.setWinSizeChars;case 9:return!!t.maximizeWin;case 10:return!!t.fullscreenWin;case 11:return!!t.getWinState;case 13:return!!t.getWinPosition;case 14:return!!t.getWinSizePixels;case 15:return!!t.getScreenSizePixels;case 16:return!!t.getCellSizePixels;case 18:return!!t.getWinSizeChars;case 19:return!!t.getScreenSizeChars;case 20:return!!t.getIconTitle;case 21:return!!t.getWinTitle;case 22:return!!t.pushTitle;case 23:return!!t.popTitle;case 24:return!!t.setWinLines}return!1}var vl=5e3,gl=0,vn=class extends D{constructor(e,i,r,n,o,l,a,u,h=new bn){super();this._bufferService=e;this._charsetService=i;this._coreService=r;this._logService=n;this._optionsService=o;this._oscLinkService=l;this._coreMouseService=a;this._unicodeService=u;this._parser=h;this._parseBuffer=new Uint32Array(4096);this._stringDecoder=new er;this._utf8Decoder=new tr;this._windowTitle=\"\";this._iconName=\"\";this._windowTitleStack=[];this._iconNameStack=[];this._curAttrData=X.clone();this._eraseAttrDataInternal=X.clone();this._onRequestBell=this._register(new v);this.onRequestBell=this._onRequestBell.event;this._onRequestRefreshRows=this._register(new v);this.onRequestRefreshRows=this._onRequestRefreshRows.event;this._onRequestReset=this._register(new v);this.onRequestReset=this._onRequestReset.event;this._onRequestSendFocus=this._register(new v);this.onRequestSendFocus=this._onRequestSendFocus.event;this._onRequestSyncScrollBar=this._register(new v);this.onRequestSyncScrollBar=this._onRequestSyncScrollBar.event;this._onRequestWindowsOptionsReport=this._register(new v);this.onRequestWindowsOptionsReport=this._onRequestWindowsOptionsReport.event;this._onA11yChar=this._register(new v);this.onA11yChar=this._onA11yChar.event;this._onA11yTab=this._register(new v);this.onA11yTab=this._onA11yTab.event;this._onCursorMove=this._register(new v);this.onCursorMove=this._onCursorMove.event;this._onLineFeed=this._register(new v);this.onLineFeed=this._onLineFeed.event;this._onScroll=this._register(new v);this.onScroll=this._onScroll.event;this._onTitleChange=this._register(new v);this.onTitleChange=this._onTitleChange.event;this._onColor=this._register(new v);this.onColor=this._onColor.event;this._parseStack={paused:!1,cursorStartX:0,cursorStartY:0,decodedLength:0,position:0};this._specialColors=[256,257,258];this._register(this._parser),this._dirtyRowTracker=new Zi(this._bufferService),this._activeBuffer=this._bufferService.buffer,this._register(this._bufferService.buffers.onBufferActivate(c=>this._activeBuffer=c.activeBuffer)),this._parser.setCsiHandlerFallback((c,d)=>{this._logService.debug(\"Unknown CSI code: \",{identifier:this._parser.identToString(c),params:d.toArray()})}),this._parser.setEscHandlerFallback(c=>{this._logService.debug(\"Unknown ESC code: \",{identifier:this._parser.identToString(c)})}),this._parser.setExecuteHandlerFallback(c=>{this._logService.debug(\"Unknown EXECUTE code: \",{code:c})}),this._parser.setOscHandlerFallback((c,d,_)=>{this._logService.debug(\"Unknown OSC code: \",{identifier:c,action:d,data:_})}),this._parser.setDcsHandlerFallback((c,d,_)=>{d===\"HOOK\"&&(_=_.toArray()),this._logService.debug(\"Unknown DCS code: \",{identifier:this._parser.identToString(c),action:d,payload:_})}),this._parser.setPrintHandler((c,d,_)=>this.print(c,d,_)),this._parser.registerCsiHandler({final:\"@\"},c=>this.insertChars(c)),this._parser.registerCsiHandler({intermediates:\" \",final:\"@\"},c=>this.scrollLeft(c)),this._parser.registerCsiHandler({final:\"A\"},c=>this.cursorUp(c)),this._parser.registerCsiHandler({intermediates:\" \",final:\"A\"},c=>this.scrollRight(c)),this._parser.registerCsiHandler({final:\"B\"},c=>this.cursorDown(c)),this._parser.registerCsiHandler({final:\"C\"},c=>this.cursorForward(c)),this._parser.registerCsiHandler({final:\"D\"},c=>this.cursorBackward(c)),this._parser.registerCsiHandler({final:\"E\"},c=>this.cursorNextLine(c)),this._parser.registerCsiHandler({final:\"F\"},c=>this.cursorPrecedingLine(c)),this._parser.registerCsiHandler({final:\"G\"},c=>this.cursorCharAbsolute(c)),this._parser.registerCsiHandler({final:\"H\"},c=>this.cursorPosition(c)),this._parser.registerCsiHandler({final:\"I\"},c=>this.cursorForwardTab(c)),this._parser.registerCsiHandler({final:\"J\"},c=>this.eraseInDisplay(c,!1)),this._parser.registerCsiHandler({prefix:\"?\",final:\"J\"},c=>this.eraseInDisplay(c,!0)),this._parser.registerCsiHandler({final:\"K\"},c=>this.eraseInLine(c,!1)),this._parser.registerCsiHandler({prefix:\"?\",final:\"K\"},c=>this.eraseInLine(c,!0)),this._parser.registerCsiHandler({final:\"L\"},c=>this.insertLines(c)),this._parser.registerCsiHandler({final:\"M\"},c=>this.deleteLines(c)),this._parser.registerCsiHandler({final:\"P\"},c=>this.deleteChars(c)),this._parser.registerCsiHandler({final:\"S\"},c=>this.scrollUp(c)),this._parser.registerCsiHandler({final:\"T\"},c=>this.scrollDown(c)),this._parser.registerCsiHandler({final:\"X\"},c=>this.eraseChars(c)),this._parser.registerCsiHandler({final:\"Z\"},c=>this.cursorBackwardTab(c)),this._parser.registerCsiHandler({final:\"`\"},c=>this.charPosAbsolute(c)),this._parser.registerCsiHandler({final:\"a\"},c=>this.hPositionRelative(c)),this._parser.registerCsiHandler({final:\"b\"},c=>this.repeatPrecedingCharacter(c)),this._parser.registerCsiHandler({final:\"c\"},c=>this.sendDeviceAttributesPrimary(c)),this._parser.registerCsiHandler({prefix:\">\",final:\"c\"},c=>this.sendDeviceAttributesSecondary(c)),this._parser.registerCsiHandler({final:\"d\"},c=>this.linePosAbsolute(c)),this._parser.registerCsiHandler({final:\"e\"},c=>this.vPositionRelative(c)),this._parser.registerCsiHandler({final:\"f\"},c=>this.hVPosition(c)),this._parser.registerCsiHandler({final:\"g\"},c=>this.tabClear(c)),this._parser.registerCsiHandler({final:\"h\"},c=>this.setMode(c)),this._parser.registerCsiHandler({prefix:\"?\",final:\"h\"},c=>this.setModePrivate(c)),this._parser.registerCsiHandler({final:\"l\"},c=>this.resetMode(c)),this._parser.registerCsiHandler({prefix:\"?\",final:\"l\"},c=>this.resetModePrivate(c)),this._parser.registerCsiHandler({final:\"m\"},c=>this.charAttributes(c)),this._parser.registerCsiHandler({final:\"n\"},c=>this.deviceStatus(c)),this._parser.registerCsiHandler({prefix:\"?\",final:\"n\"},c=>this.deviceStatusPrivate(c)),this._parser.registerCsiHandler({intermediates:\"!\",final:\"p\"},c=>this.softReset(c)),this._parser.registerCsiHandler({intermediates:\" \",final:\"q\"},c=>this.setCursorStyle(c)),this._parser.registerCsiHandler({final:\"r\"},c=>this.setScrollRegion(c)),this._parser.registerCsiHandler({final:\"s\"},c=>this.saveCursor(c)),this._parser.registerCsiHandler({final:\"t\"},c=>this.windowOptions(c)),this._parser.registerCsiHandler({final:\"u\"},c=>this.restoreCursor(c)),this._parser.registerCsiHandler({intermediates:\"'\",final:\"}\"},c=>this.insertColumns(c)),this._parser.registerCsiHandler({intermediates:\"'\",final:\"~\"},c=>this.deleteColumns(c)),this._parser.registerCsiHandler({intermediates:'\"',final:\"q\"},c=>this.selectProtected(c)),this._parser.registerCsiHandler({intermediates:\"$\",final:\"p\"},c=>this.requestMode(c,!0)),this._parser.registerCsiHandler({prefix:\"?\",intermediates:\"$\",final:\"p\"},c=>this.requestMode(c,!1)),this._parser.setExecuteHandler(b.BEL,()=>this.bell()),this._parser.setExecuteHandler(b.LF,()=>this.lineFeed()),this._parser.setExecuteHandler(b.VT,()=>this.lineFeed()),this._parser.setExecuteHandler(b.FF,()=>this.lineFeed()),this._parser.setExecuteHandler(b.CR,()=>this.carriageReturn()),this._parser.setExecuteHandler(b.BS,()=>this.backspace()),this._parser.setExecuteHandler(b.HT,()=>this.tab()),this._parser.setExecuteHandler(b.SO,()=>this.shiftOut()),this._parser.setExecuteHandler(b.SI,()=>this.shiftIn()),this._parser.setExecuteHandler(Ai.IND,()=>this.index()),this._parser.setExecuteHandler(Ai.NEL,()=>this.nextLine()),this._parser.setExecuteHandler(Ai.HTS,()=>this.tabSet()),this._parser.registerOscHandler(0,new pe(c=>(this.setTitle(c),this.setIconName(c),!0))),this._parser.registerOscHandler(1,new pe(c=>this.setIconName(c))),this._parser.registerOscHandler(2,new pe(c=>this.setTitle(c))),this._parser.registerOscHandler(4,new pe(c=>this.setOrReportIndexedColor(c))),this._parser.registerOscHandler(8,new pe(c=>this.setHyperlink(c))),this._parser.registerOscHandler(10,new pe(c=>this.setOrReportFgColor(c))),this._parser.registerOscHandler(11,new pe(c=>this.setOrReportBgColor(c))),this._parser.registerOscHandler(12,new pe(c=>this.setOrReportCursorColor(c))),this._parser.registerOscHandler(104,new pe(c=>this.restoreIndexedColor(c))),this._parser.registerOscHandler(110,new pe(c=>this.restoreFgColor(c))),this._parser.registerOscHandler(111,new pe(c=>this.restoreBgColor(c))),this._parser.registerOscHandler(112,new pe(c=>this.restoreCursorColor(c))),this._parser.registerEscHandler({final:\"7\"},()=>this.saveCursor()),this._parser.registerEscHandler({final:\"8\"},()=>this.restoreCursor()),this._parser.registerEscHandler({final:\"D\"},()=>this.index()),this._parser.registerEscHandler({final:\"E\"},()=>this.nextLine()),this._parser.registerEscHandler({final:\"H\"},()=>this.tabSet()),this._parser.registerEscHandler({final:\"M\"},()=>this.reverseIndex()),this._parser.registerEscHandler({final:\"=\"},()=>this.keypadApplicationMode()),this._parser.registerEscHandler({final:\">\"},()=>this.keypadNumericMode()),this._parser.registerEscHandler({final:\"c\"},()=>this.fullReset()),this._parser.registerEscHandler({final:\"n\"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:\"o\"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:\"|\"},()=>this.setgLevel(3)),this._parser.registerEscHandler({final:\"}\"},()=>this.setgLevel(2)),this._parser.registerEscHandler({final:\"~\"},()=>this.setgLevel(1)),this._parser.registerEscHandler({intermediates:\"%\",final:\"@\"},()=>this.selectDefaultCharset()),this._parser.registerEscHandler({intermediates:\"%\",final:\"G\"},()=>this.selectDefaultCharset());for(let c in ne)this._parser.registerEscHandler({intermediates:\"(\",final:c},()=>this.selectCharset(\"(\"+c)),this._parser.registerEscHandler({intermediates:\")\",final:c},()=>this.selectCharset(\")\"+c)),this._parser.registerEscHandler({intermediates:\"*\",final:c},()=>this.selectCharset(\"*\"+c)),this._parser.registerEscHandler({intermediates:\"+\",final:c},()=>this.selectCharset(\"+\"+c)),this._parser.registerEscHandler({intermediates:\"-\",final:c},()=>this.selectCharset(\"-\"+c)),this._parser.registerEscHandler({intermediates:\".\",final:c},()=>this.selectCharset(\".\"+c)),this._parser.registerEscHandler({intermediates:\"/\",final:c},()=>this.selectCharset(\"/\"+c));this._parser.registerEscHandler({intermediates:\"#\",final:\"8\"},()=>this.screenAlignmentPattern()),this._parser.setErrorHandler(c=>(this._logService.error(\"Parsing error: \",c),c)),this._parser.registerDcsHandler({intermediates:\"$\",final:\"q\"},new Xi((c,d)=>this.requestStatusString(c,d)))}getAttrData(){return this._curAttrData}_preserveStack(e,i,r,n){this._parseStack.paused=!0,this._parseStack.cursorStartX=e,this._parseStack.cursorStartY=i,this._parseStack.decodedLength=r,this._parseStack.position=n}_logSlowResolvingAsync(e){this._logService.logLevel<=3&&Promise.race([e,new Promise((i,r)=>setTimeout(()=>r(\"#SLOW_TIMEOUT\"),vl))]).catch(i=>{if(i!==\"#SLOW_TIMEOUT\")throw i;console.warn(`async parser handler taking longer than ${vl} ms`)})}_getCurrentLinkId(){return this._curAttrData.extended.urlId}parse(e,i){let r,n=this._activeBuffer.x,o=this._activeBuffer.y,l=0,a=this._parseStack.paused;if(a){if(r=this._parser.parse(this._parseBuffer,this._parseStack.decodedLength,i))return this._logSlowResolvingAsync(r),r;n=this._parseStack.cursorStartX,o=this._parseStack.cursorStartY,this._parseStack.paused=!1,e.length>ut&&(l=this._parseStack.position+ut)}if(this._logService.logLevel<=1&&this._logService.debug(`parsing data ${typeof e==\"string\"?` \"${e}\"`:` \"${Array.prototype.map.call(e,c=>String.fromCharCode(c)).join(\"\")}\"`}`),this._logService.logLevel===0&&this._logService.trace(\"parsing data (codes)\",typeof e==\"string\"?e.split(\"\").map(c=>c.charCodeAt(0)):e),this._parseBuffer.length<e.length&&this._parseBuffer.length<ut&&(this._parseBuffer=new Uint32Array(Math.min(e.length,ut))),a||this._dirtyRowTracker.clearRange(),e.length>ut)for(let c=l;c<e.length;c+=ut){let d=c+ut<e.length?c+ut:e.length,_=typeof e==\"string\"?this._stringDecoder.decode(e.substring(c,d),this._parseBuffer):this._utf8Decoder.decode(e.subarray(c,d),this._parseBuffer);if(r=this._parser.parse(this._parseBuffer,_))return this._preserveStack(n,o,_,c),this._logSlowResolvingAsync(r),r}else if(!a){let c=typeof e==\"string\"?this._stringDecoder.decode(e,this._parseBuffer):this._utf8Decoder.decode(e,this._parseBuffer);if(r=this._parser.parse(this._parseBuffer,c))return this._preserveStack(n,o,c,0),this._logSlowResolvingAsync(r),r}(this._activeBuffer.x!==n||this._activeBuffer.y!==o)&&this._onCursorMove.fire();let u=this._dirtyRowTracker.end+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp),h=this._dirtyRowTracker.start+(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp);h<this._bufferService.rows&&this._onRequestRefreshRows.fire({start:Math.min(h,this._bufferService.rows-1),end:Math.min(u,this._bufferService.rows-1)})}print(e,i,r){let n,o,l=this._charsetService.charset,a=this._optionsService.rawOptions.screenReaderMode,u=this._bufferService.cols,h=this._coreService.decPrivateModes.wraparound,c=this._coreService.modes.insertMode,d=this._curAttrData,_=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._activeBuffer.x&&r-i>0&&_.getWidth(this._activeBuffer.x-1)===2&&_.setCellFromCodepoint(this._activeBuffer.x-1,0,1,d);let p=this._parser.precedingJoinState;for(let m=i;m<r;++m){if(n=e[m],n<127&&l){let O=l[String.fromCharCode(n)];O&&(n=O.charCodeAt(0))}let f=this._unicodeService.charProperties(n,p);o=Ae.extractWidth(f);let A=Ae.extractShouldJoin(f),R=A?Ae.extractWidth(p):0;if(p=f,a&&this._onA11yChar.fire(Ce(n)),this._getCurrentLinkId()&&this._oscLinkService.addLineToLink(this._getCurrentLinkId(),this._activeBuffer.ybase+this._activeBuffer.y),this._activeBuffer.x+o-R>u){if(h){let O=_,I=this._activeBuffer.x-R;for(this._activeBuffer.x=R,this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData(),!0)):(this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!0),_=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y),R>0&&_ instanceof Ze&&_.copyCellsFrom(O,I,0,R,!1);I<u;)O.setCellFromCodepoint(I++,0,1,d)}else if(this._activeBuffer.x=u-1,o===2)continue}if(A&&this._activeBuffer.x){let O=_.getWidth(this._activeBuffer.x-1)?1:2;_.addCodepointToCell(this._activeBuffer.x-O,n,o);for(let I=o-R;--I>=0;)_.setCellFromCodepoint(this._activeBuffer.x++,0,0,d);continue}if(c&&(_.insertCells(this._activeBuffer.x,o-R,this._activeBuffer.getNullCell(d)),_.getWidth(u-1)===2&&_.setCellFromCodepoint(u-1,0,1,d)),_.setCellFromCodepoint(this._activeBuffer.x++,n,o,d),o>0)for(;--o;)_.setCellFromCodepoint(this._activeBuffer.x++,0,0,d)}this._parser.precedingJoinState=p,this._activeBuffer.x<u&&r-i>0&&_.getWidth(this._activeBuffer.x)===0&&!_.hasContent(this._activeBuffer.x)&&_.setCellFromCodepoint(this._activeBuffer.x,0,1,d),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}registerCsiHandler(e,i){return e.final===\"t\"&&!e.prefix&&!e.intermediates?this._parser.registerCsiHandler(e,r=>bl(r.params[0],this._optionsService.rawOptions.windowOptions)?i(r):!0):this._parser.registerCsiHandler(e,i)}registerDcsHandler(e,i){return this._parser.registerDcsHandler(e,new Xi(i))}registerEscHandler(e,i){return this._parser.registerEscHandler(e,i)}registerOscHandler(e,i){return this._parser.registerOscHandler(e,new pe(i))}bell(){return this._onRequestBell.fire(),!0}lineFeed(){return this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._optionsService.rawOptions.convertEol&&(this._activeBuffer.x=0),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows?this._activeBuffer.y=this._bufferService.rows-1:this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.x>=this._bufferService.cols&&this._activeBuffer.x--,this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._onLineFeed.fire(),!0}carriageReturn(){return this._activeBuffer.x=0,!0}backspace(){if(!this._coreService.decPrivateModes.reverseWraparound)return this._restrictCursor(),this._activeBuffer.x>0&&this._activeBuffer.x--,!0;if(this._restrictCursor(this._bufferService.cols),this._activeBuffer.x>0)this._activeBuffer.x--;else if(this._activeBuffer.x===0&&this._activeBuffer.y>this._activeBuffer.scrollTop&&this._activeBuffer.y<=this._activeBuffer.scrollBottom&&this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y)?.isWrapped){this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).isWrapped=!1,this._activeBuffer.y--,this._activeBuffer.x=this._bufferService.cols-1;let e=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);e.hasWidth(this._activeBuffer.x)&&!e.hasContent(this._activeBuffer.x)&&this._activeBuffer.x--}return this._restrictCursor(),!0}tab(){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let e=this._activeBuffer.x;return this._activeBuffer.x=this._activeBuffer.nextStop(),this._optionsService.rawOptions.screenReaderMode&&this._onA11yTab.fire(this._activeBuffer.x-e),!0}shiftOut(){return this._charsetService.setgLevel(1),!0}shiftIn(){return this._charsetService.setgLevel(0),!0}_restrictCursor(e=this._bufferService.cols-1){this._activeBuffer.x=Math.min(e,Math.max(0,this._activeBuffer.x)),this._activeBuffer.y=this._coreService.decPrivateModes.origin?Math.min(this._activeBuffer.scrollBottom,Math.max(this._activeBuffer.scrollTop,this._activeBuffer.y)):Math.min(this._bufferService.rows-1,Math.max(0,this._activeBuffer.y)),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_setCursor(e,i){this._dirtyRowTracker.markDirty(this._activeBuffer.y),this._coreService.decPrivateModes.origin?(this._activeBuffer.x=e,this._activeBuffer.y=this._activeBuffer.scrollTop+i):(this._activeBuffer.x=e,this._activeBuffer.y=i),this._restrictCursor(),this._dirtyRowTracker.markDirty(this._activeBuffer.y)}_moveCursor(e,i){this._restrictCursor(),this._setCursor(this._activeBuffer.x+e,this._activeBuffer.y+i)}cursorUp(e){let i=this._activeBuffer.y-this._activeBuffer.scrollTop;return i>=0?this._moveCursor(0,-Math.min(i,e.params[0]||1)):this._moveCursor(0,-(e.params[0]||1)),!0}cursorDown(e){let i=this._activeBuffer.scrollBottom-this._activeBuffer.y;return i>=0?this._moveCursor(0,Math.min(i,e.params[0]||1)):this._moveCursor(0,e.params[0]||1),!0}cursorForward(e){return this._moveCursor(e.params[0]||1,0),!0}cursorBackward(e){return this._moveCursor(-(e.params[0]||1),0),!0}cursorNextLine(e){return this.cursorDown(e),this._activeBuffer.x=0,!0}cursorPrecedingLine(e){return this.cursorUp(e),this._activeBuffer.x=0,!0}cursorCharAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}cursorPosition(e){return this._setCursor(e.length>=2?(e.params[1]||1)-1:0,(e.params[0]||1)-1),!0}charPosAbsolute(e){return this._setCursor((e.params[0]||1)-1,this._activeBuffer.y),!0}hPositionRelative(e){return this._moveCursor(e.params[0]||1,0),!0}linePosAbsolute(e){return this._setCursor(this._activeBuffer.x,(e.params[0]||1)-1),!0}vPositionRelative(e){return this._moveCursor(0,e.params[0]||1),!0}hVPosition(e){return this.cursorPosition(e),!0}tabClear(e){let i=e.params[0];return i===0?delete this._activeBuffer.tabs[this._activeBuffer.x]:i===3&&(this._activeBuffer.tabs={}),!0}cursorForwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let i=e.params[0]||1;for(;i--;)this._activeBuffer.x=this._activeBuffer.nextStop();return!0}cursorBackwardTab(e){if(this._activeBuffer.x>=this._bufferService.cols)return!0;let i=e.params[0]||1;for(;i--;)this._activeBuffer.x=this._activeBuffer.prevStop();return!0}selectProtected(e){let i=e.params[0];return i===1&&(this._curAttrData.bg|=536870912),(i===2||i===0)&&(this._curAttrData.bg&=-536870913),!0}_eraseInBufferLine(e,i,r,n=!1,o=!1){let l=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);l.replaceCells(i,r,this._activeBuffer.getNullCell(this._eraseAttrData()),o),n&&(l.isWrapped=!1)}_resetBufferLine(e,i=!1){let r=this._activeBuffer.lines.get(this._activeBuffer.ybase+e);r&&(r.fill(this._activeBuffer.getNullCell(this._eraseAttrData()),i),this._bufferService.buffer.clearMarkers(this._activeBuffer.ybase+e),r.isWrapped=!1)}eraseInDisplay(e,i=!1){this._restrictCursor(this._bufferService.cols);let r;switch(e.params[0]){case 0:for(r=this._activeBuffer.y,this._dirtyRowTracker.markDirty(r),this._eraseInBufferLine(r++,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,i);r<this._bufferService.rows;r++)this._resetBufferLine(r,i);this._dirtyRowTracker.markDirty(r);break;case 1:for(r=this._activeBuffer.y,this._dirtyRowTracker.markDirty(r),this._eraseInBufferLine(r,0,this._activeBuffer.x+1,!0,i),this._activeBuffer.x+1>=this._bufferService.cols&&(this._activeBuffer.lines.get(r+1).isWrapped=!1);r--;)this._resetBufferLine(r,i);this._dirtyRowTracker.markDirty(0);break;case 2:if(this._optionsService.rawOptions.scrollOnEraseInDisplay){for(r=this._bufferService.rows,this._dirtyRowTracker.markRangeDirty(0,r-1);r--&&!this._activeBuffer.lines.get(this._activeBuffer.ybase+r)?.getTrimmedLength(););for(;r>=0;r--)this._bufferService.scroll(this._eraseAttrData())}else{for(r=this._bufferService.rows,this._dirtyRowTracker.markDirty(r-1);r--;)this._resetBufferLine(r,i);this._dirtyRowTracker.markDirty(0)}break;case 3:let n=this._activeBuffer.lines.length-this._bufferService.rows;n>0&&(this._activeBuffer.lines.trimStart(n),this._activeBuffer.ybase=Math.max(this._activeBuffer.ybase-n,0),this._activeBuffer.ydisp=Math.max(this._activeBuffer.ydisp-n,0),this._onScroll.fire(0));break}return!0}eraseInLine(e,i=!1){switch(this._restrictCursor(this._bufferService.cols),e.params[0]){case 0:this._eraseInBufferLine(this._activeBuffer.y,this._activeBuffer.x,this._bufferService.cols,this._activeBuffer.x===0,i);break;case 1:this._eraseInBufferLine(this._activeBuffer.y,0,this._activeBuffer.x+1,!1,i);break;case 2:this._eraseInBufferLine(this._activeBuffer.y,0,this._bufferService.cols,!0,i);break}return this._dirtyRowTracker.markDirty(this._activeBuffer.y),!0}insertLines(e){this._restrictCursor();let i=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=this._activeBuffer.ybase+this._activeBuffer.y,n=this._bufferService.rows-1-this._activeBuffer.scrollBottom,o=this._bufferService.rows-1+this._activeBuffer.ybase-n+1;for(;i--;)this._activeBuffer.lines.splice(o-1,1),this._activeBuffer.lines.splice(r,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}deleteLines(e){this._restrictCursor();let i=e.params[0]||1;if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let r=this._activeBuffer.ybase+this._activeBuffer.y,n;for(n=this._bufferService.rows-1-this._activeBuffer.scrollBottom,n=this._bufferService.rows-1+this._activeBuffer.ybase-n;i--;)this._activeBuffer.lines.splice(r,1),this._activeBuffer.lines.splice(n,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.y,this._activeBuffer.scrollBottom),this._activeBuffer.x=0,!0}insertChars(e){this._restrictCursor();let i=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return i&&(i.insertCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}deleteChars(e){this._restrictCursor();let i=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return i&&(i.deleteCells(this._activeBuffer.x,e.params[0]||1,this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}scrollUp(e){let i=e.params[0]||1;for(;i--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,0,this._activeBuffer.getBlankLine(this._eraseAttrData()));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollDown(e){let i=e.params[0]||1;for(;i--;)this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollBottom,1),this._activeBuffer.lines.splice(this._activeBuffer.ybase+this._activeBuffer.scrollTop,0,this._activeBuffer.getBlankLine(X));return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollLeft(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let i=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.deleteCells(0,i,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}scrollRight(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let i=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.insertCells(0,i,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}insertColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let i=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.insertCells(this._activeBuffer.x,i,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}deleteColumns(e){if(this._activeBuffer.y>this._activeBuffer.scrollBottom||this._activeBuffer.y<this._activeBuffer.scrollTop)return!0;let i=e.params[0]||1;for(let r=this._activeBuffer.scrollTop;r<=this._activeBuffer.scrollBottom;++r){let n=this._activeBuffer.lines.get(this._activeBuffer.ybase+r);n.deleteCells(this._activeBuffer.x,i,this._activeBuffer.getNullCell(this._eraseAttrData())),n.isWrapped=!1}return this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom),!0}eraseChars(e){this._restrictCursor();let i=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y);return i&&(i.replaceCells(this._activeBuffer.x,this._activeBuffer.x+(e.params[0]||1),this._activeBuffer.getNullCell(this._eraseAttrData())),this._dirtyRowTracker.markDirty(this._activeBuffer.y)),!0}repeatPrecedingCharacter(e){let i=this._parser.precedingJoinState;if(!i)return!0;let r=e.params[0]||1,n=Ae.extractWidth(i),o=this._activeBuffer.x-n,a=this._activeBuffer.lines.get(this._activeBuffer.ybase+this._activeBuffer.y).getString(o),u=new Uint32Array(a.length*r),h=0;for(let d=0;d<a.length;){let _=a.codePointAt(d)||0;u[h++]=_,d+=_>65535?2:1}let c=h;for(let d=1;d<r;++d)u.copyWithin(c,0,h),c+=h;return this.print(u,0,c),!0}sendDeviceAttributesPrimary(e){return e.params[0]>0||(this._is(\"xterm\")||this._is(\"rxvt-unicode\")||this._is(\"screen\")?this._coreService.triggerDataEvent(b.ESC+\"[?1;2c\"):this._is(\"linux\")&&this._coreService.triggerDataEvent(b.ESC+\"[?6c\")),!0}sendDeviceAttributesSecondary(e){return e.params[0]>0||(this._is(\"xterm\")?this._coreService.triggerDataEvent(b.ESC+\"[>0;276;0c\"):this._is(\"rxvt-unicode\")?this._coreService.triggerDataEvent(b.ESC+\"[>85;95;0c\"):this._is(\"linux\")?this._coreService.triggerDataEvent(e.params[0]+\"c\"):this._is(\"screen\")&&this._coreService.triggerDataEvent(b.ESC+\"[>83;40003;0c\")),!0}_is(e){return(this._optionsService.rawOptions.termName+\"\").indexOf(e)===0}setMode(e){for(let i=0;i<e.length;i++)switch(e.params[i]){case 4:this._coreService.modes.insertMode=!0;break;case 20:this._optionsService.options.convertEol=!0;break}return!0}setModePrivate(e){for(let i=0;i<e.length;i++)switch(e.params[i]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!0;break;case 2:this._charsetService.setgCharset(0,Je),this._charsetService.setgCharset(1,Je),this._charsetService.setgCharset(2,Je),this._charsetService.setgCharset(3,Je);break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(132,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!0,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!0;break;case 12:this._optionsService.options.cursorBlink=!0;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!0;break;case 66:this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire();break;case 9:this._coreMouseService.activeProtocol=\"X10\";break;case 1e3:this._coreMouseService.activeProtocol=\"VT200\";break;case 1002:this._coreMouseService.activeProtocol=\"DRAG\";break;case 1003:this._coreMouseService.activeProtocol=\"ANY\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!0,this._onRequestSendFocus.fire();break;case 1005:this._logService.debug(\"DECSET 1005 not supported (see #2507)\");break;case 1006:this._coreMouseService.activeEncoding=\"SGR\";break;case 1015:this._logService.debug(\"DECSET 1015 not supported (see #2507)\");break;case 1016:this._coreMouseService.activeEncoding=\"SGR_PIXELS\";break;case 25:this._coreService.isCursorHidden=!1;break;case 1048:this.saveCursor();break;case 1049:this.saveCursor();case 47:case 1047:this._bufferService.buffers.activateAltBuffer(this._eraseAttrData()),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!0;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!0;break}return!0}resetMode(e){for(let i=0;i<e.length;i++)switch(e.params[i]){case 4:this._coreService.modes.insertMode=!1;break;case 20:this._optionsService.options.convertEol=!1;break}return!0}resetModePrivate(e){for(let i=0;i<e.length;i++)switch(e.params[i]){case 1:this._coreService.decPrivateModes.applicationCursorKeys=!1;break;case 3:this._optionsService.rawOptions.windowOptions.setWinLines&&(this._bufferService.resize(80,this._bufferService.rows),this._onRequestReset.fire());break;case 6:this._coreService.decPrivateModes.origin=!1,this._setCursor(0,0);break;case 7:this._coreService.decPrivateModes.wraparound=!1;break;case 12:this._optionsService.options.cursorBlink=!1;break;case 45:this._coreService.decPrivateModes.reverseWraparound=!1;break;case 66:this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire();break;case 9:case 1e3:case 1002:case 1003:this._coreMouseService.activeProtocol=\"NONE\";break;case 1004:this._coreService.decPrivateModes.sendFocus=!1;break;case 1005:this._logService.debug(\"DECRST 1005 not supported (see #2507)\");break;case 1006:this._coreMouseService.activeEncoding=\"DEFAULT\";break;case 1015:this._logService.debug(\"DECRST 1015 not supported (see #2507)\");break;case 1016:this._coreMouseService.activeEncoding=\"DEFAULT\";break;case 25:this._coreService.isCursorHidden=!0;break;case 1048:this.restoreCursor();break;case 1049:case 47:case 1047:this._bufferService.buffers.activateNormalBuffer(),e.params[i]===1049&&this.restoreCursor(),this._coreService.isCursorInitialized=!0,this._onRequestRefreshRows.fire(void 0),this._onRequestSyncScrollBar.fire();break;case 2004:this._coreService.decPrivateModes.bracketedPasteMode=!1;break;case 2026:this._coreService.decPrivateModes.synchronizedOutput=!1,this._onRequestRefreshRows.fire(void 0);break}return!0}requestMode(e,i){let r;(P=>(P[P.NOT_RECOGNIZED=0]=\"NOT_RECOGNIZED\",P[P.SET=1]=\"SET\",P[P.RESET=2]=\"RESET\",P[P.PERMANENTLY_SET=3]=\"PERMANENTLY_SET\",P[P.PERMANENTLY_RESET=4]=\"PERMANENTLY_RESET\"))(r||={});let n=this._coreService.decPrivateModes,{activeProtocol:o,activeEncoding:l}=this._coreMouseService,a=this._coreService,{buffers:u,cols:h}=this._bufferService,{active:c,alt:d}=u,_=this._optionsService.rawOptions,p=(A,R)=>(a.triggerDataEvent(`${b.ESC}[${i?\"\":\"?\"}${A};${R}$y`),!0),m=A=>A?1:2,f=e.params[0];return i?f===2?p(f,4):f===4?p(f,m(a.modes.insertMode)):f===12?p(f,3):f===20?p(f,m(_.convertEol)):p(f,0):f===1?p(f,m(n.applicationCursorKeys)):f===3?p(f,_.windowOptions.setWinLines?h===80?2:h===132?1:0:0):f===6?p(f,m(n.origin)):f===7?p(f,m(n.wraparound)):f===8?p(f,3):f===9?p(f,m(o===\"X10\")):f===12?p(f,m(_.cursorBlink)):f===25?p(f,m(!a.isCursorHidden)):f===45?p(f,m(n.reverseWraparound)):f===66?p(f,m(n.applicationKeypad)):f===67?p(f,4):f===1e3?p(f,m(o===\"VT200\")):f===1002?p(f,m(o===\"DRAG\")):f===1003?p(f,m(o===\"ANY\")):f===1004?p(f,m(n.sendFocus)):f===1005?p(f,4):f===1006?p(f,m(l===\"SGR\")):f===1015?p(f,4):f===1016?p(f,m(l===\"SGR_PIXELS\")):f===1048?p(f,1):f===47||f===1047||f===1049?p(f,m(c===d)):f===2004?p(f,m(n.bracketedPasteMode)):f===2026?p(f,m(n.synchronizedOutput)):p(f,0)}_updateAttrColor(e,i,r,n,o){return i===2?(e|=50331648,e&=-16777216,e|=De.fromColorRGB([r,n,o])):i===5&&(e&=-50331904,e|=33554432|r&255),e}_extractColor(e,i,r){let n=[0,0,-1,0,0,0],o=0,l=0;do{if(n[l+o]=e.params[i+l],e.hasSubParams(i+l)){let a=e.getSubParams(i+l),u=0;do n[1]===5&&(o=1),n[l+u+1+o]=a[u];while(++u<a.length&&u+l+1+o<n.length);break}if(n[1]===5&&l+o>=2||n[1]===2&&l+o>=5)break;n[1]&&(o=1)}while(++l+i<e.length&&l+o<n.length);for(let a=2;a<n.length;++a)n[a]===-1&&(n[a]=0);switch(n[0]){case 38:r.fg=this._updateAttrColor(r.fg,n[1],n[3],n[4],n[5]);break;case 48:r.bg=this._updateAttrColor(r.bg,n[1],n[3],n[4],n[5]);break;case 58:r.extended=r.extended.clone(),r.extended.underlineColor=this._updateAttrColor(r.extended.underlineColor,n[1],n[3],n[4],n[5])}return l}_processUnderline(e,i){i.extended=i.extended.clone(),(!~e||e>5)&&(e=1),i.extended.underlineStyle=e,i.fg|=268435456,e===0&&(i.fg&=-268435457),i.updateExtended()}_processSGR0(e){e.fg=X.fg,e.bg=X.bg,e.extended=e.extended.clone(),e.extended.underlineStyle=0,e.extended.underlineColor&=-67108864,e.updateExtended()}charAttributes(e){if(e.length===1&&e.params[0]===0)return this._processSGR0(this._curAttrData),!0;let i=e.length,r,n=this._curAttrData;for(let o=0;o<i;o++)r=e.params[o],r>=30&&r<=37?(n.fg&=-50331904,n.fg|=16777216|r-30):r>=40&&r<=47?(n.bg&=-50331904,n.bg|=16777216|r-40):r>=90&&r<=97?(n.fg&=-50331904,n.fg|=16777216|r-90|8):r>=100&&r<=107?(n.bg&=-50331904,n.bg|=16777216|r-100|8):r===0?this._processSGR0(n):r===1?n.fg|=134217728:r===3?n.bg|=67108864:r===4?(n.fg|=268435456,this._processUnderline(e.hasSubParams(o)?e.getSubParams(o)[0]:1,n)):r===5?n.fg|=536870912:r===7?n.fg|=67108864:r===8?n.fg|=1073741824:r===9?n.fg|=2147483648:r===2?n.bg|=134217728:r===21?this._processUnderline(2,n):r===22?(n.fg&=-134217729,n.bg&=-134217729):r===23?n.bg&=-67108865:r===24?(n.fg&=-268435457,this._processUnderline(0,n)):r===25?n.fg&=-536870913:r===27?n.fg&=-67108865:r===28?n.fg&=-1073741825:r===29?n.fg&=2147483647:r===39?(n.fg&=-67108864,n.fg|=X.fg&16777215):r===49?(n.bg&=-67108864,n.bg|=X.bg&16777215):r===38||r===48||r===58?o+=this._extractColor(e,o,n):r===53?n.bg|=1073741824:r===55?n.bg&=-1073741825:r===59?(n.extended=n.extended.clone(),n.extended.underlineColor=-1,n.updateExtended()):r===100?(n.fg&=-67108864,n.fg|=X.fg&16777215,n.bg&=-67108864,n.bg|=X.bg&16777215):this._logService.debug(\"Unknown SGR attribute: %d.\",r);return!0}deviceStatus(e){switch(e.params[0]){case 5:this._coreService.triggerDataEvent(`${b.ESC}[0n`);break;case 6:let i=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${b.ESC}[${i};${r}R`);break}return!0}deviceStatusPrivate(e){switch(e.params[0]){case 6:let i=this._activeBuffer.y+1,r=this._activeBuffer.x+1;this._coreService.triggerDataEvent(`${b.ESC}[?${i};${r}R`);break;case 15:break;case 25:break;case 26:break;case 53:break}return!0}softReset(e){return this._coreService.isCursorHidden=!1,this._onRequestSyncScrollBar.fire(),this._activeBuffer.scrollTop=0,this._activeBuffer.scrollBottom=this._bufferService.rows-1,this._curAttrData=X.clone(),this._coreService.reset(),this._charsetService.reset(),this._activeBuffer.savedX=0,this._activeBuffer.savedY=this._activeBuffer.ybase,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,this._coreService.decPrivateModes.origin=!1,!0}setCursorStyle(e){let i=e.length===0?1:e.params[0];if(i===0)this._coreService.decPrivateModes.cursorStyle=void 0,this._coreService.decPrivateModes.cursorBlink=void 0;else{switch(i){case 1:case 2:this._coreService.decPrivateModes.cursorStyle=\"block\";break;case 3:case 4:this._coreService.decPrivateModes.cursorStyle=\"underline\";break;case 5:case 6:this._coreService.decPrivateModes.cursorStyle=\"bar\";break}let r=i%2===1;this._coreService.decPrivateModes.cursorBlink=r}return!0}setScrollRegion(e){let i=e.params[0]||1,r;return(e.length<2||(r=e.params[1])>this._bufferService.rows||r===0)&&(r=this._bufferService.rows),r>i&&(this._activeBuffer.scrollTop=i-1,this._activeBuffer.scrollBottom=r-1,this._setCursor(0,0)),!0}windowOptions(e){if(!bl(e.params[0],this._optionsService.rawOptions.windowOptions))return!0;let i=e.length>1?e.params[1]:0;switch(e.params[0]){case 14:i!==2&&this._onRequestWindowsOptionsReport.fire(0);break;case 16:this._onRequestWindowsOptionsReport.fire(1);break;case 18:this._bufferService&&this._coreService.triggerDataEvent(`${b.ESC}[8;${this._bufferService.rows};${this._bufferService.cols}t`);break;case 22:(i===0||i===2)&&(this._windowTitleStack.push(this._windowTitle),this._windowTitleStack.length>_l&&this._windowTitleStack.shift()),(i===0||i===1)&&(this._iconNameStack.push(this._iconName),this._iconNameStack.length>_l&&this._iconNameStack.shift());break;case 23:(i===0||i===2)&&this._windowTitleStack.length&&this.setTitle(this._windowTitleStack.pop()),(i===0||i===1)&&this._iconNameStack.length&&this.setIconName(this._iconNameStack.pop());break}return!0}saveCursor(e){return this._activeBuffer.savedX=this._activeBuffer.x,this._activeBuffer.savedY=this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.savedCurAttrData.fg=this._curAttrData.fg,this._activeBuffer.savedCurAttrData.bg=this._curAttrData.bg,this._activeBuffer.savedCharset=this._charsetService.charset,!0}restoreCursor(e){return this._activeBuffer.x=this._activeBuffer.savedX||0,this._activeBuffer.y=Math.max(this._activeBuffer.savedY-this._activeBuffer.ybase,0),this._curAttrData.fg=this._activeBuffer.savedCurAttrData.fg,this._curAttrData.bg=this._activeBuffer.savedCurAttrData.bg,this._charsetService.charset=this._savedCharset,this._activeBuffer.savedCharset&&(this._charsetService.charset=this._activeBuffer.savedCharset),this._restrictCursor(),!0}setTitle(e){return this._windowTitle=e,this._onTitleChange.fire(e),!0}setIconName(e){return this._iconName=e,!0}setOrReportIndexedColor(e){let i=[],r=e.split(\";\");for(;r.length>1;){let n=r.shift(),o=r.shift();if(/^\\d+$/.exec(n)){let l=parseInt(n);if(Sl(l))if(o===\"?\")i.push({type:0,index:l});else{let a=Ws(o);a&&i.push({type:1,index:l,color:a})}}}return i.length&&this._onColor.fire(i),!0}setHyperlink(e){let i=e.indexOf(\";\");if(i===-1)return!0;let r=e.slice(0,i).trim(),n=e.slice(i+1);return n?this._createHyperlink(r,n):r.trim()?!1:this._finishHyperlink()}_createHyperlink(e,i){this._getCurrentLinkId()&&this._finishHyperlink();let r=e.split(\":\"),n,o=r.findIndex(l=>l.startsWith(\"id=\"));return o!==-1&&(n=r[o].slice(3)||void 0),this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=this._oscLinkService.registerLink({id:n,uri:i}),this._curAttrData.updateExtended(),!0}_finishHyperlink(){return this._curAttrData.extended=this._curAttrData.extended.clone(),this._curAttrData.extended.urlId=0,this._curAttrData.updateExtended(),!0}_setOrReportSpecialColor(e,i){let r=e.split(\";\");for(let n=0;n<r.length&&!(i>=this._specialColors.length);++n,++i)if(r[n]===\"?\")this._onColor.fire([{type:0,index:this._specialColors[i]}]);else{let o=Ws(r[n]);o&&this._onColor.fire([{type:1,index:this._specialColors[i],color:o}])}return!0}setOrReportFgColor(e){return this._setOrReportSpecialColor(e,0)}setOrReportBgColor(e){return this._setOrReportSpecialColor(e,1)}setOrReportCursorColor(e){return this._setOrReportSpecialColor(e,2)}restoreIndexedColor(e){if(!e)return this._onColor.fire([{type:2}]),!0;let i=[],r=e.split(\";\");for(let n=0;n<r.length;++n)if(/^\\d+$/.exec(r[n])){let o=parseInt(r[n]);Sl(o)&&i.push({type:2,index:o})}return i.length&&this._onColor.fire(i),!0}restoreFgColor(e){return this._onColor.fire([{type:2,index:256}]),!0}restoreBgColor(e){return this._onColor.fire([{type:2,index:257}]),!0}restoreCursorColor(e){return this._onColor.fire([{type:2,index:258}]),!0}nextLine(){return this._activeBuffer.x=0,this.index(),!0}keypadApplicationMode(){return this._logService.debug(\"Serial port requested application keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!0,this._onRequestSyncScrollBar.fire(),!0}keypadNumericMode(){return this._logService.debug(\"Switching back to normal keypad.\"),this._coreService.decPrivateModes.applicationKeypad=!1,this._onRequestSyncScrollBar.fire(),!0}selectDefaultCharset(){return this._charsetService.setgLevel(0),this._charsetService.setgCharset(0,Je),!0}selectCharset(e){return e.length!==2?(this.selectDefaultCharset(),!0):(e[0]===\"/\"||this._charsetService.setgCharset(mc[e[0]],ne[e[1]]||Je),!0)}index(){return this._restrictCursor(),this._activeBuffer.y++,this._activeBuffer.y===this._activeBuffer.scrollBottom+1?(this._activeBuffer.y--,this._bufferService.scroll(this._eraseAttrData())):this._activeBuffer.y>=this._bufferService.rows&&(this._activeBuffer.y=this._bufferService.rows-1),this._restrictCursor(),!0}tabSet(){return this._activeBuffer.tabs[this._activeBuffer.x]=!0,!0}reverseIndex(){if(this._restrictCursor(),this._activeBuffer.y===this._activeBuffer.scrollTop){let e=this._activeBuffer.scrollBottom-this._activeBuffer.scrollTop;this._activeBuffer.lines.shiftElements(this._activeBuffer.ybase+this._activeBuffer.y,e,1),this._activeBuffer.lines.set(this._activeBuffer.ybase+this._activeBuffer.y,this._activeBuffer.getBlankLine(this._eraseAttrData())),this._dirtyRowTracker.markRangeDirty(this._activeBuffer.scrollTop,this._activeBuffer.scrollBottom)}else this._activeBuffer.y--,this._restrictCursor();return!0}fullReset(){return this._parser.reset(),this._onRequestReset.fire(),!0}reset(){this._curAttrData=X.clone(),this._eraseAttrDataInternal=X.clone()}_eraseAttrData(){return this._eraseAttrDataInternal.bg&=-67108864,this._eraseAttrDataInternal.bg|=this._curAttrData.bg&67108863,this._eraseAttrDataInternal}setgLevel(e){return this._charsetService.setgLevel(e),!0}screenAlignmentPattern(){let e=new q;e.content=1<<22|69,e.fg=this._curAttrData.fg,e.bg=this._curAttrData.bg,this._setCursor(0,0);for(let i=0;i<this._bufferService.rows;++i){let r=this._activeBuffer.ybase+this._activeBuffer.y+i,n=this._activeBuffer.lines.get(r);n&&(n.fill(e),n.isWrapped=!1)}return this._dirtyRowTracker.markAllDirty(),this._setCursor(0,0),!0}requestStatusString(e,i){let r=a=>(this._coreService.triggerDataEvent(`${b.ESC}${a}${b.ESC}\\\\`),!0),n=this._bufferService.buffer,o=this._optionsService.rawOptions,l={block:2,underline:4,bar:6};return r(e==='\"q'?`P1$r${this._curAttrData.isProtected()?1:0}\"q`:e==='\"p'?'P1$r61;1\"p':e===\"r\"?`P1$r${n.scrollTop+1};${n.scrollBottom+1}r`:e===\"m\"?\"P1$r0m\":e===\" q\"?`P1$r${l[o.cursorStyle]-(o.cursorBlink?1:0)} q`:\"P0$r\")}markRangeDirty(e,i){this._dirtyRowTracker.markRangeDirty(e,i)}},Zi=class{constructor(t){this._bufferService=t;this.clearRange()}clearRange(){this.start=this._bufferService.buffer.y,this.end=this._bufferService.buffer.y}markDirty(t){t<this.start?this.start=t:t>this.end&&(this.end=t)}markRangeDirty(t,e){t>e&&(gl=t,t=e,e=gl),t<this.start&&(this.start=t),e>this.end&&(this.end=e)}markAllDirty(){this.markRangeDirty(0,this._bufferService.rows-1)}};Zi=M([S(0,F)],Zi);function Sl(s){return 0<=s&&s<256}var _c=5e7,El=12,bc=50,gn=class extends D{constructor(e){super();this._action=e;this._writeBuffer=[];this._callbacks=[];this._pendingData=0;this._bufferOffset=0;this._isSyncWriting=!1;this._syncCalls=0;this._didUserInput=!1;this._onWriteParsed=this._register(new v);this.onWriteParsed=this._onWriteParsed.event}handleUserInput(){this._didUserInput=!0}writeSync(e,i){if(i!==void 0&&this._syncCalls>i){this._syncCalls=0;return}if(this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(void 0),this._syncCalls++,this._isSyncWriting)return;this._isSyncWriting=!0;let r;for(;r=this._writeBuffer.shift();){this._action(r);let n=this._callbacks.shift();n&&n()}this._pendingData=0,this._bufferOffset=2147483647,this._isSyncWriting=!1,this._syncCalls=0}write(e,i){if(this._pendingData>_c)throw new Error(\"write data discarded, use flow control to avoid losing data\");if(!this._writeBuffer.length){if(this._bufferOffset=0,this._didUserInput){this._didUserInput=!1,this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(i),this._innerWrite();return}setTimeout(()=>this._innerWrite())}this._pendingData+=e.length,this._writeBuffer.push(e),this._callbacks.push(i)}_innerWrite(e=0,i=!0){let r=e||performance.now();for(;this._writeBuffer.length>this._bufferOffset;){let n=this._writeBuffer[this._bufferOffset],o=this._action(n,i);if(o){let a=u=>performance.now()-r>=El?setTimeout(()=>this._innerWrite(0,u)):this._innerWrite(r,u);o.catch(u=>(queueMicrotask(()=>{throw u}),Promise.resolve(!1))).then(a);return}let l=this._callbacks[this._bufferOffset];if(l&&l(),this._bufferOffset++,this._pendingData-=n.length,performance.now()-r>=El)break}this._writeBuffer.length>this._bufferOffset?(this._bufferOffset>bc&&(this._writeBuffer=this._writeBuffer.slice(this._bufferOffset),this._callbacks=this._callbacks.slice(this._bufferOffset),this._bufferOffset=0),setTimeout(()=>this._innerWrite())):(this._writeBuffer.length=0,this._callbacks.length=0,this._pendingData=0,this._bufferOffset=0),this._onWriteParsed.fire()}};var ui=class{constructor(t){this._bufferService=t;this._nextId=1;this._entriesWithId=new Map;this._dataByLinkId=new Map}registerLink(t){let e=this._bufferService.buffer;if(t.id===void 0){let a=e.addMarker(e.ybase+e.y),u={data:t,id:this._nextId++,lines:[a]};return a.onDispose(()=>this._removeMarkerFromLink(u,a)),this._dataByLinkId.set(u.id,u),u.id}let i=t,r=this._getEntryIdKey(i),n=this._entriesWithId.get(r);if(n)return this.addLineToLink(n.id,e.ybase+e.y),n.id;let o=e.addMarker(e.ybase+e.y),l={id:this._nextId++,key:this._getEntryIdKey(i),data:i,lines:[o]};return o.onDispose(()=>this._removeMarkerFromLink(l,o)),this._entriesWithId.set(l.key,l),this._dataByLinkId.set(l.id,l),l.id}addLineToLink(t,e){let i=this._dataByLinkId.get(t);if(i&&i.lines.every(r=>r.line!==e)){let r=this._bufferService.buffer.addMarker(e);i.lines.push(r),r.onDispose(()=>this._removeMarkerFromLink(i,r))}}getLinkData(t){return this._dataByLinkId.get(t)?.data}_getEntryIdKey(t){return`${t.id};;${t.uri}`}_removeMarkerFromLink(t,e){let i=t.lines.indexOf(e);i!==-1&&(t.lines.splice(i,1),t.lines.length===0&&(t.data.id!==void 0&&this._entriesWithId.delete(t.key),this._dataByLinkId.delete(t.id)))}};ui=M([S(0,F)],ui);var Tl=!1,Sn=class extends D{constructor(e){super();this._windowsWrappingHeuristics=this._register(new ye);this._onBinary=this._register(new v);this.onBinary=this._onBinary.event;this._onData=this._register(new v);this.onData=this._onData.event;this._onLineFeed=this._register(new v);this.onLineFeed=this._onLineFeed.event;this._onResize=this._register(new v);this.onResize=this._onResize.event;this._onWriteParsed=this._register(new v);this.onWriteParsed=this._onWriteParsed.event;this._onScroll=this._register(new v);this._instantiationService=new ln,this.optionsService=this._register(new dn(e)),this._instantiationService.setService(H,this.optionsService),this._bufferService=this._register(this._instantiationService.createInstance(ni)),this._instantiationService.setService(F,this._bufferService),this._logService=this._register(this._instantiationService.createInstance(ii)),this._instantiationService.setService(nr,this._logService),this.coreService=this._register(this._instantiationService.createInstance(li)),this._instantiationService.setService(ge,this.coreService),this.coreMouseService=this._register(this._instantiationService.createInstance(ai)),this._instantiationService.setService(rr,this.coreMouseService),this.unicodeService=this._register(this._instantiationService.createInstance(Ae)),this._instantiationService.setService(Js,this.unicodeService),this._charsetService=this._instantiationService.createInstance(pn),this._instantiationService.setService(Zs,this._charsetService),this._oscLinkService=this._instantiationService.createInstance(ui),this._instantiationService.setService(sr,this._oscLinkService),this._inputHandler=this._register(new vn(this._bufferService,this._charsetService,this.coreService,this._logService,this.optionsService,this._oscLinkService,this.coreMouseService,this.unicodeService)),this._register($.forward(this._inputHandler.onLineFeed,this._onLineFeed)),this._register(this._inputHandler),this._register($.forward(this._bufferService.onResize,this._onResize)),this._register($.forward(this.coreService.onData,this._onData)),this._register($.forward(this.coreService.onBinary,this._onBinary)),this._register(this.coreService.onRequestScrollToBottom(()=>this.scrollToBottom(!0))),this._register(this.coreService.onUserInput(()=>this._writeBuffer.handleUserInput())),this._register(this.optionsService.onMultipleOptionChange([\"windowsMode\",\"windowsPty\"],()=>this._handleWindowsPtyOptionChange())),this._register(this._bufferService.onScroll(()=>{this._onScroll.fire({position:this._bufferService.buffer.ydisp}),this._inputHandler.markRangeDirty(this._bufferService.buffer.scrollTop,this._bufferService.buffer.scrollBottom)})),this._writeBuffer=this._register(new gn((i,r)=>this._inputHandler.parse(i,r))),this._register($.forward(this._writeBuffer.onWriteParsed,this._onWriteParsed))}get onScroll(){return this._onScrollApi||(this._onScrollApi=this._register(new v),this._onScroll.event(e=>{this._onScrollApi?.fire(e.position)})),this._onScrollApi.event}get cols(){return this._bufferService.cols}get rows(){return this._bufferService.rows}get buffers(){return this._bufferService.buffers}get options(){return this.optionsService.options}set options(e){for(let i in e)this.optionsService.options[i]=e[i]}write(e,i){this._writeBuffer.write(e,i)}writeSync(e,i){this._logService.logLevel<=3&&!Tl&&(this._logService.warn(\"writeSync is unreliable and will be removed soon.\"),Tl=!0),this._writeBuffer.writeSync(e,i)}input(e,i=!0){this.coreService.triggerDataEvent(e,i)}resize(e,i){isNaN(e)||isNaN(i)||(e=Math.max(e,ks),i=Math.max(i,Cs),this._bufferService.resize(e,i))}scroll(e,i=!1){this._bufferService.scroll(e,i)}scrollLines(e,i){this._bufferService.scrollLines(e,i)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let i=e-this._bufferService.buffer.ydisp;i!==0&&this.scrollLines(i)}registerEscHandler(e,i){return this._inputHandler.registerEscHandler(e,i)}registerDcsHandler(e,i){return this._inputHandler.registerDcsHandler(e,i)}registerCsiHandler(e,i){return this._inputHandler.registerCsiHandler(e,i)}registerOscHandler(e,i){return this._inputHandler.registerOscHandler(e,i)}_setup(){this._handleWindowsPtyOptionChange()}reset(){this._inputHandler.reset(),this._bufferService.reset(),this._charsetService.reset(),this.coreService.reset(),this.coreMouseService.reset()}_handleWindowsPtyOptionChange(){let e=!1,i=this.optionsService.rawOptions.windowsPty;i&&i.buildNumber!==void 0&&i.buildNumber!==void 0?e=i.backend===\"conpty\"&&i.buildNumber<21376:this.optionsService.rawOptions.windowsMode&&(e=!0),e?this._enableWindowsWrappingHeuristics():this._windowsWrappingHeuristics.clear()}_enableWindowsWrappingHeuristics(){if(!this._windowsWrappingHeuristics.value){let e=[];e.push(this.onLineFeed(Bs.bind(null,this._bufferService))),e.push(this.registerCsiHandler({final:\"H\"},()=>(Bs(this._bufferService),!1))),this._windowsWrappingHeuristics.value=C(()=>{for(let i of e)i.dispose()})}}};var gc={48:[\"0\",\")\"],49:[\"1\",\"!\"],50:[\"2\",\"@\"],51:[\"3\",\"#\"],52:[\"4\",\"$\"],53:[\"5\",\"%\"],54:[\"6\",\"^\"],55:[\"7\",\"&\"],56:[\"8\",\"*\"],57:[\"9\",\"(\"],186:[\";\",\":\"],187:[\"=\",\"+\"],188:[\",\",\"<\"],189:[\"-\",\"_\"],190:[\".\",\">\"],191:[\"/\",\"?\"],192:[\"`\",\"~\"],219:[\"[\",\"{\"],220:[\"\\\\\",\"|\"],221:[\"]\",\"}\"],222:[\"'\",'\"']};function Il(s,t,e,i){let r={type:0,cancel:!1,key:void 0},n=(s.shiftKey?1:0)|(s.altKey?2:0)|(s.ctrlKey?4:0)|(s.metaKey?8:0);switch(s.keyCode){case 0:s.key===\"UIKeyInputUpArrow\"?t?r.key=b.ESC+\"OA\":r.key=b.ESC+\"[A\":s.key===\"UIKeyInputLeftArrow\"?t?r.key=b.ESC+\"OD\":r.key=b.ESC+\"[D\":s.key===\"UIKeyInputRightArrow\"?t?r.key=b.ESC+\"OC\":r.key=b.ESC+\"[C\":s.key===\"UIKeyInputDownArrow\"&&(t?r.key=b.ESC+\"OB\":r.key=b.ESC+\"[B\");break;case 8:r.key=s.ctrlKey?\"\\b\":b.DEL,s.altKey&&(r.key=b.ESC+r.key);break;case 9:if(s.shiftKey){r.key=b.ESC+\"[Z\";break}r.key=b.HT,r.cancel=!0;break;case 13:r.key=s.altKey?b.ESC+b.CR:b.CR,r.cancel=!0;break;case 27:r.key=b.ESC,s.altKey&&(r.key=b.ESC+b.ESC),r.cancel=!0;break;case 37:if(s.metaKey)break;n?r.key=b.ESC+\"[1;\"+(n+1)+\"D\":t?r.key=b.ESC+\"OD\":r.key=b.ESC+\"[D\";break;case 39:if(s.metaKey)break;n?r.key=b.ESC+\"[1;\"+(n+1)+\"C\":t?r.key=b.ESC+\"OC\":r.key=b.ESC+\"[C\";break;case 38:if(s.metaKey)break;n?r.key=b.ESC+\"[1;\"+(n+1)+\"A\":t?r.key=b.ESC+\"OA\":r.key=b.ESC+\"[A\";break;case 40:if(s.metaKey)break;n?r.key=b.ESC+\"[1;\"+(n+1)+\"B\":t?r.key=b.ESC+\"OB\":r.key=b.ESC+\"[B\";break;case 45:!s.shiftKey&&!s.ctrlKey&&(r.key=b.ESC+\"[2~\");break;case 46:n?r.key=b.ESC+\"[3;\"+(n+1)+\"~\":r.key=b.ESC+\"[3~\";break;case 36:n?r.key=b.ESC+\"[1;\"+(n+1)+\"H\":t?r.key=b.ESC+\"OH\":r.key=b.ESC+\"[H\";break;case 35:n?r.key=b.ESC+\"[1;\"+(n+1)+\"F\":t?r.key=b.ESC+\"OF\":r.key=b.ESC+\"[F\";break;case 33:s.shiftKey?r.type=2:s.ctrlKey?r.key=b.ESC+\"[5;\"+(n+1)+\"~\":r.key=b.ESC+\"[5~\";break;case 34:s.shiftKey?r.type=3:s.ctrlKey?r.key=b.ESC+\"[6;\"+(n+1)+\"~\":r.key=b.ESC+\"[6~\";break;case 112:n?r.key=b.ESC+\"[1;\"+(n+1)+\"P\":r.key=b.ESC+\"OP\";break;case 113:n?r.key=b.ESC+\"[1;\"+(n+1)+\"Q\":r.key=b.ESC+\"OQ\";break;case 114:n?r.key=b.ESC+\"[1;\"+(n+1)+\"R\":r.key=b.ESC+\"OR\";break;case 115:n?r.key=b.ESC+\"[1;\"+(n+1)+\"S\":r.key=b.ESC+\"OS\";break;case 116:n?r.key=b.ESC+\"[15;\"+(n+1)+\"~\":r.key=b.ESC+\"[15~\";break;case 117:n?r.key=b.ESC+\"[17;\"+(n+1)+\"~\":r.key=b.ESC+\"[17~\";break;case 118:n?r.key=b.ESC+\"[18;\"+(n+1)+\"~\":r.key=b.ESC+\"[18~\";break;case 119:n?r.key=b.ESC+\"[19;\"+(n+1)+\"~\":r.key=b.ESC+\"[19~\";break;case 120:n?r.key=b.ESC+\"[20;\"+(n+1)+\"~\":r.key=b.ESC+\"[20~\";break;case 121:n?r.key=b.ESC+\"[21;\"+(n+1)+\"~\":r.key=b.ESC+\"[21~\";break;case 122:n?r.key=b.ESC+\"[23;\"+(n+1)+\"~\":r.key=b.ESC+\"[23~\";break;case 123:n?r.key=b.ESC+\"[24;\"+(n+1)+\"~\":r.key=b.ESC+\"[24~\";break;default:if(s.ctrlKey&&!s.shiftKey&&!s.altKey&&!s.metaKey)s.keyCode>=65&&s.keyCode<=90?r.key=String.fromCharCode(s.keyCode-64):s.keyCode===32?r.key=b.NUL:s.keyCode>=51&&s.keyCode<=55?r.key=String.fromCharCode(s.keyCode-51+27):s.keyCode===56?r.key=b.DEL:s.keyCode===219?r.key=b.ESC:s.keyCode===220?r.key=b.FS:s.keyCode===221&&(r.key=b.GS);else if((!e||i)&&s.altKey&&!s.metaKey){let l=gc[s.keyCode]?.[s.shiftKey?1:0];if(l)r.key=b.ESC+l;else if(s.keyCode>=65&&s.keyCode<=90){let a=s.ctrlKey?s.keyCode-64:s.keyCode+32,u=String.fromCharCode(a);s.shiftKey&&(u=u.toUpperCase()),r.key=b.ESC+u}else if(s.keyCode===32)r.key=b.ESC+(s.ctrlKey?b.NUL:\" \");else if(s.key===\"Dead\"&&s.code.startsWith(\"Key\")){let a=s.code.slice(3,4);s.shiftKey||(a=a.toLowerCase()),r.key=b.ESC+a,r.cancel=!0}}else e&&!s.altKey&&!s.ctrlKey&&!s.shiftKey&&s.metaKey?s.keyCode===65&&(r.type=1):s.key&&!s.ctrlKey&&!s.altKey&&!s.metaKey&&s.keyCode>=48&&s.key.length===1?r.key=s.key:s.key&&s.ctrlKey&&(s.key===\"_\"&&(r.key=b.US),s.key===\"@\"&&(r.key=b.NUL));break}return r}var ee=0,En=class{constructor(t){this._getKey=t;this._array=[];this._insertedValues=[];this._flushInsertedTask=new Jt;this._isFlushingInserted=!1;this._deletedIndices=[];this._flushDeletedTask=new Jt;this._isFlushingDeleted=!1}clear(){this._array.length=0,this._insertedValues.length=0,this._flushInsertedTask.clear(),this._isFlushingInserted=!1,this._deletedIndices.length=0,this._flushDeletedTask.clear(),this._isFlushingDeleted=!1}insert(t){this._flushCleanupDeleted(),this._insertedValues.length===0&&this._flushInsertedTask.enqueue(()=>this._flushInserted()),this._insertedValues.push(t)}_flushInserted(){let t=this._insertedValues.sort((n,o)=>this._getKey(n)-this._getKey(o)),e=0,i=0,r=new Array(this._array.length+this._insertedValues.length);for(let n=0;n<r.length;n++)i>=this._array.length||this._getKey(t[e])<=this._getKey(this._array[i])?(r[n]=t[e],e++):r[n]=this._array[i++];this._array=r,this._insertedValues.length=0}_flushCleanupInserted(){!this._isFlushingInserted&&this._insertedValues.length>0&&this._flushInsertedTask.flush()}delete(t){if(this._flushCleanupInserted(),this._array.length===0)return!1;let e=this._getKey(t);if(e===void 0||(ee=this._search(e),ee===-1)||this._getKey(this._array[ee])!==e)return!1;do if(this._array[ee]===t)return this._deletedIndices.length===0&&this._flushDeletedTask.enqueue(()=>this._flushDeleted()),this._deletedIndices.push(ee),!0;while(++ee<this._array.length&&this._getKey(this._array[ee])===e);return!1}_flushDeleted(){this._isFlushingDeleted=!0;let t=this._deletedIndices.sort((n,o)=>n-o),e=0,i=new Array(this._array.length-t.length),r=0;for(let n=0;n<this._array.length;n++)t[e]===n?e++:i[r++]=this._array[n];this._array=i,this._deletedIndices.length=0,this._isFlushingDeleted=!1}_flushCleanupDeleted(){!this._isFlushingDeleted&&this._deletedIndices.length>0&&this._flushDeletedTask.flush()}*getKeyIterator(t){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(ee=this._search(t),!(ee<0||ee>=this._array.length)&&this._getKey(this._array[ee])===t))do yield this._array[ee];while(++ee<this._array.length&&this._getKey(this._array[ee])===t)}forEachByKey(t,e){if(this._flushCleanupInserted(),this._flushCleanupDeleted(),this._array.length!==0&&(ee=this._search(t),!(ee<0||ee>=this._array.length)&&this._getKey(this._array[ee])===t))do e(this._array[ee]);while(++ee<this._array.length&&this._getKey(this._array[ee])===t)}values(){return this._flushCleanupInserted(),this._flushCleanupDeleted(),[...this._array].values()}_search(t){let e=0,i=this._array.length-1;for(;i>=e;){let r=e+i>>1,n=this._getKey(this._array[r]);if(n>t)i=r-1;else if(n<t)e=r+1;else{for(;r>0&&this._getKey(this._array[r-1])===t;)r--;return r}}return e}};var Us=0,yl=0,Tn=class extends D{constructor(){super();this._decorations=new En(e=>e?.marker.line);this._onDecorationRegistered=this._register(new v);this.onDecorationRegistered=this._onDecorationRegistered.event;this._onDecorationRemoved=this._register(new v);this.onDecorationRemoved=this._onDecorationRemoved.event;this._register(C(()=>this.reset()))}get decorations(){return this._decorations.values()}registerDecoration(e){if(e.marker.isDisposed)return;let i=new Ks(e);if(i){let r=i.marker.onDispose(()=>i.dispose()),n=i.onDispose(()=>{n.dispose(),i&&(this._decorations.delete(i)&&this._onDecorationRemoved.fire(i),r.dispose())});this._decorations.insert(i),this._onDecorationRegistered.fire(i)}return i}reset(){for(let e of this._decorations.values())e.dispose();this._decorations.clear()}*getDecorationsAtCell(e,i,r){let n=0,o=0;for(let l of this._decorations.getKeyIterator(i))n=l.options.x??0,o=n+(l.options.width??1),e>=n&&e<o&&(!r||(l.options.layer??\"bottom\")===r)&&(yield l)}forEachDecorationAtCell(e,i,r,n){this._decorations.forEachByKey(i,o=>{Us=o.options.x??0,yl=Us+(o.options.width??1),e>=Us&&e<yl&&(!r||(o.options.layer??\"bottom\")===r)&&n(o)})}},Ks=class extends Ee{constructor(e){super();this.options=e;this.onRenderEmitter=this.add(new v);this.onRender=this.onRenderEmitter.event;this._onDispose=this.add(new v);this.onDispose=this._onDispose.event;this._cachedBg=null;this._cachedFg=null;this.marker=e.marker,this.options.overviewRulerOptions&&!this.options.overviewRulerOptions.position&&(this.options.overviewRulerOptions.position=\"full\")}get backgroundColorRGB(){return this._cachedBg===null&&(this.options.backgroundColor?this._cachedBg=z.toColor(this.options.backgroundColor):this._cachedBg=void 0),this._cachedBg}get foregroundColorRGB(){return this._cachedFg===null&&(this.options.foregroundColor?this._cachedFg=z.toColor(this.options.foregroundColor):this._cachedFg=void 0),this._cachedFg}dispose(){this._onDispose.fire(),super.dispose()}};var Sc=1e3,In=class{constructor(t,e=Sc){this._renderCallback=t;this._debounceThresholdMS=e;this._lastRefreshMs=0;this._additionalRefreshRequested=!1}dispose(){this._refreshTimeoutID&&clearTimeout(this._refreshTimeoutID)}refresh(t,e,i){this._rowCount=i,t=t!==void 0?t:0,e=e!==void 0?e:this._rowCount-1,this._rowStart=this._rowStart!==void 0?Math.min(this._rowStart,t):t,this._rowEnd=this._rowEnd!==void 0?Math.max(this._rowEnd,e):e;let r=performance.now();if(r-this._lastRefreshMs>=this._debounceThresholdMS)this._lastRefreshMs=r,this._innerRefresh();else if(!this._additionalRefreshRequested){let n=r-this._lastRefreshMs,o=this._debounceThresholdMS-n;this._additionalRefreshRequested=!0,this._refreshTimeoutID=window.setTimeout(()=>{this._lastRefreshMs=performance.now(),this._innerRefresh(),this._additionalRefreshRequested=!1,this._refreshTimeoutID=void 0},o)}}_innerRefresh(){if(this._rowStart===void 0||this._rowEnd===void 0||this._rowCount===void 0)return;let t=Math.max(this._rowStart,0),e=Math.min(this._rowEnd,this._rowCount-1);this._rowStart=void 0,this._rowEnd=void 0,this._renderCallback(t,e)}};var xl=20;var wl=!1,Tt=class extends D{constructor(e,i,r,n){super();this._terminal=e;this._coreBrowserService=r;this._renderService=n;this._rowColumns=new WeakMap;this._liveRegionLineCount=0;this._charsToConsume=[];this._charsToAnnounce=\"\";let o=this._coreBrowserService.mainDocument;this._accessibilityContainer=o.createElement(\"div\"),this._accessibilityContainer.classList.add(\"xterm-accessibility\"),this._rowContainer=o.createElement(\"div\"),this._rowContainer.setAttribute(\"role\",\"list\"),this._rowContainer.classList.add(\"xterm-accessibility-tree\"),this._rowElements=[];for(let l=0;l<this._terminal.rows;l++)this._rowElements[l]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[l]);if(this._topBoundaryFocusListener=l=>this._handleBoundaryFocus(l,0),this._bottomBoundaryFocusListener=l=>this._handleBoundaryFocus(l,1),this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._accessibilityContainer.appendChild(this._rowContainer),this._liveRegion=o.createElement(\"div\"),this._liveRegion.classList.add(\"live-region\"),this._liveRegion.setAttribute(\"aria-live\",\"assertive\"),this._accessibilityContainer.appendChild(this._liveRegion),this._liveRegionDebouncer=this._register(new In(this._renderRows.bind(this))),!this._terminal.element)throw new Error(\"Cannot enable accessibility before Terminal.open\");wl?(this._accessibilityContainer.classList.add(\"debug\"),this._rowContainer.classList.add(\"debug\"),this._debugRootContainer=o.createElement(\"div\"),this._debugRootContainer.classList.add(\"xterm\"),this._debugRootContainer.appendChild(o.createTextNode(\"------start a11y------\")),this._debugRootContainer.appendChild(this._accessibilityContainer),this._debugRootContainer.appendChild(o.createTextNode(\"------end a11y------\")),this._terminal.element.insertAdjacentElement(\"afterend\",this._debugRootContainer)):this._terminal.element.insertAdjacentElement(\"afterbegin\",this._accessibilityContainer),this._register(this._terminal.onResize(l=>this._handleResize(l.rows))),this._register(this._terminal.onRender(l=>this._refreshRows(l.start,l.end))),this._register(this._terminal.onScroll(()=>this._refreshRows())),this._register(this._terminal.onA11yChar(l=>this._handleChar(l))),this._register(this._terminal.onLineFeed(()=>this._handleChar(`\n`))),this._register(this._terminal.onA11yTab(l=>this._handleTab(l))),this._register(this._terminal.onKey(l=>this._handleKey(l.key))),this._register(this._terminal.onBlur(()=>this._clearLiveRegion())),this._register(this._renderService.onDimensionsChange(()=>this._refreshRowsDimensions())),this._register(L(o,\"selectionchange\",()=>this._handleSelectionChange())),this._register(this._coreBrowserService.onDprChange(()=>this._refreshRowsDimensions())),this._refreshRowsDimensions(),this._refreshRows(),this._register(C(()=>{wl?this._debugRootContainer.remove():this._accessibilityContainer.remove(),this._rowElements.length=0}))}_handleTab(e){for(let i=0;i<e;i++)this._handleChar(\" \")}_handleChar(e){this._liveRegionLineCount<xl+1&&(this._charsToConsume.length>0?this._charsToConsume.shift()!==e&&(this._charsToAnnounce+=e):this._charsToAnnounce+=e,e===`\n`&&(this._liveRegionLineCount++,this._liveRegionLineCount===xl+1&&(this._liveRegion.textContent+=_i.get())))}_clearLiveRegion(){this._liveRegion.textContent=\"\",this._liveRegionLineCount=0}_handleKey(e){this._clearLiveRegion(),/\\p{Control}/u.test(e)||this._charsToConsume.push(e)}_refreshRows(e,i){this._liveRegionDebouncer.refresh(e,i,this._terminal.rows)}_renderRows(e,i){let r=this._terminal.buffer,n=r.lines.length.toString();for(let o=e;o<=i;o++){let l=r.lines.get(r.ydisp+o),a=[],u=l?.translateToString(!0,void 0,void 0,a)||\"\",h=(r.ydisp+o+1).toString(),c=this._rowElements[o];c&&(u.length===0?(c.textContent=\"\\xA0\",this._rowColumns.set(c,[0,1])):(c.textContent=u,this._rowColumns.set(c,a)),c.setAttribute(\"aria-posinset\",h),c.setAttribute(\"aria-setsize\",n),this._alignRowWidth(c))}this._announceCharacters()}_announceCharacters(){this._charsToAnnounce.length!==0&&(this._liveRegion.textContent+=this._charsToAnnounce,this._charsToAnnounce=\"\")}_handleBoundaryFocus(e,i){let r=e.target,n=this._rowElements[i===0?1:this._rowElements.length-2],o=r.getAttribute(\"aria-posinset\"),l=i===0?\"1\":`${this._terminal.buffer.lines.length}`;if(o===l||e.relatedTarget!==n)return;let a,u;if(i===0?(a=r,u=this._rowElements.pop(),this._rowContainer.removeChild(u)):(a=this._rowElements.shift(),u=r,this._rowContainer.removeChild(a)),a.removeEventListener(\"focus\",this._topBoundaryFocusListener),u.removeEventListener(\"focus\",this._bottomBoundaryFocusListener),i===0){let h=this._createAccessibilityTreeNode();this._rowElements.unshift(h),this._rowContainer.insertAdjacentElement(\"afterbegin\",h)}else{let h=this._createAccessibilityTreeNode();this._rowElements.push(h),this._rowContainer.appendChild(h)}this._rowElements[0].addEventListener(\"focus\",this._topBoundaryFocusListener),this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._terminal.scrollLines(i===0?-1:1),this._rowElements[i===0?1:this._rowElements.length-2].focus(),e.preventDefault(),e.stopImmediatePropagation()}_handleSelectionChange(){if(this._rowElements.length===0)return;let e=this._coreBrowserService.mainDocument.getSelection();if(!e)return;if(e.isCollapsed){this._rowContainer.contains(e.anchorNode)&&this._terminal.clearSelection();return}if(!e.anchorNode||!e.focusNode){console.error(\"anchorNode and/or focusNode are null\");return}let i={node:e.anchorNode,offset:e.anchorOffset},r={node:e.focusNode,offset:e.focusOffset};if((i.node.compareDocumentPosition(r.node)&Node.DOCUMENT_POSITION_PRECEDING||i.node===r.node&&i.offset>r.offset)&&([i,r]=[r,i]),i.node.compareDocumentPosition(this._rowElements[0])&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_FOLLOWING)&&(i={node:this._rowElements[0].childNodes[0],offset:0}),!this._rowContainer.contains(i.node))return;let n=this._rowElements.slice(-1)[0];if(r.node.compareDocumentPosition(n)&(Node.DOCUMENT_POSITION_CONTAINED_BY|Node.DOCUMENT_POSITION_PRECEDING)&&(r={node:n,offset:n.textContent?.length??0}),!this._rowContainer.contains(r.node))return;let o=({node:u,offset:h})=>{let c=u instanceof Text?u.parentNode:u,d=parseInt(c?.getAttribute(\"aria-posinset\"),10)-1;if(isNaN(d))return console.warn(\"row is invalid. Race condition?\"),null;let _=this._rowColumns.get(c);if(!_)return console.warn(\"columns is null. Race condition?\"),null;let p=h<_.length?_[h]:_.slice(-1)[0]+1;return p>=this._terminal.cols&&(++d,p=0),{row:d,column:p}},l=o(i),a=o(r);if(!(!l||!a)){if(l.row>a.row||l.row===a.row&&l.column>=a.column)throw new Error(\"invalid range\");this._terminal.select(l.column,l.row,(a.row-l.row)*this._terminal.cols-l.column+a.column)}}_handleResize(e){this._rowElements[this._rowElements.length-1].removeEventListener(\"focus\",this._bottomBoundaryFocusListener);for(let i=this._rowContainer.children.length;i<this._terminal.rows;i++)this._rowElements[i]=this._createAccessibilityTreeNode(),this._rowContainer.appendChild(this._rowElements[i]);for(;this._rowElements.length>e;)this._rowContainer.removeChild(this._rowElements.pop());this._rowElements[this._rowElements.length-1].addEventListener(\"focus\",this._bottomBoundaryFocusListener),this._refreshRowsDimensions()}_createAccessibilityTreeNode(){let e=this._coreBrowserService.mainDocument.createElement(\"div\");return e.setAttribute(\"role\",\"listitem\"),e.tabIndex=-1,this._refreshRowDimensions(e),e}_refreshRowsDimensions(){if(this._renderService.dimensions.css.cell.height){Object.assign(this._accessibilityContainer.style,{width:`${this._renderService.dimensions.css.canvas.width}px`,fontSize:`${this._terminal.options.fontSize}px`}),this._rowElements.length!==this._terminal.rows&&this._handleResize(this._terminal.rows);for(let e=0;e<this._terminal.rows;e++)this._refreshRowDimensions(this._rowElements[e]),this._alignRowWidth(this._rowElements[e])}}_refreshRowDimensions(e){e.style.height=`${this._renderService.dimensions.css.cell.height}px`}_alignRowWidth(e){e.style.transform=\"\";let i=e.getBoundingClientRect().width,r=this._rowColumns.get(e)?.slice(-1)?.[0];if(!r)return;let n=r*this._renderService.dimensions.css.cell.width;e.style.transform=`scaleX(${n/i})`}};Tt=M([S(1,xt),S(2,ae),S(3,ce)],Tt);var hi=class extends D{constructor(e,i,r,n,o){super();this._element=e;this._mouseService=i;this._renderService=r;this._bufferService=n;this._linkProviderService=o;this._linkCacheDisposables=[];this._isMouseOut=!0;this._wasResized=!1;this._activeLine=-1;this._onShowLinkUnderline=this._register(new v);this.onShowLinkUnderline=this._onShowLinkUnderline.event;this._onHideLinkUnderline=this._register(new v);this.onHideLinkUnderline=this._onHideLinkUnderline.event;this._register(C(()=>{Ne(this._linkCacheDisposables),this._linkCacheDisposables.length=0,this._lastMouseEvent=void 0,this._activeProviderReplies?.clear()})),this._register(this._bufferService.onResize(()=>{this._clearCurrentLink(),this._wasResized=!0})),this._register(L(this._element,\"mouseleave\",()=>{this._isMouseOut=!0,this._clearCurrentLink()})),this._register(L(this._element,\"mousemove\",this._handleMouseMove.bind(this))),this._register(L(this._element,\"mousedown\",this._handleMouseDown.bind(this))),this._register(L(this._element,\"mouseup\",this._handleMouseUp.bind(this)))}get currentLink(){return this._currentLink}_handleMouseMove(e){this._lastMouseEvent=e;let i=this._positionFromMouseEvent(e,this._element,this._mouseService);if(!i)return;this._isMouseOut=!1;let r=e.composedPath();for(let n=0;n<r.length;n++){let o=r[n];if(o.classList.contains(\"xterm\"))break;if(o.classList.contains(\"xterm-hover\"))return}(!this._lastBufferCell||i.x!==this._lastBufferCell.x||i.y!==this._lastBufferCell.y)&&(this._handleHover(i),this._lastBufferCell=i)}_handleHover(e){if(this._activeLine!==e.y||this._wasResized){this._clearCurrentLink(),this._askForLink(e,!1),this._wasResized=!1;return}this._currentLink&&this._linkAtPosition(this._currentLink.link,e)||(this._clearCurrentLink(),this._askForLink(e,!0))}_askForLink(e,i){(!this._activeProviderReplies||!i)&&(this._activeProviderReplies?.forEach(n=>{n?.forEach(o=>{o.link.dispose&&o.link.dispose()})}),this._activeProviderReplies=new Map,this._activeLine=e.y);let r=!1;for(let[n,o]of this._linkProviderService.linkProviders.entries())i?this._activeProviderReplies?.get(n)&&(r=this._checkLinkProviderResult(n,e,r)):o.provideLinks(e.y,l=>{if(this._isMouseOut)return;let a=l?.map(u=>({link:u}));this._activeProviderReplies?.set(n,a),r=this._checkLinkProviderResult(n,e,r),this._activeProviderReplies?.size===this._linkProviderService.linkProviders.length&&this._removeIntersectingLinks(e.y,this._activeProviderReplies)})}_removeIntersectingLinks(e,i){let r=new Set;for(let n=0;n<i.size;n++){let o=i.get(n);if(o)for(let l=0;l<o.length;l++){let a=o[l],u=a.link.range.start.y<e?0:a.link.range.start.x,h=a.link.range.end.y>e?this._bufferService.cols:a.link.range.end.x;for(let c=u;c<=h;c++){if(r.has(c)){o.splice(l--,1);break}r.add(c)}}}}_checkLinkProviderResult(e,i,r){if(!this._activeProviderReplies)return r;let n=this._activeProviderReplies.get(e),o=!1;for(let l=0;l<e;l++)(!this._activeProviderReplies.has(l)||this._activeProviderReplies.get(l))&&(o=!0);if(!o&&n){let l=n.find(a=>this._linkAtPosition(a.link,i));l&&(r=!0,this._handleNewLink(l))}if(this._activeProviderReplies.size===this._linkProviderService.linkProviders.length&&!r)for(let l=0;l<this._activeProviderReplies.size;l++){let a=this._activeProviderReplies.get(l)?.find(u=>this._linkAtPosition(u.link,i));if(a){r=!0,this._handleNewLink(a);break}}return r}_handleMouseDown(){this._mouseDownLink=this._currentLink}_handleMouseUp(e){if(!this._currentLink)return;let i=this._positionFromMouseEvent(e,this._element,this._mouseService);i&&this._mouseDownLink&&Ec(this._mouseDownLink.link,this._currentLink.link)&&this._linkAtPosition(this._currentLink.link,i)&&this._currentLink.link.activate(e,this._currentLink.link.text)}_clearCurrentLink(e,i){!this._currentLink||!this._lastMouseEvent||(!e||!i||this._currentLink.link.range.start.y>=e&&this._currentLink.link.range.end.y<=i)&&(this._linkLeave(this._element,this._currentLink.link,this._lastMouseEvent),this._currentLink=void 0,Ne(this._linkCacheDisposables),this._linkCacheDisposables.length=0)}_handleNewLink(e){if(!this._lastMouseEvent)return;let i=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);i&&this._linkAtPosition(e.link,i)&&(this._currentLink=e,this._currentLink.state={decorations:{underline:e.link.decorations===void 0?!0:e.link.decorations.underline,pointerCursor:e.link.decorations===void 0?!0:e.link.decorations.pointerCursor},isHovered:!0},this._linkHover(this._element,e.link,this._lastMouseEvent),e.link.decorations={},Object.defineProperties(e.link.decorations,{pointerCursor:{get:()=>this._currentLink?.state?.decorations.pointerCursor,set:r=>{this._currentLink?.state&&this._currentLink.state.decorations.pointerCursor!==r&&(this._currentLink.state.decorations.pointerCursor=r,this._currentLink.state.isHovered&&this._element.classList.toggle(\"xterm-cursor-pointer\",r))}},underline:{get:()=>this._currentLink?.state?.decorations.underline,set:r=>{this._currentLink?.state&&this._currentLink?.state?.decorations.underline!==r&&(this._currentLink.state.decorations.underline=r,this._currentLink.state.isHovered&&this._fireUnderlineEvent(e.link,r))}}}),this._linkCacheDisposables.push(this._renderService.onRenderedViewportChange(r=>{if(!this._currentLink)return;let n=r.start===0?0:r.start+1+this._bufferService.buffer.ydisp,o=this._bufferService.buffer.ydisp+1+r.end;if(this._currentLink.link.range.start.y>=n&&this._currentLink.link.range.end.y<=o&&(this._clearCurrentLink(n,o),this._lastMouseEvent)){let l=this._positionFromMouseEvent(this._lastMouseEvent,this._element,this._mouseService);l&&this._askForLink(l,!1)}})))}_linkHover(e,i,r){this._currentLink?.state&&(this._currentLink.state.isHovered=!0,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(i,!0),this._currentLink.state.decorations.pointerCursor&&e.classList.add(\"xterm-cursor-pointer\")),i.hover&&i.hover(r,i.text)}_fireUnderlineEvent(e,i){let r=e.range,n=this._bufferService.buffer.ydisp,o=this._createLinkUnderlineEvent(r.start.x-1,r.start.y-n-1,r.end.x,r.end.y-n-1,void 0);(i?this._onShowLinkUnderline:this._onHideLinkUnderline).fire(o)}_linkLeave(e,i,r){this._currentLink?.state&&(this._currentLink.state.isHovered=!1,this._currentLink.state.decorations.underline&&this._fireUnderlineEvent(i,!1),this._currentLink.state.decorations.pointerCursor&&e.classList.remove(\"xterm-cursor-pointer\")),i.leave&&i.leave(r,i.text)}_linkAtPosition(e,i){let r=e.range.start.y*this._bufferService.cols+e.range.start.x,n=e.range.end.y*this._bufferService.cols+e.range.end.x,o=i.y*this._bufferService.cols+i.x;return r<=o&&o<=n}_positionFromMouseEvent(e,i,r){let n=r.getCoords(e,i,this._bufferService.cols,this._bufferService.rows);if(n)return{x:n[0],y:n[1]+this._bufferService.buffer.ydisp}}_createLinkUnderlineEvent(e,i,r,n,o){return{x1:e,y1:i,x2:r,y2:n,cols:this._bufferService.cols,fg:o}}};hi=M([S(1,Dt),S(2,ce),S(3,F),S(4,lr)],hi);function Ec(s,t){return s.text===t.text&&s.range.start.x===t.range.start.x&&s.range.start.y===t.range.start.y&&s.range.end.x===t.range.end.x&&s.range.end.y===t.range.end.y}var yn=class extends Sn{constructor(e={}){super(e);this._linkifier=this._register(new ye);this.browser=tn;this._keyDownHandled=!1;this._keyDownSeen=!1;this._keyPressHandled=!1;this._unprocessedDeadKey=!1;this._accessibilityManager=this._register(new ye);this._onCursorMove=this._register(new v);this.onCursorMove=this._onCursorMove.event;this._onKey=this._register(new v);this.onKey=this._onKey.event;this._onRender=this._register(new v);this.onRender=this._onRender.event;this._onSelectionChange=this._register(new v);this.onSelectionChange=this._onSelectionChange.event;this._onTitleChange=this._register(new v);this.onTitleChange=this._onTitleChange.event;this._onBell=this._register(new v);this.onBell=this._onBell.event;this._onFocus=this._register(new v);this._onBlur=this._register(new v);this._onA11yCharEmitter=this._register(new v);this._onA11yTabEmitter=this._register(new v);this._onWillOpen=this._register(new v);this._setup(),this._decorationService=this._instantiationService.createInstance(Tn),this._instantiationService.setService(Be,this._decorationService),this._linkProviderService=this._instantiationService.createInstance(Qr),this._instantiationService.setService(lr,this._linkProviderService),this._linkProviderService.registerLinkProvider(this._instantiationService.createInstance(wt)),this._register(this._inputHandler.onRequestBell(()=>this._onBell.fire())),this._register(this._inputHandler.onRequestRefreshRows(i=>this.refresh(i?.start??0,i?.end??this.rows-1))),this._register(this._inputHandler.onRequestSendFocus(()=>this._reportFocus())),this._register(this._inputHandler.onRequestReset(()=>this.reset())),this._register(this._inputHandler.onRequestWindowsOptionsReport(i=>this._reportWindowsOptions(i))),this._register(this._inputHandler.onColor(i=>this._handleColorEvent(i))),this._register($.forward(this._inputHandler.onCursorMove,this._onCursorMove)),this._register($.forward(this._inputHandler.onTitleChange,this._onTitleChange)),this._register($.forward(this._inputHandler.onA11yChar,this._onA11yCharEmitter)),this._register($.forward(this._inputHandler.onA11yTab,this._onA11yTabEmitter)),this._register(this._bufferService.onResize(i=>this._afterResize(i.cols,i.rows))),this._register(C(()=>{this._customKeyEventHandler=void 0,this.element?.parentNode?.removeChild(this.element)}))}get linkifier(){return this._linkifier.value}get onFocus(){return this._onFocus.event}get onBlur(){return this._onBlur.event}get onA11yChar(){return this._onA11yCharEmitter.event}get onA11yTab(){return this._onA11yTabEmitter.event}get onWillOpen(){return this._onWillOpen.event}_handleColorEvent(e){if(this._themeService)for(let i of e){let r,n=\"\";switch(i.index){case 256:r=\"foreground\",n=\"10\";break;case 257:r=\"background\",n=\"11\";break;case 258:r=\"cursor\",n=\"12\";break;default:r=\"ansi\",n=\"4;\"+i.index}switch(i.type){case 0:let o=U.toColorRGB(r===\"ansi\"?this._themeService.colors.ansi[i.index]:this._themeService.colors[r]);this.coreService.triggerDataEvent(`${b.ESC}]${n};${ml(o)}${fs.ST}`);break;case 1:if(r===\"ansi\")this._themeService.modifyColors(l=>l.ansi[i.index]=j.toColor(...i.color));else{let l=r;this._themeService.modifyColors(a=>a[l]=j.toColor(...i.color))}break;case 2:this._themeService.restoreColor(i.index);break}}}_setup(){super._setup(),this._customKeyEventHandler=void 0}get buffer(){return this.buffers.active}focus(){this.textarea&&this.textarea.focus({preventScroll:!0})}_handleScreenReaderModeOptionChange(e){e?!this._accessibilityManager.value&&this._renderService&&(this._accessibilityManager.value=this._instantiationService.createInstance(Tt,this)):this._accessibilityManager.clear()}_handleTextAreaFocus(e){this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(b.ESC+\"[I\"),this.element.classList.add(\"focus\"),this._showCursor(),this._onFocus.fire()}blur(){return this.textarea?.blur()}_handleTextAreaBlur(){this.textarea.value=\"\",this.refresh(this.buffer.y,this.buffer.y),this.coreService.decPrivateModes.sendFocus&&this.coreService.triggerDataEvent(b.ESC+\"[O\"),this.element.classList.remove(\"focus\"),this._onBlur.fire()}_syncTextArea(){if(!this.textarea||!this.buffer.isCursorInViewport||this._compositionHelper.isComposing||!this._renderService)return;let e=this.buffer.ybase+this.buffer.y,i=this.buffer.lines.get(e);if(!i)return;let r=Math.min(this.buffer.x,this.cols-1),n=this._renderService.dimensions.css.cell.height,o=i.getWidth(r),l=this._renderService.dimensions.css.cell.width*o,a=this.buffer.y*this._renderService.dimensions.css.cell.height,u=r*this._renderService.dimensions.css.cell.width;this.textarea.style.left=u+\"px\",this.textarea.style.top=a+\"px\",this.textarea.style.width=l+\"px\",this.textarea.style.height=n+\"px\",this.textarea.style.lineHeight=n+\"px\",this.textarea.style.zIndex=\"-5\"}_initGlobal(){this._bindKeys(),this._register(L(this.element,\"copy\",i=>{this.hasSelection()&&Vs(i,this._selectionService)}));let e=i=>qs(i,this.textarea,this.coreService,this.optionsService);this._register(L(this.textarea,\"paste\",e)),this._register(L(this.element,\"paste\",e)),Ss?this._register(L(this.element,\"mousedown\",i=>{i.button===2&&Pn(i,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})):this._register(L(this.element,\"contextmenu\",i=>{Pn(i,this.textarea,this.screenElement,this._selectionService,this.options.rightClickSelectsWord)})),Bi&&this._register(L(this.element,\"auxclick\",i=>{i.button===1&&Mn(i,this.textarea,this.screenElement)}))}_bindKeys(){this._register(L(this.textarea,\"keyup\",e=>this._keyUp(e),!0)),this._register(L(this.textarea,\"keydown\",e=>this._keyDown(e),!0)),this._register(L(this.textarea,\"keypress\",e=>this._keyPress(e),!0)),this._register(L(this.textarea,\"compositionstart\",()=>this._compositionHelper.compositionstart())),this._register(L(this.textarea,\"compositionupdate\",e=>this._compositionHelper.compositionupdate(e))),this._register(L(this.textarea,\"compositionend\",()=>this._compositionHelper.compositionend())),this._register(L(this.textarea,\"input\",e=>this._inputEvent(e),!0)),this._register(this.onRender(()=>this._compositionHelper.updateCompositionElements()))}open(e){if(!e)throw new Error(\"Terminal requires a parent element.\");if(e.isConnected||this._logService.debug(\"Terminal.open was called on an element that was not attached to the DOM\"),this.element?.ownerDocument.defaultView&&this._coreBrowserService){this.element.ownerDocument.defaultView!==this._coreBrowserService.window&&(this._coreBrowserService.window=this.element.ownerDocument.defaultView);return}this._document=e.ownerDocument,this.options.documentOverride&&this.options.documentOverride instanceof Document&&(this._document=this.optionsService.rawOptions.documentOverride),this.element=this._document.createElement(\"div\"),this.element.dir=\"ltr\",this.element.classList.add(\"terminal\"),this.element.classList.add(\"xterm\"),e.appendChild(this.element);let i=this._document.createDocumentFragment();this._viewportElement=this._document.createElement(\"div\"),this._viewportElement.classList.add(\"xterm-viewport\"),i.appendChild(this._viewportElement),this.screenElement=this._document.createElement(\"div\"),this.screenElement.classList.add(\"xterm-screen\"),this._register(L(this.screenElement,\"mousemove\",o=>this.updateCursorStyle(o))),this._helperContainer=this._document.createElement(\"div\"),this._helperContainer.classList.add(\"xterm-helpers\"),this.screenElement.appendChild(this._helperContainer),i.appendChild(this.screenElement);let r=this.textarea=this._document.createElement(\"textarea\");this.textarea.classList.add(\"xterm-helper-textarea\"),this.textarea.setAttribute(\"aria-label\",mi.get()),Ts||this.textarea.setAttribute(\"aria-multiline\",\"false\"),this.textarea.setAttribute(\"autocorrect\",\"off\"),this.textarea.setAttribute(\"autocapitalize\",\"off\"),this.textarea.setAttribute(\"spellcheck\",\"false\"),this.textarea.tabIndex=0,this._register(this.optionsService.onSpecificOptionChange(\"disableStdin\",()=>r.readOnly=this.optionsService.rawOptions.disableStdin)),this.textarea.readOnly=this.optionsService.rawOptions.disableStdin,this._coreBrowserService=this._register(this._instantiationService.createInstance(Jr,this.textarea,e.ownerDocument.defaultView??window,this._document??typeof window<\"u\"?window.document:null)),this._instantiationService.setService(ae,this._coreBrowserService),this._register(L(this.textarea,\"focus\",o=>this._handleTextAreaFocus(o))),this._register(L(this.textarea,\"blur\",()=>this._handleTextAreaBlur())),this._helperContainer.appendChild(this.textarea),this._charSizeService=this._instantiationService.createInstance(jt,this._document,this._helperContainer),this._instantiationService.setService(nt,this._charSizeService),this._themeService=this._instantiationService.createInstance(ti),this._instantiationService.setService(Re,this._themeService),this._characterJoinerService=this._instantiationService.createInstance(ct),this._instantiationService.setService(or,this._characterJoinerService),this._renderService=this._register(this._instantiationService.createInstance(Qt,this.rows,this.screenElement)),this._instantiationService.setService(ce,this._renderService),this._register(this._renderService.onRenderedViewportChange(o=>this._onRender.fire(o))),this.onResize(o=>this._renderService.resize(o.cols,o.rows)),this._compositionView=this._document.createElement(\"div\"),this._compositionView.classList.add(\"composition-view\"),this._compositionHelper=this._instantiationService.createInstance($t,this.textarea,this._compositionView),this._helperContainer.appendChild(this._compositionView),this._mouseService=this._instantiationService.createInstance(Xt),this._instantiationService.setService(Dt,this._mouseService);let n=this._linkifier.value=this._register(this._instantiationService.createInstance(hi,this.screenElement));this.element.appendChild(i);try{this._onWillOpen.fire(this.element)}catch{}this._renderService.hasRenderer()||this._renderService.setRenderer(this._createRenderer()),this._register(this.onCursorMove(()=>{this._renderService.handleCursorMove(),this._syncTextArea()})),this._register(this.onResize(()=>this._renderService.handleResize(this.cols,this.rows))),this._register(this.onBlur(()=>this._renderService.handleBlur())),this._register(this.onFocus(()=>this._renderService.handleFocus())),this._viewport=this._register(this._instantiationService.createInstance(zt,this.element,this.screenElement)),this._register(this._viewport.onRequestScrollLines(o=>{super.scrollLines(o,!1),this.refresh(0,this.rows-1)})),this._selectionService=this._register(this._instantiationService.createInstance(ei,this.element,this.screenElement,n)),this._instantiationService.setService(Qs,this._selectionService),this._register(this._selectionService.onRequestScrollLines(o=>this.scrollLines(o.amount,o.suppressScrollEvent))),this._register(this._selectionService.onSelectionChange(()=>this._onSelectionChange.fire())),this._register(this._selectionService.onRequestRedraw(o=>this._renderService.handleSelectionChanged(o.start,o.end,o.columnSelectMode))),this._register(this._selectionService.onLinuxMouseSelection(o=>{this.textarea.value=o,this.textarea.focus(),this.textarea.select()})),this._register($.any(this._onScroll.event,this._inputHandler.onScroll)(()=>{this._selectionService.refresh(),this._viewport?.queueSync()})),this._register(this._instantiationService.createInstance(Gt,this.screenElement)),this._register(L(this.element,\"mousedown\",o=>this._selectionService.handleMouseDown(o))),this.coreMouseService.areMouseEventsActive?(this._selectionService.disable(),this.element.classList.add(\"enable-mouse-events\")):this._selectionService.enable(),this.options.screenReaderMode&&(this._accessibilityManager.value=this._instantiationService.createInstance(Tt,this)),this._register(this.optionsService.onSpecificOptionChange(\"screenReaderMode\",o=>this._handleScreenReaderModeOptionChange(o))),this.options.overviewRuler.width&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(bt,this._viewportElement,this.screenElement))),this.optionsService.onSpecificOptionChange(\"overviewRuler\",o=>{!this._overviewRulerRenderer&&o&&this._viewportElement&&this.screenElement&&(this._overviewRulerRenderer=this._register(this._instantiationService.createInstance(bt,this._viewportElement,this.screenElement)))}),this._charSizeService.measure(),this.refresh(0,this.rows-1),this._initGlobal(),this.bindMouse()}_createRenderer(){return this._instantiationService.createInstance(Yt,this,this._document,this.element,this.screenElement,this._viewportElement,this._helperContainer,this.linkifier)}bindMouse(){let e=this,i=this.element;function r(l){let a=e._mouseService.getMouseReportCoords(l,e.screenElement);if(!a)return!1;let u,h;switch(l.overrideType||l.type){case\"mousemove\":h=32,l.buttons===void 0?(u=3,l.button!==void 0&&(u=l.button<3?l.button:3)):u=l.buttons&1?0:l.buttons&4?1:l.buttons&2?2:3;break;case\"mouseup\":h=0,u=l.button<3?l.button:3;break;case\"mousedown\":h=1,u=l.button<3?l.button:3;break;case\"wheel\":if(e._customWheelEventHandler&&e._customWheelEventHandler(l)===!1)return!1;let c=l.deltaY;if(c===0||e.coreMouseService.consumeWheelEvent(l,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return!1;h=c<0?0:1,u=4;break;default:return!1}return h===void 0||u===void 0||u>4?!1:e.coreMouseService.triggerMouseEvent({col:a.col,row:a.row,x:a.x,y:a.y,button:u,action:h,ctrl:l.ctrlKey,alt:l.altKey,shift:l.shiftKey})}let n={mouseup:null,wheel:null,mousedrag:null,mousemove:null},o={mouseup:l=>(r(l),l.buttons||(this._document.removeEventListener(\"mouseup\",n.mouseup),n.mousedrag&&this._document.removeEventListener(\"mousemove\",n.mousedrag)),this.cancel(l)),wheel:l=>(r(l),this.cancel(l,!0)),mousedrag:l=>{l.buttons&&r(l)},mousemove:l=>{l.buttons||r(l)}};this._register(this.coreMouseService.onProtocolChange(l=>{l?(this.optionsService.rawOptions.logLevel===\"debug\"&&this._logService.debug(\"Binding to mouse events:\",this.coreMouseService.explainEvents(l)),this.element.classList.add(\"enable-mouse-events\"),this._selectionService.disable()):(this._logService.debug(\"Unbinding from mouse events.\"),this.element.classList.remove(\"enable-mouse-events\"),this._selectionService.enable()),l&8?n.mousemove||(i.addEventListener(\"mousemove\",o.mousemove),n.mousemove=o.mousemove):(i.removeEventListener(\"mousemove\",n.mousemove),n.mousemove=null),l&16?n.wheel||(i.addEventListener(\"wheel\",o.wheel,{passive:!1}),n.wheel=o.wheel):(i.removeEventListener(\"wheel\",n.wheel),n.wheel=null),l&2?n.mouseup||(n.mouseup=o.mouseup):(this._document.removeEventListener(\"mouseup\",n.mouseup),n.mouseup=null),l&4?n.mousedrag||(n.mousedrag=o.mousedrag):(this._document.removeEventListener(\"mousemove\",n.mousedrag),n.mousedrag=null)})),this.coreMouseService.activeProtocol=this.coreMouseService.activeProtocol,this._register(L(i,\"mousedown\",l=>{if(l.preventDefault(),this.focus(),!(!this.coreMouseService.areMouseEventsActive||this._selectionService.shouldForceSelection(l)))return r(l),n.mouseup&&this._document.addEventListener(\"mouseup\",n.mouseup),n.mousedrag&&this._document.addEventListener(\"mousemove\",n.mousedrag),this.cancel(l)})),this._register(L(i,\"wheel\",l=>{if(!n.wheel){if(this._customWheelEventHandler&&this._customWheelEventHandler(l)===!1)return!1;if(!this.buffer.hasScrollback){if(l.deltaY===0)return!1;if(e.coreMouseService.consumeWheelEvent(l,e._renderService?.dimensions?.device?.cell?.height,e._coreBrowserService?.dpr)===0)return this.cancel(l,!0);let h=b.ESC+(this.coreService.decPrivateModes.applicationCursorKeys?\"O\":\"[\")+(l.deltaY<0?\"A\":\"B\");return this.coreService.triggerDataEvent(h,!0),this.cancel(l,!0)}}},{passive:!1}))}refresh(e,i){this._renderService?.refreshRows(e,i)}updateCursorStyle(e){this._selectionService?.shouldColumnSelect(e)?this.element.classList.add(\"column-select\"):this.element.classList.remove(\"column-select\")}_showCursor(){this.coreService.isCursorInitialized||(this.coreService.isCursorInitialized=!0,this.refresh(this.buffer.y,this.buffer.y))}scrollLines(e,i){this._viewport?this._viewport.scrollLines(e):super.scrollLines(e,i),this.refresh(0,this.rows-1)}scrollPages(e){this.scrollLines(e*(this.rows-1))}scrollToTop(){this.scrollLines(-this._bufferService.buffer.ydisp)}scrollToBottom(e){e&&this._viewport?this._viewport.scrollToLine(this.buffer.ybase,!0):this.scrollLines(this._bufferService.buffer.ybase-this._bufferService.buffer.ydisp)}scrollToLine(e){let i=e-this._bufferService.buffer.ydisp;i!==0&&this.scrollLines(i)}paste(e){Cn(e,this.textarea,this.coreService,this.optionsService)}attachCustomKeyEventHandler(e){this._customKeyEventHandler=e}attachCustomWheelEventHandler(e){this._customWheelEventHandler=e}registerLinkProvider(e){return this._linkProviderService.registerLinkProvider(e)}registerCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");let i=this._characterJoinerService.register(e);return this.refresh(0,this.rows-1),i}deregisterCharacterJoiner(e){if(!this._characterJoinerService)throw new Error(\"Terminal must be opened first\");this._characterJoinerService.deregister(e)&&this.refresh(0,this.rows-1)}get markers(){return this.buffer.markers}registerMarker(e){return this.buffer.addMarker(this.buffer.ybase+this.buffer.y+e)}registerDecoration(e){return this._decorationService.registerDecoration(e)}hasSelection(){return this._selectionService?this._selectionService.hasSelection:!1}select(e,i,r){this._selectionService.setSelection(e,i,r)}getSelection(){return this._selectionService?this._selectionService.selectionText:\"\"}getSelectionPosition(){if(!(!this._selectionService||!this._selectionService.hasSelection))return{start:{x:this._selectionService.selectionStart[0],y:this._selectionService.selectionStart[1]},end:{x:this._selectionService.selectionEnd[0],y:this._selectionService.selectionEnd[1]}}}clearSelection(){this._selectionService?.clearSelection()}selectAll(){this._selectionService?.selectAll()}selectLines(e,i){this._selectionService?.selectLines(e,i)}_keyDown(e){if(this._keyDownHandled=!1,this._keyDownSeen=!0,this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;let i=this.browser.isMac&&this.options.macOptionIsMeta&&e.altKey;if(!i&&!this._compositionHelper.keydown(e))return this.options.scrollOnUserInput&&this.buffer.ybase!==this.buffer.ydisp&&this.scrollToBottom(!0),!1;!i&&(e.key===\"Dead\"||e.key===\"AltGraph\")&&(this._unprocessedDeadKey=!0);let r=Il(e,this.coreService.decPrivateModes.applicationCursorKeys,this.browser.isMac,this.options.macOptionIsMeta);if(this.updateCursorStyle(e),r.type===3||r.type===2){let n=this.rows-1;return this.scrollLines(r.type===2?-n:n),this.cancel(e,!0)}if(r.type===1&&this.selectAll(),this._isThirdLevelShift(this.browser,e)||(r.cancel&&this.cancel(e,!0),!r.key)||e.key&&!e.ctrlKey&&!e.altKey&&!e.metaKey&&e.key.length===1&&e.key.charCodeAt(0)>=65&&e.key.charCodeAt(0)<=90)return!0;if(this._unprocessedDeadKey)return this._unprocessedDeadKey=!1,!0;if((r.key===b.ETX||r.key===b.CR)&&(this.textarea.value=\"\"),this._onKey.fire({key:r.key,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(r.key,!0),!this.optionsService.rawOptions.screenReaderMode||e.altKey||e.ctrlKey)return this.cancel(e,!0);this._keyDownHandled=!0}_isThirdLevelShift(e,i){let r=e.isMac&&!this.options.macOptionIsMeta&&i.altKey&&!i.ctrlKey&&!i.metaKey||e.isWindows&&i.altKey&&i.ctrlKey&&!i.metaKey||e.isWindows&&i.getModifierState(\"AltGraph\");return i.type===\"keypress\"?r:r&&(!i.keyCode||i.keyCode>47)}_keyUp(e){this._keyDownSeen=!1,!(this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)&&(Tc(e)||this.focus(),this.updateCursorStyle(e),this._keyPressHandled=!1)}_keyPress(e){let i;if(this._keyPressHandled=!1,this._keyDownHandled||this._customKeyEventHandler&&this._customKeyEventHandler(e)===!1)return!1;if(this.cancel(e),e.charCode)i=e.charCode;else if(e.which===null||e.which===void 0)i=e.keyCode;else if(e.which!==0&&e.charCode!==0)i=e.which;else return!1;return!i||(e.altKey||e.ctrlKey||e.metaKey)&&!this._isThirdLevelShift(this.browser,e)?!1:(i=String.fromCharCode(i),this._onKey.fire({key:i,domEvent:e}),this._showCursor(),this.coreService.triggerDataEvent(i,!0),this._keyPressHandled=!0,this._unprocessedDeadKey=!1,!0)}_inputEvent(e){if(e.data&&e.inputType===\"insertText\"&&(!e.composed||!this._keyDownSeen)&&!this.optionsService.rawOptions.screenReaderMode){if(this._keyPressHandled)return!1;this._unprocessedDeadKey=!1;let i=e.data;return this.coreService.triggerDataEvent(i,!0),this.cancel(e),!0}return!1}resize(e,i){if(e===this.cols&&i===this.rows){this._charSizeService&&!this._charSizeService.hasValidSize&&this._charSizeService.measure();return}super.resize(e,i)}_afterResize(e,i){this._charSizeService?.measure()}clear(){if(!(this.buffer.ybase===0&&this.buffer.y===0)){this.buffer.clearAllMarkers(),this.buffer.lines.set(0,this.buffer.lines.get(this.buffer.ybase+this.buffer.y)),this.buffer.lines.length=1,this.buffer.ydisp=0,this.buffer.ybase=0,this.buffer.y=0;for(let e=1;e<this.rows;e++)this.buffer.lines.push(this.buffer.getBlankLine(X));this._onScroll.fire({position:this.buffer.ydisp}),this.refresh(0,this.rows-1)}}reset(){this.options.rows=this.rows,this.options.cols=this.cols;let e=this._customKeyEventHandler;this._setup(),super.reset(),this._selectionService?.reset(),this._decorationService.reset(),this._customKeyEventHandler=e,this.refresh(0,this.rows-1)}clearTextureAtlas(){this._renderService?.clearTextureAtlas()}_reportFocus(){this.element?.classList.contains(\"focus\")?this.coreService.triggerDataEvent(b.ESC+\"[I\"):this.coreService.triggerDataEvent(b.ESC+\"[O\")}_reportWindowsOptions(e){if(this._renderService)switch(e){case 0:let i=this._renderService.dimensions.css.canvas.width.toFixed(0),r=this._renderService.dimensions.css.canvas.height.toFixed(0);this.coreService.triggerDataEvent(`${b.ESC}[4;${r};${i}t`);break;case 1:let n=this._renderService.dimensions.css.cell.width.toFixed(0),o=this._renderService.dimensions.css.cell.height.toFixed(0);this.coreService.triggerDataEvent(`${b.ESC}[6;${o};${n}t`);break}}cancel(e,i){if(!(!this.options.cancelEvents&&!i))return e.preventDefault(),e.stopPropagation(),!1}};function Tc(s){return s.keyCode===16||s.keyCode===17||s.keyCode===18}var xn=class{constructor(){this._addons=[]}dispose(){for(let t=this._addons.length-1;t>=0;t--)this._addons[t].instance.dispose()}loadAddon(t,e){let i={instance:e,dispose:e.dispose,isDisposed:!1};this._addons.push(i),e.dispose=()=>this._wrappedAddonDispose(i),e.activate(t)}_wrappedAddonDispose(t){if(t.isDisposed)return;let e=-1;for(let i=0;i<this._addons.length;i++)if(this._addons[i]===t){e=i;break}if(e===-1)throw new Error(\"Could not dispose an addon that has not been loaded\");t.isDisposed=!0,t.dispose.apply(t.instance),this._addons.splice(e,1)}};var wn=class{constructor(t){this._line=t}get isWrapped(){return this._line.isWrapped}get length(){return this._line.length}getCell(t,e){if(!(t<0||t>=this._line.length))return e?(this._line.loadCell(t,e),e):this._line.loadCell(t,new q)}translateToString(t,e,i){return this._line.translateToString(t,e,i)}};var Ji=class{constructor(t,e){this._buffer=t;this.type=e}init(t){return this._buffer=t,this}get cursorY(){return this._buffer.y}get cursorX(){return this._buffer.x}get viewportY(){return this._buffer.ydisp}get baseY(){return this._buffer.ybase}get length(){return this._buffer.lines.length}getLine(t){let e=this._buffer.lines.get(t);if(e)return new wn(e)}getNullCell(){return new q}};var Dn=class extends D{constructor(e){super();this._core=e;this._onBufferChange=this._register(new v);this.onBufferChange=this._onBufferChange.event;this._normal=new Ji(this._core.buffers.normal,\"normal\"),this._alternate=new Ji(this._core.buffers.alt,\"alternate\"),this._core.buffers.onBufferActivate(()=>this._onBufferChange.fire(this.active))}get active(){if(this._core.buffers.active===this._core.buffers.normal)return this.normal;if(this._core.buffers.active===this._core.buffers.alt)return this.alternate;throw new Error(\"Active buffer is neither normal nor alternate\")}get normal(){return this._normal.init(this._core.buffers.normal)}get alternate(){return this._alternate.init(this._core.buffers.alt)}};var Rn=class{constructor(t){this._core=t}registerCsiHandler(t,e){return this._core.registerCsiHandler(t,i=>e(i.toArray()))}addCsiHandler(t,e){return this.registerCsiHandler(t,e)}registerDcsHandler(t,e){return this._core.registerDcsHandler(t,(i,r)=>e(i,r.toArray()))}addDcsHandler(t,e){return this.registerDcsHandler(t,e)}registerEscHandler(t,e){return this._core.registerEscHandler(t,e)}addEscHandler(t,e){return this.registerEscHandler(t,e)}registerOscHandler(t,e){return this._core.registerOscHandler(t,e)}addOscHandler(t,e){return this.registerOscHandler(t,e)}};var Ln=class{constructor(t){this._core=t}register(t){this._core.unicodeService.register(t)}get versions(){return this._core.unicodeService.versions}get activeVersion(){return this._core.unicodeService.activeVersion}set activeVersion(t){this._core.unicodeService.activeVersion=t}};var Ic=[\"cols\",\"rows\"],Ue=0,Dl=class extends D{constructor(t){super(),this._core=this._register(new yn(t)),this._addonManager=this._register(new xn),this._publicOptions={...this._core.options};let e=r=>this._core.options[r],i=(r,n)=>{this._checkReadonlyOptions(r),this._core.options[r]=n};for(let r in this._core.options){let n={get:e.bind(this,r),set:i.bind(this,r)};Object.defineProperty(this._publicOptions,r,n)}}_checkReadonlyOptions(t){if(Ic.includes(t))throw new Error(`Option \"${t}\" can only be set in the constructor`)}_checkProposedApi(){if(!this._core.optionsService.rawOptions.allowProposedApi)throw new Error(\"You must set the allowProposedApi option to true to use proposed API\")}get onBell(){return this._core.onBell}get onBinary(){return this._core.onBinary}get onCursorMove(){return this._core.onCursorMove}get onData(){return this._core.onData}get onKey(){return this._core.onKey}get onLineFeed(){return this._core.onLineFeed}get onRender(){return this._core.onRender}get onResize(){return this._core.onResize}get onScroll(){return this._core.onScroll}get onSelectionChange(){return this._core.onSelectionChange}get onTitleChange(){return this._core.onTitleChange}get onWriteParsed(){return this._core.onWriteParsed}get element(){return this._core.element}get parser(){return this._parser||(this._parser=new Rn(this._core)),this._parser}get unicode(){return this._checkProposedApi(),new Ln(this._core)}get textarea(){return this._core.textarea}get rows(){return this._core.rows}get cols(){return this._core.cols}get buffer(){return this._buffer||(this._buffer=this._register(new Dn(this._core))),this._buffer}get markers(){return this._checkProposedApi(),this._core.markers}get modes(){let t=this._core.coreService.decPrivateModes,e=\"none\";switch(this._core.coreMouseService.activeProtocol){case\"X10\":e=\"x10\";break;case\"VT200\":e=\"vt200\";break;case\"DRAG\":e=\"drag\";break;case\"ANY\":e=\"any\";break}return{applicationCursorKeysMode:t.applicationCursorKeys,applicationKeypadMode:t.applicationKeypad,bracketedPasteMode:t.bracketedPasteMode,insertMode:this._core.coreService.modes.insertMode,mouseTrackingMode:e,originMode:t.origin,reverseWraparoundMode:t.reverseWraparound,sendFocusMode:t.sendFocus,synchronizedOutputMode:t.synchronizedOutput,wraparoundMode:t.wraparound}}get options(){return this._publicOptions}set options(t){for(let e in t)this._publicOptions[e]=t[e]}blur(){this._core.blur()}focus(){this._core.focus()}input(t,e=!0){this._core.input(t,e)}resize(t,e){this._verifyIntegers(t,e),this._core.resize(t,e)}open(t){this._core.open(t)}attachCustomKeyEventHandler(t){this._core.attachCustomKeyEventHandler(t)}attachCustomWheelEventHandler(t){this._core.attachCustomWheelEventHandler(t)}registerLinkProvider(t){return this._core.registerLinkProvider(t)}registerCharacterJoiner(t){return this._checkProposedApi(),this._core.registerCharacterJoiner(t)}deregisterCharacterJoiner(t){this._checkProposedApi(),this._core.deregisterCharacterJoiner(t)}registerMarker(t=0){return this._verifyIntegers(t),this._core.registerMarker(t)}registerDecoration(t){return this._checkProposedApi(),this._verifyPositiveIntegers(t.x??0,t.width??0,t.height??0),this._core.registerDecoration(t)}hasSelection(){return this._core.hasSelection()}select(t,e,i){this._verifyIntegers(t,e,i),this._core.select(t,e,i)}getSelection(){return this._core.getSelection()}getSelectionPosition(){return this._core.getSelectionPosition()}clearSelection(){this._core.clearSelection()}selectAll(){this._core.selectAll()}selectLines(t,e){this._verifyIntegers(t,e),this._core.selectLines(t,e)}dispose(){super.dispose()}scrollLines(t){this._verifyIntegers(t),this._core.scrollLines(t)}scrollPages(t){this._verifyIntegers(t),this._core.scrollPages(t)}scrollToTop(){this._core.scrollToTop()}scrollToBottom(){this._core.scrollToBottom()}scrollToLine(t){this._verifyIntegers(t),this._core.scrollToLine(t)}clear(){this._core.clear()}write(t,e){this._core.write(t,e)}writeln(t,e){this._core.write(t),this._core.write(`\\r\n`,e)}paste(t){this._core.paste(t)}refresh(t,e){this._verifyIntegers(t,e),this._core.refresh(t,e)}reset(){this._core.reset()}clearTextureAtlas(){this._core.clearTextureAtlas()}loadAddon(t){this._addonManager.loadAddon(this,t)}static get strings(){return{get promptLabel(){return mi.get()},set promptLabel(t){mi.set(t)},get tooMuchOutput(){return _i.get()},set tooMuchOutput(t){_i.set(t)}}}_verifyIntegers(...t){for(Ue of t)if(Ue===1/0||isNaN(Ue)||Ue%1!==0)throw new Error(\"This API only accepts integers\")}_verifyPositiveIntegers(...t){for(Ue of t)if(Ue&&(Ue===1/0||isNaN(Ue)||Ue%1!==0||Ue<0))throw new Error(\"This API only accepts positive integers\")}};export{Dl as Terminal};\n//# sourceMappingURL=xterm.mjs.map\n","/**\n * Copyright (c) 2014-2024 The xterm.js authors. All rights reserved.\n * @license MIT\n *\n * Copyright (c) 2012-2013, Christopher Jeffrey (MIT License)\n * @license MIT\n *\n * Originally forked from (with the author's permission):\n * Fabrice Bellard's javascript vt100 for jslinux:\n * http://bellard.org/jslinux/\n * Copyright (c) 2011 Fabrice Bellard\n */\n/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\nvar h=2,_=1,o=class{activate(e){this._terminal=e}dispose(){}fit(){let e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;let t=this._terminal._core;(this._terminal.rows!==e.rows||this._terminal.cols!==e.cols)&&(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal||!this._terminal.element||!this._terminal.element.parentElement)return;let t=this._terminal._core._renderService.dimensions;if(t.css.cell.width===0||t.css.cell.height===0)return;let s=this._terminal.options.scrollback===0?0:this._terminal.options.overviewRuler?.width||14,r=window.getComputedStyle(this._terminal.element.parentElement),l=parseInt(r.getPropertyValue(\"height\")),a=Math.max(0,parseInt(r.getPropertyValue(\"width\"))),i=window.getComputedStyle(this._terminal.element),n={top:parseInt(i.getPropertyValue(\"padding-top\")),bottom:parseInt(i.getPropertyValue(\"padding-bottom\")),right:parseInt(i.getPropertyValue(\"padding-right\")),left:parseInt(i.getPropertyValue(\"padding-left\"))},m=n.top+n.bottom,d=n.right+n.left,c=l-m,p=a-d-s;return{cols:Math.max(h,Math.floor(p/t.css.cell.width)),rows:Math.max(_,Math.floor(c/t.css.cell.height))}}};export{o as FitAddon};\n//# sourceMappingURL=addon-fit.mjs.map\n","import { createSignal, onMount, onCleanup, For, Show, createMemo, createEffect, untrack, Index } from \"solid-js\";\nimport { renderMarkdown } from \"./md\";\nimport { fmtDur } from \"./format\";\nimport { applyDelta, clearLive, isTurnBoundary, isCoveredByLog, isOwnLiveWork } from \"./live-buffer\";\nimport { placeEchoesBelow, resequenceToDelivery } from \"./timeline-order\";\nimport { goalLine, isPlaceholderDetail } from \"./goal-timeline\";\nimport { shellOutcome, shellHint, outcomeMarker } from \"./shell-outcome\";\nimport {\n treeRowsOf,\n sidebarRowsOf,\n workspaceOf as workspaceOfPure,\n chatGroupKeyOf,\n wsChatCountsOf,\n} from \"./sidebar-tree\";\n\n/* Rendered-markdown cache: old messages were re-parsing their whole body on\n * EVERY prepend/refresh pass (scrolling back through a long session parsed\n * the same text over and over — visibly heavy). Event content is immutable,\n * so a small LRU keyed by the source string makes repeat renders free. */\nconst mdCache = new Map<string, string>();\nfunction renderMarkdownCached(src: string): string {\n const hit = mdCache.get(src);\n if (hit !== undefined) return hit;\n const html = renderMarkdown(src);\n mdCache.set(src, html);\n if (mdCache.size > 500) mdCache.delete(mdCache.keys().next().value!);\n return html;\n}\nimport \"@xterm/xterm/css/xterm.css\";\nimport { Terminal } from \"@xterm/xterm\";\nimport { FitAddon } from \"@xterm/addon-fit\";\n\ndeclare const __APP_VERSION__: string;\n\n/** Reasoning-effort levels OpenRouter documents for `reasoning_effort` (#47). */\nconst REASONING_EFFORT_OPTIONS = [\"minimal\", \"low\", \"medium\", \"high\"] as const;\n\n/** Width at which the right bar becomes a floating drawer over the content.\n * MUST stay equal to the `@media (max-width: 1100px)` breakpoint in app.css —\n * the JS drives the drawer state, the CSS positions it, and they only agree if\n * both are 1100. */\nconst NARROW_PX = 1100;\n\n/* ---------- types ---------- */\ninterface Agent {\n id: string; status: string; statusReason: string; workspace: string;\n /** is work in flight that `stop` would stop? `status` alone cannot say — a\n * parked tool and queued prompts are both live while status reads \"idle\" (#59) */\n live?: boolean;\n session: string; branch: string; goal: { status: string; text: string; verify?: string; audit?: { verdict: \"approved\" | \"changes-required\"; feedback: string; at: string } };\n workspaceMissing?: boolean;\n latestProgress: any; stats: any; model: string; provider?: string;\n /** reasoning effort in force, and whether this model accepts one (#47) */\n reasoningEffort?: string; effortSupported?: boolean;\n pendingPrompts?: number;\n /** #78: the ids of the still-queued prompts, so the UI can reconcile by IDENTITY */\n pendingPromptIds?: string[];\n todo?: string;\n parent?: string;\n autoContinue?: boolean;\n autoCompact?: boolean;\n ctx?: { usedTokens: number; compactAt: number; window: number; compactAtIsManual?: boolean; compacting?: string };\n}\n\ninterface Ev {\n id: string; seq: number; ts: string; session: string; branch: string;\n type: string; parent: string | null; data: any;\n}\n\nconst AUTHORS: Record<string, { name: string; icon: string; color: string }> = {\n prompt: { name: \"you\", icon: \"🟧\", color: \"#faa81a\" },\n user: { name: \"you\", icon: \"🟧\", color: \"#faa81a\" },\n message: { name: \"agent\", icon: \"🫖\", color: \"#5865f2\" },\n progress: { name: \"progress\", icon: \"📈\", color: \"#3ba55d\" },\n question: { name: \"agent\", icon: \"❓\", color: \"#5865f2\" }, // ask_user comes from the agent too\n};\nconst HARNESS_AUTH = { name: \"harness\", icon: \"📣\", color: \"#3ba55d\" };\n\n/* ---------- transient toast hint (module scope: also used by SwitchContent) ---------- */\nconst [flash, setFlash] = createSignal(\"\");\nlet flashTimer: ReturnType<typeof setTimeout> | undefined;\nconst flashHint = (msg: string) => {\n setFlash(msg);\n clearTimeout(flashTimer);\n flashTimer = setTimeout(() => setFlash(\"\"), 3200);\n};\n\n/* ---------- IME composition (Safari) ---------- */\n// KeyboardEvent.isComposing is NOT reliable for this: Safari fires\n// compositionend BEFORE the final keydown for Enter, so by the time the\n// keydown handler asks, isComposing is already false and Enter gets SENT\n// instead of confirming the conversion — the half-converted text went to the\n// model and the user's kana/kanji input was swallowed. Track composition\n// ourselves and clear it on the next frame, after that keydown has run.\n// (ported from #12)\nlet imeInProgress = false;\n\n/* ---------- themes ---------- */\ntype ThemeMeta = {\n key: string;\n label: string;\n mode: \"dark\" | \"light\";\n /** three preview dots: page bg · raised surface · accent */\n sw: [string, string, string];\n};\nconst THEMES: ThemeMeta[] = [\n { key: \"dark\", label: \"Dark\", mode: \"dark\", sw: [\"#1a1c22\", \"#2b2e39\", \"#5865f2\"] },\n { key: \"midnight\", label: \"Midnight\", mode: \"dark\", sw: [\"#0d0f18\", \"#252a42\", \"#8b7cf7\"] },\n { key: \"tea\", label: \"Milk Tea\", mode: \"dark\", sw: [\"#241c16\", \"#493b2d\", \"#d98e32\"] },\n { key: \"coffee\", label: \"Coffee\", mode: \"dark\", sw: [\"#191410\", \"#403527\", \"#c68a4b\"] },\n { key: \"matcha\", label: \"Matcha\", mode: \"dark\", sw: [\"#1b2217\", \"#3c4a33\", \"#8db64e\"] },\n { key: \"matrix\", label: \"Matrix\", mode: \"dark\", sw: [\"#060a06\", \"#18301d\", \"#2fd558\"] },\n { key: \"sunset\", label: \"Sunset\", mode: \"dark\", sw: [\"#1c1422\", \"#452f52\", \"#f2784b\"] },\n { key: \"light\", label: \"Light\", mode: \"light\", sw: [\"#eceef4\", \"#ffffff\", \"#4757d8\"] },\n { key: \"strawberry\", label: \"Strawberry\", mode: \"light\", sw: [\"#fbe4ea\", \"#fffafb\", \"#e05575\"] },\n { key: \"ramune\", label: \"Ramune\", mode: \"light\", sw: [\"#ddeff7\", \"#fbfeff\", \"#1d86ae\"] },\n];\n\n/** xterm palette pulled from the active theme's CSS variables (fallback: dark) */\nfunction themeColors(): { background: string; foreground: string } {\n let bg = \"\";\n let fg = \"\";\n try {\n const cs = getComputedStyle(document.documentElement);\n bg = cs.getPropertyValue(\"--term-bg\").trim();\n fg = cs.getPropertyValue(\"--term-fg\").trim();\n } catch { /* non-DOM context */ }\n return { background: bg || \"#0d0e12\", foreground: fg || \"#dcdee4\" };\n}\n\n/** author for an event — mirrored sub-agent rows act under their own id */\nconst authorOf = (e: Ev) => {\n if (e.data?.actor) return { name: `@${String(e.data.actor)}`, icon: \"🧩\", color: \"#3ba0c9\" };\n if (e.type === \"tool_call\" || e.type === \"tool_result\")\n return { name: String(e.data?.name ?? \"tool\"), icon: \"⚙\", color: \"#3ba0c9\" };\n if (e.type === \"prompt\") {\n const src = String(e.data?.source ?? \"user\");\n if (src === \"user\") return AUTHORS.prompt;\n return src.startsWith(\"scheduler:\") ? { name: src.slice(10), icon: \"📣\", color: \"#3ba55d\" } : HARNESS_AUTH;\n }\n return AUTHORS[e.type] ?? { name: e.type, icon: \"•\", color: \"#9298a5\" };\n};\n\n// state/error/fork/goal render as dividers or embeds inside the feed\nconst FEED_TYPES = new Set([\n \"user\", \"message\", \"prompt\", \"tool_call\", \"tool_result\", \"progress\",\n \"state\", \"error\", \"fork\", \"goal\", \"todo\", \"question\", \"decision\", \"compaction\",\n \"system_note\",\n // NOTE: \"sub\" is deliberately NOT here. A child's activity is no longer\n // mirrored into the parent's log (#63) — those rows flooded the parent's\n // timeline, and they were display-only anyway: `rebuildMessagesFrom` never\n // read them, so the model never saw them either. A chat's timeline is its own.\n // The expansion below still handles a `sub` row so an OLD log that already\n // contains one renders as an attributed child row rather than vanishing.\n]);\n// system_note rows never RENDER, but two of them drive pending-echo state:\n// prompt-delivered flips the echo to \"sent\" and must ALSO refresh the feed so\n// the logged prompt row replaces the echo right away (otherwise the \"sent ✓\"\n// echo lingered until some unrelated event happened to refresh the timeline)\nconst NOTE_FEED_TYPES = new Set([\"system_note\"]);\nconst fmtTs = (iso: string) => {\n const d = new Date(iso);\n return `${String(d.getHours()).padStart(2, \"0\")}:${String(d.getMinutes()).padStart(2, \"0\")}`;\n};\n\nasync function api(path: string, opts?: RequestInit) {\n const token = localStorage.getItem(\"teapot.token\");\n const headers = new Headers(opts?.headers);\n if (token && !headers.has(\"authorization\")) headers.set(\"authorization\", `Bearer ${token}`);\n const res = await fetch(path, { ...opts, headers });\n if (!res.ok) {\n // auth gate: surface once so the login overlay can appear\n if (res.status === 401) window.dispatchEvent(new CustomEvent(\"teapot:unauthorized\"));\n let body: unknown = null;\n try { body = await res.json(); } catch { /* not json */ }\n const detail =\n (body && typeof body === \"object\" && \"error\" in body ? String((body as any).error) : \"\") ||\n `${path}: HTTP ${res.status}`;\n // carry the full payload (e.g. a 409's `current` file content) to callers\n throw Object.assign(new Error(detail), { payload: body });\n }\n return res.json();\n}\n\n// TEAPOT_API_TOKEN flow: open the UI as http://host/#token=<secret> once —\n// it is stored and stripped from the URL, then attached to every request.\nconst hashTok = location.hash.match(/[#&]token=([^&]+)/);\nif (hashTok) {\n localStorage.setItem(\"teapot.token\", decodeURIComponent(hashTok[1]));\n history.replaceState(null, \"\", location.pathname + location.search);\n}\nconst wsTokenQuery = () => {\n const t = localStorage.getItem(\"teapot.token\");\n return t ? `?token=${encodeURIComponent(t)}` : \"\";\n};\n\n/* ---------- app ---------- */\nexport default function App() {\n const [agents, setAgents] = createSignal<Agent[]>([]);\n const [selected, setSelected] = createSignal<string | null>(null);\n // internal session id backing the currently viewed timeline — the stable\n // handle behind /session/<id> URLs and every events fetch (?session=…)\n const [timelineId, setTimelineId] = createSignal<string>(\"\");\n // internal session id → owning agent id, and agent id → its session ids\n // (newest first) — ONE /api/sessions call serves every agent, refetched\n // only when the agent SET changes (not on every poll: the fan-out of one\n // request per agent per switch hammered the server for identical data)\n const [masterSessionIndex, setMasterSessionIndex] = createSignal<Map<string, string>>(new Map());\n const [sessionsByAgent, setSessionsByAgent] = createSignal<Map<string, string[]>>(new Map());\n let sessionIndexFetched = false;\n async function refreshSessionIndex(force = false): Promise<void> {\n // A permanent latch meant a session created or deleted while the tab was\n // open never appeared — the UI kept a handle to a session that no longer\n // existed, which is the unusable half of #39. Refetch when asked; the\n // caller decides when that is worth it.\n if (sessionIndexFetched && !force) return;\n sessionIndexFetched = true;\n try {\n const r = await api(\"/api/sessions\");\n const byId = new Map<string, string>();\n const byAgent = new Map<string, string[]>();\n for (const s of r.sessions ?? []) {\n byId.set(s.id, s.agentId);\n const list = byAgent.get(s.agentId) ?? [];\n list.push(s.id); // server returns newest first\n byAgent.set(s.agentId, list);\n }\n setMasterSessionIndex(byId);\n setSessionsByAgent(byAgent);\n } catch { /* transient — retried on next agent-set change */ }\n }\n const [events, setEvents] = createSignal<Ev[]>([]);\n const [eventsTotal, setEventsTotal] = createSignal(0); // server-side count (window is capped)\n const [branches, setBranches] = createSignal<any[]>([]);\n const [metrics, setMetrics] = createSignal<any>(null);\n // per-session unsent prompt drafts — switching agents preserves what each\n // one was typing instead of showing the previous session's text\n const drafts = new Map<string, string>();\n const [draft, setDraft] = createSignal(drafts.get(selected() ?? \"\") ?? \"\");\n const saveDraft = (v: string) => {\n setDraft(v);\n const id = selected();\n if (id) {\n if (v) drafts.set(id, v);\n else drafts.delete(id); // cleared input → nothing to preserve\n }\n };\n const [cfg, setCfg] = createSignal<any>({ providers: {} });\n const [showNew, setShowNew] = createSignal(false);\n const [showCfg, setShowCfg] = createSignal(false);\n /* Below NARROW_PX the right bar stops being a grid column and becomes a\n * fixed drawer over the content — which hides the ▤ toggle that opens it.\n * That is why the drawer needs its own close button, and why the breakpoint\n * lives in ONE place shared with the CSS media query. */\n const isNarrow = () => window.innerWidth <= NARROW_PX;\n /* ...but the JSX needs the REACTIVE form. A plain function reads fine inside\n * a keydown handler and is evaluated on every Escape, yet `<Show\n * when={isNarrow() && …}>` evaluates it ONCE at render and never again:\n * window.innerWidth is not a signal, so nothing re-ran the branch. The\n * reported flow is narrowing an already-loaded window, which is exactly when\n * that bites — the backdrop never appeared, and the drawer had no\n * click-outside at all. A signal updated on resize makes it track the same\n * breakpoint the CSS media query does. */\n const [narrow, setNarrow] = createSignal(isNarrow());\n onMount(() => {\n const onResize = () => setNarrow(isNarrow());\n window.addEventListener(\"resize\", onResize);\n onCleanup(() => window.removeEventListener(\"resize\", onResize));\n onResize(); // a late load can land on the other side of the breakpoint\n });\n const [showRight, setShowRight] = createSignal(\n localStorage.getItem(\"teapot.panel\") !== null\n ? localStorage.getItem(\"teapot.panel\") === \"1\"\n : window.innerWidth > NARROW_PX,\n );\n const setRight = (next: boolean) => {\n setShowRight(next);\n localStorage.setItem(\"teapot.panel\", next ? \"1\" : \"0\");\n };\n const toggleRight = () => setRight(!showRight());\n const closeRight = () => {\n // Escape and the drawer's ✕ must not persist \"panel open\" — a drawer\n // remembered as open slides back over the content on the next load, which\n // is exactly the state we are trying to make escapable.\n if (showRight()) setRight(false);\n };\n\n /* ---------- theme picker (per-browser, localStorage-backed) ---------- */\n const [showThemes, setShowThemes] = createSignal(false);\n // fixed theme…\n const [fixedTheme, setFixedTheme] = createSignal(localStorage.getItem(\"teapot.theme\") ?? \"dark\");\n // …or follow the OS, with an explicit choice per system appearance\n const [themeAuto, setThemeAuto] = createSignal(localStorage.getItem(\"teapot.theme.auto\") === \"1\");\n const [sysLightTheme, setSysLightTheme] = createSignal(\n localStorage.getItem(\"teapot.theme.light\") ?? \"light\",\n );\n const [sysDarkTheme, setSysDarkTheme] = createSignal(\n localStorage.getItem(\"teapot.theme.dark\") ?? \"dark\",\n );\n const sysMql =\n typeof window.matchMedia === \"function\"\n ? window.matchMedia(\"(prefers-color-scheme: light)\")\n : null;\n const [sysPrefersLight, setSysPrefersLight] = createSignal(sysMql?.matches ?? false);\n onMount(() => {\n const onChange = (e: MediaQueryListEvent) => setSysPrefersLight(e.matches);\n sysMql?.addEventListener(\"change\", onChange);\n onCleanup(() => sysMql?.removeEventListener(\"change\", onChange));\n });\n // single writer: resolves the active theme and slaps it on <html>\n createEffect(() => {\n const active = themeAuto()\n ? sysPrefersLight()\n ? sysLightTheme()\n : sysDarkTheme()\n : fixedTheme();\n document.documentElement.dataset.theme = active;\n // light/dark appearance for components that ship their own palettes\n // (e.g. shiki dual-theme code blocks)\n document.documentElement.dataset.appearance =\n THEMES.find((t) => t.key === active)?.mode ?? \"dark\";\n });\n // model switcher state\n const [modelProvider, setModelProvider] = createSignal(\"\");\n const [modelDraft, setModelDraft] = createSignal(\"\");\n // #47: reasoning effort draft (\"\" = provider default). Seeded from the\n // agent snapshot and re-seeded whenever the selected agent changes, mirroring\n // modelDraft's pattern.\n const [effortDraft, setEffortDraft] = createSignal(\"\");\n createEffect(() => {\n const id = selected();\n setEffortDraft(untrack(() => agents().find((a) => a.id === id)?.reasoningEffort ?? \"\"));\n });\n const [models, setModels] = createSignal<\n { id: string; contextLength?: number; pricing?: { prompt: number; completion: number }; modalities?: { input: string[]; output: string[] } }[]\n >([]);\n const providerList = () => Object.keys(cfg().providers ?? {});\n async function loadModels(prov: string) {\n if (!prov) return;\n try {\n const r = await api(`/api/models?provider=${encodeURIComponent(prov)}`);\n setModels(r.models ?? []);\n } catch { setModels([]); }\n }\n /** \"ctx 1m · $3/M in · $15/M out\" for the draft (or current) model */\n /** 📄🖼️→📄 style badge for a model's input/output modalities */\n const modalityBadge = (m?: { modalities?: { input: string[]; output: string[] } }): string => {\n const icon: Record<string, string> = {\n text: \"📄\", image: \"🖼️\", audio: \"🔊\", video: \"🎬\", file: \"📎\",\n };\n const side = (list?: string[]) =>\n (list ?? [\"text\"]).map((k) => icon[k] ?? k).join(\"\");\n if (!m?.modalities) return \"\";\n return `${side(m.modalities.input)} → ${side(m.modalities.output)}`;\n };\n const modelSpec = () => {\n const id = modelDraft().trim() || sel()?.model || \"\";\n if (!id) return \"\";\n const m = models().find((x) => x.id === id);\n if (!m) return \"\";\n const parts: string[] = [];\n const badge = modalityBadge(m);\n if (badge && badge !== \"📄 → 📄\") parts.push(badge); // text-only is the default — no noise\n if (m.contextLength) parts.push(`ctx ${fmtK(m.contextLength)} tok`);\n const price = (p?: number) =>\n p === undefined ? \"\" : `${p * 1e6 >= 10 ? Math.round(p * 1e6) : +(p * 1e6).toFixed(1)}/M`;\n if (m.pricing) {\n const pin = price(m.pricing.prompt);\n const pout = price(m.pricing.completion);\n if (pin && pout) parts.push(`${pin} in · ${pout} out`);\n else if (pin || pout) parts.push(price(m.pricing.prompt ?? m.pricing.completion));\n }\n return parts.join(\" · \");\n };\n // Keep the switcher aligned with the selected session. Keyed on STRINGS,\n // not on sel() identity: this used to re-run (and re-fetch /api/models!)\n // on every poll in which the agent's snapshot object changed — visibly\n // rebuilding the whole 🧦 model section = the \"right panel flashes\" bug.\n // FIX: the draft/provider signals are NOT dependencies — reading them\n // reactively cleared the draft on every keystroke and reverted the\n // provider dropdown on manual change (the \"right panel model switching\n // doesn't work\" bug). Clear draft / sync provider only when the selected\n // agent actually changes.\n let _prevModelAgent: string | null = null;\n createEffect(() => {\n const id = selected();\n if (!id) return;\n const a = agents().find((x) => x.id === id);\n const prov = a?.provider || cfg().defaultProvider || providerList()[0] || \"\";\n if (!a) return;\n if (id !== _prevModelAgent) {\n _prevModelAgent = id;\n // sync provider to the newly selected agent's provider\n if (untrack(() => modelProvider()) !== prov) {\n setModelProvider(prov);\n loadModels(prov);\n }\n // clear stale draft only on session switch, not on every poll\n if (untrack(() => modelDraft())) setModelDraft(\"\");\n } else {\n // same agent — keep user's draft/provider edits intact; only\n // re-sync if the server's provider changed externally and the user\n // isn't actively editing (draft empty means not mid-type)\n const curProv = untrack(() => modelProvider());\n const curDraft = untrack(() => modelDraft());\n if (!curDraft && curProv !== prov) {\n setModelProvider(prov);\n loadModels(prov);\n }\n }\n });\n // autoscroll: follow the tail only while the reader is already at the bottom\n const MAX_COMPOSER_H = 360; // ~15 lines expanded (was ~8 lines / 160px)\n const [composerMaximized, setComposerMaximized] = createSignal(false);\n const [atBottom, setAtBottom] = createSignal(true);\n const [missed, setMissed] = createSignal(0);\n // live compaction progress for the selected session (\"summarizing 2138…\")\n const [compacting, setCompacting] = createSignal<{ phase: string; summarized?: number } | null>(null);\n // the live bubble is carrying a compaction summarizer stream (prefixed by\n // the harness) rather than a normal assistant reply — render it differently\n const liveIsCompact = () => liveText().startsWith(\"[compact] \");\n const liveBody = () => (liveIsCompact() ? liveText().slice(\"[compact] \".length) : liveText());\n // a summarizer's streamed output is shown in the live bubble; clear it when\n // the pass ends so a stale \"[compact] …\" bubble can't outlive it\n createEffect(() => {\n if (!compacting()) setLive((l) => (l?.text.startsWith(\"[compact] \") ? null : l));\n });\n // ONE live buffer PER AGENT. The old single slot was clobbered by every\n // session switch (setLive(null) on select) and by the feed refresh's\n // stillStreaming heuristic — a streaming reply visibly blinked out and\n // came back, or vanished entirely after visiting another session.\n const [liveByAgent, setLiveByAgent] = createSignal<Map<string, { text: string; reasoning: string; at: number }>>(new Map());\n const live = () => {\n const id = selected();\n return id ? liveByAgent().get(id) ?? null : null;\n };\n const setLive = (patch: { text: string; reasoning: string } | null | ((cur: { text: string; reasoning: string } | null) => { text: string; reasoning: string } | null)) => {\n const id = selected();\n if (!id) return;\n setLiveByAgent((prev) => {\n const m = new Map(prev);\n const next = typeof patch === \"function\" ? patch(prev.get(id) ?? null) : patch;\n if (next) m.set(id, { ...next, at: Date.now() });\n else m.delete(id);\n return m;\n });\n };\n // markdown-rendered live body, throttled so per-chunk deltas don't re-parse\n // the whole (growing) text on every single WS message\n const [liveText, setLiveText] = createSignal(\"\");\n // when the CURRENT thinking stretch started (reasoning arriving while text\n // is still empty) — powers the 💭 thinking elapsed-time readout\n const [thinkStartedAt, setThinkStartedAt] = createSignal(0);\n const liveStartedAt = () => thinkStartedAt();\n // reasoning renders from the SAME throttle tick — binding it raw re-painted\n // the (often huge) thinking block on every single chunk\n const [liveReasoning, setLiveReasoning] = createSignal(\"\");\n let liveRenderTimer: ReturnType<typeof setTimeout> | undefined;\n createEffect(() => {\n const l = live();\n if (!l) {\n clearTimeout(liveRenderTimer);\n liveRenderTimer = undefined;\n setLiveText(\"\");\n setLiveReasoning(\"\");\n return;\n }\n if (liveRenderTimer) return; // a render is already scheduled\n liveRenderTimer = setTimeout(() => {\n liveRenderTimer = undefined;\n setLiveText(live()?.text ?? \"\");\n setLiveReasoning(live()?.reasoning ?? \"\");\n // adaptive throttle: the WHOLE text re-parses each tick, so stretch the\n // interval as it grows — long streams were re-rendering every 60ms and\n // bogging Firefox down\n }, (live()?.text.length ?? 0) > 20_000 ? 250 : (live()?.text.length ?? 0) > 6_000 ? 120 : 60);\n });\n onCleanup(() => clearTimeout(liveRenderTimer));\n\n // A finish() turn often streams REASONING-ONLY (empty text) — the live\n // buffer then shows a 💭 thinking bubble that outlives the run: nothing\n // else arrives to overwrite it, and the refresh-path cleanup only runs on\n // unrelated events. The agent's status is the ground truth: the moment it\n // leaves running/waiting, any leftover live buffer is dead and must go.\n // (Reload \"fixes\" it today only because the buffer is memory-only.)\n createEffect(() => {\n const st = sel()?.status;\n if (st === \"running\" || st === \"waiting\") return;\n const id = selected();\n if (!id) return;\n setLiveByAgent((prev) => {\n if (!prev.has(id)) return prev;\n const m = new Map(prev);\n m.delete(id);\n return m; // new identity only when something was actually dropped\n });\n setThinkStartedAt(0);\n });\n\n // auto-scroll the feed while live output streams and we're at the bottom.\n // The old version double-checked nearBottom() inside the rAF — but the live\n // bubble has ALREADY grown by then, so the unscrolled distance exceeded the\n // threshold, \"user scrolled away\" was falsely detected, and follow mode\n // jittered on/off with every chunk (worse with a tall composer eating into\n // the viewport). atBottom() is only flipped by real user scrolling, so it is\n // the signal to trust here; nearBottom() would just re-measure mid-growth.\n createEffect(() => {\n // reasoning-only streams (💭 thinking, no text yet) must follow too —\n // keying the effect on liveText() alone left the feed parked while the\n // reasoning details block kept growing\n const txt = liveText();\n const rsn = live()?.reasoning ?? \"\";\n if (!txt && !rsn) return;\n if (!atBottom()) return;\n // wait for the DOM to paint the new text\n requestAnimationFrame(() => {\n if (atBottom()) scrollBottom(true);\n });\n });\n // Browsers pause requestAnimationFrame while a tab is hidden, so scroll\n // follow-ups for updates arriving in a background tab are silently dropped\n // — coming back showed a stale bottom line even though \"follow\" mode was\n // on. Re-sync once on return: jump to the tail iff the reader was still\n // following when they left. Re-armed on every session switch.\n\n // Pending echoes must clear at EXACTLY the moment the ⏳ queue badge clears:\n // both mean \"the model has consumed the message\". The badge counts\n // snapshot().pendingPrompts, which drops the instant drainPendingPrompts()\n // moves the queue into this.messages — so reconcile against that count\n // instead of waiting for every prompt-delivered note to arrive over WS (the\n // badge and the echo visibly disagreed during that gap).\n //\n // Reconcile by IDENTITY, not by count (#9). This used to be slice(0, queued)\n // — \"the newest entries were consumed\" — which only holds when the model\n // drains the queue front-to-back. Cancelling a message in the MIDDLE also\n // lowers the count, and that heuristic then dropped a still-queued echo\n // while keeping the withdrawn one: with [A, B] queued, cancelling A leaves\n // the badge at 1 and slice(0,1) keeps A, discards B. Match on promptId and\n // keep the echoes the live queue can still account for.\n createEffect(() => {\n const queued = sel()?.pendingPrompts ?? 0;\n const liveIds = sel()?.pendingPromptIds;\n setPendingMsgs((list) => {\n if (queued >= list.length) return list;\n\n // #78: match on IDENTITY. The comment here used to claim this and the code\n // did `filter(!!promptId).slice(0, queued)` — which keeps the FIRST N by\n // position, so every time the server's count dipped below the real queue\n // (a mid-queue ✕ cancel, or the brief gap before drainPendingPrompts()\n // settles) the NEWEST still-queued echoes were dropped. Because\n // stillPendingIds is derived from this list, their undelivered log rows\n // then showed up as settled \"sent\" rows — re-introducing the #19\n // cancellation bug the block below exists to prevent.\n //\n // The server now publishes pendingPromptIds, so this can actually match:\n // keep exactly the echoes the live queue can account for.\n if (liveIds?.length) {\n const live = new Set(liveIds);\n const matched = list.filter((p) => p.promptId && live.has(p.promptId));\n if (matched.length) {\n // echoes with no id (predating tracking, or pre-reload) have no\n // identity to match — keep them only if the ids alone cannot account\n // for the queue, so they are never silently dropped\n const unidentifiable = list.filter((p) => !p.promptId);\n return unidentifiable.length ? [...matched, ...unidentifiable].slice(0, queued) : matched;\n }\n }\n // No ids to match on at all (older server, or every echo predates promptId\n // tracking): fall back to keeping the HEAD, which is correct for the plain\n // front-to-back drain case.\n return list.slice(0, queued);\n });\n });\n createEffect(() => {\n const id = selected();\n if (!id) return;\n const onVisible = () => {\n if (document.visibilityState !== \"visible\") return;\n requestAnimationFrame(() => {\n if (nearBottom()) {\n setAtBottom(true);\n setMissed(0);\n scrollBottom(true);\n }\n });\n };\n document.addEventListener(\"visibilitychange\", onVisible);\n onCleanup(() => document.removeEventListener(\"visibilitychange\", onVisible));\n });\n const sel = createMemo(() => agents().find((a) => a.id === selected()));\n /**\n * Is the selected agent doing work that `stop` would stop? (#59)\n *\n * The server is the authority (`Agent.live`), because the client genuinely\n * cannot derive it: a parked tool and queued prompts both leave `status` at\n * \"idle\" while the loop is alive. Falls back to the status check for an older\n * server, where it is at worst the behaviour we had before.\n */\n const isSelLive = (): boolean => {\n const a = sel();\n if (!a) return false;\n return a.live ?? (a.status === \"running\" || a.status === \"waiting\");\n };\n // prompt being edited → edit-prompt fork dialog. SETTLED user prompts only:\n // a pending (queued, not yet delivered) message offers ✕ cancel instead —\n // editing implies the model may have seen it, which is false while queued.\n const [editing, setEditing] = createSignal<{ eventId: string; text: string } | null>(null);\n // ask_user calls that already have their tool_result in the log — used to\n // disable the option buttons (answering twice sent duplicate prompts)\n const answeredIds = createMemo(() => {\n const set = new Set<string>();\n for (const e of events()) {\n if (e.type === \"tool_result\" && e.data?.name === \"ask_user\") set.add(String(e.data.callId));\n }\n return set;\n });\n // optimistic echoes of prompts we just sent but haven't seen in the log yet\n const [pendingMsgs, setPendingMsgs] = createSignal<\n { id: string; text: string; at: number; promptId?: string; sent?: boolean; images?: string[] }[]\n >([]);\n\n /* ---------- notification center (in-app only; push later) ---------- */\n type Notif = {\n id: string;\n agentId: string;\n kind: \"progress\" | \"finish\" | \"question\" | \"error\";\n title: string;\n body: string;\n at: number;\n read: boolean;\n /** source event id — clicking the notification scrolls to this row */\n eventId?: string;\n };\n const [notifs, setNotifs] = createSignal<Notif[]>([]);\n // hide 👻 ghost sessions (workspace directory missing on disk) — a toggle,\n // because they still hold history the operator may need\n const [hideGhosts, setHideGhosts] = createSignal(\n localStorage.getItem(\"teapot.hideGhosts\") === \"1\",\n );\n const [showNotifs, setShowNotifs] = createSignal(false);\n const unreadCount = () => notifs().filter((n) => !n.read).length;\n /** mark all notifications from ONE session read — fired when the operator\n * is following the timeline tail (they are, by definition, looking at the\n * newest content those notifications point to) */\n const markSessionRead = (agentId: string) => {\n setNotifs((list) => {\n let changed = false;\n const next = list.map((n) => {\n if (n.read || n.agentId !== agentId) return n;\n changed = true;\n return { ...n, read: true };\n });\n return changed ? next : list; // avoid identity churn on no-op runs\n });\n };\n /** unread for one agent INCLUDING its whole sub-tree (subs, sub-subs…) */\n const subtreeUnread = (agentId: string): number => {\n let total = notifs().filter((n) => !n.read && n.agentId === agentId).length;\n for (const child of agents()) {\n if (child.parent === agentId)\n total += subtreeUnread(child.id);\n }\n return total;\n };\n let notifSeq = 0;\n const addNotif = (n: Omit<Notif, \"id\" | \"at\" | \"read\">) => {\n setNotifs((list) =>\n [{ ...n, id: `n${++notifSeq}`, at: Date.now(), read: false }, ...list].slice(0, 50),\n );\n };\n /** events worth telling the operator about, even on another session/tab */\n const maybeNotify = (agentId: string, ev: any) => {\n const who = agents().find((a) => a.id === agentId)?.id ?? agentId;\n const eid = typeof ev.id === \"string\" ? ev.id : undefined;\n if (ev.type === \"message\" && ev.data?.final === true) {\n addNotif({\n agentId,\n kind: \"finish\",\n title: `${who} finished`,\n body: String(ev.data.content ?? \"\").slice(0, 300),\n eventId: eid,\n });\n } else if (ev.type === \"question\") {\n addNotif({\n agentId,\n kind: \"question\",\n title: `${who} asks a question`,\n body: String(ev.data.question ?? \"\").slice(0, 300),\n eventId: eid,\n });\n } else if (ev.type === \"error\") {\n addNotif({\n agentId,\n kind: \"error\",\n title: `${who} hit an error`,\n body: String(ev.data.message ?? \"\").slice(0, 300),\n eventId: eid,\n });\n } else if (ev.type === \"progress\") {\n addNotif({\n agentId,\n kind: \"progress\",\n title: `${who}: ${String(ev.data.doing ?? \"progress\")}`.slice(0, 120),\n body: [ev.data.recent && `recent: ${ev.data.recent}`, ev.data.next && `next: ${ev.data.next}`]\n .filter(Boolean)\n .join(\" · \")\n .slice(0, 300),\n eventId: eid,\n });\n }\n };\n /** jump the timeline to a specific event row (used by notification clicks) */\n const jumpToEvent = (eventId: string) => {\n const el = document.querySelector<HTMLElement>(`[data-eid=\"${eventId}\"]`);\n if (el) {\n el.scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n el.classList.add(\"flash-target\");\n setTimeout(() => el.classList.remove(\"flash-target\"), 1600);\n }\n };\n\n // pair tool_call events with their (possibly still missing) results:\n // consumed results are hidden from the feed, calls render as one merged row\n // that shows \"running…\" until its result lands\n const pairInfo = createMemo(() => {\n const resFor = new Map<string, Ev>();\n const consumed = new Set<string>();\n const awaiting = new Map<string, Ev[]>();\n const orphanCalls = new Map<string, Ev>();\n for (const e of events()) {\n if (!FEED_TYPES.has(e.type)) continue;\n if (e.type === \"tool_call\") {\n const q = awaiting.get(e.data.callId) ?? [];\n q.push(e);\n awaiting.set(e.data.callId, q);\n } else if (e.type === \"tool_result\") {\n const call = awaiting.get(e.data.callId)?.shift();\n if (call) {\n resFor.set(call.id, e);\n consumed.add(e.id);\n } else {\n // #54: the call scrolled out of the events window while the command\n // was still running. Without this the result rendered as a bare,\n // anonymous row — and when the window ALSO trimmed the call, the bash\n // row simply vanished, reading as \"it never finished\". Synthesise the\n // missing call so the tool still shows, WITH its output and timing.\n orphanCalls.set(e.id, e);\n }\n }\n }\n return { resFor, consumed, orphanCalls };\n }); // A question is ANSWERED only when a real operator reply arrived AFTER it —\n // a user prompt logged later than the question event. The tool_result that\n // pairs with the question is written immediately when the question is SHOWN\n // (it parks the loop), so its mere existence never means \"answered\".\n /**\n * Questions answered in THIS tab whose prompt event has not reached the log\n * yet (#55).\n *\n * The derived set alone is only correct once the reply is LOGGED. Clicking an\n * option POSTs and shows a toast, so between the click and the bus event\n * landing the buttons stayed enabled — and a second click sent a DUPLICATE\n * prompt. Switching sessions and back \"fixed\" it because that re-read the log.\n *\n * Keyed by callId and looked up per row, so an entry whose question is no\n * longer loaded is inert rather than able to disable an unrelated question.\n * The log stays authoritative: anything answered elsewhere (another tab, a\n * reload, before this session was opened) is derived as before.\n */\n const [locallyAnswered, setLocallyAnswered] = createSignal<Set<string>>(new Set());\n const markAnswered = (callId: string) => {\n if (!callId) return;\n setLocallyAnswered((prev: Set<string>): Set<string> => {\n if (prev.has(callId)) return prev;\n const next: Set<string> = new Set<string>(prev);\n next.add(callId);\n return next;\n });\n };\n /** a session switch must not carry one session's answers into another */\n const clearLocallyAnswered = () => setLocallyAnswered(new Set<string>());\n const answeredQuestionIds = createMemo(() => {\n const set = new Set<string>();\n let lastQuestionAt = -1;\n let lastUserPromptAt = -1;\n for (const e of events()) {\n if (e.type === \"question\") lastQuestionAt = e.seq;\n else if (e.type === \"prompt\" && e.data?.source === \"user\") lastUserPromptAt = e.seq;\n else if (\n e.type === \"system_note\" &&\n (e.data as any)?.event === \"prompt-delivered\"\n )\n lastUserPromptAt = Math.max(lastUserPromptAt, e.seq);\n }\n // any user reply after the latest open question closes ALL earlier\n // questions of this session (the loop resumes on the first reply)\n if (lastQuestionAt >= 0 && lastUserPromptAt > lastQuestionAt) {\n for (const e of events())\n if (e.type === \"question\" && e.seq <= lastUserPromptAt)\n set.add(String((e.data as any)?.callId ?? \"\"));\n }\n // …plus anything answered in this tab whose reply has not been logged yet\n for (const id of locallyAnswered()) set.add(id);\n return set;\n });\n const chatEvents = createMemo(() => {\n const { consumed } = pairInfo();\n // Reasoning-only assistant turns (content empty, only 💭 reasoning) used\n // to render as their own agent bubble between every pair of tool rows,\n // which also broke \"consecutive bash\" grouping. They now ride along with\n // the tool run: a reasoning-only turn is dropped when the nearest visible\n // row before it is a tool event — its thinking belongs to that action.\n const lastVisibleBefore = new Map<string, string>();\n let lastKind = \"\";\n for (const e of events()) {\n (e as Ev & { _prevKind?: string })._prevKind = lastKind;\n if (!FEED_TYPES.has(e.type)) continue;\n const d = e.data ?? {};\n const isCarrier =\n e.type === \"message\" &&\n String(d.content ?? \"\").trim() === \"\" &&\n String(d.reasoning ?? \"\").trim() !== \"\";\n if (!isCarrier) lastKind = e.type === \"tool_result\" ? \"tool\" : e.type;\n }\n const real = events().filter((e) => {\n // `sub` rows are no longer WRITTEN (#63) — a child's activity never\n // belonged in the parent's timeline. But logs written before that still\n // contain them, and silently dropping rows an operator can see on disk is\n // how a log stops being trustworthy. So they are admitted here for\n // rendering: the expansion below tags each with its actor, and the\n // reader sees a child row rather than a row that mysteriously vanished.\n if (e.type === \"sub\") return true;\n if (!FEED_TYPES.has(e.type)) return false;\n // report_progress calls are fully rendered by the progress embed below\n // (the timeline's 📈 row + the right panel's snapshot) — the tool-call\n // row would just repeat the same content a third time\n // report_progress / ask_user calls are fully rendered by their own\n // embeds (📈 progress / ❓ question) — the tool rows would just repeat\n // the same content a second time. ask_user also shows \"answered\"\n // state via its embed, so the raw rows add nothing.\n const metaToolName =\n e.type === \"tool_call\" || e.type === \"tool_result\" ? String(e.data?.name ?? \"\") : \"\";\n if (metaToolName === \"report_progress\") return false;\n if (metaToolName === \"ask_user\") return false;\n // paired tool results live inside their call's merged row\n if (e.type === \"tool_result\") return !consumed.has(e.id);\n // tool-call carrier turns have no visible payload — the ToolRow below\n // already tells that story; an empty agent bubble is just noise\n if (e.type === \"message\") {\n const content = String(e.data?.content ?? \"\");\n // reasoning-only turn right after a tool result: the next tool row's\n // collapsible reasoning covers that thinking; a standalone bubble here\n // broke \"consecutive bash\" grouping (prismrv-root-7fb7533b)\n if (\n content.trim() === \"\" &&\n String(e.data?.reasoning ?? \"\").trim() !== \"\" &&\n (e as Ev & { _prevKind?: string })._prevKind === \"tool\"\n )\n return false;\n // a requested progress report is already shown by its progress embed —\n // the log keeps the message (restores need it) but the feed must not\n if (e.data?.progressEcho) return false;\n // sanitize()'s request-only placeholder leaked into old logs as an\n // \"assistant said (tool call)\" message; the tool rows tell that story\n if (!e.data?.final && content.trim() === \"(tool call)\") return false;\n return (\n content.trim() !== \"\" ||\n String(e.data?.reasoning ?? \"\").trim() !== \"\" ||\n !!e.data?.final\n );\n }\n return true;\n });\n // expand mirrored child activity (\"sub\" events) into normal-looking rows\n // tagged with the acting sub id, so the parent feed shows who did what\n const expanded: Ev[] = [];\n for (const e of real) {\n if (e.type === \"sub\") {\n const d = e.data as { sub?: string; type?: string; data?: any };\n const kind = String(d?.type ?? \"message\");\n if (kind === \"state\") continue; // child state churn is noise up here\n expanded.push({ ...e, type: kind, data: { ...d?.data, actor: d?.sub } });\n } else expanded.push(e);\n }\n // DEDUPE: models often end a report_progress / record_decision turn by\n // repeating the very same content as an ordinary assistant message. When a\n // message follows its embed event (progress/decision) with essentially\n // identical text, drop the message — the embed already shows it (rendered).\n const norm = (s: unknown) => String(s ?? \"\").replace(/\\s+/g, \" \").trim().toLowerCase();\n const deduped: Ev[] = [];\n for (let i = 0; i < expanded.length; i++) {\n const e = expanded[i]!;\n if (\n e.type === \"message\" &&\n e.data?.role === \"assistant\"\n ) {\n const prev = expanded[i - 1];\n const body = norm(e.data.content);\n if (prev?.type === \"progress\") {\n const p = prev.data;\n const same =\n body.includes(norm(p.doing)) ||\n (!!p.recent && body.includes(norm(p.recent)));\n if (same && body.length <= Math.max(200, norm(p.doing).length * 3)) continue;\n }\n if (prev?.type === \"decision\") {\n const d = prev.data;\n // the decision line is the identity — models echo it verbatim or as\n // a heading; rationale alone is too weak a signal to dedupe on\n const dec = norm(d.decision);\n if (dec && body.includes(dec) && body.length <= Math.max(300, dec.length * 3)) continue;\n }\n }\n deduped.push(e);\n }\n // append optimistic echoes. An echo lives from SEND until its text enters\n // an LLM call payload — signalled by the prompt-delivered system_note\n // (same promptId). The LOGGED prompt row appears much earlier (at enqueue\n // time), so \"drop when logged\" made the pending indicator flash for ~120ms\n // and vanish while the message was still queued for the model.\n //\n // The logged prompt row of a NOT-YET-DELIVERED message must NOT render as\n // a settled timeline row: it would show the queued text twice (a \"sent\"\n // row at its log position AND the pending echo at the bottom) and imply\n // the model already saw it. Until prompt-delivered arrives, the log row is\n // hidden and the pending echo alone represents the message.\n const deliveredIds = new Set<string>();\n const loggedUserPrompts = new Set<string>();\n const deliveredNotes = new Map<string, number>(); // promptId → seq of its prompt-delivered note\n // promptId → seq of its prompt-cancelled note. A withdrawn message is\n // logged at ENQUEUE time but never delivered, so once the echo is dropped\n // its prompt row comes back as an ordinary \"sent\" message — implying the\n // model saw something it never received (#19).\n const cancelledNotes = new Map<string, number>();\n for (const e of deduped) {\n const pid = (e.data as any)?.promptId;\n if (!pid) continue;\n if (e.type === \"prompt\" && e.data?.source === \"user\") loggedUserPrompts.add(String(pid));\n if (e.type === \"system_note\" && (e.data as any)?.event === \"prompt-delivered\") {\n deliveredIds.add(String(pid));\n deliveredNotes.set(String(pid), e.seq);\n }\n if (e.type === \"system_note\" && (e.data as any)?.event === \"prompt-cancelled\")\n cancelledNotes.set(String(pid), e.seq);\n }\n const deliveredSeq = new Map<string, number>();\n const stillPendingIds = new Set<string>();\n for (const p of pendingMsgs()) {\n if (p.promptId && !deliveredIds.has(p.promptId)) stillPendingIds.add(p.promptId);\n }\n const visible = deduped.filter((e) => {\n if (e.type !== \"prompt\" || e.data?.source !== \"user\") return true;\n const pid = String((e.data as any)?.promptId ?? \"\");\n return pid === \"\" || !stillPendingIds.has(pid); // hide undelivered log rows\n });\n // A delivered user prompt's log row was written at ENQUEUE time — its seq\n // sits wherever the operator typed it, NOT where the model actually\n // consumed it. Re-sequence it to its prompt-delivered note's position so\n // the timeline reads in true context order: the message lands between the\n // agent output that came before the delivery and the reply after it.\n for (let i = 0; i < visible.length; i++) {\n const e = visible[i]!;\n if (e.type !== \"prompt\" || e.data?.source !== \"user\") continue;\n const pid = String((e.data as any)?.promptId ?? \"\");\n // A withdrawn row sorts at the position of its cancellation and carries\n // a marker, so it renders as withdrawn rather than as a sent message\n const cancelSeq = cancelledNotes.get(pid);\n if (cancelSeq !== undefined && e.data) (e.data as any).cancelled = true;\n // move it down to whichever note comes LAST (delivery or cancellation) —\n // that is where the model actually consumed (or dropped) it (#37)\n visible[i] = resequenceToDelivery(e, Math.max(deliveredNotes.get(pid) ?? 0, cancelSeq ?? 0) || undefined);\n }\n const pend = pendingMsgs().filter((p) => {\n if (!p.promptId) return true;\n // delivered AND its log row exists → the log row owns the display now\n if (deliveredIds.has(p.promptId) && loggedUserPrompts.has(p.promptId)) return false;\n return true;\n });\n const echoes: Ev[] = pend.map((p) => echoEv(p));\n // Echo ordering: all echoes sort BELOW every settled row (their seq sits\n // above the log's max seq), and multiple pending messages keep their own\n // send order — first-sent highest, so the block reads top-down in the\n // order the operator typed them.\n return placeEchoesBelow(visible, echoes);\n });\n // Reference-stable echo rows: chatEvents re-runs on EVERY event burst, and\n // rebuilding the echo objects each time handed Solid's <For> a brand-new\n // reference — remounting the pending row (and, with the tail-anchor race,\n // letting it flash to the top of the viewport). Cache by id; only the\n // pending→sent flip builds a new object.\n const echoCache = new Map<string, Ev>();\n function echoEv(p: { id: string; text: string; at: number; promptId?: string; sent?: boolean; images?: string[] }): Ev {\n const key = `${p.id}:${p.sent ? \"s\" : \"p\"}`;\n const hit = echoCache.get(key);\n if (hit) return hit;\n if (echoCache.size > 64) echoCache.clear();\n const ev: Ev = {\n id: p.id,\n // seq is assigned per-render in chatEvents (below every settled row,\n // in send order) — the sentinel here is just a stable placeholder\n seq: Number.MAX_SAFE_INTEGER,\n ts: new Date(p.at).toISOString(),\n session: sel()?.session ?? \"\",\n branch: sel()?.branch ?? \"br0\",\n parent: null,\n type: \"prompt\",\n data: {\n source: \"user\",\n text: p.text,\n pending: !p.sent,\n ...(p.images?.length ? { images: p.images } : {}),\n ...(p.promptId ? { promptId: p.promptId } : {}),\n },\n };\n echoCache.set(key, ev);\n return ev;\n }\n const loadCfg = () => api(\"/api/config\").then(setCfg).catch(() => {});\n // password auth: any 401 from /api/* flips this on → login overlay\n const [authLocked, setAuthLocked] = createSignal(false);\n onMount(() => {\n const onUnauthorized = () => setAuthLocked(true);\n window.addEventListener(\"teapot:unauthorized\", onUnauthorized);\n onCleanup(() => window.removeEventListener(\"teapot:unauthorized\", onUnauthorized));\n });\n\n // operator task list draft — seeded per selected agent; while the user\n // hasn't touched it, it follows server updates (the agent edits it too)\n const [todoDraft, setTodoDraft] = createSignal(\"\");\n // false = rendered checklist (default), true = raw markdown editor\n const [todoViewMode, setTodoViewMode] = createSignal(false);\n const [todoDirty, setTodoDirty] = createSignal(false);\n let todoSeededFor = \"\";\n createEffect(() => {\n const id = selected();\n const serverTodo = agents().find((a) => a.id === id)?.todo ?? \"\";\n if (id && id !== todoSeededFor) {\n todoSeededFor = id;\n setTodoDirty(false);\n setTodoDraft(serverTodo);\n } else if (id && !todoDirty()) {\n setTodoDraft(serverTodo); // stay current with agent-side set_todo edits\n }\n });\n const saveTodo = async () => {\n const notify = (document.getElementById(\"todo-notify\") as HTMLInputElement)?.checked ?? true;\n if (!selected()) return;\n try {\n await api(`/api/agents/${selected()}/todo`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ text: todoDraft(), notify }),\n });\n setTodoDirty(false);\n flashHint(`tasks saved${notify && todoDraft().trim() ? \" & notification queued\" : \"\"}`);\n refreshAgents();\n } catch (ex) {\n flashHint(`save failed: ${(ex as Error).message}`);\n }\n };\n\n /** count markdown checkboxes (\"- [ ]\" / \"- [x]\") in the draft for the progress pill */\n const todoStats = createMemo(() => {\n let total = 0;\n let done = 0;\n for (const line of todoDraft().split(\"\\n\")) {\n const m = line.match(/^\\s*[-*+] \\[([ xX])\\]/);\n if (!m) continue;\n total++;\n if (m[1]!.toLowerCase() === \"x\") done++;\n }\n return { total, done };\n });\n\n const refreshAgents = () =>\n api(\"/api/agents\")\n .then((d) => {\n let agentSetChanged = false;\n setAgents((prev) => {\n // Reference-stabilize snapshots: the server re-serializes every\n // agent on each poll, and new object identities made Solid re-run\n // EVERY expression bound to sel()*.x (the \"whole panel flashes\"\n // effect). Reuse the previous object when the snapshot is equal,\n // so unchanged panels skip their fine-grained updates entirely.\n const prevById = new Map(prev.map((a) => [a.id, a]));\n if (prev.length !== (d.agents ?? []).length) agentSetChanged = true;\n return (d.agents ?? []).map((a: Agent) => {\n const p = prevById.get(a.id);\n if (!p) agentSetChanged = true;\n return p && JSON.stringify(p) === JSON.stringify(a) ? p : a;\n });\n });\n // the session index is ONE request for ALL agents — only needed when\n // the agent set actually changes, not on every poll\n if (agentSetChanged) void refreshSessionIndex();\n })\n .catch(() => {});\n const refreshMetrics = () => api(\"/api/metrics\").then(setMetrics).catch(() => {});\n // scheduled (cron) tasks — shown in the right panel so \"what runs when\" is legible\n const [tasks, setTasks] = createSignal<any[]>([]);\n const loadTasks = () => api(\"/api/tasks\").then((d) => setTasks(d.tasks)).catch(() => {});\n const agentTasks = (id: string | null) => tasks().filter((t) => t.agent === id);\n\n // sidebar tree: subs hang under their parent, collapsible per parent\n const [collapsedSubs, setCollapsedSubs] = createSignal<Set<string>>((() => {\n try {\n return new Set(JSON.parse(localStorage.getItem(\"teapot.collapsed\") ?? \"[]\"));\n } catch { return new Set(); }\n })());\n const toggleCollapse = (id: string) => {\n const next = new Set(collapsedSubs());\n if (next.has(id)) next.delete(id);\n else next.add(id);\n setCollapsedSubs(next);\n localStorage.setItem(\"teapot.collapsed\", JSON.stringify([...next]));\n };\n // The tree and grouping rules live in ./sidebar-tree so they can be unit\n // tested without a DOM (happy-dom does no layout). These wrappers only feed\n // the pure functions the live signal values.\n\n /**\n * Sidebar rows, annotated with where the WORKSPACE changes (#18).\n *\n * The tree groups by parent/child agent only, so chats belonging to entirely\n * unrelated projects end up interleaved in one undifferentiated list — the\n * \"which chat was that?\" problem. Every agent already carries its workspace,\n * so grouping needs no new concept at all; a header row marks each project.\n * Sub-agents inherit their parent's workspace so a subtree stays together.\n */\n const workspaceOf = (id: string): string => workspaceOfPure(agents(), id);\n /** the `chat:<id>` group this agent collapses under — its top-level ancestor,\n * so a sub-agent shares its parent's group rather than becoming its own */\n const chatGroupKey = (a: Agent): string => chatGroupKeyOf(agents(), a);\n\n /** collapsed workspace groups in the sidebar (#18) — persisted, like the\n * sub-agent collapse state above, so a reload keeps the operator's grouping */\n const [wsCollapsed, setWsCollapsed] = createSignal<Set<string>>((() => {\n try {\n const raw = JSON.parse(localStorage.getItem(\"teapot.wsCollapsed\") ?? \"[]\");\n return new Set<string>(Array.isArray(raw) ? raw.filter((x) => typeof x === \"string\") : []);\n } catch {\n return new Set<string>();\n }\n })());\n\n // A top-level chat is a collapse GROUP too: its row is the group, and its\n // sub-agents hang beneath it. Collapsing one hides it and its whole subtree\n // without touching its siblings in the same directory — the ability #18\n // wanted, without the extra header row it used to require.\n const chatCollapsed = createMemo<Set<string>>(() => {\n const out = new Set<string>();\n for (const k of wsCollapsed()) if (k.startsWith(\"chat:\")) out.add(k);\n return out;\n });\n\n const treeRows = createMemo(() =>\n // 👻 toggle: drop ghost sessions (workspace missing on disk) from the\n // sidebar tree entirely — they are noise once you know about them\n treeRowsOf(agents(), collapsedSubs(), hideGhosts(), chatCollapsed()),\n );\n /**\n * Toggle a group header.\n *\n * `isCollapsed` is the state the header is DISPLAYING, not a re-derivation of\n * the stored set — those can disagree after #58, and when they do, keying the\n * decision off the stored set means clicking a header that plainly reads\n * \"collapsed\" takes the expand branch that looks for a key it does not have,\n * and instead COLLAPSES again. `alsoClear` is the key actually holding the\n * group hidden (a legacy `chat:<id>`), which no other control can remove.\n */\n const toggleWsGroup = (\n groupKey: string,\n label: string,\n isCollapsed: boolean,\n alsoClear?: string,\n ) => {\n const next = new Set(wsCollapsed());\n if (isCollapsed) {\n // expanding: drop every key that could be hiding this group\n next.delete(groupKey);\n if (alsoClear) next.delete(alsoClear);\n } else {\n next.add(groupKey);\n if (alsoClear) next.delete(alsoClear);\n // Collapsing hides the chat(s) in the group — including the one the\n // operator is currently reading. That reads as \"my session vanished\", so\n // say what happened and how to get back. The open conversation stays\n // loaded and keeps running either way; only its sidebar row goes away.\n const open = selected();\n if (open && (groupKey === `chat:${open}` || chatGroupKey(agents().find((x) => x.id === open)!) === groupKey))\n flashHint(`hid ${label} — click the header to show it`);\n }\n setWsCollapsed(next);\n try {\n localStorage.setItem(\"teapot.wsCollapsed\", JSON.stringify([...next]));\n } catch {\n /* private mode / quota — the toggle still works for this session */\n }\n };\n /** last path segment, for a compact workspace header */\n const basenameOf = (p: string): string => p.replace(/\\/+$/, \"\").split(/[/\\\\]/).pop() || p;\n /** \"1 chat\" / \"3 chats\" — a header saying \"1 chats hidden\" looks broken */\n const wsCountLabel = (ws: string): string => {\n const n = wsChatCounts().get(ws) ?? 0;\n return `${n} chat${n === 1 ? \"\" : \"s\"}`;\n };\n /**\n * How many TOP-LEVEL chats share each workspace.\n *\n * Several separate top-level chats commonly point at ONE working directory,\n * and grouping by path alone merged them into one anonymous bucket — the\n * exact \"which chat was that?\" question the grouping was meant to answer,\n * answered worst where it mattered most. The header now carries the count so\n * a shared directory reads as \"N chats\" instead of looking like one.\n */\n const wsChatCounts = createMemo(() => wsChatCountsOf(agents()));\n /**\n * Sidebar rows with TWO header levels (#18).\n *\n * Level 1 — WORKSPACE: a header wherever the working directory changes, the\n * grouping #18 introduced so unrelated projects stop interleaving.\n *\n * Level 2 — CHAT: each TOP-LEVEL chat is its own group. Grouping by\n * workspace path alone gave every chat in a directory ONE identity — one\n * header, one collapse toggle, one row to hide — but \"some top-level chat\n * dirs exist in the same working directory and are separate\" means they must\n * be independently addressable. A count badge said \"there are 2\" without\n * giving them separate identities; nesting them under the directory fixes\n * the identity while keeping the project grouping meaningful.\n *\n * Sub-agents inherit their parent's chat group, so a subtree collapses as one.\n */\n // The row/grouping rules — including the #58 \"no chat header for a solo\n // chat\" decision — live in ./sidebar-tree, where they are unit-tested.\n const sidebarRows = createMemo(() =>\n sidebarRowsOf(agents(), treeRows(), wsCollapsed()),\n );\n\n /**\n * Events requested per page.\n *\n * #54: the timeline pairs a tool_call with its tool_result by walking the\n * events it holds, so a window that can contain a result WITHOUT its call\n * strands the bash row at \"running…\" forever. The server default was raised\n * to 2000 for exactly this, but the UI passed an explicit `limit=300` and\n * therefore never benefited — 300 is small enough that a command streaming\n * one event per delta evicts its own call.\n *\n * A page is cheap (a tail read) and the clamp is server-side, so ask for the\n * size the pairing actually needs rather than a round number that undoes the\n * fix.\n */\n const FEED_PAGE = 2000;\n\n // null = show everything; otherwise only the chosen branch's events\n const [branchFilter, setBranchFilter] = createSignal<string | null>(null);\n // Reference-stabilize events across fetches: logged events are immutable,\n // so reuse the previous object when the id already exists. Without this,\n // every refresh produced all-new references and Solid's <For> tore down\n // and rebuilt EVERY timeline row (markdown re-parse included) — heavy on\n // long sessions and it collapsed open <details>.\n const evCache = new Map<string, Ev>();\n // evCache keys are scoped per session: raw ids (e1, e2…) are only unique\n // WITHIN one log, so a cross-session key collision made stabilize() return\n // another session's row — the \"teapot-b3c520e0 shows teapot-3's timeline\" bug.\n function cacheKey(ev: { id: string }): string {\n // scoped by the internal session id (the log), NOT the agent id — agent\n // ids are recycled across incarnations, so two incarnations of one agent\n // must not share cache entries either\n return `${timelineId() || (selected() ?? \"?\")}:${ev.id}`;\n }\n function stabilize(list: Ev[]): Ev[] {\n const out: Ev[] = Array.from({ length: list.length });\n for (let i = 0; i < list.length; i++) {\n const e = list[i]!;\n const k = cacheKey(e);\n const known = evCache.get(k);\n out[i] = known ?? e;\n if (!known) {\n evCache.set(k, e);\n if (evCache.size > 6000) {\n const oldest = evCache.keys().next().value;\n if (oldest !== undefined) evCache.delete(oldest);\n }\n }\n }\n return out;\n }\n\n // upward pagination: prepend the page before the oldest loaded id\n const [loadingOlder, setLoadingOlder] = createSignal(false);\n const [olderDone, setOlderDone] = createSignal(false);\n // Generation token guarding every async timeline fetch. Switching sessions\n // bumps it; responses that come back after a switch belong to a dead view\n // and must NOT touch events/scroll (they used to overwrite the freshly\n // loaded timeline with the PREVIOUS session's rows).\n let feedGeneration = 0;\n // /branches is fork-only data: skip refetching within one generation\n let lastBranchesGen = -1;\n\n /** merge fetched page into state by id, seq-ascending, refs stabilized */\n function mergeEvents(incoming: Ev[]): void {\n setEvents((prev) => {\n const map = new Map<string, Ev>();\n for (const e of prev) map.set(e.id, e);\n for (const e of stabilize(incoming)) if (!map.has(e.id)) map.set(e.id, e);\n return [...map.values()].sort((a, b) => a.seq - b.seq);\n });\n }\n\n // After the initial page lands, the feed may not even fill the viewport\n // (a fresh session shows only the last ~dozen rows). scrollTop can never\n // reach the \"at top\" trigger then, so older pages were unreachable. Keep\n // pulling until the feed overflows or history is exhausted.\n async function backfillUntilScrollable(): Promise<void> {\n const id = selected();\n if (!id || olderDone() || loadingOlder()) return;\n // EVERYTHING is already loaded → no older history exists at all. Exit\n // before touching the server (a fresh session with a short log lands\n // here immediately — no probing, no loop).\n if (events().length >= eventsTotal()) {\n setOlderDone(true);\n return;\n }\n // Only trust measurements from a LAID-OUT feed. Hidden/unmounted feeds\n // report scrollHeight 0 and would look \"never full\", causing pointless\n // page pulls; if we cannot measure, we do not guess.\n const measurable = () => {\n const f = feedEl();\n return f && f.clientHeight > 0 ? f : null;\n };\n let guard = 0;\n while (guard++ < 20 && !olderDone() && selected() === id) {\n const f = measurable();\n if (f && f.scrollHeight > f.clientHeight + 40) return; // scrollable now\n if (events().length >= eventsTotal()) {\n setOlderDone(true);\n return;\n }\n const before = events().length;\n await loadOlder();\n // empty page (or fully deduped) means history is exhausted — loadOlder\n // has set olderDone itself in the empty-page case\n if (events().length === before) return;\n // prepending grows the content ABOVE the viewport; keep the reader\n // pinned to the tail while we backfill, or follow mode silently died\n // here and \"new messages appear at the top of my view\" was the result\n if (atBottom() && selected() === id) scrollBottom(true);\n }\n }\n\n async function loadOlder(): Promise<void> {\n const id = selected();\n const oldest = events()[0];\n if (!id || !oldest || loadingOlder() || olderDone()) return;\n setLoadingOlder(true);\n try {\n const f = feedEl();\n const prevH = f?.scrollHeight ?? 0;\n const prevTop = f?.scrollTop ?? 0;\n const bf = branchFilter();\n const tid = timelineId();\n const sessQ = tid && tid !== id ? `&session=${encodeURIComponent(tid)}` : \"\";\n const res = await api(\n // #77: `lineage=true` here too. The tail fetch asks for it, so a filtered\n // fork's first page shows the INHERITED history; omitting it on the\n // older-pages fetch made scrolling up switch to strict filtering, and the\n // parent's pre-fork rows vanished from the top — reading as data loss,\n // which is exactly what #38 was about.\n `/api/agents/${id}/events?limit=${FEED_PAGE}&before=${encodeURIComponent(oldest.id)}${sessQ}${bf ? `&branch=${encodeURIComponent(bf)}&lineage=true` : \"\"}`,\n );\n const page: Ev[] = res.events ?? [];\n if (page.length === 0) { setOlderDone(true); return; }\n // still the same session AND still anchored on the same oldest row?\n // (a plain selected() check can't be fooled by same-session tail\n // refreshes, which never touch the head of the list)\n if (selected() !== id || events()[0]?.id !== oldest.id) return;\n mergeEvents(page);\n // keep the viewport anchored to the same content after prepending\n requestAnimationFrame(() => {\n if (selected() === id) {\n const el = feedEl();\n if (el) el.scrollTop = prevTop + (el.scrollHeight - prevH);\n }\n });\n } catch { /* transient — user can scroll up again */ }\n finally { setLoadingOlder(false); }\n }\n\n async function loadEvents(id: string, sessionId?: string) {\n // DON'T bump the generation here. Bumping made two racing loads for the\n // SAME session invalidate each other: select() → loadEvents (gen N) and a\n // WS-triggered refresh (gen N+1) could resolve in either order, and the\n // loser was dropped — if the WS one landed first, the select's own fetch\n // was discarded AFTER the session had been cleared, leaving an EMPTY\n // timeline until some later event happened to trigger another refresh.\n // The generation only needs to move on actual session SWITCHES.\n const genAtStart = feedGeneration;\n const tid = sessionId ?? timelineId() ?? \"\";\n try {\n const bf = branchFilter();\n // /branches only changes on fork — fetch it on session switch, not on\n // every tail refresh (each call re-reads the log server-side otherwise)\n const needsBranches = genAtStart !== lastBranchesGen || !branches().length;\n const sessQ = tid && tid !== id ? `&session=${encodeURIComponent(tid)}` : \"\";\n const [ev, br, sk] = await Promise.all([\n // #38: `lineage=true` so a filtered fork shows the history it inherited,\n // matching the context the agent actually reasons over. Filtering by\n // strict branch id showed less than the model sees, which read as data\n // loss even though nothing was missing from the log.\n api(`/api/agents/${id}/events?limit=${FEED_PAGE}${sessQ}${bf ? `&branch=${encodeURIComponent(bf)}&lineage=true` : \"\"}`),\n needsBranches\n ? api(`/api/agents/${id}/branches`)\n : Promise.resolve({ branches: branches() }),\n api(`/api/agents/${id}/skills`).catch(() => ({ skills: [] })),\n ]);\n if (needsBranches) lastBranchesGen = genAtStart;\n // stale iff a DIFFERENT session is now selected or a switch happened\n // while we were in flight — same-session refreshes must not drop us\n if (genAtStart !== feedGeneration || selected() !== id) return; // stale view\n setEvents((prev) => {\n // tail refresh: union-merge so prepended older pages survive, and\n // stabilize() keeps unchanged rows reference-identical (no re-mounts)\n const map = new Map<string, Ev>();\n for (const e of prev) map.set(e.id, e);\n for (const e of stabilize(ev.events)) map.set(e.id, e);\n return [...map.values()].sort((a, b) => a.seq - b.seq);\n });\n setEventsTotal(ev.total ?? ev.events.length);\n setBranches(br.branches);\n setAgentSkills(sk.skills ?? []);\n } catch { /* agent may be gone */ }\n }\n\n function feedEl() { return document.querySelector(\".feed\"); }\n /** slack for \"am I at the bottom\" — must cover the composer's own growth:\n * a multi-line input (up to 160px) shrinks the feed viewport between frames,\n * and a fixed 80px threshold reads that as \"user scrolled away\" mid-stream */\n function bottomSlack() {\n // tight: the old 80px+ made \"at the bottom\" true while the reader was\n // still ~20-80px above it, so follow mode tugged on manual scrolling.\n const c = document.querySelector<HTMLTextAreaElement>(\".composer textarea\");\n return 24 + Math.min(Math.max((c?.scrollHeight ?? 0) - (c?.clientHeight ?? 0), 0), 160);\n }\n function nearBottom() {\n const f = feedEl();\n if (!f) return true;\n return f.scrollHeight - f.scrollTop - f.clientHeight < bottomSlack();\n }\n function scrollBottom(force = false) {\n const f = feedEl();\n if (f && (force || atBottom())) {\n f.scrollTop = f.scrollHeight;\n setMissed(0);\n }\n }\n\n // Per-session timeline snapshots: switching back to a recently viewed\n // session restores its last-known rows INSTANTLY, then loadEvents refreshes\n // in the background. Without this, every switch cleared the feed and\n // re-fetched (a visible blank flash + full round trip).\n const timelineCache = new Map<string, { events: Ev[]; total: number; at: number }>();\n const TIMELINE_CACHE_MAX = 6;\n\n /**\n * The session an agent should open: the one the server says it is BOUND to,\n * falling back to the newest on disk.\n *\n * Taking the newest by mtime is what resurrected a deleted/old session (#39):\n * the list is a directory scan, so a stale dir with a newer chat.jsonl won\n * and the operator's view and the agent's actual timeline disagreed.\n */\n function latestSessionOf(agentId: string, requested?: string | null): string | null {\n // #58: an EXPLICIT request (a deep link, browser Back/Forward, or the\n // session switcher) is authoritative — it used to be discarded here, so\n // /session/<id> silently opened whatever session was bound and then\n // REWROTE the URL to match. Honoured only when this agent really owns the\n // session, so a crafted URL cannot cross into another agent's timeline.\n if (requested && sessionsByAgent().get(agentId)?.includes(requested)) return requested;\n const bound = agents().find((a) => a.id === agentId)?.session;\n if (bound && sessionsByAgent().get(agentId)?.includes(bound)) return bound;\n return sessionsByAgent().get(agentId)?.[0] ?? null;\n }\n\n async function select(id: string, push = true, forceSession?: string | null) {\n const prevId = selected();\n const prevTid = timelineId();\n const prevEvents = events();\n const prevTotal = eventsTotal();\n // bump FIRST so any in-flight fetch for the previous session lands on a\n // dead generation and is dropped instead of overwriting this one's rows\n feedGeneration++;\n // resolve the agent's CURRENT internal session id — the timeline handle.\n // Falls back to the agent id for brand-new agents whose first session dir\n // isn't listed yet (the events fetch still works: same log).\n if (!sessionsByAgent().size) void refreshSessionIndex(); // first select before index landed\n let tid = latestSessionOf(id, forceSession) ?? id;\n if (prevId !== id || tid !== prevTid) {\n // remember what the outgoing session looked like so returning is instant\n if (prevTid && prevEvents.length) {\n timelineCache.set(prevTid, { events: prevEvents, total: prevTotal, at: Date.now() });\n if (timelineCache.size > TIMELINE_CACHE_MAX) {\n const oldest = [...timelineCache.entries()].sort((x, y) => x[1].at - y[1].at)[0];\n if (oldest) timelineCache.delete(oldest[0]);\n }\n }\n // drop the previous session's timeline immediately — otherwise it stays\n // visible (or bleeds into the merge) until this session's fetch lands,\n // which read as \"the old conversation showing up in the new session\"\n setEvents([]);\n evCache.clear(); // event ids are per-log (e1, e2…) — never share across sessions\n // #55: the optimistic answer set is per-SESSION. Carrying it across would\n // disable a question that merely reuses a callId, or one the operator\n // has not actually answered in this session.\n clearLocallyAnswered();\n // NOTE: live buffers are per-agent — leaving a session must NOT drop its\n // streaming bubble; the map keeps every session's stream independently.\n setCompacting(null);\n setMissed(0);\n // follow mode must NOT leak across sessions: leaving it false showed\n // \"jump to present\" on a brand-new/empty timeline whose feed had never\n // been scrolled (the pill only disappears once a real scroll lands)\n setAtBottom(true);\n userScrolledUp = false;\n lastScrollGap = undefined;\n }\n setSelected(id);\n setTimelineId(tid);\n saveDraft(drafts.get(id) ?? \"\"); // restore THIS session's unsent draft\n setBranchFilter(null);\n setOlderDone(false);\n setLoadingOlder(false);\n setPendingMsgs([]);\n localStorage.setItem(\"teapot.session\", id);\n navigate(tid, push); // URL carries the internal session id, not the agent id\n // HYDRATE from cache first: rows paint immediately (no blank flash), and\n // loadEvents below merges in whatever happened since. Cached events are\n // re-stabilized into evCache so reference identity survives the switch.\n const cached = timelineCache.get(tid);\n if (cached?.events.length) {\n // stabilize() re-registers every row under THIS session's scoped keys\n stabilize(cached.events);\n setEvents(stabilize(cached.events));\n setEventsTotal(cached.total);\n requestAnimationFrame(() => {\n if (selected() === id) scrollBottom(true);\n });\n }\n // lazy sessions sit in \"stopped\" until touched — clicking loads them\n api(`/api/agents/${id}/load`, { method: \"POST\" }).then(refreshAgents).catch(() => {});\n await loadEvents(id, tid);\n if (selected() !== id) return; // another switch won while we were loading\n // the freshly fetched snapshot is authoritative: a compaction may be\n // mid-flight on this session (missed bus events while another tab/agent\n // was selected) — seed the banner from ctx.compacting\n setCompacting(\n sel()?.ctx?.compacting ? { phase: String(sel()!.ctx!.compacting) } : null,\n );\n requestAnimationFrame(() => {\n if (selected() === id) scrollBottom(true);\n });\n // the first page may not fill the viewport — pull older pages until it\n // does (or history runs out), so infinite scroll is always reachable\n void backfillUntilScrollable();\n }\n\n /* ---------- realtime over WebSocket (auto-reconnect) ---------- */\n const [connected, setConnected] = createSignal(false);\n let ws: WebSocket | null = null;\n let timer: ReturnType<typeof setTimeout> | null = null;\n onCleanup(() => ws?.close());\n let pendingRefresh = false;\n // the visibilitychange listener is registered ONCE below (outside\n // connectWs) — a reconnect used to add another copy each time, leaking\n // closures and timers with every reconnect cycle\n let onTabVisible: (() => void) | null = null;\n document.addEventListener(\"visibilitychange\", () => onTabVisible?.());\n onCleanup(() => { onTabVisible = null; });\n function connectWs() {\n const proto = location.protocol === \"https:\" ? \"wss://\" : \"ws://\";\n ws = new WebSocket(`${proto}${location.host}/api/ws${wsTokenQuery()}`);\n ws.onopen = () => setConnected(true);\n ws.onclose = () => {\n setConnected(false);\n setTimeout(connectWs, 1500); // reconnect with a fixed short backoff\n };\n ws.onerror = () => ws?.close();\n // event types that don't change the feed — refreshing on every one of\n // these would hammer /events several times per turn for nothing\n const FEED_IRRELEVANT = new Set([\"state\", \"usage\", \"session_start\"]);\n // (live buffers are keyed per agent in liveByAgent — see the App body)\n ws.onmessage = (m) => {\n const msg = JSON.parse(m.data);\n if (msg.kind === \"ping\" || msg.kind === \"pong\") return;\n if (msg.kind === \"event\" && isTurnBoundary(msg.event)) {\n // TURN BOUNDARY (#40). The agent's `status` does not change between\n // tool calls inside one round, so a completed reply's live buffer was\n // never cleared: the feed refresh below only drops it once a persisted\n // assistant message matches its text, and its `status !== \"running\"`\n // short-circuit kept it alive meanwhile. The previous turn's text then\n // kept rendering under the streaming…/writing… chrome — reported as\n // \"agent2 shows agent1's message, with a writing prompt attached\".\n //\n // The server logs one \"llm turn start\" state event per turn (with an\n // incrementing `turn`), which is the only reliable boundary signal. The\n // empty llm-delta the server sends before each call is NOT usable: it\n // fires on every RETRY attempt too, so clearing on it would flash the\n // bubble away mid-reply.\n setLiveByAgent((prev) => clearLive(prev, msg.agentId));\n return; // the feed refresh below handles the actual row\n }\n if (msg.kind === \"llm-delta\") {\n // update THIS agent's buffer only — other sessions keep streaming in\n // the background and their bubble must survive session switches\n setLiveByAgent((prev) => applyDelta(prev, msg.agentId, msg));\n // thinking-timer bookkeeping (selected session only): start the clock\n // when reasoning arrives with no text yet; reset once real text flows\n if (msg.agentId === selected()) {\n const r = String(msg.reasoning ?? \"\");\n const t = String(msg.text ?? \"\");\n if (r && !t) {\n if (!thinkStartedAt()) setThinkStartedAt(Date.now());\n } else if (t || (!r && thinkStartedAt())) {\n setThinkStartedAt(0);\n }\n }\n return;\n }\n if (msg.kind === \"compaction-progress\") {\n if (msg.agentId !== selected()) return;\n if (msg.phase === \"done\") setCompacting(null);\n else setCompacting({ phase: msg.phase, summarized: msg.summarized });\n // the phase banner rides on top of the feed — no refresh needed until\n // the compaction event itself lands\n return;\n }\n // agent-update now carries the fresh snapshot: apply it directly —\n // no GET /api/agents round-trip per event\n if (msg.kind === \"agent-update\" && msg.snapshot) {\n setAgents((prev) => {\n const i = prev.findIndex((a) => a.id === msg.snapshot.id);\n const next = msg.snapshot;\n if (i === -1) return [...prev, next];\n // content-equal → keep the OLD object: a new identity for unchanged\n // data re-ran every expression bound to that agent and was the last\n // source of the rare right-panel flash\n const cur = prev[i]!;\n const same =\n JSON.stringify(cur) === JSON.stringify(next);\n if (same) return prev;\n return prev.map((a, j) => (j === i ? next : a));\n });\n return; // snapshot IS the update; no feed refresh needed for it alone\n }\n if (msg.kind === \"event\") {\n const et = msg.event?.type;\n const ed = msg.event?.data ?? {};\n // a prompt-delivered note means the text ENTERED an LLM call payload —\n // flip the matching pending echo to \"sent\"; a prompt-cancelled note\n // drops the echo. BOTH fall through so the feed refresh below picks up\n // the logged prompt row in the same pass (the old early-returns made\n // the \"sent ✓\" echo linger until some unrelated event refreshed).\n if (et === \"system_note\" && ed.event === \"prompt-delivered\" && msg.agentId === selected()) {\n // delivery = the message now belongs to the log row. REMOVE the echo\n // from the list (the display filter alone kept it forever, and any\n // filter regression resurfaced it as a duplicate row).\n setPendingMsgs((list) => list.filter((p) => p.promptId !== ed.promptId));\n } else if (et === \"system_note\" && ed.event === \"prompt-cancelled\" && msg.agentId === selected()) {\n setPendingMsgs((list) => list.filter((p) => p.promptId !== ed.promptId));\n }\n if (FEED_IRRELEVANT.has(et) && !NOTE_FEED_TYPES.has(et)) return;\n // notify the operator about notable moments from ANY session — that's\n // the point of the notification center (progress / finish / question /\n // error), even when the timeline isn't being watched\n maybeNotify(msg.agentId, msg.event);\n // only the affected session's feed needs reloading — other sessions'\n // timelines are fetched on switch, not eagerly\n if (msg.event?.agent !== selected()) return;\n }\n // hidden tab: defer feed work until the tab is visible again — layout\n // is paused anyway, so fetching + re-rendering now is pure waste. The\n // single shared timer collapses the backlog into ONE refresh on return.\n if (document.visibilityState === \"hidden\") {\n pendingRefresh = true;\n return;\n }\n if (timer) return;\n // tool results land here one by one; a 400ms debounce made each bash\n // completion feel lost (\"switch away and back shows it\") — the fetch\n // itself is mtime-cached and cheap, so tighten the cadence instead\n timer = setTimeout(runFeedRefresh, 120);\n };\n pendingRefresh = false;\n const runFeedRefresh = async () => {\n timer = null;\n await refreshAgents();\n await refreshMetrics();\n if (selected()) {\n // compare last event ID, not array length: the /events window is\n // capped at 300, so long sessions have a CONSTANT length and a\n // length check never noticed new events (leaving the live bubble\n // blinking forever after the agent went idle)\n const beforeId = events().at(-1)?.id;\n const beforeTotal = eventsTotal();\n const fetchStartedAt = Date.now();\n await loadEvents(selected()!);\n if (events().at(-1)?.id !== beforeId) {\n // The bubble is stale ONLY when a persisted assistant message now\n // covers what it was showing. Time-based heuristics (delta after\n // fetch start) raced the stream's natural pauses and cleared a\n // LIVE bubble mid-reply — the \"output flashes, then disappears\"\n // bug. Compare content instead: drop the buffer only when the\n // log caught up with it (or the agent went idle with nothing new).\n const buf = live();\n if (buf && buf.text) {\n // covered = ANY persisted assistant message already carries this\n // text. Checking only the LAST message missed the common case\n // where tool turns landed after it — the bubble then lingered\n // forever as a duplicate \"streaming…\" row above its own copy.\n const body = buf.text.trim();\n const covered = isCoveredByLog(\n { text: body, reasoning: \"\", at: buf.at },\n events(),\n sel()?.status,\n );\n if (covered) setLive(null);\n } else if (buf && !buf.text) {\n // reasoning-only buffer with no text: drop as soon as the agent\n // stops streaming (no text will ever persist for it)\n if (sel()?.status !== \"running\") setLive(null);\n }\n // trust atBottom() (flipped only by real user scrolling). The old\n // nearBottom() re-check measured AFTER new rows (state events like\n // idle→running, tool rows…) had already grown the feed — the\n // unscrolled gap exceeded the slack, follow was falsely dropped,\n // and the view jumped away right when a round kicked off.\n if (atBottom()) {\n scrollBottom(true);\n // following the tail means the operator has seen this session's\n // newest content — its notifications count as read\n markSessionRead(selected()!);\n } else {\n setMissed(missed() + Math.max(0, eventsTotal() - beforeTotal));\n }\n }\n // NOTE: don't drop pending echoes when the log's prompt event\n // appears — logging happens at ENQUEUE time, long before the text\n // reaches an LLM payload. The echo must survive until the matching\n // prompt-delivered note flips it to \"sent ✓\" (and it is then\n // removed only after the turn actually consumed it).\n }\n };\n onTabVisible = () => {\n if (document.visibilityState === \"visible\" && pendingRefresh) {\n pendingRefresh = false;\n // refresh IMMEDIATELY on return — the old 150ms delay made every\n // homecoming show a stale tail until the next beat\n void runFeedRefresh();\n }\n };\n }\n\n /* ---------- /session/<internalId> routing ---------- */\n // The URL carries the INTERNAL session id (the chat.jsonl's directory\n // name), not the agent id: agent ids are recycled across incarnations,\n // internal session ids never are — deep links stay valid forever.\n const pathId = () => decodeURIComponent(location.pathname.split(\"/\")[2] ?? \"\");\n function navigate(sessionId: string, push = true) {\n const url = `/session/${encodeURIComponent(sessionId)}`;\n if (push) history.pushState(null, \"\", url);\n else history.replaceState(null, \"\", url);\n }\n window.addEventListener(\"popstate\", () => {\n const sid = pathId();\n // resolve the internal id to its owning agent and open THAT agent's tab;\n // the timeline itself is fetched by ?session=<internalId> in loadEvents\n const owner = masterSessionIndex().get(sid);\n // #58: this used to require `owner !== selected()`, which made Back and\n // Forward between two sessions of the SAME agent a no-op — the very case\n // the history entry exists for. Compare the SESSION, not the agent, and let\n // select() ignore a repeat of what is already showing.\n if (owner && (owner !== selected() || sid !== timelineId())) select(owner, false, sid || null);\n });\n\n /* ---------- small UX niceties ---------- */\n createEffect(() => {\n const a = sel();\n const base = a\n ? `${isSelLive() ? \"▶ \" : a.status === \"error\" ? \"⚠ \" : \"\"}${a.id} · teapot`\n : \"teapot\";\n // unread notification count in the tab title — \"(2) linux · teapot\"\n document.title = unreadCount() > 0 ? `(${unreadCount()}) ${base}` : base;\n });\n window.addEventListener(\"keydown\", (e) => {\n const t = e.target as HTMLElement | null;\n const typing = !!t && (t.tagName === \"INPUT\" || t.tagName === \"TEXTAREA\" || t.isContentEditable);\n if (typing) {\n if (e.key === \"Escape\") (t as HTMLElement).blur();\n return;\n }\n if (e.key === \"Escape\") {\n if (showNew()) { setShowNew(false); return; }\n if (showCfg()) { setShowCfg(false); return; }\n if (showThemes()) { setShowThemes(false); return; }\n if (editing()) { setEditing(null); return; }\n // BEFORE the running-agent interrupt (#50): narrow, the drawer is a modal\n // sheet over the content and Escape must close THAT first. It used to\n // fall through to the /stop branch, so with an agent working, Escape\n // stopped the agent and left the panel stuck open.\n if (isNarrow() && showRight()) { closeRight(); return; }\n const s = sel();\n // #59: `live`, not `status` — an agent parked in wait_children reads\n // \"idle\", and Escape then did nothing at all on a working agent.\n if (s && isSelLive()) {\n // Claude-Code-style: Esc interrupts the running agent\n api(`/api/agents/${s.id}/stop`, { method: \"POST\" }).then(refreshAgents);\n return;\n }\n return;\n }\n if (showNew() || showCfg()) return;\n if (e.key === \"/\") {\n e.preventDefault();\n document.querySelector<HTMLTextAreaElement>(\".composer textarea\")?.focus();\n } else if (e.key === \"d\") {\n toggleRight();\n } else if (e.key === \"t\") {\n toggleTerm();\n } else if (e.key === \"ArrowDown\" || e.key === \"ArrowUp\") {\n // follow the visible sidebar tree order (parents, then expanded subs)\n const list = treeRows().map((r) => r.a);\n if (list.length === 0) return;\n e.preventDefault();\n const idx = list.findIndex((a) => a.id === selected());\n const next = e.key === \"ArrowDown\" ? Math.min(idx + 1, list.length - 1) : Math.max(idx - 1, 0);\n if (next !== idx) select(list[next].id);\n }\n });\n\n /* ---------- human terminal (bottom drawer: resizable, tabs, split) ---------- */\n const [termOpen, setTermOpen] = createSignal(localStorage.getItem(\"teapot.term\") === \"1\");\n const toggleTerm = () => {\n const next = !termOpen();\n setTermOpen(next);\n localStorage.setItem(\"teapot.term\", next ? \"1\" : \"0\");\n };\n\n type TermTab = { key: string; agentId: string; title: string };\n type TermSession = {\n el: HTMLDivElement;\n term: any;\n fit: any;\n ws: WebSocket;\n ro: ResizeObserver | null;\n };\n const [termTabs, setTermTabs] = createSignal<TermTab[]>([]);\n // each pane holds an index into termTabs (-1 = empty slot)\n const [paneL, setPaneL] = createSignal(0);\n const [paneR, setPaneR] = createSignal(-1);\n const [splitView, setSplitView] = createSignal(false);\n const [focusedPane, setFocusedPane] = createSignal(0);\n const [termHeight, setTermHeight] = createSignal(\n Number(localStorage.getItem(\"teapot.termH\")) ||\n Math.max(220, Math.round(window.innerHeight * 0.35)),\n );\n const liveTerms = new Map<string, TermSession>();\n // monotonic tab-id source — see addTab() for why keys must never be reused\n let termSeq = 0;\n const paneHosts: (HTMLDivElement | null)[] = [null, null];\n\n /** the tab currently shown in the focused pane */\n const activeTab = () =>\n termTabs()[focusedPane() === 0 ? paneL() : paneR()] ?? null;\n\n function focusTab(i: number) {\n const tab = termTabs()[i];\n if (!tab) return;\n const focused = focusedPane();\n // snapshot BEFORE any setter runs — the setters below are plain signals,\n // so reading through the accessor after a partial update gave the swap\n // logic stale values and the click landed on the wrong pane (v0.19.6\n // \"tab switching doesn't work\" regression)\n const mineIdx = focused === 0 ? paneL() : paneR();\n const otherIdx = focused === 0 ? paneR() : paneL();\n const setMine = (v: number) => (focused === 0 ? setPaneL(v) : setPaneR(v));\n const setOther = (v: number) => (focused === 0 ? setPaneR(v) : setPaneL(v));\n if (otherIdx === i) {\n // it's in the other pane — swap so both stay visible\n setOther(mineIdx);\n setMine(i);\n return;\n }\n if (mineIdx !== i) setMine(i);\n }\n\n const addFromSelected = () => addTab();\n\n function addTab(agentId?: string) {\n const who = agentId ?? selected();\n if (!who) return;\n const perAgent = termTabs().filter((t) => t.agentId === who).length;\n if (perAgent >= 10) {\n flashHint(`max 10 shells per agent (${who}) — that's already a lot`);\n return;\n }\n const tab: TermTab = {\n // UNIQUE per tab for its whole life, never reused. The key used to be\n // derived from the agent's CURRENT tab count (\"\" / \"#2\" / \"#3\"), so\n // closing a tab freed its key and the next addTab regenerated it —\n // liveTerms is keyed by this, and ensureSession() reuses any session it\n // finds there. A reopened tab therefore adopted the closed tab's\n // (disposed) xterm/websocket, or two live terminals collided on one\n // entry (#10). A monotonic counter cannot collide.\n key: `${who}#${++termSeq}`,\n agentId: who,\n title: perAgent === 0 ? who : `${who}·${perAgent + 1}`,\n };\n setTermTabs((list) => [...list, tab]);\n // land in the focused pane. The new tab's index is the OLD length —\n // read it before the setter runs.\n const at = termTabs().length;\n if (focusedPane() === 0) setPaneL(at);\n else setPaneR(at);\n }\n\n function closeTab(i: number) {\n const tab = termTabs()[i];\n if (!tab) return;\n const s = liveTerms.get(tab.key);\n if (s) {\n s.ro?.disconnect();\n try { s.ws.close(); } catch { /* gone */ }\n s.term.dispose();\n liveTerms.delete(tab.key);\n }\n const rest = termTabs().filter((_, j) => j !== i);\n setTermTabs(rest);\n const shift = (idx: number) => (idx === i ? -1 : idx > i ? idx - 1 : idx);\n setPaneL((p) => Math.min(shift(p), rest.length - 1));\n setPaneR((p) => (p === -1 ? -1 : Math.min(shift(p), rest.length - 1)));\n }\n\n function disposeAllTerms() {\n for (const [, s] of liveTerms) {\n s.ro?.disconnect();\n try { s.ws.close(); } catch { /* gone */ }\n s.term.dispose();\n }\n liveTerms.clear();\n }\n\n /** create (and mount) a session lazily; moving panes just re-appends its el */\n function ensureSession(tab: TermTab, host: HTMLElement): TermSession {\n let s = liveTerms.get(tab.key);\n if (!s) {\n const el = document.createElement(\"div\");\n el.className = \"termsession\";\n host.appendChild(el);\n const t = new Terminal({\n cursorBlink: true,\n fontSize: 12.5,\n fontFamily: 'ui-monospace, Menlo, Consolas, monospace',\n theme: themeColors(),\n });\n const f = new FitAddon();\n t.loadAddon(f);\n t.open(el);\n const proto = location.protocol === \"https:\" ? \"wss://\" : \"ws://\";\n const w = new WebSocket(`${proto}${location.host}/api/agents/${tab.agentId}/term${wsTokenQuery()}`);\n w.onmessage = (m) => {\n const msg = JSON.parse(m.data);\n if (msg.kind === \"data\") t.write(msg.data);\n else if (msg.kind === \"exit\") t.write(`\\r\\n\\x1b[2m[terminal exited ${msg.code ?? \"\"}]\\x1b[0m\\r\\n`);\n };\n t.onData((d: string) => {\n if (w.readyState === WebSocket.OPEN) w.send(JSON.stringify({ kind: \"input\", data: d }));\n });\n let last = { cols: 0, rows: 0 };\n const resizeTimer: ReturnType<typeof setTimeout>[] = [];\n const pushResize = () => {\n try { f.fit(); } catch { /* hidden */ }\n if ((t.cols !== last.cols || t.rows !== last.rows) && w.readyState === WebSocket.OPEN) {\n last = { cols: t.cols, rows: t.rows };\n w.send(JSON.stringify({ kind: \"resize\", cols: t.cols, rows: t.rows }));\n }\n };\n const ro = new ResizeObserver(() => {\n if (resizeTimer[0]) clearTimeout(resizeTimer[0]);\n resizeTimer[0] = setTimeout(pushResize, 250);\n });\n ro.observe(el);\n setTimeout(pushResize, 60);\n s = { el, term: t, fit: f, ws: w, ro };\n liveTerms.set(tab.key, s);\n } else if (s.el.parentElement !== host) {\n host.appendChild(s.el); // moved between panes — xterm DOM survives the move\n setTimeout(() => { try { s!.fit(); } catch { /* */ } }, 30);\n }\n return s;\n }\n\n function mountPane(idx: number) {\n const host = paneHosts[idx];\n if (!host) return;\n const tab = termTabs()[idx === 0 ? paneL() : paneR()];\n if (!tab) {\n // only clear when this pane actually owns a session — replaceChildren()\n // on every mount pass used to detach a session element the OTHER pass\n // had just re-attached, which is how tabs went blank\n const owned = [...liveTerms.values()].some((t) => t.el.parentElement === host);\n if (owned) host.replaceChildren();\n return;\n }\n const s = ensureSession(tab, host);\n // Each session element must live in EXACTLY one pane. Session elements\n // are absolutely positioned, so a previous tab's terminal stayed stacked\n // underneath and showed through a freshly opened (empty) shell — the\n // \"switching tabs kept showing the old tab's content\" bug.\n for (const [key, other] of liveTerms) {\n if (key !== tab.key && other.el.parentElement === host) other.el.remove();\n }\n // make sure the terminal element really lives in THIS pane right now —\n // switching tabs moved DOM nodes behind Solid's back, so verify instead\n // of assuming; then refit so xterm re-measures into the (new) box\n requestAnimationFrame(() => {\n if (s.el.parentElement !== host) host.appendChild(s.el);\n try { s.fit(); } catch { /* hidden */ }\n if (focusedPane() === (idx === 0 ? 0 : 1)) {\n try { s.term.focus(); } catch { /* hidden */ }\n }\n });\n }\n\n // (re)mount both panes whenever any layout input changes — tabs, pane\n // assignment, split mode, drawer height. This effect was accidentally lost\n // in an earlier refactor, so after reopening the drawer (or switching\n // tabs) nothing re-attached live sessions and the pane stayed \"no shell\".\n createEffect(() => {\n void termTabs();\n void splitView();\n void paneL();\n void paneR();\n void termHeight();\n requestAnimationFrame(() => {\n mountPane(0);\n if (splitView()) mountPane(1);\n });\n });\n\n // opening the drawer ensures a shell for the selected agent.\n //\n // This tracks the SELECTED AGENT only. It used to read termTabs() as well,\n // so every tab change re-ran the body and focusTab() yanked the pane off\n // whatever the operator was looking at — opening a shell for agent A while\n // watching agent B swapped B's terminal away (#10).\n let _termFollowAgent: string | null = null;\n createEffect(() => {\n if (!termOpen()) return;\n const id = selected();\n if (!id) return;\n if (id === _termFollowAgent) return;\n _termFollowAgent = id;\n if (!termTabs().some((t) => t.agentId === id)) {\n // the selected agent has no tab yet (other agents own all tabs).\n // The old code tried focusTab(findIndex→-1) and silently did nothing,\n // leaving the pane stuck on \"no shell here\" or another agent's shell.\n addTab(id);\n } else {\n // its tab exists — focus the LAST one for it, so returning to an agent\n // lands on the shell you most recently opened rather than its first.\n let last = -1;\n termTabs().forEach((t, i) => {\n if (t.agentId === id) last = i;\n });\n if (last >= 0) focusTab(last);\n }\n });\n\n // drawer height drag (double-click resets)\n const startGrip = (e: PointerEvent) => {\n e.preventDefault();\n const startY = e.clientY;\n const startH = termHeight();\n const move = (ev: PointerEvent) => {\n const h = Math.min(Math.max(startH - (ev.clientY - startY), 140), Math.round(window.innerHeight * 0.85));\n setTermHeight(h);\n };\n const up = () => {\n window.removeEventListener(\"pointermove\", move);\n window.removeEventListener(\"pointerup\", up);\n localStorage.setItem(\"teapot.termH\", String(termHeight()));\n requestAnimationFrame(() => { mountPane(0); if (splitView()) mountPane(1); });\n };\n window.addEventListener(\"pointermove\", move);\n window.addEventListener(\"pointerup\", up);\n };\n\n const toggleSplit = () => {\n const next = !splitView();\n setSplitView(next);\n if (next) {\n // seed the second pane with a DIFFERENT tab than the left pane shows —\n // the old findIndex picked index 0 whenever paneL() wasn't 0 (or -1\n // when it was), so split often opened with BOTH panes on one shell or\n // an empty right side despite other tabs existing\n const candidates = termTabs().map((_, i) => i).filter((i) => i !== paneL());\n if (paneR() < 0 || paneR() === paneL() || paneR() >= termTabs().length) {\n setPaneR(candidates[0] ?? -1);\n }\n }\n requestAnimationFrame(() => { mountPane(0); if (splitView()) mountPane(1); });\n };\n\n onCleanup(disposeAllTerms);\n\n // legacy single-host refs kept for pane mounting\n const setPaneHost = (idx: number) => (el: HTMLDivElement) => {\n paneHosts[idx] = el;\n // The drawer is conditionally mounted (<Show when={termOpen()}>). On\n // reopen the refs arrive fresh, but nothing re-ran mountPane — so live\n // sessions stayed detached and the pane showed \"no shell here\". Mount\n // right here; also refit after the drawer finishes animating in.\n if (el) requestAnimationFrame(() => {\n mountPane(idx);\n if (splitView()) mountPane(1);\n setTimeout(() => mountPane(idx), 200);\n });\n };\n\n onMount(() => {\n loadCfg();\n refreshAgents().then(async () => {\n // deep link: /session/<internalId> routes to its owning agent —\n // fall back to a raw agent id (old bookmarks) → last session → first\n await refreshSessionIndex();\n const want = pathId();\n const owner = want ? masterSessionIndex().get(want) : undefined;\n const initial =\n (owner ? agents().find((a) => a.id === owner) : undefined) ??\n agents().find((a) => a.id === want && !masterSessionIndex().has(want)) ??\n agents().find((a) => a.id === localStorage.getItem(\"teapot.session\")) ??\n agents()[0];\n // #58: pass the deep-linked session through. `select(initial.id)` alone\n // discarded it, so /session/<old-id> opened the bound session and then\n // rewrote the URL to match — the bookmark quietly pointed somewhere else.\n if (initial) select(initial.id, false, want || null);\n });\n refreshMetrics();\n loadTasks();\n loadPersonas();\n connectWs();\n const mi = setInterval(() => {\n refreshMetrics();\n loadTasks();\n }, 30_000);\n onCleanup(() => clearInterval(mi));\n });\n\n const SLASH_COMMANDS = [\n { cmd: \"/start\", desc: \"start working toward the goal\" },\n { cmd: \"/stop\", desc: \"interrupt the running agent\" },\n { cmd: \"/fork\", desc: \"branch the conversation here\" },\n { cmd: \"/goal\", desc: \"/goal <text> — set goal & notify the agent\" },\n { cmd: \"/compact\", desc: \"force a context compaction now\" },\n { cmd: \"/skill\", desc: \"/skill <name> — force-load a skill and follow it\" },\n ];\n\n // @mentions: personas spawn sub-agents, agent ids target existing ones\n const [personas, setPersonas] = createSignal<{ key: string; label: string }[]>([]);\n const loadPersonas = () => api(\"/api/personas\").then((d) => setPersonas(d.personas)).catch(() => {});\n const [mentionFork, setMentionFork] = createSignal(false);\n const mentionQuery = () => {\n const m = draft().match(/^@([A-Za-z0-9._-]*)$/);\n return m ? m[1]!.toLowerCase() : null;\n };\n const mentionMatches = () => {\n const q = mentionQuery();\n if (q === null) return [];\n const list = [\n ...personas().map((p) => ({ key: p.key, label: `${p.label} — spawns a sub-agent`, kind: \"persona\" as const })),\n ...agents()\n .filter((a) => a.id !== selected())\n .map((a) => ({ key: a.id, label: `${a.status} — send directly`, kind: \"agent\" as const })),\n ];\n return list.filter((x) => x.key.toLowerCase().startsWith(q));\n };\n // popup shows while typing the first token of a command\n // oxlint-disable-next-line no-unused-vars\n const filteredCmds = () => {\n const d = draft();\n if (!d.startsWith(\"/\") || d.includes(\" \") || d.includes(\"\\n\")) return [];\n return SLASH_COMMANDS.filter((c) => c.cmd.slice(1).startsWith(d.slice(1).toLowerCase()));\n };\n\n // unified suggestions: slash commands, then /skill argument completion\n // (skill names come from the selected agent's roots via /api/agents/:id/skills)\n type Suggest = { insert: string; title: string };\n const NO_ARG_COMMANDS = new Set([\"start\", \"stop\", \"fork\", \"compact\"]);\n const [agentSkills, setAgentSkills] = createSignal<{ name: string; description: string }[]>([]);\n const [cmdIdx, setCmdIdx] = createSignal(-1);\n const suggestions = (): Suggest[] => {\n const d = draft();\n if (!d.startsWith(\"/\") || d.includes(\"\\n\")) return [];\n const m = d.match(/^\\/([a-z]*)(?:\\s+(.*))?$/i);\n if (!m) return [];\n const cmdName = m[1]!.toLowerCase();\n // NOTE: the arg is capture group TWO — group numbering was misread as [3]\n // before, so argPart was ALWAYS empty. Every \"/goal <text>\" then looked\n // like a bare command: the completion popup stayed open and Enter (with\n // cmdIdx set) replaced the draft with \"/goal \", silently eating the text.\n const argPart = (m[2] ?? \"\").trim();\n if (!argPart && cmdName !== \"skill\") {\n const rows = SLASH_COMMANDS.filter((c) => c.cmd.slice(1).startsWith(cmdName));\n // an exact, argument-less command must EXECUTE on Enter — don't keep a\n // popup open that would swallow the keystroke as another selection\n const exact = rows.find((c) => c.cmd.slice(1) === cmdName);\n if (exact && NO_ARG_COMMANDS.has(cmdName)) return [];\n return rows.map((c) => ({ insert: c.cmd + \" \", title: c.desc }));\n }\n if (cmdName === \"skill\") {\n let rows = agentSkills().filter((s) => s.name.toLowerCase().startsWith(argPart.toLowerCase()));\n // a single exact match means the name is complete — stop suggesting so\n // the following Enter dispatches /skill instead of re-selecting\n if (rows.length === 1 && rows[0]!.name.toLowerCase() === argPart.toLowerCase()) return [];\n return rows.map((s) => ({ insert: `/skill ${s.name} `, title: s.description || \"(bundled skill)\" }));\n }\n return [];\n };\n // oxlint-disable-next-line no-unassigned-vars\n let composerEl: HTMLTextAreaElement | undefined;\n const autosizeComposer = () => {\n if (!composerEl) return;\n // Suppress scroll-event processing while we resize the input: the\n // relayout fires a feed onscroll whose nearBottom() result flips with\n // every keystroke at the boundary, blinking the jump pill per character.\n // The flag also keeps follow mode pinned through the relayout.\n suppressScrollEval = true;\n const wasFollowing = atBottom();\n composerEl.style.height = \"auto\";\n composerEl.style.height = composerMaximized()\n ? \"\" // CSS takes over: .composer.maximized textarea fills the column\n : `${Math.min(composerEl.scrollHeight, MAX_COMPOSER_H)}px`;\n requestAnimationFrame(() => {\n const f = feedEl();\n if (wasFollowing && f) f.scrollTop = f.scrollHeight;\n suppressScrollEval = false;\n });\n };\n let suppressScrollEval = false;\n // user-scroll lock state (see the feed onscroll handler)\n let userScrolledUp = false;\n let lastScrollGap: number | undefined;\n createEffect(() => {\n draft(); // re-run on typing AND after send() clears the draft\n autosizeComposer();\n });\n\n /** post a raw prompt (used by composer AND question-option taps) */\n // image attachments staged for the next prompt (data URLs; capped count)\n const [pendingImages, setPendingImages] = createSignal<{ url: string; name: string }[]>([]);\n const addImages = (files: FileList | File[]) => {\n const list = Array.from(files).filter((f) => f.type.startsWith(\"image/\"));\n for (const f of list) {\n if (f.size > 8_000_000) {\n flashHint(`\"${f.name}\" is over 8 MB — skipped`);\n continue;\n }\n const reader = new FileReader();\n reader.onload = () => {\n setPendingImages((prev) =>\n [...prev, { url: String(reader.result), name: f.name }].slice(0, 4),\n );\n };\n reader.readAsDataURL(f);\n }\n };\n const sendText = async (text: string, targetId?: string) => {\n const id = targetId ?? selected();\n if (!id) return;\n const images = pendingImages();\n try {\n const r = await api(`/api/agents/${id}/prompt`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ text, start: true, ...(images.length ? { images } : {}) }),\n });\n // optimistic echo — replaced by the logged event once the feed catches up.\n // promptId links it to the later prompt-delivered note (real LLM payload).\n setPendingMsgs((l) => [\n ...l,\n {\n id: `@p${Date.now()}${Math.random().toString(36).slice(2, 6)}`,\n text,\n at: Date.now(),\n promptId: (r as any).promptId,\n ...(images.length ? { images: images.map((i) => i.url) } : {}),\n },\n ]);\n setPendingImages([]);\n // scroll to bottom after our message appears. The composer is shrinking\n // (autosize) in the same frame — wait two frames so the scroll target is\n // computed against the SETTLED layout, not the still-expanded input.\n requestAnimationFrame(() => requestAnimationFrame(() => scrollBottom(true)));\n } catch (ex) {\n saveDraft(text); // never eat the user's message on a failed send\n console.error(\"send failed:\", ex);\n }\n };\n\n const send = async (e: Event) => {\n e.preventDefault();\n const id = selected();\n const text = draft().trim();\n if (!id || !text) return;\n\n // @mentions: persona → spawn sub-agent; agent id → direct message\n if (text.startsWith(\"@\")) {\n const sp = text.indexOf(\" \");\n const name = (sp === -1 ? text.slice(1) : text.slice(1, sp)).toLowerCase();\n const arg = sp === -1 ? \"\" : text.slice(sp + 1).trim();\n const isPersona = personas().some((p) => p.key.toLowerCase() === name);\n const knownAgent = agents().some((a) => a.id.toLowerCase() === name);\n try {\n if (isPersona) {\n if (!arg) { flashHint(`usage: @${name} <task>`); return; }\n const r = await api(`/api/agents/${selected()}/spawn`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ persona: name, task: arg, context: mentionFork() ? \"fork\" : \"none\" }),\n });\n flashHint(`🧩 spawned ${(r as any).id}${mentionFork() ? \" (forked context)\" : \"\"}`);\n refreshAgents(); saveDraft(\"\");\n } else if (knownAgent) {\n if (!arg) { flashHint(`usage: @${name} <message>`); return; }\n await api(`/api/agents/${encodeURIComponent(name)}/prompt`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ text: arg, start: true }),\n });\n flashHint(`→ delivered to @${name}`);\n saveDraft(\"\");\n } else {\n flashHint(`unknown @${name} — personas: ${personas().map((p) => p.key).join(\", \") || \"(none)\"}`);\n return;\n }\n } catch (ex) {\n flashHint(`@${name} failed: ${(ex as Error).message}`);\n }\n return;\n }\n\n // slash commands are client-side operations\n if (text.startsWith(\"/\")) {\n const sp = text.indexOf(\" \");\n const name = (sp === -1 ? text.slice(1) : text.slice(1, sp)).toLowerCase();\n const arg = sp === -1 ? \"\" : text.slice(sp + 1).trim();\n if (name === \"goal\" && !arg) { saveDraft(\"/goal \"); return; } // keep typing\n if (name === \"skill\" && !arg) { saveDraft(\"/skill \"); return; }\n saveDraft(\"\");\n try {\n await executeSlash(name, arg);\n } catch (ex) {\n // a failed command must not eat the operator's input — sendText\n // already restores its draft on failure; commands now do too\n saveDraft(draft() ? `${text}\\n${draft()}` : text);\n throw ex;\n }\n return;\n }\n\n saveDraft(\"\");\n await sendText(text);\n // sending from a maximized composer restores the normal view — the whole\n // point of maximize is composing long text, and staying maximized after\n // send hid the timeline for no reason\n if (composerMaximized()) setComposerMaximized(false);\n };\n\n const executeSlash = async (name: string, arg: string): Promise<void> => {\n const id = selected();\n if (!id) return;\n const post = (p: string, body?: unknown) =>\n api(`/api/agents/${id}${p}`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n ...(body !== undefined ? { body: JSON.stringify(body) } : {}),\n }).then(refreshAgents);\n try {\n if (name === \"start\") await post(\"/start\");\n else if (name === \"stop\") await post(\"/stop\");\n else if (name === \"fork\") { await post(\"/fork\", {}); await select(id); }\n else if (name === \"compact\") {\n const r: any = await post(\"/compact\");\n flashHint(r?.ran ? \"context compacted\" : \"nothing to compact yet\");\n }\n else if (name === \"goal\") {\n if (!arg) { flashHint(\"usage: /goal <text>\"); return; }\n await post(\"/goal\", { text: arg, notify: true });\n flashHint(\"goal saved & notification queued\");\n }\n else if (name === \"skill\") {\n if (!arg) { flashHint(\"usage: /skill <name>\"); return; }\n await sendText(\n `[harness] Force-load and follow the skill \"${arg}\" now: call load_skill(\"${arg}\") and execute its playbook for the current task.`,\n );\n flashHint(`skill \"${arg}\" dispatched`);\n }\n else {\n flashHint(`unknown command \"${name}\" — /start /stop /fork /goal /skill /compact`);\n }\n } catch (ex) {\n flashHint(`/${name} failed: ${(ex as Error).message}`);\n }\n };\n\n // The right panel's scroll position used to reset whenever a control button\n // (▶ start / ■ stop / goal save…) refreshed the agents: content inside was\n // rebuilt and the browser clamped scrollTop. Keep the offset and restore it\n // on every repaint triggered by an agents update.\n let rightbarEl: HTMLDivElement | undefined;\n let rightbarTop = 0;\n createEffect(() => {\n agents(); // re-arm on every agents update (incl. start/stop refreshes)\n // double rAF: the first frame applies Solid's DOM writes, the second\n // measures/restores AFTER layout settles — restoring too early let the\n // browser clamp scrollTop to the OLD height and the panel visibly jumped\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n if (!rightbarEl) return;\n const target = Math.min(rightbarTop, rightbarEl.scrollHeight);\n if (Math.abs(rightbarEl.scrollTop - target) > 1) rightbarEl.scrollTop = target;\n });\n });\n });\n const act = (path: string) =>\n () => selected() && api(`/api/agents/${selected()}${path}`, { method: \"POST\" }).then(refreshAgents);\n\n // Goal input as SIGNALS (not uncontrolled DOM): the right panel re-renders\n // on every agent snapshot, and status flips / <Show> boundary crossings\n // rebuilt the form subtree — silently wiping half-typed goals mid-input.\n const [goalDraft, setGoalDraft] = createSignal(\"\");\n const [goalVerifyDraft, setGoalVerifyDraft] = createSignal(\"\");\n const [goalDirty, setGoalDirty] = createSignal(false);\n const [goalNotify, setGoalNotify] = createSignal(true);\n let goalSeededFor = \"\";\n createEffect(() => {\n const id = selected();\n if (!id) return;\n const g = sel()?.goal;\n if (id !== goalSeededFor) {\n goalSeededFor = id; // session switch → seed from the server copy\n setGoalDirty(false);\n setGoalDraft(\"\");\n setGoalVerifyDraft(\"\");\n void g; // goal text itself stays in the read-only card above the form\n }\n });\n const setGoal = async (e: Event) => {\n e.preventDefault();\n if (!selected() || !goalDraft().trim()) return;\n try {\n await api(`/api/agents/${selected()}/goal`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n text: goalDraft(),\n notify: goalNotify(),\n // only send when non-empty — an empty box must not wipe a contract\n ...(goalVerifyDraft().trim() ? { verify: goalVerifyDraft() } : {}),\n }),\n });\n setGoalDraft(\"\");\n setGoalVerifyDraft(\"\");\n setGoalDirty(false);\n refreshAgents();\n } catch (ex) {\n // keep the draft on failure — a wiped form AND an error hint was the\n // worst possible outcome for a long goal text\n flashHint(`goal save failed: ${(ex as Error).message}`);\n }\n };\n\n return (\n <>\n <Show when={cfg()?.needsSetup} fallback={null}>\n <SetupWizard onDone={() => location.reload()} />\n </Show>\n <Show when={authLocked()}>\n <div class=\"overlay\">\n <div class=\"modal\" style=\"max-width:360px\">\n <div class=\"modal-head\"><b>🔒 sign in</b><span /></div>\n <form\n onsubmit={(e) => {\n e.preventDefault();\n const el = document.getElementById(\"pw-input\") as HTMLInputElement;\n localStorage.setItem(\"teapot.token\", el.value);\n location.reload();\n }}\n style=\"display:flex;flex-direction:column;gap:10px\"\n >\n <input id=\"pw-input\" type=\"password\" placeholder=\"password\" autofocus />\n <button type=\"submit\" style=\"background:var(--acc);border:none;border-radius:6px;color:#fff;padding:7px 12px;cursor:pointer\">unlock</button>\n <span class=\"muted\" style=\"font-size:11px\">the token is stored locally and sent as Bearer to this server only</span>\n </form>\n </div>\n </div>\n </Show>\n <Show when={!cfg()?.needsSetup}>\n <div class={\"layout\" + (showRight() ? \"\" : \" right-hidden\")}>\n {/* ---------- sidebar ---------- */}\n <nav class=\"sidebar\">\n <div class=\"agent-list\">\n <For each={sidebarRows()}>\n {(row) => (\n <>\n {/* workspace header: which project this chat belongs to (#18) */}\n <Show when={row.wsHeader !== undefined && row.wsHeader !== \"\"}>\n <div\n class=\"wsheader\"\n title={\n row.wsCollapsedGroup\n ? `${row.wsHeader} — collapsed (${wsCountLabel(row.wsHeader!)} hidden). Click to show.`\n : (wsChatCounts().get(row.wsHeader!) ?? 0) > 1\n ? `${row.wsHeader} — ${wsCountLabel(row.wsHeader!)} in this directory`\n : row.wsHeader || \"\"\n }\n onclick={() => toggleWsGroup(`ws:${row.wsHeader}`, basenameOf(row.wsHeader!), row.wsCollapsedGroup === true, row.collapsedVia)}\n ><span class=\"wscaret\">{row.wsCollapsedGroup ? \"▸\" : \"▾\"}</span>{basenameOf(row.wsHeader!)}\n {/* several separate chats often share one directory — say so,\n so the group reads as N chats rather than one (#18).\n A COLLAPSED group must always show the count: that is\n the only thing telling the operator how much is hidden. */}\n <Show when={(wsChatCounts().get(row.wsHeader!) ?? 0) > 1 || row.wsCollapsedGroup}>\n <span class=\"wscount\">{wsChatCounts().get(row.wsHeader!) ?? 0}</span>\n </Show>\n </div>\n </Show>\n {/* A collapsed group shows its header and nothing else (#18); a header row\n never renders its own agent, which would double the chat.\n The `chat:<id>` header is GONE (#18 follow-up): a directory\n holding six chats rendered thirteen rows, each chat repeated\n under a header bearing its own name. The chat row is the\n group — it carries the caret below — so nothing is lost but\n the duplication. */}\n {/* A collapsed CHAT still renders its row (dimmed, ▸) — with the\n chat header gone that row is the only control that can bring\n it back, so hiding it would strand the chat for good.\n Collapsing the DIRECTORY still hides every row under it,\n because the directory header is what reopens that. */}\n <Show when={!row.headerOnly && !row.wsCollapsedGroup}>\n <div\n class={\"agent-item\" + (row.a.id === selected() ? \" sel\" : \"\") + (row.depth > 0 ? \" sub-row\" : \"\") + (row.chatCollapsedGroup ? \" collapsed\" : \"\")}\n style={row.depth > 0 ? `padding-left:${10 + row.depth * 14}px` : \"\"}\n // #66: a COLLAPSED chat must still be selectable. The row is a\n // normal chat that happens to be closed, and the report was that\n // with every chat collapsed you could not get into any of them —\n // the only way back was the ~9px caret, which nobody looks for\n // on a row that looked inactive. Clicking it now selects the\n // chat AND expands it, so the first click does what the row\n // obviously means.\n onclick={() => {\n if (row.chatCollapsedGroup) toggleWsGroup(`chat:${row.a.id}`, row.a.id, true);\n select(row.a.id);\n }}\n title={row.a.parent ? `sub-agent of @${row.a.parent}` : undefined}\n >\n {/* A TOP-LEVEL CHAT is always collapsible, whether or not it has\n sub-agents. It is its own group — that is what #18 needed\n when two chats shared a directory — and with the chat\n header gone, this caret is the ONLY control for it, so\n gating it on \"has children\" would make a childless chat\n impossible to collapse and, once collapsed (by a stored\n `chat:<id>` key), impossible to reopen. Only a SUB-agent\n with no children of its own has nothing to collapse. */}\n <Show\n when={\n !row.a.parent ||\n agents().some((x) => x.parent === row.a.id)\n }\n fallback={<span class=\"caret-spacer\" />}\n >\n {(() => {\n const isChat = !row.a.parent;\n const off = isChat\n ? chatCollapsed().has(`chat:${row.a.id}`)\n : collapsedSubs().has(row.a.id);\n return (\n <span\n class=\"caret\"\n title={\n isChat\n ? off\n ? `show ${row.a.id}`\n : `hide ${row.a.id} and its sub-agents`\n : off\n ? \"expand sub-agents\"\n : \"collapse sub-agents\"\n }\n onclick={(e: MouseEvent) => {\n e.stopPropagation();\n // top-level chats share the persisted group set, so a\n // reload keeps them collapsed; sub-agent collapse is\n // its own set, as before\n if (isChat) toggleWsGroup(`chat:${row.a.id}`, row.a.id, off);\n else toggleCollapse(row.a.id);\n }}\n >{off ? \"▸\" : \"▾\"}</span>\n );\n })()}\n </Show>\n <span class={`dot ${row.a.status}`} />\n <span\n class={row.a.workspaceMissing ? \" ghost\" : \"\"}\n title={row.a.workspaceMissing ? `workspace not found on disk (${row.a.workspace}) — it will be created when this session runs` : undefined}\n >{row.a.id}</span>\n {row.a.workspaceMissing ? <span class=\"ghosttag\" title=\"workspace missing\">👻</span> : null}\n <Show when={subtreeUnread(row.a.id) > 0}>\n <span class=\"notifbadge\" title={`${subtreeUnread(row.a.id)} unread notification${subtreeUnread(row.a.id) > 1 ? \"s\" : \"\"} (including sub-agents)`}>\n 🔔{subtreeUnread(row.a.id)}\n </span>\n </Show>\n {/* collapsed tree: surface how many subs are still working so a\n busy parent doesn't look idle with its subtree hidden */}\n <Show when={collapsedSubs().has(row.a.id)}>\n {(() => {\n const kids = agents().filter((x) => x.parent === row.a.id);\n const running = kids.filter((k) => k.live ?? (k.status === \"running\" || k.status === \"waiting\")).length;\n return kids.length > 0 ? (\n <span\n class={\"subcount\" + (running > 0 ? \" live\" : \"\")}\n title={`${kids.length} sub-agent${kids.length > 1 ? \"s\" : \"\"} (${running} active)`}\n >\n 🧩 {kids.length}{running > 0 ? ` · ▶${running}` : \"\"}\n </span>\n ) : null;\n })()}\n </Show>\n <Show when={row.a.parent}><span class=\"subtag\">🧩</span></Show>\n <Show when={agentTasks(row.a.id).length > 0}>\n <span class=\"mini-cron\" title={agentTasks(row.a.id).map((t) => `${t.id}: ${t.schedule}`).join(\"\\n\")}>⏰</span>\n </Show>\n <Show when={row.a.goal.status === \"done\"}><span class=\"goaldone\" title=\"goal done\">✓</span></Show>\n </div>\n </Show>\n </>\n )}\n </For>\n </div>\n <div class=\"sidebar-footer\">\n <Show when={showThemes()}>\n <div class=\"themepop\">\n <label class=\"trow\" title=\"switch automatically when the OS switches appearance — pick which theme to use for each\">\n <input\n type=\"checkbox\"\n checked={themeAuto()}\n onchange={(e) => {\n const v = e.currentTarget.checked;\n setThemeAuto(v);\n localStorage.setItem(\"teapot.theme.auto\", v ? \"1\" : \"0\");\n }}\n />\n follow system\n </label>\n <Show\n when={!themeAuto()}\n fallback={\n <>\n <label class=\"trow\">system light →\n <select\n class=\"w100\"\n value={sysLightTheme()}\n onchange={(e) => {\n setSysLightTheme(e.currentTarget.value);\n localStorage.setItem(\"teapot.theme.light\", e.currentTarget.value);\n }}\n >\n <For each={THEMES.filter((t) => t.mode === \"light\")}>\n {(t) => <option value={t.key}>{t.label}</option>}\n </For>\n </select>\n </label>\n <label class=\"trow\">system dark →\n <select\n class=\"w100\"\n value={sysDarkTheme()}\n onchange={(e) => {\n setSysDarkTheme(e.currentTarget.value);\n localStorage.setItem(\"teapot.theme.dark\", e.currentTarget.value);\n }}\n >\n <For each={THEMES.filter((t) => t.mode === \"dark\")}>\n {(t) => <option value={t.key}>{t.label}</option>}\n </For>\n </select>\n </label>\n </>\n }\n >\n <div class=\"themegrid\">\n <For each={THEMES}>\n {(t) => (\n <button\n class={\"themebtn\" + (fixedTheme() === t.key ? \" on\" : \"\")}\n title={`${t.label} (${t.mode})`}\n onclick={() => {\n setFixedTheme(t.key);\n localStorage.setItem(\"teapot.theme\", t.key);\n }}\n >\n <span class=\"swdots\">{t.sw.map((c) => <i style={{ background: c }} />)}</span>\n {t.label}\n </button>\n )}\n </For>\n </div>\n </Show>\n </div>\n </Show>\n {/* row 1: buttons (incl. notification bell) — row 2: branding + live dot */}\n <div class=\"footer-row\" style=\"justify-content:flex-end\">\n <button\n class={\"iconbtn notifbtn\" + (unreadCount() > 0 ? \" has-unread\" : \"\")}\n title={unreadCount() > 0 ? `${unreadCount()} unread notifications` : \"notifications\"}\n onclick={(e: MouseEvent) => {\n e.stopPropagation();\n setShowNotifs(!showNotifs());\n if (!showNotifs()) setNotifs((l) => l.map((n) => ({ ...n, read: true })));\n }}\n >\n 🔔<Show when={unreadCount() > 0}><i class=\"notifdot\">{unreadCount()}</i></Show>\n </button>\n <IconBtn\n icon=\"👻\"\n active={hideGhosts()}\n title={hideGhosts() ? \"show ghost sessions again (👻 workspace missing on disk)\" : \"hide ghost sessions (👻 — their workspace directory no longer exists)\"}\n onClick={(e) => {\n e.stopPropagation();\n const next = !hideGhosts();\n setHideGhosts(next);\n localStorage.setItem(\"teapot.hideGhosts\", next ? \"1\" : \"0\");\n // keep the selection valid when the current session gets hidden\n if (next && selected() && sel()?.workspaceMissing) {\n const firstVisible = agents().find((a) => !a.workspaceMissing);\n if (firstVisible) select(firstVisible.id);\n }\n }}\n />\n <IconBtn icon=\"+\" title=\"new agent\" onClick={() => { loadCfg(); setShowNew(true); }} />\n <IconBtn icon=\"🎨\" title=\"themes\" onClick={() => setShowThemes(!showThemes())} />\n <IconBtn icon=\"⚙\" title=\"settings\" onClick={() => { loadCfg(); setShowCfg(true); }} />\n </div>\n <div class=\"brand-row\">\n <div class=\"brand\">\n 🫖 teapot <span class=\"version\">v{__APP_VERSION__}</span>\n <span class={\"conn\" + (connected() ? \" ok\" : \"\")} title={connected() ? \"live (websocket)\" : \"reconnecting…\"} />\n </div>\n </div>\n <div class=\"metrics\">\n <Show when={metrics()}>\n master rss {metrics().rssMb}MB · heap {metrics().heapUsedMb}MB<br />\n load1 {metrics().loadavg1} · up {Math.floor(metrics().uptimeSec / 60)}m\n </Show>\n </div>\n </div>\n </nav>\n\n {/* ---------- channel ---------- */}\n <section class=\"channel\">\n {/* keyed on the agent id: an agent-update snapshot replaces the agent OBJECT, and an\n object-gated Show would rebuild the whole layout (and every focused\n control in it) on every poll (#30). */}\n <Show when={sel()?.id} keyed fallback={<div style=\"display:grid;place-items:center;height:100%\" class=\"muted\">select an agent</div>}>\n <header class=\"chan-head\">\n <span class=\"hash\">#</span>\n <span class=\"title\">{sel()!.id}</span>\n <span class={`badge ${sel()!.status}`}>{sel()!.status}</span>\n <Show when={(sel()!.pendingPrompts ?? 0) > 0}>\n <span\n class=\"badge queued\"\n title={\n sel()!.status === \"stopped\"\n ? `${sel()!.pendingPrompts} message${(sel()!.pendingPrompts ?? 0) > 1 ? \"s\" : \"\"} from you are still queued, but this agent is STOPPED — nothing will run until you press start (or it is resumed). Each can be withdrawn with ✕ cancel while it is still queued.`\n : `${sel()!.pendingPrompts ?? 0} message${(sel()!.pendingPrompts ?? 0) > 1 ? \"s\" : \"\"} from you waiting in the queue. They will be handed to the model at its next turn boundary — the timeline shows them as \"pending (queued)…\" until then, and each can be withdrawn with ✕ cancel while it's still queued.`\n }\n >\n ⏳ {sel()!.pendingPrompts} of yours queued{sel()!.status === \"stopped\" ? \" (stopped)\" : \"\"}\n </span>\n </Show>\n <Show when={agentTasks(sel()!.id).length > 0}>\n <span class=\"badge cron\" title={`scheduled tasks:\\n${agentTasks(sel()!.id).map((t) => `${t.schedule} · ${t.id}${t.forked ? \" (forked)\" : \"\"}`).join(\"\\n\")}`}>\n ⏰ {agentTasks(sel()!.id).length}\n </span>\n </Show>\n <span class=\"sub\">\n {sel()!.model} · {sel()!.session}/{sel()!.branch} · turns {sel()!.stats.turns} · tools {sel()!.stats.toolCalls}\n </span>\n <span style=\"margin-left:auto;display:flex;gap:4px\">\n <Show when={sel()!.statusReason}>\n <span class=\"sub\" title={sel()!.statusReason}>ℹ</span>\n </Show>\n <IconBtn icon=\"⌨\" title=\"terminal (t)\" onClick={toggleTerm} />\n <IconBtn icon=\"▤\" title=\"toggle details panel (d)\" onClick={toggleRight} />\n </span>\n </header>\n\n <div class=\"feed\" onscroll={(e) => {\n if (suppressScrollEval) return; // programmatic resize, not user\n const el = e.currentTarget;\n const nb = nearBottom();\n // USER-SCROLL LOCK: while streaming, new content grows the feed and\n // fires scroll events whose nearBottom() still reads true (the\n // growth hasn't been laid out yet) — atBottom flipped back on, the\n // follow effect yanked the reader down mid-scroll, and the view\n // fought the user (\"ガタガタ\"). An upward scroll of >24px from the\n // bottom locks follow off until the reader returns to the tail.\n const gap = el.scrollHeight - el.scrollTop - el.clientHeight;\n if (!nb && lastScrollGap !== undefined && gap > lastScrollGap + 8 && gap > 24) {\n userScrolledUp = true;\n } else if (nb) {\n userScrolledUp = false;\n }\n lastScrollGap = gap;\n // reached the top → pull the next older page (infinite scroll up).\n // MUST run before the follow-lock return: the lock exists to stop\n // follow mode from fighting the reader, and a reader at the very\n // top is by definition not at the bottom — returning here silently\n // swallowed every loadOlder trigger (\"past logs never loaded\").\n if (el.scrollTop <= 4 && selected() && !loadingOlder() && !olderDone() && events().length > 0) {\n void loadOlder();\n }\n if (userScrolledUp && !nb) {\n setAtBottom(false);\n return; // locked: don't re-evaluate follow mode until back at tail\n }\n if (nb && missed()) setMissed(0);\n setAtBottom(nb);\n }}>\n <Show when={compacting()}>\n {(c) => (\n <div class=\"divider-msg compacting\" title=\"the harness is compressing old turns into notes so work can continue within the context window\">\n 🗜 {c().phase === \"harvesting\" ? \"saving durable lessons…\" : `summarizing ${c().summarized ? fmtK(c().summarized!) + \" \" : \"\"}older messages…`}\n </div>\n )}\n </Show>\n <Show when={olderDone() && chatEvents().length > 0}>\n <div class=\"divider-msg\">── beginning of log ──</div>\n </Show>\n <Show when={loadingOlder()}>\n <div class=\"divider-msg\">loading older events…</div>\n </Show>\n <Show when={chatEvents().length > 0} fallback={\n <div style=\"display:grid;place-items:center;height:100%\" class=\"muted\">no events yet — say something or press ▶ start</div>\n }>\n <For each={chatEvents()}>\n {(e, i) => (\n <MessageRow\n e={e}\n prev={chatEvents()[i() - 1]}\n res={pairInfo().resFor.get(e.id)}\n // #54: an unpaired tool_result is rendered as a COMPLETED\n // tool row of its own — its call fell out of the events\n // window while the command ran. Without this the result was\n // a bare anonymous row and the run read as unfinished.\n orphan={pairInfo().orphanCalls.has(e.id)}\n onOption={(t) => void sendText(t)}\n // #55: pass the ACCESSOR, not the Set. A <For> child is a\n // non-reactive closure, so `answeredQuestionIds()` was\n // evaluated once when the row was built and never re-read.\n // The old derivation only ever changed when `events()`\n // changed, which re-created the rows and hid the bug; an\n // optimistic answer changes nothing about `events()`, so\n // the row kept a snapshot from before the click.\n answeredIds={answeredQuestionIds}\n onAnswered={markAnswered}\n // #40: a row showing MIRRORED SUB-AGENT activity is the\n // child's work, not this agent's, so it must not wear the\n // parent's live chrome (\"writing…\", the running blink)\n // just because the parent happens to be running.\n agentActive={\n isSelLive() && isOwnLiveWork(e)\n }\n onResize={() => { if (atBottom()) requestAnimationFrame(() => scrollBottom(true)); }}\n onCancel={\n e.data?.pending && e.data?.promptId && e.data?.sent !== true\n ? () => {\n const pid = String(e.data.promptId);\n api(`/api/agents/${selected()}/prompt/cancel`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ promptId: pid }),\n })\n .then((r: any) => {\n // put the text back WITHOUT clobbering what\n // the user has typed since sending it\n const back = String(r.text ?? \"\");\n saveDraft(draft() ? `${back}\\n\\n${draft()}` : back);\n setPendingMsgs((list) => list.filter((p) => p.promptId !== pid));\n flashHint(\"message withdrawn — draft restored\");\n })\n .catch(() => flashHint(\"withdraw failed — it may have already been sent\"));\n }\n : undefined\n }\n onEdit={\n // settled user prompts only: a pending message has not\n // reached the model, so there is nothing to fork from —\n // cancel (✕) returns its text to the composer instead.\n // A withdrawn message likewise never reached the model.\n e.type === \"prompt\" &&\n e.data?.source === \"user\" &&\n !(e.data?.pending && e.data?.sent !== true) &&\n !e.data?.cancelled\n ? () => setEditing({ eventId: e.id, text: String(e.data?.text ?? \"\") })\n : undefined\n }\n />\n )}\n </For>\n <Show when={live()}>\n <div class=\"msg live\">\n <div class=\"avatar\" style=\"background:#5865f233;border:1px solid #5865f266\">🫖</div>\n <div class=\"msg-body\">\n <div class=\"msg-head\">\n <span class=\"author\" style=\"color:var(--acc)\">agent</span>\n <span class=\"ts\">streaming…</span>\n </div>\n <Show when={liveReasoning()}>\n <details class=\"reasoning\" open>\n <summary>\n 💭 thinking <ThinkingTimer startedAt={liveStartedAt()} />\n </summary>\n {/* ref + scroll-follow: the thinking block grows from the\n bottom; keep its tail visible while it streams. The\n effect only scrolls THIS div — never the feed itself —\n so the two follow loops can't fight each other. */}\n <div\n class=\"mono thinkscroll\"\n ref={(el) => {\n // follow the thinking tail ONLY while the reader\n // is at the block's own bottom — scrolling up\n // inside it must pause follow (and returning to\n // the tail resumes), independent of feed position\n let stick = true;\n el.addEventListener(\"scroll\", () => {\n stick = el.scrollHeight - el.scrollTop - el.clientHeight < 24;\n });\n createEffect(() => {\n liveReasoning(); // re-run on every throttled tick\n if (stick) el.scrollTop = el.scrollHeight;\n });\n }}\n >\n {liveReasoning()}\n </div>\n </details>\n </Show>\n <Show\n when={liveText()}\n fallback={<div class=\"content muted\">thinking…</div>}\n >\n <Show when={liveIsCompact()} fallback={<div class=\"content\" innerHTML={renderMarkdown(liveText() + \"▍\")} />}>\n <div class=\"muted\" style=\"font-size:11.5px;margin-bottom:4px\">🗜 summarizing older context…</div>\n <div class=\"content\" innerHTML={renderMarkdown(liveBody() + \"▍\")} />\n </Show>\n </Show>\n </div>\n </div>\n </Show>\n </Show>\n </div>\n\n <Show when={termOpen()}>\n <div class=\"termdrawer\" style={{ height: `${termHeight()}px`, \"--termh\": `${termHeight()}px` } as any}>\n <div class=\"termgrip\" onpointerdown={startGrip} ondblclick={() => { setTermHeight(Math.max(220, Math.round(window.innerHeight * 0.35))); localStorage.setItem(\"teapot.termH\", String(termHeight())); }} title=\"drag to resize · double-click to reset\" />\n <div class=\"termbar\">\n <div class=\"termtabs\">\n <For each={termTabs()}>\n {(t, i) => (\n <span\n class={\"termtab\" + (focusedPane() === 0 && paneL() === i() ? \" active\" : \"\") + (splitView() && focusedPane() === 1 && paneR() === i() ? \" active\" : \"\")}\n onclick={() => focusTab(i())}\n title={`${t.title} — click to show in focused pane`}\n >\n ⌨ {t.title}\n <button class=\"tabx\" onclick={(e) => { e.stopPropagation(); closeTab(i()); }} title=\"close this shell\">✕</button>\n </span>\n )}\n </For>\n <IconBtn icon=\"+\" title=\"new shell in this workspace\" onClick={addFromSelected} />\n </div>\n <div style=\"display:flex;gap:4px;align-items:center\">\n <span class=\"muted mono\" style=\"flex:1;text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap\">\n {activeTab() ? agents().find((a) => a.id === activeTab()!.agentId)?.workspace.split(\"/\").filter(Boolean).pop() : sel()?.workspace}\n </span>\n <IconBtn icon=\"◫\" title={splitView() ? \"single pane\" : \"split panes (50/50)\"} onClick={toggleSplit} />\n <IconBtn icon=\"▾\" title=\"hide the terminal (shells keep running; reopen with t) — close individual shells with their ✕ tab buttons\" onClick={toggleTerm} />\n </div>\n </div>\n <div class=\"termbody\" classList={{ split: splitView() }}>\n <div class=\"termpane\" classList={{ focused: focusedPane() === 0 }} onpointerdown={() => setFocusedPane(0)} ref={setPaneHost(0)}>\n <Show when={paneL() < 0 || paneL() >= termTabs().length}>\n <div class=\"termempty muted\">no shell here — + opens one, tabs fill the focused pane</div>\n </Show>\n </div>\n <Show when={splitView()}>\n <div class=\"termsplit\" />\n <div class=\"termpane\" classList={{ focused: focusedPane() === 1 }} onpointerdown={() => setFocusedPane(1)} ref={setPaneHost(1)}>\n <Show when={paneR() < 0 || paneR() >= termTabs().length}>\n <div class=\"termempty muted\">no shell here — click a tab or + to add</div>\n </Show>\n </div>\n </Show>\n </div>\n </div>\n </Show>\n\n <div class={\"composer\" + (composerMaximized() ? \" maximized\" : \"\")}>\n <Show when={!atBottom() || missed() > 0}>\n <button class=\"jump\" onclick={() => scrollBottom(true)}>\n ↓ {missed() > 0 ? `${missed()} new message${missed() > 1 ? \"s\" : \"\"}` : \"jump to present\"}\n </button>\n </Show>\n <Show when={suggestions().length > 0}>\n <div class=\"cmds\">\n <For each={suggestions()}>\n {(s, i) => (\n <div\n class={\"cmdrow\" + (i() === cmdIdx() ? \" active\" : \"\")}\n title={s.title}\n onclick={() => { saveDraft(s.insert); setCmdIdx(-1); }}\n >\n <b class=\"mono\">{s.insert.trim()}</b>\n <span class=\"muted\">{s.title}</span>\n </div>\n )}\n </For>\n </div>\n </Show>\n <Show when={mentionMatches().length > 0}>\n <div class=\"cmds\">\n <For each={mentionMatches()}>\n {(m) => (\n <div class=\"cmdrow\" title={m.label} onclick={() => { saveDraft(`@${m.key} `); setCmdIdx(-1); }}>\n <b>@{m.key}</b>\n <span class=\"muted\">{m.label}</span>\n </div>\n )}\n </For>\n </div>\n </Show>\n <form onsubmit={send}>\n {/* staged image chips — clicking ✕ unstages before send */}\n <Show when={pendingImages().length > 0}>\n <div class=\"imgstage\">\n <For each={pendingImages()}>\n {(im, i) => (\n <span class=\"imgchip\" title={im.name}>\n <img src={im.url} alt={im.name} />\n <button\n type=\"button\"\n class=\"imgx\"\n title=\"remove\"\n onclick={() => setPendingImages((l) => l.filter((_, j) => j !== i()))}\n >✕</button>\n </span>\n )}\n </For>\n <span class=\"muted\" style=\"font-size:11px;align-self:center\">\n {pendingImages().length} image{pendingImages().length > 1 ? \"s\" : \"\"} attached\n </span>\n </div>\n </Show>\n <textarea\n ref={composerEl}\n rows={1}\n placeholder={`message #${sel()!.id} — / for commands · paste or 📎 to attach images`}\n value={draft()}\n oncompositionstart={() => {\n imeInProgress = true;\n }}\n oncompositionend={() => {\n // Safari fires compositionend BEFORE the final keydown for\n // Enter, so defer the reset one frame to let that keydown\n // observe the flag (see imeInProgress).\n requestAnimationFrame(() => {\n imeInProgress = false;\n });\n }}\n onpaste={(e) => {\n // screenshots land on the clipboard as files — stage them\n const imgs = Array.from(e.clipboardData?.files ?? []).filter((f) => f.type.startsWith(\"image/\"));\n if (imgs.length) {\n e.preventDefault();\n addImages(imgs);\n }\n }}\n oninput={(e) => {\n saveDraft(e.currentTarget.value);\n setCmdIdx(0); // highlight first suggestion while popup is open\n autosizeComposer();\n }}\n onkeydown={(e) => {\n // unified suggestion navigation — the input keeps focus, the\n // highlighted row just moves (↑↓), Tab/Enter accepts\n const sugg = suggestions();\n if (sugg.length > 0 && e.key === \"ArrowDown\") {\n e.preventDefault();\n setCmdIdx((i) => Math.min(i + 1, sugg.length - 1));\n return;\n }\n if (sugg.length > 0 && e.key === \"ArrowUp\") {\n e.preventDefault();\n setCmdIdx((i) => Math.max(i - 1, 0));\n return;\n }\n if (sugg.length > 0 && (e.key === \"Tab\" || e.key === \"Enter\") && !e.shiftKey && cmdIdx() >= 0 && !imeInProgress) {\n e.preventDefault();\n saveDraft(sugg[cmdIdx()]!.insert);\n setCmdIdx(-1);\n return;\n }\n if (e.key === \"Escape\" && sugg.length > 0) {\n setCmdIdx(-1); // close popup only\n return;\n }\n // IME composition: Enter confirms the conversion, never sends.\n // Test our own flag, not e.isComposing — Safari has already\n // ended composition by the time this keydown arrives.\n if (e.key === \"Enter\" && !e.shiftKey && !imeInProgress) {\n e.preventDefault();\n void send(e);\n }\n }}\n />\n <Show when={draft().startsWith(\"@\") && draft().includes(\" \")}>\n <label\n class=\"forkchip\"\n title=\"inherit the conversation prefix byte-exactly — the sub-agent's provider prefix cache starts warm\"\n >\n <input type=\"checkbox\" checked={mentionFork()} onchange={(e) => setMentionFork(e.currentTarget.checked)} />\n fork ctx\n </label>\n </Show>\n <button\n type=\"button\"\n class=\"iconbtn maxbtn\"\n title={composerMaximized() ? \"restore composer (hide timeline)\" : \"maximize composer — hide the timeline and fill the main column\"}\n onclick={() => {\n const next = !composerMaximized();\n setComposerMaximized(next);\n // re-run autosize under the new regime, then keep the feed\n // pinned / restored correctly across the relayout\n requestAnimationFrame(() => autosizeComposer());\n }}\n >{composerMaximized() ? \"⤡\" : \"⤢\"}</button>\n <IconBtn\n icon=\"📎\"\n title=\"attach images (or paste them straight into the box)\"\n onClick={() => document.getElementById(\"composer-file\")?.click()}\n />\n <Show when={pendingImages().length}>\n <span class=\"muted\" style=\"font-size:11.5px;white-space:nowrap\">🖼 {pendingImages().length}</span>\n </Show>\n <button type=\"submit\">send</button>\n {/* hidden input lives here so the 📎 button can trigger it */}\n <input\n id=\"composer-file\"\n type=\"file\"\n accept=\"image/*\"\n multiple\n style=\"display:none\"\n onchange={(e) => {\n if (e.currentTarget.files?.length) addImages(e.currentTarget.files);\n e.currentTarget.value = \"\"; // allow re-selecting the same file\n }}\n />\n </form>\n <div class=\"hint\">\n {flash() ||\n \"enter send · shift+enter newline · ↑↓ sessions · / commands & focus · t terminal · d panel · esc interrupt · messages sent while the agent works queue up and land at the next turn boundary\"}\n </div>\n </div>\n </Show>\n </section>\n\n {/* ---------- right bar ---------- */}\n {/* Drawer-only close row (#50). In wide mode .rightbar is a grid column\n that sits next to the content, and the ▤ button in the channel header\n is right there — so this row stays `display:none` (see app.css) and\n costs a wide-screen user nothing. Narrow, the panel is a fixed drawer\n covering up to 92vw of the screen; it covers the ▤ button that opened\n it, leaving NO visible way back out. This is that way out. */}\n {/* Click-outside dismiss for the drawer (#50). Mirrors .notifbackdrop:\n an invisible full-screen layer UNDER the panel but OVER everything\n else, so a click anywhere on the content closes the drawer — the same\n gesture users already know from the notification popover.\n Rendered only in narrow mode: on a wide screen the panel is a static\n column and a full-screen click-catcher would swallow every click in\n the app. Gated on showRight() too, so a closed drawer — which is still\n in the DOM, translated off-screen — never blocks the UI. */}\n <Show when={narrow() && showRight()}>\n <div class=\"rightbarbackdrop\" onclick={() => setRight(false)} />\n </Show>\n <aside\n class={\"rightbar\" + (showRight() ? \" open\" : \"\")}\n ref={rightbarEl}\n onscroll={(e) => { rightbarTop = (e.currentTarget as HTMLDivElement).scrollTop; }}\n >\n {/* Close row (#50) — INSIDE the panel, and sticky so the panel's own\n overflow-y can never scroll it out of reach. On a wide screen\n .rightbar is a grid column sitting next to the content and the ▤\n button is right there, so this row stays display:none and a static\n column gets no new control. Narrow, the panel is a fixed drawer\n covering up to 92vw; it covers the ▤ button that opened it, leaving\n no visible way back out. This is that way out.\n\n Sticky rather than merely first-child: .rightbar is a long scroll\n container (session, runtime, files, tasks…), and a close button\n that scrolls away is the bug one scroll away from returning. The\n negative margin lets the row's background cover the panel's padding\n while the sticky top stays 0. */}\n <div class=\"rightbarhead\">\n <span class=\"muted\">details</span>\n <IconBtn icon=\"✕\" title=\"close details panel (esc)\" onClick={closeRight} />\n </div>\n {/* Gated on the agent ID, not the agent OBJECT (#30). `when={sel()}`\n re-ran this whole subtree whenever an agent-update snapshot replaced\n the object — its compiled children getter builds a fresh array each\n time, so Solid rebuilt the panel and any focused control inside it\n (the tasks editor lost focus and caret). The id only changes when the\n operator actually switches agent, which is the only case where a\n rebuild is correct. Same trick FilesPanel uses below. */}\n <Show when={sel()?.id} keyed fallback={null}>\n {(_aid) => (\n <>\n <h3 title=\"identity + storage locations for this agent\">🎛 session</h3>\n <div class=\"card sesscard\">\n <div class=\"sessrow\"><span class=\"k\">agent</span><b>{sel()!.id}</b><span class={`badge ${sel()!.status}`}>{sel()!.status}</span></div>\n <div class=\"sessrow\"><span class=\"k\">workspace</span><span class=\"mono ellip\" title={sel()!.workspace}>{sel()!.workspace}</span></div>\n <div class=\"sessrow\"><span class=\"k\">session</span><span class=\"mono\">{sel()!.session}/{sel()!.branch}</span></div>\n </div>\n\n {/* keyed by agent id: Solid re-runs the JSX expression on every\n snapshot update, but <Show keyed> + primitive props keep the\n FilesPanel subtree from re-rendering unless the agent changes */}\n <Show when={sel()!.id} keyed fallback={null}>\n {(aid) => (\n <FilesPanel agentId={aid} workspace={sel()!.workspace} />\n )}\n </Show>\n\n <h3 title=\"switch provider/model live — applies from the agent's next turn; the list shows context window & pricing from the provider\">🧦 model</h3>\n <div class=\"modelbox\">\n <select\n value={modelProvider()}\n onchange={(e) => { setModelProvider(e.currentTarget.value); loadModels(e.currentTarget.value); }}\n title=\"provider (OpenAI-compatible endpoint)\"\n >\n <For each={providerList()}>{(p) => <option value={p}>{p}{p === cfg().defaultProvider ? \" ★\" : \"\"}</option>}</For>\n </select>\n <div style=\"display:flex;gap:4px\">\n <input\n type=\"text\"\n list=\"model-list\"\n placeholder={sel()!.model}\n value={modelDraft()}\n oninput={(e) => setModelDraft(e.currentTarget.value)}\n style=\"flex:1;min-width:0\"\n />\n <datalist id=\"model-list\">\n <For each={models()}>{(m) => <option value={m.id} />}</For>\n </datalist>\n <button\n title=\"apply to this session — takes effect from the agent's next turn\"\n onclick={async (e) => {\n if (!selected()) return;\n const btn = e.currentTarget as HTMLButtonElement;\n btn.disabled = true;\n try {\n await api(`/api/agents/${selected()}/model`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n provider: modelProvider(),\n model: modelDraft().trim() || undefined,\n // pass the provider-reported window so the runtime\n // gauge + derived compaction budget work immediately\n contextWindowTokens:\n models().find((m) => m.id === (modelDraft().trim() || undefined))?.contextLength,\n }),\n });\n btn.textContent = \"✓ applied\";\n refreshAgents();\n } catch (ex) {\n alert(`model switch failed: ${(ex as Error).message}`);\n } finally {\n setTimeout(() => { btn.textContent = \"apply\"; btn.disabled = false; }, 1200);\n }\n }}\n >apply</button>\n </div>\n {/* #47: reasoning effort. Shown ONLY when the endpoint's catalogue\n says this model advertises `reasoning_effort` — support is 196/462\n on OpenRouter and absent elsewhere, so offering it everywhere\n would be a control that silently does nothing. */}\n <Show when={sel()!.effortSupported}>\n <div style=\"display:flex;gap:6px;align-items:center;margin-top:6px\">\n <label class=\"muted\" style=\"font-size:11.5px;white-space:nowrap\">effort</label>\n <select\n style=\"flex:1;min-width:0\"\n value={effortDraft()}\n onchange={(e) => setEffortDraft(e.currentTarget.value)}\n >\n <option value=\"\">provider default</option>\n <For each={REASONING_EFFORT_OPTIONS}>\n {(v) => <option value={v}>{v}</option>}\n </For>\n </select>\n <button\n title=\"apply to this session — takes effect from the agent's next turn\"\n onclick={async (e) => {\n if (!selected()) return;\n const btn = e.currentTarget as HTMLButtonElement;\n btn.disabled = true;\n try {\n await api(`/api/agents/${selected()}/model`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n // \"\" clears it back to the provider default\n body: JSON.stringify({ reasoningEffort: effortDraft() }),\n });\n btn.textContent = \"✓ applied\";\n refreshAgents();\n } catch (ex) {\n alert(`effort change failed: ${(ex as Error).message}`);\n } finally {\n setTimeout(() => { btn.textContent = \"apply\"; btn.disabled = false; }, 1200);\n }\n }}\n >apply</button>\n </div>\n </Show>\n <div class=\"meta\">\n current: {sel()!.model}<Show when={models().length}> · {models().length} models loaded</Show>\n </div>\n <Show when={modelSpec()}>\n <div class=\"meta\" style=\"color:var(--fg)\">{modelSpec()}</div>\n </Show>\n </div>\n\n <h3>⏯ controls</h3>\n <div class=\"btnrow\">\n {/* ONE persistent button: swapping ▶ start / ■ stop via <Show> destroyed\n and recreated the node on every idle→running transition, which\n visibly reflowed the panel (width jump + row wrap). Toggling\n class/text keeps the same element, so layout never moves. */}\n <button\n class={isSelLive() ? \"danger\" : \"runbtn\"}\n title={\n isSelLive()\n ? \"interrupt: aborts the current LLM call; the running tool finishes first\"\n : \"run toward the goal (starts the loop)\"\n }\n // #59: key off the server's `live` flag, not `status`. A parked\n // tool (wait_children) and queued prompts both read \"idle\" while\n // the agent is very much alive, so the old check offered START on\n // a working agent and the user could not stop it.\n onclick={isSelLive() ? act(\"/stop\") : act(\"/start\")}\n >{isSelLive() ? \"■ stop\" : \"▶ start\"}</button>\n <button\n title=\"branch off the conversation here — try things without disturbing the main line\"\n onclick={() => api(`/api/agents/${sel()!.id}/fork`, { method: \"POST\", headers: { \"content-type\": \"application/json\" }, body: \"{}\" }).then(async () => { await refreshSessionIndex(true); await select(sel()!.id); })}\n >⑂ fork</button>\n <button onclick={async () => {\n const id = selected();\n if (!id || !confirm(`remove agent ${id}? (log is kept)`)) return;\n await api(`/api/agents/${id}`, { method: \"DELETE\" }).catch(() => {});\n const rest = agents().filter((a) => a.id !== id);\n setAgents(rest);\n // the agent is gone, so its session is too — drop the cached\n // index or the UI keeps routing to a session that no longer\n // exists (#39)\n void refreshSessionIndex(true);\n if (rest[0]) select(rest[0].id);\n else { setSelected(null); setEvents([]); }\n }} title=\"remove agent from teapot (session log stays on disk)\">🗑 remove</button>\n <Show when={agents().some((a) => a.parent === selected())}>\n <button\n onclick={async () => {\n if (!selected()) return;\n const r = await api(`/api/agents/${selected()}/stop-children`, { method: \"POST\" });\n flashHint(`stopped: ${((r as any).stopped ?? []).join(\", \") || \"(none)\"}`);\n refreshAgents();\n }}\n title=\"stop every sub-agent this agent spawned (descendants included)\"\n >⏹ subs</button>\n </Show>\n </div>\n <div class=\"ctrlrow\">\n <label\n title=\"auto-continue fires after a round ONLY when all hold: ① this toggle is on ② a goal is set and its status is 'active' ③ the round ended cleanly (no error / not stopped). It stops when the goal is marked done, or if you press ■ stop. Sending any prompt also starts an idle agent regardless.\"\n >\n <input\n type=\"checkbox\"\n checked={sel()!.autoContinue ?? true}\n onchange={(e) => {\n if (!selected()) return;\n api(`/api/agents/${selected()}/auto-continue`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ value: e.currentTarget.checked }),\n }).then(refreshAgents);\n }}\n />\n auto-continue\n </label>\n <span class=\"muted\">loops while goal is active · stops on done / stop</span>\n </div>\n\n <h3 title=\"what the agent is working toward — auto-continue keeps looping while the status is 'active'\">🎯 goal\n <Show\n when={!!sel()!.goal.text.trim()}\n fallback={<span class=\"badge\" title=\"no goal set yet\">no goal</span>}\n >\n <span class={`badge ${sel()!.goal.status === \"active\" ? \"running\" : sel()!.goal.status}`}>{sel()!.goal.status}</span>\n </Show>\n </h3>\n <div class=\"statrow\" style=\"margin-bottom:6px\">\n <span class=\"k\">status</span>\n <For each={[\"active\", \"done\", \"paused\"] as const}>\n {(s) => (\n <button\n // an EMPTY goal must not light up \"▶ working\": fresh\n // sessions store status:\"active\" by default, which made a\n // brand-new timeline look like the agent was already on it\n class={\"goalstate\" + (!!sel()!.goal.text.trim() && sel()!.goal.status === s ? ` on ${s}` : \"\")}\n disabled={!!sel()!.goal.text.trim() && sel()!.goal.status === s}\n title={\n s === \"active\"\n ? \"agent keeps working toward the goal (with auto-continue)\"\n : s === \"done\"\n ? \"mark achieved — auto-continue stops\"\n : \"parked on purpose — resume by setting active again\"\n }\n onclick={() => {\n if (!selected()) return;\n api(`/api/agents/${selected()}/goal`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ status: s }),\n }).then(refreshAgents);\n }}\n >{s === \"active\" ? \"▶ working\" : s === \"done\" ? \"✓ done\" : \"⏸ paused\"}</button>\n )}\n </For>\n </div>\n <Show\n when={sel()!.goal.text}\n fallback={<div class=\"card muted\">no goal yet — write one below and press ✓ save. Then ▶ start (or any message) sets it in motion.</div>}\n >\n <div class=\"card\">\n <div class=\"content\" innerHTML={renderMarkdown(String(sel()!.goal.text))} />\n </div>\n <Show when={sel()!.goal.verify}>\n <div class=\"card verifycard\" title=\"verification contract — finish(goalComplete=true) is audited against these requirements by an independent reviewer before the goal counts as done\">\n <div class=\"vtitle\">🔍 verification contract</div>\n <div class=\"content\" innerHTML={renderMarkdown(String(sel()!.goal.verify))} />\n </div>\n </Show>\n <Show when={sel()!.goal.audit}>\n {(a) => (\n <div class={\"card auditcard \" + (a().verdict === \"approved\" ? \"ok\" : \"warn\")}>\n <div class=\"vtitle\">\n {a().verdict === \"approved\" ? \"✅ audit: approved\" : \"⚠ audit: changes required\"}\n <span class=\"meta muted\" style=\"margin-left:auto\">{relTime(a().at)}</span>\n </div>\n {/* #51: the auditor can return a verdict with no reason.\n An empty card says less than an honest one-liner. */}\n <div\n class=\"content\"\n innerHTML={\n isPlaceholderDetail(a().feedback)\n ? renderMarkdown(\"_the auditor returned a verdict with no detail_\")\n : renderMarkdown(a().feedback)\n }\n />\n </div>\n )}\n </Show>\n </Show>\n <div class=\"muted\" style=\"font-size:11px;margin-top:4px\">\n stored with the session · the agent reads it via get_goal() · auto-continue loops while status is \"working\" and stops when marked done\n </div>\n <form onsubmit={setGoal} style=\"display:flex;flex-direction:column;gap:6px;margin-top:8px;margin-bottom:6px\">\n <textarea\n id=\"goal-input\"\n rows={3}\n placeholder=\"set new goal…\"\n value={goalDraft()}\n oninput={(e) => { setGoalDraft(e.currentTarget.value); setGoalDirty(true); }}\n style=\"background:var(--bg-darkest);border:none;border-radius:6px;padding:6px 8px;color:var(--fg);font:inherit;width:100%;resize:vertical\"\n />\n <textarea\n id=\"goal-verify-input\"\n rows={2}\n placeholder=\"verification contract (optional) — e.g. 'npm test passes; endpoint documented'. finish(goalComplete=true) is then audited against this.\"\n title=\"pi-goal-x-style verification contract — an independent reviewer checks the agent's finish against these requirements\"\n value={goalVerifyDraft()}\n oninput={(e) => { setGoalVerifyDraft(e.currentTarget.value); setGoalDirty(true); }}\n style=\"background:var(--bg-darkest);border:1px solid var(--bg-light);border-radius:6px;padding:6px 8px;color:var(--fg);font:inherit;font-size:12.5px;width:100%;resize:vertical\"\n />\n <div style=\"display:flex;justify-content:flex-end;align-items:center;gap:10px\">\n <label\n class=\"muted\"\n style=\"display:flex;align-items:center;gap:4px;font-size:11.5px;white-space:nowrap;cursor:pointer\"\n title=\"queue a harness prompt telling the agent about the new goal at its next turn boundary\"\n >\n <input id=\"goal-notify\" type=\"checkbox\" checked={goalNotify()} onchange={(e) => setGoalNotify(e.currentTarget.checked)} /> notify agent\n </label>\n <button type=\"submit\" style=\"background:var(--acc);border:none;border-radius:6px;color:#fff;padding:4px 12px;cursor:pointer\">✓ save goal</button>\n </div>\n </form>\n\n <h3 title=\"todo.md — a shared checklist in the session dir. Write tasks like '- [ ] fix login'; the agent ticks them off via set_todo, you edit here. With notify on, it's told at its next turn boundary.\">\n ✅ tasks\n <Show when={todoStats().total > 0}>\n <span class=\"badge\" style={todoStats().done === todoStats().total ? \"color:var(--ok)\" : \"color:var(--warn)\"}>\n {todoStats().done}/{todoStats().total} done\n </span>\n </Show>\n <span class=\"muted\" style=\"text-transform:none;letter-spacing:0\">· shared checklist (you + agent)</span>\n </h3>\n <Show when={todoStats().total > 0}>\n <div class=\"bartrack\" style=\"margin-bottom:6px\">\n <div\n class={\"barfill \" + (todoStats().done === todoStats().total ? \"\" : \"warn\")}\n style={{ width: `${Math.round((todoStats().done / todoStats().total) * 100)}%` }}\n />\n </div>\n </Show>\n <TodoEditor\n draft={todoDraft()}\n viewMode={todoViewMode()}\n onDraft={(text: string) => {\n setTodoDraft(text);\n setTodoDirty(true);\n }}\n />\n <div style=\"display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:4px\">\n <IconBtn\n icon={todoViewMode() ? \"👁\" : \"✎\"}\n title={todoViewMode() ? \"rendered checklist\" : \"edit markdown\"}\n onClick={() => setTodoViewMode(!todoViewMode())}\n />\n <label\n class=\"muted\"\n style=\"display:flex;align-items:center;gap:4px;font-size:11.5px;white-space:nowrap;cursor:pointer\"\n title=\"queue a harness prompt telling the agent the task list changed\"\n >\n <input id=\"todo-notify\" type=\"checkbox\" checked /> notify agent\n </label>\n <button\n onclick={saveTodo}\n style=\"background:var(--ok);border:none;border-radius:6px;color:#fff;padding:4px 12px;cursor:pointer\"\n >✓ save tasks</button>\n </div>\n\n <h3 title=\"latest report_progress snapshot. The harness asks for one after real activity (time AND output gates); errors show under ⚠ problems\">📈 progress</h3>\n <Show\n when={sel()!.latestProgress}\n fallback={<div class=\"muted\">none yet — the harness asks for a report after real activity, and the agent can report_progress anytime</div>}\n >\n {(p) => (\n <div class=\"card prog\">\n <div class=\"progrow\"><b>doing</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(p().doing)} /></div>\n <Show when={p().recent}><div class=\"progrow\"><b>recent</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(p().recent)} /></div></Show>\n <Show when={p().problems}><div class=\"progrow warn\"><b>⚠ problems</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(p().problems)} /></div></Show>\n <Show when={p().next}><div class=\"progrow\"><b>next</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(p().next)} /></div></Show>\n <Show when={p().goalStatus}><div class=\"progrow\"><b>goal</b><span>{p().goalStatus}</span></div></Show>\n <div class=\"meta muted\">{relTime(p().ts)}</div>\n </div>\n )}\n </Show>\n\n <h3 title=\"cumulative billed totals · the cached pill counts tokens served from the provider's prompt cache (far cheaper) · context bar turns orange ≥70% and red ≥85% of the model window\">📊 runtime</h3>\n <div class=\"card runcard\">\n <div class=\"statgrid\">\n <div class=\"stat\" title=\"LLM turns taken this session\"><span>turns</span><b>{sel()!.stats.turns}</b></div>\n <div class=\"stat\" title=\"tool calls executed\"><span>tools</span><b>{sel()!.stats.toolCalls}</b></div>\n <div class=\"stat\" title=\"times old turns were summarized to free context\"><span>compacted</span><b>{sel()!.stats.compactions ?? 0}</b></div>\n </div>\n <div class=\"statrow\">\n <span class=\"k\">tokens</span>\n <b>{fmtK(sel()!.stats.inputTokens)} in / {fmtK(sel()!.stats.outputTokens)} out</b>\n <Show when={(sel()!.stats.cachedInputTokens ?? 0) > 0}>\n <span\n class=\"pill ok\"\n title={`${fmtK(sel()!.stats.cachedInputTokens)} tokens were served from the provider's prompt cache — billed far cheaper than fresh input`}\n >\n ⚡ {(Math.round((sel()!.stats.cachedInputTokens / Math.max(1, sel()!.stats.inputTokens)) * 1000) / 10)}% cached\n </span>\n </Show>\n </div>\n {/* session cost estimate — only when the provider publishes pricing\n (OpenRouter does; local endpoints usually don't) */}\n <Show when={(sel()!.stats.costUsd ?? 0) > 0}>\n <div\n class=\"statrow\"\n title={`≈ ${(sel()!.stats.costUsd ?? 0).toFixed(4)} this session, from the model's USD/token pricing and per-turn usage. Cached input is estimated at ~10% of the prompt rate; treat as an approximation, not an invoice.`}\n >\n <span class=\"k\">cost</span>\n <b>${costFmt(sel()!.stats.costUsd ?? 0)}</b>\n </div>\n </Show>\n <Show\n when={sel()!.ctx}\n keyed\n fallback={\n <div class=\"statrow\">\n <span class=\"k\">context</span>\n <span class=\"muted\">no window known for this model yet</span>\n </div>\n }\n >\n {(c) => {\n // ALL derived values are memos: this callback used to run ONCE\n // (unkeyed <Show> builds its children a single time), freezing\n // pct/bar/labels at the first snapshot — the gauge then showed\n // \"0% of 1m\" forever while the token count itself kept updating\n // (that count is a JSX expression, so it stayed reactive).\n const ctxVals = createMemo(() => {\n const cv = c;\n const modelMeta = models().find((m) => m.id === sel()!.model);\n const effectiveWindow = cv.window || modelMeta?.contextLength || 0;\n // one decimal place — 0.4% vs 0% matters on million-token windows\n const pct = effectiveWindow\n ? Math.min(999, (cv.usedTokens / effectiveWindow) * 100)\n : 0;\n return {\n usedTokens: cv.usedTokens,\n compactAt: cv.compactAt,\n compacting: cv.compacting,\n window: cv.window,\n effectiveWindow,\n pct,\n cls:\n !effectiveWindow ? \"\" : pct >= 85 ? \"crit\" : pct >= 70 ? \"warn\" : \"ok\",\n derivedBudget: effectiveWindow ? Math.round(effectiveWindow * 0.75) : 0,\n usingDerived: cv.compactAtIsManual !== true,\n };\n });\n const v = () => ctxVals();\n const fmtPct = (x: number) => {\n const r = Math.round(x * 10) / 10;\n return Number.isInteger(r) ? String(r) : r.toFixed(1);\n };\n return (\n <div\n class=\"ctxblock\"\n title=\"estimated live context vs the model's real window. Past the window, old turns are summarized into notes (compaction); the compact line below shows where that starts.\"\n >\n <div class=\"statrow\">\n <span class=\"k\">context</span>\n <b>~{fmtK(v().usedTokens)} tok</b>\n <Show when={v().effectiveWindow}>\n <span class={`pill ${v().cls}`}>\n {fmtPct(v().pct)}% of {fmtK(v().effectiveWindow)}\n </span>\n </Show>\n </div>\n <Show when={v().effectiveWindow}>\n <div class=\"bartrack\">\n <div class={`barfill ${v().cls}`} style={{ width: `${Math.min(100, v().pct)}%` }} />\n </div>\n </Show>\n <div class=\"statrow\" style=\"margin-top:4px\">\n <span class=\"k\">compact</span>\n <b>{fmtK(v().usingDerived ? v().derivedBudget : v().compactAt)} tok</b>\n <span class=\"muted\" style=\"font-size:11px;color:var(--dim)\">\n {v().usingDerived ? ` (75% of window)` : ` (manual override)`}\n </span>\n </div>\n <Show when={v().effectiveWindow}>\n <div class=\"bartrack\" style=\"margin-top:4px\">\n <div class={`barfill ${v().cls}`} style={{ width: `${Math.min(100, Math.round((v().usedTokens / v().derivedBudget) * 100))}%` }} />\n </div>\n </Show>\n <Show when={compacting() || v().compacting}>\n <div class=\"statrow\" title=\"a compaction pass is running right now — the summarizer's output streams in the timeline\">\n <span class=\"k\">🗜</span>\n <b>compacting…</b>\n <span class=\"muted\" style=\"font-size:11px;color:var(--acc)\">\n {compacting()?.phase ?? String(v().compacting)}\n </span>\n </div>\n </Show>\n <div class=\"ctrlrow\" style=\"margin-top:6px\">\n <label title=\"when on, older turns are automatically summarized when context exceeds the budget\">\n <input\n type=\"checkbox\"\n checked={sel()!.autoCompact !== false}\n onchange={(e) => {\n if (!selected()) return;\n api(`/api/agents/${selected()}/auto-compact`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ value: e.currentTarget.checked }),\n }).then(refreshAgents);\n }}\n />\n auto-compact\n </label>\n <span class=\"muted\" style=\"font-size:11.5px\">summarizes old turns when budget exceeded</span>\n </div>\n <div class=\"muted\" style=\"font-size:11px;margin-top:4px\">\n compaction starts around ~{fmtK(v().compactAt)} tok — older turns get summarized, recent ones stay intact\n </div>\n </div>\n );\n }}\n </Show>\n </div>\n\n <h3>🌿 branches <span class=\"muted\" style=\"text-transform:none;letter-spacing:0\">· click to filter the feed</span>\n {/* Say what the filter actually does. A fork INHERITS everything\n before its fork point, and that history is now included, so the\n view matches the context the agent actually reasons over. Say\n so explicitly, because a strict branch filter used to hide the\n inherited rows and read as data loss (#38). */}\n <Show when={branchFilter()}>\n <div class=\"muted\" style=\"font-size:11px;text-transform:none;letter-spacing:0\">\n showing <b>{branchFilter()}</b> and the history it inherited before forking\n </div>\n </Show>\n </h3>\n <For each={branches()}>\n {(b) => (\n <div\n class={\"branch-row\" + (b.branch === sel()!.branch || b.branch === branchFilter() ? \" cur\" : \"\")}\n title={b.branch === branchFilter() ? \"click to show all branches again\" : `show only ${b.branch}`}\n onclick={() => {\n const next = branchFilter() === b.branch ? null : b.branch;\n const changing = next !== branchFilter();\n setBranchFilter(next);\n if (!selected()) return;\n // A filter change is a new VIEW, exactly like a session switch:\n // bump the generation so an in-flight fetch for the previous\n // filter is discarded rather than landing in this one (#38).\n if (changing) {\n feedGeneration++;\n // and drop the rows that no longer belong — loadEvents\n // union-merges with `prev`, so without this the previous\n // branch's rows stayed on screen after filtering, which is\n // the \"the branch filter doesn't work\" report.\n setEvents([]);\n setEventsTotal(0);\n setOlderDone(false);\n }\n loadEvents(selected()!);\n }}\n >\n <span>{b.branch}{b.branch === sel()!.branch ? \" (current)\" : \"\"}</span>\n <span>{b.events} events</span>\n </div>\n )}\n </For>\n\n <h3>⏰ schedule <span class=\"muted\" style=\"text-transform:none;letter-spacing:0\">· cron tasks, all agents · edit in settings</span></h3>\n <Show\n when={tasks().length > 0}\n fallback={<div class=\"muted\">no scheduled tasks — add them in ⚙ settings (\"scheduled tasks\")</div>}\n >\n <For each={tasks()}>\n {(t) => (\n <div\n class={\"sched-row\" + (t.agent === selected() ? \" cur\" : \"\")}\n title={`${oneLine(t.prompt, 200)}\\nclick to open #${t.agent}`}\n onclick={() => select(t.agent)}\n >\n <div class=\"sched-top\">\n <b>{t.id}</b>\n <span class=\"muted\">@{t.agent}</span>\n <Show when={t.forked}><span title=\"runs on a forked branch so chatter stays off the main line\">⑂</span></Show>\n </div>\n <div class=\"sched-meta mono\">\n {t.schedule} → next {t.next ? relTime(t.next) : \"—\"}{t.last ? ` · last ${relTime(t.last)}` : \" · never ran\"}\n </div>\n <div class=\"sched-prompt muted\">{oneLine(t.prompt, 90)}</div>\n </div>\n )}\n </For>\n </Show>\n </>\n )}\n </Show>\n </aside>\n </div>\n </Show>\n <Show when={showNotifs()}>\n {/* notification center — pops from the sidebar footer, bottom-left */}\n {/* click-outside closer: an invisible full-screen layer under the panel */}\n <div class=\"notifbackdrop\" onclick={() => setShowNotifs(false)} />\n <div class=\"notifpanel\">\n <div class=\"notifhead\">\n notifications\n <span style=\"display:flex;gap:8px;align-items:center\">\n <Show when={notifs().length > 0}>\n <button class=\"editbtn\" onclick={() => setNotifs([])}>clear all</button>\n </Show>\n <button class=\"iconbtn\" title=\"close notifications\" onclick={() => setShowNotifs(false)}>✕</button>\n </span>\n </div>\n <Show\n when={notifs().length > 0}\n fallback={<div class=\"muted\" style=\"padding:10px\">nothing yet — progress, finishes, questions and errors will land here</div>}\n >\n <div class=\"notiflist\">\n <For each={notifs()}>\n {(n) => (\n <div\n class={\"notifitem \" + n.kind + (n.read ? \" read\" : \"\")}\n title={`from ${n.agentId}`}\n onclick={() => {\n // mark THIS one read, jump to its agent and scroll the\n // timeline to the exact message that raised it\n setNotifs((list) => list.map((x) => (x.id === n.id ? { ...x, read: true } : x)));\n if (selected() !== n.agentId && agents().some((a) => a.id === n.agentId)) select(n.agentId);\n setShowNotifs(false);\n if (n.eventId)\n // wait for the timeline swap before scrolling\n setTimeout(() => jumpToEvent(n.eventId!), selected() !== n.agentId ? 350 : 60);\n }}\n >\n <div class=\"nhead\">\n <span class=\"nicon\">{n.kind === \"finish\" ? \"✅\" : n.kind === \"question\" ? \"❓\" : n.kind === \"error\" ? \"⚠️\" : \"📈\"}</span>\n <span class=\"ntitle\">{n.title}</span>\n <span class=\"meta muted\">{relTime(new Date(n.at).toISOString())}</span>\n <button\n class=\"iconbtn nreadbtn\"\n title={n.read ? \"already read\" : \"mark as read\"}\n onclick={(e: MouseEvent) => {\n e.stopPropagation();\n setNotifs((list) => list.map((x) => (x.id === n.id ? { ...x, read: true } : x)));\n }}\n >{n.read ? \"✓\" : \"○\"}</button>\n </div>\n <Show when={n.body}>\n <div class=\"nbody\">{truncate(n.body, 160)}</div>\n </Show>\n </div>\n )}\n </For>\n </div>\n </Show>\n </div>\n </Show>\n <Show when={showNew()}>\n <NewAgentModal\n providers={Object.keys(cfg().providers ?? {})}\n onClose={() => setShowNew(false)}\n onCreated={(id) => { setShowNew(false); refreshAgents(); select(id); }}\n />\n </Show>\n <Show when={showCfg()}>\n <ConfigModal cfg={cfg()} onClose={() => setShowCfg(false)} onSaved={() => { loadCfg(); loadTasks(); }} />\n </Show>\n <Show when={editing()} fallback={null}>\n {(ed) => {\n const idx = () => events().findIndex((e) => e.id === ed().eventId);\n const afterCount = () => Math.max(0, events().length - idx() - 1);\n const [tail, setTail] = createSignal<\"summarize\" | \"discard\">(afterCount() > 0 ? \"summarize\" : \"discard\");\n return (\n <Modal title=\"edit prompt — forks the conversation\" onClose={() => setEditing(null)}>\n <form\n onsubmit={async (ev) => {\n ev.preventDefault();\n const ta = document.getElementById(\"edit-text\") as HTMLTextAreaElement;\n try {\n await api(`/api/agents/${selected()}/edit-prompt`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ eventId: ed().eventId, text: ta.value, tail: tail() }),\n });\n setEditing(null);\n refreshAgents();\n const id = selected();\n if (id) await select(id);\n } catch (ex) {\n alert(`edit failed: ${(ex as Error).message}`);\n }\n }}\n style=\"display:flex;flex-direction:column;gap:10px\"\n >\n <textarea id=\"edit-text\" class=\"mono w100\" rows={6} value={ed().text} />\n <Show when={afterCount() > 0}>\n <div>\n <div style=\"font-size:12.5px;margin-bottom:4px\">\n {afterCount()} event(s) came after this prompt — what should happen to them on the new branch?\n </div>\n <label style=\"display:flex;gap:6px;align-items:center;font-size:13px;color:var(--fg)\">\n <input type=\"radio\" name=\"tail\" checked={tail() === \"summarize\"} onchange={() => setTail(\"summarize\")} />\n summarize them into a note the agent can still read\n </label>\n <label style=\"display:flex;gap:6px;align-items:center;font-size:13px;color:var(--fg)\">\n <input type=\"radio\" name=\"tail\" checked={tail() === \"discard\"} onchange={() => setTail(\"discard\")} />\n discard them entirely (clean timeline)\n </label>\n </div>\n </Show>\n <div style=\"display:flex;justify-content:flex-end;gap:8px\">\n <button type=\"button\" onclick={() => setEditing(null)}>cancel</button>\n <button type=\"submit\" style=\"background:var(--acc);border:none;border-radius:6px;color:#fff;padding:6px 12px;cursor:pointer\">\n ⑂ fork & resend\n </button>\n </div>\n </form>\n </Modal>\n );\n }}\n </Show>\n\n </>\n );\n}\n\n/* ---------- one chat message row ---------- */\n/* ---------- live elapsed-time ticker for a still-running bash call ---------- */\nfunction BashElapsed(props: { startedAt: string; inline?: boolean; timeoutMs?: number }) {\n const start = new Date(props.startedAt).getTime();\n const [now, setNow] = createSignal(Date.now());\n onMount(() => {\n // 500ms tick is plenty for a seconds readout and stops with the row\n const t = setInterval(() => setNow(Date.now()), 500);\n onCleanup(() => clearInterval(t));\n });\n // shares fmtDur() with the finished rows so a running call and its result\n // read identically instead of flipping between two formats (#24)\n const txt = () => fmtDur(Math.max(0, now() - start));\n // inline: compact form for the folded summary (\"running… 1m 26s\")\n if (props.inline) {\n return (\n <span class=\"bashelapsed\">\n running… {txt()}\n {props.timeoutMs ? ` · timeout ${Math.round(props.timeoutMs / 1000)}s` : \"\"}\n </span>\n );\n } return <span class=\"bashelapsed\">{txt()} elapsed</span>;\n}\n\n/** Live elapsed-seconds readout for the current thinking stretch. */\nfunction ThinkingTimer(props: { startedAt: number }) {\n const [now, setNow] = createSignal(Date.now());\n onMount(() => {\n const t = setInterval(() => setNow(Date.now()), 500);\n onCleanup(() => clearInterval(t));\n });\n return <span class=\"thinktimer\">{fmtDur(Math.max(0, now() - props.startedAt))}</span>;\n}\n\n/* ---------- per-tool timeline rendering ---------- */\n\nfunction ToolRow(props: { e: Ev; res?: Ev; orphan?: boolean; agentActive?: boolean; onResize?: () => void }) {\n const e = props.e;\n const res = props.res;\n // STALE-RUN GUARD: if the agent is no longer running, an unpaired tool_call\n // cannot still be in flight (its result event was missed — e.g. logged while\n // the tab was hidden). Rendering it forever as \"running…\" was exactly that:\n // switching sessions and back \"fixed\" it because that reloaded the log.\n const staleDone = !props.agentActive && !res;\n const d = e.data ?? {};\n const name = String(d.name ?? \"tool\");\n const out = () => (res ? String(res.data?.result ?? \"\") : \"\");\n\n // per-tool summary line: [icon, label, hint]\n let icon = \"⚙\";\n let label = name;\n let hint: string | null = \"\";\n let body: any = <div class=\"mono\">{truncate(JSON.stringify(d.args ?? {}, null, 1), 2000)}</div>;\n\n const argStr = (k: string) => String(d.args?.[k] ?? \"\");\n // best-effort \"what was run\" text per tool: bash→the command, others→path/args\n const cmdText = () => {\n if (name === \"bash\") return argStr(\"command\");\n return argStr(\"path\") || JSON.stringify(d.args ?? {}, null, 1);\n };\n // effective timeout for live elapsed display — tools with defaults that the\n // model omitted (wait_children: 5 min) still show their real cap\n const effTimeout = () => {\n if (name === \"bash\") return Number(argStr(\"timeout_ms\")) || undefined;\n if (name === \"wait_children\") return Number(argStr(\"timeout_ms\")) || 300_000;\n return Number(argStr(\"timeout_ms\")) || undefined;\n };\n const codeBlock = (text: string, max = 1500) => (\n <pre class=\"mono toolbody\">{truncate(text, max)}</pre>\n );\n const resultBlock = (max = 4000) =>\n res ? (\n <>\n {codeBlock(out(), max)}\n <div class=\"meta\">\n {fmtDur(res.data?.durationMs)}\n {/* #46: a killed shell said nothing here beyond a generic · FAILED, so\n a TIMED OUT command still read as an ordinary completed run. */}\n {name === \"bash\"\n ? outcomeMarker(shellOutcome(res.data?.ok, String(res.data?.result ?? \"\")))\n : res.data?.ok === false\n ? \" · FAILED\"\n : \"\"}\n <CopyBtn text={out()} />\n </div>\n </>\n ) : (\n <div class=\"meta\">waiting for output…</div>\n );\n\n try {\n switch (name) {\n case \"bash\": {\n const cmd = argStr(\"command\");\n const isBg = d.args?.background === true;\n // background jobs return INSTANTLY (the shell keeps running) — a plain\n // \"$ cmd · 12ms\" row read as \"finished immediately\" and the job was\n // forgotten. Give them their own identity + the job id for bash_output.\n const bgJob = isBg ? (String(out()).match(/job (bg\\d+)/)?.[1] ?? \"\") : \"\";\n label = (isBg ? \"⏳ \" : \"$ \") + oneLine(cmd, 96);\n const timeoutMs = argStr(\"timeout_ms\") ? Number(argStr(\"timeout_ms\")) : undefined;\n // #46: a command the harness KILLED used to render as\n // `300ms · timeout 1s` — indistinguishable from a fast success, so the\n // row never read as finished. Name the outcome on the summary line.\n const outcome = shellOutcome(res?.data?.ok, res ? String(res.data?.result ?? \"\") : \"\");\n hint = res\n ? isBg\n ? `background job${bgJob ? ` ${bgJob}` : \"\"}${timeoutMs ? ` · timeout ${Math.round(timeoutMs / 1000)}s` : \"\"}`\n : shellHint({ outcome, durationMs: res.data?.durationMs, timeoutMs, fmtDur })\n : null; // live elapsed renders in the summary (below)\n body = (\n <>\n {isBg ? (\n <div class=\"meta bgjob-note\">\n runs in background — poll with <b>bash_output(job_id="{bgJob || \"?\"}")</b>\n {bgJob ? <> · kill with <b>action=\"kill\"</b></> : null}\n </div>\n ) : null}\n {cmd !== label.slice(isBg ? 2 : 2) ? codeBlock(cmd, 800) : null}\n {resultBlock(6000)}\n </>\n );\n break;\n }\n case \"read_file\": {\n label = argStr(\"path\") || \"(no path)\";\n const bits: string[] = [];\n if (argStr(\"pattern\")) bits.push(`grep /${oneLine(argStr(\"pattern\"), 40)}/`);\n if (Number(d.args?.offset) < 0) bits.push(`last ${-Number(d.args.offset)} lines`);\n else if (d.args?.offset) bits.push(`from L${d.args.offset}`);\n if (d.args?.limit) bits.push(`≤${d.args.limit} lines`);\n hint = bits.join(\" · \");\n body = resultBlock(6000);\n break;\n }\n case \"write_file\": {\n const content = String(d.args?.content ?? \"\");\n label = argStr(\"path\") || \"(no path)\";\n hint = `${fmtK(content.length)} bytes`;\n // content was rendered UNTRUNCATED — a few big write_file calls (the\n // 100KB+ ones real sessions accumulate) made those chats take seconds\n // to open and chew CPU on every prepend while scrolling back\n body = (\n <>\n {codeBlock(content, 1500)}\n {content.length > 1500 ? <div class=\"meta muted\">{fmtK(content.length)} bytes — open it from 🗂 files for the full view</div> : null}\n {res ? <div class=\"meta\">{oneLine(out(), 160)}</div> : <div class=\"meta\">writing…</div>}\n </>\n );\n break;\n }\n case \"edit_file\": {\n label = argStr(\"path\") || \"(no path)\";\n hint = d.args?.replace_all === true ? \"replace all\" : \"unique spot\";\n body = (\n <>\n <pre class=\"mono toolbody del\">{truncate(\"- \" + argStr(\"old_text\"), 900)}</pre>\n <pre class=\"mono toolbody add\">{\"+ \" + truncate(argStr(\"new_text\"), 900)}</pre>\n {res ? (\n <div class=\"meta\">\n {oneLine(out(), 120)} · {fmtDur(res.data?.durationMs)}\n </div>\n ) : (\n <div class=\"meta\">applying…</div>\n )}\n </>\n );\n break;\n }\n case \"apply_patch\": {\n const patchLines = argStr(\"patch\").split(\"\\n\").filter((l) => l && !/^---$/.test(l.trim()));\n const files = patchLines\n .map((l) => l.match(/^\\*\\*\\* (?:Add|Update|Delete) File: (.+)$/)?.[1])\n .filter(Boolean) as string[];\n label = files.length ? `${files.length} file${files.length > 1 ? \"s\" : \"\"}: ${oneLine(files.join(\", \"), 80)}` : \"patch\";\n // huge patches rendered one <div> PER LINE with no cap — multi-thousand-\n // line patches froze the feed. Show the head; the rest is noise here.\n const MAX_PATCH_LINES = 60;\n const shown = patchLines.slice(0, MAX_PATCH_LINES);\n body = (\n <>\n <pre class=\"mono toolbody patch\">\n {shown.map((l) => {\n const cls = l.startsWith(\"+\") ? \" add\" : l.startsWith(\"-\") ? \" del\" : /^\\*\\*\\*|^@@/.test(l) ? \" meta\" : \"\";\n return <div class={\"pline\" + cls}>{l.length > 240 ? l.slice(0, 240) + \"…\" : l}</div>;\n })}\n {patchLines.length > MAX_PATCH_LINES ? <div class=\"pline meta\">… {patchLines.length - MAX_PATCH_LINES} more lines</div> : null}\n </pre>\n {res ? <div class=\"meta\">{oneLine(out().split(\"\\n\")[0] ?? \"\", 140)}{res.data?.ok === false ? \" · FAILED\" : \"\"}</div> : <div class=\"meta\">validating…</div>}\n </>\n );\n break;\n }\n case \"list_dir\": {\n label = argStr(\"path\") || \".\";\n body = resultBlock(4000);\n break;\n }\n case \"read_url\": {\n let host = argStr(\"url\");\n try { const u = new URL(host); host = u.host + u.pathname; } catch { /* keep raw */ }\n label = oneLine(host, 70);\n hint = \"web\";\n body = (\n <>\n <div class=\"meta\">\n <Show\n when={/^https?:/i.test(argStr(\"url\"))}\n fallback={<span class=\"muted\">{oneLine(argStr(\"url\"), 80)}</span>}\n >\n <a href={argStr(\"url\")} target=\"_blank\" rel=\"noopener noreferrer\" referrerPolicy=\"no-referrer\">open ↗</a>\n </Show>\n </div>\n {resultBlock(3000)}\n </>\n );\n break;\n }\n case \"bash_output\": {\n // reading vs killing reads differently at a glance\n const action = argStr(\"action\") || \"read\";\n const jobId = argStr(\"job_id\") || \"(?)\";\n label = `bash_output ${jobId}`;\n hint = action;\n body = resultBlock(4000);\n break;\n }\n case \"load_skill\": {\n label = `skill: ${argStr(\"name\")}`;\n const mdBody = out().replace(/^---\\r?\\n[\\s\\S]*?\\r?\\n---\\r?\\n?/, \"\"); // strip frontmatter\n body = res ? (\n <>\n <div class=\"content\" innerHTML={renderMarkdown(mdBody)} />\n <div class=\"meta\">{fmtDur(res.data?.durationMs)}</div>\n </>\n ) : (\n <div class=\"meta\">loading…</div>\n );\n break;\n }\n case \"save_skill\": {\n label = `skill: ${argStr(\"name\")}`;\n hint = oneLine(argStr(\"description\"), 60);\n const files = Array.isArray(d.args?.files) ? d.args.files.map((f: any) => f?.name).filter(Boolean) : [];\n body = (\n <>\n {files.length ? <div class=\"meta\">bundled: {files.join(\", \")}</div> : null}\n {res ? <div class=\"meta\">{oneLine(out(), 160)} · {fmtDur(res.data?.durationMs)}</div> : <div class=\"meta\">saving…</div>}\n </>\n );\n break;\n }\n }\n } catch {\n /* fall back to the generic view on anything unexpected */\n }\n\n return (\n <details\n class={\"embed\" + (res ? (res.data?.ok === false ? \" fail\" : \" done\") : staleDone ? \" done\" : \" running\")}\n title={`${name}${hint ? \" — \" + hint : \"\"}`}\n onToggle={(ev: ToggleEvent) => {\n // expanding/collapsing changes the feed height; while following, the\n // bottom line must stay pinned instead of drifting out of view\n if ((ev.target as HTMLDetailsElement).open) props.onResize?.();\n }}\n >\n <summary>\n <b>{icon} {label}</b>\n <Show when={e.data?.actor}>\n <span class=\"actor\">@{String(e.data.actor)}</span>\n </Show>\n <span class=\"meta\">\n {res\n ? hint || \"\"\n : staleDone\n ? \"(result missed)\"\n : name === \"bash\" || effTimeout()\n ? // any tool with a timeout shows live elapsed + its cap\n <BashElapsed startedAt={e.ts} inline timeoutMs={effTimeout()} /> // visible while folded\n : \"running…\"}\n </span>\n {/* dedicated copy buttons: the generic header \"copy\" copied \"\" on tool\n rows (rawOf only knows prompts/messages) — now the command that ran\n and its output each have their own button */}\n <span class=\"toolcopy\">\n <CopyBtn text={cmdText()} label=\"⧉ cmd\" title={`copy the ${name} arguments`} />\n <Show when={res}>\n <CopyBtn text={out()} label=\"⧉ out\" title=\"copy this tool's full output\" />\n </Show>\n </span>\n </summary>\n {body}\n </details>\n );\n}\n\n/** The un-rendered source text of a chat row — what \"copy raw\" should give. */\nfunction rawOf(e: Ev): string {\n const d = e.data ?? {};\n if (e.type === \"prompt\") return String(d.text ?? \"\");\n if (e.type === \"message\") {\n // include reasoning when present, separated, so nothing is lost\n const r = typeof d.reasoning === \"string\" && d.reasoning.trim()\n ? `<reasoning>\\n${d.reasoning}\\n</reasoning>\\n\\n`\n : \"\";\n return `${r}${String(d.content ?? \"\")}`;\n }\n if (e.type === \"tool_call\") {\n // the header copy button used to sit on tool rows too and copied \"\"\n // (rawOf only knew prompts/messages) — tool rows get dedicated\n // command/output buttons inside ToolRow instead, so nothing here\n return \"\";\n }\n return \"\";\n}\n\nfunction MessageRow(props: { e: Ev; prev?: Ev; res?: Ev; orphan?: boolean; onEdit?: () => void; onCancel?: () => void; onOption?: (text: string) => void; answeredIds?: () => Set<string>; onAnswered?: (callId: string) => void; agentActive?: boolean; onResize?: () => void }) {\n const e = props.e;\n const a = authorOf(e);\n // Group consecutive rows from the same ACTOR. The actor for tool events is\n // THE AGENT (they are its actions) — keying by tool name broke grouping as\n // soon as two different tools ran back to back (bash→read_file→bash).\n const actorKey = (ev: Ev): string => {\n const d = ev.data ?? {};\n if (ev.data?.actor) return `sub:${String(ev.data.actor)}`;\n if (ev.type === \"tool_call\" || ev.type === \"tool_result\") return \"agent-tools\";\n if (ev.type === \"prompt\") return `src:${String(d.source ?? \"user\")}`;\n return `type:${ev.type}`;\n };\n // A PENDING (queued) message must NEVER group with the row above it (#49).\n //\n // The cancel affordance lives inside the msg-head, and that head is only\n // rendered when !grouped — so a queued message that happened to follow a\n // SENT user prompt (same actor key, same author) lost its ✕ entirely and\n // could not be withdrawn. Since #37 deliberately places echoes BELOW settled\n // rows, \"sent → pending\" is now the NORMAL case rather than an edge case.\n const grouped =\n props.prev &&\n !e.data?.pending &&\n !props.prev.data?.pending &&\n !e.data?.cancelled &&\n actorKey(props.prev) === actorKey(e) &&\n authorOf(props.prev).name === a.name &&\n e.session === props.prev.session &&\n e.branch === props.prev.branch;\n\n // non-chat-looking events become divider lines\n if (e.type === \"fork\") {\n const d = e.data ?? {};\n return (\n <div class=\"divider-msg\">\n ⑂ forked from {String(d.fromBranch ?? \"?\")} → {String(d.newBranch ?? e.branch)}\n </div>\n );\n }\n if (e.type === \"goal\") {\n // #41: the finish→audit→continue lifecycle used to render as bare labels\n // with an EMPTY body (\"🎯 goal audit:\"), hiding the verification contract\n // and the verdict. Every branch now carries a real detail, and \"done\" is\n // labelled as PENDING audit because it is logged before the audit runs.\n //\n // #51: the label and this card were children of `.divider-msg`, which is\n // `display:flex` with ::before/::after filling the slack — so the card was\n // a FLEX SIBLING of the label and everything shared one row, with the\n // card's left edge wherever the flex layout put it. `.goalline` stacks them\n // instead: label on its own line, card beneath, both aligned to the same\n // left edge as every other card in the feed.\n const line = goalLine(e.data ?? {});\n return (\n <div class={\"goalline \" + (line.tone === \"err\" ? \"err\" : line.tone === \"warn\" ? \"warn\" : \"\")}>\n <div class=\"goalline-label\">{line.label}</div>\n {/* an empty detail means \"nothing real to show\" — the label stands\n alone rather than getting a placeholder card (#51). `hasCard` is\n the explicit flag, so this is never a guess from an empty string. */}\n <Show when={line.hasCard}>\n <div\n class={\"card \" + (line.tone === \"ok\" ? \"auditcard ok\" : line.tone === \"warn\" ? \"auditcard\" : \"verifycard\")}\n innerHTML={\n line.markdown\n ? renderMarkdown(line.detail)\n : renderMarkdown(`\\`\\`\\`\\n${line.detail}\\n\\`\\`\\``)\n }\n />\n </Show>\n </div>\n );\n }\n if (e.type === \"todo\") {\n return <div class=\"divider-msg\">✅ tasks updated ({String(e.data?.by ?? \"human\")})</div>;\n }\n if (e.type === \"state\") {\n if (e.data.from === e.data.to) return null;\n return (\n <div class={\"divider-msg\" + (e.data.to === \"error\" ? \" err\" : \"\")}>\n {e.data.from} → {e.data.to}{e.data.reason ? ` — ${e.data.reason}` : \"\"}\n </div>\n );\n }\n // system_note MUST resolve here (before the .msg wrapper): the wrapper\n // always renders an avatar + empty body, so notes handled only inside\n // SwitchContent appeared as mysterious EMPTY rows on the timeline.\n // Most notes are log-only; these few earn a visible divider/embed row.\n if (e.type === \"system_note\") {\n const ev = String(e.data?.event ?? \"\");\n if (ev === \"runaway-detected\") {\n return (\n <div class=\"embed fail\" title={`${e.data?.failures} consecutive tool failures hit the configured limit (${e.data?.limit})`}>\n <div class=\"mono\">🛑 runaway: {String(e.data?.failures)} tool failures in a row (limit {String(e.data?.limit)})</div>\n <div class=\"meta\">last: {String(e.data?.lastTool)} — {String(e.data?.lastError ?? \"\").slice(0, 200)}</div>\n </div>\n );\n }\n if (ev === \"error-retry\") {\n return (\n <div class=\"embed warn-embed\" title=\"a round-fatal API error occurred; auto-retry is waiting, then a fresh round starts (onError: retry)\">\n <div class=\"mono\">↻ API error — retrying (attempt {String(e.data?.attempt)}) in {Math.round(Number(e.data?.waitMs) / 1000)}s…</div>\n </div>\n );\n }\n if (ev === \"background-exit\") {\n const failed = e.data?.failed === true;\n const secs = Math.round(Number(e.data?.durationMs ?? 0) / 1000);\n return (\n <div class={\"divider-msg\" + (failed ? \" err\" : \"\")} title={String(e.data?.cmd ?? \"\")}>\n {(failed ? \"⚠ background job \" : \"✓ background job \") +\n String(e.data?.jobId ?? \"?\") + \" \" +\n (failed ? `FAILED (exit ${String(e.data?.code ?? \"?\")})` : `finished (${secs}s)`)}\n </div>\n );\n }\n if (ev === \"context-compacted\") {\n return (\n <div class=\"divider-msg\">\n 🗜 compacted: {String(e.data?.tokensBefore ?? \"?\")} → {String(e.data?.tokensAfter ?? \"?\")} tok ({String(e.data?.mode ?? \"\")})\n </div>\n );\n }\n // #56: the START of the pass, logged before the (slow) summarizer runs so\n // the timeline shows the conversation being rewritten rather than going\n // quiet for the whole summarize. The completion divider above carries the\n // after-figures; this one only claims what was already known.\n if (ev === \"context-compaction-started\") {\n return (\n <div class=\"divider-msg\" title=\"compaction is rewriting older history — the agent is not stuck\">\n 🗜 compacting: summarizing {String(e.data?.messages ?? \"?\")} earlier messages from{\" \"}\n {String(e.data?.tokensBefore ?? \"?\")} tok ({String(e.data?.reason ?? \"auto\")})…\n </div>\n );\n }\n return null; // log-only notes (prompt-delivered, llm-retry, …)\n }\n\n return (\n <div\n class={\"msg\" + (grouped ? \" grouped\" : \"\") + (e.data?.pending ? \" pending\" : \"\") + (e.data?.cancelled ? \" withdrawn\" : \"\")}\n data-eid={e.id}\n >\n {/* grouped rows keep the same geometry as the row that started the\n run — same avatar slot, but EMPTY (no faded ghost icon): a column of\n faint 🧩s read as separate \"sub messages\" instead of continuation\n lines. Hover still shows time+branch via the title. */}\n <div\n class={\"avatar avghost\" + (grouped ? \" ghosted\" : \"\")}\n style={{ background: grouped ? \"transparent\" : a.color + \"33\", border: grouped ? \"1px solid transparent\" : `1px solid ${a.color}66` }}\n title={grouped ? `${fmtTs(e.ts)} · ${e.branch}` : undefined}\n >\n {grouped ? \"\" : a.icon}\n </div>\n <div class=\"msg-body\">\n {grouped && <span class=\"grouptime\" title={`${fmtTs(e.ts)} · ${e.branch}`} />}\n <Show when={!grouped}>\n <div class=\"msg-head\">\n <span class=\"author\" style={{ color: a.color }}>{a.name}</span>\n <Show when={e.data?.actor}>\n <span class=\"actor\">@{String(e.data.actor)}</span>\n </Show>\n <span class=\"ts\">{e.data?.pending ? \"queued…\" : e.data?.cancelled ? \"withdrawn\" : fmtTs(e.ts)}</span>\n <span class=\"ts\">{e.branch}</span>\n <Show when={props.onCancel}>\n <button\n class=\"editbtn\"\n title=\"withdraw this message — it has not reached the model yet; the text goes back to the input box\"\n onclick={(ev: MouseEvent) => { ev.stopPropagation(); props.onCancel!(); }}\n >✕ cancel</button>\n </Show>\n {/* tool rows have no copyable message body — their command/output\n buttons live inside ToolRow; rendering the header button anyway\n produced a \"copy\" that silently copied the empty string */}\n <Show when={e.type !== \"tool_call\"}>\n <CopyBtn text={rawOf(e)} label=\"⧉ copy\" title=\"copy the RAW text of this message (no markdown rendering)\" />\n </Show>\n <Show when={props.onEdit}>\n <button\n class=\"editbtn\"\n title=\"edit this prompt — forks the conversation here (later events are dropped or summarized)\"\n onclick={(ev: MouseEvent) => { ev.stopPropagation(); props.onEdit!(); }}\n >✎ edit</button>\n </Show>\n </div>\n </Show>\n\n <SwitchContent e={e} res={props.res} orphan={props.orphan} onOption={props.onOption} answeredIds={props.answeredIds} onAnswered={props.onAnswered} agentActive={props.agentActive} onResize={props.onResize} />\n </div>\n </div>\n );\n}\n\n/**\n * Free-text answer row under an ask_user embed. The agent's reply arrives as\n * a regular user prompt, so this just routes through onOption — but it lets\n * the operator answer with something that wasn't among the offered options.\n */\nfunction FreeTextAnswer(props: { answered: boolean; onOption?: (t: string) => void }) {\n const [val, setVal] = createSignal(\"\");\n const submit = () => {\n const t = val().trim();\n if (!t || props.answered) return;\n setVal(\"\");\n props.onOption?.(t);\n };\n return (\n <div class=\"qfree\">\n <input\n type=\"text\"\n placeholder={props.answered ? \"answered\" : \"or type your own answer…\"}\n disabled={props.answered}\n value={val()}\n oninput={(e) => setVal(e.currentTarget.value)}\n onkeydown={(e: KeyboardEvent) => {\n // same Safari IME caveat as the main composer: isComposing is\n // already false by the time Enter's keydown arrives\n if (e.key === \"Enter\" && !e.isComposing) { e.preventDefault(); submit(); }\n }}\n />\n <button disabled={props.answered || !val().trim()} onclick={submit}>reply</button>\n </div>\n );\n}\n\nfunction SwitchContent(props: { e: Ev; res?: Ev; orphan?: boolean; onOption?: (text: string) => void; answeredIds?: () => Set<string>; onAnswered?: (callId: string) => void; agentActive?: boolean; onResize?: () => void }) {\n const e = props.e;\n switch (e.type) {\n case \"prompt\": {\n // image attachments render as thumbnails under the text (logged events\n // carry data.images; optimistic echoes carry data.pending images array)\n const imgs: string[] = e.data?.images ?? [];\n return (\n <>\n <div class=\"content\" innerHTML={renderMarkdownCached(String(e.data.text ?? \"\"))} />\n <Show when={imgs.length}>\n <div class=\"promptimgs\">\n <For each={imgs}>{(src) => <img src={src} class=\"promptimg\" alt=\"attachment\" />}</For>\n </div>\n </Show>\n </>\n );\n }\n case \"message\":\n return (\n <>\n <Show when={typeof e.data.reasoning === \"string\" && e.data.reasoning.trim()}>\n <details class=\"reasoning\">\n <summary>💭 reasoning{String(e.data.reasoning).length > 4000 ? ` (${fmtK(String(e.data.reasoning).length)} — truncated)` : \"\"}</summary>\n <div class=\"mono\">{truncate(String(e.data.reasoning), 8000)}</div>\n </details>\n </Show>\n <div class=\"content\" innerHTML={renderMarkdownCached(String(e.data.content ?? \"\"))} />\n <Show when={e.data.interrupted}>\n <div class=\"interrupted\">⚠ interrupted — partial output kept</div>\n </Show>\n <Show when={e.data.final}>\n <div class=\"msgfoot\"><CopyBtn text={String(e.data.content ?? \"\")} /><span>copy summary</span></div>\n </Show>\n </>\n );\n case \"tool_call\":\n return <ToolRow e={e} res={props.res} orphan={props.orphan} agentActive={props.agentActive} onResize={props.onResize} />;\n case \"tool_result\": {\n // #54: a result whose call is no longer in the events window. It used to\n // render as a bare output blob with no tool name and no command, which\n // read as \"the run never finished\". Render the SAME completed tool row a\n // paired result gets, from the result's own metadata, so it is\n // indistinguishable from one that survived in the window.\n const out = String(e.data.result ?? \"\");\n const name = String(e.data.name ?? \"tool\");\n const ok = e.data.ok !== false;\n return (\n <details class={\"embed \" + (ok ? \"\" : \"fail\")} open={props.orphan}>\n <summary>\n <span class=\"iconmeta\">⚙</span>\n <span class=\"meta\">\n {/* the call is gone, so the command is too — show the tool and\n the outcome rather than inventing an argument that was never\n logged here */}\n {name === \"bash\" ? `$ (bash, call evicted)` : name}\n </span>\n <CopyBtn text={out} />\n </summary>\n <div class=\"mono\">{truncate(out, 4000)}</div>\n <div class=\"meta\">\n {fmtDur(e.data.durationMs)}\n {name === \"bash\"\n ? outcomeMarker(shellOutcome(e.data.ok, out))\n : ok\n ? \"\"\n : \" · FAILED\"}\n </div>\n <Show when={props.orphan}>\n <div class=\"meta\">its call is no longer in the loaded events — the run itself finished</div>\n </Show>\n </details>\n );\n }\n case \"decision\": {\n const alts = Array.isArray(e.data?.alternatives) ? (e.data.alternatives as string[]) : [];\n return (\n <details class=\"embed decision\">\n <summary>\n <b>📌 <span class=\"content inline-md\" innerHTML={renderMarkdownCached(String(e.data?.decision ?? \"\"))} /></b>\n <span class=\"meta\">decision logged</span>\n </summary>\n {/* model-written markdown, same as progress bodies */}\n <div class=\"content\" innerHTML={renderMarkdownCached(String(e.data?.rationale ?? \"\"))} />\n <Show when={alts.length}>\n <div class=\"content muted\">Rejected: {alts.join(\" / \")}</div>\n </Show>\n </details>\n );\n }\n case \"question\": {\n const opts = Array.isArray(e.data?.options) ? (e.data.options as string[]) : [];\n // a question is ANSWERED once its tool_result exists in the log (ask_user\n // parks the loop; the reply lands as a user prompt and the tool_result\n // closes the call). Answered questions keep their options visible but\n // disabled — tapping them twice used to send duplicate prompts.\n const callId = e.data?.callId ? String(e.data.callId) : \"\";\n // called inside the row, so it tracks the signal reactively (#55)\n const answered = () => props.answeredIds?.().has(callId) ?? false;\n return (\n <div class={\"embed question\" + (answered() ? \" answered\" : \"\")}>\n {/* questions are model-written and often carry markdown (code refs,\n lists) — render them like progress embeds instead of dumping raw */}\n <div>❓ <div class=\"content inline-md\" innerHTML={renderMarkdownCached(String(e.data?.question ?? \"\"))} /></div>\n <Show when={answered()}>\n <div class=\"meta\" style=\"color:var(--ok)\">✓ answered — continuing below</div>\n </Show>\n <Show when={opts.length > 0}>\n <div class=\"qopts\">\n <For each={opts}>\n {(o) => (\n <button\n class=\"qopt\"\n disabled={answered()}\n onclick={() => {\n // #55: mark it answered NOW, before the POST. The derived\n // set only catches up when the prompt event is logged, and\n // until then the buttons stayed live — so a second click\n // sent a duplicate prompt.\n props.onAnswered?.(callId);\n const actor = e.data?.actor;\n if (actor) {\n void api(`/api/agents/${encodeURIComponent(String(actor))}/prompt`, {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ text: o, start: true }),\n }).then(() => flashHint(`→ answered @${String(e.data.actor)}`)).catch(() => flashHint(\"answer failed\"));\n } else {\n props.onOption?.(o);\n }\n }}\n >{o}</button>\n )}\n </For>\n </div>\n </Show>\n <FreeTextAnswer answered={answered()} onOption={props.onOption} />\n </div>\n );\n }\n case \"progress\":\n return (\n <div class=\"embed\" style=\"border-color: var(--ok)\">\n {/* progress bodies are model-written markdown — render them, don't\n dump raw text (structured fields keep their labels) */}\n <div>📈 <div class=\"content inline-md\" innerHTML={renderMarkdownCached(String(e.data.doing ?? \"\"))} /></div>\n <Show when={e.data.goalStatus}><div class=\"progrow\"><b>goal</b><span>{String(e.data.goalStatus)}</span></div></Show>\n <Show when={e.data.recent}><div class=\"progrow\"><b>recent</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(String(e.data.recent))} /></div></Show>\n <Show when={e.data.problems}><div class=\"progrow warn\"><b>⚠ problems</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(String(e.data.problems))} /></div></Show>\n <Show when={e.data.next}><div class=\"progrow\"><b>next</b><span class=\"content inline-md\" innerHTML={renderMarkdownCached(String(e.data.next))} /></div></Show>\n </div>\n );\n case \"error\":\n return <div class=\"embed fail\"><div class=\"mono\">⚠ {String(e.data.message ?? \"\")}</div></div>;\n case \"compaction\":\n return (\n <details class=\"embed compaction\">\n <summary>\n <b>🗜 context compacted</b>\n <span class=\"meta\">\n {String(e.data.mode ?? \"\")} · {fmtK(Number(e.data.tokensBefore ?? 0))} → {fmtK(Number(e.data.tokensAfter ?? 0))} tok\n {\" · \"}{e.data.summarized ? `${e.data.summarized} summarized` : `${e.data.dropped} dropped`}\n </span>\n </summary>\n <Show when={e.data.summary}>\n <div class=\"vtitle\" style=\"margin-top:6px\">what the agent kept</div>\n <div class=\"content\" innerHTML={renderMarkdownCached(String(e.data.summary))} />\n </Show>\n </details>\n );\n default:\n return <div class=\"content muted\">{truncate(JSON.stringify(e.data), 200)}</div>;\n }\n}\n\nfunction truncate(s: string, n: number): string {\n return s.length > n ? s.slice(0, n) + \" …\" : s;\n}\n\n/** \"in 5m\" / \"3m ago\" — for schedule next/last columns */\nfunction relTime(iso: string): string {\n const ms = new Date(iso).getTime() - Date.now();\n const abs = Math.abs(ms);\n const unit =\n abs < 90_000 ? `${Math.round(abs / 1000)}s`\n : abs < 5_400_000 ? `${Math.round(abs / 60_000)}m`\n : `${(abs / 3_600_000).toFixed(1)}h`;\n return ms >= 0 ? `in ${unit}` : `${unit} ago`;\n}\n\n/** compact token counts with k/m/b suffixes: 12345 → \"12k\", 2.2M → \"2.2m\" */\nfunction fmtK(n: number): string {\n if (n >= 1e9) return `${+(n / 1e9).toFixed(1)}b`;\n if (n >= 1e6) return `${+(n / 1e6).toFixed(1)}m`;\n if (n >= 10_000) return `${Math.round(n / 1000)}k`;\n if (n >= 1000) return `${(n / 1000).toFixed(1)}k`;\n return String(n);\n}\n\n/** session cost in USD: cents below $1, whole dollars above — no noise */\nfunction costFmt(usd: number): string {\n if (usd >= 100) return Math.round(usd).toLocaleString();\n if (usd >= 10) return usd.toFixed(1);\n if (usd >= 1) return usd.toFixed(2);\n if (usd >= 0.01) return usd.toFixed(3);\n return usd.toFixed(4);\n}\n\n/** single-line preview with collapsed whitespace */\nfunction oneLine(s: string, n: number): string {\n const line = s.replace(/\\s+/g, \" \").trim();\n return truncate(line, n);\n}\n\n/* ---------- copy-to-clipboard button ---------- */\n/** Centered icon button — the shared home for emoji-glyph buttons. Emoji\n * baselines sit off-center in plain text buttons, so every icon button\n * should render through this (inline-flex centers the glyph properly). */\nfunction IconBtn(props: {\n icon: string;\n title: string;\n onClick?: (e: MouseEvent) => void;\n active?: boolean;\n class?: string;\n style?: string;\n}) {\n return (\n <button\n type=\"button\"\n class={\"iconbtn\" + (props.active ? \" active\" : \"\") + (props.class ? \" \" + props.class : \"\")}\n title={props.title}\n onclick={props.onClick}\n style={props.style}\n >\n <span class=\"iconbtn-glyph\">{props.icon}</span>\n </button>\n );\n}\n\n/** Copy `text` using the best path this environment actually supports.\n *\n * #52 — every Copy button was dead. `navigator.clipboard` only exists in a\n * SECURE context, and teapot serves the UI over plain `http://127.0.0.1` by\n * default, so the property is ABSENT — `navigator.clipboard.writeText(text)`\n * threw synchronously, before a promise existed, so the `.catch()` fallback\n * written underneath it never ran and the legacy path was dead code.\n *\n * So: feature-DETECT rather than assume. `clipboard` may be undefined, null,\n * or present without a usable `writeText` (older browsers, embedded webviews),\n * and a present API may still reject on permission or an unfocused document.\n * Each of those must reach the legacy path, and a genuine failure must say so.\n */\nasync function copyText(text: string): Promise<\"copied\" | \"unsupported\" | \"failed\"> {\n if (!text) return \"unsupported\";\n const writeText = typeof navigator !== \"undefined\" ? navigator.clipboard?.writeText : undefined;\n if (typeof writeText === \"function\") {\n try {\n await writeText.call(navigator.clipboard, text);\n return \"copied\";\n } catch {\n /* rejected (denied, unfocused, insecure) — try the legacy path */\n }\n }\n // legacy path, used when the API is missing OR refused\n let ta: HTMLTextAreaElement | null = null;\n try {\n ta = document.createElement(\"textarea\");\n ta.value = text;\n ta.style.position = \"fixed\";\n ta.style.opacity = \"0\";\n document.body.appendChild(ta);\n ta.select();\n return document.execCommand(\"copy\") ? \"copied\" : \"failed\";\n } catch {\n return \"failed\";\n } finally {\n // ALWAYS remove the staging textarea: a throw from execCommand used to skip\n // the cleanup, leaving an invisible element in the document once per failed\n // copy — and they accumulate for the life of the tab\n ta?.remove();\n }\n}\n\nfunction CopyBtn(props: { text: string; label?: string; title?: string }) {\n const [done, setDone] = createSignal(false);\n const [failed, setFailed] = createSignal(false);\n const copy = (e: MouseEvent) => {\n e.preventDefault(); // <summary> buttons must not toggle the details row\n e.stopPropagation();\n void copyText(props.text ?? \"\").then((result) => {\n if (result === \"unsupported\" || result === \"failed\") {\n setFailed(true); // nothing copied — say so instead of a silent no-op\n setTimeout(() => setFailed(false), 1200);\n return;\n }\n setDone(true);\n setTimeout(() => setDone(false), 900);\n });\n };\n return (\n <button\n class=\"copybtn\"\n title={props.title ?? \"copy to clipboard\"}\n onclick={copy}\n >{done() ? \"✓\" : failed() ? \"✗\" : props.label ?? \"⧉\"}</button>\n );\n}\n\n/* ---------- modal shell ---------- */\nfunction Modal(props: { title: string; onClose: () => void; children: any }) {\n return (\n <div class=\"overlay\" onclick={(e: Event) => e.target === e.currentTarget && props.onClose()}>\n <div class=\"modal\">\n <div class=\"modal-head\">\n <b>{props.title}</b>\n <button class=\"iconbtn\" onclick={props.onClose}>✕</button>\n </div>\n {props.children}\n </div>\n </div>\n );\n}\n\n/* ---------- new agent ---------- */\nfunction NewAgentModal(props: { providers: string[]; onClose: () => void; onCreated: (id: string) => void }) {\n const [dir, setDir] = createSignal(\"~\");\n const [entries, setEntries] = createSignal<string[]>([]);\n const [name, setName] = createSignal(\"\");\n const [provider, setProvider] = createSignal(props.providers[0] ?? \"\");\n const [model, setModel] = createSignal(\"\");\n const [err, setErr] = createSignal(\"\");\n\n // The server resolves each requested path (absolute + ~ expansion) and\n // returns the RESOLVED path as d.path plus its parent. Keep those in state:\n // the old ↑ button sent a bare \"..\", which the server resolved against ITS\n // cwd — so going up never worked from the picker.\n async function browse(p?: string) {\n const d = await api(`/api/fs?path=${encodeURIComponent(p ?? dir())}`);\n setDir(d.path);\n setParent(d.parent ?? \"\");\n setEntries(d.entries ?? []);\n }\n onMount(() => browse(dir()));\n const [parent, setParent] = createSignal(\"\");\n\n const create = async (e: Event) => {\n e.preventDefault(); setErr(\"\");\n try {\n const r = await api(\"/api/agents\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n // start: false → the agent stays lazy/stopped; the first prompt (or\n // ▶ start) kicks off the loop, so no API call fires on an empty agent\n body: JSON.stringify({ workspace: dir(), id: name(), provider: provider() || undefined, model: model() || undefined, start: false }),\n });\n props.onCreated(r.agent.id);\n } catch (ex) { setErr(String((ex as Error).message)); }\n };\n\n return (\n <Modal title=\"new agent\" onClose={props.onClose}>\n <form onsubmit={create} style=\"display:flex;flex-direction:column;gap:10px\">\n <label>workspace directory\n <div style=\"display:flex;gap:6px\">\n <input type=\"text\" class=\"w100 mono\" value={dir()} oninput={(e) => setDir(e.currentTarget.value)} />\n <button type=\"button\" onclick={() => browse(dir())}>go</button>\n <button type=\"button\" title=\"parent directory\" onclick={() => parent() ? browse(parent()) : browse(\"..\")}>↑</button>\n </div>\n </label>\n <div class=\"dirlist\">\n <For each={entries()}>{(n) =>\n <div class=\"direntry\" onclick={() => browse(`${dir()}/${n}`.replace(/\\/+/g, \"/\"))}>📁 {n}</div>\n }</For>\n </div>\n <div style=\"display:flex;gap:10px\">\n <label style=\"flex:1\">agent name <input type=\"text\" placeholder=\"(directory name)\" value={name()} oninput={(e) => setName(e.currentTarget.value)} /></label>\n <label style=\"flex:0 1 auto;min-width:0\">provider\n <select value={provider()} onchange={(e) => setProvider(e.currentTarget.value)}>\n <For each={props.providers}>{(p) => <option>{p}</option>}</For>\n </select>\n </label>\n <label style=\"flex:1\">model <input type=\"text\" placeholder=\"(provider default)\" value={model()} oninput={(e) => setModel(e.currentTarget.value)} /></label>\n </div>\n <Show when={err()}><span style=\"color:var(--err);font-size:13px\">{err()}</span></Show>\n <button type=\"submit\" style=\"align-self:flex-end\">create</button>\n </form>\n </Modal>\n );\n}\n\n/* ---------- workspace file tree ---------- */\n\ninterface TreeNode {\n name: string;\n path: string;\n dir: boolean;\n size?: number;\n ignored?: boolean;\n}\n\ntype MediaKind = \"image\" | \"video\" | \"audio\";\nconst IMAGE_EXT = new Set([\"png\", \"jpg\", \"jpeg\", \"gif\", \"webp\", \"svg\", \"bmp\", \"ico\", \"avif\"]);\nconst VIDEO_EXT = new Set([\"mp4\", \"webm\", \"mov\", \"mkv\", \"avi\", \"m4v\"]);\nconst AUDIO_EXT = new Set([\"mp3\", \"wav\", \"ogg\", \"m4a\", \"flac\", \"aac\", \"opus\"]);\nfunction ficon(name: string): string {\n const ext = name.split(\".\").pop()?.toLowerCase() ?? \"\";\n const mk = mediaKindOf(name);\n if (mk === \"image\") return \"🖼\";\n if (mk === \"video\") return \"🎬\";\n if (mk === \"audio\") return \"🎵\";\n if ([\"ts\", \"tsx\", \"mts\", \"cts\"].includes(ext)) return \"🟦\";\n if ([\"js\", \"mjs\", \"cjs\", \"jsx\"].includes(ext)) return \"🟨\";\n if (ext === \"json\" || ext === \"jsonc\") return \"🧾\";\n if (ext === \"md\" || ext === \"mdx\" || ext === \"markdown\") return \"📝\";\n if (ext === \"css\" || ext === \"scss\" || ext === \"less\") return \"🎨\";\n if (ext === \"html\" || ext === \"htm\" || ext === \"svg\") return \"🌐\";\n if ([\"py\", \"pyi\"].includes(ext)) return \"🐍\";\n if (ext === \"rs\") return \"🦀\";\n if (ext === \"go\") return \"🐹\";\n if (ext === \"java\" || ext === \"kt\" || ext === \"kts\") return \"☕\";\n if (ext === \"rb\") return \"💎\";\n if (ext === \"php\") return \"🐘\";\n if (ext === \"c\" || ext === \"h\" || ext === \"cpp\" || ext === \"hpp\" || ext === \"cc\") return \"🧩\";\n if (ext === \"sh\" || ext === \"bash\" || ext === \"zsh\" || ext === \"fish\") return \"🐚\";\n if (ext === \"sql\") return \"🗄\";\n if (ext === \"yml\" || ext === \"yaml\" || ext === \"toml\" || ext === \"ini\" || ext === \"conf\") return \"⚙\";\n if (ext === \"lock\") return \"🔒\";\n if (name === \"Dockerfile\" || ext === \"dockerfile\") return \"🐳\";\n if (ext === \"zip\" || ext === \"gz\" || ext === \"tar\" || ext === \"tgz\" || ext === \"bz2\") return \"📦\";\n if (ext === \"pdf\") return \"📕\";\n if (ext === \"txt\" || ext === \"log\") return \"📄\";\n return \"·\";\n}\n\nfunction mediaKindOf(path: string): MediaKind | null {\n const ext = path.split(\".\").pop()?.toLowerCase() ?? \"\";\n if (IMAGE_EXT.has(ext)) return \"image\";\n if (VIDEO_EXT.has(ext)) return \"video\";\n if (AUDIO_EXT.has(ext)) return \"audio\";\n return null;\n}\n\n/* ---------- per-agent file-panel UI state (remount-proof) ----------\n * Preview popups / expanded dirs used to live INSIDE FilesPanel. Any parent\n * re-render that remounted the panel (agent snapshot churn re-evaluating the\n * keyed <Show>) wiped them: an open file popup vanished mid-read and the\n * tree collapsed. Keeping the state in a module-level store keyed by agent\n * makes it survive remounts; only a REAL agent switch starts fresh. */\ntype FileUiState = {\n expanded: Set<string>;\n preview: { path: string; content: string; binary?: boolean; truncated?: boolean } | null;\n media: { path: string; kind: MediaKind } | null;\n viewMode: \"code\" | \"edit\" | \"md\" | \"media\";\n};\nconst fileUi = new Map<string, FileUiState>();\nconst fileUiFor = (agentId: string): FileUiState => {\n let s = fileUi.get(agentId);\n if (!s) {\n s = { expanded: new Set(), preview: null, media: null, viewMode: \"code\" };\n fileUi.set(agentId, s);\n }\n return s;\n};\n\n/**\n * The tasks editor, as its own component with PRIMITIVE props (#30).\n *\n * Inline in the right panel it was re-created whenever an `agent-update`\n * snapshot replaced the agent object — verified by staging the real UI: the\n * editor survived typing, saving and the /api/agents poll, and was recreated\n * only by the websocket snapshot, taking focus and caret with it. A component\n * boundary with primitive props (a string, a function) gives Solid a stable\n * element to keep, exactly as FilesPanel below already does for the file tree.\n *\n * `renderMarkdownCached` still renders the checklist preview from the draft.\n */\nfunction TodoEditor(props: {\n draft: string;\n viewMode: boolean;\n onDraft: (text: string) => void;\n}) {\n return (\n <Show\n when={props.viewMode}\n fallback={\n /* rendered checklist — the default view; markdown + real checkboxes */\n <div class=\"content mdpreview\" style=\"max-height:40vh;padding:8px 10px\" innerHTML={renderMarkdownCached(props.draft)} />\n }\n >\n <textarea\n id=\"todo-input\"\n class=\"mono\"\n rows={5}\n placeholder={\"- task one\\n- task two\"}\n value={props.draft}\n oninput={(e) => props.onDraft(e.currentTarget.value)}\n title=\"shared with the agent \\u2014 it may check items off via set_todo; your unsaved edits win until you save\"\n style=\"width:100%;background:var(--bg-darkest);border:none;border-radius:6px;padding:6px 8px;color:var(--fg);font-family:ui-monospace,Menlo,monospace;font-size:12.5px;resize:vertical\"\n />\n </Show>\n );\n}\n\nfunction FilesPanel(props: { agentId: string; workspace: string }) {\n const ui = fileUiFor(props.agentId);\n // path → lazily fetched child listing (\"\" = workspace root)\n const [kids, setKids] = createSignal<Map<string, TreeNode[]>>(new Map());\n const [expanded, setExpandedRaw] = createSignal<Set<string>>(ui.expanded);\n // every preview/media/mode write mirrors into `ui` so a remount of this\n // panel (parent re-render churn) restores the open popup instead of losing it\n const [preview, setPreviewRaw] = createSignal(ui.preview);\n const setPreview = (v: FileUiState[\"preview\"]) => { ui.preview = v; setPreviewRaw(v); };\n const setExpanded = (v: Set<string>) => { ui.expanded = v; setExpandedRaw(v); };\n const [media, setMediaRaw] = createSignal(ui.media);\n const setMedia = (v: FileUiState[\"media\"]) => { ui.media = v; setMediaRaw(v); };\n const [viewMode, setViewModeRaw] = createSignal(ui.viewMode);\n const setViewMode = (v: FileUiState[\"viewMode\"]) => { ui.viewMode = v; setViewModeRaw(v); };\n const [err, setErr] = createSignal(\"\");\n // gitignored files: \"dim\" (default) | \"hide\" | \"show\"\n const [ignoreMode, setIgnoreMode] = createSignal(\n localStorage.getItem(\"teapot.ignoreMode\") ?? \"dim\",\n );\n const cycleIgnoreMode = () => {\n const order = [\"dim\", \"hide\", \"show\"] as const;\n const next = order[(order.indexOf(ignoreMode() as any) + 1) % 3];\n setIgnoreMode(next);\n localStorage.setItem(\"teapot.ignoreMode\", next);\n };\n /** filter helper per current mode */\n // \"hide\" removes ignored entries entirely — INCLUDING ignored directories\n // (node_modules/, dist/…). The old `!n.dir` exception kept ignored dirs\n // visible, which read as the toggle being broken. Expanding a hidden dir is\n // still possible via 🙈→👁 if ever needed.\n const ignoreFilter = (n: TreeNode) => (ignoreMode() === \"hide\" ? !n.ignored : true);\n // show dotfiles — also persisted; toggling refetches the open dirs\n const [showHidden, setShowHidden] = createSignal(\n localStorage.getItem(\"teapot.showHidden\") === \"1\",\n );\n const toggleHidden = () => {\n const next = !showHidden();\n // Fetch FIRST with the new flag, then flip the signal and patch the map\n // in place — flipping before the fetch landed left the tree showing its\n // old rows under a new filter (or nothing at all while in flight), which\n // collapsed .filebox and visibly reflowed the whole right panel.\n const targets = [\"\", ...expanded()];\n void Promise.all(targets.map(async (p) => ({ p, rows: await fetchDirWith(p, next) })))\n .then((results) => {\n setShowHidden(next);\n localStorage.setItem(\"teapot.showHidden\", next ? \"1\" : \"0\");\n // merge (not replace): unchanged rows keep their object identity, so\n // the toggle no longer rebuilds every visible row\n for (const { p, rows } of results) if (rows) mergeKids(p, rows);\n });\n };\n\n const parseEntries = (parentPath: string, list: any[]): TreeNode[] =>\n list.map((e) => ({\n name: String(e.name),\n path: parentPath ? `${parentPath}/${e.name}` : String(e.name),\n dir: !!e.dir,\n ...(typeof e.size === \"number\" ? { size: e.size } : {}),\n ...(e.ignored ? { ignored: true } : {}),\n }));\n\n async function fetchDir(path: string): Promise<TreeNode[] | null> {\n return fetchDirWith(path, showHidden());\n }\n\n /** same, but with an explicit dotfiles flag (used by the toggle's pre-fetch) */\n async function fetchDirWith(path: string, hidden: boolean): Promise<TreeNode[] | null> {\n try {\n const qs = new URLSearchParams();\n if (path) qs.set(\"path\", path);\n if (hidden) qs.set(\"hidden\", \"1\");\n const r = await api(\n `/api/agents/${props.agentId}/tree?${qs.toString()}`,\n );\n return parseEntries(path, r.entries ?? []);\n } catch (ex) {\n setErr((ex as Error).message);\n return null;\n }\n }\n\n // reset & load the root whenever a DIFFERENT agent is selected. The guard\n // matters: agent snapshots update on every poll/event burst, and without it\n // each update cleared + re-fetched the whole tree (visible flicker and a\n // pointless /tree request per snapshot).\n // Merge fetched rows into the cache WITHOUT replacing row objects that are\n // unchanged (same path+dir+size). Solid's <For> diffs by reference: handing\n // it brand-new TreeNode objects on every refresh tore down and rebuilt the\n // whole visible list — the \"tree flickers on refresh\" bug.\n const mergeKids = (path: string, rows: TreeNode[]) =>\n setKids((prev) => {\n const old = prev.get(path);\n if (!old) return new Map(prev).set(path, rows);\n const merged = old.map((o) => {\n const fresh = rows.find((r) => r.path === o.path);\n // keep the previous object when nothing changed → no remount\n return fresh && fresh.dir === o.dir && fresh.size === o.size &&\n fresh.ignored === o.ignored && fresh.name === o.name\n ? o\n : (fresh ?? o);\n });\n // append genuinely new entries (created since the last fetch)\n for (const r of rows) if (!old.some((o) => o.path === r.path)) merged.push(r);\n // drop entries that vanished from disk — but never the one being previewed\n const kept = merged.filter((m) => rows.some((r) => r.path === m.path) || ui.preview?.path === m.path);\n const next = new Map(prev);\n next.set(path, kept);\n return next;\n });\n\n let kidsFor = \"\";\n createEffect(() => {\n const id = props.agentId;\n if (id === kidsFor) return; // same agent — keep the loaded tree as-is\n kidsFor = id;\n // a REAL agent switch starts a fresh view; a mere panel remount keeps\n // everything (state lives in `ui`, see fileUiFor above)\n setExpanded(new Set<string>());\n setPreview(null);\n setMedia(null);\n setKids(new Map());\n void fetchDir(\"\").then((rows) => {\n if (rows && kidsFor === id) setKids(new Map([[ \"\", rows ]]));\n });\n });\n\n const toggleDir = async (node: TreeNode) => {\n const next = new Set<string>(expanded());\n if (next.has(node.path)) {\n next.delete(node.path);\n setExpanded(next);\n return;\n }\n next.add(node.path);\n setExpanded(next);\n if (!kids().has(node.path)) {\n const rows = await fetchDir(node.path);\n if (rows) mergeKids(node.path, rows);\n }\n };\n\n const [hlHtml, setHlHtml] = createSignal(\"\");\n const [hlPending, setHlPending] = createSignal(false);\n // editBuf stays local — it is transient typing state tied to one popup\n const [editBuf, setEditBuf] = createSignal(\"\");\n const [saving, setSaving] = createSignal(false);\n const isMd = (path: string) => /\\.(md|markdown|mdx)$/i.test(path);\n let hlRun = 0;\n const startHighlighting = async (p: { path: string; content: string; truncated?: boolean }) => {\n const run = ++hlRun;\n setHlHtml(\"\");\n setHlPending(true);\n try {\n const { highlightChunks } = await import(\"./shiki\");\n for await (const chunk of highlightChunks(p.path, p.content)) {\n if (hlRun !== run) return;\n setHlHtml((prev) => prev + chunk);\n }\n } catch {\n if (hlRun === run) setHlHtml(\"\"); // give up → plain fallback\n } finally {\n if (hlRun === run) setHlPending(false);\n }\n };\n onCleanup(() => { hlRun++; });\n\n const openFileWith = async (\n node: TreeNode,\n mode: \"code\" | \"edit\" | \"md\",\n ) => {\n // media files stream from the raw endpoint instead of text preview\n const mk = mediaKindOf(node.path);\n if (mk) {\n setPreview({ path: node.path, content: \"\", binary: true });\n setMedia({ path: node.path, kind: mk });\n setViewMode(\"media\");\n return;\n }\n try {\n const r = await api(\n `/api/agents/${props.agentId}/file?path=${encodeURIComponent(node.path)}`,\n );\n setMedia(null);\n setPreview({ path: node.path, content: r.content ?? \"\", binary: r.binary, truncated: r.truncated });\n setEditBuf(r.content ?? \"\");\n setViewMode(r.binary ? \"code\" : mode);\n if (!r.binary && mode !== \"md\") {\n startHighlighting({ path: node.path, content: r.content ?? \"\", truncated: r.truncated });\n }\n } catch (ex) {\n flashHint(`open failed: ${(ex as Error).message}`);\n }\n };\n\n /** PUT the edited buffer back; on conflict offer to load the disk version */\n const saveFile = async () => {\n const pv = preview();\n if (!pv || saving()) return;\n setSaving(true);\n try {\n await api(`/api/agents/${props.agentId}/file?path=${encodeURIComponent(pv.path)}`, {\n method: \"PUT\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({ content: editBuf(), baseContent: pv.content }),\n });\n setPreview({ ...pv, content: editBuf() }); // new baseline for future conflicts\n flashHint(`saved ${pv.path}`);\n } catch (ex) {\n const raw = (ex as { payload?: unknown }).payload;\n const conflict =\n raw && typeof raw === \"object\" && (raw as any).error === \"file changed on disk\"\n ? (raw as { current?: string })\n : null;\n if (conflict?.current !== undefined) {\n // offer the fresh disk content instead of throwing away the save\n const take = confirm(\n \"This file changed on disk since you opened it.\\n\" +\n \"OK = load the disk version into the editor (your edits are discarded)\\n\" +\n \"Cancel = keep editing your copy\",\n );\n if (take) {\n setEditBuf(conflict.current!);\n setPreview({ ...pv, content: conflict.current! });\n flashHint(\"loaded the current file from disk\");\n } else {\n flashHint(\"kept your edits — use Save As via bash to force-write\");\n }\n } else {\n flashHint(`save failed: ${(ex as Error).message}`);\n }\n } finally {\n setSaving(false);\n }\n };\n\n const isEditable = (pv: { binary?: boolean; truncated?: boolean }) =>\n !pv.binary && !pv.truncated;\n\n const row = (node: TreeNode, depth: number): any => (\n <>\n <div\n class={\n \"filerow\" + (node.dir ? \" isdir\" : \"\") +\n (node.ignored && ignoreMode() === \"dim\" ? \" gitignored\" : \"\")\n }\n style={`padding-left:${depth * 13 + 8}px`}\n onclick={() => (node.dir ? void toggleDir(node) : void openFileWith(node, \"code\"))}\n title={node.dir ? `browse ${node.path}` : `preview ${node.path}`}\n >\n <span class=\"ficon\">{node.dir ? (expanded().has(node.path) ? \"▾\" : \"▸\") : ficon(node.name)}</span>\n <span class=\"fname\">{node.name}</span>\n <Show when={!node.dir && node.size !== undefined}>\n <span class=\"fsize\">{fmtK(node.size!)}</span>\n </Show>\n </div>\n <Show when={node.dir && expanded().has(node.path)}>\n <For each={(kids().get(node.path) ?? []).filter(ignoreFilter)}>{(child) => row(child, depth + 1)}</For>\n </Show>\n </>\n );\n\n const wsName = () => props.workspace.split(\"/\").filter(Boolean).pop() ?? props.workspace;\n\n /** refresh root + every expanded dir IN PLACE — mergeKids keeps unchanged\n * row objects, so the tree updates without flicker and an open file popup\n * is never touched (its state lives outside the row list entirely). */\n const [refreshing, setRefreshing] = createSignal(false);\n const refreshTree = async () => {\n if (refreshing()) return;\n setRefreshing(true);\n try {\n const targets = [\"\", ...expanded()];\n const results = await Promise.all(\n targets.map(async (p) => ({ p, rows: await fetchDirWith(p, showHidden()) })),\n );\n for (const { p, rows } of results) if (rows) mergeKids(p, rows);\n } finally {\n setRefreshing(false);\n }\n };\n\n return (\n <>\n <h3 style=\"display:flex;align-items:center;gap:6px\" title=\"the agent's workspace — lazy-loaded, dotfiles hidden; click a folder to expand, a file to preview\">\n 🗂 files <span class=\"muted\" style=\"text-transform:none;letter-spacing:0\">· {wsName()}</span>\n <IconBtn\n class=\"filetoggle\"\n icon={refreshing() ? \"…\" : \"⟳\"}\n title=\"refresh the tree (root + expanded folders) — open popups are kept\"\n onClick={() => void refreshTree()}\n />\n <IconBtn\n class=\"filetoggle\"\n style=\"margin-left:auto\"\n icon={ignoreMode() === \"hide\" ? \"🙈\" : ignoreMode() === \"dim\" ? \"👁\" : \"✨\"}\n title={`gitignored files: ${ignoreMode()} — click to cycle (dim → hidden → shown)`}\n onClick={cycleIgnoreMode}\n />\n <IconBtn\n class=\"filetoggle\"\n icon={showHidden() ? \"◉.\" : \"○.\"}\n title={showHidden() ? \"dotfiles shown — click to hide\" : \"dotfiles hidden — click to show\"}\n onClick={toggleHidden}\n />\n </h3>\n <div class=\"filebox\">\n <Show\n when={(kids().get(\"\") ?? []).length > 0}\n fallback={<div class=\"muted\" style=\"padding:6px\">{err() || \"empty workspace\"}</div>}\n >\n <For each={(kids().get(\"\") ?? []).filter(ignoreFilter)}>\n {(node) => row(node, 0)}\n </For>\n </Show>\n </div>\n <Show when={preview()}>\n {(pv) => (\n <Modal title={`🗂 ${pv().path}`} onClose={() => { hlRun++; setPreview(null); setMedia(null); }}>\n <Show\n when={media()}\n fallback={\n <>\n <div class=\"filetoolbar\">\n <Show when={isMd(pv().path) && !pv().binary}>\n <button class={viewMode() === \"md\" ? \"on\" : \"\"} onclick={() => setViewMode(\"md\")} title=\"rendered markdown\">👁 preview</button>\n </Show>\n <button class={viewMode() === \"code\" ? \"on\" : \"\"} onclick={() => { setViewMode(\"code\"); if (!hlHtml()) startHighlighting({ path: pv().path, content: pv().content, truncated: pv().truncated }); }} title=\"syntax-highlighted source\">{\"</>\"} code</button>\n <Show when={isEditable(pv())}>\n <button class={viewMode() === \"edit\" ? \"on\" : \"\"} onclick={() => setViewMode(\"edit\")} title=\"edit and save back to the workspace\">✎ edit</button>\n </Show>\n </div>\n <Show\n when={!pv().binary}\n fallback={\n <div class=\"mono\" style=\"margin:0;color:var(--dim)\">\n (binary file — inspect it from the terminal)\n </div>\n }\n >\n <Show when={viewMode() === \"edit\"} fallback={\n <Show when={viewMode() === \"md\" && isMd(pv().path)} fallback={\n <CodePreview\n path={pv().path}\n content={pv().content}\n html={hlHtml()}\n pending={hlPending()}\n truncated={!!pv().truncated}\n />\n }>\n <div class=\"content mdpreview\" innerHTML={renderMarkdown(pv().content)} />\n </Show>\n }>\n <div class=\"fileeditor\">\n <textarea\n class=\"mono\"\n value={editBuf()}\n oninput={(e) => setEditBuf(e.currentTarget.value)}\n spellcheck={false}\n />\n <div class=\"filerow-actions\">\n <span class=\"muted\">{fmtK(editBuf().length)} bytes</span>\n <button class=\"savebtn\" disabled={saving() || editBuf() === pv().content} onclick={() => void saveFile()}>\n {saving() ? \"saving…\" : \"💾 save\"}\n </button>\n </div>\n </div>\n </Show>\n </Show>\n </>\n }\n >\n {/* media preview: stream raw bytes with native controls */}\n <div class=\"mediapreview\">\n <Show when={media()!.kind === \"image\"} fallback={\n <Show when={media()!.kind === \"video\"} fallback={\n <audio controls src={`/api/agents/${props.agentId}/raw?path=${encodeURIComponent(media()!.path)}`} />\n }>\n <video controls src={`/api/agents/${props.agentId}/raw?path=${encodeURIComponent(media()!.path)}`} />\n </Show>\n }>\n <img src={`/api/agents/${props.agentId}/raw?path=${encodeURIComponent(media()!.path)}`} alt={media()!.path.split(\"/\").pop()} />\n </Show>\n <div class=\"meta muted\">{media()!.kind} preview</div>\n </div>\n </Show>\n </Modal>\n )}\n </Show>\n </>\n );\n}\n\n/* ---------- highlighted file preview body ---------- */\n\n/**\n * Receives rendered shiki chunks as they stream in (`html` grows per chunk);\n * shows a lightweight loading hint until the first chunk lands.\n */\nfunction CodePreview(props: { path: string; content: string; html: string; pending: boolean; truncated: boolean }) {\n return (\n <>\n <Show\n when={props.html}\n fallback={\n props.pending ? (\n <div class=\"muted\" style=\"padding:8px;font-size:12px\">\n ✨ highlighting {props.path.split(\"/\").pop()}…\n </div>\n ) : (\n <pre class=\"mono\" style=\"max-height:62vh;overflow:auto;white-space:pre-wrap;margin:0\">\n {props.content}\n </pre>\n )\n }\n >\n {/* shiki emits its own <pre class=\"shiki\"><code>…</code></pre>; content is shiki-generated HTML */}\n <div class=\"filepreview\" innerHTML={props.html} />\n </Show>\n <Show when={props.truncated}>\n <div class=\"muted\" style=\"padding-top:6px;font-size:11.5px\">… truncated (first 100 KB)</div>\n </Show>\n </>\n );\n}\n\n/* ---------- settings / config editor ---------- */\n/* ---------- first-run setup wizard ---------- */\n\ntype ProviderPreset = {\n key: string;\n label: string;\n url: string;\n /** pre-filled model suggestion — empty means \"keep what's typed\" */\n model: string;\n hint?: string;\n};\n\n/**\n * Known OpenAI-compatible providers, shared by the setup wizard and the\n * settings modal's quick-add. \"custom\" is a wizard-only pseudo preset that\n * marks the manual path without touching any field.\n */\nconst PROVIDER_PRESETS: ProviderPreset[] = [\n {\n key: \"openrouter\",\n label: \"OpenRouter\",\n url: \"https://openrouter.ai/api/v1\",\n model: \"anthropic/claude-sonnet-4\",\n hint: \"400+ models behind one key — teapot sends app-attribution headers automatically\",\n },\n {\n key: \"orcarouter\",\n label: \"OrcaRouter\",\n url: \"https://api.orcarouter.ai/v1\",\n model: \"orcarouter/auto\",\n hint: \"zero-markup routing gateway — 'orcarouter/auto' grades each prompt and picks the model\",\n },\n { key: \"openai\", label: \"OpenAI\", url: \"https://api.openai.com/v1\", model: \"gpt-4o-mini\" },\n {\n key: \"llamacpp\",\n label: \"llama.cpp server\",\n url: \"http://localhost:8080/v1\",\n model: \"\",\n hint: \"free & local — start it with: llama-server -m ./model.gguf (any model name works)\",\n },\n];\n\n/** the wizard shows this extra option for arbitrary OpenAI-compatible endpoints */\nconst CUSTOM_PRESET: ProviderPreset = {\n key: \"custom\",\n label: \"Custom\",\n url: \"\",\n model: \"\",\n hint: \"any OpenAI-compatible /v1 endpoint — vLLM, LM Studio, llama.cpp, a company gateway… fill the fields below\",\n};\n\nfunction SetupWizard(props: { onDone: () => void }) {\n const [preset, setPreset] = createSignal<ProviderPreset>(PROVIDER_PRESETS[0]);\n const [baseUrl, setBaseUrl] = createSignal(PROVIDER_PRESETS[0].url);\n const [apiKey, setApiKey] = createSignal(\"\");\n const [model, setModel] = createSignal(PROVIDER_PRESETS[0].model);\n const [models, setModels] = createSignal<\n { id: string; contextLength?: number; pricing?: { prompt: number; completion: number }; modalities?: { input: string[]; output: string[] } }[]\n >([]);\n const [workspace, setWorkspace] = createSignal(\"~/teapot-workspace\");\n const [password, setPassword] = createSignal(\"\");\n const [busy, setBusy] = createSignal(false);\n const [err, setErr] = createSignal(\"\");\n\n const pick = (p: ProviderPreset) => {\n setPreset(p);\n // \"custom\" only marks the manual path — never clobbers typed values\n if (p.key === \"custom\") return;\n if (p.url) {\n setBaseUrl(p.url);\n if (p.model) setModel(p.model);\n }\n };\n\n /** live model discovery from whatever endpoint the operator is typing —\n * same data the main UI's model switcher shows, just pre-config */\n createEffect(() => {\n const url = baseUrl().trim();\n const key = apiKey();\n if (!/^https?:\\/\\//.test(url)) {\n setModels([]);\n return;\n }\n const t = setTimeout(async () => {\n try {\n const r = await api(\n `/api/setup/models?baseUrl=${encodeURIComponent(url)}${key ? `&apiKey=${encodeURIComponent(key)}` : \"\"}`,\n );\n setModels(r.models ?? []);\n } catch {\n setModels([]); // endpoint unreachable / no auth yet — keep typing\n }\n }, 600);\n onCleanup(() => clearTimeout(t));\n });\n\n /** \"ctx 1m · $3/M in · $15/M out\" for a model id from the fetched list */\n const specOf = (id: string) => {\n const m = models().find((x) => x.id === id.trim());\n if (!m) return \"\";\n const parts: string[] = [];\n if (m.contextLength) parts.push(`ctx ${fmtK(m.contextLength)} tok`);\n const price = (p?: number) =>\n p === undefined ? \"\" : `$${p * 1e6 >= 10 ? Math.round(p * 1e6) : +(p * 1e6).toFixed(1)}/M`;\n if (m.pricing) {\n const pin = price(m.pricing.prompt);\n const pout = price(m.pricing.completion);\n if (pin && pout) parts.push(`${pin} in · ${pout} out`);\n else if (pin || pout) parts.push(price(m.pricing.prompt ?? m.pricing.completion));\n }\n return parts.join(\" · \");\n };\n const modelSpec = () => specOf(model());\n\n const submit = async (e: Event) => {\n e.preventDefault(); setErr(\"\"); setBusy(true);\n try {\n await api(\"/api/setup\", {\n method: \"POST\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n baseUrl: baseUrl(),\n apiKey: apiKey() || undefined,\n model: model(),\n workspace: workspace(),\n ...(password() ? { password: password() } : {}),\n }),\n });\n props.onDone();\n } catch (ex) {\n setErr((ex as Error).message); setBusy(false);\n }\n };\n\n return (\n <div class=\"overlay\" style={{ background: \"var(--bg-darkest)\" }}>\n <div class=\"modal\" style=\"max-width:560px\">\n <div class=\"modal-head\"><b>🫖 welcome to teapot</b></div>\n <p class=\"muted\" style=\"margin:0 0 10px;font-size:13px\">\n first run — pick an OpenAI-compatible provider and you're done.\n everything below can be changed later in ⚙ settings.\n </p>\n <form onsubmit={submit} style=\"display:flex;flex-direction:column;gap:12px\">\n <div style=\"display:flex;gap:6px;flex-wrap:wrap\">\n {[...PROVIDER_PRESETS, CUSTOM_PRESET].map((p) => (\n <button\n type=\"button\"\n class={\"presetbtn\" + (preset().key === p.key ? \" active\" : \"\")}\n title={p.hint || p.url}\n onclick={() => pick(p)}\n >{p.label}</button>\n ))}\n </div>\n <Show when={preset().hint}>\n <div class=\"muted\" style=\"font-size:11.5px;margin-top:-6px\">{preset().hint}</div>\n </Show>\n <label>base url\n <input\n type=\"text\"\n class=\"w100 mono\"\n list=\"wiz-preset-urls\"\n value={baseUrl()}\n oninput={(e) => setBaseUrl(e.currentTarget.value)}\n />\n <datalist id=\"wiz-preset-urls\">\n {PROVIDER_PRESETS.map((p) => <option value={p.url} />)}\n </datalist>\n </label>\n <label>api key <input type=\"password\" class=\"w100\" value={apiKey()} oninput={(e) => setApiKey(e.currentTarget.value)} placeholder=\"(local providers may not need one)\" /></label>\n <label>default model\n <input\n type=\"text\"\n class=\"w100 mono\"\n list=\"wiz-model-list\"\n value={model()}\n oninput={(e) => setModel(e.currentTarget.value)}\n placeholder={preset().key === \"llamacpp\" ? \"(any name — serves whichever gguf is loaded)\" : \"(type to filter models from the endpoint)\"}\n />\n <datalist id=\"wiz-model-list\">\n {models().map((m) => <option value={m.id} />)}\n </datalist>\n </label>\n <Show\n when={models().length > 0}\n fallback={\n <div class=\"muted\" style=\"font-size:11.5px;margin-top:-8px\">\n models appear here automatically once the endpoint answers GET /models\n </div>\n }\n >\n <div class=\"muted\" style=\"font-size:11.5px;margin-top:-8px\">\n {models().length} models found at this endpoint\n <Show when={modelSpec()}> · <span style=\"color:var(--fg)\">{modelSpec()}</span></Show>\n </div>\n </Show>\n <fieldset>\n <legend>first agent</legend>\n <label>workspace directory\n <input type=\"text\" class=\"w100 mono\" value={workspace()} oninput={(e) => setWorkspace(e.currentTarget.value)} />\n </label>\n <label style=\"margin-top:4px\" title=\"asks for this password when opening the UI or API from another machine — plain-HTTP LAN traffic is NOT encrypted\">protect the API with a password? <input type=\"password\" class=\"w100\" value={password()} oninput={(e) => setPassword(e.currentTarget.value)} placeholder=\"(optional — LAN traffic is still plain HTTP)\" /></label>\n </fieldset>\n <Show when={err()}><span style=\"color:var(--err);font-size:13px\">{err()}</span></Show>\n <button type=\"submit\" disabled={busy()} style=\"background:var(--acc);border:none;border-radius:8px;color:#fff;padding:9px 14px;font-weight:600;cursor:pointer\">\n {busy() ? \"saving…\" : \"finish setup\"}\n </button>\n </form>\n </div>\n </div>\n );\n}\n\nfunction ConfigModal(props: { cfg: any; onClose: () => void; onSaved: () => void }) {\n type PRow = { name: string; baseUrl: string; apiKey: string; model: string };\n const [providers, setProviders] = createSignal<PRow[]>(\n Object.entries(props.cfg.providers ?? {}).map(([name, v]: [string, any]) => ({\n name, baseUrl: v.baseUrl ?? \"\", apiKey: v.apiKey ?? \"\", model: v.model ?? \"\",\n })),\n );\n const [defaultProvider, setDefaultProvider] = createSignal(props.cfg.defaultProvider ?? \"\");\n // the default as it exists on disk, so we can tell \"configured but missing\"\n // from \"you just changed it\" (#21)\n const cfgDefaultProvider = () => props.cfg.defaultProvider ?? \"\";\n // A <select> whose value matches no <option> silently falls back to the\n // first option — which is exactly the \"(none — first provider wins)\" row.\n // So a configured default that has no provider row (deleted/renamed) showed\n // as \"none\", i.e. as if the topmost provider were always chosen, and the\n // next save persisted that. Render the orphaned name as its own option so\n // the dropdown always shows the real value.\n const providerNames = (): string[] => {\n const names = [...new Set(providers().map((p) => p.name.trim()).filter(Boolean))];\n const cur = defaultProvider();\n if (cur && !names.includes(cur)) names.push(cur);\n return names;\n };\n const staleDefaultProvider = (): string => {\n const cur = defaultProvider();\n if (!cur) return \"\";\n return providers().some((p) => p.name.trim() === cur) ? \"\" : cur;\n };\n const [intervalMin, setIntervalMin] = createSignal(Math.round((props.cfg.progressIntervalMs ?? 600000) / 60000));\n const [minChars, setMinChars] = createSignal(props.cfg.progressMinChars ?? 4000);\n // empty input = DERIVED budget (75% of each model's window) — the old UI\n // always showed 96 and saved it back on every settings save, silently\n // turning every agent into \"manual override\" at a fixed 96k that fit\n // neither 32k local models nor 1M-context ones. Null means \"not set\".\n const [ctxBudgetK, setCtxBudgetK] = createSignal<number | null>(\n props.cfg.contextTokenBudget != null ? Math.round(props.cfg.contextTokenBudget / 1000) : null,\n );\n const [ctxWinK, setCtxWinK] = createSignal(props.cfg.contextWindowTokens ? Math.round(props.cfg.contextWindowTokens / 1000) : 0);\n const [maxDepth, setMaxDepth] = createSignal(props.cfg.maxSpawnDepth ?? 3);\n const [tasks, setTasks] = createSignal<any[]>((props.cfg.tasks ?? []).map((t: any) => ({ ...t })));\n const [err, setErr] = createSignal(\"\");\n\n const agentIds = () => (props.cfg.agents ?? []).map((a: any) => a.id);\n\n const saveProviders = (): Record<string, any> | null => {\n const out: Record<string, any> = {};\n for (const p of providers()) {\n if (!p.name.trim()) { setErr(\"provider name is required\"); return null; }\n if (p.baseUrl && !/^https?:\\/\\//.test(p.baseUrl)) { setErr(`provider ${p.name}: baseUrl must start with http(s)://`); return null; }\n out[p.name.trim()] = { baseUrl: p.baseUrl, ...(p.apiKey ? { apiKey: p.apiKey } : {}), ...(p.model ? { model: p.model } : {}) };\n }\n return out;\n };\n\n const save = async (e: Event) => {\n e.preventDefault(); setErr(\"\");\n const providers = saveProviders();\n if (!providers) return;\n const cleanTasks = tasks()\n .filter((t) => t.id?.trim() || t.prompt?.trim())\n .map((t, i) => ({ id: t.id?.trim() || `task-${i + 1}`, agent: t.agent, schedule: t.schedule, prompt: t.prompt, ...(t.forked ? { forked: true } : {}) }));\n for (const t of cleanTasks) {\n if (!t.agent) { setErr(`task \"${t.id}\": agent is required`); return; }\n if (!t.schedule?.trim()) { setErr(`task \"${t.id}\": schedule is required`); return; }\n }\n try {\n await api(\"/api/config\", {\n method: \"PUT\",\n headers: { \"content-type\": \"application/json\" },\n body: JSON.stringify({\n providers,\n defaultProvider: defaultProvider() || undefined,\n progressIntervalMs: Math.max(1, intervalMin()) * 60000,\n progressMinChars: Math.max(100, minChars()),\n ...(ctxBudgetK() != null ? { contextTokenBudget: Math.max(1, ctxBudgetK()!) * 1000 } : {}),\n ...(ctxWinK() > 0 ? { contextWindowTokens: ctxWinK() * 1000 } : {}),\n maxSpawnDepth: Math.max(0, maxDepth()),\n tasks: cleanTasks,\n }),\n });\n props.onSaved(); props.onClose();\n } catch (ex) { setErr((ex as Error).message); }\n };\n\n const numInput = (label: string, value: number, oninput: (v: number) => void, hint?: string) => (\n <label title={hint}>{label}\n <input type=\"number\" min=\"0\" value={value} oninput={(e) => oninput(Number(e.currentTarget.value))} />\n </label>\n );\n\n return (\n <Modal title=\"settings\" onClose={props.onClose}>\n <form onsubmit={save} style=\"display:flex;flex-direction:column;gap:14px\">\n <fieldset>\n <legend>providers</legend>\n {/* Index keyed by position — editing a row must not recreate its\n input DOM and steal focus. For (keyed by identity) recreated\n the edited row on every keystroke (new object → new identity\n → unmount/remount → focus lost). Index keeps the same input\n element for the same index, preserving focus and cursor. */}\n <Index each={providers()}>\n {(p, i) => (\n <div class=\"cfgrow\">\n <input class=\"cfgname\" placeholder=\"name\" value={p().name} oninput={(e) => setProviders(providers().map((x, j) => (j === i ? { ...x, name: e.currentTarget.value } : x)))} />\n <input placeholder=\"https://…/v1\" value={p().baseUrl} oninput={(e) => setProviders(providers().map((x, j) => (j === i ? { ...x, baseUrl: e.currentTarget.value } : x)))} />\n <input placeholder=\"api key\" type=\"password\" value={p().apiKey} oninput={(e) => setProviders(providers().map((x, j) => (j === i ? { ...x, apiKey: e.currentTarget.value } : x)))} />\n <input placeholder=\"default model\" value={p().model} oninput={(e) => setProviders(providers().map((x, j) => (j === i ? { ...x, model: e.currentTarget.value } : x)))} />\n <button type=\"button\" class=\"danger\" title=\"remove provider\" onclick={() => setProviders(providers().filter((_, j) => j !== i))}>✕</button>\n </div>\n )}\n </Index>\n <button type=\"button\" onclick={() => setProviders([...providers(), { name: \"\", baseUrl: \"\", apiKey: \"\", model: \"\" }])}>+ add custom</button>\n <div style=\"display:flex;gap:6px;flex-wrap:wrap;margin-top:6px\">\n <span class=\"muted\" style=\"font-size:11.5px\">quick-add:</span>\n <For each={PROVIDER_PRESETS}>\n {(p) => (\n <button\n type=\"button\"\n title={`fill a ${p.label} row — ${p.url}${p.model ? ` (model: ${p.model})` : \"\"}`}\n onclick={() => {\n // re-click = update the existing entry instead of duplicating\n const rest = providers().filter((x) => x.name !== p.key);\n setProviders([...rest, { name: p.key, baseUrl: p.url, apiKey: \"\", model: p.model }]);\n if (!defaultProvider()) setDefaultProvider(p.key);\n }}\n >+ {p.label}</button>\n )}\n </For>\n </div>\n <div><label style=\"display:flex;align-items:center;gap:6px;margin-top:6px\" title=\"agents without an explicit provider use this one\">\n default provider\n <select\n value={defaultProvider()}\n onchange={(e) => setDefaultProvider(e.currentTarget.value)}\n >\n <option value=\"\">(none — first provider wins)</option>\n <For each={providerNames()}>\n {(n) => <option value={n}>{n}</option>}\n </For>\n </select>\n </label></div>\n <Show when={staleDefaultProvider()}>\n <div class=\"muted\" style=\"font-size:11.5px;margin-top:4px\">\n ⚠ configured default provider <code>{staleDefaultProvider()}</code> has no provider row here\n {staleDefaultProvider() === cfgDefaultProvider()\n ? \" — the dropdown above cannot show it.\"\n : \" — it was replaced by your selection.\"}{\" \"}\n Add a provider named <code>{staleDefaultProvider()}</code> or pick a default below; otherwise agents\n fall back to the first provider.\n </div>\n </Show>\n </fieldset>\n\n <fieldset>\n <legend>agent runtime</legend>\n <div class=\"cfggrid\">\n {numInput(\"progress interval (min)\", intervalMin(), (v) => setIntervalMin(v), \"how often the harness asks for a progress report\")}\n {numInput(\"progress min chars\", minChars(), (v) => setMinChars(v), \"progress prompts wait for this much real output\")}\n <label title=\"auto-compact threshold in k tokens. Leave EMPTY to derive per model (75% of its context window) — recommended, since models differ wildly in window size. Set only to force an absolute cap across all models.\">\n compact budget (k tok)\n <input\n type=\"number\"\n min=\"0\"\n placeholder=\"(derive: 75% of window)\"\n value={ctxBudgetK() ?? \"\"}\n oninput={(e) => setCtxBudgetK(e.currentTarget.value === \"\" ? null : Number(e.currentTarget.value))}\n />\n </label>\n {numInput(\"context window (k tok)\", ctxWinK(), (v) => setCtxWinK(v), \"model's real window — 0/blank hides the % gauge\")}\n {numInput(\"max spawn depth\", maxDepth(), (v) => setMaxDepth(v), \"sub-agent nesting limit (0 = no spawning)\")}\n </div>\n </fieldset>\n\n <fieldset>\n <legend>scheduled tasks</legend>\n <Show when={tasks().length > 0}>\n <Index each={tasks()}>\n {(t, i) => (\n <div class=\"cfgcol\">\n <div class=\"cfgrow\">\n <input placeholder=\"id\" value={t().id} oninput={(e) => setTasks(tasks().map((x, j) => (j === i ? { ...x, id: e.currentTarget.value } : x)))} />\n <input placeholder=\"agent id\" value={t().agent} oninput={(e) => setTasks(tasks().map((x, j) => (j === i ? { ...x, agent: e.currentTarget.value } : x)))} />\n <input placeholder=\"every 30m / cron\" value={t().schedule} oninput={(e) => setTasks(tasks().map((x, j) => (j === i ? { ...x, schedule: e.currentTarget.value } : x)))} />\n <label style=\"display:flex;gap:3px;align-items:center;white-space:nowrap;color:var(--dim);font-size:11px\">\n <input type=\"checkbox\" checked={!!t().forked} onchange={(e) => setTasks(tasks().map((x, j) => (j === i ? { ...x, forked: e.currentTarget.checked } : x)))} />fork\n </label>\n <button type=\"button\" class=\"danger\" onclick={() => setTasks(tasks().filter((_, j) => j !== i))}>✕</button>\n </div>\n <textarea rows={2} placeholder=\"prompt to send\" value={t().prompt} oninput={(e) => setTasks(tasks().map((x, j) => (j === i ? { ...x, prompt: e.currentTarget.value } : x)))} />\n </div>\n )}\n </Index>\n </Show>\n <button type=\"button\" onclick={() => setTasks([...tasks(), { id: \"\", agent: agentIds()[0] ?? \"\", schedule: \"every 30m\", prompt: \"\" }])}>+ add task</button>\n </fieldset>\n\n <fieldset>\n <legend>agents (read-only — edit config file or use +)</legend>\n <For each={props.cfg.agents ?? []}>\n {(a: any) => (\n <div class=\"cfgrow\">\n <b>{a.id}</b><span class=\"muted\">{a.workspace}</span>\n <Show when={a.parent}><span class=\"muted\">🧩 sub of @{a.parent}</span></Show>\n </div>\n )}\n </For>\n </fieldset>\n\n <fieldset>\n <legend>live update</legend>\n <div class=\"cfgrow\">\n <span class=\"muted\">current version: {props.cfg.version ?? \"unknown\"}</span>\n <button\n type=\"button\"\n onclick={async (e) => {\n try {\n setErr(\"\");\n const btn = e.currentTarget as HTMLButtonElement;\n btn.disabled = true;\n btn.textContent = \"updating…\";\n const res = await api(\"/api/update/restart\", { method: \"POST\" });\n if (!res.ok) throw new Error((await res.json()).error ?? \"restart failed\");\n // Success — the server will restart. Wait until the NEW\n // server actually answers, then reload. Comparing versions\n // alone was not enough: during the handover the old process\n // is still serving /api/version, so a reload fired too early\n // landed on a port nobody was listening on (#35).\n btn.textContent = \"restarting…\";\n let reloaded = false;\n for (let i = 0; i < 90 && !reloaded; i++) {\n await new Promise((r) => setTimeout(r, 1000));\n try {\n const v = await api(\"/api/version\");\n if (v.version && v.version !== __APP_VERSION__) {\n // New version is serving AND it answered — safe to reload\n reloaded = true;\n window.location.reload();\n }\n } catch {}\n }\n if (!reloaded) throw new Error(\"restart timeout — new server did not come up\");\n } catch (ex) {\n setErr((ex as Error).message);\n } finally {\n (e.currentTarget as HTMLButtonElement).disabled = false;\n (e.currentTarget as HTMLButtonElement).textContent = \"update & restart\";\n }\n }}\n style=\"background:var(--acc);border:none;border-radius:6px;color:#fff;padding:6px 14px;cursor:pointer\"\n >\n update & restart\n </button>\n <span class=\"muted\" style=\"margin-left:8px;font-size:12px\">gracefully stops all agents, spawns new process, then reloads this page</span>\n </div>\n </fieldset>\n\n <Show when={err()}><span style=\"color:var(--err);font-size:13px\">{err()}</span></Show>\n <button type=\"submit\" style=\"align-self:flex-end;background:var(--acc);border:none;border-radius:6px;color:#fff;padding:6px 14px;cursor:pointer\">save settings</button>\n </form>\n </Modal>\n );\n}\n","/* global styles */\nimport \"./app.css\";\nimport { render } from \"solid-js/web\";\nimport App from \"./App\";\n\nrender(() => <App />, document.getElementById(\"root\")!);\n"],"file":"index-BrEdnC4L.js"}
|