@inkeep/open-knowledge 0.77.0-beta.2 → 0.77.0-beta.4
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/cli.mjs +6 -6
- package/dist/constants-CmQdCHUX.mjs +1 -0
- package/dist/index.mjs +1 -1
- package/dist/{init--lQzxmjy.mjs → init-Cuw6M3ez.mjs} +2 -2
- package/dist/init-DgSN-Zb-.mjs +1 -0
- package/dist/{launch-json-removal-BEB2W1n_.mjs → launch-json-removal-CX0BxrBg.mjs} +1 -1
- package/dist/loader-BTYq6qei.mjs +1 -0
- package/dist/{loader-DEGEUGWk.mjs → loader-DDluoWkF.mjs} +1 -1
- package/dist/preview-B_YbsrcL.mjs +1 -0
- package/dist/{preview-D3Y8yrOd.mjs → preview-ZhG30yAN.mjs} +1 -1
- package/dist/public/assets/{ActivityModeContent-BGDJ0nlE.js → ActivityModeContent-DqFV-4RA.js} +1 -1
- package/dist/public/assets/{AddPropertiesButton-BNhxzfjv.js → AddPropertiesButton-CTZmOEWB.js} +1 -1
- package/dist/public/assets/{AgentDiffPane-B3r4A5X3.js → AgentDiffPane-CcWTHBnO.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-BziBW5Es.js → CodeMirrorPropInput-m-Qe4m8W.js} +1 -1
- package/dist/public/assets/{ConsentDialogBody-CB_vSWdW.js → ConsentDialogBody-CWagx29h.js} +1 -1
- package/dist/public/assets/{DocumentContext-WwPw9yUS.js → DocumentContext-BGvyRnjj.js} +1 -1
- package/dist/public/assets/{EditorModeToggle-CgabhOLY.js → EditorModeToggle-CIwDYk5f.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-CLFXmBOQ.js → EnableSyncConfirmDialog-Bw3g6mop.js} +1 -1
- package/dist/public/assets/{ExcalidrawDocEditor-CK7VRc0w.js → ExcalidrawDocEditor-DluN54k9.js} +1 -1
- package/dist/public/assets/FeedbackForm-D5uyPeTD.js +1 -0
- package/dist/public/assets/{ImportSkillDialog-JVaTRMhA.js → ImportSkillDialog-CJ6uj-F0.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-RKWIskSa.js → LintConfigEditor-6earuVoh.js} +1 -1
- package/dist/public/assets/{ManagedArtifactProperties-DoLR1ikc.js → ManagedArtifactProperties-CoFmlOY1.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-YrCRBSWp.js +1 -0
- package/dist/public/assets/{McpConsentDialogBody-I2jqXH-g.js → McpConsentDialogBody-D6uKpnd7.js} +1 -1
- package/dist/public/assets/{MermaidDocEditor-BVMkyab5.js → MermaidDocEditor-Cg6fKrzo.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-BzXRs2eY.js → PropertyDisplayRow-Ds41anZC.js} +1 -1
- package/dist/public/assets/{SchemaConfigEditor-Cmjjgdgj.js → SchemaConfigEditor-CYvPxuNf.js} +1 -1
- package/dist/public/assets/SessionsHost-CxAK4Xfa.js +2 -0
- package/dist/public/assets/{SettingsDialogBody-DKMfbcDz.js → SettingsDialogBody-ohLQ6j-5.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-8pviIQ5c.js → ShareReceiveMissDialog-rD0QfQ40.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls--hxa_SRF.js → SkillToolbarControls-CfIZi_XJ.js} +1 -1
- package/dist/public/assets/{SourceEditor-B4cghudh.js → SourceEditor-BYEsr-Fj.js} +1 -1
- package/dist/public/assets/{TerminalPanel-qXWYcAW1.js → TerminalPanel-DRerKNbt.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-DftiOBPc.js → TerminalWindowApp-B5c2WpBb.js} +1 -1
- package/dist/public/assets/{TextDocEditor-PA45RjT5.js → TextDocEditor-qsQ-r41R.js} +1 -1
- package/dist/public/assets/ThreadView-dTldxmzz.js +18 -0
- package/dist/public/assets/{TimelineDiffPane-CN84kjjr.js → TimelineDiffPane-D-3Fxoa4.js} +1 -1
- package/dist/public/assets/{agent-connection-status-B2Piy-uJ.js → agent-connection-status-DPY7G3V8.js} +1 -1
- package/dist/public/assets/{auth-state-cache-BDBQ0CY7.js → auth-state-cache-rkjGB_Cz.js} +1 -1
- package/dist/public/assets/{comment-chips-gaLeekcj.js → comment-chips-U_WJMgA3.js} +1 -1
- package/dist/public/assets/{config-provider-D0V0szZd.js → config-provider-CEhdEUBV.js} +1 -1
- package/dist/public/assets/{doc-undo-manager-Cqndmo79.js → doc-undo-manager-_7IP525f.js} +1 -1
- package/dist/public/assets/globals-BEhdRa7F.css +1 -0
- package/dist/public/assets/index-B_8dBtGF.js +2205 -0
- package/dist/public/assets/messages-8DENGuz1.js +1 -0
- package/dist/public/assets/messages-BdV5NaIT.js +1 -0
- package/dist/public/assets/messages-Bdp74L6-.js +1 -0
- package/dist/public/assets/messages-Bf04Pxlz.js +1 -0
- package/dist/public/assets/messages-BjGQZSyj.js +1 -0
- package/dist/public/assets/messages-BzLr2Mk3.js +1 -0
- package/dist/public/assets/messages-C_wRd51h.js +1 -0
- package/dist/public/assets/messages-CskOgJ4W.js +1 -0
- package/dist/public/assets/messages-DGoDgIWY.js +1 -0
- package/dist/public/assets/messages-DRQJ8t98.js +1 -0
- package/dist/public/assets/messages-DuiPtGEN.js +1 -0
- package/dist/public/assets/messages-X-3z9bgM.js +1 -0
- package/dist/public/assets/{pending-receive-nav-store-k-kvciVH.js → pending-receive-nav-store-Bvvc6aW3.js} +1 -1
- package/dist/public/assets/{preferred-session-events-Cuwqu61S.js → preferred-session-events-BH6Z6Mzm.js} +1 -1
- package/dist/public/assets/{progress-BNhWkbGn.js → progress-Cn9au8tg.js} +1 -1
- package/dist/public/assets/{project-paths-CN0UFZdo.js → project-paths-DCsSnONN.js} +1 -1
- package/dist/public/assets/{selection-context--cMCLjh_.js → selection-context-B10KEmYP.js} +1 -1
- package/dist/public/assets/{src-CaXgTYfX.js → src-DaxlXs7p.js} +1 -1
- package/dist/public/assets/tool-list-format-CN0A1M0q.js +1 -0
- package/dist/public/assets/{typing-burst-detector-DXQEKotp.js → typing-burst-detector-6nLYhPu4.js} +1 -1
- package/dist/public/assets/{uninstall-D-Vidlof.js → uninstall-CcaUy8Sj.js} +1 -1
- package/dist/public/assets/{use-activity-panel-DW7mgLu5.js → use-activity-panel-BP0YHjQR.js} +1 -1
- package/dist/public/assets/{use-apply-config-language-CfZhGffT.js → use-apply-config-language-B6LsV7FK.js} +2 -2
- package/dist/public/assets/{use-open-skill-1VFDsSqa.js → use-open-skill-56hY88Ky.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-CHcPQQtk.js → use-terminal-enabled-BqHP74Tj.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-BypwvAxx.js → use-timeline-entry-diff-DEk_qUo7.js} +1 -1
- package/dist/public/index.html +23 -23
- package/dist/public/uninstall.html +5 -5
- package/dist/{registry-probes-DGkQ3nHx.mjs → registry-probes-CpizlLKe.mjs} +1 -1
- package/dist/{removal-file-path-BhmHM79e.mjs → removal-file-path-DlMMvvl3.mjs} +1 -1
- package/dist/{repair-launch-json-BeTLaXnN.mjs → repair-launch-json-irGbbbq_.mjs} +1 -1
- package/dist/{repair-mcp-configs-q7N3OdLf.mjs → repair-mcp-configs-ooUrwLkV.mjs} +1 -1
- package/dist/{src-DUKG1sCX.mjs → src-C7TYDpda.mjs} +1 -1
- package/dist/src-D4Ieb2-e.mjs +1 -0
- package/dist/{start-1Hhe17Lk.mjs → start-Dd8Kjf4r.mjs} +2 -2
- package/dist/start-UUHoS8aS.mjs +1 -0
- package/package.json +5 -5
- package/dist/constants-bNNZElnJ.mjs +0 -1
- package/dist/init-DUGzO8r8.mjs +0 -1
- package/dist/loader-DH1qp5mY.mjs +0 -1
- package/dist/preview-D-F3r5Kp.mjs +0 -1
- package/dist/public/assets/FeedbackForm-Cw18LfYY.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-C4MuWzpG.js +0 -1
- package/dist/public/assets/SessionsHost-dGkN-2tr.js +0 -2
- package/dist/public/assets/ThreadView-xKwOcttM.js +0 -18
- package/dist/public/assets/globals-DqPIo321.css +0 -1
- package/dist/public/assets/index-DjHzpHqg.js +0 -2205
- package/dist/public/assets/messages-ANoL83Dk.js +0 -1
- package/dist/public/assets/messages-BWqEYUdv.js +0 -1
- package/dist/public/assets/messages-BZmyVnIi.js +0 -1
- package/dist/public/assets/messages-Bc52tcma.js +0 -1
- package/dist/public/assets/messages-Bc7g8-u2.js +0 -1
- package/dist/public/assets/messages-CZnvryuW.js +0 -1
- package/dist/public/assets/messages-DDJW4YS7.js +0 -1
- package/dist/public/assets/messages-DEu-4b8m.js +0 -1
- package/dist/public/assets/messages-Dd17Lymt.js +0 -1
- package/dist/public/assets/messages-NUc-YspZ.js +0 -1
- package/dist/public/assets/messages-TKBypIZK.js +0 -1
- package/dist/public/assets/messages-Wi89bOa4.js +0 -1
- package/dist/public/assets/tool-list-format-BTKYlTbI.js +0 -1
- package/dist/src-C2KSQMV_.mjs +0 -1
- package/dist/start-BUmP2Kfc.mjs +0 -1
- /package/dist/public/assets/{globals-GBZU__Ek.js → globals-buvkHKE-.js} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{Es as t,Gc as n,Hd as r,Ls as i,Mn as a,Nn as o,To as s,Vn as c,Wc as l,ju as u,qc as d,xc as ee}from"./md-manager-BGnqyqi1-DKflYxqj.mjs";import{Ao as f,Jn as te,Qn as p,Rn as m,Tt as h,Ur as g,Yr as _,bi as v,dr as y,ea as b,jo as x,ko as S,m as C,ni as w,ri as T,ro as E,ti as D,yi as O}from"./dist-C9m6GTCy.mjs";import{t as k}from"./yazl-BBz29IQN.mjs";import{St as A,at as j,ot as M}from"./init--lQzxmjy.mjs";import{b as N,l as ne}from"./registry-probes-DGkQ3nHx.mjs";import{c as P}from"./colors-r_owlCuY.mjs";import{t as F}from"./is-object-BGze3w87.mjs";import{n as re}from"./constants-bNNZElnJ.mjs";import"./loader-DEGEUGWk.mjs";import"./preview-D3Y8yrOd.mjs";import{execSync as ie,spawnSync as I}from"node:child_process";import{basename as L,dirname as R,isAbsolute as ae,join as z,relative as oe,resolve as B,sep as V}from"node:path";import{closeSync as se,cpSync as ce,createWriteStream as le,existsSync as H,lstatSync as ue,mkdirSync as U,mkdtempSync as de,openSync as fe,readFileSync as W,readSync as pe,readdirSync as G,rmSync as K,rmdirSync as me,statSync as he,writeFileSync as q}from"node:fs";import{arch as ge,freemem as _e,homedir as J,hostname as ve,platform as ye,release as be,tmpdir as xe,totalmem as Se,type as Ce,uptime as we}from"node:os";import"node:fs/promises";import{createHash as Te}from"node:crypto";const Ee=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function De(e,t,n=p){if(e!==void 0&&!Ee.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let Oe=null;function ke(e){Oe=e}function Ae(){return Oe??process.cwd()}const je=`Open Knowledge`;function Me(e={}){let t=e.platformName??process.platform,n=e.productName??`OpenKnowledge`;return j(t).join(M({...e,platformName:t}),n)}function Ne(e={}){let t=e.platformName??process.platform,n=e.home??J(),r=e.env??process.env,i=j(t),a;return a=t===`win32`?r.LOCALAPPDATA||i.join(n,`AppData`,`Local`):t===`darwin`?i.join(n,`Library`,`Caches`):r.XDG_CACHE_HOME||i.join(n,`.cache`),i.join(a,`@inkeepopen-knowledge-desktop-updater`)}function Pe(e){if(typeof e!=`object`||!e)return null;let t=e.recentProjects;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;typeof t.path==`string`&&typeof t.name==`string`&&n.push({path:t.path,name:t.name})}return n}function Fe(e){let t=z(e,`state.json`);if(!H(t))return[];let n;try{n=JSON.parse(W(t,`utf-8`))}catch{return[]}return Pe(n)??[]}function Ie(e){let t=z(e,`state.json`);if(!H(t))return!1;try{return Pe(JSON.parse(W(t,`utf-8`)))!==null}catch{return!1}}const Le=8192;function Re(e,t){if(e.outcome===`not-present`)return`not-present (no DiagnosticReports directory)`;if(e.outcome===`unreadable-directory`)return`unreadable (${e.directoryErrorCode??`unknown`} reading DiagnosticReports)`;let n=[`${e.windowDays}d`,`${e.foreignIgnored} other-process report(s) ignored`,`${e.unparseable} unparseable`];e.droppedOverCap>0&&n.push(`${e.droppedOverCap} older dropped over cap`);let r=e.files.length-t;return r>0&&n.push(`${r} vanished before staging`),e.outcome===`none-in-window`?`none found in window (${n.join(`; `)})`:`${t} collected (${n.join(`; `)})`}function ze(e){return e.replace(/\\+\/?/g,e=>{if(!e.endsWith(`/`))return e;let t=e.length-1;return`${`\\`.repeat(t-t%2)}/`})}const Be=RegExp(`("(?:${[`crashReporterKey`,`bootSessionUUID`,`deviceIdentifierForVendor`].join(`|`)})"\\s*:\\s*)"[^"]*"`,`g`);function Ve(e){return e.replace(Be,`$1"[REDACTED-DEVICE-ID]"`)}function He(e){return Ve(ze(e))}const Ue=/^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})(\.\d+)? ([+-]\d{2})(\d{2})$/;function We(e){if(typeof e!=`string`)return null;let t=Ue.exec(e.trim());if(t===null)return null;let[,n,r,i=``,a,o]=t,s=Date.parse(`${n}T${r}${i}${a}:${o}`);return Number.isNaN(s)?null:s}function Ge(e){let t=fe(e,`r`);try{let e=Buffer.alloc(Le),n=0,r=!1;for(;n<Le;){let i=pe(t,e,n,Le-n,n);if(i===0){r=!0;break}let a=n;n+=i;let o=e.subarray(0,n).indexOf(10,a);if(o!==-1)return e.subarray(0,o).toString(`utf-8`)}return r?e.subarray(0,n).toString(`utf-8`):null}finally{se(t)}}function Ke(e){try{let t=Ge(e);if(t===null)return{kind:`unreadable`};let n=JSON.parse(t);if(typeof n!=`object`||!n)return{kind:`unreadable`};let{name:r,app_name:i,timestamp:a}=n,o=typeof r==`string`?r:typeof i==`string`?i:null;return o===null?{kind:`unreadable`}:{kind:`named`,name:o,timestampMs:We(a)}}catch{return{kind:`unreadable`}}}function qe(e){return e===`OpenKnowledge`||e.startsWith(`OpenKnowledge `)}function Je(e,t){let n={files:[],foreignIgnored:0,unparseable:0,droppedOverCap:0,windowDays:7},r;try{r=G(e,{withFileTypes:!0})}catch(e){let t=e.code;return t===`ENOENT`?{...n,outcome:`not-present`}:{...n,outcome:`unreadable-directory`,directoryErrorCode:t??`unknown`}}let i=t.getTime()-6048e5,a=[],o=0,s=0;for(let t of r){if(!t.isFile()||!t.name.endsWith(`.ips`))continue;let n=z(e,t.name),r;try{r=he(n).mtimeMs}catch{continue}if(r<i)continue;let c=Ke(n),l=c.kind===`named`&&c.timestampMs!==null?c.timestampMs:r;if(c.kind===`unreadable`){s+=1;continue}if(!qe(c.name)){o+=1;continue}a.push({path:n,atMs:l})}a.sort((e,t)=>t.atMs-e.atMs);let c=a.slice(0,25),l={foreignIgnored:o,unparseable:s,droppedOverCap:a.length-c.length,windowDays:7};return c.length===0?{...l,files:[],outcome:`none-in-window`}:{...l,files:c.map(e=>e.path),outcome:`collected`}}function Y(){return z(J(),`.ok`,`bug-reports`)}function Ye(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=Y(),r=`${t}-bugreport`,i=z(n,`${r}.zip`);for(let e=2;H(i);e+=1)i=z(n,`${r}-${e}.zip`);return i}function Xe(e,t){let n=z(e,`.ok`,`config.yml`);if(H(n))try{let e=W(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return H(z(e,`.ok`))?Te(`sha256`).update(B(e)).digest(`hex`).slice(0,12):null}function Ze(){let e={timestamp:new Date().toISOString(),platform:ye(),osType:Ce(),osRelease:be(),hostname:`[redacted]`,uptime:we(),freeMem:_e(),totalMem:Se(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=ie(`sw_vers -productVersion 2>/dev/null`,E({encoding:`utf8`})).trim()}catch{}try{let t=z(__dirname,`..`,`..`,`package.json`);H(t)&&(e.okVersion=JSON.parse(W(t,`utf8`)).version)}catch{}return e}const Qe=[{prefix:`cli`,projectTagged:!0},{prefix:`desktop`,projectTagged:!1},{prefix:`mcp`,projectTagged:!1}];function $e(e){let t=L(e);return Qe.some(e=>e.projectTagged&&t.startsWith(`${e.prefix}.`))}function et(e,t){return it(e,t).files}const tt=[`ShipIt_stderr.log`,`ShipIt_stdout.log`];function nt(e,t=ne){let n=z(e,`${t}.ShipIt`);if(!H(n))return[];let r;try{r=G(n)}catch{return[]}return tt.flatMap(e=>r.map(t=>{if(t===e)return{entry:t,suffix:-1};if(!t.startsWith(`${e}.`))return null;let n=t.slice(e.length+1);return/^\d+$/.test(n)?{entry:t,suffix:Number(n)}:null}).filter(e=>e!==null).sort((e,t)=>e.suffix-t.suffix).slice(0,4).map(e=>z(n,e.entry)))}function rt(e){if(!H(e))return[];try{let t=new Map;for(let n of G(e).filter(e=>e.endsWith(`.yaml`)).sort()){let e=n.endsWith(`.sent.yaml`)?n.slice(0,-a.length):n.slice(0,-5),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return[...t.values()].slice(-25).flat().map(t=>z(e,t))}catch{return[]}}function it(e,t){if(!H(t))return{files:[],excludedByProjectSlug:0};let n=G(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>z(t,e));if(!e)return{files:n,excludedByProjectSlug:0};let r=n.filter($e),i=[],a=r.filter(t=>{try{return W(t,`utf8`).includes(`"project":"${e}"`)}catch{return i.push(t),!1}});if(a.length===0)return{files:n,excludedByProjectSlug:0};let o=new Set([...a,...i]);return{files:n.filter(e=>!$e(e)||o.has(e)),excludedByProjectSlug:r.length-o.size}}function at(e){let t=z(e,`.ok`,`local`);return H(t)?{files:[`server.lock`,`last-spawn-error.log`,l].map(e=>z(t,e)).filter(e=>H(e))}:{files:[]}}function ot(e){let t=z(e,`.ok`,`local`,`logs`);return H(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>z(t,e)).filter(e=>H(e))}:{files:[]}}function st(e){let t=0,n=new Map,r=e.replace(/("(?:docName|doc\.name|documentName)"\s*:\s*")((?:[^"\\]|\\.)*)"/g,(e,r,i)=>{t+=1;let a=n.get(i);return a===void 0&&(a=`doc#${Te(`sha256`).update(i).digest(`hex`).slice(0,12)}`,n.set(i,a)),`${r}${a}"`});for(let[e,i]of[...n].sort(([e],[t])=>t.length-e.length)){if(e.length===0||!r.includes(e))continue;let n=r.split(e);t+=n.length-1,r=n.join(i)}return{text:r,count:t}}function ct(e){let n=e.revealDocNames?e.content:st(e.content).text;if(e.redact){let{redacted:r,patterns:i,lineCount:a}=t(n);e.zipfile.addBuffer(Buffer.from(r,`utf8`),e.name),e.bundleFiles.push(e.name),i.length>0&&e.redactions.push({file:e.name,lineCount:a,patterns:i})}else e.zipfile.addBuffer(Buffer.from(n,`utf8`),e.name),e.bundleFiles.push(e.name)}function X(e){for(let t of e.files)try{let n=W(t,`utf8`);ct({zipfile:e.zipfile,name:`${e.prefix}/${L(t)}`,content:t.endsWith(`.ips`)?He(n):n,redact:e.redact,revealDocNames:e.revealDocNames,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function lt(t){let{redact:n,outputPath:r,logger:i}=t,a=t.revealDocNames??!1,s=t.userLogsDir??z(J(),`.ok`,`logs`),l=t.projectDir?Xe(t.projectDir,i):null;U(R(r),{recursive:!0}),i?.info({projectSlug:l},`gathering diagnostic data`);let u=Ze();u.desktop=t.desktop??null,u.language=t.language??null;let{files:d,excludedByProjectSlug:ee}=it(l,s),{files:f}=t.projectDir?at(t.projectDir):{files:[]},{files:te}=t.projectDir?ot(t.projectDir):{files:[]},p=t.shipItLogFiles??[],m=t.diagnosticReports?.files??[];i?.info({logFileCount:d.length,logFilesExcludedByProjectSlug:ee,lockFileCount:f.length,localSinkFileCount:te.length,shipItLogFileCount:p.length,diagnosticReportCount:m.length},`files collected`);let h=[],g=[],{ZipFile:_}=await import(`./yazl-BsCX6KWo.mjs`).then(t=>e(t.default,1)),v=new _;X({zipfile:v,files:[...d,...p],prefix:`logs`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:f,prefix:`lockdir`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:te,prefix:`local-logs`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:t.bugReportLedgerFiles??[],prefix:o,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:m,prefix:`diagnostic-reports`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i});for(let e of t.extraFiles??[])try{let t=W(e.sourcePath),n=`extra/${e.zipName??L(e.sourcePath)}`;v.addBuffer(t,n),g.push(n)}catch(t){i?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&ct({zipfile:v,name:`note.txt`,content:t.note,redact:n,revealDocNames:a,bundleFiles:g,redactions:h});let y=new Set(m.map(e=>`diagnostic-reports/${L(e)}`)),b=g.filter(e=>y.has(e)),x=t.diagnosticReports===void 0?`not-collected (no collection attempted)`:Re(t.diagnosticReports,b.length);v.addBuffer(Buffer.from(`${x}\n`,`utf8`),`state/diagnostic-reports-status.txt`),g.push(`state/diagnostic-reports-status.txt`);let S=JSON.stringify(u,null,2);v.addBuffer(Buffer.from(S,`utf8`),`sysinfo.json`),g.push(`sysinfo.json`);let C={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:l,files:g,redactions:h,sysinfo:u};v.addBuffer(Buffer.from(JSON.stringify(C,null,2),`utf8`),`MANIFEST.json`);let w=h.reduce((e,t)=>e+t.lineCount,0),T=new Set(p.map(e=>`logs/${L(e)}`)),E=g.filter(e=>T.has(e)),D=new Set((t.bugReportLedgerFiles??[]).map(e=>`${o}/${L(e)}`)),O=g.filter(e=>D.has(e)),k=l?g.filter(e=>e.startsWith(`logs/`)&&!$e(e)&&!T.has(e)):[],A=b.length>0?[`Crash reports under diagnostic-reports/ are rewritten on the way in,`,`independently of this setting: escaped path separators are normalised`,`so the scrub above can read them, and the identifiers that link this`,`machine's bundles to each other are replaced. Nothing else is changed;`,`they are not byte-identical to the files macOS wrote.`]:[],j=A.length>0?[`Redaction was disabled for this bundle; file contents are unmodified,`,`with one exception.`,...A]:[`Redaction was disabled for this bundle; file contents are unmodified.`],M=[`# Bug Report Bundle`,``,`Generated: ${C.generatedAt}`,`Project: ${l??`(unscoped)`}`,`Discipline version: ${C.disciplineVersion}`,``,`## Contents`,``,...g.map(e=>`- ${e}`),``,`## Privacy`,``,...k.length>0?[`Scope: some collected logs are user-wide rather than project-scoped.`,`These are written once per machine per day and can contain activity`,`from other projects open on this machine, including captured console`,`output:`,...k.map(e=>`- ${e}`),``]:[],...E.length>0?[`Installer logs: written by the macOS update helper rather than by`,`OpenKnowledge itself, and machine-wide rather than scoped to any one`,`project. They record the install and update history of this app on`,`this machine. Only this app is collected, never other applications`,`that use the same update mechanism:`,...E.map(e=>`- ${e}`),``]:[],...b.length>0?[`Crash reports: written by macOS itself rather than by OpenKnowledge,`,`and machine-wide rather than scoped to any one project. They record`,`why the operating system ended a process of this app — the signal or`,`exception, the code-signing verdict, and whatever text the process`,`left behind as it died. They also carry machine details the OS puts`,`in every report: the account uid, the Mac model, and the name of the`,`process that launched this app, which on a managed machine can be`,`internal tooling. The identifiers that would link this machine's`,`bundles to each other are replaced before bundling. Only this`,`app's own reports are collected, never another application's, though`,`a report of ours still names the processes it ran alongside:`,...b.map(e=>`- ${e}`),``]:[],...O.length>0?[`Send history: a small record for each bug report previously generated`,`on this machine — when it was generated, whether sending it`,`succeeded, and why it failed if it did. This is what makes a failed`,`send diagnosable at all. It is machine-wide rather than scoped to`,`this project, so it names the other projects reports were filed`,`from. It carries no document content:`,...O.map(e=>`- ${e}`),``]:[],...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${c.join(`, `)}`,w>0?`${w} line(s) were scrubbed across ${h.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,...A,``,`This bundle is safe to attach to a GitHub issue.`]:j].join(`
|
|
1
|
+
import{o as e}from"./rolldown-runtime-tZXQYakl.mjs";import{Es as t,Gc as n,Hd as r,Ls as i,Mn as a,Nn as o,To as s,Vn as c,Wc as l,ju as u,qc as d,xc as ee}from"./md-manager-BGnqyqi1-DKflYxqj.mjs";import{Ao as f,Jn as te,Qn as p,Rn as m,Tt as h,Ur as g,Yr as _,bi as v,dr as y,ea as b,jo as x,ko as S,m as C,ni as w,ri as T,ro as E,ti as D,yi as O}from"./dist-C9m6GTCy.mjs";import{t as k}from"./yazl-BBz29IQN.mjs";import{St as A,at as j,ot as M}from"./init-Cuw6M3ez.mjs";import{b as N,l as ne}from"./registry-probes-CpizlLKe.mjs";import{c as P}from"./colors-r_owlCuY.mjs";import{t as F}from"./is-object-BGze3w87.mjs";import{n as re}from"./constants-CmQdCHUX.mjs";import"./loader-DDluoWkF.mjs";import"./preview-ZhG30yAN.mjs";import{execSync as ie,spawnSync as I}from"node:child_process";import{basename as L,dirname as R,isAbsolute as ae,join as z,relative as oe,resolve as B,sep as V}from"node:path";import{closeSync as se,cpSync as ce,createWriteStream as le,existsSync as H,lstatSync as ue,mkdirSync as U,mkdtempSync as de,openSync as fe,readFileSync as W,readSync as pe,readdirSync as G,rmSync as K,rmdirSync as me,statSync as he,writeFileSync as q}from"node:fs";import{arch as ge,freemem as _e,homedir as J,hostname as ve,platform as ye,release as be,tmpdir as xe,totalmem as Se,type as Ce,uptime as we}from"node:os";import"node:fs/promises";import{createHash as Te}from"node:crypto";const Ee=new Set([`start`,`stop`,`status`,`clean`,`ui`,`mcp`,`preview`,`lint`,`deinit`,`auth`]);function De(e,t,n=p){if(e!==void 0&&!Ee.has(e))return null;let r=n(t);return r===null||r.distance===0?null:r.rootPath}let Oe=null;function ke(e){Oe=e}function Ae(){return Oe??process.cwd()}const je=`Open Knowledge`;function Me(e={}){let t=e.platformName??process.platform,n=e.productName??`OpenKnowledge`;return j(t).join(M({...e,platformName:t}),n)}function Ne(e={}){let t=e.platformName??process.platform,n=e.home??J(),r=e.env??process.env,i=j(t),a;return a=t===`win32`?r.LOCALAPPDATA||i.join(n,`AppData`,`Local`):t===`darwin`?i.join(n,`Library`,`Caches`):r.XDG_CACHE_HOME||i.join(n,`.cache`),i.join(a,`@inkeepopen-knowledge-desktop-updater`)}function Pe(e){if(typeof e!=`object`||!e)return null;let t=e.recentProjects;if(!Array.isArray(t))return null;let n=[];for(let e of t){if(typeof e!=`object`||!e)continue;let t=e;typeof t.path==`string`&&typeof t.name==`string`&&n.push({path:t.path,name:t.name})}return n}function Fe(e){let t=z(e,`state.json`);if(!H(t))return[];let n;try{n=JSON.parse(W(t,`utf-8`))}catch{return[]}return Pe(n)??[]}function Ie(e){let t=z(e,`state.json`);if(!H(t))return!1;try{return Pe(JSON.parse(W(t,`utf-8`)))!==null}catch{return!1}}const Le=8192;function Re(e,t){if(e.outcome===`not-present`)return`not-present (no DiagnosticReports directory)`;if(e.outcome===`unreadable-directory`)return`unreadable (${e.directoryErrorCode??`unknown`} reading DiagnosticReports)`;let n=[`${e.windowDays}d`,`${e.foreignIgnored} other-process report(s) ignored`,`${e.unparseable} unparseable`];e.droppedOverCap>0&&n.push(`${e.droppedOverCap} older dropped over cap`);let r=e.files.length-t;return r>0&&n.push(`${r} vanished before staging`),e.outcome===`none-in-window`?`none found in window (${n.join(`; `)})`:`${t} collected (${n.join(`; `)})`}function ze(e){return e.replace(/\\+\/?/g,e=>{if(!e.endsWith(`/`))return e;let t=e.length-1;return`${`\\`.repeat(t-t%2)}/`})}const Be=RegExp(`("(?:${[`crashReporterKey`,`bootSessionUUID`,`deviceIdentifierForVendor`].join(`|`)})"\\s*:\\s*)"[^"]*"`,`g`);function Ve(e){return e.replace(Be,`$1"[REDACTED-DEVICE-ID]"`)}function He(e){return Ve(ze(e))}const Ue=/^(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2})(\.\d+)? ([+-]\d{2})(\d{2})$/;function We(e){if(typeof e!=`string`)return null;let t=Ue.exec(e.trim());if(t===null)return null;let[,n,r,i=``,a,o]=t,s=Date.parse(`${n}T${r}${i}${a}:${o}`);return Number.isNaN(s)?null:s}function Ge(e){let t=fe(e,`r`);try{let e=Buffer.alloc(Le),n=0,r=!1;for(;n<Le;){let i=pe(t,e,n,Le-n,n);if(i===0){r=!0;break}let a=n;n+=i;let o=e.subarray(0,n).indexOf(10,a);if(o!==-1)return e.subarray(0,o).toString(`utf-8`)}return r?e.subarray(0,n).toString(`utf-8`):null}finally{se(t)}}function Ke(e){try{let t=Ge(e);if(t===null)return{kind:`unreadable`};let n=JSON.parse(t);if(typeof n!=`object`||!n)return{kind:`unreadable`};let{name:r,app_name:i,timestamp:a}=n,o=typeof r==`string`?r:typeof i==`string`?i:null;return o===null?{kind:`unreadable`}:{kind:`named`,name:o,timestampMs:We(a)}}catch{return{kind:`unreadable`}}}function qe(e){return e===`OpenKnowledge`||e.startsWith(`OpenKnowledge `)}function Je(e,t){let n={files:[],foreignIgnored:0,unparseable:0,droppedOverCap:0,windowDays:7},r;try{r=G(e,{withFileTypes:!0})}catch(e){let t=e.code;return t===`ENOENT`?{...n,outcome:`not-present`}:{...n,outcome:`unreadable-directory`,directoryErrorCode:t??`unknown`}}let i=t.getTime()-6048e5,a=[],o=0,s=0;for(let t of r){if(!t.isFile()||!t.name.endsWith(`.ips`))continue;let n=z(e,t.name),r;try{r=he(n).mtimeMs}catch{continue}if(r<i)continue;let c=Ke(n),l=c.kind===`named`&&c.timestampMs!==null?c.timestampMs:r;if(c.kind===`unreadable`){s+=1;continue}if(!qe(c.name)){o+=1;continue}a.push({path:n,atMs:l})}a.sort((e,t)=>t.atMs-e.atMs);let c=a.slice(0,25),l={foreignIgnored:o,unparseable:s,droppedOverCap:a.length-c.length,windowDays:7};return c.length===0?{...l,files:[],outcome:`none-in-window`}:{...l,files:c.map(e=>e.path),outcome:`collected`}}function Y(){return z(J(),`.ok`,`bug-reports`)}function Ye(e=new Date){let t=e.toISOString().replace(/[:.]/g,`-`),n=Y(),r=`${t}-bugreport`,i=z(n,`${r}.zip`);for(let e=2;H(i);e+=1)i=z(n,`${r}-${e}.zip`);return i}function Xe(e,t){let n=z(e,`.ok`,`config.yml`);if(H(n))try{let e=W(n,`utf8`).match(/^\s*name:\s*['"]?(.+?)['"]?\s*$/m);if(e?.[1])return e[1]}catch(e){t?.warn({configPath:n,err:e},`bug-report: failed to read .ok/config.yml for project slug; using path-hash fallback`)}return H(z(e,`.ok`))?Te(`sha256`).update(B(e)).digest(`hex`).slice(0,12):null}function Ze(){let e={timestamp:new Date().toISOString(),platform:ye(),osType:Ce(),osRelease:be(),hostname:`[redacted]`,uptime:we(),freeMem:_e(),totalMem:Se(),nodeVersion:process.version,bunVersion:process.versions.bun??null,v8Version:process.versions.v8??null,pid:process.pid};try{e.macosVersion=ie(`sw_vers -productVersion 2>/dev/null`,E({encoding:`utf8`})).trim()}catch{}try{let t=z(__dirname,`..`,`..`,`package.json`);H(t)&&(e.okVersion=JSON.parse(W(t,`utf8`)).version)}catch{}return e}const Qe=[{prefix:`cli`,projectTagged:!0},{prefix:`desktop`,projectTagged:!1},{prefix:`mcp`,projectTagged:!1}];function $e(e){let t=L(e);return Qe.some(e=>e.projectTagged&&t.startsWith(`${e.prefix}.`))}function et(e,t){return it(e,t).files}const tt=[`ShipIt_stderr.log`,`ShipIt_stdout.log`];function nt(e,t=ne){let n=z(e,`${t}.ShipIt`);if(!H(n))return[];let r;try{r=G(n)}catch{return[]}return tt.flatMap(e=>r.map(t=>{if(t===e)return{entry:t,suffix:-1};if(!t.startsWith(`${e}.`))return null;let n=t.slice(e.length+1);return/^\d+$/.test(n)?{entry:t,suffix:Number(n)}:null}).filter(e=>e!==null).sort((e,t)=>e.suffix-t.suffix).slice(0,4).map(e=>z(n,e.entry)))}function rt(e){if(!H(e))return[];try{let t=new Map;for(let n of G(e).filter(e=>e.endsWith(`.yaml`)).sort()){let e=n.endsWith(`.sent.yaml`)?n.slice(0,-a.length):n.slice(0,-5),r=t.get(e);r===void 0?t.set(e,[n]):r.push(n)}return[...t.values()].slice(-25).flat().map(t=>z(e,t))}catch{return[]}}function it(e,t){if(!H(t))return{files:[],excludedByProjectSlug:0};let n=G(t).filter(e=>e.endsWith(`.log`)||/\.log\.\d+$/.test(e)).map(e=>z(t,e));if(!e)return{files:n,excludedByProjectSlug:0};let r=n.filter($e),i=[],a=r.filter(t=>{try{return W(t,`utf8`).includes(`"project":"${e}"`)}catch{return i.push(t),!1}});if(a.length===0)return{files:n,excludedByProjectSlug:0};let o=new Set([...a,...i]);return{files:n.filter(e=>!$e(e)||o.has(e)),excludedByProjectSlug:r.length-o.size}}function at(e){let t=z(e,`.ok`,`local`);return H(t)?{files:[`server.lock`,`last-spawn-error.log`,l].map(e=>z(t,e)).filter(e=>H(e))}:{files:[]}}function ot(e){let t=z(e,`.ok`,`local`,`logs`);return H(t)?{files:[`server-current.jsonl`,`server-prev.jsonl`].map(e=>z(t,e)).filter(e=>H(e))}:{files:[]}}function st(e){let t=0,n=new Map,r=e.replace(/("(?:docName|doc\.name|documentName)"\s*:\s*")((?:[^"\\]|\\.)*)"/g,(e,r,i)=>{t+=1;let a=n.get(i);return a===void 0&&(a=`doc#${Te(`sha256`).update(i).digest(`hex`).slice(0,12)}`,n.set(i,a)),`${r}${a}"`});for(let[e,i]of[...n].sort(([e],[t])=>t.length-e.length)){if(e.length===0||!r.includes(e))continue;let n=r.split(e);t+=n.length-1,r=n.join(i)}return{text:r,count:t}}function ct(e){let n=e.revealDocNames?e.content:st(e.content).text;if(e.redact){let{redacted:r,patterns:i,lineCount:a}=t(n);e.zipfile.addBuffer(Buffer.from(r,`utf8`),e.name),e.bundleFiles.push(e.name),i.length>0&&e.redactions.push({file:e.name,lineCount:a,patterns:i})}else e.zipfile.addBuffer(Buffer.from(n,`utf8`),e.name),e.bundleFiles.push(e.name)}function X(e){for(let t of e.files)try{let n=W(t,`utf8`);ct({zipfile:e.zipfile,name:`${e.prefix}/${L(t)}`,content:t.endsWith(`.ips`)?He(n):n,redact:e.redact,revealDocNames:e.revealDocNames,bundleFiles:e.bundleFiles,redactions:e.redactions})}catch(n){e.logger?.warn({file:t,prefix:e.prefix,err:n},`bug-report: skipped unreadable file`)}}async function lt(t){let{redact:n,outputPath:r,logger:i}=t,a=t.revealDocNames??!1,s=t.userLogsDir??z(J(),`.ok`,`logs`),l=t.projectDir?Xe(t.projectDir,i):null;U(R(r),{recursive:!0}),i?.info({projectSlug:l},`gathering diagnostic data`);let u=Ze();u.desktop=t.desktop??null,u.language=t.language??null;let{files:d,excludedByProjectSlug:ee}=it(l,s),{files:f}=t.projectDir?at(t.projectDir):{files:[]},{files:te}=t.projectDir?ot(t.projectDir):{files:[]},p=t.shipItLogFiles??[],m=t.diagnosticReports?.files??[];i?.info({logFileCount:d.length,logFilesExcludedByProjectSlug:ee,lockFileCount:f.length,localSinkFileCount:te.length,shipItLogFileCount:p.length,diagnosticReportCount:m.length},`files collected`);let h=[],g=[],{ZipFile:_}=await import(`./yazl-BsCX6KWo.mjs`).then(t=>e(t.default,1)),v=new _;X({zipfile:v,files:[...d,...p],prefix:`logs`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:f,prefix:`lockdir`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:te,prefix:`local-logs`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:t.bugReportLedgerFiles??[],prefix:o,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i}),X({zipfile:v,files:m,prefix:`diagnostic-reports`,redact:n,revealDocNames:a,bundleFiles:g,redactions:h,logger:i});for(let e of t.extraFiles??[])try{let t=W(e.sourcePath),n=`extra/${e.zipName??L(e.sourcePath)}`;v.addBuffer(t,n),g.push(n)}catch(t){i?.warn({sourcePath:e.sourcePath,err:t},`extra file unreadable; omitted from bundle`)}t.note&&ct({zipfile:v,name:`note.txt`,content:t.note,redact:n,revealDocNames:a,bundleFiles:g,redactions:h});let y=new Set(m.map(e=>`diagnostic-reports/${L(e)}`)),b=g.filter(e=>y.has(e)),x=t.diagnosticReports===void 0?`not-collected (no collection attempted)`:Re(t.diagnosticReports,b.length);v.addBuffer(Buffer.from(`${x}\n`,`utf8`),`state/diagnostic-reports-status.txt`),g.push(`state/diagnostic-reports-status.txt`);let S=JSON.stringify(u,null,2);v.addBuffer(Buffer.from(S,`utf8`),`sysinfo.json`),g.push(`sysinfo.json`);let C={generatedAt:new Date().toISOString(),disciplineVersion:`1.0.0`,projectSlug:l,files:g,redactions:h,sysinfo:u};v.addBuffer(Buffer.from(JSON.stringify(C,null,2),`utf8`),`MANIFEST.json`);let w=h.reduce((e,t)=>e+t.lineCount,0),T=new Set(p.map(e=>`logs/${L(e)}`)),E=g.filter(e=>T.has(e)),D=new Set((t.bugReportLedgerFiles??[]).map(e=>`${o}/${L(e)}`)),O=g.filter(e=>D.has(e)),k=l?g.filter(e=>e.startsWith(`logs/`)&&!$e(e)&&!T.has(e)):[],A=b.length>0?[`Crash reports under diagnostic-reports/ are rewritten on the way in,`,`independently of this setting: escaped path separators are normalised`,`so the scrub above can read them, and the identifiers that link this`,`machine's bundles to each other are replaced. Nothing else is changed;`,`they are not byte-identical to the files macOS wrote.`]:[],j=A.length>0?[`Redaction was disabled for this bundle; file contents are unmodified,`,`with one exception.`,...A]:[`Redaction was disabled for this bundle; file contents are unmodified.`],M=[`# Bug Report Bundle`,``,`Generated: ${C.generatedAt}`,`Project: ${l??`(unscoped)`}`,`Discipline version: ${C.disciplineVersion}`,``,`## Contents`,``,...g.map(e=>`- ${e}`),``,`## Privacy`,``,...k.length>0?[`Scope: some collected logs are user-wide rather than project-scoped.`,`These are written once per machine per day and can contain activity`,`from other projects open on this machine, including captured console`,`output:`,...k.map(e=>`- ${e}`),``]:[],...E.length>0?[`Installer logs: written by the macOS update helper rather than by`,`OpenKnowledge itself, and machine-wide rather than scoped to any one`,`project. They record the install and update history of this app on`,`this machine. Only this app is collected, never other applications`,`that use the same update mechanism:`,...E.map(e=>`- ${e}`),``]:[],...b.length>0?[`Crash reports: written by macOS itself rather than by OpenKnowledge,`,`and machine-wide rather than scoped to any one project. They record`,`why the operating system ended a process of this app — the signal or`,`exception, the code-signing verdict, and whatever text the process`,`left behind as it died. They also carry machine details the OS puts`,`in every report: the account uid, the Mac model, and the name of the`,`process that launched this app, which on a managed machine can be`,`internal tooling. The identifiers that would link this machine's`,`bundles to each other are replaced before bundling. Only this`,`app's own reports are collected, never another application's, though`,`a report of ours still names the processes it ran alongside:`,...b.map(e=>`- ${e}`),``]:[],...O.length>0?[`Send history: a small record for each bug report previously generated`,`on this machine — when it was generated, whether sending it`,`succeeded, and why it failed if it did. This is what makes a failed`,`send diagnosable at all. It is machine-wide rather than scoped to`,`this project, so it names the other projects reports were filed`,`from. It carries no document content:`,...O.map(e=>`- ${e}`),``]:[],...n?[`This bundle was auto-redacted before packaging.`,`Patterns checked: ${c.join(`, `)}`,w>0?`${w} line(s) were scrubbed across ${h.length} file(s).`:`No redactions were needed.`,`See MANIFEST.json for the full redaction audit report.`,...A,``,`This bundle is safe to attach to a GitHub issue.`]:j].join(`
|
|
2
2
|
`);v.addBuffer(Buffer.from(M,`utf8`),`README.md`),v.end();let N=le(r);return v.outputStream.pipe(N),await new Promise((e,t)=>{N.on(`close`,e),N.on(`error`,t)}),i?.info({bundlePath:r,fileCount:g.length,redactionCount:w},`bundle written`),{zipPath:r,summary:{projectSlug:l,files:g,redactions:h,redactedLineCount:w,generatedAt:C.generatedAt}}}var ut=u(),dt=e(k(),1),Z=e(P(),1);function ft(e){let t=x(`user`,e,e);return S({absPath:t,sideline:!1,warn:()=>{}}).value.appearance?.language??`system`}function pt({home:e=J(),env:t=process.env}={}){let n=ft(e),{override:r,preferenceList:a}=f(t),{locale:o,source:s}=i({override:r,storedPreference:n,supportedLocales:d,preferenceList:a,autoDetectableLocales:ee});return{preference:n,locale:o,source:s,systemLanguages:a}}function mt(e,t){return t.length===0||!e.includes(t)?e:e.split(t).join(`<CONTENT_DIR>`)}function ht(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function gt(e,t){if(typeof e==`string`)return mt(e,t.contentDir);if(Array.isArray(e))return e.map(e=>gt(e,t));if(!ht(e))return e;let n={};for(let[r,i]of Object.entries(e))n[r]=gt(i,t);return n}function _t(e,t){let n=W(e,`utf-8`);if(n.length===0)return;let r=n.endsWith(`
|
|
3
3
|
`),i=n.split(`
|
|
4
4
|
`),a=[];for(let e=0;e<i.length;e++){let n=i[e]??``;if(e!==i.length-1||n!==``){if(n.length===0){a.push(``);continue}try{let e=gt(JSON.parse(n),t);a.push(JSON.stringify(e))}catch{a.push(n)}}}let o=r?`${a.join(`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./md-manager-BGnqyqi1-DKflYxqj.mjs";import"./init-Cuw6M3ez.mjs";import"./registry-probes-CpizlLKe.mjs";import"./src-C7TYDpda.mjs";import"./start-Dd8Kjf4r.mjs";import{n as e}from"./loader-DDluoWkF.mjs";import"./preview-ZhG30yAN.mjs";import"./cli.mjs";import"./repair-mcp-configs-ooUrwLkV.mjs";export{e as loadConfig};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{Fc as e,Fs as t,Hu as n,Md as r,No as i,Rs as a,_t as o,da as s}from"./md-manager-BGnqyqi1-DKflYxqj.mjs";import{Ho as c,Wr as ee,ai as l,jo as u,k as d,ko as f,ti as p,vi as m}from"./dist-C9m6GTCy.mjs";import{Ct as h,I as g,R as _,St as v,Y as y,b,lt as x,wt as S,y as C}from"./init
|
|
2
|
-
`)){let e=r.replace(_e,``),i=me.exec(e)?.[1];if(i){n={login:i,active:!1},t.push(n);continue}if(he.test(e)){n=void 0;continue}n&&ge.test(e)&&(n.active=!0)}return t}const ye={mode:`published`,skipAvailabilityCheck:!0,replaceEntry:!0};function G(){return{action:`failed`,errorId:`write-failed`}}function K(){return{action:`skipped-missing`,errorId:`surface-missing`}}function q(e,t,n){c(`agent-integrations-apply`).warn({editor:e,path:t,reason:n},`skill write failed`)}function J(){return{action:`skipped-unsupported`,errorId:`no-writer`}}function be(e){switch(e){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`left-foreign`:return{action:`skipped-foreign`,errorId:`foreign-artifact`};case`declined`:return{action:`declined`,errorId:`write-declined`}}}function xe(e,t,n,r,i){let a=y[e];try{let o=k(a,t,n,r,i);return o.kind===`removed`&&o.trustDetail&&c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),trust:o.trust,trustDetail:o.trustDetail},`MCP config removal retained Pi folder trust`),be(o.kind)}catch(i){return c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),reason:i instanceof Error?i.message:String(i)},`MCP config removal failed`),G()}}async function Se(e,t,n){if(y[e].scope!==`global`)return K();if(n===`absent`)return xe(e,``,t.home,void 0,t.env);let r=(await b({editors:[e],home:t.home,replaceEntry:!0})).find(t=>t.editorId===e);if(r===void 0)return G();switch(r.action){case`written`:case`overwritten`:return{action:r.action};case`declined`:return{action:`declined`,errorId:`write-declined`};case`skipped-missing`:return K();case`skipped-flag`:return J();default:return G()}}function Ce(e,t,n){let i=r[e];if(i===null)return K();let a=ie(t.cwd,i);if(n===`absent`)return xe(e,t.cwd,t.home,a,t.env);let o=C(y[e],t.cwd,ye,void 0,a);switch(o.action){case`written`:case`overwritten`:return{action:o.action};case`declined`:return{action:`declined`,errorId:`write-declined`};default:return G()}}function we(e,t,n){let r=t.home??oe();if(n===`absent`){let t=j(e,r);switch(t.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return K();case`failed`:return q(e,t.path,t.error),G()}}let i=w(e,r);switch(i.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return K();case`failed`:return q(e,i.path,i.error),G()}}function Te(e,t,n){if(n===`absent`){let n=g(y[e],t.cwd);switch(n.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return K();case`failed`:return q(e,n.path,n.error),G()}}let r=_(y[e],t.cwd);switch(r.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return K();case`skipped-prerequisite`:return{action:`skipped-prerequisite`,errorId:`dependency-failed`};case`failed`:return q(e,r.path,r.error),G()}}function Ee(e){return t=>{if(t.pathId===void 0)return J();let r=n(t.pathId);if(r===null||r.kind===`central-skill-store`)return J();switch(r.kind){case`editor-user-config`:return Se(r.editor,e,t.desired);case`editor-project-config`:return Ce(r.editor,e,t.desired);case`editor-project-skill-root`:return Te(r.editor,e,t.desired);case`editor-user-skill-root`:return we(r.editor,e,t.desired)}}}function De(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function Oe(e){if(e===`server`)return e;throw new h(`--only must be 'server'`)}function ke(e=B){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[z(t,`public`),z(t,`../../app/dist`),z(t,`../../../app/dist`)].find(t=>e(t))}function Ae(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function je(t){if(t===`off`)return`off`;if(!e.test(t))throw new h(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return t}function Me(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function Ne(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function Pe(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||Me(e.host))&&e.isTTY}function Fe(e,t){let n;try{n=new URL(t)}catch{throw new h(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new h(`${e} must be an http(s) origin (got: ${t})`);return t}function Ie(e){return Fe(`--external-url`,e)}function Le(e){let t=L(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var Y=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}},X=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${d}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Z(e,t={}){let n=t.tmpdirFn??se,r=t.realpathFn??ae,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?z(e):null}},a=z(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(R(a));o=e===null?null:z(e,L(a))}else o=null}if(o===null)return!1;let s=i(n());return s!==null&&R(o)===s&&L(o).startsWith(`ok-ephemeral-`)}function Re(e,t,n=e=>ce(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Z(t))try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}else process.stderr.write(`[start] leaving ${t} in place: only ${d}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function Q(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function ze(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:o,mkdirSync:s}=await import(`node:fs`),{basename:c,dirname:u,resolve:d}=await import(`node:path`),{bootServer:f,createEphemeralProjectDir:p,getLogger:h,resolveContentDir:g,resolveLockDir:_,seedEphemeralProjectDir:v,waitForServerLockDrain:y}=await import(`./dist-Bm7UNIQ7.mjs`),b=e.log??h(`start`),S=e.singleFile!==void 0,C=S?m(e.singleFile).canonicalFilePath:void 0,w=C?u(C):void 0,E=C?c(C):void 0,D,k=!1;if(w!==void 0){if(e.projectDir!==void 0){if(D=e.projectDir,!Z(D))throw new X(D);o(d(D,`.ok`,`config.yml`))||v(D,w)}else D=p(w),k=!0}let A=async()=>{if(!(!k||D===void 0)){if(!Z(D)){b.warn({ephemeralProjectDir:D},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await ce(D,{recursive:!0,force:!0})}catch(e){b.warn({err:e,ephemeralProjectDir:D},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},j=D;if(!S){if(!i&&!ee(n))throw new Y(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{e.severity===`info`?b.debug({event:e},`[start] reclaim sweep event`):b.warn({event:e},`[start] reclaim sweep reported a problem`)};try{let i=(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-q7N3OdLf.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r}).outcomes.filter(e=>e.outcome!==`no-entry`&&e.outcome!==`canonical`&&e.outcome!==`repaired`&&e.outcome!==`foreign`);i.length>0&&b.warn({unhealed:i},`[start] reclaim sweep left entries it could not heal`)}catch(e){b.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-BeTLaXnN.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){b.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}}let N=w??g(t,n);!S&&!o(N)&&(s(N,{recursive:!0}),b.info({contentDir:N},`Created content directory`));let re=P(),F=l(),I;try{{let e=_(D??n),t=Date.now(),r=await y(e);r!==`no-drain`&&b.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}I=await f({config:t,contentDir:N,projectDir:D??n,contentRoot:S?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:V,detectGhAccounts:fe,tokenStore:re,embeddingsKeyStore:F,mcpTomlEditor:x(),...S?{ephemeral:!0,singleDocRelPath:E,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>O(e,t),probePiAcpBridge:e=>T(e),ensurePiAcpBridge:(e,t)=>M(e,void 0,void 0,void 0,t),agentIntegrations:(()=>{let e={cwd:D??n,home:oe(),env:process.env};return{probe:ne(e),execute:Ee(e),userSkillPresentAnywhere:te}})(),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Q(j===void 0?n:Re(n,j),{log:b,exit:e.idleExit})},log:b,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}})}catch(e){throw await A(),e}let L=I.destroy,R=k?async()=>{try{await L()}finally{await A()}}:L;return{httpServer:I.httpServer,destroy:R,lockDir:I.lockDir,contentDir:N,port:I.port,ready:I.ready,degraded:I.degraded}}function Be(e,t,n=()=>f({absPath:u(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function Ve(e){if(e===`browser`||e===`app`)return e;throw new h(`--mode must be 'browser' or 'app'`)}function He(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function Ue(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function We(e,n){let r=Be(e,n.singleFile),c=He(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:ee}=await import(`./banner-kywHhVaC.mjs`),{accent:l,dim:u,error:d,warning:f}=await import(`./colors-SgU3JHQu.mjs`),p=process.cwd();process.title=Le(p);let m;try{m=t(process.env)}catch(e){throw e instanceof o&&(console.error(d(e.message)),process.exit(78)),e}for(let e of m.diagnostics)console.warn(f(`[config] ${e.message}`));let h=s(r,m.layer),g=m.overrides.some(e=>e.envVar===`OK_BIND`),_=n.bind!==void 0&&n.bind.length>0?n.bind:void 0,v=process.env.HOST,y=v!==void 0&&v.trim()!==``?v:void 0,b=a(h),x=_??(g||y===void 0?[...b.bind]:[y]);Ne({flagBindSet:_!==void 0,okBindSet:g,hostEnvSet:y!==void 0,fileBindCount:b.bind.length})&&console.warn(f(`[config] HOST=${y} overrides server.bind — dropping the file-configured addresses (${b.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let S=x[0]??`127.0.0.1`,C=x,w=n.externalUrl,T=a(s(h,{server:{bind:C,...w===void 0?{}:{externalUrl:w}}}));if(T.allowExternal&&(!T.loopbackOnly||T.externalUrl)){let e=T.externalUrl??T.bind.join(`, `);console.warn(f([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
|
|
1
|
+
import{Fc as e,Fs as t,Hu as n,Md as r,No as i,Rs as a,_t as o,da as s}from"./md-manager-BGnqyqi1-DKflYxqj.mjs";import{Ho as c,Wr as ee,ai as l,jo as u,k as d,ko as f,ti as p,vi as m}from"./dist-C9m6GTCy.mjs";import{Ct as h,I as g,R as _,St as v,Y as y,b,lt as x,wt as S,y as C}from"./init-Cuw6M3ez.mjs";import{a as w,c as T,d as E,f as D,i as te,n as O,o as k,p as A,r as j,s as M,t as ne,u as N,v as P}from"./registry-probes-CpizlLKe.mjs";import{n as re}from"./constants-CmQdCHUX.mjs";import{execFileSync as F,spawn as I}from"node:child_process";import{basename as L,dirname as R,join as ie,resolve as z}from"node:path";import{existsSync as B,realpathSync as ae}from"node:fs";import{homedir as oe,tmpdir as se}from"node:os";import{rm as ce}from"node:fs/promises";import{setTimeout as le}from"node:timers/promises";const ue=[`/opt/homebrew/bin/gh`,`/usr/local/bin/gh`,`/opt/local/bin/gh`,`/snap/bin/gh`,`/usr/bin/gh`],de={encoding:`utf-8`,stdio:[`ignore`,`pipe`,`pipe`],timeout:5e3,windowsHide:!0};function V(e,t={}){let{login:n}=t,r=t._exec??F,i=H(t._fileExists??B),a=e?[`--hostname`,e]:[];if(n){let e=U(r,i,[`auth`,`token`,...a,`--user`,n]);if(e)return{available:!0,token:e,resolvedLogin:n,fallback:!1}}let o=U(r,i,[`auth`,`token`,...a]);return o?n?{available:!0,token:o,fallback:!0}:{available:!0,token:o}:{available:!1}}function H(e){return[`gh`,...ue.filter(e)]}function U(e,t,n){for(let r of t)try{let t=e(r,n,de).toString().trim();if(t.length>0)return t}catch{}}function fe(e,t={}){let n=t._exec??F,r=H(t._fileExists??B),i=[`auth`,`status`,...e?[`--hostname`,e]:[]],a=U(n,r,[...i,`--json`,`hosts`]);if(a!==void 0){let t=pe(a,e);if(t)return t}let o=U(n,r,i);if(o!==void 0){let e=ve(o);if(e.length>0)return e}}function W(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function pe(e,t){let n;try{n=JSON.parse(e)}catch{return}let r=W(W(n)?.hosts);if(!r||t!==void 0&&r[t]===void 0)return;let i=t===void 0?Object.values(r):[r[t]],a=[];for(let e of i){if(!Array.isArray(e))return;for(let t of e){let e=W(t);if(!e)continue;let n=e.login;typeof n==`string`&&n.length!==0&&a.push({login:n,active:e.active===!0})}}return a}const me=/Logged in to \S+ account (\S+) \(/,he=/(?:Failed to log in to|Timeout trying to log in to) \S+/,ge=/^\s*-\s*Active account:\s*true\s*$/,_e=/\u001b\[[0-9;]*m/g;function ve(e){let t=[],n;for(let r of e.split(`
|
|
2
|
+
`)){let e=r.replace(_e,``),i=me.exec(e)?.[1];if(i){n={login:i,active:!1},t.push(n);continue}if(he.test(e)){n=void 0;continue}n&&ge.test(e)&&(n.active=!0)}return t}const ye={mode:`published`,skipAvailabilityCheck:!0,replaceEntry:!0};function G(){return{action:`failed`,errorId:`write-failed`}}function K(){return{action:`skipped-missing`,errorId:`surface-missing`}}function q(e,t,n){c(`agent-integrations-apply`).warn({editor:e,path:t,reason:n},`skill write failed`)}function J(){return{action:`skipped-unsupported`,errorId:`no-writer`}}function be(e){switch(e){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`left-foreign`:return{action:`skipped-foreign`,errorId:`foreign-artifact`};case`declined`:return{action:`declined`,errorId:`write-declined`}}}function xe(e,t,n,r,i){let a=y[e];try{let o=k(a,t,n,r,i);return o.kind===`removed`&&o.trustDetail&&c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),trust:o.trust,trustDetail:o.trustDetail},`MCP config removal retained Pi folder trust`),be(o.kind)}catch(i){return c(`agent-integrations-apply`).warn({editor:e,path:r??a.configPath(t,n),reason:i instanceof Error?i.message:String(i)},`MCP config removal failed`),G()}}async function Se(e,t,n){if(y[e].scope!==`global`)return K();if(n===`absent`)return xe(e,``,t.home,void 0,t.env);let r=(await b({editors:[e],home:t.home,replaceEntry:!0})).find(t=>t.editorId===e);if(r===void 0)return G();switch(r.action){case`written`:case`overwritten`:return{action:r.action};case`declined`:return{action:`declined`,errorId:`write-declined`};case`skipped-missing`:return K();case`skipped-flag`:return J();default:return G()}}function Ce(e,t,n){let i=r[e];if(i===null)return K();let a=ie(t.cwd,i);if(n===`absent`)return xe(e,t.cwd,t.home,a,t.env);let o=C(y[e],t.cwd,ye,void 0,a);switch(o.action){case`written`:case`overwritten`:return{action:o.action};case`declined`:return{action:`declined`,errorId:`write-declined`};default:return G()}}function we(e,t,n){let r=t.home??oe();if(n===`absent`){let t=j(e,r);switch(t.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return K();case`failed`:return q(e,t.path,t.error),G()}}let i=w(e,r);switch(i.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return K();case`failed`:return q(e,i.path,i.error),G()}}function Te(e,t,n){if(n===`absent`){let n=g(y[e],t.cwd);switch(n.action){case`removed`:return{action:`removed`};case`not-present`:return{action:`no-op`};case`skipped-unsupported`:return K();case`failed`:return q(e,n.path,n.error),G()}}let r=_(y[e],t.cwd);switch(r.action){case`written`:return{action:`written`};case`overwritten`:return{action:`overwritten`};case`skipped-unsupported`:return K();case`skipped-prerequisite`:return{action:`skipped-prerequisite`,errorId:`dependency-failed`};case`failed`:return q(e,r.path,r.error),G()}}function Ee(e){return t=>{if(t.pathId===void 0)return J();let r=n(t.pathId);if(r===null||r.kind===`central-skill-store`)return J();switch(r.kind){case`editor-user-config`:return Se(r.editor,e,t.desired);case`editor-project-config`:return Ce(r.editor,e,t.desired);case`editor-project-skill-root`:return Te(r.editor,e,t.desired);case`editor-user-skill-root`:return we(r.editor,e,t.desired)}}}function De(e,t){return e.bind?.[0]??t.HOST??`127.0.0.1`}function Oe(e){if(e===`server`)return e;throw new h(`--only must be 'server'`)}function ke(e=B){let t=import.meta.dirname??new URL(`.`,import.meta.url).pathname;return[z(t,`public`),z(t,`../../app/dist`),z(t,`../../../app/dist`)].find(t=>e(t))}function Ae(e){if(e.explicitDir!==void 0)return{dir:e.explicitDir,missingBundle:!1};if(e.only===`server`)return{dir:void 0,missingBundle:!1};let t=e.findBundledDir();return{dir:t,missingBundle:t===void 0}}function je(t){if(t===`off`)return`off`;if(!e.test(t))throw new h(`--idle-shutdown must be 'off' or a duration like 90s, 30m, 2h`);return t}function Me(e){return e===`localhost`||e===`::1`||e===`[::1]`||e.startsWith(`127.`)}function Ne(e){return!e.flagBindSet&&!e.okBindSet&&e.hostEnvSet&&e.fileBindCount>1}function Pe(e){return!e.openBrowser||e.ephemeral||e.only===`server`||!e.servesUi?!1:(e.explicitOn||Me(e.host))&&e.isTTY}function Fe(e,t){let n;try{n=new URL(t)}catch{throw new h(`${e} is not a valid URL: ${t}`)}if(n.protocol!==`http:`&&n.protocol!==`https:`)throw new h(`${e} must be an http(s) origin (got: ${t})`);return t}function Ie(e){return Fe(`--external-url`,e)}function Le(e){let t=L(e).replace(/[^\x20-\x7E]/g,``).trim().slice(0,64);return`open-knowledge-server ${t.length>0?t:`unknown`}`}var Y=class extends Error{cwd;constructor(e){super("This directory isn't set up yet. Run `ok init` first, then `ok start` again."),this.name=`OkDirMissingError`,this.cwd=e}},X=class extends Error{projectDir;constructor(e){super(`--project-dir must be a throwaway ${d}* directory under the OS temp dir. Refusing to write ephemeral session state into ${e}. Omit --project-dir to let ok start create (and clean up) its own.`),this.name=`EphemeralProjectDirNotThrowawayError`,this.projectDir=e}};function Z(e,t={}){let n=t.tmpdirFn??se,r=t.realpathFn??ae,i=e=>{try{return r(e)}catch(t){return t.code===`ENOENT`?z(e):null}},a=z(e),o;try{o=r(a)}catch(e){if(e.code===`ENOENT`){let e=i(R(a));o=e===null?null:z(e,L(a))}else o=null}if(o===null)return!1;let s=i(n());return s!==null&&R(o)===s&&L(o).startsWith(`ok-ephemeral-`)}function Re(e,t,n=e=>ce(e,{recursive:!0,force:!0})){return async()=>{try{await e()}finally{if(Z(t))try{await n(t)}catch(e){process.stderr.write(`[start] ephemeral temp dir reap failed for ${t}: ${e instanceof Error?e.message:String(e)}\n`)}else process.stderr.write(`[start] leaving ${t} in place: only ${d}* dirs under the OS temp dir are removed on ephemeral teardown\n`)}}}function Q(e,t={}){let n=t.exit??(e=>process.exit(e)),r=t.getActiveHandles??(()=>{let e=process._getActiveHandles;return e?e.call(process):null});return async()=>{let i=!1;try{await e()}catch(e){i=!0,t.log?.error({err:e},`idle-shutdown: destroy failed — exiting anyway`)}finally{let e=null;try{let t=r();if(t!==null){e={};for(let n of t){let t=n?.constructor?.name??`unknown`;e[t]=(e[t]??0)+1}}}catch{e=null}t.log?.info({event:`idle-shutdown-exit`,exitCode:+!!i,openHandles:e??{},handlesAvailable:e!==null},`idle-shutdown: teardown finished — exiting process`),n(+!!i)}}}async function ze(e){let{config:t,cwd:n,host:r}=e,i=e.skipAutoInit??!1,a=e.idleThresholdMs===void 0?18e5:e.idleThresholdMs,{existsSync:o,mkdirSync:s}=await import(`node:fs`),{basename:c,dirname:u,resolve:d}=await import(`node:path`),{bootServer:f,createEphemeralProjectDir:p,getLogger:h,resolveContentDir:g,resolveLockDir:_,seedEphemeralProjectDir:v,waitForServerLockDrain:y}=await import(`./dist-Bm7UNIQ7.mjs`),b=e.log??h(`start`),S=e.singleFile!==void 0,C=S?m(e.singleFile).canonicalFilePath:void 0,w=C?u(C):void 0,E=C?c(C):void 0,D,k=!1;if(w!==void 0){if(e.projectDir!==void 0){if(D=e.projectDir,!Z(D))throw new X(D);o(d(D,`.ok`,`config.yml`))||v(D,w)}else D=p(w),k=!0}let A=async()=>{if(!(!k||D===void 0)){if(!Z(D)){b.warn({ephemeralProjectDir:D},`[start] refusing to reap self-provisioned ephemeral dir: no longer resolves to an ok-ephemeral-* temp dir`);return}try{await ce(D,{recursive:!0,force:!0})}catch(e){b.warn({err:e,ephemeralProjectDir:D},`[start] failed to reap self-provisioned ephemeral temp dir`)}}},j=D;if(!S){if(!i&&!ee(n))throw new Y(n);let t=process.env.OK_RECLAIM_DISABLE??null,r=e=>{e.severity===`info`?b.debug({event:e},`[start] reclaim sweep event`):b.warn({event:e},`[start] reclaim sweep reported a problem`)};try{let i=(e.repairMcpConfigsFn??(await import(`./repair-mcp-configs-ooUrwLkV.mjs`)).repairMcpConfigs)({projectDir:n,reclaimDisableEnv:t,logger:r}).outcomes.filter(e=>e.outcome!==`no-entry`&&e.outcome!==`canonical`&&e.outcome!==`repaired`&&e.outcome!==`foreign`);i.length>0&&b.warn({unhealed:i},`[start] reclaim sweep left entries it could not heal`)}catch(e){b.warn({err:e},`[start] mcp-config repair sweep failed; continuing`)}try{(e.repairLaunchJsonFn??(await import(`./repair-launch-json-irGbbbq_.mjs`)).repairLaunchJson)({projectDir:n,reclaimDisableEnv:t,logger:r})}catch(e){b.warn({err:e},`[start] launch.json repair sweep failed; continuing`)}}let N=w??g(t,n);!S&&!o(N)&&(s(N,{recursive:!0}),b.info({contentDir:N},`Created content directory`));let re=P(),F=l(),I;try{{let e=_(D??n),t=Date.now(),r=await y(e);r!==`no-drain`&&b.info({event:`start-waited-for-draining-predecessor`,outcome:r,waitedMs:Date.now()-t,drainLockDir:e},r===`released`?`[start] predecessor server finished draining — proceeding`:`[start] predecessor server still draining after wait — proceeding to collide`)}I=await f({config:t,contentDir:N,projectDir:D??n,contentRoot:S?void 0:t.content.dir,port:e.port,host:r,quiet:!1,detectGh:V,detectGhAccounts:fe,tokenStore:re,embeddingsKeyStore:F,mcpTomlEditor:x(),...S?{ephemeral:!0,singleDocRelPath:E,gitEnabled:!1,gitPreflight:()=>({ok:!0,version:`0.0.0`,resolvedPath:`git`,source:`PATH`})}:{},localOpCliArgs:[process.execPath,process.argv[1]],probeHarnessManagedMcpEntry:(e,t)=>O(e,t),probePiAcpBridge:e=>T(e),ensurePiAcpBridge:(e,t)=>M(e,void 0,void 0,void 0,t),agentIntegrations:(()=>{let e={cwd:D??n,home:oe(),env:process.env};return{probe:ne(e),execute:Ee(e),userSkillPresentAnywhere:te}})(),idleShutdownMs:a,...e.serverRuntime===void 0?{}:{serverRuntime:e.serverRuntime},...e.bind===void 0?{}:{bind:e.bind},skipAutoInit:!0,idleShutdownHandler:t=>{let n=t;return Q(j===void 0?n:Re(n,j),{log:b,exit:e.idleExit})},log:b,...e.serveContentAssets===void 0?{}:{serveContentAssets:e.serveContentAssets},...e.reactShellDistDir?{reactShellDistDir:e.reactShellDistDir}:{}})}catch(e){throw await A(),e}let L=I.destroy,R=k?async()=>{try{await L()}finally{await A()}}:L;return{httpServer:I.httpServer,destroy:R,lockDir:I.lockDir,contentDir:N,port:I.port,ready:I.ready,degraded:I.degraded}}function Be(e,t,n=()=>f({absPath:u(`user`,process.cwd()),sideline:!1,warn:()=>{}}).value){return t===void 0?e:n()}function Ve(e){if(e===`browser`||e===`app`)return e;throw new h(`--mode must be 'browser' or 'app'`)}function He(e){return e.OK_CONSOLE_LEVEL!==void 0||e.LOG_LEVEL!==void 0?null:`warn`}function Ue(e){let t=[`Stopping OpenKnowledge…`,`Saving pending changes and releasing the server lock — this can take a few seconds.`];return e===`SIGINT`&&t.push(`Press Ctrl+C again to force quit.`),t}async function We(e,n){let r=Be(e,n.singleFile),c=He(process.env);c!==null&&(process.env.OK_CONSOLE_LEVEL=c);let{renderBanner:ee}=await import(`./banner-kywHhVaC.mjs`),{accent:l,dim:u,error:d,warning:f}=await import(`./colors-SgU3JHQu.mjs`),p=process.cwd();process.title=Le(p);let m;try{m=t(process.env)}catch(e){throw e instanceof o&&(console.error(d(e.message)),process.exit(78)),e}for(let e of m.diagnostics)console.warn(f(`[config] ${e.message}`));let h=s(r,m.layer),g=m.overrides.some(e=>e.envVar===`OK_BIND`),_=n.bind!==void 0&&n.bind.length>0?n.bind:void 0,v=process.env.HOST,y=v!==void 0&&v.trim()!==``?v:void 0,b=a(h),x=_??(g||y===void 0?[...b.bind]:[y]);Ne({flagBindSet:_!==void 0,okBindSet:g,hostEnvSet:y!==void 0,fileBindCount:b.bind.length})&&console.warn(f(`[config] HOST=${y} overrides server.bind — dropping the file-configured addresses (${b.bind.join(`, `)}). Use OK_BIND with a space-separated list to keep multiple binds.`));let S=x[0]??`127.0.0.1`,C=x,w=n.externalUrl,T=a(s(h,{server:{bind:C,...w===void 0?{}:{externalUrl:w}}}));if(T.allowExternal&&(!T.loopbackOnly||T.externalUrl)){let e=T.externalUrl??T.bind.join(`, `);console.warn(f([``,`⚠ EXTERNAL ACCESS ENABLED (server.allowExternal) — no server-side authentication.`,` This server is reachable beyond this machine (${e}). Anyone who can`,` reach it has FULL control of this knowledge base — sync, publishing, GitHub`,` credentials, and local operations (clone, sign-in, repo spawn).`,` Restrict who can reach it at the edge: a Tailscale ACL, a reverse proxy with`,` auth (Cloudflare Access, oauth2-proxy), or a firewall.`,``].join(`
|
|
3
3
|
`)))}let E=n.port===void 0?void 0:Number(n.port),D=m.overrides.find(e=>e.envVar===`PORT`)?.value,te=E??D??r.server?.port,O=Ae({explicitDir:n.reactShellDistDir,only:n.only,findBundledDir:ke}),k=O.dir;O.missingBundle&&console.warn(`bundled web UI not found — serving /api and /mcp only. Reinstall @inkeep/open-knowledge, or build packages/app in a source checkout.`);let A;try{A=await ze({config:r,cwd:p,host:S,port:te,bind:C,...n.serveContentAssets===void 0?{}:{serveContentAssets:n.serveContentAssets},...k?{reactShellDistDir:k}:{},idleThresholdMs:i(n.idleShutdown??T.idleShutdown),serverRuntime:T,...n.singleFile?{singleFile:n.singleFile}:{},...n.projectDir?{projectDir:n.projectDir}:{}})}catch(e){e instanceof Y&&(console.error(d(e.message)),process.exit(1)),e instanceof X&&(console.error(d(e.message)),process.exit(1));let t=await import(`./dist-Bm7UNIQ7.mjs`);if((e instanceof t.GitNotAvailableError||e instanceof t.GitTooOldError)&&process.exit(78),e instanceof t.ExposureConsentError&&(console.error(d(e.message)),process.exit(78)),(e instanceof t.SingleFileNotFoundError||e instanceof t.SingleFileNotAFileError||e instanceof t.SingleFileNotMarkdownError)&&(console.error(d(e.message)),process.exit(1)),(e instanceof t.MissingOkConfigError||e instanceof t.DocumentDurabilityStateError)&&(console.error(d(e.message)),process.exit(1)),qe(e,t)){let e=t.resolveLockDir(p),n=null;try{n=await Ge({readServerLock:()=>t.readServerLock(e),now:Date.now,sleep:e=>le(e),timeoutMs:3e3,pollIntervalMs:50})}catch(e){process.stderr.write(`[start] spawn-or-reuse: lock poll failed (${e instanceof Error?e.message:String(e)}) — falling back to the collision message\n`)}if(n!==null){let[e,...t]=Ke(n);console.log(l(e));for(let e of t)console.log(u(e));process.exit(0)}}let n=$(e,p,t);n!==null&&(console.error(d(n)),process.exit(1)),console.error(`${d(`Failed to start:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exit(1)}let j=!1,M=async e=>{if(j)return;j=!0;let[t,...n]=Ue(e);console.log(l(`\n${t}`));for(let e of n)console.log(u(` ${e}`));try{await A.destroy(`external-signal`)}catch(e){console.error(`${d(`destroy() failed:`)} ${e instanceof Error?e.stack??e.message:String(e)}`),process.exitCode=1}process.exit(process.exitCode??0)};process.once(`SIGINT`,()=>{M(`SIGINT`)}),process.once(`SIGTERM`,()=>{M(`SIGTERM`)});let ne=`http://${S.includes(`:`)&&!S.startsWith(`[`)?`[${S}]`:S}:${A.port}`,N=S===`0.0.0.0`||S===`::`?`http://0.0.0.0:${A.port}`:void 0,P=ne;console.log(ee({name:`open-knowledge`,version:re,localUrl:P,networkUrl:N,nextSteps:[`Open the Editor URL in your browser to start editing.`]}));let F={"shadow-repo":`Version history and branch-switch safety unavailable`,"file-watcher":`External file changes will not sync to the editor`,"head-watcher":`Git branch switches may cause document inconsistency`};A.ready.then(async()=>{if(A.degraded.length>0){console.log();for(let e of A.degraded){let t=F[e]??`${e} (check server logs for details)`;console.warn(` ${f(`⚠`)} ${f(e)}: ${u(t)}`)}console.log()}if(Pe({openBrowser:n.openBrowser!==!1&&T.openBrowser,explicitOn:n.openBrowser!==!1&&h.server?.openBrowser===!0,host:S,isTTY:process.stdout.isTTY===!0,ephemeral:n.singleFile!==void 0,only:n.only,servesUi:k!==void 0})){let{openBrowser:e}=await import(`./open-browser-OpHQJzqy.mjs`);e(P)}}).catch(e=>{console.error(` ${d(`Server initialization failed:`)} ${e instanceof Error?e.message:String(e)}`)})}async function Ge(e){let t=e.now()+e.timeoutMs,n=e.readServerLock();for(;n!==null&&n.draining!==!0&&n.port<=0&&e.now()<t;)await e.sleep(e.pollIntervalMs),n=e.readServerLock();return n===null||n.draining===!0||n.port<=0?null:p(n)&&n.url!==void 0?{url:n.url,kind:n.kind,pid:n.pid,servesUi:!0}:{url:n.url??`http://127.0.0.1:${n.port}`,kind:n.kind,pid:n.pid,servesUi:!1}}function Ke(e){return[`${e.kind===`mcp-spawned`?`An MCP-spawned OpenKnowledge server is already running on this project`:`OpenKnowledge is already running on this project`} (pid ${e.pid}).`,` ${e.url}`,"Leaving it running — run `ok stop` first if you want a fresh server."]}function qe(e,t){let n=t.ServerLockCollisionError;return n!==void 0&&e instanceof n}function $(e,t,n){let r=n.ServerLockCollisionError;if(r===void 0||!(e instanceof r))return null;try{let e=n.readServerLock(n.resolveLockDir(t));return e&&e.kind===`mcp-spawned`?"An MCP-spawned server holds this lock; it should release on idle-shutdown (~30 min). Or run `ok stop`.":"OpenKnowledge server is already running on this project — check `ok status` or `ok stop`."}catch{return null}}function Je(e){return new v(`start`).description(`Start the OpenKnowledge server (UI + API + MCP + collab on one port)`).option(`-p, --port <port>`,`Server port`,void 0).option(`--bind <address>`,`Bind address (repeatable; default 127.0.0.1 — loopback only)`,(e,t)=>[...t??[],e]).option(`--no-open-browser`,`Do not open the browser after start (interactive loopback starts open it by default)`).option(`--only <module>`,`Serve one module: 'server' (API + MCP only, no shell or browser)`,Oe).option(`--idle-shutdown <duration>`,`Shut the server down after this long with no connected clients ('off', or a duration like 90s, 30m, 2h; default 30m)`,je).option(`--mode <mode>`,`Force dispatch mode: 'browser' or 'app'`,Ve).option(`--serve-content-assets`,`Serve content assets from this server (now the default; kept for compatibility)`).option(`--react-shell-dist-dir <path>`,`Serve React shell from <path>`).addOption(new S(`--single-file <path>`,`No-project ephemeral single-file mode: scope the server to one markdown file (git + MCP off)`).hideHelp()).addOption(new S(`--project-dir <dir>`,`Throwaway project root for --single-file (where ephemeral .ok/ state lives)`).hideHelp()).option(`--external-url <url>`,`Canonical external origin clients dial (sets server.externalUrl for this run) — its host joins the Host/Origin allowlists (CORS + external-Host admission). External exposure additionally requires consent (OK_ALLOW_EXTERNAL=1 or server.allowExternal).`,Ie).action(async t=>{let n=e();if(t.only===`server`&&t.reactShellDistDir!==void 0&&(process.stderr.write(`error: option '--only server' cannot be combined with '--react-shell-dist-dir'
|
|
4
4
|
`),process.exit(2)),t.projectDir!==void 0&&t.singleFile===void 0&&(process.stderr.write(`error: option '--project-dir' requires '--single-file'
|
|
5
5
|
`),process.exit(2)),t.mode===`app`){let e=[];if(t.port!==void 0&&e.push(`--port`),t.bind!==void 0&&e.push(`--bind`),t.only!==void 0&&e.push(`--only`),t.idleShutdown!==void 0&&e.push(`--idle-shutdown`),t.openBrowser===!1&&e.push(`--no-open-browser`),t.externalUrl!==void 0&&e.push(`--external-url`),e.length>0){let t=process.env.OK_LOG_LEVEL??`info`;(t===`debug`||t===`trace`)&&console.error(`--mode=app: ignoring ${e.join(`, `)}`)}let n=E(N());if(n.available){D({spawn:I},n);return}console.error(A(n.reason)),process.exit(1)}await We(n,t)})}export{$ as C,fe as D,V as E,Je as S,Q as T,He as _,Ke as a,Pe as b,Z as c,je as d,Oe as f,Be as g,Ge as h,Le as i,qe as l,De as m,Y as n,Ue as o,ke as p,ze as r,Me as s,X as t,Ie as u,Ae as v,Re as w,Ne as x,We as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{S as e,m as t,p as n,r}from"./start-Dd8Kjf4r.mjs";export{r as bootStartServer,n as resolveBundledReactShellDir,t as resolveHost,e as startCommand};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@inkeep/open-knowledge",
|
|
3
|
-
"version": "0.77.0-beta.
|
|
3
|
+
"version": "0.77.0-beta.4",
|
|
4
4
|
"description": "Local-first, agent-friendly Markdown knowledge base with a cross-platform CLI and web editor",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"knowledge-base",
|
|
@@ -72,10 +72,10 @@
|
|
|
72
72
|
"ajv-formats": "^3.0.1",
|
|
73
73
|
"tsdown": "^0.22.14",
|
|
74
74
|
"typescript": "~7.0.2",
|
|
75
|
-
"@inkeep/open-knowledge-
|
|
76
|
-
"@inkeep/open-knowledge-
|
|
77
|
-
"@inkeep/open-knowledge-
|
|
78
|
-
"@inkeep/open-knowledge-
|
|
75
|
+
"@inkeep/open-knowledge-app": "0.77.0-beta.4",
|
|
76
|
+
"@inkeep/open-knowledge-server": "0.77.0-beta.4",
|
|
77
|
+
"@inkeep/open-knowledge-native-config": "0.0.0",
|
|
78
|
+
"@inkeep/open-knowledge-core": "0.77.0-beta.4"
|
|
79
79
|
},
|
|
80
80
|
"scripts": {
|
|
81
81
|
"build:cli": "rm -rf dist && tsdown",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./md-manager-BGnqyqi1-DKflYxqj.mjs";var e=`0.77.0-beta.2`;const t=`config.yml`,n=e;export{n,t};
|
package/dist/init-DUGzO8r8.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./dist-C9m6GTCy.mjs";import{_ as e}from"./init--lQzxmjy.mjs";export{e as runInit};
|
package/dist/loader-DH1qp5mY.mjs
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./loader-DEGEUGWk.mjs";export{e as loadConfig};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e,t}from"./preview-D3Y8yrOd.mjs";export{t as formatPreviewBlock,e as previewContent};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./index-DjHzpHqg.js";export{e as FeedbackForm};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./ManagedArtifactProperties-DoLR1ikc.js";export{e as ManagedArtifactProperties};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./TerminalPanel-qXWYcAW1.js","./chunk-CYidjpOJ.js","./dist-DOFOMv5X.js","./preload-helper-Chd9yIcd.js","./trace-api-BP9dN1Hz.js","./lib-CPkc7nK4.js","./html-void-elements-zEl0KGqf.js","./lib-DmueaA5E.js","./markdownit-CugClK-K.js","./w3c-keyname-C7Rznu6R.js","./dist-Nvb76hAm.js","./jsx-runtime-BUgB2tll.js","./react-f2sANaYj.js","./button-HKX9wT1K.js","./dist-BHv-mziD.js","./bundle-mjs-SHeFpKGC.js","./compiler-runtime-BfE3aGVn.js","./utils-CPqDy6Hr.js","./triangle-alert-CCeXtPLU.js","./createLucideIcon-B6ULg5PN.js","./x-DIayTyoR.js","./dist-PQ5KMVDh.js","./TerminalStartingNotice-CMzG3ocb.js","./spinner-Bp2_BYkl.js","./file-tree-adapter-tR_J9F2L.js","./file-tree-rename-validation-CaMw2nJs.js","./file-tree-utils-DzfwfO_W.js","./navigation-targets-DV-7bk2F.js","./doc-paths-D8ecfw_S.js","./terminal-command-events-CxUcuMtj.js","./agent-connection-status-B2Piy-uJ.js","./dist-Cr4-nBVI.js","./alert-dialog-BJIyfEVh.js","./dist-BcvirUWL.js","./react-dom-DPxgxlDT.js","./electron-drag-strip-BgiQs0O3.js","./dist-DRO03ovd.js","./es2015-B9_uRFGw.js","./checkbox-Crs_F_Np.js","./dist-Bd_yyADX.js","./dist-BDna-dOq.js","./check-BzfGb3KU.js","./minus-cd1ERTPg.js","./label-D-K3fWtj.js","./tooltip-BnyyQDRs.js","./dist-DYso7MCm.js","./floating-ui.dom-CDtYEnEj.js","./folder-C4F4ia-z.js","./info-CilGMBpP.js","./monitor-BZlB-tXl.js","./sparkles-CKoBZZKl.js","./AgentIconCluster-KHzrylx3.js","./OpenInAgentMenuItem-VFY-Baek.js","./dropdown-menu-DjQ8GtwR.js","./dist-BX7qfUal.js","./dist-tLQ-ULW1.js","./dist-Bn0BEeMP.js","./dist-Dhtu02232.js","./chevron-right-C-g4JuT4.js","./cursor-DnmFJny0.js","./copilot-SyPOvrhq.js","./mascot-outline-CtS592mc.js","./badge-BGcBcbDV.js","./dialog-gPDFmQk-.js","./field-bXEeLKBZ.js","./separator-CcvvqzEJ.js","./tool-list-format-BTKYlTbI.js","./use-live-xterm-theme-CGugHeAl.js","./css-color-to-hex-BsB-jAvk.js","./use-apply-config-theme-B5w38X1P.js","./page-list-cache-tqETKXZE.js","./TerminalPanel-BrP-ENHg.css","./ThreadView-xKwOcttM.js","./progress-BNhWkbGn.js","./DocumentContext-WwPw9yUS.js","./dist-DRP7FFQ4.js","./dist-CLRN-Sf-.js","./dist-CfSqFgiI.js","./dist-Dpls7qrX.js","./dist-C6AdHsiT.js","./dist-CXHxHLG6.js","./dist-BISe9TCZ.js","./dist-CpmzYutK.js","./dist-BGSsu1bg.js","./dist-DZStwcBj.js","./stex-Bg195G9l.js","./config-provider-D0V0szZd.js","./use-apply-config-language-CfZhGffT.js","./dist-CJhtNlOm2.js","./messages-DDJW4YS7.js","./client-version-D4fhBMMh.js","./propagation-api-DC5404fy.js","./context-api-dUnlgSJr.js","./select-ByJwKu6h.js","./chevron-down-Dloks0wp.js","./collapsible-DYySK8La.js","./switch-iwBsEWej.js","./CodeMirrorPropInput-BziBW5Es.js","./folder-open-dlosmFj2.js","./trash-2-B9Flu-41.js","./with-selector-PRoyWQiu.js","./cm-theme-DEecevl5.js","./external-link-C5LIdhIa.js","./documents-fetch-sbhR-qg0.js","./note-window-mode-CsmLTxU_.js","./git-branch-B_QTfwFA.js","./Mermaid-DF-zF9ZQ.js","./maximize-2-DaY3HCwc.js","./upload-DGQJhdiQ.js","./prop-types-D27lBSqd.js","./startup-marks-BOS61axW.js","./documents-events-C4yazdQb.js","./parse-api-error-BtEdpaFC.js","./eye-BtMXolFK.js","./hash-d98LeeWB.js","./local-menu-action-bus-DaoT7_kL.js","./paperclip-C8NmE81Z.js","./react-error-boundary-6ac6QM6R.js","./input-f41fkc3m.js","./popover-CBJqdXoA.js","./dist-zcYT-cpc.js","./use-collab-url-DDHVwsqS.js","./excalidraw-scene-B8IkFuHe.js","./known-skill-dirs-BKa6yUB3.js","./skill-scope-BT8L6qtg.js","./skills-api-B3ylk3SA.js","./use-workspace-RZ7iKvm8.js","./DocumentContext-B0sQn39F.css","./thread-client-g2-or03F.js","./workspace-paths-Dczkx4vn.js","./libesm-Crzrznn_.js","./chunk-BO2N2NFS-DKulHdwE.js","./RegisteredAgentIcon-C299I100.js","./terminal-launch-events-BD-q8533.js","./list-plus-BmoxCvSM.js","./comment-chips-gaLeekcj.js","./rotate-ccw-B05K_aam.js","./square-pen-BhqhPrdL.js","./terminal-DGmaW797.js","./wrench-Cjhn9plF.js","./skeleton-BJMacgN3.js","./textarea-DkcNoPBJ.js","./use-installed-clis-Cr9Uz3fy.js","./launch-agent-thread-D8Tziksb.js","./agent-presence-B7da2Vup.js","./ok-syntax-theme-BmVEsR7C.js","./overlay-layers-Bj-TVfKw.js","./clipboard-adapter-3v18kDwB.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{o as e}from"./chunk-CYidjpOJ.js";import{t}from"./preload-helper-Chd9yIcd.js";import{t as n}from"./jsx-runtime-BUgB2tll.js";import{t as r}from"./react-f2sANaYj.js";import{n as i,r as a}from"./dist-Nvb76hAm.js";import{t as o}from"./react-dom-DPxgxlDT.js";import{t as s}from"./compiler-runtime-BfE3aGVn.js";import{t as c}from"./react-error-boundary-6ac6QM6R.js";import{t as l}from"./utils-CPqDy6Hr.js";import{t as u}from"./overlay-layers-Bj-TVfKw.js";import{t as d}from"./button-HKX9wT1K.js";import{i as f,n as p,t as m}from"./tooltip-BnyyQDRs.js";import{t as h}from"./alert-dialog-BJIyfEVh.js";import{a as g,f as _,g as v,m as y,n as ee,t as b,v as x,y as te}from"./RegisteredAgentIcon-C299I100.js";import{r as S,s as ne}from"./terminal-telemetry-yTKCAc7J.js";import{Sc as C}from"./dist-DOFOMv5X.js";import{n as w}from"./dist-CJhtNlOm2.js";import{a as T,x as re}from"./use-settings-route-CBhyzk7L.js";import{t as E}from"./dist-Cr4-nBVI.js";import{a as D,i as O,n as ie,o as k,r as ae}from"./local-menu-action-bus-DaoT7_kL.js";import{$ as oe,B as A,C as se,D as j,E as ce,G as M,J as N,O as P,Q as F,S as I,U as L,X as le,Y as R,Z as ue,_ as z,a as de,b as B,et as V,g as H,h as U,it as fe,k as pe,n as me,nt as W,q as he,r as ge,rt as _e,u as G,w as ve,x as ye,y as be,z as K}from"./preferred-session-events-Cuwqu61S.js";import{b as xe,d as Se,f as Ce,g as we,i as Te,m as Ee,o as De,p as Oe,t as ke,u as Ae,v as je}from"./terminal-launch-events-BD-q8533.js";import{t as Me}from"./OpenInAgentMenuItem-VFY-Baek.js";import{t as Ne}from"./createLucideIcon-B6ULg5PN.js";import{t as Pe}from"./check-BzfGb3KU.js";import{t as Fe}from"./chevron-left-BTZYHMSf.js";import{t as Ie}from"./chevron-down-Dloks0wp.js";import{t as Le}from"./chevron-right-C-g4JuT4.js";import{a as Re,i as ze,m as Be,o as Ve,r as He,t as Ue,u as q}from"./dropdown-menu-DjQ8GtwR.js";import{t as We}from"./spinner-Bp2_BYkl.js";import{t as Ge}from"./trash-2-B9Flu-41.js";import{t as J}from"./x-DIayTyoR.js";import{t as Ke}from"./input-f41fkc3m.js";import{c as qe,i as Je,m as Ye,n as Y,o as X,r as Xe,s as Ze,t as Qe}from"./DeleteConfirmationDialog-D_u8hFpe.js";import{a as $e,d as et,g as tt,h as nt,n as rt,r as it,s as at,t as ot}from"./sortable.esm-BqXWcrem.js";import{i as st,n as ct,r as lt,t as ut}from"./input-group-BJKbZdHx.js";import{d as dt,f as ft,i as pt,l as mt,p as ht,s as gt,u as _t}from"./thread-client-g2-or03F.js";import{i as vt,n as yt,r as bt,t as xt}from"./tabs-B4yZ8H83.js";import{n as St,r as Ct,t as wt}from"./launch-agent-thread-D8Tziksb.js";import{n as Tt,t as Et}from"./use-terminal-enabled-CHcPQQtk.js";import{t as Dt}from"./TerminalStartingNotice-CMzG3ocb.js";var Ot=Ne(`panel-bottom`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M3 15h18`,key:`5xshup`}]]),kt=e(o(),1),At=s(),Z=e(r(),1),Q=n(),$=3e4,jt=(0,Z.createContext)(null);function Mt(e){let t=(0,At.c)(8),{scope:n,children:r}=e,[i,a]=(0,Z.useState)(``),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=()=>{a(``)},t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=[n],t[1]=n,t[2]=s),(0,Z.useEffect)(o,s);let c;t[3]===i?c=t[4]:(c={query:i,setQuery:a},t[3]=i,t[4]=c);let l;return t[5]!==r||t[6]!==c?(l=(0,Q.jsx)(jt,{value:c,children:r}),t[5]=r,t[6]=c,t[7]=l):l=t[7],l}function Nt(e){let t=(0,At.c)(19),{open:n,panelId:r,triggerRef:i,onOpenChange:o}=e,{_:s}=a(),c;t[0]===s?c=t[1]:(c=s({id:`Sdv6pQ`}),t[0]=s,t[1]=c);let l;t[2]!==o||t[3]!==n?(l=()=>o(!n),t[2]=o,t[3]=n,t[4]=l):l=t[4];let u;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Q.jsx)(we,{"aria-hidden":`true`}),t[5]=u):u=t[5];let h;t[6]!==n||t[7]!==r||t[8]!==c||t[9]!==l||t[10]!==i?(h=(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsx)(d,{ref:i,type:`button`,variant:`ghost`,size:`icon-xs`,className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,"aria-label":c,"aria-expanded":n,"aria-controls":r,"data-testid":`agent-thread-history`,onClick:l,children:u})}),t[6]=n,t[7]=r,t[8]=c,t[9]=l,t[10]=i,t[11]=h):h=t[11];let g;t[12]===s?g=t[13]:(g=s({id:`Sdv6pQ`}),t[12]=s,t[13]=g);let _;t[14]===g?_=t[15]:(_=(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:g}),t[14]=g,t[15]=_);let v;return t[16]!==h||t[17]!==_?(v=(0,Q.jsxs)(m,{children:[h,_]}),t[16]=h,t[17]=_,t[18]=v):v=t[18],v}function Pt(e){let t=(0,At.c)(11),{controllerRef:n}=e,{_:r}=a(),[i,o]=(0,Z.useState)(null),s,c;if(t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>({open:o}),c=[],t[0]=s,t[1]=c):(s=t[0],c=t[1]),(0,Z.useImperativeHandle)(n,s,c),i===null)return null;let l;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{e||o(null)},t[2]=l):l=t[2];let u=i.title,d;t[3]===r?d=t[4]:(d=r({id:`IgkKDg`}),t[3]=r,t[4]=d);let f;t[5]===i.threadId?f=t[6]:(f=()=>{pt().deleteThread(i.threadId),o(null)},t[5]=i.threadId,t[6]=f);let p;return t[7]!==d||t[8]!==f||t[9]!==i.title?(p=(0,Q.jsx)(h,{open:!0,onOpenChange:l,children:(0,Q.jsx)(Qe,{itemName:u,customTitle:d,isSubmitting:!1,onDelete:f})}),t[7]=d,t[8]=f,t[9]=i.title,t[10]=p):p=t[10],p}function Ft(e){let t=(0,At.c)(96),{thread:n,openAsTab:r,active:i,mode:o,now:s,reasonId:c,openTabReason:u,deleteDialogRef:h,onSelectThread:g,onDismiss:_}=e,{_:v}=a(),[y,ee]=(0,Z.useState)(null),x=(0,Z.useRef)(!1);if(y!==null){let e;t[0]!==y||t[1]!==n?(e=()=>{let e=y.trim();!x.current&&e!==``&&e!==n.title&&pt().renameThread(n.threadId,e),x.current=!1,ee(null)},t[0]=y,t[1]=n,t[2]=e):e=t[2];let r=e,i;t[3]===v?i=t[4]:(i=v({id:`tDlhkF`}),t[3]=v,t[4]=i);let a,o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(a=e=>ee(e.target.value),o=e=>{e.nativeEvent.isComposing||(e.key===`Enter`&&(e.preventDefault(),e.currentTarget.blur()),e.key===`Escape`&&(e.preventDefault(),x.current=!0,e.currentTarget.blur()))},t[5]=a,t[6]=o):(a=t[5],o=t[6]);let s;return t[7]!==y||t[8]!==r||t[9]!==i?(s=(0,Q.jsx)(pe,{className:`[contain-intrinsic-size:auto_2.25rem] [content-visibility:auto]`,children:(0,Q.jsx)(`div`,{className:`rounded-md bg-sidebar-accent p-1`,"data-testid":`agent-thread-history-rename`,children:(0,Q.jsx)(Ke,{autoFocus:!0,value:y,"aria-label":i,className:`h-7 min-w-0 text-sm`,onChange:a,onKeyDown:o,onBlur:r,"data-testid":`agent-thread-history-rename-input`})})}),t[7]=y,t[8]=r,t[9]=i,t[10]=s):s=t[10],s}let te=`${c}-${n.threadId}`,S=r||n.archived!==!0,ne=i?`bg-[var(--thread-row-bg)] [--thread-row-bg:var(--sidebar-selected)] [--thread-row-destructive-foreground:var(--sidebar-selected-destructive-foreground)] [--thread-row-foreground:var(--sidebar-selected-foreground)] [--thread-row-muted-foreground:var(--sidebar-selected-muted-foreground)]`:`hover:bg-[var(--thread-row-bg)] focus-within:bg-[var(--thread-row-bg)] [--thread-row-bg:var(--sidebar-hover)]`,C;t[11]===ne?C=t[12]:(C=l(`rounded-md [--thread-row-destructive-foreground:var(--sidebar-hover-destructive-foreground)] [--thread-row-foreground:var(--sidebar-hover-foreground)] [--thread-row-muted-foreground:var(--sidebar-hover-muted-foreground)] [contain-intrinsic-size:auto_2.25rem] [content-visibility:auto]`,ne),t[11]=ne,t[12]=C);let w=i?`true`:void 0,T;t[13]!==o||t[14]!==_||t[15]!==g||t[16]!==n.threadId?(T=()=>{g(n.threadId),o===`cover`&&_(`selection`)},t[13]=o,t[14]=_,t[15]=g,t[16]=n.threadId,t[17]=T):T=t[17];let re=`agent-thread-history-open-${n.threadId}`,E;t[18]!==n.agent.iconUrl||t[19]!==n.agent.id?(E=(0,Q.jsx)(b,{agentId:n.agent.id,iconUrl:n.agent.iconUrl,className:`size-4 shrink-0`}),t[18]=n.agent.iconUrl,t[19]=n.agent.id,t[20]=E):E=t[20];let D;t[21]===n.title?D=t[22]:(D=(0,Q.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-start`,children:n.title}),t[21]=n.title,t[22]=D);let O;t[23]!==s||t[24]!==n.lastActivityAt?(O=Vt(n.lastActivityAt,s),t[23]=s,t[24]=n.lastActivityAt,t[25]=O):O=t[25];let ie;t[26]===O?ie=t[27]:(ie=(0,Q.jsx)(`span`,{className:`shrink-0 text-2xs text-[var(--thread-row-muted-foreground)] motion-safe:transition-opacity group-focus-within/menu-item:opacity-0 group-hover/menu-item:opacity-0`,children:O}),t[26]=O,t[27]=ie);let ae;t[28]!==i||t[29]!==w||t[30]!==T||t[31]!==re||t[32]!==E||t[33]!==D||t[34]!==ie?(ae=(0,Q.jsxs)(P,{type:`button`,size:`default`,isActive:i,"aria-current":w,className:`h-9 bg-transparent pr-2! text-sidebar-foreground hover:bg-transparent hover:text-[var(--thread-row-foreground)] active:bg-transparent data-active:bg-transparent data-active:text-[var(--thread-row-foreground)] data-active:hover:bg-transparent group-focus-within/menu-item:text-[var(--thread-row-foreground)] group-hover/menu-item:text-[var(--thread-row-foreground)]`,onClick:T,"data-testid":re,children:[E,D,ie]}),t[28]=i,t[29]=w,t[30]=T,t[31]=re,t[32]=E,t[33]=D,t[34]=ie,t[35]=ae):ae=t[35];let oe;t[36]!==v||t[37]!==n.title?(oe=v({id:`0TnCvC`,values:{0:n.title}}),t[36]=v,t[37]=n.title,t[38]=oe):oe=t[38];let A;t[39]===n.title?A=t[40]:(A=()=>{x.current=!1,ee(n.title)},t[39]=n.title,t[40]=A);let se=`agent-thread-history-rename-${n.threadId}`,ce;t[41]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,Q.jsx)(k,{className:`size-3`,"aria-hidden":`true`}),t[41]=ce):ce=t[41];let M;t[42]!==oe||t[43]!==A||t[44]!==se?(M=(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":oe,className:`rounded-sm bg-transparent text-[var(--thread-row-muted-foreground)] shadow-none hover:bg-transparent hover:text-[var(--thread-row-foreground)]`,onClick:A,"data-testid":se,children:ce})}),t[42]=oe,t[43]=A,t[44]=se,t[45]=M):M=t[45];let N;t[46]===v?N=t[47]:(N=v({id:`6PsaMr`}),t[46]=v,t[47]=N);let F;t[48]===N?F=t[49]:(F=(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:N}),t[48]=N,t[49]=F);let I;t[50]!==M||t[51]!==F?(I=(0,Q.jsxs)(m,{children:[M,F]}),t[50]=M,t[51]=F,t[52]=I):I=t[52];let L=S&&`cursor-not-allowed`,le;t[53]===L?le=t[54]:(le=l(`inline-flex`,L),t[53]=L,t[54]=le);let R;t[55]!==v||t[56]!==n.title?(R=v({id:`Y2tU6I`,values:{0:n.title}}),t[55]=v,t[56]=n.title,t[57]=R):R=t[57];let ue=S||void 0,z=S?te:void 0,de=S?`pointer-events-none cursor-not-allowed bg-transparent text-muted-foreground/35 shadow-none hover:bg-transparent hover:text-muted-foreground/35 active:translate-y-0`:`rounded-sm bg-transparent text-[var(--thread-row-muted-foreground)] shadow-none hover:bg-transparent hover:text-[var(--thread-row-destructive-foreground)]`,B;t[58]===de?B=t[59]:(B=l(de),t[58]=de,t[59]=B);let V;t[60]!==S||t[61]!==h||t[62]!==n?(V=()=>{S||h.current?.open(n)},t[60]=S,t[61]=h,t[62]=n,t[63]=V):V=t[63];let H=`agent-thread-history-delete-${n.threadId}`,U;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,Q.jsx)(Ge,{className:`size-3`,"aria-hidden":`true`}),t[64]=U):U=t[64];let fe;t[65]!==R||t[66]!==ue||t[67]!==z||t[68]!==B||t[69]!==V||t[70]!==H?(fe=(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":R,"aria-disabled":ue,"aria-describedby":z,className:B,onClick:V,"data-testid":H,children:U}),t[65]=R,t[66]=ue,t[67]=z,t[68]=B,t[69]=V,t[70]=H,t[71]=fe):fe=t[71];let me;t[72]!==S||t[73]!==u||t[74]!==te?(me=S?(0,Q.jsx)(`span`,{id:te,className:`sr-only`,children:u}):null,t[72]=S,t[73]=u,t[74]=te,t[75]=me):me=t[75];let W;t[76]!==le||t[77]!==fe||t[78]!==me?(W=(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsxs)(`span`,{className:le,children:[fe,me]})}),t[76]=le,t[77]=fe,t[78]=me,t[79]=W):W=t[79];let he;t[80]!==v||t[81]!==S||t[82]!==u?(he=S?u:v({id:`YFpLoV`}),t[80]=v,t[81]=S,t[82]=u,t[83]=he):he=t[83];let ge;t[84]===he?ge=t[85]:(ge=(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:he}),t[84]=he,t[85]=ge);let _e;t[86]!==W||t[87]!==ge?(_e=(0,Q.jsxs)(m,{children:[W,ge]}),t[86]=W,t[87]=ge,t[88]=_e):_e=t[88];let G;t[89]!==I||t[90]!==_e?(G=(0,Q.jsx)(j,{asChild:!0,showOnHover:!0,className:`pointer-events-none inset-y-0 top-0! end-0! z-10 aspect-auto h-auto w-auto overflow-visible rounded-none rounded-e-md bg-[var(--thread-row-bg)] p-1 opacity-0 shadow-none before:pointer-events-none before:absolute before:inset-y-0 before:end-full before:w-8 before:bg-[linear-gradient(to_right,transparent,var(--thread-row-bg))] after:hidden hover:bg-[var(--thread-row-bg)] group-focus-within/menu-item:pointer-events-auto group-hover/menu-item:pointer-events-auto rtl:before:bg-[linear-gradient(to_left,transparent,var(--thread-row-bg))]`,children:(0,Q.jsxs)(`div`,{className:`flex items-center gap-0.5`,children:[I,_e]})}),t[89]=I,t[90]=_e,t[91]=G):G=t[91];let ve;return t[92]!==ae||t[93]!==C||t[94]!==G?(ve=(0,Q.jsxs)(pe,{className:C,children:[ae,G]}),t[92]=ae,t[93]=C,t[94]=G,t[95]=ve):ve=t[95],ve}function It(e){let t=(0,At.c)(54),{threads:n,openThreadIds:r,activeThreadId:i,onSelectThread:o,mode:s,panelId:c,onDismiss:l,newChatControl:u}=e,{_:h}=a(),g=(0,Z.use)(jt);if(g===null)throw Error(`ThreadHistoryPanel requires ThreadHistorySearchProvider`);let{query:_,setQuery:v}=g,[y,ee]=(0,Z.useState)(Rt),b=(0,Z.useRef)(null),x=(0,Z.useRef)(null),te=(0,Z.useRef)(s),S=(0,Z.useId)(),ne=h({id:`V0mbgd`}),C=_.trim().toLowerCase(),w=n.filter(e=>e.title.toLowerCase().includes(C)).sort(zt),T=w.filter(e=>Bt(e.lastActivityAt,y)),re=w.filter(e=>!Bt(e.lastActivityAt,y)),E=[{key:`today`,label:h({id:`ecUA8p`}),threads:T},{key:`older`,label:h({id:`_fwE6J`}),threads:re}].filter(Lt),D;t[0]===v?D=t[1]:(D=()=>{v(``),x.current?.focus()},t[0]=v,t[1]=D);let ie=D,k,ae;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(k=()=>{let e=setInterval(()=>ee(Date.now()),$);return()=>clearInterval(e)},ae=[],t[2]=k,t[3]=ae):(k=t[2],ae=t[3]),(0,Z.useEffect)(k,ae);let oe,j;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(oe=()=>{x.current?.focus({preventScroll:te.current===`cover`})},j=[],t[4]=oe,t[5]=j):(oe=t[4],j=t[5]),(0,Z.useEffect)(oe,j);let N;t[6]===h?N=t[7]:(N=h({id:`Sdv6pQ`}),t[6]=h,t[7]=N);let P;t[8]===l?P=t[9]:(P=e=>{e.key!==`Escape`||e.nativeEvent.isComposing||e.defaultPrevented||(e.preventDefault(),l(`explicit`))},t[8]=l,t[9]=P);let F;t[10]!==h||t[11]!==s||t[12]!==l?(F=s===`cover`?(0,Q.jsxs)(`div`,{className:`mb-2 flex h-8 items-center gap-1`,children:[(0,Q.jsxs)(m,{children:[(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-sm`,"aria-label":h({id:`iH8pgl`}),"data-testid":`agent-thread-history-back`,onClick:()=>l(`explicit`),children:(0,Q.jsx)(Fe,{"aria-hidden":`true`})})}),(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:h({id:`iH8pgl`})})]}),(0,Q.jsx)(`h2`,{className:`font-mono text-xs font-normal uppercase tracking-wide text-muted-foreground`,children:h({id:`Sdv6pQ`})})]}):null,t[10]=h,t[11]=s,t[12]=l,t[13]=F):F=t[13];let le;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,Q.jsx)(ct,{children:(0,Q.jsx)(O,{"aria-hidden":`true`})}),t[14]=le):le=t[14];let R;t[15]===h?R=t[16]:(R=h({id:`eKGK4A`}),t[15]=h,t[16]=R);let ue;t[17]===h?ue=t[18]:(ue=h({id:`a4xYoA`}),t[17]=h,t[18]=ue);let z;t[19]===v?z=t[20]:(z=e=>v(e.target.value),t[19]=v,t[20]=z);let de;t[21]!==_||t[22]!==R||t[23]!==ue||t[24]!==z?(de=(0,Q.jsx)(st,{ref:x,type:`search`,className:`[&::-webkit-search-cancel-button]:hidden`,name:`chat-history-search`,autoComplete:`off`,spellCheck:!1,value:_,"aria-label":R,placeholder:ue,onChange:z}),t[21]=_,t[22]=R,t[23]=ue,t[24]=z,t[25]=de):de=t[25];let V;t[26]!==h||t[27]!==ie||t[28]!==_?(V=_===``?null:(0,Q.jsx)(ct,{align:`inline-end`,children:(0,Q.jsx)(lt,{size:`icon-xs`,"aria-label":h({id:`8SVvE7`}),onClick:ie,children:(0,Q.jsx)(J,{"aria-hidden":`true`})})}),t[26]=h,t[27]=ie,t[28]=_,t[29]=V):V=t[29];let H;t[30]!==de||t[31]!==V?(H=(0,Q.jsxs)(ut,{className:`border-none bg-muted-foreground/5`,children:[le,de,V]}),t[30]=de,t[31]=V,t[32]=H):H=t[32];let U;t[33]!==F||t[34]!==H?(U=(0,Q.jsxs)(ve,{className:`shrink-0 gap-0`,children:[F,H]}),t[33]=F,t[34]=H,t[35]=U):U=t[35];let fe=be,pe=n.length===0?`flex min-h-0 flex-1 flex-col`:void 0,me=n.length===0?(0,Q.jsx)(A,{className:`min-h-32 p-4`,children:(0,Q.jsx)(L,{children:(0,Q.jsx)(M,{className:`font-normal text-muted-foreground`,asChild:!0,children:(0,Q.jsx)(`h2`,{children:h({id:`r3iaI0`})})})})}):w.length===0?(0,Q.jsx)(`h2`,{className:`px-4 py-6 text-center text-sm font-normal text-muted-foreground`,children:h({id:`cnR7h2`})}):null,W;t[36]!==pe||t[37]!==me?(W=(0,Q.jsx)(`div`,{role:`status`,"aria-atomic":`true`,className:pe,children:me}),t[36]=pe,t[37]=me,t[38]=W):W=t[38];let he=E.map(e=>(0,Q.jsxs)(ye,{className:`mt-1 p-0 first:mt-0`,children:[(0,Q.jsx)(se,{asChild:!0,className:`text-xs text-muted-foreground font-normal uppercase tracking-wide font-mono`,children:(0,Q.jsx)(`h2`,{id:`${S}-${e.key}`,children:e.label})}),(0,Q.jsx)(I,{children:(0,Q.jsx)(ce,{"aria-labelledby":`${S}-${e.key}`,children:e.threads.map(e=>(0,Q.jsx)(Ft,{thread:e,openAsTab:r.has(e.threadId),active:i===e.threadId,mode:s,now:y,reasonId:S,openTabReason:ne,deleteDialogRef:b,onSelectThread:o,onDismiss:l},e.threadId))})})]},e.key)),ge;t[39]!==fe||t[40]!==W||t[41]!==he?(ge=(0,Q.jsxs)(fe,{className:`px-1 pb-1 scroll-fade-mask`,children:[W,he]}),t[39]=fe,t[40]=W,t[41]=he,t[42]=ge):ge=t[42];let _e;t[43]===u?_e=t[44]:(_e=u==null?null:(0,Q.jsx)(B,{className:`shrink-0 gap-0`,children:u}),t[43]=u,t[44]=_e);let G;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,Q.jsx)(Pt,{controllerRef:b}),t[45]=G):G=t[45];let K;return t[46]!==s||t[47]!==c||t[48]!==U||t[49]!==ge||t[50]!==_e||t[51]!==N||t[52]!==P?(K=(0,Q.jsxs)(`aside`,{id:c,"aria-label":N,className:`flex h-full min-h-0 w-full flex-col bg-muted/20 text-sidebar-foreground [--sidebar-accent-foreground:var(--foreground)]`,"data-testid":`agent-thread-history-panel`,"data-history-mode":s,onKeyDown:P,children:[U,ge,_e,G]}),t[46]=s,t[47]=c,t[48]=U,t[49]=ge,t[50]=_e,t[51]=N,t[52]=P,t[53]=K):K=t[53],K}function Lt(e){return e.threads.length>0}function Rt(){return Date.now()}function zt(e,t){return e.lastActivityAt===t.lastActivityAt?e.threadId<t.threadId?-1:+(e.threadId>t.threadId):t.lastActivityAt-e.lastActivityAt}function Bt(e,t){let n=new Date(e),r=new Date(t);return n.getFullYear()===r.getFullYear()&&n.getMonth()===r.getMonth()&&n.getDate()===r.getDate()}function Vt(e,t){let n=Math.max(0,t-e);if(n<6e4)return E._({id:`xOTzt5`});if(n<36e5){let e=Math.round(n/6e4);return E._({id:`_rP3HI`,values:{minutes:e}})}if(n<864e5){let e=Math.round(n/36e5);return E._({id:`nYeBmY`,values:{hours:e}})}let r=Math.round(n/864e5);return E._({id:`LPAv9E`,values:{days:r}})}var Ht=300,Ut=1;function Wt(e){return e>=248+Ht+Ut?`docked`:`cover`}function Gt(e,t){let n=(0,At.c)(9),[r,i]=(0,Z.useState)(`cover`),a,o;n[0]!==e||n[1]!==t?(a=()=>{if(!t||e==null)return;let n=0,r=()=>{window.cancelAnimationFrame(n),n=window.requestAnimationFrame(()=>{i(Wt(e.getBoundingClientRect().width))})};r();let a=new ResizeObserver(r);return a.observe(e),()=>{window.cancelAnimationFrame(n),a.disconnect()}},o=[e,t],n[0]=e,n[1]=t,n[2]=a,n[3]=o):(a=n[2],o=n[3]),(0,Z.useLayoutEffect)(a,o);let s;n[4]===e?s=n[5]:(s=()=>{e!=null&&i(Wt(e.getBoundingClientRect().width))},n[4]=e,n[5]=s);let c;return n[6]!==r||n[7]!==s?(c={mode:r,remeasure:s},n[6]=r,n[7]=s,n[8]=c):c=n[8],c}var Kt=`ok-terminal-new-tab-bare-v1`;function qt(e){try{return(e??localStorage).getItem(Kt)===`1`}catch{return!1}}function Jt(e,t){try{let n=t??localStorage;e?n.setItem(Kt,`1`):n.removeItem(Kt)}catch{}for(let e of Yt)e()}var Yt=new Set;function Xt(){return en()}function Zt(){for(let e of Yt)e()}typeof window<`u`&&typeof window.addEventListener==`function`&&window.addEventListener(`storage`,e=>{(e.key===`ok-terminal-new-tab-bare-v1`||e.key===null)&&Zt()});function Qt(e){return Yt.add(e),()=>Yt.delete(e)}function $t(){return(0,Z.useSyncExternalStore)(Qt,Xt,Xt)}function en(){try{return typeof localStorage>`u`?!1:qt()}catch{return!1}}var tn=K(()=>t(()=>import(`./TerminalPanel-qXWYcAW1.js`).then(e=>({default:e.TerminalPanel})),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71]),import.meta.url));function nn(e){let t=(0,At.c)(24),{bridge:n,onClose:r,onTitleChange:i,launch:o,commandId:s,adoptPtyId:l,onPtyId:u}=e,d=o===void 0?null:o,f=s===void 0?null:s,p=l===void 0?null:l,{enabled:m,synced:h}=Et(),g=Tt(),{_}=a(),v;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(v={enabled:null,hasSynced:!1},t[0]=v):v=t[0];let[y,ee]=(0,Z.useState)(v),b,x;t[1]!==m||t[2]!==h?(b=()=>{h&&ee(e=>e.hasSynced&&e.enabled===m?e:{enabled:m,hasSynced:!0})},x=[m,h],t[1]=m,t[2]=h,t[3]=b,t[4]=x):(b=t[3],x=t[4]),(0,Z.useEffect)(b,x);let te=h||y.hasSynced,S=h?m:y.enabled,ne=te&&S===!1,C,T;t[5]===ne?(C=t[6],T=t[7]):(C=()=>{ne||tn.preload()},T=[ne],t[5]=ne,t[6]=C,t[7]=T),(0,Z.useEffect)(C,T);let re;t[8]!==_||t[9]!==g?(re=function(){if(g===null){w.error(_({id:`V_6bJ4`}));return}let e=g(!0);e.ok||w.error(_({id:`jKd3AP`,values:{0:e.error}}))},t[8]=_,t[9]=g,t[10]=re):re=t[10];let E=re;if(te&&!ne){let e;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(Dt,{}),t[11]=e):e=t[11];let a;return t[12]!==p||t[13]!==n||t[14]!==f||t[15]!==d||t[16]!==r||t[17]!==u||t[18]!==i?(a=(0,Q.jsx)(c,{fallbackRender:an,onError:rn,children:(0,Q.jsx)(Z.Suspense,{fallback:e,children:(0,Q.jsx)(tn,{bridge:n,className:`h-full`,onClose:r,onTitleChange:i,launch:d,commandId:f,adoptPtyId:p,onPtyId:u})})}),t[12]=p,t[13]=n,t[14]=f,t[15]=d,t[16]=r,t[17]=u,t[18]=i,t[19]=a):a=t[19],a}let D;return t[20]!==E||t[21]!==ne||t[22]!==g?(D=ne?(0,Q.jsx)(cn,{enableDisabled:g===null,onEnable:E}):(0,Q.jsx)(Dt,{}),t[20]=E,t[21]=ne,t[22]=g,t[23]=D):D=t[23],D}function rn(e,t){console.error(`[TerminalGate] rendered fallback for the terminal panel`,e,t.componentStack)}function an(e){return(0,Q.jsx)(on,{...e})}function on(e){let t=(0,At.c)(15),{error:n}=e,{_:r}=a(),i;t[0]!==r||t[1]!==n?(i=n instanceof Error&&/dynamically imported module|Failed to fetch/i.test(n.message)?r({id:`Y8ViJx`}):r({id:`fbsiBw`}),t[0]=r,t[1]=n,t[2]=i):i=t[2];let o=i,s;t[3]===r?s=t[4]:(s=r({id:`6MnZEC`}),t[3]=r,t[4]=s);let c;t[5]===o?c=t[6]:(c=(0,Q.jsx)(`p`,{className:`max-w-sm text-sm text-foreground`,children:o}),t[5]=o,t[6]=c);let l;t[7]===r?l=t[8]:(l=r({id:`HpK_8d`}),t[7]=r,t[8]=l);let u;t[9]===l?u=t[10]:(u=(0,Q.jsx)(d,{onClick:sn,children:l}),t[9]=l,t[10]=u);let f;return t[11]!==s||t[12]!==c||t[13]!==u?(f=(0,Q.jsxs)(`section`,{"aria-label":s,className:`flex h-full w-full flex-col items-center justify-center gap-3 bg-background p-6 text-center`,role:`alert`,children:[c,u]}),t[11]=s,t[12]=c,t[13]=u,t[14]=f):f=t[14],f}function sn(){return window.location.reload()}function cn(e){let t=(0,At.c)(27),{enableDisabled:n,onEnable:r}=e,{_:i}=a(),o=(0,Z.useId)(),s;t[0]===i?s=t[1]:(s=i({id:`_XWY2J`}),t[0]=i,t[1]=s);let c;t[2]===i?c=t[3]:(c=i({id:`oYepHb`}),t[2]=i,t[3]=c);let l;t[4]===c?l=t[5]:(l=(0,Q.jsx)(`p`,{className:`max-w-sm text-sm text-foreground`,children:c}),t[4]=c,t[5]=l);let u=n?o:void 0,f;t[6]===i?f=t[7]:(f=i({id:`v2ZW0K`}),t[6]=i,t[7]=f);let p;t[8]!==n||t[9]!==r||t[10]!==u||t[11]!==f?(p=(0,Q.jsx)(d,{disabled:n,"aria-describedby":u,onClick:r,children:f}),t[8]=n,t[9]=r,t[10]=u,t[11]=f,t[12]=p):p=t[12];let m;t[13]!==i||t[14]!==n||t[15]!==o?(m=n?(0,Q.jsx)(`p`,{id:o,className:`text-xs text-muted-foreground`,children:i({id:`V_6bJ4`})}):null,t[13]=i,t[14]=n,t[15]=o,t[16]=m):m=t[16];let h;t[17]===i?h=t[18]:(h=i({id:`ICoNYz`}),t[17]=i,t[18]=h);let g;t[19]===h?g=t[20]:(g=(0,Q.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:h}),t[19]=h,t[20]=g);let _;return t[21]!==s||t[22]!==l||t[23]!==p||t[24]!==m||t[25]!==g?(_=(0,Q.jsxs)(`section`,{"aria-label":s,className:`flex h-full w-full flex-col items-center justify-center gap-3 bg-background p-6 text-center`,children:[l,p,m,g]}),t[21]=s,t[22]=l,t[23]=p,t[24]=m,t[25]=g,t[26]=_):_=t[26],_}function ln(e){let t=(0,At.c)(117),{selected:n,onLaunchSelected:r,showAgents:o,registeredAgents:s,onPickAgent:c,onOpenSettings:u,liveThreadCount:h,showClis:g,onPickCli:_,onPickTerminal:v,visibleClis:y,className:ee,presentation:x}=e,te=y===void 0?Y:y,S=x===void 0?`toolbar`:x,{_:w}=a(),[T,re]=(0,Z.useState)(!1),E=h>=(ne(T&&o).data?.maxThreads??8),O=o||g,ie=S===`panel`,k=n.kind===`agent`?n.agent?.name:void 0,oe;t[0]!==w||t[1]!==k||t[2]!==n.cli||t[3]!==n.kind?(oe=n.kind===`terminal`?w({id:`AB4qw9`}):n.kind===`cli`?w({id:`nP-KFo`,values:{0:C[n.cli].displayName}}):w(k===void 0?{id:`G7bn_N`}:{id:`iSguIe`,values:{agentName:k}}),t[0]=w,t[1]=k,t[2]=n.cli,t[3]=n.kind,t[4]=oe):oe=t[4];let A=oe,se;t[5]!==w||t[6]!==k||t[7]!==ie||t[8]!==A?(se=ie&&k!==void 0?w({id:`hIQkLb`}):A,t[5]=w,t[6]=k,t[7]=ie,t[8]=A,t[9]=se):se=t[9];let j=se;if(ie){let e;t[10]===ee?e=t[11]:(e=l(`w-full`,ee),t[10]=ee,t[11]=e);let a;t[12]===n?a=t[13]:(a=n.kind===`terminal`?null:(0,Q.jsx)(pn,{selected:n,className:`size-4`}),t[12]=n,t[13]=a);let d;t[14]===j?d=t[15]:(d=(0,Q.jsx)(`span`,{className:`truncate`,children:j}),t[14]=j,t[15]=d);let f;t[16]!==a||t[17]!==d?(f=(0,Q.jsxs)(Q.Fragment,{children:[a,d]}),t[16]=a,t[17]=d,t[18]=f):f=t[18];let p;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(p=[],t[19]=p):p=t[19];let m;t[20]!==E||t[21]!==c||t[22]!==s||t[23]!==n.agent?.id||t[24]!==n.agent?.source||t[25]!==n.kind||t[26]!==o?(m=o?s.map(e=>({key:`${e.source}:${e.id}`,id:e.id,name:e.name,...e.iconUrl===void 0?{}:{iconUrl:e.iconUrl},selected:n.kind===`agent`&&n.agent?.source===e.source&&n.agent?.id===e.id,disabled:E,onSelect:()=>c(e)})):void 0,t[20]=E,t[21]=c,t[22]=s,t[23]=n.agent?.id,t[24]=n.agent?.source,t[25]=n.kind,t[26]=o,t[27]=m):m=t[27];let h;t[28]===E?h=t[29]:(h=E?(0,Q.jsx)(Ve,{className:`py-1 font-normal text-muted-foreground text-xs`,"data-testid":`terminal-new-chat-cap`,children:(0,Q.jsx)(i,{id:`0QVrvp`})}):void 0,t[28]=E,t[29]=h);let y;t[30]!==w||t[31]!==_||t[32]!==n.cli||t[33]!==n.kind||t[34]!==g||t[35]!==te?(y=g?te.map(e=>({cli:e,label:C[e].displayName,ariaLabel:w({id:`yxH4Gs`,values:{0:C[e].displayName}}),selected:n.kind===`cli`&&n.cli===e,onSelect:()=>_(e)})):void 0,t[30]=w,t[31]=_,t[32]=n.cli,t[33]=n.kind,t[34]=g,t[35]=te,t[36]=y):y=t[36];let b;t[37]!==w||t[38]!==v||t[39]!==n.kind||t[40]!==g?(b=g?{selected:n.kind===`terminal`,onSelect:v,label:w({id:`ALhMYW`}),icon:(0,Q.jsx)(W,{"aria-hidden":`true`,className:`size-4`}),ariaLabel:w({id:`ALhMYW`}),testId:`terminal-new-chat-terminal`}:void 0,t[37]=w,t[38]=v,t[39]=n.kind,t[40]=g,t[41]=b):b=t[41];let x;t[42]===w?x=t[43]:(x=w({id:`gzaLgh`}),t[42]=w,t[43]=x);let S;t[44]===s?S=t[45]:(S={primary:`terminal-new-chat`,trigger:`terminal-new-chat-menu`,menu:`terminal-new-chat-menu-content`,option:dn,terminal:un,threadAgent:e=>`terminal-new-chat-agent-${s.find(t=>`${t.source}:${t.id}`===e)?.id??e}`,settings:`terminal-new-chat-settings`},t[44]=s,t[45]=S);let ne;return t[46]!==r||t[47]!==u||t[48]!==A||t[49]!==m||t[50]!==h||t[51]!==y||t[52]!==b||t[53]!==x||t[54]!==S||t[55]!==e||t[56]!==f?(ne=(0,Q.jsx)(N,{className:e,primaryClassName:`min-w-0 flex-1 justify-start`,primary:f,primaryAriaLabel:A,onPrimary:r,enabledTargets:p,selectedTargetId:null,onSelectTarget:fn,threadAgents:m,threadAgentsFooter:h,terminals:y,terminal:b,onOpenSettings:u,onMenuOpenChange:re,menuAlign:`start`,triggerAriaLabel:x,testIds:S}),t[46]=r,t[47]=u,t[48]=A,t[49]=m,t[50]=h,t[51]=y,t[52]=b,t[53]=x,t[54]=S,t[55]=e,t[56]=f,t[57]=ne):ne=t[57],ne}let ce;t[58]===ee?ce=t[59]:(ce=l(`flex shrink-0 items-center`,ee),t[58]=ee,t[59]=ce);let M=O&&`rounded-r-none`,P;t[60]===M?P=t[61]:(P=l(`cursor-pointer gap-0.5 px-1.5 text-muted-foreground hover:text-foreground`,M),t[60]=M,t[61]=P);let F;t[62]===n?F=t[63]:(F=n.kind===`terminal`?null:(0,Q.jsx)(pn,{selected:n,className:`size-3.5`}),t[62]=n,t[63]=F);let I;t[64]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,Q.jsx)(D,{"aria-hidden":`true`,className:`size-3`}),t[64]=I):I=t[64];let L;t[65]!==r||t[66]!==A||t[67]!==P||t[68]!==F?(L=(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsxs)(d,{type:`button`,variant:`ghost`,size:`xs`,"aria-label":A,"data-testid":`terminal-new-chat`,className:P,onClick:r,children:[F,I]})}),t[65]=r,t[66]=A,t[67]=P,t[68]=F,t[69]=L):L=t[69];let le;t[70]===A?le=t[71]:(le=(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:A}),t[70]=A,t[71]=le);let R;t[72]!==L||t[73]!==le?(R=(0,Q.jsxs)(m,{children:[L,le]}),t[72]=L,t[73]=le,t[74]=R):R=t[74];let ue;t[75]!==w||t[76]!==O?(ue=O?(0,Q.jsx)(Be,{asChild:!0,children:(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":w({id:`l87Deg`}),"data-testid":`terminal-new-chat-menu`,className:`cursor-pointer rounded-s-none text-muted-foreground hover:text-foreground`,children:(0,Q.jsx)(Ie,{"aria-hidden":`true`,className:`size-3`})})}):null,t[75]=w,t[76]=O,t[77]=ue):ue=t[77];let z;t[78]!==w||t[79]!==E||t[80]!==c||t[81]!==s||t[82]!==n.agent?.id||t[83]!==n.agent?.source||t[84]!==n.kind||t[85]!==o?(z=o&&s.length>0?(0,Q.jsxs)(ze,{"aria-label":w({id:`RXEbZy`}),children:[(0,Q.jsx)(Ve,{children:(0,Q.jsx)(i,{id:`RXEbZy`})}),s.map(e=>{let t=n.kind===`agent`&&n.agent?.source===e.source&&n.agent?.id===e.id;return(0,Q.jsxs)(Re,{onSelect:()=>c(e),disabled:E,"data-testid":`terminal-new-chat-agent-${e.id}`,"aria-current":t?`true`:void 0,children:[(0,Q.jsx)(b,{agentId:e.id,iconUrl:e.iconUrl,className:`size-4`}),(0,Q.jsx)(`span`,{className:`flex-1 truncate`,children:e.name}),t?(0,Q.jsx)(Pe,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]},`${e.source}:${e.id}`)}),E?(0,Q.jsx)(Ve,{className:`py-1 font-normal text-muted-foreground text-xs`,"data-testid":`terminal-new-chat-cap`,children:(0,Q.jsx)(i,{id:`0QVrvp`})}):null]}):null,t[78]=w,t[79]=E,t[80]=c,t[81]=s,t[82]=n.agent?.id,t[83]=n.agent?.source,t[84]=n.kind,t[85]=o,t[86]=z):z=t[86];let de;t[87]!==s||t[88]!==o||t[89]!==g?(de=o&&s.length>0&&g?(0,Q.jsx)(q,{}):null,t[87]=s,t[88]=o,t[89]=g,t[90]=de):de=t[90];let B;t[91]!==w||t[92]!==_||t[93]!==v||t[94]!==n.cli||t[95]!==n.kind||t[96]!==g||t[97]!==te?(B=g?(0,Q.jsxs)(ze,{"aria-label":w({id:`ALhMYW`}),children:[(0,Q.jsx)(Ve,{children:(0,Q.jsx)(i,{id:`ALhMYW`})}),te.map(e=>{let{displayName:t}=C[e],r=n.kind===`cli`&&n.cli===e;return(0,Q.jsxs)(Re,{onSelect:()=>_(e),"data-testid":`terminal-new-chat-cli-${e}`,"aria-label":w({id:`9mEZeD`,values:{name:t}}),"aria-current":r?`true`:void 0,children:[(0,Q.jsx)(Me,{id:Xe(e),className:`size-4`,"aria-hidden":`true`}),(0,Q.jsx)(`span`,{className:`flex-1`,children:t}),r?(0,Q.jsx)(Pe,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]},e)}),(0,Q.jsxs)(Re,{onSelect:v,"data-testid":`terminal-new-chat-terminal`,"aria-current":n.kind===`terminal`?`true`:void 0,children:[(0,Q.jsx)(W,{"aria-hidden":`true`,className:`size-4`}),(0,Q.jsx)(`span`,{className:`flex-1`,children:(0,Q.jsx)(i,{id:`ALhMYW`})}),n.kind===`terminal`?(0,Q.jsx)(Pe,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}):null]})]}):null,t[91]=w,t[92]=_,t[93]=v,t[94]=n.cli,t[95]=n.kind,t[96]=g,t[97]=te,t[98]=B):B=t[98];let V;t[99]!==u||t[100]!==s||t[101]!==o||t[102]!==g?(V=o?(0,Q.jsxs)(Q.Fragment,{children:[s.length>0||g?(0,Q.jsx)(q,{}):null,(0,Q.jsxs)(Re,{onSelect:u,"data-testid":`terminal-new-chat-settings`,children:[(0,Q.jsx)(ae,{"aria-hidden":`true`,className:`size-4 text-muted-foreground`}),(0,Q.jsx)(`span`,{className:`flex-1`,children:(0,Q.jsx)(i,{id:`jRAGrQ`})})]})]}):null,t[99]=u,t[100]=s,t[101]=o,t[102]=g,t[103]=V):V=t[103];let H;t[104]!==z||t[105]!==de||t[106]!==B||t[107]!==V?(H=(0,Q.jsxs)(He,{align:`start`,className:`max-h-80 min-w-[200px]`,children:[z,de,B,V]}),t[104]=z,t[105]=de,t[106]=B,t[107]=V,t[108]=H):H=t[108];let U;t[109]!==T||t[110]!==ue||t[111]!==H?(U=(0,Q.jsxs)(Ue,{open:T,onOpenChange:re,children:[ue,H]}),t[109]=T,t[110]=ue,t[111]=H,t[112]=U):U=t[112];let fe;return t[113]!==R||t[114]!==U||t[115]!==ce?(fe=(0,Q.jsxs)(`div`,{className:ce,children:[R,U]}),t[113]=R,t[114]=U,t[115]=ce,t[116]=fe):fe=t[116],fe}function un(e){return`terminal-new-chat-cli-${e}`}function dn(e){return`terminal-new-chat-option-${e}`}function fn(){}function pn(e){let t=(0,At.c)(13),{selected:n,className:r}=e;if(n.kind===`terminal`){let e;return t[0]===r?e=t[1]:(e=(0,Q.jsx)(W,{"aria-hidden":`true`,className:r}),t[0]=r,t[1]=e),e}if(n.kind===`cli`){let e;t[2]===n.cli?e=t[3]:(e=Xe(n.cli),t[2]=n.cli,t[3]=e);let i;return t[4]!==r||t[5]!==e?(i=(0,Q.jsx)(Me,{id:e,className:r,"aria-hidden":`true`}),t[4]=r,t[5]=e,t[6]=i):i=t[6],i}if(n.agent!==null){let e;return t[7]!==r||t[8]!==n.agent.iconUrl||t[9]!==n.agent.id?(e=(0,Q.jsx)(b,{agentId:n.agent.id,iconUrl:n.agent.iconUrl,className:r}),t[7]=r,t[8]=n.agent.iconUrl,t[9]=n.agent.id,t[10]=e):e=t[10],e}let i;return t[11]===r?i=t[12]:(i=(0,Q.jsx)(ee,{"aria-hidden":`true`,className:r}),t[11]=r,t[12]=i),i}var mn=`[data-terminal-tab-sortable]`;function hn(e){let t=(0,At.c)(11),{id:n,disabled:r,children:i}=e,a;t[0]!==r||t[1]!==n?(a={id:n,disabled:r},t[0]=r,t[1]=n,t[2]=a):a=t[2];let{setNodeRef:o,listeners:s,rect:c,transform:l,transition:u,isDragging:d}=$e(a),f;return t[3]!==i||t[4]!==d||t[5]!==s||t[6]!==c.current?.width||t[7]!==o||t[8]!==l||t[9]!==u?(f=i({setNodeRef:o,listeners:s,style:G({activeWidth:c.current?.width,isDragging:d,transform:l,transition:u})}),t[3]=i,t[4]=d,t[5]=s,t[6]=c.current?.width,t[7]=o,t[8]=l,t[9]=u,t[10]=f):f=t[10],f}function gn(e){let t=(0,At.c)(11),{children:n,onMoveRight:r}=e,a=(0,Z.useRef)(null);if(r==null)return n;let o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o=e=>{if(!H(e))return;e.preventDefault(),a.current=document.activeElement instanceof HTMLElement?document.activeElement:null;let t=e.currentTarget.getBoundingClientRect();e.currentTarget.dispatchEvent(new MouseEvent(`contextmenu`,{bubbles:!0,cancelable:!0,clientX:t.left,clientY:t.bottom}))},t[0]=o):o=t[0];let s;t[1]===n?s=t[2]:(s=(0,Q.jsx)(Ye,{asChild:!0,onKeyDown:o,children:n}),t[1]=n,t[2]=s);let c;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=e=>{a.current!=null&&(e.preventDefault(),a.current.focus(),a.current=null)},t[3]=c):c=t[3];let l,u;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Q.jsx)(_e,{"aria-hidden":`true`}),u=(0,Q.jsx)(i,{id:`jcEoUi`}),t[4]=l,t[5]=u):(l=t[4],u=t[5]);let d;t[6]===r?d=t[7]:(d=(0,Q.jsx)(X,{onCloseAutoFocus:c,children:(0,Q.jsx)(Ze,{children:(0,Q.jsxs)(qe,{onSelect:r,children:[l,u]})})}),t[6]=r,t[7]=d);let f;return t[8]!==s||t[9]!==d?(f=(0,Q.jsxs)(Je,{children:[s,d]}),t[8]=s,t[9]=d,t[10]=f):f=t[10],f}function _n(e){let t=(0,At.c)(111),{sessions:n,sessionKind:r,activeSessionId:o,onSelect:s,onTabActivate:c,newButton:u,trailingControls:h,onClose:g,onRename:_,onReorder:v,onDragActiveChange:y,edge:ee,onPlacementChange:b,reserveRightRevealTabGutter:x,onCollapse:te,children:S,className:ne,draggable:C}=e,{_:w}=a(),T=ee===`right`,re=T?`bottom`:`right`,E;t[0]!==w||t[1]!==T?(E=w(T?{id:`Tofsyo`}:{id:`PrWQiT`}),t[0]=w,t[1]=T,t[2]=E):E=t[2];let D=E,O;t[3]!==ee||t[4]!==b||t[5]!==r?(O=r===`terminal`&&ee===`bottom`&&b!=null?()=>b(`right`):void 0,t[3]=ee,t[4]=b,t[5]=r,t[6]=O):O=t[6];let ie=O,[k,ae]=(0,Z.useState)(null),[oe,A]=(0,Z.useState)(``),[se,j]=(0,Z.useState)(null),ce=(0,Z.useRef)(null),M=(0,Z.useRef)(!1),N=_!=null,P,F;t[7]===k?(P=t[8],F=t[9]):(P=()=>{k!=null&&(ce.current?.focus(),ce.current?.select())},F=[k],t[7]=k,t[8]=P,t[9]=F),(0,Z.useEffect)(P,F);let I,L;t[10]!==k||t[11]!==n?(I=()=>{k!=null&&!n.some(e=>e.id===k)&&(M.current=!1,ae(null),A(``))},L=[n,k],t[10]=k,t[11]=n,t[12]=I,t[13]=L):(I=t[12],L=t[13]),(0,Z.useEffect)(I,L);let le=function(e){N&&(M.current=!1,ae(e.id),A(e.label))},R;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(R=function(e){let t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;queueMicrotask(()=>{document.querySelector(`[role="tab"][data-tab-id="${t}"]`)?.focus()})},t[14]=R):R=t[14];let ue=R,B=function(e){M.current||_?.(e,oe.trim()),M.current=!1,ae(null),A(``),ue(e)},V=(0,Z.useRef)(null),H=(0,Z.useRef)(null),[fe,pe]=(0,Z.useState)(null),me;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(me={activationConstraint:{distance:8}},t[15]=me):me=t[15];let W=tt(nt(et,me)),he=v!=null,G;t[16]===fe?G=t[17]:(G=de(fe),t[16]=fe,t[17]=G);let ve;t[18]===G?ve=t[19]:(ve=[G],t[18]=G,t[19]=ve);let ye=ve,be;t[20]!==o||t[21]!==n?(be=o===``?null:`${o}\u0000${n.map(bn).join(`\0`)}`,t[20]=o,t[21]=n,t[22]=be):be=t[22];let K=be,xe,Se;t[23]===K?(xe=t[24],Se=t[25]):(xe=()=>{if(K===null)return;let[e]=K.split(`\0`,1),t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;H.current?.querySelector(`[data-tab-id="${t}"]`)?.scrollIntoView({block:`nearest`,inline:`nearest`})},Se=[K],t[23]=K,t[24]=xe,t[25]=Se),(0,Z.useEffect)(xe,Se);let Ce;t[26]===y?Ce=t[27]:(Ce=function(){pe(U(V.current,mn)),y?.(!0)},t[26]=y,t[27]=Ce);let we=Ce,Te;t[28]!==y||t[29]!==v||t[30]!==n?(Te=function(e){pe(null),y?.(!1);let t=String(e.active.id),r=e.over?String(e.over.id):null;if(!r||t===r)return;let i=n.map(yn),a=i.indexOf(t),o=i.indexOf(r);a<0||o<0||a===o||v?.(rt(i,a,o))},t[28]=y,t[29]=v,t[30]=n,t[31]=Te):Te=t[31];let Ee=Te,De;t[32]===y?De=t[33]:(De=function(){pe(null),y?.(!1)},t[32]=y,t[33]=De);let Oe=De,ke=xt,Ae;t[34]===ne?Ae=t[35]:(Ae=l(`flex min-h-0 min-w-0 flex-1 flex-col`,ne),t[34]=ne,t[35]=Ae);let je=gn,Me=C?``:void 0,Ne=T&&x&&`pr-9`,Pe=C&&`h-[62px] [-webkit-app-region:drag] pr-[22px] pl-[calc(var(--ok-titlebar-reserve-left,1rem)+0.75rem)]`,Fe;t[36]!==Ne||t[37]!==Pe?(Fe=l(`flex shrink-0 flex-row items-center gap-1 px-1.5 py-1`,Ne,Pe),t[36]=Ne,t[37]=Pe,t[38]=Fe):Fe=t[38];let Re=at,ze=z,Be;t[39]===Symbol.for(`react.memo_cache_sentinel`)?(Be={container:typeof document<`u`?document.body:void 0},t[39]=Be):Be=t[39];let Ve=ot,He;t[40]===n?He=t[41]:(He=n.map(vn),t[40]=n,t[41]=He);let Ue=it,q=ge,We=C&&`[-webkit-app-region:no-drag]`,Ge;t[42]===We?Ge=t[43]:(Ge=l(`grid h-auto w-fit max-w-full min-w-0 grid-flow-col items-center justify-start gap-0.5 overflow-x-auto overflow-y-hidden [grid-auto-columns:max-content] [scrollbar-width:none] scroll-fade-mask-x`,We),t[42]=We,t[43]=Ge);let Ke;t[44]!==w||t[45]!==r?(Ke=w(r===`agent`?{id:`GjsGAu`}:{id:`1MGRQl`}),t[44]=w,t[45]=r,t[46]=Ke):Ke=t[46];let qe=n.map((e,t)=>{let n=e.id===o,r=k===e.id;return(0,Q.jsx)(hn,{id:e.id,disabled:!he||k!=null,children:i=>{let{setNodeRef:a,listeners:o,style:s}=i;return(0,Q.jsxs)(m,{children:[(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsxs)(vt,{ref:a,value:e.id,"data-terminal-tab-sortable":``,"data-tab-id":e.id,style:{...s,gridColumn:t+1,gridRow:1},...o,onMouseEnter:()=>j(e.id),onMouseLeave:()=>j(null),onClick:t=>{t.detail>=2||c?.(e.id)},onDoubleClick:()=>le(e),onKeyDown:t=>{t.key===`F2`&&(t.preventDefault(),le(e))},className:l(`h-7 flex-none gap-1.5 rounded-md py-0 pr-7 pl-2 text-xs transition-colors motion-reduce:transition-none`,n?`bg-muted`:`hover:bg-muted/50`,r&&`w-40 opacity-0`,C&&`[-webkit-app-region:no-drag]`),children:[e.icon,(0,Q.jsx)(`span`,{className:`max-w-40 truncate`,children:e.label})]})}),(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:e.label})]})}},e.id)}),Je;t[47]!==Ke||t[48]!==qe?(Je=(0,Q.jsx)(bt,{ref:H,variant:`line`,"aria-label":Ke,className:`contents`,children:qe}),t[47]=Ke,t[48]=qe,t[49]=Je):Je=t[49];let Ye=n.map((e,t)=>{let n=e.id===o;return k===e.id?(0,Q.jsx)(ut,{style:{gridColumn:t+1,gridRow:1},className:l(`z-20 h-7 w-40 rounded-md border-0 bg-transparent dark:bg-transparent`,C&&`[-webkit-app-region:no-drag]`),children:(0,Q.jsx)(st,{ref:ce,value:oe,"aria-label":w({id:`0TnCvC`,values:{0:e.label}}),"data-testid":`terminal-tab-rename-input`,className:`h-7 px-2 text-xs`,onChange:e=>A(e.target.value),onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),ce.current?.blur()):e.key===`Escape`&&(e.preventDefault(),M.current=!0,ce.current?.blur())},onBlur:()=>B(e.id)})},e.id):(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":w({id:`nzHlj8`,values:{0:e.label}}),tabIndex:n?0:-1,style:{gridColumn:t+1,gridRow:1},className:l(`z-20 mr-0.5 justify-self-end text-muted-foreground opacity-0 transition-opacity hover:text-foreground hover:opacity-100 focus-visible:opacity-100`,(n||se===e.id)&&`opacity-100`,fe!=null&&`pointer-events-none opacity-0`,C&&`[-webkit-app-region:no-drag]`),onMouseEnter:()=>j(e.id),onMouseLeave:()=>j(null),onClick:t=>{t.stopPropagation(),g(e.id)},children:(0,Q.jsx)(J,{"aria-hidden":`true`})},e.id)}),Y;t[50]===Ye?Y=t[51]:(Y=(0,Q.jsx)(`div`,{className:`contents`,children:Ye}),t[50]=Ye,t[51]=Y);let X;t[52]!==q||t[53]!==Ge||t[54]!==Je||t[55]!==Y?(X=(0,Q.jsxs)(`div`,{onWheel:q,className:Ge,children:[Je,Y]}),t[52]=q,t[53]=Ge,t[54]=Je,t[55]=Y,t[56]=X):X=t[56];let Xe;t[57]!==Ve||t[58]!==He||t[59]!==Ue||t[60]!==X?(Xe=(0,Q.jsx)(Ve,{items:He,strategy:Ue,children:X}),t[57]=Ve,t[58]=He,t[59]=Ue,t[60]=X,t[61]=Xe):Xe=t[61];let Ze;t[62]!==Re||t[63]!==Oe||t[64]!==Ee||t[65]!==we||t[66]!==ye||t[67]!==W||t[68]!==!1||t[69]!==ze||t[70]!==Be||t[71]!==Xe?(Ze=(0,Q.jsx)(Re,{sensors:W,autoScroll:!1,collisionDetection:ze,modifiers:ye,onDragStart:we,onDragEnd:Ee,onDragCancel:Oe,accessibility:Be,children:Xe}),t[62]=Re,t[63]=Oe,t[64]=Ee,t[65]=we,t[66]=ye,t[67]=W,t[68]=!1,t[69]=ze,t[70]=Be,t[71]=Xe,t[72]=Ze):Ze=t[72];let Qe;t[73]!==C||t[74]!==u?(Qe=u==null?null:(0,Q.jsx)(`div`,{className:l(`shrink-0`,C&&`[-webkit-app-region:no-drag]`),children:u}),t[73]=C,t[74]=u,t[75]=Qe):Qe=t[75];let $e;t[76]===Symbol.for(`react.memo_cache_sentinel`)?($e=(0,Q.jsx)(`div`,{className:`flex-1`}),t[76]=$e):$e=t[76];let ct;t[77]!==C||t[78]!==h?(ct=h==null?null:(0,Q.jsx)(`div`,{className:l(`shrink-0`,C&&`[-webkit-app-region:no-drag]`),children:h}),t[77]=C,t[78]=h,t[79]=ct):ct=t[79];let lt;t[80]!==ee||t[81]!==b||t[82]!==D||t[83]!==re||t[84]!==T||t[85]!==r?(lt=r===`terminal`&&ee!=null&&b!=null?(0,Q.jsxs)(m,{children:[(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":D,className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,onClick:()=>b(re),children:T?(0,Q.jsx)(Ot,{"aria-hidden":`true`}):(0,Q.jsx)(_e,{"aria-hidden":`true`})})}),(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:D})]}):null,t[80]=ee,t[81]=b,t[82]=D,t[83]=re,t[84]=T,t[85]=r,t[86]=lt):lt=t[86];let dt;t[87]!==w||t[88]!==te||t[89]!==T||t[90]!==r?(dt=te==null?null:(0,Q.jsxs)(m,{children:[(0,Q.jsx)(f,{asChild:!0,children:(0,Q.jsx)(d,{type:`button`,variant:`ghost`,size:`icon-xs`,"aria-label":w(r===`terminal`?{id:`MU_NVW`}:{id:`g5V4_P`}),className:`shrink-0 cursor-pointer text-muted-foreground hover:text-foreground`,onClick:te,children:T?(0,Q.jsx)(Le,{"aria-hidden":`true`}):(0,Q.jsx)(Ie,{"aria-hidden":`true`})})}),(0,Q.jsx)(p,{side:`bottom`,sideOffset:8,children:r===`terminal`?(0,Q.jsx)(i,{id:`MU_NVW`}):(0,Q.jsx)(i,{id:`g5V4_P`})})]}),t[87]=w,t[88]=te,t[89]=T,t[90]=r,t[91]=dt):dt=t[91];let ft;t[92]!==Me||t[93]!==Fe||t[94]!==Ze||t[95]!==Qe||t[96]!==ct||t[97]!==lt||t[98]!==dt?(ft=(0,Q.jsxs)(`div`,{ref:V,"data-terminal-tab-row":``,"data-electron-drag":Me,className:Fe,children:[Ze,Qe,$e,ct,lt,dt]}),t[92]=Me,t[93]=Fe,t[94]=Ze,t[95]=Qe,t[96]=ct,t[97]=lt,t[98]=dt,t[99]=ft):ft=t[99];let pt;t[100]!==je||t[101]!==ie||t[102]!==ft?(pt=(0,Q.jsx)(je,{onMoveRight:ie,children:ft}),t[100]=je,t[101]=ie,t[102]=ft,t[103]=pt):pt=t[103];let mt;return t[104]!==ke||t[105]!==o||t[106]!==S||t[107]!==s||t[108]!==Ae||t[109]!==pt?(mt=(0,Q.jsxs)(ke,{value:o,onValueChange:s,className:Ae,children:[pt,S]}),t[104]=ke,t[105]=o,t[106]=S,t[107]=s,t[108]=Ae,t[109]=pt,t[110]=mt):mt=t[110],mt}function vn(e){return e.id}function yn(e){return e.id}function bn(e){return e.id}var xn=(0,Z.lazy)(()=>t(()=>import(`./ThreadView-xKwOcttM.js`).then(e=>({default:e.ThreadView})),__vite__mapDeps([72,1,3,2,4,5,6,7,8,9,31,10,11,12,73,33,14,34,44,45,46,40,36,16,17,15,74,75,76,77,78,79,80,81,82,83,84,85,86,21,87,88,89,90,68,69,91,92,93,56,37,39,19,41,94,95,35,96,97,98,99,100,27,26,28,101,70,102,103,104,13,105,106,107,18,63,20,58,108,109,110,111,112,113,114,48,23,42,115,116,50,117,25,62,118,119,120,121,122,123,124,125,126,127,24,128,129,130,131,132,59,53,54,55,57,133,65,134,135,136,137,138,139,61,140,141,142,143,144,145,146,147]),import.meta.url));function Sn(e,t){if(t.length!==e.length)return null;let n=new Map(e.map(e=>[e.id,e])),r=[];for(let e of t){let t=n.get(e);if(t==null)return null;r.push(t)}return r.every((t,n)=>t===e[n])?null:r}function Cn(e){return`terminal-session-${e}`}function wn(e){return typeof CSS<`u`&&CSS.escape?CSS.escape(e):e}function Tn(e){return`[data-terminal-session="${wn(e)}"] .xterm-helper-textarea`}function En(e){return`[data-session-id="${wn(e)}"] [data-testid="agent-thread-composer"]`}function Dn(e){if(e===``)return!1;let t=document.querySelector(Tn(e));return t?.focus(),t!=null&&document.activeElement===t}function On(e){let t=typeof CSS<`u`&&CSS.escape?CSS.escape(e):e;return document.querySelector(`[role="tab"][data-tab-id="${t}"]`)}function kn(e){if(e===``)return!1;let t=document.querySelector(En(e));return t?.focus(),t!=null&&document.activeElement===t?!0:(On(e)?.focus(),!1)}function An(e){return e.kind===`terminal`?Dn(e.id):kn(e.id)}function jn(e){return e.kind===`thread`?On(e.id):null}function Mn(e){return e?.contains(document.activeElement)??!1}function Nn(e,t){return t||Mn(e)}function Pn(e){switch(e){case`running`:return`bg-amber-500 animate-pulse`;case`installing`:case`spawning`:case`authenticating`:return`bg-sky-500 animate-pulse`;case`auth_required`:case`awaiting_permission`:return`bg-amber-500`;case`ready`:return`bg-emerald-500`;case`error`:return`bg-red-500`;default:return`bg-muted-foreground`}}function Fn(){return(0,Q.jsx)(W,{className:`size-3.5 shrink-0 text-muted-foreground`,"aria-hidden":`true`})}var In=[`ring-violet-400/60`,`ring-fuchsia-400/60`,`ring-pink-400/60`,`ring-cyan-400/60`,`ring-teal-400/60`,`ring-lime-400/60`,`ring-yellow-400/60`,`ring-stone-400/60`];function Ln(e){let t=5381;for(let n=0;n<e.length;n++)t=(t<<5)+t+e.charCodeAt(n)>>>0;return In[t%In.length]??`ring-transparent`}function Rn(e){let t=(0,At.c)(12),{info:n,threadId:r}=e,i=_t(r),a;t[0]===r?a=t[1]:(a=l(`relative inline-flex shrink-0 rounded-full ring-1`,Ln(r)),t[0]=r,t[1]=a);let o=n?.agent.id??``,s=n?.agent.iconUrl,c;t[2]!==o||t[3]!==s?(c=(0,Q.jsx)(b,{agentId:o,iconUrl:s,className:`size-3.5`}),t[2]=o,t[3]=s,t[4]=c):c=t[4];let u;t[5]!==n||t[6]!==i?(u=n==null?null:(0,Q.jsx)(`span`,{className:l(`-right-0.5 -bottom-0.5 absolute size-1.5 rounded-full ring-1 ring-background`,Pn(n.status),i&&n.status===`ready`&&`animate-pulse`),"aria-hidden":`true`}),t[5]=n,t[6]=i,t[7]=u):u=t[7];let d;return t[8]!==a||t[9]!==c||t[10]!==u?(d=(0,Q.jsxs)(`span`,{className:a,children:[c,u]}),t[8]=a,t[9]=c,t[10]=u,t[11]=d):d=t[11],d}var zn=5e3,Bn={cli:!0,terminal:!0,desktop:!0};function Vn(e,t,n,r){let i=t===`always`||t===`if-panel-focused`&&document.getElementById(n)?.contains(document.activeElement)===!0;e(!1),i&&queueMicrotask(()=>r.current?.focus())}function Hn(e){let t=(0,At.c)(197),{bridge:n,terminalCapable:r,surface:i,terminalPlacement:o,onTerminalPlacementChange:s,reserveRightRevealTabGutter:c,terminalRestoreRevealNonce:d,visible:f,onVisibleChange:p,agentsVisibilityRestoreSettled:m,launch:h,commandLaunch:ee,threadLaunch:b,installedClis:E,container:D,isShowing:O,onRequestEditorFocus:k}=e,ae=r===void 0?!1:r,A=o===void 0?`bottom`:o,se=d===void 0?0:d,j=h===void 0?null:h,ce=ee===void 0?null:ee,M=b===void 0?null:b,{_:N}=a(),P=i===`terminal-window`,I=i===`agents-panel`,L=!I,z=L&&ae&&n?.terminal!=null,de=I?`right`:A,B=I?`agents`:`terminal`,H=I&&f,U=!P,pe=n?.platform===`darwin`?`mac`:n?.platform===`linux`||n?.platform===`win32`?`windowsLinux`:void 0,[W]=(0,Z.useState)(mr),ge,_e;t[0]!==D||t[1]!==W?(ge=()=>{W==null||D==null||W.parentElement!==D&&D.appendChild(W)},_e=[W,D],t[0]=D,t[1]=W,t[2]=ge,t[3]=_e):(ge=t[2],_e=t[3]),(0,Z.useLayoutEffect)(ge,_e);let[G,ve]=(0,Z.useState)(!1),{mode:ye,remeasure:be}=Gt(D,I),K=(0,Z.useId)(),we=(0,Z.useRef)(null),Me=(0,Z.useRef)(ye),Ne,Pe;t[4]!==ye||t[5]!==G||t[6]!==K?(Pe=()=>{let e=Me.current;Me.current=ye,G&&e===`docked`&&ye===`cover`&&Vn(ve,`if-panel-focused`,K,we)},Ne=[ye,G,K],t[4]=ye,t[5]=G,t[6]=K,t[7]=Ne,t[8]=Pe):(Ne=t[7],Pe=t[8]),(0,Z.useLayoutEffect)(Pe,Ne);let Fe=L&&typeof n?.terminal?.list==`function`,Ie=I&&typeof n?.terminal?.getDockState==`function`,Le=!Fe&&z&&f,Re;t[9]!==n?.terminal?.getDockState||t[10]!==Fe||t[11]!==Le||t[12]!==B||t[13]!==U?(Re=()=>Fe||!U||Le||typeof n?.terminal?.getDockState==`function`?null:ue(B),t[9]=n?.terminal?.getDockState,t[10]=Fe,t[11]=Le,t[12]=B,t[13]=U,t[14]=Re):Re=t[14];let[ze]=(0,Z.useState)(Re),Be;t[15]===ze?.order?Be=t[16]:(Be=ze?.order??[],t[15]=ze?.order,t[16]=Be);let Ve=(0,Z.useRef)(Be),He=(0,Z.useRef)(ze?.activeKey??null),Ue;t[17]!==Le||t[18]!==j?(Ue=()=>Le?[{kind:`terminal`,id:Cn(1),launch:j,commandId:null,title:null,customLabel:null,ordinal:1,adoptPtyId:null}]:[],t[17]=Le,t[18]=j,t[19]=Ue):Ue=t[19];let[q,We]=(0,Z.useState)(Ue),Ge;t[20]===Le?Ge=t[21]:(Ge=()=>Le?Cn(1):``,t[20]=Le,t[21]=Ge);let[J,Ke]=(0,Z.useState)(Ge),[qe,Je]=(0,Z.useState)(!Fe&&!Ie),Ye=(0,Z.useRef)(!1),Y=(0,Z.useRef)(J),X=(0,Z.useRef)(q),Xe=(0,Z.useRef)(+!!Le),Ze=(0,Z.useRef)(Le&&j?j.nonce:null),Qe=(0,Z.useRef)(null),$e=(0,Z.useRef)(null),et=(0,Z.useRef)(!1),tt=(0,Z.useRef)(!1),[nt,rt]=(0,Z.useState)(`idle`),it=(0,Z.useRef)(null),at=(0,Z.useRef)(null),ot=(0,Z.useRef)(null),st=(0,Z.useRef)(!1),ct=(0,Z.useRef)(!1),lt=(0,Z.useRef)(!1),ut=(0,Z.useRef)(!1),_t=(0,Z.useRef)(!1),vt=(0,Z.useRef)(!1),bt=(0,Z.useRef)(pr),xt=(0,Z.useRef)(null),Tt=(0,Z.useRef)(P?!1:f),Et=(0,Z.useRef)(se),Dt=(0,Z.useRef)(new Map),Ot=(0,Z.useRef)(0),$=ht(),jt=dt(),Pt=mt(),Ft=gt(),Lt;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(Lt=()=>{tt.current=!1,it.current=null,at.current=null,st.current=!1,rt(`idle`)},t[22]=Lt):Lt=t[22];let Rt;t[23]===Pt?Rt=t[24]:(Rt=[Pt],t[23]=Pt,t[24]=Rt),(0,Z.useEffect)(Lt,Rt);let zt,Bt;t[25]===nt?(zt=t[26],Bt=t[27]):(zt=()=>{if(!st.current||nt!==`failed`&&nt!==`deduped`)return;let e=window.requestAnimationFrame(()=>{st.current=!1,ot.current?.focus()});return()=>window.cancelAnimationFrame(e)},Bt=[nt],t[25]=nt,t[26]=zt,t[27]=Bt),(0,Z.useEffect)(zt,Bt);let Vt,Ht;t[28]!==G||t[29]!==K||t[30]!==I||t[31]!==f?(Vt=()=>{I&&!f&&G&&Vn(ve,`never`,K,we)},Ht=[G,K,I,f],t[28]=G,t[29]=K,t[30]=I,t[31]=f,t[32]=Vt,t[33]=Ht):(Vt=t[32],Ht=t[33]),(0,Z.useEffect)(Vt,Ht);let Ut=Ft===`connecting`||Ft===`closed`,Wt=ne(I),Kt=te(),qt=_(),Yt;t[34]===qt?Yt=t[35]:(Yt=e=>g(qt,e.source,e.id,!0,e.supported),t[34]=qt,t[35]=Yt);let Xt=Kt.filter(Yt),Zt=y(Xt,x()),Qt=new Set(Kt.map(fr)),en=S(Wt.data?.agents??[]).some(e=>!Qt.has(`${e.source}:${e.id}`)),tn;t[36]===Wt?tn=t[37]:(tn=()=>{Wt.refetch()},t[36]=Wt,t[37]=tn);let rn=tn,an=Wt.isError,on=!Wt.isLoading&&!en,sn;t[38]===$?sn=t[39]:(sn=$.filter(dr),t[38]=$,t[39]=sn);let cn=sn.length,un=new Map($.map(ur)),dn=new Set(un.keys()),fn=function(e){Qr(),He.current=null;let t=X.current.find(t=>t.kind===`thread`&&t.threadId===e);if(t!=null){Ke(t.id),queueMicrotask(()=>An(t));return}pt().openArchivedThread(e)},pn;t[40]===K?pn=t[41]:(pn=function(e){Vn(ve,e===`explicit`?`always`:`never`,K,we)},t[40]=K,t[41]=pn);let mn=pn,hn;t[42]===be?hn=t[43]:(hn=function(e){e&&be(),ve(e)},t[42]=be,t[43]=hn);let gn=hn,vn=function(){I&&G&&ye===`cover`&&Vn(ve,`never`,K,we)},yn=function(){return!U||!qe?!0:lt.current&&!ut.current?(vt.current||(vt.current=!0,console.warn(`[${I?`agents`:`terminal`}] dock persistence withheld: the restore did not complete, so the saved tab set is left untouched`)),!0):!1},bn=function(){if(yn())return;let e=Dt.current,t=X.current.map(t=>wr(t,e)).filter(lr),r=X.current.find(e=>e.id===Y.current),i=r==null?null:wr(r,e),a=Tr(X.current,Y.current);I?(oe(n,`agents`,{order:t,activeKey:i},a),F(n,f)):oe(n,`terminal`,{order:t,activeKey:i},a)},xn=function(e,t){if(t===null){Dt.current.delete(e),Rr(X.current,Y.current);return}Dt.current.set(e,t),Rr(X.current,Y.current);let r=X.current.find(t=>t.id===e);r!=null&&r.kind===`terminal`&&n?.terminal?.setMeta?.(t,{ordinal:r.ordinal,customLabel:r.customLabel}),bn()},wn=function(e,t,n){let r=t===void 0?null:t;n===`user`&&Qr(),He.current=null,Xe.current+=1;let i=Cn(Xe.current);We(t=>[...t,{kind:`terminal`,id:i,launch:e,commandId:r,title:null,customLabel:null,ordinal:Xe.current,adoptPtyId:null}]),Ke(i)},Tn=Ee(),En=$t(),On;t[44]===E?On=t[45]:(On=E??{},t[44]=E,t[45]=On);let Pn;t[46]===E?Pn=t[47]:(Pn=E??{},t[46]=E,t[47]=Pn);let In=De({sticky:Tn,effectiveThreadAgent:Zt,enabledClis:Te(qt,On),enabledDesktopTargets:[],installedClis:Pn,terminalAvailable:z,threadsAvailable:I,desktopSelectable:!1,preferBareTerminal:En,bareTerminalFallback:!0}),Ln=Ae(Tn),Hn=In.kind===`thread`?{kind:`agent`,agent:In.agent}:In.kind===`cli`?In.cli===Ln?{kind:`cli`,cli:In.cli}:{kind:`terminal`}:In.kind===`terminal`?{kind:`terminal`}:{kind:`agent`,agent:null},gr=function(e,t){Ot.current+=1,wn({prompt:null,cli:e,nonce:Ot.current},null,t)},xr=function(e){let{agent:t,prompt:n,docName:r,titleHint:i,stageDraft:a,attachments:o}=e,s=n===void 0?null:n,c=r===void 0?null:r,l=i===void 0?null:i,u=a===void 0?null:a,d=I&&X.current.length===0,f=it.current;return d&&(it.current=e,rt(`launching`)),St({source:t.source,id:t.id},s,c,l,u,o).then(t=>{if(t===`deduped`&&w.error(N({id:`eCOktA`})),!d||X.current.length>0||it.current!==e)return t;switch(t){case`failed`:return it.current=null,at.current=e,rt(`failed`),t;case`deduped`:return f===null?(it.current=null,at.current=e,rt(`deduped`)):(it.current=f,rt(`launching`)),t;case`started`:return t;default:return br(t)}})},Cr=function(){vn(),st.current=!0;let e=at.current;if(e===null){Dr();return}xr(e)};function Dr(){vn(),Hn.kind===`terminal`?wn(null,null,`user`):Hn.kind===`cli`?gr(Hn.cli,`user`):Hn.kind===`agent`&&Hn.agent!=null?xr({agent:Hn.agent}):T()}let Or=function(){return I?Hn.kind!==`agent`||Hn.agent==null?!1:(xr({agent:Hn.agent}),!0):(Hn.kind===`terminal`?wn(null,null,`restore-seed`):Hn.kind===`cli`&&gr(Hn.cli,`restore-seed`),!0)},kr;t[48]===E?kr=t[49]:(kr=E??{},t[48]=E,t[49]=kr);let Ar;t[50]===E?Ar=t[51]:(Ar=E??{},t[50]=E,t[51]=Ar);let jr=De({sticky:Tn,effectiveThreadAgent:Zt,enabledClis:Te(qt,kr),enabledDesktopTargets:[],installedClis:Ar,terminalAvailable:ae,threadsAvailable:!P,desktopSelectable:!1,preferBareTerminal:!1,bareTerminalFallback:!1}),Mr=De({sticky:Tn,effectiveThreadAgent:Zt,enabledClis:[],enabledDesktopTargets:[],installedClis:{},terminalAvailable:!1,threadsAvailable:I,desktopSelectable:!1,preferBareTerminal:!1,bareTerminalFallback:!1}),Nr;t[52]===E?Nr=t[53]:(Nr=E??{},t[52]=E,t[53]=Nr);let Pr;t[54]===E?Pr=t[55]:(Pr=E??{},t[54]=E,t[55]=Pr);let Fr=De({sticky:Tn,effectiveThreadAgent:Zt,enabledClis:Te(qt,Nr),enabledDesktopTargets:[],installedClis:Pr,terminalAvailable:ae,threadsAvailable:!P,desktopSelectable:!1,preferBareTerminal:En,bareTerminalFallback:!0}),Ir;t[56]!==I||t[57]!==P?(Ir=function(e){return P?!0:I?e===`thread`||e===`none`:e in Bn},t[56]=I,t[57]=P,t[58]=Ir):Ir=t[58];let Lr=Ir;function Rr(e,t){let r=e.find(e=>e.id===t);if(r==null){fe(B,null);return}if(r.kind===`thread`){let e=un.get(r.threadId);fe(B,{id:r.id,kind:`thread`,label:e?.agent.name??N({id:`bcm0pR`}),agentId:e?.agent.id??``,iconUrl:e?.agent.iconUrl});return}let i=Dt.current.get(r.id),a=r.launch?.cli;if(i==null||n?.terminal==null||a==null){fe(B,null);return}fe(B,{id:r.id,kind:`terminal`,label:C[a].displayName,cli:a})}let zr;t[59]!==J||t[60]!==$||t[61]!==q?(zr=[J,q,$],t[59]=J,t[60]=$,t[61]=q,t[62]=zr):zr=t[62],(0,Z.useEffect)(()=>{Rr(q,J)},zr);let Br=function(){vn(),f||p(!0)},Vr=function(e){let{text:t,newTab:r,submit:i,target:a}=e,o=a===`agents`?Mr:jr;if(a===`agents`){if(!I)return}else if(!Lr(o.kind))return;f||p(!0),vn();let s=Y.current,c=X.current.find(e=>e.id===s);if(!r&&c!=null){if(c.kind===`thread`){Ct(c.threadId,t),Br(),queueMicrotask(()=>An(c));return}let e=Dt.current.get(c.id),r=n?.terminal;if(e!=null&&r!=null&&c.launch?.cli!=null){r.input(e,t),Br(),queueMicrotask(()=>Dn(s));return}}if(o.kind===`thread`){let e={source:o.agent.source,id:o.agent.id};xr(i?{agent:e,prompt:t}:{agent:e,stageDraft:t})}else o.kind===`cli`?ke(t,o.cli,{stage:!i}):T()},Hr=function(e){vn(),Jt(!1),Se(Ce(e)),gr(e,`user`)},Ur=function(){vn(),Jt(!0),wn(null,null,`user`)},Wr=function(e){vn(),v(e),Jt(!1),Se(Oe(e)),xr({agent:e})},Gr;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(Gr=function(e,t){let n=t.trim()===``?null:t.trim();We(t=>t.some(t=>t.id===e&&t.kind===`terminal`&&t.title!==n)?t.map(t=>t.id===e&&t.kind===`terminal`?{...t,title:n}:t):t)},t[63]=Gr):Gr=t[63];let Kr=Gr,qr=function(e,t){let r=X.current.find(t=>t.id===e);if(r==null)return;if(r.kind===`thread`){pt().renameThread(r.threadId,t);return}let i=t.trim()===``?null:t.trim();We(t=>t.some(t=>t.id===e&&t.kind===`terminal`&&t.customLabel!==i)?t.map(t=>t.id===e&&t.kind===`terminal`?{...t,customLabel:i}:t):t);let a=Dt.current.get(e);a!=null&&n?.terminal?.setMeta?.(a,{customLabel:i})},Jr=function(e){return e.kind===`terminal`?e.customLabel??e.title??N({id:`OVjNeX`,values:{0:e.ordinal}}):un.get(e.threadId)?.title??N({id:`iEQQyu`})},Yr=(0,Z.useRef)(!1),Xr=(0,Z.useRef)(null),Zr=(0,Z.useRef)(null);function Qr(){vt.current&&console.warn(`[${I?`agents`:`terminal`}] dock persistence resumed: a user arrangement established the tab set the restore did not`),ut.current=!0,vt.current=!1}let $r=function(e){Sn(X.current,e)!=null&&Qr(),We(t=>Sn(t,e)??t);let t=e.map(e=>Dt.current.get(e)).filter(cr);t.length>0&&n?.terminal?.setOrder?.(t)},ei=function(e){let t=X.current,n=t.findIndex(e=>e.id===Y.current);if(n<0)return null;let r=n+e;if(r<0||r>=t.length)return null;let i=t.map(sr),[a]=i.splice(n,1);return i.splice(r,0,a),$r(i),{label:Jr(t[n]),position:r+1,total:t.length}},ti=function(){Lr(Fr.kind)&&(f||p(!0),Dr())},ni=(0,Z.useRef)(Qr),ri=(0,Z.useRef)(ei),ii=(0,Z.useRef)(wn),ai=(0,Z.useRef)(Or),oi=(0,Z.useRef)(xr),si=(0,Z.useRef)(Vr),ci=(0,Z.useRef)(Br),li=(0,Z.useRef)(ti),ui=function(e){let t=X.current,n=t.findIndex(t=>t.id===e);if(n===-1)return;Qr();let r=t[n],i=t.length===1;if(He.current=null,e===Y.current){let e=t[n-1]??t[n+1];Ke(e?.id??``),e!=null&&queueMicrotask(()=>An(e))}r.kind===`thread`?pt().closeThread(r.threadId):We(t.filter(t=>t.id!==e)),i&&(p(!1),k())},di=(0,Z.useRef)(or);(0,Z.useEffect)(()=>{bt.current=yn,ii.current=wn,ai.current=Or,oi.current=xr,si.current=Vr,ci.current=Br,li.current=ti,ni.current=Qr,ri.current=ei,Y.current=J,X.current=q,q.length>0&&(_t.current=!0),di.current=()=>{let e=X.current.find(e=>e.id===Y.current);if(e?.kind===`terminal`){ui(e.id);return}let t=[...X.current].reverse().find(ar);t!=null&&ui(t.id)}});let fi,pi;t[64]===q.length?(fi=t[65],pi=t[66]):(fi=()=>{q.length!==0&&(it.current=null,at.current=null,st.current=!1,rt(`idle`))},pi=[q.length],t[64]=q.length,t[65]=fi,t[66]=pi),(0,Z.useEffect)(fi,pi);let mi=ft(),hi;t[67]!==J||t[68]!==n||t[69]!==I||t[70]!==mi||t[71]!==H||t[72]!==U||t[73]!==qe||t[74]!==q?(hi=[q,J,U,n,qe,H,I,mi],t[67]=J,t[68]=n,t[69]=I,t[70]=mi,t[71]=H,t[72]=U,t[73]=qe,t[74]=q,t[75]=hi):hi=t[75],(0,Z.useEffect)(()=>{if(!U||!qe||bt.current())return;if(I&&q.length===0&&!_t.current&&(mi===null||mi.size>0)){F(n,H);return}let e=Dt.current,t=q.map(t=>wr(t,e)).filter(ir),r=q.find(e=>e.id===J),i=r==null?null:wr(r,e),a=Tr(q,J);I?(oe(n,`agents`,{order:t,activeKey:i},a),F(n,H)):oe(n,`terminal`,{order:t,activeKey:i},a)},hi);let gi;t[76]!==I||t[77]!==$?(gi=[$,I],t[76]=I,t[77]=$,t[78]=gi):gi=t[78],(0,Z.useEffect)(()=>{if(!I)return;let e=new Set($.map(rr)),t=X.current,n=new Set(t.filter(nr).map(tr)),r=[];for(let e of $)n.has(e.threadId)||(Xe.current+=1,r.push({kind:`thread`,id:e.threadId,threadId:e.threadId,ordinal:Xe.current}));let i=t.some(t=>t.kind===`thread`&&!e.has(t.threadId));r.length===0&&!i||We(t=>{let n=t.filter(t=>t.kind!==`thread`||e.has(t.threadId)),i=new Set(n.filter(er).map($n)),a=r.filter(e=>!i.has(e.threadId)),o=Dt.current,s=a.length>0?Er(n,a,Ve.current,e=>wr(e,o)):n;return s.length===t.length&&s.every((e,n)=>e===t[n])?t:s})},gi);let _i;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(_i=[],t[79]=_i):_i=t[79];let vi=(0,Z.useRef)(_i),yi,bi;t[80]!==I||t[81]!==$?(yi=()=>{if(!I)return;let e=$.map(Qn),t=vi.current;if(vi.current=e,He.current!=null)return;let n=e.filter(e=>!t.includes(e)),r=n[n.length-1];r!=null&&(Ke(r),queueMicrotask(()=>kn(r)))},bi=[$,I],t[80]=I,t[81]=$,t[82]=yi,t[83]=bi):(yi=t[82],bi=t[83]),(0,Z.useEffect)(yi,bi);let xi;t[84]===$?xi=t[85]:(xi=$.filter(Zn).map(Xn),t[84]=$,t[85]=xi);let Si=xi,Ci=(0,Z.useRef)(Si),wi,Ti;t[86]!==m||t[87]!==I||t[88]!==mi||t[89]!==Si||t[90]!==p||t[91]!==f?(wi=()=>{if(!I||!m)return;let e=Ci.current;Ci.current=Si;let t=Si.filter(t=>!e.includes(t));t.length===0||f||t.every(e=>mi?.has(e)===!0)||p(!0)},Ti=[Si,I,m,f,mi,p],t[86]=m,t[87]=I,t[88]=mi,t[89]=Si,t[90]=p,t[91]=f,t[92]=wi,t[93]=Ti):(wi=t[92],Ti=t[93]),(0,Z.useEffect)(wi,Ti);let Ei;t[94]!==J||t[95]!==q?(Ei=[q,J],t[94]=J,t[95]=q,t[96]=Ei):Ei=t[96],(0,Z.useEffect)(()=>{let e=He.current;if(e!=null){let t=Dt.current,n=q.find(n=>wr(n,t)===e);if(n!=null){He.current=null,Ke(n.id);return}if(q.some(e=>e.id===J))return}if(!(J!==``&&q.some(e=>e.id===J))){if(q.length===0){J!==``&&Ke(``);return}Ke(q[q.length-1].id)}},Ei),(0,Z.useEffect)(()=>{if(!qe)return;let e=Tt.current;if(Tt.current=f,j!=null&&j.nonce!==Ze.current){Ze.current=j.nonce,ii.current(j,null,`user`);return}if(ce!=null&&ce.nonce!==xt.current){xt.current=ce.nonce,ii.current(null,ce.id,`user`);return}let t=I&&M!=null&&M.nonce!==Qe.current,n=L&&se!==Et.current;if(n&&(Et.current=se),f&&!e&&q.length===0&&!t&&!(I&&wt())){if(n&&!ct.current)return;et.current=!ai.current();return}if(I&&f&&e&&!tt.current&&mi!==null){tt.current=!0,$.length===0&&q.length===0&&!t&&!wt()&&(et.current=!ai.current());return}if(et.current){if(!f||q.length>0||t){et.current=!1;return}I&&Zt===null||ai.current()&&(et.current=!1)}},[f,j,ce,M,q.length,qe,I,Zt,mi,$.length,L,se]);let Di;t[97]!==Zt||t[98]!==I||t[99]!==M?(Di=[M,I,Zt],t[97]=Zt,t[98]=I,t[99]=M,t[100]=Di):Di=t[100],(0,Z.useEffect)(()=>{if(!I||M==null||M.nonce===Qe.current)return;let e=M.agentId===``?null:{source:M.agentSource,id:M.agentId};if(e===null&&Zt!==null&&(e={source:Zt.source,id:Zt.id}),e===null){$e.current!==M.nonce&&($e.current=M.nonce,T());return}Qe.current=M.nonce,oi.current({agent:e,prompt:M.prompt,docName:M.docName,titleHint:M.titleHint,attachments:M.attachments??void 0})},Di);let Oi;t[101]!==n||t[102]!==L||t[103]!==B?(Oi=[n,L,B],t[101]=n,t[102]=L,t[103]=B,t[104]=Oi):Oi=t[104],(0,Z.useEffect)(()=>{if(!L||typeof n?.terminal?.list!=`function`||Ye.current)return;Ye.current=!0;let e=!1,t=!1,r=()=>{e||Je(!0)},i=window.setTimeout(()=>{t=!0,console.warn(`[terminal] dock restore exceeded its ${R}ms bound; cold-starting instead of waiting`),ct.current=!0,lt.current=!0,et.current=!0,r()},R),a=()=>{window.clearTimeout(i),t||r()};return(async()=>{try{let{sessionOrder:r,terminalSnapshot:i,failed:o}=await le(n,B);if(e||t)return;o&&(lt.current=!0),r!=null&&(Ve.current=r.order,He.current=r.activeKey);let s=null;try{s=await n.terminal.list()??[]}catch(e){let t=e;lt.current=!0,console.error(`[terminal] reload session list() failed; the surviving shells are unknown: ${String(t)}`)}if(e)return;if(t){let e=(s??[]).map(Yn);e.length>0&&console.warn(`[terminal] dock restore was abandoned before list() resolved; these PTYs stay running unadopted: ${e.join(`, `)}`);return}if(s!=null&&s.length>0){let e=Ve.current,t=t=>{let n=e.indexOf(t);return n===-1?1/0:n},n=s.map(Jn).sort((e,n)=>{let r=t(e.adoptPtyId),i=t(n.adoptPtyId);return r===i?0:r-i});Xe.current=Math.max(n.length,...n.map(qn)),We(n)}else if(s!=null&&i!=null&&i.tabs.length>0){let e=i.tabs.map(Kn);Xe.current=Math.max(e.length,...e.map(Gn)),He.current=null,We(e);let t=e.find(e=>e.ordinal===i?.activeOrdinal);t!=null&&Ke(t.id)}else s!=null&&(ct.current=!0,et.current=!0);window.setTimeout(()=>{e||(He.current=null)},9e3),a()}catch(e){let t=e;lt.current=!0,ct.current=!0,et.current=!0,console.error(`[terminal] dock rehydration failed; cold-starting: ${t instanceof Error?t.stack??t.message:String(t)}`),a()}})(),()=>{e=!0,t=!0,window.clearTimeout(i),Ye.current=!1,ct.current=!1,lt.current=!1,ut.current=!1,et.current=!1,vt.current=!1}},Oi);let ki,Ai;t[105]!==n||t[106]!==Fe||t[107]!==B||t[108]!==U?(ki=()=>{if(Fe||!U||typeof n?.terminal?.getDockState!=`function`)return;let e=!1,t=!1,r=()=>{e||Je(!0)},i=window.setTimeout(()=>{t=!0,console.warn(`[agents] dock order restore exceeded its ${R}ms bound; the saved tab set is left untouched`),lt.current=!0,r()},R);return le(n,B).then(n=>{let{sessionOrder:r,failed:i}=n;e||t||(i&&(lt.current=!0),r!=null&&(Ve.current=r.order,He.current===null&&(He.current=r.activeKey)))}).finally(()=>{window.clearTimeout(i),r()}),()=>{e=!0,window.clearTimeout(i),lt.current=!1,ut.current=!1,vt.current=!1}},Ai=[n,Fe,U,B],t[105]=n,t[106]=Fe,t[107]=B,t[108]=U,t[109]=ki,t[110]=Ai):(ki=t[109],Ai=t[110]),(0,Z.useEffect)(ki,Ai);let ji,Mi;t[111]===Fe?(ji=t[112],Mi=t[113]):(ji=()=>{if(Fe)return;let e=window.setTimeout(()=>{He.current=null},9e3);return()=>window.clearTimeout(e)},Mi=[Fe],t[111]=Fe,t[112]=ji,t[113]=Mi),(0,Z.useEffect)(ji,Mi);let Ni;t[114]!==I||t[115]!==z?(Ni=[z,I],t[114]=I,t[115]=z,t[116]=Ni):Ni=t[116],(0,Z.useEffect)(()=>{if(!(!z&&!I))return he(e=>si.current(e))},Ni);let Pi;t[117]===I?Pi=t[118]:(Pi=[I],t[117]=I,t[118]=Pi),(0,Z.useEffect)(()=>{if(I)return xe(e=>{let{threadIds:t}=e,n=Y.current,r=X.current.find(e=>e.id===n);r?.kind===`thread`&&(je(r.threadId,t),ci.current(),queueMicrotask(()=>An(r)))})},Pi);let Fi;t[119]===Symbol.for(`react.memo_cache_sentinel`)?(Fi=[],t[119]=Fi):Fi=t[119],(0,Z.useEffect)(()=>me(()=>li.current()),Fi);let Ii;t[120]!==L||t[121]!==P||t[122]!==z?(Ii=[P,L,z],t[120]=L,t[121]=P,t[122]=z,t[123]=Ii):Ii=t[123],(0,Z.useEffect)(()=>{if(L)return ie(e=>{e===`new-terminal`?z&&ii.current(null,null,`user`):(e===`kill-terminal`||e===`close-active-tab-or-window`&&P)&&di.current()})},Ii);let Li;t[124]!==W||t[125]!==P||t[126]!==pe?(Li=[W,P,pe],t[124]=W,t[125]=P,t[126]=pe,t[127]=Li):Li=t[127],(0,Z.useEffect)(()=>{let e=function(e){if(!re(e,pe)||e.altKey||e.shiftKey||!/^[1-9]$/.test(e.key)||!Nn(W,P)||u())return;let t=X.current[Number(e.key)-1];t!=null&&(e.preventDefault(),e.stopPropagation(),t.id!==Y.current&&ni.current(),Ke(t.id),queueMicrotask(()=>An(t)))};return window.addEventListener(`keydown`,e,{capture:!0}),()=>window.removeEventListener(`keydown`,e,{capture:!0})},Li);let Ri;t[128]!==N||t[129]!==W||t[130]!==P||t[131]!==pe?(Ri=[W,P,pe,N],t[128]=N,t[129]=W,t[130]=P,t[131]=pe,t[132]=Ri):Ri=t[132],(0,Z.useEffect)(()=>{let e=function(e){if(!re(e,pe)||!e.shiftKey||e.altKey)return;let t=e.key===`ArrowLeft`?-1:+(e.key===`ArrowRight`);if(t===0||!Nn(W,P)||u()||Yr.current)return;let n=e.target;if(n?.tagName===`INPUT`||n?.isContentEditable)return;let r=ri.current(t);if(r==null)return;e.preventDefault(),e.stopPropagation();let i=Y.current,a=X.current.find(e=>e.id===i);a!=null&&queueMicrotask(()=>An(a));let o=N({id:`CoHvYd`,values:{0:r.label,1:r.position,2:r.total}});Zr.current!=null&&window.clearTimeout(Zr.current),Zr.current=window.setTimeout(()=>{Zr.current=null,Xr.current!=null&&(Xr.current.textContent=o)},60)};return window.addEventListener(`keydown`,e,{capture:!0}),()=>{window.removeEventListener(`keydown`,e,{capture:!0}),Zr.current!=null&&(window.clearTimeout(Zr.current),Zr.current=null)}},Ri);let zi;t[133]!==n?.editor||t[134]!==L||t[135]!==q?(zi=()=>{if(!L)return;let e=q.some(Wn);V({terminalLive:e}),n?.editor.notifyViewMenuStateChanged({terminalLive:e})},t[133]=n?.editor,t[134]=L,t[135]=q,t[136]=zi):zi=t[136];let Bi;t[137]!==n||t[138]!==L||t[139]!==q?(Bi=[n,q,L],t[137]=n,t[138]=L,t[139]=q,t[140]=Bi):Bi=t[140],(0,Z.useEffect)(zi,Bi);let Vi=(0,Z.useRef)(!1),Hi,Ui;t[141]===W?(Hi=t[142],Ui=t[143]):(Hi=()=>{if(W==null)return;let e=()=>{Vi.current=Mn(W)};return document.addEventListener(`focusin`,e,!0),e(),()=>document.removeEventListener(`focusin`,e,!0)},Ui=[W],t[141]=W,t[142]=Hi,t[143]=Ui),(0,Z.useEffect)(Hi,Ui);let Wi,Gi;t[144]!==O||t[145]!==k||t[146]!==f?(Wi=()=>{O||f||Vi.current&&(Vi.current=!1,k())},Gi=[O,f,k],t[144]=O,t[145]=k,t[146]=f,t[147]=Wi,t[148]=Gi):(Wi=t[147],Gi=t[148]),(0,Z.useLayoutEffect)(Wi,Gi);let Ki;t[149]!==W||t[150]!==I||t[151]!==O?(Ki=[O,W,I],t[149]=W,t[150]=I,t[151]=O,t[152]=Ki):Ki=t[152],(0,Z.useEffect)(()=>{if(!O||W==null)return;let e=document.activeElement,t=X.current.find(e=>e.id===Y.current);if(t!=null&&An(t))return;let n=Mn(W),r=null,i=e=>{W.contains(e.target)&&(n=!0)},a=()=>{r=null;let t=X.current.find(e=>e.id===Y.current);if(t==null)return;let i=document.activeElement,a=jn(t);if(i!=null&&i!==document.body&&i!==e&&i!==a)return;let o=An(t);n=Mn(W)||n,o&&s.disconnect()},o=()=>{r===null&&(r=window.requestAnimationFrame(a))};document.addEventListener(`focusin`,i,!0);let s=new MutationObserver(()=>{a(),n||o()});s.observe(W,{subtree:!0,childList:!0}),o();let c=window.setTimeout(()=>{s.disconnect();let e=document.activeElement==null||document.activeElement===document.body,t=X.current.find(e=>e.id===Y.current);!n&&e&&t!=null&&console.warn(`[${I?`agents`:`terminal`}] reveal focus did not land within its ${zn}ms bound`)},zn);return()=>{document.removeEventListener(`focusin`,i,!0),s.disconnect(),r!=null&&window.cancelAnimationFrame(r),window.clearTimeout(c)}},Ki);let qi;if(t[153]!==J||t[154]!==q){let e;t[156]===J?e=t[157]:(e=e=>e.id===J,t[156]=J,t[157]=e),qi=q.find(e),t[153]=J,t[154]=q,t[155]=qi}else qi=t[155];let Ji=qi,Yi=Ji?.kind===`thread`?Ji.threadId:null,Xi=Yi===null?void 0:un.get(Yi),Zi=Xi?.lastActivityAt??null,Qi=Xi?.status??null,$i=I&&G&&ye===`cover`,ea;t[158]!==Yi||t[159]!==$i||t[160]!==O?(ea=()=>{!O||$i||Yi===null||pt().markThreadViewed(Yi)},t[158]=Yi,t[159]=$i,t[160]=O,t[161]=ea):ea=t[161];let ta;t[162]!==Zi||t[163]!==Yi||t[164]!==Qi||t[165]!==$i||t[166]!==O?(ta=[Yi,Zi,Qi,$i,O],t[162]=Zi,t[163]=Yi,t[164]=Qi,t[165]=$i,t[166]=O,t[167]=ta):ta=t[167],(0,Z.useEffect)(ea,ta);let na=q.map(e=>({id:e.id,label:Jr(e),icon:e.kind===`terminal`?Fn():(0,Q.jsx)(Rn,{info:un.get(e.threadId),threadId:e.threadId})})),ra=[...q].sort(Un),ia=Dr,aa;t[168]===E?aa=t[169]:(aa=E??{},t[168]=E,t[169]=aa);let oa;t[170]!==qt||t[171]!==aa?(oa=Te(qt,aa),t[170]=qt,t[171]=aa,t[172]=oa):oa=t[172];let sa=(0,Q.jsx)(ln,{selected:Hn,onLaunchSelected:ia,showAgents:I,registeredAgents:Xt,onPickAgent:Wr,onOpenSettings:T,liveThreadCount:cn,showClis:z,onPickCli:Hr,onPickTerminal:Ur,visibleClis:oa}),ca=I?(0,Q.jsx)(ln,{selected:Hn,onLaunchSelected:Dr,showAgents:!0,registeredAgents:Xt,onPickAgent:Wr,onOpenSettings:T,liveThreadCount:cn,showClis:z,onPickCli:Hr,onPickTerminal:Ur,visibleClis:Te(qt,E??{}),presentation:`panel`}):null,la;t[173]!==G||t[174]!==K||t[175]!==I||t[176]!==gn?(la=I?(0,Q.jsx)(Nt,{open:G,panelId:K,triggerRef:we,onOpenChange:gn}):null,t[173]=G,t[174]=K,t[175]=I,t[176]=gn,t[177]=la):la=t[177];let ua=la,da=q.length>0||f&&!P,fa;t[178]===Symbol.for(`react.memo_cache_sentinel`)?(fa=yr(),t[178]=fa):fa=t[178];let pa=fa,ma=pa??(mi===null||Zt===null&&!on?`loading`:Zt===null?an?`agents-unavailable`:`no-agents`:Sr(nt)),ha=I&&(q.length===0||pa!==null)?(0,Q.jsx)(vr,{state:ma,onConfigureAgents:T,onRetry:ma===`agents-unavailable`?rn:Cr,retryButtonRef:ot}):q.length===0?z?null:(0,Q.jsx)(_r,{}):ra.map(e=>(0,Q.jsx)(yt,{value:e.id,forceMount:!0,"data-session-id":e.id,...e.kind===`terminal`?{"data-terminal-session":e.id}:{},className:l(`m-0 flex min-h-0 flex-1 flex-col overflow-hidden data-[state=inactive]:hidden`,P&&`px-[22px] pb-[22px]`),children:e.kind===`terminal`?n!=null&&z?(0,Q.jsx)(nn,{bridge:n,launch:e.launch,commandId:e.commandId,adoptPtyId:e.adoptPtyId,onPtyId:t=>xn(e.id,t),onTitleChange:t=>Kr(e.id,t),onClose:()=>ui(e.id)}):null:(0,Q.jsx)(hr,{threadId:e.threadId,info:un.get(e.threadId),showConnectionBanner:Ut&&e.id===J,active:f&&!$i&&e.id===J})},e.id)),ga=G?(0,Q.jsx)(It,{threads:jt,openThreadIds:dn,activeThreadId:Yi,onSelectThread:fn,mode:ye,panelId:K,onDismiss:mn,newChatControl:ca}):null,_a;t[179]!==Y||t[180]!==Qr?(_a=e=>{e!==Y.current&&Qr(),He.current=null,Ke(e)},t[179]=Y,t[180]=Qr,t[181]=_a):_a=t[181];let va;t[182]===X?va=t[183]:(va=e=>{let t=X.current.find(t=>t.id===e);t!=null&&queueMicrotask(()=>An(t))},t[182]=X,t[183]=va);let ya;t[184]===Symbol.for(`react.memo_cache_sentinel`)?(ya=e=>{Yr.current=e},t[184]=ya):ya=t[184];let ba;t[185]!==P||t[186]!==k||t[187]!==p?(ba=P?void 0:()=>{p(!1),k()},t[185]=P,t[186]=k,t[187]=p,t[188]=ba):ba=t[188];let xa;t[189]!==I||t[190]!==ha?(xa=I?(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col overflow-hidden`,children:ha}):ha,t[189]=I,t[190]=ha,t[191]=xa):xa=t[191];let Sa=(0,Q.jsx)(_n,{sessions:na,sessionKind:I?`agent`:`terminal`,activeSessionId:J,onSelect:_a,onTabActivate:va,newButton:sa,trailingControls:ua,onClose:ui,onRename:qr,onReorder:$r,onDragActiveChange:ya,edge:de,onPlacementChange:i===`terminal-dock`?s:void 0,reserveRightRevealTabGutter:c,onCollapse:ba,draggable:P,className:`h-full`,children:xa}),Ca=da?I?(0,Q.jsx)(Mt,{scope:Pt,children:(0,Q.jsxs)(`div`,{className:`relative flex h-full min-h-0 min-w-0 overflow-hidden`,"data-testid":`agent-panel-layout`,children:[(0,Q.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,"data-testid":`agent-panel-session-surface`,inert:$i?!0:void 0,children:Sa}),G?(0,Q.jsx)(`div`,{className:l(`z-20 h-full max-w-full bg-background`,ye===`cover`?`absolute inset-0 w-full shadow-xl`:`w-(--history-panel-width) shrink-0 border-s`),style:{"--history-panel-width":`248px`},"data-testid":`agent-thread-history-surface`,children:ga}):null]})}):Sa:null,wa;t[192]!==W||t[193]!==Ca?(wa=W==null?null:(0,kt.createPortal)((0,Q.jsxs)(Q.Fragment,{children:[Ca,(0,Q.jsx)(`span`,{ref:Xr,"aria-live":`polite`,"aria-atomic":`true`,className:`sr-only`,"data-testid":`terminal-reorder-announcer`})]}),W),t[192]=W,t[193]=Ca,t[194]=wa):wa=t[194];let Ta;return t[195]===wa?Ta=t[196]:(Ta=(0,Q.jsx)(Q.Fragment,{children:wa}),t[195]=wa,t[196]=Ta),Ta}function Un(e,t){return e.ordinal-t.ordinal}function Wn(e){return e.kind===`terminal`}function Gn(e){return e.ordinal}function Kn(e,t){return{kind:`terminal`,commandId:null,id:Cn(t+1),launch:null,title:null,customLabel:e.customLabel,ordinal:e.ordinal,adoptPtyId:null}}function qn(e){return e.ordinal}function Jn(e,t){return{kind:`terminal`,commandId:null,id:Cn(t+1),launch:null,title:null,customLabel:e.customLabel??null,ordinal:e.ordinal??t+1,adoptPtyId:e.ptyId}}function Yn(e){return e.ptyId}function Xn(e){return e.threadId}function Zn(e){return e.archived!==!0}function Qn(e){return e.threadId}function $n(e){return e.threadId}function er(e){return e.kind===`thread`}function tr(e){return e.threadId}function nr(e){return e.kind===`thread`}function rr(e){return e.threadId}function ir(e){return e!=null}function ar(e){return e.kind===`terminal`}function or(){}function sr(e){return e.id}function cr(e){return e!=null}function lr(e){return e!=null}function ur(e){return[e.threadId,e]}function dr(e){return e.archived!==!0}function fr(e){return`${e.source}:${e.id}`}function pr(){return!1}function mr(){if(typeof document>`u`)return null;let e=document.createElement(`div`);return e.className=`flex min-h-0 flex-1 flex-col overflow-hidden`,e}function hr(e){let t=(0,At.c)(10),{threadId:n,info:r,showConnectionBanner:i,active:a}=e;if(r===void 0)return null;let o;t[0]===i?o=t[1]:(o=i?(0,Q.jsx)(gr,{}):null,t[0]=i,t[1]=o);let s;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Q.jsx)(`div`,{role:`status`,"aria-busy":`true`,className:`flex min-h-0 flex-1 items-center justify-center text-muted-foreground`,children:(0,Q.jsx)(We,{className:`size-5`,"aria-hidden":`true`})}),t[2]=s):s=t[2];let c;t[3]!==a||t[4]!==r||t[5]!==n?(c=(0,Q.jsx)(Z.Suspense,{fallback:s,children:(0,Q.jsx)(xn,{info:r,active:a},n)}),t[3]=a,t[4]=r,t[5]=n,t[6]=c):c=t[6];let l;return t[7]!==o||t[8]!==c?(l=(0,Q.jsxs)(Q.Fragment,{children:[o,c]}),t[7]=o,t[8]=c,t[9]=l):l=t[9],l}function gr(){let e=(0,At.c)(4),{_:t}=a(),n;e[0]===t?n=e[1]:(n=t({id:`k0dL2I`}),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,Q.jsx)(`div`,{className:`shrink-0 border-amber-500/30 border-b bg-amber-500/5 px-3 py-1 text-amber-700 text-xs dark:text-amber-400`,"data-testid":`agent-thread-reconnecting`,children:n}),e[2]=n,e[3]=r),r}function _r(){let e=(0,At.c)(4),{_:t}=a(),n;e[0]===t?n=e[1]:(n=t({id:`-l6jM7`}),e[0]=t,e[1]=n);let r;return e[2]===n?r=e[3]:(r=(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center px-6 text-center text-muted-foreground text-sm`,"data-testid":`sessions-dock-empty`,children:n}),e[2]=n,e[3]=r),r}function vr(e){let t=(0,At.c)(60),{state:n,onConfigureAgents:r,onRetry:i,retryButtonRef:o}=e,{_:s}=a(),c;bb0:switch(n){case`idle`:c=null;break bb0;case`loading`:case`starting`:{let e;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`span`,{"aria-hidden":`true`,children:(0,Q.jsx)(We,{className:`size-4`})}),t[0]=e):e=t[0];let r;t[1]!==s||t[2]!==n?(r=s(n===`loading`?{id:`ucXZ0k`}:{id:`l3zD7w`}),t[1]=s,t[2]=n,t[3]=r):r=t[3];let i;t[4]===r?i=t[5]:(i=(0,Q.jsxs)(`div`,{role:`status`,"aria-busy":`true`,className:`flex items-center gap-2`,"data-testid":`sessions-dock-loading`,children:[e,(0,Q.jsx)(`span`,{children:r})]}),t[4]=r,t[5]=i),c=i;break bb0}case`no-agents`:{let e;t[6]===s?e=t[7]:(e=s({id:`jAQCRf`}),t[6]=s,t[7]=e);let n;t[8]===e?n=t[9]:(n=(0,Q.jsx)(`p`,{children:e}),t[8]=e,t[9]=n);let i;t[10]===s?i=t[11]:(i=s({id:`jRAGrQ`}),t[10]=s,t[11]=i);let a;t[12]!==r||t[13]!==i?(a=(0,Q.jsx)(d,{type:`button`,size:`sm`,onClick:r,children:i}),t[12]=r,t[13]=i,t[14]=a):a=t[14];let o;t[15]!==n||t[16]!==a?(o=(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,"data-testid":`sessions-dock-no-agents`,children:[n,a]}),t[15]=n,t[16]=a,t[17]=o):o=t[17],c=o;break bb0}case`agents-unavailable`:{let e;t[18]===s?e=t[19]:(e=s({id:`Jrwm42`}),t[18]=s,t[19]=e);let n;t[20]===e?n=t[21]:(n=(0,Q.jsx)(`p`,{children:e}),t[20]=e,t[21]=n);let r;t[22]===s?r=t[23]:(r=s({id:`KDw4GX`}),t[22]=s,t[23]=r);let a;t[24]!==i||t[25]!==r?(a=(0,Q.jsx)(d,{type:`button`,size:`sm`,onClick:i,children:r}),t[24]=i,t[25]=r,t[26]=a):a=t[26];let o;t[27]!==n||t[28]!==a?(o=(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,"data-testid":`sessions-dock-agents-unavailable`,children:[n,a]}),t[27]=n,t[28]=a,t[29]=o):o=t[29],c=o;break bb0}case`failed`:{let e;t[30]===s?e=t[31]:(e=s({id:`WC8Mr6`}),t[30]=s,t[31]=e);let n;t[32]===e?n=t[33]:(n=(0,Q.jsx)(`p`,{children:e}),t[32]=e,t[33]=n);let r;t[34]===s?r=t[35]:(r=s({id:`KDw4GX`}),t[34]=s,t[35]=r);let a;t[36]!==i||t[37]!==o||t[38]!==r?(a=(0,Q.jsx)(d,{ref:o,type:`button`,size:`sm`,onClick:i,children:r}),t[36]=i,t[37]=o,t[38]=r,t[39]=a):a=t[39];let l;t[40]!==n||t[41]!==a?(l=(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,"data-testid":`sessions-dock-launch-failed`,children:[n,a]}),t[40]=n,t[41]=a,t[42]=l):l=t[42],c=l;break bb0}case`deduped`:{let e;t[43]===s?e=t[44]:(e=s({id:`eCOktA`}),t[43]=s,t[44]=e);let n;t[45]===e?n=t[46]:(n=(0,Q.jsx)(`p`,{children:e}),t[45]=e,t[46]=n);let r;t[47]===s?r=t[48]:(r=s({id:`KDw4GX`}),t[47]=s,t[48]=r);let a;t[49]!==i||t[50]!==o||t[51]!==r?(a=(0,Q.jsx)(d,{ref:o,type:`button`,size:`sm`,onClick:i,children:r}),t[49]=i,t[50]=o,t[51]=r,t[52]=a):a=t[52];let l;t[53]!==n||t[54]!==a?(l=(0,Q.jsxs)(`div`,{className:`flex flex-col items-center gap-2`,"data-testid":`sessions-dock-launch-deduped`,children:[n,a]}),t[53]=n,t[54]=a,t[55]=l):l=t[55],c=l;break bb0}default:{let e;t[56]===n?e=t[57]:(e=xr(n),t[56]=n,t[57]=e),c=e}}let l;return t[58]===c?l=t[59]:(l=(0,Q.jsx)(`div`,{className:`flex min-h-0 flex-1 items-center justify-center px-6 text-center text-muted-foreground text-sm`,"data-testid":`sessions-dock-empty`,children:c}),t[58]=c,t[59]=l),l}function yr(){return null}function br(e){throw Error(`unhandled thread launch outcome: ${String(e)}`)}function xr(e){throw Error(`unhandled empty agent state: ${String(e)}`)}function Sr(e){switch(e){case`idle`:return`idle`;case`launching`:return`starting`;case`deduped`:return`deduped`;case`failed`:return`failed`;default:return Cr(e)}}function Cr(e){throw Error(`unhandled empty agent launch state: ${String(e)}`)}function wr(e,t){return e.kind===`thread`?e.threadId:e.adoptPtyId??t.get(e.id)??null}function Tr(e,t){let n=e.filter(e=>e.kind===`terminal`),r=n.find(e=>e.id===t);return{tabs:n.map(e=>({ordinal:e.ordinal,customLabel:e.customLabel})),activeOrdinal:r?.ordinal??null}}function Er(e,t,n,r){let i=e=>{let t=r(e);if(t==null)return 1/0;let i=n.indexOf(t);return i===-1?1/0:i},a=[...e];for(let e of t){let t=i(e);if(t===1/0){a.push(e);continue}let n=a.length;for(let e=0;e<a.length;e++)if(i(a[e])>t){n=e;break}a.splice(n,0,e)}return a}export{Hn as SessionsHost};
|