@supanadit/morse-web 0.14.0 → 0.14.1
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/server.mjs +13 -8
- package/dist/server.mjs.map +2 -2
- package/dist/ui/{chunk-CwVAC7xx.js → chunk-BDxa4PZ6.js} +1 -1
- package/dist/ui/{chunk-Dk_j780x.js → chunk-BLn-qnxQ.js} +1 -1
- package/dist/ui/{chunk-veepV9dF.js → chunk-fviAHFag.js} +1 -1
- package/dist/ui/index.html +1 -1
- package/dist/ui/{main-L3KG4R7V.js → main-YPK6Y6LK.js} +3 -3
- package/dist/ui/webview.manifest.json +2 -2
- package/package.json +1 -1
|
@@ -26,8 +26,8 @@ ${s}`}var nr=class{messageListeners=new Set;statusListeners=new Set;onMessage(e)
|
|
|
26
26
|
|
|
27
27
|
This response is produced in the browser, with no pi process and no server, so you can iterate on the frontend (or a new frontend framework) freely.`,r$10=this.nextId(`assistant`);this.schedule(()=>{this.appendItem({kind:`assistant`,id:r$10,at:Date.now(),text:``,thinking:``,streaming:!0,model:this.state.model?.name})},t),t+=40;for(let s of cw(o)){let a=s;this.schedule(()=>{this.emit({type:`transcript/delta`,payload:{id:r$10,text:a}})},t),t+=55}this.schedule(()=>{this.streaming=!1,this.updateItem({kind:`assistant`,id:r$10,at:Date.now(),text:o,thinking:``,streaming:!1,model:this.state.model?.name}),this.emit({type:`session/state`,payload:s(r({},this.state),{streaming:!1})}),this.emitActivity()},t+80)}appendItem(e){this.items=[...this.items,e],this.emit({type:`transcript/append`,payload:e})}updateItem(e){this.items=this.items.map(t=>t.id===e.id?e:t),this.emit({type:`transcript/update`,payload:e})}abortRun(){for(let e of this.timers)clearTimeout(e);this.timers.clear(),this.streaming&&(this.streaming=!1,this.emitActivity())}notify(e,t){this.emit({type:`notice`,payload:{level:e,text:t,at:Date.now()}})}schedule(e,t){let i=setTimeout(()=>{this.timers.delete(i),this.disposed||e()},t);this.timers.add(i)}nextId(e){return this.counter+=1,`mock-${e}-${this.counter}`}emitActivity(){let e=this.sessions.filter(t=>this.hot.has(t.id)).slice(0,4).map(t=>({sessionKey:t.id,streaming:this.streaming,busy:!1,agentReady:!0,agentStarting:!1}));this.emit({type:`session/activity`,payload:{sessions:e}})}emit(e){this.emitMessage(e)}};var QA={isRepo:!0,root:`/mock/workspace`,branch:`main`,commits:[_a(`f1a2b3c4`,`Add the git panel to the browser host`,[`e2f3a4b5`],[`HEAD -> main`],2),_a(`e2f3a4b5`,`Merge branch feature/graph`,[`d3e4f5a6`,`c4d5e6f7`],[`origin/main`],5),_a(`d3e4f5a6`,`Wire the graph lanes`,[`b5c6d7e8`],[],8),_a(`c4d5e6f7`,`Fix the lane colours in light mode`,[`b5c6d7e8`],[],11),_a(`b5c6d7e8`,`Bump the protocol version`,[`a6b7c8d9`],[`tag: v0.8.0`],26),_a(`a6b7c8d9`,`Initial commit`,[],[],52)]};function _a(n,e,t,i,o){return{hash:n,shortHash:n.slice(0,7),parents:t,refs:i,author:`Morse Dev`,date:new Date(Date.now()-o*36e5).toISOString(),subject:e}}var XA={isRepo:!0,files:[{path:`README.md`,status:` M`},{path:`package.json`,status:` M`},{path:`packages/protocol/src/wire.ts`,status:`A `},{path:`packages/ui-angular/src/app/core/markdown.ts`,status:`??`}]};var lw=[`diff --git a/README.md b/README.md`,`index 1111111..2222222 100644`,`--- a/README.md`,`+++ b/README.md`,`@@ -1,4 +1,5 @@`,` # Morse`,` `,`-An old line`,`+A new line`,`+A line that was added`,` A line that stayed`,``].join(`
|
|
28
28
|
`);var JA=[`AGENTS.md`,`README.md`,`package.json`,`packages/core/src/chat/service.ts`,`packages/core/src/domain.ts`,`packages/core/src/session/service.ts`,`packages/host-runtime/src/session-controller.ts`,`packages/protocol/src/wire.ts`,`packages/ui-angular/src/app/app.ts`,`packages/ui-angular/src/app/chat/chat-composer/chat-composer.ts`,`packages/ui-angular/src/app/core/markdown.ts`,`packages/ui-runtime/src/client.ts`];var eR={"/mock":[{name:`home`,path:`/mock/home`},{name:`projects`,path:`/mock/projects`},{name:`workspace`,path:`/mock/workspace`}],"/mock/home":[{name:`projects`,path:`/mock/home/projects`}],"/mock/home/projects":[],"/mock/projects":[{name:`morse`,path:`/mock/projects/morse`},{name:`other`,path:`/mock/projects/other`}],"/mock/projects/morse":[{name:`packages`,path:`/mock/projects/morse/packages`}],"/mock/projects/other":[],"/mock/projects/morse/packages":[],"/mock/workspace":[]};function tR(n){let e=typeof n==`string`&&n.trim().length>0?n.trim():va.cwd;return{path:e,parent:e===`/mock`?void 0:e.slice(0,e.lastIndexOf(`/`))||`/`,directories:eR[e]??[],isGitRepo:e===`/mock/projects/morse`,canOpen:!0,roots:[{name:`mock`,path:`/mock`},{name:`workspace`,path:va.cwd}]}}function cw(n){return n.match(/.{1,14}/g)??[]}function uw(){return typeof location>`u`?!1:new URL(location.href).searchParams.get(`scope`)===`workspace`}function nR(){return typeof location>`u`?!1:new URL(location.href).searchParams.get(`empty`)===`1`}function pw(){let n=Date.now(),e=[{id:`/mock/morse/2026-01-01_ui-overhaul.jsonl`,title:`Sidebar overhaul: projects, sessions, composer`,cwd:va.cwd,updatedAt:n-6e4,messageCount:12},{id:`/mock/morse/2026-01-01_scrollbar.jsonl`,title:`Improve native scrollbar: compact and themed`,cwd:va.cwd,updatedAt:n-42e4,messageCount:6}];return uw()?e:[...e,{id:`/mock/morse/2026-01-01_providers.jsonl`,title:`Add provider picker with context sizes`,cwd:`/mock/morse`,updatedAt:n-12e5,messageCount:24},{id:`/mock/morse/2026-01-01_greeting.jsonl`,title:`Greeting`,cwd:`/mock/morse`,updatedAt:n-108e5,messageCount:2},{id:`/mock/eigen-morph/2026-01-01_manifest.jsonl`,title:`Manifest report-worker untuk production`,cwd:`/mock/eigen-morph`,updatedAt:n-936e5,messageCount:31}]}function dw(){let n=new Map;for(let e of pw()){let t=n.get(e.cwd);if(t){t.sessionCount+=1,t.lastUsedAt=Math.max(t.lastUsedAt,e.updatedAt);continue}n.set(e.cwd,{path:e.cwd,name:e.cwd.split(`/`).filter(Boolean).at(-1)??e.cwd,sessionCount:1,lastUsedAt:e.updatedAt})}return[...n.values()].sort((e,t)=>t.lastUsedAt-e.lastUsedAt)}function iR(){let n=Date.now(),e=[`Plan:`,``,`1. **Navigation** — projects → sessions, collapsible, with a session search and a project filter.`,"2. **Header** — session title, scope, status badge, `Compact`, and the sidebar fold.",`3. **Composer** — model + thinking + send in one control row.`,``,`Two shapes, because the hosts differ: the browser host is *global* (many projects), VS Code is scoped to the folders it has open.`,``,"```ts",`export class SessionNav {`,` protected readonly scope = computed(() => this.morse.capabilities()?.scope ?? 'global');`,``,` protected readonly groups = computed(() => {`,` return this.scope() === "global"`,` ? this.projects().map((project) => ({ ... }))`,` : [{ path: this.workspace().cwd, name: this.workspace().name, sessions }];`,` });`,`}`,"```",``,`And a small overview of what each scope renders:`,``,`| Host | Scope | Navigation shape |`,`|---|---|---|`,"| NestJS browser | `global` | projects → sessions |","| VS Code | `workspace` | one group (open folders) |",``,"See `docs/FRONTENDS.md` for the rule that frontends must read capabilities instead of guessing."].join(`
|
|
29
|
-
`);return[{kind:`user`,id:`mock-seed-user-1`,at:n-15e4,text:`Refactor the sidebar to match the reference, make it responsive, and render markdown properly.`},{kind:`tool`,id:`mock-seed-tool-1`,at:n-14e4,name:`bash`,title:`bash: ls packages/ui-angular/src/app`,status:`ok`,output:`app.css app.html app.ts chat/ core/ nav/`,durationMs:12},{kind:`tool`,id:`mock-seed-tool-2`,at:n-138e3,name:`read`,title:`read: packages/ui-angular/src/app/app.css`,status:`ok`,output:`42 lines, 4 media queries`,durationMs:8},{kind:`tool`,id:`mock-seed-tool-3`,at:n-13e4,name:`edit`,title:`edit: packages/ui-angular/src/app/nav/session-nav.ts`,status:`ok`,output:`+26 -7`,durationMs:190},{kind:`tool`,id:`mock-seed-tool-4`,at:n-128e3,name:`edit`,title:`edit: packages/ui-angular/src/app/app.css`,status:`ok`,output:`+18 -4`,durationMs:140},{kind:`tool`,id:`mock-seed-tool-5`,at:n-1800,name:`bash`,title:`bash: npm run build:ui`,status:`running`,output:`Application bundle generation complete. [1.2 seconds]`},{kind:`assistant`,id:`mock-seed-assistant-1`,at:n-1e5,text:e,thinking:`The webview is narrow, so the navigation has to become a drawer below ~760px instead of a second column.`,streaming:!1,model:`Mock Model`},{kind:`notice`,id:`mock-seed-notice-1`,at:n-6e4,level:`info`,text:`Everything is wired through the same wire protocol — try ?scope=workspace to see the VS Code shape.`}]}function fw(n={}){if(aw())return new fp;let e=n.href??(typeof location<`u`?location.href:`http://localhost/`),t=new URL(e,`http://localhost/`);if(n.forceMock===!0||t.searchParams.get(`mock`)===`1`)return new mp;let i=t.searchParams.get(`server`);if(i)return new Zl({url:i,WebSocketImpl:n.WebSocketImpl});let o=t.protocol===`https:`,r=n.websocketPath??`/ws`;return new Zl({url:`${o?`wss`:`ws`}://${t.host}${r}`,WebSocketImpl:n.WebSocketImpl})}var R0={images:[],pins:[],mentions:[]};var Zn=class n{sets=N({});scope=N(``);live=N(null);message=N(null);counter=0;images=C(()=>this.current().images);pins=C(()=>this.current().pins);livePreview=this.live.asReadonly();mentions=C(()=>this.current().mentions);notice=this.message.asReadonly();count=C(()=>this.images().length+this.pins().length+this.mentions().length);use(e){e!==this.scope()&&(this.scope.set(e),this.live.set(null))}isEmpty(e){let t=this.sets()[e]??R0;return t.images.length===0&&t.pins.length===0&&t.mentions.length===0}rekey(e,t){let i=this.sets()[e];i!==void 0&&(this.sets.update(o=>{let r$11=r({},o);return delete r$11[e],r$11[t]=i,r$11}),this.scope()===e&&this.scope.set(t))}forget(e){e in this.sets()&&this.sets.update(t=>{let i=r({},t);return delete i[e],i})}snapshot(){let e={};for(let[t,i]of Object.entries(this.sets()))e[t]={images:i.images.map(o=>r({},o)),pins:i.pins.map(o=>r({},o)),mentions:[...i.mentions]};return e}restore(e){let t=sR(e);if(t!==void 0){this.sets.update(i=>{let o=r({},t);for(let[r,s]of Object.entries(i))o[r]=s;return o});for(let i of Object.values(t))for(let o of[...i.images,...i.pins])this.counter=Math.max(this.counter,rR(o.id));this.live.set(null)}}current(){return this.sets()[this.scope()]??R0}patch(e){let t=this.scope(),i=this.sets()[t]??R0;this.sets.update(o=>s(r({},o),{[t]:r(r({},i),e)}))}async read(e){let t=[],i=[];for(let o of e){if(!o.type.startsWith(`image/`)){i.push(o.name);continue}let r=await L0(o);if(!r){i.push(o.name);continue}this.counter+=1,t.push({id:`attachment-${this.counter}`,name:o.name||`image-${this.counter}.png`,mimeType:o.type,data:r,bytes:o.size})}return{images:t,skipped:i}}add(e){e.length!==0&&this.patch({images:[...this.current().images,...e]})}async accept(e){let{images:t,skipped:i}=await this.read(e);return this.add(t),{attached:t.length,skipped:i}}addMentions(e){let t=e.map(i=>i.trim()).filter(i=>i.length>0);t.length!==0&&this.patch({mentions:[...this.current().mentions,...t]})}seed(e,t){e.length>0&&this.add(e.map((i,o)=>{this.counter+=1;let s=(i.mimeType.split(`/`)[1]?.toLowerCase()??``).replace(/[^a-z0-9]/g,``)||`png`;return{id:`seed-${this.counter}`,name:o===0?`image.${s}`:`image-${o+1}.${s}`,mimeType:i.mimeType,data:i.data,bytes:Math.floor(i.data.length*3/4)}}));for(let i of t)this.pin({path:i.path,startLine:i.startLine,endLine:i.endLine})}setPinRange(e,t){this.patch({pins:this.current().pins.map(i=>i.id===e?s(r({},i),{startLine:t.startLine,endLine:t.endLine}):i)})}pin(e,t){if(e.path.length===0)return``;if(e.startLine===void 0){let v=this.current().pins.find(k=>k.path===e.path&&k.startLine===void 0);if(v!==void 0)return v.id;this.counter+=1;let b=`pin-${this.counter}`;return this.patch({pins:[...this.current().pins,s(r({},e),{id:b})]}),b}let i=this.current().pins,o=e.startLine,r$12=e.endLine??e.startLine,s$5=new Set(t===void 0?[]:[t]),a,l=!0;for(;l;){l=!1;for(let v of i){if(s$5.has(v.id)||v.path!==e.path||v.startLine===void 0)continue;let b=v.startLine,k=v.endLine??b;b<=r$12+1&&k+1>=o&&(o=Math.min(o,b),r$12=Math.max(r$12,k),s$5.add(v.id),a??=v.id,l=!0)}}this.counter+=1;let c={id:t??a??`pin-${this.counter}`,path:e.path,startLine:o,endLine:r$12>o?r$12:void 0},p=[],m=!1;for(let v of i){if(s$5.has(v.id)){m||(p.push(c),m=!0);continue}p.push(v)}return m||p.push(c),this.patch({pins:p}),c.id}removePin(e){this.patch({pins:this.current().pins.filter(t=>t.id!==e)})}setLivePreview(e){if(e===null||e.path.length===0||e.startLine===void 0){this.live.set(null);return}let t=this.live();t&&t.path===e.path&&t.startLine===e.startLine&&t.endLine===e.endLine||this.live.set({id:`live-preview`,path:e.path,startLine:e.startLine,endLine:e.endLine})}lockLivePreview(){let e=this.live();e&&(this.live.set(null),this.pin({path:e.path,startLine:e.startLine,endLine:e.endLine}))}remove(e){this.patch({images:this.current().images.filter(t=>t.id!==e)})}takeImages(){let e=this.current().images.map(({data:t,mimeType:i})=>({data:t,mimeType:i}));return this.patch({images:[]}),e}takePins(){let e=this.current().pins.map(({path:t,startLine:i,endLine:o})=>{let r={path:t};return i!==void 0&&(r.startLine=i),o!==void 0&&(r.endLine=o),r});return this.patch({pins:[]}),e}takeMentions(){let e=this.current().mentions;return this.patch({mentions:[]}),e}clear(){this.patch({images:[],pins:[],mentions:[]}),this.live.set(null)}say(e,t){this.message.set({level:e,text:t,at:Date.now()})}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function L0(n){return new Promise(e=>{if(typeof FileReader>`u`){e(void 0);return}let t=new FileReader;t.onerror=()=>e(void 0),t.onload=()=>{let i=t.result;if(typeof i!=`string`){e(void 0);return}let o=i.indexOf(`,`);e(o===-1?void 0:i.slice(o+1))},t.readAsDataURL(n)})}function rR(n){let e=/(\d+)$/.exec(n);return e===null?0:Number.parseInt(e[1],10)}function sR(n){if(typeof n!=`object`||n===null||Array.isArray(n))return;let e={};for(let[t,i]of Object.entries(n)){let o=aR(i);o!==void 0&&!dR(o)&&(e[t]=o)}return e}function aR(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.images,i=e.pins,o=e.mentions;return{images:Array.isArray(t)?t.flatMap(lR):[],pins:Array.isArray(i)?i.flatMap(cR):[],mentions:Array.isArray(o)?o.filter(l=>typeof l==`string`):[]}}function lR(n){if(typeof n!=`object`||n===null)return[];let e=n,t=e.id,i=e.name,o=e.mimeType,r=e.data;if(typeof t!=`string`||typeof i!=`string`||typeof o!=`string`||typeof r!=`string`)return[];let s=e.bytes;return[{id:t,name:i,mimeType:o,data:r,bytes:typeof s==`number`?s:0}]}function cR(n){if(typeof n!=`object`||n===null)return[];let e=n,t=e.id,i=e.path;if(typeof t!=`string`||typeof i!=`string`)return[];let o=e.startLine,r$13=e.endLine;return[r(r({id:t,path:i},typeof o==`number`?{startLine:o}:{}),typeof r$13==`number`?{endLine:r$13}:{})]}function dR(n){return n.images.length===0&&n.pins.length===0&&n.mentions.length===0}var ir=class n{attachments=w(Zn);texts=N({});key=N(``);text=C(()=>this.texts()[this.key()]??``);use(e){let t=e??``;t!==this.key()&&(this.key.set(t),this.attachments.use(t))}setText(e){this.texts.update(t=>s(r({},t),{[this.key()]:e}))}updateText(e){this.setText(e(this.text()))}isEmpty(e){return(this.texts()[e]??``).length===0&&this.attachments.isEmpty(e)}rekey(e,t){this.texts.update(i=>{let o=i[e];if(o===void 0)return i;let r$14=r({},i);return delete r$14[e],r$14[t]=o,r$14}),this.attachments.rekey(e,t),this.key()===e&&this.key.set(t)}forget(e){this.texts.update(t=>{if(!(e in t))return t;let i=r({},t);return delete i[e],i}),this.attachments.forget(e)}snapshot(){return{texts:r({},this.texts()),attachments:this.attachments.snapshot()}}restore(e){let t=uR(e);t!==void 0&&(this.texts.update(i=>r(r({},t.texts),i)),this.attachments.restore(t.attachments))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function uR(n){if(typeof n!=`object`||n===null)return;let e=n,t={},i=e.texts;if(typeof i==`object`&&i!==null)for(let[o,r]of Object.entries(i))typeof r==`string`&&r.length>0&&(t[o]=r);return{texts:t,attachments:e.attachments}}var mw=new Me(`morse.transport`,{providedIn:`root`,factory:()=>fw()});var hw={name:`@morse/ui-angular`,version:`0.14.0`};var pR=6e3;var Ie=class n{transport=w(mw);destroyRef=w(He);view=N(pp());client;actions;slowConnectionTimer;connection=C(()=>this.view().connection);connectionDetail=C(()=>this.view().connectionDetail);protocolVersion=C(()=>this.view().protocolVersion);frontend=C(()=>this.view().frontend);version=C(()=>this.frontend()?.version??hw.version);slowConnection=N(!1);capabilities=C(()=>this.view().capabilities);state=C(()=>this.view().state);items=C(()=>this.view().items);projects=C(()=>this.view().projects);sessions=C(()=>this.view().sessions);activity=C(()=>this.view().activity);sessionActivity=C(()=>{let e=new Map;for(let t of this.view().activity)e.set(t.sessionKey,t);return e});pendingInteraction=C(()=>this.view().pendingInteraction);lastNotice=C(()=>this.view().lastNotice);lastError=C(()=>this.view().lastError);agentReady=C(()=>this.view().state.agentReady);agentStarting=C(()=>this.view().state.agentStarting);agentError=C(()=>this.view().state.agentError);agentFailure=C(()=>this.view().state.agentFailure);running=C(()=>this.view().state.streaming||this.view().state.busy);workspace=C(()=>this.view().state.workspace);model=C(()=>this.view().state.model);thinkingLevel=C(()=>this.view().state.thinkingLevel);availableModels=C(()=>this.view().state.availableModels);availableThinkingLevels=C(()=>this.view().state.availableThinkingLevels);availableCommands=C(()=>this.view().state.availableCommands);usage=C(()=>this.view().state.usage);hasOlderHistory=C(()=>this.view().state.hasOlderHistory===!0);loadingOlderHistory=C(()=>this.view().state.loadingOlderHistory===!0);constructor(){this.client=ew({transport:this.transport,frontend:hw}),this.actions=this.client.actions;let e=this.client.getView();this.view.set(e),this.trackSlowConnection(e.connection),this.client.subscribe(t=>{this.view.set(t),this.trackSlowConnection(t.connection)}),this.destroyRef.onDestroy(()=>{this.clearSlowConnectionTimer(),this.client.dispose()})}trackSlowConnection(e){if(e!==`connecting`){this.clearSlowConnectionTimer(),this.slowConnection.set(!1);return}this.slowConnectionTimer===void 0&&(this.slowConnectionTimer=setTimeout(()=>{this.slowConnection.set(!0)},pR))}clearSlowConnectionTimer(){this.slowConnectionTimer!==void 0&&(clearTimeout(this.slowConnectionTimer),this.slowConnectionTimer=void 0)}prompt(e,t=`new`,i,o){this.actions.prompt(e,t,i,o)}editMessage(e,t){this.actions.editMessage(e,t)}forkMessage(e){this.actions.forkMessage(e)}onComposerSeed(e){return this.client.onComposerSeed(e)}onContextSelection(e){return this.client.onContextSelection(e)}onContextSelectionLive(e){return this.client.onContextSelectionLive(e)}ready(){this.actions.ready()}abort(){this.actions.abort()}newSession(e){this.actions.newSession(e)}openProject(e){this.actions.openProject(e)}requestProjects(){this.actions.requestProjects()}activateSession(e,t){this.actions.activateSession(e,t)}closeSession(e){this.actions.closeSession(e)}deleteSession(e){this.actions.deleteSession(e)}compactSession(e){this.actions.compactSession(e)}loadOlderHistory(){this.actions.loadOlderHistory()}loadSession(e){this.actions.loadSession(e)}requestSessions(){this.actions.requestSessions()}refreshCommands(){this.actions.refreshCommands()}refreshModels(){this.actions.refreshModels()}setModel(e,t){this.actions.setModel(e,t)}setThinkingLevel(e){this.actions.setThinkingLevel(e)}respond(e){this.actions.respond(e)}hostCommand(e,t){this.actions.hostCommand(e,t)}requestHostCommand(e,t,i){return this.actions.hostCommand(e,t,i)}openTerminal(e,t){this.actions.openTerminal(e,t)}sendTerminal(e,t){this.actions.sendTerminal(e,t)}resizeTerminal(e,t,i){this.actions.resizeTerminal(e,t,i)}closeTerminal(e){this.actions.closeTerminal(e)}onTerminalOutput(e){return this.client.onTerminalOutput(e)}onTerminalExit(e){return this.client.onTerminalExit(e)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var ba=class n{items=N([]);counter=0;queued=this.items.asReadonly();count=C(()=>this.items().length);forOwner(e){return this.items().filter(t=>t.sessionId===e)}head(e){return this.items().find(t=>t.sessionId===e)}enqueue(e,t){this.counter+=1;let i=`queued-${this.counter}`;return this.items.update(o=>[...o,s(r({},e),{id:i,sessionId:t})]),i}remove(e){this.items.update(t=>t.filter(i=>i.id!==e))}canMove(e,t){if(e===t)return!1;let i=this.items(),o=i.find(s=>s.id===e),r=i.find(s=>s.id===t);return o!==void 0&&r!==void 0&&o.sessionId===r.sessionId}move(e,t){if(!this.canMove(e,t))return;let i=this.items(),o=i.findIndex(c=>c.id===e),r=i.findIndex(c=>c.id===t),s=i[o],a=i.filter(c=>c.id!==e),l=a.findIndex(c=>c.id===t);a.splice(o<r?l+1:l,0,s),this.items.set(a)}shift(e){let t=this.head(e);if(t!==void 0)return this.remove(t.id),t}clear(){this.items.set([])}rekey(e,t){this.items.update(i=>i.map(o=>o.sessionId===e?s(r({},o),{sessionId:t}):o))}forgetOwner(e){this.items.update(t=>t.filter(i=>i.sessionId!==e))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var bw=`morse.navigation.collapsed`;var xw=`morse.git.open`;var Cw=`morse.git.expanded`;var F0=`morse.git.width`;var fR=220;var mR=1600;var ww=`morse.git.changesHeight`;var gw=`morse.git.changesCollapsed`;var yw=`morse.git.historyCollapsed`;var _w=`morse.git.stagedCollapsed`;var vw=`morse.git.unstagedCollapsed`;var hR=48;var gR=1200;var Ew=`morse.explorer.height`;var yR=140;var _R=720;function vR(){try{return globalThis.localStorage?.getItem(bw)===`1`}catch{return!1}}function bR(n){try{globalThis.localStorage?.setItem(bw,n?`1`:`0`)}catch{}}function xR(){try{return globalThis.localStorage?.getItem(xw)===`1`}catch{return!1}}function CR(n){try{globalThis.localStorage?.setItem(xw,n?`1`:`0`)}catch{}}function wR(){try{return globalThis.localStorage?.getItem(Cw)===`1`}catch{return!1}}function ER(n){try{globalThis.localStorage?.setItem(Cw,n?`1`:`0`)}catch{}}function Sw(n){return Math.round(Math.min(gR,Math.max(hR,n)))}function Dw(n){return Math.round(Math.min(mR,Math.max(fR,n)))}function SR(){try{let n=globalThis.localStorage?.getItem(F0);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?Dw(e):void 0}catch{return}}function DR(n){try{globalThis.localStorage?.setItem(F0,String(n))}catch{}}function TR(){try{let n=globalThis.localStorage?.getItem(ww);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?Sw(e):void 0}catch{return}}function MR(n){try{globalThis.localStorage?.setItem(ww,String(n))}catch{}}function hp(n){try{return globalThis.localStorage?.getItem(n)===`1`}catch{return!1}}function gp(n,e){try{globalThis.localStorage?.setItem(n,e?`1`:`0`)}catch{}}function Tw(n){return Math.round(Math.min(_R,Math.max(yR,n)))}function kR(){try{let n=globalThis.localStorage?.getItem(Ew);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?Tw(e):void 0}catch{return}}function IR(n){try{globalThis.localStorage?.setItem(Ew,String(n))}catch{}}var Ft=class n{navigationVisible=N(!1);navigationOpen=this.navigationVisible.asReadonly();collapsed=N(vR());navigationCollapsed=this.collapsed.asReadonly();gitPanel=N(xR());gitPanelOpen=this.gitPanel.asReadonly();gitExpanded=N(wR());gitPanelExpanded=this.gitExpanded.asReadonly();gitWidthSignal=N(SR());gitPanelWidth=this.gitWidthSignal.asReadonly();changesHeightSignal=N(TR());gitChangesHeight=this.changesHeightSignal.asReadonly();changesCollapsedSignal=N(hp(gw));gitChangesCollapsed=this.changesCollapsedSignal.asReadonly();historyCollapsedSignal=N(hp(yw));gitHistoryCollapsed=this.historyCollapsedSignal.asReadonly();stagedCollapsedSignal=N(hp(_w));gitStagedCollapsed=this.stagedCollapsedSignal.asReadonly();unstagedCollapsedSignal=N(hp(vw));gitUnstagedCollapsed=this.unstagedCollapsedSignal.asReadonly();explorer=N(kR());explorerHeight=this.explorer.asReadonly();projectPicker=N(!1);projectPickerOpen=this.projectPicker.asReadonly();about=N(!1);aboutOpen=this.about.asReadonly();shortcuts=N(!1);shortcutsOpen=this.shortcuts.asReadonly();palette=N(!1);paletteOpen=this.palette.asReadonly();projectFilter=N(!1);projectFilterOpen=this.projectFilter.asReadonly();projectFocus=N(``);projectFilterPath=this.projectFocus.asReadonly();promptTemplate=N(!1);promptTemplateOpen=this.promptTemplate.asReadonly();compactPrompt=N(void 0);compactConfirmOpen=C(()=>this.compactPrompt()!==void 0);compactInstructions=C(()=>this.compactPrompt()?.instructions);mcp=N(!1);mcpOpen=this.mcp.asReadonly();modalOpen=C(()=>this.about()||this.shortcuts()||this.palette()||this.projectPicker()||this.projectFilter()||this.promptTemplate()||this.mcp()||this.compactPrompt()!==void 0);toggleNavigation(){this.navigationVisible.update(e=>!e)}openNavigation(){this.navigationVisible.set(!0)}closeNavigation(){this.navigationVisible.set(!1)}toggleNavigationCollapsed(){this.setCollapsed(!this.collapsed())}unfoldNavigation(){this.setCollapsed(!1)}setCollapsed(e){this.collapsed.set(e),bR(e)}toggleGitPanel(){this.setGitPanel(!this.gitPanel())}closeGitPanel(){this.setGitPanel(!1)}setGitPanel(e){this.gitPanel.set(e),CR(e)}toggleGitPanelExpanded(){this.setGitExpanded(!this.gitExpanded())}setGitExpanded(e){this.gitExpanded.set(e),ER(e)}toggleGitChanges(){this.changesCollapsedSignal.update(e=>!e),gp(gw,this.changesCollapsedSignal())}toggleGitHistory(){this.historyCollapsedSignal.update(e=>!e),gp(yw,this.historyCollapsedSignal())}toggleGitStaged(){this.stagedCollapsedSignal.update(e=>!e),gp(_w,this.stagedCollapsedSignal())}toggleGitUnstaged(){this.unstagedCollapsedSignal.update(e=>!e),gp(vw,this.unstagedCollapsedSignal())}setGitChangesHeight(e,t=!0){let i=Sw(e);this.changesHeightSignal.set(i),t&&MR(i)}setGitPanelWidth(e,t=!0){let i=Dw(e);this.gitWidthSignal.set(i),t&&DR(i)}resetGitPanelWidth(){this.gitWidthSignal.set(void 0);try{globalThis.localStorage?.removeItem(F0)}catch{}}setExplorerHeight(e){let t=Tw(e);this.explorer.set(t),IR(t)}openAbout(){this.about.set(!0)}closeAbout(){this.about.set(!1)}openShortcuts(){this.shortcuts.set(!0)}closeShortcuts(){this.shortcuts.set(!1)}toggleShortcuts(){this.shortcuts.update(e=>!e)}openPalette(){this.palette.set(!0)}closePalette(){this.palette.set(!1)}togglePalette(){this.palette.update(e=>!e)}setProjectFilter(e){this.projectFocus.set(e)}openProjectFilter(){this.projectFilter.set(!0)}closeProjectFilter(){this.projectFilter.set(!1)}setPromptTemplateOpen(e){this.promptTemplate.set(e)}openProjectPicker(){this.projectPicker.set(!0)}closeProjectPicker(){this.projectPicker.set(!1)}openMcp(){this.mcp.set(!0)}closeMcp(){this.mcp.set(!1)}requestCompact(e){this.compactPrompt.set(e?{instructions:e}:{})}closeCompactPrompt(){this.compactPrompt.set(void 0)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var ds=[{id:`session.new`,group:`Session`,label:`New session`,detail:`The sidebar button, on the keyboard — and on a browser host it still asks which folder first.`,binding:{key:`n`,mod:!0,alt:!0}},{id:`session.search`,group:`Session`,label:`Focus the session search`,detail:"Opens the sidebar when the layout hid it, and puts the caret in the field. In the prompt, `/` opens the command palette instead.",binding:{key:`/`}},{id:`command.palette`,group:`Navigate`,label:`Command palette`,detail:`One field for everything: run a command, switch a tab, open a session, file or project, or pick the model and thinking level. A leading >, #, @ or : narrows it to that source.`,binding:[{key:`k`,mod:!0,alt:!0},{key:`/`,mod:!0,alt:!0}],overlay:!0,whileTyping:!0},{id:`project.filter`,group:`Navigate`,label:`Change project focus`,detail:`Narrows the sidebar to one project. Only a host with several projects has this.`,binding:{key:`p`,mod:!0,alt:!0},overlay:!0},{id:`view.git`,group:`Navigate`,label:`Toggle the git panel`,detail:`Shows or hides the history and graph for the active project. The browser host only — VS Code has its own Source Control view.`,binding:{key:`g`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`view.mcp`,group:`Navigate`,label:`Manage MCP servers`,detail:"Opens the MCP manager: the servers pi sees for the active directory, with add, enable, disable and remove. A host that cannot run the `pi` CLI shows it as unavailable.",binding:{key:`s`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`model.pick`,group:`Model`,label:`Change model`,detail:`Opens the model chooser above the prompt.`,binding:{key:`m`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`thinking.pick`,group:`Model`,label:`Change thinking level`,detail:`Opens the reasoning-level chooser next to the model.`,binding:{key:`t`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`context.compact`,group:`Context`,label:`Compact the conversation`,detail:`Asks first: pi replaces what it remembers with a summary.`,binding:{key:`c`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`prompt.send`,group:`Typing`,label:`Send the prompt`,detail:`While the prompt has the caret. During a run, the same key steers the agent instead.`,keys:`Enter`},{id:`prompt.newline`,group:`Typing`,label:`New line`,detail:`The prompt grows with the text rather than sending it.`,keys:`Shift+Enter`},{id:`prompt.mention`,group:`Typing`,label:`Mention a file`,detail:`Opens the picker that inserts an @path mention.`,keys:`@`},{id:`prompt.commands`,group:`Typing`,label:`Command palette`,detail:`The slash commands Morse and pi understand, filtered as you type.`,keys:`/`},{id:`help.shortcuts`,group:`Help`,label:`This list`,detail:`Opens and closes these rows, outside a text field.`,binding:{key:`?`},overlay:!0}];function us(n){return`binding`in n}function Mw(){let n=globalThis.navigator;return/mac|iphone|ipad/i.test(n?.userAgent??``)}function kw(n,e=Mw()){return Iw(n).map(t=>NR(t,e)).join(` / `)}function NR(n,e){let t=[];return n.mod===!0&&t.push(e?`⌘`:`Ctrl`),n.alt===!0&&t.push(e?`⌥`:`Alt`),t.push(n.key.length===1&&/[a-z]/.test(n.key)?n.key.toUpperCase():n.key),e?t.join(``):t.join(`+`)}function Iw(n){return Array.isArray(n)?n:[n]}var Fn=class n{shell=w(Ft);handlers=new Map;revision=N(0);catalog=ds;available=C(()=>{this.revision();let e=new Map;for(let t of ds){if(!us(t))continue;let i=this.handlers.get(t.id);e.set(t.id,i!==void 0&&(i.enabled?.()??!0))}return e});constructor(){let e=globalThis.document;e&&(e.addEventListener(`keydown`,this.onKeydown,!0),w(He).onDestroy(()=>e.removeEventListener(`keydown`,this.onKeydown,!0)))}bind(e,t,i){let o={run:t,enabled:i};return this.handlers.set(e,o),this.bump(),()=>{this.handlers.get(e)===o&&(this.handlers.delete(e),this.bump())}}bump(){this.revision.update(e=>e+1)}run(e){let t=this.handlers.get(e);return t===void 0||t.enabled!==void 0&&!t.enabled()?!1:(t.run(),!0)}onKeydown=e=>{if(e.defaultPrevented||e.isComposing||e.getModifierState?.(`AltGraph`)===!0)return;let t=ds.find(o=>us(o)&&PR(o.binding,e));if(t===void 0||t.whileTyping!==!0&&AR(e.target)||t.overlay===!0&&this.shell.modalOpen()&&!(t.id===`help.shortcuts`&&this.shell.shortcutsOpen()||t.id===`command.palette`&&this.shell.paletteOpen()))return;let i=this.handlers.get(t.id);i===void 0||i.enabled!==void 0&&!i.enabled()||(e.preventDefault(),i.run())};static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function PR(n,e){return Iw(n).some(t=>OR(t,e))}function OR(n,e){return e.key.toLowerCase()!==n.key.toLowerCase()||n.mod===!0!==(Mw()?e.metaKey:e.ctrlKey)?!1:n.alt===!0===e.altKey}function AR(n){let e=n;if(e===null||typeof e.tagName!=`string`)return!1;let t=e.tagName.toLowerCase();return t===`input`||t===`textarea`||t===`select`||e.isContentEditable===!0}var RR=10485760;var xa=class n{morse=w(Ie);available=C(()=>this.morse.capabilities()?.fileUpload===!0);async upload(e){let t=[],i=[];for(let o of e){if(o.size>RR){i.push(o.name);continue}let r=await L0(o);if(!r){i.push(o.name);continue}let s=await this.morse.requestHostCommand(`uploadFile`,{name:o.name,mimeType:o.type,data:r}),a=typeof s?.path==`string`?s.path:void 0;if(!a){i.push(o.name);continue}t.push({path:a,name:o.name,bytes:typeof s?.bytes==`number`?s.bytes:o.size})}return{added:t,failed:i}}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function V0(n){if(n===`??`)return`U`;if(n.includes(`U`)||n===`AA`||n===`DD`)return`C`;if(n.includes(`R`)||n.includes(`C`))return`R`;if(n.includes(`D`))return`D`;if(n.includes(`A`))return`A`;if(n.includes(`M`)||n.includes(`T`))return`M`}function j0(n){return n.includes(`U`)||n===`AA`||n===`DD`}function Nw(n){if(j0(n))return!1;let e=n[0];return e!==void 0&&e!==` `&&e!==`?`}function Pw(n){if(j0(n)||n===`??`)return!0;let e=n[1];return e!==void 0&&e!==` `&&e!==`?`}function Ow(n){return Rw(n[0])}function Aw(n){return n===`??`?`U`:j0(n)?`C`:Rw(n[1])}function Rw(n){switch(n){case`?`:return`U`;case`M`:case`T`:return`M`;case`A`:return`A`;case`D`:return`D`;case`R`:case`C`:return`R`;default:return}}function B0(n){if(typeof n!=`object`||n===null)return;let e=n;return e.isRepo!==!0?typeof e.isRepo==`boolean`?{isRepo:!1,files:[]}:void 0:{isRepo:!0,files:Fw(e.files)}}function Lw(n){if(typeof n!=`object`||n===null)return;let e=n;if(typeof e.isRepo==`boolean`)return Fw(e.files)}function Fw(n){return Array.isArray(n)?n.map(LR).filter(e=>e!==void 0):[]}function yp(n){let e=new Map;for(let t of n?.files??[]){let i=V0(t.status);i!==void 0&&e.set(t.path,i)}return e}function LR(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.path,i=e.status;if(!(typeof t!=`string`||typeof i!=`string`))return{path:t,status:i}}var FR=4e3;var Qn=class n{morse=w(Ie);cache=N([]);loading=N(!1);statuses=N(void 0);failure=N(void 0);loadedFor;inFlight=!1;files=this.cache.asReadonly();busy=this.loading.asReadonly();status=this.statuses.asReadonly();error=this.failure.asReadonly();available=C(()=>this.morse.capabilities()?.filePicker===!0);gitAvailable=C(()=>this.morse.capabilities()?.gitPanel===!0);constructor(){ne(()=>{if(!this.available())return;let e=this.morse.workspace().cwd;this.ensureLoaded(this.loadedFor!==void 0&&this.loadedFor!==e)}),ne(e=>{if(!this.available())return;let t=setInterval(()=>{typeof document<`u`&&document.hidden||this.ensureLoaded(!0,!0)},FR);e(()=>clearInterval(t))})}refresh(){this.ensureLoaded(!0)}async stage(e){return this.mutate(`gitStage`,e)}async unstage(e){return this.mutate(`gitUnstage`,e)}async mutate(e,t){if(t.length===0)return!0;let o=B0(await this.morse.requestHostCommand(e,{paths:[...t]}));return o===void 0?(this.refresh(),!1):(this.statuses.set(o),!0)}ensureLoaded(e=!1,t=!1){let i=this.morse.workspace().cwd;i.length===0||this.inFlight||!e&&this.loadedFor===i||(this.inFlight=!0,t||(this.loading.set(!0),this.failure.set(void 0)),Promise.all([this.morse.requestHostCommand(`listFiles`,e?{fresh:!0}:void 0),this.gitAvailable()?this.morse.requestHostCommand(`gitStatus`):Promise.resolve(void 0)]).then(([o,r])=>{if(this.morse.workspace().cwd!==i)return;let s=VR(o);if(s===void 0){this.failure.set(`Could not list this project.`);return}this.loadedFor=i,this.cache.set(s),this.statuses.set(B0(r))}).finally(()=>{this.inFlight=!1,t||this.loading.set(!1),this.morse.workspace().cwd!==i&&this.ensureLoaded(!0)}))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function VR(n){if(typeof n!=`object`||n===null)return;let e=n.files;if(Array.isArray(e))return e.filter(t=>typeof t==`string`)}var wp=v(iE(),1).default;function rE(n){let e=n.regex,t={},i={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[t]}]};Object.assign(t,{className:`variable`,variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},i]});let o={className:`subst`,begin:/\$\(/,end:/\)/,contains:[n.BACKSLASH_ESCAPE]},r=n.inherit(n.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},a={className:`string`,begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,t,o]};o.contains.push(a);let l={match:/\\"/},c={className:`string`,begin:/'/,end:/'/},p={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},n.NUMBER_MODE,t]},b=n.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),k={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},O=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],M=[`true`,`false`],V={match:/(\/[a-z._-]+)+/},W=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],pe=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],me=[`autoload`,`bg`,`bindkey`,`bye`,`cap`,`chdir`,`clone`,`comparguments`,`compcall`,`compctl`,`compdescribe`,`compfiles`,`compgroups`,`compquote`,`comptags`,`comptry`,`compvalues`,`dirs`,`disable`,`disown`,`echotc`,`echoti`,`emulate`,`fc`,`fg`,`float`,`functions`,`getcap`,`getln`,`history`,`integer`,`jobs`,`kill`,`limit`,`log`,`noglob`,`popd`,`print`,`pushd`,`pushln`,`rehash`,`sched`,`setcap`,`setopt`,`stat`,`suspend`,`ttyctl`,`unfunction`,`unhash`,`unlimit`,`unsetopt`,`vared`,`wait`,`whence`,`where`,`which`,`zcompile`,`zformat`,`zftp`,`zle`,`zmodload`,`zparseopts`,`zprof`,`zpty`,`zregexparse`,`zsocket`,`zstyle`,`ztcp`],we=[`chcon`,`chgrp`,`chown`,`chmod`,`cp`,`dd`,`df`,`dir`,`dircolors`,`ln`,`ls`,`mkdir`,`mkfifo`,`mknod`,`mktemp`,`mv`,`realpath`,`rm`,`rmdir`,`shred`,`sync`,`touch`,`truncate`,`vdir`,`b2sum`,`base32`,`base64`,`cat`,`cksum`,`comm`,`csplit`,`cut`,`expand`,`fmt`,`fold`,`head`,`join`,`md5sum`,`nl`,`numfmt`,`od`,`paste`,`ptx`,`pr`,`sha1sum`,`sha224sum`,`sha256sum`,`sha384sum`,`sha512sum`,`shuf`,`sort`,`split`,`sum`,`tac`,`tail`,`tr`,`tsort`,`unexpand`,`uniq`,`wc`,`arch`,`basename`,`chroot`,`date`,`dirname`,`du`,`echo`,`env`,`expr`,`factor`,`groups`,`hostid`,`id`,`link`,`logname`,`nice`,`nohup`,`nproc`,`pathchk`,`pinky`,`printenv`,`printf`,`pwd`,`readlink`,`runcon`,`seq`,`sleep`,`stat`,`stdbuf`,`stty`,`tee`,`test`,`timeout`,`tty`,`uname`,`unlink`,`uptime`,`users`,`who`,`whoami`,`yes`];return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:O,literal:M,built_in:[...W,...pe,`set`,`shopt`,...me,...we]},contains:[b,n.SHEBANG(),k,m,r,s,V,a,l,c,p,t]}}var M2=n=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:n.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:`number`,begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:n.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}});var k2=[`a`,`abbr`,`address`,`article`,`aside`,`audio`,`b`,`blockquote`,`body`,`button`,`canvas`,`caption`,`cite`,`code`,`dd`,`del`,`details`,`dfn`,`div`,`dl`,`dt`,`em`,`fieldset`,`figcaption`,`figure`,`footer`,`form`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`header`,`hgroup`,`html`,`i`,`iframe`,`img`,`input`,`ins`,`kbd`,`label`,`legend`,`li`,`main`,`mark`,`menu`,`nav`,`object`,`ol`,`optgroup`,`option`,`p`,`picture`,`q`,`quote`,`samp`,`section`,`select`,`source`,`span`,`strong`,`summary`,`sup`,`table`,`tbody`,`td`,`textarea`,`tfoot`,`th`,`thead`,`time`,`tr`,`ul`,`var`,`video`];var I2=[`defs`,`g`,`marker`,`mask`,`pattern`,`svg`,`switch`,`symbol`,`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feFlood`,`feGaussianBlur`,`feImage`,`feMerge`,`feMorphology`,`feOffset`,`feSpecularLighting`,`feTile`,`feTurbulence`,`linearGradient`,`radialGradient`,`stop`,`circle`,`ellipse`,`image`,`line`,`path`,`polygon`,`polyline`,`rect`,`text`,`use`,`textPath`,`tspan`,`foreignObject`,`clipPath`];var N2=[...k2,...I2];var P2=[`any-hover`,`any-pointer`,`aspect-ratio`,`color`,`color-gamut`,`color-index`,`device-aspect-ratio`,`device-height`,`device-width`,`display-mode`,`forced-colors`,`grid`,`height`,`hover`,`inverted-colors`,`monochrome`,`orientation`,`overflow-block`,`overflow-inline`,`pointer`,`prefers-color-scheme`,`prefers-contrast`,`prefers-reduced-motion`,`prefers-reduced-transparency`,`resolution`,`scan`,`scripting`,`update`,`width`,`min-width`,`max-width`,`min-height`,`max-height`].sort().reverse();var O2=[`active`,`any-link`,`blank`,`checked`,`current`,`default`,`defined`,`dir`,`disabled`,`drop`,`empty`,`enabled`,`first`,`first-child`,`first-of-type`,`fullscreen`,`future`,`focus`,`focus-visible`,`focus-within`,`has`,`host`,`host-context`,`hover`,`indeterminate`,`in-range`,`invalid`,`is`,`lang`,`last-child`,`last-of-type`,`left`,`link`,`local-link`,`not`,`nth-child`,`nth-col`,`nth-last-child`,`nth-last-col`,`nth-last-of-type`,`nth-of-type`,`only-child`,`only-of-type`,`optional`,`out-of-range`,`past`,`placeholder-shown`,`read-only`,`read-write`,`required`,`right`,`root`,`scope`,`target`,`target-within`,`user-invalid`,`valid`,`visited`,`where`].sort().reverse();var A2=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse();var R2=[`accent-color`,`align-content`,`align-items`,`align-self`,`alignment-baseline`,`all`,`anchor-name`,`animation`,`animation-composition`,`animation-delay`,`animation-direction`,`animation-duration`,`animation-fill-mode`,`animation-iteration-count`,`animation-name`,`animation-play-state`,`animation-range`,`animation-range-end`,`animation-range-start`,`animation-timeline`,`animation-timing-function`,`appearance`,`aspect-ratio`,`backdrop-filter`,`backface-visibility`,`background`,`background-attachment`,`background-blend-mode`,`background-clip`,`background-color`,`background-image`,`background-origin`,`background-position`,`background-position-x`,`background-position-y`,`background-repeat`,`background-size`,`baseline-shift`,`block-size`,`border`,`border-block`,`border-block-color`,`border-block-end`,`border-block-end-color`,`border-block-end-style`,`border-block-end-width`,`border-block-start`,`border-block-start-color`,`border-block-start-style`,`border-block-start-width`,`border-block-style`,`border-block-width`,`border-bottom`,`border-bottom-color`,`border-bottom-left-radius`,`border-bottom-right-radius`,`border-bottom-style`,`border-bottom-width`,`border-collapse`,`border-color`,`border-end-end-radius`,`border-end-start-radius`,`border-image`,`border-image-outset`,`border-image-repeat`,`border-image-slice`,`border-image-source`,`border-image-width`,`border-inline`,`border-inline-color`,`border-inline-end`,`border-inline-end-color`,`border-inline-end-style`,`border-inline-end-width`,`border-inline-start`,`border-inline-start-color`,`border-inline-start-style`,`border-inline-start-width`,`border-inline-style`,`border-inline-width`,`border-left`,`border-left-color`,`border-left-style`,`border-left-width`,`border-radius`,`border-right`,`border-right-color`,`border-right-style`,`border-right-width`,`border-spacing`,`border-start-end-radius`,`border-start-start-radius`,`border-style`,`border-top`,`border-top-color`,`border-top-left-radius`,`border-top-right-radius`,`border-top-style`,`border-top-width`,`border-width`,`bottom`,`box-align`,`box-decoration-break`,`box-direction`,`box-flex`,`box-flex-group`,`box-lines`,`box-ordinal-group`,`box-orient`,`box-pack`,`box-shadow`,`box-sizing`,`break-after`,`break-before`,`break-inside`,`caption-side`,`caret-color`,`clear`,`clip`,`clip-path`,`clip-rule`,`color`,`color-interpolation`,`color-interpolation-filters`,`color-profile`,`color-rendering`,`color-scheme`,`column-count`,`column-fill`,`column-gap`,`column-rule`,`column-rule-color`,`column-rule-style`,`column-rule-width`,`column-span`,`column-width`,`columns`,`contain`,`contain-intrinsic-block-size`,`contain-intrinsic-height`,`contain-intrinsic-inline-size`,`contain-intrinsic-size`,`contain-intrinsic-width`,`container`,`container-name`,`container-type`,`content`,`content-visibility`,`corner-bottom-left-shape`,`corner-bottom-right-shape`,`corner-shape`,`corner-top-left-shape`,`corner-top-right-shape`,`counter-increment`,`counter-reset`,`counter-set`,`cue`,`cue-after`,`cue-before`,`cursor`,`cx`,`cy`,`direction`,`display`,`dominant-baseline`,`empty-cells`,`enable-background`,`field-sizing`,`fill`,`fill-opacity`,`fill-rule`,`filter`,`flex`,`flex-basis`,`flex-direction`,`flex-flow`,`flex-grow`,`flex-shrink`,`flex-wrap`,`float`,`flood-color`,`flood-opacity`,`flow`,`font`,`font-display`,`font-family`,`font-feature-settings`,`font-kerning`,`font-language-override`,`font-optical-sizing`,`font-palette`,`font-size`,`font-size-adjust`,`font-smooth`,`font-smoothing`,`font-stretch`,`font-style`,`font-synthesis`,`font-synthesis-position`,`font-synthesis-small-caps`,`font-synthesis-style`,`font-synthesis-weight`,`font-variant`,`font-variant-alternates`,`font-variant-caps`,`font-variant-east-asian`,`font-variant-emoji`,`font-variant-ligatures`,`font-variant-numeric`,`font-variant-position`,`font-variation-settings`,`font-weight`,`forced-color-adjust`,`gap`,`glyph-orientation-horizontal`,`glyph-orientation-vertical`,`grid`,`grid-area`,`grid-auto-columns`,`grid-auto-flow`,`grid-auto-rows`,`grid-column`,`grid-column-end`,`grid-column-start`,`grid-gap`,`grid-row`,`grid-row-end`,`grid-row-start`,`grid-template`,`grid-template-areas`,`grid-template-columns`,`grid-template-rows`,`hanging-punctuation`,`height`,`hyphenate-character`,`hyphenate-limit-chars`,`hyphens`,`icon`,`image-orientation`,`image-rendering`,`image-resolution`,`ime-mode`,`initial-letter`,`initial-letter-align`,`inline-size`,`inset`,`inset-area`,`inset-block`,`inset-block-end`,`inset-block-start`,`inset-inline`,`inset-inline-end`,`inset-inline-start`,`isolation`,`justify-content`,`justify-items`,`justify-self`,`kerning`,`left`,`letter-spacing`,`lighting-color`,`line-break`,`line-height`,`line-height-step`,`list-style`,`list-style-image`,`list-style-position`,`list-style-type`,`margin`,`margin-block`,`margin-block-end`,`margin-block-start`,`margin-bottom`,`margin-inline`,`margin-inline-end`,`margin-inline-start`,`margin-left`,`margin-right`,`margin-top`,`margin-trim`,`marker`,`marker-end`,`marker-mid`,`marker-start`,`marks`,`mask`,`mask-border`,`mask-border-mode`,`mask-border-outset`,`mask-border-repeat`,`mask-border-slice`,`mask-border-source`,`mask-border-width`,`mask-clip`,`mask-composite`,`mask-image`,`mask-mode`,`mask-origin`,`mask-position`,`mask-repeat`,`mask-size`,`mask-type`,`masonry-auto-flow`,`math-depth`,`math-shift`,`math-style`,`max-block-size`,`max-height`,`max-inline-size`,`max-width`,`min-block-size`,`min-height`,`min-inline-size`,`min-width`,`mix-blend-mode`,`nav-down`,`nav-index`,`nav-left`,`nav-right`,`nav-up`,`none`,`normal`,`object-fit`,`object-position`,`offset`,`offset-anchor`,`offset-distance`,`offset-path`,`offset-position`,`offset-rotate`,`opacity`,`order`,`orphans`,`outline`,`outline-color`,`outline-offset`,`outline-style`,`outline-width`,`overflow`,`overflow-anchor`,`overflow-block`,`overflow-clip-margin`,`overflow-inline`,`overflow-wrap`,`overflow-x`,`overflow-y`,`overlay`,`overscroll-behavior`,`overscroll-behavior-block`,`overscroll-behavior-inline`,`overscroll-behavior-x`,`overscroll-behavior-y`,`padding`,`padding-block`,`padding-block-end`,`padding-block-start`,`padding-bottom`,`padding-inline`,`padding-inline-end`,`padding-inline-start`,`padding-left`,`padding-right`,`padding-top`,`page`,`page-break-after`,`page-break-before`,`page-break-inside`,`paint-order`,`pause`,`pause-after`,`pause-before`,`perspective`,`perspective-origin`,`place-content`,`place-items`,`place-self`,`pointer-events`,`position`,`position-anchor`,`position-visibility`,`print-color-adjust`,`quotes`,`r`,`resize`,`rest`,`rest-after`,`rest-before`,`right`,`rotate`,`row-gap`,`ruby-align`,`ruby-position`,`scale`,`scroll-behavior`,`scroll-margin`,`scroll-margin-block`,`scroll-margin-block-end`,`scroll-margin-block-start`,`scroll-margin-bottom`,`scroll-margin-inline`,`scroll-margin-inline-end`,`scroll-margin-inline-start`,`scroll-margin-left`,`scroll-margin-right`,`scroll-margin-top`,`scroll-padding`,`scroll-padding-block`,`scroll-padding-block-end`,`scroll-padding-block-start`,`scroll-padding-bottom`,`scroll-padding-inline`,`scroll-padding-inline-end`,`scroll-padding-inline-start`,`scroll-padding-left`,`scroll-padding-right`,`scroll-padding-top`,`scroll-snap-align`,`scroll-snap-stop`,`scroll-snap-type`,`scroll-timeline`,`scroll-timeline-axis`,`scroll-timeline-name`,`scrollbar-color`,`scrollbar-gutter`,`scrollbar-width`,`shape-image-threshold`,`shape-margin`,`shape-outside`,`shape-rendering`,`speak`,`speak-as`,`src`,`stop-color`,`stop-opacity`,`stroke`,`stroke-dasharray`,`stroke-dashoffset`,`stroke-linecap`,`stroke-linejoin`,`stroke-miterlimit`,`stroke-opacity`,`stroke-width`,`tab-size`,`table-layout`,`text-align`,`text-align-all`,`text-align-last`,`text-anchor`,`text-combine-upright`,`text-decoration`,`text-decoration-color`,`text-decoration-line`,`text-decoration-skip`,`text-decoration-skip-ink`,`text-decoration-style`,`text-decoration-thickness`,`text-emphasis`,`text-emphasis-color`,`text-emphasis-position`,`text-emphasis-style`,`text-indent`,`text-justify`,`text-orientation`,`text-overflow`,`text-rendering`,`text-shadow`,`text-size-adjust`,`text-transform`,`text-underline-offset`,`text-underline-position`,`text-wrap`,`text-wrap-mode`,`text-wrap-style`,`timeline-scope`,`top`,`touch-action`,`transform`,`transform-box`,`transform-origin`,`transform-style`,`transition`,`transition-behavior`,`transition-delay`,`transition-duration`,`transition-property`,`transition-timing-function`,`translate`,`unicode-bidi`,`unicode-range`,`user-modify`,`user-select`,`vector-effect`,`vertical-align`,`view-timeline`,`view-timeline-axis`,`view-timeline-inset`,`view-timeline-name`,`view-transition-name`,`visibility`,`voice-balance`,`voice-duration`,`voice-family`,`voice-pitch`,`voice-range`,`voice-rate`,`voice-stress`,`voice-volume`,`white-space`,`white-space-collapse`,`widows`,`width`,`will-change`,`word-break`,`word-spacing`,`word-wrap`,`writing-mode`,`x`,`y`,`z-index`,`zoom`].sort().reverse();function sE(n){let e=n.regex,t=M2(n),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},o=`and or not only`,r=/@-?\w[\w]*(-\w+)*/,a=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[t.BLOCK_COMMENT,i,t.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+O2.join(`|`)+`)`},{begin:`:(:)?(`+A2.join(`|`)+`)`}]},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+R2.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,t.UNICODE_RANGE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:r},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:o,attribute:P2.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,t.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+N2.join(`|`)+`)\\b`}]}}function aE(n){let e=n.regex;return{name:`Diff`,aliases:[`patch`],contains:[{className:`meta`,relevance:10,match:e.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:`comment`,variants:[{begin:e.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:`addition`,begin:/^\+/,end:/$/},{className:`deletion`,begin:/^-/,end:/$/},{className:`addition`,begin:/^!/,end:/$/}]}}function lE(n){let r={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:r,illegal:`</`,contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[n.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:r,illegal:/["']/}]}]}}var cE=`[A-Za-z$_][0-9A-Za-z$_]*`;var L2=[`as`,`in`,`of`,`if`,`for`,`while`,`finally`,`var`,`new`,`function`,`do`,`return`,`void`,`else`,`break`,`catch`,`instanceof`,`with`,`throw`,`case`,`default`,`try`,`switch`,`continue`,`typeof`,`delete`,`let`,`yield`,`const`,`class`,`debugger`,`async`,`await`,`static`,`import`,`from`,`export`,`extends`,`using`];var F2=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`];var dE=[`Object`,`Function`,`Boolean`,`Symbol`,`Math`,`Date`,`Number`,`BigInt`,`String`,`RegExp`,`Array`,`Float32Array`,`Float64Array`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Int32Array`,`Uint16Array`,`Uint32Array`,`BigInt64Array`,`BigUint64Array`,`Set`,`Map`,`WeakSet`,`WeakMap`,`ArrayBuffer`,`SharedArrayBuffer`,`Atomics`,`DataView`,`JSON`,`Promise`,`Generator`,`GeneratorFunction`,`AsyncFunction`,`Reflect`,`Proxy`,`Intl`,`WebAssembly`];var uE=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`];var pE=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`];var V2=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`self`,`global`];var j2=[].concat(pE,dE,uE);function fE(n){let e=n.regex,t=(Q,{after:H})=>{let de=`</`+Q[0].slice(1);return Q.input.indexOf(de,H)!==-1},i=cE,o={begin:`<>`,end:`</>`},r=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(Q,H)=>{let de=Q[0].length+Q.index,Be=Q.input[de];if(Be===`<`||Be===`,`){H.ignoreMatch();return}Be===`>`&&(t(Q,{after:de})||H.ignoreMatch());let lt,en=Q.input.substring(de);if(lt=en.match(/^\s*=/)){H.ignoreMatch();return}if((lt=en.match(/^\s+extends\s+/))&<.index===0){H.ignoreMatch();return}}},a={$pattern:cE,keyword:L2,literal:F2,built_in:j2,"variable.language":V2},l=`[0-9](_?[0-9])*`,c=`\\.(${l})`,p=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,m={className:`number`,variants:[{begin:`(\\b(${p})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${p})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},v={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:a,contains:[]},b={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`xml`}},k={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`css`}},O={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`graphql`}},M={className:`string`,begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,v]},W={className:`comment`,variants:[n.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:i+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},pe=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,{match:/\$\d+/},m];v.contains=pe.concat({begin:/\{/,end:/\}/,keywords:a,contains:[`self`].concat(pe)});let me=[].concat(W,v.contains),we=me.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:[`self`].concat(me)}]),ve={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we},st={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,e.concat(i,`(`,e.concat(/\./,i),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,i],scope:{1:`keyword`,3:`title.class`}}]},qe={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...dE,...uE]}},Ke={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},vt={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[ve],illegal:/%/},Pt={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function qt(Q){return e.concat(`(?!`,Q.join(`|`),`)`)}let $t={match:e.concat(/\b/,qt([...pE,`super`,`import`,`await`].map(Q=>`${Q}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:`title.function`,relevance:0},at={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},Te={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},ve]},B=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+n.UNDERSCORE_IDENT_RE+`)\\s*=>`,ae={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(B)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[ve]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:a,exports:{PARAMS_CONTAINS:we,CLASS_REFERENCE:qe},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),Ke,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,W,{match:/\$\d+/},m,qe,{scope:`attr`,match:i+e.lookahead(`:`),relevance:0},ae,{begin:`(`+n.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[W,n.REGEXP_MODE,{className:`function`,begin:B,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o.begin,end:o.end},{match:r},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:`xml`,contains:[{begin:s.begin,end:s.end,skip:!0,contains:[`self`]}]}]},vt,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+n.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[ve,n.inherit(n.TITLE_MODE,{begin:i,className:`title.function`})]},{match:/\.\.\./,relevance:0},at,{match:`\\$`+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[ve]},$t,Pt,st,Te,{match:/\$[(.]/}]}}var $2={scope:`number`,match:`([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity`,relevance:0};function mE(n){let e={className:`attr`,begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:`punctuation`,relevance:0},i=[`true`,`false`,`null`],o={scope:`literal`,beginKeywords:i.join(` `)};return{name:`JSON`,aliases:[`jsonc`,`json5`],keywords:{literal:i},contains:[e,t,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,o,$2,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}function hE(n){let e=n.regex,t={begin:/<\/?[A-Za-z_]/,end:`>`,subLanguage:`xml`,relevance:0},i={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},o={className:`code`,variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:`(~{3,})[^~](.|\\n)*?\\1~*[ ]*`},{begin:"```",end:"```+[ ]*$"},{begin:`~~~`,end:`~~~+[ ]*$`},{begin:"`.+?`"},{begin:`(?=^( {4}|\\t))`,contains:[{begin:`^( {4}|\\t)`,end:`(\\n)$`}],relevance:0}]},r={className:`bullet`,begin:`^[ ]*([*+-]|(\\d+\\.))(?=\\s+)`,end:`\\s+`,excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:`symbol`,begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:`link`,begin:/:\s*/,end:/$/,excludeBegin:!0}]},l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:`string`,relevance:0,begin:`\\[`,end:`\\]`,excludeBegin:!0,returnEnd:!0},{className:`link`,relevance:0,begin:`\\]\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0},{className:`symbol`,relevance:0,begin:`\\]\\[`,end:`\\]`,excludeBegin:!0,excludeEnd:!0}]},c={className:`strong`,contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},p={className:`emphasis`,contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=n.inherit(c,{contains:[]}),v=n.inherit(p,{contains:[]});c.contains.push(v),p.contains.push(m);let b=[t,l];return[c,p,m,v].forEach(V=>{V.contains=V.contains.concat(b)}),b=b.concat(c,p),{name:`Markdown`,aliases:[`md`,`mkdown`,`mkd`],contains:[{className:`section`,variants:[{begin:`^#{1,6}`,end:`$`,contains:b},{begin:`(?=^.+?\\n[=-]{2,}$)`,contains:[{begin:`^[=-]*$`},{begin:`^`,end:`\\n`,contains:b}]}]},t,r,i,c,p,{className:`quote`,begin:`^>\\s+`,contains:b,end:`$`},o,l,s,{scope:`literal`,match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function gE(n){let e=n.regex,t=/(?![A-Za-z0-9])(?![$])/,i=e.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),o=e.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=e.concat(/[A-Z]+/,t),s={scope:`variable`,match:`\\$+`+i},a={scope:`meta`,variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:`subst`,variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=n.inherit(n.APOS_STRING_MODE,{illegal:null}),p=n.inherit(n.QUOTE_STRING_MODE,{illegal:null,contains:n.QUOTE_STRING_MODE.contains.concat(l)}),m={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:n.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(at,Te)=>{Te.data._beginMatch=at[1]||at[2]},"on:end":(at,Te)=>{Te.data._beginMatch!==at[1]&&Te.ignoreMatch()}},v=n.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),b=`[
|
|
30
|
-
]`,k={scope:`string`,variants:[p,c,m,v]},O={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},M=[`false`,`null`,`true`],V=[`__CLASS__`,`__DIR__`,`__FILE__`,`__FUNCTION__`,`__COMPILER_HALT_OFFSET__`,`__LINE__`,`__METHOD__`,`__NAMESPACE__`,`__TRAIT__`,`die`,`echo`,`exit`,`include`,`include_once`,`print`,`require`,`require_once`,`array`,`abstract`,`and`,`as`,`binary`,`bool`,`boolean`,`break`,`callable`,`case`,`catch`,`class`,`clone`,`const`,`continue`,`declare`,`default`,`do`,`double`,`else`,`elseif`,`empty`,`enddeclare`,`endfor`,`endforeach`,`endif`,`endswitch`,`endwhile`,`enum`,`eval`,`extends`,`final`,`finally`,`float`,`for`,`foreach`,`from`,`global`,`goto`,`if`,`implements`,`instanceof`,`insteadof`,`int`,`integer`,`interface`,`isset`,`iterable`,`list`,`match|0`,`mixed`,`new`,`never`,`object`,`or`,`private`,`protected`,`public`,`readonly`,`real`,`return`,`string`,`switch`,`throw`,`trait`,`try`,`unset`,`use`,`var`,`void`,`while`,`xor`,`yield`],W=[`Error|0`,`AppendIterator`,`ArgumentCountError`,`ArithmeticError`,`ArrayIterator`,`ArrayObject`,`AssertionError`,`BadFunctionCallException`,`BadMethodCallException`,`CachingIterator`,`CallbackFilterIterator`,`CompileError`,`Countable`,`DirectoryIterator`,`DivisionByZeroError`,`DomainException`,`EmptyIterator`,`ErrorException`,`Exception`,`FilesystemIterator`,`FilterIterator`,`GlobIterator`,`InfiniteIterator`,`InvalidArgumentException`,`IteratorIterator`,`LengthException`,`LimitIterator`,`LogicException`,`MultipleIterator`,`NoRewindIterator`,`OutOfBoundsException`,`OutOfRangeException`,`OuterIterator`,`OverflowException`,`ParentIterator`,`ParseError`,`RangeException`,`RecursiveArrayIterator`,`RecursiveCachingIterator`,`RecursiveCallbackFilterIterator`,`RecursiveDirectoryIterator`,`RecursiveFilterIterator`,`RecursiveIterator`,`RecursiveIteratorIterator`,`RecursiveRegexIterator`,`RecursiveTreeIterator`,`RegexIterator`,`RuntimeException`,`SeekableIterator`,`SplDoublyLinkedList`,`SplFileInfo`,`SplFileObject`,`SplFixedArray`,`SplHeap`,`SplMaxHeap`,`SplMinHeap`,`SplObjectStorage`,`SplObserver`,`SplPriorityQueue`,`SplQueue`,`SplStack`,`SplSubject`,`SplTempFileObject`,`TypeError`,`UnderflowException`,`UnexpectedValueException`,`UnhandledMatchError`,`ArrayAccess`,`BackedEnum`,`Closure`,`Fiber`,`Generator`,`Iterator`,`IteratorAggregate`,`Serializable`,`Stringable`,`Throwable`,`Traversable`,`UnitEnum`,`WeakReference`,`WeakMap`,`Directory`,`__PHP_Incomplete_Class`,`parent`,`php_user_filter`,`self`,`static`,`stdClass`],me={keyword:V,literal:(at=>{let Te=[];return at.forEach(B=>{Te.push(B),B.toLowerCase()===B?Te.push(B.toUpperCase()):Te.push(B.toLowerCase())}),Te})(M),built_in:W},we=at=>at.map(Te=>Te.replace(/\|\d+$/,``)),ve={variants:[{match:[/new/,e.concat(b,`+`),e.concat(`(?!`,we(W).join(`\\b|`),`\\b)`),o],scope:{1:`keyword`,4:`title.class`}}]},st=e.concat(i,`\\b(?!\\()`),qe={variants:[{match:[e.concat(/::/,e.lookahead(/(?!class\b)/)),st],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[o,e.concat(/::/,e.lookahead(/(?!class\b)/)),st],scope:{1:`title.class`,3:`variable.constant`}},{match:[o,e.concat(`::`,e.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[o,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},Ke={scope:`attr`,match:e.concat(i,e.lookahead(`:`),e.lookahead(/(?!::)/))},vt={relevance:0,begin:/\(/,end:/\)/,keywords:me,contains:[Ke,s,qe,n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE,n.HASH_COMMENT_MODE,k,O,ve]},Pt={relevance:0,match:[/\b/,e.concat(`(?!fn\\b|function\\b|`,we(V).join(`\\b|`),`|`,we(W).join(`\\b|`),`\\b)`),i,e.concat(b,`*`),e.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[vt]};vt.contains.push(Pt);let qt=[Ke,qe,n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE,n.HASH_COMMENT_MODE,k,O,ve],$t={begin:e.concat(/#\[\s*\\?/,e.either(o,r)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:M,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:M,keyword:[`new`,`array`]},contains:[`self`,...qt]},...qt,{scope:`meta`,variants:[{match:o},{match:r}]}]};return{case_insensitive:!1,keywords:me,contains:[$t,n.HASH_COMMENT_MODE,n.COMMENT(`//`,`$`),n.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:n.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},a,{scope:`variable.language`,match:/\$this\b/},s,Pt,qe,{match:[/const/,/\s/,i],scope:{1:`keyword`,3:`variable.constant`}},ve,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},n.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:me,contains:[`self`,$t,s,qe,n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE,n.HASH_COMMENT_MODE,k,O]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},n.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[n.inherit(n.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},n.UNDERSCORE_TITLE_MODE]},k,O]}}function yE(n){let e=n.regex,t=new RegExp(`[\\p{XID_Start}_]\\p{XID_Continue}*`,`u`),i=[`and`,`as`,`assert`,`async`,`await`,`break`,`case`,`class`,`continue`,`def`,`del`,`elif`,`else`,`except`,`finally`,`for`,`from`,`global`,`if`,`import`,`in`,`is`,`lambda`,`lazy`,`match`,`nonlocal|10`,`not`,`or`,`pass`,`raise`,`return`,`try`,`while`,`with`,`yield`],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:[`__import__`,`abs`,`aiter`,`all`,`anext`,`any`,`ascii`,`bin`,`bool`,`breakpoint`,`bytearray`,`bytes`,`callable`,`chr`,`classmethod`,`compile`,`complex`,`delattr`,`dict`,`dir`,`divmod`,`enumerate`,`eval`,`exec`,`filter`,`float`,`format`,`frozendict`,`frozenset`,`getattr`,`globals`,`hasattr`,`hash`,`help`,`hex`,`id`,`input`,`int`,`isinstance`,`issubclass`,`iter`,`len`,`list`,`locals`,`map`,`max`,`memoryview`,`min`,`next`,`object`,`oct`,`open`,`ord`,`pow`,`print`,`property`,`range`,`repr`,`reversed`,`round`,`sentinel`,`set`,`setattr`,`slice`,`sorted`,`staticmethod`,`str`,`sum`,`super`,`tuple`,`type`,`vars`,`zip`],literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},l={className:`meta`,begin:/^(>>>|\.\.\.) /},c={className:`subst`,begin:/\{/,end:/\}/,keywords:a,illegal:/#/},p={begin:/\{\{/,relevance:0},m={className:`string`,contains:[n.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,l,p,c]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,l,p,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[n.BACKSLASH_ESCAPE,p,c]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,p,c]},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},v=`[0-9](_?[0-9])*`,b=`(\\b(${v}))?\\.(${v})|\\b(${v})\\.`,k=`\\b|${i.join(`|`)}`,O={className:`number`,relevance:0,variants:[{begin:`(\\b(${v})|(${b}))[eE][+-]?(${v})[jJ]?(?=${k})`},{begin:`(${b})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${k})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${k})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${k})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${k})`},{begin:`\\b(${v})[jJ](?=${k})`}]},M={className:`comment`,begin:e.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},V={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:[`self`,l,O,m,n.HASH_COMMENT_MODE]}]};return c.contains=[m,O,l],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,O,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},m,M,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:`keyword`,3:`title.function`},contains:[V]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[O,V,m]}]}}var Ep=`[A-Za-z$_][0-9A-Za-z$_]*`;var _E=[`as`,`in`,`of`,`if`,`for`,`while`,`finally`,`var`,`new`,`function`,`do`,`return`,`void`,`else`,`break`,`catch`,`instanceof`,`with`,`throw`,`case`,`default`,`try`,`switch`,`continue`,`typeof`,`delete`,`let`,`yield`,`const`,`class`,`debugger`,`async`,`await`,`static`,`import`,`from`,`export`,`extends`,`using`];var vE=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`];var bE=[`Object`,`Function`,`Boolean`,`Symbol`,`Math`,`Date`,`Number`,`BigInt`,`String`,`RegExp`,`Array`,`Float32Array`,`Float64Array`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Int32Array`,`Uint16Array`,`Uint32Array`,`BigInt64Array`,`BigUint64Array`,`Set`,`Map`,`WeakSet`,`WeakMap`,`ArrayBuffer`,`SharedArrayBuffer`,`Atomics`,`DataView`,`JSON`,`Promise`,`Generator`,`GeneratorFunction`,`AsyncFunction`,`Reflect`,`Proxy`,`Intl`,`WebAssembly`];var xE=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`];var CE=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`];var wE=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`self`,`global`];var EE=[].concat(CE,bE,xE);function H2(n){let e=n.regex,t=(Q,{after:H})=>{let de=`</`+Q[0].slice(1);return Q.input.indexOf(de,H)!==-1},i=Ep,o={begin:`<>`,end:`</>`},r=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(Q,H)=>{let de=Q[0].length+Q.index,Be=Q.input[de];if(Be===`<`||Be===`,`){H.ignoreMatch();return}Be===`>`&&(t(Q,{after:de})||H.ignoreMatch());let lt,en=Q.input.substring(de);if(lt=en.match(/^\s*=/)){H.ignoreMatch();return}if((lt=en.match(/^\s+extends\s+/))&<.index===0){H.ignoreMatch();return}}},a={$pattern:Ep,keyword:_E,literal:vE,built_in:EE,"variable.language":wE},l=`[0-9](_?[0-9])*`,c=`\\.(${l})`,p=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,m={className:`number`,variants:[{begin:`(\\b(${p})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${p})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},v={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:a,contains:[]},b={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`xml`}},k={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`css`}},O={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`graphql`}},M={className:`string`,begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,v]},W={className:`comment`,variants:[n.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:i+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},pe=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,{match:/\$\d+/},m];v.contains=pe.concat({begin:/\{/,end:/\}/,keywords:a,contains:[`self`].concat(pe)});let me=[].concat(W,v.contains),we=me.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:[`self`].concat(me)}]),ve={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we},st={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,e.concat(i,`(`,e.concat(/\./,i),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,i],scope:{1:`keyword`,3:`title.class`}}]},qe={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...bE,...xE]}},Ke={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},vt={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[ve],illegal:/%/},Pt={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function qt(Q){return e.concat(`(?!`,Q.join(`|`),`)`)}let $t={match:e.concat(/\b/,qt([...CE,`super`,`import`,`await`].map(Q=>`${Q}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:`title.function`,relevance:0},at={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},Te={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},ve]},B=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+n.UNDERSCORE_IDENT_RE+`)\\s*=>`,ae={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(B)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[ve]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:a,exports:{PARAMS_CONTAINS:we,CLASS_REFERENCE:qe},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),Ke,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,W,{match:/\$\d+/},m,qe,{scope:`attr`,match:i+e.lookahead(`:`),relevance:0},ae,{begin:`(`+n.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[W,n.REGEXP_MODE,{className:`function`,begin:B,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o.begin,end:o.end},{match:r},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:`xml`,contains:[{begin:s.begin,end:s.end,skip:!0,contains:[`self`]}]}]},vt,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+n.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[ve,n.inherit(n.TITLE_MODE,{begin:i,className:`title.function`})]},{match:/\.\.\./,relevance:0},at,{match:`\\$`+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[ve]},$t,Pt,st,Te,{match:/\$[(.]/}]}}function SE(n){let e=n.regex,t=H2(n),i=Ep,o=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],r={begin:[/namespace/,/\s+/,n.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},s={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:o},contains:[t.exports.CLASS_REFERENCE]},a={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:Ep,keyword:_E.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:vE,built_in:EE.concat(o),"variable.language":wE},p={className:`meta`,begin:`@`+i},m=(O,M,V)=>{let W=O.contains.findIndex(pe=>pe.label===M);if(W===-1)throw new Error(`can not find mode to replace`);O.contains.splice(W,1,V)};Object.assign(t.keywords,c),t.exports.PARAMS_CONTAINS.push(p);let v=t.contains.find(O=>O.scope===`attr`),b=Object.assign({},v,{match:e.concat(i,e.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,v,b]),t.contains=t.contains.concat([p,r,s,b]),m(t,`shebang`,n.SHEBANG()),m(t,`use_strict`,a);let k=t.contains.find(O=>O.label===`func.def`);return k.relevance=0,Object.assign(t,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),t}function DE(n){let e=n.regex,t=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,o={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=n.inherit(r,{begin:/\(/,end:/\)/}),a=n.inherit(n.APOS_STRING_MODE,{className:`string`}),l=n.inherit(n.QUOTE_STRING_MODE,{className:`string`}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:i,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[o]},{begin:/'/,end:/'/,contains:[o]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[r,l,a,s,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[r,s,l,a]}]}]},n.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},o,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:`css`}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:`javascript`}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:e.concat(/</,e.lookahead(e.concat(t,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:t,relevance:0,starts:c}]},{className:`tag`,begin:e.concat(/<\//,e.lookahead(e.concat(t,/>/))),contains:[{className:`name`,begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function TE(n){let e=`true false yes no null`,t=`[\\w#;/?:@&=+$,.~*'()[\\]]+`,i={className:`attr`,variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},o={className:`template-variable`,variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},r={className:`string`,relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:`char.escape`,relevance:0}]},s={className:`string`,relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[n.BACKSLASH_ESCAPE,o]},a=n.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),v={className:`number`,begin:`\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b`},b={end:`,`,endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},k={begin:/\{/,end:/\}/,contains:[b],illegal:`\\n`,relevance:0},O={begin:`\\[`,end:`\\]`,contains:[b],illegal:`\\n`,relevance:0},M=[i,{className:`meta`,begin:`^---\\s*$`,relevance:10},{className:`string`,begin:`[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*`},{begin:`<%[%=-]?`,end:`[%-]?%>`,subLanguage:`ruby`,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:`!\\w+!`+t},{className:`type`,begin:`!<`+t+`>`},{className:`type`,begin:`!`+t},{className:`type`,begin:`!!`+t},{className:`meta`,begin:`&`+n.UNDERSCORE_IDENT_RE+`$`},{className:`meta`,begin:`\\*`+n.UNDERSCORE_IDENT_RE+`$`},{className:`bullet`,begin:`-(?=[ ]|$)`,relevance:0},n.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},v,{className:`number`,begin:n.C_NUMBER_RE+`\\b`,relevance:0},k,O,r,s],V=[...M];return V.pop(),V.push(a),b.contains=V,{name:`YAML`,case_insensitive:!0,aliases:[`yml`],contains:M}}for(let[n,e]of Object.entries({bash:rE,css:sE,diff:aE,go:lE,javascript:fE,json:mE,markdown:hE,php:gE,python:yE,typescript:SE,xml:DE,yaml:TE}))wp.registerLanguage(n,e);var z2={sh:`bash`,shell:`bash`,zsh:`bash`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`javascript`,ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`typescript`,html:`xml`,svg:`xml`,md:`markdown`,yml:`yaml`};var U2={bash:`bash`,cjs:`javascript`,css:`css`,diff:`diff`,go:`go`,html:`xml`,js:`javascript`,json:`json`,jsx:`javascript`,md:`markdown`,mjs:`javascript`,patch:`diff`,php:`php`,py:`python`,sh:`bash`,svg:`xml`,ts:`typescript`,tsx:`typescript`,xml:`xml`,yaml:`yaml`,yml:`yaml`,zsh:`bash`};function Sp(n){let e=n.split(`/`).pop()??``,t=e.lastIndexOf(`.`);if(!(t<=0))return U2[e.slice(t+1).toLowerCase()]}function Ea(n,e){let t=(e??``).trim().toLowerCase(),i=z2[t]??t;return i.length>0&&wp.getLanguage(i)!==void 0?{html:wp.highlight(n,{language:i,ignoreIllegals:!0}).value,language:i}:{html:G2(n),language:`text`}}function G2(n){return n.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function q2(n){return Array.from({length:n},()=>1/n)}function ME(n){return s(r({},n),{title:n.custom??n.auto??n.fallbackTitle})}var rr=class n{items=N([]);activeByOwner=N({});activePaneByGroup=N({});sizesByGroup=N({});counter=0;terminals=this.items.asReadonly();groups=C(()=>{let e=this.items(),t=[],i=new Map;for(let o of e)i.has(o.group)||(i.set(o.group,[]),t.push(o.group)),i.get(o.group).push(o);return t.map(o=>{let r=i.get(o),s=r[0],a=r.find(c=>c.id===this.activePaneByGroup()[o])??s,l=s.custom??a.auto??s.auto??s.fallbackTitle;return{id:o,owner:s.owner,name:l,title:r.length>1?`${l} (${r.length})`:l,count:r.length,sizes:this.sizesFor(o,r.length),panes:r,activePane:a.id}})});open(e){let t=this.mint(e,void 0);return this.setActive(e,t.group),t.id}split(e){let t=this.groups().find(o=>o.id===e);if(t===void 0)return;let i=this.mint(t.owner,e);return this.setActive(t.owner,e),this.setActivePane(e,i.id),i.id}setAutoTitle(e,t){let i=t.trim().length>0?t.trim():void 0;this.items.update(o=>o.map(r$15=>r$15.id!==e||r$15.auto===i?r$15:ME(s(r({},r$15),{auto:i}))))}rename(e,t){let i=t.trim().length>0?t.trim():void 0;this.items.update(o=>{let r$16=o.findIndex(a=>a.group===e);if(r$16<0)return o;let s$6=[...o];return s$6[r$16]=ME(s(r({},s$6[r$16]),{custom:i})),s$6})}closePane(e){let t=this.items().find(r=>r.id===e);if(t===void 0)return;let i=this.items().filter(r=>r.group===t.group);if(i.length<=1){this.close(t.group);return}let o=i.findIndex(r=>r.id===e);if(this.items.update(r=>r.filter(s=>s.id!==e)),this.activePaneFor(t.group)===e){let r=this.items().filter(s=>s.group===t.group);this.setActivePane(t.group,r[Math.min(o,r.length-1)]?.id)}}close(e){let t=this.items().find(r=>r.group===e)?.owner,o=this.groupIds(t).indexOf(e);if(!(o<0)&&(this.items.update(r=>r.filter(s=>s.group!==e)),this.setActivePane(e,void 0),this.activeFor(t)===e)){let r=this.groupIds(t);this.setActive(t,r[Math.min(o,r.length-1)])}}focus(e){let t=this.items().find(i=>i.id===e);t!==void 0&&(this.setActive(t.owner,t.group),this.setActivePane(t.group,e))}activeFor(e){return this.activeByOwner()[Y0(e)]}activePaneFor(e){return this.activePaneByGroup()[e]}setSizes(e,t){this.sizesByGroup.update(i=>s(r({},i),{[e]:t}))}sizesFor(e,t){let i=this.sizesByGroup()[e];return i!==void 0&&i.length===t?i:q2(t)}forgetOwner(e){this.items.update(t=>t.filter(i=>i.owner!==e)),this.setActive(e,void 0)}rekey(e,t){this.items.update(o=>o.map(r$17=>r$17.owner===e?s(r({},r$17),{owner:t}):r$17));let i=this.activeFor(e);i!==void 0&&(this.setActive(t,i),this.setActive(e,void 0))}snapshot(){return{panes:this.items().map(e=>r({},e)),activeByOwner:r({},this.activeByOwner()),activePaneByGroup:r({},this.activePaneByGroup()),sizesByGroup:r({},this.sizesByGroup())}}restore(e){let t=Y2(e);t!==void 0&&(this.items.set(t.panes),this.activeByOwner.set(t.activeByOwner),this.activePaneByGroup.set(t.activePaneByGroup),this.sizesByGroup.set(t.sizesByGroup),this.counter=t.panes.reduce((i,o)=>Math.max(i,W2(o.id)),this.counter))}mint(e,t){this.counter+=1;let i=`term-${this.counter}`,o=`Terminal ${this.counter}`,r={id:i,owner:e,group:t??i,title:o,fallbackTitle:o};return this.items.update(s=>[...s,r]),this.setActivePane(r.group,i),r}groupIds(e){let t=[];for(let i of this.items())i.owner===e&&!t.includes(i.group)&&t.push(i.group);return t}setActive(e,t){this.activeByOwner.update(i=>s(r({},i),{[Y0(e)]:t}))}setActivePane(e,t){this.activePaneByGroup.update(i=>s(r({},i),{[e]:t}))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function Y0(n){return n??``}function W2(n){let e=/^term-(\d+)$/.exec(n);return e===null?0:Number.parseInt(e[1],10)}function Y2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.panes;if(!Array.isArray(t))return;let i=t.flatMap(s=>{let a=K2(s);return a===void 0?[]:[a]}),o=new Set(i.map(s=>s.group)),r=new Set(i.map(s=>Y0(s.owner)));return{panes:i,activeByOwner:kE(e.activeByOwner,s=>r.has(s)),activePaneByGroup:kE(e.activePaneByGroup,s=>o.has(s)),sizesByGroup:Z2(e.sizesByGroup,o)}}function K2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.id,i=e.group,o=e.title,r$18=e.fallbackTitle;if(typeof t!=`string`||typeof i!=`string`||typeof o!=`string`||typeof r$18!=`string`)return;let s=e.owner,a=e.custom,l=e.auto,c=e.cwd;return r(r(r({id:t,group:i,title:o,fallbackTitle:r$18,owner:typeof s==`string`?s:void 0},typeof a==`string`?{custom:a}:{}),typeof l==`string`?{auto:l}:{}),typeof c==`string`?{cwd:c}:{})}function kE(n,e){if(typeof n!=`object`||n===null)return{};let t=n,i={};for(let[o,r]of Object.entries(t))e(o)&&(i[o]=typeof r==`string`?r:void 0);return i}function Z2(n,e){if(typeof n!=`object`||n===null)return{};let t=n,i={};for(let[o,r]of Object.entries(t)){if(!e.has(o)||!Array.isArray(r))continue;let s=r.filter(a=>typeof a==`number`);s.length===r.length&&s.length>0&&(i[o]=s)}return i}var IE=`file:`;var Q2=`mention:`;var Vt=class n{morse=w(Ie);drafts=w(ir);terminals=w(rr);queued=w(ba);items=N([]);active=N(void 0);draftCounter=0;pendingDraft;restorePending=!1;constructor(){ne(()=>this.drafts.use(this.composerKey()))}tabs=this.items.asReadonly();activeId=this.active.asReadonly();mainTabs=C(()=>this.items().filter(e=>e.kind===`session`||e.mention!==!0));activeTab=C(()=>this.items().find(e=>e.id===this.active()));noSessionInFront=C(()=>this.morse.capabilities()?.filePreview===!0&&this.active()===void 0);contextSessionId=C(()=>{let e=this.activeTab();if(e?.kind===`session`)return e.id;if(!(e?.kind!==`file`||e.sessionId===void 0))return this.findSession(e.sessionId)!==void 0?e.sessionId:void 0});composerKey=C(()=>this.contextSessionId()??this.morse.state().sessionId);mentionTabs=C(()=>{let e=this.contextSessionId();return this.items().filter(t=>t.kind===`file`&&t.mention===!0&&(e===void 0?t.sessionId===void 0:t.sessionId===e))});openSessionIds=C(()=>new Set(this.items().filter(e=>e.kind===`session`).map(e=>e.id)));ensureSession(e){if(this.findSession(e.id)===void 0){this.items.update(i=>[...i,r({kind:`session`},e)]),this.active()===void 0&&this.active.set(e.id);return}this.refreshSession(e)}refreshSession(e){let t=this.findSession(e.id);t===void 0||t.title===e.title&&t.cwd===e.cwd||this.items.update(i=>i.map(o=>o.kind===`session`&&o.id===e.id?r(r({},o),e):o))}startDraft(e){this.openDraft(e),this.morse.newSession(e)}openDraft(e){this.draftCounter+=1;let t=`draft-${this.draftCounter}`;this.items.update(i=>[...i,{kind:`session`,id:t,title:`New session`,cwd:e,draft:!0}]),this.active.set(t),this.pendingDraft=t}focusSession(e){this.restorePending=!1,this.pendingDraft=void 0,this.discardEmptyDrafts(),this.showSession(e),this.morse.activateSession(e.id,e.cwd)}showSession(e){if(this.restorePending){this.restorePending=!1,this.ensureSession(e);let t=this.activeTab();if(t?.kind===`session`&&t.draft!==!0&&t.id!==e.id){this.morse.activateSession(t.id,t.cwd);return}t===void 0&&this.active.set(e.id);return}this.promoteDraft(e),this.ensureSession(e),this.active.set(e.id)}snapshot(){let e=new Set(this.items().filter(o=>o.kind===`session`&&o.draft!==!0).map(o=>o.id)),t=this.items().flatMap(o=>o.kind===`session`?[r({kind:`session`,id:o.id,title:o.title,cwd:o.cwd},o.draft===!0?{draft:!0}:{})]:o.mention===!0&&(o.sessionId===void 0||!e.has(o.sessionId))?[]:[r(r(r(r(r(r({kind:`file`,id:o.id,path:o.path,title:o.title},o.mention===!0?{mention:!0}:{}),o.sessionId!==void 0&&e.has(o.sessionId)?{sessionId:o.sessionId}:{}),o.language!==void 0?{language:o.language}:{}),o.commitHash!==void 0?{commitHash:o.commitHash}:{}),o.commitSubject!==void 0?{commitSubject:o.commitSubject}:{}),o.projectCwd!==void 0?{projectCwd:o.projectCwd}:{})]),i=this.active();return r({tabs:t},i!==void 0&&t.some(o=>o.id===i)?{activeId:i}:{})}restore(e){let t=J2(e);if(t===void 0)return;let i=t.tabs.flatMap(a=>a.kind===`session`?[r({kind:`session`,id:a.id,title:a.title,cwd:a.cwd},a.draft===!0?{draft:!0}:{})]:[r(r(r(r(r({kind:`file`,id:a.id,path:a.path,title:a.title,language:a.language??Sp(a.path),loading:!1},a.mention===!0?{mention:!0}:{}),a.sessionId!==void 0?{sessionId:a.sessionId}:{}),a.commitHash!==void 0?{commitHash:a.commitHash}:{}),a.commitSubject!==void 0?{commitSubject:a.commitSubject}:{}),a.projectCwd!==void 0?{projectCwd:a.projectCwd}:{})]);this.items.set(i);let o=t.activeId!==void 0&&i.some(a=>a.id===t.activeId)?t.activeId:void 0;this.active.set(o),this.restorePending=o!==void 0;let r$19=i.find(a=>a.id===o);this.pendingDraft=r$19?.kind===`session`&&r$19.draft===!0?o:void 0,this.draftCounter=i.reduce((a,l)=>l.kind===`session`&&l.draft===!0?Math.max(a,nL(l.id)):a,this.draftCounter);let s=this.activeTab();s?.kind===`file`&&this.needsLoad(s)&&this.load(s.id)}endRestore(){this.restorePending=!1}openFile(e){let t=this.focusedOwner();this.placeFileTab(`${IE}${e}`,e,e,t.id!==void 0,t.id,t.cwd)}openCommitFile(e,t,i){let o=this.focusedOwner(),r=oL(e,t);this.placeFileTab(r,r,t,o.id!==void 0,o.id,o.cwd,{commitHash:e,commitSubject:i})}openMentionFile(e){let t=this.focusedOwner();this.placeFileTab(`${IE}${e}`,e,e,!0,t.id,t.cwd)}focusedOwner(){let e=this.activeTab();if(e?.kind===`session`)return{id:e.id,cwd:e.cwd??this.morse.state().workspace?.cwd};if(e?.kind===`file`&&e.sessionId!==void 0&&this.findSession(e.sessionId)!==void 0)return{id:e.sessionId,cwd:e.projectCwd??this.morse.state().workspace?.cwd};let t=this.morse.state().sessionId;return t!==void 0&&this.findSession(t)!==void 0?{id:t,cwd:this.morse.state().workspace?.cwd}:{cwd:this.morse.state().workspace?.cwd}}placeFileTab(e,t,i,o,r$20,s$7,a={}){let l=o?NE(r$20,t):e,c=this.items().find(m=>m.id===l);if(c!==void 0){c.kind===`file`&&this.revealFileTab(l,c,r$20,s$7);return}let p=o?this.items().find(m=>m.kind===`file`&&m.id===e):void 0;if(p!==void 0){let m=p.projectCwd!==s$7;this.items.update(v=>v.map(b=>b.id===p.id&&b.kind===`file`?r(s(r({},b),{id:l,mention:!0,sessionId:r$20,projectCwd:s$7}),m?PE():{}):b)),this.active.set(l),(m||this.needsLoad(p))&&this.load(l);return}this.items.update(m=>[...m,r({kind:`file`,id:l,path:i,title:iL(i),language:Sp(i),loading:!1,mention:o,sessionId:r$20,projectCwd:s$7},a)]),this.active.set(l),this.load(l)}revealFileTab(e,t,i,o){let r$21=t.projectCwd!==o;(t.sessionId!==i||r$21)&&this.patch(e,r({sessionId:i,projectCwd:o},r$21?PE():{})),this.active.set(e),(r$21||this.needsLoad(t))&&this.load(e)}select(e){let t=this.items().find(i=>i.id===e);if(t!==void 0){if(e===this.active()&&t.kind===`file`&&t.mention===!0&&t.sessionId!==void 0){let i=this.findSession(t.sessionId);if(i!==void 0){this.select(i.id);return}}if(this.active.set(e),t.kind===`session`){t.draft===!0?(this.pendingDraft=t.id,this.morse.state().sessionId!==void 0&&this.morse.newSession(t.cwd)):(this.pendingDraft=void 0,this.discardEmptyDrafts(),this.morse.activateSession(t.id,t.cwd));return}this.needsLoad(t)&&this.load(e)}}canMove(e,t){if(e===t)return!1;let i=this.items(),o=i.find(s=>s.id===e),r=i.find(s=>s.id===t);return o!==void 0&&r!==void 0&&OE(o)===OE(r)}move(e,t){if(!this.canMove(e,t))return;let i=this.items(),o=i.findIndex(c=>c.id===e),r=i.findIndex(c=>c.id===t),s=i[o],a=i.filter(c=>c.id!==e),l=a.findIndex(c=>c.id===t);a.splice(o<r?l+1:l,0,s),this.items.set(a)}close(e){let t=this.items().findIndex(s=>s.id===e);if(t===-1)return;let i=this.items()[t],o=i.kind===`session`&&i.draft!==!0,r=i.kind===`session`?i.cwd:void 0;this.remove(this.doomedWith(e),t),o&&this.fallBackToEmptySession(r)}forget(e){let t=this.items().findIndex(i=>i.id===e);t!==-1&&this.remove(this.doomedWith(e),t)}clearActiveSession(){if(this.restorePending)return;let e=this.items().find(t=>t.id===this.active());e!==void 0&&e.kind===`session`&&e.draft!==!0&&this.active.set(void 0)}menuScope(e){let t=e===void 0?void 0:this.items().find(i=>i.id===e);return t===void 0||t.kind===`session`?this.items():t.mention===!0?this.items().filter(i=>i.kind===`file`&&i.mention===!0&&i.sessionId===t.sessionId):this.items().filter(i=>i.kind===`file`&&i.mention!==!0)}canCloseToTheRight(e){let t=this.menuScope(e),i=t.findIndex(o=>o.id===e);return i!==-1&&i<t.length-1}canCloseOthers(e){return this.menuScope(e).length>1}closeOthers(e){let t=this.items().find(c=>c.id===e);if(t===void 0)return;let i=this.menuScope(e),o=new Set([e]);if(t.kind===`session`)for(let c of this.mentionFilesOf(e))o.add(c.id);let r=i.filter(c=>!o.has(c.id));if(r.length===0)return;let s=new Set(r.map(c=>c.id)),a=r.some(c=>c.kind===`session`&&c.draft!==!0),l=r.find(c=>c.kind===`session`)?.cwd;this.items.update(c=>c.filter(p=>!s.has(p.id))),this.forgetDrafts(s),this.active.set(e),t.kind===`session`&&t.draft!==!0&&this.morse.activateSession(t.id,t.cwd),this.pruneOrphanMentions(),a&&this.fallBackToEmptySession(l)}closeToTheRight(e){let t=this.menuScope(e),i=t.findIndex(c=>c.id===e);if(i===-1)return;let o=t.slice(i+1);if(o.length===0)return;let r=new Set(o.map(c=>c.id)),s=o.some(c=>c.kind===`session`&&c.draft!==!0),a=o.find(c=>c.kind===`session`)?.cwd,l=this.active();this.items.update(c=>c.filter(p=>!r.has(p.id))),this.forgetDrafts(r),this.pruneOrphanMentions(),l!==void 0&&r.has(l)&&this.select(e),s&&this.fallBackToEmptySession(a)}closeAll(e){let t=this.menuScope(e);if(t.length===0)return;let i=new Set(t.map(a=>a.id)),o=t.some(a=>a.kind===`session`&&a.draft!==!0),r=t.find(a=>a.kind===`session`)?.cwd,s=this.active();if(this.items.update(a=>a.filter(l=>!i.has(l.id))),this.forgetDrafts(i),this.pruneOrphanMentions(),s!==void 0&&i.has(s)){let a=this.items(),l=a.at(-1)??a[0];l!==void 0?this.select(l.id):this.active.set(void 0)}o&&this.fallBackToEmptySession(r)}fallBackToEmptySession(e){this.items().some(t=>t.kind===`session`)||this.morse.state().sessionId!==void 0&&this.morse.newSession(e??this.morse.state().workspace.cwd)}doomedWith(e){let t=new Set([e]),i=new Set(this.items().filter(o=>o.kind===`session`&&o.id!==e).map(o=>o.id));for(let o of this.items())o.kind!==`file`||o.mention!==!0||(o.sessionId===void 0||o.sessionId===e||!i.has(o.sessionId))&&t.add(o.id);return t}mentionFilesOf(e){return this.items().filter(t=>t.kind===`file`&&t.mention===!0&&t.sessionId===e)}remove(e,t){let i=this.active();if(this.items.update(s=>s.filter(a=>!e.has(a.id))),this.forgetDrafts(e),i===void 0||!e.has(i))return;let o=this.items(),r=o[Math.min(t,o.length-1)];if(r===void 0){this.active.set(void 0);return}this.select(r.id)}forgetDrafts(e){for(let t of e)t===this.pendingDraft&&(this.pendingDraft=void 0),this.drafts.forget(t),this.terminals.forgetOwner(t),this.queued.forgetOwner(t)}pruneOrphanMentions(){let e=new Set(this.items().filter(o=>o.kind===`session`).map(o=>o.id)),t=this.items(),i=new Set(t.filter(o=>o.kind===`file`&&o.mention===!0&&(o.sessionId===void 0||!e.has(o.sessionId))).map(o=>o.id));i.size!==0&&this.remove(i,t.findIndex(o=>o.id===this.active()))}reload(e){this.patch(e,{diff:void 0,diffError:void 0}),this.load(e)}loadDiff(e){let t=this.items().find(o=>o.id===e);if(t===void 0||t.kind!==`file`||t.diff!==void 0||t.diffLoading===!0)return;this.patch(e,{diffLoading:!0,diffError:void 0}),(t.commitHash!==void 0?this.morse.requestHostCommand(`gitCommitDiff`,{hash:t.commitHash,path:t.path,cwd:t.projectCwd}):this.morse.requestHostCommand(`gitDiff`,{path:t.path,cwd:t.projectCwd})).then(o=>{let r=tL(o);if(r===void 0){this.patch(e,{diffLoading:!1,diffError:t.commitHash===void 0?`Could not read this file’s changes.`:`Could not read this file in that commit.`});return}this.patch(e,{diffLoading:!1,diff:r})})}findSession(e){return this.items().find(t=>t.kind===`session`&&t.id===e)}promoteDraft(e){let t=this.pendingDraft;if(this.pendingDraft=void 0,t===void 0)return;let i=this.items().find(o=>o.kind===`session`&&o.id===t&&o.draft===!0);if(i!==void 0){if(this.findSession(e.id)!==void 0){this.discardEmptyDrafts();return}this.drafts.rekey(i.id,e.id),this.terminals.rekey(i.id,e.id),this.queued.rekey(i.id,e.id),this.items.update(o=>o.map(r$22=>r$22.kind===`session`&&r$22.id===i.id?r({kind:`session`},e):r$22.kind===`file`&&r$22.mention===!0&&r$22.sessionId===i.id?s(r({},r$22),{sessionId:e.id,id:NE(e.id,r$22.path)}):r$22))}}discardEmptyDrafts(){let e=this.items().filter(i=>i.kind===`session`&&i.draft===!0&&this.drafts.isEmpty(i.id));if(e.length===0)return;let t=new Set(e.map(i=>i.id));this.items.update(i=>i.filter(o=>!t.has(o.id))),this.pendingDraft!==void 0&&t.has(this.pendingDraft)&&(this.pendingDraft=void 0);for(let i of t)this.drafts.forget(i),this.terminals.forgetOwner(i),this.queued.forgetOwner(i);this.pruneOrphanMentions()}needsLoad(e){return e.kind!==`file`?!1:e.commitHash!==void 0?e.diff===void 0&&e.diffLoading!==!0&&e.diffError===void 0:!e.loading&&e.content===void 0&&e.error===void 0}async load(e){let t=this.items().find(r=>r.id===e);if(t===void 0||t.kind!==`file`)return;if(t.commitHash!==void 0){this.loadDiff(e);return}this.patch(e,{loading:!0,error:void 0});let o=X2(await this.morse.requestHostCommand(`readFile`,{path:t.path,cwd:t.projectCwd}));if(o===void 0){this.patch(e,{loading:!1,error:`Could not read this file.`});return}this.patch(e,{loading:!1,content:o.content,size:o.size,truncated:o.truncated,binary:o.binary,language:Sp(o.path)})}patch(e,t){this.items.update(i=>i.map(o=>o.id===e&&o.kind===`file`?r(r({},o),t):o))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function X2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.content,i=e.path;if(typeof t!=`string`||typeof i!=`string`)return;let o=e.size;return{path:i,content:t,size:typeof o==`number`?o:t.length,truncated:e.truncated===!0,binary:e.binary===!0}}function J2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.tabs;if(!Array.isArray(t))return;let i=t.flatMap(r=>{let s=eL(r);return s===void 0?[]:[s]}),o=e.activeId;return r({tabs:i},typeof o==`string`?{activeId:o}:{})}function eL(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.id;if(typeof t!=`string`||t.length===0)return;if(e.kind===`session`){let p=e.title;if(typeof p!=`string`)return;let m=e.cwd;return r(r({kind:`session`,id:t,title:p},typeof m==`string`?{cwd:m}:{}),e.draft===!0?{draft:!0}:{})}if(e.kind!==`file`)return;let i=e.path,o=e.title;if(typeof i!=`string`||typeof o!=`string`)return;let r$23=e.sessionId,s=e.language,a=e.commitHash,l=e.commitSubject,c=e.projectCwd;return r(r(r(r(r(r({kind:`file`,id:t,path:i,title:o},e.mention===!0?{mention:!0}:{}),typeof r$23==`string`?{sessionId:r$23}:{}),typeof s==`string`?{language:s}:{}),typeof a==`string`?{commitHash:a}:{}),typeof l==`string`?{commitSubject:l}:{}),typeof c==`string`?{projectCwd:c}:{})}function tL(n){if(typeof n!=`object`||n===null)return;let e=n.diff;return typeof e==`string`?e:void 0}function nL(n){let e=/^draft-(\d+)$/.exec(n);return e===null?0:Number.parseInt(e[1],10)}function iL(n){let e=n.lastIndexOf(`/`);return e===-1?n:n.slice(e+1)}function NE(n,e){return`${Q2}${n??``}:${e}`}function oL(n,e){return`commit:${n}:${e}`}function PE(){return{content:void 0,error:void 0,diff:void 0,diffError:void 0}}function OE(n){return n.kind===`file`&&n.mention===!0?`mention`:`main`}function rL(n,e,t=80){let i=Math.floor(n-4-8);return Math.max(t,Math.min(e,i))}var Dp=class n{preferred=se(320,{alias:`morsePopoverFit`});host=w(St);renderer=w($n).createRenderer(null,null);observer;constructor(){An(()=>{this.fit();let e=this.anchor();e&&typeof ResizeObserver<`u`&&(this.observer=new ResizeObserver(()=>this.fit()),this.observer.observe(e))}),w(He).onDestroy(()=>this.observer?.disconnect())}onWindowResize(){this.fit()}anchor(){let e=this.host.nativeElement;return e.offsetParent??e.parentElement}fit(){let t=rL(this.anchor()?.getBoundingClientRect().top??0,this.preferred());this.renderer.setStyle(this.host.nativeElement,`--morse-popover-max-height`,`${t}px`)}static ɵfac=function(t){return new(t||n)};static ɵdir=oi({type:n,selectors:[[``,`morsePopoverFit`,``]],hostBindings:function(t,i){t&1&&A(`resize`,function(){return i.onWindowResize()},lg)},inputs:{preferred:[1,`morsePopoverFit`,`preferred`]}})};var Sn=class n{morseEnter=se(0);morseEnterY=se(8);morseEnterDuration=se(260);morseEnterScale=se(void 0);element=w(St);animation=w(En);ngAfterViewInit(){let e=Math.max(0,this.morseEnter());this.animation.enter(this.element.nativeElement,{y:this.morseEnterY(),duration:this.morseEnterDuration(),scale:this.morseEnterScale(),delay:Math.min(e,8)*24})}static ɵfac=function(t){return new(t||n)};static ɵdir=oi({type:n,selectors:[[``,`morseEnter`,``]],inputs:{morseEnter:[1,`morseEnter`],morseEnterY:[1,`morseEnterY`],morseEnterDuration:[1,`morseEnterDuration`],morseEnterScale:[1,`morseEnterScale`]}})};var sL=[`list`];function aL(n,e){n&1&&(h(0,`div`,2),u(1,`Reading the workspace…`),y())}function lL(n,e){if(n&1&&(h(0,`div`,4),u(1),y()),n&2){let t=f(2);d(),ie(`No match for “`,t.query(),`”.`)}}function cL(n,e){if(n&1){let t=L();h(0,`div`,4),u(1,` The host returned no workspace files. `),h(2,`button`,5),A(`click`,function(){D(t);return T(f(2).reload.emit())}),u(3,`Load again`),y()()}}function dL(n,e){if(n&1&&E(0,lL,2,1,`div`,4)(1,cL,4,0,`div`,4),n&2)S(f().query().length>0?0:1)}function uL(n,e){if(n&1){let t=L();h(0,`button`,12),A(`mouseenter`,function(){D(t);let o=f().$index;return T(f(2).activeChange.emit(o))})(`click`,function(){D(t);let o=f().$implicit;return T(f(2).quote.emit(o))}),u(1,` ⧉ `),y()}}function pL(n,e){if(n&1){let t=L();h(0,`li`)(1,`button`,7),A(`mouseenter`,function(){let o=D(t).$index;return T(f(2).activeChange.emit(o))})(`click`,function(){let o=D(t).$implicit;return T(f(2).pick.emit(o))}),h(2,`span`,8),u(3),y(),h(4,`span`,9)(5,`span`,10),u(6),y(),u(7),y()(),E(8,uL,2,0,`button`,11),y()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);q(`active`,i===o.active()),d(3),I(o.isDirectory(t)?`▸`:`▤`),d(3),I(o.split(t).dir),d(),ie(``,o.split(t).base,` `),d(),S(o.isDirectory(t)?-1:8)}}function fL(n,e){if(n&1&&(h(0,`ul`,null,0),X(2,pL,9,6,`li`,6,kn),y()),n&2){let t=f();d(2),J(t.files())}}var Tp=class n{files=se.required();busy=se(!1);query=se(``);active=se(0);pick=je();quote=je();close=je();reload=je();activeChange=je();list=Ue(`list`);constructor(){ne(()=>{this.active(),this.files(),setTimeout(()=>this.revealActive(),0)})}revealActive(){let e=this.list()?.nativeElement,t=e?.children.item(this.active());if(!e||!t)return;let i=e.getBoundingClientRect(),o=t.getBoundingClientRect();o.top<i.top?e.scrollTop-=i.top-o.top:o.bottom>i.bottom&&(e.scrollTop+=o.bottom-i.bottom)}split(e){let t=e.lastIndexOf(`/`);return t===-1?{dir:``,base:e}:{dir:e.slice(0,t+1),base:e.slice(t+1)}}isDirectory(e){return K0(e)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-file-picker`]],viewQuery:function(t,i){t&1&&nt(i.list,sL,5),t&2&&ot()},inputs:{files:[1,`files`],busy:[1,`busy`],query:[1,`query`],active:[1,`active`]},outputs:{pick:`pick`,quote:`quote`,close:`close`,reload:`reload`,activeChange:`activeChange`},decls:19,vars:3,consts:[[`list`,``],[1,`picker`,3,`morseEnter`,`morseEnterY`],[1,`busy`],[1,`hint`],[1,`empty`],[`type`,`button`,1,`reload`,3,`click`],[3,`active`],[`type`,`button`,1,`row`,3,`mouseenter`,`click`],[1,`icon`],[1,`path`],[1,`dir`],[`type`,`button`,`title`,`Mention and quote a line range`,`aria-label`,`Mention and quote a line range`,1,`quote`],[`type`,`button`,`title`,`Mention and quote a line range`,`aria-label`,`Mention and quote a line range`,1,`quote`,3,`mouseenter`,`click`]],template:function(t,i){t&1&&(h(0,`div`,1),E(1,aL,2,0,`div`,2)(2,dL,2,1)(3,fL,4,0,`ul`),h(4,`div`,3)(5,`kbd`),u(6,`↑`),y(),h(7,`kbd`),u(8,`↓`),y(),u(9,` move · `),h(10,`kbd`),u(11,`Enter`),y(),u(12,` mention · `),h(13,`kbd`),u(14,`⇧Enter`),y(),u(15,` quote · `),h(16,`kbd`),u(17,`Esc`),y(),u(18,` close `),y()()),t&2&&(j(`morseEnter`,0)(`morseEnterY`,6),d(),S(i.busy()&&i.files().length===0?1:i.files().length===0?2:3))},dependencies:[Sn],styles:[`[_nghost-%COMP%]{display:block}.picker[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:var(--%NS%morse-popover-max-height, 300px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 10px 28px #0000004d;overflow:hidden}ul[_ngcontent-%COMP%]{margin:0;padding:4px 0;list-style:none;overflow-y:auto}li[_ngcontent-%COMP%]{display:flex;align-items:center}li[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;gap:8px;padding:4px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg);font-size:12px;text-align:left;cursor:pointer}li.active[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{background:var(--%NS%morse-active)}.quote[_ngcontent-%COMP%]{flex:none;width:26px;height:26px;margin-right:4px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg-muted);font-size:12px;cursor:pointer;opacity:.55}.quote[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg);opacity:1}.icon[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:11px}.path[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--%NS%morse-font-mono)}.dir[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted)}.empty[_ngcontent-%COMP%], .busy[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--%NS%morse-fg-muted);font-size:12px}.reload[_ngcontent-%COMP%]{padding:1px 8px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);font-size:11px;cursor:pointer}.reload[_ngcontent-%COMP%]:hover{background:var(--%NS%morse-hover)}.hint[_ngcontent-%COMP%]{padding:5px 10px;border-top:1px solid var(--%NS%morse-border);color:var(--%NS%morse-fg-muted);font-size:11px}kbd[_ngcontent-%COMP%]{font-family:var(--%NS%morse-font-mono);font-size:10px;padding:0 3px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm)}`]})};function RE(n,e,t=50){let i=e.trim().toLowerCase();return n.map(o=>({file:o,score:i.length===0?0:mL(o,i)})).filter(o=>o.score<Number.POSITIVE_INFINITY).sort((o,r)=>AE(o.file)-AE(r.file)||o.score-r.score||o.file.length-r.file.length||o.file.localeCompare(r.file)).slice(0,t).map(o=>o.file)}function K0(n){return n.endsWith(`/`)}function AE(n){return K0(n)?0:1}function mL(n,e){let t=(K0(n)?n.slice(0,-1):n).toLowerCase(),i=t.lastIndexOf(`/`),o=i===-1?t:t.slice(i+1);return o.startsWith(e)?0:o.includes(e)?1:t.startsWith(e)?2:t.includes(e)?3:Number.POSITIVE_INFINITY}var hL=[`list`];var gL=(n,e)=>e.id;function yL(n,e){if(n&1&&(h(0,`div`,3),u(1),y()),n&2){let t=f(2);d(),ie(`No command matches “`,t.query(),`”.`)}}function _L(n,e){n&1&&(h(0,`div`,3),u(1,`No commands available in this session.`),y())}function vL(n,e){if(n&1&&E(0,yL,2,1,`div`,3)(1,_L,2,0,`div`,3),n&2)S(f().query().length>0?0:1)}function bL(n,e){if(n&1&&(h(0,`span`,5),u(1),y()),n&2){let t=f().$implicit;d(),I(t.icon)}}function xL(n,e){if(n&1&&(h(0,`span`,8),u(1),y()),n&2){let t=f().$implicit;d(),I(t.description)}}function CL(n,e){if(n&1&&(h(0,`span`,9),u(1),y()),n&2){let t=f().$implicit;d(),I(t.badge)}}function wL(n,e){if(n&1){let t=L();h(0,`li`)(1,`button`,4),A(`mouseenter`,function(){let o=D(t).$index;return T(f(2).activeChange.emit(o))})(`pointerdown`,function(o){return o.preventDefault()})(`click`,function(){let o=D(t).$implicit;return T(f(2).pick.emit(o.id))}),E(2,bL,2,1,`span`,5),h(3,`span`,6)(4,`span`,7),u(5),y(),E(6,xL,2,1,`span`,8),y(),E(7,CL,2,1,`span`,9),y()()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);d(),q(`active`,i===o.active()),d(),S(t.icon?2:-1),d(3),I(t.label),d(),S(t.description?6:-1),d(),S(t.badge?7:-1)}}function EL(n,e){if(n&1&&(h(0,`ul`,null,0),X(2,wL,8,6,`li`,null,gL),y()),n&2){let t=f();d(2),J(t.items())}}var Mp=class n{items=se.required();query=se(``);active=se(0);pick=je();close=je();activeChange=je();list=Ue(`list`);constructor(){ne(()=>{this.active(),this.items(),setTimeout(()=>this.revealActive(),0)})}revealActive(){let e=this.list()?.nativeElement,t=e?.children.item(this.active());if(!e||!t)return;let i=e.getBoundingClientRect(),o=t.getBoundingClientRect();o.top<i.top?e.scrollTop-=i.top-o.top:o.bottom>i.bottom&&(e.scrollTop+=o.bottom-i.bottom)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-command-picker`]],viewQuery:function(t,i){t&1&&nt(i.list,hL,5),t&2&&ot()},inputs:{items:[1,`items`],query:[1,`query`],active:[1,`active`]},outputs:{pick:`pick`,close:`close`,activeChange:`activeChange`},decls:18,vars:3,consts:[[`list`,``],[1,`picker`,3,`morseEnter`,`morseEnterY`],[1,`hint`],[1,`empty`],[`type`,`button`,3,`mouseenter`,`pointerdown`,`click`],[1,`icon`],[1,`text`],[1,`label`],[1,`description`],[1,`badge`]],template:function(t,i){t&1&&(h(0,`div`,1),E(1,vL,2,1)(2,EL,4,0,`ul`),h(3,`div`,2)(4,`kbd`),u(5,`↑`),y(),h(6,`kbd`),u(7,`↓`),y(),u(8,` move · `),h(9,`kbd`),u(10,`Enter`),y(),u(11,` run · `),h(12,`kbd`),u(13,`Tab`),y(),u(14,` insert · `),h(15,`kbd`),u(16,`Esc`),y(),u(17,` close `),y()()),t&2&&(j(`morseEnter`,0)(`morseEnterY`,6),d(),S(i.items().length===0?1:2))},dependencies:[Sn],styles:[`[_nghost-%COMP%]{display:block}.picker[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:var(--%NS%morse-popover-max-height, 320px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 10px 28px #0000004d;overflow:hidden}ul[_ngcontent-%COMP%]{margin:0;padding:4px 0;list-style:none;overflow-y:auto}li[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg);font-size:12px;text-align:left;cursor:pointer}li[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--%NS%morse-active)}.icon[_ngcontent-%COMP%]{flex:none;width:14px;color:var(--%NS%morse-fg-muted);text-align:center}.text[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--%NS%morse-font-mono)}.description[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--%NS%morse-fg-muted);font-size:11px}.badge[_ngcontent-%COMP%]{flex:none;padding:1px 6px;border-radius:999px;background:var(--%NS%morse-badge-bg);color:var(--%NS%morse-badge-fg);font-size:10px}.empty[_ngcontent-%COMP%]{padding:8px 10px;color:var(--%NS%morse-fg-muted);font-size:12px}.hint[_ngcontent-%COMP%]{padding:5px 10px;border-top:1px solid var(--%NS%morse-border);color:var(--%NS%morse-fg-muted);font-size:11px}kbd[_ngcontent-%COMP%]{font-family:var(--%NS%morse-font-mono);font-size:10px;padding:0 3px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm)}`]})};function LE(n,e,t=50){let i=e.trim().toLowerCase();return i.length===0?n.slice(0,t):n.map(o=>({item:o,score:SL(o,i)})).filter(o=>o.score<Number.POSITIVE_INFINITY).sort((o,r)=>o.score-r.score||o.item.label.length-r.item.label.length).slice(0,t).map(o=>o.item)}function SL(n,e){let t=n.label.toLowerCase();return t.startsWith(e)?0:t.includes(e)?1:n.description?.toLowerCase().includes(e)?2:Number.POSITIVE_INFINITY}var DL=[`card`];var TL=(n,e)=>e.id;function ML(n,e){n&1&&(g(0,`p`,5),u(1),_()),n&2&&(d(),I(e))}function kL(n,e){n&1&&(g(0,`span`,16),u(1,`required`),_())}function IL(n,e){if(n&1){let t=L();g(0,`textarea`,19),F(`input`,function(o){D(t);let r=f().$implicit;return T(f().setValue(r.id,o))})(`keydown`,function(o){D(t);return T(f(2).onSubmitKey(o))}),_()}if(n&2){let t=f().$implicit;te(`value`,f().value(t.id)),Y(`aria-label`,t.label)}}function NL(n,e){if(n&1){let t=L();g(0,`input`,20),F(`input`,function(o){D(t);let r=f().$implicit;return T(f().setValue(r.id,o))})(`keydown.enter`,function(o){D(t);return T(f(2).submit(o))}),_()}if(n&2){let t=f().$implicit;te(`value`,f().value(t.id)),Y(`aria-label`,t.label)}}function PL(n,e){if(n&1&&(g(0,`label`,7)(1,`span`,8),u(2),E(3,kL,2,0,`span`,16),_(),E(4,IL,1,2,`textarea`,17)(5,NL,1,2,`input`,18),_()),n&2){let t=e.$implicit;d(2),ie(` `,t.label,` `),d(),S(t.required?3:-1),d(),S(t.index===void 0?4:5)}}var kp=class n{request=se.required();submitted=je();cancelled=je();card=Ue(`card`);values=N({});extra=N(``);preview=C(()=>ow(this.request().form,this.values(),this.extra()));ready=C(()=>this.request().form.arguments.every(e=>!e.required||(this.values()[e.id]??``).trim().length>0));constructor(){ne(()=>{this.request(),this.values.set({}),this.extra.set(``),setTimeout(()=>{this.card()?.nativeElement.querySelector(`input, textarea`)?.focus()},0)})}value(e){return this.values()[e]??``}setValue(e,t){let i=t.target.value;this.values.update(o=>s(r({},o),{[e]:i}))}setExtra(e){this.extra.set(e.target.value)}submit(e){e?.preventDefault(),this.ready()&&this.submitted.emit(this.preview())}onSubmitKey(e){e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&this.submit(e)}onEscape(){this.cancelled.emit()}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-prompt-template-dialog`]],viewQuery:function(t,i){t&1&&nt(i.card,DL,5),t&2&&ot()},hostBindings:function(t,i){t&1&&A(`keydown.escape`,function(){return i.onEscape()},Dt)},inputs:{request:[1,`request`]},outputs:{submitted:`submitted`,cancelled:`cancelled`},decls:26,vars:5,consts:[[`card`,``],[1,`modal-layer`,3,`click`],[`role`,`dialog`,`aria-modal`,`true`,`aria-labelledby`,`template-title`,1,`modal-card`,3,`click`],[1,`head`],[`id`,`template-title`],[1,`description`],[1,`fields`],[1,`field`],[1,`field-label`],[1,`optional`],[`rows`,`3`,`aria-label`,`Additional instructions`,`placeholder`,`Anything the template does not cover`,3,`input`,`keydown`,`value`],[1,`preview`],[`aria-label`,`Prompt preview`],[1,`actions`],[`type`,`button`,1,`secondary`,3,`click`],[`type`,`button`,3,`click`,`disabled`],[1,`required`],[`rows`,`2`,`placeholder`,`Shell-quoted arguments, e.g. "api tests" lint`,3,`value`],[`type`,`text`,3,`value`],[`rows`,`2`,`placeholder`,`Shell-quoted arguments, e.g. "api tests" lint`,3,`input`,`keydown`,`value`],[`type`,`text`,3,`input`,`keydown.enter`,`value`]],template:function(t,i){if(t&1&&(g(0,`div`,1),F(`click`,function(){return i.cancelled.emit()}),g(1,`div`,2,0),F(`click`,function(r){return r.stopPropagation()}),g(3,`header`,3)(4,`h2`,4),u(5),_(),E(6,ML,2,1,`p`,5),_(),g(7,`div`,6),X(8,PL,6,3,`label`,7,TL),g(10,`label`,7)(11,`span`,8),u(12,` Additional instructions `),g(13,`span`,9),u(14,`optional · appended below the template`),_()(),g(15,`textarea`,10),F(`input`,function(r){return i.setExtra(r)})(`keydown`,function(r){return i.onSubmitKey(r)}),_()(),g(16,`div`,11)(17,`span`,8),u(18,`Preview`),_(),g(19,`pre`,12),u(20),_()(),g(21,`div`,13)(22,`button`,14),F(`click`,function(){return i.cancelled.emit()}),u(23,`Cancel`),_(),g(24,`button`,15),F(`click`,function(){return i.submit()}),u(25,`Send`),_()()()()()),t&2){let o;d(5),ie(`/`,i.request().name),d(),S((o=i.request().description)?6:-1,o),d(2),J(i.request().form.arguments),d(7),te(`value`,i.extra()),d(5),I(i.preview()),d(4),te(`disabled`,!i.ready())}},styles:[`[_nghost-%COMP%]{display:contents}.modal-layer[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:75;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.modal-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;width:min(560px,100%);max-height:min(84vh,760px);overflow:auto;padding:16px 18px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-lg);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 18px 48px #0006;animation:_ngcontent-%COMP%_template-in .14s ease-out}.head[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}h2[_ngcontent-%COMP%]{margin:0;font-family:var(--%NS%morse-font-mono);font-size:14px;font-weight:600}.description[_ngcontent-%COMP%]{margin:0;font-size:12px;color:var(--%NS%morse-fg-muted)}form[_ngcontent-%COMP%], .fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.field-label[_ngcontent-%COMP%]{font-size:11.5px;font-weight:600;color:var(--%NS%morse-fg-muted)}.required[_ngcontent-%COMP%], .optional[_ngcontent-%COMP%]{margin-left:4px;font-weight:400;font-size:10.5px}.required[_ngcontent-%COMP%]{color:var(--%NS%morse-warn)}.optional[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted)}input[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{width:100%;padding:6px 8px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-input-bg, transparent);color:var(--%NS%morse-fg);font-family:inherit;font-size:12.5px;resize:vertical}input[_ngcontent-%COMP%]:focus, textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--%NS%morse-accent)}.preview[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}pre[_ngcontent-%COMP%]{margin:0;max-height:180px;overflow:auto;padding:8px 10px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-code-bg, rgb(0 0 0 / 18%));color:var(--%NS%morse-fg);font-family:var(--%NS%morse-font-mono);font-size:11.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:6px}@keyframes _ngcontent-%COMP%_template-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.modal-card[_ngcontent-%COMP%]{animation:none}}`]})};function Xn(n){return n<1e3?n.toString():n<1e4?`${(n/1e3).toFixed(1)}k`:n<1e6?`${Math.round(n/1e3)}k`:n<1e7?`${(n/1e6).toFixed(1)}M`:`${Math.round(n/1e6)}M`}function FE(n,e){let t=n?.[e];return typeof t==`number`?Xn(t):`—`}function Z0(n){if(!n)return;let e=n.cacheReadTokens??0,t=n.cacheWriteTokens??0,i=n.inputTokens+e+t;if(!(i<=0||e===0&&t===0))return e/i*100}function Q0(n){if(!(n===void 0||n<=0))return`$${n.toFixed(3)}`}function X0(n){let e=[],t=n.usage;if(t){t.inputTokens>0&&e.push(`\u2191${Xn(t.inputTokens)}`),t.outputTokens>0&&e.push(`\u2193${Xn(t.outputTokens)}`),t.cacheReadTokens&&e.push(`R${Xn(t.cacheReadTokens)}`),t.cacheWriteTokens&&e.push(`W${Xn(t.cacheWriteTokens)}`);let r=Z0(t);r!==void 0&&e.push(`CH${r.toFixed(1)}%`)}let i=Q0(n.costUsd);i&&e.push(i);let o=n.contextUsage;if(o){let r=o.percent!==null?`${o.percent.toFixed(1)}%`:`?`;e.push(`${r}/${Xn(o.contextWindow)}`)}return e.join(` `)}var OL=[`search`];var AL=[`list`];var RL=(n,e)=>e.provider;var LL=(n,e)=>e.index;function FL(n,e){if(n&1&&(h(0,`div`,10),u(1),y()),n&2){let t=f();d(),ie(`No model matches “`,t.filter(),`”.`)}}function VL(n,e){n&1&&(h(0,`span`,15),u(1),y()),n&2&&(d(),I(e))}function jL(n,e){n&1&&(h(0,`span`,16),u(1,`✓`),y())}function BL(n,e){if(n&1){let t=L();h(0,`button`,13),A(`mouseenter`,function(){let o=D(t).$implicit;return T(f(4).active.set(o.index))})(`click`,function(){let o=D(t).$implicit;return T(f(4).pick.emit(o.model))}),h(1,`span`,14),u(2),y(),E(3,VL,2,1,`span`,15),E(4,jL,2,0,`span`,16),y()}if(n&2){let t,i=e.$implicit,o=f(4);q(`active`,i.index===o.active())(`selected`,o.keyOf(i.model)===o.current()),j(`title`,o.keyOf(i.model)),Y(`aria-current`,o.keyOf(i.model)===o.current()?`true`:null),d(2),I(i.model.name),d(),S((t=o.context(i.model))?3:-1,t),d(),S(o.keyOf(i.model)===o.current()?4:-1)}}function $L(n,e){if(n&1&&(h(0,`div`,11),u(1),y(),X(2,BL,5,9,`button`,12,LL)),n&2){let t=f().$implicit;d(),I(t.provider),d(),J(t.rows)}}function HL(n,e){if(n&1&&E(0,$L,4,1),n&2){let t=e.$implicit;S(t.rows.length>0?0:-1)}}function zL(n,e){if(n&1&&X(0,HL,1,1,null,null,RL),n&2)J(f().groups())}function UL(n,e){let t=e.trim().toLowerCase(),i=new Map;for(let o of n){if(t.length>0&&!`${o.provider} ${o.id} ${o.name}`.toLowerCase().includes(t))continue;let r=i.get(o.provider);r?r.push(o):i.set(o.provider,[o])}return[...i].map(([o,r])=>({provider:o,models:r}))}var Ip=class n{models=se.required();current=se(``);pick=je();close=je();host=w(St);search=Ue(`search`);list=Ue(`list`);filter=N(``);active=N(0);groups=C(()=>{let e=0;return UL(this.models(),this.filter()).map(t=>({provider:t.provider,rows:t.models.map(i=>({model:i,index:e++}))}))});visible=C(()=>this.groups().flatMap(e=>e.rows.map(t=>t.model)));constructor(){An(()=>this.search()?.nativeElement.focus()),ne(()=>{if(this.groups(),this.filter().trim().length>0)return;let e=this.visible().findIndex(t=>this.keyOf(t)===this.current());e>=0&&this.active.set(e)}),ne(()=>{this.active(),this.groups(),setTimeout(()=>this.revealActive(),0)})}revealActive(){let e=this.list()?.nativeElement,t=e?.querySelectorAll(`.row`)[this.active()];if(!e||!t)return;let i=e.getBoundingClientRect(),o=t.getBoundingClientRect(),r=e.querySelector(`.group`)?.offsetHeight??0,s=i.top+r;o.top<s?e.scrollTop-=s-o.top:o.bottom>i.bottom&&(e.scrollTop+=o.bottom-i.bottom)}keyOf(e){return`${e.provider}/${e.id}`}context(e){return e.contextWindow?Xn(e.contextWindow):``}onFilter(e){this.filter.set(e.target.value),this.active.set(0)}onKeydown(e){let t=this.visible();switch(e.key){case`Escape`:e.preventDefault(),this.close.emit();return;case`ArrowDown`:e.preventDefault(),this.active.update(i=>Math.min(i+1,Math.max(0,t.length-1)));return;case`ArrowUp`:e.preventDefault(),this.active.update(i=>Math.max(0,i-1));return;case`Enter`:{let i=t[this.active()];i&&(e.preventDefault(),this.pick.emit(i));return}default:return}}onDocumentPointerdown(e){let t=e.target;t&&!this.host.nativeElement.contains(t)&&this.close.emit()}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-model-picker`]],viewQuery:function(t,i){t&1&&nt(i.search,OL,5)(i.list,AL,5),t&2&&ot(2)},hostBindings:function(t,i){t&1&&A(`pointerdown`,function(r){return i.onDocumentPointerdown(r)},Dt)},inputs:{models:[1,`models`],current:[1,`current`]},outputs:{pick:`pick`,close:`close`},decls:12,vars:4,consts:[[`search`,``],[`list`,``],[1,`panel`,3,`morseEnter`,`morseEnterY`],[1,`search`],[`aria-hidden`,`true`,1,`search-icon`],[`viewBox`,`0 0 16 16`],[`cx`,`7`,`cy`,`7`,`r`,`4.2`],[`d`,`M10.2 10.2 14 14`],[`type`,`text`,`placeholder`,`Search models`,`aria-label`,`Search models`,3,`input`,`keydown`,`value`],[1,`list`],[1,`empty`],[1,`group`],[`type`,`button`,1,`row`,3,`active`,`selected`,`title`],[`type`,`button`,1,`row`,3,`mouseenter`,`click`,`title`],[1,`name`],[1,`meta`],[1,`check`]],template:function(t,i){t&1&&(h(0,`div`,2)(1,`div`,3)(2,`span`,4),De(),h(3,`svg`,5),ee(4,`circle`,6)(5,`path`,7),y()(),kt(),h(6,`input`,8,0),A(`input`,function(r){return i.onFilter(r)})(`keydown`,function(r){return i.onKeydown(r)}),y()(),h(8,`div`,9,1),E(10,FL,2,1,`div`,10)(11,zL,2,0),y()()),t&2&&(j(`morseEnter`,0)(`morseEnterY`,6),d(6),j(`value`,i.filter()),d(4),S(i.visible().length===0?10:11))},dependencies:[Sn],styles:[`[_nghost-%COMP%]{display:block}.panel[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:var(--%NS%morse-popover-max-height, 340px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 12px 32px #00000059;overflow:hidden}.search[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid var(--%NS%morse-border)}.search-icon[_ngcontent-%COMP%]{position:absolute;left:19px;display:inline-flex;color:var(--%NS%morse-fg-muted);pointer-events:none}.search-icon[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;min-width:0;padding-left:28px;font-size:12.5px}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus-visible{outline:none}.list[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding-bottom:4px}.group[_ngcontent-%COMP%]{position:sticky;top:0;padding:8px 10px 4px;background:var(--%NS%morse-panel, var(--%NS%morse-bg));color:var(--%NS%morse-fg-muted);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg);font:inherit;font-size:12.5px;text-align:left;cursor:pointer}.row.active[_ngcontent-%COMP%], .row[_ngcontent-%COMP%]:hover{background:var(--%NS%morse-hover)}.row.selected[_ngcontent-%COMP%]{background:var(--%NS%morse-active)}.name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:11px}.check[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-accent);font-size:12px}.empty[_ngcontent-%COMP%]{padding:12px 10px;color:var(--%NS%morse-fg-muted);font-size:12px}`]})};var GL=[`brain`];var qL=[`halo`];function WL(n,e){if(n&1&&(De(),fe(0,`path`)),n&2){let t=e.$implicit;Y(`d`,t)}}function YL(n,e){n&1&&fe(0,`span`,3,1)}function KL(n,e){n&1&&fe(0,`span`,4,1)}var ZL=[`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,`M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z`,`M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4`,`M17.599 6.5a3 3 0 0 0 .399-1.375`,`M6.003 5.125A3 3 0 0 0 6.401 6.5`,`M3.477 10.896a4 4 0 0 1 .585-.396`,`M19.938 10.5a4 4 0 0 1 .585.396`,`M6 18a4 4 0 0 1-1.967-.516`,`M19.967 17.484A4 4 0 0 1 18 18`];var QL={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6};function XL(n){return QL[n]??2}function JL(n){switch(n){case`off`:return{params:{opacity:[.35,.6]},duration:5200,ease:`inOut(1)`};case`minimal`:return{params:{opacity:[.6,1]},duration:2200};case`low`:return{params:{rotate:[`-7deg`,`7deg`]},duration:1500};case`medium`:return{params:{scale:[1,1.14]},duration:950,halo:{duration:1300}};case`high`:return{params:{scale:[1,1.18]},duration:560,halo:{duration:800}};case`xhigh`:return{params:{scale:[1,1.16],rotate:[`-8deg`,`8deg`]},duration:440,halo:{duration:620}};case`max`:return{params:{scale:[1,1.22],rotate:[`-12deg`,`12deg`]},duration:320,ease:`linear`,halo:{duration:480}}}}var Np=class n{level=se.required();bumped=se(!1);host=w(St);animation=w(En);brain=Ue(`brain`);halos=iC(`halo`);stoppers=[];paths=ZL;intensity=C(()=>XL(this.level()));constructor(){ne(()=>{let e=this.level(),t=this.brain()?.nativeElement,i=this.halos().map(r=>r.nativeElement);if(this.stopLoops(),!t||!this.animation.isEnabled)return;let o=JL(e);this.stoppers.push(this.animation.loop(t,o.params,{duration:o.duration,delay:o.delay??0,ease:o.ease??`inOut(2)`})),o.halo&&i.forEach((r,s)=>{this.stoppers.push(this.animation.loop(r,{scale:[.72,1.9],opacity:[.55,0]},{duration:o.halo.duration,delay:(o.halo.delay??0)+s*o.halo.duration*.5,ease:`out(2)`,alternate:!1}))})}),ne(()=>{this.bumped()&&this.animation.pop(this.host.nativeElement,{scale:1.3,duration:420})}),w(He).onDestroy(()=>this.stopLoops())}stopLoops(){for(let e of this.stoppers)e();this.stoppers=[]}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-brain`]],viewQuery:function(t,i){t&1&&nt(i.brain,GL,5)(i.halos,qL,5),t&2&&ot(2)},hostVars:3,hostBindings:function(t,i){t&2&&(Y(`data-level`,i.level()),q(`bumped`,i.bumped()))},inputs:{level:[1,`level`],bumped:[1,`bumped`]},decls:6,vars:2,consts:[[`brain`,``],[`halo`,``],[`viewBox`,`0 0 24 24`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.7`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`,1,`brain`],[`aria-hidden`,`true`,1,`wave`,`wave-a`],[`aria-hidden`,`true`,1,`wave`,`wave-b`]],template:function(t,i){t&1&&(De(),g(0,`svg`,2,0),X(2,WL,1,1,`:svg:path`,null,kn),_(),E(4,YL,2,0,`span`,3),E(5,KL,2,0,`span`,4)),t&2&&(d(2),J(i.paths),d(2),S(i.intensity()>=3?4:-1),d(),S(i.intensity()>=4?5:-1))},styles:[`[_nghost-%COMP%]{position:relative;display:inline-flex;width:16px;height:16px;color:var(--%NS%morse-accent)}.brain[_ngcontent-%COMP%]{width:100%;height:100%;transform-box:fill-box;transform-origin:center}.wave[_ngcontent-%COMP%]{position:absolute;inset:-1px;border-radius:50%;border:1px solid currentColor;opacity:0;pointer-events:none}[data-level="off"][_nghost-%COMP%]{color:var(--%NS%morse-fg-muted)}[data-level="minimal"][_nghost-%COMP%]{color:var(--%NS%morse-info)}[data-level="low"][_nghost-%COMP%]{color:var(--%NS%morse-success)}[data-level="medium"][_nghost-%COMP%]{color:var(--%NS%morse-warn)}[data-level="high"][_nghost-%COMP%]{color:var(--%NS%morse-error)}[data-level="xhigh"][_nghost-%COMP%]{color:var(--%NS%morse-error);color:color-mix(in srgb,var(--%NS%morse-error) 55%,var(--%NS%morse-typename))}[data-level="max"][_nghost-%COMP%]{color:var(--%NS%morse-typename)}`]})};var eF=[`panel`];function tF(n,e){n&1&&(h(0,`span`,10),u(1,`✓`),y())}function nF(n,e){if(n&1){let t=L();h(0,`button`,8),A(`mouseenter`,function(){let o=D(t).$index;return T(f(2).active.set(o))})(`click`,function(){let o=D(t).$implicit;return T(f(2).choose(o))}),ee(1,`morse-brain`,2),h(2,`span`,9),u(3),y(),E(4,tF,2,0,`span`,10),y()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);q(`active`,i===o.active())(`selected`,t===o.current()),Y(`aria-selected`,t===o.current()),d(),j(`level`,t),d(2),I(t),d(),S(t===o.current()?4:-1)}}function iF(n,e){if(n&1){let t=L();h(0,`div`,6,0),A(`keydown`,function(o){D(t);return T(f().onKeydown(o))}),X(2,nF,5,8,`button`,7,kn),y()}if(n&2){let t=f();j(`morseEnter`,0)(`morseEnterY`,6),d(2),J(t.levels())}}var Pp=class n{levels=se.required();current=se.required();pick=je();host=w(St);shortcuts=w(Fn);destroyRef=w(He);panel=Ue(`panel`);open=N(!1);active=N(0);bumped=N(!1);constructor(){let e=this.shortcuts.bind(`thinking.pick`,()=>this.toggle(),()=>this.levels().length>0);this.destroyRef.onDestroy(e),ne(()=>{this.open()&&setTimeout(()=>this.panel()?.nativeElement.focus(),0)})}toggle(){if(this.open()){this.close();return}this.bump();let e=this.levels().indexOf(this.current());this.active.set(e>=0?e:0),this.open.set(!0)}choose(e){this.pick.emit(e),this.close()}onKeydown(e){let t=this.levels();switch(e.key){case`Escape`:e.preventDefault(),this.close();return;case`ArrowDown`:e.preventDefault(),this.active.update(i=>Math.min(i+1,Math.max(0,t.length-1)));return;case`ArrowUp`:e.preventDefault(),this.active.update(i=>Math.max(0,i-1));return;case`Enter`:{let i=t[this.active()];i&&(e.preventDefault(),this.choose(i));return}default:return}}onDocumentPointerdown(e){let t=e.target;this.open()&&t&&!this.host.nativeElement.contains(t)&&this.close()}close(){this.open.set(!1),this.bumped.set(!1)}bump(){this.bumped.set(!1),setTimeout(()=>this.bumped.set(!0),0),setTimeout(()=>this.bumped.set(!1),520)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-thinking-picker`]],viewQuery:function(t,i){t&1&&nt(i.panel,eF,5),t&2&&ot()},hostBindings:function(t,i){t&1&&A(`pointerdown`,function(r){return i.onDocumentPointerdown(r)},Dt)},inputs:{levels:[1,`levels`],current:[1,`current`]},outputs:{pick:`pick`},decls:7,vars:5,consts:[[`panel`,``],[`type`,`button`,`aria-haspopup`,`listbox`,1,`trigger`,3,`click`,`title`],[3,`level`],[1,`level`],[`aria-hidden`,`true`,1,`caret`],[`role`,`listbox`,`aria-label`,`Thinking level`,`tabindex`,`-1`,1,`panel`,3,`morseEnter`,`morseEnterY`],[`role`,`listbox`,`aria-label`,`Thinking level`,`tabindex`,`-1`,1,`panel`,3,`keydown`,`morseEnter`,`morseEnterY`],[`type`,`button`,`role`,`option`,1,`row`,3,`active`,`selected`],[`type`,`button`,`role`,`option`,1,`row`,3,`mouseenter`,`click`],[1,`name`],[`aria-hidden`,`true`,1,`check`]],template:function(t,i){t&1&&(h(0,`button`,1),A(`click`,function(){return i.toggle()}),ee(1,`morse-brain`,2),h(2,`span`,3),u(3),y(),h(4,`span`,4),u(5,`▾`),y()(),E(6,iF,4,2,`div`,5)),t&2&&(j(`title`,`Thinking level: `+i.current()),Y(`aria-expanded`,i.open()),d(),j(`level`,i.current()),d(2),I(i.current()),d(3),S(i.open()?6:-1))},dependencies:[Sn,Np],styles:[`[_nghost-%COMP%]{position:relative;display:inline-block}.trigger[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--%NS%morse-input-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-input-bg);color:var(--%NS%morse-input-fg);font-size:12px;cursor:pointer}.trigger[_ngcontent-%COMP%]:hover{border-color:var(--%NS%morse-fg-muted)}.trigger[aria-expanded=true][_ngcontent-%COMP%]{border-color:var(--%NS%morse-focus)}.trigger[_ngcontent-%COMP%] .level[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.trigger[_ngcontent-%COMP%] .caret[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:10px}.panel[_ngcontent-%COMP%]{position:absolute;left:0;bottom:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;min-width:180px;padding:4px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 10px 28px #0000004d}.panel[_ngcontent-%COMP%]:focus-visible{outline:none}.row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);font:inherit;font-size:12px;text-align:left;cursor:pointer}.row.active[_ngcontent-%COMP%]{background:var(--%NS%morse-hover)}.row[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.row.selected[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{color:var(--%NS%morse-accent)}.row[_ngcontent-%COMP%] .check[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-accent);font-size:12px}`]})};function oF(n,e){n&1&&(g(0,`span`),u(1),_()),n&2&&(d(),ie(` · `,e))}function rF(n,e){if(n&1&&(g(0,`section`)(1,`h4`),u(2,`Last assistant message`),_(),g(3,`div`,13)(4,`div`,14)(5,`span`,15),u(6,`Input`),_(),g(7,`span`,16),u(8),_()(),g(9,`div`,14)(10,`span`,15),u(11,`Output`),_(),g(12,`span`,16),u(13),_()(),g(14,`div`,14)(15,`span`,15),u(16,`Reasoning`),_(),g(17,`span`,16),u(18),_()(),g(19,`div`,14)(20,`span`,15),u(21,`Cache read`),_(),g(22,`span`,16),u(23),_()(),g(24,`div`,14)(25,`span`,15),u(26,`Cache write`),_(),g(27,`span`,16),u(28),_()(),g(29,`div`,14)(30,`span`,15),u(31,`Cache hit`),_(),g(32,`span`,16),u(33),_()()()()),n&2){let t=f(2);d(8),I(t.lastValue(`inputTokens`)),d(5),I(t.lastValue(`outputTokens`)),d(5),I(t.lastValue(`reasoningTokens`)),d(5),I(t.lastValue(`cacheReadTokens`)),d(5),I(t.lastValue(`cacheWriteTokens`)),d(5),I(t.cacheHitLabel())}}function sF(n,e){if(n&1){let t=L();g(0,`button`,5),F(`click`,function(){D(t);return T(f().close())}),_(),g(1,`div`,6)(2,`header`)(3,`h3`),u(4,`Context`),_(),g(5,`button`,7),F(`click`,function(){D(t);return T(f().close())}),u(6,`×`),_()(),g(7,`div`,8),u(8),E(9,oF,2,1,`span`),_(),g(10,`div`,9)(11,`span`),u(12,`Context`),_(),g(13,`span`),u(14),_()(),g(15,`div`,10),fe(16,`span`,11),_(),g(17,`div`,12)(18,`span`),u(19),_()(),g(20,`div`,13)(21,`div`,14)(22,`span`,15),u(23,`Messages`),_(),g(24,`span`,16),u(25),_()(),g(26,`div`,14)(27,`span`,15),u(28,`User`),_(),g(29,`span`,16),u(30),_()(),g(31,`div`,14)(32,`span`,15),u(33,`Assistant`),_(),g(34,`span`,16),u(35),_()(),g(36,`div`,14)(37,`span`,15),u(38,`Tool calls`),_(),g(39,`span`,16),u(40),_()(),g(41,`div`,14)(42,`span`,15),u(43,`Cost`),_(),g(44,`span`,16),u(45),_()(),g(46,`div`,14)(47,`span`,15),u(48,`Output limit`),_(),g(49,`span`,16),u(50),_()()(),E(51,rF,34,6,`section`),g(52,`section`)(53,`h4`),u(54,`Session totals`),_(),g(55,`div`,17),u(56),_()()()}if(n&2){let t,i=f();d(8),ie(` `,i.modelLabel()),d(),S((t=i.sessionTitle())?9:-1,t),d(5),Xi(``,i.usedLabel(),` / `,i.limitLabel()),d(2),Tt(`width`,i.fillPercent(),`%`),q(`warn`,i.level()===`warn`)(`danger`,i.level()===`danger`),d(3),ie(``,i.percentLabel(),` used`),d(6),I(i.counts()?.totalMessages??`—`),d(5),I(i.counts()?.userMessages??`—`),d(5),I(i.counts()?.assistantMessages??`—`),d(5),I(i.counts()?.toolCalls??`—`),d(5),I(i.costLabel()),d(5),I(i.outputLimitLabel()),d(),S(i.lastUsage()?51:-1),d(5),I(i.sessionLine()||`No usage yet.`)}}var VE=2*Math.PI*15.5;var Op=class n{usage=se();lastUsage=se();costUsd=se();contextUsage=se();counts=se();model=se();sessionTitle=se();open=N(!1);circumference=VE;percent=C(()=>this.contextUsage()?.percent??void 0);percentLabel=C(()=>{let e=this.contextUsage()?.percent;return e==null?`–`:`${e.toFixed(1)}%`});level=C(()=>{let e=this.percent()??0;return e>90?`danger`:e>70?`warn`:`ok`});fillPercent=C(()=>Math.min(100,Math.max(0,this.percent()??0)));dashOffset=C(()=>VE*(1-this.fillPercent()/100));usedLabel=C(()=>{let e=this.contextUsage()?.tokens;return e==null?`—`:Xn(e)});limitLabel=C(()=>{let e=this.contextUsage()?.contextWindow;return e===void 0?`—`:Xn(e)});costLabel=C(()=>Q0(this.costUsd())??`—`);outputLimitLabel=C(()=>{let e=this.model()?.maxTokens;return e===void 0?`—`:Xn(e)});modelLabel=C(()=>this.model()?.name??this.model()?.id??`no model`);tooltip=C(()=>{let e=[`Context ${this.percentLabel()} \xB7 ${this.usedLabel()} / ${this.limitLabel()}`],t=X0({usage:this.usage(),costUsd:this.costUsd(),contextUsage:this.contextUsage()});return t.length>0&&e.push(t),e.join(`
|
|
29
|
+
`);return[{kind:`user`,id:`mock-seed-user-1`,at:n-15e4,text:`Refactor the sidebar to match the reference, make it responsive, and render markdown properly.`},{kind:`tool`,id:`mock-seed-tool-1`,at:n-14e4,name:`bash`,title:`bash: ls packages/ui-angular/src/app`,status:`ok`,output:`app.css app.html app.ts chat/ core/ nav/`,durationMs:12},{kind:`tool`,id:`mock-seed-tool-2`,at:n-138e3,name:`read`,title:`read: packages/ui-angular/src/app/app.css`,status:`ok`,output:`42 lines, 4 media queries`,durationMs:8},{kind:`tool`,id:`mock-seed-tool-3`,at:n-13e4,name:`edit`,title:`edit: packages/ui-angular/src/app/nav/session-nav.ts`,status:`ok`,output:`+26 -7`,durationMs:190},{kind:`tool`,id:`mock-seed-tool-4`,at:n-128e3,name:`edit`,title:`edit: packages/ui-angular/src/app/app.css`,status:`ok`,output:`+18 -4`,durationMs:140},{kind:`tool`,id:`mock-seed-tool-5`,at:n-1800,name:`bash`,title:`bash: npm run build:ui`,status:`running`,output:`Application bundle generation complete. [1.2 seconds]`},{kind:`assistant`,id:`mock-seed-assistant-1`,at:n-1e5,text:e,thinking:`The webview is narrow, so the navigation has to become a drawer below ~760px instead of a second column.`,streaming:!1,model:`Mock Model`},{kind:`notice`,id:`mock-seed-notice-1`,at:n-6e4,level:`info`,text:`Everything is wired through the same wire protocol — try ?scope=workspace to see the VS Code shape.`}]}function fw(n={}){if(aw())return new fp;let e=n.href??(typeof location<`u`?location.href:`http://localhost/`),t=new URL(e,`http://localhost/`);if(n.forceMock===!0||t.searchParams.get(`mock`)===`1`)return new mp;let i=t.searchParams.get(`server`);if(i)return new Zl({url:i,WebSocketImpl:n.WebSocketImpl});let o=t.protocol===`https:`,r=n.websocketPath??`/ws`;return new Zl({url:`${o?`wss`:`ws`}://${t.host}${r}`,WebSocketImpl:n.WebSocketImpl})}var R0={images:[],pins:[],mentions:[]};var Zn=class n{sets=N({});scope=N(``);live=N(null);message=N(null);counter=0;images=C(()=>this.current().images);pins=C(()=>this.current().pins);livePreview=this.live.asReadonly();mentions=C(()=>this.current().mentions);notice=this.message.asReadonly();count=C(()=>this.images().length+this.pins().length+this.mentions().length);use(e){e!==this.scope()&&(this.scope.set(e),this.live.set(null))}isEmpty(e){let t=this.sets()[e]??R0;return t.images.length===0&&t.pins.length===0&&t.mentions.length===0}rekey(e,t){let i=this.sets()[e];i!==void 0&&(this.sets.update(o=>{let r$11=r({},o);return delete r$11[e],r$11[t]=i,r$11}),this.scope()===e&&this.scope.set(t))}forget(e){e in this.sets()&&this.sets.update(t=>{let i=r({},t);return delete i[e],i})}snapshot(){let e={};for(let[t,i]of Object.entries(this.sets()))e[t]={images:i.images.map(o=>r({},o)),pins:i.pins.map(o=>r({},o)),mentions:[...i.mentions]};return e}restore(e){let t=sR(e);if(t!==void 0){this.sets.update(i=>{let o=r({},t);for(let[r,s]of Object.entries(i))o[r]=s;return o});for(let i of Object.values(t))for(let o of[...i.images,...i.pins])this.counter=Math.max(this.counter,rR(o.id));this.live.set(null)}}current(){return this.sets()[this.scope()]??R0}patch(e){let t=this.scope(),i=this.sets()[t]??R0;this.sets.update(o=>s(r({},o),{[t]:r(r({},i),e)}))}async read(e){let t=[],i=[];for(let o of e){if(!o.type.startsWith(`image/`)){i.push(o.name);continue}let r=await L0(o);if(!r){i.push(o.name);continue}this.counter+=1,t.push({id:`attachment-${this.counter}`,name:o.name||`image-${this.counter}.png`,mimeType:o.type,data:r,bytes:o.size})}return{images:t,skipped:i}}add(e){e.length!==0&&this.patch({images:[...this.current().images,...e]})}async accept(e){let{images:t,skipped:i}=await this.read(e);return this.add(t),{attached:t.length,skipped:i}}addMentions(e){let t=e.map(i=>i.trim()).filter(i=>i.length>0);t.length!==0&&this.patch({mentions:[...this.current().mentions,...t]})}seed(e,t){e.length>0&&this.add(e.map((i,o)=>{this.counter+=1;let s=(i.mimeType.split(`/`)[1]?.toLowerCase()??``).replace(/[^a-z0-9]/g,``)||`png`;return{id:`seed-${this.counter}`,name:o===0?`image.${s}`:`image-${o+1}.${s}`,mimeType:i.mimeType,data:i.data,bytes:Math.floor(i.data.length*3/4)}}));for(let i of t)this.pin({path:i.path,startLine:i.startLine,endLine:i.endLine})}setPinRange(e,t){this.patch({pins:this.current().pins.map(i=>i.id===e?s(r({},i),{startLine:t.startLine,endLine:t.endLine}):i)})}pin(e,t){if(e.path.length===0)return``;if(e.startLine===void 0){let v=this.current().pins.find(k=>k.path===e.path&&k.startLine===void 0);if(v!==void 0)return v.id;this.counter+=1;let b=`pin-${this.counter}`;return this.patch({pins:[...this.current().pins,s(r({},e),{id:b})]}),b}let i=this.current().pins,o=e.startLine,r$12=e.endLine??e.startLine,s$5=new Set(t===void 0?[]:[t]),a,l=!0;for(;l;){l=!1;for(let v of i){if(s$5.has(v.id)||v.path!==e.path||v.startLine===void 0)continue;let b=v.startLine,k=v.endLine??b;b<=r$12+1&&k+1>=o&&(o=Math.min(o,b),r$12=Math.max(r$12,k),s$5.add(v.id),a??=v.id,l=!0)}}this.counter+=1;let c={id:t??a??`pin-${this.counter}`,path:e.path,startLine:o,endLine:r$12>o?r$12:void 0},p=[],m=!1;for(let v of i){if(s$5.has(v.id)){m||(p.push(c),m=!0);continue}p.push(v)}return m||p.push(c),this.patch({pins:p}),c.id}removePin(e){this.patch({pins:this.current().pins.filter(t=>t.id!==e)})}setLivePreview(e){if(e===null||e.path.length===0||e.startLine===void 0){this.live.set(null);return}let t=this.live();t&&t.path===e.path&&t.startLine===e.startLine&&t.endLine===e.endLine||this.live.set({id:`live-preview`,path:e.path,startLine:e.startLine,endLine:e.endLine})}lockLivePreview(){let e=this.live();e&&(this.live.set(null),this.pin({path:e.path,startLine:e.startLine,endLine:e.endLine}))}remove(e){this.patch({images:this.current().images.filter(t=>t.id!==e)})}takeImages(){let e=this.current().images.map(({data:t,mimeType:i})=>({data:t,mimeType:i}));return this.patch({images:[]}),e}takePins(){let e=this.current().pins.map(({path:t,startLine:i,endLine:o})=>{let r={path:t};return i!==void 0&&(r.startLine=i),o!==void 0&&(r.endLine=o),r});return this.patch({pins:[]}),e}takeMentions(){let e=this.current().mentions;return this.patch({mentions:[]}),e}clear(){this.patch({images:[],pins:[],mentions:[]}),this.live.set(null)}say(e,t){this.message.set({level:e,text:t,at:Date.now()})}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function L0(n){return new Promise(e=>{if(typeof FileReader>`u`){e(void 0);return}let t=new FileReader;t.onerror=()=>e(void 0),t.onload=()=>{let i=t.result;if(typeof i!=`string`){e(void 0);return}let o=i.indexOf(`,`);e(o===-1?void 0:i.slice(o+1))},t.readAsDataURL(n)})}function rR(n){let e=/(\d+)$/.exec(n);return e===null?0:Number.parseInt(e[1],10)}function sR(n){if(typeof n!=`object`||n===null||Array.isArray(n))return;let e={};for(let[t,i]of Object.entries(n)){let o=aR(i);o!==void 0&&!dR(o)&&(e[t]=o)}return e}function aR(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.images,i=e.pins,o=e.mentions;return{images:Array.isArray(t)?t.flatMap(lR):[],pins:Array.isArray(i)?i.flatMap(cR):[],mentions:Array.isArray(o)?o.filter(l=>typeof l==`string`):[]}}function lR(n){if(typeof n!=`object`||n===null)return[];let e=n,t=e.id,i=e.name,o=e.mimeType,r=e.data;if(typeof t!=`string`||typeof i!=`string`||typeof o!=`string`||typeof r!=`string`)return[];let s=e.bytes;return[{id:t,name:i,mimeType:o,data:r,bytes:typeof s==`number`?s:0}]}function cR(n){if(typeof n!=`object`||n===null)return[];let e=n,t=e.id,i=e.path;if(typeof t!=`string`||typeof i!=`string`)return[];let o=e.startLine,r$13=e.endLine;return[r(r({id:t,path:i},typeof o==`number`?{startLine:o}:{}),typeof r$13==`number`?{endLine:r$13}:{})]}function dR(n){return n.images.length===0&&n.pins.length===0&&n.mentions.length===0}var ir=class n{attachments=w(Zn);texts=N({});key=N(``);text=C(()=>this.texts()[this.key()]??``);use(e){let t=e??``;t!==this.key()&&(this.key.set(t),this.attachments.use(t))}setText(e){this.texts.update(t=>s(r({},t),{[this.key()]:e}))}updateText(e){this.setText(e(this.text()))}isEmpty(e){return(this.texts()[e]??``).length===0&&this.attachments.isEmpty(e)}rekey(e,t){this.texts.update(i=>{let o=i[e];if(o===void 0)return i;let r$14=r({},i);return delete r$14[e],r$14[t]=o,r$14}),this.attachments.rekey(e,t),this.key()===e&&this.key.set(t)}forget(e){this.texts.update(t=>{if(!(e in t))return t;let i=r({},t);return delete i[e],i}),this.attachments.forget(e)}snapshot(){return{texts:r({},this.texts()),attachments:this.attachments.snapshot()}}restore(e){let t=uR(e);t!==void 0&&(this.texts.update(i=>r(r({},t.texts),i)),this.attachments.restore(t.attachments))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function uR(n){if(typeof n!=`object`||n===null)return;let e=n,t={},i=e.texts;if(typeof i==`object`&&i!==null)for(let[o,r]of Object.entries(i))typeof r==`string`&&r.length>0&&(t[o]=r);return{texts:t,attachments:e.attachments}}var mw=new Me(`morse.transport`,{providedIn:`root`,factory:()=>fw()});var hw={name:`@morse/ui-angular`,version:`0.14.1`};var pR=6e3;var Ie=class n{transport=w(mw);destroyRef=w(He);view=N(pp());client;actions;slowConnectionTimer;connection=C(()=>this.view().connection);connectionDetail=C(()=>this.view().connectionDetail);protocolVersion=C(()=>this.view().protocolVersion);frontend=C(()=>this.view().frontend);version=C(()=>this.frontend()?.version??hw.version);slowConnection=N(!1);capabilities=C(()=>this.view().capabilities);state=C(()=>this.view().state);items=C(()=>this.view().items);projects=C(()=>this.view().projects);sessions=C(()=>this.view().sessions);activity=C(()=>this.view().activity);sessionActivity=C(()=>{let e=new Map;for(let t of this.view().activity)e.set(t.sessionKey,t);return e});pendingInteraction=C(()=>this.view().pendingInteraction);lastNotice=C(()=>this.view().lastNotice);lastError=C(()=>this.view().lastError);agentReady=C(()=>this.view().state.agentReady);agentStarting=C(()=>this.view().state.agentStarting);agentError=C(()=>this.view().state.agentError);agentFailure=C(()=>this.view().state.agentFailure);running=C(()=>this.view().state.streaming||this.view().state.busy);workspace=C(()=>this.view().state.workspace);model=C(()=>this.view().state.model);thinkingLevel=C(()=>this.view().state.thinkingLevel);availableModels=C(()=>this.view().state.availableModels);availableThinkingLevels=C(()=>this.view().state.availableThinkingLevels);availableCommands=C(()=>this.view().state.availableCommands);usage=C(()=>this.view().state.usage);hasOlderHistory=C(()=>this.view().state.hasOlderHistory===!0);loadingOlderHistory=C(()=>this.view().state.loadingOlderHistory===!0);constructor(){this.client=ew({transport:this.transport,frontend:hw}),this.actions=this.client.actions;let e=this.client.getView();this.view.set(e),this.trackSlowConnection(e.connection),this.client.subscribe(t=>{this.view.set(t),this.trackSlowConnection(t.connection)}),this.destroyRef.onDestroy(()=>{this.clearSlowConnectionTimer(),this.client.dispose()})}trackSlowConnection(e){if(e!==`connecting`){this.clearSlowConnectionTimer(),this.slowConnection.set(!1);return}this.slowConnectionTimer===void 0&&(this.slowConnectionTimer=setTimeout(()=>{this.slowConnection.set(!0)},pR))}clearSlowConnectionTimer(){this.slowConnectionTimer!==void 0&&(clearTimeout(this.slowConnectionTimer),this.slowConnectionTimer=void 0)}prompt(e,t=`new`,i,o){this.actions.prompt(e,t,i,o)}editMessage(e,t){this.actions.editMessage(e,t)}forkMessage(e){this.actions.forkMessage(e)}onComposerSeed(e){return this.client.onComposerSeed(e)}onContextSelection(e){return this.client.onContextSelection(e)}onContextSelectionLive(e){return this.client.onContextSelectionLive(e)}ready(){this.actions.ready()}abort(){this.actions.abort()}newSession(e){this.actions.newSession(e)}openProject(e){this.actions.openProject(e)}requestProjects(){this.actions.requestProjects()}activateSession(e,t){this.actions.activateSession(e,t)}closeSession(e){this.actions.closeSession(e)}deleteSession(e){this.actions.deleteSession(e)}compactSession(e){this.actions.compactSession(e)}loadOlderHistory(){this.actions.loadOlderHistory()}loadSession(e){this.actions.loadSession(e)}requestSessions(){this.actions.requestSessions()}refreshCommands(){this.actions.refreshCommands()}refreshModels(){this.actions.refreshModels()}setModel(e,t){this.actions.setModel(e,t)}setThinkingLevel(e){this.actions.setThinkingLevel(e)}respond(e){this.actions.respond(e)}hostCommand(e,t){this.actions.hostCommand(e,t)}requestHostCommand(e,t,i){return this.actions.hostCommand(e,t,i)}openTerminal(e,t){this.actions.openTerminal(e,t)}sendTerminal(e,t){this.actions.sendTerminal(e,t)}resizeTerminal(e,t,i){this.actions.resizeTerminal(e,t,i)}closeTerminal(e){this.actions.closeTerminal(e)}onTerminalOutput(e){return this.client.onTerminalOutput(e)}onTerminalExit(e){return this.client.onTerminalExit(e)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var ba=class n{items=N([]);counter=0;queued=this.items.asReadonly();count=C(()=>this.items().length);forOwner(e){return this.items().filter(t=>t.sessionId===e)}head(e){return this.items().find(t=>t.sessionId===e)}enqueue(e,t){this.counter+=1;let i=`queued-${this.counter}`;return this.items.update(o=>[...o,s(r({},e),{id:i,sessionId:t})]),i}remove(e){this.items.update(t=>t.filter(i=>i.id!==e))}canMove(e,t){if(e===t)return!1;let i=this.items(),o=i.find(s=>s.id===e),r=i.find(s=>s.id===t);return o!==void 0&&r!==void 0&&o.sessionId===r.sessionId}move(e,t){if(!this.canMove(e,t))return;let i=this.items(),o=i.findIndex(c=>c.id===e),r=i.findIndex(c=>c.id===t),s=i[o],a=i.filter(c=>c.id!==e),l=a.findIndex(c=>c.id===t);a.splice(o<r?l+1:l,0,s),this.items.set(a)}shift(e){let t=this.head(e);if(t!==void 0)return this.remove(t.id),t}clear(){this.items.set([])}rekey(e,t){this.items.update(i=>i.map(o=>o.sessionId===e?s(r({},o),{sessionId:t}):o))}forgetOwner(e){this.items.update(t=>t.filter(i=>i.sessionId!==e))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var bw=`morse.navigation.collapsed`;var xw=`morse.git.open`;var Cw=`morse.git.expanded`;var F0=`morse.git.width`;var fR=220;var mR=1600;var ww=`morse.git.changesHeight`;var gw=`morse.git.changesCollapsed`;var yw=`morse.git.historyCollapsed`;var _w=`morse.git.stagedCollapsed`;var vw=`morse.git.unstagedCollapsed`;var hR=48;var gR=1200;var Ew=`morse.explorer.height`;var yR=140;var _R=720;function vR(){try{return globalThis.localStorage?.getItem(bw)===`1`}catch{return!1}}function bR(n){try{globalThis.localStorage?.setItem(bw,n?`1`:`0`)}catch{}}function xR(){try{return globalThis.localStorage?.getItem(xw)===`1`}catch{return!1}}function CR(n){try{globalThis.localStorage?.setItem(xw,n?`1`:`0`)}catch{}}function wR(){try{return globalThis.localStorage?.getItem(Cw)===`1`}catch{return!1}}function ER(n){try{globalThis.localStorage?.setItem(Cw,n?`1`:`0`)}catch{}}function Sw(n){return Math.round(Math.min(gR,Math.max(hR,n)))}function Dw(n){return Math.round(Math.min(mR,Math.max(fR,n)))}function SR(){try{let n=globalThis.localStorage?.getItem(F0);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?Dw(e):void 0}catch{return}}function DR(n){try{globalThis.localStorage?.setItem(F0,String(n))}catch{}}function TR(){try{let n=globalThis.localStorage?.getItem(ww);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?Sw(e):void 0}catch{return}}function MR(n){try{globalThis.localStorage?.setItem(ww,String(n))}catch{}}function hp(n){try{return globalThis.localStorage?.getItem(n)===`1`}catch{return!1}}function gp(n,e){try{globalThis.localStorage?.setItem(n,e?`1`:`0`)}catch{}}function Tw(n){return Math.round(Math.min(_R,Math.max(yR,n)))}function kR(){try{let n=globalThis.localStorage?.getItem(Ew);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?Tw(e):void 0}catch{return}}function IR(n){try{globalThis.localStorage?.setItem(Ew,String(n))}catch{}}var Ft=class n{navigationVisible=N(!1);navigationOpen=this.navigationVisible.asReadonly();collapsed=N(vR());navigationCollapsed=this.collapsed.asReadonly();gitPanel=N(xR());gitPanelOpen=this.gitPanel.asReadonly();gitExpanded=N(wR());gitPanelExpanded=this.gitExpanded.asReadonly();gitWidthSignal=N(SR());gitPanelWidth=this.gitWidthSignal.asReadonly();changesHeightSignal=N(TR());gitChangesHeight=this.changesHeightSignal.asReadonly();changesCollapsedSignal=N(hp(gw));gitChangesCollapsed=this.changesCollapsedSignal.asReadonly();historyCollapsedSignal=N(hp(yw));gitHistoryCollapsed=this.historyCollapsedSignal.asReadonly();stagedCollapsedSignal=N(hp(_w));gitStagedCollapsed=this.stagedCollapsedSignal.asReadonly();unstagedCollapsedSignal=N(hp(vw));gitUnstagedCollapsed=this.unstagedCollapsedSignal.asReadonly();explorer=N(kR());explorerHeight=this.explorer.asReadonly();projectPicker=N(!1);projectPickerOpen=this.projectPicker.asReadonly();about=N(!1);aboutOpen=this.about.asReadonly();shortcuts=N(!1);shortcutsOpen=this.shortcuts.asReadonly();palette=N(!1);paletteOpen=this.palette.asReadonly();projectFilter=N(!1);projectFilterOpen=this.projectFilter.asReadonly();projectFocus=N(``);projectFilterPath=this.projectFocus.asReadonly();promptTemplate=N(!1);promptTemplateOpen=this.promptTemplate.asReadonly();compactPrompt=N(void 0);compactConfirmOpen=C(()=>this.compactPrompt()!==void 0);compactInstructions=C(()=>this.compactPrompt()?.instructions);mcp=N(!1);mcpOpen=this.mcp.asReadonly();modalOpen=C(()=>this.about()||this.shortcuts()||this.palette()||this.projectPicker()||this.projectFilter()||this.promptTemplate()||this.mcp()||this.compactPrompt()!==void 0);toggleNavigation(){this.navigationVisible.update(e=>!e)}openNavigation(){this.navigationVisible.set(!0)}closeNavigation(){this.navigationVisible.set(!1)}toggleNavigationCollapsed(){this.setCollapsed(!this.collapsed())}unfoldNavigation(){this.setCollapsed(!1)}setCollapsed(e){this.collapsed.set(e),bR(e)}toggleGitPanel(){this.setGitPanel(!this.gitPanel())}closeGitPanel(){this.setGitPanel(!1)}setGitPanel(e){this.gitPanel.set(e),CR(e)}toggleGitPanelExpanded(){this.setGitExpanded(!this.gitExpanded())}setGitExpanded(e){this.gitExpanded.set(e),ER(e)}toggleGitChanges(){this.changesCollapsedSignal.update(e=>!e),gp(gw,this.changesCollapsedSignal())}toggleGitHistory(){this.historyCollapsedSignal.update(e=>!e),gp(yw,this.historyCollapsedSignal())}toggleGitStaged(){this.stagedCollapsedSignal.update(e=>!e),gp(_w,this.stagedCollapsedSignal())}toggleGitUnstaged(){this.unstagedCollapsedSignal.update(e=>!e),gp(vw,this.unstagedCollapsedSignal())}setGitChangesHeight(e,t=!0){let i=Sw(e);this.changesHeightSignal.set(i),t&&MR(i)}setGitPanelWidth(e,t=!0){let i=Dw(e);this.gitWidthSignal.set(i),t&&DR(i)}resetGitPanelWidth(){this.gitWidthSignal.set(void 0);try{globalThis.localStorage?.removeItem(F0)}catch{}}setExplorerHeight(e){let t=Tw(e);this.explorer.set(t),IR(t)}openAbout(){this.about.set(!0)}closeAbout(){this.about.set(!1)}openShortcuts(){this.shortcuts.set(!0)}closeShortcuts(){this.shortcuts.set(!1)}toggleShortcuts(){this.shortcuts.update(e=>!e)}openPalette(){this.palette.set(!0)}closePalette(){this.palette.set(!1)}togglePalette(){this.palette.update(e=>!e)}setProjectFilter(e){this.projectFocus.set(e)}openProjectFilter(){this.projectFilter.set(!0)}closeProjectFilter(){this.projectFilter.set(!1)}setPromptTemplateOpen(e){this.promptTemplate.set(e)}openProjectPicker(){this.projectPicker.set(!0)}closeProjectPicker(){this.projectPicker.set(!1)}openMcp(){this.mcp.set(!0)}closeMcp(){this.mcp.set(!1)}requestCompact(e){this.compactPrompt.set(e?{instructions:e}:{})}closeCompactPrompt(){this.compactPrompt.set(void 0)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var ds=[{id:`session.new`,group:`Session`,label:`New session`,detail:`The sidebar button, on the keyboard — and on a browser host it still asks which folder first.`,binding:{key:`n`,mod:!0,alt:!0}},{id:`session.search`,group:`Session`,label:`Focus the session search`,detail:"Opens the sidebar when the layout hid it, and puts the caret in the field. In the prompt, `/` opens the command palette instead.",binding:{key:`/`}},{id:`command.palette`,group:`Navigate`,label:`Command palette`,detail:`One field for everything: run a command, switch a tab, open a session, file or project, or pick the model and thinking level. A leading >, #, @ or : narrows it to that source.`,binding:[{key:`k`,mod:!0,alt:!0},{key:`/`,mod:!0,alt:!0}],overlay:!0,whileTyping:!0},{id:`project.filter`,group:`Navigate`,label:`Change project focus`,detail:`Narrows the sidebar to one project. Only a host with several projects has this.`,binding:{key:`p`,mod:!0,alt:!0},overlay:!0},{id:`view.git`,group:`Navigate`,label:`Toggle the git panel`,detail:`Shows or hides the history and graph for the active project. The browser host only — VS Code has its own Source Control view.`,binding:{key:`g`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`view.mcp`,group:`Navigate`,label:`Manage MCP servers`,detail:"Opens the MCP manager: the servers pi sees for the active directory, with add, enable, disable and remove. A host that cannot run the `pi` CLI shows it as unavailable.",binding:{key:`s`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`model.pick`,group:`Model`,label:`Change model`,detail:`Opens the model chooser above the prompt.`,binding:{key:`m`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`thinking.pick`,group:`Model`,label:`Change thinking level`,detail:`Opens the reasoning-level chooser next to the model.`,binding:{key:`t`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`context.compact`,group:`Context`,label:`Compact the conversation`,detail:`Asks first: pi replaces what it remembers with a summary.`,binding:{key:`c`,mod:!0,alt:!0},overlay:!0,whileTyping:!0},{id:`prompt.send`,group:`Typing`,label:`Send the prompt`,detail:`While the prompt has the caret. During a run, the same key steers the agent instead.`,keys:`Enter`},{id:`prompt.newline`,group:`Typing`,label:`New line`,detail:`The prompt grows with the text rather than sending it.`,keys:`Shift+Enter`},{id:`prompt.mention`,group:`Typing`,label:`Mention a file`,detail:`Opens the picker that inserts an @path mention.`,keys:`@`},{id:`prompt.commands`,group:`Typing`,label:`Command palette`,detail:`The slash commands Morse and pi understand, filtered as you type.`,keys:`/`},{id:`help.shortcuts`,group:`Help`,label:`This list`,detail:`Opens and closes these rows, outside a text field.`,binding:{key:`?`},overlay:!0}];function us(n){return`binding`in n}function Mw(){let n=globalThis.navigator;return/mac|iphone|ipad/i.test(n?.userAgent??``)}function kw(n,e=Mw()){return Iw(n).map(t=>NR(t,e)).join(` / `)}function NR(n,e){let t=[];return n.mod===!0&&t.push(e?`⌘`:`Ctrl`),n.alt===!0&&t.push(e?`⌥`:`Alt`),t.push(n.key.length===1&&/[a-z]/.test(n.key)?n.key.toUpperCase():n.key),e?t.join(``):t.join(`+`)}function Iw(n){return Array.isArray(n)?n:[n]}var Fn=class n{shell=w(Ft);handlers=new Map;revision=N(0);catalog=ds;available=C(()=>{this.revision();let e=new Map;for(let t of ds){if(!us(t))continue;let i=this.handlers.get(t.id);e.set(t.id,i!==void 0&&(i.enabled?.()??!0))}return e});constructor(){let e=globalThis.document;e&&(e.addEventListener(`keydown`,this.onKeydown,!0),w(He).onDestroy(()=>e.removeEventListener(`keydown`,this.onKeydown,!0)))}bind(e,t,i){let o={run:t,enabled:i};return this.handlers.set(e,o),this.bump(),()=>{this.handlers.get(e)===o&&(this.handlers.delete(e),this.bump())}}bump(){this.revision.update(e=>e+1)}run(e){let t=this.handlers.get(e);return t===void 0||t.enabled!==void 0&&!t.enabled()?!1:(t.run(),!0)}onKeydown=e=>{if(e.defaultPrevented||e.isComposing||e.getModifierState?.(`AltGraph`)===!0)return;let t=ds.find(o=>us(o)&&PR(o.binding,e));if(t===void 0||t.whileTyping!==!0&&AR(e.target)||t.overlay===!0&&this.shell.modalOpen()&&!(t.id===`help.shortcuts`&&this.shell.shortcutsOpen()||t.id===`command.palette`&&this.shell.paletteOpen()))return;let i=this.handlers.get(t.id);i===void 0||i.enabled!==void 0&&!i.enabled()||(e.preventDefault(),i.run())};static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function PR(n,e){return Iw(n).some(t=>OR(t,e))}function OR(n,e){return e.key.toLowerCase()!==n.key.toLowerCase()||n.mod===!0!==(Mw()?e.metaKey:e.ctrlKey)?!1:n.alt===!0===e.altKey}function AR(n){let e=n;if(e===null||typeof e.tagName!=`string`)return!1;let t=e.tagName.toLowerCase();return t===`input`||t===`textarea`||t===`select`||e.isContentEditable===!0}var RR=10485760;var xa=class n{morse=w(Ie);available=C(()=>this.morse.capabilities()?.fileUpload===!0);async upload(e){let t=[],i=[];for(let o of e){if(o.size>RR){i.push(o.name);continue}let r=await L0(o);if(!r){i.push(o.name);continue}let s=await this.morse.requestHostCommand(`uploadFile`,{name:o.name,mimeType:o.type,data:r}),a=typeof s?.path==`string`?s.path:void 0;if(!a){i.push(o.name);continue}t.push({path:a,name:o.name,bytes:typeof s?.bytes==`number`?s.bytes:o.size})}return{added:t,failed:i}}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function V0(n){if(n===`??`)return`U`;if(n.includes(`U`)||n===`AA`||n===`DD`)return`C`;if(n.includes(`R`)||n.includes(`C`))return`R`;if(n.includes(`D`))return`D`;if(n.includes(`A`))return`A`;if(n.includes(`M`)||n.includes(`T`))return`M`}function j0(n){return n.includes(`U`)||n===`AA`||n===`DD`}function Nw(n){if(j0(n))return!1;let e=n[0];return e!==void 0&&e!==` `&&e!==`?`}function Pw(n){if(j0(n)||n===`??`)return!0;let e=n[1];return e!==void 0&&e!==` `&&e!==`?`}function Ow(n){return Rw(n[0])}function Aw(n){return n===`??`?`U`:j0(n)?`C`:Rw(n[1])}function Rw(n){switch(n){case`?`:return`U`;case`M`:case`T`:return`M`;case`A`:return`A`;case`D`:return`D`;case`R`:case`C`:return`R`;default:return}}function B0(n){if(typeof n!=`object`||n===null)return;let e=n;return e.isRepo!==!0?typeof e.isRepo==`boolean`?{isRepo:!1,files:[]}:void 0:{isRepo:!0,files:Fw(e.files)}}function Lw(n){if(typeof n!=`object`||n===null)return;let e=n;if(typeof e.isRepo==`boolean`)return Fw(e.files)}function Fw(n){return Array.isArray(n)?n.map(LR).filter(e=>e!==void 0):[]}function yp(n){let e=new Map;for(let t of n?.files??[]){let i=V0(t.status);i!==void 0&&e.set(t.path,i)}return e}function LR(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.path,i=e.status;if(!(typeof t!=`string`||typeof i!=`string`))return{path:t,status:i}}var FR=4e3;var Qn=class n{morse=w(Ie);cache=N([]);loading=N(!1);statuses=N(void 0);failure=N(void 0);loadedFor;inFlight=!1;files=this.cache.asReadonly();busy=this.loading.asReadonly();status=this.statuses.asReadonly();error=this.failure.asReadonly();available=C(()=>this.morse.capabilities()?.filePicker===!0);gitAvailable=C(()=>this.morse.capabilities()?.gitPanel===!0);constructor(){ne(()=>{if(!this.available())return;let e=this.morse.workspace().cwd;this.ensureLoaded(this.loadedFor!==void 0&&this.loadedFor!==e)}),ne(e=>{if(!this.available())return;let t=setInterval(()=>{typeof document<`u`&&document.hidden||this.ensureLoaded(!0,!0)},FR);e(()=>clearInterval(t))})}refresh(){this.ensureLoaded(!0)}async stage(e){return this.mutate(`gitStage`,e)}async unstage(e){return this.mutate(`gitUnstage`,e)}async mutate(e,t){if(t.length===0)return!0;let o=B0(await this.morse.requestHostCommand(e,{paths:[...t]}));return o===void 0?(this.refresh(),!1):(this.statuses.set(o),!0)}ensureLoaded(e=!1,t=!1){let i=this.morse.workspace().cwd;i.length===0||this.inFlight||!e&&this.loadedFor===i||(this.inFlight=!0,t||(this.loading.set(!0),this.failure.set(void 0)),Promise.all([this.morse.requestHostCommand(`listFiles`,e?{fresh:!0}:void 0),this.gitAvailable()?this.morse.requestHostCommand(`gitStatus`):Promise.resolve(void 0)]).then(([o,r])=>{if(this.morse.workspace().cwd!==i)return;let s=VR(o);if(s===void 0){this.failure.set(`Could not list this project.`);return}this.loadedFor=i,this.cache.set(s),this.statuses.set(B0(r))}).finally(()=>{this.inFlight=!1,t||this.loading.set(!1),this.morse.workspace().cwd!==i&&this.ensureLoaded(!0)}))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function VR(n){if(typeof n!=`object`||n===null)return;let e=n.files;if(Array.isArray(e))return e.filter(t=>typeof t==`string`)}var wp=v(iE(),1).default;function rE(n){let e=n.regex,t={},i={begin:/\$\{/,end:/\}/,contains:[`self`,{begin:/:-/,contains:[t]}]};Object.assign(t,{className:`variable`,variants:[{begin:e.concat(/\$[\w\d#@][\w\d_]*/,`(?![\\w\\d])(?![$])`)},i]});let o={className:`subst`,begin:/\$\(/,end:/\)/,contains:[n.BACKSLASH_ESCAPE]},r=n.inherit(n.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:`comment`}}),s={begin:/<<-?\s*(?=\w+)/,starts:{contains:[n.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:`string`})]}},a={className:`string`,begin:/"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,t,o]};o.contains.push(a);let l={match:/\\"/},c={className:`string`,begin:/'/,end:/'/},p={match:/\\'/},m={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:`number`},n.NUMBER_MODE,t]},b=n.SHEBANG({binary:`(${[`fish`,`bash`,`zsh`,`sh`,`csh`,`ksh`,`tcsh`,`dash`,`scsh`].join(`|`)})`,relevance:10}),k={className:`function`,begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0,contains:[n.inherit(n.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0},O=[`if`,`then`,`else`,`elif`,`fi`,`time`,`for`,`while`,`until`,`in`,`do`,`done`,`case`,`esac`,`coproc`,`function`,`select`],M=[`true`,`false`],V={match:/(\/[a-z._-]+)+/},W=[`break`,`cd`,`continue`,`eval`,`exec`,`exit`,`export`,`getopts`,`hash`,`pwd`,`readonly`,`return`,`shift`,`test`,`times`,`trap`,`umask`,`unset`],pe=[`alias`,`bind`,`builtin`,`caller`,`command`,`declare`,`echo`,`enable`,`help`,`let`,`local`,`logout`,`mapfile`,`printf`,`read`,`readarray`,`source`,`sudo`,`type`,`typeset`,`ulimit`,`unalias`],me=[`autoload`,`bg`,`bindkey`,`bye`,`cap`,`chdir`,`clone`,`comparguments`,`compcall`,`compctl`,`compdescribe`,`compfiles`,`compgroups`,`compquote`,`comptags`,`comptry`,`compvalues`,`dirs`,`disable`,`disown`,`echotc`,`echoti`,`emulate`,`fc`,`fg`,`float`,`functions`,`getcap`,`getln`,`history`,`integer`,`jobs`,`kill`,`limit`,`log`,`noglob`,`popd`,`print`,`pushd`,`pushln`,`rehash`,`sched`,`setcap`,`setopt`,`stat`,`suspend`,`ttyctl`,`unfunction`,`unhash`,`unlimit`,`unsetopt`,`vared`,`wait`,`whence`,`where`,`which`,`zcompile`,`zformat`,`zftp`,`zle`,`zmodload`,`zparseopts`,`zprof`,`zpty`,`zregexparse`,`zsocket`,`zstyle`,`ztcp`],we=[`chcon`,`chgrp`,`chown`,`chmod`,`cp`,`dd`,`df`,`dir`,`dircolors`,`ln`,`ls`,`mkdir`,`mkfifo`,`mknod`,`mktemp`,`mv`,`realpath`,`rm`,`rmdir`,`shred`,`sync`,`touch`,`truncate`,`vdir`,`b2sum`,`base32`,`base64`,`cat`,`cksum`,`comm`,`csplit`,`cut`,`expand`,`fmt`,`fold`,`head`,`join`,`md5sum`,`nl`,`numfmt`,`od`,`paste`,`ptx`,`pr`,`sha1sum`,`sha224sum`,`sha256sum`,`sha384sum`,`sha512sum`,`shuf`,`sort`,`split`,`sum`,`tac`,`tail`,`tr`,`tsort`,`unexpand`,`uniq`,`wc`,`arch`,`basename`,`chroot`,`date`,`dirname`,`du`,`echo`,`env`,`expr`,`factor`,`groups`,`hostid`,`id`,`link`,`logname`,`nice`,`nohup`,`nproc`,`pathchk`,`pinky`,`printenv`,`printf`,`pwd`,`readlink`,`runcon`,`seq`,`sleep`,`stat`,`stdbuf`,`stty`,`tee`,`test`,`timeout`,`tty`,`uname`,`unlink`,`uptime`,`users`,`who`,`whoami`,`yes`];return{name:`Bash`,aliases:[`sh`,`zsh`],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:O,literal:M,built_in:[...W,...pe,`set`,`shopt`,...me,...we]},contains:[b,n.SHEBANG(),k,m,r,s,V,a,l,c,p,t]}}var M2=n=>({IMPORTANT:{scope:`meta`,begin:`!important`},BLOCK_COMMENT:n.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:`number`,begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},UNICODE_RANGE:{scope:`number`,begin:/\b[Uu]\+[0-9A-Fa-f][0-9A-Fa-f?]{0,5}(-[0-9A-Fa-f][0-9A-Fa-f]{0,5})?/},FUNCTION_DISPATCH:{className:`built_in`,begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:`selector-attr`,begin:/\[/,end:/\]/,illegal:`$`,contains:[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:`number`,begin:n.NUMBER_RE+`(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?`,relevance:0},CSS_VARIABLE:{className:`attr`,begin:/--[A-Za-z_][A-Za-z0-9_-]*/}});var k2=[`a`,`abbr`,`address`,`article`,`aside`,`audio`,`b`,`blockquote`,`body`,`button`,`canvas`,`caption`,`cite`,`code`,`dd`,`del`,`details`,`dfn`,`div`,`dl`,`dt`,`em`,`fieldset`,`figcaption`,`figure`,`footer`,`form`,`h1`,`h2`,`h3`,`h4`,`h5`,`h6`,`header`,`hgroup`,`html`,`i`,`iframe`,`img`,`input`,`ins`,`kbd`,`label`,`legend`,`li`,`main`,`mark`,`menu`,`nav`,`object`,`ol`,`optgroup`,`option`,`p`,`picture`,`q`,`quote`,`samp`,`section`,`select`,`source`,`span`,`strong`,`summary`,`sup`,`table`,`tbody`,`td`,`textarea`,`tfoot`,`th`,`thead`,`time`,`tr`,`ul`,`var`,`video`];var I2=[`defs`,`g`,`marker`,`mask`,`pattern`,`svg`,`switch`,`symbol`,`feBlend`,`feColorMatrix`,`feComponentTransfer`,`feComposite`,`feConvolveMatrix`,`feDiffuseLighting`,`feDisplacementMap`,`feFlood`,`feGaussianBlur`,`feImage`,`feMerge`,`feMorphology`,`feOffset`,`feSpecularLighting`,`feTile`,`feTurbulence`,`linearGradient`,`radialGradient`,`stop`,`circle`,`ellipse`,`image`,`line`,`path`,`polygon`,`polyline`,`rect`,`text`,`use`,`textPath`,`tspan`,`foreignObject`,`clipPath`];var N2=[...k2,...I2];var P2=[`any-hover`,`any-pointer`,`aspect-ratio`,`color`,`color-gamut`,`color-index`,`device-aspect-ratio`,`device-height`,`device-width`,`display-mode`,`forced-colors`,`grid`,`height`,`hover`,`inverted-colors`,`monochrome`,`orientation`,`overflow-block`,`overflow-inline`,`pointer`,`prefers-color-scheme`,`prefers-contrast`,`prefers-reduced-motion`,`prefers-reduced-transparency`,`resolution`,`scan`,`scripting`,`update`,`width`,`min-width`,`max-width`,`min-height`,`max-height`].sort().reverse();var O2=[`active`,`any-link`,`blank`,`checked`,`current`,`default`,`defined`,`dir`,`disabled`,`drop`,`empty`,`enabled`,`first`,`first-child`,`first-of-type`,`fullscreen`,`future`,`focus`,`focus-visible`,`focus-within`,`has`,`host`,`host-context`,`hover`,`indeterminate`,`in-range`,`invalid`,`is`,`lang`,`last-child`,`last-of-type`,`left`,`link`,`local-link`,`not`,`nth-child`,`nth-col`,`nth-last-child`,`nth-last-col`,`nth-last-of-type`,`nth-of-type`,`only-child`,`only-of-type`,`optional`,`out-of-range`,`past`,`placeholder-shown`,`read-only`,`read-write`,`required`,`right`,`root`,`scope`,`target`,`target-within`,`user-invalid`,`valid`,`visited`,`where`].sort().reverse();var A2=[`after`,`backdrop`,`before`,`cue`,`cue-region`,`first-letter`,`first-line`,`grammar-error`,`marker`,`part`,`placeholder`,`selection`,`slotted`,`spelling-error`].sort().reverse();var R2=[`accent-color`,`align-content`,`align-items`,`align-self`,`alignment-baseline`,`all`,`anchor-name`,`animation`,`animation-composition`,`animation-delay`,`animation-direction`,`animation-duration`,`animation-fill-mode`,`animation-iteration-count`,`animation-name`,`animation-play-state`,`animation-range`,`animation-range-end`,`animation-range-start`,`animation-timeline`,`animation-timing-function`,`appearance`,`aspect-ratio`,`backdrop-filter`,`backface-visibility`,`background`,`background-attachment`,`background-blend-mode`,`background-clip`,`background-color`,`background-image`,`background-origin`,`background-position`,`background-position-x`,`background-position-y`,`background-repeat`,`background-size`,`baseline-shift`,`block-size`,`border`,`border-block`,`border-block-color`,`border-block-end`,`border-block-end-color`,`border-block-end-style`,`border-block-end-width`,`border-block-start`,`border-block-start-color`,`border-block-start-style`,`border-block-start-width`,`border-block-style`,`border-block-width`,`border-bottom`,`border-bottom-color`,`border-bottom-left-radius`,`border-bottom-right-radius`,`border-bottom-style`,`border-bottom-width`,`border-collapse`,`border-color`,`border-end-end-radius`,`border-end-start-radius`,`border-image`,`border-image-outset`,`border-image-repeat`,`border-image-slice`,`border-image-source`,`border-image-width`,`border-inline`,`border-inline-color`,`border-inline-end`,`border-inline-end-color`,`border-inline-end-style`,`border-inline-end-width`,`border-inline-start`,`border-inline-start-color`,`border-inline-start-style`,`border-inline-start-width`,`border-inline-style`,`border-inline-width`,`border-left`,`border-left-color`,`border-left-style`,`border-left-width`,`border-radius`,`border-right`,`border-right-color`,`border-right-style`,`border-right-width`,`border-spacing`,`border-start-end-radius`,`border-start-start-radius`,`border-style`,`border-top`,`border-top-color`,`border-top-left-radius`,`border-top-right-radius`,`border-top-style`,`border-top-width`,`border-width`,`bottom`,`box-align`,`box-decoration-break`,`box-direction`,`box-flex`,`box-flex-group`,`box-lines`,`box-ordinal-group`,`box-orient`,`box-pack`,`box-shadow`,`box-sizing`,`break-after`,`break-before`,`break-inside`,`caption-side`,`caret-color`,`clear`,`clip`,`clip-path`,`clip-rule`,`color`,`color-interpolation`,`color-interpolation-filters`,`color-profile`,`color-rendering`,`color-scheme`,`column-count`,`column-fill`,`column-gap`,`column-rule`,`column-rule-color`,`column-rule-style`,`column-rule-width`,`column-span`,`column-width`,`columns`,`contain`,`contain-intrinsic-block-size`,`contain-intrinsic-height`,`contain-intrinsic-inline-size`,`contain-intrinsic-size`,`contain-intrinsic-width`,`container`,`container-name`,`container-type`,`content`,`content-visibility`,`corner-bottom-left-shape`,`corner-bottom-right-shape`,`corner-shape`,`corner-top-left-shape`,`corner-top-right-shape`,`counter-increment`,`counter-reset`,`counter-set`,`cue`,`cue-after`,`cue-before`,`cursor`,`cx`,`cy`,`direction`,`display`,`dominant-baseline`,`empty-cells`,`enable-background`,`field-sizing`,`fill`,`fill-opacity`,`fill-rule`,`filter`,`flex`,`flex-basis`,`flex-direction`,`flex-flow`,`flex-grow`,`flex-shrink`,`flex-wrap`,`float`,`flood-color`,`flood-opacity`,`flow`,`font`,`font-display`,`font-family`,`font-feature-settings`,`font-kerning`,`font-language-override`,`font-optical-sizing`,`font-palette`,`font-size`,`font-size-adjust`,`font-smooth`,`font-smoothing`,`font-stretch`,`font-style`,`font-synthesis`,`font-synthesis-position`,`font-synthesis-small-caps`,`font-synthesis-style`,`font-synthesis-weight`,`font-variant`,`font-variant-alternates`,`font-variant-caps`,`font-variant-east-asian`,`font-variant-emoji`,`font-variant-ligatures`,`font-variant-numeric`,`font-variant-position`,`font-variation-settings`,`font-weight`,`forced-color-adjust`,`gap`,`glyph-orientation-horizontal`,`glyph-orientation-vertical`,`grid`,`grid-area`,`grid-auto-columns`,`grid-auto-flow`,`grid-auto-rows`,`grid-column`,`grid-column-end`,`grid-column-start`,`grid-gap`,`grid-row`,`grid-row-end`,`grid-row-start`,`grid-template`,`grid-template-areas`,`grid-template-columns`,`grid-template-rows`,`hanging-punctuation`,`height`,`hyphenate-character`,`hyphenate-limit-chars`,`hyphens`,`icon`,`image-orientation`,`image-rendering`,`image-resolution`,`ime-mode`,`initial-letter`,`initial-letter-align`,`inline-size`,`inset`,`inset-area`,`inset-block`,`inset-block-end`,`inset-block-start`,`inset-inline`,`inset-inline-end`,`inset-inline-start`,`isolation`,`justify-content`,`justify-items`,`justify-self`,`kerning`,`left`,`letter-spacing`,`lighting-color`,`line-break`,`line-height`,`line-height-step`,`list-style`,`list-style-image`,`list-style-position`,`list-style-type`,`margin`,`margin-block`,`margin-block-end`,`margin-block-start`,`margin-bottom`,`margin-inline`,`margin-inline-end`,`margin-inline-start`,`margin-left`,`margin-right`,`margin-top`,`margin-trim`,`marker`,`marker-end`,`marker-mid`,`marker-start`,`marks`,`mask`,`mask-border`,`mask-border-mode`,`mask-border-outset`,`mask-border-repeat`,`mask-border-slice`,`mask-border-source`,`mask-border-width`,`mask-clip`,`mask-composite`,`mask-image`,`mask-mode`,`mask-origin`,`mask-position`,`mask-repeat`,`mask-size`,`mask-type`,`masonry-auto-flow`,`math-depth`,`math-shift`,`math-style`,`max-block-size`,`max-height`,`max-inline-size`,`max-width`,`min-block-size`,`min-height`,`min-inline-size`,`min-width`,`mix-blend-mode`,`nav-down`,`nav-index`,`nav-left`,`nav-right`,`nav-up`,`none`,`normal`,`object-fit`,`object-position`,`offset`,`offset-anchor`,`offset-distance`,`offset-path`,`offset-position`,`offset-rotate`,`opacity`,`order`,`orphans`,`outline`,`outline-color`,`outline-offset`,`outline-style`,`outline-width`,`overflow`,`overflow-anchor`,`overflow-block`,`overflow-clip-margin`,`overflow-inline`,`overflow-wrap`,`overflow-x`,`overflow-y`,`overlay`,`overscroll-behavior`,`overscroll-behavior-block`,`overscroll-behavior-inline`,`overscroll-behavior-x`,`overscroll-behavior-y`,`padding`,`padding-block`,`padding-block-end`,`padding-block-start`,`padding-bottom`,`padding-inline`,`padding-inline-end`,`padding-inline-start`,`padding-left`,`padding-right`,`padding-top`,`page`,`page-break-after`,`page-break-before`,`page-break-inside`,`paint-order`,`pause`,`pause-after`,`pause-before`,`perspective`,`perspective-origin`,`place-content`,`place-items`,`place-self`,`pointer-events`,`position`,`position-anchor`,`position-visibility`,`print-color-adjust`,`quotes`,`r`,`resize`,`rest`,`rest-after`,`rest-before`,`right`,`rotate`,`row-gap`,`ruby-align`,`ruby-position`,`scale`,`scroll-behavior`,`scroll-margin`,`scroll-margin-block`,`scroll-margin-block-end`,`scroll-margin-block-start`,`scroll-margin-bottom`,`scroll-margin-inline`,`scroll-margin-inline-end`,`scroll-margin-inline-start`,`scroll-margin-left`,`scroll-margin-right`,`scroll-margin-top`,`scroll-padding`,`scroll-padding-block`,`scroll-padding-block-end`,`scroll-padding-block-start`,`scroll-padding-bottom`,`scroll-padding-inline`,`scroll-padding-inline-end`,`scroll-padding-inline-start`,`scroll-padding-left`,`scroll-padding-right`,`scroll-padding-top`,`scroll-snap-align`,`scroll-snap-stop`,`scroll-snap-type`,`scroll-timeline`,`scroll-timeline-axis`,`scroll-timeline-name`,`scrollbar-color`,`scrollbar-gutter`,`scrollbar-width`,`shape-image-threshold`,`shape-margin`,`shape-outside`,`shape-rendering`,`speak`,`speak-as`,`src`,`stop-color`,`stop-opacity`,`stroke`,`stroke-dasharray`,`stroke-dashoffset`,`stroke-linecap`,`stroke-linejoin`,`stroke-miterlimit`,`stroke-opacity`,`stroke-width`,`tab-size`,`table-layout`,`text-align`,`text-align-all`,`text-align-last`,`text-anchor`,`text-combine-upright`,`text-decoration`,`text-decoration-color`,`text-decoration-line`,`text-decoration-skip`,`text-decoration-skip-ink`,`text-decoration-style`,`text-decoration-thickness`,`text-emphasis`,`text-emphasis-color`,`text-emphasis-position`,`text-emphasis-style`,`text-indent`,`text-justify`,`text-orientation`,`text-overflow`,`text-rendering`,`text-shadow`,`text-size-adjust`,`text-transform`,`text-underline-offset`,`text-underline-position`,`text-wrap`,`text-wrap-mode`,`text-wrap-style`,`timeline-scope`,`top`,`touch-action`,`transform`,`transform-box`,`transform-origin`,`transform-style`,`transition`,`transition-behavior`,`transition-delay`,`transition-duration`,`transition-property`,`transition-timing-function`,`translate`,`unicode-bidi`,`unicode-range`,`user-modify`,`user-select`,`vector-effect`,`vertical-align`,`view-timeline`,`view-timeline-axis`,`view-timeline-inset`,`view-timeline-name`,`view-transition-name`,`visibility`,`voice-balance`,`voice-duration`,`voice-family`,`voice-pitch`,`voice-range`,`voice-rate`,`voice-stress`,`voice-volume`,`white-space`,`white-space-collapse`,`widows`,`width`,`will-change`,`word-break`,`word-spacing`,`word-wrap`,`writing-mode`,`x`,`y`,`z-index`,`zoom`].sort().reverse();function sE(n){let e=n.regex,t=M2(n),i={begin:/-(webkit|moz|ms|o)-(?=[a-z])/},o=`and or not only`,r=/@-?\w[\w]*(-\w+)*/,a=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:`CSS`,case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:`from to`},classNameAliases:{keyframePosition:`selector-tag`},contains:[t.BLOCK_COMMENT,i,t.CSS_NUMBER_MODE,{className:`selector-id`,begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:`selector-class`,begin:`\\.[a-zA-Z-][a-zA-Z0-9_-]*`,relevance:0},t.ATTRIBUTE_SELECTOR_MODE,{className:`selector-pseudo`,variants:[{begin:`:(`+O2.join(`|`)+`)`},{begin:`:(:)?(`+A2.join(`|`)+`)`}]},t.CSS_VARIABLE,{className:`attribute`,begin:`\\b(`+R2.join(`|`)+`)\\b`},{begin:/:/,end:/[;}{]/,contains:[t.BLOCK_COMMENT,t.HEXCOLOR,t.IMPORTANT,t.CSS_NUMBER_MODE,t.UNICODE_RANGE,...a,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:`url data-uri`},contains:[...a,{className:`string`,begin:/[^)]/,endsWithParent:!0,excludeEnd:!0}]},t.FUNCTION_DISPATCH]},{begin:e.lookahead(/@/),end:`[{;]`,relevance:0,illegal:/:/,contains:[{className:`keyword`,begin:r},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:o,attribute:P2.join(` `)},contains:[{begin:/[a-z-]+(?=:)/,className:`attribute`},...a,t.CSS_NUMBER_MODE]}]},{className:`selector-tag`,begin:`\\b(`+N2.join(`|`)+`)\\b`}]}}function aE(n){let e=n.regex;return{name:`Diff`,aliases:[`patch`],contains:[{className:`meta`,relevance:10,match:e.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+ +\+\d+,\d+ +@@/,/^@@ +-\d+,\d+ +\+\d+ +@@/,/^@@ +-\d+ +\+\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:`comment`,variants:[{begin:e.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:`addition`,begin:/^\+/,end:/$/},{className:`deletion`,begin:/^-/,end:/$/},{className:`addition`,begin:/^!/,end:/$/}]}}function lE(n){let r={keyword:[`break`,`case`,`chan`,`const`,`continue`,`default`,`defer`,`else`,`fallthrough`,`for`,`func`,`go`,`goto`,`if`,`import`,`interface`,`map`,`package`,`range`,`return`,`select`,`struct`,`switch`,`type`,`var`],type:[`bool`,`byte`,`complex64`,`complex128`,`error`,`float32`,`float64`,`int8`,`int16`,`int32`,`int64`,`string`,`uint8`,`uint16`,`uint32`,`uint64`,`int`,`uint`,`uintptr`,`rune`],literal:[`true`,`false`,`iota`,`nil`],built_in:[`append`,`cap`,`close`,`complex`,`copy`,`imag`,`len`,`make`,`new`,`panic`,`print`,`println`,`real`,`recover`,`delete`]};return{name:`Go`,aliases:[`golang`],keywords:r,illegal:`</`,contains:[n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE,{className:`string`,variants:[n.QUOTE_STRING_MODE,n.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:`number`,variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\b0[bB](_?[01])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:`function`,beginKeywords:`func`,end:`\\s*(\\{|$)`,excludeEnd:!0,contains:[n.TITLE_MODE,{className:`params`,begin:/\(/,end:/\)/,endsParent:!0,keywords:r,illegal:/["']/}]}]}}var cE=`[A-Za-z$_][0-9A-Za-z$_]*`;var L2=[`as`,`in`,`of`,`if`,`for`,`while`,`finally`,`var`,`new`,`function`,`do`,`return`,`void`,`else`,`break`,`catch`,`instanceof`,`with`,`throw`,`case`,`default`,`try`,`switch`,`continue`,`typeof`,`delete`,`let`,`yield`,`const`,`class`,`debugger`,`async`,`await`,`static`,`import`,`from`,`export`,`extends`,`using`];var F2=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`];var dE=[`Object`,`Function`,`Boolean`,`Symbol`,`Math`,`Date`,`Number`,`BigInt`,`String`,`RegExp`,`Array`,`Float32Array`,`Float64Array`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Int32Array`,`Uint16Array`,`Uint32Array`,`BigInt64Array`,`BigUint64Array`,`Set`,`Map`,`WeakSet`,`WeakMap`,`ArrayBuffer`,`SharedArrayBuffer`,`Atomics`,`DataView`,`JSON`,`Promise`,`Generator`,`GeneratorFunction`,`AsyncFunction`,`Reflect`,`Proxy`,`Intl`,`WebAssembly`];var uE=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`];var pE=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`];var V2=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`self`,`global`];var j2=[].concat(pE,dE,uE);function fE(n){let e=n.regex,t=(Q,{after:H})=>{let de=`</`+Q[0].slice(1);return Q.input.indexOf(de,H)!==-1},i=cE,o={begin:`<>`,end:`</>`},r=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(Q,H)=>{let de=Q[0].length+Q.index,Be=Q.input[de];if(Be===`<`||Be===`,`){H.ignoreMatch();return}Be===`>`&&(t(Q,{after:de})||H.ignoreMatch());let lt,en=Q.input.substring(de);if(lt=en.match(/^\s*=/)){H.ignoreMatch();return}if((lt=en.match(/^\s+extends\s+/))&<.index===0){H.ignoreMatch();return}}},a={$pattern:cE,keyword:L2,literal:F2,built_in:j2,"variable.language":V2},l=`[0-9](_?[0-9])*`,c=`\\.(${l})`,p=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,m={className:`number`,variants:[{begin:`(\\b(${p})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${p})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},v={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:a,contains:[]},b={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`xml`}},k={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`css`}},O={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`graphql`}},M={className:`string`,begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,v]},W={className:`comment`,variants:[n.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:i+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},pe=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,{match:/\$\d+/},m];v.contains=pe.concat({begin:/\{/,end:/\}/,keywords:a,contains:[`self`].concat(pe)});let me=[].concat(W,v.contains),we=me.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:[`self`].concat(me)}]),ve={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we},st={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,e.concat(i,`(`,e.concat(/\./,i),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,i],scope:{1:`keyword`,3:`title.class`}}]},qe={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...dE,...uE]}},Ke={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},vt={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[ve],illegal:/%/},Pt={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function qt(Q){return e.concat(`(?!`,Q.join(`|`),`)`)}let $t={match:e.concat(/\b/,qt([...pE,`super`,`import`,`await`].map(Q=>`${Q}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:`title.function`,relevance:0},at={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},Te={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},ve]},B=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+n.UNDERSCORE_IDENT_RE+`)\\s*=>`,ae={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(B)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[ve]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:a,exports:{PARAMS_CONTAINS:we,CLASS_REFERENCE:qe},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),Ke,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,W,{match:/\$\d+/},m,qe,{scope:`attr`,match:i+e.lookahead(`:`),relevance:0},ae,{begin:`(`+n.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[W,n.REGEXP_MODE,{className:`function`,begin:B,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o.begin,end:o.end},{match:r},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:`xml`,contains:[{begin:s.begin,end:s.end,skip:!0,contains:[`self`]}]}]},vt,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+n.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[ve,n.inherit(n.TITLE_MODE,{begin:i,className:`title.function`})]},{match:/\.\.\./,relevance:0},at,{match:`\\$`+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[ve]},$t,Pt,st,Te,{match:/\$[(.]/}]}}var $2={scope:`number`,match:`([-+]?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)|NaN|[-+]?Infinity`,relevance:0};function mE(n){let e={className:`attr`,begin:/(("(\\.|[^\\"\r\n])*")|('(\\.|[^\\'\r\n])*'))(?=\s*:)/,relevance:1.01},t={match:/[{}[\],:]/,className:`punctuation`,relevance:0},i=[`true`,`false`,`null`],o={scope:`literal`,beginKeywords:i.join(` `)};return{name:`JSON`,aliases:[`jsonc`,`json5`],keywords:{literal:i},contains:[e,t,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,o,$2,n.C_LINE_COMMENT_MODE,n.C_BLOCK_COMMENT_MODE],illegal:`\\S`}}function hE(n){let e=n.regex,t={begin:/<\/?[A-Za-z_]/,end:`>`,subLanguage:`xml`,relevance:0},i={match:/^ {0,3}([-*_])[ \t]*(?:\1[ \t]*){2,}$/},o={className:`code`,variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{begin:`(~{3,})[^~](.|\\n)*?\\1~*[ ]*`},{begin:"```",end:"```+[ ]*$"},{begin:`~~~`,end:`~~~+[ ]*$`},{begin:"`.+?`"},{begin:`(?=^( {4}|\\t))`,contains:[{begin:`^( {4}|\\t)`,end:`(\\n)$`}],relevance:0}]},r={className:`bullet`,begin:`^[ ]*([*+-]|(\\d+\\.))(?=\\s+)`,end:`\\s+`,excludeEnd:!0},s={begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{className:`symbol`,begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{className:`link`,begin:/:\s*/,end:/$/,excludeBegin:!0}]},l={variants:[{begin:/\[.+?\]\[.*?\]/,relevance:0},{begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,relevance:2},{begin:e.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/),relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/},{className:`string`,relevance:0,begin:`\\[`,end:`\\]`,excludeBegin:!0,returnEnd:!0},{className:`link`,relevance:0,begin:`\\]\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0},{className:`symbol`,relevance:0,begin:`\\]\\[`,end:`\\]`,excludeBegin:!0,excludeEnd:!0}]},c={className:`strong`,contains:[],variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}]},p={className:`emphasis`,contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{begin:/_(?![_\s])/,end:/_/,relevance:0}]},m=n.inherit(c,{contains:[]}),v=n.inherit(p,{contains:[]});c.contains.push(v),p.contains.push(m);let b=[t,l];return[c,p,m,v].forEach(V=>{V.contains=V.contains.concat(b)}),b=b.concat(c,p),{name:`Markdown`,aliases:[`md`,`mkdown`,`mkd`],contains:[{className:`section`,variants:[{begin:`^#{1,6}`,end:`$`,contains:b},{begin:`(?=^.+?\\n[=-]{2,}$)`,contains:[{begin:`^[=-]*$`},{begin:`^`,end:`\\n`,contains:b}]}]},t,r,i,c,p,{className:`quote`,begin:`^>\\s+`,contains:b,end:`$`},o,l,s,{scope:`literal`,match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}function gE(n){let e=n.regex,t=/(?![A-Za-z0-9])(?![$])/,i=e.concat(/[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*/,t),o=e.concat(/(\\?[A-Z][a-z0-9_\x7f-\xff]+|\\?[A-Z]+(?=[A-Z][a-z0-9_\x7f-\xff])){1,}/,t),r=e.concat(/[A-Z]+/,t),s={scope:`variable`,match:`\\$+`+i},a={scope:`meta`,variants:[{begin:/<\?php/,relevance:10},{begin:/<\?=/},{begin:/<\?/,relevance:.1},{begin:/\?>/}]},l={scope:`subst`,variants:[{begin:/\$\w+/},{begin:/\{\$/,end:/\}/}]},c=n.inherit(n.APOS_STRING_MODE,{illegal:null}),p=n.inherit(n.QUOTE_STRING_MODE,{illegal:null,contains:n.QUOTE_STRING_MODE.contains.concat(l)}),m={begin:/<<<[ \t]*(?:(\w+)|"(\w+)")\n/,end:/[ \t]*(\w+)\b/,contains:n.QUOTE_STRING_MODE.contains.concat(l),"on:begin":(at,Te)=>{Te.data._beginMatch=at[1]||at[2]},"on:end":(at,Te)=>{Te.data._beginMatch!==at[1]&&Te.ignoreMatch()}},v=n.END_SAME_AS_BEGIN({begin:/<<<[ \t]*'(\w+)'\n/,end:/[ \t]*(\w+)\b/}),b=`[
|
|
30
|
+
]`,k={scope:`string`,variants:[p,c,m,v]},O={scope:`number`,variants:[{begin:`\\b0[bB][01]+(?:_[01]+)*\\b`},{begin:`\\b0[oO][0-7]+(?:_[0-7]+)*\\b`},{begin:`\\b0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*\\b`},{begin:`(?:\\b\\d+(?:_\\d+)*(\\.(?:\\d+(?:_\\d+)*))?|\\B\\.\\d+)(?:[eE][+-]?\\d+)?`}],relevance:0},M=[`false`,`null`,`true`],V=[`__CLASS__`,`__DIR__`,`__FILE__`,`__FUNCTION__`,`__COMPILER_HALT_OFFSET__`,`__LINE__`,`__METHOD__`,`__NAMESPACE__`,`__TRAIT__`,`die`,`echo`,`exit`,`include`,`include_once`,`print`,`require`,`require_once`,`array`,`abstract`,`and`,`as`,`binary`,`bool`,`boolean`,`break`,`callable`,`case`,`catch`,`class`,`clone`,`const`,`continue`,`declare`,`default`,`do`,`double`,`else`,`elseif`,`empty`,`enddeclare`,`endfor`,`endforeach`,`endif`,`endswitch`,`endwhile`,`enum`,`eval`,`extends`,`final`,`finally`,`float`,`for`,`foreach`,`from`,`global`,`goto`,`if`,`implements`,`instanceof`,`insteadof`,`int`,`integer`,`interface`,`isset`,`iterable`,`list`,`match|0`,`mixed`,`new`,`never`,`object`,`or`,`private`,`protected`,`public`,`readonly`,`real`,`return`,`string`,`switch`,`throw`,`trait`,`try`,`unset`,`use`,`var`,`void`,`while`,`xor`,`yield`],W=[`Error|0`,`AppendIterator`,`ArgumentCountError`,`ArithmeticError`,`ArrayIterator`,`ArrayObject`,`AssertionError`,`BadFunctionCallException`,`BadMethodCallException`,`CachingIterator`,`CallbackFilterIterator`,`CompileError`,`Countable`,`DirectoryIterator`,`DivisionByZeroError`,`DomainException`,`EmptyIterator`,`ErrorException`,`Exception`,`FilesystemIterator`,`FilterIterator`,`GlobIterator`,`InfiniteIterator`,`InvalidArgumentException`,`IteratorIterator`,`LengthException`,`LimitIterator`,`LogicException`,`MultipleIterator`,`NoRewindIterator`,`OutOfBoundsException`,`OutOfRangeException`,`OuterIterator`,`OverflowException`,`ParentIterator`,`ParseError`,`RangeException`,`RecursiveArrayIterator`,`RecursiveCachingIterator`,`RecursiveCallbackFilterIterator`,`RecursiveDirectoryIterator`,`RecursiveFilterIterator`,`RecursiveIterator`,`RecursiveIteratorIterator`,`RecursiveRegexIterator`,`RecursiveTreeIterator`,`RegexIterator`,`RuntimeException`,`SeekableIterator`,`SplDoublyLinkedList`,`SplFileInfo`,`SplFileObject`,`SplFixedArray`,`SplHeap`,`SplMaxHeap`,`SplMinHeap`,`SplObjectStorage`,`SplObserver`,`SplPriorityQueue`,`SplQueue`,`SplStack`,`SplSubject`,`SplTempFileObject`,`TypeError`,`UnderflowException`,`UnexpectedValueException`,`UnhandledMatchError`,`ArrayAccess`,`BackedEnum`,`Closure`,`Fiber`,`Generator`,`Iterator`,`IteratorAggregate`,`Serializable`,`Stringable`,`Throwable`,`Traversable`,`UnitEnum`,`WeakReference`,`WeakMap`,`Directory`,`__PHP_Incomplete_Class`,`parent`,`php_user_filter`,`self`,`static`,`stdClass`],me={keyword:V,literal:(at=>{let Te=[];return at.forEach(B=>{Te.push(B),B.toLowerCase()===B?Te.push(B.toUpperCase()):Te.push(B.toLowerCase())}),Te})(M),built_in:W},we=at=>at.map(Te=>Te.replace(/\|\d+$/,``)),ve={variants:[{match:[/new/,e.concat(b,`+`),e.concat(`(?!`,we(W).join(`\\b|`),`\\b)`),o],scope:{1:`keyword`,4:`title.class`}}]},st=e.concat(i,`\\b(?!\\()`),qe={variants:[{match:[e.concat(/::/,e.lookahead(/(?!class\b)/)),st],scope:{2:`variable.constant`}},{match:[/::/,/class/],scope:{2:`variable.language`}},{match:[o,e.concat(/::/,e.lookahead(/(?!class\b)/)),st],scope:{1:`title.class`,3:`variable.constant`}},{match:[o,e.concat(`::`,e.lookahead(/(?!class\b)/))],scope:{1:`title.class`}},{match:[o,/::/,/class/],scope:{1:`title.class`,3:`variable.language`}}]},Ke={scope:`attr`,match:e.concat(i,e.lookahead(`:`),e.lookahead(/(?!::)/))},vt={relevance:0,begin:/\(/,end:/\)/,keywords:me,contains:[Ke,s,qe,n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE,n.HASH_COMMENT_MODE,k,O,ve]},Pt={relevance:0,match:[/\b/,e.concat(`(?!fn\\b|function\\b|`,we(V).join(`\\b|`),`|`,we(W).join(`\\b|`),`\\b)`),i,e.concat(b,`*`),e.lookahead(/(?=\()/)],scope:{3:`title.function.invoke`},contains:[vt]};vt.contains.push(Pt);let qt=[Ke,qe,n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE,n.HASH_COMMENT_MODE,k,O,ve],$t={begin:e.concat(/#\[\s*\\?/,e.either(o,r)),beginScope:`meta`,end:/]/,endScope:`meta`,keywords:{literal:M,keyword:[`new`,`array`]},contains:[{begin:/\[/,end:/]/,keywords:{literal:M,keyword:[`new`,`array`]},contains:[`self`,...qt]},...qt,{scope:`meta`,variants:[{match:o},{match:r}]}]};return{case_insensitive:!1,keywords:me,contains:[$t,n.HASH_COMMENT_MODE,n.COMMENT(`//`,`$`),n.COMMENT(`/\\*`,`\\*/`,{contains:[{scope:`doctag`,match:`@[A-Za-z]+`}]}),{match:/__halt_compiler\(\);/,keywords:`__halt_compiler`,starts:{scope:`comment`,end:n.MATCH_NOTHING_RE,contains:[{match:/\?>/,scope:`meta`,endsParent:!0}]}},a,{scope:`variable.language`,match:/\$this\b/},s,Pt,qe,{match:[/const/,/\s/,i],scope:{1:`keyword`,3:`variable.constant`}},ve,{scope:`function`,relevance:0,beginKeywords:`fn function`,end:/[;{]/,excludeEnd:!0,illegal:`[$%\\[]`,contains:[{beginKeywords:`use`},n.UNDERSCORE_TITLE_MODE,{begin:`=>`,endsParent:!0},{scope:`params`,begin:`\\(`,end:`\\)`,excludeBegin:!0,excludeEnd:!0,keywords:me,contains:[`self`,$t,s,qe,n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE,n.HASH_COMMENT_MODE,k,O]}]},{scope:`class`,variants:[{beginKeywords:`enum`,illegal:/[($"]/},{beginKeywords:`class interface trait`,illegal:/[:($"]/}],relevance:0,end:/\{/,excludeEnd:!0,contains:[{beginKeywords:`extends implements`},n.UNDERSCORE_TITLE_MODE]},{beginKeywords:`namespace`,relevance:0,end:`;`,illegal:/[.']/,contains:[n.inherit(n.UNDERSCORE_TITLE_MODE,{scope:`title.class`})]},{beginKeywords:`use`,relevance:0,end:`;`,contains:[{match:/\b(as|const|function)\b/,scope:`keyword`},n.UNDERSCORE_TITLE_MODE]},k,O]}}function yE(n){let e=n.regex,t=new RegExp(`[\\p{XID_Start}_]\\p{XID_Continue}*`,`u`),i=[`and`,`as`,`assert`,`async`,`await`,`break`,`case`,`class`,`continue`,`def`,`del`,`elif`,`else`,`except`,`finally`,`for`,`from`,`global`,`if`,`import`,`in`,`is`,`lambda`,`lazy`,`match`,`nonlocal|10`,`not`,`or`,`pass`,`raise`,`return`,`try`,`while`,`with`,`yield`],a={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:i,built_in:[`__import__`,`abs`,`aiter`,`all`,`anext`,`any`,`ascii`,`bin`,`bool`,`breakpoint`,`bytearray`,`bytes`,`callable`,`chr`,`classmethod`,`compile`,`complex`,`delattr`,`dict`,`dir`,`divmod`,`enumerate`,`eval`,`exec`,`filter`,`float`,`format`,`frozendict`,`frozenset`,`getattr`,`globals`,`hasattr`,`hash`,`help`,`hex`,`id`,`input`,`int`,`isinstance`,`issubclass`,`iter`,`len`,`list`,`locals`,`map`,`max`,`memoryview`,`min`,`next`,`object`,`oct`,`open`,`ord`,`pow`,`print`,`property`,`range`,`repr`,`reversed`,`round`,`sentinel`,`set`,`setattr`,`slice`,`sorted`,`staticmethod`,`str`,`sum`,`super`,`tuple`,`type`,`vars`,`zip`],literal:[`__debug__`,`Ellipsis`,`False`,`None`,`NotImplemented`,`True`],type:[`Any`,`Callable`,`Coroutine`,`Dict`,`List`,`Literal`,`Generic`,`Optional`,`Sequence`,`Set`,`Tuple`,`Type`,`Union`]},l={className:`meta`,begin:/^(>>>|\.\.\.) /},c={className:`subst`,begin:/\{/,end:/\}/,keywords:a,illegal:/#/},p={begin:/\{\{/,relevance:0},m={className:`string`,contains:[n.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,l],relevance:10},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'''/,end:/'''/,contains:[n.BACKSLASH_ESCAPE,l,p,c]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"""/,end:/"""/,contains:[n.BACKSLASH_ESCAPE,l,p,c]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])'/,end:/'/,contains:[n.BACKSLASH_ESCAPE,p,c]},{begin:/([fFtT][rR]|[rR][fFtT]|[fFtT])"/,end:/"/,contains:[n.BACKSLASH_ESCAPE,p,c]},n.APOS_STRING_MODE,n.QUOTE_STRING_MODE]},v=`[0-9](_?[0-9])*`,b=`(\\b(${v}))?\\.(${v})|\\b(${v})\\.`,k=`\\b|${i.join(`|`)}`,O={className:`number`,relevance:0,variants:[{begin:`(\\b(${v})|(${b}))[eE][+-]?(${v})[jJ]?(?=${k})`},{begin:`(${b})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${k})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${k})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${k})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${k})`},{begin:`\\b(${v})[jJ](?=${k})`}]},M={className:`comment`,begin:e.lookahead(/# type:/),end:/$/,keywords:a,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:!0}]},V={className:`params`,variants:[{className:``,begin:/\(\s*\)/,skip:!0},{begin:/\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:[`self`,l,O,m,n.HASH_COMMENT_MODE]}]};return c.contains=[m,O,l],{name:`Python`,aliases:[`py`,`gyp`,`ipython`],unicodeRegex:!0,keywords:a,illegal:/(<\/|\?)|=>/,contains:[l,O,{scope:`variable.language`,match:/\bself\b/},{beginKeywords:`if`,relevance:0},{match:/\bor\b/,scope:`keyword`},m,M,n.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,t],scope:{1:`keyword`,3:`title.function`},contains:[V]},{variants:[{match:[/\bclass/,/\s+/,t,/\s*/,/\(\s*/,t,/\s*\)/]},{match:[/\bclass/,/\s+/,t]}],scope:{1:`keyword`,3:`title.class`,6:`title.class.inherited`}},{className:`meta`,begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[O,V,m]}]}}var Ep=`[A-Za-z$_][0-9A-Za-z$_]*`;var _E=[`as`,`in`,`of`,`if`,`for`,`while`,`finally`,`var`,`new`,`function`,`do`,`return`,`void`,`else`,`break`,`catch`,`instanceof`,`with`,`throw`,`case`,`default`,`try`,`switch`,`continue`,`typeof`,`delete`,`let`,`yield`,`const`,`class`,`debugger`,`async`,`await`,`static`,`import`,`from`,`export`,`extends`,`using`];var vE=[`true`,`false`,`null`,`undefined`,`NaN`,`Infinity`];var bE=[`Object`,`Function`,`Boolean`,`Symbol`,`Math`,`Date`,`Number`,`BigInt`,`String`,`RegExp`,`Array`,`Float32Array`,`Float64Array`,`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Int32Array`,`Uint16Array`,`Uint32Array`,`BigInt64Array`,`BigUint64Array`,`Set`,`Map`,`WeakSet`,`WeakMap`,`ArrayBuffer`,`SharedArrayBuffer`,`Atomics`,`DataView`,`JSON`,`Promise`,`Generator`,`GeneratorFunction`,`AsyncFunction`,`Reflect`,`Proxy`,`Intl`,`WebAssembly`];var xE=[`Error`,`EvalError`,`InternalError`,`RangeError`,`ReferenceError`,`SyntaxError`,`TypeError`,`URIError`];var CE=[`setInterval`,`setTimeout`,`clearInterval`,`clearTimeout`,`require`,`exports`,`eval`,`isFinite`,`isNaN`,`parseFloat`,`parseInt`,`decodeURI`,`decodeURIComponent`,`encodeURI`,`encodeURIComponent`,`escape`,`unescape`];var wE=[`arguments`,`this`,`super`,`console`,`window`,`document`,`localStorage`,`sessionStorage`,`module`,`self`,`global`];var EE=[].concat(CE,bE,xE);function H2(n){let e=n.regex,t=(Q,{after:H})=>{let de=`</`+Q[0].slice(1);return Q.input.indexOf(de,H)!==-1},i=Ep,o={begin:`<>`,end:`</>`},r=/<[A-Za-z0-9\\._:-]+\s*\/>/,s={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,isTrulyOpeningTag:(Q,H)=>{let de=Q[0].length+Q.index,Be=Q.input[de];if(Be===`<`||Be===`,`){H.ignoreMatch();return}Be===`>`&&(t(Q,{after:de})||H.ignoreMatch());let lt,en=Q.input.substring(de);if(lt=en.match(/^\s*=/)){H.ignoreMatch();return}if((lt=en.match(/^\s+extends\s+/))&<.index===0){H.ignoreMatch();return}}},a={$pattern:Ep,keyword:_E,literal:vE,built_in:EE,"variable.language":wE},l=`[0-9](_?[0-9])*`,c=`\\.(${l})`,p=`0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*`,m={className:`number`,variants:[{begin:`(\\b(${p})((${c})|\\.)?|(${c}))[eE][+-]?(${l})\\b`},{begin:`\\b(${p})\\b((${c})\\b|\\.)?|(${c})\\b`},{begin:`\\b(0|[1-9](_?[0-9])*)n\\b`},{begin:`\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b`},{begin:`\\b0[bB][0-1](_?[0-1])*n?\\b`},{begin:`\\b0[oO][0-7](_?[0-7])*n?\\b`},{begin:`\\b0[0-7]+n?\\b`}],relevance:0},v={className:`subst`,begin:`\\$\\{`,end:`\\}`,keywords:a,contains:[]},b={begin:".?html`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`xml`}},k={begin:".?css`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`css`}},O={begin:".?gql`",end:``,starts:{end:"`",returnEnd:!1,contains:[n.BACKSLASH_ESCAPE,v],subLanguage:`graphql`}},M={className:`string`,begin:"`",end:"`",contains:[n.BACKSLASH_ESCAPE,v]},W={className:`comment`,variants:[n.COMMENT(/\/\*\*(?!\/)/,`\\*/`,{relevance:0,contains:[{begin:`(?=@[A-Za-z]+)`,relevance:0,contains:[{className:`doctag`,begin:`@[A-Za-z]+`},{className:`type`,begin:`\\{`,end:`\\}`,excludeEnd:!0,excludeBegin:!0,relevance:0},{className:`variable`,begin:i+`(?=\\s*(-)|$)`,endsParent:!0,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),n.C_BLOCK_COMMENT_MODE,n.C_LINE_COMMENT_MODE]},pe=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,{match:/\$\d+/},m];v.contains=pe.concat({begin:/\{/,end:/\}/,keywords:a,contains:[`self`].concat(pe)});let me=[].concat(W,v.contains),we=me.concat([{begin:/(\s*)\(/,end:/\)/,keywords:a,contains:[`self`].concat(me)}]),ve={className:`params`,begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we},st={variants:[{match:[/class/,/\s+/,i,/\s+/,/extends/,/\s+/,e.concat(i,`(`,e.concat(/\./,i),`)*`)],scope:{1:`keyword`,3:`title.class`,5:`keyword`,7:`title.class.inherited`}},{match:[/class/,/\s+/,i],scope:{1:`keyword`,3:`title.class`}}]},qe={relevance:0,match:e.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:`title.class`,keywords:{_:[...bE,...xE]}},Ke={label:`use_strict`,className:`meta`,relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},vt={variants:[{match:[/function/,/\s+/,i,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:`keyword`,3:`title.function`},label:`func.def`,contains:[ve],illegal:/%/},Pt={relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:`variable.constant`};function qt(Q){return e.concat(`(?!`,Q.join(`|`),`)`)}let $t={match:e.concat(/\b/,qt([...CE,`super`,`import`,`await`].map(Q=>`${Q}\\s*\\(`)),i,e.lookahead(/\s*\(/)),className:`title.function`,relevance:0},at={begin:e.concat(/\./,e.lookahead(e.concat(i,/(?![0-9A-Za-z$_(])/))),end:i,excludeBegin:!0,keywords:`prototype`,className:`property`,relevance:0},Te={match:[/get|set/,/\s+/,i,/(?=\()/],className:{1:`keyword`,3:`title.function`},contains:[{begin:/\(\)/},ve]},B=`(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|`+n.UNDERSCORE_IDENT_RE+`)\\s*=>`,ae={match:[/const|var|let/,/\s+/,i,/\s*/,/=\s*/,/(async\s*)?/,e.lookahead(B)],keywords:`async`,className:{1:`keyword`,3:`title.function`},contains:[ve]};return{name:`JavaScript`,aliases:[`js`,`jsx`,`mjs`,`cjs`],keywords:a,exports:{PARAMS_CONTAINS:we,CLASS_REFERENCE:qe},illegal:/#(?![$_A-Za-z])/,contains:[n.SHEBANG({label:`shebang`,binary:`node`,relevance:5}),Ke,n.APOS_STRING_MODE,n.QUOTE_STRING_MODE,b,k,O,M,W,{match:/\$\d+/},m,qe,{scope:`attr`,match:i+e.lookahead(`:`),relevance:0},ae,{begin:`(`+n.RE_STARTERS_RE+`|\\b(case|return|throw)\\b)\\s*`,keywords:`return throw case`,relevance:0,contains:[W,n.REGEXP_MODE,{className:`function`,begin:B,returnBegin:!0,end:`\\s*=>`,contains:[{className:`params`,variants:[{begin:n.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:!0},{begin:/(\s*)\(/,end:/\)/,excludeBegin:!0,excludeEnd:!0,keywords:a,contains:we}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:o.begin,end:o.end},{match:r},{begin:s.begin,"on:begin":s.isTrulyOpeningTag,end:s.end}],subLanguage:`xml`,contains:[{begin:s.begin,end:s.end,skip:!0,contains:[`self`]}]}]},vt,{beginKeywords:`while if switch catch for`},{begin:`\\b(?!function)`+n.UNDERSCORE_IDENT_RE+`\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{`,returnBegin:!0,label:`func.def`,contains:[ve,n.inherit(n.TITLE_MODE,{begin:i,className:`title.function`})]},{match:/\.\.\./,relevance:0},at,{match:`\\$`+i,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:`title.function`},contains:[ve]},$t,Pt,st,Te,{match:/\$[(.]/}]}}function SE(n){let e=n.regex,t=H2(n),i=Ep,o=[`any`,`void`,`number`,`boolean`,`string`,`object`,`never`,`symbol`,`bigint`,`unknown`],r={begin:[/namespace/,/\s+/,n.IDENT_RE],beginScope:{1:`keyword`,3:`title.class`}},s={beginKeywords:`interface`,end:/\{/,excludeEnd:!0,keywords:{keyword:`interface extends`,built_in:o},contains:[t.exports.CLASS_REFERENCE]},a={className:`meta`,relevance:10,begin:/^\s*['"]use strict['"]/},c={$pattern:Ep,keyword:_E.concat([`type`,`interface`,`public`,`private`,`protected`,`implements`,`declare`,`abstract`,`readonly`,`enum`,`override`,`satisfies`]),literal:vE,built_in:EE.concat(o),"variable.language":wE},p={className:`meta`,begin:`@`+i},m=(O,M,V)=>{let W=O.contains.findIndex(pe=>pe.label===M);if(W===-1)throw new Error(`can not find mode to replace`);O.contains.splice(W,1,V)};Object.assign(t.keywords,c),t.exports.PARAMS_CONTAINS.push(p);let v=t.contains.find(O=>O.scope===`attr`),b=Object.assign({},v,{match:e.concat(i,e.lookahead(/\s*\?:/))});t.exports.PARAMS_CONTAINS.push([t.exports.CLASS_REFERENCE,v,b]),t.contains=t.contains.concat([p,r,s,b]),m(t,`shebang`,n.SHEBANG()),m(t,`use_strict`,a);let k=t.contains.find(O=>O.label===`func.def`);return k.relevance=0,Object.assign(t,{name:`TypeScript`,aliases:[`ts`,`tsx`,`mts`,`cts`]}),t}function DE(n){let e=n.regex,t=e.concat(/[\p{L}_]/u,e.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),i=/[\p{L}0-9._:-]+/u,o={className:`symbol`,begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},r={begin:/\s/,contains:[{className:`keyword`,begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},s=n.inherit(r,{begin:/\(/,end:/\)/}),a=n.inherit(n.APOS_STRING_MODE,{className:`string`}),l=n.inherit(n.QUOTE_STRING_MODE,{className:`string`}),c={endsWithParent:!0,illegal:/</,relevance:0,contains:[{className:`attr`,begin:i,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:`string`,endsParent:!0,variants:[{begin:/"/,end:/"/,contains:[o]},{begin:/'/,end:/'/,contains:[o]},{begin:/[^\s"'=<>`]+/}]}]}]};return{name:`HTML, XML`,aliases:[`html`,`xhtml`,`rss`,`atom`,`xjb`,`xsd`,`xsl`,`plist`,`wsf`,`svg`],case_insensitive:!0,unicodeRegex:!0,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,relevance:10,contains:[r,l,a,s,{begin:/\[/,end:/\]/,contains:[{className:`meta`,begin:/<![a-z]/,end:/>/,contains:[r,s,l,a]}]}]},n.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},o,{className:`meta`,end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:`tag`,begin:/<style(?=\s|>)/,end:/>/,keywords:{name:`style`},contains:[c],starts:{end:/<\/style>/,returnEnd:!0,subLanguage:`css`}},{className:`tag`,begin:/<script(?=\s|>)/,end:/>/,keywords:{name:`script`},contains:[c],starts:{end:/<\/script>/,returnEnd:!0,subLanguage:`javascript`}},{className:`tag`,begin:/<>|<\/>/},{className:`tag`,begin:e.concat(/</,e.lookahead(e.concat(t,e.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:`name`,begin:t,relevance:0,starts:c}]},{className:`tag`,begin:e.concat(/<\//,e.lookahead(e.concat(t,/>/))),contains:[{className:`name`,begin:t,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}}function TE(n){let e=`true false yes no null`,t=`[\\w#;/?:@&=+$,.~*'()[\\]]+`,i={className:`attr`,variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},o={className:`template-variable`,variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]},r={className:`string`,relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:`char.escape`,relevance:0}]},s={className:`string`,relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[n.BACKSLASH_ESCAPE,o]},a=n.inherit(s,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),v={className:`number`,begin:`\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b`},b={end:`,`,endsWithParent:!0,excludeEnd:!0,keywords:e,relevance:0},k={begin:/\{/,end:/\}/,contains:[b],illegal:`\\n`,relevance:0},O={begin:`\\[`,end:`\\]`,contains:[b],illegal:`\\n`,relevance:0},M=[i,{className:`meta`,begin:`^---\\s*$`,relevance:10},{className:`string`,begin:`[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*`},{begin:`<%[%=-]?`,end:`[%-]?%>`,subLanguage:`ruby`,excludeBegin:!0,excludeEnd:!0,relevance:0},{className:`type`,begin:`!\\w+!`+t},{className:`type`,begin:`!<`+t+`>`},{className:`type`,begin:`!`+t},{className:`type`,begin:`!!`+t},{className:`meta`,begin:`&`+n.UNDERSCORE_IDENT_RE+`$`},{className:`meta`,begin:`\\*`+n.UNDERSCORE_IDENT_RE+`$`},{className:`bullet`,begin:`-(?=[ ]|$)`,relevance:0},n.HASH_COMMENT_MODE,{beginKeywords:e,keywords:{literal:e}},v,{className:`number`,begin:n.C_NUMBER_RE+`\\b`,relevance:0},k,O,r,s],V=[...M];return V.pop(),V.push(a),b.contains=V,{name:`YAML`,case_insensitive:!0,aliases:[`yml`],contains:M}}for(let[n,e]of Object.entries({bash:rE,css:sE,diff:aE,go:lE,javascript:fE,json:mE,markdown:hE,php:gE,python:yE,typescript:SE,xml:DE,yaml:TE}))wp.registerLanguage(n,e);var z2={sh:`bash`,shell:`bash`,zsh:`bash`,js:`javascript`,mjs:`javascript`,cjs:`javascript`,jsx:`javascript`,ts:`typescript`,mts:`typescript`,cts:`typescript`,tsx:`typescript`,html:`xml`,svg:`xml`,md:`markdown`,yml:`yaml`};var U2={bash:`bash`,cjs:`javascript`,css:`css`,diff:`diff`,go:`go`,html:`xml`,js:`javascript`,json:`json`,jsx:`javascript`,md:`markdown`,mjs:`javascript`,patch:`diff`,php:`php`,py:`python`,sh:`bash`,svg:`xml`,ts:`typescript`,tsx:`typescript`,xml:`xml`,yaml:`yaml`,yml:`yaml`,zsh:`bash`};function Sp(n){let e=n.split(`/`).pop()??``,t=e.lastIndexOf(`.`);if(!(t<=0))return U2[e.slice(t+1).toLowerCase()]}function Ea(n,e){let t=(e??``).trim().toLowerCase(),i=z2[t]??t;return i.length>0&&wp.getLanguage(i)!==void 0?{html:wp.highlight(n,{language:i,ignoreIllegals:!0}).value,language:i}:{html:G2(n),language:`text`}}function G2(n){return n.replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`).replace(/"/g,`"`)}function q2(n){return Array.from({length:n},()=>1/n)}function ME(n){return s(r({},n),{title:n.custom??n.auto??n.fallbackTitle})}var rr=class n{items=N([]);activeByOwner=N({});activePaneByGroup=N({});sizesByGroup=N({});counter=0;terminals=this.items.asReadonly();groups=C(()=>{let e=this.items(),t=[],i=new Map;for(let o of e)i.has(o.group)||(i.set(o.group,[]),t.push(o.group)),i.get(o.group).push(o);return t.map(o=>{let r=i.get(o),s=r[0],a=r.find(c=>c.id===this.activePaneByGroup()[o])??s,l=s.custom??a.auto??s.auto??s.fallbackTitle;return{id:o,owner:s.owner,name:l,title:r.length>1?`${l} (${r.length})`:l,count:r.length,sizes:this.sizesFor(o,r.length),panes:r,activePane:a.id}})});open(e){let t=this.mint(e,void 0);return this.setActive(e,t.group),t.id}split(e){let t=this.groups().find(o=>o.id===e);if(t===void 0)return;let i=this.mint(t.owner,e);return this.setActive(t.owner,e),this.setActivePane(e,i.id),i.id}setAutoTitle(e,t){let i=t.trim().length>0?t.trim():void 0;this.items.update(o=>o.map(r$15=>r$15.id!==e||r$15.auto===i?r$15:ME(s(r({},r$15),{auto:i}))))}rename(e,t){let i=t.trim().length>0?t.trim():void 0;this.items.update(o=>{let r$16=o.findIndex(a=>a.group===e);if(r$16<0)return o;let s$6=[...o];return s$6[r$16]=ME(s(r({},s$6[r$16]),{custom:i})),s$6})}closePane(e){let t=this.items().find(r=>r.id===e);if(t===void 0)return;let i=this.items().filter(r=>r.group===t.group);if(i.length<=1){this.close(t.group);return}let o=i.findIndex(r=>r.id===e);if(this.items.update(r=>r.filter(s=>s.id!==e)),this.activePaneFor(t.group)===e){let r=this.items().filter(s=>s.group===t.group);this.setActivePane(t.group,r[Math.min(o,r.length-1)]?.id)}}close(e){let t=this.items().find(r=>r.group===e)?.owner,o=this.groupIds(t).indexOf(e);if(!(o<0)&&(this.items.update(r=>r.filter(s=>s.group!==e)),this.setActivePane(e,void 0),this.activeFor(t)===e)){let r=this.groupIds(t);this.setActive(t,r[Math.min(o,r.length-1)])}}focus(e){let t=this.items().find(i=>i.id===e);t!==void 0&&(this.setActive(t.owner,t.group),this.setActivePane(t.group,e))}activeFor(e){return this.activeByOwner()[Y0(e)]}activePaneFor(e){return this.activePaneByGroup()[e]}setSizes(e,t){this.sizesByGroup.update(i=>s(r({},i),{[e]:t}))}sizesFor(e,t){let i=this.sizesByGroup()[e];return i!==void 0&&i.length===t?i:q2(t)}forgetOwner(e){this.items.update(t=>t.filter(i=>i.owner!==e)),this.setActive(e,void 0)}rekey(e,t){this.items.update(o=>o.map(r$17=>r$17.owner===e?s(r({},r$17),{owner:t}):r$17));let i=this.activeFor(e);i!==void 0&&(this.setActive(t,i),this.setActive(e,void 0))}snapshot(){return{panes:this.items().map(e=>r({},e)),activeByOwner:r({},this.activeByOwner()),activePaneByGroup:r({},this.activePaneByGroup()),sizesByGroup:r({},this.sizesByGroup())}}restore(e){let t=Y2(e);t!==void 0&&(this.items.set(t.panes),this.activeByOwner.set(t.activeByOwner),this.activePaneByGroup.set(t.activePaneByGroup),this.sizesByGroup.set(t.sizesByGroup),this.counter=t.panes.reduce((i,o)=>Math.max(i,W2(o.id)),this.counter))}mint(e,t){this.counter+=1;let i=`term-${this.counter}`,o=`Terminal ${this.counter}`,r={id:i,owner:e,group:t??i,title:o,fallbackTitle:o};return this.items.update(s=>[...s,r]),this.setActivePane(r.group,i),r}groupIds(e){let t=[];for(let i of this.items())i.owner===e&&!t.includes(i.group)&&t.push(i.group);return t}setActive(e,t){this.activeByOwner.update(i=>s(r({},i),{[Y0(e)]:t}))}setActivePane(e,t){this.activePaneByGroup.update(i=>s(r({},i),{[e]:t}))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function Y0(n){return n??``}function W2(n){let e=/^term-(\d+)$/.exec(n);return e===null?0:Number.parseInt(e[1],10)}function Y2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.panes;if(!Array.isArray(t))return;let i=t.flatMap(s=>{let a=K2(s);return a===void 0?[]:[a]}),o=new Set(i.map(s=>s.group)),r=new Set(i.map(s=>Y0(s.owner)));return{panes:i,activeByOwner:kE(e.activeByOwner,s=>r.has(s)),activePaneByGroup:kE(e.activePaneByGroup,s=>o.has(s)),sizesByGroup:Z2(e.sizesByGroup,o)}}function K2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.id,i=e.group,o=e.title,r$18=e.fallbackTitle;if(typeof t!=`string`||typeof i!=`string`||typeof o!=`string`||typeof r$18!=`string`)return;let s=e.owner,a=e.custom,l=e.auto,c=e.cwd;return r(r(r({id:t,group:i,title:o,fallbackTitle:r$18,owner:typeof s==`string`?s:void 0},typeof a==`string`?{custom:a}:{}),typeof l==`string`?{auto:l}:{}),typeof c==`string`?{cwd:c}:{})}function kE(n,e){if(typeof n!=`object`||n===null)return{};let t=n,i={};for(let[o,r]of Object.entries(t))e(o)&&(i[o]=typeof r==`string`?r:void 0);return i}function Z2(n,e){if(typeof n!=`object`||n===null)return{};let t=n,i={};for(let[o,r]of Object.entries(t)){if(!e.has(o)||!Array.isArray(r))continue;let s=r.filter(a=>typeof a==`number`);s.length===r.length&&s.length>0&&(i[o]=s)}return i}var IE=`file:`;var Q2=`mention:`;var Vt=class n{morse=w(Ie);drafts=w(ir);terminals=w(rr);queued=w(ba);items=N([]);active=N(void 0);draftCounter=0;pendingDraft;restorePending=!1;constructor(){ne(()=>this.drafts.use(this.composerKey()))}tabs=this.items.asReadonly();activeId=this.active.asReadonly();mainTabs=C(()=>this.items().filter(e=>e.kind===`session`||e.mention!==!0));activeTab=C(()=>this.items().find(e=>e.id===this.active()));noSessionInFront=C(()=>this.morse.capabilities()?.filePreview===!0&&this.active()===void 0);contextSessionId=C(()=>{let e=this.activeTab();if(e?.kind===`session`)return e.id;if(!(e?.kind!==`file`||e.sessionId===void 0))return this.findSession(e.sessionId)!==void 0?e.sessionId:void 0});composerKey=C(()=>this.contextSessionId()??this.morse.state().sessionId);mentionTabs=C(()=>{let e=this.contextSessionId();return this.items().filter(t=>t.kind===`file`&&t.mention===!0&&(e===void 0?t.sessionId===void 0:t.sessionId===e))});openSessionIds=C(()=>new Set(this.items().filter(e=>e.kind===`session`).map(e=>e.id)));ensureSession(e){if(this.findSession(e.id)===void 0){this.items.update(i=>[...i,r({kind:`session`},e)]),this.active()===void 0&&this.active.set(e.id);return}this.refreshSession(e)}refreshSession(e){let t=this.findSession(e.id);t===void 0||t.title===e.title&&t.cwd===e.cwd||this.items.update(i=>i.map(o=>o.kind===`session`&&o.id===e.id?r(r({},o),e):o))}startDraft(e){this.openDraft(e),this.morse.newSession(e)}openDraft(e){this.draftCounter+=1;let t=`draft-${this.draftCounter}`;this.items.update(i=>[...i,{kind:`session`,id:t,title:`New session`,cwd:e,draft:!0}]),this.active.set(t),this.pendingDraft=t}focusSession(e){this.restorePending=!1,this.pendingDraft=void 0,this.discardEmptyDrafts(),this.showSession(e),this.morse.activateSession(e.id,e.cwd)}showSession(e){if(this.restorePending){this.restorePending=!1,this.ensureSession(e);let t=this.activeTab();if(t?.kind===`session`&&t.draft!==!0&&t.id!==e.id){this.morse.activateSession(t.id,t.cwd);return}t===void 0&&this.active.set(e.id);return}this.promoteDraft(e),this.ensureSession(e),this.active.set(e.id)}snapshot(){let e=new Set(this.items().filter(o=>o.kind===`session`&&o.draft!==!0).map(o=>o.id)),t=this.items().flatMap(o=>o.kind===`session`?[r({kind:`session`,id:o.id,title:o.title,cwd:o.cwd},o.draft===!0?{draft:!0}:{})]:o.mention===!0&&(o.sessionId===void 0||!e.has(o.sessionId))?[]:[r(r(r(r(r(r({kind:`file`,id:o.id,path:o.path,title:o.title},o.mention===!0?{mention:!0}:{}),o.sessionId!==void 0&&e.has(o.sessionId)?{sessionId:o.sessionId}:{}),o.language!==void 0?{language:o.language}:{}),o.commitHash!==void 0?{commitHash:o.commitHash}:{}),o.commitSubject!==void 0?{commitSubject:o.commitSubject}:{}),o.projectCwd!==void 0?{projectCwd:o.projectCwd}:{})]),i=this.active();return r({tabs:t},i!==void 0&&t.some(o=>o.id===i)?{activeId:i}:{})}restore(e){let t=J2(e);if(t===void 0)return;let i=t.tabs.flatMap(a=>a.kind===`session`?[r({kind:`session`,id:a.id,title:a.title,cwd:a.cwd},a.draft===!0?{draft:!0}:{})]:[r(r(r(r(r({kind:`file`,id:a.id,path:a.path,title:a.title,language:a.language??Sp(a.path),loading:!1},a.mention===!0?{mention:!0}:{}),a.sessionId!==void 0?{sessionId:a.sessionId}:{}),a.commitHash!==void 0?{commitHash:a.commitHash}:{}),a.commitSubject!==void 0?{commitSubject:a.commitSubject}:{}),a.projectCwd!==void 0?{projectCwd:a.projectCwd}:{})]);this.items.set(i);let o=t.activeId!==void 0&&i.some(a=>a.id===t.activeId)?t.activeId:void 0;this.active.set(o),this.restorePending=o!==void 0;let r$19=i.find(a=>a.id===o);this.pendingDraft=r$19?.kind===`session`&&r$19.draft===!0?o:void 0,this.draftCounter=i.reduce((a,l)=>l.kind===`session`&&l.draft===!0?Math.max(a,nL(l.id)):a,this.draftCounter);let s=this.activeTab();s?.kind===`file`&&this.needsLoad(s)&&this.load(s.id)}endRestore(){this.restorePending=!1}openFile(e){let t=this.focusedOwner();this.placeFileTab(`${IE}${e}`,e,e,t.id!==void 0,t.id,t.cwd)}openCommitFile(e,t,i){let o=this.focusedOwner(),r=oL(e,t);this.placeFileTab(r,r,t,o.id!==void 0,o.id,o.cwd,{commitHash:e,commitSubject:i})}openMentionFile(e){let t=this.focusedOwner();this.placeFileTab(`${IE}${e}`,e,e,!0,t.id,t.cwd)}focusedOwner(){let e=this.activeTab();if(e?.kind===`session`)return{id:e.id,cwd:e.cwd??this.morse.state().workspace?.cwd};if(e?.kind===`file`&&e.sessionId!==void 0&&this.findSession(e.sessionId)!==void 0)return{id:e.sessionId,cwd:e.projectCwd??this.morse.state().workspace?.cwd};let t=this.morse.state().sessionId;return t!==void 0&&this.findSession(t)!==void 0?{id:t,cwd:this.morse.state().workspace?.cwd}:{cwd:this.morse.state().workspace?.cwd}}placeFileTab(e,t,i,o,r$20,s$7,a={}){let l=o?NE(r$20,t):e,c=this.items().find(m=>m.id===l);if(c!==void 0){c.kind===`file`&&this.revealFileTab(l,c,r$20,s$7);return}let p=o?this.items().find(m=>m.kind===`file`&&m.id===e):void 0;if(p!==void 0){let m=p.projectCwd!==s$7;this.items.update(v=>v.map(b=>b.id===p.id&&b.kind===`file`?r(s(r({},b),{id:l,mention:!0,sessionId:r$20,projectCwd:s$7}),m?PE():{}):b)),this.active.set(l),(m||this.needsLoad(p))&&this.load(l);return}this.items.update(m=>[...m,r({kind:`file`,id:l,path:i,title:iL(i),language:Sp(i),loading:!1,mention:o,sessionId:r$20,projectCwd:s$7},a)]),this.active.set(l),this.load(l)}revealFileTab(e,t,i,o){let r$21=t.projectCwd!==o;(t.sessionId!==i||r$21)&&this.patch(e,r({sessionId:i,projectCwd:o},r$21?PE():{})),this.active.set(e),(r$21||this.needsLoad(t))&&this.load(e)}select(e){let t=this.items().find(i=>i.id===e);if(t!==void 0){if(e===this.active()&&t.kind===`file`&&t.mention===!0&&t.sessionId!==void 0){let i=this.findSession(t.sessionId);if(i!==void 0){this.select(i.id);return}}if(this.active.set(e),t.kind===`session`){t.draft===!0?(this.pendingDraft=t.id,this.morse.state().sessionId!==void 0&&this.morse.newSession(t.cwd)):(this.pendingDraft=void 0,this.discardEmptyDrafts(),this.morse.activateSession(t.id,t.cwd));return}this.needsLoad(t)&&this.load(e)}}canMove(e,t){if(e===t)return!1;let i=this.items(),o=i.find(s=>s.id===e),r=i.find(s=>s.id===t);return o!==void 0&&r!==void 0&&OE(o)===OE(r)}move(e,t){if(!this.canMove(e,t))return;let i=this.items(),o=i.findIndex(c=>c.id===e),r=i.findIndex(c=>c.id===t),s=i[o],a=i.filter(c=>c.id!==e),l=a.findIndex(c=>c.id===t);a.splice(o<r?l+1:l,0,s),this.items.set(a)}close(e){let t=this.items().findIndex(s=>s.id===e);if(t===-1)return;let i=this.items()[t],o=i.kind===`session`&&i.draft!==!0,r=i.kind===`session`?i.cwd:void 0;this.remove(this.doomedWith(e),t),o&&this.fallBackToEmptySession(r)}forget(e){let t=this.items().findIndex(i=>i.id===e);t!==-1&&this.remove(this.doomedWith(e),t)}clearActiveSession(){if(this.restorePending)return;let e=this.items().find(t=>t.id===this.active());e!==void 0&&e.kind===`session`&&e.draft!==!0&&this.active.set(void 0)}menuScope(e){let t=e===void 0?void 0:this.items().find(i=>i.id===e);return t===void 0||t.kind===`session`?this.items():t.mention===!0?this.items().filter(i=>i.kind===`file`&&i.mention===!0&&i.sessionId===t.sessionId):this.items().filter(i=>i.kind===`file`&&i.mention!==!0)}canCloseToTheRight(e){let t=this.menuScope(e),i=t.findIndex(o=>o.id===e);return i!==-1&&i<t.length-1}canCloseOthers(e){return this.menuScope(e).length>1}closeOthers(e){let t=this.items().find(c=>c.id===e);if(t===void 0)return;let i=this.menuScope(e),o=new Set([e]);if(t.kind===`session`)for(let c of this.mentionFilesOf(e))o.add(c.id);let r=i.filter(c=>!o.has(c.id));if(r.length===0)return;let s=new Set(r.map(c=>c.id)),a=r.some(c=>c.kind===`session`&&c.draft!==!0),l=r.find(c=>c.kind===`session`)?.cwd;this.items.update(c=>c.filter(p=>!s.has(p.id))),this.forgetDrafts(s),this.active.set(e),t.kind===`session`&&t.draft!==!0&&this.morse.activateSession(t.id,t.cwd),this.pruneOrphanMentions(),a&&this.fallBackToEmptySession(l)}closeToTheRight(e){let t=this.menuScope(e),i=t.findIndex(c=>c.id===e);if(i===-1)return;let o=t.slice(i+1);if(o.length===0)return;let r=new Set(o.map(c=>c.id)),s=o.some(c=>c.kind===`session`&&c.draft!==!0),a=o.find(c=>c.kind===`session`)?.cwd,l=this.active();this.items.update(c=>c.filter(p=>!r.has(p.id))),this.forgetDrafts(r),this.pruneOrphanMentions(),l!==void 0&&r.has(l)&&this.select(e),s&&this.fallBackToEmptySession(a)}closeAll(e){let t=this.menuScope(e);if(t.length===0)return;let i=new Set(t.map(a=>a.id)),o=t.some(a=>a.kind===`session`&&a.draft!==!0),r=t.find(a=>a.kind===`session`)?.cwd,s=this.active();if(this.items.update(a=>a.filter(l=>!i.has(l.id))),this.forgetDrafts(i),this.pruneOrphanMentions(),s!==void 0&&i.has(s)){let a=this.items(),l=a.at(-1)??a[0];l!==void 0?this.select(l.id):this.active.set(void 0)}o&&this.fallBackToEmptySession(r)}fallBackToEmptySession(e){this.items().some(t=>t.kind===`session`)||this.morse.state().sessionId!==void 0&&this.morse.newSession(e??this.morse.state().workspace.cwd)}doomedWith(e){let t=new Set([e]),i=new Set(this.items().filter(o=>o.kind===`session`&&o.id!==e).map(o=>o.id));for(let o of this.items())o.kind!==`file`||o.mention!==!0||(o.sessionId===void 0||o.sessionId===e||!i.has(o.sessionId))&&t.add(o.id);return t}mentionFilesOf(e){return this.items().filter(t=>t.kind===`file`&&t.mention===!0&&t.sessionId===e)}remove(e,t){let i=this.active();if(this.items.update(s=>s.filter(a=>!e.has(a.id))),this.forgetDrafts(e),i===void 0||!e.has(i))return;let o=this.items(),r=o[Math.min(t,o.length-1)];if(r===void 0){this.active.set(void 0);return}this.select(r.id)}forgetDrafts(e){for(let t of e)t===this.pendingDraft&&(this.pendingDraft=void 0),this.drafts.forget(t),this.terminals.forgetOwner(t),this.queued.forgetOwner(t)}pruneOrphanMentions(){let e=new Set(this.items().filter(o=>o.kind===`session`).map(o=>o.id)),t=this.items(),i=new Set(t.filter(o=>o.kind===`file`&&o.mention===!0&&(o.sessionId===void 0||!e.has(o.sessionId))).map(o=>o.id));i.size!==0&&this.remove(i,t.findIndex(o=>o.id===this.active()))}reload(e){this.patch(e,{diff:void 0,diffError:void 0}),this.load(e)}loadDiff(e){let t=this.items().find(o=>o.id===e);if(t===void 0||t.kind!==`file`||t.diff!==void 0||t.diffLoading===!0)return;this.patch(e,{diffLoading:!0,diffError:void 0}),(t.commitHash!==void 0?this.morse.requestHostCommand(`gitCommitDiff`,{hash:t.commitHash,path:t.path,cwd:t.projectCwd}):this.morse.requestHostCommand(`gitDiff`,{path:t.path,cwd:t.projectCwd})).then(o=>{let r=tL(o);if(r===void 0){this.patch(e,{diffLoading:!1,diffError:t.commitHash===void 0?`Could not read this file’s changes.`:`Could not read this file in that commit.`});return}this.patch(e,{diffLoading:!1,diff:r})})}findSession(e){return this.items().find(t=>t.kind===`session`&&t.id===e)}promoteDraft(e){let t=this.pendingDraft;if(this.pendingDraft=void 0,t===void 0)return;let i=this.items().find(o=>o.kind===`session`&&o.id===t&&o.draft===!0);if(i!==void 0){if(this.findSession(e.id)!==void 0){this.discardEmptyDrafts();return}this.drafts.rekey(i.id,e.id),this.terminals.rekey(i.id,e.id),this.queued.rekey(i.id,e.id),this.items.update(o=>o.map(r$22=>r$22.kind===`session`&&r$22.id===i.id?r({kind:`session`},e):r$22.kind===`file`&&r$22.mention===!0&&r$22.sessionId===i.id?s(r({},r$22),{sessionId:e.id,id:NE(e.id,r$22.path)}):r$22))}}discardEmptyDrafts(){let e=this.items().filter(i=>i.kind===`session`&&i.draft===!0&&this.drafts.isEmpty(i.id));if(e.length===0)return;let t=new Set(e.map(i=>i.id));this.items.update(i=>i.filter(o=>!t.has(o.id))),this.pendingDraft!==void 0&&t.has(this.pendingDraft)&&(this.pendingDraft=void 0);for(let i of t)this.drafts.forget(i),this.terminals.forgetOwner(i),this.queued.forgetOwner(i);this.pruneOrphanMentions()}needsLoad(e){return e.kind!==`file`?!1:e.commitHash!==void 0?e.diff===void 0&&e.diffLoading!==!0&&e.diffError===void 0:!e.loading&&e.content===void 0&&e.error===void 0}async load(e){let t=this.items().find(r=>r.id===e);if(t===void 0||t.kind!==`file`)return;if(t.commitHash!==void 0){this.loadDiff(e);return}this.patch(e,{loading:!0,error:void 0});let o=X2(await this.morse.requestHostCommand(`readFile`,{path:t.path,cwd:t.projectCwd}));if(o===void 0){this.patch(e,{loading:!1,error:`Could not read this file.`});return}this.patch(e,{loading:!1,content:o.content,size:o.size,truncated:o.truncated,binary:o.binary,language:Sp(o.path)})}patch(e,t){this.items.update(i=>i.map(o=>o.id===e&&o.kind===`file`?r(r({},o),t):o))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function X2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.content,i=e.path;if(typeof t!=`string`||typeof i!=`string`)return;let o=e.size;return{path:i,content:t,size:typeof o==`number`?o:t.length,truncated:e.truncated===!0,binary:e.binary===!0}}function J2(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.tabs;if(!Array.isArray(t))return;let i=t.flatMap(r=>{let s=eL(r);return s===void 0?[]:[s]}),o=e.activeId;return r({tabs:i},typeof o==`string`?{activeId:o}:{})}function eL(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.id;if(typeof t!=`string`||t.length===0)return;if(e.kind===`session`){let p=e.title;if(typeof p!=`string`)return;let m=e.cwd;return r(r({kind:`session`,id:t,title:p},typeof m==`string`?{cwd:m}:{}),e.draft===!0?{draft:!0}:{})}if(e.kind!==`file`)return;let i=e.path,o=e.title;if(typeof i!=`string`||typeof o!=`string`)return;let r$23=e.sessionId,s=e.language,a=e.commitHash,l=e.commitSubject,c=e.projectCwd;return r(r(r(r(r(r({kind:`file`,id:t,path:i,title:o},e.mention===!0?{mention:!0}:{}),typeof r$23==`string`?{sessionId:r$23}:{}),typeof s==`string`?{language:s}:{}),typeof a==`string`?{commitHash:a}:{}),typeof l==`string`?{commitSubject:l}:{}),typeof c==`string`?{projectCwd:c}:{})}function tL(n){if(typeof n!=`object`||n===null)return;let e=n.diff;return typeof e==`string`?e:void 0}function nL(n){let e=/^draft-(\d+)$/.exec(n);return e===null?0:Number.parseInt(e[1],10)}function iL(n){let e=n.lastIndexOf(`/`);return e===-1?n:n.slice(e+1)}function NE(n,e){return`${Q2}${n??``}:${e}`}function oL(n,e){return`commit:${n}:${e}`}function PE(){return{content:void 0,error:void 0,diff:void 0,diffError:void 0}}function OE(n){return n.kind===`file`&&n.mention===!0?`mention`:`main`}function rL(n,e,t=80){let i=Math.floor(n-4-8);return Math.max(t,Math.min(e,i))}var Dp=class n{preferred=se(320,{alias:`morsePopoverFit`});host=w(St);renderer=w($n).createRenderer(null,null);observer;constructor(){An(()=>{this.fit();let e=this.anchor();e&&typeof ResizeObserver<`u`&&(this.observer=new ResizeObserver(()=>this.fit()),this.observer.observe(e))}),w(He).onDestroy(()=>this.observer?.disconnect())}onWindowResize(){this.fit()}anchor(){let e=this.host.nativeElement;return e.offsetParent??e.parentElement}fit(){let t=rL(this.anchor()?.getBoundingClientRect().top??0,this.preferred());this.renderer.setStyle(this.host.nativeElement,`--morse-popover-max-height`,`${t}px`)}static ɵfac=function(t){return new(t||n)};static ɵdir=oi({type:n,selectors:[[``,`morsePopoverFit`,``]],hostBindings:function(t,i){t&1&&A(`resize`,function(){return i.onWindowResize()},lg)},inputs:{preferred:[1,`morsePopoverFit`,`preferred`]}})};var Sn=class n{morseEnter=se(0);morseEnterY=se(8);morseEnterDuration=se(260);morseEnterScale=se(void 0);element=w(St);animation=w(En);ngAfterViewInit(){let e=Math.max(0,this.morseEnter());this.animation.enter(this.element.nativeElement,{y:this.morseEnterY(),duration:this.morseEnterDuration(),scale:this.morseEnterScale(),delay:Math.min(e,8)*24})}static ɵfac=function(t){return new(t||n)};static ɵdir=oi({type:n,selectors:[[``,`morseEnter`,``]],inputs:{morseEnter:[1,`morseEnter`],morseEnterY:[1,`morseEnterY`],morseEnterDuration:[1,`morseEnterDuration`],morseEnterScale:[1,`morseEnterScale`]}})};var sL=[`list`];function aL(n,e){n&1&&(h(0,`div`,2),u(1,`Reading the workspace…`),y())}function lL(n,e){if(n&1&&(h(0,`div`,4),u(1),y()),n&2){let t=f(2);d(),ie(`No match for “`,t.query(),`”.`)}}function cL(n,e){if(n&1){let t=L();h(0,`div`,4),u(1,` The host returned no workspace files. `),h(2,`button`,5),A(`click`,function(){D(t);return T(f(2).reload.emit())}),u(3,`Load again`),y()()}}function dL(n,e){if(n&1&&E(0,lL,2,1,`div`,4)(1,cL,4,0,`div`,4),n&2)S(f().query().length>0?0:1)}function uL(n,e){if(n&1){let t=L();h(0,`button`,12),A(`mouseenter`,function(){D(t);let o=f().$index;return T(f(2).activeChange.emit(o))})(`click`,function(){D(t);let o=f().$implicit;return T(f(2).quote.emit(o))}),u(1,` ⧉ `),y()}}function pL(n,e){if(n&1){let t=L();h(0,`li`)(1,`button`,7),A(`mouseenter`,function(){let o=D(t).$index;return T(f(2).activeChange.emit(o))})(`click`,function(){let o=D(t).$implicit;return T(f(2).pick.emit(o))}),h(2,`span`,8),u(3),y(),h(4,`span`,9)(5,`span`,10),u(6),y(),u(7),y()(),E(8,uL,2,0,`button`,11),y()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);q(`active`,i===o.active()),d(3),I(o.isDirectory(t)?`▸`:`▤`),d(3),I(o.split(t).dir),d(),ie(``,o.split(t).base,` `),d(),S(o.isDirectory(t)?-1:8)}}function fL(n,e){if(n&1&&(h(0,`ul`,null,0),X(2,pL,9,6,`li`,6,kn),y()),n&2){let t=f();d(2),J(t.files())}}var Tp=class n{files=se.required();busy=se(!1);query=se(``);active=se(0);pick=je();quote=je();close=je();reload=je();activeChange=je();list=Ue(`list`);constructor(){ne(()=>{this.active(),this.files(),setTimeout(()=>this.revealActive(),0)})}revealActive(){let e=this.list()?.nativeElement,t=e?.children.item(this.active());if(!e||!t)return;let i=e.getBoundingClientRect(),o=t.getBoundingClientRect();o.top<i.top?e.scrollTop-=i.top-o.top:o.bottom>i.bottom&&(e.scrollTop+=o.bottom-i.bottom)}split(e){let t=e.lastIndexOf(`/`);return t===-1?{dir:``,base:e}:{dir:e.slice(0,t+1),base:e.slice(t+1)}}isDirectory(e){return K0(e)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-file-picker`]],viewQuery:function(t,i){t&1&&nt(i.list,sL,5),t&2&&ot()},inputs:{files:[1,`files`],busy:[1,`busy`],query:[1,`query`],active:[1,`active`]},outputs:{pick:`pick`,quote:`quote`,close:`close`,reload:`reload`,activeChange:`activeChange`},decls:19,vars:3,consts:[[`list`,``],[1,`picker`,3,`morseEnter`,`morseEnterY`],[1,`busy`],[1,`hint`],[1,`empty`],[`type`,`button`,1,`reload`,3,`click`],[3,`active`],[`type`,`button`,1,`row`,3,`mouseenter`,`click`],[1,`icon`],[1,`path`],[1,`dir`],[`type`,`button`,`title`,`Mention and quote a line range`,`aria-label`,`Mention and quote a line range`,1,`quote`],[`type`,`button`,`title`,`Mention and quote a line range`,`aria-label`,`Mention and quote a line range`,1,`quote`,3,`mouseenter`,`click`]],template:function(t,i){t&1&&(h(0,`div`,1),E(1,aL,2,0,`div`,2)(2,dL,2,1)(3,fL,4,0,`ul`),h(4,`div`,3)(5,`kbd`),u(6,`↑`),y(),h(7,`kbd`),u(8,`↓`),y(),u(9,` move · `),h(10,`kbd`),u(11,`Enter`),y(),u(12,` mention · `),h(13,`kbd`),u(14,`⇧Enter`),y(),u(15,` quote · `),h(16,`kbd`),u(17,`Esc`),y(),u(18,` close `),y()()),t&2&&(j(`morseEnter`,0)(`morseEnterY`,6),d(),S(i.busy()&&i.files().length===0?1:i.files().length===0?2:3))},dependencies:[Sn],styles:[`[_nghost-%COMP%]{display:block}.picker[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:var(--%NS%morse-popover-max-height, 300px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 10px 28px #0000004d;overflow:hidden}ul[_ngcontent-%COMP%]{margin:0;padding:4px 0;list-style:none;overflow-y:auto}li[_ngcontent-%COMP%]{display:flex;align-items:center}li[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{flex:1;display:flex;align-items:center;gap:8px;padding:4px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg);font-size:12px;text-align:left;cursor:pointer}li.active[_ngcontent-%COMP%] .row[_ngcontent-%COMP%]{background:var(--%NS%morse-active)}.quote[_ngcontent-%COMP%]{flex:none;width:26px;height:26px;margin-right:4px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg-muted);font-size:12px;cursor:pointer;opacity:.55}.quote[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg);opacity:1}.icon[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:11px}.path[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--%NS%morse-font-mono)}.dir[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted)}.empty[_ngcontent-%COMP%], .busy[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:8px 10px;color:var(--%NS%morse-fg-muted);font-size:12px}.reload[_ngcontent-%COMP%]{padding:1px 8px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);font-size:11px;cursor:pointer}.reload[_ngcontent-%COMP%]:hover{background:var(--%NS%morse-hover)}.hint[_ngcontent-%COMP%]{padding:5px 10px;border-top:1px solid var(--%NS%morse-border);color:var(--%NS%morse-fg-muted);font-size:11px}kbd[_ngcontent-%COMP%]{font-family:var(--%NS%morse-font-mono);font-size:10px;padding:0 3px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm)}`]})};function RE(n,e,t=50){let i=e.trim().toLowerCase();return n.map(o=>({file:o,score:i.length===0?0:mL(o,i)})).filter(o=>o.score<Number.POSITIVE_INFINITY).sort((o,r)=>AE(o.file)-AE(r.file)||o.score-r.score||o.file.length-r.file.length||o.file.localeCompare(r.file)).slice(0,t).map(o=>o.file)}function K0(n){return n.endsWith(`/`)}function AE(n){return K0(n)?0:1}function mL(n,e){let t=(K0(n)?n.slice(0,-1):n).toLowerCase(),i=t.lastIndexOf(`/`),o=i===-1?t:t.slice(i+1);return o.startsWith(e)?0:o.includes(e)?1:t.startsWith(e)?2:t.includes(e)?3:Number.POSITIVE_INFINITY}var hL=[`list`];var gL=(n,e)=>e.id;function yL(n,e){if(n&1&&(h(0,`div`,3),u(1),y()),n&2){let t=f(2);d(),ie(`No command matches “`,t.query(),`”.`)}}function _L(n,e){n&1&&(h(0,`div`,3),u(1,`No commands available in this session.`),y())}function vL(n,e){if(n&1&&E(0,yL,2,1,`div`,3)(1,_L,2,0,`div`,3),n&2)S(f().query().length>0?0:1)}function bL(n,e){if(n&1&&(h(0,`span`,5),u(1),y()),n&2){let t=f().$implicit;d(),I(t.icon)}}function xL(n,e){if(n&1&&(h(0,`span`,8),u(1),y()),n&2){let t=f().$implicit;d(),I(t.description)}}function CL(n,e){if(n&1&&(h(0,`span`,9),u(1),y()),n&2){let t=f().$implicit;d(),I(t.badge)}}function wL(n,e){if(n&1){let t=L();h(0,`li`)(1,`button`,4),A(`mouseenter`,function(){let o=D(t).$index;return T(f(2).activeChange.emit(o))})(`pointerdown`,function(o){return o.preventDefault()})(`click`,function(){let o=D(t).$implicit;return T(f(2).pick.emit(o.id))}),E(2,bL,2,1,`span`,5),h(3,`span`,6)(4,`span`,7),u(5),y(),E(6,xL,2,1,`span`,8),y(),E(7,CL,2,1,`span`,9),y()()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);d(),q(`active`,i===o.active()),d(),S(t.icon?2:-1),d(3),I(t.label),d(),S(t.description?6:-1),d(),S(t.badge?7:-1)}}function EL(n,e){if(n&1&&(h(0,`ul`,null,0),X(2,wL,8,6,`li`,null,gL),y()),n&2){let t=f();d(2),J(t.items())}}var Mp=class n{items=se.required();query=se(``);active=se(0);pick=je();close=je();activeChange=je();list=Ue(`list`);constructor(){ne(()=>{this.active(),this.items(),setTimeout(()=>this.revealActive(),0)})}revealActive(){let e=this.list()?.nativeElement,t=e?.children.item(this.active());if(!e||!t)return;let i=e.getBoundingClientRect(),o=t.getBoundingClientRect();o.top<i.top?e.scrollTop-=i.top-o.top:o.bottom>i.bottom&&(e.scrollTop+=o.bottom-i.bottom)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-command-picker`]],viewQuery:function(t,i){t&1&&nt(i.list,hL,5),t&2&&ot()},inputs:{items:[1,`items`],query:[1,`query`],active:[1,`active`]},outputs:{pick:`pick`,close:`close`,activeChange:`activeChange`},decls:18,vars:3,consts:[[`list`,``],[1,`picker`,3,`morseEnter`,`morseEnterY`],[1,`hint`],[1,`empty`],[`type`,`button`,3,`mouseenter`,`pointerdown`,`click`],[1,`icon`],[1,`text`],[1,`label`],[1,`description`],[1,`badge`]],template:function(t,i){t&1&&(h(0,`div`,1),E(1,vL,2,1)(2,EL,4,0,`ul`),h(3,`div`,2)(4,`kbd`),u(5,`↑`),y(),h(6,`kbd`),u(7,`↓`),y(),u(8,` move · `),h(9,`kbd`),u(10,`Enter`),y(),u(11,` run · `),h(12,`kbd`),u(13,`Tab`),y(),u(14,` insert · `),h(15,`kbd`),u(16,`Esc`),y(),u(17,` close `),y()()),t&2&&(j(`morseEnter`,0)(`morseEnterY`,6),d(),S(i.items().length===0?1:2))},dependencies:[Sn],styles:[`[_nghost-%COMP%]{display:block}.picker[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:var(--%NS%morse-popover-max-height, 320px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 10px 28px #0000004d;overflow:hidden}ul[_ngcontent-%COMP%]{margin:0;padding:4px 0;list-style:none;overflow-y:auto}li[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg);font-size:12px;text-align:left;cursor:pointer}li[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--%NS%morse-active)}.icon[_ngcontent-%COMP%]{flex:none;width:14px;color:var(--%NS%morse-fg-muted);text-align:center}.text[_ngcontent-%COMP%]{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.label[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--%NS%morse-font-mono)}.description[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--%NS%morse-fg-muted);font-size:11px}.badge[_ngcontent-%COMP%]{flex:none;padding:1px 6px;border-radius:999px;background:var(--%NS%morse-badge-bg);color:var(--%NS%morse-badge-fg);font-size:10px}.empty[_ngcontent-%COMP%]{padding:8px 10px;color:var(--%NS%morse-fg-muted);font-size:12px}.hint[_ngcontent-%COMP%]{padding:5px 10px;border-top:1px solid var(--%NS%morse-border);color:var(--%NS%morse-fg-muted);font-size:11px}kbd[_ngcontent-%COMP%]{font-family:var(--%NS%morse-font-mono);font-size:10px;padding:0 3px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm)}`]})};function LE(n,e,t=50){let i=e.trim().toLowerCase();return i.length===0?n.slice(0,t):n.map(o=>({item:o,score:SL(o,i)})).filter(o=>o.score<Number.POSITIVE_INFINITY).sort((o,r)=>o.score-r.score||o.item.label.length-r.item.label.length).slice(0,t).map(o=>o.item)}function SL(n,e){let t=n.label.toLowerCase();return t.startsWith(e)?0:t.includes(e)?1:n.description?.toLowerCase().includes(e)?2:Number.POSITIVE_INFINITY}var DL=[`card`];var TL=(n,e)=>e.id;function ML(n,e){n&1&&(g(0,`p`,5),u(1),_()),n&2&&(d(),I(e))}function kL(n,e){n&1&&(g(0,`span`,16),u(1,`required`),_())}function IL(n,e){if(n&1){let t=L();g(0,`textarea`,19),F(`input`,function(o){D(t);let r=f().$implicit;return T(f().setValue(r.id,o))})(`keydown`,function(o){D(t);return T(f(2).onSubmitKey(o))}),_()}if(n&2){let t=f().$implicit;te(`value`,f().value(t.id)),Y(`aria-label`,t.label)}}function NL(n,e){if(n&1){let t=L();g(0,`input`,20),F(`input`,function(o){D(t);let r=f().$implicit;return T(f().setValue(r.id,o))})(`keydown.enter`,function(o){D(t);return T(f(2).submit(o))}),_()}if(n&2){let t=f().$implicit;te(`value`,f().value(t.id)),Y(`aria-label`,t.label)}}function PL(n,e){if(n&1&&(g(0,`label`,7)(1,`span`,8),u(2),E(3,kL,2,0,`span`,16),_(),E(4,IL,1,2,`textarea`,17)(5,NL,1,2,`input`,18),_()),n&2){let t=e.$implicit;d(2),ie(` `,t.label,` `),d(),S(t.required?3:-1),d(),S(t.index===void 0?4:5)}}var kp=class n{request=se.required();submitted=je();cancelled=je();card=Ue(`card`);values=N({});extra=N(``);preview=C(()=>ow(this.request().form,this.values(),this.extra()));ready=C(()=>this.request().form.arguments.every(e=>!e.required||(this.values()[e.id]??``).trim().length>0));constructor(){ne(()=>{this.request(),this.values.set({}),this.extra.set(``),setTimeout(()=>{this.card()?.nativeElement.querySelector(`input, textarea`)?.focus()},0)})}value(e){return this.values()[e]??``}setValue(e,t){let i=t.target.value;this.values.update(o=>s(r({},o),{[e]:i}))}setExtra(e){this.extra.set(e.target.value)}submit(e){e?.preventDefault(),this.ready()&&this.submitted.emit(this.preview())}onSubmitKey(e){e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&this.submit(e)}onEscape(){this.cancelled.emit()}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-prompt-template-dialog`]],viewQuery:function(t,i){t&1&&nt(i.card,DL,5),t&2&&ot()},hostBindings:function(t,i){t&1&&A(`keydown.escape`,function(){return i.onEscape()},Dt)},inputs:{request:[1,`request`]},outputs:{submitted:`submitted`,cancelled:`cancelled`},decls:26,vars:5,consts:[[`card`,``],[1,`modal-layer`,3,`click`],[`role`,`dialog`,`aria-modal`,`true`,`aria-labelledby`,`template-title`,1,`modal-card`,3,`click`],[1,`head`],[`id`,`template-title`],[1,`description`],[1,`fields`],[1,`field`],[1,`field-label`],[1,`optional`],[`rows`,`3`,`aria-label`,`Additional instructions`,`placeholder`,`Anything the template does not cover`,3,`input`,`keydown`,`value`],[1,`preview`],[`aria-label`,`Prompt preview`],[1,`actions`],[`type`,`button`,1,`secondary`,3,`click`],[`type`,`button`,3,`click`,`disabled`],[1,`required`],[`rows`,`2`,`placeholder`,`Shell-quoted arguments, e.g. "api tests" lint`,3,`value`],[`type`,`text`,3,`value`],[`rows`,`2`,`placeholder`,`Shell-quoted arguments, e.g. "api tests" lint`,3,`input`,`keydown`,`value`],[`type`,`text`,3,`input`,`keydown.enter`,`value`]],template:function(t,i){if(t&1&&(g(0,`div`,1),F(`click`,function(){return i.cancelled.emit()}),g(1,`div`,2,0),F(`click`,function(r){return r.stopPropagation()}),g(3,`header`,3)(4,`h2`,4),u(5),_(),E(6,ML,2,1,`p`,5),_(),g(7,`div`,6),X(8,PL,6,3,`label`,7,TL),g(10,`label`,7)(11,`span`,8),u(12,` Additional instructions `),g(13,`span`,9),u(14,`optional · appended below the template`),_()(),g(15,`textarea`,10),F(`input`,function(r){return i.setExtra(r)})(`keydown`,function(r){return i.onSubmitKey(r)}),_()(),g(16,`div`,11)(17,`span`,8),u(18,`Preview`),_(),g(19,`pre`,12),u(20),_()(),g(21,`div`,13)(22,`button`,14),F(`click`,function(){return i.cancelled.emit()}),u(23,`Cancel`),_(),g(24,`button`,15),F(`click`,function(){return i.submit()}),u(25,`Send`),_()()()()()),t&2){let o;d(5),ie(`/`,i.request().name),d(),S((o=i.request().description)?6:-1,o),d(2),J(i.request().form.arguments),d(7),te(`value`,i.extra()),d(5),I(i.preview()),d(4),te(`disabled`,!i.ready())}},styles:[`[_nghost-%COMP%]{display:contents}.modal-layer[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:75;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.modal-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:12px;width:min(560px,100%);max-height:min(84vh,760px);overflow:auto;padding:16px 18px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-lg);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 18px 48px #0006;animation:_ngcontent-%COMP%_template-in .14s ease-out}.head[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:3px}h2[_ngcontent-%COMP%]{margin:0;font-family:var(--%NS%morse-font-mono);font-size:14px;font-weight:600}.description[_ngcontent-%COMP%]{margin:0;font-size:12px;color:var(--%NS%morse-fg-muted)}form[_ngcontent-%COMP%], .fields[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:10px}.field[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}.field-label[_ngcontent-%COMP%]{font-size:11.5px;font-weight:600;color:var(--%NS%morse-fg-muted)}.required[_ngcontent-%COMP%], .optional[_ngcontent-%COMP%]{margin-left:4px;font-weight:400;font-size:10.5px}.required[_ngcontent-%COMP%]{color:var(--%NS%morse-warn)}.optional[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted)}input[_ngcontent-%COMP%], textarea[_ngcontent-%COMP%]{width:100%;padding:6px 8px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-input-bg, transparent);color:var(--%NS%morse-fg);font-family:inherit;font-size:12.5px;resize:vertical}input[_ngcontent-%COMP%]:focus, textarea[_ngcontent-%COMP%]:focus{outline:none;border-color:var(--%NS%morse-accent)}.preview[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:4px}pre[_ngcontent-%COMP%]{margin:0;max-height:180px;overflow:auto;padding:8px 10px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-code-bg, rgb(0 0 0 / 18%));color:var(--%NS%morse-fg);font-family:var(--%NS%morse-font-mono);font-size:11.5px;line-height:1.55;white-space:pre-wrap;word-break:break-word}.actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:6px}@keyframes _ngcontent-%COMP%_template-in{0%{opacity:0;transform:translateY(6px)}}@media(prefers-reduced-motion:reduce){.modal-card[_ngcontent-%COMP%]{animation:none}}`]})};function Xn(n){return n<1e3?n.toString():n<1e4?`${(n/1e3).toFixed(1)}k`:n<1e6?`${Math.round(n/1e3)}k`:n<1e7?`${(n/1e6).toFixed(1)}M`:`${Math.round(n/1e6)}M`}function FE(n,e){let t=n?.[e];return typeof t==`number`?Xn(t):`—`}function Z0(n){if(!n)return;let e=n.cacheReadTokens??0,t=n.cacheWriteTokens??0,i=n.inputTokens+e+t;if(!(i<=0||e===0&&t===0))return e/i*100}function Q0(n){if(!(n===void 0||n<=0))return`$${n.toFixed(3)}`}function X0(n){let e=[],t=n.usage;if(t){t.inputTokens>0&&e.push(`\u2191${Xn(t.inputTokens)}`),t.outputTokens>0&&e.push(`\u2193${Xn(t.outputTokens)}`),t.cacheReadTokens&&e.push(`R${Xn(t.cacheReadTokens)}`),t.cacheWriteTokens&&e.push(`W${Xn(t.cacheWriteTokens)}`);let r=Z0(t);r!==void 0&&e.push(`CH${r.toFixed(1)}%`)}let i=Q0(n.costUsd);i&&e.push(i);let o=n.contextUsage;if(o){let r=o.percent!==null?`${o.percent.toFixed(1)}%`:`?`;e.push(`${r}/${Xn(o.contextWindow)}`)}return e.join(` `)}var OL=[`search`];var AL=[`list`];var RL=(n,e)=>e.provider;var LL=(n,e)=>e.index;function FL(n,e){if(n&1&&(h(0,`div`,10),u(1),y()),n&2){let t=f();d(),ie(`No model matches “`,t.filter(),`”.`)}}function VL(n,e){n&1&&(h(0,`span`,15),u(1),y()),n&2&&(d(),I(e))}function jL(n,e){n&1&&(h(0,`span`,16),u(1,`✓`),y())}function BL(n,e){if(n&1){let t=L();h(0,`button`,13),A(`mouseenter`,function(){let o=D(t).$implicit;return T(f(4).active.set(o.index))})(`click`,function(){let o=D(t).$implicit;return T(f(4).pick.emit(o.model))}),h(1,`span`,14),u(2),y(),E(3,VL,2,1,`span`,15),E(4,jL,2,0,`span`,16),y()}if(n&2){let t,i=e.$implicit,o=f(4);q(`active`,i.index===o.active())(`selected`,o.keyOf(i.model)===o.current()),j(`title`,o.keyOf(i.model)),Y(`aria-current`,o.keyOf(i.model)===o.current()?`true`:null),d(2),I(i.model.name),d(),S((t=o.context(i.model))?3:-1,t),d(),S(o.keyOf(i.model)===o.current()?4:-1)}}function $L(n,e){if(n&1&&(h(0,`div`,11),u(1),y(),X(2,BL,5,9,`button`,12,LL)),n&2){let t=f().$implicit;d(),I(t.provider),d(),J(t.rows)}}function HL(n,e){if(n&1&&E(0,$L,4,1),n&2){let t=e.$implicit;S(t.rows.length>0?0:-1)}}function zL(n,e){if(n&1&&X(0,HL,1,1,null,null,RL),n&2)J(f().groups())}function UL(n,e){let t=e.trim().toLowerCase(),i=new Map;for(let o of n){if(t.length>0&&!`${o.provider} ${o.id} ${o.name}`.toLowerCase().includes(t))continue;let r=i.get(o.provider);r?r.push(o):i.set(o.provider,[o])}return[...i].map(([o,r])=>({provider:o,models:r}))}var Ip=class n{models=se.required();current=se(``);pick=je();close=je();host=w(St);search=Ue(`search`);list=Ue(`list`);filter=N(``);active=N(0);groups=C(()=>{let e=0;return UL(this.models(),this.filter()).map(t=>({provider:t.provider,rows:t.models.map(i=>({model:i,index:e++}))}))});visible=C(()=>this.groups().flatMap(e=>e.rows.map(t=>t.model)));constructor(){An(()=>this.search()?.nativeElement.focus()),ne(()=>{if(this.groups(),this.filter().trim().length>0)return;let e=this.visible().findIndex(t=>this.keyOf(t)===this.current());e>=0&&this.active.set(e)}),ne(()=>{this.active(),this.groups(),setTimeout(()=>this.revealActive(),0)})}revealActive(){let e=this.list()?.nativeElement,t=e?.querySelectorAll(`.row`)[this.active()];if(!e||!t)return;let i=e.getBoundingClientRect(),o=t.getBoundingClientRect(),r=e.querySelector(`.group`)?.offsetHeight??0,s=i.top+r;o.top<s?e.scrollTop-=s-o.top:o.bottom>i.bottom&&(e.scrollTop+=o.bottom-i.bottom)}keyOf(e){return`${e.provider}/${e.id}`}context(e){return e.contextWindow?Xn(e.contextWindow):``}onFilter(e){this.filter.set(e.target.value),this.active.set(0)}onKeydown(e){let t=this.visible();switch(e.key){case`Escape`:e.preventDefault(),this.close.emit();return;case`ArrowDown`:e.preventDefault(),this.active.update(i=>Math.min(i+1,Math.max(0,t.length-1)));return;case`ArrowUp`:e.preventDefault(),this.active.update(i=>Math.max(0,i-1));return;case`Enter`:{let i=t[this.active()];i&&(e.preventDefault(),this.pick.emit(i));return}default:return}}onDocumentPointerdown(e){let t=e.target;t&&!this.host.nativeElement.contains(t)&&this.close.emit()}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-model-picker`]],viewQuery:function(t,i){t&1&&nt(i.search,OL,5)(i.list,AL,5),t&2&&ot(2)},hostBindings:function(t,i){t&1&&A(`pointerdown`,function(r){return i.onDocumentPointerdown(r)},Dt)},inputs:{models:[1,`models`],current:[1,`current`]},outputs:{pick:`pick`,close:`close`},decls:12,vars:4,consts:[[`search`,``],[`list`,``],[1,`panel`,3,`morseEnter`,`morseEnterY`],[1,`search`],[`aria-hidden`,`true`,1,`search-icon`],[`viewBox`,`0 0 16 16`],[`cx`,`7`,`cy`,`7`,`r`,`4.2`],[`d`,`M10.2 10.2 14 14`],[`type`,`text`,`placeholder`,`Search models`,`aria-label`,`Search models`,3,`input`,`keydown`,`value`],[1,`list`],[1,`empty`],[1,`group`],[`type`,`button`,1,`row`,3,`active`,`selected`,`title`],[`type`,`button`,1,`row`,3,`mouseenter`,`click`,`title`],[1,`name`],[1,`meta`],[1,`check`]],template:function(t,i){t&1&&(h(0,`div`,2)(1,`div`,3)(2,`span`,4),De(),h(3,`svg`,5),ee(4,`circle`,6)(5,`path`,7),y()(),kt(),h(6,`input`,8,0),A(`input`,function(r){return i.onFilter(r)})(`keydown`,function(r){return i.onKeydown(r)}),y()(),h(8,`div`,9,1),E(10,FL,2,1,`div`,10)(11,zL,2,0),y()()),t&2&&(j(`morseEnter`,0)(`morseEnterY`,6),d(6),j(`value`,i.filter()),d(4),S(i.visible().length===0?10:11))},dependencies:[Sn],styles:[`[_nghost-%COMP%]{display:block}.panel[_ngcontent-%COMP%]{display:flex;flex-direction:column;max-height:var(--%NS%morse-popover-max-height, 340px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 12px 32px #00000059;overflow:hidden}.search[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;padding:8px 10px;border-bottom:1px solid var(--%NS%morse-border)}.search-icon[_ngcontent-%COMP%]{position:absolute;left:19px;display:inline-flex;color:var(--%NS%morse-fg-muted);pointer-events:none}.search-icon[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{flex:1;min-width:0;padding-left:28px;font-size:12.5px}.search[_ngcontent-%COMP%] input[_ngcontent-%COMP%]:focus-visible{outline:none}.list[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding-bottom:4px}.group[_ngcontent-%COMP%]{position:sticky;top:0;padding:8px 10px 4px;background:var(--%NS%morse-panel, var(--%NS%morse-bg));color:var(--%NS%morse-fg-muted);font-size:10px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}.row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg);font:inherit;font-size:12.5px;text-align:left;cursor:pointer}.row.active[_ngcontent-%COMP%], .row[_ngcontent-%COMP%]:hover{background:var(--%NS%morse-hover)}.row.selected[_ngcontent-%COMP%]{background:var(--%NS%morse-active)}.name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:11px}.check[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-accent);font-size:12px}.empty[_ngcontent-%COMP%]{padding:12px 10px;color:var(--%NS%morse-fg-muted);font-size:12px}`]})};var GL=[`brain`];var qL=[`halo`];function WL(n,e){if(n&1&&(De(),fe(0,`path`)),n&2){let t=e.$implicit;Y(`d`,t)}}function YL(n,e){n&1&&fe(0,`span`,3,1)}function KL(n,e){n&1&&fe(0,`span`,4,1)}var ZL=[`M12 5a3 3 0 1 0-5.997.125 4 4 0 0 0-2.526 5.77 4 4 0 0 0 .556 6.588A4 4 0 1 0 12 18Z`,`M12 5a3 3 0 1 1 5.997.125 4 4 0 0 1 2.526 5.77 4 4 0 0 1-.556 6.588A4 4 0 1 1 12 18Z`,`M15 13a4.5 4.5 0 0 1-3-4 4.5 4.5 0 0 1-3 4`,`M17.599 6.5a3 3 0 0 0 .399-1.375`,`M6.003 5.125A3 3 0 0 0 6.401 6.5`,`M3.477 10.896a4 4 0 0 1 .585-.396`,`M19.938 10.5a4 4 0 0 1 .585.396`,`M6 18a4 4 0 0 1-1.967-.516`,`M19.967 17.484A4 4 0 0 1 18 18`];var QL={off:0,minimal:1,low:2,medium:3,high:4,xhigh:5,max:6};function XL(n){return QL[n]??2}function JL(n){switch(n){case`off`:return{params:{opacity:[.35,.6]},duration:5200,ease:`inOut(1)`};case`minimal`:return{params:{opacity:[.6,1]},duration:2200};case`low`:return{params:{rotate:[`-7deg`,`7deg`]},duration:1500};case`medium`:return{params:{scale:[1,1.14]},duration:950,halo:{duration:1300}};case`high`:return{params:{scale:[1,1.18]},duration:560,halo:{duration:800}};case`xhigh`:return{params:{scale:[1,1.16],rotate:[`-8deg`,`8deg`]},duration:440,halo:{duration:620}};case`max`:return{params:{scale:[1,1.22],rotate:[`-12deg`,`12deg`]},duration:320,ease:`linear`,halo:{duration:480}}}}var Np=class n{level=se.required();bumped=se(!1);host=w(St);animation=w(En);brain=Ue(`brain`);halos=iC(`halo`);stoppers=[];paths=ZL;intensity=C(()=>XL(this.level()));constructor(){ne(()=>{let e=this.level(),t=this.brain()?.nativeElement,i=this.halos().map(r=>r.nativeElement);if(this.stopLoops(),!t||!this.animation.isEnabled)return;let o=JL(e);this.stoppers.push(this.animation.loop(t,o.params,{duration:o.duration,delay:o.delay??0,ease:o.ease??`inOut(2)`})),o.halo&&i.forEach((r,s)=>{this.stoppers.push(this.animation.loop(r,{scale:[.72,1.9],opacity:[.55,0]},{duration:o.halo.duration,delay:(o.halo.delay??0)+s*o.halo.duration*.5,ease:`out(2)`,alternate:!1}))})}),ne(()=>{this.bumped()&&this.animation.pop(this.host.nativeElement,{scale:1.3,duration:420})}),w(He).onDestroy(()=>this.stopLoops())}stopLoops(){for(let e of this.stoppers)e();this.stoppers=[]}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-brain`]],viewQuery:function(t,i){t&1&&nt(i.brain,GL,5)(i.halos,qL,5),t&2&&ot(2)},hostVars:3,hostBindings:function(t,i){t&2&&(Y(`data-level`,i.level()),q(`bumped`,i.bumped()))},inputs:{level:[1,`level`],bumped:[1,`bumped`]},decls:6,vars:2,consts:[[`brain`,``],[`halo`,``],[`viewBox`,`0 0 24 24`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.7`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`,1,`brain`],[`aria-hidden`,`true`,1,`wave`,`wave-a`],[`aria-hidden`,`true`,1,`wave`,`wave-b`]],template:function(t,i){t&1&&(De(),g(0,`svg`,2,0),X(2,WL,1,1,`:svg:path`,null,kn),_(),E(4,YL,2,0,`span`,3),E(5,KL,2,0,`span`,4)),t&2&&(d(2),J(i.paths),d(2),S(i.intensity()>=3?4:-1),d(),S(i.intensity()>=4?5:-1))},styles:[`[_nghost-%COMP%]{position:relative;display:inline-flex;width:16px;height:16px;color:var(--%NS%morse-accent)}.brain[_ngcontent-%COMP%]{width:100%;height:100%;transform-box:fill-box;transform-origin:center}.wave[_ngcontent-%COMP%]{position:absolute;inset:-1px;border-radius:50%;border:1px solid currentColor;opacity:0;pointer-events:none}[data-level="off"][_nghost-%COMP%]{color:var(--%NS%morse-fg-muted)}[data-level="minimal"][_nghost-%COMP%]{color:var(--%NS%morse-info)}[data-level="low"][_nghost-%COMP%]{color:var(--%NS%morse-success)}[data-level="medium"][_nghost-%COMP%]{color:var(--%NS%morse-warn)}[data-level="high"][_nghost-%COMP%]{color:var(--%NS%morse-error)}[data-level="xhigh"][_nghost-%COMP%]{color:var(--%NS%morse-error);color:color-mix(in srgb,var(--%NS%morse-error) 55%,var(--%NS%morse-typename))}[data-level="max"][_nghost-%COMP%]{color:var(--%NS%morse-typename)}`]})};var eF=[`panel`];function tF(n,e){n&1&&(h(0,`span`,10),u(1,`✓`),y())}function nF(n,e){if(n&1){let t=L();h(0,`button`,8),A(`mouseenter`,function(){let o=D(t).$index;return T(f(2).active.set(o))})(`click`,function(){let o=D(t).$implicit;return T(f(2).choose(o))}),ee(1,`morse-brain`,2),h(2,`span`,9),u(3),y(),E(4,tF,2,0,`span`,10),y()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);q(`active`,i===o.active())(`selected`,t===o.current()),Y(`aria-selected`,t===o.current()),d(),j(`level`,t),d(2),I(t),d(),S(t===o.current()?4:-1)}}function iF(n,e){if(n&1){let t=L();h(0,`div`,6,0),A(`keydown`,function(o){D(t);return T(f().onKeydown(o))}),X(2,nF,5,8,`button`,7,kn),y()}if(n&2){let t=f();j(`morseEnter`,0)(`morseEnterY`,6),d(2),J(t.levels())}}var Pp=class n{levels=se.required();current=se.required();pick=je();host=w(St);shortcuts=w(Fn);destroyRef=w(He);panel=Ue(`panel`);open=N(!1);active=N(0);bumped=N(!1);constructor(){let e=this.shortcuts.bind(`thinking.pick`,()=>this.toggle(),()=>this.levels().length>0);this.destroyRef.onDestroy(e),ne(()=>{this.open()&&setTimeout(()=>this.panel()?.nativeElement.focus(),0)}),ne(()=>{let t=Math.max(0,this.levels().length-1);this.active()>t&&this.active.set(t)})}toggle(){if(this.open()){this.close();return}this.bump();let e=this.levels().indexOf(this.current());this.active.set(e>=0?e:0),this.open.set(!0)}choose(e){this.pick.emit(e),this.close()}onKeydown(e){let t=this.levels();switch(e.key){case`Escape`:e.preventDefault(),this.close();return;case`ArrowDown`:e.preventDefault(),this.active.update(i=>Math.min(i+1,Math.max(0,t.length-1)));return;case`ArrowUp`:e.preventDefault(),this.active.update(i=>Math.max(0,i-1));return;case`Enter`:{let i=t[this.active()];i&&(e.preventDefault(),this.choose(i));return}default:return}}onDocumentPointerdown(e){let t=e.target;this.open()&&t&&!this.host.nativeElement.contains(t)&&this.close()}close(){this.open.set(!1),this.bumped.set(!1)}bump(){this.bumped.set(!1),setTimeout(()=>this.bumped.set(!0),0),setTimeout(()=>this.bumped.set(!1),520)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-thinking-picker`]],viewQuery:function(t,i){t&1&&nt(i.panel,eF,5),t&2&&ot()},hostBindings:function(t,i){t&1&&A(`pointerdown`,function(r){return i.onDocumentPointerdown(r)},Dt)},inputs:{levels:[1,`levels`],current:[1,`current`]},outputs:{pick:`pick`},decls:7,vars:5,consts:[[`panel`,``],[`type`,`button`,`aria-haspopup`,`listbox`,1,`trigger`,3,`click`,`title`],[3,`level`],[1,`level`],[`aria-hidden`,`true`,1,`caret`],[`role`,`listbox`,`aria-label`,`Thinking level`,`tabindex`,`-1`,1,`panel`,3,`morseEnter`,`morseEnterY`],[`role`,`listbox`,`aria-label`,`Thinking level`,`tabindex`,`-1`,1,`panel`,3,`keydown`,`morseEnter`,`morseEnterY`],[`type`,`button`,`role`,`option`,1,`row`,3,`active`,`selected`],[`type`,`button`,`role`,`option`,1,`row`,3,`mouseenter`,`click`],[1,`name`],[`aria-hidden`,`true`,1,`check`]],template:function(t,i){t&1&&(h(0,`button`,1),A(`click`,function(){return i.toggle()}),ee(1,`morse-brain`,2),h(2,`span`,3),u(3),y(),h(4,`span`,4),u(5,`▾`),y()(),E(6,iF,4,2,`div`,5)),t&2&&(j(`title`,`Thinking level: `+i.current()),Y(`aria-expanded`,i.open()),d(),j(`level`,i.current()),d(2),I(i.current()),d(3),S(i.open()?6:-1))},dependencies:[Sn,Np],styles:[`[_nghost-%COMP%]{position:relative;display:inline-block}.trigger[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border:1px solid var(--%NS%morse-input-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-input-bg);color:var(--%NS%morse-input-fg);font-size:12px;cursor:pointer}.trigger[_ngcontent-%COMP%]:hover{border-color:var(--%NS%morse-fg-muted)}.trigger[aria-expanded=true][_ngcontent-%COMP%]{border-color:var(--%NS%morse-focus)}.trigger[_ngcontent-%COMP%] .level[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.trigger[_ngcontent-%COMP%] .caret[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:10px}.panel[_ngcontent-%COMP%]{position:absolute;left:0;bottom:calc(100% + 6px);z-index:30;display:flex;flex-direction:column;min-width:180px;padding:4px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 10px 28px #0000004d}.panel[_ngcontent-%COMP%]:focus-visible{outline:none}.row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;width:100%;padding:5px 8px;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);font:inherit;font-size:12px;text-align:left;cursor:pointer}.row.active[_ngcontent-%COMP%]{background:var(--%NS%morse-hover)}.row[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-transform:capitalize}.row.selected[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{color:var(--%NS%morse-accent)}.row[_ngcontent-%COMP%] .check[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-accent);font-size:12px}`]})};function oF(n,e){n&1&&(g(0,`span`),u(1),_()),n&2&&(d(),ie(` · `,e))}function rF(n,e){if(n&1&&(g(0,`section`)(1,`h4`),u(2,`Last assistant message`),_(),g(3,`div`,13)(4,`div`,14)(5,`span`,15),u(6,`Input`),_(),g(7,`span`,16),u(8),_()(),g(9,`div`,14)(10,`span`,15),u(11,`Output`),_(),g(12,`span`,16),u(13),_()(),g(14,`div`,14)(15,`span`,15),u(16,`Reasoning`),_(),g(17,`span`,16),u(18),_()(),g(19,`div`,14)(20,`span`,15),u(21,`Cache read`),_(),g(22,`span`,16),u(23),_()(),g(24,`div`,14)(25,`span`,15),u(26,`Cache write`),_(),g(27,`span`,16),u(28),_()(),g(29,`div`,14)(30,`span`,15),u(31,`Cache hit`),_(),g(32,`span`,16),u(33),_()()()()),n&2){let t=f(2);d(8),I(t.lastValue(`inputTokens`)),d(5),I(t.lastValue(`outputTokens`)),d(5),I(t.lastValue(`reasoningTokens`)),d(5),I(t.lastValue(`cacheReadTokens`)),d(5),I(t.lastValue(`cacheWriteTokens`)),d(5),I(t.cacheHitLabel())}}function sF(n,e){if(n&1){let t=L();g(0,`button`,5),F(`click`,function(){D(t);return T(f().close())}),_(),g(1,`div`,6)(2,`header`)(3,`h3`),u(4,`Context`),_(),g(5,`button`,7),F(`click`,function(){D(t);return T(f().close())}),u(6,`×`),_()(),g(7,`div`,8),u(8),E(9,oF,2,1,`span`),_(),g(10,`div`,9)(11,`span`),u(12,`Context`),_(),g(13,`span`),u(14),_()(),g(15,`div`,10),fe(16,`span`,11),_(),g(17,`div`,12)(18,`span`),u(19),_()(),g(20,`div`,13)(21,`div`,14)(22,`span`,15),u(23,`Messages`),_(),g(24,`span`,16),u(25),_()(),g(26,`div`,14)(27,`span`,15),u(28,`User`),_(),g(29,`span`,16),u(30),_()(),g(31,`div`,14)(32,`span`,15),u(33,`Assistant`),_(),g(34,`span`,16),u(35),_()(),g(36,`div`,14)(37,`span`,15),u(38,`Tool calls`),_(),g(39,`span`,16),u(40),_()(),g(41,`div`,14)(42,`span`,15),u(43,`Cost`),_(),g(44,`span`,16),u(45),_()(),g(46,`div`,14)(47,`span`,15),u(48,`Output limit`),_(),g(49,`span`,16),u(50),_()()(),E(51,rF,34,6,`section`),g(52,`section`)(53,`h4`),u(54,`Session totals`),_(),g(55,`div`,17),u(56),_()()()}if(n&2){let t,i=f();d(8),ie(` `,i.modelLabel()),d(),S((t=i.sessionTitle())?9:-1,t),d(5),Xi(``,i.usedLabel(),` / `,i.limitLabel()),d(2),Tt(`width`,i.fillPercent(),`%`),q(`warn`,i.level()===`warn`)(`danger`,i.level()===`danger`),d(3),ie(``,i.percentLabel(),` used`),d(6),I(i.counts()?.totalMessages??`—`),d(5),I(i.counts()?.userMessages??`—`),d(5),I(i.counts()?.assistantMessages??`—`),d(5),I(i.counts()?.toolCalls??`—`),d(5),I(i.costLabel()),d(5),I(i.outputLimitLabel()),d(),S(i.lastUsage()?51:-1),d(5),I(i.sessionLine()||`No usage yet.`)}}var VE=2*Math.PI*15.5;var Op=class n{usage=se();lastUsage=se();costUsd=se();contextUsage=se();counts=se();model=se();sessionTitle=se();open=N(!1);circumference=VE;percent=C(()=>this.contextUsage()?.percent??void 0);percentLabel=C(()=>{let e=this.contextUsage()?.percent;return e==null?`–`:`${e.toFixed(1)}%`});level=C(()=>{let e=this.percent()??0;return e>90?`danger`:e>70?`warn`:`ok`});fillPercent=C(()=>Math.min(100,Math.max(0,this.percent()??0)));dashOffset=C(()=>VE*(1-this.fillPercent()/100));usedLabel=C(()=>{let e=this.contextUsage()?.tokens;return e==null?`—`:Xn(e)});limitLabel=C(()=>{let e=this.contextUsage()?.contextWindow;return e===void 0?`—`:Xn(e)});costLabel=C(()=>Q0(this.costUsd())??`—`);outputLimitLabel=C(()=>{let e=this.model()?.maxTokens;return e===void 0?`—`:Xn(e)});modelLabel=C(()=>this.model()?.name??this.model()?.id??`no model`);tooltip=C(()=>{let e=[`Context ${this.percentLabel()} \xB7 ${this.usedLabel()} / ${this.limitLabel()}`],t=X0({usage:this.usage(),costUsd:this.costUsd(),contextUsage:this.contextUsage()});return t.length>0&&e.push(t),e.join(`
|
|
31
31
|
`)});sessionLine=C(()=>X0({usage:this.usage(),costUsd:this.costUsd(),contextUsage:this.contextUsage()}));cacheHitLabel=C(()=>{let e=Z0(this.lastUsage());return e===void 0?`—`:`${e.toFixed(1)}%`});lastValue(e){return FE(this.lastUsage(),e)}toggle(){this.open.update(e=>!e)}close(){this.open.set(!1)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-usage-indicator`]],hostBindings:function(t,i){t&1&&A(`keydown.escape`,function(){return i.close()},Dt)},inputs:{usage:[1,`usage`],lastUsage:[1,`lastUsage`],costUsd:[1,`costUsd`],contextUsage:[1,`contextUsage`],counts:[1,`counts`],model:[1,`model`],sessionTitle:[1,`sessionTitle`]},decls:7,vars:10,consts:[[`type`,`button`,`aria-label`,`Context usage`,1,`mini`,3,`click`,`title`],[`viewBox`,`0 0 36 36`,`aria-hidden`,`true`,1,`ring`],[`cx`,`18`,`cy`,`18`,`r`,`15.5`,1,`track`],[`cx`,`18`,`cy`,`18`,`r`,`15.5`,1,`value`],[1,`pct`],[`type`,`button`,`aria-label`,`Close usage`,1,`scrim`,3,`click`],[`role`,`dialog`,`aria-label`,`Context usage`,1,`panel`],[`type`,`button`,`aria-label`,`Close`,1,`close`,3,`click`],[1,`subtitle`],[1,`bar-head`],[1,`bar`],[1,`fill`],[1,`bar-foot`],[1,`grid`],[1,`cell`],[1,`k`],[1,`v`],[1,`totals`]],template:function(t,i){t&1&&(g(0,`button`,0),F(`click`,function(){return i.toggle()}),De(),g(1,`svg`,1),fe(2,`circle`,2)(3,`circle`,3),_(),kt(),g(4,`span`,4),u(5),_()(),E(6,sF,57,19)),t&2&&(te(`title`,i.tooltip()),Y(`aria-expanded`,i.open()),d(),q(`warn`,i.level()===`warn`)(`danger`,i.level()===`danger`),d(2),Y(`stroke-dasharray`,i.circumference)(`stroke-dashoffset`,i.dashOffset()),d(2),I(i.percentLabel()),d(),S(i.open()?6:-1))},styles:[`[_nghost-%COMP%]{position:relative;display:inline-flex;vertical-align:middle}.mini[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;padding:2px 7px 2px 3px;border:1px solid transparent;border-radius:999px;background:transparent;color:var(--%NS%morse-fg-muted);font-size:11px;line-height:1;cursor:pointer}.mini[_ngcontent-%COMP%]:hover, .mini[aria-expanded=true][_ngcontent-%COMP%]{border-color:var(--%NS%morse-border);background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.ring[_ngcontent-%COMP%]{width:20px;height:20px;transform:rotate(-90deg)}.track[_ngcontent-%COMP%]{fill:none;stroke:var(--%NS%morse-border);stroke-width:3.4}.value[_ngcontent-%COMP%]{fill:none;stroke:var(--%NS%morse-success);stroke-width:3.4;stroke-linecap:round;transition:stroke-dashoffset .3s ease}.ring.warn[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{stroke:var(--%NS%morse-warn)}.ring.danger[_ngcontent-%COMP%] .value[_ngcontent-%COMP%]{stroke:var(--%NS%morse-error)}.pct[_ngcontent-%COMP%]{font-family:var(--%NS%morse-font-mono);font-size:10.5px;font-variant-numeric:tabular-nums}.scrim[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:30;padding:0;border:0;background:transparent;cursor:default}.scrim[_ngcontent-%COMP%]:hover, .scrim[_ngcontent-%COMP%]:active{background:transparent}.panel[_ngcontent-%COMP%]{position:absolute;z-index:31;right:0;bottom:calc(100% + 8px);width:320px;max-height:70vh;overflow-y:auto;padding:12px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 16px 40px #00000059;color:var(--%NS%morse-fg);text-align:left}.panel[_ngcontent-%COMP%] header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:2px}.panel[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;font-size:13px;font-weight:600}.close[_ngcontent-%COMP%]{padding:0 6px;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg-muted);font-size:15px;line-height:1.4;cursor:pointer}.close[_ngcontent-%COMP%]:hover{color:var(--%NS%morse-fg);background:var(--%NS%morse-active)}.subtitle[_ngcontent-%COMP%]{margin-bottom:10px;color:var(--%NS%morse-fg-muted);font-size:11px}.bar-head[_ngcontent-%COMP%], .bar-foot[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;color:var(--%NS%morse-fg-muted);font-size:11px}.bar[_ngcontent-%COMP%]{height:7px;margin:5px 0;border-radius:999px;background:var(--%NS%morse-border);overflow:hidden}.bar[_ngcontent-%COMP%] .fill[_ngcontent-%COMP%]{display:block;height:100%;border-radius:999px;background:var(--%NS%morse-success);transition:width .3s ease}.bar[_ngcontent-%COMP%] .fill.warn[_ngcontent-%COMP%]{background:var(--%NS%morse-warn)}.bar[_ngcontent-%COMP%] .fill.danger[_ngcontent-%COMP%]{background:var(--%NS%morse-error)}.grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.cell[_ngcontent-%COMP%]{padding:6px 8px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-input-bg, transparent)}.cell[_ngcontent-%COMP%] .k[_ngcontent-%COMP%]{display:block;color:var(--%NS%morse-fg-muted);font-size:10px;text-transform:uppercase;letter-spacing:.03em}.cell[_ngcontent-%COMP%] .v[_ngcontent-%COMP%]{display:block;margin-top:2px;font-family:var(--%NS%morse-font-mono);font-size:12px;font-variant-numeric:tabular-nums}section[_ngcontent-%COMP%]{margin-top:12px}section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0 0 4px;color:var(--%NS%morse-fg-muted);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.03em}.totals[_ngcontent-%COMP%]{padding:7px 9px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);color:var(--%NS%morse-fg-muted);font-family:var(--%NS%morse-font-mono);font-size:11.5px;font-variant-numeric:tabular-nums}`]})};var lF=[`promptInput`];var cF=[`fileInput`];var ey=(n,e)=>e.id;function dF(n,e){if(n&1){let t=L();h(0,`div`,31)(1,`span`,32),u(2,`⠿`),y(),h(3,`span`,33),u(4),y(),h(5,`div`,34)(6,`button`,35),A(`click`,function(){let o=D(t).$implicit;return T(f(2).editQueued(o))}),u(7,` ✎ `),h(8,`span`),u(9,`edit`),y()(),h(10,`button`,36),A(`click`,function(){let o=D(t).$implicit;return T(f(2).sendQueued(o))}),u(11,` ➤ `),h(12,`span`),u(13,`send`),y()(),h(14,`button`,37),A(`click`,function(){let o=D(t).$implicit;return T(f(2).removeQueued(o))}),u(15,` × `),y()()()}if(n&2){let t=e.$implicit,i=e.$index;j(`cdkDragData`,t)(`morseEnter`,i)(`morseEnterY`,4),d(3),j(`title`,t.text),d(),I(t.text)}}function uF(n,e){if(n&1){let t=L();h(0,`div`,3)(1,`div`,26)(2,`span`,27),u(3,`⏲`),y(),h(4,`span`,28),u(5,`Queued messages`),y(),h(6,`span`,29),u(7),y()(),h(8,`div`,30),A(`cdkDropListDropped`,function(o){D(t);return T(f().onQueueDrop(o))}),X(9,dF,16,5,`div`,31,ey),y()()}if(n&2){let t=f();d(7),I(t.queuedMessages().length),d(),j(`cdkDropListData`,t.queuedMessages()),d(),J(t.queuedMessages())}}function pF(n,e){if(n&1){let t=L();h(0,`button`,38),A(`click`,function(){D(t);return T(f().attachSelection())}),u(1,` ⧉ `),y()}}function fF(n,e){n&1&&u(0,` add files · @ to mention · / for commands `)}function mF(n,e){n&1&&u(0,` upload or drop files · / for commands `)}function hF(n,e){n&1&&u(0,` drop files here · / for commands `)}function gF(n,e){if(n&1){let t=L();h(0,`morse-file-picker`,39),A(`activeChange`,function(o){D(t);return T(f().mentionActive.set(o))})(`pick`,function(o){D(t);return T(f().onPickFile(o))})(`quote`,function(o){D(t);return T(f().onQuoteFile(o))})(`reload`,function(){D(t);return T(f().reloadFiles())})(`close`,function(){D(t);return T(f().onPickerClose())}),y()}if(n&2){let t=f();j(`morsePopoverFit`,300)(`files`,t.pickerMatches())(`busy`,t.loadingFiles())(`query`,t.pickerFilter())(`active`,t.mentionActive())}}function yF(n,e){if(n&1){let t=L();h(0,`morse-command-picker`,40),A(`activeChange`,function(o){D(t);return T(f().paletteActive.set(o))})(`pick`,function(o){D(t);return T(f().activatePalette(o,`run`))})(`close`,function(){D(t);return T(f().onPaletteClose())}),y()}if(n&2){let t=f();j(`morsePopoverFit`,320)(`items`,t.paletteItems())(`query`,t.paletteFilter())(`active`,t.paletteActive())}}function _F(n,e){if(n&1){let t=L();h(0,`li`,41)(1,`button`,43),A(`click`,function(){D(t);return T(f(2).lockLive())}),h(2,`span`,44),u(3,`⧉`),y(),h(4,`span`,45),u(5),y(),h(6,`span`,46),u(7),y()(),h(8,`button`,47),A(`click`,function(){D(t);return T(f(2).dismissLive())}),u(9,` × `),y()()}if(n&2){let t=e,i=f(2);j(`morseEnter`,0)(`morseEnterY`,6)(`morseEnterScale`,.55)(`morseEnterDuration`,320),d(),j(`title`,i.lockLiveLabel()),Y(`aria-label`,`Lock the `+t.path+` selection as a pin`),d(3),j(`title`,t.path),d(),I(t.path),d(2),I(i.pinRange(t)),d(),Y(`aria-label`,`Dismiss the `+t.path+` selection preview`)}}function vF(n,e){if(n&1){let t=L();h(0,`li`,42),ee(1,`img`,48),h(2,`span`,45),u(3),y(),h(4,`button`,49),A(`click`,function(){let o=D(t).$implicit;return T(f(2).removeImage(o.id))}),u(5,` × `),y()()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);j(`morseEnter`,o.chipOffset()+i)(`morseEnterY`,6)(`morseEnterScale`,.55)(`morseEnterDuration`,320),d(),j(`src`,o.preview(t),ji)(`alt`,t.name),d(),j(`title`,t.name),d(),I(t.name),d(),Y(`aria-label`,`Remove `+t.name)}}function bF(n,e){if(n&1&&(h(0,`span`,46),u(1),y()),n&2){let t=f().$implicit,i=f(2);d(),I(i.pinRange(t))}}function xF(n,e){if(n&1){let t=L();h(0,`li`,42)(1,`button`,43),A(`click`,function(){let o=D(t).$implicit;return T(f(2).openPinPreview(o))}),h(2,`span`,44),u(3,`⧉`),y(),h(4,`span`,50),u(5),y(),E(6,bF,2,1,`span`,46),y(),h(7,`button`,49),A(`click`,function(){let o=D(t).$implicit;return T(f(2).removePin(o.id))}),u(8,` × `),y()()}if(n&2){let t=e.$implicit,i=e.$index,o=f(2);j(`morseEnter`,o.chipOffset()+o.images().length+i)(`morseEnterY`,6)(`morseEnterScale`,.55)(`morseEnterDuration`,320),d(),j(`title`,`Open `+t.path+` in the preview`),d(4),I(t.path),d(),S(t.startLine!==void 0?6:-1),d(),Y(`aria-label`,`Unpin `+t.path)}}function CF(n,e){if(n&1&&(h(0,`ul`,12),E(1,_F,10,10,`li`,41),X(2,vF,6,9,`li`,42,ey),X(4,xF,9,8,`li`,42,ey),y()),n&2){let t,i=f();d(),S((t=i.livePreview())?1:-1,t),d(),J(i.images()),d(2),J(i.pins())}}function wF(n,e){if(n&1&&(h(0,`span`,52),u(1),y()),n&2){let t=f(2);d(),Xi(` ↓`,t.streamedTokens(),` · `,t.tokensPerSecond()??0,` t/s `)}}function EF(n,e){if(n&1&&(h(0,`span`,54),ee(1,`span`,56),h(2,`span`),u(3),y(),h(4,`span`,57),ee(5,`i`)(6,`i`)(7,`i`),y()()),n&2){let t=f(2);d(3),ie(`Working `,t.elapsed())}}function SF(n,e){if(n&1&&ee(0,`morse-usage-indicator`,55),n&2){let t=f(2);j(`usage`,t.usageState().usage)(`lastUsage`,t.usageState().lastUsage)(`costUsd`,t.usageState().costUsd)(`contextUsage`,t.usageState().contextUsage)(`counts`,t.usageState().counts)(`model`,t.usageState().model)(`sessionTitle`,t.usageState().sessionTitle)}}function DF(n,e){if(n&1&&(h(0,`div`,14)(1,`div`,51),E(2,wF,2,2,`span`,52),y(),h(3,`div`,53),E(4,EF,8,1,`span`,54),E(5,SF,1,7,`morse-usage-indicator`,55),y()()),n&2){let t=f();d(2),S(t.running()?2:-1),d(2),S(t.running()?4:-1),d(),S(t.showUsage()?5:-1)}}function TF(n,e){if(n&1&&(h(0,`span`,18),u(1),y()),n&2){let t=e;j(`title`,t),d(),I(t)}}function MF(n,e){if(n&1){let t=L();h(0,`morse-model-picker`,58),A(`pick`,function(o){D(t);return T(f().onModelPick(o))})(`close`,function(){D(t);return T(f().closeModelPicker())}),y()}if(n&2){let t=f();j(`morsePopoverFit`,340)(`models`,t.models())(`current`,t.modelKey())}}function kF(n,e){if(n&1){let t=L();h(0,`button`,59),A(`click`,function(){D(t);return T(f().sendWith(`steer`))}),u(1,`Steer`),y(),h(2,`button`,59),A(`click`,function(){D(t);return T(f().sendWith(`followUp`))}),u(3,`Follow up`),y(),h(4,`button`,60),A(`click`,function(){D(t);return T(f().abort())}),u(5,`■`),y()}}function IF(n,e){if(n&1){let t=L();h(0,`button`,61),A(`click`,function(){D(t);return T(f().sendWith(`new`))}),u(1,` ↑ `),y()}if(n&2)j(`disabled`,!f().canSend())}function NF(n,e){if(n&1){let t=L();h(0,`morse-prompt-template-dialog`,62),A(`submitted`,function(o){D(t);return T(f().onTemplateSubmit(o))})(`cancelled`,function(){D(t);return T(f().closeTemplate())}),y()}n&2&&j(`request`,e)}var Ap=class n{morse=w(Ie);shell=w(Ft);shortcuts=w(Fn);destroyRef=w(He);attachments=w(Zn);drafts=w(ir);queue=w(ba);workspace=w(Qn);tabs=w(Vt);uploads=w(xa);promptInput=Ue(`promptInput`);fileInput=Ue(`fileInput`);draining=!1;text=this.drafts.text;connected=C(()=>this.morse.connection()===`ready`);agentReady=this.morse.agentReady;agentStarting=this.morse.agentStarting;agentError=this.morse.agentError;streaming=C(()=>this.morse.state().streaming);canSend=C(()=>this.connected()&&!this.agentStarting()&&this.agentError()===void 0);canAttachSelection=C(()=>this.morse.capabilities()?.editorContext===!0);thinkingLevel=C(()=>this.morse.state().thinkingLevel);models=this.morse.availableModels;levels=this.morse.availableThinkingLevels;modelKey=C(()=>{let e=this.morse.state().model;return e?`${e.provider}/${e.id}`:``});usageState=this.morse.state;showUsage=C(()=>{let e=this.morse.state();return e.usage!==void 0||e.contextUsage!==void 0});showStatusRow=C(()=>this.running()||this.showUsage());streamedTokens=C(()=>Math.round(Math.max(0,J0(this.morse.items())-this.baseline())/4));tokensPerSecond=N(void 0);baseline=N(0);throughput=[];images=this.attachments.images;pins=this.attachments.pins;queuedMessages=C(()=>this.queue.forOwner(this.tabs.composerKey()));openPinPreview(e){this.morse.capabilities()?.filePreview&&this.tabs.openMentionFile(e.path)}livePreview=this.attachments.livePreview;chipOffset=C(()=>this.livePreview()?1:0);lockLiveLabel=C(()=>this.livePreview()?`Lock this selection — it stops following the editor; a new selection makes a new chip.`:``);pickerOpen=N(!1);workspaceFiles=this.workspace.files;loadingFiles=this.workspace.busy;mentionMode=N(!1);pickerFilter=N(``);pickerMatches=C(()=>RE(this.workspaceFiles(),this.pickerFilter()));mentionActive=N(0);canPickFiles=this.workspace.available;canUpload=this.uploads.available;paletteOpen=N(!1);paletteFilter=N(``);paletteActive=N(0);templateRequest=N(void 0);availableCommands=this.morse.availableCommands;paletteItems=C(()=>{return LE([...jE.map(t=>({id:`builtin:${t.name}`,label:`/${t.name}`,description:t.description,badge:`built-in`,icon:`›`})),...this.availableCommands().map(t=>({id:`command:${t.name}`,label:`/${t.name}`,description:t.description,badge:t.source,icon:`⁄`}))],this.paletteFilter())});modelPickerOpen=N(!1);currentModel=this.morse.model;currentProvider=C(()=>this.morse.model()?.provider??``);modelLabel=C(()=>{let e=this.morse.model();return e?`${e.provider} \xB7 ${e.name}`:`no model`});canAddFiles=C(()=>this.canPickFiles()||this.canUpload()||this.canAttachSelection());addFilesLabel=C(()=>this.canPickFiles()?`Add files to the prompt`:this.canUpload()?`Upload files to the prompt`:`Attach the active editor selection`);running=C(()=>this.morse.state().streaming||this.morse.state().busy);elapsed=C(()=>{this.tick();let e=this.startedAt(),t=e===null?0:Date.now()-e;return t<1e3?``:AF(t)});startedAt=N(null);tick=N(0);constructor(){let e=this.shortcuts.bind(`model.pick`,()=>this.toggleModelPicker(),()=>this.models().length>0);this.destroyRef.onDestroy(e),ne(()=>{if(this.attachments.mentions().length===0)return;let o=this.attachments.takeMentions().map(s=>s.startsWith(`@`)?s:`@${s}`).join(`
|
|
32
32
|
`);this.drafts.updateText(s=>s.trim().length===0?o:`${s.trimEnd()}
|
|
33
33
|
${o}`),this.promptInput()?.nativeElement?.focus()}),this.morse.onContextSelection(t=>{this.attachments.pin(t),this.attachments.say(`info`,`Selection pinned to this message.`)}),this.morse.onContextSelectionLive(t=>this.attachments.setLivePreview(t)),this.morse.onComposerSeed(t=>{this.drafts.setText(t.text),this.syncInputValue(),this.attachments.seed(t.images??[],t.pins??[])}),ne(t=>{if(!this.running()){this.startedAt.set(null),this.tokensPerSecond.set(void 0),this.throughput.length=0;return}this.startedAt.update(o=>o??Date.now()),this.baseline.set(zn(()=>J0(this.morse.items())));let i=setInterval(()=>{this.tick.update(o=>o+1),this.sampleThroughput()},500);t(()=>clearInterval(i))}),ne(()=>{let t=this.running(),i=this.tabs.composerKey(),o=this.queue.head(i);zn(()=>{if(t){this.draining=!1;return}if(o===void 0||this.draining)return;this.draining=!0;let r=this.queue.shift(i);r!==void 0&&this.morse.prompt(r.text,`new`,r.images,r.pins)})})}onInput(e){let t=e.target;this.drafts.setText(t.value),this.refreshMentionQuery(t.value,t.selectionStart),this.refreshPaletteQuery(t.value,t.selectionStart)}onKeydown(e){if(this.paletteOpen()){let t=this.paletteItems();switch(e.key){case`Escape`:e.preventDefault(),this.onPaletteClose();return;case`ArrowDown`:e.preventDefault(),this.paletteActive.update(i=>Math.min(i+1,Math.max(0,t.length-1)));return;case`ArrowUp`:e.preventDefault(),this.paletteActive.update(i=>Math.max(0,i-1));return;case`Tab`:{let i=t[this.paletteActive()];e.preventDefault(),i&&this.activatePalette(i.id,`insert`);return}case`Enter`:{if(e.isComposing)return;let i=t[this.paletteActive()];if(i){e.preventDefault(),this.activatePalette(i.id,e.shiftKey?`insert`:`run`);return}break}default:return}}if(this.pickerOpen()){let t=this.pickerMatches();switch(e.key){case`Escape`:e.preventDefault(),this.onPickerClose();return;case`ArrowDown`:e.preventDefault(),this.mentionActive.update(i=>Math.min(i+1,Math.max(0,t.length-1)));return;case`ArrowUp`:e.preventDefault(),this.mentionActive.update(i=>Math.max(0,i-1));return;case`Tab`:case`Enter`:{let i=t[this.mentionActive()];if(i){e.preventDefault(),this.onPickFile(i,e.shiftKey);return}e.key===`Tab`&&e.preventDefault();return}default:return}}e.key===`Enter`&&!e.shiftKey&&!e.isComposing&&(e.preventDefault(),this.sendWith(this.streaming()?`steer`:`new`))}sendWith(e){let t=this.drafts.text().trim(),i=OF(t);if(i!==void 0){this.drafts.setText(``),this.shell.requestCompact(i);return}let o=PF(t);if(o){this.drafts.setText(``),this.runBuiltin(o);return}let r=this.attachments.takeImages(),s=this.attachments.takePins();if(t.length===0&&r.length===0&&s.length===0){this.promptInput()?.nativeElement.focus();return}e===`followUp`&&this.running()?this.queue.enqueue({text:t,images:r,pins:s},this.tabs.composerKey()):this.morse.prompt(t,e===`followUp`?`new`:e,r,s),this.attachments.setLivePreview(null),this.drafts.setText(``)}editQueued(e){this.queue.remove(e.id),this.drafts.setText(e.text),this.syncInputValue(),this.attachments.seed(e.images,e.pins),this.promptInput()?.nativeElement.focus()}sendQueued(e){this.queue.remove(e.id),this.morse.prompt(e.text,this.running()?`steer`:`new`,e.images,e.pins)}removeQueued(e){this.queue.remove(e.id)}onQueueDrop(e){let t=e.item.data,i=e.container.data[e.currentIndex];t!==void 0&&i!==void 0&&this.queue.move(t.id,i.id)}lockLive(){this.attachments.lockLivePreview(),this.attachments.say(`info`,`Selection locked to this message.`)}dismissLive(){this.attachments.setLivePreview(null)}onPaste(e){let t=Array.from(e.clipboardData?.files??[]).filter(i=>i.type.startsWith(`image/`));t.length!==0&&(e.preventDefault(),this.attachments.accept(t).then(i=>{i.attached>0&&this.attachments.say(`info`,`${i.attached} pasted image${i.attached===1?``:`s`} attached`)}))}removeImage(e){this.attachments.remove(e)}removePin(e){this.attachments.removePin(e)}preview(e){return`data:${e.mimeType};base64,${e.data}`}abort(){this.morse.abort()}attachSelection(){if(this.livePreview()){this.lockLive();return}this.requestSelectionSnapshot().then(e=>{if(!e||e.selection===void 0){this.attachments.say(`warn`,`Select some text in the editor first.`);return}let t=e.selection;this.attachments.pin({path:e.path??``,startLine:t.startLine,endLine:t.endLine}),this.attachments.say(`info`,`Selection pinned to this message.`)})}onAddFiles(){if(this.canPickFiles()){this.openMentionPicker();return}if(this.canUpload()){this.fileInput()?.nativeElement.click();return}this.attachSelection()}openMentionPicker(){if(this.pickerOpen()){this.onPickerClose();return}let e=this.drafts.text(),t=e.length>0&&!/\s$/.test(e)?` `:``;this.drafts.setText(`${e}${t}@`);let i=this.promptInput()?.nativeElement;if(i){let o=this.drafts.text();i.value=o,i.focus(),i.setSelectionRange(o.length,o.length)}this.mentionMode.set(!0),this.pickerFilter.set(``),this.mentionActive.set(0),this.pickerOpen.set(!0),this.workspace.ensureLoaded()}onFilesChosen(e){let t=e.target,i=Array.from(t?.files??[]);t&&(t.value=``),i.length!==0&&this.importFiles(i.filter(o=>o.type.startsWith(`image/`)),i.filter(o=>!o.type.startsWith(`image/`)))}async importFiles(e,t){let i=await this.attachments.accept(e),o=t.length>0?await this.uploads.upload(t):{added:[],failed:[]};this.attachments.addMentions(o.added.map(a=>a.path));let r=[];i.attached>0&&r.push(`${i.attached} image${i.attached===1?``:`s`} attached`),o.added.length>0&&r.push(`${o.added.length} file${o.added.length===1?``:`s`} uploaded`);let s=[...i.skipped,...o.failed];if(s.length>0&&r.push(`could not attach ${s.join(`, `)}`),r.length>0){let a=i.attached===0&&o.added.length===0;this.attachments.say(a?`warn`:`info`,r.join(` · `))}}refreshMentionQuery(e,t){if(!this.canPickFiles())return;let i=e.slice(0,t??e.length),o=/(?:^|\s)@([\w./-]*)$/.exec(i);if(!o){this.mentionMode()&&(this.pickerOpen.set(!1),this.mentionMode.set(!1));return}o[1]!==this.pickerFilter()&&this.mentionActive.set(0),this.mentionMode.set(!0),this.pickerFilter.set(o[1]??``),this.pickerOpen.set(!0),this.workspace.ensureLoaded()}refreshPaletteQuery(e,t){let i=e.slice(0,t??e.length),o=/(?:^|\n)\s*\/([\w:-]*)$/.exec(i);if(!o){this.paletteOpen()&&this.paletteOpen.set(!1);return}o[1]!==this.paletteFilter()&&this.paletteActive.set(0),this.paletteFilter.set(o[1]??``),this.paletteOpen()||this.morse.refreshCommands(),this.paletteOpen.set(!0)}activatePalette(e,t){if(e.startsWith(`builtin:`)){let i=e.slice(8);if(i===`model`){this.stripSlashToken(),this.closePalette(),this.openModelPicker();return}this.stripSlashToken(),this.closePalette(),this.runBuiltin(i);return}if(e.startsWith(`command:`)){let i=e.slice(8);if(t===`run`){let o=this.availableCommands().find(r=>r.name===i);if(o?.template!==void 0){let r=iw(o.template);if(r!==void 0){this.stripSlashToken(),this.drafts.setText(``),this.closePalette(),this.openTemplate({name:i,description:o.description,form:r});return}this.stripSlashToken(),this.drafts.setText(``),this.closePalette(),this.sendTemplate(A0(o.template).body);return}this.stripSlashToken(),this.drafts.setText(``),this.closePalette(),this.morse.prompt(`/${i}`,this.streaming()?`steer`:`new`);return}this.replaceSlashToken(`/${i} `),this.closePalette()}}openTemplate(e){this.templateRequest.set(e),this.shell.setPromptTemplateOpen(!0)}closeTemplate(){this.templateRequest.set(void 0),this.shell.setPromptTemplateOpen(!1),this.promptInput()?.nativeElement.focus()}sendTemplate(e){this.morse.prompt(e,this.streaming()?`steer`:`new`,this.attachments.takeImages(),this.attachments.takePins()),this.attachments.setLivePreview(null)}onTemplateSubmit(e){this.templateRequest.set(void 0),this.shell.setPromptTemplateOpen(!1),this.sendTemplate(e)}onPaletteClose(){this.closePalette()}closePalette(){this.paletteOpen.set(!1),this.paletteFilter.set(``),this.paletteActive.set(0),this.promptInput()?.nativeElement.focus()}openModelPicker(){this.morse.refreshModels(),this.modelPickerOpen.set(!0)}toggleModelPicker(){if(this.modelPickerOpen()){this.modelPickerOpen.set(!1);return}this.openModelPicker()}onModelPick(e){this.morse.setModel(e.provider,e.id),this.closeModelPicker()}closeModelPicker(){this.modelPickerOpen.set(!1),this.promptInput()?.nativeElement.focus()}runBuiltin(e){switch(e){case`new`:this.tabs.startDraft(this.morse.workspace().cwd);break;case`compact`:this.shell.requestCompact();break;case`settings`:this.morse.hostCommand(`openSettings`);break;case`model`:this.openModelPicker();break;case`about`:this.shell.openAbout();break;case`keys`:this.shell.openShortcuts()}}stripSlashToken(){this.drafts.updateText(e=>e.replace(/(?:^|\n)(\s*)\/[\w:-]*$/,`$1`)),this.syncInputValue()}replaceSlashToken(e){this.drafts.updateText(t=>t.replace(/(?:^|\n)(\s*)\/[\w:-]*$/,`$1${e}`)),this.syncInputValue()}syncInputValue(){let e=this.promptInput()?.nativeElement;if(!e)return;let t=this.drafts.text();e.value=t,e.focus(),e.setSelectionRange(t.length,t.length)}reloadFiles(){this.workspace.ensureLoaded(!0)}async requestSelectionSnapshot(){return this.morse.requestHostCommand(`getEditorContext`)}pinRange(e){return e.startLine===void 0?``:e.endLine!==void 0&&e.endLine!==e.startLine?`L${e.startLine}-${e.endLine}`:`L${e.startLine}`}onPickerClose(){this.pickerOpen.set(!1),this.mentionMode.set(!1),this.promptInput()?.nativeElement.focus()}onPickFile(e,t=!1){let i=e.endsWith(`/`);this.mentionMode()?this.drafts.updateText(o=>o.replace(/@[\w./-]*$/,`@${e}${i?``:` `}`)):i||(this.attachments.addMentions([e]),this.attachments.say(`info`,`Pinned ${e} to this message.`)),t&&!i&&this.morse.capabilities()?.filePreview&&this.tabs.openMentionFile(e),i?(this.mentionMode.set(!0),this.pickerFilter.set(e),this.mentionActive.set(0),this.pickerOpen.set(!0),this.workspace.ensureLoaded()):(this.mentionMode.set(!1),this.pickerOpen.set(!1)),this.syncInputValue()}onQuoteFile(e){this.onPickFile(e,!0)}onThinkingPick(e){this.morse.setThinkingLevel(e)}sampleThroughput(){let e=J0(this.morse.items()),t=Date.now();for(this.throughput.push({at:t,chars:e});this.throughput.length>2&&t-this.throughput[0].at>2e3;)this.throughput.shift();let i=this.throughput[0];if(!i)return;let o=t-i.at;if(o<500)return;let r=(e-i.chars)/4;this.tokensPerSecond.set(Math.max(0,Math.round(r/o*1e4)/10))}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-chat-composer`]],viewQuery:function(t,i){t&1&&nt(i.promptInput,lF,5)(i.fileInput,cF,5),t&2&&ot(2)},decls:33,vars:24,consts:[[`fileInput`,``],[`promptInput`,``],[1,`host`],[`role`,`region`,`aria-label`,`Queued follow-up messages`,1,`queue`],[1,`box`],[1,`toolbar`],[`type`,`button`,1,`icon`,3,`click`,`disabled`,`title`],[`type`,`file`,`multiple`,``,`hidden`,``,3,`change`],[`type`,`button`,`title`,`Pin the editor selection to this message`,`aria-label`,`Pin the editor selection to this message`,1,`icon`,`pin-selection`],[1,`hint`,`muted`],[1,`picker-host`,3,`morsePopoverFit`,`files`,`busy`,`query`,`active`],[1,`palette-host`,3,`morsePopoverFit`,`items`,`query`,`active`],[1,`attachments`],[`rows`,`2`,`aria-label`,`Prompt`,3,`input`,`keydown`,`paste`,`value`,`disabled`,`placeholder`],[1,`status-row`],[1,`controls`],[1,`controls-metrics`],[`type`,`button`,1,`model-button`,3,`pointerdown`,`click`,`disabled`,`title`],[1,`provider`,3,`title`],[1,`label`],[`aria-hidden`,`true`,1,`caret`],[1,`model-picker-host`,3,`morsePopoverFit`,`models`,`current`],[1,`thinking-host`,3,`pick`,`levels`,`current`],[1,`controls-actions`],[`type`,`button`,`title`,`Send (Enter)`,`aria-label`,`Send`,1,`icon`,`send`,3,`disabled`],[3,`request`],[1,`queue-head`],[`aria-hidden`,`true`,1,`queue-glyph`],[1,`queue-title`],[1,`queue-count`],[`cdkDropList`,``,1,`queue-list`,3,`cdkDropListDropped`,`cdkDropListData`],[`cdkDrag`,``,`cdkDragLockAxis`,`y`,1,`queue-row`,3,`cdkDragData`,`morseEnter`,`morseEnterY`],[`cdkDragHandle`,``,`title`,`Drag to reorder`,`aria-hidden`,`true`,1,`queue-grip`],[1,`queue-text`,3,`title`],[1,`queue-actions`],[`type`,`button`,`title`,`Edit in the composer`,1,`queue-action`,3,`click`],[`type`,`button`,`title`,`Send now`,1,`queue-action`,3,`click`],[`type`,`button`,`title`,`Remove from the queue`,`aria-label`,`Remove from the queue`,1,`queue-remove`,3,`click`],[`type`,`button`,`title`,`Pin the editor selection to this message`,`aria-label`,`Pin the editor selection to this message`,1,`icon`,`pin-selection`,3,`click`],[1,`picker-host`,3,`activeChange`,`pick`,`quote`,`reload`,`close`,`morsePopoverFit`,`files`,`busy`,`query`,`active`],[1,`palette-host`,3,`activeChange`,`pick`,`close`,`morsePopoverFit`,`items`,`query`,`active`],[1,`chip`,`live`,3,`morseEnter`,`morseEnterY`,`morseEnterScale`,`morseEnterDuration`],[1,`chip`,3,`morseEnter`,`morseEnterY`,`morseEnterScale`,`morseEnterDuration`],[`type`,`button`,1,`chip-body`,3,`click`,`title`],[`aria-hidden`,`true`,1,`pin-icon`],[1,`chip-name`,3,`title`],[1,`chip-lines`],[`type`,`button`,`title`,`Dismiss this preview (locked chips stay)`,1,`chip-remove`,3,`click`],[3,`src`,`alt`],[`type`,`button`,1,`chip-remove`,3,`click`],[1,`chip-name`],[1,`status-live`],[`title`,`Live output rate: text and thinking, estimated from the character stream`,1,`hint`,`throughput`],[1,`status-end`],[`role`,`status`,1,`working`],[1,`usage-host`,3,`usage`,`lastUsage`,`costUsd`,`contextUsage`,`counts`,`model`,`sessionTitle`],[1,`spinner`],[1,`dots`],[1,`model-picker-host`,3,`pick`,`close`,`morsePopoverFit`,`models`,`current`],[`type`,`button`,1,`secondary`,3,`click`],[`type`,`button`,`title`,`Stop`,`aria-label`,`Stop`,1,`icon`,`stop`,3,`click`],[`type`,`button`,`title`,`Send (Enter)`,`aria-label`,`Send`,1,`icon`,`send`,3,`click`,`disabled`],[3,`submitted`,`cancelled`,`request`]],template:function(t,i){if(t&1&&(h(0,`footer`,2),E(1,uF,11,2,`div`,3),h(2,`div`,4)(3,`div`,5)(4,`button`,6),A(`click`,function(){return i.onAddFiles()}),u(5,` + `),y(),h(6,`input`,7,0),A(`change`,function(r){return i.onFilesChosen(r)}),y(),E(8,pF,2,0,`button`,8),h(9,`span`,9),E(10,fF,1,0)(11,mF,1,0)(12,hF,1,0),y()(),E(13,gF,1,5,`morse-file-picker`,10),E(14,yF,1,4,`morse-command-picker`,11),E(15,CF,6,1,`ul`,12),h(16,`textarea`,13,1),A(`input`,function(r){return i.onInput(r)})(`keydown`,function(r){return i.onKeydown(r)})(`paste`,function(r){return i.onPaste(r)}),y(),E(18,DF,6,3,`div`,14),h(19,`div`,15)(20,`div`,16)(21,`button`,17),A(`pointerdown`,function(r){return r.stopPropagation()})(`click`,function(){return i.toggleModelPicker()}),E(22,TF,2,2,`span`,18),h(23,`span`,19),u(24),y(),h(25,`span`,20),u(26,`▾`),y()(),E(27,MF,1,3,`morse-model-picker`,21),h(28,`morse-thinking-picker`,22),A(`pick`,function(r){return i.onThinkingPick(r)}),y()(),h(29,`div`,23),E(30,kF,6,0)(31,IF,2,1,`button`,24),y()()(),E(32,NF,1,1,`morse-prompt-template-dialog`,25),y()),t&2){let o,r;d(),S(i.queuedMessages().length>0?1:-1),d(3),j(`disabled`,!i.canAddFiles())(`title`,i.addFilesLabel()),Y(`aria-label`,i.addFilesLabel())(`aria-expanded`,i.pickerOpen()),d(4),S(i.canAttachSelection()?8:-1),d(2),S(i.canPickFiles()?10:i.canUpload()?11:12),d(3),S(i.pickerOpen()?13:-1),d(),S(i.paletteOpen()?14:-1),d(),S(i.images().length>0||i.pins().length>0||i.livePreview()!==null?15:-1),d(),j(`value`,i.text())(`disabled`,!i.canSend())(`placeholder`,i.connected()?i.agentStarting()?`Starting the Pi agent…`:i.agentError()?`The pi agent is unavailable.`:i.agentReady()?`Ask Morse… (Enter to send, Shift+Enter for a new line)`:`Type to start a session… (Enter to send, Shift+Enter for a new line)`:`Waiting for a Morse host…`),d(2),S(i.showStatusRow()?18:-1),d(3),j(`disabled`,i.models().length===0)(`title`,i.modelLabel()),Y(`aria-expanded`,i.modelPickerOpen()),d(),S((o=i.currentProvider())?22:-1,o),d(2),I(i.currentModel()?.name||`no model`),d(3),S(i.modelPickerOpen()?27:-1),d(),j(`levels`,i.levels())(`current`,i.thinkingLevel()),d(2),S(i.streaming()?30:31),d(2),S((r=i.templateRequest())?32:-1,r)}},dependencies:[Sn,Tp,Op,Mp,Ip,Pp,kp,Dp,dp,cp,K1],styles:[`[_nghost-%COMP%]{display:block;position:relative;padding:10px}.box[_ngcontent-%COMP%]{position:relative;container-type:inline-size;max-width:780px;margin:0 auto;border:1px solid var(--%NS%morse-input-border);border-radius:var(--%NS%morse-radius-lg);background:var(--%NS%morse-input-bg);padding:8px;transition:border-color .12s ease}.queue[_ngcontent-%COMP%]{max-width:780px;margin:0 auto 8px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-panel, var(--%NS%morse-hover));overflow:hidden}.queue-head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;padding:5px 10px;border-bottom:1px solid var(--%NS%morse-border);color:var(--%NS%morse-fg-muted);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.queue-count[_ngcontent-%COMP%]{min-width:16px;padding:0 5px;border-radius:999px;background:var(--%NS%morse-badge-bg);color:var(--%NS%morse-fg-muted);text-align:center;font-size:10px}.queue-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:5px 8px 5px 10px}.queue-row[_ngcontent-%COMP%] + .queue-row[_ngcontent-%COMP%]{border-top:1px solid var(--%NS%morse-hover)}.queue-grip[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);opacity:.5;cursor:grab;touch-action:none}.queue-grip[_ngcontent-%COMP%]:active{cursor:grabbing}.queue-list.cdk-drop-list-dragging[_ngcontent-%COMP%] .queue-row[_ngcontent-%COMP%]:not(.cdk-drag-placeholder){transition:transform .16s cubic-bezier(.2,0,0,1)}.queue-row.cdk-drag-animating[_ngcontent-%COMP%]{transition:transform .16s cubic-bezier(.2,0,0,1)}.queue-row.cdk-drag-placeholder[_ngcontent-%COMP%]{opacity:.3}.cdk-drag-preview[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;box-sizing:border-box;padding:5px 8px 5px 10px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-panel, var(--%NS%morse-bg));color:var(--%NS%morse-fg);font:inherit;font-size:12px;box-shadow:0 8px 24px #00000059}.queue-text[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.queue-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2px;flex:none}.queue-action[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg-muted);font:inherit;font-size:11px;cursor:pointer}.queue-action[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.queue-remove[_ngcontent-%COMP%]{width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg-muted);font-size:14px;line-height:1;cursor:pointer}.queue-remove[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.toolbar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:0 2px 4px}.toolbar[_ngcontent-%COMP%] .hint[_ngcontent-%COMP%]{font-size:11.5px;color:var(--%NS%morse-fg-muted)}.icon[_ngcontent-%COMP%]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);font-size:13px;line-height:1;cursor:pointer}.icon[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover)}.icon[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:default}.icon.send[_ngcontent-%COMP%]{background:var(--%NS%morse-accent);border-color:var(--%NS%morse-accent);color:#fff;font-size:15px}.icon.stop[_ngcontent-%COMP%]{color:var(--%NS%morse-error);border-color:var(--%NS%morse-error)}.working[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;padding:0 4px;font-size:11.5px;color:var(--%NS%morse-fg-muted);white-space:nowrap}.working[_ngcontent-%COMP%] .spinner[_ngcontent-%COMP%]{width:11px;height:11px;border-radius:50%;border:1.5px solid var(--%NS%morse-border);border-top-color:var(--%NS%morse-accent);animation:_ngcontent-%COMP%_spin .8s linear infinite}.working[_ngcontent-%COMP%] .dots[_ngcontent-%COMP%]{display:inline-flex;gap:2px}.working[_ngcontent-%COMP%] .dots[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{width:3px;height:3px;border-radius:50%;background:currentColor;animation:_ngcontent-%COMP%_dot 1.2s ease-in-out infinite}.working[_ngcontent-%COMP%] .dots[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(2){animation-delay:.15s}.working[_ngcontent-%COMP%] .dots[_ngcontent-%COMP%] i[_ngcontent-%COMP%]:nth-child(3){animation-delay:.3s}.picker-host[_ngcontent-%COMP%], .palette-host[_ngcontent-%COMP%]{position:absolute;left:0;right:0;bottom:calc(100% + 4px);z-index:20}.attachments[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:6px;margin:0 2px 6px;padding:0;list-style:none}.chip[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;max-width:220px;padding:3px 4px 3px 3px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);background:var(--%NS%morse-hover);font-size:11.5px}.chip[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:22px;height:22px;object-fit:cover;border-radius:var(--%NS%morse-radius-sm)}.chip-name[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;direction:rtl;text-align:left}.pin-icon[_ngcontent-%COMP%]{font-size:12px;color:var(--%NS%morse-accent);line-height:1}.chip-lines[_ngcontent-%COMP%]{padding:1px 5px;border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-hover);color:var(--%NS%morse-fg-muted);font-size:10.5px;font-family:var(--%NS%morse-font-mono);white-space:nowrap}.chip-remove[_ngcontent-%COMP%]{padding:0 5px;border:0;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg-muted);line-height:1.4;cursor:pointer}.chip-remove[_ngcontent-%COMP%]:hover{color:var(--%NS%morse-fg);background:var(--%NS%morse-active)}.chip.live[_ngcontent-%COMP%]{background:transparent;border:1px dashed color-mix(in srgb,var(--%NS%morse-accent) 55%,transparent)}button.chip-body[_ngcontent-%COMP%]{display:inline-flex;align-items:center;align-self:stretch;gap:6px;flex:1 1 auto;min-width:0;overflow:hidden;border:0;padding:0;background:transparent;color:inherit;font:inherit;line-height:inherit;text-align:left;cursor:pointer}button.chip-body[_ngcontent-%COMP%]:hover, button.chip-body[_ngcontent-%COMP%]:active{background:color-mix(in srgb,var(--%NS%morse-accent) 12%,transparent)}button.chip-body[_ngcontent-%COMP%]:focus-visible{outline:1px solid var(--%NS%morse-focus);outline-offset:-1px}.chip.live[_ngcontent-%COMP%] .chip-lines[_ngcontent-%COMP%]{padding:0;background:transparent;color:color-mix(in srgb,var(--%NS%morse-accent) 70%,var(--%NS%morse-fg))}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}@keyframes _ngcontent-%COMP%_dot{0%,60%,to{opacity:.25}30%{opacity:1}}.box[_ngcontent-%COMP%]:focus-within{border-color:var(--%NS%morse-focus)}textarea[_ngcontent-%COMP%]{width:100%;border:0;background:transparent;resize:none;min-height:44px;max-height:220px;padding:4px 6px;line-height:1.5}textarea[_ngcontent-%COMP%]:focus-visible{outline:none}.controls[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;margin-top:6px}.controls-metrics[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;min-width:0;flex:1 1 auto;flex-wrap:nowrap}.controls-actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;flex:0 0 auto;margin-left:auto;white-space:nowrap}.status-row[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;margin-top:6px}.status-live[_ngcontent-%COMP%], .status-end[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;min-width:0}.status-live[_ngcontent-%COMP%]{flex:0 1 auto}.status-end[_ngcontent-%COMP%]{flex:0 0 auto}.model-button[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:6px;flex:0 1 auto;min-width:0;max-width:240px;padding:4px 8px;border:1px solid var(--%NS%morse-input-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-input-bg);color:var(--%NS%morse-input-fg);font-size:12px;cursor:pointer}.model-button[_ngcontent-%COMP%]:hover:not(:disabled){border-color:var(--%NS%morse-fg-muted)}.model-button[_ngcontent-%COMP%]:disabled{opacity:.5;cursor:default}.model-button[_ngcontent-%COMP%] .provider[_ngcontent-%COMP%]{flex:none;max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:1px 5px;border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-hover);color:var(--%NS%morse-fg-muted);font-size:9.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.model-button[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.model-button[_ngcontent-%COMP%] .caret[_ngcontent-%COMP%]{flex:none;color:var(--%NS%morse-fg-muted);font-size:10px}.model-picker-host[_ngcontent-%COMP%]{position:absolute;left:0;bottom:calc(100% + 4px);z-index:20;width:min(360px,100%)}.hint[_ngcontent-%COMP%]{font-size:11px;white-space:nowrap}.throughput[_ngcontent-%COMP%]{color:var(--%NS%morse-accent);font-family:var(--%NS%morse-font-mono);font-variant-numeric:tabular-nums}@container (max-width: 380px){.usage-host[_ngcontent-%COMP%]{display:none}}@container (max-width: 460px){.controls[_ngcontent-%COMP%]{flex-wrap:wrap}.controls-actions[_ngcontent-%COMP%]{flex:1 1 100%;justify-content:flex-end}}@container (max-width: 360px){.thinking-host[_ngcontent-%COMP%]{display:none}}`]})};var jE=[{name:`model`,description:`Select a model`},{name:`new`,description:`Start a new session`},{name:`compact`,description:`Compact the current context (asks first)`},{name:`settings`,description:`Open Morse settings`},{name:`about`,description:`Credits and licences`},{name:`keys`,description:`Keyboard shortcuts`}];function PF(n){let e=/^\/([\w-]+)$/.exec(n);if(e)return jE.some(t=>t.name===e[1])?e[1]:void 0}function OF(n){return/^\/compact\s+([\s\S]+)$/.exec(n)?.[1]?.trim()||void 0}function AF(n){let e=n/1e3;return e<60?`${e<10?e.toFixed(1):Math.round(e)}s`:`${Math.floor(e/60)}m ${Math.round(e%60)}s`}function J0(n){let e=0;for(let t of n)t.kind===`assistant`&&(e+=(t.text??``).length+(t.thinking??``).length);return e}function RF(n,e){n&1&&u(0,` Pick a session from the tabs above or the sidebar, or start a new one. `)}function LF(n,e){n&1&&u(0,` Start a new session to talk to the pi agent. `)}var Rp=class n{hasTabs=se(!1);create=je();static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-empty-session`]],inputs:{hasTabs:[1,`hasTabs`]},outputs:{create:`create`},decls:12,vars:1,consts:[[`role`,`status`,1,`empty-session`],[`aria-hidden`,`true`,1,`mark`],[`viewBox`,`0 0 16 16`],[`x`,`2.5`,`y`,`3.5`,`width`,`11`,`height`,`9`,`rx`,`1.5`],[`d`,`M5.5 6.5h5M5.5 9.5h3`],[`type`,`button`,3,`click`]],template:function(t,i){t&1&&(g(0,`div`,0)(1,`span`,1),De(),g(2,`svg`,2),fe(3,`rect`,3)(4,`path`,4),_()(),kt(),g(5,`h2`),u(6,`No session open`),_(),g(7,`p`),E(8,RF,1,0)(9,LF,1,0),_(),g(10,`button`,5),F(`click`,function(){return i.create.emit()}),u(11,`New session`),_()()),t&2&&(d(8),S(i.hasTabs()?8:9))},styles:[`[_nghost-%COMP%]{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:24px}.empty-session[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:380px;text-align:center}.mark[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;margin-bottom:4px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-md);color:var(--%NS%morse-fg-muted)}.mark[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}h2[_ngcontent-%COMP%]{margin:0;font-size:14px;font-weight:600}p[_ngcontent-%COMP%]{margin:0;color:var(--%NS%morse-fg-muted);font-size:12.5px;line-height:1.55}button[_ngcontent-%COMP%]{margin-top:10px;padding:6px 14px;border:1px solid var(--%NS%morse-accent);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-accent);color:var(--%NS%morse-accent-fg, #fff);font:inherit;font-size:12.5px;cursor:pointer}button[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-accent-hover);border-color:var(--%NS%morse-accent-hover)}`]})};var FF=6e4;var VF=3e4;var jF=15e3;var Sa=class n{morse=w(Ie);byCwd=N({});loadingByCwd=N({});fetchedAt=new Map;inFlight=new Map;enabled=C(()=>this.morse.capabilities()?.mcp===!0);constructor(){ne(e=>{if(!this.enabled())return;let t=this.morse.workspace().cwd;if(!t)return;let i=setTimeout(()=>{this.refresh(t)},1200);e(()=>clearTimeout(i))})}status(e){return e?this.byCwd()[e]:void 0}isLoading(e){return this.loadingByCwd()[e]===!0}overall(e){if(!e)return`unknown`;let t=this.byCwd()[e];if(!t)return this.isLoading(e)?`loading`:`unknown`;if(t.errors.length>0)return`error`;let i=t.servers.filter(o=>o.enabled);return i.length===0?`off`:i.some(o=>o.state===`failed`||o.state===`closed`)?`error`:i.some(o=>o.state===`connecting`||o.state===`disconnected`||o.state===`needs-auth`)?`warn`:`ok`}label(e){switch(this.overall(e)){case`loading`:return`MCP: checking…`;case`ok`:return`MCP: ${this.connectableCount(e)} connected`;case`warn`:return`MCP: needs attention`;case`error`:return`MCP: a server failed`;case`off`:return`MCP: none enabled`;default:return this.enabled()?`MCP servers`:`MCP unavailable`}}connectableCount(e){return(this.byCwd()[e]?.servers??[]).filter(t=>t.enabled&&t.state===`connected`).length}async refresh(e,t=!1){if(!e)return;let i=this.inFlight.get(e);if(i)return i;let o=this.fetchedAt.get(e)??0;if(!t&&this.byCwd()[e]&&Date.now()-o<FF)return this.byCwd()[e];let r=this.fetch(e);return this.inFlight.set(e,r),r.finally(()=>{this.inFlight.delete(e)})}async fetch(e){this.setLoading(e,!0);try{let i=BF(await this.morse.requestHostCommand(`mcpStatus`,{cwd:e},VF));return i&&(this.byCwd.update(o=>s(r({},o),{[e]:i})),this.fetchedAt.set(e,Date.now())),i}finally{this.setLoading(e,!1)}}async add(e,t){return await this.mutate(`mcpAdd`,r({},e),t)}async remove(e,t,i){return this.mutate(`mcpRemove`,{name:e,scope:i},t)}async setEnabled(e,t,i,o){return this.mutate(`mcpSetEnabled`,{name:e,enabled:t,scope:o},i)}async mutate(e,t,i){let r=HF(await this.morse.requestHostCommand(e,t,jF));return r.ok&&await this.refresh(i,!0),r}setLoading(e,t){this.loadingByCwd.update(i=>s(r({},i),{[e]:t}))}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function BF(n){if(typeof n!=`object`||n===null)return;let e=n;if(Array.isArray(e.servers))return r({servers:e.servers.filter($F),errors:Array.isArray(e.errors)?e.errors.filter(zF):[]},typeof e.note==`string`?{note:e.note}:{})}function $F(n){if(typeof n!=`object`||n===null)return!1;let e=n;return typeof e.name==`string`&&typeof e.state==`string`}function HF(n){if(typeof n==`object`&&n!==null&&n.ok===!0){let t=n;return r(r(r({ok:!0},typeof t.path==`string`?{path:t.path}:{}),t.scope===`global`||t.scope===`project`?{scope:t.scope}:{}),t.override===!0?{override:!0}:{})}return{ok:!1,message:typeof n?.message==`string`?n.message:`The host did not apply the change.`}}function zF(n){return typeof n==`string`}var BE=`morse.chat.toolDisplay`;var $E=`morse.chat.diffView`;function UF(n){return n===`timeline`||n===`compact`}function GF(){try{let n=globalThis.localStorage?.getItem(BE);return UF(n)?n:`compact`}catch{return`compact`}}function qF(n){try{globalThis.localStorage?.setItem(BE,n)}catch{}}function WF(n){return n===`file`||n===`unified`||n===`split`}function YF(){try{let n=globalThis.localStorage?.getItem($E);return WF(n)?n:`unified`}catch{return`unified`}}function KF(n){try{globalThis.localStorage?.setItem($E,n)}catch{}}var sr=class n{toolDisplaySignal=N(GF());toolDisplay=this.toolDisplaySignal.asReadonly();diffViewSignal=N(YF());diffView=this.diffViewSignal.asReadonly();setToolDisplay(e){this.toolDisplaySignal.set(e),qF(e)}setDiffView(e){this.diffViewSignal.set(e),KF(e)}toggleToolDisplay(){this.setToolDisplay(this.toolDisplaySignal()===`compact`?`timeline`:`compact`)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};function ZF(n,e){if(n&1&&(g(0,`div`,8),u(1),_()),n&2)te(`title`,f().workspace().cwd),d(),I(e)}function QF(n,e){if(n&1&&(g(0,`span`,12),u(1),_()),n&2){let t=f();d(),I(t.statusLabel())}}function XF(n,e){if(n&1){let t=L();g(0,`button`,15),F(`click`,function(){D(t);return T(f().toggleGit())}),De(),g(1,`svg`,3),fe(2,`circle`,19)(3,`circle`,20)(4,`circle`,21)(5,`path`,22)(6,`path`,23),_()()}if(n&2){let t=f();te(`title`,t.gitOpen()?`Hide the git panel`:`Show the git panel`),Y(`aria-label`,t.gitOpen()?`Hide the git panel`:`Show the git panel`)(`aria-pressed`,t.gitOpen())}}function JF(n,e){if(n&1){let t=L();g(0,`button`,24),F(`click`,function(){D(t);return T(f().openMcp())}),De(),g(1,`svg`,3),fe(2,`rect`,25)(3,`rect`,26)(4,`circle`,27)(5,`circle`,28),_(),kt(),fe(6,`span`,29),_()}if(n&2){let t=f();sn(`icon mcp `+t.mcpOverall()),te(`title`,t.mcpTitle())}}function e3(n,e){n&1&&(De(),g(0,`svg`,3),fe(1,`path`,30),_())}function t3(n,e){n&1&&(De(),g(0,`svg`,3),fe(1,`path`,31),_())}var Lp=class n{morse=w(Ie);mcp=w(Sa);shell=w(Ft);display=w(sr);shortcuts=w(Fn);tabs=w(Vt);destroyRef=w(He);state=this.morse.state;connection=this.morse.connection;connectionDetail=this.morse.connectionDetail;workspace=this.morse.workspace;navigationOpen=this.shell.navigationOpen;collapsed=this.shell.navigationCollapsed;compactTools=C(()=>this.display.toolDisplay()===`compact`);gitEnabled=C(()=>this.morse.capabilities()?.gitPanel===!0);gitOpen=this.shell.gitPanelOpen;mcpEnabled=this.mcp.enabled;mcpOverall=C(()=>this.mcp.overall(this.workspace().cwd));mcpTitle=C(()=>{let e=this.mcp.label(this.workspace().cwd);return this.mcpEnabled()?`${e} \u2014 click to manage`:e});constructor(){let e=this.shortcuts.bind(`view.git`,()=>this.shell.toggleGitPanel(),()=>this.gitEnabled()),t=this.shortcuts.bind(`view.mcp`,()=>this.shell.mcpOpen()?this.shell.closeMcp():this.shell.openMcp(),()=>this.mcpEnabled());this.destroyRef.onDestroy(e),this.destroyRef.onDestroy(t)}status=C(()=>{let e=this.connection();return e!==`ready`?e:this.state().agentStarting?`starting`:!this.state().agentReady&&this.state().agentError===void 0||this.state().agentReady?`ready`:`error`});statusLabel=C(()=>{switch(this.status()){case`ready`:return`Ready`;case`starting`:return`Starting…`;case`connecting`:return`Connecting…`;case`closed`:return`Disconnected`;case`error`:return`Error`;default:return this.status()}});statusTitle=C(()=>{let e=this.connectionDetail();return e?`${this.statusLabel()} \xB7 ${e}`:this.statusLabel()});noSessionInFront=this.tabs.noSessionInFront;title=C(()=>this.noSessionInFront()?`Morse`:this.state().sessionTitle||this.workspace().name||`Morse`);meta=C(()=>{let e=[],t=this.workspace().name;!this.noSessionInFront()&&t&&t!==this.title()&&e.push(t);let i=this.state().model;return i&&e.push(i.name),e.join(` · `)});toggleNavigation(){this.shell.toggleNavigation()}toggleSidebar(){this.shell.toggleNavigationCollapsed()}compact(){this.shell.requestCompact()}toggleToolDisplay(){this.display.toggleToolDisplay()}toggleGit(){this.shell.toggleGitPanel()}openMcp(){this.shell.openMcp()}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-chat-header`]],decls:24,vars:22,consts:[[1,`head`],[`type`,`button`,`title`,`Sessions and projects`,`aria-label`,`Toggle navigation`,1,`icon`,`menu`,3,`click`],[`type`,`button`,1,`icon`,`collapse`,3,`click`,`title`],[`viewBox`,`0 0 16 16`,`aria-hidden`,`true`,1,`glyph`],[`x`,`2`,`y`,`3.5`,`width`,`12`,`height`,`9`,`rx`,`1.5`],[`d`,`M6.5 3.5v9`],[1,`titles`],[1,`title`,3,`title`],[1,`meta`,3,`title`],[1,`actions`],[1,`status`,3,`title`],[`aria-hidden`,`true`,1,`dot`],[1,`status-text`],[`type`,`button`,1,`icon`,3,`title`],[`type`,`button`,`aria-label`,`MCP servers`,3,`class`,`title`],[`type`,`button`,1,`icon`,3,`click`,`title`],[`type`,`button`,`title`,`Compact the conversation (asks first)`,`aria-label`,`Compact the conversation`,1,`icon`,3,`click`,`disabled`],[`d`,`M4 3 8 6.6l4-3.6`],[`d`,`M4 13 8 9.4l4 3.6`],[`cx`,`4.5`,`cy`,`3.5`,`r`,`1.6`],[`cx`,`4.5`,`cy`,`12.5`,`r`,`1.6`],[`cx`,`11.5`,`cy`,`6.5`,`r`,`1.6`],[`d`,`M4.5 5.1v5.8`],[`d`,`M4.5 5.1c0 2.4 7 1 7 3`],[`type`,`button`,`aria-label`,`MCP servers`,3,`click`,`title`],[`x`,`2.5`,`y`,`3`,`width`,`11`,`height`,`4.4`,`rx`,`1.2`],[`x`,`2.5`,`y`,`8.6`,`width`,`11`,`height`,`4.4`,`rx`,`1.2`],[`cx`,`5`,`cy`,`5.2`,`r`,`0.6`],[`cx`,`5`,`cy`,`10.8`,`r`,`0.6`],[`aria-hidden`,`true`,1,`mcp-dot`],[`d`,`M3 6h10M3 10h6`],[`d`,`M3 4.5h10M3 8h10M3 11.5h10`]],template:function(t,i){if(t&1&&(g(0,`header`,0)(1,`button`,1),F(`click`,function(){return i.toggleNavigation()}),u(2,` ☰ `),_(),g(3,`button`,2),F(`click`,function(){return i.toggleSidebar()}),De(),g(4,`svg`,3),fe(5,`rect`,4)(6,`path`,5),_()(),kt(),g(7,`div`,6)(8,`div`,7),u(9),_(),E(10,ZF,2,2,`div`,8),_(),g(11,`div`,9)(12,`span`,10),fe(13,`span`,11),E(14,QF,2,1,`span`,12),_(),E(15,XF,7,3,`button`,13),E(16,JF,7,3,`button`,14),g(17,`button`,15),F(`click`,function(){return i.toggleToolDisplay()}),E(18,e3,2,0,`:svg:svg`,3)(19,t3,2,0,`:svg:svg`,3),_(),g(20,`button`,16),F(`click`,function(){return i.compact()}),De(),g(21,`svg`,3),fe(22,`path`,17)(23,`path`,18),_()()()()),t&2){let o;d(),Y(`aria-expanded`,i.navigationOpen()),d(2),te(`title`,i.collapsed()?`Show the sidebar`:`Hide the sidebar`),Y(`aria-label`,i.collapsed()?`Show the sidebar`:`Hide the sidebar`)(`aria-expanded`,!i.collapsed()),d(5),te(`title`,i.state().sessionId??i.workspace().cwd),d(),I(i.title()),d(),S((o=i.meta())?10:-1,o),d(2),q(`online`,i.status()===`ready`)(`busy`,i.status()===`starting`)(`failed`,i.status()===`error`||i.status()===`closed`),te(`title`,i.statusTitle()),d(2),S(i.status()!==`ready`?14:-1),d(),S(i.gitEnabled()?15:-1),d(),S(i.mcpEnabled()?16:-1),d(),te(`title`,i.compactTools()?`Tool calls: compact — click for the legacy timeline`:`Tool calls: legacy timeline — click for the compact tree`),Y(`aria-label`,`Tool call display: `+(i.compactTools()?`compact`:`timeline`))(`aria-pressed`,i.compactTools()),d(),S(i.compactTools()?18:19),d(2),te(`disabled`,!i.state().agentReady)}},styles:[`[_nghost-%COMP%]{display:block;flex:none;background:var(--%NS%morse-bg)}.head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;min-height:var(--%NS%morse-head-height);padding:0 8px;border-bottom:1px solid var(--%NS%morse-border)}.icon[_ngcontent-%COMP%]{flex:none;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid transparent;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);font-size:13px;line-height:1;cursor:pointer}.icon[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover)}.icon[_ngcontent-%COMP%]:disabled{opacity:.4;cursor:default}.icon[_ngcontent-%COMP%] .glyph[_ngcontent-%COMP%]{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.menu[_ngcontent-%COMP%], .collapse[_ngcontent-%COMP%]{display:none}@media(max-width:759px){.menu[_ngcontent-%COMP%]{display:inline-flex}}@media(min-width:760px){.collapse[_ngcontent-%COMP%]{display:inline-flex}}.mcp[_ngcontent-%COMP%]{position:relative}.mcp[_ngcontent-%COMP%] .mcp-dot[_ngcontent-%COMP%]{position:absolute;right:3px;bottom:3px;width:6px;height:6px;border-radius:50%;background:var(--%NS%morse-fg-muted);box-shadow:0 0 0 1.5px var(--%NS%morse-bg)}.mcp.ok[_ngcontent-%COMP%] .mcp-dot[_ngcontent-%COMP%]{background:var(--%NS%morse-success)}.mcp.warn[_ngcontent-%COMP%] .mcp-dot[_ngcontent-%COMP%]{background:var(--%NS%morse-warn)}.mcp.error[_ngcontent-%COMP%] .mcp-dot[_ngcontent-%COMP%]{background:var(--%NS%morse-error)}.mcp.loading[_ngcontent-%COMP%] .mcp-dot[_ngcontent-%COMP%]{background:var(--%NS%morse-warn);animation:_ngcontent-%COMP%_status-pulse 1.1s ease-in-out infinite}.mcp.off[_ngcontent-%COMP%] .mcp-dot[_ngcontent-%COMP%]{background:var(--%NS%morse-border)}.titles[_ngcontent-%COMP%]{flex:1;min-width:0;line-height:1.3}.title[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12.5px;font-weight:600}.meta[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--%NS%morse-fg-muted)}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:2px;flex:none}.status[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;padding:2px 6px;font-size:11px;color:var(--%NS%morse-fg-muted);white-space:nowrap}.dot[_ngcontent-%COMP%]{flex:none;width:7px;height:7px;border-radius:50%;background:var(--%NS%morse-fg-muted)}.status.online[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--%NS%morse-success)}.status.busy[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--%NS%morse-warn);animation:_ngcontent-%COMP%_status-pulse 1.1s ease-in-out infinite}.status.failed[_ngcontent-%COMP%]{color:var(--%NS%morse-error)}.status.failed[_ngcontent-%COMP%] .dot[_ngcontent-%COMP%]{background:var(--%NS%morse-error)}@keyframes _ngcontent-%COMP%_status-pulse{50%{opacity:.35}}`]})};var n3=(n,e)=>e.name;function i3(n,e){n&1&&(g(0,`div`,14),u(1),_()),n&2&&(d(),I(e))}function o3(n,e){n&1&&(g(0,`div`,15),u(1),_()),n&2&&(d(),I(e))}function r3(n,e){if(n&1&&(g(0,`div`),u(1),_()),n&2){let t=e.$implicit;d(),I(t)}}function s3(n,e){if(n&1&&(g(0,`div`,14),X(1,r3,2,1,`div`,null,kn),_()),n&2){let t=f();d(),J(t)}}function a3(n,e){n&1&&E(0,s3,3,0,`div`,14),n&2&&S(e.length>0?0:-1)}function l3(n,e){n&1&&(g(0,`p`,16),u(1,`Checking the servers… this can take a few seconds.`),_())}function c3(n,e){n&1&&(g(0,`p`,16),u(1,` No MCP servers are configured for this directory. Add one below; it is written to the chosen `),g(2,`code`),u(3,`mcp.json`),_(),u(4,` and pi picks it up on the next session. `),_())}function d3(n,e){if(n&1&&(g(0,`span`,26),u(1),_()),n&2){let t=f().$implicit;d(),I(t.enabled?`enabled here`:`disabled here`)}}function u3(n,e){if(n&1&&(g(0,`span`,25),u(1),_()),n&2){let t=f().$implicit;d(),I(t.exposure)}}function p3(n,e){if(n&1&&u(0),n&2){let t=f().$implicit;ie(` · `,t.transport,` `)}}function f3(n,e){n&1&&(g(0,`div`,28),u(1),_()),n&2&&(d(),I(e))}function m3(n,e){if(n&1){let t=L();g(0,`button`,30),F(`click`,function(){D(t);let o=f().$implicit;return T(f().remove(o))}),u(1,` Remove? `),_(),g(2,`button`,31),F(`click`,function(){D(t);return T(f(2).pendingRemove.set(null))}),u(3,` Cancel `),_()}if(n&2)te(`disabled`,f(2).busy())}function h3(n,e){if(n&1){let t=L();g(0,`button`,30),F(`click`,function(){D(t);let o=f(2).$implicit;return T(f().remove(o))}),u(1,` Remove `),_()}if(n&2)te(`disabled`,f(3).busy())}function g3(n,e){if(n&1){let t=L();g(0,`button`,32),F(`click`,function(){D(t);let o=f().$implicit;return T(f().toggleEnabled(o))}),u(1),_(),E(2,h3,2,1,`button`,33)}if(n&2){let t=f().$implicit,i=f();te(`disabled`,i.busy()||!i.canEdit(t))(`title`,i.editHint(t)),d(),ie(` `,i.toggleLabel(t),` `),d(),S(i.canRemove(t)?2:-1)}}function y3(n,e){if(n&1&&(g(0,`div`,17),fe(1,`span`,21),g(2,`div`,22)(3,`div`,23)(4,`span`,24),u(5),_(),g(6,`span`,25),u(7),_(),E(8,d3,2,1,`span`,26),E(9,u3,2,1,`span`,25),_(),g(10,`div`,27),u(11),E(12,p3,1,1),_(),E(13,f3,2,1,`div`,28),_(),g(14,`div`,29),E(15,m3,4,1)(16,g3,3,4),_()()),n&2){let t,i=e.$implicit,o=f();d(),sn(`dot `+i.state),d(4),I(i.name),d(2),I(i.scope),d(),S(i.override?8:-1),d(),S(i.exposure!==`codemode`?9:-1),d(),te(`title`,i.override??i.source),d(),ie(` `,i.enabled?o.stateLabel(i):`disabled`,` `),d(),S(i.transport?12:-1),d(),S((t=i.error)?13:-1,t),d(2),S(o.pendingRemove()===i.name?15:16)}}function _3(n,e){if(n&1){let t=L();g(0,`div`,34)(1,`label`,50),u(2,`Command`),_(),g(3,`input`,51),F(`input`,function(o){D(t);return T(f(2).command.set(o.target.value))}),_()(),g(4,`div`,34)(5,`label`,52),u(6,`Arguments`),_(),g(7,`input`,53),F(`input`,function(o){D(t);return T(f(2).argsText.set(o.target.value))}),_()()}if(n&2){let t=f(2);d(3),te(`value`,t.command()),d(4),te(`value`,t.argsText())}}function v3(n,e){if(n&1){let t=L();g(0,`div`,34)(1,`label`,54),u(2,`URL`),_(),g(3,`input`,55),F(`input`,function(o){D(t);return T(f(2).url.set(o.target.value))}),_()()}if(n&2){let t=f(2);d(3),te(`value`,t.url())}}function b3(n,e){n&1&&(g(0,`div`,28),u(1),_()),n&2&&(d(),I(e))}function x3(n,e){if(n&1){let t=L();g(0,`div`,18)(1,`h3`),u(2,`Add a server`),_(),g(3,`div`,34)(4,`label`,35),u(5,`Name`),_(),g(6,`input`,36),F(`input`,function(o){D(t);return T(f().name.set(o.target.value))}),_()(),g(7,`div`,34)(8,`label`,37),u(9,`Transport`),_(),g(10,`select`,38),F(`change`,function(o){D(t);return T(f().type.set(o.target.value))}),g(11,`option`,39),u(12,`stdio (command)`),_(),g(13,`option`,40),u(14,`HTTP (url)`),_()()(),E(15,_3,8,2)(16,v3,4,1,`div`,34),g(17,`div`,34)(18,`label`,41),u(19,`Exposure`),_(),g(20,`select`,42),F(`change`,function(o){D(t);return T(f().exposure.set(o.target.value))}),g(21,`option`,43),u(22,`codemode`),_(),g(23,`option`,44),u(24,`deferred`),_(),g(25,`option`,45),u(26,`direct`),_(),g(27,`option`,46),u(28,`hidden`),_()()(),g(29,`p`,47),u(30),_(),E(31,b3,2,1,`div`,28),g(32,`div`,48)(33,`button`,31),F(`click`,function(){D(t);return T(f().closeAdd())}),u(34,`Cancel`),_(),g(35,`button`,49),F(`click`,function(){D(t);return T(f().submitAdd())}),u(36),_()()()}if(n&2){let t,i=f();d(6),te(`value`,i.name()),d(4),te(`value`,i.type()),d(5),S(i.type()===`stdio`?15:16),d(5),te(`value`,i.exposure()),d(10),ie(` Saves to `,i.editScope()===`project`?`this project (.pi/mcp.json)`:`your user mcp.json`,`. `),d(),S((t=i.formError())?31:-1,t),d(4),te(`disabled`,i.busy()),d(),ie(` `,i.busy()?`Adding…`:`Add server`,` `)}}function C3(n,e){n&1&&u(0,` Updating… `)}function w3(n,e){if(n&1&&u(0),n&2){let t=f();Xi(` `,t.enabledServers().length,` of `,t.servers().length,` enabled `)}}function E3(n,e){if(n&1){let t=L();g(0,`button`,13),F(`click`,function(){D(t);return T(f().openAdd())}),u(1,`Add server`),_()}}var Fp=class n{morse=w(Ie);mcp=w(Sa);shell=w(Ft);cwd=C(()=>this.morse.workspace().cwd);status=C(()=>this.mcp.status(this.cwd()));loading=C(()=>this.mcp.isLoading(this.cwd()));servers=C(()=>this.status()?.servers??[]);errors=C(()=>this.status()?.errors??[]);note=C(()=>this.status()?.note);enabledServers=C(()=>this.servers().filter(e=>e.enabled));pendingRemove=N(null);adding=N(!1);busy=N(!1);formError=N(null);actionError=N(null);name=N(``);type=N(`stdio`);command=N(``);argsText=N(``);url=N(``);editScope=N(`project`);exposure=N(`codemode`);constructor(){ne(()=>{let e=this.cwd();e&&this.mcp.refresh(e)})}onEscape(){if(this.adding()){this.closeAdd();return}this.shell.closeMcp()}close(){this.shell.closeMcp()}refresh(){this.mcp.refresh(this.cwd(),!0)}stateLabel(e){switch(e.state){case`connected`:return e.tools.length===1?`1 tool`:`${e.tools.length} tools`;case`connecting`:return`connecting…`;case`needs-auth`:return`needs sign-in`;case`disconnected`:return`disconnected`;case`failed`:return`failed`;case`closed`:return`closed`;case`disabled`:return`disabled`;default:return e.state}}async toggleEnabled(e){if(this.busy()||!this.canEdit(e))return;let t=this.editScope(),i=t===`project`&&e.scope!==`project`?!1:!e.enabled;this.busy.set(!0);let o=await this.mcp.setEnabled(e.name,i,this.cwd(),t);this.busy.set(!1),this.report(o.ok,o.message)}async remove(e){if(!this.canRemove(e))return;if(this.pendingRemove()!==e.name){this.pendingRemove.set(e.name);return}if(this.busy())return;this.pendingRemove.set(null),this.busy.set(!0);let t=await this.mcp.remove(e.name,this.cwd(),this.editScope());this.busy.set(!1),this.report(t.ok,t.message)}canRemove(e){return this.editScope()===`project`?e.scope===`project`:e.scope!==`project`}canEdit(e){return e.scope===`extension`?!1:this.editScope()===`project`?!0:e.scope===`global`}toggleLabel(e){return this.editScope()===`project`&&e.scope!==`project`?e.override?`Enable here`:`Disable here`:e.enabled?`Disable`:`Enable`}editHint(e){return e.scope===`extension`?`Registered by an extension; it is not in an mcp.json.`:this.canEdit(e)?``:`Defined in this project — switch the scope to “This project” to change it.`}openAdd(){this.adding()||(this.resetForm(),this.adding.set(!0))}closeAdd(){this.adding.set(!1),this.resetForm()}async submitAdd(){if(this.busy())return;let e=this.name().trim();if(e.length===0){this.formError.set(`Give the server a name.`);return}let t=this.type()===`http`,i=t?this.url().trim():this.command().trim();if(i.length===0){this.formError.set(t?`Enter the server URL.`:`Enter the command to run.`);return}this.formError.set(null),this.busy.set(!0);let o=await this.mcp.add(s(r({name:e,scope:this.editScope(),type:this.type()},t?{url:i}:{command:i,args:S3(this.argsText())}),{exposure:this.exposure()}),this.cwd());this.busy.set(!1),o.ok?this.closeAdd():this.formError.set(o.message??`The host did not add the server.`)}resetForm(){this.name.set(``),this.type.set(`stdio`),this.command.set(``),this.argsText.set(``),this.url.set(``),this.exposure.set(`codemode`),this.formError.set(null)}report(e,t){this.actionError.set(e?null:t??`The host did not apply the change.`)}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-mcp-panel`]],hostBindings:function(t,i){t&1&&A(`keydown.escape`,function(){return i.onEscape()},Dt)},decls:35,vars:16,consts:[[1,`modal-layer`,3,`click`],[`role`,`dialog`,`aria-modal`,`true`,`aria-labelledby`,`mcp-title`,1,`modal-card`,3,`click`],[`id`,`mcp-title`],[1,`cwd`,3,`title`],[`type`,`button`,`title`,`Refresh`,`aria-label`,`Refresh MCP servers`,1,`icon`,3,`click`,`disabled`],[`viewBox`,`0 0 16 16`,`width`,`14`,`height`,`14`,`fill`,`none`,`stroke`,`currentColor`,`stroke-width`,`1.3`,`stroke-linecap`,`round`,`stroke-linejoin`,`round`,`aria-hidden`,`true`],[`d`,`M13 8a5 5 0 1 1-1.5-3.5`],[`d`,`M13 2.5V5h-2.5`],[`type`,`button`,`title`,`Close`,`aria-label`,`Close`,1,`icon`,3,`click`],[1,`body`],[1,`scope-bar`],[1,`scope-label`],[`role`,`group`,`aria-label`,`MCP edit scope`,1,`segmented`],[`type`,`button`,3,`click`],[1,`errors`],[1,`note`],[1,`hint`],[1,`row`],[1,`add`],[1,`spinner`],[`type`,`button`],[`aria-hidden`,`true`],[1,`info`],[1,`name`],[1,`server`],[1,`chip`],[1,`chip`,`override`],[1,`meta`,3,`title`],[1,`error`],[1,`actions`],[`type`,`button`,1,`danger`,3,`click`,`disabled`],[`type`,`button`,1,`secondary`,3,`click`],[`type`,`button`,3,`click`,`disabled`,`title`],[`type`,`button`,1,`danger`,3,`disabled`],[1,`field`],[`for`,`mcp-name`],[`id`,`mcp-name`,`type`,`text`,`placeholder`,`filesystem`,3,`input`,`value`],[`for`,`mcp-type`],[`id`,`mcp-type`,3,`change`,`value`],[`value`,`stdio`],[`value`,`http`],[`for`,`mcp-exposure`],[`id`,`mcp-exposure`,3,`change`,`value`],[`value`,`codemode`],[`value`,`deferred`],[`value`,`direct`],[`value`,`hidden`],[1,`add-note`],[1,`add-actions`],[`type`,`button`,3,`click`,`disabled`],[`for`,`mcp-command`],[`id`,`mcp-command`,`type`,`text`,`placeholder`,`npx`,3,`input`,`value`],[`for`,`mcp-args`],[`id`,`mcp-args`,`type`,`text`,`placeholder`,`-y @modelcontextprotocol/server-filesystem .`,3,`input`,`value`],[`for`,`mcp-url`],[`id`,`mcp-url`,`type`,`text`,`placeholder`,`https://example.com/mcp`,3,`input`,`value`]],template:function(t,i){if(t&1&&(g(0,`div`,0),F(`click`,function(){return i.close()}),g(1,`div`,1),F(`click`,function(r){return r.stopPropagation()}),g(2,`header`)(3,`h2`,2),u(4,`MCP servers`),_(),g(5,`span`,3),u(6),_(),g(7,`button`,4),F(`click`,function(){return i.refresh()}),De(),g(8,`svg`,5),fe(9,`path`,6)(10,`path`,7),_()(),kt(),g(11,`button`,8),F(`click`,function(){return i.close()}),u(12,`✕`),_()(),g(13,`div`,9)(14,`div`,10)(15,`span`,11),u(16,`Changes apply to`),_(),g(17,`div`,12)(18,`button`,13),F(`click`,function(){return i.editScope.set(`project`)}),u(19,` This project `),_(),g(20,`button`,13),F(`click`,function(){return i.editScope.set(`global`)}),u(21,` Global `),_()()(),E(22,i3,2,1,`div`,14),E(23,o3,2,1,`div`,15),E(24,a3,1,1),E(25,l3,2,0,`p`,16)(26,c3,5,0,`p`,16),X(27,y3,17,11,`div`,17,n3),E(29,x3,37,8,`div`,18),_(),g(30,`footer`)(31,`span`,19),E(32,C3,1,0)(33,w3,1,2),_(),E(34,E3,2,0,`button`,20),_()()()),t&2){let o,r,s;d(5),te(`title`,i.cwd()),d(),I(i.cwd()),d(),te(`disabled`,i.loading()),d(11),q(`active`,i.editScope()===`project`),Y(`aria-pressed`,i.editScope()===`project`),d(2),q(`active`,i.editScope()===`global`),Y(`aria-pressed`,i.editScope()===`global`),d(2),S((o=i.actionError())?22:-1,o),d(),S((r=i.note())?23:-1,r),d(),S((s=i.errors())?24:-1,s),d(),S(i.loading()&&i.servers().length===0?25:i.servers().length===0&&i.errors().length===0?26:-1),d(2),J(i.servers()),d(2),S(i.adding()?29:-1),d(3),S(i.loading()?32:33),d(2),S(i.adding()?-1:34)}},styles:[`[_nghost-%COMP%]{display:contents}.modal-layer[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:70;display:flex;align-items:center;justify-content:center;padding:24px;background:#00000073}.modal-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:min(620px,100%);max-height:min(78vh,720px);border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-lg);background:var(--%NS%morse-panel, var(--%NS%morse-bg));box-shadow:0 18px 48px #0006;overflow:hidden}header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--%NS%morse-border)}h2[_ngcontent-%COMP%]{margin:0;font-size:13.5px;font-weight:600}.cwd[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--%NS%morse-fg-muted);font-size:11px}.icon[_ngcontent-%COMP%]{flex:none;width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid transparent;border-radius:var(--%NS%morse-radius-sm);background:transparent;color:var(--%NS%morse-fg);cursor:pointer}.icon[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover)}.body[_ngcontent-%COMP%]{flex:1;min-height:0;overflow-y:auto;padding:6px 8px 10px}.hint[_ngcontent-%COMP%]{padding:10px 8px;color:var(--%NS%morse-fg-muted);font-size:12px;line-height:1.55}.scope-bar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;padding:6px 6px 8px}.scope-label[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted);font-size:11px}.segmented[_ngcontent-%COMP%]{display:inline-flex;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);overflow:hidden}.segmented[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:3px 10px;border:0;border-radius:0;background:transparent;color:var(--%NS%morse-fg-muted);font-size:11px;cursor:pointer}.segmented[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background:var(--%NS%morse-accent);color:var(--%NS%morse-accent-fg)}.note[_ngcontent-%COMP%]{margin:8px 6px;padding:8px 10px;border:1px solid var(--%NS%morse-warn);border-radius:var(--%NS%morse-radius-sm);color:var(--%NS%morse-warn);font-size:11.5px;line-height:1.5}.add-note[_ngcontent-%COMP%]{margin:4px 0 0;color:var(--%NS%morse-fg-muted);font-size:11px}.errors[_ngcontent-%COMP%]{margin:8px 6px;padding:8px 10px;border:1px solid var(--%NS%morse-error);border-radius:var(--%NS%morse-radius-sm);color:var(--%NS%morse-error);font-size:11.5px;line-height:1.5}.row[_ngcontent-%COMP%]{display:flex;align-items:flex-start;gap:8px;padding:8px;border-radius:var(--%NS%morse-radius-sm)}.row[_ngcontent-%COMP%]:hover{background:var(--%NS%morse-hover)}.dot[_ngcontent-%COMP%]{flex:none;width:8px;height:8px;margin-top:5px;border-radius:50%;background:var(--%NS%morse-fg-muted)}.dot.connected[_ngcontent-%COMP%]{background:var(--%NS%morse-success)}.dot.connecting[_ngcontent-%COMP%], .dot.disconnected[_ngcontent-%COMP%], .dot.needs-auth[_ngcontent-%COMP%]{background:var(--%NS%morse-warn)}.dot.failed[_ngcontent-%COMP%], .dot.closed[_ngcontent-%COMP%]{background:var(--%NS%morse-error)}.dot.disabled[_ngcontent-%COMP%]{background:var(--%NS%morse-border)}.info[_ngcontent-%COMP%]{flex:1;min-width:0}.name[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600}.name[_ngcontent-%COMP%] .server[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chip[_ngcontent-%COMP%]{flex:none;padding:1px 5px;border-radius:999px;background:var(--%NS%morse-hover);color:var(--%NS%morse-fg-muted);font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.03em}.chip.override[_ngcontent-%COMP%]{color:var(--%NS%morse-warn)}.meta[_ngcontent-%COMP%]{margin-top:2px;color:var(--%NS%morse-fg-muted);font-size:11px;line-height:1.5;overflow-wrap:anywhere}.error[_ngcontent-%COMP%]{margin-top:3px;color:var(--%NS%morse-error);font-size:11px;line-height:1.5;overflow-wrap:anywhere}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px;flex:none}.actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:3px 8px;font-size:11px}.danger[_ngcontent-%COMP%]{color:var(--%NS%morse-error)}.add[_ngcontent-%COMP%]{margin:4px 6px 0;padding:10px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm)}.add[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0 0 8px;font-size:12px;font-weight:600}.field[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-bottom:6px}.field[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{flex:none;width:74px;color:var(--%NS%morse-fg-muted);font-size:11px}.field[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .field[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{flex:1;min-width:0;padding:4px 7px;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);background:var(--%NS%morse-bg);color:var(--%NS%morse-fg);font-size:12px;font-family:inherit}.add-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:6px;margin-top:8px}footer[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 14px;border-top:1px solid var(--%NS%morse-border)}.spinner[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted);font-size:11px}@media(max-width:520px){.field[_ngcontent-%COMP%]{flex-direction:column;align-items:stretch;gap:3px}.field[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{width:auto}}`]})};function S3(n){return n.split(/\s+/).map(e=>e.trim()).filter(e=>e.length>0)}function UE(n){let e=[],t=[],i=()=>{t.length!==0&&(e.push({kind:`process`,key:`process-${t[0]?.key??e.length}`,steps:t}),t=[])};for(let o of n){if(o.kind===`tool`){t.push({kind:`tool`,key:o.id,item:o});continue}if(o.kind===`assistant`){let r=o.thinking.trim();r.length>0&&t.push({kind:`thinking`,key:`${o.id}:thinking`,item:o}),o.text.trim().length>0||o.streaming&&r.length===0?(i(),e.push({kind:`assistant`,key:o.id,item:o})):r.length===0&&i();continue}i(),o.kind===`user`?e.push({kind:`user`,key:o.id,item:o}):o.kind===`notice`?e.push({kind:`notice`,key:o.id,item:o}):o.kind===`compaction`&&e.push({kind:`compaction`,key:o.id,item:o})}return i(),e}function GE(n){for(let e=n.length-1;e>=0;e-=1){let t=n[e];if(t?.kind===`process`)return t.key}return null}var D3=/(^|\s)@([^\s:]+(?::\d+(?:-\d+)?)?)(?=$|\s)/g;function T3(n){if(n.length===0)return;let e=n.indexOf(`:`);if(e===-1)return{path:n};let t=n.slice(0,e),i=n.slice(e+1),o=/^(\d+)(?:-(\d+))?$/.exec(i);if(t.length===0||!o)return;let r=Number(o[1]);return{path:t,startLine:r,endLine:o[2]===void 0?r:Number(o[2])}}function qE(n){let e;return n.split(`
|
|
@@ -111,7 +111,7 @@ ${i}`:i}copy(e){this.copyRaw(e.id,this.copyText(e))}copyAssistant(e){this.copyRa
|
|
|
111
111
|
${t}${t.length===0?``:`
|
|
112
112
|
`}`}var JB=[`source`];var e$=[`gutter`];var t$=(n,e)=>e.id;function n$(n,e){if(n&1&&(g(0,`span`,4),u(1),_()),n&2)te(`title`,f().tab().commitSubject??``),d(),I(e.slice(0,7))}function i$(n,e){if(n&1){let t=L();g(0,`button`,16),F(`click`,function(){D(t);return T(f(2).setMode(`file`))}),u(1,` File `),_()}if(n&2)q(`on`,f(2).mode()===`file`)}function o$(n,e){if(n&1&&(g(0,`span`,8),u(1),_()),n&2){let t=f(2);d(),I(t.diffStats())}}function r$(n,e){if(n&1){let t=L();g(0,`div`,12),E(1,i$,2,2,`button`,13),g(2,`button`,14),F(`click`,function(){D(t);return T(f().setMode(`unified`))}),u(3,` Unified `),_(),g(4,`button`,15),F(`click`,function(){D(t);return T(f().setMode(`split`))}),u(5,` Split `),_()(),E(6,o$,2,1,`span`,8)}if(n&2){let t=f();d(),S(t.tab().commitHash===void 0?1:-1),d(),q(`on`,t.mode()===`unified`),d(2),q(`on`,t.mode()===`split`),d(2),S(t.mode()!==`file`?6:-1)}}function s$(n,e){n&1&&(g(0,`span`,6),u(1),_()),n&2&&(te(`title`,`Pinned to the next prompt`),d(),I(e))}function a$(n,e){if(n&1&&(g(0,`span`,6),u(1),_()),n&2){let t=f();te(`title`,`Pinned to the next prompt`),d(),I(t.pinnedCount()===1?`1 range`:t.pinnedCount()+` ranges`)}}function l$(n,e){n&1&&(g(0,`p`,10),u(1,`Reading the changes…`),_())}function c$(n,e){n&1&&(g(0,`p`,11),u(1),_()),n&2&&(d(),I(e))}function d$(n,e){if(n&1&&(g(0,`p`,10),u(1),_()),n&2){let t=f(2);d(),ie(`Binary file · `,t.size(),` · no textual diff.`)}}function u$(n,e){if(n&1&&(g(0,`p`,10),u(1),_()),n&2){let t=f(2);d(),ie(` `,t.tab().commitHash?`This commit did not change this file.`:`No changes against HEAD.`,` `)}}function p$(n,e){n&1&&(g(0,`div`,19)(1,`span`,21),u(2),_()()),n&2&&(d(2),I(e))}function f$(n,e){if(n&1){let t=L();g(0,`div`,20)(1,`div`,22),F(`click`,function(){D(t);let o=f().$implicit;return T(f(3).toggleChange(o.left))}),g(2,`span`,23),u(3),_(),g(4,`span`,24),u(5),_(),fe(6,`span`,25),_(),g(7,`div`,22),F(`click`,function(){D(t);let o=f().$implicit;return T(f(3).toggleChange(o.right))}),g(8,`span`,23),u(9),_(),g(10,`span`,24),u(11),_(),fe(12,`span`,25),_()()}if(n&2){let t=f().$implicit,i=f(3);d(),q(`del`,t.left?.kind===`del`)(`clickable`,t.left?.change!==void 0)(`pinned`,i.isChangePinned(t.left?.newAnchor)),Y(`title`,t.left?.change!==void 0?`Click to pin this change to your next message`:null),d(2),I(t.left?.oldLine??``),d(2),I(i.diffSign(t.left)),d(),te(`innerHTML`,t.left?.html,qo),d(),q(`add`,t.right?.kind===`add`)(`clickable`,t.right?.change!==void 0)(`pinned`,i.isChangePinned(t.right?.newAnchor)),Y(`title`,t.right?.change!==void 0?`Click to pin this change to your next message`:null),d(2),I(t.right?.newLine??``),d(2),I(i.diffSign(t.right)),d(),te(`innerHTML`,t.right?.html,qo)}}function m$(n,e){if(n&1&&E(0,p$,3,1,`div`,19)(1,f$,13,20,`div`,20),n&2){let t,i=e.$implicit;S((t=i.hunk)?0:1,t)}}function h$(n,e){if(n&1&&(g(0,`div`,17),X(1,m$,2,1,null,null,Ci),_()),n&2){let t=f(2);d(),J(t.splitView())}}function g$(n,e){if(n&1&&(g(0,`div`,19)(1,`span`,21),u(2),_()()),n&2){let t=f().$implicit;d(2),I(t.text)}}function y$(n,e){if(n&1){let t=L();g(0,`div`,27),F(`click`,function(){D(t);let o=f().$implicit;return T(f(3).toggleChange(o))}),g(1,`span`,23),u(2),_(),g(3,`span`,23),u(4),_(),g(5,`span`,24),u(6),_(),fe(7,`span`,25),_()}if(n&2){let t=f().$implicit,i=f(3);q(`add`,t.kind===`add`)(`del`,t.kind===`del`)(`clickable`,t.change!==void 0)(`pinned`,i.isChangePinned(t.newAnchor)),Y(`title`,t.change!==void 0?`Click to pin this change to your next message`:null),d(2),I(t.oldLine??``),d(2),I(t.newLine??``),d(2),I(i.diffSign(t)),d(),te(`innerHTML`,t.html,qo)}}function _$(n,e){if(n&1&&E(0,g$,3,1,`div`,19)(1,y$,8,13,`div`,26),n&2){let t=e.$implicit;S(t.kind===`hunk`?0:1)}}function v$(n,e){if(n&1&&(g(0,`div`,18),X(1,_$,2,1,null,null,Ci),_()),n&2){let t=f(2);d(),J(t.unifiedView())}}function b$(n,e){if(n&1&&E(0,l$,2,0,`p`,10)(1,c$,2,1,`p`,11)(2,d$,2,1,`p`,10)(3,u$,2,1,`p`,10)(4,h$,3,0,`div`,17)(5,v$,3,0,`div`,18),n&2){let t,i=f();S(i.tab().diffLoading&&i.diffText().length===0?0:(t=i.tab().diffError)?1:i.parsed().binary?2:i.parsed().hunks.length===0?3:i.mode()===`split`?4:5,t)}}function x$(n,e){if(n&1&&(g(0,`p`,10),u(1),_()),n&2){let t=f();d(),ie(`Reading `,t.tab().title,`…`)}}function C$(n,e){n&1&&(g(0,`p`,11),u(1),_()),n&2&&(d(),I(e))}function w$(n,e){if(n&1&&(g(0,`p`,10),u(1),_()),n&2){let t=f();d(),ie(`Binary file · `,t.size(),` · no text preview.`)}}function E$(n,e){if(n&1){let t=L();g(0,`span`,35),F(`pointerdown`,function(o){let r=D(t).$implicit;return T(f(2).startSelection(o,r))}),u(1),_()}if(n&2){let t=e.$implicit;q(`selected`,f(2).isSelected(t)),Y(`data-line`,t),d(),I(t)}}function S$(n,e){if(n&1){let t=L();g(0,`span`,36)(1,`span`,37),F(`pointerdown`,function(o){let r=D(t).$implicit;return T(f(2).startResizeEdge(o,r,`start`))}),_(),g(2,`span`,38),F(`pointerdown`,function(o){let r=D(t).$implicit;return T(f(2).startResizeEdge(o,r,`end`))}),_()()}if(n&2){let t=e.$implicit,i=f(2);Tt(`top`,i.topOf(t),`px`)(`height`,i.heightOf(t),`px`),q(`merged`,t.id===i.mergedId())}}function D$(n,e){if(n&1&&(g(0,`p`,10),u(1),_()),n&2){let t=f(2);d(),ie(`Showing the first 512 KB of `,t.size(),`.`)}}function T$(n,e){if(n&1&&(g(0,`div`,28)(1,`div`,29,0),X(3,E$,2,4,`span`,30,kn),_(),g(5,`div`,31)(6,`pre`,32,1),fe(8,`code`,33),_(),X(9,S$,3,6,`span`,34,t$),_()(),E(11,D$,2,1,`p`,10)),n&2){let t=f();d(3),J(t.lines()),d(5),te(`innerHTML`,t.highlighted(),qo),d(),J(t.highlights()),d(2),S(t.tab().truncated?11:-1)}}function iD(n){return n===void 0?``:n.start===n.end?`L${n.start}`:`L${n.start}\u2013${n.end}`}var M$=19.2;var Jp=class n{tab=se.required();tabs=w(Vt);attachments=w(Zn);animation=w(En);sanitizer=w(Il);display=w(sr);workspace=w(Qn);sourceElement=Ue(`source`);gutterElement=Ue(`gutter`);source=C(()=>{let e=this.tab().content??``;return e.endsWith(`
|
|
113
113
|
`)?e.slice(0,-1):e});lines=C(()=>{let e=this.source(),t=e.length===0?1:e.split(`
|
|
114
|
-
`).length;return Array.from({length:t},(i,o)=>o+1)});highlighted=C(()=>{let e=this.tab();return e.content===void 0||e.binary?this.sanitizer.bypassSecurityTrustHtml(``):this.sanitizer.bypassSecurityTrustHtml(Ea(this.source(),e.language).html)});language=C(()=>this.tab().language??`text`);size=C(()=>k$(this.tab().size??0));changed=C(()=>yp(this.workspace.status()).get(this.tab().path));diffable=C(()=>this.changed()!==void 0||this.tab().commitHash!==void 0);mode=C(()=>this.diffable()?this.tab().commitHash!==void 0?this.display.diffView()===`split`?`split`:`unified`:this.display.diffView():`file`);diffText=C(()=>{let e=this.tab();return e.diff!==void 0&&e.diff.trim().length>0?e.diff:this.changed()===`U`&&e.content!==void 0&&!e.binary?nD(e.content):e.diff??``});parsed=C(()=>JS(this.diffText()));unified=C(()=>eD(this.parsed()));split=C(()=>tD(this.parsed()));unifiedView=C(()=>{let e=this.language();return this.unified().map(t=>s(r({},t),{html:t.kind===`hunk`?``:this.sanitizer.bypassSecurityTrustHtml(Ea(t.text,e).html)}))});splitView=C(()=>{let e=this.language(),t=i=>i===void 0?void 0:s(r({},i),{html:this.sanitizer.bypassSecurityTrustHtml(Ea(i.text,e).html)});return this.split().map(i=>({hunk:i.hunk,left:t(i.left),right:t(i.right)}))});diffStats=C(()=>{let e=this.parsed();return`+${e.additions} \u2212${e.deletions}`});lineHeight=N(M$);selected=N(void 0);editingId=N(void 0);mergedId=N(void 0);anchor=1;rangeLabel=C(()=>iD(this.selected()));highlights=C(()=>{let e=this.tab().path,t=this.editingId(),i=this.attachments.pins().filter(r=>r.path===e&&r.startLine!==void 0&&r.id!==t).map(r=>({id:r.id,start:r.startLine,end:r.endLine??r.startLine})),o=this.selected();return o===void 0?i:[...i,{id:`live`,start:o.start,end:o.end}]});pinnedCount=C(()=>this.highlights().filter(e=>e.id!==`live`).length);topOf(e){return(e.start-1)*this.lineHeight()}heightOf(e){return(e.end-e.start+1)*this.lineHeight()}constructor(){An(()=>this.measureLineHeight()),ne(()=>{this.tab(),zn(()=>this.selected.set(void 0))}),ne(()=>{if(this.mode()===`file`)return;let e=this.tab().id;zn(()=>this.tabs.loadDiff(e))})}setMode(e){this.display.setDiffView(e)}diffSign(e){if(e===void 0)return``;switch(e.kind){case`add`:return`+`;case`del`:return`−`;case`context`:return` `;default:return``}}isChangePinned(e){if(e===void 0)return!1;let t=this.tab().path;return this.attachments.pins().some(i=>i.path===t&&i.startLine!==void 0&&e>=i.startLine&&e<=(i.endLine??i.startLine))}toggleChange(e){let t=e!==void 0&&e.kind!==`hunk`?e.change:void 0;if(t===void 0)return;let i=this.tab().path,o=this.attachments.pins().find(r=>r.path===i&&r.startLine!==void 0&&r.startLine<=t.start&&(r.endLine??r.startLine)>=t.end);if(o!==void 0){this.attachments.removePin(o.id);return}this.attachments.pin({path:i,startLine:t.start,endLine:t.end>t.start?t.end:void 0}),this.attachments.say(`info`,`Pinned ${this.tab().title} ${iD(t)} to this message.`)}isSelected(e){return this.highlights().some(t=>e>=t.start&&e<=t.end)}startSelection(e,t){if(e.button!==0)return;e.preventDefault(),this.anchor=t,this.editingId.set(this.highlights().find(s=>s.id!==`live`&&t>=s.start&&t<=s.end)?.id),this.selected.set({start:t,end:t});let i=e.currentTarget;try{i.setPointerCapture(e.pointerId)}catch{}let o=s=>{let a=this.lineAt(s.clientY);a!==void 0&&this.selected.set({start:Math.min(this.anchor,a),end:Math.max(this.anchor,a)})},r=()=>{i.removeEventListener(`pointermove`,o),i.removeEventListener(`pointerup`,r),i.removeEventListener(`pointercancel`,r),this.pinSelection()};i.addEventListener(`pointermove`,o),i.addEventListener(`pointerup`,r),i.addEventListener(`pointercancel`,r)}clearSelection(){this.selected.set(void 0),this.editingId.set(void 0)}reload(){this.tabs.reload(this.tab().id)}startResizeEdge(e,t,i){if(e.button!==0)return;e.preventDefault(),e.stopPropagation();let o=e.currentTarget;try{o.setPointerCapture(e.pointerId)}catch{}let r=a=>{let l=this.lineAt(a.clientY);if(l===void 0)return;let c=this.attachments.pins().find(k=>k.id===t.id),p=c?.startLine??t.start,m=c?.endLine??p,v=i===`start`?Math.min(l,m):p,b=i===`end`?Math.max(l,p):m;this.attachments.setPinRange(t.id,{startLine:v,endLine:b>v?b:void 0})},s=()=>{o.removeEventListener(`pointermove`,r),o.removeEventListener(`pointerup`,s),o.removeEventListener(`pointercancel`,s);let a=this.attachments.pins().find(l=>l.id===t.id);if(a?.startLine!==void 0){let l=this.attachments.pins().length,c=this.attachments.pin({path:this.tab().path,startLine:a.startLine,endLine:a.endLine},t.id);this.attachments.pins().length<l&&this.celebrate(c,{start:a.startLine,end:a.endLine??a.startLine})}};o.addEventListener(`pointermove`,r),o.addEventListener(`pointerup`,s),o.addEventListener(`pointercancel`,s)}measureLineHeight(){let e=this.sourceElement()?.nativeElement;if(e===void 0)return;let t=Number.parseFloat(getComputedStyle(e).lineHeight);Number.isFinite(t)&&t>0&&this.lineHeight.set(t)}lineAt(e){let t=this.gutterElement()?.nativeElement;if(t===void 0)return;let i=t.getBoundingClientRect().top,o=Math.floor((e-i)/this.lineHeight())+1;return Math.min(this.lines().length,Math.max(1,o))}pinSelection(){let e=this.selected();if(e===void 0)return;let t=e.end>e.start?e.end:void 0,i=this.attachments.pins().length,o=this.attachments.pin({path:this.tab().path,startLine:e.start,endLine:t},this.editingId());this.attachments.pins().length<i&&this.celebrate(o,{start:e.start,end:e.end}),this.attachments.say(`info`,`Pinned ${this.tab().title} ${this.rangeLabel()} to this message.`),this.selected.set(void 0),this.editingId.set(void 0)}celebrate(e,t){if(e.length===0)return;this.mergedId.set(e),setTimeout(()=>{this.mergedId()===e&&this.mergedId.set(void 0)},720);let i=this.attachments.pins().find(c=>c.id===e),o=this.sourceElement()?.nativeElement.closest(`.source-wrap`);if(i?.startLine===void 0||!(o instanceof HTMLElement))return;let r=i.startLine,s=i.endLine??r,a=this.lineHeight(),l=s>t.end?t.end*a:r<t.start?(t.start-1)*a:((t.start+t.end)/2-.5)*a;this.animation.confetti(o,{x:o.clientWidth/2,y:l})}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-file-preview`]],viewQuery:function(t,i){t&1&&nt(i.sourceElement,JB,5)(i.gutterElement,e$,5),t&2&&ot(2)},inputs:{tab:[1,`tab`]},decls:19,vars:8,consts:[[`gutter`,``],[`source`,``],[1,`head`],[1,`path`,3,`title`],[1,`commit-ref`,3,`title`],[1,`meta`],[1,`range`,3,`title`],[1,`badge`],[1,`stat`],[`type`,`button`,`title`,`Reload from disk`,`aria-label`,`Reload from disk`,1,`icon`,3,`click`],[1,`hint`],[1,`hint`,`error`],[`role`,`group`,`aria-label`,`Preview mode`,1,`modes`],[`type`,`button`,`title`,`The file's content`,3,`on`],[`type`,`button`,`title`,`Unified diff`,3,`click`],[`type`,`button`,`title`,`Side-by-side diff`,3,`click`],[`type`,`button`,`title`,`The file's content`,3,`click`],[1,`diff`,`split`],[1,`diff`],[1,`drow`,`hunk`],[1,`srow`],[1,`dtext`],[1,`side`,3,`click`],[1,`dnum`],[1,`dsign`],[1,`dtext`,3,`innerHTML`],[1,`drow`,3,`add`,`del`,`clickable`,`pinned`],[1,`drow`,3,`click`],[1,`code`],[`title`,`Drag line numbers to pin a range to your next message`,1,`gutter`],[1,`num`,3,`selected`],[1,`source-wrap`],[1,`source`],[1,`hljs`,3,`innerHTML`],[1,`selection`,3,`merged`,`top`,`height`],[1,`num`,3,`pointerdown`],[1,`selection`],[`title`,`Drag to resize`,`aria-hidden`,`true`,1,`edge`,`top`,3,`pointerdown`],[`title`,`Drag to resize`,`aria-hidden`,`true`,1,`edge`,`bottom`,3,`pointerdown`]],template:function(t,i){if(t&1&&(g(0,`header`,2)(1,`span`,3),u(2),_(),E(3,n$,2,2,`span`,4),g(4,`div`,5),E(5,r$,7,6),E(6,s$,2,2,`span`,6)(7,a$,2,2,`span`,6),g(8,`span`,7),u(9),_(),g(10,`span`,8),u(11),_(),g(12,`button`,9),F(`click`,function(){return i.reload()}),u(13,` ⟳ `),_()()(),E(14,b$,6,1)(15,x$,2,1,`p`,10)(16,C$,2,1,`p`,11)(17,w$,2,1,`p`,10)(18,T$,12,2)),t&2){let o,r,s;d(),te(`title`,i.tab().path),d(),I(i.tab().path),d(),S((o=i.tab().commitHash)?3:-1,o),d(2),S(i.diffable()?5:-1),d(),S((r=i.rangeLabel())?6:i.pinnedCount()>0?7:-1,r),d(3),I(i.language()),d(2),I(i.size()),d(3),S(i.mode()!==`file`?14:i.tab().loading?15:(s=i.tab().error)?16:i.tab().binary?17:18,s)}},styles:[`[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex:none;min-height:var(--%NS%morse-head-height);padding:0 10px 0 14px;border-bottom:1px solid var(--%NS%morse-border)}.path[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--%NS%morse-font-mono);font-size:12px;color:var(--%NS%morse-fg)}.commit-ref[_ngcontent-%COMP%]{flex:none;padding:0 6px;border-radius:4px;background:color-mix(in srgb,var(--%NS%morse-fg-muted) 12%,transparent);color:var(--%NS%morse-fg-muted);font-family:var(--%NS%morse-font-mono);font-size:10px;line-height:16px}.meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex:none}.badge[_ngcontent-%COMP%]{padding:1px 6px;border-radius:999px;background:var(--%NS%morse-badge-bg, var(--%NS%morse-hover));color:var(--%NS%morse-fg-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}.stat[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted);font-size:11px}.range[_ngcontent-%COMP%]{padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--%NS%morse-accent) 22%,transparent);color:var(--%NS%morse-fg);font-size:11px;font-variant-numeric:tabular-nums}.icon[_ngcontent-%COMP%]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--%NS%morse-radius-sm);background:none;color:var(--%NS%morse-fg-muted);cursor:pointer}.icon[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.modes[_ngcontent-%COMP%]{display:inline-flex;flex:none;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);overflow:hidden}.modes[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:2px 8px;border:0;background:transparent;color:var(--%NS%morse-fg-muted);font:inherit;font-size:11px;cursor:pointer}.modes[_ngcontent-%COMP%] button[_ngcontent-%COMP%] + button[_ngcontent-%COMP%]{border-left:1px solid var(--%NS%morse-border)}.modes[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.modes[_ngcontent-%COMP%] button.on[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-accent) 24%,transparent);color:var(--%NS%morse-fg)}.diff[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:6px 0;background:var(--%NS%morse-code-bg, var(--%NS%morse-bg));font-family:var(--%NS%morse-font-mono);font-size:12px;line-height:1.6}.drow[_ngcontent-%COMP%], .srow[_ngcontent-%COMP%]{display:flex;align-items:stretch;min-height:1.6em}.dtext[_ngcontent-%COMP%]{flex:1;min-width:0;padding:0 16px 0 6px;white-space:pre-wrap;overflow-wrap:anywhere}.dnum[_ngcontent-%COMP%]{flex:none;min-width:44px;padding:0 8px 0 10px;color:var(--%NS%morse-fg-muted);text-align:right;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;opacity:.7}.dsign[_ngcontent-%COMP%]{flex:none;width:14px;text-align:center;color:var(--%NS%morse-fg-muted);-webkit-user-select:none;user-select:none}.drow.add[_ngcontent-%COMP%], .side.add[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-success) 14%,transparent)}.drow.del[_ngcontent-%COMP%], .side.del[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-error) 14%,transparent)}.drow.add[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%], .side.add[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%]{color:var(--%NS%morse-success)}.drow.del[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%], .side.del[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%]{color:var(--%NS%morse-error)}.drow.clickable[_ngcontent-%COMP%], .side.clickable[_ngcontent-%COMP%]{cursor:pointer}.drow.clickable[_ngcontent-%COMP%]:hover, .side.clickable[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--%NS%morse-accent) 12%,transparent)}.drow.pinned[_ngcontent-%COMP%], .side.pinned[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-accent) 22%,transparent);box-shadow:inset 2px 0 color-mix(in srgb,var(--%NS%morse-accent) 70%,transparent)}.drow.hunk[_ngcontent-%COMP%]{margin:6px 0 2px;padding:2px 12px;background:var(--%NS%morse-code-head, var(--%NS%morse-hover));color:var(--%NS%morse-fg-muted)}.srow[_ngcontent-%COMP%] .side[_ngcontent-%COMP%]{flex:1 1 50%;min-width:0;display:flex;align-items:stretch;border-left:1px solid var(--%NS%morse-border)}.srow[_ngcontent-%COMP%] .side[_ngcontent-%COMP%]:first-child{border-left:0}.code[_ngcontent-%COMP%]{display:flex;flex:1;min-height:0;overflow:auto;padding:8px 0;background:var(--%NS%morse-code-bg, var(--%NS%morse-bg))}pre[_ngcontent-%COMP%], .gutter[_ngcontent-%COMP%]{margin:0;font-family:var(--%NS%morse-font-mono);font-size:12px;line-height:1.6}.gutter[_ngcontent-%COMP%]{flex:none;position:sticky;left:0;z-index:2;padding:0 10px 0 14px;color:var(--%NS%morse-fg-muted);text-align:right;-webkit-user-select:none;user-select:none;background:var(--%NS%morse-code-bg, var(--%NS%morse-bg));opacity:.7}.gutter[_ngcontent-%COMP%] .num[_ngcontent-%COMP%]{display:block;height:1.6em;cursor:pointer;font-variant-numeric:tabular-nums}.gutter[_ngcontent-%COMP%] .num.selected[_ngcontent-%COMP%]{color:var(--%NS%morse-fg);background:color-mix(in srgb,var(--%NS%morse-accent) 34%,transparent);opacity:1}.source-wrap[_ngcontent-%COMP%]{position:relative;flex:1;min-width:0}.source[_ngcontent-%COMP%]{position:relative;z-index:1;padding:0 16px 0 4px;white-space:pre}.selection[_ngcontent-%COMP%]{position:absolute;left:0;right:0;z-index:2;pointer-events:none;background:color-mix(in srgb,var(--%NS%morse-accent) 16%,transparent);border-left:2px solid color-mix(in srgb,var(--%NS%morse-accent) 70%,transparent)}.selection.merged[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_selection-merged .62s ease-out}@keyframes _ngcontent-%COMP%_selection-merged{0%{background:color-mix(in srgb,var(--%NS%morse-accent) 60%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--%NS%morse-accent) 80%,transparent)}to{background:color-mix(in srgb,var(--%NS%morse-accent) 16%,transparent);box-shadow:inset 0 0 0 0 transparent}}@property --%NS%morse-rainbow{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.selection.merged[_ngcontent-%COMP%]:after{content:"";position:absolute;inset:0;border-radius:3px;padding:2px;background:conic-gradient(from var(--%NS%morse-rainbow),#f43f5e,#fb923c,#facc15,#4ade80,#38bdf8,#a78bfa,#f43f5e);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:_ngcontent-%COMP%_morse-rainbow-spin .7s linear}@keyframes _ngcontent-%COMP%_morse-rainbow-spin{0%{--%NS%morse-rainbow: 0deg}to{--%NS%morse-rainbow: 360deg}}.edge[_ngcontent-%COMP%]{position:absolute;left:0;right:0;height:6px;pointer-events:auto;cursor:ns-resize}.edge.top[_ngcontent-%COMP%]{top:-3px}.edge.bottom[_ngcontent-%COMP%]{bottom:-3px}.edge[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--%NS%morse-accent) 70%,transparent)}.hint[_ngcontent-%COMP%]{margin:0;padding:12px 16px;color:var(--%NS%morse-fg-muted);font-size:12px}.hint.error[_ngcontent-%COMP%]{color:var(--%NS%morse-warn)}`]})};function k$(n){return n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(n<10240?1:0)} KB`:`${(n/1048576).toFixed(1)} MB`}var I$=(n,e)=>e.value;function N$(n,e){n&1&&(g(0,`p`,1),u(1),_()),n&2&&(d(),I(e))}function P$(n,e){if(n&1){let t=L();g(0,`button`,4),F(`click`,function(){let o=D(t).$implicit;return T(f(3).choose(o.value))}),u(1),_()}if(n&2){let t=e.$implicit;d(),ie(` `,t.label,` `)}}function O$(n,e){if(n&1&&(E(0,N$,2,1,`p`,1),g(1,`div`,2),X(2,P$,2,1,`button`,3,I$),_()),n&2){let t,i=f(),o=f();S((t=o.messageOf(i))?0:-1,t),d(2),J(o.optionsOf(i))}}function A$(n,e){if(n&1){let t=L();g(0,`p`),u(1),_(),g(2,`div`,2)(3,`button`,5),F(`click`,function(){D(t);return T(f(2).decide(!0))}),u(4,`Yes`),_(),g(5,`button`,4),F(`click`,function(){D(t);return T(f(2).decide(!1))}),u(6,`No`),_()()}if(n&2){let t=f(),i=f();d(),I(i.messageOf(t))}}function R$(n,e){if(n&1){let t=L();g(0,`input`,6),F(`input`,function(o){D(t);return T(f(2).onInput(o))}),_(),g(1,`div`,2)(2,`button`,5),F(`click`,function(){D(t);return T(f(2).submit())}),u(3,`Submit`),_(),g(4,`button`,4),F(`click`,function(){D(t);return T(f(2).cancel())}),u(5,`Cancel`),_()()}if(n&2){let t=f(),i=f();te(`value`,i.value()||i.prefillOf(t))(`placeholder`,i.placeholderOf(t))}}function L$(n,e){if(n&1){let t=L();g(0,`textarea`,7),F(`input`,function(o){D(t);return T(f(2).onInput(o))}),_(),g(1,`div`,2)(2,`button`,5),F(`click`,function(){D(t);return T(f(2).submit())}),u(3,`Submit`),_(),g(4,`button`,4),F(`click`,function(){D(t);return T(f(2).cancel())}),u(5,`Cancel`),_()()}if(n&2){let t=f(),i=f();te(`value`,i.value()||i.prefillOf(t))}}function F$(n,e){if(n&1&&(g(0,`section`,0)(1,`header`),u(2),_(),E(3,O$,4,1)(4,A$,7,1)(5,R$,6,2)(6,L$,6,1),_()),n&2){let t,i=e;d(2),I(i.title),d(),S((t=i.kind)===`select`?3:t===`confirm`?4:t===`input`?5:t===`editor`?6:-1)}}var ef=class n{morse=w(Ie);request=this.morse.pendingInteraction;value=N(``);visible=C(()=>this.request()!==null&&this.morse.capabilities()?.nativeDialogs!==!0);onInput(e){this.value.set(e.target.value)}choose(e){this.respond({value:e})}decide(e){this.respond({confirmed:e})}submit(){this.respond({value:this.value()}),this.value.set(``)}cancel(){this.respond({cancelled:!0}),this.value.set(``)}messageOf(e){return e.kind===`select`||e.kind===`confirm`?e.message??``:``}optionsOf(e){return e.kind===`select`?e.options:[]}placeholderOf(e){return e.kind===`input`?e.placeholder??``:``}prefillOf(e){return e.kind===`editor`||e.kind===`input`?e.value??``:``}respond(e){let t=this.request();t&&this.morse.respond(r({requestId:t.requestId},e))}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-interaction-panel`]],decls:1,vars:1,consts:[[`role`,`dialog`,`aria-live`,`polite`,1,`dialog`],[1,`muted`],[1,`options`],[`type`,`button`,1,`secondary`],[`type`,`button`,1,`secondary`,3,`click`],[`type`,`button`,3,`click`],[`type`,`text`,3,`input`,`value`,`placeholder`],[`rows`,`5`,3,`input`,`value`]],template:function(t,i){if(t&1&&E(0,F$,7,2,`section`,0),t&2){let o;S((o=i.visible()&&i.request())?0:-1,o)}},styles:[`.dialog[_ngcontent-%COMP%]{margin:8px;padding:8px 10px;border:1px solid var(--%NS%morse-focus);border-radius:4px;background:var(--%NS%morse-blockquote);display:flex;flex-direction:column;gap:8px}header[_ngcontent-%COMP%]{font-weight:600}p[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap}.options[_ngcontent-%COMP%]{display:flex;gap:6px;flex-wrap:wrap}`]})};var by=`morse.panel.height`;var oD=`morse.panel.expanded`;var rD=`morse.panel.full`;var cD=`morse.panel.view`;var V$=120;var j$=900;var xy=260;function sD(n){try{return globalThis.localStorage?.getItem(n)===`1`}catch{return!1}}function aD(n,e){try{globalThis.localStorage?.setItem(n,e?`1`:`0`)}catch{}}function B$(){try{return globalThis.localStorage?.getItem(cD)??void 0}catch{return}}function lD(n){try{globalThis.localStorage?.setItem(cD,n)}catch{}}function dD(n){return Math.round(Math.min(j$,Math.max(V$,n)))}function $$(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.view,i=e.height;return r(s(r({},typeof t==`string`&&t.length>0?{view:t}:{}),{expanded:e.expanded===!0,full:e.full===!0}),typeof i==`number`&&Number.isFinite(i)?{height:i}:{})}function H$(){try{let n=globalThis.localStorage?.getItem(by);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?dD(e):void 0}catch{return}}function z$(n){try{globalThis.localStorage?.setItem(by,String(n))}catch{}}var ao=class n{active=N(B$());open=N(sD(oD));heightSignal=N(H$());fullSignal=N(sD(rD));registered=N({});activeView=this.active.asReadonly();expanded=this.open.asReadonly();height=this.heightSignal.asReadonly();full=C(()=>this.fullSignal()&&this.open());actions=C(()=>{let e=this.active();return e===void 0?[]:this.registered()[e]??[]});registerActions(e,t){this.registered.update(i=>s(r({},i),{[e]:t}))}clearActions(e){this.registered.update(t=>{if(!(e in t))return t;let i=r({},t);return delete i[e],i})}toggle(e){if(this.active()===e&&this.open()){this.setExpanded(!1);return}this.active.set(e),lD(e),this.setExpanded(!0)}collapse(){this.setExpanded(!1)}toggleFull(){this.open()&&this.setFull(!this.fullSignal())}setHeight(e,t=!0){let i=dD(e);this.heightSignal.set(i),t&&z$(i)}resetHeight(){this.heightSignal.set(void 0);try{globalThis.localStorage?.removeItem(by)}catch{}}snapshot(){return r(s(r({},this.active()!==void 0?{view:this.active()}:{}),{expanded:this.open(),full:this.fullSignal()}),this.heightSignal()!==void 0?{height:this.heightSignal()}:{})}restore(e){let t=$$(e);t!==void 0&&(t.view!==void 0&&(this.active.set(t.view),lD(t.view)),this.setExpanded(t.expanded),this.setFull(t.expanded&&t.full),t.height!==void 0&&this.setHeight(t.height))}setExpanded(e){this.open.set(e),aD(oD,e),e||this.setFull(!1)}setFull(e){this.fullSignal.set(e),aD(rD,e)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var U$=[`screen`];function G$(n,e){if(n&1){let t=L();g(0,`button`,3),F(`click`,function(){D(t);return T(f().restart())}),u(1,`Restart`),_()}}var tf=class n{morse=w(Ie);destroyRef=w(He);screen=Ue(`screen`);id=se.required();cwd=se(void 0);titleChange=je();term;fit;observer;destroyed=!1;ended=N(void 0);constructor(){let e=this.morse.onTerminalOutput(i=>{i.terminalId===this.id()&&this.term?.write(i.data)}),t=this.morse.onTerminalExit(i=>{i.terminalId===this.id()&&this.showExit(i.code,i.error)});this.destroyRef.onDestroy(()=>{this.destroyed=!0,e(),t(),this.observer?.disconnect(),this.term?.dispose(),this.morse.closeTerminal(this.id())}),An(()=>{this.start()})}async start(){let e=this.screen()?.nativeElement;if(e===void 0)return;let[t,i]=await Promise.all([Cy(import(`./chunk-veepV9dF.js`)),Cy(import(`./chunk-Dk_j780x.js`))]);if(this.destroyed)return;let o=new t.Terminal({cursorBlink:!0,fontFamily:this.monoFont(),fontSize:12,lineHeight:1.2,scrollback:5e3,theme:this.theme()}),r=new i.FitAddon;o.loadAddon(r),o.open(e),this.term=o,this.fit=r,this.enableWebgl(o),o.onData(s=>this.morse.sendTerminal(this.id(),s)),o.onResize(({cols:s,rows:a})=>this.morse.resizeTerminal(this.id(),s,a)),o.onTitleChange(s=>this.titleChange.emit(s)),this.fitNow(),this.morse.openTerminal(this.id(),{cwd:this.cwd(),cols:o.cols,rows:o.rows}),o.focus(),typeof ResizeObserver<`u`&&(this.observer=new ResizeObserver(()=>this.fitNow()),this.observer.observe(e))}async enableWebgl(e){try{let{WebglAddon:t}=await Cy(import(`./chunk-CwVAC7xx.js`));if(this.destroyed||this.term!==e)return;let i=new t;e.loadAddon(i),i.onContextLoss(()=>i.dispose())}catch{}}restart(){this.ended.set(void 0),this.term?.write(`\r
|
|
114
|
+
`).length;return Array.from({length:t},(i,o)=>o+1)});highlighted=C(()=>{let e=this.tab();return e.content===void 0||e.binary?this.sanitizer.bypassSecurityTrustHtml(``):this.sanitizer.bypassSecurityTrustHtml(Ea(this.source(),e.language).html)});language=C(()=>this.tab().language??`text`);size=C(()=>k$(this.tab().size??0));changed=C(()=>yp(this.workspace.status()).get(this.tab().path));diffable=C(()=>this.changed()!==void 0||this.tab().commitHash!==void 0);mode=C(()=>this.diffable()?this.tab().commitHash!==void 0?this.display.diffView()===`split`?`split`:`unified`:this.display.diffView():`file`);diffText=C(()=>{let e=this.tab();return e.diff!==void 0&&e.diff.trim().length>0?e.diff:this.changed()===`U`&&e.content!==void 0&&!e.binary?nD(e.content):e.diff??``});parsed=C(()=>JS(this.diffText()));unified=C(()=>eD(this.parsed()));split=C(()=>tD(this.parsed()));unifiedView=C(()=>{let e=this.language();return this.unified().map(t=>s(r({},t),{html:t.kind===`hunk`?``:this.sanitizer.bypassSecurityTrustHtml(Ea(t.text,e).html)}))});splitView=C(()=>{let e=this.language(),t=i=>i===void 0?void 0:s(r({},i),{html:this.sanitizer.bypassSecurityTrustHtml(Ea(i.text,e).html)});return this.split().map(i=>({hunk:i.hunk,left:t(i.left),right:t(i.right)}))});diffStats=C(()=>{let e=this.parsed();return`+${e.additions} \u2212${e.deletions}`});lineHeight=N(M$);selected=N(void 0);editingId=N(void 0);mergedId=N(void 0);anchor=1;rangeLabel=C(()=>iD(this.selected()));highlights=C(()=>{let e=this.tab().path,t=this.editingId(),i=this.attachments.pins().filter(r=>r.path===e&&r.startLine!==void 0&&r.id!==t).map(r=>({id:r.id,start:r.startLine,end:r.endLine??r.startLine})),o=this.selected();return o===void 0?i:[...i,{id:`live`,start:o.start,end:o.end}]});pinnedCount=C(()=>this.highlights().filter(e=>e.id!==`live`).length);topOf(e){return(e.start-1)*this.lineHeight()}heightOf(e){return(e.end-e.start+1)*this.lineHeight()}constructor(){An(()=>this.measureLineHeight()),ne(()=>{this.tab(),zn(()=>this.selected.set(void 0))}),ne(()=>{if(this.mode()===`file`)return;let e=this.tab().id;zn(()=>this.tabs.loadDiff(e))})}setMode(e){this.display.setDiffView(e)}diffSign(e){if(e===void 0)return``;switch(e.kind){case`add`:return`+`;case`del`:return`−`;case`context`:return` `;default:return``}}isChangePinned(e){if(e===void 0)return!1;let t=this.tab().path;return this.attachments.pins().some(i=>i.path===t&&i.startLine!==void 0&&e>=i.startLine&&e<=(i.endLine??i.startLine))}toggleChange(e){let t=e!==void 0&&e.kind!==`hunk`?e.change:void 0;if(t===void 0)return;let i=this.tab().path,o=this.attachments.pins().find(r=>r.path===i&&r.startLine!==void 0&&r.startLine<=t.start&&(r.endLine??r.startLine)>=t.end);if(o!==void 0){this.attachments.removePin(o.id);return}this.attachments.pin({path:i,startLine:t.start,endLine:t.end>t.start?t.end:void 0}),this.attachments.say(`info`,`Pinned ${this.tab().title} ${iD(t)} to this message.`)}isSelected(e){return this.highlights().some(t=>e>=t.start&&e<=t.end)}startSelection(e,t){if(e.button!==0)return;e.preventDefault(),this.anchor=t,this.editingId.set(this.highlights().find(s=>s.id!==`live`&&t>=s.start&&t<=s.end)?.id),this.selected.set({start:t,end:t});let i=e.currentTarget;try{i.setPointerCapture(e.pointerId)}catch{}let o=s=>{let a=this.lineAt(s.clientY);a!==void 0&&this.selected.set({start:Math.min(this.anchor,a),end:Math.max(this.anchor,a)})},r=()=>{i.removeEventListener(`pointermove`,o),i.removeEventListener(`pointerup`,r),i.removeEventListener(`pointercancel`,r),this.pinSelection()};i.addEventListener(`pointermove`,o),i.addEventListener(`pointerup`,r),i.addEventListener(`pointercancel`,r)}clearSelection(){this.selected.set(void 0),this.editingId.set(void 0)}reload(){this.tabs.reload(this.tab().id)}startResizeEdge(e,t,i){if(e.button!==0)return;e.preventDefault(),e.stopPropagation();let o=e.currentTarget;try{o.setPointerCapture(e.pointerId)}catch{}let r=a=>{let l=this.lineAt(a.clientY);if(l===void 0)return;let c=this.attachments.pins().find(k=>k.id===t.id),p=c?.startLine??t.start,m=c?.endLine??p,v=i===`start`?Math.min(l,m):p,b=i===`end`?Math.max(l,p):m;this.attachments.setPinRange(t.id,{startLine:v,endLine:b>v?b:void 0})},s=()=>{o.removeEventListener(`pointermove`,r),o.removeEventListener(`pointerup`,s),o.removeEventListener(`pointercancel`,s);let a=this.attachments.pins().find(l=>l.id===t.id);if(a?.startLine!==void 0){let l=this.attachments.pins().length,c=this.attachments.pin({path:this.tab().path,startLine:a.startLine,endLine:a.endLine},t.id);this.attachments.pins().length<l&&this.celebrate(c,{start:a.startLine,end:a.endLine??a.startLine})}};o.addEventListener(`pointermove`,r),o.addEventListener(`pointerup`,s),o.addEventListener(`pointercancel`,s)}measureLineHeight(){let e=this.sourceElement()?.nativeElement;if(e===void 0)return;let t=Number.parseFloat(getComputedStyle(e).lineHeight);Number.isFinite(t)&&t>0&&this.lineHeight.set(t)}lineAt(e){let t=this.gutterElement()?.nativeElement;if(t===void 0)return;let i=t.getBoundingClientRect().top,o=Math.floor((e-i)/this.lineHeight())+1;return Math.min(this.lines().length,Math.max(1,o))}pinSelection(){let e=this.selected();if(e===void 0)return;let t=e.end>e.start?e.end:void 0,i=this.attachments.pins().length,o=this.attachments.pin({path:this.tab().path,startLine:e.start,endLine:t},this.editingId());this.attachments.pins().length<i&&this.celebrate(o,{start:e.start,end:e.end}),this.attachments.say(`info`,`Pinned ${this.tab().title} ${this.rangeLabel()} to this message.`),this.selected.set(void 0),this.editingId.set(void 0)}celebrate(e,t){if(e.length===0)return;this.mergedId.set(e),setTimeout(()=>{this.mergedId()===e&&this.mergedId.set(void 0)},720);let i=this.attachments.pins().find(c=>c.id===e),o=this.sourceElement()?.nativeElement.closest(`.source-wrap`);if(i?.startLine===void 0||!(o instanceof HTMLElement))return;let r=i.startLine,s=i.endLine??r,a=this.lineHeight(),l=s>t.end?t.end*a:r<t.start?(t.start-1)*a:((t.start+t.end)/2-.5)*a;this.animation.confetti(o,{x:o.clientWidth/2,y:l})}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-file-preview`]],viewQuery:function(t,i){t&1&&nt(i.sourceElement,JB,5)(i.gutterElement,e$,5),t&2&&ot(2)},inputs:{tab:[1,`tab`]},decls:19,vars:8,consts:[[`gutter`,``],[`source`,``],[1,`head`],[1,`path`,3,`title`],[1,`commit-ref`,3,`title`],[1,`meta`],[1,`range`,3,`title`],[1,`badge`],[1,`stat`],[`type`,`button`,`title`,`Reload from disk`,`aria-label`,`Reload from disk`,1,`icon`,3,`click`],[1,`hint`],[1,`hint`,`error`],[`role`,`group`,`aria-label`,`Preview mode`,1,`modes`],[`type`,`button`,`title`,`The file's content`,3,`on`],[`type`,`button`,`title`,`Unified diff`,3,`click`],[`type`,`button`,`title`,`Side-by-side diff`,3,`click`],[`type`,`button`,`title`,`The file's content`,3,`click`],[1,`diff`,`split`],[1,`diff`],[1,`drow`,`hunk`],[1,`srow`],[1,`dtext`],[1,`side`,3,`click`],[1,`dnum`],[1,`dsign`],[1,`dtext`,3,`innerHTML`],[1,`drow`,3,`add`,`del`,`clickable`,`pinned`],[1,`drow`,3,`click`],[1,`code`],[`title`,`Drag line numbers to pin a range to your next message`,1,`gutter`],[1,`num`,3,`selected`],[1,`source-wrap`],[1,`source`],[1,`hljs`,3,`innerHTML`],[1,`selection`,3,`merged`,`top`,`height`],[1,`num`,3,`pointerdown`],[1,`selection`],[`title`,`Drag to resize`,`aria-hidden`,`true`,1,`edge`,`top`,3,`pointerdown`],[`title`,`Drag to resize`,`aria-hidden`,`true`,1,`edge`,`bottom`,3,`pointerdown`]],template:function(t,i){if(t&1&&(g(0,`header`,2)(1,`span`,3),u(2),_(),E(3,n$,2,2,`span`,4),g(4,`div`,5),E(5,r$,7,6),E(6,s$,2,2,`span`,6)(7,a$,2,2,`span`,6),g(8,`span`,7),u(9),_(),g(10,`span`,8),u(11),_(),g(12,`button`,9),F(`click`,function(){return i.reload()}),u(13,` ⟳ `),_()()(),E(14,b$,6,1)(15,x$,2,1,`p`,10)(16,C$,2,1,`p`,11)(17,w$,2,1,`p`,10)(18,T$,12,2)),t&2){let o,r,s;d(),te(`title`,i.tab().path),d(),I(i.tab().path),d(),S((o=i.tab().commitHash)?3:-1,o),d(2),S(i.diffable()?5:-1),d(),S((r=i.rangeLabel())?6:i.pinnedCount()>0?7:-1,r),d(3),I(i.language()),d(2),I(i.size()),d(3),S(i.mode()!==`file`?14:i.tab().loading?15:(s=i.tab().error)?16:i.tab().binary?17:18,s)}},styles:[`[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1;min-height:0;min-width:0}.head[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex:none;min-height:var(--%NS%morse-head-height);padding:0 10px 0 14px;border-bottom:1px solid var(--%NS%morse-border)}.path[_ngcontent-%COMP%]{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--%NS%morse-font-mono);font-size:12px;color:var(--%NS%morse-fg)}.commit-ref[_ngcontent-%COMP%]{flex:none;padding:0 6px;border-radius:4px;background:color-mix(in srgb,var(--%NS%morse-fg-muted) 12%,transparent);color:var(--%NS%morse-fg-muted);font-family:var(--%NS%morse-font-mono);font-size:10px;line-height:16px}.meta[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;flex:none}.badge[_ngcontent-%COMP%]{padding:1px 6px;border-radius:999px;background:var(--%NS%morse-badge-bg, var(--%NS%morse-hover));color:var(--%NS%morse-fg-muted);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em}.stat[_ngcontent-%COMP%]{color:var(--%NS%morse-fg-muted);font-size:11px}.range[_ngcontent-%COMP%]{padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--%NS%morse-accent) 22%,transparent);color:var(--%NS%morse-fg);font-size:11px;font-variant-numeric:tabular-nums}.icon[_ngcontent-%COMP%]{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:var(--%NS%morse-radius-sm);background:none;color:var(--%NS%morse-fg-muted);cursor:pointer}.icon[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.modes[_ngcontent-%COMP%]{display:inline-flex;flex:none;border:1px solid var(--%NS%morse-border);border-radius:var(--%NS%morse-radius-sm);overflow:hidden}.modes[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{padding:2px 8px;border:0;background:transparent;color:var(--%NS%morse-fg-muted);font:inherit;font-size:11px;cursor:pointer}.modes[_ngcontent-%COMP%] button[_ngcontent-%COMP%] + button[_ngcontent-%COMP%]{border-left:1px solid var(--%NS%morse-border)}.modes[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover:not(:disabled){background:var(--%NS%morse-hover);color:var(--%NS%morse-fg)}.modes[_ngcontent-%COMP%] button.on[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-accent) 24%,transparent);color:var(--%NS%morse-fg)}.diff[_ngcontent-%COMP%]{flex:1;min-height:0;overflow:auto;padding:6px 0;background:var(--%NS%morse-code-bg, var(--%NS%morse-bg));font-family:var(--%NS%morse-font-mono);font-size:12px;line-height:1.6}.drow[_ngcontent-%COMP%], .srow[_ngcontent-%COMP%]{display:flex;align-items:stretch;min-height:1.6em}.dtext[_ngcontent-%COMP%]{flex:1;min-width:0;padding:0 16px 0 6px;white-space:pre-wrap;overflow-wrap:anywhere}.dnum[_ngcontent-%COMP%]{flex:none;min-width:44px;padding:0 8px 0 10px;color:var(--%NS%morse-fg-muted);text-align:right;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;opacity:.7}.dsign[_ngcontent-%COMP%]{flex:none;width:14px;text-align:center;color:var(--%NS%morse-fg-muted);-webkit-user-select:none;user-select:none}.drow.add[_ngcontent-%COMP%], .side.add[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-success) 14%,transparent)}.drow.del[_ngcontent-%COMP%], .side.del[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-error) 14%,transparent)}.drow.add[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%], .side.add[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%]{color:var(--%NS%morse-success)}.drow.del[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%], .side.del[_ngcontent-%COMP%] .dsign[_ngcontent-%COMP%]{color:var(--%NS%morse-error)}.drow.clickable[_ngcontent-%COMP%], .side.clickable[_ngcontent-%COMP%]{cursor:pointer}.drow.clickable[_ngcontent-%COMP%]:hover, .side.clickable[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--%NS%morse-accent) 12%,transparent)}.drow.pinned[_ngcontent-%COMP%], .side.pinned[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--%NS%morse-accent) 22%,transparent);box-shadow:inset 2px 0 color-mix(in srgb,var(--%NS%morse-accent) 70%,transparent)}.drow.hunk[_ngcontent-%COMP%]{margin:6px 0 2px;padding:2px 12px;background:var(--%NS%morse-code-head, var(--%NS%morse-hover));color:var(--%NS%morse-fg-muted)}.srow[_ngcontent-%COMP%] .side[_ngcontent-%COMP%]{flex:1 1 50%;min-width:0;display:flex;align-items:stretch;border-left:1px solid var(--%NS%morse-border)}.srow[_ngcontent-%COMP%] .side[_ngcontent-%COMP%]:first-child{border-left:0}.code[_ngcontent-%COMP%]{display:flex;flex:1;min-height:0;overflow:auto;padding:8px 0;background:var(--%NS%morse-code-bg, var(--%NS%morse-bg))}pre[_ngcontent-%COMP%], .gutter[_ngcontent-%COMP%]{margin:0;font-family:var(--%NS%morse-font-mono);font-size:12px;line-height:1.6}.gutter[_ngcontent-%COMP%]{flex:none;position:sticky;left:0;z-index:2;padding:0 10px 0 14px;color:var(--%NS%morse-fg-muted);text-align:right;-webkit-user-select:none;user-select:none;background:var(--%NS%morse-code-bg, var(--%NS%morse-bg));opacity:.7}.gutter[_ngcontent-%COMP%] .num[_ngcontent-%COMP%]{display:block;height:1.6em;cursor:pointer;font-variant-numeric:tabular-nums}.gutter[_ngcontent-%COMP%] .num.selected[_ngcontent-%COMP%]{color:var(--%NS%morse-fg);background:color-mix(in srgb,var(--%NS%morse-accent) 34%,transparent);opacity:1}.source-wrap[_ngcontent-%COMP%]{position:relative;flex:1;min-width:0}.source[_ngcontent-%COMP%]{position:relative;z-index:1;padding:0 16px 0 4px;white-space:pre}.selection[_ngcontent-%COMP%]{position:absolute;left:0;right:0;z-index:2;pointer-events:none;background:color-mix(in srgb,var(--%NS%morse-accent) 16%,transparent);border-left:2px solid color-mix(in srgb,var(--%NS%morse-accent) 70%,transparent)}.selection.merged[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_selection-merged .62s ease-out}@keyframes _ngcontent-%COMP%_selection-merged{0%{background:color-mix(in srgb,var(--%NS%morse-accent) 60%,transparent);box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--%NS%morse-accent) 80%,transparent)}to{background:color-mix(in srgb,var(--%NS%morse-accent) 16%,transparent);box-shadow:inset 0 0 0 0 transparent}}@property --%NS%morse-rainbow{syntax: "<angle>"; initial-value: 0deg; inherits: false;}.selection.merged[_ngcontent-%COMP%]:after{content:"";position:absolute;inset:0;border-radius:3px;padding:2px;background:conic-gradient(from var(--%NS%morse-rainbow),#f43f5e,#fb923c,#facc15,#4ade80,#38bdf8,#a78bfa,#f43f5e);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none;animation:_ngcontent-%COMP%_morse-rainbow-spin .7s linear}@keyframes _ngcontent-%COMP%_morse-rainbow-spin{0%{--%NS%morse-rainbow: 0deg}to{--%NS%morse-rainbow: 360deg}}.edge[_ngcontent-%COMP%]{position:absolute;left:0;right:0;height:6px;pointer-events:auto;cursor:ns-resize}.edge.top[_ngcontent-%COMP%]{top:-3px}.edge.bottom[_ngcontent-%COMP%]{bottom:-3px}.edge[_ngcontent-%COMP%]:hover{background:color-mix(in srgb,var(--%NS%morse-accent) 70%,transparent)}.hint[_ngcontent-%COMP%]{margin:0;padding:12px 16px;color:var(--%NS%morse-fg-muted);font-size:12px}.hint.error[_ngcontent-%COMP%]{color:var(--%NS%morse-warn)}`]})};function k$(n){return n<1024?`${n} B`:n<1048576?`${(n/1024).toFixed(n<10240?1:0)} KB`:`${(n/1048576).toFixed(1)} MB`}var I$=(n,e)=>e.value;function N$(n,e){n&1&&(g(0,`p`,1),u(1),_()),n&2&&(d(),I(e))}function P$(n,e){if(n&1){let t=L();g(0,`button`,4),F(`click`,function(){let o=D(t).$implicit;return T(f(3).choose(o.value))}),u(1),_()}if(n&2){let t=e.$implicit;d(),ie(` `,t.label,` `)}}function O$(n,e){if(n&1&&(E(0,N$,2,1,`p`,1),g(1,`div`,2),X(2,P$,2,1,`button`,3,I$),_()),n&2){let t,i=f(),o=f();S((t=o.messageOf(i))?0:-1,t),d(2),J(o.optionsOf(i))}}function A$(n,e){if(n&1){let t=L();g(0,`p`),u(1),_(),g(2,`div`,2)(3,`button`,5),F(`click`,function(){D(t);return T(f(2).decide(!0))}),u(4,`Yes`),_(),g(5,`button`,4),F(`click`,function(){D(t);return T(f(2).decide(!1))}),u(6,`No`),_()()}if(n&2){let t=f(),i=f();d(),I(i.messageOf(t))}}function R$(n,e){if(n&1){let t=L();g(0,`input`,6),F(`input`,function(o){D(t);return T(f(2).onInput(o))}),_(),g(1,`div`,2)(2,`button`,5),F(`click`,function(){D(t);return T(f(2).submit())}),u(3,`Submit`),_(),g(4,`button`,4),F(`click`,function(){D(t);return T(f(2).cancel())}),u(5,`Cancel`),_()()}if(n&2){let t=f(),i=f();te(`value`,i.value()||i.prefillOf(t))(`placeholder`,i.placeholderOf(t))}}function L$(n,e){if(n&1){let t=L();g(0,`textarea`,7),F(`input`,function(o){D(t);return T(f(2).onInput(o))}),_(),g(1,`div`,2)(2,`button`,5),F(`click`,function(){D(t);return T(f(2).submit())}),u(3,`Submit`),_(),g(4,`button`,4),F(`click`,function(){D(t);return T(f(2).cancel())}),u(5,`Cancel`),_()()}if(n&2){let t=f(),i=f();te(`value`,i.value()||i.prefillOf(t))}}function F$(n,e){if(n&1&&(g(0,`section`,0)(1,`header`),u(2),_(),E(3,O$,4,1)(4,A$,7,1)(5,R$,6,2)(6,L$,6,1),_()),n&2){let t,i=e;d(2),I(i.title),d(),S((t=i.kind)===`select`?3:t===`confirm`?4:t===`input`?5:t===`editor`?6:-1)}}var ef=class n{morse=w(Ie);request=this.morse.pendingInteraction;value=N(``);visible=C(()=>this.request()!==null&&this.morse.capabilities()?.nativeDialogs!==!0);onInput(e){this.value.set(e.target.value)}choose(e){this.respond({value:e})}decide(e){this.respond({confirmed:e})}submit(){this.respond({value:this.value()}),this.value.set(``)}cancel(){this.respond({cancelled:!0}),this.value.set(``)}messageOf(e){return e.kind===`select`||e.kind===`confirm`?e.message??``:``}optionsOf(e){return e.kind===`select`?e.options:[]}placeholderOf(e){return e.kind===`input`?e.placeholder??``:``}prefillOf(e){return e.kind===`editor`||e.kind===`input`?e.value??``:``}respond(e){let t=this.request();t&&this.morse.respond(r({requestId:t.requestId},e))}static ɵfac=function(t){return new(t||n)};static ɵcmp=re({type:n,selectors:[[`morse-interaction-panel`]],decls:1,vars:1,consts:[[`role`,`dialog`,`aria-live`,`polite`,1,`dialog`],[1,`muted`],[1,`options`],[`type`,`button`,1,`secondary`],[`type`,`button`,1,`secondary`,3,`click`],[`type`,`button`,3,`click`],[`type`,`text`,3,`input`,`value`,`placeholder`],[`rows`,`5`,3,`input`,`value`]],template:function(t,i){if(t&1&&E(0,F$,7,2,`section`,0),t&2){let o;S((o=i.visible()&&i.request())?0:-1,o)}},styles:[`.dialog[_ngcontent-%COMP%]{margin:8px;padding:8px 10px;border:1px solid var(--%NS%morse-focus);border-radius:4px;background:var(--%NS%morse-blockquote);display:flex;flex-direction:column;gap:8px}header[_ngcontent-%COMP%]{font-weight:600}p[_ngcontent-%COMP%]{margin:0;white-space:pre-wrap}.options[_ngcontent-%COMP%]{display:flex;gap:6px;flex-wrap:wrap}`]})};var by=`morse.panel.height`;var oD=`morse.panel.expanded`;var rD=`morse.panel.full`;var cD=`morse.panel.view`;var V$=120;var j$=900;var xy=260;function sD(n){try{return globalThis.localStorage?.getItem(n)===`1`}catch{return!1}}function aD(n,e){try{globalThis.localStorage?.setItem(n,e?`1`:`0`)}catch{}}function B$(){try{return globalThis.localStorage?.getItem(cD)??void 0}catch{return}}function lD(n){try{globalThis.localStorage?.setItem(cD,n)}catch{}}function dD(n){return Math.round(Math.min(j$,Math.max(V$,n)))}function $$(n){if(typeof n!=`object`||n===null)return;let e=n,t=e.view,i=e.height;return r(s(r({},typeof t==`string`&&t.length>0?{view:t}:{}),{expanded:e.expanded===!0,full:e.full===!0}),typeof i==`number`&&Number.isFinite(i)?{height:i}:{})}function H$(){try{let n=globalThis.localStorage?.getItem(by);if(n==null)return;let e=Number.parseInt(n,10);return Number.isFinite(e)?dD(e):void 0}catch{return}}function z$(n){try{globalThis.localStorage?.setItem(by,String(n))}catch{}}var ao=class n{active=N(B$());open=N(sD(oD));heightSignal=N(H$());fullSignal=N(sD(rD));registered=N({});activeView=this.active.asReadonly();expanded=this.open.asReadonly();height=this.heightSignal.asReadonly();full=C(()=>this.fullSignal()&&this.open());actions=C(()=>{let e=this.active();return e===void 0?[]:this.registered()[e]??[]});registerActions(e,t){this.registered.update(i=>s(r({},i),{[e]:t}))}clearActions(e){this.registered.update(t=>{if(!(e in t))return t;let i=r({},t);return delete i[e],i})}toggle(e){if(this.active()===e&&this.open()){this.setExpanded(!1);return}this.active.set(e),lD(e),this.setExpanded(!0)}collapse(){this.setExpanded(!1)}toggleFull(){this.open()&&this.setFull(!this.fullSignal())}setHeight(e,t=!0){let i=dD(e);this.heightSignal.set(i),t&&z$(i)}resetHeight(){this.heightSignal.set(void 0);try{globalThis.localStorage?.removeItem(by)}catch{}}snapshot(){return r(s(r({},this.active()!==void 0?{view:this.active()}:{}),{expanded:this.open(),full:this.fullSignal()}),this.heightSignal()!==void 0?{height:this.heightSignal()}:{})}restore(e){let t=$$(e);t!==void 0&&(t.view!==void 0&&(this.active.set(t.view),lD(t.view)),this.setExpanded(t.expanded),this.setFull(t.expanded&&t.full),t.height!==void 0&&this.setHeight(t.height))}setExpanded(e){this.open.set(e),aD(oD,e),e||this.setFull(!1)}setFull(e){this.fullSignal.set(e),aD(rD,e)}static ɵfac=function(t){return new(t||n)};static ɵprov=ue({token:n,factory:n.ɵfac,providedIn:`root`})};var U$=[`screen`];function G$(n,e){if(n&1){let t=L();g(0,`button`,3),F(`click`,function(){D(t);return T(f().restart())}),u(1,`Restart`),_()}}var tf=class n{morse=w(Ie);destroyRef=w(He);screen=Ue(`screen`);id=se.required();cwd=se(void 0);titleChange=je();term;fit;observer;destroyed=!1;ended=N(void 0);constructor(){let e=this.morse.onTerminalOutput(i=>{i.terminalId===this.id()&&this.term?.write(i.data)}),t=this.morse.onTerminalExit(i=>{i.terminalId===this.id()&&this.showExit(i.code,i.error)});this.destroyRef.onDestroy(()=>{this.destroyed=!0,e(),t(),this.observer?.disconnect(),this.term?.dispose(),this.morse.closeTerminal(this.id())}),An(()=>{this.start()})}async start(){let e=this.screen()?.nativeElement;if(e===void 0)return;let[t,i]=await Promise.all([Cy(import(`./chunk-fviAHFag.js`)),Cy(import(`./chunk-BLn-qnxQ.js`))]);if(this.destroyed)return;let o=new t.Terminal({cursorBlink:!0,fontFamily:this.monoFont(),fontSize:12,lineHeight:1.2,scrollback:5e3,theme:this.theme()}),r=new i.FitAddon;o.loadAddon(r),o.open(e),this.term=o,this.fit=r,this.enableWebgl(o),o.onData(s=>this.morse.sendTerminal(this.id(),s)),o.onResize(({cols:s,rows:a})=>this.morse.resizeTerminal(this.id(),s,a)),o.onTitleChange(s=>this.titleChange.emit(s)),this.fitNow(),this.morse.openTerminal(this.id(),{cwd:this.cwd(),cols:o.cols,rows:o.rows}),o.focus(),typeof ResizeObserver<`u`&&(this.observer=new ResizeObserver(()=>this.fitNow()),this.observer.observe(e))}async enableWebgl(e){try{let{WebglAddon:t}=await Cy(import(`./chunk-BDxa4PZ6.js`));if(this.destroyed||this.term!==e)return;let i=new t;e.loadAddon(i),i.onContextLoss(()=>i.dispose())}catch{}}restart(){this.ended.set(void 0),this.term?.write(`\r
|
|
115
115
|
`),this.morse.openTerminal(this.id(),{cwd:this.cwd(),cols:this.term?.cols,rows:this.term?.rows}),this.term?.focus()}showExit(e,t){let i=t!==void 0?`\r
|
|
116
116
|
\x1B[31m${t}\x1B[0m\r
|
|
117
117
|
`:`\r
|