@vincenthanxiaodu/pi-web 1.202608.73 → 1.202608.74
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/client/assets/{CodeViewer-Cfmb6C4F.js → CodeViewer-uN2lxRC5.js} +1 -1
- package/dist/client/assets/{TerminalPanel-DNckhAlj.js → TerminalPanel-0M9uTUST.js} +1 -1
- package/dist/client/assets/{index-B_0Bt7Jt.js → index-CeU8-JId.js} +6 -6
- package/dist/client/index.html +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,f as t,h as n,n as r,p as i,u as a,v as o}from"./index-
|
|
1
|
+
import{_ as e,f as t,h as n,n as r,p as i,u as a,v as o}from"./index-CeU8-JId.js";import{P as s,S as c,X as l,Y as u,et as d,l as f,q as p,y as m}from"./vendor-editor-core-DVD9qHFI.js";import{c as h,l as g,n as _,o as v,r as y,s as b,t as x,u as S}from"./vendor-editor-languages-CgbLQX3u.js";import{t as C}from"./vendor-editor-legacy-CYBnW6ZU.js";var w=class extends n{constructor(...e){super(...e),this.content=``}firstUpdated(){this.recreateEditor()}updated(e){(e.has(`content`)||e.has(`language`))&&this.recreateEditor()}disconnectedCallback(){this.view?.destroy(),this.view=void 0,super.disconnectedCallback()}render(){return e`<div class="host"></div>`}recreateEditor(){this.editorHost&&(this.view?.destroy(),this.view=new p({parent:this.editorHost,state:d.create({doc:this.content,extensions:[l(),u.of(f),s(c,{fallback:!0}),d.readOnly.of(!0),p.editable.of(!1),p.lineWrapping,T,...D(this.language),...O(this.language)]})}))}static{this.styles=o`
|
|
2
2
|
:host { display: block; min-height: 0; height: 100%; }
|
|
3
3
|
.host { height: 100%; min-height: 0; overflow: auto; }
|
|
4
4
|
`}};r([t()],w.prototype,`content`,void 0),r([t()],w.prototype,`language`,void 0),r([a(`.host`)],w.prototype,`editorHost`,void 0),w=r([i(`code-viewer`)],w);var T=p.theme({"&":{height:`100%`,color:`var(--pi-text)`,backgroundColor:`var(--pi-bg)`,fontSize:`12px`},".cm-scroller":{fontFamily:`ui-monospace, SFMono-Regular, Menlo, Consolas, monospace`,lineHeight:`1.45`},".cm-gutters":{backgroundColor:`var(--pi-bg)`,color:`var(--pi-dim)`,borderRight:`1px solid var(--pi-border-muted)`},".cm-activeLineGutter":{backgroundColor:`transparent`},".cm-activeLine":{backgroundColor:`transparent`},".cm-content":{caretColor:`transparent`},"&.cm-focused":{outline:`none`}}),E=p.theme({".cm-content":{textAlign:`start`},".cm-line":{unicodeBidi:`plaintext`}});function D(e){return e===`markdown`?[p.contentAttributes.of({dir:`auto`}),E]:[]}function O(e){if(e===void 0)return[];switch(e){case`typescript`:return[S({typescript:!0})];case`javascript`:return[S()];case`json`:return[g()];case`markdown`:return[v()];case`css`:return[h()];case`html`:return[b()];case`python`:return[y()];case`rust`:return[_()];case`go`:return[x()];case`diff`:return[m.define(C)];default:return[]}}export{w as CodeViewer};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _}from"./index-
|
|
1
|
+
import{_ as e,a as t,c as n,d as r,f as i,g as a,h as o,i as s,l as c,m as l,n as u,o as d,p as f,r as p,s as m,t as h,u as g,v as _}from"./index-CeU8-JId.js";import{n as v,t as y}from"./vendor-terminal-D8k4UKM2.js";var ee=`important`,te=` !important`,ne=p(class extends s{constructor(e){if(super(e),e.type!==t.ATTRIBUTE||e.name!==`style`||e.strings?.length>2)throw Error("The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.")}render(e){return Object.keys(e).reduce((t,n)=>{let r=e[n];return r==null?t:t+`${n=n.includes(`-`)?n:n.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,`-$&`).toLowerCase()}:${r};`},``)}update(e,[t]){let{style:n}=e.element;if(this.ft===void 0)return this.ft=new Set(Object.keys(t)),this.render(t);for(let e of this.ft)t[e]??(this.ft.delete(e),e.includes(`-`)?n.removeProperty(e):n[e]=null);for(let e in t){let r=t[e];if(r!=null){this.ft.add(e);let t=typeof r==`string`&&r.endsWith(te);e.includes(`-`)||t?n.setProperty(e,t?r.slice(0,-11):r,t?ee:``):n[e]=r}}return a}}),re=`#ffffff`,ie=`#000000`,b=[`#2e3436`,`#cc0000`,`#4e9a06`,`#c4a000`,`#3465a4`,`#75507b`,`#06989a`,`#d3d7cf`,`#555753`,`#ef2929`,`#8ae234`,`#fce94f`,`#729fcf`,`#ad7fa8`,`#34e2e2`,`#eeeeec`],x=[`black`,`red`,`green`,`yellow`,`blue`,`magenta`,`cyan`,`white`,`brightBlack`,`brightRed`,`brightGreen`,`brightYellow`,`brightBlue`,`brightMagenta`,`brightCyan`,`brightWhite`],S={black:b[0],red:b[1],green:b[2],yellow:b[3],blue:b[4],magenta:b[5],cyan:b[6],white:b[7],brightBlack:b[8],brightRed:b[9],brightGreen:b[10],brightYellow:b[11],brightBlue:b[12],brightMagenta:b[13],brightCyan:b[14],brightWhite:b[15]};function C(e,t,n={}){let r=Math.max(0,Math.floor(t));if(e.length<=0||r===0)return{text:``,lines:[],physicalLineCount:0,viewportLine:0};let i=le(n.theme),a=n.theme?.foreground??re,o=n.theme?.background??ie,s=[],c=e.getNullCell(),l=-1;for(let t=0;t<e.length;t+=1){let u=e.getLine(t);if(u===void 0){s.push({text:``,runs:[],wrapped:!1});continue}let d=w(u,r,c,{palette:i,foreground:a,background:o,drawBoldTextInBrightColors:n.drawBoldTextInBrightColors!==!1});s.push(d),(d.text!==``||d.runs.some(e=>e.style.background!==o))&&(l=t)}let u=Math.min(e.length-1,Math.max(0,e.baseY+e.cursorY)),d=Math.max(l,u),f=s.slice(0,d+1),p=[];for(let e of f){let t=p.at(-1);if(e.wrapped&&t!==void 0){t.text+=e.text,se(t.runs,e.runs);continue}p.push({text:e.text,runs:e.runs.map(e=>({text:e.text,style:e.style}))})}return{text:p.map(e=>e.text).join(`
|
|
2
2
|
`),lines:p,physicalLineCount:f.length,viewportLine:Math.min(d,Math.max(0,e.viewportY))}}function w(e,t,n,r){let i=[],a=Math.min(t,e.length);for(let t=0;t<a;t+=1){let a=e.getCell(t,n);if(a===void 0){i.push({text:` `,meaningful:!1,style:oe(r)});continue}let o=a.getWidth();if(o===0)continue;let s=a.getChars();i.push({text:s===``?` `.repeat(Math.max(1,o)):s,meaningful:s!==``||!a.isAttributeDefault(),style:ae(a,r)})}let o=i.length-1;for(;o>=0&&i[o]?.meaningful!==!0;)--o;let s=[],c=``;for(let e=0;e<=o;e+=1){let t=i[e];t!==void 0&&(c+=t.text,E(s,{text:t.text,style:t.style}))}return{text:c,runs:s,wrapped:e.isWrapped}}function ae(e,t){let n=e.isInverse()!==0,r=T(e,`foreground`,t),i=T(e,`background`,t);if(n&&([r,i]=[i,r]),e.isBold()!==0&&t.drawBoldTextInBrightColors){let i=n?e.isBgPalette()?e.getBgColor():void 0:e.isFgPalette()?e.getFgColor():void 0;i!==void 0&&i>=0&&i<8&&(r=t.palette[i+8]??r)}return{foreground:r,background:i,bold:e.isBold()!==0,italic:e.isItalic()!==0,dim:e.isDim()!==0,underline:e.isUnderline()!==0,invisible:e.isInvisible()!==0,strikethrough:e.isStrikethrough()!==0,overline:e.isOverline()!==0}}function T(e,t,n){let r=t===`foreground`?e.isFgRGB():e.isBgRGB(),i=t===`foreground`?e.isFgPalette():e.isBgPalette(),a=t===`foreground`?e.getFgColor():e.getBgColor();return r?ue(a):i?n.palette[a]??(t===`foreground`?n.foreground:n.background):t===`foreground`?n.foreground:n.background}function oe(e){return{foreground:e.foreground,background:e.background,bold:!1,italic:!1,dim:!1,underline:!1,invisible:!1,strikethrough:!1,overline:!1}}function se(e,t){for(let n of t)E(e,n)}function E(e,t){if(t.text===``)return;let n=e.at(-1);if(n!==void 0&&ce(n.style,t.style)){n.text+=t.text;return}e.push({text:t.text,style:t.style})}function ce(e,t){return e.foreground===t.foreground&&e.background===t.background&&e.bold===t.bold&&e.italic===t.italic&&e.dim===t.dim&&e.underline===t.underline&&e.invisible===t.invisible&&e.strikethrough===t.strikethrough&&e.overline===t.overline}function le(e){let t=[...b];for(let n=0;n<x.length;n+=1){let r=x[n];if(r===void 0)continue;let i=e?.[r];typeof i==`string`&&(t[n]=i)}let n=[0,95,135,175,215,255];for(let e=0;e<216;e+=1){let r=n[Math.floor(e/36)%6]??0,i=n[Math.floor(e/6)%6]??0,a=n[e%6]??0;t.push(D(r,i,a))}for(let e=0;e<24;e+=1){let n=8+e*10;t.push(D(n,n,n))}for(let n=0;n<Math.min(e?.extendedAnsi?.length??0,240);n+=1){let r=e?.extendedAnsi?.[n];r!==void 0&&(t[n+16]=r)}return t}function ue(e){return`#${(e&16777215).toString(16).padStart(6,`0`)}`}function D(e,t,n){return`#${e.toString(16).padStart(2,`0`)}${t.toString(16).padStart(2,`0`)}${n.toString(16).padStart(2,`0`)}`}var O=`pi-web.terminal.softKeys`,de=`(pointer: coarse), (max-width: 760px)`;function fe(e,t){return e??t}function pe(e){if(e===`true`)return!0;if(e===`false`)return!1}function k(){return typeof window<`u`&&`matchMedia`in window?window.matchMedia(de):void 0}function A(e){return e?.matches===!0}function j(e=k()){return fe(N(),A(e))}function M(){return N()!==void 0}function N(e=F()){if(e!==void 0)try{return pe(e.getItem(O))}catch{return}}function P(e,t=F()){if(t!==void 0)try{t.setItem(O,String(e))}catch{}}function F(){if(!(typeof window>`u`))try{return window.localStorage}catch{return}}var I=[{id:`escape`,label:`Esc`,ariaLabel:`Escape`,title:`Send Escape`},{id:`tab`,label:`Tab`,ariaLabel:`Tab`,title:`Send Tab`},{id:`ctrl-c`,label:`Ctrl+C`,ariaLabel:`Control C`,title:`Interrupt the foreground process`},{id:`ctrl-d`,label:`Ctrl+D`,ariaLabel:`Control D`,title:`Send EOF / close input`},{id:`ctrl-z`,label:`Ctrl+Z`,ariaLabel:`Control Z`,title:`Suspend the foreground process`},{id:`ctrl-l`,label:`Ctrl+L`,ariaLabel:`Control L`,title:`Clear / redraw the terminal`},{id:`ctrl-r`,label:`Ctrl+R`,ariaLabel:`Control R`,title:`Reverse search history`},{id:`ctrl-u`,label:`Ctrl+U`,ariaLabel:`Control U`,title:`Delete to the start of the line`},{id:`ctrl-w`,label:`Ctrl+W`,ariaLabel:`Control W`,title:`Delete the previous word`},{id:`arrow-left`,label:`←`,ariaLabel:`Left arrow`,title:`Move left`},{id:`arrow-up`,label:`↑`,ariaLabel:`Up arrow`,title:`Move up / previous command`},{id:`arrow-down`,label:`↓`,ariaLabel:`Down arrow`,title:`Move down / next command`},{id:`arrow-right`,label:`→`,ariaLabel:`Right arrow`,title:`Move right`},{id:`home`,label:`Home`,ariaLabel:`Home`,title:`Move to the start`},{id:`end`,label:`End`,ariaLabel:`End`,title:`Move to the end`},{id:`page-up`,label:`PgUp`,ariaLabel:`Page up`,title:`Page up`},{id:`page-down`,label:`PgDn`,ariaLabel:`Page down`,title:`Page down`},{id:`delete`,label:`Del`,ariaLabel:`Delete`,title:`Delete forward`},{id:`backspace`,label:`⌫`,ariaLabel:`Backspace`,title:`Backspace`},{id:`meta-backward-word`,label:`M-B`,ariaLabel:`Meta B`,title:`Move backward one word`},{id:`meta-forward-word`,label:`M-F`,ariaLabel:`Meta F`,title:`Move forward one word`}],L=`\x1B`,R=``;function z(e,t){switch(e){case`escape`:return L;case`tab`:return` `;case`ctrl-c`:return B(`c`);case`ctrl-d`:return B(`d`);case`ctrl-z`:return B(`z`);case`ctrl-l`:return B(`l`);case`ctrl-r`:return B(`r`);case`ctrl-u`:return B(`u`);case`ctrl-w`:return B(`w`);case`arrow-left`:return V(`D`,t);case`arrow-up`:return V(`A`,t);case`arrow-down`:return V(`B`,t);case`arrow-right`:return V(`C`,t);case`home`:return H(`H`,t);case`end`:return H(`F`,t);case`page-up`:return`${L}[5~`;case`page-down`:return`${L}[6~`;case`delete`:return`${L}[3~`;case`backspace`:return R;case`meta-backward-word`:return`${L}b`;case`meta-forward-word`:return`${L}f`}}function B(e){return String.fromCharCode(e.toUpperCase().charCodeAt(0)-64)}function V(e,t){return t?.applicationCursorKeysMode===!0?`${L}O${e}`:`${L}[${e}`}function H(e,t){return t?.applicationCursorKeysMode===!0?`${L}O${e}`:`${L}[${e}`}var me=8,he=500,U=class extends o{constructor(...e){super(...e),this.refocusOnClick=!0,this.onInput=()=>void 0,this.lastPointerFinishedAt=0}sendSoftKey(e,t){this.onInput(z(e.id,this.modes),t)}onSoftKeyPointerDown(e,t){e.pointerType===`mouse`&&e.button!==0||(e.preventDefault(),this.pointerStart={pointerId:e.pointerId,key:t,clientX:e.clientX,clientY:e.clientY})}onSoftKeyPointerMove(e){let t=this.pointerStart;t?.pointerId===e.pointerId&&W(t,e)&&this.finishSoftKeyPointer()}onSoftKeyPointerUp(e,t){let n=this.pointerStart;n?.pointerId===e.pointerId&&(e.preventDefault(),this.finishSoftKeyPointer(),!(n.key.id!==t.id||W(n,e))&&this.sendSoftKey(t,{refocus:e.pointerType===`mouse`}))}onSoftKeyPointerCancel(e){this.pointerStart?.pointerId===e.pointerId&&this.finishSoftKeyPointer()}finishSoftKeyPointer(){this.pointerStart=void 0,this.lastPointerFinishedAt=Date.now()}onSoftKeyClick(e,t){if(Date.now()-this.lastPointerFinishedAt<he){e.preventDefault();return}this.sendSoftKey(t,{refocus:this.refocusOnClick})}render(){return e`
|
|
3
3
|
<div class="terminal-soft-keys" role="toolbar" aria-label="Terminal soft keys">
|
|
4
4
|
${I.map(t=>e`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CodeViewer-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./CodeViewer-uN2lxRC5.js","./vendor-editor-core-DVD9qHFI.js","./vendor-editor-languages-CgbLQX3u.js","./vendor-editor-legacy-CYBnW6ZU.js","./TerminalPanel-0M9uTUST.js","./vendor-terminal-D8k4UKM2.js","./vendor-terminal-BrP-ENHg.css","./composerEditorSetup-DcmFM6jm.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=globalThis,t=e.ShadowRoot&&(e.ShadyCSS===void 0||e.ShadyCSS.nativeShadow)&&`adoptedStyleSheets`in Document.prototype&&`replace`in CSSStyleSheet.prototype,n=Symbol(),r=new WeakMap,i=class{constructor(e,t,r){if(this._$cssResult$=!0,r!==n)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=e,this.t=t}get styleSheet(){let e=this.o,n=this.t;if(t&&e===void 0){let t=n!==void 0&&n.length===1;t&&(e=r.get(n)),e===void 0&&((this.o=e=new CSSStyleSheet).replaceSync(this.cssText),t&&r.set(n,e))}return e}toString(){return this.cssText}},a=e=>new i(typeof e==`string`?e:e+``,void 0,n),o=(e,...t)=>new i(e.length===1?e[0]:t.reduce((t,n,r)=>t+(e=>{if(!0===e._$cssResult$)return e.cssText;if(typeof e==`number`)return e;throw Error(`Value passed to 'css' function must be a 'css' function result: `+e+`. Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.`)})(n)+e[r+1],e[0]),e,n),s=(n,r)=>{if(t)n.adoptedStyleSheets=r.map(e=>e instanceof CSSStyleSheet?e:e.styleSheet);else for(let t of r){let r=document.createElement(`style`),i=e.litNonce;i!==void 0&&r.setAttribute(`nonce`,i),r.textContent=t.cssText,n.appendChild(r)}},c=t?e=>e:e=>e instanceof CSSStyleSheet?(e=>{let t=``;for(let n of e.cssRules)t+=n.cssText;return a(t)})(e):e,{is:l,defineProperty:u,getOwnPropertyDescriptor:d,getOwnPropertyNames:f,getOwnPropertySymbols:p,getPrototypeOf:m}=Object,ee=globalThis,te=ee.trustedTypes,ne=te?te.emptyScript:``,re=ee.reactiveElementPolyfillSupport,ie=(e,t)=>e,ae={toAttribute(e,t){switch(t){case Boolean:e=e?ne:null;break;case Object:case Array:e=e==null?e:JSON.stringify(e)}return e},fromAttribute(e,t){let n=e;switch(t){case Boolean:n=e!==null;break;case Number:n=e===null?null:Number(e);break;case Object:case Array:try{n=JSON.parse(e)}catch{n=null}}return n}},oe=(e,t)=>!l(e,t),se={attribute:!0,type:String,converter:ae,reflect:!1,useDefault:!1,hasChanged:oe};Symbol.metadata??=Symbol(`metadata`),ee.litPropertyMetadata??=new WeakMap;var ce=class extends HTMLElement{static addInitializer(e){this._$Ei(),(this.l??=[]).push(e)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(e,t=se){if(t.state&&(t.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(e)&&((t=Object.create(t)).wrapped=!0),this.elementProperties.set(e,t),!t.noAccessor){let n=Symbol(),r=this.getPropertyDescriptor(e,n,t);r!==void 0&&u(this.prototype,e,r)}}static getPropertyDescriptor(e,t,n){let{get:r,set:i}=d(this.prototype,e)??{get(){return this[t]},set(e){this[t]=e}};return{get:r,set(t){let a=r?.call(this);i?.call(this,t),this.requestUpdate(e,a,n)},configurable:!0,enumerable:!0}}static getPropertyOptions(e){return this.elementProperties.get(e)??se}static _$Ei(){if(this.hasOwnProperty(ie(`elementProperties`)))return;let e=m(this);e.finalize(),e.l!==void 0&&(this.l=[...e.l]),this.elementProperties=new Map(e.elementProperties)}static finalize(){if(this.hasOwnProperty(ie(`finalized`)))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(ie(`properties`))){let e=this.properties,t=[...f(e),...p(e)];for(let n of t)this.createProperty(n,e[n])}let e=this[Symbol.metadata];if(e!==null){let t=litPropertyMetadata.get(e);if(t!==void 0)for(let[e,n]of t)this.elementProperties.set(e,n)}this._$Eh=new Map;for(let[e,t]of this.elementProperties){let n=this._$Eu(e,t);n!==void 0&&this._$Eh.set(n,e)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(e){let t=[];if(Array.isArray(e)){let n=new Set(e.flat(1/0).reverse());for(let e of n)t.unshift(c(e))}else e!==void 0&&t.push(c(e));return t}static _$Eu(e,t){let n=t.attribute;return!1===n?void 0:typeof n==`string`?n:typeof e==`string`?e.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(e=>this.enableUpdating=e),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(e=>e(this))}addController(e){(this._$EO??=new Set).add(e),this.renderRoot!==void 0&&this.isConnected&&e.hostConnected?.()}removeController(e){this._$EO?.delete(e)}_$E_(){let e=new Map,t=this.constructor.elementProperties;for(let n of t.keys())this.hasOwnProperty(n)&&(e.set(n,this[n]),delete this[n]);e.size>0&&(this._$Ep=e)}createRenderRoot(){let e=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(e,this.constructor.elementStyles),e}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(e=>e.hostConnected?.())}enableUpdating(e){}disconnectedCallback(){this._$EO?.forEach(e=>e.hostDisconnected?.())}attributeChangedCallback(e,t,n){this._$AK(e,n)}_$ET(e,t){let n=this.constructor.elementProperties.get(e),r=this.constructor._$Eu(e,n);if(r!==void 0&&!0===n.reflect){let i=(n.converter?.toAttribute===void 0?ae:n.converter).toAttribute(t,n.type);this._$Em=e,i==null?this.removeAttribute(r):this.setAttribute(r,i),this._$Em=null}}_$AK(e,t){let n=this.constructor,r=n._$Eh.get(e);if(r!==void 0&&this._$Em!==r){let e=n.getPropertyOptions(r),i=typeof e.converter==`function`?{fromAttribute:e.converter}:e.converter?.fromAttribute===void 0?ae:e.converter;this._$Em=r;let a=i.fromAttribute(t,e.type);this[r]=a??this._$Ej?.get(r)??a,this._$Em=null}}requestUpdate(e,t,n,r=!1,i){if(e!==void 0){let a=this.constructor;if(!1===r&&(i=this[e]),n??=a.getPropertyOptions(e),!((n.hasChanged??oe)(i,t)||n.useDefault&&n.reflect&&i===this._$Ej?.get(e)&&!this.hasAttribute(a._$Eu(e,n))))return;this.C(e,t,n)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(e,t,{useDefault:n,reflect:r,wrapped:i},a){n&&!(this._$Ej??=new Map).has(e)&&(this._$Ej.set(e,a??t??this[e]),!0!==i||a!==void 0)||(this._$AL.has(e)||(this.hasUpdated||n||(t=void 0),this._$AL.set(e,t)),!0===r&&this._$Em!==e&&(this._$Eq??=new Set).add(e))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(e){Promise.reject(e)}let e=this.scheduleUpdate();return e!=null&&await e,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(let[e,t]of this._$Ep)this[e]=t;this._$Ep=void 0}let e=this.constructor.elementProperties;if(e.size>0)for(let[t,n]of e){let{wrapped:e}=n,r=this[t];!0!==e||this._$AL.has(t)||r===void 0||this.C(t,void 0,n,r)}}let e=!1,t=this._$AL;try{e=this.shouldUpdate(t),e?(this.willUpdate(t),this._$EO?.forEach(e=>e.hostUpdate?.()),this.update(t)):this._$EM()}catch(t){throw e=!1,this._$EM(),t}e&&this._$AE(t)}willUpdate(e){}_$AE(e){this._$EO?.forEach(e=>e.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(e)),this.updated(e)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(e){return!0}update(e){this._$Eq&&=this._$Eq.forEach(e=>this._$ET(e,this[e])),this._$EM()}updated(e){}firstUpdated(e){}};ce.elementStyles=[],ce.shadowRootOptions={mode:`open`},ce[ie(`elementProperties`)]=new Map,ce[ie(`finalized`)]=new Map,re?.({ReactiveElement:ce}),(ee.reactiveElementVersions??=[]).push(`2.1.2`);var le=globalThis,ue=e=>e,de=le.trustedTypes,fe=de?de.createPolicy(`lit-html`,{createHTML:e=>e}):void 0,pe=`$lit$`,me=`lit$${Math.random().toFixed(9).slice(2)}$`,he=`?`+me,ge=`<${he}>`,_e=document,ve=()=>_e.createComment(``),ye=e=>e===null||typeof e!=`object`&&typeof e!=`function`,be=Array.isArray,xe=e=>be(e)||typeof e?.[Symbol.iterator]==`function`,Se=`[
|
|
3
3
|
\f\r]`,Ce=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,we=/-->/g,Te=/>/g,Ee=RegExp(`>|${Se}(?:([^\\s"'>=/]+)(${Se}*=${Se}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,`g`),De=/'/g,Oe=/"/g,ke=/^(?:script|style|textarea|title)$/i,Ae=e=>(t,...n)=>({_$litType$:e,strings:t,values:n}),h=Ae(1),je=Ae(2),Me=Symbol.for(`lit-noChange`),g=Symbol.for(`lit-nothing`),Ne=new WeakMap,Pe=_e.createTreeWalker(_e,129);function Fe(e,t){if(!be(e)||!e.hasOwnProperty(`raw`))throw Error(`invalid template strings array`);return fe===void 0?t:fe.createHTML(t)}var Ie=(e,t)=>{let n=e.length-1,r=[],i,a=t===2?`<svg>`:t===3?`<math>`:``,o=Ce;for(let t=0;t<n;t++){let n=e[t],s,c,l=-1,u=0;for(;u<n.length&&(o.lastIndex=u,c=o.exec(n),c!==null);)u=o.lastIndex,o===Ce?c[1]===`!--`?o=we:c[1]===void 0?c[2]===void 0?c[3]!==void 0&&(o=Ee):(ke.test(c[2])&&(i=RegExp(`</`+c[2],`g`)),o=Ee):o=Te:o===Ee?c[0]===`>`?(o=i??Ce,l=-1):c[1]===void 0?l=-2:(l=o.lastIndex-c[2].length,s=c[1],o=c[3]===void 0?Ee:c[3]===`"`?Oe:De):o===Oe||o===De?o=Ee:o===we||o===Te?o=Ce:(o=Ee,i=void 0);let d=o===Ee&&e[t+1].startsWith(`/>`)?` `:``;a+=o===Ce?n+ge:l>=0?(r.push(s),n.slice(0,l)+pe+n.slice(l)+me+d):n+me+(l===-2?t:d)}return[Fe(e,a+(e[n]||`<?>`)+(t===2?`</svg>`:t===3?`</math>`:``)),r]},Le=class e{constructor({strings:t,_$litType$:n},r){let i;this.parts=[];let a=0,o=0,s=t.length-1,c=this.parts,[l,u]=Ie(t,n);if(this.el=e.createElement(l,r),Pe.currentNode=this.el.content,n===2||n===3){let e=this.el.content.firstChild;e.replaceWith(...e.childNodes)}for(;(i=Pe.nextNode())!==null&&c.length<s;){if(i.nodeType===1){if(i.hasAttributes())for(let e of i.getAttributeNames())if(e.endsWith(pe)){let t=u[o++],n=i.getAttribute(e).split(me),r=/([.?@])?(.*)/.exec(t);c.push({type:1,index:a,name:r[2],strings:n,ctor:r[1]===`.`?He:r[1]===`?`?Ue:r[1]===`@`?We:Ve}),i.removeAttribute(e)}else e.startsWith(me)&&(c.push({type:6,index:a}),i.removeAttribute(e));if(ke.test(i.tagName)){let e=i.textContent.split(me),t=e.length-1;if(t>0){i.textContent=de?de.emptyScript:``;for(let n=0;n<t;n++)i.append(e[n],ve()),Pe.nextNode(),c.push({type:2,index:++a});i.append(e[t],ve())}}}else if(i.nodeType===8)if(i.data===he)c.push({type:2,index:a});else{let e=-1;for(;(e=i.data.indexOf(me,e+1))!==-1;)c.push({type:7,index:a}),e+=me.length-1}a++}}static createElement(e,t){let n=_e.createElement(`template`);return n.innerHTML=e,n}};function Re(e,t,n=e,r){if(t===Me)return t;let i=r===void 0?n._$Cl:n._$Co?.[r],a=ye(t)?void 0:t._$litDirective$;return i?.constructor!==a&&(i?._$AO?.(!1),a===void 0?i=void 0:(i=new a(e),i._$AT(e,n,r)),r===void 0?n._$Cl=i:(n._$Co??=[])[r]=i),i!==void 0&&(t=Re(e,i._$AS(e,t.values),i,r)),t}var ze=class{constructor(e,t){this._$AV=[],this._$AN=void 0,this._$AD=e,this._$AM=t}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(e){let{el:{content:t},parts:n}=this._$AD,r=(e?.creationScope??_e).importNode(t,!0);Pe.currentNode=r;let i=Pe.nextNode(),a=0,o=0,s=n[0];for(;s!==void 0;){if(a===s.index){let t;s.type===2?t=new Be(i,i.nextSibling,this,e):s.type===1?t=new s.ctor(i,s.name,s.strings,this,e):s.type===6&&(t=new Ge(i,this,e)),this._$AV.push(t),s=n[++o]}a!==s?.index&&(i=Pe.nextNode(),a++)}return Pe.currentNode=_e,r}p(e){let t=0;for(let n of this._$AV)n!==void 0&&(n.strings===void 0?n._$AI(e[t]):(n._$AI(e,n,t),t+=n.strings.length-2)),t++}},Be=class e{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(e,t,n,r){this.type=2,this._$AH=g,this._$AN=void 0,this._$AA=e,this._$AB=t,this._$AM=n,this.options=r,this._$Cv=r?.isConnected??!0}get parentNode(){let e=this._$AA.parentNode,t=this._$AM;return t!==void 0&&e?.nodeType===11&&(e=t.parentNode),e}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(e,t=this){e=Re(this,e,t),ye(e)?e===g||e==null||e===``?(this._$AH!==g&&this._$AR(),this._$AH=g):e!==this._$AH&&e!==Me&&this._(e):e._$litType$===void 0?e.nodeType===void 0?xe(e)?this.k(e):this._(e):this.T(e):this.$(e)}O(e){return this._$AA.parentNode.insertBefore(e,this._$AB)}T(e){this._$AH!==e&&(this._$AR(),this._$AH=this.O(e))}_(e){this._$AH!==g&&ye(this._$AH)?this._$AA.nextSibling.data=e:this.T(_e.createTextNode(e)),this._$AH=e}$(e){let{values:t,_$litType$:n}=e,r=typeof n==`number`?this._$AC(e):(n.el===void 0&&(n.el=Le.createElement(Fe(n.h,n.h[0]),this.options)),n);if(this._$AH?._$AD===r)this._$AH.p(t);else{let e=new ze(r,this),n=e.u(this.options);e.p(t),this.T(n),this._$AH=e}}_$AC(e){let t=Ne.get(e.strings);return t===void 0&&Ne.set(e.strings,t=new Le(e)),t}k(t){be(this._$AH)||(this._$AH=[],this._$AR());let n=this._$AH,r,i=0;for(let a of t)i===n.length?n.push(r=new e(this.O(ve()),this.O(ve()),this,this.options)):r=n[i],r._$AI(a),i++;i<n.length&&(this._$AR(r&&r._$AB.nextSibling,i),n.length=i)}_$AR(e=this._$AA.nextSibling,t){for(this._$AP?.(!1,!0,t);e!==this._$AB;){let t=ue(e).nextSibling;ue(e).remove(),e=t}}setConnected(e){this._$AM===void 0&&(this._$Cv=e,this._$AP?.(e))}},Ve=class{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(e,t,n,r,i){this.type=1,this._$AH=g,this._$AN=void 0,this.element=e,this.name=t,this._$AM=r,this.options=i,n.length>2||n[0]!==``||n[1]!==``?(this._$AH=Array(n.length-1).fill(new String),this.strings=n):this._$AH=g}_$AI(e,t=this,n,r){let i=this.strings,a=!1;if(i===void 0)e=Re(this,e,t,0),a=!ye(e)||e!==this._$AH&&e!==Me,a&&(this._$AH=e);else{let r=e,o,s;for(e=i[0],o=0;o<i.length-1;o++)s=Re(this,r[n+o],t,o),s===Me&&(s=this._$AH[o]),a||=!ye(s)||s!==this._$AH[o],s===g?e=g:e!==g&&(e+=(s??``)+i[o+1]),this._$AH[o]=s}a&&!r&&this.j(e)}j(e){e===g?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,e??``)}},He=class extends Ve{constructor(){super(...arguments),this.type=3}j(e){this.element[this.name]=e===g?void 0:e}},Ue=class extends Ve{constructor(){super(...arguments),this.type=4}j(e){this.element.toggleAttribute(this.name,!!e&&e!==g)}},We=class extends Ve{constructor(e,t,n,r,i){super(e,t,n,r,i),this.type=5}_$AI(e,t=this){if((e=Re(this,e,t,0)??g)===Me)return;let n=this._$AH,r=e===g&&n!==g||e.capture!==n.capture||e.once!==n.once||e.passive!==n.passive,i=e!==g&&(n===g||r);r&&this.element.removeEventListener(this.name,this,n),i&&this.element.addEventListener(this.name,this,e),this._$AH=e}handleEvent(e){typeof this._$AH==`function`?this._$AH.call(this.options?.host??this.element,e):this._$AH.handleEvent(e)}},Ge=class{constructor(e,t,n){this.element=e,this.type=6,this._$AN=void 0,this._$AM=t,this.options=n}get _$AU(){return this._$AM._$AU}_$AI(e){Re(this,e)}},Ke={M:pe,P:me,A:he,C:1,L:Ie,R:ze,D:xe,V:Re,I:Be,H:Ve,N:Ue,U:We,B:He,F:Ge},qe=le.litHtmlPolyfillSupport;qe?.(Le,Be),(le.litHtmlVersions??=[]).push(`3.3.3`);var Je=(e,t,n)=>{let r=n?.renderBefore??t,i=r._$litPart$;if(i===void 0){let e=n?.renderBefore??null;r._$litPart$=i=new Be(t.insertBefore(ve(),e),e,void 0,n??{})}return i._$AI(e),i},Ye=globalThis,_=class extends ce{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){let e=super.createRenderRoot();return this.renderOptions.renderBefore??=e.firstChild,e}update(e){let t=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(e),this._$Do=Je(t,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return Me}};_._$litElement$=!0,_.finalized=!0,Ye.litElementHydrateSupport?.({LitElement:_});var Xe=Ye.litElementPolyfillSupport;Xe?.({LitElement:_}),(Ye.litElementVersions??=[]).push(`4.2.2`);function Ze(e,t=$e()){let n=new URL(t.viteBaseUrl,t.documentBaseUrl);return new URL(et(e),n).toString()}function Qe(e,t=$e()){let n=new URL(Ze(e,t));if(n.protocol===`http:`)n.protocol=`ws:`;else if(n.protocol===`https:`)n.protocol=`wss:`;else throw Error(`Cannot create a WebSocket URL from ${n.protocol}`);return n.toString()}function $e(){return{viteBaseUrl:`./`,documentBaseUrl:document.baseURI}}function et(e){return e.startsWith(`/`)?`.${e}`:e}var tt;function nt(e){tt=e}function rt(){let e=tt;if(e!==void 0)try{e()}catch{}}var it=class extends Error{constructor(e,t){super(e),this.status=t,this.name=`HttpError`}};function at(e){return e instanceof it&&e.status===404}async function v(e,t,n){let r=new Headers(n?.headers);n?.body!==void 0&&!r.has(`content-type`)&&r.set(`content-type`,`application/json`);let i=await fetch(Ze(e),{...n,headers:r});if(!i.ok)throw new it(ot(await i.json().catch(()=>({})))??i.statusText,i.status);let a=await i.json();return rt(),t(a)}function ot(e){if(st(e))return typeof e.error==`string`?e.error:void 0}function st(e){return typeof e==`object`&&!!e}var ct={reply:`reply`,reader:`reader`};ct.reader;function lt(e){return{text:e,retiredBy:ct.reply}}function ut(e){return{text:e,retiredBy:ct.reader}}var dt=`The request failed`;function y(e){if(e instanceof it)return e.message===``?`${dt} (${String(e.status)})`:e.message;if(e instanceof Error)return e.message===``?dt:e.message;let t=String(e);return t===``||t.startsWith(`[object`)?dt:t}function ft(e){let t=y(e);return e instanceof it?lt(t):ut(t)}function b(e){let t=ft(e);return{error:t.text,errorRetiredBy:t.retiredBy}}function pt(e){return e.placeholderOutstanding===!0?`replace`:e.lastWriteAt===void 0?`push`:e.now-e.lastWriteAt<400?`replace`:`push`}var mt,ht=!1;function gt(){ht=!0}function _t(){ht=!1}function vt(e,t,n=Date.now()){let r=t?`replace`:pt({lastWriteAt:mt,now:n,placeholderOutstanding:ht});mt=n,ht=!1,r===`replace`?window.history.replaceState({},``,e):window.history.pushState({},``,e)}var yt=1500;function bt(e){if(e.next!==``)return{kind:`show`,text:e.next};if(e.shownAt===void 0)return{kind:`hide`};let t=e.now-e.shownAt;return t>=1500?{kind:`hide`}:{kind:`hold`,retryInMs:yt-t}}function xt(e,t,n){return e.machine===t.machine&&e.project===t.project&&e.workspace===t.workspace&&e.session===t.session&&(e.view??n)===(t.view??n)}var St=[`(display-mode: standalone)`,`(display-mode: fullscreen)`,`(display-mode: minimal-ui)`];function Ct(){return typeof window>`u`||!(`matchMedia`in window)?[]:St.map(e=>window.matchMedia(e))}function wt(e,t=Tt()){return e.some(e=>e.matches)||Et(t)}function Tt(){return typeof navigator>`u`?void 0:navigator}function Et(e){return e!==void 0&&`standalone`in e&&e.standalone===!0}var Dt=class{constructor(e=Ot()){this.scheduler=e}repair(e){if(!e){this.clear();return}this.resetViewportScroll(),this.repairFrame!==void 0&&this.scheduler.cancelAnimationFrame(this.repairFrame),this.repairFrame=this.scheduler.requestAnimationFrame(()=>{this.repairFrame=void 0,this.resetViewportScroll(),this.repairFrame=this.scheduler.requestAnimationFrame(()=>{this.repairFrame=void 0,this.resetViewportScroll()})}),this.repairTimer!==void 0&&this.scheduler.clearTimeout(this.repairTimer),this.repairTimer=this.scheduler.setTimeout(()=>{this.repairTimer=void 0,this.resetViewportScroll()},250)}clear(){this.repairFrame!==void 0&&(this.scheduler.cancelAnimationFrame(this.repairFrame),this.repairFrame=void 0),this.repairTimer!==void 0&&(this.scheduler.clearTimeout(this.repairTimer),this.repairTimer=void 0)}resetViewportScroll(){this.scheduler.scrollTo(0,0);let e=this.scheduler.documentElement;e!==void 0&&(e.scrollTop=0);let t=this.scheduler.body;t!==void 0&&(t.scrollTop=0)}};function Ot(){return{requestAnimationFrame(e){return window.requestAnimationFrame(e)},cancelAnimationFrame(e){window.cancelAnimationFrame(e)},setTimeout(e,t){return window.setTimeout(e,t)},clearTimeout(e){window.clearTimeout(e)},scrollTo(e,t){window.scrollTo(e,t)},get documentElement(){return typeof document>`u`?void 0:document.documentElement},get body(){return typeof document>`u`?void 0:document.body}}}var kt=`(max-width: 760px)`,At=class{constructor(e,t={}){this.host=e,this.onMobileNavigationMediaChange=e=>{this.isMobileNavigationLayout!==e.matches&&(this.isMobileNavigationLayout=e.matches,this.host.requestUpdate())},this.onPwaDisplayModeChange=()=>{let e=wt(this.pwaDisplayModeMedia);this.isPwaDisplayMode!==e&&(this.isPwaDisplayMode=e,this.host.requestUpdate())},e.addController(this),this.mobileNavigationMedia=t.mobileNavigationMedia??jt(),this.pwaDisplayModeMedia=t.pwaDisplayModeMedia??Ct(),this.viewportPositionRepairer=t.viewportPositionRepairer??new Dt,this.isMobileNavigationLayout=this.mobileNavigationMedia?.matches??!1,this.isPwaDisplayMode=wt(this.pwaDisplayModeMedia)}hostConnected(){this.mobileNavigationMedia?.addEventListener(`change`,this.onMobileNavigationMediaChange);for(let e of this.pwaDisplayModeMedia)e.addEventListener(`change`,this.onPwaDisplayModeChange)}hostDisconnected(){this.mobileNavigationMedia?.removeEventListener(`change`,this.onMobileNavigationMediaChange);for(let e of this.pwaDisplayModeMedia)e.removeEventListener(`change`,this.onPwaDisplayModeChange);this.viewportPositionRepairer.clear()}shouldAutoFocusPrompt(){return!this.isMobileNavigationLayout&&!this.isPwaDisplayMode}shouldShowAppRefreshInHeader(){return this.isPwaDisplayMode&&!this.isMobileNavigationLayout}shouldShowAppRefreshInContextBar(){return this.isPwaDisplayMode&&this.isMobileNavigationLayout}defaultRouteView(e={}){return Mt(this.isMobileNavigationLayout,e)}repairViewportPosition(){this.viewportPositionRepairer.repair(this.shouldRepairViewportPosition())}shouldRepairViewportPosition(){return this.isMobileNavigationLayout||this.isPwaDisplayMode}};function jt(){if(!(typeof window>`u`||!(`matchMedia`in window)))return window.matchMedia(kt)}function Mt(e,t){return e&&(t.sessionId??``)===``?`navigation`:`chat`}function Nt(e){return!e.touchPrimary&&!e.modalOpen}var Pt=new Set([`text`,`search`,`email`,`url`,`tel`,`password`,`number`,void 0]);function Ft(e){if(e===void 0)return!1;if(e.isContentEditable===!0)return!0;let t=e.tagName.toUpperCase();return t===`TEXTAREA`||t===`INPUT`&&Pt.has(e.type)}function It(e=document){let t=e.activeElement;t!==null&&Ft({tagName:t.tagName,...t instanceof HTMLInputElement?{type:t.type}:{},...t instanceof HTMLElement?{isContentEditable:t.isContentEditable}:{}})&&t instanceof HTMLElement&&t.blur()}function Lt(e){return e.touchPrimary?void 0:`input`}function Rt(e=window){return typeof e.matchMedia==`function`&&e.matchMedia(`(pointer: coarse)`).matches}var x=e=>(t,n)=>{n===void 0?customElements.define(e,t):n.addInitializer(()=>{customElements.define(e,t)})},zt={attribute:!0,type:String,converter:ae,reflect:!1,hasChanged:oe},Bt=(e=zt,t,n)=>{let{kind:r,metadata:i}=n,a=globalThis.litPropertyMetadata.get(i);if(a===void 0&&globalThis.litPropertyMetadata.set(i,a=new Map),r===`setter`&&((e=Object.create(e)).wrapped=!0),a.set(n.name,e),r===`accessor`){let{name:r}=n;return{set(n){let i=t.get.call(this);t.set.call(this,n),this.requestUpdate(r,i,e,!0,n)},init(t){return t!==void 0&&this.C(r,void 0,e,t),t}}}if(r===`setter`){let{name:r}=n;return function(n){let i=this[r];t.call(this,n),this.requestUpdate(r,i,e,!0,n)}}throw Error(`Unsupported decorator location: `+r)};function S(e){return(t,n)=>typeof n==`object`?Bt(e,t,n):((e,t,n)=>{let r=t.hasOwnProperty(n);return t.constructor.createProperty(n,e),r?Object.getOwnPropertyDescriptor(t,n):void 0})(e,t,n)}function C(e){return S({...e,state:!0,attribute:!1})}var Vt=(e,t,n)=>(n.configurable=!0,n.enumerable=!0,Reflect.decorate&&typeof t!=`object`&&Object.defineProperty(e,t,n),n);function w(e,t){return(n,r,i)=>{let a=t=>t.renderRoot?.querySelector(e)??null;if(t){let{get:e,set:t}=typeof r==`object`?n:i??(()=>{let e=Symbol();return{get(){return this[e]},set(t){this[e]=t}}})();return Vt(n,r,{get(){let n=e.call(this);return n===void 0&&(n=a(this),(n!==null||this.hasUpdated)&&t.call(this,n)),n}})}return Vt(n,r,{get(){return a(this)}})}}var Ht={pluginLifecycle:`plugins.lifecycle`},Ut=1e3,Wt=32*1024,Gt=8*1024,Kt=1e3,qt=4e3,Jt=1e3,Yt=8e3,Xt=4e3,Zt=1e4,Qt={working:`core:working`,terminal:`core:terminal`,unread:`core:unread`};function $t(e){if(!nn(e))return;let t=e.epochId,n=e.revision,r=e.generatedAt,i=en(e.machine),a=en(e.unattributed),o=tn(e.projects),s=tn(e.workspaces);if(!(typeof t!=`string`||t===``)&&!(typeof n!=`number`||!Number.isFinite(n))&&!(typeof r!=`string`||r===``)&&!(i===void 0||a===void 0)&&!(o===void 0||s===void 0))return{epochId:t,revision:n,machine:i,projects:o,workspaces:s,unattributed:a,generatedAt:r}}function en(e){if(!nn(e))return;let t=new Map;for(let[n,r]of Object.entries(e))typeof r==`boolean`&&t.set(n,r);return Object.fromEntries(t)}function tn(e){if(!nn(e))return;let t=new Map;for(let[n,r]of Object.entries(e)){let e=en(r);e!==void 0&&t.set(n,e)}return Object.fromEntries(t)}function nn(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var rn=Object.values(Ht),an=new Set(rn);Ht.pluginLifecycle,Ht.pluginLifecycle;function on(e){return typeof e==`string`&&an.has(e)}function sn(e,t){return e?.capabilities?.includes(t)===!0}function cn(e){if(!(!Array.isArray(e)||!e.every(e=>typeof e==`string`)))return e.filter(on)}function ln(e){if(!Array.isArray(e))return;let t=[];for(let n of e){if(!un(n))continue;let e=n.source,r=n.name,i=n.replacement;e!==`environment`&&e!==`config`||typeof r!=`string`||r===``||i!==void 0&&(typeof i!=`string`||i===``)||t.push({source:e,name:r,...i===void 0?{}:{replacement:i}})}return t}function un(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}var dn=/^[a-z][a-z0-9.-]*$/u,fn=new Set([`core`,`themes`]),pn=`machine.`;function mn(e){return dn.test(e)}function hn(e){return fn.has(e)||e.startsWith(pn)}var gn=Object.freeze({showSafeStart:`pi-web plugins safe-start show`,bundledOnly:`pi-web plugins safe-start set bundled-only --restart`,noServerPlugins:`pi-web plugins safe-start set none --restart`,clearSafeStart:`pi-web plugins safe-start clear --restart`});function _n(e){if(!mn(e))throw Error(`Invalid PI WEB plugin id: ${e}`);return`pi-web plugins disable ${e} --restart`}function T(e){return typeof e==`object`&&!!e}function E(e){if(!T(e))throw Error(`Expected object response`);return e}function D(e,t){let n=e[t];if(typeof n!=`string`)throw Error(`Expected string field: ${t}`);return n}function O(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`string`)throw Error(`Expected optional string field: ${t}`);return n}}function k(e,t){let n=e[t];if(typeof n!=`number`)throw Error(`Expected number field: ${t}`);return n}function A(e,t){let n=e[t];if(typeof n!=`boolean`)throw Error(`Expected boolean field: ${t}`);return n}function j(e){return t=>{if(!Array.isArray(t))throw Error(`Expected array response`);return t.map(e)}}function vn(e){if(!Array.isArray(e))throw Error(`Expected array response`);return e}function yn(e,t){if(!Array.isArray(e)||!e.every(e=>typeof e==`string`))throw Error(`Expected string array field: ${t}`);return e}function bn(e){let t=E(e);return{messages:vn(t.messages),start:k(t,`start`),total:k(t,`total`)}}function xn(e){let t=E(e);return j(Sn)(t.machines)}function Sn(e){let t=E(e),n=En(t,`kind`),r=O(t,`baseUrl`),i=Dn(t,`status`),a=O(t,`statusMessage`);return{id:D(t,`id`),name:D(t,`name`),kind:n,...r===void 0?{}:{baseUrl:r},createdAt:D(t,`createdAt`),updatedAt:D(t,`updatedAt`),...i===void 0?{}:{status:i},...a===void 0?{}:{statusMessage:a}}}function Cn(e){let t=E(e),n=Dn(t,`status`),r=O(t,`error`);return{machineId:D(t,`machineId`),ok:A(t,`ok`),checkedAt:D(t,`checkedAt`),...n===void 0?{}:{status:n},...t.web===void 0?{}:{web:Ra(t.web)},...t.sessiond===void 0?{}:{sessiond:Ra(t.sessiond)},...r===void 0?{}:{error:r}}}function wn(e){let t=E(e),n=O(t,`error`);return{machineId:D(t,`machineId`),ok:A(t,`ok`),checkedAt:D(t,`checkedAt`),...N(`packageName`,O(t,`packageName`)),...N(`generatedAt`,O(t,`generatedAt`)),...t.components===void 0?{}:{components:Ia(t.components)},...t.capabilities===void 0?{}:{capabilities:Wa(t.capabilities)},...t.deprecatedAgentInputs===void 0?{}:{deprecatedAgentInputs:Tn(t.deprecatedAgentInputs)},...n===void 0?{}:{error:n}}}function Tn(e){let t=ln(e);if(t===void 0)throw Error(`Invalid PI WEB deprecated agent inputs`);return t}function En(e,t){let n=D(e,t);if(n!==`local`&&n!==`remote`)throw Error(`Expected machine kind field: ${t}`);return n}function Dn(e,t){let n=O(e,t);if(n!==void 0){if(n!==`unknown`&&n!==`online`&&n!==`offline`&&n!==`error`)throw Error(`Expected machine status field: ${t}`);return n}}function On(e){let t=E(e);return{id:D(t,`id`),name:D(t,`name`),path:D(t,`path`),createdAt:D(t,`createdAt`)}}function kn(e){let t=E(e);return Object.freeze({id:D(t,`id`),projectId:D(t,`projectId`),path:D(t,`path`),label:D(t,`label`),isMain:A(t,`isMain`),...N(`provider`,Fn(t.provider)),...N(`removal`,In(t.removal)),effectiveConfig:zn(t.effectiveConfig)})}function An(e){let t=E(e),n=jn(t.status),r=D(t,`projectId`),i=O(t,`ownerPluginId`);if(n===`provider`&&i===void 0)throw Error(`Provider workspace resolution is missing ownerPluginId`);if(n===`folder`&&i!==void 0)throw Error(`Folder workspace resolution must not include ownerPluginId`);let a=j(kn)(t.workspaces);if(a.length===0||a.some(e=>e.projectId!==r))throw Error(`Workspace resolution contains invalid project workspaces`);let o=j(Mn)(t.diagnostics);return Object.freeze({status:n,projectId:r,...i===void 0?{}:{ownerPluginId:i},workspaces:Object.freeze(a),diagnostics:Object.freeze(o)})}function jn(e){if(e===`provider`||e===`folder`||e===`degraded`)return e;throw Error(`Invalid workspace provider resolution status`)}function Mn(e){let t=E(e),n=O(t,`pluginId`),r=t.pluginIds===void 0?void 0:yn(t.pluginIds,`pluginIds`);return Object.freeze({code:Nn(t.code),message:D(t,`message`),tier:Pn(t.tier),...n===void 0?{}:{pluginId:n},...r===void 0?{}:{pluginIds:Object.freeze(r)}})}function Nn(e){if(e===`probe-failed`||e===`claim-conflict`||e===`list-failed`)return e;throw Error(`Invalid workspace provider diagnostic code`)}function Pn(e){if(e===`primary`||e===`fallback`)return e;throw Error(`Invalid workspace provider diagnostic tier`)}function Fn(e){if(e===void 0)return;if(!T(e)||Array.isArray(e))throw Error(`Invalid workspace provider field`);let t=e.capabilities;if(!T(t)||Array.isArray(t))throw Error(`Invalid workspace provider capabilities field`);let n=e.metadata;return Object.freeze({pluginId:D(e,`pluginId`),capabilities:Object.freeze({request:A(t,`request`),remove:A(t,`remove`)}),...N(`metadata`,n===void 0?void 0:Ln(n,`workspace provider metadata`))})}function In(e){if(e!==void 0){if(!T(e)||Array.isArray(e))throw Error(`Invalid workspace removal field`);return Object.freeze({actionLabel:M(e,`actionLabel`),confirmation:M(e,`confirmation`),precondition:M(e,`precondition`)})}}function Ln(e,t){if(!T(e)||Array.isArray(e))throw Error(`Invalid ${t} field`);return Object.freeze(Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Rn(n,t)])))}function Rn(e,t){if(e===null||typeof e==`string`||typeof e==`boolean`||typeof e==`number`&&Number.isFinite(e))return e;if(Array.isArray(e))return Object.freeze(e.map(e=>Rn(e,t)));if(T(e))return Ln(e,t);throw Error(`Invalid ${t} field`)}function zn(e){if(!T(e)||Array.isArray(e))throw Error(`Expected workspace effectiveConfig field`);let t=fa(e.uploads);return Object.freeze({...N(`uploads`,t===void 0?void 0:Object.freeze({...t}))})}function Bn(e){let t=E(e),n=O(t,`name`),r=Ma(t.persisted,`persisted`),i=O(t,`parentSessionPath`),a=O(t,`archivedAt`);return{id:D(t,`id`),path:D(t,`path`),cwd:D(t,`cwd`),...r===void 0?{}:{persisted:r},...n===void 0?{}:{name:n},created:D(t,`created`),modified:D(t,`modified`),messageCount:k(t,`messageCount`),firstMessage:D(t,`firstMessage`),...i===void 0?{}:{parentSessionPath:i},...t.archived===!0?{archived:!0}:{},...a===void 0?{}:{archivedAt:a}}}function Vn(e){if(e!==`info`&&e!==`warning`&&e!==`error`)throw Error(`Invalid session warning severity`);return e}function Hn(e){if(e!==void 0)return{id:D(E(e),`id`)}}function Un(e){let t=E(e),n=Hn(t.dismiss);return{severity:Vn(t.severity),message:D(t,`message`),...N(`source`,O(t,`source`)),...N(`path`,O(t,`path`)),...n===void 0?{}:{dismiss:n}}}function Wn(e){return e===void 0?{}:{warnings:j(Un)(e)}}function Gn(e){let t=E(e);return{value:Lr(t,`value`,128),label:Lr(t,`label`,Kt),...N(`detail`,Rr(t,`detail`,Kt))}}function Kn(e){let t=E(e),n=Xr(t.options,Gn,12,`options`);rr(n.map(e=>e.value),`ask option value`);let r=Ma(t.multiple,`multiple`);return{id:Lr(t,`id`,128),question:Lr(t,`question`,Kt),...N(`detail`,Rr(t,`detail`,Kt)),options:n,...r===void 0?{}:{multiple:r}}}function qn(e){let t=E(e),n=Xr(t.questions,Kn,20,`questions`);if(n.length===0)throw Error(`Pending ask has no questions`);return rr(n.map(e=>e.id),`ask question id`),{askId:Lr(t,`askId`,128),askedAt:M(t,`askedAt`),questions:n}}function Jn(e){return e===void 0?{}:{pendingAsk:qn(e)}}function Yn(e){let t=E(e);if(t.type!==`ask.opened`)throw Error(`Invalid ask opened event type`);return{type:`ask.opened`,ask:qn(t.ask),...Zn(t)}}function Xn(e){let t=E(e);if(t.type!==`ask.closed`)throw Error(`Invalid ask closed event type`);return{type:`ask.closed`,askId:Lr(t,`askId`,128),reason:Qn(t.reason),...Zn(t)}}function Zn(e){let t=e.revision,n=e.daemonInstanceId;return{...typeof t==`number`&&Number.isFinite(t)?{revision:t}:{},...typeof n==`string`&&n!==``?{daemonInstanceId:n}:{}}}function Qn(e){if(e!==`submitted`&&e!==`superseded`&&e!==`cancelled`)throw Error(`Invalid ask close reason`);return e}function $n(e){let t=E(e),n=Kn(t.question),r=Xr(t.values,Zr,12,`values`),i=new Set(n.options.map(e=>e.value));if(r.some(e=>!i.has(e)))throw Error(`Ask answer selected an option the question never offered`);let a=Rr(t,`otherText`,qt),o=A(t,`answered`);if(o!==(r.length>0||a!==void 0))throw Error(`Ask answer contradicts its answered flag`);return{question:n,answered:o,values:r,...a===void 0?{}:{otherText:a}}}function er(e){let t=E(e),n=Xr(t.questions,$n,20,`questions`),r=Qr(t,`answeredCount`),i=yn(t.unansweredIds,`unansweredIds`),a=n.filter(e=>!e.answered).map(e=>e.question.id);if(r!==n.length-a.length)throw Error(`Ask outcome answered count mismatch`);if(i.length!==a.length||i.some((e,t)=>e!==a[t]))throw Error(`Ask outcome unanswered ids mismatch`);let o=t.cause===`user-message`?`user-message`:void 0;return{askId:Lr(t,`askId`,128),reason:Qn(t.reason),...o===void 0?{}:{cause:o},askedAt:M(t,`askedAt`),closedAt:M(t,`closedAt`),questions:n,answeredCount:r,unansweredIds:i,summary:M(t,`summary`)}}function tr(e){let t=E(e),n=t.result;if(n!==`closed`&&n!==`stale`)throw Error(`Invalid ask close result`);let r=t.outcome===void 0?void 0:er(t.outcome);if(n===`closed`!=(r!==void 0))throw Error(`Ask close response outcome mismatch`);return{result:n,...r===void 0?{}:{outcome:r},sessionStatus:mr(t.sessionStatus)}}function nr(e){let t=E(e),n=t.result;if(n!==`closed`&&n!==`stale`)throw Error(`Invalid dialog close result`);let r=t.outcome===void 0?void 0:fr(t.outcome);if(n===`closed`!=(r!==void 0))throw Error(`Dialog close response outcome mismatch`);return{result:n,...r===void 0?{}:{outcome:r},sessionStatus:mr(t.sessionStatus)}}function rr(e,t){if(new Set(e).size!==e.length)throw Error(`Duplicate ${t}`)}function ir(e){if(e!==`confirm`&&e!==`select`&&e!==`input`)throw Error(`Invalid extension dialog kind`);return e}function ar(e){if(e!==`answered`&&e!==`cancelled`&&e!==`timeout`&&e!==`aborted`&&e!==`session-ended`)throw Error(`Invalid extension dialog close reason`);return e}function or(e){if(typeof e==`boolean`||typeof e==`string`&&e.length<=4e3)return e;throw Error(`Invalid extension dialog answer`)}function sr(e){let t=Zr(e);if(t.length>1e3)throw Error(`String field exceeds limit: option`);return t}function cr(e){let t=E(e),n=ir(t.kind),r=t.options===void 0?void 0:Xr(t.options,sr,24,`options`);if(r!==void 0&&rr(r,`dialog option`),n===`select`&&(r===void 0||r.length===0))throw Error(`Select dialog has no options`);return{dialogId:Lr(t,`dialogId`,128),kind:n,title:Lr(t,`title`,Yt),...N(`message`,Rr(t,`message`,Yt)),...r===void 0?{}:{options:r},...N(`placeholder`,Rr(t,`placeholder`,Jt)),askedAt:M(t,`askedAt`),...N(`timeoutAt`,pr(t,`timeoutAt`)),runScoped:A(t,`runScoped`)}}function lr(e){if(e===void 0)return{};let t=j(cr)(e);return rr(t.map(e=>e.dialogId),`dialog id`),{pendingDialogs:t}}function ur(e){let t=E(e);if(t.type!==`dialog.opened`)throw Error(`Invalid dialog opened event type`);return{type:`dialog.opened`,dialog:cr(t.dialog),...Zn(t)}}function dr(e){let t=E(e);if(t.type!==`dialog.closed`)throw Error(`Invalid dialog closed event type`);let n=ar(t.reason),r=t.answer===void 0?void 0:or(t.answer);if(n===`answered`!=(r!==void 0))throw Error(`Dialog closed event answer mismatch`);return{type:`dialog.closed`,dialogId:Lr(t,`dialogId`,128),reason:n,...r===void 0?{}:{answer:r},...Zn(t)}}function fr(e){let t=E(e),n=ar(t.reason),r=t.answer===void 0?void 0:or(t.answer);if(n===`answered`!=(r!==void 0))throw Error(`Dialog outcome answer mismatch`);return{dialogId:Lr(t,`dialogId`,128),reason:n,...r===void 0?{}:{answer:r},askedAt:M(t,`askedAt`),closedAt:M(t,`closedAt`)}}function pr(e,t){let n=O(e,t);if(n!==void 0){if(n===``)throw Error(`Expected non-empty string field: ${t}`);return n}}function mr(e){let t=E(e);return{sessionId:D(t,`sessionId`),...N(`persisted`,Ma(t.persisted,`persisted`)),isStreaming:A(t,`isStreaming`),isCompacting:A(t,`isCompacting`),isBashRunning:A(t,`isBashRunning`),pendingMessageCount:k(t,`pendingMessageCount`),...N(`backgroundRunCount`,go(t,`backgroundRunCount`)),queuedMessages:t.queuedMessages===void 0?[]:j(di)(t.queuedMessages),...N(`messageCount`,go(t,`messageCount`)),tokens:fi(t.tokens),cost:k(t,`cost`),...mi(t.model),...Pi(t.contextUsage),...N(`thinkingLevel`,O(t,`thinkingLevel`)),...Wn(t.warnings),...Jn(t.pendingAsk),...lr(t.pendingDialogs)}}function hr(e){let t=E(e);return{seq:k(t,`seq`),partial:t.partial??null}}function gr(e){let t=E(e),n=t.kind;if(n===`replay`){let e=t.frames;if(!Array.isArray(e)||e.some(e=>typeof e!=`string`))throw Error(`Invalid stream sync frames`);return{kind:n,sinceSeq:k(t,`sinceSeq`),frames:e.map(e=>String(e))}}if(n===`resync`)return{kind:n,sinceSeq:k(t,`sinceSeq`)};if(n===`snapshot`)return{kind:n,seq:k(t,`seq`),partial:t.partial??null};throw Error(`Invalid stream sync kind`)}function _r(e){let t=E(e),n=t.subtasks===void 0?[]:j(_r)(t.subtasks);return{id:D(t,`id`),title:D(t,`title`),status:D(t,`status`),...N(`verificationContract`,O(t,`verificationContract`)),...n.length===0?{}:{subtasks:n}}}function vr(e){let t=E(e);return{id:D(t,`id`),objective:D(t,`objective`),status:D(t,`status`),path:D(t,`path`),sisyphus:A(t,`sisyphus`),autoContinue:A(t,`autoContinue`),...N(`createdAt`,O(t,`createdAt`)),...N(`updatedAt`,O(t,`updatedAt`)),...N(`currentTaskId`,O(t,`currentTaskId`)),...N(`stopReason`,O(t,`stopReason`)),...N(`pauseReason`,O(t,`pauseReason`)),...N(`verificationContract`,O(t,`verificationContract`)),...N(`tokensUsed`,go(t,`tokensUsed`)),...N(`activeSeconds`,go(t,`activeSeconds`)),tasks:j(_r)(t.tasks),completedTaskCount:k(t,`completedTaskCount`),totalTaskCount:k(t,`totalTaskCount`),...N(`sourceRoot`,O(t,`sourceRoot`))}}function yr(e){let t=E(e);return{goals:j(vr)(t.goals),directory:D(t,`directory`),generatedAt:D(t,`generatedAt`)}}function br(e){let t=E(e),n=j(mr)(t.statuses),r=new Set;for(let e of n){if(r.has(e.sessionId))throw Error(`Duplicate session status in catalog`);r.add(e.sessionId)}let i=pr(t,`daemonInstanceId`);return{statuses:n,generatedAt:D(t,`generatedAt`),...i===void 0?{}:{daemonInstanceId:i}}}function xr(e){let t=E(e),n=Qr(t,`catalogRevision`),r=Xr(t.sessions,Pr,Ut,`sessions`);if(Fr(r),Ir(r),r.some(e=>e.completionOrder>n))throw Error(`Session unread completion order exceeds catalog revision`);return{catalogId:Lr(t,`catalogId`,512),catalogRevision:n,sessions:r}}function Sr(e){let t=xr(e),n=E(e).outcome;if(n===void 0)return t;if(n!==`acknowledged`&&n!==`superseded`&&n!==`stale-epoch`)throw Error(`Invalid session unread acknowledge outcome`);return{...t,outcome:n}}function Cr(e){let t=E(e);if(t.type!==`sessions.unread`)throw Error(`Invalid session unread event type`);let n=Lr(t,`sessionId`,512),r=Lr(t,`cwd`,Wt),i=zr(t,`catalogRevision`),a=t.unread===null?null:Pr(t.unread);if(a!==null&&(a.sessionId!==n||a.cwd!==r))throw Error(`Session unread event identity mismatch`);if(a!==null&&a.completionOrder>i)throw Error(`Session unread completion order exceeds catalog revision`);return{type:`sessions.unread`,catalogId:Lr(t,`catalogId`,512),catalogRevision:i,sessionId:n,cwd:r,unread:a}}function wr(e){let t=E(e);if(t.type!==`session.startup`)throw Error(`Invalid session startup event type`);let n=O(t,`startupToken`);if(n===``)throw Error(`Expected non-empty string field: startupToken`);return{type:`session.startup`,...N(`startupToken`,n),activity:Tr(t.activity)}}function Tr(e){let t=E(e);return{sessionId:M(t,`sessionId`),phase:Dr(t,`phase`),label:M(t,`label`),...N(`detail`,O(t,`detail`)),at:M(t,`at`),...N(`startup`,Er(t))}}function Er(e){let t=e.startup;if(t!==void 0){if(typeof t!=`boolean`)throw Error(`Expected optional boolean field: startup`);return t}}function Dr(e,t){let n=D(e,t);if(n!==`active`&&n!==`idle`&&n!==`error`)throw Error(`Expected session activity phase field: ${t}`);return n}function Or(e){let t=E(e);switch(t.type){case`message.append`:return{type:`message.append`,message:Ar(t,`message`),...N(`clientMessageId`,O(t,`clientMessageId`)),...t.echo===!0?{echo:!0}:{}};case`assistant.delta`:return{type:`assistant.delta`,text:D(t,`text`)};case`assistant.thinking.delta`:return{type:`assistant.thinking.delta`,text:D(t,`text`)};case`tool.start`:return{type:`tool.start`,toolName:D(t,`toolName`),toolCallId:D(t,`toolCallId`),summary:D(t,`summary`),...N(`args`,t.args)};case`tool.update`:return{type:`tool.update`,toolName:D(t,`toolName`),toolCallId:D(t,`toolCallId`),text:D(t,`text`),...N(`content`,t.content),...N(`details`,t.details)};case`tool.end`:return{type:`tool.end`,toolName:D(t,`toolName`),toolCallId:D(t,`toolCallId`),text:D(t,`text`),isError:A(t,`isError`),...N(`content`,t.content),...N(`details`,t.details)};case`shell.start`:return{type:`shell.start`,command:D(t,`command`),...N(`excludeFromContext`,Ma(t.excludeFromContext,`excludeFromContext`))};case`shell.chunk`:return{type:`shell.chunk`,chunk:D(t,`chunk`)};case`shell.end`:return{type:`shell.end`,...N(`output`,O(t,`output`)),...N(`exitCode`,jr(t,`exitCode`)),...N(`cancelled`,Ma(t.cancelled,`cancelled`)),...N(`truncated`,Ma(t.truncated,`truncated`)),...N(`fullOutputPath`,O(t,`fullOutputPath`)),...N(`isError`,Ma(t.isError,`isError`))};case`agent.start`:return{type:`agent.start`};case`agent.end`:return{type:`agent.end`};case`message.end`:return{type:`message.end`,...N(`message`,t.message)};case`status.update`:return{type:`status.update`,status:mr(t.status)};case`activity.update`:return{type:`activity.update`,activity:Tr(t.activity)};case`command.output`:return Mr(t);case`session.error`:return{type:`session.error`,message:D(t,`message`)};case`session.name`:return Nr(t);case`session.created`:return{type:`session.created`,session:Bn(t.session)};case`pi.event`:return{type:`pi.event`,eventType:D(t,`eventType`)};case`prompt.accepted`:return{type:`prompt.accepted`,clientMessageId:D(t,`clientMessageId`)};default:throw Error(`Unsupported session stream event type`)}}function kr(e){let t=E(e);switch(t.type){case`status.update`:return{type:`status.update`,status:mr(t.status)};case`activity.update`:return{type:`activity.update`,activity:Tr(t.activity)};case`session.name`:return Nr(t);case`session.created`:return{type:`session.created`,session:Bn(t.session)};case`terminal.created`:return{type:`terminal.created`,terminal:Gi(t.terminal)};case`terminal.exited`:return{type:`terminal.exited`,terminal:Gi(t.terminal)};case`terminal.closed`:return{type:`terminal.closed`,terminalId:M(t,`terminalId`),cwd:M(t,`cwd`)};case`machine.status`:return{type:`machine.status`,status:Yi(t.status)};default:throw Error(`Unsupported realtime stream event type`)}}function Ar(e,t){let n=e[t];if(n===void 0)throw Error(`Expected field: ${t}`);return n}function jr(e,t){let n=e[t];if(n!==void 0){if(n===null)return null;if(typeof n!=`number`)throw Error(`Expected optional number|null field: ${t}`);return n}}function Mr(e){let t=D(e,`level`);if(t!==`info`&&t!==`success`&&t!==`error`)throw Error(`Invalid command output level`);return{type:`command.output`,level:t,message:D(e,`message`)}}function Nr(e){return{type:`session.name`,sessionId:M(e,`sessionId`),...N(`name`,O(e,`name`))}}function Pr(e){let t=E(e),n=Lr(t,`completedAt`,64),r=new Date(n);if(!Number.isFinite(r.getTime())||r.toISOString()!==n)throw Error(`Invalid canonical session unread completion time`);return{sessionId:Lr(t,`sessionId`,512),cwd:Lr(t,`cwd`,Wt),completionOrder:zr(t,`completionOrder`),completedAt:n}}function Fr(e){let t=e.map(e=>JSON.stringify([e.sessionId,e.cwd]));if(new Set(t).size!==t.length)throw Error(`Duplicate session unread identity`);let n=e.map(e=>e.completionOrder);if(new Set(n).size!==n.length)throw Error(`Duplicate session unread completion order`)}function Ir(e){for(let t=1;t<e.length;t+=1){let n=e[t-1],r=e[t];if(n===void 0||r===void 0||n.completionOrder<=r.completionOrder)throw Error(`Session unread summaries are not newest-first`)}}function Lr(e,t,n){let r=M(e,t);if(r.length>n)throw Error(`String field exceeds limit: ${t}`);return r}function Rr(e,t,n){let r=O(e,t);if(r!==void 0){if(r===``)throw Error(`Expected non-empty string field: ${t}`);if(r.length>n)throw Error(`String field exceeds limit: ${t}`);return r}}function zr(e,t){let n=Qr(e,t);if(n===0)throw Error(`Expected positive safe integer field: ${t}`);return n}function Br(e){let t=E(e),n=Ur(t.summary),r=Xr(t.notifications,Wr,100,`notifications`);if($r(r),ei(r),n.retainedCount!==r.length)throw Error(`Notification snapshot retained count mismatch`);if(n.highestSeverity!==ni(r))throw Error(`Notification snapshot severity mismatch`);let i=Gr(t.dismissThrough),a=r[0]?.order??0;if(i.order!==a)throw Error(`Notification snapshot dismiss cutoff mismatch`);if(i.overflowWatermark<n.discardedCount)throw Error(`Notification snapshot overflow cutoff mismatch`);return{daemonInstanceId:M(t,`daemonInstanceId`),catalogRevision:Qr(t,`catalogRevision`),summary:n,notifications:r,dismissThrough:i}}function Vr(e){let t=Br(e),n=E(e).outcome;if(n===void 0)return t;if(n!==`dismissed`&&n!==`stale-instance`)throw Error(`Invalid session notification dismiss outcome`);return{...t,outcome:n}}function Hr(e){let t=E(e);if(t.type!==`notifications.inbox`)throw Error(`Invalid notification inbox event type`);let n=Ur(t.summary),r=Gr(t.dismissThrough);if(r.overflowWatermark<n.discardedCount)throw Error(`Notification event overflow cutoff mismatch`);let i=Kr(t.delta);if(i.kind===`cleared`&&!ti(n))throw Error(`Notification clear event summary mismatch`);if(i.kind===`added`&&n.retainedCount===0)throw Error(`Notification add event summary mismatch`);return{type:`notifications.inbox`,daemonInstanceId:M(t,`daemonInstanceId`),catalogRevision:Qr(t,`catalogRevision`),summary:n,dismissThrough:r,delta:i}}function Ur(e){let t=E(e),n=Qr(t,`retainedCount`);if(n>100)throw Error(`Notification retained count exceeds limit`);let r=Qr(t,`discardedCount`),i=Jr(t.highestSeverity);if(n===0!=(i===void 0))throw Error(`Notification summary severity mismatch`);return{sessionId:M(t,`sessionId`),cwd:M(t,`cwd`),inboxRevision:Qr(t,`inboxRevision`),retainedCount:n,discardedCount:r,...i===void 0?{}:{highestSeverity:i}}}function Wr(e){let t=E(e),n=D(t,`message`);if(new TextEncoder().encode(n).byteLength>8192)throw Error(`Notification message exceeds byte limit`);let r=D(t,`receivedAt`);if(!Number.isFinite(Date.parse(r)))throw Error(`Invalid notification receive time`);let i=Qr(t,`order`);if(i===0)throw Error(`Invalid notification order`);let a=t.warningDismiss,o=T(a)?a.id:void 0;return{id:M(t,`id`),message:n,truncated:A(t,`truncated`),severity:qr(t.severity),receivedAt:r,order:i,...typeof o==`string`&&o!==``?{warningDismiss:{id:o}}:{}}}function Gr(e){let t=E(e);return{order:Qr(t,`order`),overflowWatermark:Qr(t,`overflowWatermark`)}}function Kr(e){let t=E(e);switch(t.kind){case`added`:{let e=O(t,`evictedNotificationId`);return{kind:`added`,notification:Wr(t.notification),...e===void 0?{}:{evictedNotificationId:e}}}case`dismissed`:{let e=Xr(t.notificationIds,Zr,100,`notificationIds`);if(new Set(e).size!==e.length)throw Error(`Duplicate dismissed notification id`);return{kind:`dismissed`,notificationIds:e}}case`cleared`:return{kind:`cleared`,reason:Yr(t.reason)};case`resync`:return{kind:`resync`};default:throw Error(`Invalid notification inbox delta`)}}function qr(e){if(e!==`info`&&e!==`warning`&&e!==`error`)throw Error(`Invalid notification severity`);return e}function Jr(e){return e===void 0?void 0:qr(e)}function Yr(e){switch(e){case`runtime-close`:case`archive`:case`delete`:case`restore`:case`archive-reconcile`:case`replacement`:case`initialization-failed`:case`service-dispose`:return e;default:throw Error(`Invalid notification clear reason`)}}function Xr(e,t,n,r){if(!Array.isArray(e))throw Error(`Expected array field: ${r}`);if(e.length>n)throw Error(`Array field exceeds limit: ${r}`);return e.map(t)}function Zr(e){if(typeof e!=`string`||e===``)throw Error(`Expected non-empty string`);return e}function M(e,t){let n=D(e,t);if(n===``)throw Error(`Expected non-empty string field: ${t}`);return n}function Qr(e,t){let n=e[t];if(typeof n!=`number`||!Number.isSafeInteger(n)||n<0)throw Error(`Expected non-negative safe integer field: ${t}`);return n}function $r(e){if(new Set(e.map(e=>e.id)).size!==e.length)throw Error(`Duplicate notification id`);if(new Set(e.map(e=>e.order)).size!==e.length)throw Error(`Duplicate notification order`)}function ei(e){for(let t=1;t<e.length;t+=1){let n=e[t-1],r=e[t];if(n===void 0||r===void 0||n.order<=r.order)throw Error(`Notifications are not newest-first`)}}function ti(e){return e.retainedCount===0&&e.discardedCount===0}function ni(e){let t;for(let n of e){if(n.severity===`error`)return`error`;n.severity===`warning`?t=`warning`:t??=`info`}return t}function ri(e){let t=E(e),n=t.skippedBusySessionIds===void 0?void 0:yn(t.skippedBusySessionIds,`skippedBusySessionIds`);return{generatedAt:D(t,`generatedAt`),thresholds:ci(t.thresholds),projects:j(li)(t.projects),totals:ui(t.totals),...n===void 0?{}:{skippedBusySessionIds:n}}}function ii(e){let t=E(e);return{...ri(t),archivedSessionIds:yn(t.archivedSessionIds,`archivedSessionIds`),deletedSessionIds:yn(t.deletedSessionIds,`deletedSessionIds`)}}function ai(e){let t=E(e);if(t.archived!==!0)throw Error(`Expected bulk archived response`);return{archived:!0,archivedSessionIds:yn(t.archivedSessionIds,`archivedSessionIds`),failures:j(si)(t.failures),generatedAt:D(t,`generatedAt`)}}function oi(e){let t=E(e);if(t.deleted!==!0)throw Error(`Expected bulk deleted response`);return{deleted:!0,deletedSessionIds:yn(t.deletedSessionIds,`deletedSessionIds`),failures:j(si)(t.failures),generatedAt:D(t,`generatedAt`)}}function si(e){let t=E(e);return{sessionId:D(t,`sessionId`),error:D(t,`error`)}}function ci(e){let t=E(e);return{...N(`archiveIdleDays`,go(t,`archiveIdleDays`)),...N(`deleteArchivedDays`,go(t,`deleteArchivedDays`))}}function li(e){let t=E(e);return{cwd:D(t,`cwd`),archiveCount:k(t,`archiveCount`),deleteCount:k(t,`deleteCount`)}}function ui(e){let t=E(e);return{archiveCount:k(t,`archiveCount`),deleteCount:k(t,`deleteCount`)}}function di(e){let t=E(e),n=D(t,`kind`);if(n!==`steer`&&n!==`followUp`)throw Error(`Invalid queued message kind`);return{kind:n,text:D(t,`text`),...N(`clientMessageId`,O(t,`clientMessageId`))}}function fi(e){let t=E(e);return{input:k(t,`input`),output:k(t,`output`),cacheRead:k(t,`cacheRead`),cacheWrite:k(t,`cacheWrite`),total:k(t,`total`)}}function pi(e){let t=E(e);return{...N(`provider`,O(t,`provider`)),...N(`id`,O(t,`id`)),...N(`name`,O(t,`name`)),...N(`contextWindow`,go(t,`contextWindow`)),...N(`reasoning`,t.reasoning)}}function mi(e){return e===void 0?{}:{model:pi(e)}}function hi(e){let t=E(e);return{models:j(pi)(t.models)}}function gi(e){let t=E(e);return{provider:D(t,`provider`),id:D(t,`id`),...N(`name`,O(t,`name`)),...N(`contextWindow`,go(t,`contextWindow`)),...N(`reasoning`,t.reasoning),enabled:A(t,`enabled`)}}function _i(e){let t=E(e);return{models:j(gi)(t.models)}}function vi(e){if(typeof e!=`string`)throw Error(`Invalid thinking level`);return e}function yi(e){let t=E(e);return{levels:j(vi)(t.levels)}}function bi(e){if(e!==`oauth`&&e!==`api_key`)throw Error(`Invalid auth type`);return e}function xi(e){if(e!==`stored`&&e!==`runtime`&&e!==`environment`&&e!==`fallback`&&e!==`models_json_key`&&e!==`models_json_command`)throw Error(`Invalid auth status source`);return e}function Si(e){let t=E(e),n=t.source===void 0?void 0:xi(t.source);return{configured:A(t,`configured`),...N(`source`,n),...N(`label`,O(t,`label`))}}function Ci(e){let t=E(e),n=t.loginFlow;if(n!==void 0&&n!==`interactive`)throw Error(`Invalid auth provider login flow`);return{id:D(t,`id`),name:D(t,`name`),authType:bi(t.authType),status:Si(t.status),...n===void 0?{}:{loginFlow:n}}}function wi(e){let t=E(e);return{providers:j(Ci)(t.providers)}}function Ti(e){let t=E(e);return{flowId:D(t,`flowId`),providerId:D(t,`providerId`),providerName:D(t,`providerName`),status:Ei(t.status),progress:j(e=>{if(typeof e!=`string`)throw Error(`Expected progress item string`);return e})(t.progress),...N(`error`,O(t,`error`)),...N(`auth`,Di(t.auth)),...N(`prompt`,ki(t.prompt)),...N(`select`,ji(t.select)),...N(`info`,Mi(t.info))}}function Ei(e){if(e!==`running`&&e!==`complete`&&e!==`error`&&e!==`cancelled`)throw Error(`Invalid OAuth flow status`);return e}function Di(e){if(e===void 0)return;let t=E(e);return{url:D(t,`url`),...N(`instructions`,O(t,`instructions`)),...N(`deviceCode`,Oi(t.deviceCode))}}function Oi(e){if(e===void 0)return;let t=E(e);return{userCode:D(t,`userCode`),...N(`intervalSeconds`,go(t,`intervalSeconds`)),...N(`expiresInSeconds`,go(t,`expiresInSeconds`))}}function ki(e){if(e===void 0)return;let t=E(e);return{requestId:D(t,`requestId`),message:D(t,`message`),promptType:Ai(t.promptType),...N(`placeholder`,O(t,`placeholder`)),...N(`allowEmpty`,ho(t,`allowEmpty`))}}function Ai(e){if(e!==`text`&&e!==`secret`&&e!==`manual_code`)throw Error(`Invalid OAuth prompt type`);return e}function ji(e){if(e===void 0)return;let t=E(e);return{requestId:D(t,`requestId`),message:D(t,`message`),options:j(no)(t.options)}}function Mi(e){if(e!==void 0)return j(e=>{let t=E(e);return{message:D(t,`message`),...N(`links`,t.links===void 0?void 0:j(Ni)(t.links))}})(e)}function Ni(e){let t=E(e);return{url:D(t,`url`),...N(`label`,O(t,`label`))}}function Pi(e){if(e===void 0)return{};let t=E(e);return{contextUsage:{tokens:_o(t,`tokens`),contextWindow:k(t,`contextWindow`),percent:_o(t,`percent`)}}}function Fi(e){let t=E(e),n=D(t,`source`);if(n!==`extension`&&n!==`prompt`&&n!==`skill`&&n!==`builtin`)throw Error(`Invalid command source`);return{name:D(t,`name`),source:n,...N(`description`,O(t,`description`))}}function Ii(e){let t=E(e),n=D(t,`kind`);if(n!==`tracked`&&n!==`untracked`&&n!==`other`)throw Error(`Invalid file kind`);return{path:D(t,`path`),kind:n}}function Li(e){let t=E(e);return{path:D(t,`path`),entries:j(Ri)(t.entries),scannedAt:D(t,`scannedAt`),truncated:A(t,`truncated`)}}function Ri(e){let t=E(e),n=D(t,`type`);if(n!==`file`&&n!==`directory`&&n!==`symlink`)throw Error(`Invalid file tree entry type`);return{name:D(t,`name`),path:D(t,`path`),type:n,...N(`size`,go(t,`size`)),...N(`modifiedAt`,O(t,`modifiedAt`))}}function zi(e){let t=E(e),n=D(t,`encoding`);if(n!==`utf8`)throw Error(`Invalid file encoding`);return{path:D(t,`path`),...N(`language`,O(t,`language`)),...N(`mediaType`,Ui(t.mediaType)),...N(`mimeType`,O(t,`mimeType`)),encoding:n,size:k(t,`size`),modifiedAt:D(t,`modifiedAt`),content:D(t,`content`),truncated:A(t,`truncated`),binary:A(t,`binary`)}}function Bi(e){let t=E(e);return{path:D(t,`path`),size:k(t,`size`),modifiedAt:D(t,`modifiedAt`),created:A(t,`created`)}}function Vi(e){let t=E(e);return{path:D(t,`path`),existed:A(t,`existed`)}}function Hi(e){let t=E(e);return{fromPath:D(t,`fromPath`),toPath:D(t,`toPath`),size:k(t,`size`),modifiedAt:D(t,`modifiedAt`)}}function Ui(e){if(e!==void 0){if(e!==`image`&&e!==`html`&&e!==`pdf`&&e!==`markdown`)throw Error(`Invalid file media type`);return e}}function Wi(e){let t=E(e),n=t.decision;if(n!==!0&&n!==!1&&n!==null)throw Error(`Invalid workspace trust decision`);return{path:D(t,`path`),decision:n,trusted:A(t,`trusted`)}}function Gi(e){let t=E(e);return{id:D(t,`id`),cwd:D(t,`cwd`),name:D(t,`name`),createdAt:D(t,`createdAt`),exited:A(t,`exited`),...N(`exitCode`,go(t,`exitCode`)),...N(`commandRunId`,O(t,`commandRunId`))}}function Ki(e){let t=E(e);return{id:D(t,`id`),origin:D(t,`origin`),projectId:D(t,`projectId`),workspaceId:D(t,`workspaceId`),terminalId:D(t,`terminalId`),title:D(t,`title`),command:D(t,`command`),status:qi(t.status),...N(`exitCode`,go(t,`exitCode`)),createdAt:D(t,`createdAt`),...N(`startedAt`,O(t,`startedAt`)),...N(`completedAt`,O(t,`completedAt`)),metadata:Ji(t.metadata,`metadata`)}}function qi(e){if(e!==`queued`&&e!==`running`&&e!==`succeeded`&&e!==`failed`)throw Error(`Invalid terminal command run status`);return e}function Ji(e,t){let n=E(e);return Object.fromEntries(Object.entries(n).map(([e,n])=>{if(typeof n!=`string`)throw Error(`Expected string record field: ${t}.${e}`);return[e,n]}))}function Yi(e){let t=$t(e);if(t===void 0)throw Error(`Expected machine status snapshot`);return t}function Xi(e){let t=E(e),n=t.enabled===!0,r=typeof t.disabledReason==`string`?t.disabledReason:void 0,i=typeof t.latest==`string`?t.latest:void 0,a=typeof t.branch==`string`?t.branch:void 0;return n?{enabled:!0,current:D(t,`current`),latest:i,available:t.available===!0,branch:a,checkedAt:D(t,`checkedAt`)}:{enabled:!1,current:``,latest:i,available:!1,branch:a,checkedAt:D(t,`checkedAt`),...r===void 0?{}:{disabledReason:r}}}function Zi(e){let t=E(e);return{goalId:D(t,`goalId`),archivedPath:typeof t.archivedPath==`string`?t.archivedPath:``,alreadyArchived:t.alreadyArchived===!0,agentMayRecreate:t.agentMayRecreate===!0}}function Qi(e){let t=E(e);return{hub:ea(t.hub),machines:j(ta)(t.machines)}}function $i(e){let t=E(e),n=D(t,`operation`);if(n!==`restart`&&n!==`update`)throw Error(`Invalid fleet operation`);return{operation:n,hub:ea(t.hub),outcomes:j(na)(t.outcomes)}}function ea(e){let t=E(e);return{machineId:D(t,`machineId`),name:D(t,`name`)}}function ta(e){let t=E(e),n=D(t,`kind`);if(n!==`local`&&n!==`remote`)throw Error(`Invalid machine kind`);return{...ea(e),kind:n,online:t.online===!0,...N(`version`,O(t,`version`)),...N(`piVersion`,O(t,`piVersion`)),...N(`error`,O(t,`error`))}}function na(e){let t=E(e);return{...ea(e),started:t.started===!0,...N(`error`,O(t,`error`))}}function ra(e){let t=E(e);return{path:D(t,`path`),exists:A(t,`exists`),config:ia(t.config),effectiveConfig:ia(t.effectiveConfig),envOverrides:_a(t.envOverrides)}}function ia(e){let t=E(e);return{...N(`host`,O(t,`host`)),...N(`port`,go(t,`port`)),...N(`allowedHosts`,la(t.allowedHosts)),...N(`shortcuts`,ha(t.shortcuts)),...N(`plugins`,ga(t.plugins)),...N(`pathAccess`,ua(t.pathAccess)),...N(`uploads`,fa(t.uploads)),...N(`maxUploadBytes`,go(t,`maxUploadBytes`)),...N(`agent`,ca(t.agent)),...N(`spawnSessions`,ho(t,`spawnSessions`)),...N(`subsessions`,ho(t,`subsessions`)),...N(`askUser`,ho(t,`askUser`)),...N(`speechToText`,oa(t.speechToText)),...N(`environmentFacts`,ho(t,`environmentFacts`)),...N(`extensionDialogsTimeoutMs`,go(t,`extensionDialogsTimeoutMs`))}}var aa=[`browser`,`openai-realtime`,`deepgram`,`azure-speech`];function oa(e){if(e===void 0)return;if(!T(e)||Array.isArray(e))throw Error(`Invalid PI WEB speechToText field`);let t=e.endpoint;if(typeof t!=`string`||t.trim()===``)throw Error(`Invalid PI WEB speechToText field`);return{endpoint:t,...N(`model`,O(e,`model`)),...N(`language`,O(e,`language`)),...N(`streaming`,sa(e.streaming))}}function sa(e){if(e===void 0)return;if(!T(e)||Array.isArray(e))throw Error(`Invalid PI WEB speechToText.streaming field`);let t=aa.find(t=>t===e.protocol);if(t===void 0)throw Error(`Invalid PI WEB speechToText.streaming field`);return{protocol:t,...N(`url`,O(e,`url`)),...N(`model`,O(e,`model`)),...N(`tokenEndpoint`,O(e,`tokenEndpoint`))}}function ca(e){if(e!==void 0){if(!T(e)||Array.isArray(e))throw Error(`Invalid PI WEB agent field`);return{...N(`command`,O(e,`command`)),...N(`dir`,O(e,`dir`))}}}function la(e){if(e!==void 0){if(e===!0)return!0;if(pa(e))return e;throw Error(`Invalid PI WEB allowedHosts field`)}}function ua(e){if(e===void 0)return;if(!T(e))throw Error(`Invalid PI WEB pathAccess field`);let t=e.allowedPaths;return{...N(`allowedPaths`,da(t,`pathAccess.allowedPaths`))}}function da(e,t){if(e!==void 0){if(ma(e))return e;throw Error(`Invalid PI WEB ${t} field`)}}function fa(e){if(e!==void 0){if(!T(e)||Array.isArray(e))throw Error(`Invalid PI WEB uploads field`);return{...N(`defaultFolder`,O(e,`defaultFolder`))}}}function pa(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`)}function ma(e){return Array.isArray(e)&&e.every(e=>typeof e==`string`&&e!==``)}function ha(e){if(e!==void 0){if(!T(e)||Array.isArray(e))throw Error(`Invalid PI WEB shortcuts field`);return Object.fromEntries(Object.entries(e).map(([e,t])=>{if(t!==null&&(typeof t!=`string`||t===``))throw Error(`Invalid PI WEB shortcut field`);return[e,t]}))}}function ga(e){if(e!==void 0){if(!T(e)||Array.isArray(e))throw Error(`Invalid PI WEB plugins field`);return Object.fromEntries(Object.entries(e).map(([e,t])=>{if(!T(t)||Array.isArray(t))throw Error(`Invalid PI WEB plugin config field`);let n=t.enabled;if(n!==void 0&&typeof n!=`boolean`)throw Error(`Invalid PI WEB plugin enabled field`);let r=t.settings;if(r!==void 0&&(!T(r)||Array.isArray(r)))throw Error(`Invalid PI WEB plugin settings field`);return[e,t]}))}}function _a(e){let t=E(e);return{host:A(t,`host`),port:A(t,`port`),allowedHosts:A(t,`allowedHosts`),spawnSessions:A(t,`spawnSessions`),subsessions:A(t,`subsessions`),askUser:A(t,`askUser`)}}function va(e){let t=E(e);return{packages:j(ba)(t.packages)}}function ya(e){let t=E(e),n=O(t,`source`),r=t.scope===void 0?void 0:xa(t.scope),i=Ma(t.removed,`removed`);return{action:Sa(t.action),...N(`source`,n),...N(`scope`,r),...N(`removed`,i),packages:j(ba)(t.packages)}}function ba(e){let t=E(e);return{source:D(t,`source`),scope:xa(t.scope),filtered:A(t,`filtered`),...N(`installedPath`,O(t,`installedPath`))}}function xa(e){if(e!==`user`&&e!==`project`)throw Error(`Invalid Pi package scope`);return e}function Sa(e){if(e!==`install`&&e!==`remove`&&e!==`update`)throw Error(`Invalid Pi package mutation action`);return e}function Ca(e){let t=E(e),n=j(wa)(t.plugins);if(t.lifecycleVersion===void 0)return{lifecycleVersion:1,plugins:n,diagnostics:[],serverRuntime:{status:`incompatible`,restartRequired:!1,message:`PI WEB does not support plugin lifecycle diagnostics. Update and restart PI WEB, then try again.`,recovery:Aa()}};if(t.lifecycleVersion!==1)throw Error(`Unsupported PI WEB plugin lifecycle version`);return{lifecycleVersion:1,plugins:n,diagnostics:j(Da)(t.diagnostics),serverRuntime:Oa(t.serverRuntime)}}function wa(e){let t=E(e),n=D(t,`id`),r=t.server===void 0?void 0:Ta(t.server,n);return{id:n,...N(`module`,O(t,`module`)),source:D(t,`source`),scope:ja(t.scope),machineSpecific:Ma(t.machineSpecific,`machineSpecific`)??!1,enabled:A(t,`enabled`),discovered:Ma(t.discovered,`discovered`)??!0,conflict:Ma(t.conflict,`conflict`)??!1,...r===void 0?{}:{server:r}}}function Ta(e,t){let n=E(e),r=n.state,i=n.phase;if(r!==`active`&&r!==`failed`&&r!==`incompatible`&&r!==`disabled`&&r!==`missing`&&r!==`unknown`)throw Error(`Invalid PI WEB server plugin state`);if(i!==void 0&&i!==`import`&&i!==`activate`&&i!==`validate`&&i!==`start`&&i!==`health`&&i!==`stop`)throw Error(`Invalid PI WEB server plugin phase`);let a=n.health===void 0?void 0:Ea(n.health),o=D(n,`disableCommand`);if(o!==_n(t))throw Error(`Invalid PI WEB server plugin recovery command`);return{state:r,...N(`desiredRevision`,O(n,`desiredRevision`)),...N(`activeRevision`,O(n,`activeRevision`)),...i===void 0?{}:{phase:i},...N(`message`,O(n,`message`)),...a===void 0?{}:{health:a},staleRevision:A(n,`staleRevision`),restartRequired:A(n,`restartRequired`),disableCommand:o}}function Ea(e){let t=E(e),n=t.status;if(n!==`healthy`&&n!==`degraded`&&n!==`unhealthy`)throw Error(`Invalid PI WEB server plugin health status`);return{status:n,...N(`message`,O(t,`message`))}}function Da(e){let t=E(e),n=t.kind,r=t.snapshot;if(n!==`conflict`&&n!==`discovery`)throw Error(`Invalid PI WEB plugin diagnostic kind`);if(r!==`desired`&&r!==`active`)throw Error(`Invalid PI WEB plugin diagnostic snapshot`);return{kind:n,snapshot:r,source:D(t,`source`),message:D(t,`message`),...N(`pluginId`,O(t,`pluginId`))}}function Oa(e){let t=E(e),n=t.status,r=t.safeStart,i=t.desiredSafeStart;if(n!==`available`&&n!==`unavailable`&&n!==`incompatible`)throw Error(`Invalid PI WEB server-plugin runtime status`);if(r!==void 0&&r!==`bundled-only`&&r!==`none`)throw Error(`Invalid PI WEB server-plugin safe-start state`);if(i!==void 0&&i!==`off`&&i!==`bundled-only`&&i!==`none`)throw Error(`Invalid desired PI WEB server-plugin safe-start state`);return{status:n,...r===void 0?{}:{safeStart:r},...i===void 0?{}:{desiredSafeStart:i},restartRequired:A(t,`restartRequired`),...N(`message`,O(t,`message`)),recovery:ka(t.recovery)}}function ka(e){let t=E(e),n={showSafeStart:D(t,`showSafeStart`),bundledOnly:D(t,`bundledOnly`),noServerPlugins:D(t,`noServerPlugins`),clearSafeStart:D(t,`clearSafeStart`)};if(n.showSafeStart!==gn.showSafeStart||n.bundledOnly!==gn.bundledOnly||n.noServerPlugins!==gn.noServerPlugins||n.clearSafeStart!==gn.clearSafeStart)throw Error(`Invalid PI WEB server plugin recovery commands`);return n}function Aa(){return{...gn}}function ja(e){if(e!==`bundled`&&e!==`local`&&e!==`user`&&e!==`project`)throw Error(`Invalid PI WEB plugin scope`);return e}function Ma(e,t){if(e!==void 0){if(typeof e!=`boolean`)throw Error(`Expected optional boolean field: ${t}`);return e}}function Na(e){let t=E(e);return{packageName:D(t,`packageName`),generatedAt:D(t,`generatedAt`),components:Fa(t.components),release:Ba(t.release),commands:Va(t.commands),messages:j(Ha)(t.messages)}}function Pa(e){let t=E(e);return{packageName:D(t,`packageName`),generatedAt:D(t,`generatedAt`),components:Ia(t.components),capabilities:Wa(t.capabilities)}}function Fa(e){let t=E(e);return{web:Ra(t.web),sessiond:Ra(t.sessiond)}}function Ia(e){let t=E(e);return{web:La(t.web),sessiond:La(t.sessiond)}}function La(e){let t=E(e);return{component:Ua(t.component),label:D(t,`label`),...N(`runtimeVersion`,O(t,`runtimeVersion`)),...N(`piVersion`,O(t,`piVersion`)),available:A(t,`available`),capabilities:Wa(t.capabilities),...N(`error`,O(t,`error`))}}function Ra(e){let t=E(e);return{component:Ua(t.component),label:D(t,`label`),...N(`runtimeVersion`,O(t,`runtimeVersion`)),...N(`installedVersion`,O(t,`installedVersion`)),...N(`piVersion`,O(t,`piVersion`)),stale:A(t,`stale`),available:A(t,`available`),...N(`installation`,za(t.installation)),...N(`error`,O(t,`error`))}}function za(e){if(e===void 0)return;let t=E(e),n=D(t,`kind`);if(n!==`pi-package`&&n!==`npm-global`&&n!==`local`&&n!==`docker`&&n!==`unknown`)throw Error(`Invalid PI WEB installation kind`);let r=t.scope;if(r!==void 0&&r!==`user`&&r!==`project`)throw Error(`Invalid PI WEB installation scope`);let i=t.dockerMode;if(i!==void 0&&i!==`runtime`&&i!==`dev`)throw Error(`Invalid PI WEB Docker mode`);return{kind:n,...N(`path`,O(t,`path`)),...N(`source`,O(t,`source`)),...r===void 0?{}:{scope:r},...N(`npmRoot`,O(t,`npmRoot`)),...i===void 0?{}:{dockerMode:i}}}function Ba(e){let t=E(e);return{packageName:D(t,`packageName`),...N(`latestVersion`,O(t,`latestVersion`)),updateAvailable:A(t,`updateAvailable`),...N(`checkedAt`,O(t,`checkedAt`)),...t.skipped===!0?{skipped:!0}:{},...N(`error`,O(t,`error`))}}function Va(e){let t=E(e);return{...N(`update`,O(t,`update`)),...N(`restart`,O(t,`restart`)),...N(`restartWeb`,O(t,`restartWeb`)),...N(`restartSessiond`,O(t,`restartSessiond`)),...N(`status`,O(t,`status`))}}function Ha(e){let t=E(e);return{id:D(t,`id`),severity:Ga(t.severity),title:D(t,`title`),body:D(t,`body`),...N(`command`,O(t,`command`))}}function Ua(e){if(e!==`web`&&e!==`sessiond`)throw Error(`Invalid PI WEB service component`);return e}function Wa(e){let t=cn(e);if(t===void 0)throw Error(`Invalid PI WEB capabilities`);return t}function Ga(e){if(e!==`info`&&e!==`warning`&&e!==`error`)throw Error(`Invalid PI WEB status severity`);return e}function Ka(e){let t=E(e),n=D(t,`type`);if(n===`unsupported`)return{type:n,message:D(t,`message`)};if(n===`select`)return{type:n,requestId:D(t,`requestId`),title:D(t,`title`),options:j(no)(t.options)};if(n===`tree`)return{type:n,tree:qa(t.tree)};if(n===`done`)return{type:n,...N(`message`,O(t,`message`)),...ro(t.session),...N(`promptDraft`,O(t,`promptDraft`))};throw Error(`Invalid command result type`)}function qa(e){let t=E(e),n=j(Ja)(t.nodes),r=new Set(n.map(e=>e.id));if(r.size!==n.length)throw Error(`Duplicate session tree node id`);let i=$a(t,`activeLeafId`);if(i!==null&&!r.has(i))throw Error(`Invalid session tree activeLeafId`);return{nodes:n,activeLeafId:i,activePathIds:to(t.activePathIds,`activePathIds`)}}function Ja(e){let t=E(e);return{id:eo(t,`id`),parentId:$a(t,`parentId`),kind:Ya(t.kind),summary:D(t,`summary`),...N(`timestamp`,O(t,`timestamp`)),...N(`label`,O(t,`label`))}}function Ya(e){switch(e){case`user`:case`assistant`:case`tool-result`:case`bash`:case`custom-message`:case`compaction`:case`branch-summary`:case`model-change`:case`thinking-level-change`:case`session-info`:case`label`:case`custom`:case`other`:return e;default:throw Error(`Invalid session tree node kind`)}}function Xa(e){let t=E(e),n=A(t,`cancelled`);if(Object.hasOwn(t,`summaryEntry`))throw Error(`Invalid session tree navigation result field: summaryEntry`);if(n){Qa(t,`editorText`,`session tree cancellation result`);let e=t.aborted;if(e!==void 0&&typeof e!=`boolean`)throw Error(`Expected optional boolean field: aborted`);return{cancelled:n,...e===void 0?{}:{aborted:e}}}return Qa(t,`aborted`,`session tree navigation result`),{cancelled:n,...N(`editorText`,O(t,`editorText`))}}function Za(e){let t=E(e),n=A(t,`cancelled`);return n?(Qa(t,`session`,`session tree fork cancellation result`),Qa(t,`promptDraft`,`session tree fork cancellation result`),{cancelled:n}):{cancelled:n,session:Bn(t.session),...N(`promptDraft`,O(t,`promptDraft`))}}function Qa(e,t,n){if(Object.hasOwn(e,t))throw Error(`Invalid ${n} field: ${t}`)}function $a(e,t){let n=e[t];if(n!==null&&typeof n!=`string`)throw Error(`Expected string or null field: ${t}`);if(typeof n==`string`&&n.trim()===``)throw Error(`Expected non-blank string or null field: ${t}`);return n}function eo(e,t){let n=D(e,t);if(n.trim()===``)throw Error(`Expected non-blank string field: ${t}`);return n}function to(e,t){let n=yn(e,t);if(n.some(e=>e.trim()===``))throw Error(`Expected non-blank string array field: ${t}`);return n}function no(e){let t=E(e);return{value:D(t,`value`),label:D(t,`label`),...N(`description`,O(t,`description`))}}function ro(e){return e===void 0?{}:{session:Bn(e)}}function io(e){if(E(e).accepted!==!0)throw Error(`Expected accepted response`);return{accepted:!0}}function ao(e){let t=E(e);return j(oo)(t.attachments)}function oo(e){let t=E(e);return{path:D(t,`path`),mimeType:D(t,`mimeType`),size:k(t,`size`)}}function so(e){if(E(e).closed!==!0)throw Error(`Expected closed response`);return{closed:!0}}function co(e){let t=E(e);if(t.aborted!==!0)throw Error(`Expected aborted response`);let n=t.discarded;return{aborted:!0,discarded:Array.isArray(n)?j(di)(n):[]}}function lo(e){if(E(e).stopped!==!0)throw Error(`Expected stopped response`);return{stopped:!0}}function uo(e){let t=E(e);if(t.archived!==!0)throw Error(`Expected archived response`);let n=t.sessionIds===void 0?void 0:yn(t.sessionIds,`sessionIds`),r=go(t,`archivedCount`),i=go(t,`skippedAlreadyArchivedCount`);return{archived:!0,...n===void 0?{}:{sessionIds:n},...r===void 0?{}:{archivedCount:r},...i===void 0?{}:{skippedAlreadyArchivedCount:i}}}function fo(e){if(E(e).restored!==!0)throw Error(`Expected restored response`);return{restored:!0}}function po(e){if(E(e).detached!==!0)throw Error(`Expected detached response`);return{detached:!0}}function mo(e){if(E(e).reloaded!==!0)throw Error(`Expected reloaded response`);return{reloaded:!0}}function ho(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`boolean`)throw Error(`Invalid PI WEB ${t} field`);return n}}function go(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`number`)throw Error(`Expected optional number field: ${t}`);return n}}function _o(e,t){let n=e[t];if(n===null)return null;if(typeof n!=`number`)throw Error(`Expected number|null field: ${t}`);return n}function N(e,t){return t===void 0?{}:{[e]:t}}function vo(e){if(!T(e))return{runs:[]};let t=e.runs;if(!Array.isArray(t))return{runs:[]};let n=[];for(let e of t){if(!T(e))continue;let t=e.sessionId,r=e.cwd,i=e.interruptedAt;typeof t!=`string`||t===``||typeof r!=`string`||typeof i!=`string`||n.push({sessionId:t,cwd:r,interruptedAt:i})}return{runs:n}}function yo(e){if(!T(e))return{subsessions:[],toolRuns:[]};let t=[],n=e.subsessions;if(Array.isArray(n))for(let e of n){if(!T(e))continue;let n=e.sessionId,r=e.cwd,i=e.status;typeof n!=`string`||n===``||typeof r==`string`&&(i!==`working`&&i!==`idle`&&i!==`error`&&i!==`unknown`||t.push({sessionId:n,cwd:r,status:i}))}return{subsessions:t,toolRuns:wo(e.toolRuns)}}function bo(e){let t=mr(e);return{recalled:T(e)&&e.recalled===!0,status:t}}function xo(e){if(!T(e)||!Array.isArray(e.tasks))return[];let t=[];for(let n of e.tasks){if(!T(n))continue;let e=n.id,r=n.name,i=n.status;typeof e!=`string`||e===``||t.push({id:e,name:typeof r==`string`&&r!==``?r:e,command:typeof n.command==`string`?n.command:``,status:typeof i==`string`?i:`unknown`,...typeof n.startedAt==`string`?{startedAt:n.startedAt}:{},...typeof n.endedAt==`string`?{endedAt:n.endedAt}:{},...typeof n.durationMs==`number`?{durationMs:n.durationMs}:{},...typeof n.exitCode==`number`?{exitCode:n.exitCode}:{},bytesWritten:typeof n.bytesWritten==`number`?n.bytesWritten:0,hasOutput:n.hasOutput===!0})}return t}function So(e){if(!T(e))return``;let t=e.output;return typeof t==`string`?t:``}function Co(e){if(!T(e))return``;let t=e.output;return typeof t==`string`?t:``}function wo(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!T(n))continue;let e=n.runId,r=n.agent,i=n.status,a=n.elapsedMs,o=n.startedAt;if(typeof e!=`string`||e===``||typeof r!=`string`||r===``||i!==`running`&&i!==`done`&&i!==`failed`&&i!==`lost`&&i!==`unknown`||typeof a!=`number`||typeof o!=`string`)continue;let s=n.lastActivity,c=n.task,l=n.model,u=n.toolCount;t.push({runId:e,agent:r,status:i,elapsedMs:a,startedAt:o,...typeof s==`string`&&s!==``?{lastActivity:s}:{},...typeof c==`string`&&c!==``?{task:c}:{},...typeof l==`string`&&l!==``?{model:l}:{},...typeof u==`number`?{toolCount:u}:{},hasOutput:n.hasOutput===!0})}return t}function To(e){return typeof e==`string`?e:e.id}function Eo(e){return typeof e==`string`?void 0:e.cwd}function Do(e,t,n=`local`){let r=new URLSearchParams,i=Eo(e);i!==void 0&&i!==``&&r.set(`cwd`,i),t?.limit!==void 0&&r.set(`limit`,String(t.limit)),t?.before!==void 0&&r.set(`before`,String(t.before));let a=r.toString();return`api/machines/${encodeURIComponent(n)}/sessions/${encodeURIComponent(To(e))}/messages${a===``?``:`?${a}`}`}function Oo(e,t,n,r=`local`){let i=new URLSearchParams,a=Eo(e);a!==void 0&&a!==``&&i.set(`cwd`,a),n?.limit!==void 0&&i.set(`limit`,String(n.limit)),n?.before!==void 0&&i.set(`before`,String(n.before));let o=i.toString();return`api/machines/${encodeURIComponent(r)}/sessions/${encodeURIComponent(To(e))}/subagent-runs/${encodeURIComponent(t)}/messages${o===``?``:`?${o}`}`}function ko(e,t,n,r){let i=new URLSearchParams({path:n});return r?.createDirs===!1&&i.set(`createDirs`,`false`),r?.overwrite===!1&&i.set(`overwrite`,`false`),Ze(`${`api/machines/${encodeURIComponent(r?.machineId??`local`)}`}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/file?${i.toString()}`)}function Ao(e,t,n,r){let i=new URLSearchParams;return i.set(`path`,n),r?.modifiedAt!==void 0&&i.set(`v`,r.modifiedAt),r?.download===!0&&i.set(`download`,`1`),`${`api/machines/${encodeURIComponent(r?.machineId??`local`)}`}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/file/preview?${i.toString()}`}function jo(e,t,n,r){return Ze(Ao(e,t,n,r))}var P=(e=`local`)=>`api/machines/${encodeURIComponent(e)}`;function Mo(e,t=`local`){return`${P(t)}/sessions/${encodeURIComponent(e.id)}`}function F(e,t,n=`local`){return`${Mo(e,n)}/${t}`}function No(e,t,n=`local`){return`${F(e,t,n)}${Po(e)}`}function Po(e){return`?${new URLSearchParams({cwd:e.cwd}).toString()}`}function I(e,t={}){return JSON.stringify({cwd:e.cwd,...t})}function Fo(e){return JSON.stringify({sessions:e.map(Io)})}function Io(e){return{id:e.id,cwd:e.cwd}}function Lo(e){return e===`local`?`api/pi-web/status`:`${P(e)}/pi-web/status`}var Ro={piWebStatus:(e=`local`)=>v(Lo(e),Na),checkForUpdates:(e=`local`)=>v(`${Lo(e)}?refresh=1`,Na,{cache:`no-store`}),piWebRuntime:()=>v(`api/pi-web/runtime`,Pa)},zo={machines:()=>v(`api/machines`,xn),addMachine:e=>v(`api/machines`,Sn,{method:`POST`,body:JSON.stringify(e)}),deleteMachine:e=>v(`api/machines/${encodeURIComponent(e)}`,e=>e,{method:`DELETE`}),updateMachine:(e,t)=>v(`api/machines/${encodeURIComponent(e)}`,Sn,{method:`PATCH`,body:JSON.stringify(t)}),health:e=>v(`api/machines/${encodeURIComponent(e)}/health`,Cn),runtime:(e,t=!1)=>v(`api/machines/${encodeURIComponent(e)}/runtime${t?`?refresh=1`:``}`,wn,t?{cache:`no-store`}:{})};function Bo(e){return e===void 0?`api/config`:`${P(e)}/config`}function Vo(e){return e===void 0?`api/plugins`:`${P(e)}/plugins`}var Ho={config:e=>v(Bo(e),ra),saveConfig:(e,t)=>v(Bo(t),ra,{method:`PUT`,body:JSON.stringify({config:e})})};function Uo(e){let t=ss(e)?e:{},n=t.started===!0,r=typeof t.error==`string`?t.error:void 0;return r===void 0?{started:n}:{started:n,error:r}}var Wo={plugins:e=>v(Vo(e),Ca)},Go={status:()=>v(`api/pi-web/update/status`,Xi,{cache:`no-store`}),apply:()=>v(`api/pi-web/update/apply`,Uo,{method:`POST`,body:JSON.stringify({})})},Ko={report:()=>v(`api/pi-web/fleet`,Qi,{cache:`no-store`}),run:(e,t)=>v(`api/pi-web/fleet/run`,$i,{method:`POST`,body:JSON.stringify({operation:e,...t===void 0?{}:{machineIds:t}})})};function qo(e=``,t){let n=t===void 0?`api/pi-packages`:`${P(t)}/pi-packages`;return e===``?n:`${n}/${e}`}var Jo={packages:e=>v(qo(``,e),va),install:(e,t)=>{let n={source:e};return v(qo(`install`,t),ya,{method:`POST`,body:JSON.stringify(n)})},remove:(e,t,n)=>{let r=t===void 0?{source:e}:{source:e,scope:t};return v(qo(`remove`,n),ya,{method:`POST`,body:JSON.stringify(r)})},update:(e,t)=>{let n=e===void 0?void 0:{source:e};return v(qo(`update`,t),ya,{method:`POST`,...n===void 0?{}:{body:JSON.stringify(n)}})}},Yo={machineStatus:(e=`local`)=>v(`${P(e)}/status`,Yi)},Xo={projects:(e=`local`)=>v(`${P(e)}/projects`,j(On)),addProject:(e,t,n,r=`local`)=>v(`${P(r)}/projects`,On,{method:`POST`,body:JSON.stringify({path:e,name:t,create:n})}),closeProject:(e,t=`local`)=>v(`${P(t)}/projects/${encodeURIComponent(e)}`,so,{method:`DELETE`}),projectDirectories:(e,t=`local`,n)=>v(`${P(t)}/project-directories?q=${encodeURIComponent(e)}`,j(Ii),n)};function Zo(e,t=`local`){return v(`${P(t)}/projects/${encodeURIComponent(e)}/workspaces`,t=>{let n=An(t);if(n.projectId!==e)throw Error(`Workspace resolution did not match the requested project`);return n})}var Qo={workspaceResolution:Zo,workspaces:async(e,t=`local`)=>[...(await Zo(e,t)).workspaces],deleteWorkspace:(e,t,n,r=`local`)=>{let i={precondition:n};return v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}`,Ki,{method:`DELETE`,body:JSON.stringify(i)})},archiveWorkspaceGoal:(e,t,n,r=`local`)=>v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/goals/${encodeURIComponent(n)}/archive`,Zi,{method:`POST`,body:JSON.stringify({})}),workspaceGoals:(e,t,n=`local`,r)=>{let i=r===void 0||r===``?``:`?sessionCwd=${encodeURIComponent(r)}`;return v(`${P(n)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/goals${i}`,yr,{cache:`no-store`})},workspaceTree:(e,t,n=``,r=`local`)=>v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/tree?path=${encodeURIComponent(n)}`,Li),workspaceFile:(e,t,n,r=`local`)=>v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/file?path=${encodeURIComponent(n)}`,zi),writeWorkspaceFile:(e,t,n,r,i,a=`local`)=>{let o=new URLSearchParams({path:n});i?.createDirs===!1&&o.set(`createDirs`,`false`),i?.overwrite===!1&&o.set(`overwrite`,`false`);let s=r instanceof Uint8Array,c=s?new Uint8Array(r):new TextEncoder().encode(r);return v(`${P(a)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/file?${o.toString()}`,Bi,{method:`PUT`,body:c,headers:{"Content-Type":s?`application/octet-stream`:`text/plain`}})},deleteWorkspaceFile:(e,t,n,r=`local`)=>{let i=new URLSearchParams({path:n});return v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/file?${i.toString()}`,Vi,{method:`DELETE`})},moveWorkspaceFile:(e,t,n,r,i,a=`local`)=>{let o=new URLSearchParams({fromPath:n,toPath:r});return i?.createDirs===!1&&o.set(`createDirs`,`false`),i?.overwrite===!0&&o.set(`overwrite`,`true`),v(`${P(a)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/file/move?${o.toString()}`,Hi,{method:`POST`})}},$o={sessions:(e,t=`local`)=>v(`${P(t)}/sessions?cwd=${encodeURIComponent(e)}`,j(Bn)),unreadCatalog:(e=`local`)=>v(`${P(e)}/sessions/unread`,xr,{cache:`no-store`}),statusCatalog:(e=`local`)=>v(`${P(e)}/sessions/statuses`,br,{cache:`no-store`}),interruptedRuns:(e=`local`)=>v(`${P(e)}/sessions/interrupted`,vo,{cache:`no-store`}),subsessions:(e,t=`local`)=>v(`${F(e,`subsessions`,t)}?cwd=${encodeURIComponent(e.cwd)}`,yo,{cache:`no-store`}),acknowledgeUnread:(e,t,n,r=`local`)=>{let i={cwd:e.cwd,catalogId:t,throughCompletionOrder:n};return v(F(e,`unread/acknowledge`,r),Sr,{method:`POST`,body:JSON.stringify(i)})},notificationInbox:(e,t=`local`)=>v(No(e,`notifications`,t),Br),dismissNotification:(e,t,n,r=`local`)=>v(F(e,`notifications/dismiss`,r),Vr,{method:`POST`,body:I(e,{daemonInstanceId:t,notificationId:n})}),dismissAllNotifications:(e,t,n,r=`local`)=>v(F(e,`notifications/dismiss-all`,r),Vr,{method:`POST`,body:I(e,{daemonInstanceId:t,throughOrder:n.order,throughOverflowWatermark:n.overflowWatermark})}),startSession:(e,t=`local`,n)=>v(`${P(t)}/sessions`,Bn,{method:`POST`,body:JSON.stringify(n===void 0?{cwd:e}:{cwd:e,startupToken:n})}),cleanupPreview:(e,t=`local`)=>v(`${P(t)}/sessions/cleanup/preview`,ri,{method:`POST`,body:JSON.stringify(e)}),cleanup:(e,t=`local`)=>v(`${P(t)}/sessions/cleanup`,ii,{method:`POST`,body:JSON.stringify(e)}),archiveMany:(e,t=`local`)=>v(`${P(t)}/sessions/bulk/archive`,ai,{method:`POST`,body:Fo(e)}),deleteArchivedMany:(e,t=`local`)=>v(`${P(t)}/sessions/bulk/delete-archived`,oi,{method:`POST`,body:Fo(e)}),messages:(e,t,n=`local`)=>v(Do(e,t,n),bn),status:(e,t=`local`)=>v(No(e,`status`,t),mr),streamSnapshot:(e,t=`local`)=>v(No(e,`stream-snapshot`,t),hr),streamSync:(e,t,n=`local`)=>v(`${F(e,`stream-snapshot`,n)}${Po(e)}&sinceSeq=${String(t)}`,gr),backgroundTasks:(e,t=`local`)=>v(`${F(e,`background-tasks`,t)}?cwd=${encodeURIComponent(e.cwd)}`,xo,{cache:`no-store`}),backgroundTaskOutput:(e,t,n=`local`)=>v(`${F(e,`background-tasks/${encodeURIComponent(t)}/output`,n)}?cwd=${encodeURIComponent(e.cwd)}`,So,{cache:`no-store`}),subagentRunOutput:(e,t,n=`local`)=>v(`${F(e,`subagent-runs/${encodeURIComponent(t)}/output`,n)}?cwd=${encodeURIComponent(e.cwd)}`,Co,{cache:`no-store`}),subagentRunMessages:(e,t,n,r=`local`)=>v(Oo(e,t,n,r),bn,{cache:`no-store`}),clearQueue:(e,t=`local`)=>v(F(e,`queue/clear`,t),mr,{method:`POST`,body:I(e)}),recallQueuedMessage:(e,t,n=`local`)=>v(F(e,`queue/clear`,n),bo,{method:`POST`,body:I(e,{text:t.text,kind:t.kind,...t.clientMessageId===void 0?{}:{clientMessageId:t.clientMessageId}})}),dismissWarning:(e,t,n=`local`)=>v(F(e,`warnings/dismiss`,n),mr,{method:`POST`,body:I(e,{dismissId:t})}),submitAsk:(e,t,n,r=`local`)=>v(F(e,`ask/submit`,r),tr,{method:`POST`,body:I(e,{askId:t,answers:n.answers})}),cancelAsk:(e,t,n=`local`)=>v(F(e,`ask/cancel`,n),tr,{method:`POST`,body:I(e,{askId:t})}),answerDialog:(e,t,n,r=`local`)=>v(F(e,`dialogs/answer`,r),nr,{method:`POST`,body:I(e,{dialogId:t,value:n})}),cancelDialog:(e,t,n=`local`)=>v(F(e,`dialogs/cancel`,n),nr,{method:`POST`,body:I(e,{dialogId:t})}),models:(e,t=`local`)=>v(No(e,`models`,t),hi),modelCatalog:(e,t=`local`)=>v(No(e,`models/catalog`,t),_i),setModelEnabled:(e,t,n,r,i=`local`)=>v(F(e,`models/enabled`,i),_i,{method:`POST`,body:I(e,{provider:t,modelId:n,enabled:r})}),setModel:(e,t,n,r=`local`)=>v(F(e,`model`,r),mr,{method:`POST`,body:I(e,{provider:t,modelId:n})}),cycleModel:(e,t,n=`local`)=>v(F(e,`model/cycle`,n),mr,{method:`POST`,body:I(e,{direction:t})}),thinkingLevels:(e,t=`local`)=>v(No(e,`thinking-levels`,t),yi),setThinkingLevel:(e,t,n=`local`)=>v(F(e,`thinking-level`,n),mr,{method:`POST`,body:I(e,{level:t})}),cycleThinkingLevel:(e,t=`local`)=>v(F(e,`thinking-level/cycle`,t),mr,{method:`POST`,body:I(e)}),commands:(e,t=`local`)=>v(No(e,`commands`,t),j(Fi)),prompt:(e,t,n,r=`local`,i,a)=>v(F(e,`prompt`,r),io,{method:`POST`,body:I(e,{text:t,...n===void 0?{}:{streamingBehavior:n},...i!==void 0&&i.length>0?{attachments:i}:{},...a===void 0?{}:{clientMessageId:a}})}),saveAttachments:(e,t,n=`local`,r)=>v(F(e,`attachments`,n),ao,{method:`POST`,body:I(e,{attachments:t,...r===void 0?{}:{folder:r}})}),shell:(e,t,n=`local`)=>v(F(e,`shell`,n),io,{method:`POST`,body:I(e,{text:t})}),runCommand:(e,t,n=`local`)=>v(F(e,`commands/run`,n),Ka,{method:`POST`,body:I(e,{text:t})}),respondToCommand:(e,t,n,r=`local`)=>v(F(e,`commands/respond`,r),Ka,{method:`POST`,body:I(e,{requestId:t,value:n})}),navigateTree:(e,t,n=`local`)=>v(F(e,`tree/navigate`,n),Xa,{method:`POST`,body:I(e,{targetId:t.targetId,expectedLeafId:t.expectedLeafId,summary:t.summary})}),forkTree:(e,t,n=`local`)=>ns(e,t,n),abort:(e,t=`local`)=>v(F(e,`abort`,t),co,{method:`POST`,body:I(e)}),stop:(e,t=`local`)=>v(F(e,`stop`,t),lo,{method:`POST`,body:I(e)}),archive:(e,t=`local`)=>v(F(e,`archive`,t),uo,{method:`POST`,body:I(e)}),archiveWithDescendants:(e,t=`local`)=>v(F(e,`archive-tree`,t),uo,{method:`POST`,body:I(e)}),restore:(e,t=`local`)=>v(F(e,`restore`,t),fo,{method:`POST`,body:I(e)}),detachParent:(e,t=`local`)=>v(F(e,`detach-parent`,t),po,{method:`POST`,body:I(e)}),reloadSession:(e,t=`local`)=>v(F(e,`reload`,t),mo,{method:`POST`,body:I(e)}),authProviders:e=>{let t=new URLSearchParams;e?.mode!==void 0&&t.set(`mode`,e.mode),e?.authType!==void 0&&t.set(`authType`,e.authType);let n=t.toString();return v(`${P(e?.machineId)}/auth/providers${n===``?``:`?${n}`}`,wi)},startInteractiveApiKeyLogin:(e,t=`local`)=>v(`${P(t)}/auth/api-key/interactive`,Ti,{method:`POST`,body:JSON.stringify({providerId:e})}),logoutProvider:(e,t=`local`)=>v(`${P(t)}/auth/logout`,io,{method:`POST`,body:JSON.stringify({providerId:e})}),startOAuthLogin:(e,t=`local`)=>v(`${P(t)}/auth/oauth`,Ti,{method:`POST`,body:JSON.stringify({providerId:e})}),oauthFlow:(e,t=`local`)=>v(`${P(t)}/auth/oauth/${encodeURIComponent(e)}`,Ti),respondOAuthFlow:(e,t,n,r=`local`)=>v(`${P(r)}/auth/oauth/${encodeURIComponent(e)}/respond`,Ti,{method:`POST`,body:JSON.stringify({requestId:t,value:n})}),cancelOAuthFlow:(e,t=`local`)=>v(`${P(t)}/auth/oauth/${encodeURIComponent(e)}/cancel`,Ti,{method:`POST`})},es={terminals:(e,t,n=`local`)=>v(`${P(n)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/terminals`,j(Gi)),startTerminal:(e,t,n,r=`local`)=>v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/terminals`,Gi,{method:`POST`,body:JSON.stringify(n??{})}),closeWorkspaceTerminals:(e,t,n=`local`)=>v(`${P(n)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/terminals`,so,{method:`DELETE`}),closeTerminal:(e,t,n,r=`local`)=>v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/terminals/${encodeURIComponent(n)}`,so,{method:`DELETE`}),continueTerminal:(e,t,n,r=`local`)=>v(`${P(r)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/terminals/${encodeURIComponent(n)}/continue`,Gi,{method:`POST`}),runTerminalCommand:(e,t,n=`local`)=>v(`${P(n)}/projects/${encodeURIComponent(t.workspace.projectId)}/workspaces/${encodeURIComponent(t.workspace.id)}/terminal-command-runs`,Ki,{method:`POST`,body:JSON.stringify({origin:e,title:t.title,command:t.command,metadata:t.metadata??{}})}),listCommandRuns:(e,t=`local`)=>v(`${P(t)}/terminal-command-runs${as(e)}`,j(Ki)),getCommandRun:(e,t=`local`)=>is(e,t),cancelCommandRun:(e,t=`local`)=>v(`${P(t)}/terminal-command-runs/${encodeURIComponent(e)}/cancel`,Ki,{method:`POST`})},ts=class extends Error{constructor(){super(`Fork from the session tree is unavailable. Restart the session daemon to enable it.`),this.name=`SessionTreeForkUnavailableError`}};async function ns(e,t,n){let r=await fetch(Ze(F(e,`tree/fork`,n)),{method:`POST`,headers:{"content-type":`application/json`},body:I(e,{entryId:t.entryId,expectedLeafId:t.expectedLeafId})});if(!r.ok){let e=await r.json().catch(()=>({}));throw rs(r.status,e)?new ts:Error(os(e)??r.statusText)}return Za(await r.json())}function rs(e,t){if(e!==404||!ss(t)||t.statusCode!==404||t.error!==`Not Found`)return!1;let n=t.message;return typeof n==`string`&&/^Route POST:.*\/tree\/fork not found$/i.test(n)}async function is(e,t){let n=await fetch(Ze(`${P(t)}/terminal-command-runs/${encodeURIComponent(e)}`));if(n.status!==404){if(!n.ok){let e=await n.json().catch(()=>({}));throw Error(os(e)??n.statusText)}return Ki(await n.json())}}function as(e){if(e===void 0)return``;let t=new URLSearchParams;e.projectId!==void 0&&t.set(`projectId`,e.projectId),e.workspaceId!==void 0&&t.set(`workspaceId`,e.workspaceId),e.terminalId!==void 0&&t.set(`terminalId`,e.terminalId),e.statuses!==void 0&&e.statuses.length>0&&t.set(`statuses`,e.statuses.join(`,`)),e.metadata!==void 0&&Object.keys(e.metadata).length>0&&t.set(`metadata`,JSON.stringify(e.metadata));let n=t.toString();return n===``?``:`?${n}`}function os(e){if(!ss(e))return;let t=e.error;return typeof t==`string`?t:void 0}function ss(e){return typeof e==`object`&&!!e}var cs={files:(e,t)=>{let n=new URLSearchParams({q:e});return t.kind!==void 0&&n.set(`kind`,t.kind),t.mode!==void 0&&n.set(`mode`,t.mode),t.scope!==void 0&&n.set(`scope`,t.scope),v(`${P(t.machineId)}/projects/${encodeURIComponent(t.projectId)}/workspaces/${encodeURIComponent(t.workspaceId)}/files?${n.toString()}`,j(Ii))}},ls=(e,t,n)=>`${P(e)}/projects/${encodeURIComponent(t)}/workspaces/${encodeURIComponent(n)}/trust`,us=(e,t)=>{let n=new URLSearchParams({path:t});return`${P(e)}/projects/trust?${n.toString()}`},ds={projectTrust:(e,t=`local`)=>v(us(t,e),Wi),workspaceTrust:(e,t,n=`local`)=>v(ls(n,e,t),Wi),setWorkspaceTrust:(e,t,n,r=`local`)=>v(ls(r,e,t),Wi,{method:`PUT`,body:JSON.stringify({trusted:n})})},fs={...Ro,...zo,...Ho,...Wo,...Jo,...Xo,...Qo,...$o,...es,...cs,...ds},ps=256*1024,ms=8*1024*1024,hs=266240,gs=8392704,_s=/^[a-z][a-z0-9.-]*$/u,vs=64;function ys(e){return e.length<=128&&_s.test(e)}function bs(e){if(!ys(e))throw Error(`Plugin backend operation must match ${String(_s)} and be at most 128 characters`);return e}function xs(e){if(typeof e!=`string`||e===``||e.length>512)throw Error(`Plugin backend revision must be a non-empty string of at most 512 characters`);return e}function Ss(e,t,n=ps){let r=Ts(e,new Set,t,0);if(ws(JSON.stringify(r))>n)throw Error(`${t} exceeds the ${String(n)} byte limit`);return r}function Cs(e,t,n=ps){if(ws(e)>n)throw Error(`${t} exceeds the ${String(n)} byte limit`);let r;try{r=JSON.parse(e)}catch(e){throw Error(`${t} must be valid JSON`,{cause:e})}return Ss(r,t,n)}function ws(e){return new TextEncoder().encode(e).byteLength}function Ts(e,t,n,r){if(r>vs)throw Error(`${n} exceeds the maximum JSON depth of ${String(vs)}`);if(e===null||typeof e==`string`||typeof e==`boolean`)return e;if(typeof e==`number`){if(!Number.isFinite(e))throw Error(`${n} must contain only finite JSON numbers`);return e}if(Array.isArray(e)){if(t.has(e))throw Error(`${n} must not contain cycles`);t.add(e);let i=e.map(e=>Ts(e,t,n,r+1));return t.delete(e),Object.freeze(i),i}if(!Ds(e))throw Error(`${n} must contain only JSON values`);if(t.has(e))throw Error(`${n} must not contain cycles`);t.add(e);let i={};for(let[a,o]of Object.entries(e))Es(i,a,Ts(o,t,n,r+1));return t.delete(e),Object.freeze(i)}function Es(e,t,n){Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0})}function Ds(e){if(typeof e!=`object`||!e||Array.isArray(e))return!1;let t=Object.getPrototypeOf(e);return t===Object.prototype||t===null}function Os(e,t){if(!mn(e.pluginId))throw Error(`Invalid PI WEB plugin id: ${e.pluginId}`);if(e.machineId===``)throw Error(`Machine id is required`);if(e.projectId===``)throw Error(`Project id is required`);if(e.workspaceId===``)throw Error(`Workspace id is required`);let n=bs(t);return`${e.machineId===`local`?`api`:`api/machines/${encodeURIComponent(e.machineId)}`}/plugin-backends/${encodeURIComponent(e.pluginId)}/projects/${encodeURIComponent(e.projectId)}/workspaces/${encodeURIComponent(e.workspaceId)}/${encodeURIComponent(n)}`}function ks(e,t,n){let r=Os(e,t);return n===void 0?Ze(r):Ze(r,n)}async function As(e,t,n){let r=xs(e.backendRevision),i=Ss(n,`Plugin backend request input`),a=JSON.stringify({revision:r,input:i});if(ws(a)>266240)throw Error(`Plugin backend request exceeds the ${String(hs)} byte wire limit`);let o;try{o=await fetch(ks(e,t),{method:`POST`,headers:{"content-type":`application/json`},body:a})}catch(e){throw Error(`Plugin backend request unavailable: ${y(e)}`,{cause:e})}let s=await js(o);if(!o.ok)throw Error(Ns(s)??`Plugin backend request returned HTTP ${String(o.status)}`);return Cs(s,`Plugin backend response`,ms)}async function js(e){let t=e.headers.get(`content-length`);if(t!==null&&/^\d+$/u.test(t)&&Number(t)>8392704)throw await e.body?.cancel(),Error(`Plugin backend response exceeds the ${String(gs)} byte wire limit`);if(e.body===null){let t=await e.text();if(ws(t)>8392704)throw Ms();return t}let n=e.body.getReader(),r=new TextDecoder,i=0,a=``;try{let e=await n.read();for(;!e.done;){if(i+=e.value.byteLength,i>8392704)throw await n.cancel(),Ms();a+=r.decode(e.value,{stream:!0}),e=await n.read()}return a+r.decode()}finally{n.releaseLock()}}function Ms(){return Error(`Plugin backend response exceeds the ${String(gs)} byte wire limit`)}function Ns(e){try{let t=JSON.parse(e);return Ps(t)&&typeof t.error==`string`?t.error:void 0}catch{return}}function Ps(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function Fs(e,t=`local`){let n=`?${new URLSearchParams({cwd:e.cwd}).toString()}`;return new WebSocket(Qe(`${Rs(t)}/sessions/${encodeURIComponent(e.id)}/events${n}`))}function Is(e,t,n,r,i=`local`){let a=r===void 0?``:`?${new URLSearchParams({cols:String(r.cols),rows:String(r.rows)}).toString()}`;return new WebSocket(Qe(`${Rs(i)}/projects/${encodeURIComponent(e)}/workspaces/${encodeURIComponent(t)}/terminals/${encodeURIComponent(n)}/socket${a}`))}function Ls(e=`local`){return new WebSocket(Qe(`${Rs(e)}/events`))}function Rs(e){return`api/machines/${encodeURIComponent(e)}`}var zs=`.pi-web/uploads`,Bs=class extends Error{constructor(e=`Workspace upload cancelled`){super(e),this.name=`WorkspaceUploadCancelledError`}},Vs=class extends Error{constructor(e,t){super(Qs(e)),this.name=`WorkspaceUploadBatchError`,this.failures=e.map(e=>({...e})),this.responses=t.map(e=>({...e}))}};function Hs(e){return e?.uploads?.defaultFolder??`.pi-web/uploads`}function Us(e,t){return e.uploads?.defaultFolder??t}function Ws(e,t){let n=ec(e,`upload destination`,{allowEmpty:!0}),r=ec(t,`upload file name`,{allowEmpty:!1});return n===``?r:`${n}/${r}`}function Gs(e,t,n,r={}){let i=r.xhrFactory?.()??new XMLHttpRequest,a=!1,o=!1;return{promise:new Promise((s,c)=>{let l=e=>{a||(a=!0,c(e))},u=e=>{a||(a=!0,s(e))};i.open(`PUT`,ko(e,t,n.path,Js(r)),!0),i.responseType=`json`,i.setRequestHeader(`Content-Type`,(n.contentType??n.file.type)||`application/octet-stream`),i.upload.onprogress=e=>{r.onProgress?.(Ys(e,n.file.size))},i.onload=()=>{if(i.status>=200&&i.status<300){try{r.onProgress?.({loaded:n.file.size,total:n.file.size,percent:1,lengthComputable:!0}),u(Bi(nc(i)))}catch(e){l(e instanceof Error?e:Error(String(e)))}return}l(Error(rc(i)))},i.onerror=()=>{l(Error(`Workspace upload failed`))},i.onabort=()=>{l(new Bs(o?void 0:`Workspace upload aborted`))},i.send(n.file)}),cancel:()=>{a||(o=!0,i.abort())}}}function Ks(e,t,n,r={}){let i=r.destinationFolder??`.pi-web/uploads`,a=n.map((e,t)=>({index:t,name:e.name,path:Ws(i,e.name),loaded:0,total:e.size,percent:Zs(0,e.size),lengthComputable:!0,done:!1})),o,s=0,c={requested:!1},l=()=>{r.onProgress?.(Xs(a,s,a.every(e=>e.done)))};return{promise:(async()=>{let i=[],u=[];for(let d=0;d<n.length;d+=1){if(c.requested)throw new Bs;s=d;let f=n[d],p=a[d];if(!(f===void 0||p===void 0)){o=Gs(e,t,{path:p.path,file:f},{...qs(r),onProgress:e=>{p.total=e.total,p.loaded=Math.min(e.loaded,p.total),p.percent=e.percent,p.lengthComputable=e.lengthComputable,l()}});try{let e=await o.promise;p.loaded=p.total,p.percent=1,p.lengthComputable=!0,p.done=!0,i.push(e),l()}catch(e){if($s(e,c))throw e;let t=y(e);p.loaded=p.total,p.percent=1,p.lengthComputable=!0,p.done=!0,p.error=t,u.push({index:d,name:f.name,path:p.path,error:t}),l()}finally{o=void 0}}}if(u.length>0)throw new Vs(u,i);return i})(),cancel:()=>{c.requested=!0,o?.cancel()}}}function qs(e){return{...e.createDirs===void 0?{}:{createDirs:e.createDirs},...e.overwrite===void 0?{}:{overwrite:e.overwrite},...e.machineId===void 0?{}:{machineId:e.machineId},...e.xhrFactory===void 0?{}:{xhrFactory:e.xhrFactory}}}function Js(e){return{...e.createDirs===void 0?{}:{createDirs:e.createDirs},...e.overwrite===void 0?{}:{overwrite:e.overwrite},...e.machineId===void 0?{}:{machineId:e.machineId}}}function Ys(e,t){let n=e.lengthComputable?e.total:t;return{loaded:e.loaded,total:n,percent:Zs(e.loaded,n),lengthComputable:e.lengthComputable}}function Xs(e,t,n){let r=e.reduce((e,t)=>e+t.total,0),i=e.reduce((e,t)=>e+t.loaded,0);return{currentFileIndex:t,files:e.map(e=>({...e})),loaded:i,total:r,percent:Zs(i,r),done:n}}function Zs(e,t){return t<=0?e<=0?0:1:Math.max(0,Math.min(1,e/t))}function Qs(e){return e.length===1?e[0]?.error??`Workspace upload failed`:`${String(e.length)} files failed to upload`}function $s(e,t){return t.requested||e instanceof Bs}function ec(e,t,n){let r=e.trim();if(r===``){if(n.allowEmpty)return``;throw Error(`${t} must not be empty`)}if(tc(r))throw Error(`${t} must be workspace-relative`);let i=r.split(/[\\/]+/u).filter(e=>e!==``&&e!==`.`);if(i.length===0){if(n.allowEmpty)return``;throw Error(`${t} must not be empty`)}if(i.some(e=>e===`..`))throw Error(`${t} must not contain path traversal`);return i.join(`/`)}function tc(e){let t=e.replace(/\\/g,`/`);return t.startsWith(`/`)||/^[A-Za-z]:\//u.test(t)}function nc(e){return e.response!==void 0&&e.response!==null&&e.response!==``?e.response:e.responseText===``?{}:JSON.parse(e.responseText)}function rc(e){let t=ic(e);return ac(t)&&typeof t.error==`string`?t.error:e.statusText||`HTTP ${String(e.status)}`}function ic(e){try{return nc(e)}catch{return}}function ac(e){return typeof e==`object`&&!!e}function oc(){let e=globalThis.crypto.randomUUID?.();return e===void 0?`cm-${String(Date.now())}-${Math.random().toString(36).slice(2,10)}`:e}function sc(e,t,n=[]){let r=n.filter(e=>e.kind===`image`).map(e=>({type:`image`,mimeType:e.mimeType,data:e.data}));return{role:`user`,parts:e===``?[...r]:[{type:`text`,text:e},...r],meta:{timestamp:new Date().toISOString(),delivery:{clientMessageId:t,state:`sending`}}}}function cc(e){return e===`delivered`}function lc(e){return e===`delivered`||e===`failed`}function uc(e){return!lc(e)}function dc(e,t){if(t.length===0)return{settled:[...e],pending:[]};let n=new Map,r=[];for(let t of e){let e=t.meta?.delivery;e!==void 0&&(n.set(e.clientMessageId,t),uc(e.state)&&r.push(t))}let i=[];for(let e of t){let t=(e.clientMessageId===void 0?void 0:n.get(e.clientMessageId))??r.find(t=>t.meta?.delivery?.kind===e.kind&&fc(t)===e.text);t!==void 0&&r.splice(r.indexOf(t),1),i.push(t??pc(e))}let a=new Set(i);return{settled:e.filter(e=>!a.has(e)),pending:i}}function fc(e){return e.parts.filter(e=>e.type===`text`).map(e=>e.text).join(``)}function pc(e){let t=e.clientMessageId??`queued:${e.kind}:${e.text}`;return{role:`user`,parts:[{type:`text`,text:e.text}],meta:{delivery:{clientMessageId:t,state:`queued`,kind:e.kind}}}}function mc(e,t){return e.findIndex(e=>e.meta?.delivery?.clientMessageId===t)}function hc(e,t,n,r){let i=mc(e,t);if(i===-1)return e;let a=e[i],o=a?.meta?.delivery;if(a===void 0||o===void 0||!vc(o.state,n)&&!gc(o.kind,r,o.state,n))return e;let s=[...e],c=vc(o.state,n)?n:o.state,l=r??o.kind;return s[i]={...a,meta:{...a.meta,delivery:{clientMessageId:t,state:c,...l===void 0?{}:{kind:l}}}},s}function gc(e,t,n,r){return t!==void 0&&t!==e&&n===`queued`&&r===`queued`}var _c={failed:-1,sending:0,received:1,queued:2,delivered:3};function vc(e,t){return e===t?!1:t===`failed`?e!==`delivered`:e!==`failed`&&_c[t]>_c[e]}function yc(e,t){let n=mc(e,t);if(n===-1)return[...e];let r=e[n];if(r?.meta?.delivery?.state!==`failed`)return[...e];let i=r.meta.delivery,a=[...e];return a[n]={...r,meta:{...r.meta,delivery:{clientMessageId:t,state:`sending`,...i.kind===void 0?{}:{kind:i.kind}}}},a}function bc(e,t){let n=mc(e,t);return n===-1?[...e]:[...e.slice(0,n),...e.slice(n+1)]}function xc(e,t){let n=e,r=new Map;for(let e of t)e.clientMessageId!==void 0&&r.set(e.clientMessageId,e.kind);for(let t of e){let e=t.meta?.delivery;if(e===void 0)continue;let i=r.get(e.clientMessageId);if(i!==void 0){n=hc(n,e.clientMessageId,`queued`,i);continue}(e.state===`received`||e.state===`queued`)&&(n=hc(n,e.clientMessageId,`delivered`))}return n}function Sc(e,t){return t!==void 0&&mc(e,t)!==-1}function Cc(e,t){let n=e.meta?.delivery;return n===void 0?t:{...t,meta:{...t.meta,delivery:{...n,state:n.state===`failed`?n.state:`delivered`}}}}function wc(e,t){return t===``?-1:e.findIndex(e=>e.role===`user`&&e.meta?.delivery!==void 0&&Tc(e)===t)}function Tc(e){return e.parts.filter(e=>e.type===`text`).map(e=>e.text).join(`
|
|
4
4
|
|
|
@@ -497,7 +497,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
497
497
|
.viewer-header { align-items: flex-start; flex-direction: column; }
|
|
498
498
|
.viewer-actions { width: 100%; flex-wrap: wrap; }
|
|
499
499
|
}
|
|
500
|
-
`]}};H([S({attribute:!1})],Oy.prototype,`machineId`,void 0),H([S({attribute:!1})],Oy.prototype,`projectId`,void 0),H([S({attribute:!1})],Oy.prototype,`workspaceId`,void 0),H([S({attribute:!1})],Oy.prototype,`selectedPath`,void 0),H([S({attribute:!1})],Oy.prototype,`file`,void 0),H([S({attribute:!1})],Oy.prototype,`loadError`,void 0),H([S({attribute:!1})],Oy.prototype,`previewUrlBuilder`,void 0),H([S({attribute:!1})],Oy.prototype,`modeStore`,void 0),Oy=H([x(`workspace-file-viewer`)],Oy);function ky(e){return JSON.stringify([e.machineId,e.projectId,e.workspaceId,e.selectedPath??null,e.file?.path??null,e.file?.modifiedAt??null,e.file?.mediaType??null])}function Ay(e){return e.mediaType===`image`?`image`:e.mediaType===`html`?`html`:e.mediaType===`pdf`?`pdf`:e.mediaType===`markdown`?`markdown`:e.binary?`download`:`code`}function jy(e,t){return t!==`code`&&t!==`download`&&!e.binary}function My(e){return e===`html`?``:void 0}function Ny(e){return e===`image`||e===`html`||e===`pdf`}function Py(e,t){return`${t===`code`?e.language??`text`:t===`download`?e.mimeType??`binary`:t===`markdown`?`markdown`:e.mimeType??t} · ${Wg(e.size)}${e.truncated?` · truncated`:``}`}function Fy(){Dy(()=>import(`./CodeViewer-
|
|
500
|
+
`]}};H([S({attribute:!1})],Oy.prototype,`machineId`,void 0),H([S({attribute:!1})],Oy.prototype,`projectId`,void 0),H([S({attribute:!1})],Oy.prototype,`workspaceId`,void 0),H([S({attribute:!1})],Oy.prototype,`selectedPath`,void 0),H([S({attribute:!1})],Oy.prototype,`file`,void 0),H([S({attribute:!1})],Oy.prototype,`loadError`,void 0),H([S({attribute:!1})],Oy.prototype,`previewUrlBuilder`,void 0),H([S({attribute:!1})],Oy.prototype,`modeStore`,void 0),Oy=H([x(`workspace-file-viewer`)],Oy);function ky(e){return JSON.stringify([e.machineId,e.projectId,e.workspaceId,e.selectedPath??null,e.file?.path??null,e.file?.modifiedAt??null,e.file?.mediaType??null])}function Ay(e){return e.mediaType===`image`?`image`:e.mediaType===`html`?`html`:e.mediaType===`pdf`?`pdf`:e.mediaType===`markdown`?`markdown`:e.binary?`download`:`code`}function jy(e,t){return t!==`code`&&t!==`download`&&!e.binary}function My(e){return e===`html`?``:void 0}function Ny(e){return e===`image`||e===`html`||e===`pdf`}function Py(e,t){return`${t===`code`?e.language??`text`:t===`download`?e.mimeType??`binary`:t===`markdown`?`markdown`:e.mimeType??t} · ${Wg(e.size)}${e.truncated?` · truncated`:``}`}function Fy(){Dy(()=>import(`./CodeViewer-uN2lxRC5.js`),__vite__mapDeps([0,1,2,3]),import.meta.url)}var Iy=class extends _{constructor(...e){super(...e),this.destinationFolder=``,this.overwrite=!1,this.createDirs=!0,this.formError=``,this.dragActive=!1,this.dragDepth=0,this.openFilePicker=()=>{this.uploadInput?.click()},this.handleFileInputChange=e=>{let t=e.currentTarget instanceof HTMLInputElement?e.currentTarget:void 0,n=Hy(t?.files);t!==void 0&&(t.value=``),n.length>0&&this.openUploadReview(n)},this.handleDragEnter=e=>{Uy(e)&&(e.preventDefault(),this.dragDepth+=1,this.dragActive=!0)},this.handleDragOver=e=>{Uy(e)&&(e.preventDefault(),e.dataTransfer!==null&&(e.dataTransfer.dropEffect=`copy`),this.dragActive=!0)},this.handleDragLeave=e=>{Uy(e)&&(e.preventDefault(),this.dragDepth=Math.max(0,this.dragDepth-1),this.dragDepth===0&&(this.dragActive=!1))},this.handleDrop=e=>{if(!Uy(e))return;e.preventDefault(),this.dragDepth=0,this.dragActive=!1;let t=Hy(e.dataTransfer?.files),n=this.context;t.length>0&&n!==void 0&&By(n,t)},this.handleDestinationInput=e=>{let t=e.currentTarget instanceof HTMLInputElement?e.currentTarget:void 0;this.destinationFolder=t?.value??``,this.formError=``},this.handleCreateDirsChange=e=>{let t=e.currentTarget instanceof HTMLInputElement?e.currentTarget:void 0;this.createDirs=t?.checked??!0},this.handleOverwriteChange=e=>{let t=e.currentTarget instanceof HTMLInputElement?e.currentTarget:void 0;this.overwrite=t?.checked??!1},this.handleDialogKeyDown=e=>{e.key===`Escape`&&(e.preventDefault(),this.closeUploadDialog())}}willUpdate(e){if(!e.has(`context`))return;let t=e.get(`context`);t!==void 0&&this.context!==void 0&&Vy(t)!==Vy(this.context)&&this.resetPendingUpload()}updated(){this.syncUploadModal()}disconnectedCallback(){this.releaseUploadModal(),super.disconnectedCallback()}render(){let e=this.context;return e===void 0?h`<p class="muted">Files unavailable.</p>`:h`
|
|
501
501
|
<section
|
|
502
502
|
class=${this.dragActive?`files-panel dragging`:`files-panel`}
|
|
503
503
|
@dragenter=${this.handleDragEnter}
|
|
@@ -667,7 +667,7 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
667
667
|
.review-file span { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
668
668
|
.dialog-error { border: 1px solid var(--pi-danger); border-radius: 8px; background: color-mix(in srgb, var(--pi-danger) 10%, transparent); color: var(--pi-danger); padding: 9px; line-height: 1.35; overflow-wrap: anywhere; }
|
|
669
669
|
footer { display: flex; justify-content: flex-end; gap: 8px; padding-top: 4px; }
|
|
670
|
-
`]}};H([S({attribute:!1})],Iy.prototype,`context`,void 0),H([w(`#workspace-upload-input`)],Iy.prototype,`uploadInput`,void 0),H([w(`.dialog-backdrop`)],Iy.prototype,`uploadDialogBackdrop`,void 0),H([w(`.upload-dialog`)],Iy.prototype,`uploadDialog`,void 0),H([C()],Iy.prototype,`pendingUpload`,void 0),H([C()],Iy.prototype,`destinationFolder`,void 0),H([C()],Iy.prototype,`overwrite`,void 0),H([C()],Iy.prototype,`createDirs`,void 0),H([C()],Iy.prototype,`formError`,void 0),H([C()],Iy.prototype,`dragActive`,void 0),Iy=H([x(`workspace-files-panel`)],Iy);function Ly(e,t){return Object.values(e).filter(e=>e.projectId===t.projectId&&e.workspaceId===t.workspaceId&&e.machineId===t.machineId).sort((e,t)=>t.startedAt.localeCompare(e.startedAt))}function Ry(e,t){if(e.length===0)return`Choose at least one file to upload.`;for(let n of e)try{Ws(t,n.name)}catch(e){return y(e)}}function zy(e){return{destinationFolder:e,createDirs:!0,overwrite:!1}}function By(e,t){if(t.length!==0)return e.onStartWorkspaceUpload(t,{destinationFolder:e.workspaceUploadDefaultFolder,createDirs:!0,overwrite:!1,selectUploadedFile:!0})}function Vy(e){return`${e.machine.id}:${e.workspace.projectId}:${e.workspace.id}`}function Hy(e){return e==null?[]:Array.from(e)}function Uy(e){return Array.from(e.dataTransfer?.types??[]).includes(`Files`)}function Wy(e){let t=e.getRootNode();return t instanceof ShadowRoot&&t.host instanceof HTMLElement?t.host:e}function Gy(e){let t=e.filter(e=>e.status===`uploading`).length;return t===0?`${String(e.length)} recent`:`${String(t)} uploading`}function Ky(e){let t=e.files.length,n=t===1?`file`:`files`;switch(e.status){case`completed`:return`Uploaded ${String(t)} ${n}`;case`error`:return`Upload failed for ${String(t)} ${n}`;case`cancelled`:return`Upload cancelled for ${String(t)} ${n}`;case`uploading`:return`Uploading ${String(t)} ${n}`}}function qy(e){switch(e.status){case`completed`:return`Done`;case`error`:return`Failed`;case`cancelled`:return`Cancelled`;case`uploading`:return Zy(e.percent)}}function Jy(e){return e.status===`uploading`?e.percent:1}function Yy(e){switch(e.status){case`pending`:return`Pending`;case`uploading`:return Zy(e.percent);case`completed`:return`Done`;case`error`:return`Error`;case`cancelled`:return`Cancelled`}}function Xy(e){return e.error===void 0?e.response===void 0?`${e.path} · ${Wg(e.loaded)} / ${Wg(e.total)}`:`Wrote ${e.response.path}`:e.error}function Zy(e){return`${String(Math.round(Math.max(0,Math.min(1,e))*100))}%`}function Qy(){return[{id:`workspace.files`,title:`Files`,icon:Vg(`files`),order:10,routeAliases:[`files`],render:$y},{id:`workspace.terminal`,title:`Terminal`,icon:Vg(`terminal`),order:30,badge:e=>e.activeTerminalCount>0?e.activeTerminalCount:void 0,render:eb}]}function $y(e){return h`<workspace-files-panel .context=${e}></workspace-files-panel>`}function eb(e){return tb(),h`<terminal-panel .workspace=${e.workspace} .machineId=${e.machine.id} .selectedTerminalId=${e.selectedTerminalId} .autoStart=${e.terminalAutoStart} .onSelectTerminal=${e.onSelectTerminal}></terminal-panel>`}function tb(){Dy(()=>import(`./TerminalPanel-DNckhAlj.js`),__vite__mapDeps([4,5,6]),import.meta.url)}var nb={apiVersion:2,name:`PI WEB Core`,activate:()=>({contributions:{actions:Ng(),workspacePanels:Qy()}})},rb={"--pi-bg":`#0d1117`,"--pi-surface":`#161b22`,"--pi-surface-hover":`#21262d`,"--pi-terminal-bg":`#05070a`,"--pi-terminal-text":`#e6edf3`,"--pi-border":`#30363d`,"--pi-border-muted":`#21262d`,"--pi-text":`#e6edf3`,"--pi-text-secondary":`#c9d1d9`,"--pi-text-bright":`#f0f6fc`,"--pi-muted":`#8b949e`,"--pi-dim":`#6e7681`,"--pi-accent":`#58a6ff`,"--pi-accent-border":`#2f81f7`,"--pi-selection-bg":`#0d2847`,"--pi-success":`#3fb950`,"--pi-success-border":`#238636`,"--pi-success-bg":`#0f1b12`,"--pi-success-surface":`#0f2a16`,"--pi-success-ring":`#3fb95055`,"--pi-warning":`#d29922`,"--pi-warning-border":`#6e5200`,"--pi-warning-surface":`#1f1a10`,"--pi-danger":`#ff7b72`,"--pi-purple":`#d2a8ff`,"--pi-purple-border":`#a371f7`,"--pi-purple-surface":`#21132f`,"--pi-overlay":`#0008`,"--pi-shadow-soft":`#0006`,"--pi-shadow":`#0008`,"--pi-shadow-strong":`#000b`,"--pi-bg-overlay-soft":`#0d1117dd`,"--pi-bg-overlay":`#0d1117e6`,"--pi-success-bg-overlay":`#0f1b12ee`,"--pi-terminal-selection":`#264f78`},ib={"--pi-bg":`#070912`,"--pi-surface":`#101527`,"--pi-surface-hover":`#151b31`,"--pi-terminal-bg":`#050710`,"--pi-terminal-text":`#f7f4ff`,"--pi-border":`#26304f`,"--pi-border-muted":`#26304f`,"--pi-text":`#f7f4ff`,"--pi-text-secondary":`#aaa4bd`,"--pi-text-bright":`#ffffff`,"--pi-muted":`#aaa4bd`,"--pi-dim":`#817a99`,"--pi-accent":`#7c3cff`,"--pi-accent-border":`#5a47b0`,"--pi-selection-bg":`#1d2547`,"--pi-success":`#00f0d8`,"--pi-success-border":`#00f0d8`,"--pi-success-bg":`#071e22`,"--pi-success-surface":`#092d31`,"--pi-success-ring":`#00f0d855`,"--pi-warning":`#ffb000`,"--pi-warning-border":`#ffb000`,"--pi-warning-surface":`#16140d`,"--pi-danger":`#ff4f7b`,"--pi-purple":`#b7a2ff`,"--pi-purple-border":`#7c3cff`,"--pi-purple-surface":`#181026`,"--pi-overlay":`#0008`,"--pi-shadow-soft":`#0006`,"--pi-shadow":`#0008`,"--pi-shadow-strong":`#000b`,"--pi-bg-overlay-soft":`#070912dd`,"--pi-bg-overlay":`#070912e6`,"--pi-success-bg-overlay":`#071e22ee`,"--pi-terminal-selection":`#3d4a78`},ab={"--pi-bg":`#f7f1e6`,"--pi-surface":`#fff9ee`,"--pi-surface-hover":`#f0e6d6`,"--pi-terminal-bg":`#15131b`,"--pi-terminal-text":`#fff9ee`,"--pi-border":`#c9bca8`,"--pi-border-muted":`#d8cdbc`,"--pi-text":`#15131b`,"--pi-text-secondary":`#15131b`,"--pi-text-bright":`#15131b`,"--pi-muted":`#5f586a`,"--pi-dim":`#766f7e`,"--pi-accent":`#6430d8`,"--pi-accent-border":`#6430d8`,"--pi-selection-bg":`#eadff8`,"--pi-success":`#008c82`,"--pi-success-border":`#008c82`,"--pi-success-bg":`#e1f4ef`,"--pi-success-surface":`#d7f0ec`,"--pi-success-ring":`#008c8255`,"--pi-warning":`#b05f00`,"--pi-warning-border":`#b05f00`,"--pi-warning-surface":`#fff2d2`,"--pi-danger":`#b51d49`,"--pi-purple":`#6430d8`,"--pi-purple-border":`#6430d8`,"--pi-purple-surface":`#eadff8`,"--pi-overlay":`#15131b66`,"--pi-shadow-soft":`#15131b22`,"--pi-shadow":`#15131b33`,"--pi-shadow-strong":`#15131b44`,"--pi-bg-overlay-soft":`#f7f1e6dd`,"--pi-bg-overlay":`#f7f1e6e6`,"--pi-success-bg-overlay":`#e1f4efee`,"--pi-terminal-selection":`#8d7b64`},ob={"--pi-bg":`#000000`,"--pi-surface":`#0d0d0d`,"--pi-surface-hover":`#1a1a1a`,"--pi-terminal-bg":`#000000`,"--pi-terminal-text":`#ffffff`,"--pi-border":`#5c5c5c`,"--pi-border-muted":`#3d3d3d`,"--pi-text":`#ffffff`,"--pi-text-secondary":`#e6e6e6`,"--pi-text-bright":`#ffffff`,"--pi-muted":`#b3b3b3`,"--pi-dim":`#8f8f8f`,"--pi-accent":`#4dc3ff`,"--pi-accent-border":`#4dc3ff`,"--pi-selection-bg":`#00263a`,"--pi-success":`#3ff05a`,"--pi-success-border":`#3ff05a`,"--pi-success-bg":`#001a06`,"--pi-success-surface":`#00280b`,"--pi-success-ring":`#3ff05a66`,"--pi-warning":`#ffcc33`,"--pi-warning-border":`#ffcc33`,"--pi-warning-surface":`#251c00`,"--pi-danger":`#ff6b6b`,"--pi-purple":`#c9a3ff`,"--pi-purple-border":`#c9a3ff`,"--pi-purple-surface":`#180d29`,"--pi-overlay":`#000000cc`,"--pi-shadow-soft":`#00000099`,"--pi-shadow":`#000000bb`,"--pi-shadow-strong":`#000000e6`,"--pi-bg-overlay-soft":`#000000dd`,"--pi-bg-overlay":`#000000f2`,"--pi-success-bg-overlay":`#001a06ee`,"--pi-terminal-selection":`#00456b`},sb={"--pi-bg":`#14110e`,"--pi-surface":`#1d1915`,"--pi-surface-hover":`#26211b`,"--pi-terminal-bg":`#100d0b`,"--pi-terminal-text":`#e8ddcc`,"--pi-border":`#3a3229`,"--pi-border-muted":`#2b2520`,"--pi-text":`#e8ddcc`,"--pi-text-secondary":`#cbbfad`,"--pi-text-bright":`#fff4e0`,"--pi-muted":`#9c9081`,"--pi-dim":`#7a6f62`,"--pi-accent":`#e0a35c`,"--pi-accent-border":`#b8813f`,"--pi-selection-bg":`#2e2415`,"--pi-success":`#8fbf6f`,"--pi-success-border":`#6d9954`,"--pi-success-bg":`#161c12`,"--pi-success-surface":`#1e2718`,"--pi-success-ring":`#8fbf6f55`,"--pi-warning":`#d9a441`,"--pi-warning-border":`#9c7429`,"--pi-warning-surface":`#241c0f`,"--pi-danger":`#d97b6c`,"--pi-purple":`#b79ad1`,"--pi-purple-border":`#8d74a8`,"--pi-purple-surface":`#221a2b`,"--pi-overlay":`#0a0806cc`,"--pi-shadow-soft":`#00000055`,"--pi-shadow":`#00000077`,"--pi-shadow-strong":`#000000aa`,"--pi-bg-overlay-soft":`#14110edd`,"--pi-bg-overlay":`#14110ee6`,"--pi-success-bg-overlay":`#161c12ee`,"--pi-terminal-selection":`#3d3121`},cb={"--pi-bg":`#fbfbf9`,"--pi-surface":`#ffffff`,"--pi-surface-hover":`#f1f1ee`,"--pi-terminal-bg":`#1c1c1a`,"--pi-terminal-text":`#fbfbf9`,"--pi-border":`#c7c7c1`,"--pi-border-muted":`#e0e0da`,"--pi-text":`#1c1c1a`,"--pi-text-secondary":`#33332f`,"--pi-text-bright":`#000000`,"--pi-muted":`#5e5e58`,"--pi-dim":`#7c7c75`,"--pi-accent":`#1f5fd0`,"--pi-accent-border":`#1f5fd0`,"--pi-selection-bg":`#e2ecfb`,"--pi-success":`#0f7a4a`,"--pi-success-border":`#0f7a4a`,"--pi-success-bg":`#e6f5ed`,"--pi-success-surface":`#d9efe3`,"--pi-success-ring":`#0f7a4a55`,"--pi-warning":`#8a5a00`,"--pi-warning-border":`#8a5a00`,"--pi-warning-surface":`#fdf0d5`,"--pi-danger":`#b02020`,"--pi-purple":`#5b3fc7`,"--pi-purple-border":`#5b3fc7`,"--pi-purple-surface":`#ece7fb`,"--pi-overlay":`#1c1c1a66`,"--pi-shadow-soft":`#1c1c1a1a`,"--pi-shadow":`#1c1c1a2b`,"--pi-shadow-strong":`#1c1c1a40`,"--pi-bg-overlay-soft":`#fbfbf9dd`,"--pi-bg-overlay":`#fbfbf9e6`,"--pi-success-bg-overlay":`#e6f5edee`,"--pi-terminal-selection":`#9ab4d8`},lb={apiVersion:2,name:`PI WEB Themes`,activate:()=>({contributions:{themes:[{id:`pi-web-dark`,name:`PI WEB Dark`,description:`Dark PI WEB palette.`,order:10,colorScheme:`dark`,tokens:ib},{id:`pi-web-light`,name:`PI WEB Light`,description:`Light PI WEB palette.`,order:20,colorScheme:`light`,tokens:ab},{id:`classic`,name:`PI WEB Classic`,description:`The original PI WEB dark palette.`,order:30,colorScheme:`dark`,tokens:rb},{id:`high-contrast`,name:`High Contrast`,description:`Near-black behind near-white, for bright rooms and tired eyes.`,order:40,colorScheme:`dark`,tokens:ob},{id:`night`,name:`Night`,description:`Warm and dim, with an amber accent instead of blue light.`,order:50,colorScheme:`dark`,tokens:sb},{id:`paper`,name:`Paper`,description:`Untinted ink on paper, for daylight and for screenshots.`,order:60,colorScheme:`light`,tokens:cb}],themePairs:[{id:`pi-web`,name:`PI WEB`,description:`Follow the system light/dark preference with PI WEB themes.`,order:10,light:`pi-web-light`,dark:`pi-web-dark`}]}})};async function ub(e=`pi-web-plugins/manifest.json`,t={}){let n=Ze(e),r=await pb(n);if(r===void 0)return{registrations:[],failures:[]};let i=[],a=[],o=await Promise.all(r.plugins.map(async e=>{if(t.shouldLoadPlugin?.(e)!==!1)try{let r=db(e.module,n),i=vb(await(t.moduleLoader??fb)(r),r);return{registration:{id:t.machineId===void 0?e.id:Sl(t.machineId,e.id),plugin:i,machineSpecific:e.machineSpecific,...e.backendRevision===void 0?{}:{backendRevision:e.backendRevision},...t.machineId===void 0?{}:{machineId:t.machineId,sourcePluginId:e.id}}}}catch(t){return{failure:{entry:e,error:t}}}}));for(let e of o)e!==void 0&&(`registration`in e?i.push(e.registration):a.push(e.failure));return{registrations:i,failures:a}}function db(e,t,n){return e.startsWith(`/`)?n===void 0?Ze(e):Ze(e,n):new URL(e,t).toString()}async function fb(e){return Dy(()=>import(e),[],import.meta.url)}async function pb(e){let t=await fetch(e,{cache:`no-store`});if(t.status!==404){if(!t.ok)throw Error(await hb(t));return mb(await t.json())}}function mb(e){if(!bb(e)||!Array.isArray(e.plugins))throw Error(`Invalid plugin manifest`);let t=e.plugins.map(e=>{if(!bb(e)||typeof e.id!=`string`||typeof e.module!=`string`||e.module===``)throw Error(`Invalid plugin manifest entry`);let t=e.id;if(!mn(t))throw Error(`Invalid plugin manifest id: ${t}`);if(hn(t))throw Error(`Reserved plugin manifest id: ${t}`);return{id:t,module:e.module,...gb(e.backendRevision),machineSpecific:_b(e.machineSpecific)}}),n=new Set;for(let e of t){if(n.has(e.id))throw Error(`Duplicate plugin manifest id: ${e.id}`);n.add(e.id)}return{plugins:t}}async function hb(e){let t;try{let n=await e.json();if(bb(n)){let e=n.error,r=n.detail;t=typeof r==`string`?`${typeof e==`string`?`${e}: `:``}${r}`:typeof e==`string`?e:void 0}}catch{}return`Failed to load plugin manifest (${`${String(e.status)}${e.statusText===``?``:` ${e.statusText}`}`})${t===void 0?``:`: ${t}`}`}function gb(e){if(e===void 0)return{};try{return{backendRevision:xs(e)}}catch{throw Error(`Invalid plugin manifest entry`)}}function _b(e){if(e===void 0)return!1;if(typeof e!=`boolean`)throw Error(`Invalid plugin manifest entry`);return e}function vb(e,t){if(!bb(e))throw Error(`Plugin module ${t} did not export an object`);let n=e.default;if(bb(n)&&n.apiVersion!==2)throw Error(`Unsupported browser plugin API version for ${t}: ${String(n.apiVersion)} (expected 2)`);if(!yb(n))throw Error(`Plugin module ${t} default export is not a PiWebPlugin`);return n}function yb(e){return bb(e)&&e.apiVersion===2&&typeof e.name==`string`&&typeof e.activate==`function`}function bb(e){return typeof e==`object`&&!!e}var xb=/^[a-z][a-z0-9.-]*$/u,Sb=/^[a-z][a-z0-9.-]*$/u,Cb=/^[a-z][a-z0-9.-]*:[a-z][a-z0-9.-]*$/u,wb=/^[a-z][a-z0-9.-]*(?::[a-z][a-z0-9.-]*)?$/u,Tb=new WeakMap,Eb=new WeakMap,Db=new WeakMap,Ob=class{constructor(){this.actions=[],this.workspacePanels=[],this.workspaceLabels=[],this.themes=[],this.themePairs=[],this.pluginIds=new Set,this.registeringPluginIds=new Set,this.gatewayPluginIds=new Set,this.gatewayMachineSpecificPluginIds=new Set,this.remoteMachineSpecificPluginIds=new Map,this.contributionIds=new Set}register(e){let{plugin:t}=e,n=e.id,r=e.sourcePluginId??n;this.validatePluginId(n),this.validatePluginId(r);let i=this.parseMachineSpecific(n,e.machineSpecific),a=this.parseBackendRevision(n,e.backendRevision);if(this.pluginIds.has(n)||this.registeringPluginIds.has(n))throw Error(`Duplicate plugin id: ${n}`);if(!this.isRemoteDuplicateHiddenByGateway(e.sourcePluginId,e.machineId,i)){this.registeringPluginIds.add(n);try{let o=t.apiVersion;if(o!==2)throw Error(`Unsupported browser plugin API version for ${r}: ${String(o)} (expected 2)`);let s=t.activate(Object.freeze({apiVersion:2,pluginId:r,runtimePluginId:n,html:h,svg:je})).contributions,c=new Set,l=(s.actions??[]).map(t=>this.qualifyAction(n,t,e.machineId,e.sourcePluginId,c)),u=(s.workspacePanels??[]).map(t=>this.qualifyWorkspacePanel(n,t,e.machineId,e.sourcePluginId,a,c)),d=(s.workspaceLabels??[]).map(t=>this.qualifyWorkspaceLabelContribution(n,t,e.machineId,e.sourcePluginId,a,c)),f=e.machineId===void 0?(s.themes??[]).map(e=>this.qualifyTheme(n,e,c)):[],p=e.machineId===void 0?(s.themePairs??[]).map(e=>this.qualifyThemePair(n,e,c)):[];this.pluginIds.add(n);for(let e of c)this.contributionIds.add(e);this.actions.push(...l),this.workspacePanels.push(...u),this.workspaceLabels.push(...d),this.themes.push(...f),this.themePairs.push(...p),e.machineId===void 0?(this.gatewayPluginIds.add(n),i&&this.gatewayMachineSpecificPluginIds.add(n)):e.sourcePluginId!==void 0&&i&&Ib(this.remoteMachineSpecificPluginIds,e.sourcePluginId,e.machineId)}finally{this.registeringPluginIds.delete(n)}}}hasPlugin(e){return this.pluginIds.has(e)}shouldLoadRemotePlugin(e,t=!1){return!this.gatewayPluginIds.has(e)||this.gatewayMachineSpecificPluginIds.has(e)||t}getActions(e){let t=zb(e);return this.actions.filter(e=>this.isContributionActive(e.pluginId,e.machineId,t,e.sourcePluginId)).map(t=>{let n=kb(e,t.pluginId),r=t.enabled?.(n),i=r===!1?t.disabledReason?.(n):void 0,a={id:t.id,pluginId:t.pluginId,localId:t.localId,...t.machineId===void 0?{}:{machineId:t.machineId},title:t.title,run:()=>t.run(n)};return t.description!==void 0&&(a.description=t.description),t.shortcut!==void 0&&(a.shortcut=t.shortcut),t.shortcutAliases!==void 0&&(a.shortcutAliases=[...t.shortcutAliases]),t.group!==void 0&&(a.group=t.group),r!==void 0&&(a.enabled=r),i!==void 0&&i!==``&&(a.disabledReason=i),a})}getWorkspacePanels(){return[...this.workspacePanels].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.title.localeCompare(t.title))}resolveWorkspacePanelRouteId(e,t){let n=this.workspacePanels.filter(e=>this.isContributionActive(e.pluginId,e.machineId,t,e.sourcePluginId)),r=n.find(t=>t.id===e);if(r!==void 0)return r.id;let i=n.filter(t=>t.routeAliases?.includes(e)===!0);if(i.length===1)return i[0]?.id;i.length>1&&console.warn(`Ambiguous PI WEB workspace panel route: ${e}`)}async invalidateWorkspacePanels(e,t){await Promise.all(this.workspacePanels.map(async n=>{if(!(n.onInvalidate===void 0||t!==void 0&&n.id!==t))try{await n.onInvalidate(e)}catch(e){console.warn(`Failed to invalidate PI WEB plugin panel ${n.id}`,e)}}))}getThemes(){return[...this.themes].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.name.localeCompare(t.name))}getThemePairs(){return[...this.themePairs].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.name.localeCompare(t.name))}getWorkspaceLabelItems(e){return[...this.workspaceLabels].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.id.localeCompare(t.id)).flatMap(t=>t.visible?.(e)===!1?[]:t.items(e))}qualifyAction(e,t,n,r,i){let a=this.qualify(e,t.id,i),o=`${r??e}:${t.id}`,s=this.parseShortcutAliases(a,t.shortcutAliases,o);return{...t,id:a,pluginId:e,localId:t.id,...s.length===0?{}:{shortcutAliases:s},...n===void 0?{}:{machineId:n},...r===void 0?{}:{sourcePluginId:r}}}qualifyWorkspacePanel(e,t,n,r,i,a){let o=this.qualify(e,t.id,a),s=t.badge,c=t.visible,l=t.onInvalidate,u=Fb(e,r,i),d=`${r??e}:${t.id}`,f=this.parseRouteAliases(o,t.routeAliases,d);return{...t,id:o,pluginId:e,localId:t.id,...f.length===0?{}:{routeAliases:f},...n===void 0?{}:{machineId:n},...r===void 0?{}:{sourcePluginId:r},visible:t=>this.isContributionActive(e,n,t.machine.id,r)&&(c?.(Ab(t,u))??!0),...s===void 0?{}:{badge:t=>this.isContributionActive(e,n,t.machine.id,r)?s(Ab(t,u)):void 0},...l===void 0?{}:{onInvalidate:t=>this.isContributionActive(e,n,t.machine.id,r)?l(Ab(t,u)):void 0},render:e=>t.render(Ab(e,u))}}qualifyWorkspaceLabelContribution(e,t,n,r,i,a){let o=this.qualify(e,t.id,a),s=t.visible,c=t.items,l=Fb(e,r,i);return{...t,id:o,pluginId:e,localId:t.id,...n===void 0?{}:{machineId:n},visible:t=>this.isContributionActive(e,n,t.machine.id,r)&&(s?.(jb(t,l))??!0),items:t=>this.isContributionActive(e,n,t.machine.id,r)?c(jb(t,l)):[]}}qualifyTheme(e,t,n){let r=this.qualify(e,t.id,n);return{...t,id:r,pluginId:e,localId:t.id}}qualifyThemePair(e,t,n){let r=this.qualify(e,t.id,n);return{...t,id:r,pluginId:e,localId:t.id,light:this.qualifyReference(e,t.light),dark:this.qualifyReference(e,t.dark)}}qualify(e,t,n){this.validateLocalId(t);let r=`${e}:${t}`;if(this.contributionIds.has(r)||n.has(r))throw Error(`Duplicate contribution id: ${r}`);return n.add(r),r}qualifyReference(e,t){return this.validateLocalId(t),`${e}:${t}`}isContributionActive(e,t,n,r){return t===void 0?!this.isGatewayPluginHiddenForMachine(e,n):t===n&&!this.isRemotePluginHiddenByGateway(r,t)}isRemoteDuplicateHiddenByGateway(e,t,n){return e!==void 0&&t!==void 0&&this.gatewayPluginIds.has(e)&&!this.gatewayMachineSpecificPluginIds.has(e)&&!n}isRemotePluginHiddenByGateway(e,t){return e===void 0||this.gatewayMachineSpecificPluginIds.has(e)||this.remoteMachineSpecificPluginIds.get(e)?.has(t)===!0?!1:this.gatewayPluginIds.has(e)}isGatewayPluginHiddenForMachine(e,t){return t!==`local`&&(this.gatewayMachineSpecificPluginIds.has(e)||this.remoteMachineSpecificPluginIds.get(e)?.has(t)===!0)}parseShortcutAliases(e,t,n){let r=[...new Set([...t??[],n])].filter(t=>t!==e),i=r.find(e=>!Lb(e));if(i!==void 0)throw Error(`Invalid shortcut alias for ${e}: ${i}`);return r.filter(Lb)}parseRouteAliases(e,t,n){let r=[...new Set([...t??[],n])].filter(t=>t!==e);for(let t of r)if(!wb.test(t))throw Error(`Invalid workspace panel route alias for ${e}: ${t}`);return r}validatePluginId(e){if(!xb.test(e))throw Error(`Invalid plugin id: ${e}`)}validateLocalId(e){if(!Sb.test(e))throw Error(`Invalid contribution id: ${e}`)}parseBackendRevision(e,t){if(t!==void 0)try{return xs(t)}catch{throw Error(`Invalid plugin backend revision for ${e}`)}}parseMachineSpecific(e,t){if(t===void 0)return!1;if(typeof t!=`boolean`)throw Error(`Invalid plugin machineSpecific value for ${e}: ${Rb(t)}`);return t}};function kb(e,t){return Tb.get(e)?.(t)??e}function Ab(e,t){return Eb.get(e)?.(t)??e}function jb(e,t){return Db.get(e)?.(t)??e}function Mb(e,t){return Tb.set(e,t),e}function Nb(e,t){return Eb.set(e,t),e}function Pb(e,t){return Db.set(e,t),e}function Fb(e,t,n){return Object.freeze({registrationPluginId:e,sourcePluginId:t??e,...n===void 0?{}:{backendRevision:n}})}function Ib(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Lb(e){return Cb.test(e)}function Rb(e){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`||typeof e==`symbol`||typeof e==`function`||e==null)return String(e);try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}}function zb(e){return e.state.selectedMachine?.id??`local`}function Bb(e,t,n,r=As){let i=e.backendRevision;if(i!==void 0)return{request:(a,o)=>r({pluginId:e.sourcePluginId,backendRevision:i,machineId:n,projectId:t.projectId,workspaceId:t.id},a,o)}}function Vb(e,t,n,r){return{readFile:r=>e.workspaceFile(t.projectId,t.id,r,n),listFiles:r=>e.workspaceTree(t.projectId,t.id,r,n),writeFile:async(i,a,o)=>{let s=await e.writeWorkspaceFile(t.projectId,t.id,i,a,o,n);return r?.(),s},deleteFile:async i=>{let a=await e.deleteWorkspaceFile(t.projectId,t.id,i,n);return r?.(),a},moveFile:async(i,a,o)=>{let s=await e.moveWorkspaceFile(t.projectId,t.id,i,a,o,n);return r?.(),s}}}var Hb=class{constructor(e,t={}){this.callbacks=e,this.refreshes=new Jl,this.connected=!1,this.onFocus=()=>{this.handleResumeSignal()},this.onVisibilityChange=()=>{this.isDocumentVisible()&&this.handleResumeSignal()},this.windowTarget=t.windowTarget??Ub(),this.documentTarget=t.documentTarget??Wb(),this.isDocumentVisible=t.isDocumentVisible??Gb,this.scheduleFrame=t.scheduleFrame??Kb}connect(){this.connected||(this.connected=!0,this.windowTarget?.addEventListener(`focus`,this.onFocus),this.documentTarget?.addEventListener(`visibilitychange`,this.onVisibilityChange))}disconnect(){this.connected&&(this.connected=!1,this.windowTarget?.removeEventListener(`focus`,this.onFocus),this.documentTarget?.removeEventListener(`visibilitychange`,this.onVisibilityChange),this.scheduledRefresh?.cancel(),this.scheduledRefresh=void 0)}handleResumeSignal(){this.callbacks.onResumeSignal(),this.scheduledRefresh===void 0&&(this.scheduledRefresh=this.scheduleFrame(()=>{this.scheduledRefresh=void 0,this.connected&&this.refreshes.request(`browser-resume`,async()=>{this.connected&&await this.callbacks.refreshAfterResume()}).catch(e=>{this.callbacks.onRefreshError(e)})}))}};function Ub(){return typeof window>`u`?void 0:window}function Wb(){return typeof document>`u`?void 0:document}function Gb(){return typeof document>`u`||document.visibilityState===`visible`}function Kb(e){if(typeof window<`u`&&typeof window.requestAnimationFrame==`function`){let t=window.requestAnimationFrame(()=>{e()});return{cancel:()=>{window.cancelAnimationFrame(t)}}}let t=globalThis.setTimeout(e,0);return{cancel:()=>{globalThis.clearTimeout(t)}}}var qb=[`machines`,`projects`,`workspaces`,`sessions`];function Jb(e){return e.selectedWorkspace===void 0?e.selectedProject===void 0?`projects`:`workspaces`:`sessions`}function Yb(e,t){if(e!==`none`)return e??Jb(t)}function Xb(e,t){return Yb(t.expanded,t.state)!==e}function Zb(e,t,n){return Yb(e,n.state)===t?`none`:t}function Qb(e){return e.workspaceCount===1?`sessions`:`workspaces`}function $b(e){return qb[qb.indexOf(e)+1]}var ex=class{hostConnected(){}constructor(e,t){this.host=e,this.getState=t,e.addController(this)}expandedSection(){return Yb(this.expanded,this.getState())}isCollapsed(e){return Xb(e,{expanded:this.expanded,state:this.getState()})}toggle(e){this.setExpanded(Zb(this.expanded,e,{state:this.getState()}))}expand(e){this.setExpanded(e)}advanceAfterSelection(e,t){let n=e===`projects`?Qb({workspaceCount:t?.workspaceCount}):$b(e);n!==void 0&&this.expand(n)}open(e,t){this.expand(e),t()}setExpanded(e){this.expanded!==e&&(this.expanded=e,this.host.requestUpdate())}};function tx(e){return e.isMobileNavigationLayout||e.navigationCollapsed}var nx=class{hostConnected(){}constructor(e){this.host=e,this.navigationPanelCollapsed=!1,this.workspacePanelCollapsed=!1,e.addController(this)}toggleNavigationPanel(){this.navigationPanelCollapsed=!this.navigationPanelCollapsed,this.host.requestUpdate()}toggleWorkspacePanel(){this.workspacePanelCollapsed=!this.workspacePanelCollapsed,this.host.requestUpdate()}expandNavigationPanel(){this.navigationPanelCollapsed&&(this.navigationPanelCollapsed=!1,this.host.requestUpdate())}expandWorkspacePanel(){this.workspacePanelCollapsed&&(this.workspacePanelCollapsed=!1,this.host.requestUpdate())}shellClass(e,t=!0){return[`shell`,ix(e),...this.navigationPanelCollapsed?[`navigation-panel-collapsed`]:[],...rx(this.workspacePanelCollapsed,t)?[]:[`workspace-panel-collapsed`]].join(` `)}};function rx(e,t){return!e&&t}function ix(e){return e===`navigation`?`navigation-view`:e===`chat`?`chat-view`:`workspace-view`}var ax=`pi-web:panel-sizes:v1`,ox={navigation:{minWidth:180,maxWidth:4096,defaultWidth:340,keyboardStep:24,largeKeyboardStep:72},workspace:{minWidth:240,maxWidth:4096,defaultWidth:480,keyboardStep:24,largeKeyboardStep:72}},sx=class{constructor(e,t={}){this.host=e,e.addController(this),this.storage=t.storage??xx(),this.panelSizes=px(this.storage)}hostConnected(){}constraints(e){return cx(e)}panelWidth(e,t){return fx(e,t??this.storedPanelWidth(e)??this.constraints(e).defaultWidth)}resizePanel(e,t,n={}){let r=fx(e,t);this.storedPanelWidth(e)!==r&&(this.panelSizes=_x(this.panelSizes,e,r),n.persist!==!1&&this.persistPanelSizes(),this.host.requestUpdate())}resetPanel(e,t={}){this.storedPanelWidth(e)!==void 0&&(this.panelSizes=vx(this.panelSizes,e),t.persist!==!1&&this.persistPanelSizes(),this.host.requestUpdate())}resetPanels(e={}){this.panelSizes.navigationPanelWidth===void 0&&this.panelSizes.workspacePanelWidth===void 0||(this.panelSizes={},e.persist!==!1&&this.persistPanelSizes(),this.host.requestUpdate())}persistPanelSizes(){mx(this.panelSizes,this.storage)}shellStyle(e={}){let t=[];return this.panelSizes.navigationPanelWidth!==void 0&&t.push(`--navigation-panel-size: ${bx(fx(`navigation`,this.panelSizes.navigationPanelWidth,e.navigation))};`),this.panelSizes.workspacePanelWidth!==void 0&&t.push(`--workspace-panel-size: ${bx(fx(`workspace`,this.panelSizes.workspacePanelWidth,e.workspace))};`),t.join(` `)}storedPanelWidth(e){return e===`navigation`?this.panelSizes.navigationPanelWidth:this.panelSizes.workspacePanelWidth}};function cx(e){return ox[e]}function lx(e,t,n){return e===`navigation`?n-t:t-n}function ux(e,t,n,r,i=cx(e)){return fx(e,t+lx(e,n,r),i)}function dx(e,t,n,r={}){let i=r.constraints??cx(e);if(n===`Home`)return i.minWidth;if(n===`End`)return i.maxWidth;let a=yx(e,n,r.largeStep===!0?i.largeKeyboardStep:i.keyboardStep);if(a!==void 0)return fx(e,t+a,i)}function fx(e,t,n=cx(e)){return Number.isFinite(t)?Math.round(Math.min(Math.max(t,n.minWidth),n.maxWidth)):n.defaultWidth}function px(e=xx()){try{let t=e?.getItem(ax);return t==null||t===``?{}:hx(JSON.parse(t))}catch{return{}}}function mx(e,t=xx()){if(t!==void 0)try{if(e.navigationPanelWidth===void 0&&e.workspacePanelWidth===void 0){t.removeItem(ax);return}let n={version:1};e.navigationPanelWidth!==void 0&&(n.navigationPanelWidth=fx(`navigation`,e.navigationPanelWidth)),e.workspacePanelWidth!==void 0&&(n.workspacePanelWidth=fx(`workspace`,e.workspacePanelWidth)),t.setItem(ax,JSON.stringify(n))}catch{}}function hx(e){if(!Sx(e)||e.version!==1)return{};let t={},n=gx(e.navigationPanelWidth),r=gx(e.workspacePanelWidth);return n!==void 0&&(t.navigationPanelWidth=fx(`navigation`,n)),r!==void 0&&(t.workspacePanelWidth=fx(`workspace`,r)),t}function gx(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function _x(e,t,n){return t===`navigation`?{...e,navigationPanelWidth:n}:{...e,workspacePanelWidth:n}}function vx(e,t){return t===`navigation`?e.workspacePanelWidth===void 0?{}:{workspacePanelWidth:e.workspacePanelWidth}:e.navigationPanelWidth===void 0?{}:{navigationPanelWidth:e.navigationPanelWidth}}function yx(e,t,n){if(e===`navigation`)return t===`ArrowRight`?n:t===`ArrowLeft`?-n:void 0;if(t===`ArrowLeft`)return n;if(t===`ArrowRight`)return-n}function bx(e){return`${String(Math.round(e))}px`}function xx(){try{return typeof window>`u`?void 0:window.localStorage}catch{return}}function Sx(e){return typeof e==`object`&&!!e}function Cx(){let e=new URLSearchParams(window.location.search);return{machineId:Dx(e.get(`machine`)),projectId:Dx(e.get(`project`)),workspaceId:Dx(e.get(`workspace`)),sessionId:Dx(e.get(`session`)),tool:Dx(e.get(`tool`)),view:Dx(e.get(`view`))}}function wx(e,t){return{machineId:e.machineId,projectId:e.projectId,workspaceId:e.workspaceId,sessionId:e.sessionId,tool:e.tool===void 0?void 0:Tx(e.tool,t),view:e.view===`chat`?`chat`:e.view===void 0?void 0:Tx(e.view,t)}}function Tx(e,t){return t(e)??(Ox(e)?e:void 0)}function Ex(e,t){let n=new URL(window.location.href);n.searchParams.delete(`machine`),n.searchParams.delete(`project`),n.searchParams.delete(`workspace`),n.searchParams.delete(`session`),n.searchParams.delete(`tool`),n.searchParams.delete(`view`),e.machineId!==void 0&&e.machineId!==``&&e.machineId!==`local`&&n.searchParams.set(`machine`,e.machineId),e.projectId!==void 0&&e.projectId!==``&&n.searchParams.set(`project`,e.projectId),e.workspaceId!==void 0&&e.workspaceId!==``&&n.searchParams.set(`workspace`,e.workspaceId),e.sessionId!==void 0&&e.sessionId!==``&&n.searchParams.set(`session`,e.sessionId),e.tool!==void 0&&e.tool!==``&&n.searchParams.set(`tool`,e.tool),e.view!==void 0&&e.view!==``&&n.searchParams.set(`view`,e.view),`${n.pathname}${n.search}${n.hash}`!=`${window.location.pathname}${window.location.search}${window.location.hash}`&&vt(String(n),t?.replace===!0)}function Dx(e){return e===null||e===``?void 0:e}function Ox(e){return/^[a-z][a-z0-9.-]*:[a-z][a-z0-9.-]*$/u.test(e)}function kx(){return jx(new URLSearchParams(window.location.search).get(`settings`))}function Ax(e,t){let n=new URL(window.location.href);e===void 0?n.searchParams.delete(`settings`):n.searchParams.set(`settings`,e),`${n.pathname}${n.search}${n.hash}`!=`${window.location.pathname}${window.location.search}${window.location.hash}`&&vt(String(n),t?.replace===!0)}function jx(e){if(e===`general`)return`general`;if(e===`appearance`||e===`theme`||e===`themes`)return`appearance`;if(e===`sessiond`||e===`sessions`)return`sessiond`;if(e===`machines`)return`machines`;if(e===`packages`||e===`pi-packages`)return`packages`;if(e===`plugins`)return`plugins`;if(e===`shortcuts`||e===`keyboard`||e===`keyboard-shortcuts`)return`shortcuts`}function Mx(e,t){return t===void 0?e:e.map(e=>Px(e,t))}function Nx(e,t){let n=new Set(Jm(e,t,{enabledOnly:!0}).filter(e=>e.active).map(e=>e.action.id));return Mx(e,t).map(e=>e.shortcut!==void 0&&!n.has(e.id)?Fx(e):e)}function Px(e,t){let n=th(e,t);return n===void 0?e:n===null?Fx(e):{...e,shortcut:n}}function Fx(e){let t={...e};return delete t.shortcut,t}function Ix(e,t){let n=t.api??es,r=t.pollIntervalMs??1e3,i=t.setTimeout??zx(),a=t.clearTimeout??Bx();return{async runCommand(o){let s=await n.runTerminalCommand(e,o);return o.open===!0&&t.openTerminal(o.workspace,{terminalId:s.terminalId}),{run:s,completed:Lx(s,n,r,i,a)}},listCommandRuns:e=>n.listCommandRuns(e),getCommandRun:e=>n.getCommandRun(e),open:e=>{t.openTerminal(void 0,e)}}}function Lx(e,t,n,r,i){return Rx(e)?Promise.resolve(e):new Promise((a,o)=>{let s,c=!1,l=e=>{c||(c=!0,s!==void 0&&i(s),a(e))},u=e=>{c||(c=!0,s!==void 0&&i(s),o(e instanceof Error?e:Error(String(e))))},d=()=>{t.getCommandRun(e.id).then(e=>{if(e!==void 0&&Rx(e)){l(e);return}s=r(d,n)}).catch(u)};s=r(d,n)})}function Rx(e){return e.status===`succeeded`||e.status===`failed`}function zx(){return(e,t)=>globalThis.setTimeout(e,t)}function Bx(){return e=>{globalThis.clearTimeout(e)}}var Vx=class{constructor(e){this.callbacks=e,this.fired=!1}start(e){this.cancel(),this.origin=e,this.fired=!1,this.handle=this.callbacks.setTimer(()=>{this.handle=void 0,this.fired=!0,this.callbacks.onLongPress()},500)}move(e){if(this.origin===void 0)return;let t=Math.abs(e.clientX-this.origin.clientX),n=Math.abs(e.clientY-this.origin.clientY);(t>10||n>10)&&this.cancel()}cancel(){this.handle!==void 0&&this.callbacks.clearTimer(this.handle),this.handle=void 0,this.origin=void 0}consumeSuppressedClick(){let e=this.fired;return this.fired=!1,e}},Hx=class{constructor(e){this.open=e,this.longPress=new Vx({onLongPress:()=>{this.heldId!==void 0&&this.open(this.heldId,this.heldAnchor??null)},setTimer:(e,t)=>window.setTimeout(e,t),clearTimer:e=>{window.clearTimeout(e)}})}pointerDown(e,t){t.pointerType!==`mouse`&&(this.heldId=e,this.heldAnchor=t.currentTarget,this.longPress.start(t))}pointerMove(e){this.longPress.move(e)}cancel(){this.longPress.cancel(),this.heldId=void 0,this.heldAnchor=void 0}consumeSuppressedClick(){return this.longPress.consumeSuppressedClick()}contextMenu(e,t){t.preventDefault(),this.open(e,t.currentTarget)}};function Ux(e){return`${e.label}\n${e.path}`}function Wx(e,t){return kf(e,t,Ux)}function Gx(e,t){return kf(e,t,e=>e.name)}function Kx(e,t){return e>=8||Df(t).length>0}var qx=0,Jx=120;function Yx(e,t={}){if(typeof HTMLElement>`u`||typeof window>`u`||!(e instanceof HTMLElement))return``;let n=e.getBoundingClientRect(),r=t.constrainTo===`viewport`?Zx():Xx(e),i=window.innerWidth,a=window.innerHeight,o=Math.max(0,r.left),s=Math.min(i,r.right),c=Math.max(0,r.top),l=Math.min(a,r.bottom),u=Math.min(n.right,s),d=l-n.bottom-qx,f=n.top-c-qx;return[...d<Jx&&f>d?[`bottom: ${Qx(a-n.top+qx)};`,`max-height: ${Qx(Math.max(0,f))};`]:[`top: ${Qx(n.bottom+qx)};`,`max-height: ${Qx(Math.max(0,d))};`],`right: ${Qx(Math.max(0,i-u))};`,`max-width: ${Qx(Math.max(0,u-o))};`].join(` `)}function Xx(e){let t=e.getRootNode();return typeof ShadowRoot<`u`&&t instanceof ShadowRoot&&t.host instanceof HTMLElement?t.host.getBoundingClientRect():Zx()}function Zx(){return{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}}function Qx(e){return`${String(Math.round(e))}px`}function $x(e,t=`Active`,n){if(e===void 0)return n===void 0?void 0:h`<span class="activity-indicator unread" role="img" aria-label=${n} title=${n}></span>`;if(n===void 0)return h`<span class=${`activity-indicator ${e}`} role="img" aria-label=${t} title=${t}></span>`;let r=`${n} · ${t}`;return h`<span class="unread-ring" role="img" aria-label=${r} title=${r}><span class=${`activity-indicator ${e}`} aria-hidden="true"></span></span>`}function eS(e){if(e!==void 0)return e[Qt.working]===!0?`session`:e[Qt.terminal]===!0?`terminal`:Object.entries(e).some(([e,t])=>t&&e!==Qt.unread)?`session`:void 0}function tS(e){return e?.[Qt.unread]===!0}var nS={working:`Session is working`,background:`Turn ended; background work still running`,idle:`Session is done`,asking:`Waiting for your answer`,error:`Session hit an error`};function rS(e,t){if(e===void 0)return t===void 0?void 0:h`<span class="session-state unread" role="img" aria-label=${t} title=${t}></span>`;let n=e===`sending`?`Sending message`:nS[e],r=t===void 0?n:`${t} · ${n}`;if(e===`idle`)return h`<span class=${t===void 0?`session-state idle`:`session-state idle unread`} role="img" aria-label=${r} title=${r}></span>`;if(e===`working`||e===`sending`){let i=e===`working`?[0,1,2].map(e=>h`<span class="state-dot working-dot" style=${`animation-delay:${(e*.14).toFixed(2)}s`}></span>`):null;return t===void 0?h`<span class="session-state working" role="img" aria-label=${n} title=${n}><span class="state-dots">${i}</span></span>`:h`<span class="unread-ring" role="img" aria-label=${r} title=${r}><span class="session-state working" aria-hidden="true"><span class="state-dots">${i}</span></span></span>`}return t===void 0?h`<span class=${`session-state ${e}`} role="img" aria-label=${n} title=${n}></span>`:h`<span class="unread-ring" role="img" aria-label=${r} title=${r}><span class=${`session-state ${e}`} aria-hidden="true"></span></span>`}function iS(e,t=`Active`,n){let r=$x(e,t,n);if(r!==void 0)return h`<span class="action-activity">${r}</span>`}var aS=[`a[href]`,`button`,`input`,`select`,`textarea`,`summary`,`[role='button']`,`[role='link']`,`[contenteditable='true']`].join(`,`);function oS(e){return e.composedPath().some(e=>sS(e,aS))}function sS(e,t){if(typeof Element<`u`&&e instanceof Element)return e.matches(t);if(!(`matches`in e))return!1;let{matches:n}=e;return typeof n==`function`&&n.call(e,t)===!0}function cS(e,t){return oS(e)?!1:e.key===`Enter`||e.key===` `?(e.preventDefault(),t.activate(),!0):e.key===`ArrowUp`?uS(e,()=>{dS(e.currentTarget,-1)}):e.key===`ArrowDown`?uS(e,()=>{dS(e.currentTarget,1)}):e.key===`Home`?uS(e,()=>{fS(e.currentTarget,0)}):e.key===`End`?uS(e,()=>{fS(e.currentTarget,-1)}):e.key===`ArrowLeft`&&t.previousSection!==void 0?uS(e,t.previousSection):e.key===`ArrowRight`&&t.nextSection!==void 0?uS(e,t.nextSection):e.key===`Escape`&&t.cancel!==void 0&&uS(e,t.cancel)}function lS(e,t={}){let n=e.querySelector(`.action-row.selected`)??e.querySelector(`.action-row`)??(t.fallbackSelector===void 0?void 0:e.querySelector(t.fallbackSelector));return n==null?!1:(n.focus(),n.scrollIntoView({block:`nearest`}),!0)}function uS(e,t){return e.preventDefault(),e.stopPropagation?.(),t(),!0}function dS(e,t){let n=mS(e),r=gS(e);if(r===void 0||n.length===0)return;let i=n.indexOf(r);i<0||pS(n,i+t)}function fS(e,t){let n=mS(e);n.length!==0&&pS(n,t<0?n.length-1:t)}function pS(e,t){let n=e[Math.min(Math.max(t,0),e.length-1)];n?.focus(),n?.scrollIntoView({block:`nearest`})}function mS(e){let t=gS(e)?.getRootNode();return t===void 0||!hS(t)?[]:Array.from(t.querySelectorAll(`.action-row`))}function hS(e){return typeof Document<`u`&&e instanceof Document||typeof DocumentFragment<`u`&&e instanceof DocumentFragment}function gS(e){if(!(typeof HTMLElement>`u`||!(e instanceof HTMLElement)))return e.closest(`.action-row`)??void 0}var U=class extends _{constructor(...e){super(...e),this.machines=[],this.searchQuery=``,this.statuses={},this.statusSnapshots={},this.collapsible=!1,this.collapsed=!1,this.gestures=new Hx((e,t)=>{this.openMenu(e,t)}),this.menuStyle=``,this.onDocumentClick=e=>{e.composedPath().includes(this)||(this.openMenuMachineId=void 0)}}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this.onDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this.onDocumentClick),super.disconnectedCallback()}updated(e){e.has(`machines`)&&this.openMenuMachineId!==void 0&&!this.machines.some(e=>e.id===this.openMenuMachineId)&&(this.openMenuMachineId=void 0),e.has(`collapsed`)&&this.collapsed&&(this.openMenuMachineId=void 0)}async focusSelectedOrFirst(){return await this.updateComplete,lS(this.renderRoot,{fallbackSelector:`.section-toggle`})}renderSearch(){if(!Kx(this.machines.length,this.searchQuery))return null;let e=this.searchQuery!==``;return h`
|
|
670
|
+
`]}};H([S({attribute:!1})],Iy.prototype,`context`,void 0),H([w(`#workspace-upload-input`)],Iy.prototype,`uploadInput`,void 0),H([w(`.dialog-backdrop`)],Iy.prototype,`uploadDialogBackdrop`,void 0),H([w(`.upload-dialog`)],Iy.prototype,`uploadDialog`,void 0),H([C()],Iy.prototype,`pendingUpload`,void 0),H([C()],Iy.prototype,`destinationFolder`,void 0),H([C()],Iy.prototype,`overwrite`,void 0),H([C()],Iy.prototype,`createDirs`,void 0),H([C()],Iy.prototype,`formError`,void 0),H([C()],Iy.prototype,`dragActive`,void 0),Iy=H([x(`workspace-files-panel`)],Iy);function Ly(e,t){return Object.values(e).filter(e=>e.projectId===t.projectId&&e.workspaceId===t.workspaceId&&e.machineId===t.machineId).sort((e,t)=>t.startedAt.localeCompare(e.startedAt))}function Ry(e,t){if(e.length===0)return`Choose at least one file to upload.`;for(let n of e)try{Ws(t,n.name)}catch(e){return y(e)}}function zy(e){return{destinationFolder:e,createDirs:!0,overwrite:!1}}function By(e,t){if(t.length!==0)return e.onStartWorkspaceUpload(t,{destinationFolder:e.workspaceUploadDefaultFolder,createDirs:!0,overwrite:!1,selectUploadedFile:!0})}function Vy(e){return`${e.machine.id}:${e.workspace.projectId}:${e.workspace.id}`}function Hy(e){return e==null?[]:Array.from(e)}function Uy(e){return Array.from(e.dataTransfer?.types??[]).includes(`Files`)}function Wy(e){let t=e.getRootNode();return t instanceof ShadowRoot&&t.host instanceof HTMLElement?t.host:e}function Gy(e){let t=e.filter(e=>e.status===`uploading`).length;return t===0?`${String(e.length)} recent`:`${String(t)} uploading`}function Ky(e){let t=e.files.length,n=t===1?`file`:`files`;switch(e.status){case`completed`:return`Uploaded ${String(t)} ${n}`;case`error`:return`Upload failed for ${String(t)} ${n}`;case`cancelled`:return`Upload cancelled for ${String(t)} ${n}`;case`uploading`:return`Uploading ${String(t)} ${n}`}}function qy(e){switch(e.status){case`completed`:return`Done`;case`error`:return`Failed`;case`cancelled`:return`Cancelled`;case`uploading`:return Zy(e.percent)}}function Jy(e){return e.status===`uploading`?e.percent:1}function Yy(e){switch(e.status){case`pending`:return`Pending`;case`uploading`:return Zy(e.percent);case`completed`:return`Done`;case`error`:return`Error`;case`cancelled`:return`Cancelled`}}function Xy(e){return e.error===void 0?e.response===void 0?`${e.path} · ${Wg(e.loaded)} / ${Wg(e.total)}`:`Wrote ${e.response.path}`:e.error}function Zy(e){return`${String(Math.round(Math.max(0,Math.min(1,e))*100))}%`}function Qy(){return[{id:`workspace.files`,title:`Files`,icon:Vg(`files`),order:10,routeAliases:[`files`],render:$y},{id:`workspace.terminal`,title:`Terminal`,icon:Vg(`terminal`),order:30,badge:e=>e.activeTerminalCount>0?e.activeTerminalCount:void 0,render:eb}]}function $y(e){return h`<workspace-files-panel .context=${e}></workspace-files-panel>`}function eb(e){return tb(),h`<terminal-panel .workspace=${e.workspace} .machineId=${e.machine.id} .selectedTerminalId=${e.selectedTerminalId} .autoStart=${e.terminalAutoStart} .onSelectTerminal=${e.onSelectTerminal}></terminal-panel>`}function tb(){Dy(()=>import(`./TerminalPanel-0M9uTUST.js`),__vite__mapDeps([4,5,6]),import.meta.url)}var nb={apiVersion:2,name:`PI WEB Core`,activate:()=>({contributions:{actions:Ng(),workspacePanels:Qy()}})},rb={"--pi-bg":`#0d1117`,"--pi-surface":`#161b22`,"--pi-surface-hover":`#21262d`,"--pi-terminal-bg":`#05070a`,"--pi-terminal-text":`#e6edf3`,"--pi-border":`#30363d`,"--pi-border-muted":`#21262d`,"--pi-text":`#e6edf3`,"--pi-text-secondary":`#c9d1d9`,"--pi-text-bright":`#f0f6fc`,"--pi-muted":`#8b949e`,"--pi-dim":`#6e7681`,"--pi-accent":`#58a6ff`,"--pi-accent-border":`#2f81f7`,"--pi-selection-bg":`#0d2847`,"--pi-success":`#3fb950`,"--pi-success-border":`#238636`,"--pi-success-bg":`#0f1b12`,"--pi-success-surface":`#0f2a16`,"--pi-success-ring":`#3fb95055`,"--pi-warning":`#d29922`,"--pi-warning-border":`#6e5200`,"--pi-warning-surface":`#1f1a10`,"--pi-danger":`#ff7b72`,"--pi-purple":`#d2a8ff`,"--pi-purple-border":`#a371f7`,"--pi-purple-surface":`#21132f`,"--pi-overlay":`#0008`,"--pi-shadow-soft":`#0006`,"--pi-shadow":`#0008`,"--pi-shadow-strong":`#000b`,"--pi-bg-overlay-soft":`#0d1117dd`,"--pi-bg-overlay":`#0d1117e6`,"--pi-success-bg-overlay":`#0f1b12ee`,"--pi-terminal-selection":`#264f78`},ib={"--pi-bg":`#070912`,"--pi-surface":`#101527`,"--pi-surface-hover":`#151b31`,"--pi-terminal-bg":`#050710`,"--pi-terminal-text":`#f7f4ff`,"--pi-border":`#26304f`,"--pi-border-muted":`#26304f`,"--pi-text":`#f7f4ff`,"--pi-text-secondary":`#aaa4bd`,"--pi-text-bright":`#ffffff`,"--pi-muted":`#aaa4bd`,"--pi-dim":`#817a99`,"--pi-accent":`#7c3cff`,"--pi-accent-border":`#5a47b0`,"--pi-selection-bg":`#1d2547`,"--pi-success":`#00f0d8`,"--pi-success-border":`#00f0d8`,"--pi-success-bg":`#071e22`,"--pi-success-surface":`#092d31`,"--pi-success-ring":`#00f0d855`,"--pi-warning":`#ffb000`,"--pi-warning-border":`#ffb000`,"--pi-warning-surface":`#16140d`,"--pi-danger":`#ff4f7b`,"--pi-purple":`#b7a2ff`,"--pi-purple-border":`#7c3cff`,"--pi-purple-surface":`#181026`,"--pi-overlay":`#0008`,"--pi-shadow-soft":`#0006`,"--pi-shadow":`#0008`,"--pi-shadow-strong":`#000b`,"--pi-bg-overlay-soft":`#070912dd`,"--pi-bg-overlay":`#070912e6`,"--pi-success-bg-overlay":`#071e22ee`,"--pi-terminal-selection":`#3d4a78`},ab={"--pi-bg":`#f7f1e6`,"--pi-surface":`#fff9ee`,"--pi-surface-hover":`#f0e6d6`,"--pi-terminal-bg":`#15131b`,"--pi-terminal-text":`#fff9ee`,"--pi-border":`#c9bca8`,"--pi-border-muted":`#d8cdbc`,"--pi-text":`#15131b`,"--pi-text-secondary":`#15131b`,"--pi-text-bright":`#15131b`,"--pi-muted":`#5f586a`,"--pi-dim":`#766f7e`,"--pi-accent":`#6430d8`,"--pi-accent-border":`#6430d8`,"--pi-selection-bg":`#eadff8`,"--pi-success":`#008c82`,"--pi-success-border":`#008c82`,"--pi-success-bg":`#e1f4ef`,"--pi-success-surface":`#d7f0ec`,"--pi-success-ring":`#008c8255`,"--pi-warning":`#b05f00`,"--pi-warning-border":`#b05f00`,"--pi-warning-surface":`#fff2d2`,"--pi-danger":`#b51d49`,"--pi-purple":`#6430d8`,"--pi-purple-border":`#6430d8`,"--pi-purple-surface":`#eadff8`,"--pi-overlay":`#15131b66`,"--pi-shadow-soft":`#15131b22`,"--pi-shadow":`#15131b33`,"--pi-shadow-strong":`#15131b44`,"--pi-bg-overlay-soft":`#f7f1e6dd`,"--pi-bg-overlay":`#f7f1e6e6`,"--pi-success-bg-overlay":`#e1f4efee`,"--pi-terminal-selection":`#8d7b64`},ob={"--pi-bg":`#000000`,"--pi-surface":`#0d0d0d`,"--pi-surface-hover":`#1a1a1a`,"--pi-terminal-bg":`#000000`,"--pi-terminal-text":`#ffffff`,"--pi-border":`#5c5c5c`,"--pi-border-muted":`#3d3d3d`,"--pi-text":`#ffffff`,"--pi-text-secondary":`#e6e6e6`,"--pi-text-bright":`#ffffff`,"--pi-muted":`#b3b3b3`,"--pi-dim":`#8f8f8f`,"--pi-accent":`#4dc3ff`,"--pi-accent-border":`#4dc3ff`,"--pi-selection-bg":`#00263a`,"--pi-success":`#3ff05a`,"--pi-success-border":`#3ff05a`,"--pi-success-bg":`#001a06`,"--pi-success-surface":`#00280b`,"--pi-success-ring":`#3ff05a66`,"--pi-warning":`#ffcc33`,"--pi-warning-border":`#ffcc33`,"--pi-warning-surface":`#251c00`,"--pi-danger":`#ff6b6b`,"--pi-purple":`#c9a3ff`,"--pi-purple-border":`#c9a3ff`,"--pi-purple-surface":`#180d29`,"--pi-overlay":`#000000cc`,"--pi-shadow-soft":`#00000099`,"--pi-shadow":`#000000bb`,"--pi-shadow-strong":`#000000e6`,"--pi-bg-overlay-soft":`#000000dd`,"--pi-bg-overlay":`#000000f2`,"--pi-success-bg-overlay":`#001a06ee`,"--pi-terminal-selection":`#00456b`},sb={"--pi-bg":`#14110e`,"--pi-surface":`#1d1915`,"--pi-surface-hover":`#26211b`,"--pi-terminal-bg":`#100d0b`,"--pi-terminal-text":`#e8ddcc`,"--pi-border":`#3a3229`,"--pi-border-muted":`#2b2520`,"--pi-text":`#e8ddcc`,"--pi-text-secondary":`#cbbfad`,"--pi-text-bright":`#fff4e0`,"--pi-muted":`#9c9081`,"--pi-dim":`#7a6f62`,"--pi-accent":`#e0a35c`,"--pi-accent-border":`#b8813f`,"--pi-selection-bg":`#2e2415`,"--pi-success":`#8fbf6f`,"--pi-success-border":`#6d9954`,"--pi-success-bg":`#161c12`,"--pi-success-surface":`#1e2718`,"--pi-success-ring":`#8fbf6f55`,"--pi-warning":`#d9a441`,"--pi-warning-border":`#9c7429`,"--pi-warning-surface":`#241c0f`,"--pi-danger":`#d97b6c`,"--pi-purple":`#b79ad1`,"--pi-purple-border":`#8d74a8`,"--pi-purple-surface":`#221a2b`,"--pi-overlay":`#0a0806cc`,"--pi-shadow-soft":`#00000055`,"--pi-shadow":`#00000077`,"--pi-shadow-strong":`#000000aa`,"--pi-bg-overlay-soft":`#14110edd`,"--pi-bg-overlay":`#14110ee6`,"--pi-success-bg-overlay":`#161c12ee`,"--pi-terminal-selection":`#3d3121`},cb={"--pi-bg":`#fbfbf9`,"--pi-surface":`#ffffff`,"--pi-surface-hover":`#f1f1ee`,"--pi-terminal-bg":`#1c1c1a`,"--pi-terminal-text":`#fbfbf9`,"--pi-border":`#c7c7c1`,"--pi-border-muted":`#e0e0da`,"--pi-text":`#1c1c1a`,"--pi-text-secondary":`#33332f`,"--pi-text-bright":`#000000`,"--pi-muted":`#5e5e58`,"--pi-dim":`#7c7c75`,"--pi-accent":`#1f5fd0`,"--pi-accent-border":`#1f5fd0`,"--pi-selection-bg":`#e2ecfb`,"--pi-success":`#0f7a4a`,"--pi-success-border":`#0f7a4a`,"--pi-success-bg":`#e6f5ed`,"--pi-success-surface":`#d9efe3`,"--pi-success-ring":`#0f7a4a55`,"--pi-warning":`#8a5a00`,"--pi-warning-border":`#8a5a00`,"--pi-warning-surface":`#fdf0d5`,"--pi-danger":`#b02020`,"--pi-purple":`#5b3fc7`,"--pi-purple-border":`#5b3fc7`,"--pi-purple-surface":`#ece7fb`,"--pi-overlay":`#1c1c1a66`,"--pi-shadow-soft":`#1c1c1a1a`,"--pi-shadow":`#1c1c1a2b`,"--pi-shadow-strong":`#1c1c1a40`,"--pi-bg-overlay-soft":`#fbfbf9dd`,"--pi-bg-overlay":`#fbfbf9e6`,"--pi-success-bg-overlay":`#e6f5edee`,"--pi-terminal-selection":`#9ab4d8`},lb={apiVersion:2,name:`PI WEB Themes`,activate:()=>({contributions:{themes:[{id:`pi-web-dark`,name:`PI WEB Dark`,description:`Dark PI WEB palette.`,order:10,colorScheme:`dark`,tokens:ib},{id:`pi-web-light`,name:`PI WEB Light`,description:`Light PI WEB palette.`,order:20,colorScheme:`light`,tokens:ab},{id:`classic`,name:`PI WEB Classic`,description:`The original PI WEB dark palette.`,order:30,colorScheme:`dark`,tokens:rb},{id:`high-contrast`,name:`High Contrast`,description:`Near-black behind near-white, for bright rooms and tired eyes.`,order:40,colorScheme:`dark`,tokens:ob},{id:`night`,name:`Night`,description:`Warm and dim, with an amber accent instead of blue light.`,order:50,colorScheme:`dark`,tokens:sb},{id:`paper`,name:`Paper`,description:`Untinted ink on paper, for daylight and for screenshots.`,order:60,colorScheme:`light`,tokens:cb}],themePairs:[{id:`pi-web`,name:`PI WEB`,description:`Follow the system light/dark preference with PI WEB themes.`,order:10,light:`pi-web-light`,dark:`pi-web-dark`}]}})};async function ub(e=`pi-web-plugins/manifest.json`,t={}){let n=Ze(e),r=await pb(n);if(r===void 0)return{registrations:[],failures:[]};let i=[],a=[],o=await Promise.all(r.plugins.map(async e=>{if(t.shouldLoadPlugin?.(e)!==!1)try{let r=db(e.module,n),i=vb(await(t.moduleLoader??fb)(r),r);return{registration:{id:t.machineId===void 0?e.id:Sl(t.machineId,e.id),plugin:i,machineSpecific:e.machineSpecific,...e.backendRevision===void 0?{}:{backendRevision:e.backendRevision},...t.machineId===void 0?{}:{machineId:t.machineId,sourcePluginId:e.id}}}}catch(t){return{failure:{entry:e,error:t}}}}));for(let e of o)e!==void 0&&(`registration`in e?i.push(e.registration):a.push(e.failure));return{registrations:i,failures:a}}function db(e,t,n){return e.startsWith(`/`)?n===void 0?Ze(e):Ze(e,n):new URL(e,t).toString()}async function fb(e){return Dy(()=>import(e),[],import.meta.url)}async function pb(e){let t=await fetch(e,{cache:`no-store`});if(t.status!==404){if(!t.ok)throw Error(await hb(t));return mb(await t.json())}}function mb(e){if(!bb(e)||!Array.isArray(e.plugins))throw Error(`Invalid plugin manifest`);let t=e.plugins.map(e=>{if(!bb(e)||typeof e.id!=`string`||typeof e.module!=`string`||e.module===``)throw Error(`Invalid plugin manifest entry`);let t=e.id;if(!mn(t))throw Error(`Invalid plugin manifest id: ${t}`);if(hn(t))throw Error(`Reserved plugin manifest id: ${t}`);return{id:t,module:e.module,...gb(e.backendRevision),machineSpecific:_b(e.machineSpecific)}}),n=new Set;for(let e of t){if(n.has(e.id))throw Error(`Duplicate plugin manifest id: ${e.id}`);n.add(e.id)}return{plugins:t}}async function hb(e){let t;try{let n=await e.json();if(bb(n)){let e=n.error,r=n.detail;t=typeof r==`string`?`${typeof e==`string`?`${e}: `:``}${r}`:typeof e==`string`?e:void 0}}catch{}return`Failed to load plugin manifest (${`${String(e.status)}${e.statusText===``?``:` ${e.statusText}`}`})${t===void 0?``:`: ${t}`}`}function gb(e){if(e===void 0)return{};try{return{backendRevision:xs(e)}}catch{throw Error(`Invalid plugin manifest entry`)}}function _b(e){if(e===void 0)return!1;if(typeof e!=`boolean`)throw Error(`Invalid plugin manifest entry`);return e}function vb(e,t){if(!bb(e))throw Error(`Plugin module ${t} did not export an object`);let n=e.default;if(bb(n)&&n.apiVersion!==2)throw Error(`Unsupported browser plugin API version for ${t}: ${String(n.apiVersion)} (expected 2)`);if(!yb(n))throw Error(`Plugin module ${t} default export is not a PiWebPlugin`);return n}function yb(e){return bb(e)&&e.apiVersion===2&&typeof e.name==`string`&&typeof e.activate==`function`}function bb(e){return typeof e==`object`&&!!e}var xb=/^[a-z][a-z0-9.-]*$/u,Sb=/^[a-z][a-z0-9.-]*$/u,Cb=/^[a-z][a-z0-9.-]*:[a-z][a-z0-9.-]*$/u,wb=/^[a-z][a-z0-9.-]*(?::[a-z][a-z0-9.-]*)?$/u,Tb=new WeakMap,Eb=new WeakMap,Db=new WeakMap,Ob=class{constructor(){this.actions=[],this.workspacePanels=[],this.workspaceLabels=[],this.themes=[],this.themePairs=[],this.pluginIds=new Set,this.registeringPluginIds=new Set,this.gatewayPluginIds=new Set,this.gatewayMachineSpecificPluginIds=new Set,this.remoteMachineSpecificPluginIds=new Map,this.contributionIds=new Set}register(e){let{plugin:t}=e,n=e.id,r=e.sourcePluginId??n;this.validatePluginId(n),this.validatePluginId(r);let i=this.parseMachineSpecific(n,e.machineSpecific),a=this.parseBackendRevision(n,e.backendRevision);if(this.pluginIds.has(n)||this.registeringPluginIds.has(n))throw Error(`Duplicate plugin id: ${n}`);if(!this.isRemoteDuplicateHiddenByGateway(e.sourcePluginId,e.machineId,i)){this.registeringPluginIds.add(n);try{let o=t.apiVersion;if(o!==2)throw Error(`Unsupported browser plugin API version for ${r}: ${String(o)} (expected 2)`);let s=t.activate(Object.freeze({apiVersion:2,pluginId:r,runtimePluginId:n,html:h,svg:je})).contributions,c=new Set,l=(s.actions??[]).map(t=>this.qualifyAction(n,t,e.machineId,e.sourcePluginId,c)),u=(s.workspacePanels??[]).map(t=>this.qualifyWorkspacePanel(n,t,e.machineId,e.sourcePluginId,a,c)),d=(s.workspaceLabels??[]).map(t=>this.qualifyWorkspaceLabelContribution(n,t,e.machineId,e.sourcePluginId,a,c)),f=e.machineId===void 0?(s.themes??[]).map(e=>this.qualifyTheme(n,e,c)):[],p=e.machineId===void 0?(s.themePairs??[]).map(e=>this.qualifyThemePair(n,e,c)):[];this.pluginIds.add(n);for(let e of c)this.contributionIds.add(e);this.actions.push(...l),this.workspacePanels.push(...u),this.workspaceLabels.push(...d),this.themes.push(...f),this.themePairs.push(...p),e.machineId===void 0?(this.gatewayPluginIds.add(n),i&&this.gatewayMachineSpecificPluginIds.add(n)):e.sourcePluginId!==void 0&&i&&Ib(this.remoteMachineSpecificPluginIds,e.sourcePluginId,e.machineId)}finally{this.registeringPluginIds.delete(n)}}}hasPlugin(e){return this.pluginIds.has(e)}shouldLoadRemotePlugin(e,t=!1){return!this.gatewayPluginIds.has(e)||this.gatewayMachineSpecificPluginIds.has(e)||t}getActions(e){let t=zb(e);return this.actions.filter(e=>this.isContributionActive(e.pluginId,e.machineId,t,e.sourcePluginId)).map(t=>{let n=kb(e,t.pluginId),r=t.enabled?.(n),i=r===!1?t.disabledReason?.(n):void 0,a={id:t.id,pluginId:t.pluginId,localId:t.localId,...t.machineId===void 0?{}:{machineId:t.machineId},title:t.title,run:()=>t.run(n)};return t.description!==void 0&&(a.description=t.description),t.shortcut!==void 0&&(a.shortcut=t.shortcut),t.shortcutAliases!==void 0&&(a.shortcutAliases=[...t.shortcutAliases]),t.group!==void 0&&(a.group=t.group),r!==void 0&&(a.enabled=r),i!==void 0&&i!==``&&(a.disabledReason=i),a})}getWorkspacePanels(){return[...this.workspacePanels].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.title.localeCompare(t.title))}resolveWorkspacePanelRouteId(e,t){let n=this.workspacePanels.filter(e=>this.isContributionActive(e.pluginId,e.machineId,t,e.sourcePluginId)),r=n.find(t=>t.id===e);if(r!==void 0)return r.id;let i=n.filter(t=>t.routeAliases?.includes(e)===!0);if(i.length===1)return i[0]?.id;i.length>1&&console.warn(`Ambiguous PI WEB workspace panel route: ${e}`)}async invalidateWorkspacePanels(e,t){await Promise.all(this.workspacePanels.map(async n=>{if(!(n.onInvalidate===void 0||t!==void 0&&n.id!==t))try{await n.onInvalidate(e)}catch(e){console.warn(`Failed to invalidate PI WEB plugin panel ${n.id}`,e)}}))}getThemes(){return[...this.themes].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.name.localeCompare(t.name))}getThemePairs(){return[...this.themePairs].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.name.localeCompare(t.name))}getWorkspaceLabelItems(e){return[...this.workspaceLabels].sort((e,t)=>(e.order??1e3)-(t.order??1e3)||e.id.localeCompare(t.id)).flatMap(t=>t.visible?.(e)===!1?[]:t.items(e))}qualifyAction(e,t,n,r,i){let a=this.qualify(e,t.id,i),o=`${r??e}:${t.id}`,s=this.parseShortcutAliases(a,t.shortcutAliases,o);return{...t,id:a,pluginId:e,localId:t.id,...s.length===0?{}:{shortcutAliases:s},...n===void 0?{}:{machineId:n},...r===void 0?{}:{sourcePluginId:r}}}qualifyWorkspacePanel(e,t,n,r,i,a){let o=this.qualify(e,t.id,a),s=t.badge,c=t.visible,l=t.onInvalidate,u=Fb(e,r,i),d=`${r??e}:${t.id}`,f=this.parseRouteAliases(o,t.routeAliases,d);return{...t,id:o,pluginId:e,localId:t.id,...f.length===0?{}:{routeAliases:f},...n===void 0?{}:{machineId:n},...r===void 0?{}:{sourcePluginId:r},visible:t=>this.isContributionActive(e,n,t.machine.id,r)&&(c?.(Ab(t,u))??!0),...s===void 0?{}:{badge:t=>this.isContributionActive(e,n,t.machine.id,r)?s(Ab(t,u)):void 0},...l===void 0?{}:{onInvalidate:t=>this.isContributionActive(e,n,t.machine.id,r)?l(Ab(t,u)):void 0},render:e=>t.render(Ab(e,u))}}qualifyWorkspaceLabelContribution(e,t,n,r,i,a){let o=this.qualify(e,t.id,a),s=t.visible,c=t.items,l=Fb(e,r,i);return{...t,id:o,pluginId:e,localId:t.id,...n===void 0?{}:{machineId:n},visible:t=>this.isContributionActive(e,n,t.machine.id,r)&&(s?.(jb(t,l))??!0),items:t=>this.isContributionActive(e,n,t.machine.id,r)?c(jb(t,l)):[]}}qualifyTheme(e,t,n){let r=this.qualify(e,t.id,n);return{...t,id:r,pluginId:e,localId:t.id}}qualifyThemePair(e,t,n){let r=this.qualify(e,t.id,n);return{...t,id:r,pluginId:e,localId:t.id,light:this.qualifyReference(e,t.light),dark:this.qualifyReference(e,t.dark)}}qualify(e,t,n){this.validateLocalId(t);let r=`${e}:${t}`;if(this.contributionIds.has(r)||n.has(r))throw Error(`Duplicate contribution id: ${r}`);return n.add(r),r}qualifyReference(e,t){return this.validateLocalId(t),`${e}:${t}`}isContributionActive(e,t,n,r){return t===void 0?!this.isGatewayPluginHiddenForMachine(e,n):t===n&&!this.isRemotePluginHiddenByGateway(r,t)}isRemoteDuplicateHiddenByGateway(e,t,n){return e!==void 0&&t!==void 0&&this.gatewayPluginIds.has(e)&&!this.gatewayMachineSpecificPluginIds.has(e)&&!n}isRemotePluginHiddenByGateway(e,t){return e===void 0||this.gatewayMachineSpecificPluginIds.has(e)||this.remoteMachineSpecificPluginIds.get(e)?.has(t)===!0?!1:this.gatewayPluginIds.has(e)}isGatewayPluginHiddenForMachine(e,t){return t!==`local`&&(this.gatewayMachineSpecificPluginIds.has(e)||this.remoteMachineSpecificPluginIds.get(e)?.has(t)===!0)}parseShortcutAliases(e,t,n){let r=[...new Set([...t??[],n])].filter(t=>t!==e),i=r.find(e=>!Lb(e));if(i!==void 0)throw Error(`Invalid shortcut alias for ${e}: ${i}`);return r.filter(Lb)}parseRouteAliases(e,t,n){let r=[...new Set([...t??[],n])].filter(t=>t!==e);for(let t of r)if(!wb.test(t))throw Error(`Invalid workspace panel route alias for ${e}: ${t}`);return r}validatePluginId(e){if(!xb.test(e))throw Error(`Invalid plugin id: ${e}`)}validateLocalId(e){if(!Sb.test(e))throw Error(`Invalid contribution id: ${e}`)}parseBackendRevision(e,t){if(t!==void 0)try{return xs(t)}catch{throw Error(`Invalid plugin backend revision for ${e}`)}}parseMachineSpecific(e,t){if(t===void 0)return!1;if(typeof t!=`boolean`)throw Error(`Invalid plugin machineSpecific value for ${e}: ${Rb(t)}`);return t}};function kb(e,t){return Tb.get(e)?.(t)??e}function Ab(e,t){return Eb.get(e)?.(t)??e}function jb(e,t){return Db.get(e)?.(t)??e}function Mb(e,t){return Tb.set(e,t),e}function Nb(e,t){return Eb.set(e,t),e}function Pb(e,t){return Db.set(e,t),e}function Fb(e,t,n){return Object.freeze({registrationPluginId:e,sourcePluginId:t??e,...n===void 0?{}:{backendRevision:n}})}function Ib(e,t,n){let r=e.get(t);r===void 0?e.set(t,new Set([n])):r.add(n)}function Lb(e){return Cb.test(e)}function Rb(e){if(typeof e==`string`)return e;if(typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`||typeof e==`symbol`||typeof e==`function`||e==null)return String(e);try{return JSON.stringify(e)}catch{return Object.prototype.toString.call(e)}}function zb(e){return e.state.selectedMachine?.id??`local`}function Bb(e,t,n,r=As){let i=e.backendRevision;if(i!==void 0)return{request:(a,o)=>r({pluginId:e.sourcePluginId,backendRevision:i,machineId:n,projectId:t.projectId,workspaceId:t.id},a,o)}}function Vb(e,t,n,r){return{readFile:r=>e.workspaceFile(t.projectId,t.id,r,n),listFiles:r=>e.workspaceTree(t.projectId,t.id,r,n),writeFile:async(i,a,o)=>{let s=await e.writeWorkspaceFile(t.projectId,t.id,i,a,o,n);return r?.(),s},deleteFile:async i=>{let a=await e.deleteWorkspaceFile(t.projectId,t.id,i,n);return r?.(),a},moveFile:async(i,a,o)=>{let s=await e.moveWorkspaceFile(t.projectId,t.id,i,a,o,n);return r?.(),s}}}var Hb=class{constructor(e,t={}){this.callbacks=e,this.refreshes=new Jl,this.connected=!1,this.onFocus=()=>{this.handleResumeSignal()},this.onVisibilityChange=()=>{this.isDocumentVisible()&&this.handleResumeSignal()},this.windowTarget=t.windowTarget??Ub(),this.documentTarget=t.documentTarget??Wb(),this.isDocumentVisible=t.isDocumentVisible??Gb,this.scheduleFrame=t.scheduleFrame??Kb}connect(){this.connected||(this.connected=!0,this.windowTarget?.addEventListener(`focus`,this.onFocus),this.documentTarget?.addEventListener(`visibilitychange`,this.onVisibilityChange))}disconnect(){this.connected&&(this.connected=!1,this.windowTarget?.removeEventListener(`focus`,this.onFocus),this.documentTarget?.removeEventListener(`visibilitychange`,this.onVisibilityChange),this.scheduledRefresh?.cancel(),this.scheduledRefresh=void 0)}handleResumeSignal(){this.callbacks.onResumeSignal(),this.scheduledRefresh===void 0&&(this.scheduledRefresh=this.scheduleFrame(()=>{this.scheduledRefresh=void 0,this.connected&&this.refreshes.request(`browser-resume`,async()=>{this.connected&&await this.callbacks.refreshAfterResume()}).catch(e=>{this.callbacks.onRefreshError(e)})}))}};function Ub(){return typeof window>`u`?void 0:window}function Wb(){return typeof document>`u`?void 0:document}function Gb(){return typeof document>`u`||document.visibilityState===`visible`}function Kb(e){if(typeof window<`u`&&typeof window.requestAnimationFrame==`function`){let t=window.requestAnimationFrame(()=>{e()});return{cancel:()=>{window.cancelAnimationFrame(t)}}}let t=globalThis.setTimeout(e,0);return{cancel:()=>{globalThis.clearTimeout(t)}}}var qb=[`machines`,`projects`,`workspaces`,`sessions`];function Jb(e){return e.selectedWorkspace===void 0?e.selectedProject===void 0?`projects`:`workspaces`:`sessions`}function Yb(e,t){if(e!==`none`)return e??Jb(t)}function Xb(e,t){return Yb(t.expanded,t.state)!==e}function Zb(e,t,n){return Yb(e,n.state)===t?`none`:t}function Qb(e){return e.workspaceCount===1?`sessions`:`workspaces`}function $b(e){return qb[qb.indexOf(e)+1]}var ex=class{hostConnected(){}constructor(e,t){this.host=e,this.getState=t,e.addController(this)}expandedSection(){return Yb(this.expanded,this.getState())}isCollapsed(e){return Xb(e,{expanded:this.expanded,state:this.getState()})}toggle(e){this.setExpanded(Zb(this.expanded,e,{state:this.getState()}))}expand(e){this.setExpanded(e)}advanceAfterSelection(e,t){let n=e===`projects`?Qb({workspaceCount:t?.workspaceCount}):$b(e);n!==void 0&&this.expand(n)}open(e,t){this.expand(e),t()}setExpanded(e){this.expanded!==e&&(this.expanded=e,this.host.requestUpdate())}};function tx(e){return e.isMobileNavigationLayout||e.navigationCollapsed}var nx=class{hostConnected(){}constructor(e){this.host=e,this.navigationPanelCollapsed=!1,this.workspacePanelCollapsed=!1,e.addController(this)}toggleNavigationPanel(){this.navigationPanelCollapsed=!this.navigationPanelCollapsed,this.host.requestUpdate()}toggleWorkspacePanel(){this.workspacePanelCollapsed=!this.workspacePanelCollapsed,this.host.requestUpdate()}expandNavigationPanel(){this.navigationPanelCollapsed&&(this.navigationPanelCollapsed=!1,this.host.requestUpdate())}expandWorkspacePanel(){this.workspacePanelCollapsed&&(this.workspacePanelCollapsed=!1,this.host.requestUpdate())}shellClass(e,t=!0){return[`shell`,ix(e),...this.navigationPanelCollapsed?[`navigation-panel-collapsed`]:[],...rx(this.workspacePanelCollapsed,t)?[]:[`workspace-panel-collapsed`]].join(` `)}};function rx(e,t){return!e&&t}function ix(e){return e===`navigation`?`navigation-view`:e===`chat`?`chat-view`:`workspace-view`}var ax=`pi-web:panel-sizes:v1`,ox={navigation:{minWidth:180,maxWidth:4096,defaultWidth:340,keyboardStep:24,largeKeyboardStep:72},workspace:{minWidth:240,maxWidth:4096,defaultWidth:480,keyboardStep:24,largeKeyboardStep:72}},sx=class{constructor(e,t={}){this.host=e,e.addController(this),this.storage=t.storage??xx(),this.panelSizes=px(this.storage)}hostConnected(){}constraints(e){return cx(e)}panelWidth(e,t){return fx(e,t??this.storedPanelWidth(e)??this.constraints(e).defaultWidth)}resizePanel(e,t,n={}){let r=fx(e,t);this.storedPanelWidth(e)!==r&&(this.panelSizes=_x(this.panelSizes,e,r),n.persist!==!1&&this.persistPanelSizes(),this.host.requestUpdate())}resetPanel(e,t={}){this.storedPanelWidth(e)!==void 0&&(this.panelSizes=vx(this.panelSizes,e),t.persist!==!1&&this.persistPanelSizes(),this.host.requestUpdate())}resetPanels(e={}){this.panelSizes.navigationPanelWidth===void 0&&this.panelSizes.workspacePanelWidth===void 0||(this.panelSizes={},e.persist!==!1&&this.persistPanelSizes(),this.host.requestUpdate())}persistPanelSizes(){mx(this.panelSizes,this.storage)}shellStyle(e={}){let t=[];return this.panelSizes.navigationPanelWidth!==void 0&&t.push(`--navigation-panel-size: ${bx(fx(`navigation`,this.panelSizes.navigationPanelWidth,e.navigation))};`),this.panelSizes.workspacePanelWidth!==void 0&&t.push(`--workspace-panel-size: ${bx(fx(`workspace`,this.panelSizes.workspacePanelWidth,e.workspace))};`),t.join(` `)}storedPanelWidth(e){return e===`navigation`?this.panelSizes.navigationPanelWidth:this.panelSizes.workspacePanelWidth}};function cx(e){return ox[e]}function lx(e,t,n){return e===`navigation`?n-t:t-n}function ux(e,t,n,r,i=cx(e)){return fx(e,t+lx(e,n,r),i)}function dx(e,t,n,r={}){let i=r.constraints??cx(e);if(n===`Home`)return i.minWidth;if(n===`End`)return i.maxWidth;let a=yx(e,n,r.largeStep===!0?i.largeKeyboardStep:i.keyboardStep);if(a!==void 0)return fx(e,t+a,i)}function fx(e,t,n=cx(e)){return Number.isFinite(t)?Math.round(Math.min(Math.max(t,n.minWidth),n.maxWidth)):n.defaultWidth}function px(e=xx()){try{let t=e?.getItem(ax);return t==null||t===``?{}:hx(JSON.parse(t))}catch{return{}}}function mx(e,t=xx()){if(t!==void 0)try{if(e.navigationPanelWidth===void 0&&e.workspacePanelWidth===void 0){t.removeItem(ax);return}let n={version:1};e.navigationPanelWidth!==void 0&&(n.navigationPanelWidth=fx(`navigation`,e.navigationPanelWidth)),e.workspacePanelWidth!==void 0&&(n.workspacePanelWidth=fx(`workspace`,e.workspacePanelWidth)),t.setItem(ax,JSON.stringify(n))}catch{}}function hx(e){if(!Sx(e)||e.version!==1)return{};let t={},n=gx(e.navigationPanelWidth),r=gx(e.workspacePanelWidth);return n!==void 0&&(t.navigationPanelWidth=fx(`navigation`,n)),r!==void 0&&(t.workspacePanelWidth=fx(`workspace`,r)),t}function gx(e){return typeof e==`number`&&Number.isFinite(e)?e:void 0}function _x(e,t,n){return t===`navigation`?{...e,navigationPanelWidth:n}:{...e,workspacePanelWidth:n}}function vx(e,t){return t===`navigation`?e.workspacePanelWidth===void 0?{}:{workspacePanelWidth:e.workspacePanelWidth}:e.navigationPanelWidth===void 0?{}:{navigationPanelWidth:e.navigationPanelWidth}}function yx(e,t,n){if(e===`navigation`)return t===`ArrowRight`?n:t===`ArrowLeft`?-n:void 0;if(t===`ArrowLeft`)return n;if(t===`ArrowRight`)return-n}function bx(e){return`${String(Math.round(e))}px`}function xx(){try{return typeof window>`u`?void 0:window.localStorage}catch{return}}function Sx(e){return typeof e==`object`&&!!e}function Cx(){let e=new URLSearchParams(window.location.search);return{machineId:Dx(e.get(`machine`)),projectId:Dx(e.get(`project`)),workspaceId:Dx(e.get(`workspace`)),sessionId:Dx(e.get(`session`)),tool:Dx(e.get(`tool`)),view:Dx(e.get(`view`))}}function wx(e,t){return{machineId:e.machineId,projectId:e.projectId,workspaceId:e.workspaceId,sessionId:e.sessionId,tool:e.tool===void 0?void 0:Tx(e.tool,t),view:e.view===`chat`?`chat`:e.view===void 0?void 0:Tx(e.view,t)}}function Tx(e,t){return t(e)??(Ox(e)?e:void 0)}function Ex(e,t){let n=new URL(window.location.href);n.searchParams.delete(`machine`),n.searchParams.delete(`project`),n.searchParams.delete(`workspace`),n.searchParams.delete(`session`),n.searchParams.delete(`tool`),n.searchParams.delete(`view`),e.machineId!==void 0&&e.machineId!==``&&e.machineId!==`local`&&n.searchParams.set(`machine`,e.machineId),e.projectId!==void 0&&e.projectId!==``&&n.searchParams.set(`project`,e.projectId),e.workspaceId!==void 0&&e.workspaceId!==``&&n.searchParams.set(`workspace`,e.workspaceId),e.sessionId!==void 0&&e.sessionId!==``&&n.searchParams.set(`session`,e.sessionId),e.tool!==void 0&&e.tool!==``&&n.searchParams.set(`tool`,e.tool),e.view!==void 0&&e.view!==``&&n.searchParams.set(`view`,e.view),`${n.pathname}${n.search}${n.hash}`!=`${window.location.pathname}${window.location.search}${window.location.hash}`&&vt(String(n),t?.replace===!0)}function Dx(e){return e===null||e===``?void 0:e}function Ox(e){return/^[a-z][a-z0-9.-]*:[a-z][a-z0-9.-]*$/u.test(e)}function kx(){return jx(new URLSearchParams(window.location.search).get(`settings`))}function Ax(e,t){let n=new URL(window.location.href);e===void 0?n.searchParams.delete(`settings`):n.searchParams.set(`settings`,e),`${n.pathname}${n.search}${n.hash}`!=`${window.location.pathname}${window.location.search}${window.location.hash}`&&vt(String(n),t?.replace===!0)}function jx(e){if(e===`general`)return`general`;if(e===`appearance`||e===`theme`||e===`themes`)return`appearance`;if(e===`sessiond`||e===`sessions`)return`sessiond`;if(e===`machines`)return`machines`;if(e===`packages`||e===`pi-packages`)return`packages`;if(e===`plugins`)return`plugins`;if(e===`shortcuts`||e===`keyboard`||e===`keyboard-shortcuts`)return`shortcuts`}function Mx(e,t){return t===void 0?e:e.map(e=>Px(e,t))}function Nx(e,t){let n=new Set(Jm(e,t,{enabledOnly:!0}).filter(e=>e.active).map(e=>e.action.id));return Mx(e,t).map(e=>e.shortcut!==void 0&&!n.has(e.id)?Fx(e):e)}function Px(e,t){let n=th(e,t);return n===void 0?e:n===null?Fx(e):{...e,shortcut:n}}function Fx(e){let t={...e};return delete t.shortcut,t}function Ix(e,t){let n=t.api??es,r=t.pollIntervalMs??1e3,i=t.setTimeout??zx(),a=t.clearTimeout??Bx();return{async runCommand(o){let s=await n.runTerminalCommand(e,o);return o.open===!0&&t.openTerminal(o.workspace,{terminalId:s.terminalId}),{run:s,completed:Lx(s,n,r,i,a)}},listCommandRuns:e=>n.listCommandRuns(e),getCommandRun:e=>n.getCommandRun(e),open:e=>{t.openTerminal(void 0,e)}}}function Lx(e,t,n,r,i){return Rx(e)?Promise.resolve(e):new Promise((a,o)=>{let s,c=!1,l=e=>{c||(c=!0,s!==void 0&&i(s),a(e))},u=e=>{c||(c=!0,s!==void 0&&i(s),o(e instanceof Error?e:Error(String(e))))},d=()=>{t.getCommandRun(e.id).then(e=>{if(e!==void 0&&Rx(e)){l(e);return}s=r(d,n)}).catch(u)};s=r(d,n)})}function Rx(e){return e.status===`succeeded`||e.status===`failed`}function zx(){return(e,t)=>globalThis.setTimeout(e,t)}function Bx(){return e=>{globalThis.clearTimeout(e)}}var Vx=class{constructor(e){this.callbacks=e,this.fired=!1}start(e){this.cancel(),this.origin=e,this.fired=!1,this.handle=this.callbacks.setTimer(()=>{this.handle=void 0,this.fired=!0,this.callbacks.onLongPress()},500)}move(e){if(this.origin===void 0)return;let t=Math.abs(e.clientX-this.origin.clientX),n=Math.abs(e.clientY-this.origin.clientY);(t>10||n>10)&&this.cancel()}cancel(){this.handle!==void 0&&this.callbacks.clearTimer(this.handle),this.handle=void 0,this.origin=void 0}consumeSuppressedClick(){let e=this.fired;return this.fired=!1,e}},Hx=class{constructor(e){this.open=e,this.longPress=new Vx({onLongPress:()=>{this.heldId!==void 0&&this.open(this.heldId,this.heldAnchor??null)},setTimer:(e,t)=>window.setTimeout(e,t),clearTimer:e=>{window.clearTimeout(e)}})}pointerDown(e,t){t.pointerType!==`mouse`&&(this.heldId=e,this.heldAnchor=t.currentTarget,this.longPress.start(t))}pointerMove(e){this.longPress.move(e)}cancel(){this.longPress.cancel(),this.heldId=void 0,this.heldAnchor=void 0}consumeSuppressedClick(){return this.longPress.consumeSuppressedClick()}contextMenu(e,t){t.preventDefault(),this.open(e,t.currentTarget)}};function Ux(e){return`${e.label}\n${e.path}`}function Wx(e,t){return kf(e,t,Ux)}function Gx(e,t){return kf(e,t,e=>e.name)}function Kx(e,t){return e>=8||Df(t).length>0}var qx=0,Jx=120;function Yx(e,t={}){if(typeof HTMLElement>`u`||typeof window>`u`||!(e instanceof HTMLElement))return``;let n=e.getBoundingClientRect(),r=t.constrainTo===`viewport`?Zx():Xx(e),i=window.innerWidth,a=window.innerHeight,o=Math.max(0,r.left),s=Math.min(i,r.right),c=Math.max(0,r.top),l=Math.min(a,r.bottom),u=Math.min(n.right,s),d=l-n.bottom-qx,f=n.top-c-qx;return[...d<Jx&&f>d?[`bottom: ${Qx(a-n.top+qx)};`,`max-height: ${Qx(Math.max(0,f))};`]:[`top: ${Qx(n.bottom+qx)};`,`max-height: ${Qx(Math.max(0,d))};`],`right: ${Qx(Math.max(0,i-u))};`,`max-width: ${Qx(Math.max(0,u-o))};`].join(` `)}function Xx(e){let t=e.getRootNode();return typeof ShadowRoot<`u`&&t instanceof ShadowRoot&&t.host instanceof HTMLElement?t.host.getBoundingClientRect():Zx()}function Zx(){return{top:0,right:window.innerWidth,bottom:window.innerHeight,left:0}}function Qx(e){return`${String(Math.round(e))}px`}function $x(e,t=`Active`,n){if(e===void 0)return n===void 0?void 0:h`<span class="activity-indicator unread" role="img" aria-label=${n} title=${n}></span>`;if(n===void 0)return h`<span class=${`activity-indicator ${e}`} role="img" aria-label=${t} title=${t}></span>`;let r=`${n} · ${t}`;return h`<span class="unread-ring" role="img" aria-label=${r} title=${r}><span class=${`activity-indicator ${e}`} aria-hidden="true"></span></span>`}function eS(e){if(e!==void 0)return e[Qt.working]===!0?`session`:e[Qt.terminal]===!0?`terminal`:Object.entries(e).some(([e,t])=>t&&e!==Qt.unread)?`session`:void 0}function tS(e){return e?.[Qt.unread]===!0}var nS={working:`Session is working`,background:`Turn ended; background work still running`,idle:`Session is done`,asking:`Waiting for your answer`,error:`Session hit an error`};function rS(e,t){if(e===void 0)return t===void 0?void 0:h`<span class="session-state unread" role="img" aria-label=${t} title=${t}></span>`;let n=e===`sending`?`Sending message`:nS[e],r=t===void 0?n:`${t} · ${n}`;if(e===`idle`)return h`<span class=${t===void 0?`session-state idle`:`session-state idle unread`} role="img" aria-label=${r} title=${r}></span>`;if(e===`working`||e===`sending`){let i=e===`working`?[0,1,2].map(e=>h`<span class="state-dot working-dot" style=${`animation-delay:${(e*.14).toFixed(2)}s`}></span>`):null;return t===void 0?h`<span class="session-state working" role="img" aria-label=${n} title=${n}><span class="state-dots">${i}</span></span>`:h`<span class="unread-ring" role="img" aria-label=${r} title=${r}><span class="session-state working" aria-hidden="true"><span class="state-dots">${i}</span></span></span>`}return t===void 0?h`<span class=${`session-state ${e}`} role="img" aria-label=${n} title=${n}></span>`:h`<span class="unread-ring" role="img" aria-label=${r} title=${r}><span class=${`session-state ${e}`} aria-hidden="true"></span></span>`}function iS(e,t=`Active`,n){let r=$x(e,t,n);if(r!==void 0)return h`<span class="action-activity">${r}</span>`}var aS=[`a[href]`,`button`,`input`,`select`,`textarea`,`summary`,`[role='button']`,`[role='link']`,`[contenteditable='true']`].join(`,`);function oS(e){return e.composedPath().some(e=>sS(e,aS))}function sS(e,t){if(typeof Element<`u`&&e instanceof Element)return e.matches(t);if(!(`matches`in e))return!1;let{matches:n}=e;return typeof n==`function`&&n.call(e,t)===!0}function cS(e,t){return oS(e)?!1:e.key===`Enter`||e.key===` `?(e.preventDefault(),t.activate(),!0):e.key===`ArrowUp`?uS(e,()=>{dS(e.currentTarget,-1)}):e.key===`ArrowDown`?uS(e,()=>{dS(e.currentTarget,1)}):e.key===`Home`?uS(e,()=>{fS(e.currentTarget,0)}):e.key===`End`?uS(e,()=>{fS(e.currentTarget,-1)}):e.key===`ArrowLeft`&&t.previousSection!==void 0?uS(e,t.previousSection):e.key===`ArrowRight`&&t.nextSection!==void 0?uS(e,t.nextSection):e.key===`Escape`&&t.cancel!==void 0&&uS(e,t.cancel)}function lS(e,t={}){let n=e.querySelector(`.action-row.selected`)??e.querySelector(`.action-row`)??(t.fallbackSelector===void 0?void 0:e.querySelector(t.fallbackSelector));return n==null?!1:(n.focus(),n.scrollIntoView({block:`nearest`}),!0)}function uS(e,t){return e.preventDefault(),e.stopPropagation?.(),t(),!0}function dS(e,t){let n=mS(e),r=gS(e);if(r===void 0||n.length===0)return;let i=n.indexOf(r);i<0||pS(n,i+t)}function fS(e,t){let n=mS(e);n.length!==0&&pS(n,t<0?n.length-1:t)}function pS(e,t){let n=e[Math.min(Math.max(t,0),e.length-1)];n?.focus(),n?.scrollIntoView({block:`nearest`})}function mS(e){let t=gS(e)?.getRootNode();return t===void 0||!hS(t)?[]:Array.from(t.querySelectorAll(`.action-row`))}function hS(e){return typeof Document<`u`&&e instanceof Document||typeof DocumentFragment<`u`&&e instanceof DocumentFragment}function gS(e){if(!(typeof HTMLElement>`u`||!(e instanceof HTMLElement)))return e.closest(`.action-row`)??void 0}var U=class extends _{constructor(...e){super(...e),this.machines=[],this.searchQuery=``,this.statuses={},this.statusSnapshots={},this.collapsible=!1,this.collapsed=!1,this.gestures=new Hx((e,t)=>{this.openMenu(e,t)}),this.menuStyle=``,this.onDocumentClick=e=>{e.composedPath().includes(this)||(this.openMenuMachineId=void 0)}}connectedCallback(){super.connectedCallback(),document.addEventListener(`click`,this.onDocumentClick)}disconnectedCallback(){document.removeEventListener(`click`,this.onDocumentClick),super.disconnectedCallback()}updated(e){e.has(`machines`)&&this.openMenuMachineId!==void 0&&!this.machines.some(e=>e.id===this.openMenuMachineId)&&(this.openMenuMachineId=void 0),e.has(`collapsed`)&&this.collapsed&&(this.openMenuMachineId=void 0)}async focusSelectedOrFirst(){return await this.updateComplete,lS(this.renderRoot,{fallbackSelector:`.section-toggle`})}renderSearch(){if(!Kx(this.machines.length,this.searchQuery))return null;let e=this.searchQuery!==``;return h`
|
|
671
671
|
<div class="list-search">
|
|
672
672
|
<input
|
|
673
673
|
class="list-search-input"
|
|
@@ -3403,8 +3403,8 @@ Please report this to https://github.com/markedjs/marked.`,e){let e=`<p>An error
|
|
|
3403
3403
|
<summary>${e.isError?`✖`:`✓`} ${e.toolName} result</summary>
|
|
3404
3404
|
<formatted-text .text=${e.text}></formatted-text>
|
|
3405
3405
|
</details>
|
|
3406
|
-
`:null}onGroupToggle(e,t,n){let r=t.currentTarget;r instanceof HTMLDetailsElement&&this.disclosures.applyToggle(e,r.open,n)&&this.requestUpdate()}onScroll(){this.requestLoadMoreIfNeeded(),this.updatePinnedToBottomFromScroll(),this.scheduleConversationRailUpdate(),this.suppressScrollSave||this.scheduleScrollPositionSave()}onWheel(e){e.deltaY<0&&this.canScrollUp()&&(this.pinnedToBottom=!1)}onTouchStart(e){this.touchStartY=e.touches[0]?.clientY,this.notePressStart()}onTouchEnd(){this.releasePointer()}releasePointer(){this.followGate.notePointerUp(Date.now()),this.heldWaiting!==void 0&&(this.heldWaitingClearTimer!==void 0&&clearTimeout(this.heldWaitingClearTimer),this.heldWaitingClearTimer=setTimeout(()=>{this.heldWaitingClearTimer=void 0,this.requestUpdate()},251)),!(!this.followGate.takeSuppressedFollow()||!this.pinnedToBottom)&&(this.catchUpFollowTimer!==void 0&&clearTimeout(this.catchUpFollowTimer),this.catchUpFollowTimer=setTimeout(()=>{this.catchUpFollowTimer=void 0,this.pinnedToBottom&&this.scrollToBottom()},250))}notePressStart(){this.catchUpFollowTimer!==void 0&&(clearTimeout(this.catchUpFollowTimer),this.catchUpFollowTimer=void 0),this.followGate.notePointerDown(Date.now())}onTouchMove(e){let t=e.touches[0]?.clientY;this.touchStartY!==void 0&&t!==void 0&&t>this.touchStartY&&this.canScrollUp()&&(this.pinnedToBottom=!1)}updatePinnedToBottomFromScroll(){let e=this.chat;if(!e)return;let t=this.didChatHeightChange(),n=this.pinnedToBottom,r=e.scrollTop<this.lastScrollTop;if(t&&n){this.lastClientHeight=e.clientHeight,this.scrollToBottom();return}this.isAtBottom()?this.pinnedToBottom=!0:r?this.pinnedToBottom=!1:this.pinnedToBottom=this.isNearBottom(),this.jumpToBottomVisible=iw(e),this.lastScrollTop=e.scrollTop,this.lastClientHeight=e.clientHeight}didChatHeightChange(){let e=this.chat;return e!==void 0&&this.lastClientHeight!==0&&e.clientHeight!==this.lastClientHeight}isPrependingMessages(e){let t=e.get(`messageStart`);return typeof t==`number`&&this.messageStart<t}requestLoadMoreIfNeeded(){this.loadMoreCheckFrame===void 0&&(this.loadMoreCheckFrame=requestAnimationFrame(()=>{if(this.loadMoreCheckFrame=void 0,this.suppressLoadMoreRequests)return;let e=this.chat;e&&Bw({hasMore:this.hasMore,loadingMore:this.loadingMore||this.loadMoreRequested,canRequest:this.onLoadMore!==void 0,scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,clientHeight:e.clientHeight})&&this.requestLoadMore()}))}requestLoadMore(){this.loadMoreRequested||!this.hasMore||this.loadingMore||this.onLoadMore===void 0||(this.loadMoreRequested=!0,this.onLoadMore())}isNearBottom(){let e=this.chat;return!e||QC(e)}isAtBottom(){let e=this.chat;return!e||ZC(e)<2}canScrollUp(){let e=this.chat;return e!==void 0&&e.scrollTop>0}scrollToBottom(){this.scrollToBottomFrame===void 0&&(this.scrollToBottomFrame=requestAnimationFrame(()=>{this.scrollToBottomFrame=void 0;let e=this.chat;e&&this.followGate.followsNewest(Date.now())&&this.withSuppressedScrollSave(()=>{e.scrollTop=e.scrollHeight,this.lastScrollTop=e.scrollTop,this.lastClientHeight=e.clientHeight})}))}restoreScrollPosition(){let e=this.sessionId;this.restoreScrollFrame!==void 0&&cancelAnimationFrame(this.restoreScrollFrame),this.restoreScrollFrame=requestAnimationFrame(()=>{this.restoreScrollFrame=void 0,this.sessionId===e&&this.withSuppressedScrollSave(()=>{let t=this.scrollController.restorePosition(e,this.chat,this.scrollAnchorElements(),{fallbackToBottom:this.shouldFallbackToBottomForMissingAnchor()});this.handleScrollRestoreResult(e,t)})})}continuePendingScrollRestore(){let e=this.pendingScrollRestoreSessionId,t=this.pendingScrollRestorePosition;e===void 0||t===void 0||e!==this.sessionId||this.restoreScrollFrame!==void 0||(this.restoreScrollFrame=requestAnimationFrame(()=>{this.restoreScrollFrame=void 0,this.sessionId===e&&this.withSuppressedScrollSave(()=>{let n=this.scrollController.restoreExplicitPosition(t,this.chat,this.scrollAnchorElements(),{fallbackToBottom:this.shouldFallbackToBottomForMissingAnchor()});this.handleScrollRestoreResult(e,n)})}))}handleScrollRestoreResult(e,t){if(this.syncScrollMetrics(),t.status!==`missing`){this.updatePinnedToBottomAfterRestore(t.status),(t.status===`restored`||t.status===`bottom`)&&this.cancelPrependRestore(),this.pendingScrollRestoreSessionId=void 0,this.pendingScrollRestorePosition=void 0;return}this.pinnedToBottom=!1,this.pendingScrollRestoreSessionId=e,this.pendingScrollRestorePosition=t.position;let n=this.chat;n===void 0||!this.hasMore||this.loadingMore||(n.scrollTop=0,this.syncScrollMetrics(),this.requestLoadMore())}shouldFallbackToBottomForMissingAnchor(){return!this.hasMore}updatePinnedToBottomAfterRestore(e){e===`bottom`?this.pinnedToBottom=!0:e===`restored`&&(this.pinnedToBottom=this.isNearBottom())}syncScrollMetrics(){let e=this.chat;e!==void 0&&(this.lastScrollTop=e.scrollTop,this.lastClientHeight=e.clientHeight)}cancelPrependRestore(){this.prependRestoreToken+=1,this.suppressLoadMoreRequests=!1}capturePrependScrollAnchor(){let e=this.chat;if(e)return Mw(e,this.scrollMarkers())}restorePrependScrollAnchor(e){if(!this.chat||!e)return;this.suppressLoadMoreRequests=!0,this.suppressScrollSave=!0;let t=this.prependRestoreToken+1;this.prependRestoreToken=t;let n=0,r=()=>{let i=this.chat;if(!(!i||t!==this.prependRestoreToken)){if(Nw(i,e,e.markerId===void 0?void 0:this.scrollMarkerAt(e.markerId)),this.lastScrollTop=i.scrollTop,n+=1,n<30){requestAnimationFrame(r);return}requestAnimationFrame(()=>{t===this.prependRestoreToken&&(this.suppressScrollSave=!1,this.suppressLoadMoreRequests=!1)})}};r()}saveScrollPosition(e=this.sessionId){e&&this.scrollController.savePosition(e,this.chat,this.scrollAnchorElements())}scheduleScrollPositionSave(){let e=this.sessionId;this.scrollController.scheduleSave(e,e=>{this.sessionId===e&&this.saveScrollPosition(e)})}scheduleConversationRailUpdate(){this.conversationRailFrame===void 0&&(this.conversationRailFrame=requestAnimationFrame(()=>{this.conversationRailFrame=void 0,this.updateConversationRailPosition()}))}updateConversationRailPosition(){if(!this.messages.length||this.messageTotal<=0){this.currentConversationIndex=void 0;return}let e=this.conversationDisplayTotal(),t=this.firstVisibleArticle(),n=Number(t?.dataset.index);if(Number.isFinite(n)){this.currentConversationIndex=tE(n,0,Math.max(0,e-1));return}this.currentConversationIndex=tE(this.pinnedToBottom?this.messageStart+this.messages.length-1:this.messageStart,0,Math.max(0,e-1))}scrollMarkers(){return Array.from(this.renderRoot.querySelectorAll(`.scroll-marker`))}scrollMarkerAt(e){return this.scrollMarkers().find(t=>t.dataset.markerId===e)}firstVisibleArticle(){let e=this.chat;if(e!==void 0)return tw(e,Array.from(this.renderRoot.querySelectorAll(`article.msg`)))??tw(e,this.articles())}articles(){return Array.from(this.renderRoot.querySelectorAll(`article.msg, details.msg`))}scrollAnchorElements(){return Array.from(this.renderRoot.querySelectorAll(`[data-scroll-anchor-id]`))}withSuppressedScrollSave(e){this.suppressScrollSave=!0,e(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.suppressScrollSave=!1})})}groupDisclosureKey(e,t,n){return n?`${this.sessionId}:live:${String(e)}`:`${this.sessionId}:${String(t)}`}messageAnchorKey(e){return oE(e)}groupRenderKey(e){return sE(e)}groupAnchorKey(e){return sE(e)}eventAnchorKey(e){return cE(e)}messageScrollMarkerId(e){return oE(e)}groupScrollMarkerId(e){return lE(e)}static{this.styles=KT}};H([S({attribute:!1})],q.prototype,`messages`,void 0),H([S()],q.prototype,`sessionId`,void 0),H([S({type:Number})],q.prototype,`messageStart`,void 0),H([S({type:Number})],q.prototype,`messageEnd`,void 0),H([S({type:Number})],q.prototype,`messageTotal`,void 0),H([S({type:Boolean})],q.prototype,`hasMore`,void 0),H([S({type:Boolean})],q.prototype,`loadingMore`,void 0),H([S({type:Boolean})],q.prototype,`isSendingPrompt`,void 0),H([S({type:Boolean})],q.prototype,`isCompacting`,void 0),H([S({type:Number})],q.prototype,`pendingMessageCount`,void 0),H([S({attribute:!1})],q.prototype,`clientQueuedMessages`,void 0),H([S({attribute:!1})],q.prototype,`status`,void 0),H([S({attribute:!1})],q.prototype,`activity`,void 0),H([S({attribute:!1})],q.prototype,`pendingAsk`,void 0),H([S({attribute:!1})],q.prototype,`askDraftSessionId`,void 0),H([S({attribute:!1})],q.prototype,`onSubmitAsk`,void 0),H([S({attribute:!1})],q.prototype,`pendingDialogs`,void 0),H([S({attribute:!1})],q.prototype,`commandLedger`,void 0),H([S({type:Boolean})],q.prototype,`goalCommandInFlight`,void 0),H([S({attribute:!1})],q.prototype,`closedDialogs`,void 0),H([S({attribute:!1})],q.prototype,`onAnswerDialog`,void 0),H([S({attribute:!1})],q.prototype,`onCancelDialog`,void 0),H([S({attribute:!1})],q.prototype,`onDismissClosedDialog`,void 0),H([S({attribute:!1})],q.prototype,`onResendMessage`,void 0),H([S({attribute:!1})],q.prototype,`notificationInbox`,void 0),H([S({attribute:!1})],q.prototype,`subagents`,void 0),H([S({attribute:!1})],q.prototype,`subagentRuns`,void 0),H([S({attribute:!1})],q.prototype,`backgroundTasks`,void 0),H([S({type:Boolean})],q.prototype,`activityFailed`,void 0),H([S({type:Boolean})],q.prototype,`notificationsFailed`,void 0),H([S({attribute:!1})],q.prototype,`onOpenBackgroundTask`,void 0),H([S({attribute:!1})],q.prototype,`onOpenSubagentRun`,void 0),H([S({attribute:!1})],q.prototype,`onOpenSubagent`,void 0),H([S({attribute:!1})],q.prototype,`onClearServerQueue`,void 0),H([S({attribute:!1})],q.prototype,`onRecallQueuedMessage`,void 0),H([S({attribute:!1})],q.prototype,`onDismissNotification`,void 0),H([S({attribute:!1})],q.prototype,`onDismissAllNotifications`,void 0),H([S({attribute:!1})],q.prototype,`onLoadMore`,void 0),H([S({attribute:!1})],q.prototype,`onFocusComposer`,void 0),H([S({attribute:!1})],q.prototype,`activityOutput`,void 0),H([S({attribute:!1})],q.prototype,`onCloseActivityOutput`,void 0),H([S({attribute:!1})],q.prototype,`activityConversation`,void 0),H([S({attribute:!1})],q.prototype,`onCloseActivityConversation`,void 0),H([w(`.chat`)],q.prototype,`chat`,void 0),H([w(`.drawer-tabs`)],q.prototype,`drawerTabs`,void 0),H([w(`dialog.image-zoom`)],q.prototype,`imageZoomDialog`,void 0),H([w(`dialog.activity-output`)],q.prototype,`activityOutputDialog`,void 0),H([w(`dialog.activity-conversation`)],q.prototype,`activityConversationDialog`,void 0),H([C()],q.prototype,`pinnedToBottom`,void 0),H([C()],q.prototype,`drawerHold`,void 0),H([C()],q.prototype,`jumpToBottomVisible`,void 0),H([C()],q.prototype,`zoomedImage`,void 0),H([C()],q.prototype,`expandedMetaKey`,void 0),H([C()],q.prototype,`copiedNotificationId`,void 0),H([C()],q.prototype,`copiedMessageKey`,void 0),H([C()],q.prototype,`currentConversationIndex`,void 0),H([C()],q.prototype,`collapsedTopDrawerKeys`,void 0),H([C()],q.prototype,`expandedTopDrawerKeys`,void 0),H([S({attribute:!1})],q.prototype,`goalsLoad`,void 0),H([S({type:Boolean,attribute:!1})],q.prototype,`goalsKnown`,void 0),H([S({attribute:!1})],q.prototype,`onRunGoalCommand`,void 0),H([C()],q.prototype,`topDrawerTab`,void 0),H([C()],q.prototype,`activityFilter`,void 0),H([C()],q.prototype,`activityScope`,void 0),H([C()],q.prototype,`turnStartedAtMs`,void 0),H([C()],q.prototype,`turnNowMs`,void 0),H([C()],q.prototype,`retainedEmptyNotificationTrayTargetKey`,void 0),H([C()],q.prototype,`loadMoreRequested`,void 0),q=H([x(`chat-view`)],q);function hE(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${String(t)}s`;let n=Math.floor(t/60);return n<60?`${String(n)}m ${String(t%60)}s`:`${String(Math.floor(n/60))}h ${String(n%60)}m`}function gE(e){return e.map(e=>{let t=e.status===`running`?`Running`:e.status===`done`?`Done`:e.status===`failed`?`Failed`:e.status===`lost`?`Lost`:`Unknown`,n=hE(e.elapsedMs),r=e.status===`running`?e.lastActivity??`working`:e.task??``,i=lT(e.model);return{run:e,status:e.status,statusLabel:t,duration:n,detail:r,...i===void 0?{}:{modelLabel:i.label,modelTitle:e.model??i.label},ariaLabel:`${t} ${e.agent} subagent, ${n}`+(i===void 0?``:`, on ${i.label}`)+(r===``?``:`, ${r}`)}})}function _E(e){return e.map(e=>{let t=e.status===`running`?`running`:e.status===`completed`?`done`:e.status===`killed`?`stopped`:e.status===`failed`?`failed`:e.status===`lost`?`lost`:`unknown`,n=e.status===`completed`?`Done`:e.status===`running`?`Running`:e.status===`killed`?`Stopped`:e.status===`lost`?`Lost`:e.status.charAt(0).toUpperCase()+e.status.slice(1),r=hE(e.durationMs??0),i=t===`running`?e.command.slice(0,60):e.exitCode===void 0?``:`exit ${String(e.exitCode)}`;return{task:e,status:t,statusLabel:n,duration:r,detail:i,ariaLabel:`${n} background task ${e.name}, ${r}${i===``?``:`, ${i}`}`}})}function vE(e){return e.kind===`subagents`?`subagents:${e.row.subagent.sessionId}`:e.kind===`runs`?`runs:${e.row.run.runId}`:`tasks:${e.row.task.id}`}function yE(e){return[...e].sort((e,t)=>{let n=Number(SE(t.status))-Number(SE(e.status));if(n!==0)return n;let r=Number(CE(e.status))-Number(CE(t.status));if(r!==0)return r;let i=(t.startedAt??``).localeCompare(e.startedAt??``);return i===0?e.kind.localeCompare(t.kind):i})}var bE=600*1e3;function xE(e,t){if(e===void 0)return;let n=Math.max(0,t-e);if(!(n<5e3))return{text:hE(n),long:n>=bE}}function SE(e){return e===`working`||e===`running`}function CE(e){return e===`done`||e===`failed`||e===`error`||e===`lost`||e===`stopped`}function wE(e){return typeof e==`object`&&!!e&&typeof Reflect.get(e,`sessionId`)==`string`&&Array.isArray(Reflect.get(e,`notifications`))}function TE(e){return e.active>0?`Activity · ${String(e.active)} running`:`Activity`}function EE(e){let t=[{id:`subagents`,label:`Subagents`,rows:e.rows},{id:`runs`,label:`Agent runs`,rows:e.runRows},{id:`tasks`,label:`Tasks`,rows:e.taskRows}].filter(e=>e.rows.length>0).map(e=>({id:e.id,label:e.label,count:DE(e.rows)}));return t.length<=1?t:[{id:`all`,label:`All`,count:t.reduce((e,t)=>e+t.count,0)},...t]}function DE(e){return e.filter(e=>!CE(e.status)).length}function OE(e,t){return e===`subagents`&&t.rows.length>0?`subagents`:e===`runs`&&t.runRows.length>0?`runs`:e===`tasks`&&t.taskRows.length>0?`tasks`:`all`}function kE(e){if(e===void 0)return;let t=[...e.rows,...e.runRows,...e.taskRows].filter(e=>e.status===`working`||e.status===`running`).length;if(t!==0)return t===1?`idle · 1 background run`:`idle · ${String(t)} background runs`}function AE(e,t,n){return e===`asking`&&t===`idle`?`Waiting for your answer`:n}function jE(){return!1}function ME(e,t){return t===`activity`?`activity`:t===`notifications`?`notifications`:t===`goals`?`goals`:e.notifications?`notifications`:e.activity?`activity`:e.goals===!0?`goals`:`activity`}function NE(e,t){return e===void 0?t?`Notifications (0)`:`Notifications`:nm(e)}function PE(e,t){return t?`Goals ${String(e.length)}`:`Goals`}function FE(e){return{working:e.some(e=>e===`working`||e===`running`),failed:e.some(e=>e===`error`||e===`failed`)}}function IE(e){return e===``?`Unknown`:e.charAt(0).toUpperCase()+e.slice(1)}function LE(e){return e.map(e=>{let t=e.status,n=e.sessionId.slice(-8),r=IE(t);return{subagent:e,shortId:n,status:t,statusLabel:r,cwd:e.cwd,ariaLabel:`${r} subagent ${n}`}})}var RE=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function zE(e){return typeof e==`string`&&RE.has(e)}function BE(e){switch(e){case`image/jpeg`:return`jpg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:return`bin`}}var VE=`application/octet-stream`,HE=`Failed to read an attachment.`;async function UE(e,t){let n=[],r;for(let i of e)try{let e=await t(i);n.push(qE(i,e))}catch{r=HE}return{attachments:n,...r===void 0?{}:{error:r}}}function WE(e){return e.kind===`image`&&zE(e.mimeType)}function GE(e){return e.every(e=>WE(e))}function KE(e,t){return GE(t)?e:`folder`}function qE(e,t){return zE(e.type)?{kind:`image`,name:YE(e),mimeType:e.type,data:t,size:e.size}:{kind:`file`,name:YE(e),mimeType:JE(e),data:t,size:e.size}}function JE(e){let t=e.type.trim();return t===``?VE:t}function YE(e){return e.name===``?zE(e.type)?`pasted-image.${BE(e.type)}`:`pasted-file.bin`:e.name}var XE=50,ZE=`pi-web:prompt-history:`;function QE(e){return`${ZE}${e}`}function $E(e){try{let t=localStorage.getItem(QE(e));if(t===null||t===``)return[];let n=JSON.parse(t);return Array.isArray(n)?n.filter(e=>typeof e==`string`&&e.trim()!==``):[]}catch{return[]}}function eD(e,t){try{localStorage.setItem(QE(e),JSON.stringify(t.slice(0,XE)))}catch{}}function tD(e,t){let n=t.trim();if(n===``)return $E(e);let r=[n,...$E(e).filter(e=>e!==n)].slice(0,XE);return eD(e,r),r}function nD(e,t,n=[]){let r=$E(e),i=[...r,...n.filter(e=>!r.includes(e))],a=t.trim().toLowerCase();return a===``?i:rD(i,a.split(/\s+/u).filter(Boolean))}function rD(e,t){return e.filter(e=>{let n=e.toLowerCase();return t.every(e=>n.includes(e)||iD(e,n))})}function iD(e,t){let n=0;for(let r of e){if(n=t.indexOf(r,n),n===-1)return!1;n+=r.length}return!0}function aD(e){return e===`older`?1:-1}var oD=`(pointer: coarse), (max-width: 760px)`,sD=`pi-web.promptEnterPreference`;function cD(){return typeof window<`u`&&`matchMedia`in window?window.matchMedia(oD):void 0}function lD(e){return e===`send`||e===`newline`?e:`auto`}function uD(e=hD()){if(e===void 0)return`auto`;try{return lD(e.getItem(sD))}catch{return`auto`}}function dD(e,t=hD()){if(t!==void 0)try{t.setItem(sD,e)}catch{}}function fD(e=cD(),t=uD()){return t===`send`||t!==`newline`&&e?.matches!==!0}function pD(e,t,n=cD()){return e?n?.matches!==!0||t:!1}function mD(e,t=cD(),n=uD()){let r=fD(t,n);return e?!r:r}function hD(){if(!(typeof window>`u`))try{return window.localStorage}catch{return}}var gD=100;function _D(){let e,t,n,r,i=[],a=()=>{r!==void 0&&(window.clearInterval(r),r=void 0),e?.getTracks().forEach(e=>{e.stop()}),e=void 0,n?.close().catch(()=>void 0),n=void 0,t=void 0};return{async start(a){i=[],e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=new MediaRecorder(e),t.addEventListener(`dataavailable`,e=>{e.data.size>0&&i.push(e.data)}),t.start(),n=new AudioContext;let o=n.createMediaStreamSource(e),s=n.createAnalyser();s.fftSize=512,o.connect(s);let c=new Uint8Array(s.fftSize);r=window.setInterval(()=>{s.getByteTimeDomainData(c),a(vD(c),gD)},gD)},stop(){let e=t;return e===void 0?(a(),Promise.resolve(new Blob([]))):new Promise(t=>{e.addEventListener(`stop`,()=>{let e=i[0]?.type??`audio/webm`,n=new Blob(i,{type:e});a(),t(n)},{once:!0}),e.stop()})},cancel(){i=[],t?.state===`recording`&&t.stop(),a()}}}function vD(e){let t=0;for(let n of e){let e=Math.abs(n-128)/128;e>t&&(t=e)}return t}function yD(e){return e!==void 0&&e.endpoint.trim()!==``}async function bD(e,t,n){if(!yD(t))return{ok:!1,message:`Dictation is not configured.`};if(e.size===0)return{ok:!1,message:`Nothing was recorded.`};let r=new FormData;r.append(`file`,e,`speech.webm`),t.model!==void 0&&t.model!==``&&r.append(`model`,t.model),t.language!==void 0&&t.language!==``&&r.append(`language`,t.language);let i;try{i=await n.fetch(t.endpoint,{method:`POST`,body:r,...n.signal===void 0?{}:{signal:n.signal}})}catch(e){return{ok:!1,message:`Could not reach the transcription service: ${CD(e)}`}}if(!i.ok)return{ok:!1,message:`Transcription failed (${String(i.status)}).`};let a;try{a=await i.json()}catch{return{ok:!1,message:`The transcription service returned a response that could not be read.`}}let o=xD(a);if(o===void 0)return{ok:!1,message:`The transcription service returned no text.`};let s=o.trim();return s===``?{ok:!1,message:`No speech was recognised.`}:{ok:!0,text:s}}function xD(e){if(typeof e==`string`)return e;let t=SD(e);if(t===void 0)return;for(let e of[`text`,`transcript`,`transcription`]){let n=t[e];if(typeof n==`string`)return n}let n=t.segments;if(!Array.isArray(n))return;let r=n.map(e=>SD(e)?.text).filter(e=>typeof e==`string`).join(` `);return r.trim()===``?void 0:r}function SD(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))t[n]=r;return t}function CD(e){return e instanceof Error?e.message:String(e)}var wD={"openai-realtime":`append`,deepgram:`replace`,"azure-speech":`replace`},TD=class{constructor(e){this.settled=``,this.pending=``,this.mode=e}apply(e){if(e.kind===`delta`){this.pending=this.mode===`append`?this.pending+e.text:e.text;return}if(e.kind===`final`){this.settled=this.settled===``?e.text:`${this.settled} ${e.text}`,this.pending=``;return}}text(){return this.pending===``?this.settled:this.settled===``?this.pending:/^\s/u.test(this.pending)?this.settled+this.pending:`${this.settled} ${this.pending}`}settledText(){return this.settled}};function ED(e,t){if(jD(t))return e===`openai-realtime`?OD(t):e===`azure-speech`?DD(t):kD(t)}function DD(e){let t=AD(e,`Type`);if(t===`speech.hypothesis`){let t=AD(e,`Text`);return t===void 0||t===``?void 0:{kind:`delta`,text:t}}if(t!==`speech.phrase`)return;let n=AD(e,`RecognitionStatus`);if(n===`Error`)return{kind:`error`,message:`Speech recognition reported an error.`};if(n!==`Success`)return;let r=AD(e,`DisplayText`);return r===void 0||r===``?void 0:{kind:`final`,text:r}}function OD(e){let t=AD(e,`type`);if(t===`conversation.item.input_audio_transcription.delta`){let t=AD(e,`delta`);return t===void 0||t===``?void 0:{kind:`delta`,text:t}}if(t===`conversation.item.input_audio_transcription.completed`){let t=AD(e,`transcript`);return t===void 0?void 0:{kind:`final`,text:t}}if(t===`error`){let t=e.error;return{kind:`error`,message:(jD(t)?AD(t,`message`):void 0)??`Transcription failed.`}}}function kD(e){if(AD(e,`type`)!==`Results`)return;let t=e.channel;if(!jD(t))return;let n=t.alternatives;if(!Array.isArray(n))return;let r=n.at(0),i=jD(r)?AD(r,`transcript`):void 0;if(!(i===void 0||i===``))return e.is_final===!0?{kind:`final`,text:i}:{kind:`delta`,text:i}}function AD(e,t){let n=e[t];return typeof n==`string`?n:void 0}function jD(e){return typeof e==`object`&&!!e}function MD(e){if(e===void 0)return{kind:`unavailable`,reason:`Live transcription is not configured.`};if(e.protocol===`browser`)return{kind:`browser`};let t=e.url?.trim();if(t===void 0||t===``)return{kind:`unavailable`,reason:`Streaming transcription needs a socket url.`};let n=e.tokenEndpoint?.trim();return n===void 0||n===``?{kind:`unavailable`,reason:`Streaming transcription needs a token endpoint so the account key stays on the server.`}:{kind:`socket`,protocol:e.protocol,url:t,tokenEndpoint:n,deltaMode:wD[e.protocol]}}var ND={trailingSilenceMs:900,speechThreshold:.02,maxUtteranceMs:12e4};function PD(e,t,n,r=ND){if(e.kind!==`listening`&&e.kind!==`speaking`&&e.kind!==`trailing`)return e;if(n>=r.maxUtteranceMs)return e.kind===`listening`?{kind:`idle`}:{kind:`transcribing`};let i=t.level>=r.speechThreshold;if(e.kind===`listening`)return i?{kind:`speaking`}:e;if(e.kind===`speaking`)return i?e:{kind:`trailing`,silenceMs:t.elapsedMs};if(i)return{kind:`speaking`};let a=e.silenceMs+t.elapsedMs;return a>=r.trailingSilenceMs?{kind:`transcribing`}:{kind:`trailing`,silenceMs:a}}function FD(e){switch(e.kind){case`idle`:case`denied`:case`error`:return{kind:`listening`};case`listening`:return{kind:`idle`};case`speaking`:case`trailing`:return{kind:`transcribing`};case`transcribing`:case`unavailable`:return e}}function ID(e){return e.kind===`listening`||e.kind===`speaking`||e.kind===`trailing`}function LD(e,t){switch(e.kind){case`idle`:return t?.streaming===!0?`Dictate live`:`Dictate`;case`listening`:return`Listening…`;case`speaking`:return`Listening…`;case`trailing`:return`Listening…`;case`transcribing`:return`Transcribing…`;case`denied`:return`Microphone permission denied`;case`unavailable`:return e.reason;case`error`:return e.message}}function RD(){return v(`api/speech/token`,zD,{method:`POST`})}function zD(e){if(typeof e!=`object`||!e)throw Error(`The speech token response was not an object.`);let t={...e},n=t.token,r=t.region;if(typeof n!=`string`||n===``)throw Error(`The speech token response carried no token.`);if(typeof r!=`string`||r===``)throw Error(`The speech token response carried no region.`);return{token:n,region:r}}function BD(e){let t=/\r?\n\r?\n/u.exec(e);if(t===null)return;let n=e.slice(0,t.index),r=e.slice(t.index+t[0].length),i;for(let e of n.split(/\r?\n/u)){let t=e.indexOf(`:`);t!==-1&&e.slice(0,t).trim().toLowerCase()===`path`&&(i=e.slice(t+1).trim())}if(!(i===void 0||i===``))return{path:i,body:HD(r)}}function VD(e,t,n){return`${[`Path:${e}`,`X-RequestId:${t}`,`X-Timestamp:${new Date().toISOString()}`,`Content-Type:application/json`].join(`\r
|
|
3407
|
-
`)}\r\n\r\n${JSON.stringify(n)}`}function HD(e){if(e.trim()!==``)try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return;let n={};for(let[e,r]of Object.entries(t))n[e]=r;return n}catch{return}}function UD(e){let t=new Int16Array(e.length);for(let n=0;n<e.length;n+=1){let r=Math.max(-1,Math.min(1,e[n]??0));t[n]=Math.round(r<0?r*32768:r*32767)}return t}function WD(e,t,n){if(t===n)return e;if(t<n)throw Error(`Cannot upsample audio from ${String(t)} to ${String(n)}`);let r=t/n,i=Math.floor(e.length/r),a=new Float32Array(i);for(let t=0;t<i;t+=1)a[t]=e[Math.floor(t*r)]??0;return a}function GD(e){if(e.length===0)return``;let t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}var KD=16e3,qD=class e{constructor(e,t=`azure-speech`){this.requestId=``,this.deps=e,this.protocol=t,this.buffer=new TD(wD[t])}static closeQuietly(e){if(e!==void 0){if(e.onmessage=null,e.onerror=null,e.readyState===WebSocket.CONNECTING){e.onopen=()=>{e.close()};return}e.onopen=null,e.close()}}async start(e){this.buffer=new TD(wD[this.protocol]);let t;try{t=await this.deps.requestToken()}catch(e){this.deps.onError(`Could not get a dictation token: ${JD(e)}`);return}this.requestId=this.deps.newRequestId();let n=new
|
|
3406
|
+
`:null}onGroupToggle(e,t,n){let r=t.currentTarget;r instanceof HTMLDetailsElement&&this.disclosures.applyToggle(e,r.open,n)&&this.requestUpdate()}onScroll(){this.requestLoadMoreIfNeeded(),this.updatePinnedToBottomFromScroll(),this.scheduleConversationRailUpdate(),this.suppressScrollSave||this.scheduleScrollPositionSave()}onWheel(e){e.deltaY<0&&this.canScrollUp()&&(this.pinnedToBottom=!1)}onTouchStart(e){this.touchStartY=e.touches[0]?.clientY,this.notePressStart()}onTouchEnd(){this.releasePointer()}releasePointer(){this.followGate.notePointerUp(Date.now()),this.heldWaiting!==void 0&&(this.heldWaitingClearTimer!==void 0&&clearTimeout(this.heldWaitingClearTimer),this.heldWaitingClearTimer=setTimeout(()=>{this.heldWaitingClearTimer=void 0,this.requestUpdate()},251)),!(!this.followGate.takeSuppressedFollow()||!this.pinnedToBottom)&&(this.catchUpFollowTimer!==void 0&&clearTimeout(this.catchUpFollowTimer),this.catchUpFollowTimer=setTimeout(()=>{this.catchUpFollowTimer=void 0,this.pinnedToBottom&&this.scrollToBottom()},250))}notePressStart(){this.catchUpFollowTimer!==void 0&&(clearTimeout(this.catchUpFollowTimer),this.catchUpFollowTimer=void 0),this.followGate.notePointerDown(Date.now())}onTouchMove(e){let t=e.touches[0]?.clientY;this.touchStartY!==void 0&&t!==void 0&&t>this.touchStartY&&this.canScrollUp()&&(this.pinnedToBottom=!1)}updatePinnedToBottomFromScroll(){let e=this.chat;if(!e)return;let t=this.didChatHeightChange(),n=this.pinnedToBottom,r=e.scrollTop<this.lastScrollTop;if(t&&n){this.lastClientHeight=e.clientHeight,this.scrollToBottom();return}this.isAtBottom()?this.pinnedToBottom=!0:r?this.pinnedToBottom=!1:this.pinnedToBottom=this.isNearBottom(),this.jumpToBottomVisible=iw(e),this.lastScrollTop=e.scrollTop,this.lastClientHeight=e.clientHeight}didChatHeightChange(){let e=this.chat;return e!==void 0&&this.lastClientHeight!==0&&e.clientHeight!==this.lastClientHeight}isPrependingMessages(e){let t=e.get(`messageStart`);return typeof t==`number`&&this.messageStart<t}requestLoadMoreIfNeeded(){this.loadMoreCheckFrame===void 0&&(this.loadMoreCheckFrame=requestAnimationFrame(()=>{if(this.loadMoreCheckFrame=void 0,this.suppressLoadMoreRequests)return;let e=this.chat;e&&Bw({hasMore:this.hasMore,loadingMore:this.loadingMore||this.loadMoreRequested,canRequest:this.onLoadMore!==void 0,scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,clientHeight:e.clientHeight})&&this.requestLoadMore()}))}requestLoadMore(){this.loadMoreRequested||!this.hasMore||this.loadingMore||this.onLoadMore===void 0||(this.loadMoreRequested=!0,this.onLoadMore())}isNearBottom(){let e=this.chat;return!e||QC(e)}isAtBottom(){let e=this.chat;return!e||ZC(e)<2}canScrollUp(){let e=this.chat;return e!==void 0&&e.scrollTop>0}scrollToBottom(){this.scrollToBottomFrame===void 0&&(this.scrollToBottomFrame=requestAnimationFrame(()=>{this.scrollToBottomFrame=void 0;let e=this.chat;e&&this.followGate.followsNewest(Date.now())&&this.withSuppressedScrollSave(()=>{e.scrollTop=e.scrollHeight,this.lastScrollTop=e.scrollTop,this.lastClientHeight=e.clientHeight})}))}restoreScrollPosition(){let e=this.sessionId;this.restoreScrollFrame!==void 0&&cancelAnimationFrame(this.restoreScrollFrame),this.restoreScrollFrame=requestAnimationFrame(()=>{this.restoreScrollFrame=void 0,this.sessionId===e&&this.withSuppressedScrollSave(()=>{let t=this.scrollController.restorePosition(e,this.chat,this.scrollAnchorElements(),{fallbackToBottom:this.shouldFallbackToBottomForMissingAnchor()});this.handleScrollRestoreResult(e,t)})})}continuePendingScrollRestore(){let e=this.pendingScrollRestoreSessionId,t=this.pendingScrollRestorePosition;e===void 0||t===void 0||e!==this.sessionId||this.restoreScrollFrame!==void 0||(this.restoreScrollFrame=requestAnimationFrame(()=>{this.restoreScrollFrame=void 0,this.sessionId===e&&this.withSuppressedScrollSave(()=>{let n=this.scrollController.restoreExplicitPosition(t,this.chat,this.scrollAnchorElements(),{fallbackToBottom:this.shouldFallbackToBottomForMissingAnchor()});this.handleScrollRestoreResult(e,n)})}))}handleScrollRestoreResult(e,t){if(this.syncScrollMetrics(),t.status!==`missing`){this.updatePinnedToBottomAfterRestore(t.status),(t.status===`restored`||t.status===`bottom`)&&this.cancelPrependRestore(),this.pendingScrollRestoreSessionId=void 0,this.pendingScrollRestorePosition=void 0;return}this.pinnedToBottom=!1,this.pendingScrollRestoreSessionId=e,this.pendingScrollRestorePosition=t.position;let n=this.chat;n===void 0||!this.hasMore||this.loadingMore||(n.scrollTop=0,this.syncScrollMetrics(),this.requestLoadMore())}shouldFallbackToBottomForMissingAnchor(){return!this.hasMore}updatePinnedToBottomAfterRestore(e){e===`bottom`?this.pinnedToBottom=!0:e===`restored`&&(this.pinnedToBottom=this.isNearBottom())}syncScrollMetrics(){let e=this.chat;e!==void 0&&(this.lastScrollTop=e.scrollTop,this.lastClientHeight=e.clientHeight)}cancelPrependRestore(){this.prependRestoreToken+=1,this.suppressLoadMoreRequests=!1}capturePrependScrollAnchor(){let e=this.chat;if(e)return Mw(e,this.scrollMarkers())}restorePrependScrollAnchor(e){if(!this.chat||!e)return;this.suppressLoadMoreRequests=!0,this.suppressScrollSave=!0;let t=this.prependRestoreToken+1;this.prependRestoreToken=t;let n=0,r=()=>{let i=this.chat;if(!(!i||t!==this.prependRestoreToken)){if(Nw(i,e,e.markerId===void 0?void 0:this.scrollMarkerAt(e.markerId)),this.lastScrollTop=i.scrollTop,n+=1,n<30){requestAnimationFrame(r);return}requestAnimationFrame(()=>{t===this.prependRestoreToken&&(this.suppressScrollSave=!1,this.suppressLoadMoreRequests=!1)})}};r()}saveScrollPosition(e=this.sessionId){e&&this.scrollController.savePosition(e,this.chat,this.scrollAnchorElements())}scheduleScrollPositionSave(){let e=this.sessionId;this.scrollController.scheduleSave(e,e=>{this.sessionId===e&&this.saveScrollPosition(e)})}scheduleConversationRailUpdate(){this.conversationRailFrame===void 0&&(this.conversationRailFrame=requestAnimationFrame(()=>{this.conversationRailFrame=void 0,this.updateConversationRailPosition()}))}updateConversationRailPosition(){if(!this.messages.length||this.messageTotal<=0){this.currentConversationIndex=void 0;return}let e=this.conversationDisplayTotal(),t=this.firstVisibleArticle(),n=Number(t?.dataset.index);if(Number.isFinite(n)){this.currentConversationIndex=tE(n,0,Math.max(0,e-1));return}this.currentConversationIndex=tE(this.pinnedToBottom?this.messageStart+this.messages.length-1:this.messageStart,0,Math.max(0,e-1))}scrollMarkers(){return Array.from(this.renderRoot.querySelectorAll(`.scroll-marker`))}scrollMarkerAt(e){return this.scrollMarkers().find(t=>t.dataset.markerId===e)}firstVisibleArticle(){let e=this.chat;if(e!==void 0)return tw(e,Array.from(this.renderRoot.querySelectorAll(`article.msg`)))??tw(e,this.articles())}articles(){return Array.from(this.renderRoot.querySelectorAll(`article.msg, details.msg`))}scrollAnchorElements(){return Array.from(this.renderRoot.querySelectorAll(`[data-scroll-anchor-id]`))}withSuppressedScrollSave(e){this.suppressScrollSave=!0,e(),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.suppressScrollSave=!1})})}groupDisclosureKey(e,t,n){return n?`${this.sessionId}:live:${String(e)}`:`${this.sessionId}:${String(t)}`}messageAnchorKey(e){return oE(e)}groupRenderKey(e){return sE(e)}groupAnchorKey(e){return sE(e)}eventAnchorKey(e){return cE(e)}messageScrollMarkerId(e){return oE(e)}groupScrollMarkerId(e){return lE(e)}static{this.styles=KT}};H([S({attribute:!1})],q.prototype,`messages`,void 0),H([S()],q.prototype,`sessionId`,void 0),H([S({type:Number})],q.prototype,`messageStart`,void 0),H([S({type:Number})],q.prototype,`messageEnd`,void 0),H([S({type:Number})],q.prototype,`messageTotal`,void 0),H([S({type:Boolean})],q.prototype,`hasMore`,void 0),H([S({type:Boolean})],q.prototype,`loadingMore`,void 0),H([S({type:Boolean})],q.prototype,`isSendingPrompt`,void 0),H([S({type:Boolean})],q.prototype,`isCompacting`,void 0),H([S({type:Number})],q.prototype,`pendingMessageCount`,void 0),H([S({attribute:!1})],q.prototype,`clientQueuedMessages`,void 0),H([S({attribute:!1})],q.prototype,`status`,void 0),H([S({attribute:!1})],q.prototype,`activity`,void 0),H([S({attribute:!1})],q.prototype,`pendingAsk`,void 0),H([S({attribute:!1})],q.prototype,`askDraftSessionId`,void 0),H([S({attribute:!1})],q.prototype,`onSubmitAsk`,void 0),H([S({attribute:!1})],q.prototype,`pendingDialogs`,void 0),H([S({attribute:!1})],q.prototype,`commandLedger`,void 0),H([S({type:Boolean})],q.prototype,`goalCommandInFlight`,void 0),H([S({attribute:!1})],q.prototype,`closedDialogs`,void 0),H([S({attribute:!1})],q.prototype,`onAnswerDialog`,void 0),H([S({attribute:!1})],q.prototype,`onCancelDialog`,void 0),H([S({attribute:!1})],q.prototype,`onDismissClosedDialog`,void 0),H([S({attribute:!1})],q.prototype,`onResendMessage`,void 0),H([S({attribute:!1})],q.prototype,`notificationInbox`,void 0),H([S({attribute:!1})],q.prototype,`subagents`,void 0),H([S({attribute:!1})],q.prototype,`subagentRuns`,void 0),H([S({attribute:!1})],q.prototype,`backgroundTasks`,void 0),H([S({type:Boolean})],q.prototype,`activityFailed`,void 0),H([S({type:Boolean})],q.prototype,`notificationsFailed`,void 0),H([S({attribute:!1})],q.prototype,`onOpenBackgroundTask`,void 0),H([S({attribute:!1})],q.prototype,`onOpenSubagentRun`,void 0),H([S({attribute:!1})],q.prototype,`onOpenSubagent`,void 0),H([S({attribute:!1})],q.prototype,`onClearServerQueue`,void 0),H([S({attribute:!1})],q.prototype,`onRecallQueuedMessage`,void 0),H([S({attribute:!1})],q.prototype,`onDismissNotification`,void 0),H([S({attribute:!1})],q.prototype,`onDismissAllNotifications`,void 0),H([S({attribute:!1})],q.prototype,`onLoadMore`,void 0),H([S({attribute:!1})],q.prototype,`onFocusComposer`,void 0),H([S({attribute:!1})],q.prototype,`activityOutput`,void 0),H([S({attribute:!1})],q.prototype,`onCloseActivityOutput`,void 0),H([S({attribute:!1})],q.prototype,`activityConversation`,void 0),H([S({attribute:!1})],q.prototype,`onCloseActivityConversation`,void 0),H([w(`.chat`)],q.prototype,`chat`,void 0),H([w(`.drawer-tabs`)],q.prototype,`drawerTabs`,void 0),H([w(`dialog.image-zoom`)],q.prototype,`imageZoomDialog`,void 0),H([w(`dialog.activity-output`)],q.prototype,`activityOutputDialog`,void 0),H([w(`dialog.activity-conversation`)],q.prototype,`activityConversationDialog`,void 0),H([C()],q.prototype,`pinnedToBottom`,void 0),H([C()],q.prototype,`drawerHold`,void 0),H([C()],q.prototype,`jumpToBottomVisible`,void 0),H([C()],q.prototype,`zoomedImage`,void 0),H([C()],q.prototype,`expandedMetaKey`,void 0),H([C()],q.prototype,`copiedNotificationId`,void 0),H([C()],q.prototype,`copiedMessageKey`,void 0),H([C()],q.prototype,`currentConversationIndex`,void 0),H([C()],q.prototype,`collapsedTopDrawerKeys`,void 0),H([C()],q.prototype,`expandedTopDrawerKeys`,void 0),H([S({attribute:!1})],q.prototype,`goalsLoad`,void 0),H([S({type:Boolean,attribute:!1})],q.prototype,`goalsKnown`,void 0),H([S({attribute:!1})],q.prototype,`onRunGoalCommand`,void 0),H([C()],q.prototype,`topDrawerTab`,void 0),H([C()],q.prototype,`activityFilter`,void 0),H([C()],q.prototype,`activityScope`,void 0),H([C()],q.prototype,`turnStartedAtMs`,void 0),H([C()],q.prototype,`turnNowMs`,void 0),H([C()],q.prototype,`retainedEmptyNotificationTrayTargetKey`,void 0),H([C()],q.prototype,`loadMoreRequested`,void 0),q=H([x(`chat-view`)],q);function hE(e){let t=Math.max(0,Math.round(e/1e3));if(t<60)return`${String(t)}s`;let n=Math.floor(t/60);return n<60?`${String(n)}m ${String(t%60)}s`:`${String(Math.floor(n/60))}h ${String(n%60)}m`}function gE(e){return e.map(e=>{let t=e.status===`running`?`Running`:e.status===`done`?`Done`:e.status===`failed`?`Failed`:e.status===`lost`?`Lost`:`Unknown`,n=hE(e.elapsedMs),r=e.status===`running`?e.lastActivity??`working`:e.task??``,i=lT(e.model);return{run:e,status:e.status,statusLabel:t,duration:n,detail:r,...i===void 0?{}:{modelLabel:i.label,modelTitle:e.model??i.label},ariaLabel:`${t} ${e.agent} subagent, ${n}`+(i===void 0?``:`, on ${i.label}`)+(r===``?``:`, ${r}`)}})}function _E(e){return e.map(e=>{let t=e.status===`running`?`running`:e.status===`completed`?`done`:e.status===`killed`?`stopped`:e.status===`failed`?`failed`:e.status===`lost`?`lost`:`unknown`,n=e.status===`completed`?`Done`:e.status===`running`?`Running`:e.status===`killed`?`Stopped`:e.status===`lost`?`Lost`:e.status.charAt(0).toUpperCase()+e.status.slice(1),r=hE(e.durationMs??0),i=t===`running`?e.command.slice(0,60):e.exitCode===void 0?``:`exit ${String(e.exitCode)}`;return{task:e,status:t,statusLabel:n,duration:r,detail:i,ariaLabel:`${n} background task ${e.name}, ${r}${i===``?``:`, ${i}`}`}})}function vE(e){return e.kind===`subagents`?`subagents:${e.row.subagent.sessionId}`:e.kind===`runs`?`runs:${e.row.run.runId}`:`tasks:${e.row.task.id}`}function yE(e){return[...e].sort((e,t)=>{let n=Number(SE(t.status))-Number(SE(e.status));if(n!==0)return n;let r=Number(CE(e.status))-Number(CE(t.status));if(r!==0)return r;let i=(t.startedAt??``).localeCompare(e.startedAt??``);return i===0?e.kind.localeCompare(t.kind):i})}var bE=600*1e3;function xE(e,t){if(e===void 0)return;let n=Math.max(0,t-e);if(!(n<5e3))return{text:hE(n),long:n>=bE}}function SE(e){return e===`working`||e===`running`}function CE(e){return e===`done`||e===`failed`||e===`error`||e===`lost`||e===`stopped`}function wE(e){return typeof e==`object`&&!!e&&typeof Reflect.get(e,`sessionId`)==`string`&&Array.isArray(Reflect.get(e,`notifications`))}function TE(e){return e.active>0?`Activity · ${String(e.active)} running`:`Activity`}function EE(e){let t=[{id:`subagents`,label:`Subagents`,rows:e.rows},{id:`runs`,label:`Agent runs`,rows:e.runRows},{id:`tasks`,label:`Tasks`,rows:e.taskRows}].filter(e=>e.rows.length>0).map(e=>({id:e.id,label:e.label,count:DE(e.rows)}));return t.length<=1?t:[{id:`all`,label:`All`,count:t.reduce((e,t)=>e+t.count,0)},...t]}function DE(e){return e.filter(e=>!CE(e.status)).length}function OE(e,t){return e===`subagents`&&t.rows.length>0?`subagents`:e===`runs`&&t.runRows.length>0?`runs`:e===`tasks`&&t.taskRows.length>0?`tasks`:`all`}function kE(e){if(e===void 0)return;let t=[...e.rows,...e.runRows,...e.taskRows].filter(e=>e.status===`working`||e.status===`running`).length;if(t!==0)return t===1?`idle · 1 background run`:`idle · ${String(t)} background runs`}function AE(e,t,n){return e===`asking`&&t===`idle`?`Waiting for your answer`:n}function jE(){return!1}function ME(e,t){return t===`activity`?`activity`:t===`notifications`?`notifications`:t===`goals`?`goals`:e.notifications?`notifications`:e.activity?`activity`:e.goals===!0?`goals`:`activity`}function NE(e,t){return e===void 0?t?`Notifications (0)`:`Notifications`:nm(e)}function PE(e,t){return t?`Goals ${String(e.length)}`:`Goals`}function FE(e){return{working:e.some(e=>e===`working`||e===`running`),failed:e.some(e=>e===`error`||e===`failed`)}}function IE(e){return e===``?`Unknown`:e.charAt(0).toUpperCase()+e.slice(1)}function LE(e){return e.map(e=>{let t=e.status,n=e.sessionId.slice(-8),r=IE(t);return{subagent:e,shortId:n,status:t,statusLabel:r,cwd:e.cwd,ariaLabel:`${r} subagent ${n}`}})}var RE=new Set([`image/jpeg`,`image/png`,`image/gif`,`image/webp`]);function zE(e){return typeof e==`string`&&RE.has(e)}function BE(e){switch(e){case`image/jpeg`:return`jpg`;case`image/png`:return`png`;case`image/gif`:return`gif`;case`image/webp`:return`webp`;default:return`bin`}}var VE=`application/octet-stream`,HE=`Failed to read an attachment.`;async function UE(e,t){let n=[],r;for(let i of e)try{let e=await t(i);n.push(qE(i,e))}catch{r=HE}return{attachments:n,...r===void 0?{}:{error:r}}}function WE(e){return e.kind===`image`&&zE(e.mimeType)}function GE(e){return e.every(e=>WE(e))}function KE(e,t){return GE(t)?e:`folder`}function qE(e,t){return zE(e.type)?{kind:`image`,name:YE(e),mimeType:e.type,data:t,size:e.size}:{kind:`file`,name:YE(e),mimeType:JE(e),data:t,size:e.size}}function JE(e){let t=e.type.trim();return t===``?VE:t}function YE(e){return e.name===``?zE(e.type)?`pasted-image.${BE(e.type)}`:`pasted-file.bin`:e.name}var XE=50,ZE=`pi-web:prompt-history:`;function QE(e){return`${ZE}${e}`}function $E(e){try{let t=localStorage.getItem(QE(e));if(t===null||t===``)return[];let n=JSON.parse(t);return Array.isArray(n)?n.filter(e=>typeof e==`string`&&e.trim()!==``):[]}catch{return[]}}function eD(e,t){try{localStorage.setItem(QE(e),JSON.stringify(t.slice(0,XE)))}catch{}}function tD(e,t){let n=t.trim();if(n===``)return $E(e);let r=[n,...$E(e).filter(e=>e!==n)].slice(0,XE);return eD(e,r),r}function nD(e,t,n=[]){let r=$E(e),i=[...r,...n.filter(e=>!r.includes(e))],a=t.trim().toLowerCase();return a===``?i:rD(i,a.split(/\s+/u).filter(Boolean))}function rD(e,t){return e.filter(e=>{let n=e.toLowerCase();return t.every(e=>n.includes(e)||iD(e,n))})}function iD(e,t){let n=0;for(let r of e){if(n=t.indexOf(r,n),n===-1)return!1;n+=r.length}return!0}function aD(e){return e===`older`?1:-1}var oD=`(pointer: coarse), (max-width: 760px)`,sD=`pi-web.promptEnterPreference`;function cD(){return typeof window<`u`&&`matchMedia`in window?window.matchMedia(oD):void 0}function lD(e){return e===`send`||e===`newline`?e:`auto`}function uD(e=hD()){if(e===void 0)return`auto`;try{return lD(e.getItem(sD))}catch{return`auto`}}function dD(e,t=hD()){if(t!==void 0)try{t.setItem(sD,e)}catch{}}function fD(e=cD(),t=uD()){return t===`send`||t!==`newline`&&e?.matches!==!0}function pD(e,t,n=cD()){return e?n?.matches!==!0||t:!1}function mD(e,t=cD(),n=uD()){let r=fD(t,n);return e?!r:r}function hD(){if(!(typeof window>`u`))try{return window.localStorage}catch{return}}var gD=100;function _D(){let e,t,n,r,i=[],a=()=>{r!==void 0&&(window.clearInterval(r),r=void 0),e?.getTracks().forEach(e=>{e.stop()}),e=void 0,n?.close().catch(()=>void 0),n=void 0,t=void 0};return{async start(a){i=[],e=await navigator.mediaDevices.getUserMedia({audio:!0}),t=new MediaRecorder(e),t.addEventListener(`dataavailable`,e=>{e.data.size>0&&i.push(e.data)}),t.start(),n=new AudioContext;let o=n.createMediaStreamSource(e),s=n.createAnalyser();s.fftSize=512,o.connect(s);let c=new Uint8Array(s.fftSize);r=window.setInterval(()=>{s.getByteTimeDomainData(c),a(vD(c),gD)},gD)},stop(){let e=t;return e===void 0?(a(),Promise.resolve(new Blob([]))):new Promise(t=>{e.addEventListener(`stop`,()=>{let e=i[0]?.type??`audio/webm`,n=new Blob(i,{type:e});a(),t(n)},{once:!0}),e.stop()})},cancel(){i=[],t?.state===`recording`&&t.stop(),a()}}}function vD(e){let t=0;for(let n of e){let e=Math.abs(n-128)/128;e>t&&(t=e)}return t}function yD(e){return e!==void 0&&e.endpoint.trim()!==``}async function bD(e,t,n){if(!yD(t))return{ok:!1,message:`Dictation is not configured.`};if(e.size===0)return{ok:!1,message:`Nothing was recorded.`};let r=new FormData;r.append(`file`,e,`speech.webm`),t.model!==void 0&&t.model!==``&&r.append(`model`,t.model),t.language!==void 0&&t.language!==``&&r.append(`language`,t.language);let i;try{i=await n.fetch(t.endpoint,{method:`POST`,body:r,...n.signal===void 0?{}:{signal:n.signal}})}catch(e){return{ok:!1,message:`Could not reach the transcription service: ${CD(e)}`}}if(!i.ok)return{ok:!1,message:`Transcription failed (${String(i.status)}).`};let a;try{a=await i.json()}catch{return{ok:!1,message:`The transcription service returned a response that could not be read.`}}let o=xD(a);if(o===void 0)return{ok:!1,message:`The transcription service returned no text.`};let s=o.trim();return s===``?{ok:!1,message:`No speech was recognised.`}:{ok:!0,text:s}}function xD(e){if(typeof e==`string`)return e;let t=SD(e);if(t===void 0)return;for(let e of[`text`,`transcript`,`transcription`]){let n=t[e];if(typeof n==`string`)return n}let n=t.segments;if(!Array.isArray(n))return;let r=n.map(e=>SD(e)?.text).filter(e=>typeof e==`string`).join(` `);return r.trim()===``?void 0:r}function SD(e){if(typeof e!=`object`||!e||Array.isArray(e))return;let t={};for(let[n,r]of Object.entries(e))t[n]=r;return t}function CD(e){return e instanceof Error?e.message:String(e)}var wD={"openai-realtime":`append`,deepgram:`replace`,"azure-speech":`replace`},TD=class{constructor(e){this.settled=``,this.pending=``,this.mode=e}apply(e){if(e.kind===`delta`){this.pending=this.mode===`append`?this.pending+e.text:e.text;return}if(e.kind===`final`){this.settled=this.settled===``?e.text:`${this.settled} ${e.text}`,this.pending=``;return}}text(){return this.pending===``?this.settled:this.settled===``?this.pending:/^\s/u.test(this.pending)?this.settled+this.pending:`${this.settled} ${this.pending}`}settledText(){return this.settled}};function ED(e,t){if(jD(t))return e===`openai-realtime`?OD(t):e===`azure-speech`?DD(t):kD(t)}function DD(e){let t=AD(e,`Type`);if(t===`speech.hypothesis`){let t=AD(e,`Text`);return t===void 0||t===``?void 0:{kind:`delta`,text:t}}if(t!==`speech.phrase`)return;let n=AD(e,`RecognitionStatus`);if(n===`Error`)return{kind:`error`,message:`Speech recognition reported an error.`};if(n!==`Success`)return;let r=AD(e,`DisplayText`);return r===void 0||r===``?void 0:{kind:`final`,text:r}}function OD(e){let t=AD(e,`type`);if(t===`conversation.item.input_audio_transcription.delta`){let t=AD(e,`delta`);return t===void 0||t===``?void 0:{kind:`delta`,text:t}}if(t===`conversation.item.input_audio_transcription.completed`){let t=AD(e,`transcript`);return t===void 0?void 0:{kind:`final`,text:t}}if(t===`error`){let t=e.error;return{kind:`error`,message:(jD(t)?AD(t,`message`):void 0)??`Transcription failed.`}}}function kD(e){if(AD(e,`type`)!==`Results`)return;let t=e.channel;if(!jD(t))return;let n=t.alternatives;if(!Array.isArray(n))return;let r=n.at(0),i=jD(r)?AD(r,`transcript`):void 0;if(!(i===void 0||i===``))return e.is_final===!0?{kind:`final`,text:i}:{kind:`delta`,text:i}}function AD(e,t){let n=e[t];return typeof n==`string`?n:void 0}function jD(e){return typeof e==`object`&&!!e}function MD(e,t){if(e===void 0)return{kind:`unavailable`,reason:`Live transcription is not configured.`};if(e.protocol===`browser`)return{kind:`browser`};let n=e.url?.trim();if(n===void 0||n===``)return{kind:`unavailable`,reason:`Streaming transcription needs a socket url.`};let r=e.tokenEndpoint?.trim();if(r===void 0||r===``)return{kind:`unavailable`,reason:`Streaming transcription needs a token endpoint so the account key stays on the server.`};let i=t?.trim(),a=i===void 0||i===``?n:`${n}${n.includes(`?`)?`&`:`?`}language=${encodeURIComponent(i)}`;return{kind:`socket`,protocol:e.protocol,url:a,tokenEndpoint:r,deltaMode:wD[e.protocol]}}var ND={trailingSilenceMs:900,speechThreshold:.02,maxUtteranceMs:12e4};function PD(e,t,n,r=ND){if(e.kind!==`listening`&&e.kind!==`speaking`&&e.kind!==`trailing`)return e;if(n>=r.maxUtteranceMs)return e.kind===`listening`?{kind:`idle`}:{kind:`transcribing`};let i=t.level>=r.speechThreshold;if(e.kind===`listening`)return i?{kind:`speaking`}:e;if(e.kind===`speaking`)return i?e:{kind:`trailing`,silenceMs:t.elapsedMs};if(i)return{kind:`speaking`};let a=e.silenceMs+t.elapsedMs;return a>=r.trailingSilenceMs?{kind:`transcribing`}:{kind:`trailing`,silenceMs:a}}function FD(e){switch(e.kind){case`idle`:case`denied`:case`error`:return{kind:`listening`};case`listening`:return{kind:`idle`};case`speaking`:case`trailing`:return{kind:`transcribing`};case`transcribing`:case`unavailable`:return e}}function ID(e){return e.kind===`listening`||e.kind===`speaking`||e.kind===`trailing`}function LD(e,t){switch(e.kind){case`idle`:return t?.streaming===!0?`Dictate live`:`Dictate`;case`listening`:return`Listening…`;case`speaking`:return`Listening…`;case`trailing`:return`Listening…`;case`transcribing`:return`Transcribing…`;case`denied`:return`Microphone permission denied`;case`unavailable`:return e.reason;case`error`:return e.message}}function RD(){return v(`api/speech/token`,zD,{method:`POST`})}function zD(e){if(typeof e!=`object`||!e)throw Error(`The speech token response was not an object.`);let t={...e},n=t.token,r=t.region;if(typeof n!=`string`||n===``)throw Error(`The speech token response carried no token.`);if(typeof r!=`string`||r===``)throw Error(`The speech token response carried no region.`);return{token:n,region:r}}function BD(e){let t=/\r?\n\r?\n/u.exec(e);if(t===null)return;let n=e.slice(0,t.index),r=e.slice(t.index+t[0].length),i;for(let e of n.split(/\r?\n/u)){let t=e.indexOf(`:`);t!==-1&&e.slice(0,t).trim().toLowerCase()===`path`&&(i=e.slice(t+1).trim())}if(!(i===void 0||i===``))return{path:i,body:HD(r)}}function VD(e,t,n){return`${[`Path:${e}`,`X-RequestId:${t}`,`X-Timestamp:${new Date().toISOString()}`,`Content-Type:application/json`].join(`\r
|
|
3407
|
+
`)}\r\n\r\n${JSON.stringify(n)}`}function HD(e){if(e.trim()!==``)try{let t=JSON.parse(e);if(typeof t!=`object`||!t)return;let n={};for(let[e,r]of Object.entries(t))n[e]=r;return n}catch{return}}function UD(e){let t=new Int16Array(e.length);for(let n=0;n<e.length;n+=1){let r=Math.max(-1,Math.min(1,e[n]??0));t[n]=Math.round(r<0?r*32768:r*32767)}return t}function WD(e,t,n){if(t===n)return e;if(t<n)throw Error(`Cannot upsample audio from ${String(t)} to ${String(n)}`);let r=t/n,i=Math.floor(e.length/r),a=new Float32Array(i);for(let t=0;t<i;t+=1)a[t]=e[Math.floor(t*r)]??0;return a}function GD(e){if(e.length===0)return``;let t=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n)}var KD=16e3,qD=class e{constructor(e,t=`azure-speech`){this.requestId=``,this.deps=e,this.protocol=t,this.buffer=new TD(wD[t])}static closeQuietly(e){if(e!==void 0){if(e.onmessage=null,e.onerror=null,e.readyState===WebSocket.CONNECTING){e.onopen=()=>{e.close()};return}e.onopen=null,e.close()}}async start(e){this.buffer=new TD(wD[this.protocol]);let t;try{t=await this.deps.requestToken()}catch(e){this.deps.onError(`Could not get a dictation token: ${JD(e)}`);return}this.requestId=this.deps.newRequestId();let n=new URLSearchParams({"X-ConnectionId":this.requestId}),r=`${e}${e.includes(`?`)?`&`:`?`}Authorization=${encodeURIComponent(`Bearer ${t.token}`)}&${n.toString()}`,i=this.deps.openSocket(r);this.socket=i,i.onmessage=e=>{this.receive(e.data)},i.onerror=()=>{this.deps.onError(`The dictation connection failed.`)},i.onopen=()=>{i.send(VD(`speech.config`,this.requestId,{context:{system:{name:`pi-web`}}})),this.beginCapture(i)}}stop(){this.stopCapture?.(),this.stopCapture=void 0;let t=this.socket;this.socket=void 0,e.closeQuietly(t);let n=this.buffer.settledText();n!==``&&this.deps.onText(n)}async beginCapture(e){try{this.stopCapture=await this.deps.captureAudio((t,n)=>{if(e.readyState!==WebSocket.OPEN)return;let r=WD(t,n,KD);e.send(VD(`audio`,this.requestId,{audio:GD(UD(r))}))})}catch(e){this.deps.onError(`Could not use the microphone: ${JD(e)}`),this.stop()}}receive(e){if(typeof e!=`string`)return;let t=BD(e);if(t?.body===void 0)return;let n=ED(this.protocol,{...t.body,Type:t.path});if(n!==void 0){if(n.kind===`error`){this.deps.onError(n.message);return}this.buffer.apply(n),this.deps.onText(this.buffer.text())}}};function JD(e){return e instanceof Error?e.message:String(e)}var YD=`
|
|
3408
3408
|
class SampleTap extends AudioWorkletProcessor {
|
|
3409
3409
|
process(inputs) {
|
|
3410
3410
|
const channel = inputs[0]?.[0];
|
|
@@ -3413,7 +3413,7 @@ class SampleTap extends AudioWorkletProcessor {
|
|
|
3413
3413
|
}
|
|
3414
3414
|
}
|
|
3415
3415
|
registerProcessor("sample-tap", SampleTap);
|
|
3416
|
-
`;async function XD(e){let t=await navigator.mediaDevices.getUserMedia({audio:!0}),n=new AudioContext,r=URL.createObjectURL(new Blob([YD],{type:`text/javascript`}));try{await n.audioWorklet.addModule(r)}finally{URL.revokeObjectURL(r)}let i=n.createMediaStreamSource(t),a=new AudioWorkletNode(n,`sample-tap`);return a.port.onmessage=t=>{e(t.data,n.sampleRate)},i.connect(a),()=>{a.port.onmessage=null,a.disconnect(),i.disconnect();for(let e of t.getTracks())e.stop();n.close()}}var ZD={live:`live`,wholeClip:`whole-clip`,unavailable:`unavailable`};function QD(e){return yD(e)?MD(e.streaming).kind===`unavailable`?ZD.wholeClip:ZD.live:ZD.unavailable}function $D(){return globalThis.fetch.bind(globalThis)}var eO=class{constructor(e,t){this.deps=e,this.callbacks=t,this.state={kind:`idle`},this.elapsedMs=0}getState(){return this.state}async toggle(e){if(!yD(e)){this.setState({kind:`unavailable`,reason:`Dictation is not configured.`});return}let t=FD(this.state);if(t.kind===`listening`&&!ID(this.state)){QD(e)===ZD.live?await this.startLive(e):await this.startListening(e);return}if(t.kind===`idle`){this.closeLive(),this.deps.recorder.cancel(),this.setState({kind:`idle`});return}if(t.kind===`transcribing`){if(this.live!==void 0){this.closeLive(),this.setState({kind:`idle`});return}await this.finish(e);return}this.setState(t)}closeLive(){let e=this.live;e!==void 0&&(this.live=void 0,e.stop())}async startLive(e){let t=MD(e.streaming),n=this.deps.createLiveDictation;if(t.kind!==`socket`||n===void 0){await this.startListening(e);return}this.activeConfig=e,this.elapsedMs=0,this.setState({kind:`listening`}),this.live=n(e=>{this.callbacks.onTranscript(e)},e=>{this.setState({kind:`error`,message:e})});try{await this.live.start(t.url)}catch(e){this.live=void 0,this.setState({kind:`error`,message:`Live transcription failed: ${nO(e)}`})}}async startListening(e){this.activeConfig=e,this.elapsedMs=0,this.setState({kind:`listening`});try{await this.deps.recorder.start((e,t)=>{this.onFrame(e,t)})}catch(e){this.setState(tO(e)?{kind:`denied`}:{kind:`error`,message:`Microphone unavailable: ${nO(e)}`})}}onFrame(e,t){if(!ID(this.state))return;this.elapsedMs+=t;let n=PD(this.state,{level:e,elapsedMs:t},this.elapsedMs,this.deps.captureConfig??ND);if(n!==this.state){if(n.kind===`transcribing`){this.finish(this.activeConfig);return}n.kind===`idle`&&this.deps.recorder.cancel(),this.setState(n)}}async finish(e){this.setState({kind:`transcribing`});let t;try{t=await this.deps.recorder.stop()}catch(e){this.setState({kind:`error`,message:`Recording failed: ${nO(e)}`});return}if(!yD(e)){this.setState({kind:`unavailable`,reason:`Dictation is not configured.`});return}let n=await(this.deps.transcribe??bD)(t,e,{fetch:this.deps.fetch??$D()});if(!n.ok){this.setState({kind:`error`,message:n.message});return}this.callbacks.onTranscript(n.text),this.setState({kind:`idle`})}setState(e){this.state=e,this.callbacks.onState(e)}};function tO(e){if(typeof e!=`object`||!e)return!1;let t=`name`in e?e.name:void 0;return t===`NotAllowedError`||t===`SecurityError`}function nO(e){return e instanceof Error?e.message:String(e)}function rO(){return je`
|
|
3416
|
+
`;async function XD(e){let t=await navigator.mediaDevices.getUserMedia({audio:!0}),n=new AudioContext,r=URL.createObjectURL(new Blob([YD],{type:`text/javascript`}));try{await n.audioWorklet.addModule(r)}finally{URL.revokeObjectURL(r)}let i=n.createMediaStreamSource(t),a=new AudioWorkletNode(n,`sample-tap`);return a.port.onmessage=t=>{e(t.data,n.sampleRate)},i.connect(a),()=>{a.port.onmessage=null,a.disconnect(),i.disconnect();for(let e of t.getTracks())e.stop();n.close()}}var ZD={live:`live`,wholeClip:`whole-clip`,unavailable:`unavailable`};function QD(e){return yD(e)?MD(e.streaming).kind===`unavailable`?ZD.wholeClip:ZD.live:ZD.unavailable}function $D(){return globalThis.fetch.bind(globalThis)}var eO=class{constructor(e,t){this.deps=e,this.callbacks=t,this.state={kind:`idle`},this.elapsedMs=0}getState(){return this.state}async toggle(e){if(!yD(e)){this.setState({kind:`unavailable`,reason:`Dictation is not configured.`});return}let t=FD(this.state);if(t.kind===`listening`&&!ID(this.state)){QD(e)===ZD.live?await this.startLive(e):await this.startListening(e);return}if(t.kind===`idle`){this.closeLive(),this.deps.recorder.cancel(),this.setState({kind:`idle`});return}if(t.kind===`transcribing`){if(this.live!==void 0){this.closeLive(),this.setState({kind:`idle`});return}await this.finish(e);return}this.setState(t)}closeLive(){let e=this.live;e!==void 0&&(this.live=void 0,e.stop())}async startLive(e){let t=MD(e.streaming,e.language),n=this.deps.createLiveDictation;if(t.kind!==`socket`||n===void 0){await this.startListening(e);return}this.activeConfig=e,this.elapsedMs=0,this.setState({kind:`listening`}),this.live=n(e=>{this.callbacks.onTranscript(e)},e=>{this.setState({kind:`error`,message:e})});try{await this.live.start(t.url)}catch(e){this.live=void 0,this.setState({kind:`error`,message:`Live transcription failed: ${nO(e)}`})}}async startListening(e){this.activeConfig=e,this.elapsedMs=0,this.setState({kind:`listening`});try{await this.deps.recorder.start((e,t)=>{this.onFrame(e,t)})}catch(e){this.setState(tO(e)?{kind:`denied`}:{kind:`error`,message:`Microphone unavailable: ${nO(e)}`})}}onFrame(e,t){if(!ID(this.state))return;this.elapsedMs+=t;let n=PD(this.state,{level:e,elapsedMs:t},this.elapsedMs,this.deps.captureConfig??ND);if(n!==this.state){if(n.kind===`transcribing`){this.finish(this.activeConfig);return}n.kind===`idle`&&this.deps.recorder.cancel(),this.setState(n)}}async finish(e){this.setState({kind:`transcribing`});let t;try{t=await this.deps.recorder.stop()}catch(e){this.setState({kind:`error`,message:`Recording failed: ${nO(e)}`});return}if(!yD(e)){this.setState({kind:`unavailable`,reason:`Dictation is not configured.`});return}let n=await(this.deps.transcribe??bD)(t,e,{fetch:this.deps.fetch??$D()});if(!n.ok){this.setState({kind:`error`,message:n.message});return}this.callbacks.onTranscript(n.text),this.setState({kind:`idle`})}setState(e){this.state=e,this.callbacks.onState(e)}};function tO(e){if(typeof e!=`object`||!e)return!1;let t=`name`in e?e.name:void 0;return t===`NotAllowedError`||t===`SecurityError`}function nO(e){return e instanceof Error?e.message:String(e)}function rO(){return je`
|
|
3417
3417
|
<svg class="prompt-action-icon" viewBox="0 0 24 24" aria-hidden="true" focusable="false">
|
|
3418
3418
|
<path d="M20 11.5 12.5 19a4 4 0 0 1-5.66-5.66l7.07-7.07a2.5 2.5 0 0 1 3.54 3.54l-7.07 7.07a1 1 0 0 1-1.42-1.42l6.37-6.36"></path>
|
|
3419
3419
|
</svg>
|
package/dist/client/index.html
CHANGED
|
@@ -144,7 +144,7 @@
|
|
|
144
144
|
that is not there. Scale belongs to the app's own control. */
|
|
145
145
|
html { touch-action: pan-x pan-y; }
|
|
146
146
|
</style>
|
|
147
|
-
<script type="module" crossorigin src="./assets/index-
|
|
147
|
+
<script type="module" crossorigin src="./assets/index-CeU8-JId.js"></script>
|
|
148
148
|
</head>
|
|
149
149
|
<body>
|
|
150
150
|
<pi-web-app></pi-web-app>
|
package/package.json
CHANGED