@juspay/shooter 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/build/client/_app/immutable/chunks/{CrVuYlkB.js → BN1NjBrw.js} +1 -1
  2. package/build/client/_app/immutable/chunks/BN1NjBrw.js.br +0 -0
  3. package/build/client/_app/immutable/chunks/BN1NjBrw.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{CNmDAqoQ.js → CDVSripB.js} +1 -1
  5. package/build/client/_app/immutable/chunks/CDVSripB.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/CDVSripB.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{D3Vl-Qqr.js → CF4lQ45j.js} +1 -1
  8. package/build/client/_app/immutable/chunks/CF4lQ45j.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/CF4lQ45j.js.gz +0 -0
  10. package/build/client/_app/immutable/entry/{app.CWzZbNpA.js → app.DwWiuoEC.js} +2 -2
  11. package/build/client/_app/immutable/entry/app.DwWiuoEC.js.br +0 -0
  12. package/build/client/_app/immutable/entry/app.DwWiuoEC.js.gz +0 -0
  13. package/build/client/_app/immutable/entry/start.DG8BMhrh.js +1 -0
  14. package/build/client/_app/immutable/entry/start.DG8BMhrh.js.br +0 -0
  15. package/build/client/_app/immutable/entry/start.DG8BMhrh.js.gz +0 -0
  16. package/build/client/_app/immutable/nodes/{0.5I21KR7K.js → 0.ejabgzDQ.js} +1 -1
  17. package/build/client/_app/immutable/nodes/0.ejabgzDQ.js.br +0 -0
  18. package/build/client/_app/immutable/nodes/0.ejabgzDQ.js.gz +0 -0
  19. package/build/client/_app/immutable/nodes/{1.BDCm0X_6.js → 1.BFK7Ubrr.js} +1 -1
  20. package/build/client/_app/immutable/nodes/1.BFK7Ubrr.js.br +0 -0
  21. package/build/client/_app/immutable/nodes/1.BFK7Ubrr.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{2.CKjSEOom.js → 2.DV3saFiY.js} +1 -1
  23. package/build/client/_app/immutable/nodes/2.DV3saFiY.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/2.DV3saFiY.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{4.pRflZhvu.js → 4.D6NIf10D.js} +1 -1
  26. package/build/client/_app/immutable/nodes/4.D6NIf10D.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/4.D6NIf10D.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{5.Co1ngwGh.js → 5.g3R-QfIW.js} +1 -1
  29. package/build/client/_app/immutable/nodes/5.g3R-QfIW.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/5.g3R-QfIW.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{6.CUnGGKik.js → 6.DSpd_nYK.js} +1 -1
  32. package/build/client/_app/immutable/nodes/6.DSpd_nYK.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/6.DSpd_nYK.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{7.CgvPBG9m.js → 7.F9WBFTz2.js} +1 -1
  35. package/build/client/_app/immutable/nodes/7.F9WBFTz2.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/7.F9WBFTz2.js.gz +0 -0
  37. package/build/client/_app/version.json +1 -1
  38. package/build/client/_app/version.json.br +0 -0
  39. package/build/client/_app/version.json.gz +0 -0
  40. package/build/server/chunks/{0-CYsoSMA0.js → 0-ePgrkfG9.js} +2 -2
  41. package/build/server/chunks/{0-CYsoSMA0.js.map → 0-ePgrkfG9.js.map} +1 -1
  42. package/build/server/chunks/{1-BSsLbzC1.js → 1-BV7u1xGo.js} +2 -2
  43. package/build/server/chunks/{1-BSsLbzC1.js.map → 1-BV7u1xGo.js.map} +1 -1
  44. package/build/server/chunks/{2-De1V922H.js → 2-3p1kyvjQ.js} +2 -2
  45. package/build/server/chunks/{2-De1V922H.js.map → 2-3p1kyvjQ.js.map} +1 -1
  46. package/build/server/chunks/{4-Dl1IrE-x.js → 4-ChFYfo_S.js} +2 -2
  47. package/build/server/chunks/{4-Dl1IrE-x.js.map → 4-ChFYfo_S.js.map} +1 -1
  48. package/build/server/chunks/{5-CkT7yrsJ.js → 5-q-tQLBBu.js} +2 -2
  49. package/build/server/chunks/{5-CkT7yrsJ.js.map → 5-q-tQLBBu.js.map} +1 -1
  50. package/build/server/chunks/{6-DMkV5QEZ.js → 6-BIaAbm8b.js} +2 -2
  51. package/build/server/chunks/{6-DMkV5QEZ.js.map → 6-BIaAbm8b.js.map} +1 -1
  52. package/build/server/chunks/{7-b4mtbSZL.js → 7--TmbCgrH.js} +2 -2
  53. package/build/server/chunks/{7-b4mtbSZL.js.map → 7--TmbCgrH.js.map} +1 -1
  54. package/build/server/index.js +1 -1
  55. package/build/server/index.js.map +1 -1
  56. package/build/server/manifest.js +8 -8
  57. package/build/server/manifest.js.map +1 -1
  58. package/package.json +1 -1
  59. package/build/client/_app/immutable/chunks/CNmDAqoQ.js.br +0 -0
  60. package/build/client/_app/immutable/chunks/CNmDAqoQ.js.gz +0 -0
  61. package/build/client/_app/immutable/chunks/CrVuYlkB.js.br +0 -0
  62. package/build/client/_app/immutable/chunks/CrVuYlkB.js.gz +0 -0
  63. package/build/client/_app/immutable/chunks/D3Vl-Qqr.js.br +0 -0
  64. package/build/client/_app/immutable/chunks/D3Vl-Qqr.js.gz +0 -0
  65. package/build/client/_app/immutable/entry/app.CWzZbNpA.js.br +0 -0
  66. package/build/client/_app/immutable/entry/app.CWzZbNpA.js.gz +0 -0
  67. package/build/client/_app/immutable/entry/start.t0E4BXrO.js +0 -1
  68. package/build/client/_app/immutable/entry/start.t0E4BXrO.js.br +0 -2
  69. package/build/client/_app/immutable/entry/start.t0E4BXrO.js.gz +0 -0
  70. package/build/client/_app/immutable/nodes/0.5I21KR7K.js.br +0 -0
  71. package/build/client/_app/immutable/nodes/0.5I21KR7K.js.gz +0 -0
  72. package/build/client/_app/immutable/nodes/1.BDCm0X_6.js.br +0 -0
  73. package/build/client/_app/immutable/nodes/1.BDCm0X_6.js.gz +0 -0
  74. package/build/client/_app/immutable/nodes/2.CKjSEOom.js.br +0 -0
  75. package/build/client/_app/immutable/nodes/2.CKjSEOom.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/4.pRflZhvu.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/4.pRflZhvu.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/5.Co1ngwGh.js.br +0 -0
  79. package/build/client/_app/immutable/nodes/5.Co1ngwGh.js.gz +0 -0
  80. package/build/client/_app/immutable/nodes/6.CUnGGKik.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/6.CUnGGKik.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/7.CgvPBG9m.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/7.CgvPBG9m.js.gz +0 -0
@@ -1 +1 @@
1
- import{bq as Se,u as De,o as U,z as A,y as T,aa as te,br as _t}from"./CZHsSL_X.js";class Re{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class xe{constructor(t,n){this.status=t,this.location=n}}class Le extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function mt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function vt(e){return e.split("%25").map(decodeURI).join("%25")}function wt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ge({href:e}){return e.split("#")[0]}function yt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function bt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const kt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&W.delete(Ue(e)),kt(e,t));const W=new Map;function Et(e,t){const n=Ue(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&W.set(n,{body:a,init:i,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=bt(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function St(e,t,n){if(W.size>0){const r=Ue(e,n),a=W.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);W.delete(r)}}return window.fetch(t,n)}function Ue(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${yt(...a)}"]`}return r}const Rt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function xt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Ut(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return _e(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return _e(String.fromCharCode(...l.slice(2).split("-").map(_=>parseInt(_,16))));const f=Rt.exec(l),[,p,v,h,u]=f;return t.push({name:h,matcher:u,optional:!!p,rest:!!v,chained:v?c===1&&o[0]==="":!1}),v?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return _e(l)}).join("")}).join("")}/?$`),params:t}}function Lt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Ut(e){return e.slice(1).split("/").filter(Lt)}function At(e,t,n){const r={},a=e.slice(1),i=a.filter(s=>s!==void 0);let o=0;for(let s=0;s<t.length;s+=1){const l=t[s];let c=a[s-o];if(l.chained&&l.rest&&o&&(c=a.slice(s-o,s+1).filter(f=>f).join("/"),o=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const f=t[s+1],p=a[s+1];f&&!f.rest&&f.optional&&p&&l.chained&&(o=0),!f&&!p&&Object.keys(r).length===i.length&&(o=0);continue}if(l.optional&&l.chained){o++;continue}return}if(!o)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Tt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([s,[l,c,f]])=>{const{pattern:p,params:v}=xt(s),h={id:s,exec:u=>{const _=p.exec(u);if(_)return At(_,v,r)},errors:[1,...f||[]].map(u=>e[u]),layouts:[0,...c||[]].map(o),leaf:i(l)};return h.errors.length=h.layouts.length=Math.max(h.errors.length,h.layouts.length),h});function i(s){const l=s<0;return l&&(s=~s),[l,e[s]]}function o(s){return s===void 0?s:[a.has(s),e[s]]}}function Ye(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function Ve(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_12fv33k?.base??"",It=globalThis.__sveltekit_12fv33k?.assets??x??"",Ot="1775132154890",He="sveltekit:snapshot",Je="sveltekit:scroll",Xe="sveltekit:states",Pt="sveltekit:pageurl",V="sveltekit:history",Y="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ue=location.origin;function Ae(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function D(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Be={...j,"":j.hover};function Qe(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ze(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Qe(e)}}function we(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";r.hash=`#${s}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||fe(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=r?.origin===ue&&e.hasAttribute("download");return{url:r,external:i,target:a,download:o}}function ne(e){let t=null,n=null,r=null,a=null,i=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=D(s,"preload-code")),a===null&&(a=D(s,"preload-data")),t===null&&(t=D(s,"keepfocus")),n===null&&(n=D(s,"noscroll")),i===null&&(i=D(s,"reload")),o===null&&(o=D(s,"replacestate")),s=Qe(s);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Be[r??"off"],preload_data:Be[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(o)}}function Ke(e){const t=Se(e);let n=!0;function r(){n=!0,t.update(o=>o)}function a(o){n=!1,t.set(o)}function i(o){let s;return t.subscribe(l=>{(s===void 0||n&&l!==s)&&o(s=l)})}return{notify:r,set:a,subscribe:i}}const et={v:()=>{}};function $t(){const{set:e,subscribe:t}=Se(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${It}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Ot;return o&&(e(!0),et.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:r}}function fe(e,t,n){return e.origin!==ue||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function sn(e){}const tt=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...tt];const Ct=new Set([...tt]);[...Ct];function jt(e){return e.filter(t=>t!=null)}function Te(e){return e instanceof Re||e instanceof Le?e.status:500}function Nt(e){return e instanceof Le?e.text:"Internal Error"}let k,H,me;const qt=De.toString().includes("$$")||/function \w+\(\) \{\}/.test(De.toString()),Me="a:";qt?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Me)},H={current:null},me={current:!1}):(k=new class{#e=U({});get data(){return A(this.#e)}set data(t){T(this.#e,t)}#t=U(null);get form(){return A(this.#t)}set form(t){T(this.#t,t)}#n=U(null);get error(){return A(this.#n)}set error(t){T(this.#n,t)}#r=U({});get params(){return A(this.#r)}set params(t){T(this.#r,t)}#a=U({id:null});get route(){return A(this.#a)}set route(t){T(this.#a,t)}#o=U({});get state(){return A(this.#o)}set state(t){T(this.#o,t)}#s=U(-1);get status(){return A(this.#s)}set status(t){T(this.#s,t)}#i=U(new URL(Me));get url(){return A(this.#i)}set url(t){T(this.#i,t)}},H=new class{#e=U(null);get current(){return A(this.#e)}set current(t){T(this.#e,t)}},me=new class{#e=U(!1);get current(){return A(this.#e)}set current(t){T(this.#e,t)}},et.v=()=>me.current=!0);function Dt(e){Object.assign(k,e)}const Vt=new Set(["icon","shortcut icon","apple-touch-icon"]);let F=null;const C=Ye(Je)??{},J=Ye(He)??{},$={url:Ke({}),page:Ke({}),navigating:Se(null),updated:$t()};function Ie(e){C[e]=q()}function Bt(e,t){let n=e+1;for(;C[n];)delete C[n],n+=1;for(n=t+1;J[n];)delete J[n],n+=1}function X(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function nt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function Fe(){}let Oe,ye,re,I,be,y;const ae=[],oe=[];let L=null;function ke(){L?.fork?.then(e=>e?.discard()),L=null}const ee=new Map,rt=new Set,Kt=new Set,z=new Set;let m={branch:[],error:null,url:null},at=!1,se=!1,Ge=!0,Q=!1,G=!1,ot=!1,Pe=!1,st,w,R,N;const ie=new Set,We=new Map;async function fn(e,t,n){globalThis.__sveltekit_12fv33k?.data&&globalThis.__sveltekit_12fv33k.data,document.URL!==location.href&&(location.href=location.href),y=e,await e.hooks.init?.(),Oe=Tt(e),I=document.documentElement,be=t,ye=e.nodes[0],re=e.nodes[1],ye(),re(),w=history.state?.[V],R=history.state?.[Y],w||(w=R=Date.now(),history.replaceState({...history.state,[V]:w,[Y]:R},""));const r=C[w];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await tn(be,n)):(await B({type:"enter",url:Ae(y.hash?an(new URL(location.href)):location.href),replace_state:!0}),a()),en()}function Mt(){ae.length=0,Pe=!1}function it(e){oe.some(t=>t?.snapshot)&&(J[e]=oe.map(t=>t?.snapshot?.capture()))}function lt(e){J[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function ze(){Ie(w),Ve(Je,C),it(R),Ve(He,J)}async function ct(e,t,n,r){let a;t.invalidateAll&&ke(),await B({type:"goto",url:Ae(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Pe=!0,a=[...We.keys()]),t.invalidate&&t.invalidate.forEach(Zt)}}),t.invalidateAll&&te().then(te).then(()=>{We.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})})}async function Ft(e){if(e.id!==L?.id){ke();const t={};ie.add(t),L={id:e.id,token:t,promise:ft({...e,preload:t}).then(n=>(ie.delete(t),n.type==="loaded"&&n.state.error&&ke(),n)),fork:null}}return L.promise}async function ve(e){const t=(await de(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function ut(e,t,n){const r={params:m.params,route:{id:m.route?.id??null},url:new URL(location.href)};m={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),st=new y.root({target:t,props:{...e.props,stores:$,components:oe},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),lt(R),n){const i={from:null,to:{...r,scroll:C[w]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};z.forEach(o=>o(i))}se=!0}async function le({url:e,params:t,branch:n,errors:r,status:a,error:i,route:o,form:s}){let l="never";if(x&&(e.pathname===x||e.pathname===x+"/"))l="always";else for(const u of n)u?.slash!==void 0&&(l=u.slash);e.pathname=mt(e.pathname,l),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:i,route:o},props:{constructors:jt(n).map(u=>u.node.component),page:qe(k)}};s!==void 0&&(c.props.form=s);let f={},p=!k,v=0;for(let u=0;u<Math.max(n.length,m.branch.length);u+=1){const _=n[u],g=m.branch[u];_?.data!==g?.data&&(p=!0),_&&(f={...f,..._.data},p&&(c.props[`data_${v}`]=f),v+=1)}return(!m.url||e.href!==m.url.href||m.error!==i||s!==void 0&&s!==k.form||p)&&(c.props.page={error:i,params:t,route:{id:o?.id??null},state:{},status:a,url:new URL(e),form:s??null,data:p?f:k.data}),c}async function $e({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let o=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();return{node:l,loader:e,server:i,universal:l.universal?.load?{type:"data",data:o,uses:s}:null,data:o??i?.data??null,slash:l.universal?.trailingSlash??i?.slash}}function Gt(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=se?St(r,a.href,t):Et(r,t);return{resolved:a,promise:i}}function Wt(e,t,n,r,a,i){if(Pe)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const o of a.search_params)if(r.has(o))return!0;for(const o of a.params)if(i[o]!==m.params[o])return!0;for(const o of a.dependencies)if(ae.some(s=>s(new URL(o))))return!0;return!1}function Ce(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function zt(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(o=>i.includes(o))&&i.every(o=>a.includes(o))&&n.delete(r)}return n}function Yt({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:qe(k),constructors:[]}}}async function ft({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return ie.delete(L.token),L.promise;const{errors:o,layouts:s,leaf:l}=a,c=[...s,l];o.forEach(g=>g?.().catch(()=>{})),c.forEach(g=>g?.[1]().catch(()=>{}));const f=m.url?e!==ce(m.url):!1,p=m.route?a.id!==m.route.id:!1,v=zt(m.url,n);let h=!1;const u=c.map(async(g,d)=>{if(!g)return;const E=m.branch[d];return g[1]===E?.loader&&!Wt(h,p,f,v,E.universal?.uses,r)?E:(h=!0,$e({loader:g[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let P=0;P<d;P+=1)Object.assign(O,(await u[P])?.data);return O},server_data_node:Ce(g[0]?{type:"skip"}:null,g[0]?E?.server:void 0)}))});for(const g of u)g.catch(()=>{});const _=[];for(let g=0;g<c.length;g+=1)if(c[g])try{_.push(await u[g])}catch(d){if(d instanceof xe)return{type:"redirect",location:d.location};if(ie.has(i))return Yt({error:await Z(d,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Te(d),S;if(d instanceof Re)S=d.body;else{if(await $.updated.check())return await nt(),await X(n);S=await Z(d,{params:r,url:n,route:{id:a.id}})}const O=await Ht(g,_,o);return O?le({url:n,params:r,branch:_.slice(0,O.idx).concat(O.node),errors:o,status:E,error:S,route:a}):await ht(n,{id:a.id},S,E)}else _.push(void 0);return le({url:n,params:r,branch:_,errors:o,status:200,error:null,route:a,form:t?void 0:null})}async function Ht(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function je({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const o=await $e({loader:ye,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ce(i)}),s={node:await re(),loader:re,universal:null,server:null,data:null};return le({url:n,params:a,branch:[o,s],status:e,error:t,errors:[],route:null})}catch(o){if(o instanceof xe)return ct(new URL(o.location,location.href),{},0);throw o}}async function Jt(e){const t=e.href;if(ee.has(t))return ee.get(t);let n;try{const r=(async()=>{let a=await y.hooks.reroute({url:new URL(e),fetch:async(i,o)=>Gt(i,o,e).promise})??e;if(typeof a=="string"){const i=new URL(e);y.hash?i.hash=a:i.pathname=a,a=i}return a})();ee.set(t,r),n=await r}catch{ee.delete(t);return}return n}async function de(e,t){if(e&&!fe(e,x,y.hash)){const n=await Jt(e);if(!n)return;const r=Xt(n);for(const a of Oe){const i=a.exec(r);if(i)return{id:ce(e),invalidating:t,route:a,params:wt(i),url:e}}}}function Xt(e){return vt(y.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function ce(e){return(y.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function dt({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let o=!1;const s=Ne(m,n,e,t,i??null);r!==void 0&&(s.navigation.delta=r),a!==void 0&&(s.navigation.event=a);const l={...s.navigation,cancel:()=>{o=!0,s.reject(new Error("navigation cancelled"))}};return Q||rt.forEach(c=>c(l)),o?null:s}async function B({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o={},redirect_count:s=0,nav_token:l={},accept:c=Fe,block:f=Fe,event:p}){const v=N;N=l;const h=await de(t,!1),u=e==="enter"?Ne(m,h,t,e):dt({url:t,type:e,delta:n?.delta,intent:h,scroll:n?.scroll,event:p});if(!u){f(),N===l&&(N=v);return}const _=w,g=R;c(),Q=!0,se&&u.navigation.type!=="enter"&&$.navigating.set(H.current=u.navigation);let d=h&&await ft(h);if(!d){if(fe(t,x,y.hash))return await X(t,i);d=await ht(t,{id:null},await Z(new Le(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=h?.url||t,N!==l)return u.reject(new Error("navigation aborted")),!1;if(d.type==="redirect"){if(s<20){await B({type:e,url:new URL(d.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o,redirect_count:s+1,nav_token:l}),u.fulfil(void 0);return}d=await je({status:500,error:await Z(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else d.props.page.status>=400&&await $.updated.check()&&(await nt(),await X(t,i));if(Mt(),Ie(_),it(g),d.props.page.url.pathname!==t.pathname&&(t.pathname=d.props.page.url.pathname),o=n?n.state:o,!n){const b=i?0:1,K={[V]:w+=b,[Y]:R+=b,[Xe]:o};(i?history.replaceState:history.pushState).call(history,K,"",t),i||Bt(w,R)}const E=h&&L?.id===h.id?L.fork:null;L=null,d.props.page.state=o;let S;if(se){const b=(await Promise.all(Array.from(Kt,M=>M(u.navigation)))).filter(M=>typeof M=="function");if(b.length>0){let M=function(){b.forEach(pe=>{z.delete(pe)})};b.push(M),b.forEach(pe=>{z.add(pe)})}const K=u.navigation.to;m={...d.state,nav:{params:K.params,route:K.route,url:K.url}},d.props.page&&(d.props.page.url=t);const he=E&&await E;he?S=he.commit():(F=null,st.$set(d.props),F&&Object.assign(d.props.page,F),Dt(d.props.page),S=_t?.()),ot=!0}else await ut(d,be,!1);const{activeElement:O}=document;await S,await te(),await te();let P=null;if(Ge){const b=n?n.scroll:a?q():null;b?scrollTo(b.x,b.y):(P=t.hash&&document.getElementById(pt(t)))?P.scrollIntoView():scrollTo(0,0)}const gt=document.activeElement!==O&&document.activeElement!==document.body;!r&&!gt&&rn(t,!P),Ge=!0,d.props.page&&(F&&Object.assign(d.props.page,F),Object.assign(k,d.props.page)),Q=!1,e==="popstate"&&lt(R),u.fulfil(void 0),u.navigation.to&&(u.navigation.to.scroll=q()),z.forEach(b=>b(u.navigation)),$.navigating.set(H.current=null)}async function ht(e,t,n,r,a){return e.origin===ue&&e.pathname===location.pathname&&!at?await je({status:r,error:n,url:e,route:t}):await X(e,a)}function Qt(){let e,t={element:void 0,href:void 0},n;I.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(e),e=setTimeout(()=>{i(l,j.hover)},20)});function r(s){s.defaultPrevented||i(s.composedPath()[0],j.tap)}I.addEventListener("mousedown",r),I.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(ve(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(s,l){const c=Ze(s,I),f=c===t.element&&c?.href===t.href&&l>=n;if(!c||f)return;const{url:p,external:v,download:h}=we(c,x,y.hash);if(v||h)return;const u=ne(c),_=p&&ce(m.url)===ce(p);if(!(u.reload||_))if(l<=u.preload_data){t={element:c,href:c.href},n=j.tap;const g=await de(p,!1);if(!g)return;Ft(g)}else l<=u.preload_code&&(t={element:c,href:c.href},n=l,ve(p))}function o(){a.disconnect();for(const s of I.querySelectorAll("a")){const{url:l,external:c,download:f}=we(s,x,y.hash);if(c||f)continue;const p=ne(s);p.reload||(p.preload_code===j.viewport&&a.observe(s),p.preload_code===j.eager&&ve(l))}}z.add(o),o()}function Z(e,t){if(e instanceof Re)return e.body;const n=Te(e),r=Nt(e);return y.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function dn(e,t={}){return e=new URL(Ae(e)),e.origin!==ue?Promise.reject(new Error("goto: invalid URL")):ct(e,t,0)}function Zt(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function en(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(ze(),!Q){const r=Ne(m,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};rt.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ze()}),navigator.connection?.saveData||Qt(),I.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Ze(t.composedPath()[0],I);if(!n)return;const{url:r,external:a,target:i,download:o}=we(n,x,y.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const s=ne(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[c,f]=(y.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===ge(location);if(a||s.reload&&(!p||!f)){dt({url:r,type:"link",event:t})?Q=!0:t.preventDefault();return}if(f!==void 0&&p){const[,v]=m.url.href.split("#");if(v===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const h=n.ownerDocument.getElementById(decodeURIComponent(f));h&&(h.scrollIntoView(),h.focus())}return}if(G=!0,Ie(w),e(r),!s.replace_state)return;G=!1}t.preventDefault(),await new Promise(v=>{requestAnimationFrame(()=>{setTimeout(v,0)}),setTimeout(v,100)}),await B({type:"link",url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),I.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const o=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(fe(o,x,!1))return;const s=t.target,l=ne(s);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(s,r);o.search=new URLSearchParams(c).toString(),B({type:"form",url:o,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Ee){if(t.state?.[V]){const n=t.state[V];if(N={},n===w)return;const r=C[n],a=t.state[Xe]??{},i=new URL(t.state[Pt]??location.href),o=t.state[Y],s=m.url?ge(location)===ge(m.url):!1;if(o===R&&(ot||s)){a!==k.state&&(k.state=a),e(i),C[w]=q(),r&&scrollTo(r.x,r.y),w=n;return}const c=n-w;await B({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{w=n,R=o},block:()=>{history.go(-c)},nav_token:N,event:t})}else if(!G){const n=new URL(location.href);e(n),y.hash&&location.reload()}}}),addEventListener("hashchange",()=>{G&&(G=!1,history.replaceState({...history.state,[V]:++w,[Y]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Vt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(H.current=null)});function e(t){m.url=k.url=t,$.page.set(qe(k)),$.page.notify()}}async function tn(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:o,data:s,form:l}){at=!0;const c=new URL(location.href);let f;({params:a={},route:i={id:null}}=await de(c,!1)||{}),f=Oe.find(({id:h})=>h===i.id);let p,v=!0;try{const h=r.map(async(_,g)=>{const d=s[g];return d?.uses&&(d.uses=nn(d.uses)),$e({loader:y.nodes[_],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<g;S+=1)Object.assign(E,(await h[S]).data);return E},server_data_node:Ce(d)})}),u=await Promise.all(h);if(f){const _=f.layouts;for(let g=0;g<_.length;g++)_[g]||u.splice(g,0,void 0)}p=await le({url:c,params:a,branch:u,status:t,error:n,errors:f?.errors,form:l,route:f??null})}catch(h){if(h instanceof xe){await X(new URL(h.location,location.href));return}p=await je({status:Te(h),error:await Z(h,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",v=!1}p.props.page&&(p.props.page.state={}),await ut(p,e,v)}function nn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Ee=!1;function rn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=pt(e);if(r&&document.getElementById(r)){const{x:i,y:o}=q();setTimeout(()=>{const s=history.state;Ee=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(i,o),Ee=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let o=0;o<a.rangeCount;o+=1)i.push(a.getRangeAt(o));setTimeout(()=>{if(a.rangeCount===i.length){for(let o=0;o<a.rangeCount;o+=1){const s=i[o],l=a.getRangeAt(o);if(s.commonAncestorContainer!==l.commonAncestorContainer||s.startContainer!==l.startContainer||s.endContainer!==l.endContainer||s.startOffset!==l.startOffset||s.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function Ne(e,t,n,r,a=null){let i,o;const s=new Promise((c,f)=>{i=c,o=f});return s.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:s},fulfil:i,reject:o}}function qe(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function an(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function pt(e){let t;if(y.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{fn as a,dn as g,sn as l,k as p,$ as s};
1
+ import{bq as Se,u as ze,o as U,z as A,y as T,aa as te,br as _t}from"./CZHsSL_X.js";class Re{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class xe{constructor(t,n){this.status=t,this.location=n}}class Le extends Error{constructor(t,n,r){super(r),this.status=t,this.text=n}}new URL("sveltekit-internal://");function mt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function wt(e){return e.split("%25").map(decodeURI).join("%25")}function vt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function ge({href:e}){return e.split("#")[0]}function yt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let r=n.length;for(;r;)t=t*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)t=t*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;new TextDecoder;function bt(e){const t=atob(e),n=new Uint8Array(t.length);for(let r=0;r<t.length;r++)n[r]=t.charCodeAt(r);return n}const kt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||"GET")!=="GET"&&G.delete(Ue(e)),kt(e,t));const G=new Map;function Et(e,t){const n=Ue(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&G.set(n,{body:a,init:i,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=bt(a)),Promise.resolve(new Response(a,i))}return window.fetch(e,t)}function St(e,t,n){if(G.size>0){const r=Ue(e,n),a=G.get(r);if(a){if(performance.now()<a.ttl&&["default","force-cache","only-if-cached",void 0].includes(n?.cache))return new Response(a.body,a.init);G.delete(r)}}return window.fetch(t,n)}function Ue(e,t){let r=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){const a=[];t.headers&&a.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&a.push(t.body),r+=`[data-hash="${yt(...a)}"]`}return r}const Rt=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function xt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Ut(e).map(r=>{const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return t.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return _e(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return _e(String.fromCharCode(...l.slice(2).split("-").map(_=>parseInt(_,16))));const f=Rt.exec(l),[,p,w,h,u]=f;return t.push({name:h,matcher:u,optional:!!p,rest:!!w,chained:w?c===1&&o[0]==="":!1}),w?"([^]*?)":p?"([^/]*)?":"([^/]+?)"}return _e(l)}).join("")}).join("")}/?$`),params:t}}function Lt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Ut(e){return e.slice(1).split("/").filter(Lt)}function At(e,t,n){const r={},a=e.slice(1),i=a.filter(s=>s!==void 0);let o=0;for(let s=0;s<t.length;s+=1){const l=t[s];let c=a[s-o];if(l.chained&&l.rest&&o&&(c=a.slice(s-o,s+1).filter(f=>f).join("/"),o=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const f=t[s+1],p=a[s+1];f&&!f.rest&&f.optional&&p&&l.chained&&(o=0),!f&&!p&&Object.keys(r).length===i.length&&(o=0);continue}if(l.optional&&l.chained){o++;continue}return}if(!o)return r}function _e(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Tt({nodes:e,server_loads:t,dictionary:n,matchers:r}){const a=new Set(t);return Object.entries(n).map(([s,[l,c,f]])=>{const{pattern:p,params:w}=xt(s),h={id:s,exec:u=>{const _=p.exec(u);if(_)return At(_,w,r)},errors:[1,...f||[]].map(u=>e[u]),layouts:[0,...c||[]].map(o),leaf:i(l)};return h.errors.length=h.layouts.length=Math.max(h.errors.length,h.layouts.length),h});function i(s){const l=s<0;return l&&(s=~s),[l,e[s]]}function o(s){return s===void 0?s:[a.has(s),e[s]]}}function Ye(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function De(e,t,n=JSON.stringify){const r=n(t);try{sessionStorage[e]=r}catch{}}const x=globalThis.__sveltekit_10z9zqw?.base??"",It=globalThis.__sveltekit_10z9zqw?.assets??x??"",Ot="1775159415510",He="sveltekit:snapshot",Je="sveltekit:scroll",Xe="sveltekit:states",Pt="sveltekit:pageurl",D="sveltekit:history",Y="sveltekit:navigation",j={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},ue=location.origin;function Ae(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function q(){return{x:pageXOffset,y:pageYOffset}}function z(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const Ve={...j,"":j.hover};function Qe(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ze(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=Qe(e)}}function ve(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";r.hash=`#${s}${r.hash}`}}catch{}const a=e instanceof SVGAElement?e.target.baseVal:e.target,i=!r||!!a||fe(r,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=r?.origin===ue&&e.hasAttribute("download");return{url:r,external:i,target:a,download:o}}function ne(e){let t=null,n=null,r=null,a=null,i=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=z(s,"preload-code")),a===null&&(a=z(s,"preload-data")),t===null&&(t=z(s,"keepfocus")),n===null&&(n=z(s,"noscroll")),i===null&&(i=z(s,"reload")),o===null&&(o=z(s,"replacestate")),s=Qe(s);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:Ve[r??"off"],preload_data:Ve[a??"off"],keepfocus:l(t),noscroll:l(n),reload:l(i),replace_state:l(o)}}function Be(e){const t=Se(e);let n=!0;function r(){n=!0,t.update(o=>o)}function a(o){n=!1,t.set(o)}function i(o){let s;return t.subscribe(l=>{(s===void 0||n&&l!==s)&&o(s=l)})}return{notify:r,set:a,subscribe:i}}const et={v:()=>{}};function $t(){const{set:e,subscribe:t}=Se(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${It}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Ot;return o&&(e(!0),et.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:r}}function fe(e,t,n){return e.origin!==ue||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function sn(e){}const tt=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...tt];const Ct=new Set([...tt]);[...Ct];function jt(e){return e.filter(t=>t!=null)}function Te(e){return e instanceof Re||e instanceof Le?e.status:500}function Nt(e){return e instanceof Le?e.text:"Internal Error"}let k,H,me;const qt=ze.toString().includes("$$")||/function \w+\(\) \{\}/.test(ze.toString()),Ke="a:";qt?(k={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Ke)},H={current:null},me={current:!1}):(k=new class{#e=U({});get data(){return A(this.#e)}set data(t){T(this.#e,t)}#t=U(null);get form(){return A(this.#t)}set form(t){T(this.#t,t)}#n=U(null);get error(){return A(this.#n)}set error(t){T(this.#n,t)}#r=U({});get params(){return A(this.#r)}set params(t){T(this.#r,t)}#a=U({id:null});get route(){return A(this.#a)}set route(t){T(this.#a,t)}#o=U({});get state(){return A(this.#o)}set state(t){T(this.#o,t)}#s=U(-1);get status(){return A(this.#s)}set status(t){T(this.#s,t)}#i=U(new URL(Ke));get url(){return A(this.#i)}set url(t){T(this.#i,t)}},H=new class{#e=U(null);get current(){return A(this.#e)}set current(t){T(this.#e,t)}},me=new class{#e=U(!1);get current(){return A(this.#e)}set current(t){T(this.#e,t)}},et.v=()=>me.current=!0);function zt(e){Object.assign(k,e)}const Dt=new Set(["icon","shortcut icon","apple-touch-icon"]);let M=null;const C=Ye(Je)??{},J=Ye(He)??{},$={url:Be({}),page:Be({}),navigating:Se(null),updated:$t()};function Ie(e){C[e]=q()}function Vt(e,t){let n=e+1;for(;C[n];)delete C[n],n+=1;for(n=t+1;J[n];)delete J[n],n+=1}function X(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function nt(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(x||"/");e&&await e.update()}}function Me(){}let Oe,ye,re,I,be,y;const ae=[],oe=[];let L=null;function ke(){L?.fork?.then(e=>e?.discard()),L=null}const ee=new Map,rt=new Set,Bt=new Set,W=new Set;let m={branch:[],error:null,url:null},at=!1,se=!1,Fe=!0,Q=!1,F=!1,ot=!1,Pe=!1,st,v,R,N;const ie=new Set,Ge=new Map;async function fn(e,t,n){globalThis.__sveltekit_10z9zqw?.data&&globalThis.__sveltekit_10z9zqw.data,document.URL!==location.href&&(location.href=location.href),y=e,await e.hooks.init?.(),Oe=Tt(e),I=document.documentElement,be=t,ye=e.nodes[0],re=e.nodes[1],ye(),re(),v=history.state?.[D],R=history.state?.[Y],v||(v=R=Date.now(),history.replaceState({...history.state,[D]:v,[Y]:R},""));const r=C[v];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await tn(be,n)):(await V({type:"enter",url:Ae(y.hash?an(new URL(location.href)):location.href),replace_state:!0}),a()),en()}function Kt(){ae.length=0,Pe=!1}function it(e){oe.some(t=>t?.snapshot)&&(J[e]=oe.map(t=>t?.snapshot?.capture()))}function lt(e){J[e]?.forEach((t,n)=>{oe[n]?.snapshot?.restore(t)})}function We(){Ie(v),De(Je,C),it(R),De(He,J)}async function ct(e,t,n,r){let a;t.invalidateAll&&ke(),await V({type:"goto",url:Ae(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:r,accept:()=>{t.invalidateAll&&(Pe=!0,a=[...Ge.keys()]),t.invalidate&&t.invalidate.forEach(Zt)}}),t.invalidateAll&&te().then(te).then(()=>{Ge.forEach(({resource:i},o)=>{a?.includes(o)&&i.refresh?.()})})}async function Mt(e){if(e.id!==L?.id){ke();const t={};ie.add(t),L={id:e.id,token:t,promise:ft({...e,preload:t}).then(n=>(ie.delete(t),n.type==="loaded"&&n.state.error&&ke(),n)),fork:null}}return L.promise}async function we(e){const t=(await de(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(n=>n[1]()))}async function ut(e,t,n){const r={params:m.params,route:{id:m.route?.id??null},url:new URL(location.href)};m={...e.state,nav:r};const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(k,e.props.page),st=new y.root({target:t,props:{...e.props,stores:$,components:oe},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),lt(R),n){const i={from:null,to:{...r,scroll:C[v]??q()},willUnload:!1,type:"enter",complete:Promise.resolve()};W.forEach(o=>o(i))}se=!0}async function le({url:e,params:t,branch:n,errors:r,status:a,error:i,route:o,form:s}){let l="never";if(x&&(e.pathname===x||e.pathname===x+"/"))l="always";else for(const u of n)u?.slash!==void 0&&(l=u.slash);e.pathname=mt(e.pathname,l),e.search=e.search;const c={type:"loaded",state:{url:e,params:t,branch:n,error:i,route:o},props:{constructors:jt(n).map(u=>u.node.component),page:qe(k)}};s!==void 0&&(c.props.form=s);let f={},p=!k,w=0;for(let u=0;u<Math.max(n.length,m.branch.length);u+=1){const _=n[u],g=m.branch[u];_?.data!==g?.data&&(p=!0),_&&(f={...f,..._.data},p&&(c.props[`data_${w}`]=f),w+=1)}return(!m.url||e.href!==m.url.href||m.error!==i||s!==void 0&&s!==k.form||p)&&(c.props.page={error:i,params:t,route:{id:o?.id??null},state:{},status:a,url:new URL(e),form:s??null,data:p?f:k.data}),c}async function $e({loader:e,parent:t,url:n,params:r,route:a,server_data_node:i}){let o=null;const s={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},l=await e();return{node:l,loader:e,server:i,universal:l.universal?.load?{type:"data",data:o,uses:s}:null,data:o??i?.data??null,slash:l.universal?.trailingSlash??i?.slash}}function Ft(e,t,n){let r=e instanceof Request?e.url:e;const a=new URL(r,n);a.origin===n.origin&&(r=a.href.slice(n.origin.length));const i=se?St(r,a.href,t):Et(r,t);return{resolved:a,promise:i}}function Gt(e,t,n,r,a,i){if(Pe)return!0;if(!a)return!1;if(a.parent&&e||a.route&&t||a.url&&n)return!0;for(const o of a.search_params)if(r.has(o))return!0;for(const o of a.params)if(i[o]!==m.params[o])return!0;for(const o of a.dependencies)if(ae.some(s=>s(new URL(o))))return!0;return!1}function Ce(e,t){return e?.type==="data"?e:e?.type==="skip"?t??null:null}function Wt(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const r of n){const a=e.searchParams.getAll(r),i=t.searchParams.getAll(r);a.every(o=>i.includes(o))&&i.every(o=>a.includes(o))&&n.delete(r)}return n}function Yt({error:e,url:t,route:n,params:r}){return{type:"loaded",state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:qe(k),constructors:[]}}}async function ft({id:e,invalidating:t,url:n,params:r,route:a,preload:i}){if(L?.id===e)return ie.delete(L.token),L.promise;const{errors:o,layouts:s,leaf:l}=a,c=[...s,l];o.forEach(g=>g?.().catch(()=>{})),c.forEach(g=>g?.[1]().catch(()=>{}));const f=m.url?e!==ce(m.url):!1,p=m.route?a.id!==m.route.id:!1,w=Wt(m.url,n);let h=!1;const u=c.map(async(g,d)=>{if(!g)return;const E=m.branch[d];return g[1]===E?.loader&&!Gt(h,p,f,w,E.universal?.uses,r)?E:(h=!0,$e({loader:g[1],url:n,params:r,route:a,parent:async()=>{const O={};for(let P=0;P<d;P+=1)Object.assign(O,(await u[P])?.data);return O},server_data_node:Ce(g[0]?{type:"skip"}:null,g[0]?E?.server:void 0)}))});for(const g of u)g.catch(()=>{});const _=[];for(let g=0;g<c.length;g+=1)if(c[g])try{_.push(await u[g])}catch(d){if(d instanceof xe)return{type:"redirect",location:d.location};if(ie.has(i))return Yt({error:await Z(d,{params:r,url:n,route:{id:a.id}}),url:n,params:r,route:a});let E=Te(d),S;if(d instanceof Re)S=d.body;else{if(await $.updated.check())return await nt(),await X(n);S=await Z(d,{params:r,url:n,route:{id:a.id}})}const O=await Ht(g,_,o);return O?le({url:n,params:r,branch:_.slice(0,O.idx).concat(O.node),errors:o,status:E,error:S,route:a}):await ht(n,{id:a.id},S,E)}else _.push(void 0);return le({url:n,params:r,branch:_,errors:o,status:200,error:null,route:a,form:t?void 0:null})}async function Ht(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)r-=1;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function je({status:e,error:t,url:n,route:r}){const a={};let i=null;try{const o=await $e({loader:ye,url:n,params:a,route:r,parent:()=>Promise.resolve({}),server_data_node:Ce(i)}),s={node:await re(),loader:re,universal:null,server:null,data:null};return le({url:n,params:a,branch:[o,s],status:e,error:t,errors:[],route:null})}catch(o){if(o instanceof xe)return ct(new URL(o.location,location.href),{},0);throw o}}async function Jt(e){const t=e.href;if(ee.has(t))return ee.get(t);let n;try{const r=(async()=>{let a=await y.hooks.reroute({url:new URL(e),fetch:async(i,o)=>Ft(i,o,e).promise})??e;if(typeof a=="string"){const i=new URL(e);y.hash?i.hash=a:i.pathname=a,a=i}return a})();ee.set(t,r),n=await r}catch{ee.delete(t);return}return n}async function de(e,t){if(e&&!fe(e,x,y.hash)){const n=await Jt(e);if(!n)return;const r=Xt(n);for(const a of Oe){const i=a.exec(r);if(i)return{id:ce(e),invalidating:t,route:a,params:vt(i),url:e}}}}function Xt(e){return wt(y.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(x.length))||"/"}function ce(e){return(y.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function dt({url:e,type:t,intent:n,delta:r,event:a,scroll:i}){let o=!1;const s=Ne(m,n,e,t,i??null);r!==void 0&&(s.navigation.delta=r),a!==void 0&&(s.navigation.event=a);const l={...s.navigation,cancel:()=>{o=!0,s.reject(new Error("navigation cancelled"))}};return Q||rt.forEach(c=>c(l)),o?null:s}async function V({type:e,url:t,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o={},redirect_count:s=0,nav_token:l={},accept:c=Me,block:f=Me,event:p}){const w=N;N=l;const h=await de(t,!1),u=e==="enter"?Ne(m,h,t,e):dt({url:t,type:e,delta:n?.delta,intent:h,scroll:n?.scroll,event:p});if(!u){f(),N===l&&(N=w);return}const _=v,g=R;c(),Q=!0,se&&u.navigation.type!=="enter"&&$.navigating.set(H.current=u.navigation);let d=h&&await ft(h);if(!d){if(fe(t,x,y.hash))return await X(t,i);d=await ht(t,{id:null},await Z(new Le(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=h?.url||t,N!==l)return u.reject(new Error("navigation aborted")),!1;if(d.type==="redirect"){if(s<20){await V({type:e,url:new URL(d.location,t),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o,redirect_count:s+1,nav_token:l}),u.fulfil(void 0);return}d=await je({status:500,error:await Z(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else d.props.page.status>=400&&await $.updated.check()&&(await nt(),await X(t,i));if(Kt(),Ie(_),it(g),d.props.page.url.pathname!==t.pathname&&(t.pathname=d.props.page.url.pathname),o=n?n.state:o,!n){const b=i?0:1,B={[D]:v+=b,[Y]:R+=b,[Xe]:o};(i?history.replaceState:history.pushState).call(history,B,"",t),i||Vt(v,R)}const E=h&&L?.id===h.id?L.fork:null;L=null,d.props.page.state=o;let S;if(se){const b=(await Promise.all(Array.from(Bt,K=>K(u.navigation)))).filter(K=>typeof K=="function");if(b.length>0){let K=function(){b.forEach(pe=>{W.delete(pe)})};b.push(K),b.forEach(pe=>{W.add(pe)})}const B=u.navigation.to;m={...d.state,nav:{params:B.params,route:B.route,url:B.url}},d.props.page&&(d.props.page.url=t);const he=E&&await E;he?S=he.commit():(M=null,st.$set(d.props),M&&Object.assign(d.props.page,M),zt(d.props.page),S=_t?.()),ot=!0}else await ut(d,be,!1);const{activeElement:O}=document;await S,await te(),await te();let P=null;if(Fe){const b=n?n.scroll:a?q():null;b?scrollTo(b.x,b.y):(P=t.hash&&document.getElementById(pt(t)))?P.scrollIntoView():scrollTo(0,0)}const gt=document.activeElement!==O&&document.activeElement!==document.body;!r&&!gt&&rn(t,!P),Fe=!0,d.props.page&&(M&&Object.assign(d.props.page,M),Object.assign(k,d.props.page)),Q=!1,e==="popstate"&&lt(R),u.fulfil(void 0),u.navigation.to&&(u.navigation.to.scroll=q()),W.forEach(b=>b(u.navigation)),$.navigating.set(H.current=null)}async function ht(e,t,n,r,a){return e.origin===ue&&e.pathname===location.pathname&&!at?await je({status:r,error:n,url:e,route:t}):await X(e,a)}function Qt(){let e,t={element:void 0,href:void 0},n;I.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(e),e=setTimeout(()=>{i(l,j.hover)},20)});function r(s){s.defaultPrevented||i(s.composedPath()[0],j.tap)}I.addEventListener("mousedown",r),I.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(we(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(s,l){const c=Ze(s,I),f=c===t.element&&c?.href===t.href&&l>=n;if(!c||f)return;const{url:p,external:w,download:h}=ve(c,x,y.hash);if(w||h)return;const u=ne(c),_=p&&ce(m.url)===ce(p);if(!(u.reload||_))if(l<=u.preload_data){t={element:c,href:c.href},n=j.tap;const g=await de(p,!1);if(!g)return;Mt(g)}else l<=u.preload_code&&(t={element:c,href:c.href},n=l,we(p))}function o(){a.disconnect();for(const s of I.querySelectorAll("a")){const{url:l,external:c,download:f}=ve(s,x,y.hash);if(c||f)continue;const p=ne(s);p.reload||(p.preload_code===j.viewport&&a.observe(s),p.preload_code===j.eager&&we(l))}}W.add(o),o()}function Z(e,t){if(e instanceof Re)return e.body;const n=Te(e),r=Nt(e);return y.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function dn(e,t={}){return e=new URL(Ae(e)),e.origin!==ue?Promise.reject(new Error("goto: invalid URL")):ct(e,t,0)}function Zt(e){if(typeof e=="function")ae.push(e);else{const{href:t}=new URL(e,location.href);ae.push(n=>n.href===t)}}function en(){history.scrollRestoration="manual",addEventListener("beforeunload",t=>{let n=!1;if(We(),!Q){const r=Ne(m,void 0,null,"leave"),a={...r.navigation,cancel:()=>{n=!0,r.reject(new Error("navigation cancelled"))}};rt.forEach(i=>i(a))}n?(t.preventDefault(),t.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&We()}),navigator.connection?.saveData||Qt(),I.addEventListener("click",async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;const n=Ze(t.composedPath()[0],I);if(!n)return;const{url:r,external:a,target:i,download:o}=ve(n,x,y.hash);if(!r)return;if(i==="_parent"||i==="_top"){if(window.parent!==window)return}else if(i&&i!=="_self")return;const s=ne(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||o)return;const[c,f]=(y.hash?r.hash.replace(/^#/,""):r.href).split("#"),p=c===ge(location);if(a||s.reload&&(!p||!f)){dt({url:r,type:"link",event:t})?Q=!0:t.preventDefault();return}if(f!==void 0&&p){const[,w]=m.url.href.split("#");if(w===f){if(t.preventDefault(),f===""||f==="top"&&n.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const h=n.ownerDocument.getElementById(decodeURIComponent(f));h&&(h.scrollIntoView(),h.focus())}return}if(F=!0,Ie(v),e(r),!s.replace_state)return;F=!1}t.preventDefault(),await new Promise(w=>{requestAnimationFrame(()=>{setTimeout(w,0)}),setTimeout(w,100)}),await V({type:"link",url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),I.addEventListener("submit",t=>{if(t.defaultPrevented)return;const n=HTMLFormElement.prototype.cloneNode.call(t.target),r=t.submitter;if((r?.formTarget||n.target)==="_blank"||(r?.formMethod||n.method)!=="get")return;const o=new URL(r?.hasAttribute("formaction")&&r?.formAction||n.action);if(fe(o,x,!1))return;const s=t.target,l=ne(s);if(l.reload)return;t.preventDefault(),t.stopPropagation();const c=new FormData(s,r);o.search=new URLSearchParams(c).toString(),V({type:"form",url:o,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??o.href===location.href,event:t})}),addEventListener("popstate",async t=>{if(!Ee){if(t.state?.[D]){const n=t.state[D];if(N={},n===v)return;const r=C[n],a=t.state[Xe]??{},i=new URL(t.state[Pt]??location.href),o=t.state[Y],s=m.url?ge(location)===ge(m.url):!1;if(o===R&&(ot||s)){a!==k.state&&(k.state=a),e(i),C[v]=q(),r&&scrollTo(r.x,r.y),v=n;return}const c=n-v;await V({type:"popstate",url:i,popped:{state:a,scroll:r,delta:c},accept:()=>{v=n,R=o},block:()=>{history.go(-c)},nav_token:N,event:t})}else if(!F){const n=new URL(location.href);e(n),y.hash&&location.reload()}}}),addEventListener("hashchange",()=>{F&&(F=!1,history.replaceState({...history.state,[D]:++v,[Y]:R},"",location.href))});for(const t of document.querySelectorAll("link"))Dt.has(t.rel)&&(t.href=t.href);addEventListener("pageshow",t=>{t.persisted&&$.navigating.set(H.current=null)});function e(t){m.url=k.url=t,$.page.set(qe(k)),$.page.notify()}}async function tn(e,{status:t=200,error:n,node_ids:r,params:a,route:i,server_route:o,data:s,form:l}){at=!0;const c=new URL(location.href);let f;({params:a={},route:i={id:null}}=await de(c,!1)||{}),f=Oe.find(({id:h})=>h===i.id);let p,w=!0;try{const h=r.map(async(_,g)=>{const d=s[g];return d?.uses&&(d.uses=nn(d.uses)),$e({loader:y.nodes[_],url:c,params:a,route:i,parent:async()=>{const E={};for(let S=0;S<g;S+=1)Object.assign(E,(await h[S]).data);return E},server_data_node:Ce(d)})}),u=await Promise.all(h);if(f){const _=f.layouts;for(let g=0;g<_.length;g++)_[g]||u.splice(g,0,void 0)}p=await le({url:c,params:a,branch:u,status:t,error:n,errors:f?.errors,form:l,route:f??null})}catch(h){if(h instanceof xe){await X(new URL(h.location,location.href));return}p=await je({status:Te(h),error:await Z(h,{url:c,params:a,route:i}),url:c,route:i}),e.textContent="",w=!1}p.props.page&&(p.props.page.state={}),await ut(p,e,w)}function nn(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}let Ee=!1;function rn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const r=pt(e);if(r&&document.getElementById(r)){const{x:i,y:o}=q();setTimeout(()=>{const s=history.state;Ee=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(s,"",e),t&&scrollTo(i,o),Ee=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let o=0;o<a.rangeCount;o+=1)i.push(a.getRangeAt(o));setTimeout(()=>{if(a.rangeCount===i.length){for(let o=0;o<a.rangeCount;o+=1){const s=i[o],l=a.getRangeAt(o);if(s.commonAncestorContainer!==l.commonAncestorContainer||s.startContainer!==l.startContainer||s.endContainer!==l.endContainer||s.startOffset!==l.startOffset||s.endOffset!==l.endOffset)return}a.removeAllRanges()}})}}}function Ne(e,t,n,r,a=null){let i,o;const s=new Promise((c,f)=>{i=c,o=f});return s.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:q()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:a},willUnload:!t,type:r,complete:s},fulfil:i,reject:o}}function qe(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function an(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function pt(e){let t;if(y.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{fn as a,dn as g,sn as l,k as p,$ as s};
@@ -1 +1 @@
1
- import{s as e}from"./CrVuYlkB.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
1
+ import{s as e}from"./BN1NjBrw.js";const r=()=>{const s=e;return{page:{subscribe:s.page.subscribe},navigating:{subscribe:s.navigating.subscribe},updated:s.updated}},b={subscribe(s){return r().page.subscribe(s)}};export{b as p};
@@ -1 +1 @@
1
- import{s as r,p as e}from"./CrVuYlkB.js";const a={get params(){return e.params},get url(){return e.url}};r.updated.check;const s=a;export{s as p};
1
+ import{s as r,p as e}from"./BN1NjBrw.js";const a={get params(){return e.params},get url(){return e.url}};r.updated.check;const s=a;export{s as p};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.5I21KR7K.js","../chunks/r0JawsZc.js","../chunks/CZHsSL_X.js","../chunks/CQjSATpv.js","../assets/markdown.Dc-OSJWY.css","../chunks/CrVuYlkB.js","../chunks/CNmDAqoQ.js","../assets/0.BhZOCxO4.css","../nodes/1.BDCm0X_6.js","../chunks/B8XegpSE.js","../chunks/BOYo8yTr.js","../assets/1.BYutk3aU.css","../nodes/2.CKjSEOom.js","../chunks/B5NAKyil.js","../chunks/Bu1aqm5j.js","../assets/Phone.FQEfwCX2.css","../chunks/UJOiqIYE.js","../chunks/DSU1n5N_.js","../chunks/CSoRdFvv.js","../chunks/DjsDGxCa.js","../chunks/BLszSzTT.js","../assets/2.CAShZ7lQ.css","../nodes/3.3yohCM25.js","../assets/3.DGDHCVnW.css","../nodes/4.pRflZhvu.js","../chunks/D3Vl-Qqr.js","../assets/4.BFUut--w.css","../nodes/5.Co1ngwGh.js","../chunks/DVkn4r72.js","../assets/ChatView.CwWbzIL-.css","../assets/5.BTOx7yt7.css","../nodes/6.CUnGGKik.js","../assets/6.eZGZN-BF.css","../nodes/7.CgvPBG9m.js","../chunks/PPVm8Dsz.js","../assets/7.DwS5ZHBh.css"])))=>i.map(i=>d[i]);
2
- import{_}from"../chunks/PPVm8Dsz.js";import{h as j,k as G,b as H,l as q,m as J,n as K,e as Q,d as k,ab as U,i as W,y as R,Y as X,z as u,ac as Z,ad as $,ae as tt,p as et,_ as rt,a0 as at,u as st,aa as ot,f as b,s as nt,w as it,o as O,c as ct,r as ut,t as _t,B as p}from"../chunks/CZHsSL_X.js";import{B as mt,j as dt,m as lt,u as ft,a as v,c as T,f as w,t as ht,s as vt}from"../chunks/r0JawsZc.js";import{i as A}from"../chunks/B8XegpSE.js";import{p as x,b as D}from"../chunks/Bu1aqm5j.js";function I(s,t,a){var n;j&&(n=W,G());var o=new mt(s);H(()=>{var e=t()??null;if(j){var r=J(n),c=r===U,P=e!==null;if(c!==P){var g=K();Q(g),o.anchor=g,k(!1),o.ensure(e,e&&(f=>a(f,e))),k(!0);return}}o.ensure(e,e&&(f=>a(f,e)))},q)}function gt(s){return class extends yt{constructor(t){super({component:s,...t})}}}class yt{#e;#t;constructor(t){var a=new Map,n=(e,r)=>{var c=tt(r,!1,!1);return a.set(e,c),c};const o=new Proxy({...t.props||{},$$events:{}},{get(e,r){return u(a.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===X?!0:(u(a.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,c){return R(a.get(r)??n(r,c),c),Reflect.set(e,r,c)}});this.#t=(t.hydrate?dt:lt)(t.component,{target:t.target,anchor:t.anchor,props:o,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&Z(),this.#e=o.$$events;for(const e of Object.keys(this.#t))e==="$set"||e==="$destroy"||e==="$on"||$(this,e,{get(){return this.#t[e]},set(r){this.#t[e]=r},enumerable:!0});this.#t.$set=e=>{Object.assign(o,e)},this.#t.$destroy=()=>{ft(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const n=(...o)=>a.call(this,...o);return this.#e[t].push(n),()=>{this.#e[t]=this.#e[t].filter(o=>o!==n)}}$destroy(){this.#t.$destroy()}}const It={};var Et=w('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),bt=w("<!> <!>",1);function Rt(s,t){et(t,!0);let a=x(t,"components",23,()=>[]),n=x(t,"data_0",3,null),o=x(t,"data_1",3,null);rt(()=>t.stores.page.set(t.page)),at(()=>{t.stores,t.page,t.constructors,a(),t.form,n(),o(),t.stores.page.notify()});let e=O(!1),r=O(!1),c=O(null);st(()=>{const i=t.stores.page.subscribe(()=>{u(e)&&(R(r,!0),ot().then(()=>{R(c,document.title||"untitled page",!0)}))});return R(e,!0),i});const P=p(()=>t.constructors[1]);var g=bt(),f=b(g);{var C=i=>{const m=p(()=>t.constructors[0]);var d=T(),y=b(d);I(y,()=>u(m),(l,h)=>{D(h(l,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(E,Ot)=>{var L=T(),N=b(L);I(N,()=>u(P),(Y,F)=>{D(F(Y,{get data(){return o()},get form(){return t.form},get params(){return t.page.params}}),z=>a()[1]=z,()=>a()?.[1])}),v(E,L)},$$slots:{default:!0}}),E=>a()[0]=E,()=>a()?.[0])}),v(i,d)},S=i=>{const m=p(()=>t.constructors[0]);var d=T(),y=b(d);I(y,()=>u(m),(l,h)=>{D(h(l,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),E=>a()[0]=E,()=>a()?.[0])}),v(i,d)};A(f,i=>{t.constructors[1]?i(C):i(S,-1)})}var B=nt(f,2);{var M=i=>{var m=Et(),d=ct(m);{var y=l=>{var h=ht();_t(()=>vt(h,u(c))),v(l,h)};A(d,l=>{u(r)&&l(y)})}ut(m),v(i,m)};A(B,i=>{u(e)&&i(M)})}v(s,g),it()}const Lt=gt(Rt),jt=[()=>_(()=>import("../nodes/0.5I21KR7K.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),()=>_(()=>import("../nodes/1.BDCm0X_6.js"),__vite__mapDeps([8,1,2,9,10,5,6,11]),import.meta.url),()=>_(()=>import("../nodes/2.CKjSEOom.js"),__vite__mapDeps([12,1,2,9,13,3,4,14,15,10,5,16,17,18,19,20,21]),import.meta.url),()=>_(()=>import("../nodes/3.3yohCM25.js"),__vite__mapDeps([22,1,2,9,10,13,3,4,14,15,17,19,23]),import.meta.url),()=>_(()=>import("../nodes/4.pRflZhvu.js"),__vite__mapDeps([24,1,2,9,13,3,4,14,15,10,5,25,16,17,18,19,20,26]),import.meta.url),()=>_(()=>import("../nodes/5.Co1ngwGh.js"),__vite__mapDeps([27,1,2,9,10,13,3,4,14,15,25,5,16,28,29,30]),import.meta.url),()=>_(()=>import("../nodes/6.CUnGGKik.js"),__vite__mapDeps([31,1,2,9,13,3,4,14,15,10,5,16,17,18,19,20,32]),import.meta.url),()=>_(()=>import("../nodes/7.CgvPBG9m.js"),__vite__mapDeps([33,34,1,2,9,10,13,3,4,14,15,5,6,18,19,28,29,35]),import.meta.url)],kt=[],wt={"/":[2],"/config":[3],"/project":[4],"/session/[id]":[5],"/terminals":[6],"/terminals/[id]":[7]},V={handleError:(({error:s})=>{console.error(s)}),reroute:(()=>{}),transport:{}},Pt=Object.fromEntries(Object.entries(V.transport).map(([s,t])=>[s,t.decode])),Vt=Object.fromEntries(Object.entries(V.transport).map(([s,t])=>[s,t.encode])),Ct=!1,St=(s,t)=>Pt[s](t);export{St as decode,Pt as decoders,wt as dictionary,Vt as encoders,Ct as hash,V as hooks,It as matchers,jt as nodes,Lt as root,kt as server_loads};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.ejabgzDQ.js","../chunks/r0JawsZc.js","../chunks/CZHsSL_X.js","../chunks/CQjSATpv.js","../assets/markdown.Dc-OSJWY.css","../chunks/BN1NjBrw.js","../chunks/CDVSripB.js","../assets/0.BhZOCxO4.css","../nodes/1.BFK7Ubrr.js","../chunks/B8XegpSE.js","../chunks/BOYo8yTr.js","../assets/1.BYutk3aU.css","../nodes/2.DV3saFiY.js","../chunks/B5NAKyil.js","../chunks/Bu1aqm5j.js","../assets/Phone.FQEfwCX2.css","../chunks/UJOiqIYE.js","../chunks/DSU1n5N_.js","../chunks/CSoRdFvv.js","../chunks/DjsDGxCa.js","../chunks/BLszSzTT.js","../assets/2.CAShZ7lQ.css","../nodes/3.3yohCM25.js","../assets/3.DGDHCVnW.css","../nodes/4.D6NIf10D.js","../chunks/CF4lQ45j.js","../assets/4.BFUut--w.css","../nodes/5.g3R-QfIW.js","../chunks/DVkn4r72.js","../assets/ChatView.CwWbzIL-.css","../assets/5.BTOx7yt7.css","../nodes/6.DSpd_nYK.js","../assets/6.eZGZN-BF.css","../nodes/7.F9WBFTz2.js","../chunks/PPVm8Dsz.js","../assets/7.DwS5ZHBh.css"])))=>i.map(i=>d[i]);
2
+ import{_}from"../chunks/PPVm8Dsz.js";import{h as j,k as G,b as H,l as q,m as J,n as K,e as Q,d as k,ab as U,i as W,y as R,Y as X,z as u,ac as Z,ad as $,ae as tt,p as et,_ as rt,a0 as at,u as st,aa as ot,f as b,s as nt,w as it,o as O,c as ct,r as ut,t as _t,B as p}from"../chunks/CZHsSL_X.js";import{B as mt,j as dt,m as lt,u as ft,a as v,c as T,f as w,t as ht,s as vt}from"../chunks/r0JawsZc.js";import{i as A}from"../chunks/B8XegpSE.js";import{p as x,b as D}from"../chunks/Bu1aqm5j.js";function I(s,t,a){var n;j&&(n=W,G());var o=new mt(s);H(()=>{var e=t()??null;if(j){var r=J(n),c=r===U,P=e!==null;if(c!==P){var g=K();Q(g),o.anchor=g,k(!1),o.ensure(e,e&&(f=>a(f,e))),k(!0);return}}o.ensure(e,e&&(f=>a(f,e)))},q)}function gt(s){return class extends yt{constructor(t){super({component:s,...t})}}}class yt{#e;#t;constructor(t){var a=new Map,n=(e,r)=>{var c=tt(r,!1,!1);return a.set(e,c),c};const o=new Proxy({...t.props||{},$$events:{}},{get(e,r){return u(a.get(r)??n(r,Reflect.get(e,r)))},has(e,r){return r===X?!0:(u(a.get(r)??n(r,Reflect.get(e,r))),Reflect.has(e,r))},set(e,r,c){return R(a.get(r)??n(r,c),c),Reflect.set(e,r,c)}});this.#t=(t.hydrate?dt:lt)(t.component,{target:t.target,anchor:t.anchor,props:o,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError}),(!t?.props?.$$host||t.sync===!1)&&Z(),this.#e=o.$$events;for(const e of Object.keys(this.#t))e==="$set"||e==="$destroy"||e==="$on"||$(this,e,{get(){return this.#t[e]},set(r){this.#t[e]=r},enumerable:!0});this.#t.$set=e=>{Object.assign(o,e)},this.#t.$destroy=()=>{ft(this.#t)}}$set(t){this.#t.$set(t)}$on(t,a){this.#e[t]=this.#e[t]||[];const n=(...o)=>a.call(this,...o);return this.#e[t].push(n),()=>{this.#e[t]=this.#e[t].filter(o=>o!==n)}}$destroy(){this.#t.$destroy()}}const It={};var Et=w('<div id="svelte-announcer" aria-live="assertive" aria-atomic="true" style="position: absolute; left: 0; top: 0; clip: rect(0 0 0 0); clip-path: inset(50%); overflow: hidden; white-space: nowrap; width: 1px; height: 1px"><!></div>'),bt=w("<!> <!>",1);function Rt(s,t){et(t,!0);let a=x(t,"components",23,()=>[]),n=x(t,"data_0",3,null),o=x(t,"data_1",3,null);rt(()=>t.stores.page.set(t.page)),at(()=>{t.stores,t.page,t.constructors,a(),t.form,n(),o(),t.stores.page.notify()});let e=O(!1),r=O(!1),c=O(null);st(()=>{const i=t.stores.page.subscribe(()=>{u(e)&&(R(r,!0),ot().then(()=>{R(c,document.title||"untitled page",!0)}))});return R(e,!0),i});const P=p(()=>t.constructors[1]);var g=bt(),f=b(g);{var C=i=>{const m=p(()=>t.constructors[0]);var d=T(),y=b(d);I(y,()=>u(m),(l,h)=>{D(h(l,{get data(){return n()},get form(){return t.form},get params(){return t.page.params},children:(E,Ot)=>{var L=T(),N=b(L);I(N,()=>u(P),(Y,F)=>{D(F(Y,{get data(){return o()},get form(){return t.form},get params(){return t.page.params}}),z=>a()[1]=z,()=>a()?.[1])}),v(E,L)},$$slots:{default:!0}}),E=>a()[0]=E,()=>a()?.[0])}),v(i,d)},S=i=>{const m=p(()=>t.constructors[0]);var d=T(),y=b(d);I(y,()=>u(m),(l,h)=>{D(h(l,{get data(){return n()},get form(){return t.form},get params(){return t.page.params}}),E=>a()[0]=E,()=>a()?.[0])}),v(i,d)};A(f,i=>{t.constructors[1]?i(C):i(S,-1)})}var B=nt(f,2);{var M=i=>{var m=Et(),d=ct(m);{var y=l=>{var h=ht();_t(()=>vt(h,u(c))),v(l,h)};A(d,l=>{u(r)&&l(y)})}ut(m),v(i,m)};A(B,i=>{u(e)&&i(M)})}v(s,g),it()}const Lt=gt(Rt),jt=[()=>_(()=>import("../nodes/0.ejabgzDQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7]),import.meta.url),()=>_(()=>import("../nodes/1.BFK7Ubrr.js"),__vite__mapDeps([8,1,2,9,10,5,6,11]),import.meta.url),()=>_(()=>import("../nodes/2.DV3saFiY.js"),__vite__mapDeps([12,1,2,9,13,3,4,14,15,10,5,16,17,18,19,20,21]),import.meta.url),()=>_(()=>import("../nodes/3.3yohCM25.js"),__vite__mapDeps([22,1,2,9,10,13,3,4,14,15,17,19,23]),import.meta.url),()=>_(()=>import("../nodes/4.D6NIf10D.js"),__vite__mapDeps([24,1,2,9,13,3,4,14,15,10,5,25,16,17,18,19,20,26]),import.meta.url),()=>_(()=>import("../nodes/5.g3R-QfIW.js"),__vite__mapDeps([27,1,2,9,10,13,3,4,14,15,25,5,16,28,29,30]),import.meta.url),()=>_(()=>import("../nodes/6.DSpd_nYK.js"),__vite__mapDeps([31,1,2,9,13,3,4,14,15,10,5,16,17,18,19,20,32]),import.meta.url),()=>_(()=>import("../nodes/7.F9WBFTz2.js"),__vite__mapDeps([33,34,1,2,9,10,13,3,4,14,15,5,6,18,19,28,29,35]),import.meta.url)],kt=[],wt={"/":[2],"/config":[3],"/project":[4],"/session/[id]":[5],"/terminals":[6],"/terminals/[id]":[7]},V={handleError:(({error:s})=>{console.error(s)}),reroute:(()=>{}),transport:{}},Pt=Object.fromEntries(Object.entries(V.transport).map(([s,t])=>[s,t.decode])),Vt=Object.fromEntries(Object.entries(V.transport).map(([s,t])=>[s,t.encode])),Ct=!1,St=(s,t)=>Pt[s](t);export{St as decode,Pt as decoders,wt as dictionary,Vt as encoders,Ct as hash,V as hooks,It as matchers,jt as nodes,Lt as root,kt as server_loads};
@@ -0,0 +1 @@
1
+ import{l as o,a as r}from"../chunks/BN1NjBrw.js";export{o as load_css,r as start};
@@ -1 +1 @@
1
- import{a as j,f as A,s as z,d as H,b as M,g as V,h as W}from"../chunks/r0JawsZc.js";import{t as C,s as i,c as t,r as e,p as I,u as O,w as D,y as f,z as L,o as P}from"../chunks/CZHsSL_X.js";import{a as v,s as T}from"../chunks/CQjSATpv.js";import{g as E}from"../chunks/CrVuYlkB.js";import{p as F}from"../chunks/CNmDAqoQ.js";var G=A('<div><span class="status-dot"></span> <span> </span></div>');function J(u,c){function s(a){switch(a){case"degraded":return"Degraded";case"error":return"Offline";case"healthy":return"Online";default:return"Checking"}}function p(a){switch(a){case"degraded":return"degraded";case"error":return"offline";case"healthy":return"online";default:return""}}var n=G(),r=i(t(n),2),d=t(r,!0);e(r),e(n),C((a,h)=>{v(n,1,`status-badge ${a??""}`),z(d,h)},[()=>p(c.status),()=>s(c.status)]),j(u,n)}var K=A('<div class="app"><header class="header"><div class="header-content"><a href="/" class="logo"><img src="/app-icon.png" alt="Shooter" class="logo-icon" width="24" height="24"/> <span class="logo-text">Shooter</span></a> <div class="nav-right svelte-12qhfyh"><!> <button aria-label="Settings"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></button></div></div></header> <div class="content-area svelte-12qhfyh"><!></div> <nav class="bottom-tabs svelte-12qhfyh"><div class="bottom-tabs-inner svelte-12qhfyh"><a href="/"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path></svg> <span>Projects</span></a> <a href="/terminals"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg> <span>Terminals</span></a></div></nav></div>');function Y(u,c){I(c,!0);const s=()=>W(F,"$page",p),[p,n]=V();let r=P("unknown");O(()=>{d();const o=setInterval(()=>{d()},3e4);return()=>{clearInterval(o)}});async function d(){try{const o=await fetch("/api/health");if(!o.ok){f(r,"error");return}const l=await o.json();f(r,l.status==="healthy"||l.status==="degraded"||l.status==="error"?l.status:"unknown",!0)}catch{f(r,"error")}}var a=K(),h=t(a),m=t(h),y=i(t(m),2),k=t(y);J(k,{get status(){return L(r)}});var b=i(k,2);e(y),e(m),e(h);var g=i(h,2),$=t(g);T($,()=>c.children),e(g);var w=i(g,2),_=t(w),x=t(_);let S;var B=i(x,2);let q;e(_),e(w),e(a),C((o,l)=>{v(b,1,`btn-gear ${s().url.pathname==="/config"?"btn-gear-active":""}`,"svelte-12qhfyh"),S=v(x,1,"tab-item svelte-12qhfyh",null,S,o),q=v(B,1,"tab-item svelte-12qhfyh",null,q,l)},[()=>({active:s().url.pathname==="/"||s().url.pathname.startsWith("/project")||s().url.pathname.startsWith("/session")}),()=>({active:s().url.pathname.startsWith("/terminals")})]),M("click",b,()=>E("/config")),j(u,a),D(),n()}H(["click"]);export{Y as component};
1
+ import{a as j,f as A,s as z,d as H,b as M,g as V,h as W}from"../chunks/r0JawsZc.js";import{t as C,s as i,c as t,r as e,p as I,u as O,w as D,y as f,z as L,o as P}from"../chunks/CZHsSL_X.js";import{a as v,s as T}from"../chunks/CQjSATpv.js";import{g as E}from"../chunks/BN1NjBrw.js";import{p as F}from"../chunks/CDVSripB.js";var G=A('<div><span class="status-dot"></span> <span> </span></div>');function J(u,c){function s(a){switch(a){case"degraded":return"Degraded";case"error":return"Offline";case"healthy":return"Online";default:return"Checking"}}function p(a){switch(a){case"degraded":return"degraded";case"error":return"offline";case"healthy":return"online";default:return""}}var n=G(),r=i(t(n),2),d=t(r,!0);e(r),e(n),C((a,h)=>{v(n,1,`status-badge ${a??""}`),z(d,h)},[()=>p(c.status),()=>s(c.status)]),j(u,n)}var K=A('<div class="app"><header class="header"><div class="header-content"><a href="/" class="logo"><img src="/app-icon.png" alt="Shooter" class="logo-icon" width="24" height="24"/> <span class="logo-text">Shooter</span></a> <div class="nav-right svelte-12qhfyh"><!> <button aria-label="Settings"><svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"></circle><path d="M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06A1.65 1.65 0 0 0 4.68 15a1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06A1.65 1.65 0 0 0 9 4.68a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06A1.65 1.65 0 0 0 19.4 9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"></path></svg></button></div></div></header> <div class="content-area svelte-12qhfyh"><!></div> <nav class="bottom-tabs svelte-12qhfyh"><div class="bottom-tabs-inner svelte-12qhfyh"><a href="/"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"></path></svg> <span>Projects</span></a> <a href="/terminals"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><polyline points="4 17 10 11 4 5"></polyline><line x1="12" y1="19" x2="20" y2="19"></line></svg> <span>Terminals</span></a></div></nav></div>');function Y(u,c){I(c,!0);const s=()=>W(F,"$page",p),[p,n]=V();let r=P("unknown");O(()=>{d();const o=setInterval(()=>{d()},3e4);return()=>{clearInterval(o)}});async function d(){try{const o=await fetch("/api/health");if(!o.ok){f(r,"error");return}const l=await o.json();f(r,l.status==="healthy"||l.status==="degraded"||l.status==="error"?l.status:"unknown",!0)}catch{f(r,"error")}}var a=K(),h=t(a),m=t(h),y=i(t(m),2),k=t(y);J(k,{get status(){return L(r)}});var b=i(k,2);e(y),e(m),e(h);var g=i(h,2),$=t(g);T($,()=>c.children),e(g);var w=i(g,2),_=t(w),x=t(_);let S;var B=i(x,2);let q;e(_),e(w),e(a),C((o,l)=>{v(b,1,`btn-gear ${s().url.pathname==="/config"?"btn-gear-active":""}`,"svelte-12qhfyh"),S=v(x,1,"tab-item svelte-12qhfyh",null,S,o),q=v(B,1,"tab-item svelte-12qhfyh",null,q,l)},[()=>({active:s().url.pathname==="/"||s().url.pathname.startsWith("/project")||s().url.pathname.startsWith("/session")}),()=>({active:s().url.pathname.startsWith("/terminals")})]),M("click",b,()=>E("/config")),j(u,a),D(),n()}H(["click"]);export{Y as component};
@@ -1 +1 @@
1
- import{d as P,b as x,a as i,g as V,f as q,s as w,h as C,t as d}from"../chunks/r0JawsZc.js";import{F as D,_ as J,a0 as k,I as K,a1 as j,a2 as L,z as S,a3 as M,V as N,a4 as O,p as Q,t as y,w as R,c as f,s as g,x as U,$ as W,r as v}from"../chunks/CZHsSL_X.js";import{i as $}from"../chunks/B8XegpSE.js";import{h as X}from"../chunks/BOYo8yTr.js";import{g as Y}from"../chunks/CrVuYlkB.js";import{p as Z}from"../chunks/CNmDAqoQ.js";function ee(n=!1){const s=D,t=s.l.u;if(!t)return;let p=()=>M(s.s);if(n){let l=0,a={};const m=N(()=>{let c=!1;const u=s.s;for(const o in u)u[o]!==a[o]&&(a[o]=u[o],c=!0);return c&&l++,l});p=()=>S(m)}t.b.length&&J(()=>{G(s,p),j(t.b)}),k(()=>{const l=K(()=>t.m.map(L));return()=>{for(const a of l)typeof a=="function"&&a()}}),t.a.length&&k(()=>{G(s,p),j(t.a)})}function G(n,s){if(n.l.s)for(const t of n.l.s)S(t);s()}O();var te=q('<main class="error-page svelte-1j96wlh"><div class="error-content svelte-1j96wlh"><div class="error-code svelte-1j96wlh"> </div> <h1 class="error-title svelte-1j96wlh"><!></h1> <p class="error-message svelte-1j96wlh"><!></p> <div class="error-actions svelte-1j96wlh"><button class="error-btn svelte-1j96wlh">Go Home</button> <button class="error-btn error-btn-secondary svelte-1j96wlh">Go Back</button></div></div></main>');function ce(n,s){Q(s,!1);const t=()=>C(Z,"$page",p),[p,l]=V();ee();var a=te();X("1j96wlh",e=>{U(()=>{W.title="Error - Shooter"})});var m=f(a),c=f(m),u=f(c,!0);v(c);var o=g(c,2),T=f(o);{var z=e=>{var r=d("Page not found");i(e,r)},A=e=>{var r=d("Something went wrong");i(e,r)};$(T,e=>{t().status===404?e(z):e(A,-1)})}v(o);var h=g(o,2),B=f(h);{var E=e=>{var r=d();y(()=>w(r,t().error.message)),i(e,r)},F=e=>{var r=d("The page you're looking for doesn't exist or has been moved.");i(e,r)},H=e=>{var r=d("An unexpected error occurred. Try refreshing or going back.");i(e,r)};$(B,e=>{t().error?.message?e(E):t().status===404?e(F,1):e(H,-1)})}v(h);var _=g(h,2),b=f(_),I=g(b,2);v(_),v(m),v(a),y(()=>w(u,t().status)),x("click",b,()=>Y("/")),x("click",I,()=>{history.back()}),i(n,a),R(),l()}P(["click"]);export{ce as component};
1
+ import{d as P,b as x,a as i,g as V,f as q,s as w,h as C,t as d}from"../chunks/r0JawsZc.js";import{F as D,_ as J,a0 as k,I as K,a1 as j,a2 as L,z as S,a3 as M,V as N,a4 as O,p as Q,t as y,w as R,c as f,s as g,x as U,$ as W,r as v}from"../chunks/CZHsSL_X.js";import{i as $}from"../chunks/B8XegpSE.js";import{h as X}from"../chunks/BOYo8yTr.js";import{g as Y}from"../chunks/BN1NjBrw.js";import{p as Z}from"../chunks/CDVSripB.js";function ee(n=!1){const s=D,t=s.l.u;if(!t)return;let p=()=>M(s.s);if(n){let l=0,a={};const m=N(()=>{let c=!1;const u=s.s;for(const o in u)u[o]!==a[o]&&(a[o]=u[o],c=!0);return c&&l++,l});p=()=>S(m)}t.b.length&&J(()=>{G(s,p),j(t.b)}),k(()=>{const l=K(()=>t.m.map(L));return()=>{for(const a of l)typeof a=="function"&&a()}}),t.a.length&&k(()=>{G(s,p),j(t.a)})}function G(n,s){if(n.l.s)for(const t of n.l.s)S(t);s()}O();var te=q('<main class="error-page svelte-1j96wlh"><div class="error-content svelte-1j96wlh"><div class="error-code svelte-1j96wlh"> </div> <h1 class="error-title svelte-1j96wlh"><!></h1> <p class="error-message svelte-1j96wlh"><!></p> <div class="error-actions svelte-1j96wlh"><button class="error-btn svelte-1j96wlh">Go Home</button> <button class="error-btn error-btn-secondary svelte-1j96wlh">Go Back</button></div></div></main>');function ce(n,s){Q(s,!1);const t=()=>C(Z,"$page",p),[p,l]=V();ee();var a=te();X("1j96wlh",e=>{U(()=>{W.title="Error - Shooter"})});var m=f(a),c=f(m),u=f(c,!0);v(c);var o=g(c,2),T=f(o);{var z=e=>{var r=d("Page not found");i(e,r)},A=e=>{var r=d("Something went wrong");i(e,r)};$(T,e=>{t().status===404?e(z):e(A,-1)})}v(o);var h=g(o,2),B=f(h);{var E=e=>{var r=d();y(()=>w(r,t().error.message)),i(e,r)},F=e=>{var r=d("The page you're looking for doesn't exist or has been moved.");i(e,r)},H=e=>{var r=d("An unexpected error occurred. Try refreshing or going back.");i(e,r)};$(B,e=>{t().error?.message?e(E):t().status===404?e(F,1):e(H,-1)})}v(h);var _=g(h,2),b=f(_),I=g(b,2);v(_),v(m),v(a),y(()=>w(u,t().status)),x("click",b,()=>Y("/")),x("click",I,()=>{history.back()}),i(n,a),R(),l()}P(["click"]);export{ce as component};
@@ -1 +1 @@
1
- import{a as f,f as u,s as S}from"../chunks/r0JawsZc.js";import{p as ue,o as g,q as pe,u as he,v as me,w as ge,x as _e,y as r,z as s,$ as ye,c as o,s as d,f as F,A as Ce,r as t,B as q,t as xe}from"../chunks/CZHsSL_X.js";import{i as E}from"../chunks/B8XegpSE.js";import{B as L,a as Se,e as J,i as be,P as Pe,s as $e}from"../chunks/B5NAKyil.js";import{h as je}from"../chunks/BOYo8yTr.js";import{g as Ie}from"../chunks/CrVuYlkB.js";import{g as ke,s as we,c as Ae,S as Ee}from"../chunks/UJOiqIYE.js";import{i as Le}from"../chunks/DSU1n5N_.js";import{E as D}from"../chunks/CSoRdFvv.js";import{I as Me}from"../chunks/DjsDGxCa.js";import"../chunks/CQjSATpv.js";import{f as Te}from"../chunks/BLszSzTT.js";var Be=u('<meta name="description" content="Claude Code sessions across all projects"/>'),Re=u("<!> Refresh",1),Ke=u('<div class="loading-container"></div>'),Ne=u('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <div class="session-card-subtitle"> </div></div> <!></div> <div class="session-stats"><span><strong> </strong> </span></div></a>'),Oe=u('<div style="text-align: center; padding: 1rem;"><!></div>'),ze=u('<div class="projects-container svelte-1uha8ag"></div> <!>',1),Fe=u('<main class="main"><div class="page-header svelte-1uha8ag"><div class="page-header-content svelte-1uha8ag"><div><h1 class="page-title svelte-1uha8ag">Projects</h1> <p class="page-description svelte-1uha8ag">Claude Code sessions across all projects</p></div> <div class="page-actions svelte-1uha8ag"><!></div></div></div> <!> <!></main>');function es(G,H){ue(H,!0);const V=1e4,M=20;let n=g(pe([])),p=g(!1),b=!1,h=g(null),C=null,_=g(null),T=g(!1),P=g(0);he(()=>{Z();const e=ke("shooter_projects");e&&(r(n,e,!0),r(p,!1)),x(),C=setInterval(()=>{s(h)?.apiKey&&s(P)<=M&&x()},V)}),me(()=>{C&&(clearInterval(C),C=null)});function Z(){try{const e=localStorage.getItem("shooter_config");if(e){const a=JSON.parse(e);Le(a)?r(h,a,!0):(localStorage.removeItem("shooter_config"),r(h,null))}}catch{}}async function x(e=!1,a=!1){if(!s(h)?.apiKey||b)return;b=!0,s(n).length===0&&r(p,!0);const l=e?s(P):0;try{const y=await fetch(`${a?"/api/sessions?refresh=true&":"/api/sessions?"}limit=${M}&offset=${l}`,{headers:{Authorization:`Bearer ${s(h).apiKey}`}});if(!y.ok){r(_,`Failed to load projects (HTTP ${y.status})`);return}r(_,null);const i=await y.json();e?r(n,[...s(n),...i.projects],!0):r(n,i.projects,!0),r(P,s(n).length,!0),r(T,i.total!==void 0?s(n).length<i.total:!1,!0),we("shooter_projects",s(n))}catch(v){r(_,"Failed to load projects"),console.error("Failed to fetch sessions:",v)}finally{r(p,!1),b=!1}}async function Q(){await x(!0)}async function U(){r(p,!0),Ae("shooter_projects"),await x(!1,!0)}function W(){Ie("/config")}function X(){return s(n).reduce((e,a)=>e+a.sessionCount,0)}var $=Fe();je("1uha8ag",e=>{var a=Be();_e(()=>{ye.title="Projects - Shooter"}),f(e,a)});var j=o($),B=o(j),R=d(o(B),2),Y=o(R);L(Y,{classes:"btn-secondary",onclick:U,get disabled(){return s(p)},children:(e,a)=>{var l=Re(),v=F(l);Me(v,{name:"refresh",size:14}),Ce(),f(e,l)},$$slots:{default:!0}}),t(R),t(B),t(j);var K=d(j,2);{var ee=e=>{Se(e,{get text(){return s(_)},classes:"banner-error"})};E(K,e=>{s(_)&&e(ee)})}var se=d(K,2);{var ae=e=>{var a=Ke();J(a,20,()=>Array(5),be,(l,v)=>{Ee(l,{classes:"shimmer-card"})}),t(a),f(e,a)},te=e=>{D(e,{icon:"settings",title:"Configuration Required",description:"Set up your API credentials to start tracking sessions",children:(a,l)=>{L(a,{classes:"btn-primary",onclick:W,text:"Configure Settings"})}})},re=e=>{D(e,{icon:"bell",title:"No sessions yet",description:"Claude Code sessions will appear here once JSONL files are found"})},oe=q(()=>X()===0),ie=e=>{var a=ze(),l=F(a);J(l,21,()=>s(n),i=>i.id,(i,c)=>{var m=Ne(),I=o(m),k=o(I),w=o(k),ne=o(w,!0);t(w);var N=d(w,2),le=o(N,!0);t(N),t(k);var ce=d(k,2);{let fe=q(()=>Te(s(c).lastModified));Pe(ce,{get text(){return`Last updated ${s(fe)??""}`},classes:"pill-session-time"})}t(I);var O=d(I,2),z=o(O),A=o(z),de=o(A,!0);t(A);var ve=d(A);t(z),t(O),t(m),xe(()=>{$e(m,"href",`/project?id=${s(c).id??""}`),S(ne,s(c).name),S(le,s(c).fullPath),S(de,s(c).sessionCount),S(ve,` ${s(c).sessionCount===1?"session":"sessions"}`)}),f(i,m)}),t(l);var v=d(l,2);{var y=i=>{var c=Oe(),m=o(c);L(m,{classes:"btn-secondary",onclick:Q,text:"Load More"}),t(c),f(i,c)};E(v,i=>{s(T)&&i(y)})}f(e,a)};E(se,e=>{s(p)&&s(n).length===0?e(ae):s(h)?.apiKey?s(oe)?e(re,2):e(ie,-1):e(te,1)})}t($),f(G,$),ge()}export{es as component};
1
+ import{a as f,f as u,s as S}from"../chunks/r0JawsZc.js";import{p as ue,o as g,q as pe,u as he,v as me,w as ge,x as _e,y as r,z as s,$ as ye,c as o,s as d,f as F,A as Ce,r as t,B as q,t as xe}from"../chunks/CZHsSL_X.js";import{i as E}from"../chunks/B8XegpSE.js";import{B as L,a as Se,e as J,i as be,P as Pe,s as $e}from"../chunks/B5NAKyil.js";import{h as je}from"../chunks/BOYo8yTr.js";import{g as Ie}from"../chunks/BN1NjBrw.js";import{g as ke,s as we,c as Ae,S as Ee}from"../chunks/UJOiqIYE.js";import{i as Le}from"../chunks/DSU1n5N_.js";import{E as D}from"../chunks/CSoRdFvv.js";import{I as Me}from"../chunks/DjsDGxCa.js";import"../chunks/CQjSATpv.js";import{f as Te}from"../chunks/BLszSzTT.js";var Be=u('<meta name="description" content="Claude Code sessions across all projects"/>'),Re=u("<!> Refresh",1),Ke=u('<div class="loading-container"></div>'),Ne=u('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <div class="session-card-subtitle"> </div></div> <!></div> <div class="session-stats"><span><strong> </strong> </span></div></a>'),Oe=u('<div style="text-align: center; padding: 1rem;"><!></div>'),ze=u('<div class="projects-container svelte-1uha8ag"></div> <!>',1),Fe=u('<main class="main"><div class="page-header svelte-1uha8ag"><div class="page-header-content svelte-1uha8ag"><div><h1 class="page-title svelte-1uha8ag">Projects</h1> <p class="page-description svelte-1uha8ag">Claude Code sessions across all projects</p></div> <div class="page-actions svelte-1uha8ag"><!></div></div></div> <!> <!></main>');function es(G,H){ue(H,!0);const V=1e4,M=20;let n=g(pe([])),p=g(!1),b=!1,h=g(null),C=null,_=g(null),T=g(!1),P=g(0);he(()=>{Z();const e=ke("shooter_projects");e&&(r(n,e,!0),r(p,!1)),x(),C=setInterval(()=>{s(h)?.apiKey&&s(P)<=M&&x()},V)}),me(()=>{C&&(clearInterval(C),C=null)});function Z(){try{const e=localStorage.getItem("shooter_config");if(e){const a=JSON.parse(e);Le(a)?r(h,a,!0):(localStorage.removeItem("shooter_config"),r(h,null))}}catch{}}async function x(e=!1,a=!1){if(!s(h)?.apiKey||b)return;b=!0,s(n).length===0&&r(p,!0);const l=e?s(P):0;try{const y=await fetch(`${a?"/api/sessions?refresh=true&":"/api/sessions?"}limit=${M}&offset=${l}`,{headers:{Authorization:`Bearer ${s(h).apiKey}`}});if(!y.ok){r(_,`Failed to load projects (HTTP ${y.status})`);return}r(_,null);const i=await y.json();e?r(n,[...s(n),...i.projects],!0):r(n,i.projects,!0),r(P,s(n).length,!0),r(T,i.total!==void 0?s(n).length<i.total:!1,!0),we("shooter_projects",s(n))}catch(v){r(_,"Failed to load projects"),console.error("Failed to fetch sessions:",v)}finally{r(p,!1),b=!1}}async function Q(){await x(!0)}async function U(){r(p,!0),Ae("shooter_projects"),await x(!1,!0)}function W(){Ie("/config")}function X(){return s(n).reduce((e,a)=>e+a.sessionCount,0)}var $=Fe();je("1uha8ag",e=>{var a=Be();_e(()=>{ye.title="Projects - Shooter"}),f(e,a)});var j=o($),B=o(j),R=d(o(B),2),Y=o(R);L(Y,{classes:"btn-secondary",onclick:U,get disabled(){return s(p)},children:(e,a)=>{var l=Re(),v=F(l);Me(v,{name:"refresh",size:14}),Ce(),f(e,l)},$$slots:{default:!0}}),t(R),t(B),t(j);var K=d(j,2);{var ee=e=>{Se(e,{get text(){return s(_)},classes:"banner-error"})};E(K,e=>{s(_)&&e(ee)})}var se=d(K,2);{var ae=e=>{var a=Ke();J(a,20,()=>Array(5),be,(l,v)=>{Ee(l,{classes:"shimmer-card"})}),t(a),f(e,a)},te=e=>{D(e,{icon:"settings",title:"Configuration Required",description:"Set up your API credentials to start tracking sessions",children:(a,l)=>{L(a,{classes:"btn-primary",onclick:W,text:"Configure Settings"})}})},re=e=>{D(e,{icon:"bell",title:"No sessions yet",description:"Claude Code sessions will appear here once JSONL files are found"})},oe=q(()=>X()===0),ie=e=>{var a=ze(),l=F(a);J(l,21,()=>s(n),i=>i.id,(i,c)=>{var m=Ne(),I=o(m),k=o(I),w=o(k),ne=o(w,!0);t(w);var N=d(w,2),le=o(N,!0);t(N),t(k);var ce=d(k,2);{let fe=q(()=>Te(s(c).lastModified));Pe(ce,{get text(){return`Last updated ${s(fe)??""}`},classes:"pill-session-time"})}t(I);var O=d(I,2),z=o(O),A=o(z),de=o(A,!0);t(A);var ve=d(A);t(z),t(O),t(m),xe(()=>{$e(m,"href",`/project?id=${s(c).id??""}`),S(ne,s(c).name),S(le,s(c).fullPath),S(de,s(c).sessionCount),S(ve,` ${s(c).sessionCount===1?"session":"sessions"}`)}),f(i,m)}),t(l);var v=d(l,2);{var y=i=>{var c=Oe(),m=o(c);L(m,{classes:"btn-secondary",onclick:Q,text:"Load More"}),t(c),f(i,c)};E(v,i=>{s(T)&&i(y)})}f(e,a)};E(se,e=>{s(p)&&s(n).length===0?e(ae):s(h)?.apiKey?s(oe)?e(re,2):e(ie,-1):e(te,1)})}t($),f(G,$),ge()}export{es as component};
@@ -1 +1 @@
1
- import{a as u,f as p,s as b}from"../chunks/r0JawsZc.js";import{p as Qe,o as w,q as We,u as Xe,v as Ye,w as et,D as tt,z as e,y as c,$ as at,c as n,s as l,r as o,B as f,f as L,A as Q,t as W}from"../chunks/CZHsSL_X.js";import{i as j}from"../chunks/B8XegpSE.js";import{a as st,e as de,i as rt,B as N,P as D,s as ot}from"../chunks/B5NAKyil.js";import{h as nt}from"../chunks/BOYo8yTr.js";import{g as it}from"../chunks/CrVuYlkB.js";import{p as ct}from"../chunks/D3Vl-Qqr.js";import{g as lt,s as dt,S as ve,c as vt}from"../chunks/UJOiqIYE.js";import{i as ut}from"../chunks/DSU1n5N_.js";import{E as ue}from"../chunks/CSoRdFvv.js";import{I as ft}from"../chunks/DjsDGxCa.js";import"../chunks/CQjSATpv.js";import{f as pt}from"../chunks/BLszSzTT.js";var mt=p('<meta name="description" content="Project sessions sorted by latest update"/>'),ht=p('<div class="loading-container"><!> <!></div>'),_t=p('<div class="project-back-row svelte-urn6fi"><a href="/" class="back-link"><span class="back-arrow">&larr;</span> Back to Projects</a></div> <!>',1),gt=p("<!> Refresh",1),yt=p('<div class="session-card-subtitle"> </div>'),bt=p('<span class="connect-dot svelte-urn6fi"></span> Connect',1),jt=p('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <!></div> <div class="session-card-actions svelte-urn6fi"><!> <!></div></div> <div class="session-stats"><span><strong> </strong> messages</span> <!> <!></div> <div class="session-meta-row svelte-urn6fi"><span class="session-modified svelte-urn6fi"> </span> <span class="session-duration svelte-urn6fi"> </span></div></a>'),$t=p('<div style="text-align: center; padding: 1rem;"><!></div>'),Pt=p('<div class="sessions-container svelte-urn6fi"></div> <!>',1),xt=p('<div class="chat-session-header"><div class="chat-session-header-top svelte-urn6fi"><a href="/" class="back-link">&#8592; Back to Projects</a> <!></div> <h1 class="chat-session-title"> </h1> <div class="chat-session-meta"><span class="session-card-subtitle"> </span> <span> </span></div></div> <!>',1),St=p('<main class="main"><!> <!></main>');function Mt(fe,pe){Qe(pe,!0);const me=15e3,R=20;let i=w(null),g=w(!0),m=w(null),E=w(null),K=null,k=w(R),X=w(We([])),$=w(null);const P=f(()=>ct.url.searchParams.get("id")||""),he=f(()=>e(i)?e(i).sessions.slice(0,e(k)):[]),_e=f(()=>e(i)?e(k)<e(i).sessions.length:!1),ge=f(()=>new Set(e(X).filter(t=>t.sessionId).map(t=>t.sessionId)));Xe(()=>{ye();const t=lt(`shooter_project_${e(P)}`);t&&(c(i,t,!0),c(g,!1)),setTimeout(()=>{z(),M()},50),K=setInterval(()=>{e(m)?.apiKey&&e(P)&&(z(),M())},me)}),Ye(()=>{K&&(clearInterval(K),K=null)});function ye(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);ut(a)?c(m,a,!0):(localStorage.removeItem("shooter_config"),c(m,null))}}catch{}}async function z(t=!1){if(!e(m)?.apiKey||!e(P)){c(g,!1);return}e(i)||c(g,!0);try{const d=await fetch(t?"/api/sessions?refresh=true":"/api/sessions",{headers:{Authorization:`Bearer ${e(m).apiKey}`}});if(!d.ok){c(E,`Failed to load project (HTTP ${d.status})`),c(g,!1);return}c(E,null);const h=(await d.json()).projects.find(C=>C.id===e(P))||null;c(i,h,!0),h&&dt(`shooter_project_${e(P)}`,h)}catch(a){console.error("Failed to fetch project:",a)}finally{c(g,!1)}}async function M(){if(e(m)?.apiKey)try{const t=await fetch("/api/sessions/detect",{headers:{Authorization:`Bearer ${e(m).apiKey}`}});if(t.ok){const a=await t.json();c(X,a.processes,!0)}}catch{}}async function Y(t,a,d){if(t.preventDefault(),t.stopPropagation(),!(!e(m)?.apiKey||!e(i)||e($))){c($,a,!0);try{const v=await fetch("/api/sessions/connect",{body:JSON.stringify({command:d,cwd:e(i).fullPath,sessionId:a}),headers:{Authorization:`Bearer ${e(m).apiKey}`,"Content-Type":"application/json"},method:"POST"});if(v.ok){const h=await v.json();it(`/terminals/${h.terminalId}`)}}catch(v){console.error("Failed to connect to session:",v)}finally{c($,null)}}}async function be(){c(g,!0),c(i,null),c(k,R),vt(`shooter_project_${e(P)}`),await z(!0),await M()}function je(){c(k,e(k)+R)}function ee(t){if(!t)return"";const a=new Date(t);return isNaN(a.getTime())?"":a.toLocaleDateString("en-US",{day:"numeric",hour:"2-digit",minute:"2-digit",month:"short"})}function $e(t,a){return t.length<=a?t:`${t.slice(0,a).trimEnd()}...`}var O=St();nt("urn6fi",t=>{var a=mt();tt(()=>{at.title=`${(e(i)?.name||"Project")??""} - Shooter`}),u(t,a)});var te=n(O);{var Pe=t=>{st(t,{get text(){return e(E)},classes:"banner-error"})};j(te,t=>{e(E)&&t(Pe)})}var xe=l(te,2);{var Se=t=>{var a=ht(),d=n(a);ve(d,{classes:"shimmer-header"});var v=l(d,2);de(v,16,()=>Array(4),rt,(h,C)=>{ve(h,{classes:"shimmer-card"})}),o(a),u(t,a)},we=t=>{var a=_t(),d=l(L(a),2);ue(d,{icon:"alert-triangle",title:"Project Not Found",description:"The requested project could not be found."}),u(t,a)},ke=t=>{var a=xt(),d=L(a),v=n(d),h=l(n(v),2);N(h,{classes:"btn-secondary",onclick:be,get disabled(){return e(g)},children:(y,q)=>{var I=gt(),J=L(I);ft(J,{name:"refresh",size:14}),Q(),u(y,I)},$$slots:{default:!0}}),o(v);var C=l(v,2),Ce=n(C,!0);o(C);var ae=l(C,2),F=n(ae),Ie=n(F,!0);o(F);var se=l(F,2),Be=n(se);o(se),o(ae),o(d);var Te=l(d,2);{var Ae=y=>{ue(y,{icon:"bell",title:"No sessions yet",description:"Sessions for this project will appear here"})},Ee=y=>{var q=Pt(),I=L(q);de(I,21,()=>e(he),x=>x.id,(x,r)=>{var B=jt(),T=n(B),G=n(T),H=n(G),Le=n(H,!0);o(H);var Ne=l(H,2);{var De=s=>{var _=yt(),A=n(_,!0);o(_),W(S=>b(A,S),[()=>$e(e(r).summary,80)]),u(s,_)};j(Ne,s=>{e(r).summary&&s(De)})}o(G);var re=l(G,2),oe=n(re);{let s=f(()=>pt(e(r).modified));D(oe,{get text(){return e(s)},classes:"pill-session-time"})}var Re=l(oe,2);{var ze=s=>{{let _=f(()=>e($)===e(r).id),A=f(()=>e($)===e(r).id);N(s,{classes:"btn-connect btn-xs",onclick:S=>Y(S,e(r).id,e(r).source==="opencode"?"opencode":"claude"),get disabled(){return e(_)},get showLoader(){return e(A)},children:(S,wt)=>{var Ze=bt();Q(),u(S,Ze)},$$slots:{default:!0}})}},Me=f(()=>e(ge).has(e(r).id)),Oe=s=>{{let _=f(()=>e($)===e(r).id),A=f(()=>e($)===e(r).id);N(s,{classes:"btn-resume btn-xs",onclick:S=>Y(S,e(r).id,e(r).source==="opencode"?"opencode":"claude"),get disabled(){return e(_)},get showLoader(){return e(A)},text:"Resume"})}};j(Re,s=>{e(Me)?s(ze):s(Oe,-1)})}o(re),o(T);var U=l(T,2),V=n(U),ne=n(V),Fe=n(ne,!0);o(ne),Q(),o(V);var ie=l(V,2);{var qe=s=>{D(s,{get text(){return`🌿 ${e(r).gitBranch??""}`},classes:"pill-git-branch"})};j(ie,s=>{e(r).gitBranch&&s(qe)})}var Je=l(ie,2);{var Ge=s=>{D(s,{text:"OpenCode",classes:"pill-source-opencode"})},He=s=>{D(s,{text:"Claude Code",classes:"pill-source-claude"})};j(Je,s=>{e(r).source==="opencode"?s(Ge):s(He,-1)})}o(U);var ce=l(U,2),Z=n(ce),Ue=n(Z);o(Z);var le=l(Z,2),Ve=n(le);o(le),o(ce),o(B),W((s,_)=>{ot(B,"href",`/session/${e(r).id??""}?project=${e(P)??""}`),b(Le,e(r).title),b(Fe,e(r).messageCount),b(Ue,`Last updated ${s??""}`),b(Ve,`Created ${_??""}`)},[()=>ee(e(r).modified),()=>ee(e(r).created)]),u(x,B)}),o(I);var J=l(I,2);{var Ke=x=>{var r=$t(),B=n(r);{let T=f(()=>`Load More (${e(i).sessions.length-e(k)} remaining)`);N(B,{classes:"btn-secondary",onclick:je,get text(){return e(T)}})}o(r),u(x,r)};j(J,x=>{e(_e)&&x(Ke)})}u(y,q)};j(Te,y=>{e(i).sessions.length===0?y(Ae):y(Ee,-1)})}W(()=>{b(Ce,e(i).name),b(Ie,e(i).fullPath),b(Be,`${e(i).sessionCount??""} sessions`)}),u(t,a)};j(xe,t=>{e(g)&&!e(i)?t(Se):e(i)?t(ke,-1):t(we,1)})}o(O),u(fe,O),et()}export{Mt as component};
1
+ import{a as u,f as p,s as b}from"../chunks/r0JawsZc.js";import{p as Qe,o as w,q as We,u as Xe,v as Ye,w as et,D as tt,z as e,y as c,$ as at,c as n,s as l,r as o,B as f,f as L,A as Q,t as W}from"../chunks/CZHsSL_X.js";import{i as j}from"../chunks/B8XegpSE.js";import{a as st,e as de,i as rt,B as N,P as D,s as ot}from"../chunks/B5NAKyil.js";import{h as nt}from"../chunks/BOYo8yTr.js";import{g as it}from"../chunks/BN1NjBrw.js";import{p as ct}from"../chunks/CF4lQ45j.js";import{g as lt,s as dt,S as ve,c as vt}from"../chunks/UJOiqIYE.js";import{i as ut}from"../chunks/DSU1n5N_.js";import{E as ue}from"../chunks/CSoRdFvv.js";import{I as ft}from"../chunks/DjsDGxCa.js";import"../chunks/CQjSATpv.js";import{f as pt}from"../chunks/BLszSzTT.js";var mt=p('<meta name="description" content="Project sessions sorted by latest update"/>'),ht=p('<div class="loading-container"><!> <!></div>'),_t=p('<div class="project-back-row svelte-urn6fi"><a href="/" class="back-link"><span class="back-arrow">&larr;</span> Back to Projects</a></div> <!>',1),gt=p("<!> Refresh",1),yt=p('<div class="session-card-subtitle"> </div>'),bt=p('<span class="connect-dot svelte-urn6fi"></span> Connect',1),jt=p('<a class="session-card"><div class="session-card-header"><div><h3 class="session-card-title"> </h3> <!></div> <div class="session-card-actions svelte-urn6fi"><!> <!></div></div> <div class="session-stats"><span><strong> </strong> messages</span> <!> <!></div> <div class="session-meta-row svelte-urn6fi"><span class="session-modified svelte-urn6fi"> </span> <span class="session-duration svelte-urn6fi"> </span></div></a>'),$t=p('<div style="text-align: center; padding: 1rem;"><!></div>'),Pt=p('<div class="sessions-container svelte-urn6fi"></div> <!>',1),xt=p('<div class="chat-session-header"><div class="chat-session-header-top svelte-urn6fi"><a href="/" class="back-link">&#8592; Back to Projects</a> <!></div> <h1 class="chat-session-title"> </h1> <div class="chat-session-meta"><span class="session-card-subtitle"> </span> <span> </span></div></div> <!>',1),St=p('<main class="main"><!> <!></main>');function Mt(fe,pe){Qe(pe,!0);const me=15e3,R=20;let i=w(null),g=w(!0),m=w(null),E=w(null),K=null,k=w(R),X=w(We([])),$=w(null);const P=f(()=>ct.url.searchParams.get("id")||""),he=f(()=>e(i)?e(i).sessions.slice(0,e(k)):[]),_e=f(()=>e(i)?e(k)<e(i).sessions.length:!1),ge=f(()=>new Set(e(X).filter(t=>t.sessionId).map(t=>t.sessionId)));Xe(()=>{ye();const t=lt(`shooter_project_${e(P)}`);t&&(c(i,t,!0),c(g,!1)),setTimeout(()=>{z(),M()},50),K=setInterval(()=>{e(m)?.apiKey&&e(P)&&(z(),M())},me)}),Ye(()=>{K&&(clearInterval(K),K=null)});function ye(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);ut(a)?c(m,a,!0):(localStorage.removeItem("shooter_config"),c(m,null))}}catch{}}async function z(t=!1){if(!e(m)?.apiKey||!e(P)){c(g,!1);return}e(i)||c(g,!0);try{const d=await fetch(t?"/api/sessions?refresh=true":"/api/sessions",{headers:{Authorization:`Bearer ${e(m).apiKey}`}});if(!d.ok){c(E,`Failed to load project (HTTP ${d.status})`),c(g,!1);return}c(E,null);const h=(await d.json()).projects.find(C=>C.id===e(P))||null;c(i,h,!0),h&&dt(`shooter_project_${e(P)}`,h)}catch(a){console.error("Failed to fetch project:",a)}finally{c(g,!1)}}async function M(){if(e(m)?.apiKey)try{const t=await fetch("/api/sessions/detect",{headers:{Authorization:`Bearer ${e(m).apiKey}`}});if(t.ok){const a=await t.json();c(X,a.processes,!0)}}catch{}}async function Y(t,a,d){if(t.preventDefault(),t.stopPropagation(),!(!e(m)?.apiKey||!e(i)||e($))){c($,a,!0);try{const v=await fetch("/api/sessions/connect",{body:JSON.stringify({command:d,cwd:e(i).fullPath,sessionId:a}),headers:{Authorization:`Bearer ${e(m).apiKey}`,"Content-Type":"application/json"},method:"POST"});if(v.ok){const h=await v.json();it(`/terminals/${h.terminalId}`)}}catch(v){console.error("Failed to connect to session:",v)}finally{c($,null)}}}async function be(){c(g,!0),c(i,null),c(k,R),vt(`shooter_project_${e(P)}`),await z(!0),await M()}function je(){c(k,e(k)+R)}function ee(t){if(!t)return"";const a=new Date(t);return isNaN(a.getTime())?"":a.toLocaleDateString("en-US",{day:"numeric",hour:"2-digit",minute:"2-digit",month:"short"})}function $e(t,a){return t.length<=a?t:`${t.slice(0,a).trimEnd()}...`}var O=St();nt("urn6fi",t=>{var a=mt();tt(()=>{at.title=`${(e(i)?.name||"Project")??""} - Shooter`}),u(t,a)});var te=n(O);{var Pe=t=>{st(t,{get text(){return e(E)},classes:"banner-error"})};j(te,t=>{e(E)&&t(Pe)})}var xe=l(te,2);{var Se=t=>{var a=ht(),d=n(a);ve(d,{classes:"shimmer-header"});var v=l(d,2);de(v,16,()=>Array(4),rt,(h,C)=>{ve(h,{classes:"shimmer-card"})}),o(a),u(t,a)},we=t=>{var a=_t(),d=l(L(a),2);ue(d,{icon:"alert-triangle",title:"Project Not Found",description:"The requested project could not be found."}),u(t,a)},ke=t=>{var a=xt(),d=L(a),v=n(d),h=l(n(v),2);N(h,{classes:"btn-secondary",onclick:be,get disabled(){return e(g)},children:(y,q)=>{var I=gt(),J=L(I);ft(J,{name:"refresh",size:14}),Q(),u(y,I)},$$slots:{default:!0}}),o(v);var C=l(v,2),Ce=n(C,!0);o(C);var ae=l(C,2),F=n(ae),Ie=n(F,!0);o(F);var se=l(F,2),Be=n(se);o(se),o(ae),o(d);var Te=l(d,2);{var Ae=y=>{ue(y,{icon:"bell",title:"No sessions yet",description:"Sessions for this project will appear here"})},Ee=y=>{var q=Pt(),I=L(q);de(I,21,()=>e(he),x=>x.id,(x,r)=>{var B=jt(),T=n(B),G=n(T),H=n(G),Le=n(H,!0);o(H);var Ne=l(H,2);{var De=s=>{var _=yt(),A=n(_,!0);o(_),W(S=>b(A,S),[()=>$e(e(r).summary,80)]),u(s,_)};j(Ne,s=>{e(r).summary&&s(De)})}o(G);var re=l(G,2),oe=n(re);{let s=f(()=>pt(e(r).modified));D(oe,{get text(){return e(s)},classes:"pill-session-time"})}var Re=l(oe,2);{var ze=s=>{{let _=f(()=>e($)===e(r).id),A=f(()=>e($)===e(r).id);N(s,{classes:"btn-connect btn-xs",onclick:S=>Y(S,e(r).id,e(r).source==="opencode"?"opencode":"claude"),get disabled(){return e(_)},get showLoader(){return e(A)},children:(S,wt)=>{var Ze=bt();Q(),u(S,Ze)},$$slots:{default:!0}})}},Me=f(()=>e(ge).has(e(r).id)),Oe=s=>{{let _=f(()=>e($)===e(r).id),A=f(()=>e($)===e(r).id);N(s,{classes:"btn-resume btn-xs",onclick:S=>Y(S,e(r).id,e(r).source==="opencode"?"opencode":"claude"),get disabled(){return e(_)},get showLoader(){return e(A)},text:"Resume"})}};j(Re,s=>{e(Me)?s(ze):s(Oe,-1)})}o(re),o(T);var U=l(T,2),V=n(U),ne=n(V),Fe=n(ne,!0);o(ne),Q(),o(V);var ie=l(V,2);{var qe=s=>{D(s,{get text(){return`🌿 ${e(r).gitBranch??""}`},classes:"pill-git-branch"})};j(ie,s=>{e(r).gitBranch&&s(qe)})}var Je=l(ie,2);{var Ge=s=>{D(s,{text:"OpenCode",classes:"pill-source-opencode"})},He=s=>{D(s,{text:"Claude Code",classes:"pill-source-claude"})};j(Je,s=>{e(r).source==="opencode"?s(Ge):s(He,-1)})}o(U);var ce=l(U,2),Z=n(ce),Ue=n(Z);o(Z);var le=l(Z,2),Ve=n(le);o(le),o(ce),o(B),W((s,_)=>{ot(B,"href",`/session/${e(r).id??""}?project=${e(P)??""}`),b(Le,e(r).title),b(Fe,e(r).messageCount),b(Ue,`Last updated ${s??""}`),b(Ve,`Created ${_??""}`)},[()=>ee(e(r).modified),()=>ee(e(r).created)]),u(x,B)}),o(I);var J=l(I,2);{var Ke=x=>{var r=$t(),B=n(r);{let T=f(()=>`Load More (${e(i).sessions.length-e(k)} remaining)`);N(B,{classes:"btn-secondary",onclick:je,get text(){return e(T)}})}o(r),u(x,r)};j(J,x=>{e(_e)&&x(Ke)})}u(y,q)};j(Te,y=>{e(i).sessions.length===0?y(Ae):y(Ee,-1)})}W(()=>{b(Ce,e(i).name),b(Ie,e(i).fullPath),b(Be,`${e(i).sessionCount??""} sessions`)}),u(t,a)};j(xe,t=>{e(g)&&!e(i)?t(Se):e(i)?t(ke,-1):t(we,1)})}o(O),u(fe,O),et()}export{Mt as component};
@@ -1,4 +1,4 @@
1
- import{d as ge,a as w,f as y,s as L,b as we}from"../chunks/r0JawsZc.js";import{p as be,o as b,q as ye,u as _e,w as Se,D as $e,y as a,z as e,$ as ke,c as h,r as v,B as E,s as _,f as Y,t as q}from"../chunks/CZHsSL_X.js";import{i as F}from"../chunks/B8XegpSE.js";import{h as Ie}from"../chunks/BOYo8yTr.js";import{s as Z}from"../chunks/B5NAKyil.js";import{p as G}from"../chunks/D3Vl-Qqr.js";import{g as je,s as ee,S as D}from"../chunks/UJOiqIYE.js";import"../chunks/CQjSATpv.js";import{C as Ce}from"../chunks/DVkn4r72.js";var Oe=y('<meta name="description" content="Session conversation view" class="svelte-1a2wdfb"/>'),Me=y('<div class="loading-container svelte-1a2wdfb"><!> <div class="chat-container svelte-1a2wdfb"><!> <!> <!> <!></div></div>'),Ne=y('<div class="session-back-row svelte-1a2wdfb"><a class="back-link svelte-1a2wdfb">← Back</a></div> <p class="error-text svelte-1a2wdfb"> </p>',1),Ae=y('<span class="resume-status svelte-1a2wdfb">Connecting...</span>'),Pe=y('<span class="resume-status svelte-1a2wdfb">Resuming session...</span>'),Te=y('<span class="connection-dot connected svelte-1a2wdfb"></span>'),De=y('<span class="connection-dot reconnecting svelte-1a2wdfb"></span>'),Re=y('<div class="load-earlier-row svelte-1a2wdfb"><button class="load-earlier-btn svelte-1a2wdfb"> </button></div>'),We=y('<div class="session-header svelte-1a2wdfb"><div class="session-header-row svelte-1a2wdfb"><a class="back-link svelte-1a2wdfb">← Back</a> <!></div> <h1 class="session-title svelte-1a2wdfb"> </h1></div> <div class="session-chat-container svelte-1a2wdfb"><!> <!></div>',1),Be=y('<main class="main session-page-main svelte-1a2wdfb"><!></main>');function Ge(te,se){be(se,!0);let p=b(null),o=b(ye([])),I=b(!0),N=b(null),R=b(!1),A=b(!1),P=b(200),j=b(null),k=b("idle"),c=b("idle"),S=null,$=null,C=null,O=null,u=!1;const W=E(()=>G.params.id),M=E(()=>G.url.searchParams.get("project")||""),ne=E(()=>e(c)==="connecting"||e(c)==="resuming");function T(){try{const t=localStorage.getItem("shooter_config");return t?JSON.parse(t):null}catch{return null}}async function V(){const t=T();if(!t)return null;try{const s=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${t.apiKey}`},method:"POST"});return s.ok?(await s.json()).ticket:null}catch{return null}}async function J(t,s){if(u||C&&(C.readyState===WebSocket.OPEN||C.readyState===WebSocket.CONNECTING))return;const n=await V();if(!n||u)return;a(k,"connecting");const i=window.location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${window.location.host}${t}?ticket=${n}`);r.onopen=()=>{if(u){r.close();return}a(k,"connected"),r.send(JSON.stringify({sessionId:s,type:"subscribe"}))},r.onmessage=d=>{if(!u)try{ae(JSON.parse(d.data))}catch{}},r.onclose=()=>{u||(a(k,"disconnected"),C=null,e(j)&&(O&&clearTimeout(O),O=setTimeout(()=>{O=null,!u&&e(j)&&J(`/ws/session/${e(j)}`,e(j))},2e3)))},r.onerror=()=>{u||a(k,"disconnected")},C=r}async function H(t){if(u)return;const s=await V();if(!s||u)return;const n=window.location.protocol==="https:"?"wss:":"ws:",i=new WebSocket(`${n}//${window.location.host}${t}?ticket=${s}`);i.onopen=()=>{if(u){i.close();return}$=i,e(c)==="ready"&&S&&(i.send(JSON.stringify({data:`${S}
1
+ import{d as ge,a as w,f as y,s as L,b as we}from"../chunks/r0JawsZc.js";import{p as be,o as b,q as ye,u as _e,w as Se,D as $e,y as a,z as e,$ as ke,c as h,r as v,B as E,s as _,f as Y,t as q}from"../chunks/CZHsSL_X.js";import{i as F}from"../chunks/B8XegpSE.js";import{h as Ie}from"../chunks/BOYo8yTr.js";import{s as Z}from"../chunks/B5NAKyil.js";import{p as G}from"../chunks/CF4lQ45j.js";import{g as je,s as ee,S as D}from"../chunks/UJOiqIYE.js";import"../chunks/CQjSATpv.js";import{C as Ce}from"../chunks/DVkn4r72.js";var Oe=y('<meta name="description" content="Session conversation view" class="svelte-1a2wdfb"/>'),Me=y('<div class="loading-container svelte-1a2wdfb"><!> <div class="chat-container svelte-1a2wdfb"><!> <!> <!> <!></div></div>'),Ne=y('<div class="session-back-row svelte-1a2wdfb"><a class="back-link svelte-1a2wdfb">← Back</a></div> <p class="error-text svelte-1a2wdfb"> </p>',1),Ae=y('<span class="resume-status svelte-1a2wdfb">Connecting...</span>'),Pe=y('<span class="resume-status svelte-1a2wdfb">Resuming session...</span>'),Te=y('<span class="connection-dot connected svelte-1a2wdfb"></span>'),De=y('<span class="connection-dot reconnecting svelte-1a2wdfb"></span>'),Re=y('<div class="load-earlier-row svelte-1a2wdfb"><button class="load-earlier-btn svelte-1a2wdfb"> </button></div>'),We=y('<div class="session-header svelte-1a2wdfb"><div class="session-header-row svelte-1a2wdfb"><a class="back-link svelte-1a2wdfb">← Back</a> <!></div> <h1 class="session-title svelte-1a2wdfb"> </h1></div> <div class="session-chat-container svelte-1a2wdfb"><!> <!></div>',1),Be=y('<main class="main session-page-main svelte-1a2wdfb"><!></main>');function Ge(te,se){be(se,!0);let p=b(null),o=b(ye([])),I=b(!0),N=b(null),R=b(!1),A=b(!1),P=b(200),j=b(null),k=b("idle"),c=b("idle"),S=null,$=null,C=null,O=null,u=!1;const W=E(()=>G.params.id),M=E(()=>G.url.searchParams.get("project")||""),ne=E(()=>e(c)==="connecting"||e(c)==="resuming");function T(){try{const t=localStorage.getItem("shooter_config");return t?JSON.parse(t):null}catch{return null}}async function V(){const t=T();if(!t)return null;try{const s=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${t.apiKey}`},method:"POST"});return s.ok?(await s.json()).ticket:null}catch{return null}}async function J(t,s){if(u||C&&(C.readyState===WebSocket.OPEN||C.readyState===WebSocket.CONNECTING))return;const n=await V();if(!n||u)return;a(k,"connecting");const i=window.location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${i}//${window.location.host}${t}?ticket=${n}`);r.onopen=()=>{if(u){r.close();return}a(k,"connected"),r.send(JSON.stringify({sessionId:s,type:"subscribe"}))},r.onmessage=d=>{if(!u)try{ae(JSON.parse(d.data))}catch{}},r.onclose=()=>{u||(a(k,"disconnected"),C=null,e(j)&&(O&&clearTimeout(O),O=setTimeout(()=>{O=null,!u&&e(j)&&J(`/ws/session/${e(j)}`,e(j))},2e3)))},r.onerror=()=>{u||a(k,"disconnected")},C=r}async function H(t){if(u)return;const s=await V();if(!s||u)return;const n=window.location.protocol==="https:"?"wss:":"ws:",i=new WebSocket(`${n}//${window.location.host}${t}?ticket=${s}`);i.onopen=()=>{if(u){i.close();return}$=i,e(c)==="ready"&&S&&(i.send(JSON.stringify({data:`${S}
2
2
  `,type:"input"})),S=null)},i.onclose=()=>{$===i&&($=null)}}function ae(t){if(t.type==="history"){const s=t.messages||[];a(o,s.map(n=>({id:n.id,parts:n.content,role:n.role,timestamp:n.timestamp})),!0),a(R,!1),e(c)==="resuming"&&(a(c,"ready"),S&&$?.readyState===WebSocket.OPEN&&($.send(JSON.stringify({data:`${S}
3
3
  `,type:"input"})),S=null))}else if(t.type==="message")a(o,[...e(o),{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:t.content||[],role:t.role||"assistant",timestamp:t.timestamp||new Date().toISOString()}],!0);else if(t.type==="tool-use"){const s={id:t.id||`tool-${Date.now()}`,input:t.input||{},toolName:t.name,type:"tool_use"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="assistant"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else if(t.type==="tool-result"){const s={isError:t.isError||!1,output:t.output||"",toolUseId:t.id,type:"tool_result"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="system"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"system",timestamp:new Date().toISOString()}],!0)}else if(t.type==="thinking"){const s={content:t.text||"",type:"thinking"},n=e(o).length>0?e(o)[e(o).length-1]:null;n?.role==="assistant"?a(o,[...e(o).slice(0,-1),{...n,parts:[...n.parts,s]}],!0):a(o,[...e(o),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[s],role:"assistant",timestamp:new Date().toISOString()}],!0)}else t.type==="session-end"&&a(c,"idle")}async function oe(){if(!e(p)||u){a(c,"idle");return}const t=T();if(!t){a(c,"idle");return}a(c,"connecting");try{const s=e(p).source==="opencode"?"opencode":"claude",n=await fetch("/api/sessions/connect",{body:JSON.stringify({command:s,cwd:e(p).projectPath,sessionId:e(W)}),headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!n.ok||u){a(c,"idle");return}const i=await n.json();a(j,i.terminalId,!0),a(c,"resuming"),J(i.sessionWs,i.terminalId),H(i.ws)}catch{a(c,"idle")}}function ie(t){if(t.trim()){if(e(c)==="ready"&&$?.readyState===WebSocket.OPEN){$.send(JSON.stringify({data:`${t}
4
4
  `,type:"input"}));return}if(e(c)==="connecting"||e(c)==="resuming"){S=t;return}S=t,oe()}}async function re(){e(o).length===0&&a(I,!0);try{const t=T();if(!t){a(N,"No configuration found. Please configure settings first."),a(I,!1);return}const s=e(W)||"",n=e(M)||"",i=n?`id=${encodeURIComponent(s)}&project=${encodeURIComponent(n)}&limit=${e(P)}`:`id=${encodeURIComponent(s)}&limit=${e(P)}`;let r=await fetch(`/api/sessions?${i}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});if(r.status===404&&!n){const g=await fetch("/api/sessions",{headers:{Authorization:`Bearer ${t.apiKey}`}});if(g.ok){const x=await g.json();for(const B of x.projects||[])if((B.sessions||[]).find(U=>U.id===s)){r=await fetch(`/api/sessions?id=${encodeURIComponent(s)}&project=${encodeURIComponent(B.id)}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});break}}}if(!r.ok){a(N,"Session not found"),a(I,!1);return}const d=await r.json();a(p,d.session,!0);const f=Array.isArray(d.messages)?d.messages:[];a(o,f,!0),a(R,f.length>=e(P)),ee(`shooter_session_${s}`,{messages:f,session:d.session})}catch{a(N,"Failed to load session")}a(I,!1)}async function ce(){if(e(A))return;const t=T();if(t){a(A,!0);try{const s=e(P)+200,n=e(W)||"",i=e(M)||"",r=[`id=${encodeURIComponent(n)}`,`limit=${s}`];i&&r.push(`project=${encodeURIComponent(i)}`);const d=await fetch(`/api/sessions?${r.join("&")}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});if(!d.ok)return;const f=await d.json(),g=Array.isArray(f.messages)?f.messages:[];a(o,g,!0),a(P,s),a(R,g.length>=s),ee(`shooter_session_${n}`,{messages:g,session:f.session})}catch{}finally{a(A,!1)}}}_e(()=>{const t=je(`shooter_session_${G.params.id}`);return t&&(a(p,t.session,!0),a(o,Array.isArray(t.messages)?t.messages:[],!0),a(I,!1)),re().then(async()=>{if(!e(p)||u)return;const s=T();if(s)try{const n=e(p).source==="opencode"?"opencode":"claude",i=await fetch("/api/sessions/connect",{body:JSON.stringify({command:n,cwd:e(p).projectPath,noCreate:!0,sessionId:e(W)}),headers:{Authorization:`Bearer ${s.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(i.ok&&!u){const r=await i.json();a(j,r.terminalId,!0),a(c,"resuming"),J(r.sessionWs,r.terminalId),H(r.ws)}}catch{}}),()=>{u=!0,O&&clearTimeout(O),C?.close(),$?.close()}});var K=Be();Ie("1a2wdfb",t=>{var s=Oe();$e(()=>{ke.title=`${(e(p)?.title||"Session")??""} - Shooter`}),w(t,s)});var le=h(K);{var de=t=>{var s=Me(),n=h(s);D(n,{classes:"shimmer-header"});var i=_(n,2),r=h(i);D(r,{classes:"shimmer-bubble shimmer-bubble-user"});var d=_(r,2);D(d,{classes:"shimmer-bubble shimmer-bubble-assistant"});var f=_(d,2);D(f,{classes:"shimmer-bubble shimmer-bubble-user-short"});var g=_(f,2);D(g,{classes:"shimmer-bubble shimmer-bubble-assistant-wide"}),v(i),v(s),w(t,s)},ue=t=>{var s=Ne(),n=Y(s),i=h(n);v(n);var r=_(n,2),d=h(r,!0);v(r),q(()=>{Z(i,"href",e(M)?`/project?id=${e(M)}`:"/"),L(d,e(N))}),w(t,s)},fe=t=>{var s=We(),n=Y(s),i=h(n),r=h(i),d=_(r,2);{var f=l=>{var m=Ae();w(l,m)},g=l=>{var m=Pe();w(l,m)},x=l=>{var m=Te();w(l,m)},B=l=>{var m=De();w(l,m)};F(d,l=>{e(c)==="connecting"?l(f):e(c)==="resuming"?l(g,1):e(k)==="connected"?l(x,2):e(k)==="reconnecting"&&l(B,3)})}v(i);var U=_(i,2),pe=h(U,!0);v(U),v(n);var Q=_(n,2),X=h(Q);{var me=l=>{var m=Re(),z=h(m),ve=h(z,!0);v(z),v(m),q(()=>{z.disabled=e(A),L(ve,e(A)?"Loading...":"Load earlier messages")}),we("click",z,ce),w(l,m)};F(X,l=>{e(R)&&l(me)})}var he=_(X,2);{let l=E(()=>[...e(o)].reverse());Ce(he,{get messages(){return e(l)},newestFirst:!0,get connectionState(){return e(k)},showInput:!0,get sendDisabled(){return e(ne)},onSendInput:ie,sessionEnded:!1})}v(Q),q(()=>{Z(r,"href",e(M)?`/project?id=${e(M)}`:"/"),L(pe,e(p).title)}),w(t,s)};F(le,t=>{e(I)&&e(o).length===0?t(de):e(N)?t(ue,1):e(p)&&t(fe,2)})}v(K),w(te,K),Se()}ge(["click"]);export{Ge as component};
@@ -1,2 +1,2 @@
1
- import{d as Ve,c as We,i as Ye,a as u,t as Ge,s as A,b as Ue,f as h}from"../chunks/r0JawsZc.js";import{p as je,o as y,q as ze,u as Be,y as i,z as e,a5 as Xe,f as ke,w as De,c as r,s as l,A as pe,t as F,B as S,r as s,v as et,x as tt,$ as at}from"../chunks/CZHsSL_X.js";import{i as K}from"../chunks/B8XegpSE.js";import{e as ue,C as st,S as rt,I as nt,B as Q,a as Me,i as lt,P as Se,T as Ee,s as Ne}from"../chunks/B5NAKyil.js";import{h as it}from"../chunks/BOYo8yTr.js";import{a as ot,c as ct}from"../chunks/CQjSATpv.js";import{g as Oe}from"../chunks/CrVuYlkB.js";import{c as dt,s as Ie,g as vt,S as pt}from"../chunks/UJOiqIYE.js";import{i as ut}from"../chunks/DSU1n5N_.js";import{E as Ke}from"../chunks/CSoRdFvv.js";import{I as mt}from"../chunks/DjsDGxCa.js";import{f as Pe}from"../chunks/BLszSzTT.js";var ft=h('<div class="overlay svelte-plslui" role="presentation"><div class="sheet svelte-plslui" role="dialog" aria-modal="true" aria-label="New Terminal"><div class="handle-bar svelte-plslui"><div class="handle svelte-plslui"></div></div> <h2 class="sheet-title svelte-plslui">New Terminal</h2> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Quick Launch</span> <div class="preset-grid svelte-plslui"></div></div> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Working Directory</span> <!> <div class="custom-cwd-group svelte-plslui"><!></div></div> <!> <!></div></div>');function ht(me,C){je(C,!0);const V=[{args:[],command:"claude",label:"Claude Code"},{args:[],command:"opencode",label:"OpenCode"},{args:[],command:"zsh",label:"Shell / zsh"},{args:[],command:"bash",label:"Bash"}];let P=y(0),k=y(ze([])),L=y(""),m=y(""),_=y(!1),E=y("");Be(()=>{j()});async function j(){try{const c=await fetch("/api/sessions?limit=50&offset=0",{headers:{Authorization:`Bearer ${C.apiKey}`}});if(!c.ok)return;const I=(await c.json()).projects.map(g=>g.fullPath).filter(g=>typeof g=="string"&&g.length>0);i(k,[...new Set(I)],!0),e(k).length>0&&!e(L)&&i(L,e(k)[0],!0)}catch{}}function w(c){i(P,c,!0)}function R(){return V[e(P)].command}function fe(){return V[e(P)].args}function he(){const c=e(m).trim();return c||(e(L)?e(L):"/tmp")}async function ge(){const c=R();if(c){i(_,!0),i(E,"");try{const x=await fetch("/api/terminals",{body:JSON.stringify({args:fe(),command:c,cwd:he()||void 0}),headers:{Authorization:`Bearer ${C.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!x.ok){const g=await x.json().catch(()=>({}));i(E,g.error||`Failed to launch (${x.status})`,!0);return}const I=await x.json();C.onLaunch(I)}catch{i(E,"Network error — is the server running?")}finally{i(_,!1)}}}function W(c){c.target===c.currentTarget&&C.onClose()}function _e(c){C.open&&c.key==="Escape"&&C.onClose()}var ie=We();Ye("keydown",Xe,_e);var H=ke(ie);{var oe=c=>{var x=ft(),I=r(x),g=l(r(I),4),Y=l(r(g),2);ue(Y,23,()=>V,v=>v.label,(v,q,$)=>{{let xe=S(()=>e(P)===e($));st(v,{mode:"radio",get selected(){return e(xe)},onclick:()=>{w(e($))},classes:"preset-choice",children:(ce,Le)=>{pe();var de=Ge();F(()=>A(de,e(q).label)),u(ce,de)},$$slots:{default:!0}})}}),s(Y),s(g);var G=l(g,2),U=l(r(G),2);{let v=S(()=>e(k).length>0?e(k).map($=>({id:$,label:$})):[{id:"",label:"No recent projects"}]),q=S(()=>e(L)?[e(L)]:e(k).length>0?[e(k)[0]]:[""]);rt(U,{get items(){return e(v)},get value(){return e(q)},placeholder:"Select a project",onchange:$=>{i(L,$[0]||"",!0)},classes:"launch-select"})}var X=l(U,2),we=r(X);nt(we,{label:"Or enter a custom path",dataType:"text",placeholder:"/path/to/project",classes:"input-mono launch-input",get value(){return e(m)},set value(v){i(m,v,!0)}}),s(X),s(G);var ee=l(G,2);{let v=S(()=>e(_)?"Launching...":"Launch Terminal");Q(ee,{classes:"btn-launch",get disabled(){return e(_)},onclick:ge,get showLoader(){return e(_)},get text(){return e(v)}})}var te=l(ee,2);{var ae=v=>{Me(v,{get text(){return e(E)},classes:"banner-error launch-error-banner"})};K(te,v=>{e(E)&&v(ae)})}s(I),s(x),Ue("click",x,W),u(c,x)};K(H,c=>{C.open&&c(oe)})}u(me,ie),De()}Ve(["click"]);var gt=h('<meta name="description" content="Active terminal sessions on this machine" class="svelte-1ewpmn2"/>'),_t=h("<!> Refresh",1),wt=h('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),xt=h('<div class="loading-container svelte-1ewpmn2"></div>'),bt=h('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),yt=h('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Ct=h('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),$t=h('<a class="terminal-card svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-running svelte-1ewpmn2"><span></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!></div> <span class="terminal-time svelte-1ewpmn2"> </span></div> <div class="terminal-card-meta svelte-1ewpmn2"><!> <span class="terminal-pid svelte-1ewpmn2"> </span></div> <!></a>'),Tt=h('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),At=h('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),St=h('<a class="terminal-card terminal-card-exited svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-exited svelte-1ewpmn2"><span class="status-dot-static svelte-1ewpmn2"></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!> <!></div> <div class="terminal-card-right svelte-1ewpmn2"><span class="terminal-time svelte-1ewpmn2"> </span> <!></div></div> <div class="terminal-card-meta svelte-1ewpmn2"><!></div> <!></a>'),Pt=h('<div class="terminals-container svelte-1ewpmn2"><!> <!></div>'),kt=h('<main class="main svelte-1ewpmn2"><div class="page-header svelte-1ewpmn2"><div class="page-header-content svelte-1ewpmn2"><div class="svelte-1ewpmn2"><h1 class="page-title svelte-1ewpmn2">Terminals</h1> <p class="page-description svelte-1ewpmn2">Active terminal sessions on this machine</p></div> <div class="page-actions svelte-1ewpmn2"><!> <!></div></div></div> <!> <!></main> <!>',1);function Rt(me,C){je(C,!0);const V=1e4,P="shooter_terminals",k=["claude","opencode"],L=["zsh","bash","sh","fish"];let m=y(ze([])),_=y(!1),E=!1,j=y(null),w=y(null),R=null;const fe=S(()=>e(m).filter(t=>t.status==="running")),he=S(()=>e(m).filter(t=>t.status==="exited"));Be(()=>{ge();const t=vt(P,1e4);t&&(i(m,t,!0),i(_,!1)),W(),R=setInterval(()=>{e(w)?.apiKey&&W()},V)}),et(()=>{R&&(clearInterval(R),R=null)});function ge(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);ut(a)?i(w,a,!0):(localStorage.removeItem("shooter_config"),i(w,null))}}catch{}}async function W(){if(!(!e(w)?.apiKey||E)){E=!0,e(m).length===0&&i(_,!0);try{const a=await fetch("/api/terminals",{headers:{Authorization:`Bearer ${e(w).apiKey}`}});if(!a.ok){i(j,`Failed to load terminals (HTTP ${a.status})`);return}i(j,null);const o=await a.json();i(m,o.terminals.map(f=>({...f,lastOutput:f.lastOutput??null})),!0),Ie(P,e(m))}catch(t){i(j,"Failed to load terminals"),console.error("Failed to fetch terminals:",t)}finally{i(_,!1),E=!1}}}async function _e(){i(_,!0),dt(P),await W()}function ie(){Oe("/config")}let H=y(!1);function oe(){i(H,!0)}function c(){i(H,!1)}function x(t){i(H,!1),Oe(`/terminals/${t.id}`)}function I(t){const a=t.split("/").pop()||t;return k.includes(a)?"ai":(L.includes(a),"shell")}function g(t){return t.status==="exited"?{class:"pill-badge-ended",label:"ENDED"}:I(t.command)==="ai"?{class:"pill-badge-ai",label:"AI"}:{class:"pill-badge-shell",label:"SHELL"}}function Y(t,a=40){if(t.length<=a)return t;const o=t.split("/");return o.length<=3?t:`${o[0]}/.../${o.slice(-2).join("/")}`}function G(t){return t.replace(/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b\[[\?]?[0-9;]*[a-zA-Z]|\x1b/g,"").replace(/[\x00-\x1f]/g,"").trim()}function U(t,a=80){if(!t)return"";const o=t.split(`
1
+ import{d as Ve,c as We,i as Ye,a as u,t as Ge,s as A,b as Ue,f as h}from"../chunks/r0JawsZc.js";import{p as je,o as y,q as ze,u as Be,y as i,z as e,a5 as Xe,f as ke,w as De,c as r,s as l,A as pe,t as F,B as S,r as s,v as et,x as tt,$ as at}from"../chunks/CZHsSL_X.js";import{i as K}from"../chunks/B8XegpSE.js";import{e as ue,C as st,S as rt,I as nt,B as Q,a as Me,i as lt,P as Se,T as Ee,s as Ne}from"../chunks/B5NAKyil.js";import{h as it}from"../chunks/BOYo8yTr.js";import{a as ot,c as ct}from"../chunks/CQjSATpv.js";import{g as Oe}from"../chunks/BN1NjBrw.js";import{c as dt,s as Ie,g as vt,S as pt}from"../chunks/UJOiqIYE.js";import{i as ut}from"../chunks/DSU1n5N_.js";import{E as Ke}from"../chunks/CSoRdFvv.js";import{I as mt}from"../chunks/DjsDGxCa.js";import{f as Pe}from"../chunks/BLszSzTT.js";var ft=h('<div class="overlay svelte-plslui" role="presentation"><div class="sheet svelte-plslui" role="dialog" aria-modal="true" aria-label="New Terminal"><div class="handle-bar svelte-plslui"><div class="handle svelte-plslui"></div></div> <h2 class="sheet-title svelte-plslui">New Terminal</h2> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Quick Launch</span> <div class="preset-grid svelte-plslui"></div></div> <div class="section svelte-plslui"><span class="section-label svelte-plslui">Working Directory</span> <!> <div class="custom-cwd-group svelte-plslui"><!></div></div> <!> <!></div></div>');function ht(me,C){je(C,!0);const V=[{args:[],command:"claude",label:"Claude Code"},{args:[],command:"opencode",label:"OpenCode"},{args:[],command:"zsh",label:"Shell / zsh"},{args:[],command:"bash",label:"Bash"}];let P=y(0),k=y(ze([])),L=y(""),m=y(""),_=y(!1),E=y("");Be(()=>{j()});async function j(){try{const c=await fetch("/api/sessions?limit=50&offset=0",{headers:{Authorization:`Bearer ${C.apiKey}`}});if(!c.ok)return;const I=(await c.json()).projects.map(g=>g.fullPath).filter(g=>typeof g=="string"&&g.length>0);i(k,[...new Set(I)],!0),e(k).length>0&&!e(L)&&i(L,e(k)[0],!0)}catch{}}function w(c){i(P,c,!0)}function R(){return V[e(P)].command}function fe(){return V[e(P)].args}function he(){const c=e(m).trim();return c||(e(L)?e(L):"/tmp")}async function ge(){const c=R();if(c){i(_,!0),i(E,"");try{const x=await fetch("/api/terminals",{body:JSON.stringify({args:fe(),command:c,cwd:he()||void 0}),headers:{Authorization:`Bearer ${C.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!x.ok){const g=await x.json().catch(()=>({}));i(E,g.error||`Failed to launch (${x.status})`,!0);return}const I=await x.json();C.onLaunch(I)}catch{i(E,"Network error — is the server running?")}finally{i(_,!1)}}}function W(c){c.target===c.currentTarget&&C.onClose()}function _e(c){C.open&&c.key==="Escape"&&C.onClose()}var ie=We();Ye("keydown",Xe,_e);var H=ke(ie);{var oe=c=>{var x=ft(),I=r(x),g=l(r(I),4),Y=l(r(g),2);ue(Y,23,()=>V,v=>v.label,(v,q,$)=>{{let xe=S(()=>e(P)===e($));st(v,{mode:"radio",get selected(){return e(xe)},onclick:()=>{w(e($))},classes:"preset-choice",children:(ce,Le)=>{pe();var de=Ge();F(()=>A(de,e(q).label)),u(ce,de)},$$slots:{default:!0}})}}),s(Y),s(g);var G=l(g,2),U=l(r(G),2);{let v=S(()=>e(k).length>0?e(k).map($=>({id:$,label:$})):[{id:"",label:"No recent projects"}]),q=S(()=>e(L)?[e(L)]:e(k).length>0?[e(k)[0]]:[""]);rt(U,{get items(){return e(v)},get value(){return e(q)},placeholder:"Select a project",onchange:$=>{i(L,$[0]||"",!0)},classes:"launch-select"})}var X=l(U,2),we=r(X);nt(we,{label:"Or enter a custom path",dataType:"text",placeholder:"/path/to/project",classes:"input-mono launch-input",get value(){return e(m)},set value(v){i(m,v,!0)}}),s(X),s(G);var ee=l(G,2);{let v=S(()=>e(_)?"Launching...":"Launch Terminal");Q(ee,{classes:"btn-launch",get disabled(){return e(_)},onclick:ge,get showLoader(){return e(_)},get text(){return e(v)}})}var te=l(ee,2);{var ae=v=>{Me(v,{get text(){return e(E)},classes:"banner-error launch-error-banner"})};K(te,v=>{e(E)&&v(ae)})}s(I),s(x),Ue("click",x,W),u(c,x)};K(H,c=>{C.open&&c(oe)})}u(me,ie),De()}Ve(["click"]);var gt=h('<meta name="description" content="Active terminal sessions on this machine" class="svelte-1ewpmn2"/>'),_t=h("<!> Refresh",1),wt=h('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),xt=h('<div class="loading-container svelte-1ewpmn2"></div>'),bt=h('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),yt=h('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Ct=h('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),$t=h('<a class="terminal-card svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-running svelte-1ewpmn2"><span></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!></div> <span class="terminal-time svelte-1ewpmn2"> </span></div> <div class="terminal-card-meta svelte-1ewpmn2"><!> <span class="terminal-pid svelte-1ewpmn2"> </span></div> <!></a>'),Tt=h('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),At=h('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),St=h('<a class="terminal-card terminal-card-exited svelte-1ewpmn2"><div class="terminal-card-header svelte-1ewpmn2"><div class="terminal-card-left svelte-1ewpmn2"><span class="status-indicator status-exited svelte-1ewpmn2"><span class="status-dot-static svelte-1ewpmn2"></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!> <!></div> <div class="terminal-card-right svelte-1ewpmn2"><span class="terminal-time svelte-1ewpmn2"> </span> <!></div></div> <div class="terminal-card-meta svelte-1ewpmn2"><!></div> <!></a>'),Pt=h('<div class="terminals-container svelte-1ewpmn2"><!> <!></div>'),kt=h('<main class="main svelte-1ewpmn2"><div class="page-header svelte-1ewpmn2"><div class="page-header-content svelte-1ewpmn2"><div class="svelte-1ewpmn2"><h1 class="page-title svelte-1ewpmn2">Terminals</h1> <p class="page-description svelte-1ewpmn2">Active terminal sessions on this machine</p></div> <div class="page-actions svelte-1ewpmn2"><!> <!></div></div></div> <!> <!></main> <!>',1);function Rt(me,C){je(C,!0);const V=1e4,P="shooter_terminals",k=["claude","opencode"],L=["zsh","bash","sh","fish"];let m=y(ze([])),_=y(!1),E=!1,j=y(null),w=y(null),R=null;const fe=S(()=>e(m).filter(t=>t.status==="running")),he=S(()=>e(m).filter(t=>t.status==="exited"));Be(()=>{ge();const t=vt(P,1e4);t&&(i(m,t,!0),i(_,!1)),W(),R=setInterval(()=>{e(w)?.apiKey&&W()},V)}),et(()=>{R&&(clearInterval(R),R=null)});function ge(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);ut(a)?i(w,a,!0):(localStorage.removeItem("shooter_config"),i(w,null))}}catch{}}async function W(){if(!(!e(w)?.apiKey||E)){E=!0,e(m).length===0&&i(_,!0);try{const a=await fetch("/api/terminals",{headers:{Authorization:`Bearer ${e(w).apiKey}`}});if(!a.ok){i(j,`Failed to load terminals (HTTP ${a.status})`);return}i(j,null);const o=await a.json();i(m,o.terminals.map(f=>({...f,lastOutput:f.lastOutput??null})),!0),Ie(P,e(m))}catch(t){i(j,"Failed to load terminals"),console.error("Failed to fetch terminals:",t)}finally{i(_,!1),E=!1}}}async function _e(){i(_,!0),dt(P),await W()}function ie(){Oe("/config")}let H=y(!1);function oe(){i(H,!0)}function c(){i(H,!1)}function x(t){i(H,!1),Oe(`/terminals/${t.id}`)}function I(t){const a=t.split("/").pop()||t;return k.includes(a)?"ai":(L.includes(a),"shell")}function g(t){return t.status==="exited"?{class:"pill-badge-ended",label:"ENDED"}:I(t.command)==="ai"?{class:"pill-badge-ai",label:"AI"}:{class:"pill-badge-shell",label:"SHELL"}}function Y(t,a=40){if(t.length<=a)return t;const o=t.split("/");return o.length<=3?t:`${o[0]}/.../${o.slice(-2).join("/")}`}function G(t){return t.replace(/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\x1b\[[\?]?[0-9;]*[a-zA-Z]|\x1b/g,"").replace(/[\x00-\x1f]/g,"").trim()}function U(t,a=80){if(!t)return"";const o=t.split(`
2
2
  `).map(b=>G(b)).filter(b=>b.trim()),f=o[o.length-1]||"";return f.length<=a?f:`${f.slice(0,a)}...`}function X(t){return t.split("/").pop()||t}async function we(t,a){if(t.preventDefault(),t.stopPropagation(),!!e(w)?.apiKey)try{(await fetch(`/api/terminals/${a}`,{headers:{Authorization:`Bearer ${e(w).apiKey}`},method:"DELETE"})).ok&&(i(m,e(m).filter(f=>f.id!==a),!0),Ie(P,e(m)))}catch(o){console.error("Failed to remove terminal:",o)}}var ee=kt();it("1ewpmn2",t=>{var a=gt();tt(()=>{at.title="Terminals - Shooter"}),u(t,a)});var te=ke(ee),ae=r(te),v=r(ae),q=l(r(v),2),$=r(q);Q($,{classes:"btn-secondary",onclick:_e,get disabled(){return e(_)},children:(t,a)=>{var o=_t(),f=ke(o);mt(f,{name:"refresh",size:14}),pe(),u(t,o)},$$slots:{default:!0}});var xe=l($,2);Q(xe,{classes:"btn-primary",onclick:oe,children:(t,a)=>{var o=wt();pe(),u(t,o)},$$slots:{default:!0}}),s(q),s(v),s(ae);var ce=l(ae,2);{var Le=t=>{Me(t,{get text(){return e(j)},classes:"banner-error"})};K(ce,t=>{e(j)&&t(Le)})}var de=l(ce,2);{var Fe=t=>{var a=xt();ue(a,20,()=>Array(4),lt,(o,f)=>{pt(o,{classes:"shimmer-card"})}),s(a),u(t,a)},Re=t=>{Ke(t,{icon:"settings",title:"Configuration Required",description:"Set up your API credentials to view terminal sessions",children:(a,o)=>{Q(a,{classes:"btn-primary",onclick:ie,text:"Configure Settings"})}})},He=t=>{Ke(t,{icon:"terminal",title:"No terminals",description:"Launch a new terminal session to get started. Terminal sessions will appear here once created.",children:(a,o)=>{Q(a,{classes:"btn-primary",onclick:oe,children:(f,b)=>{var n=bt();pe(),u(f,n)},$$slots:{default:!0}})}})},qe=t=>{var a=Pt(),o=r(a);ue(o,17,()=>e(fe),b=>b.id,(b,n)=>{const se=S(()=>g(e(n)));var N=$t(),z=r(N),B=r(z),D=r(B),be=r(D);s(D);var J=l(D,2),ye=r(J,!0);s(J);var Ce=l(J,2);Se(Ce,{get text(){return e(se).label},get classes(){return e(se).class}}),s(B);var re=l(B,2),ne=r(re,!0);s(re),s(z);var le=l(z,2),ve=r(le);{let d=S(()=>e(n).currentCwd||e(n).cwd);Ee(ve,{get text(){return e(d)},position:"bottom",children:(p,T)=>{var O=yt(),M=r(O,!0);s(O),F(Qe=>A(M,Qe),[()=>Y(e(n).currentCwd||e(n).cwd)]),u(p,O)},$$slots:{default:!0}})}var Z=l(ve,2),$e=r(Z);s(Z),s(le);var Te=l(le,2);{var Ae=d=>{var p=Ct(),T=r(p),O=r(T,!0);s(T),s(p),F(M=>A(O,M),[()=>U(e(n).lastOutput)]),u(d,p)};K(Te,d=>{e(n).lastOutput&&d(Ae)})}s(N),F((d,p)=>{Ne(N,"href",`/terminals/${e(n).id??""}`),ot(be,1,ct(e(n).isActive?"status-dot-active":"status-dot-idle"),"svelte-1ewpmn2"),A(ye,d),A(ne,p),A($e,`PID ${e(n).pid??""}`)},[()=>X(e(n).command),()=>Pe(e(n).createdAt)]),u(b,N)});var f=l(o,2);ue(f,17,()=>e(he),b=>b.id,(b,n)=>{const se=S(()=>g(e(n)));var N=St(),z=r(N),B=r(z),D=l(r(B),2),be=r(D,!0);s(D);var J=l(D,2);Se(J,{get text(){return e(se).label},get classes(){return e(se).class}});var ye=l(J,2);{var Ce=d=>{{let p=S(()=>e(n).exitCode!==0?"pill-exit-error":"pill-exit-ok");Se(d,{get text(){return`exit ${e(n).exitCode??""}`},get classes(){return e(p)}})}};K(ye,d=>{e(n).exitCode!==null&&d(Ce)})}s(B);var re=l(B,2),ne=r(re),le=r(ne,!0);s(ne);var ve=l(ne,2);Q(ve,{classes:"btn-ghost btn-sm btn-remove",onclick:d=>we(d,e(n).id),text:"×"}),s(re),s(z);var Z=l(z,2),$e=r(Z);Ee($e,{get text(){return e(n).cwd},position:"bottom",children:(d,p)=>{var T=Tt(),O=r(T,!0);s(T),F(M=>A(O,M),[()=>Y(e(n).cwd)]),u(d,T)},$$slots:{default:!0}}),s(Z);var Te=l(Z,2);{var Ae=d=>{var p=At(),T=r(p),O=r(T,!0);s(T),s(p),F(M=>A(O,M),[()=>U(e(n).lastOutput)]),u(d,p)};K(Te,d=>{e(n).lastOutput&&d(Ae)})}s(N),F((d,p)=>{Ne(N,"href",`/terminals/${e(n).id??""}`),A(be,d),A(le,p)},[()=>X(e(n).command),()=>e(n).exitedAt?Pe(e(n).exitedAt):Pe(e(n).createdAt)]),u(b,N)}),s(a),u(t,a)};K(de,t=>{e(_)&&e(m).length===0?t(Fe):e(w)?.apiKey?e(m).length===0?t(He,2):t(qe,-1):t(Re,1)})}s(te);var Je=l(te,2);{var Ze=t=>{ht(t,{get open(){return e(H)},get apiKey(){return e(w).apiKey},onClose:c,onLaunch:x})};K(Je,t=>{e(w)?.apiKey&&t(Ze)})}u(me,ee),De()}export{Rt as component};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/B8zoBsv3.js","../chunks/PPVm8Dsz.js"])))=>i.map(i=>d[i]);
2
- import{_ as _e}from"../chunks/PPVm8Dsz.js";import{s as at,a as S,f as C,c as ke,d as Se,g as xe,h as Ce,b as Ie}from"../chunks/r0JawsZc.js";import{p as rt,w as ot,z as t,B as w,c as k,s as c,r as h,t as H,f as zt,o as m,q as Te,u as je,v as qe,D as Ee,y as n,$ as Ke}from"../chunks/CZHsSL_X.js";import{i as E}from"../chunks/B8XegpSE.js";import{h as De}from"../chunks/BOYo8yTr.js";import{c as $e,s as vt,B as Y,e as Bt,M as Ae,K as Me,P as Ot,d as Rt,T as Lt,f as Pe,I as Ne}from"../chunks/B5NAKyil.js";import{a as ft}from"../chunks/CQjSATpv.js";import{p as Oe,b as Wt}from"../chunks/Bu1aqm5j.js";import{g as Z}from"../chunks/CrVuYlkB.js";import{p as Re}from"../chunks/CNmDAqoQ.js";import{E as Le}from"../chunks/CSoRdFvv.js";import{C as We}from"../chunks/DVkn4r72.js";function ze(g,r){rt(r,!0);let b=Oe(r,"open",15,!1);const u=w(()=>r.commands.map((_,s)=>({label:_.label,value:String(s)})));function T(_){const s=parseInt(_.value,10);r.commands[s]&&r.commands[s].action()}$e(g,{get items(){return t(u)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return r.onClose},classes:"command-palette",get open(){return b()},set open(_){b(_)}}),ot()}var Be=C('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function Fe(g,r){const b=w(()=>r.status==="connected"?"Connected":r.status==="reconnecting"?"Reconnecting...":"Disconnected");var u=Be();let T;var _=k(u),s=c(_,2),N=k(s,!0);h(s);var K=c(s,2);{var j=x=>{Y(x,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return r.onretry},text:"Retry"})};E(K,x=>{r.status==="disconnected"&&r.onretry&&x(j)})}h(u),H(()=>{T=ft(u,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:r.status==="reconnecting",disconnected:r.status==="disconnected",connected:r.status==="connected"}),vt(u,"aria-label",`Connection: ${r.status??""}`),ft(_,1,`status-dot ${r.status??""}`,"svelte-1cg9pai"),at(N,t(b))}),S(g,u)}const Ft=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),pt=Ft?"⌘":"Ctrl";function He(g){function r(b){if((Ft?b.metaKey:b.ctrlKey)&&!Je()&&b.key==="/"){b.preventDefault(),b.stopPropagation(),g.onHelp();return}}return window.addEventListener("keydown",r,!0),{destroy(){window.removeEventListener("keydown",r,!0)}}}function Ue(){return[{description:"Command palette",keys:`${pt}+K`},{description:"Keyboard shortcuts",keys:`${pt}+/`}]}function Je(){const g=document.activeElement;if(!g)return!1;const r=g.tagName;return!!(r==="INPUT"||r==="TEXTAREA"||g.isContentEditable||g.closest(".xterm"))}var Ge=C('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Ve(g,r){rt(r,!0);const b=[{escape:"",label:"Ctrl+C"},{escape:" ",label:"Tab"},{escape:"\x1B[A",label:"↑"},{escape:"\x1B[B",label:"↓"},{escape:"\x1B",label:"Esc"},{escape:"",label:"Ctrl+D"},{escape:"",label:"Ctrl+Z"}];var u=Ge();Bt(u,21,()=>b,T=>T.label,(T,_)=>{Y(T,{classes:"btn-quick-key",onclick:()=>{r.onKey(t(_).escape)},get text(){return t(_).label}})}),h(u),S(g,u),ot()}var Qe=C('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Xe=C('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ze(g,r){rt(r,!0);const b=Ue();var u=ke(),T=zt(u);{var _=s=>{Ae(s,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return r.onClose},classes:"shortcuts-modal",content:K=>{var j=Xe();Bt(j,21,()=>b,x=>x.keys,(x,W)=>{var O=Qe(),d=k(O),q=k(d,!0);h(d);var A=c(d,2);Me(A,{get keys(){return t(W).keys},classes:"shortcut-kbd"}),h(O),H(()=>at(q,t(W).description)),S(x,O)}),h(j),S(K,j)},$$slots:{content:!0}})};E(T,s=>{r.open&&s(_)})}S(g,u),ot()}var Ye=C('<meta name="description" content="Interactive terminal session" class="svelte-1tubujq"/>'),tn=C('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 100%; height: 100%;"></div></div></div>'),en=C('<main class="main svelte-1tubujq"><div class="session-back-row svelte-1tubujq"><a href="/terminals" class="back-link svelte-1tubujq"><span class="back-arrow svelte-1tubujq">&larr;</span> Terminals</a></div> <!></main>'),nn=C("<span></span>"),sn=C('<span class="term-cwd svelte-1tubujq"> </span>'),an=C('<a class="term-session-link svelte-1tubujq" title="View session history">Session</a>'),rn=C('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),on=C('<div class="term-exited-bar svelte-1tubujq"><span class="svelte-1tubujq">Process exited</span> <!></div>'),ln=C('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="term-topbar-left svelte-1tubujq"><a href="/terminals" class="term-back svelte-1tubujq" aria-label="Back to terminals">&larr;</a> <span class="term-command-name svelte-1tubujq"> </span> <!> <!> <!> <!> <!></div> <div class="term-topbar-right svelte-1tubujq"><!> <button class="term-shortcuts-btn svelte-1tubujq" type="button" aria-label="Keyboard shortcuts">?</button> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),cn=C("<!> <!> <!>",1);function kn(g,r){rt(r,!0);const b=()=>Ce(Re,"$page",u),[u,T]=xe(),_=["claude","opencode"];let s=m(null),N=m(!0),K=m(null),j=m(!1),x=m(!1),W=m(!1),O=m(null),d=m("raw"),q=m("disconnected"),A=m("disconnected"),z=m(""),v=m(Te([])),mt=m(!1),U=m(null),it=m(null),M=null,ht=null,R=m(!1),lt=m(!1),f=null,L=null,p=!1;const J=w(()=>b().params.id),G=w(()=>t(s)?_.includes((t(s).command.split("/").pop()||"").toLowerCase()):!1),B=w(()=>t(s)?.status==="running"),gt=w(()=>t(s)?.command.split("/").pop()||"terminal"),Ht=w(()=>t(G)?"AI":"SHELL"),Ut=w(()=>t(G)?"pill-badge-ai":"pill-badge-shell"),Jt=["Raw","Chat"],bt=w(()=>t(d)==="raw"?t(q):t(A)),Gt=w(()=>t(d)==="raw"?0:1),yt=w(()=>Qt(t(O)||t(s)?.cwd||"")),Vt=w(()=>{const e=[{action:()=>{Z("/")},label:"Go to Home"},{action:()=>{Z("/terminals")},label:"Go to Terminals"},{action:()=>{Z("/config")},label:"Go to Settings"},{action:()=>{n(R,!0)},label:"Show keyboard shortcuts"}];return t(B)&&e.push({action:()=>{_t()},label:"Kill terminal"}),e});function Qt(e){if(!e)return"";const a="";let i=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?i=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(i=`~/${l.slice(3).join("/")}`)}if(i.length>30){const l=i.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return i||a}function V(){try{const e=localStorage.getItem("shooter_config");if(!e)return null;const a=JSON.parse(e);return typeof a?.apiKey=="string"&&a.apiKey?a:null}catch{return null}}async function Xt(){const e=V();if(!e){n(K,"No configuration found. Please configure settings first."),n(N,!1);return}try{const a=await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!a.ok){n(K,a.status===404?"Terminal not found":"Failed to load terminal",!0),n(N,!1);return}n(s,await a.json(),!0)}catch{n(K,"Failed to connect to server")}n(N,!1)}async function wt(){const e=V();if(!e)return null;try{const a=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${e.apiKey}`},method:"POST"});return a.ok?(await a.json()).ticket:null}catch{return null}}async function _t(){if(!t(s)||t(j))return;const e=V();if(e){n(j,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Z("/terminals"):n(j,!1)}catch{n(j,!1)}}}async function Zt(){if(!t(s)||t(x))return;const e=V();if(e){n(x,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Z("/terminals"):n(x,!1)}catch{n(x,!1)}}}async function ct(){if(!t(U)||!t(s)||p)return;const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).ws}`,i=async()=>{const l=await wt();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await _e(async()=>{const{createTerminal:$}=await import("../chunks/B8zoBsv3.js");return{createTerminal:$}},__vite__mapDeps([0,1]),import.meta.url);if(p||!t(U))return;const P=await l({apiKey:V()?.apiKey,container:t(U),fontSize:window.innerWidth<768?12:14,getTicket:i,onActivity:$=>{p||n(W,$,!0)},onCwd:$=>{p||n(O,$,!0)},onDisconnect:()=>{p||n(q,"reconnecting")},onExit:$=>{!p&&t(s)&&(n(s,{...t(s),exitCode:$,exitedAt:new Date().toISOString(),status:"exited"},!0),n(q,"disconnected"))},onReconnect:()=>{p||n(q,"connected")},terminalId:t(J),wsUrl:a});if(p){P.dispose();return}M=P,n(q,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(q,"disconnected")}}function kt(){M&&(M.dispose(),M=null)}async function tt(){if(!t(s)||p||f&&(f.readyState===WebSocket.OPEN||f.readyState===WebSocket.CONNECTING))return;const e=await wt();if(!e||p||!t(s)){n(A,"disconnected");return}const i=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).sessionWs}?ticket=${e}`;f=new WebSocket(i),f.onopen=()=>{p||(n(A,"connected"),f?.send(JSON.stringify({sessionId:t(J),type:"subscribe"})))},f.onmessage=l=>{if(!p)try{const P=JSON.parse(l.data);Yt(P)}catch{}},f.onclose=()=>{!p&&t(s)?.status==="running"&&(n(A,"reconnecting"),L&&clearTimeout(L),L=setTimeout(()=>{L=null,!p&&t(s)?.status==="running"&&tt()},2e3))},f.onerror=()=>{p||n(A,"disconnected")}}function Yt(e){if(e.type==="history"){const a=e.messages||[];n(v,a.map(i=>({id:i.id,parts:i.content,role:i.role,timestamp:i.timestamp})),!0)}else if(e.type==="message")n(v,[...t(v),{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:e.role||"assistant",timestamp:e.timestamp||new Date().toISOString()}],!0);else if(e.type==="tool-use")n(v,[...t(v),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"}],role:"assistant",timestamp:new Date().toISOString()}],!0);else if(e.type==="tool-result")n(v,[...t(v),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"}],role:"system",timestamp:new Date().toISOString()}],!0);else if(e.type==="thinking"){const a={content:e.text||"",type:"thinking"},i=t(v).length>0?t(v)[t(v).length-1]:null;i?.role==="assistant"?n(v,[...t(v).slice(0,-1),{...i,parts:[...i.parts,a]}],!0):n(v,[...t(v),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()}],!0)}else e.type==="error"?n(v,[...t(v),{id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{content:e.message||"Unknown error",type:"text"}],role:"system",timestamp:new Date().toISOString()}],!0):e.type==="session-end"&&(n(mt,!0),t(s)&&n(s,{...t(s),status:"exited"},!0))}function St(){L&&(clearTimeout(L),L=null),f&&(f.onclose=null,f.close(),f=null)}function xt(){t(z).trim()&&(M&&t(q)==="connected"&&M.sendInput(`${t(z)}\r`),n(z,""),t(it)?.focus())}function te(e){!e.trim()||f?.readyState!==WebSocket.OPEN||f.send(JSON.stringify({text:e,type:"send-input"}))}function Ct(){f?.readyState===WebSocket.OPEN&&f.send(JSON.stringify({type:"cancel"}))}function ee(e){t(d)==="raw"?M&&t(q)==="connected"&&M.sendInput(e):t(d)==="chat"&&e===""&&Ct()}function ne(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),xt())}let et=!1,nt=!1;function se(e){e!==t(d)&&(n(d,e,!0),e==="raw"&&!et?(requestAnimationFrame(()=>{ct()}),et=!0):e==="chat"&&!nt&&(tt(),nt=!0))}function ae(){t(d)==="raw"?(kt(),n(q,"reconnecting"),ct(),et=!0):(St(),n(A,"reconnecting"),tt(),nt=!0)}je(async()=>{await Xt(),!p&&(ht=He({onHelp:()=>{n(R,!t(R))}}),!(!t(s)||t(K))&&(t(G)&&window.innerWidth<768?n(d,"chat"):n(d,"raw"),t(d)==="raw"?(requestAnimationFrame(()=>{ct()}),et=!0):(tt(),nt=!0)))}),qe(()=>{p=!0,kt(),St(),ht?.destroy()});var It=cn();De("1tubujq",e=>{var a=Ye();Ee(()=>{Ke.title=`${t(gt)??""} - Terminal - Shooter`}),S(e,a)});var Tt=zt(It);{var re=e=>{var a=tn();S(e,a)},oe=e=>{var a=en(),i=c(k(a),2);Le(i,{icon:"alert-triangle",title:"Error",get description(){return t(K)}}),h(a),S(e,a)},ie=e=>{var a=ln(),i=k(a),l=k(i),P=c(k(l),2),$=k(P,!0);h(P);var qt=c(P,2);Ot(qt,{get text(){return t(Ht)},get classes(){return t(Ut)}});var Et=c(qt,2);{var ce=o=>{{let y=w(()=>t(W)?"Active":"Idle");Lt(o,{get text(){return t(y)},position:"bottom",children:(D,F)=>{var I=nn();H(()=>ft(I,1,`activity-dot ${t(W)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(D,I)},$$slots:{default:!0}})}};E(Et,o=>{t(B)&&o(ce)})}var Kt=c(Et,2);{var ue=o=>{{let y=w(()=>t(O)||t(s)?.cwd||"");Lt(o,{get text(){return t(y)},position:"bottom",children:(D,F)=>{var I=sn(),Q=k(I,!0);h(I),H(()=>at(Q,t(yt))),S(D,I)},$$slots:{default:!0}})}};E(Kt,o=>{t(yt)&&o(ue)})}var Dt=c(Kt,2);Fe(Dt,{get status(){return t(bt)},onretry:ae});var de=c(Dt,2);{var ve=o=>{var y=an();H(D=>vt(y,"href",`/session/${D??""}`),[()=>t(s).sessionFile.split(/[\\/]/).pop()?.replace(".jsonl","")||""]),S(o,y)};E(de,o=>{t(G)&&t(s)?.sessionFile&&o(ve)})}h(l);var $t=c(l,2),At=k($t);{var fe=o=>{Pe(o,{get items(){return Jt},get activeIndex(){return t(Gt)},onchange:y=>{se(y===0?"raw":"chat")},classes:"term-tabs"})};E(At,o=>{t(G)&&o(fe)})}var ut=c(At,2),pe=c(ut,2);{var me=o=>{Y(o,{classes:"btn-danger btn-sm",onclick:_t,get disabled(){return t(j)},get showLoader(){return t(j)},text:"Kill"})},he=o=>{Y(o,{classes:"btn-secondary btn-sm",onclick:Zt,get disabled(){return t(x)},get showLoader(){return t(x)},text:"Remove"})};E(pe,o=>{t(B)?o(me):o(he,-1)})}h($t),h(i);var dt=c(i,2);let Mt;Wt(dt,o=>n(U,o),()=>t(U));var Pt=c(dt,2);{var ge=o=>{var y=rn(),D=k(y);Ve(D,{onKey:ee});var F=c(D,2),I=k(F);Wt(Ne(I,{dataType:"text",useTextArea:!0,placeholder:"Type command... (Shift+Enter for new line)",classes:"input-mono term-input-field",onKeyDown:ne,get value(){return t(z)},set value(X){n(z,X,!0)}}),X=>n(it,X,!0),()=>t(it));var Q=c(I,2);{let X=w(()=>!t(z).trim());Y(Q,{classes:"btn-primary btn-send",onclick:xt,get disabled(){return t(X)},text:"↵"})}h(F),h(y),S(o,y)};E(Pt,o=>{t(B)&&t(d)==="raw"&&o(ge)})}var st=c(Pt,2);let Nt;var be=k(st);We(be,{get messages(){return t(v)},get connectionState(){return t(bt)},get sessionEnded(){return t(mt)},get showInput(){return t(B)},onSendInput:te,onCancel:Ct}),h(st);var ye=c(st,2);{var we=o=>{var y=on(),D=c(k(y),2);{var F=I=>{{let Q=w(()=>t(s).exitCode!==0?"pill-exit-error":"pill-exit-ok");Ot(I,{get text(){return`code ${t(s).exitCode??""}`},get classes(){return t(Q)}})}};E(D,I=>{t(s).exitCode!==null&&I(F)})}h(y),S(o,y)};E(ye,o=>{t(B)||o(we)})}h(a),H(()=>{at($,t(gt)),vt(ut,"title",`${pt??""}+/ for shortcuts`),Mt=Rt(dt,"",Mt,{display:t(d)==="raw"?"flex":"none"}),Nt=Rt(st,"",Nt,{display:t(d)==="chat"?"flex":"none"})}),Ie("click",ut,()=>{n(R,!t(R))}),S(e,a)};E(Tt,e=>{t(N)?e(re):t(K)?e(oe,1):t(s)&&e(ie,2)})}var jt=c(Tt,2);Ze(jt,{get open(){return t(R)},onClose:()=>{n(R,!1)}});var le=c(jt,2);ze(le,{get commands(){return t(Vt)},onClose:()=>{n(lt,!1)},get open(){return t(lt)},set open(e){n(lt,e,!0)}}),S(g,It),ot(),T()}Se(["click"]);export{kn as component};
2
+ import{_ as _e}from"../chunks/PPVm8Dsz.js";import{s as at,a as S,f as C,c as ke,d as Se,g as xe,h as Ce,b as Ie}from"../chunks/r0JawsZc.js";import{p as rt,w as ot,z as t,B as w,c as k,s as c,r as h,t as H,f as zt,o as m,q as Te,u as je,v as qe,D as Ee,y as n,$ as Ke}from"../chunks/CZHsSL_X.js";import{i as E}from"../chunks/B8XegpSE.js";import{h as De}from"../chunks/BOYo8yTr.js";import{c as $e,s as vt,B as Y,e as Bt,M as Ae,K as Me,P as Ot,d as Rt,T as Lt,f as Pe,I as Ne}from"../chunks/B5NAKyil.js";import{a as ft}from"../chunks/CQjSATpv.js";import{p as Oe,b as Wt}from"../chunks/Bu1aqm5j.js";import{g as Z}from"../chunks/BN1NjBrw.js";import{p as Re}from"../chunks/CDVSripB.js";import{E as Le}from"../chunks/CSoRdFvv.js";import{C as We}from"../chunks/DVkn4r72.js";function ze(g,r){rt(r,!0);let b=Oe(r,"open",15,!1);const u=w(()=>r.commands.map((_,s)=>({label:_.label,value:String(s)})));function T(_){const s=parseInt(_.value,10);r.commands[s]&&r.commands[s].action()}$e(g,{get items(){return t(u)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return r.onClose},classes:"command-palette",get open(){return b()},set open(_){b(_)}}),ot()}var Be=C('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function Fe(g,r){const b=w(()=>r.status==="connected"?"Connected":r.status==="reconnecting"?"Reconnecting...":"Disconnected");var u=Be();let T;var _=k(u),s=c(_,2),N=k(s,!0);h(s);var K=c(s,2);{var j=x=>{Y(x,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return r.onretry},text:"Retry"})};E(K,x=>{r.status==="disconnected"&&r.onretry&&x(j)})}h(u),H(()=>{T=ft(u,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:r.status==="reconnecting",disconnected:r.status==="disconnected",connected:r.status==="connected"}),vt(u,"aria-label",`Connection: ${r.status??""}`),ft(_,1,`status-dot ${r.status??""}`,"svelte-1cg9pai"),at(N,t(b))}),S(g,u)}const Ft=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),pt=Ft?"⌘":"Ctrl";function He(g){function r(b){if((Ft?b.metaKey:b.ctrlKey)&&!Je()&&b.key==="/"){b.preventDefault(),b.stopPropagation(),g.onHelp();return}}return window.addEventListener("keydown",r,!0),{destroy(){window.removeEventListener("keydown",r,!0)}}}function Ue(){return[{description:"Command palette",keys:`${pt}+K`},{description:"Keyboard shortcuts",keys:`${pt}+/`}]}function Je(){const g=document.activeElement;if(!g)return!1;const r=g.tagName;return!!(r==="INPUT"||r==="TEXTAREA"||g.isContentEditable||g.closest(".xterm"))}var Ge=C('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Ve(g,r){rt(r,!0);const b=[{escape:"",label:"Ctrl+C"},{escape:" ",label:"Tab"},{escape:"\x1B[A",label:"↑"},{escape:"\x1B[B",label:"↓"},{escape:"\x1B",label:"Esc"},{escape:"",label:"Ctrl+D"},{escape:"",label:"Ctrl+Z"}];var u=Ge();Bt(u,21,()=>b,T=>T.label,(T,_)=>{Y(T,{classes:"btn-quick-key",onclick:()=>{r.onKey(t(_).escape)},get text(){return t(_).label}})}),h(u),S(g,u),ot()}var Qe=C('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Xe=C('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ze(g,r){rt(r,!0);const b=Ue();var u=ke(),T=zt(u);{var _=s=>{Ae(s,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return r.onClose},classes:"shortcuts-modal",content:K=>{var j=Xe();Bt(j,21,()=>b,x=>x.keys,(x,W)=>{var O=Qe(),d=k(O),q=k(d,!0);h(d);var A=c(d,2);Me(A,{get keys(){return t(W).keys},classes:"shortcut-kbd"}),h(O),H(()=>at(q,t(W).description)),S(x,O)}),h(j),S(K,j)},$$slots:{content:!0}})};E(T,s=>{r.open&&s(_)})}S(g,u),ot()}var Ye=C('<meta name="description" content="Interactive terminal session" class="svelte-1tubujq"/>'),tn=C('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton svelte-1tubujq" style="width: 100%; height: 100%;"></div></div></div>'),en=C('<main class="main svelte-1tubujq"><div class="session-back-row svelte-1tubujq"><a href="/terminals" class="back-link svelte-1tubujq"><span class="back-arrow svelte-1tubujq">&larr;</span> Terminals</a></div> <!></main>'),nn=C("<span></span>"),sn=C('<span class="term-cwd svelte-1tubujq"> </span>'),an=C('<a class="term-session-link svelte-1tubujq" title="View session history">Session</a>'),rn=C('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),on=C('<div class="term-exited-bar svelte-1tubujq"><span class="svelte-1tubujq">Process exited</span> <!></div>'),ln=C('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="term-topbar-left svelte-1tubujq"><a href="/terminals" class="term-back svelte-1tubujq" aria-label="Back to terminals">&larr;</a> <span class="term-command-name svelte-1tubujq"> </span> <!> <!> <!> <!> <!></div> <div class="term-topbar-right svelte-1tubujq"><!> <button class="term-shortcuts-btn svelte-1tubujq" type="button" aria-label="Keyboard shortcuts">?</button> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),cn=C("<!> <!> <!>",1);function kn(g,r){rt(r,!0);const b=()=>Ce(Re,"$page",u),[u,T]=xe(),_=["claude","opencode"];let s=m(null),N=m(!0),K=m(null),j=m(!1),x=m(!1),W=m(!1),O=m(null),d=m("raw"),q=m("disconnected"),A=m("disconnected"),z=m(""),v=m(Te([])),mt=m(!1),U=m(null),it=m(null),M=null,ht=null,R=m(!1),lt=m(!1),f=null,L=null,p=!1;const J=w(()=>b().params.id),G=w(()=>t(s)?_.includes((t(s).command.split("/").pop()||"").toLowerCase()):!1),B=w(()=>t(s)?.status==="running"),gt=w(()=>t(s)?.command.split("/").pop()||"terminal"),Ht=w(()=>t(G)?"AI":"SHELL"),Ut=w(()=>t(G)?"pill-badge-ai":"pill-badge-shell"),Jt=["Raw","Chat"],bt=w(()=>t(d)==="raw"?t(q):t(A)),Gt=w(()=>t(d)==="raw"?0:1),yt=w(()=>Qt(t(O)||t(s)?.cwd||"")),Vt=w(()=>{const e=[{action:()=>{Z("/")},label:"Go to Home"},{action:()=>{Z("/terminals")},label:"Go to Terminals"},{action:()=>{Z("/config")},label:"Go to Settings"},{action:()=>{n(R,!0)},label:"Show keyboard shortcuts"}];return t(B)&&e.push({action:()=>{_t()},label:"Kill terminal"}),e});function Qt(e){if(!e)return"";const a="";let i=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?i=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(i=`~/${l.slice(3).join("/")}`)}if(i.length>30){const l=i.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return i||a}function V(){try{const e=localStorage.getItem("shooter_config");if(!e)return null;const a=JSON.parse(e);return typeof a?.apiKey=="string"&&a.apiKey?a:null}catch{return null}}async function Xt(){const e=V();if(!e){n(K,"No configuration found. Please configure settings first."),n(N,!1);return}try{const a=await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!a.ok){n(K,a.status===404?"Terminal not found":"Failed to load terminal",!0),n(N,!1);return}n(s,await a.json(),!0)}catch{n(K,"Failed to connect to server")}n(N,!1)}async function wt(){const e=V();if(!e)return null;try{const a=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${e.apiKey}`},method:"POST"});return a.ok?(await a.json()).ticket:null}catch{return null}}async function _t(){if(!t(s)||t(j))return;const e=V();if(e){n(j,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Z("/terminals"):n(j,!1)}catch{n(j,!1)}}}async function Zt(){if(!t(s)||t(x))return;const e=V();if(e){n(x,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Z("/terminals"):n(x,!1)}catch{n(x,!1)}}}async function ct(){if(!t(U)||!t(s)||p)return;const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).ws}`,i=async()=>{const l=await wt();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await _e(async()=>{const{createTerminal:$}=await import("../chunks/B8zoBsv3.js");return{createTerminal:$}},__vite__mapDeps([0,1]),import.meta.url);if(p||!t(U))return;const P=await l({apiKey:V()?.apiKey,container:t(U),fontSize:window.innerWidth<768?12:14,getTicket:i,onActivity:$=>{p||n(W,$,!0)},onCwd:$=>{p||n(O,$,!0)},onDisconnect:()=>{p||n(q,"reconnecting")},onExit:$=>{!p&&t(s)&&(n(s,{...t(s),exitCode:$,exitedAt:new Date().toISOString(),status:"exited"},!0),n(q,"disconnected"))},onReconnect:()=>{p||n(q,"connected")},terminalId:t(J),wsUrl:a});if(p){P.dispose();return}M=P,n(q,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(q,"disconnected")}}function kt(){M&&(M.dispose(),M=null)}async function tt(){if(!t(s)||p||f&&(f.readyState===WebSocket.OPEN||f.readyState===WebSocket.CONNECTING))return;const e=await wt();if(!e||p||!t(s)){n(A,"disconnected");return}const i=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).sessionWs}?ticket=${e}`;f=new WebSocket(i),f.onopen=()=>{p||(n(A,"connected"),f?.send(JSON.stringify({sessionId:t(J),type:"subscribe"})))},f.onmessage=l=>{if(!p)try{const P=JSON.parse(l.data);Yt(P)}catch{}},f.onclose=()=>{!p&&t(s)?.status==="running"&&(n(A,"reconnecting"),L&&clearTimeout(L),L=setTimeout(()=>{L=null,!p&&t(s)?.status==="running"&&tt()},2e3))},f.onerror=()=>{p||n(A,"disconnected")}}function Yt(e){if(e.type==="history"){const a=e.messages||[];n(v,a.map(i=>({id:i.id,parts:i.content,role:i.role,timestamp:i.timestamp})),!0)}else if(e.type==="message")n(v,[...t(v),{id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:e.role||"assistant",timestamp:e.timestamp||new Date().toISOString()}],!0);else if(e.type==="tool-use")n(v,[...t(v),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"}],role:"assistant",timestamp:new Date().toISOString()}],!0);else if(e.type==="tool-result")n(v,[...t(v),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"}],role:"system",timestamp:new Date().toISOString()}],!0);else if(e.type==="thinking"){const a={content:e.text||"",type:"thinking"},i=t(v).length>0?t(v)[t(v).length-1]:null;i?.role==="assistant"?n(v,[...t(v).slice(0,-1),{...i,parts:[...i.parts,a]}],!0):n(v,[...t(v),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()}],!0)}else e.type==="error"?n(v,[...t(v),{id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[{content:e.message||"Unknown error",type:"text"}],role:"system",timestamp:new Date().toISOString()}],!0):e.type==="session-end"&&(n(mt,!0),t(s)&&n(s,{...t(s),status:"exited"},!0))}function St(){L&&(clearTimeout(L),L=null),f&&(f.onclose=null,f.close(),f=null)}function xt(){t(z).trim()&&(M&&t(q)==="connected"&&M.sendInput(`${t(z)}\r`),n(z,""),t(it)?.focus())}function te(e){!e.trim()||f?.readyState!==WebSocket.OPEN||f.send(JSON.stringify({text:e,type:"send-input"}))}function Ct(){f?.readyState===WebSocket.OPEN&&f.send(JSON.stringify({type:"cancel"}))}function ee(e){t(d)==="raw"?M&&t(q)==="connected"&&M.sendInput(e):t(d)==="chat"&&e===""&&Ct()}function ne(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),xt())}let et=!1,nt=!1;function se(e){e!==t(d)&&(n(d,e,!0),e==="raw"&&!et?(requestAnimationFrame(()=>{ct()}),et=!0):e==="chat"&&!nt&&(tt(),nt=!0))}function ae(){t(d)==="raw"?(kt(),n(q,"reconnecting"),ct(),et=!0):(St(),n(A,"reconnecting"),tt(),nt=!0)}je(async()=>{await Xt(),!p&&(ht=He({onHelp:()=>{n(R,!t(R))}}),!(!t(s)||t(K))&&(t(G)&&window.innerWidth<768?n(d,"chat"):n(d,"raw"),t(d)==="raw"?(requestAnimationFrame(()=>{ct()}),et=!0):(tt(),nt=!0)))}),qe(()=>{p=!0,kt(),St(),ht?.destroy()});var It=cn();De("1tubujq",e=>{var a=Ye();Ee(()=>{Ke.title=`${t(gt)??""} - Terminal - Shooter`}),S(e,a)});var Tt=zt(It);{var re=e=>{var a=tn();S(e,a)},oe=e=>{var a=en(),i=c(k(a),2);Le(i,{icon:"alert-triangle",title:"Error",get description(){return t(K)}}),h(a),S(e,a)},ie=e=>{var a=ln(),i=k(a),l=k(i),P=c(k(l),2),$=k(P,!0);h(P);var qt=c(P,2);Ot(qt,{get text(){return t(Ht)},get classes(){return t(Ut)}});var Et=c(qt,2);{var ce=o=>{{let y=w(()=>t(W)?"Active":"Idle");Lt(o,{get text(){return t(y)},position:"bottom",children:(D,F)=>{var I=nn();H(()=>ft(I,1,`activity-dot ${t(W)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(D,I)},$$slots:{default:!0}})}};E(Et,o=>{t(B)&&o(ce)})}var Kt=c(Et,2);{var ue=o=>{{let y=w(()=>t(O)||t(s)?.cwd||"");Lt(o,{get text(){return t(y)},position:"bottom",children:(D,F)=>{var I=sn(),Q=k(I,!0);h(I),H(()=>at(Q,t(yt))),S(D,I)},$$slots:{default:!0}})}};E(Kt,o=>{t(yt)&&o(ue)})}var Dt=c(Kt,2);Fe(Dt,{get status(){return t(bt)},onretry:ae});var de=c(Dt,2);{var ve=o=>{var y=an();H(D=>vt(y,"href",`/session/${D??""}`),[()=>t(s).sessionFile.split(/[\\/]/).pop()?.replace(".jsonl","")||""]),S(o,y)};E(de,o=>{t(G)&&t(s)?.sessionFile&&o(ve)})}h(l);var $t=c(l,2),At=k($t);{var fe=o=>{Pe(o,{get items(){return Jt},get activeIndex(){return t(Gt)},onchange:y=>{se(y===0?"raw":"chat")},classes:"term-tabs"})};E(At,o=>{t(G)&&o(fe)})}var ut=c(At,2),pe=c(ut,2);{var me=o=>{Y(o,{classes:"btn-danger btn-sm",onclick:_t,get disabled(){return t(j)},get showLoader(){return t(j)},text:"Kill"})},he=o=>{Y(o,{classes:"btn-secondary btn-sm",onclick:Zt,get disabled(){return t(x)},get showLoader(){return t(x)},text:"Remove"})};E(pe,o=>{t(B)?o(me):o(he,-1)})}h($t),h(i);var dt=c(i,2);let Mt;Wt(dt,o=>n(U,o),()=>t(U));var Pt=c(dt,2);{var ge=o=>{var y=rn(),D=k(y);Ve(D,{onKey:ee});var F=c(D,2),I=k(F);Wt(Ne(I,{dataType:"text",useTextArea:!0,placeholder:"Type command... (Shift+Enter for new line)",classes:"input-mono term-input-field",onKeyDown:ne,get value(){return t(z)},set value(X){n(z,X,!0)}}),X=>n(it,X,!0),()=>t(it));var Q=c(I,2);{let X=w(()=>!t(z).trim());Y(Q,{classes:"btn-primary btn-send",onclick:xt,get disabled(){return t(X)},text:"↵"})}h(F),h(y),S(o,y)};E(Pt,o=>{t(B)&&t(d)==="raw"&&o(ge)})}var st=c(Pt,2);let Nt;var be=k(st);We(be,{get messages(){return t(v)},get connectionState(){return t(bt)},get sessionEnded(){return t(mt)},get showInput(){return t(B)},onSendInput:te,onCancel:Ct}),h(st);var ye=c(st,2);{var we=o=>{var y=on(),D=c(k(y),2);{var F=I=>{{let Q=w(()=>t(s).exitCode!==0?"pill-exit-error":"pill-exit-ok");Ot(I,{get text(){return`code ${t(s).exitCode??""}`},get classes(){return t(Q)}})}};E(D,I=>{t(s).exitCode!==null&&I(F)})}h(y),S(o,y)};E(ye,o=>{t(B)||o(we)})}h(a),H(()=>{at($,t(gt)),vt(ut,"title",`${pt??""}+/ for shortcuts`),Mt=Rt(dt,"",Mt,{display:t(d)==="raw"?"flex":"none"}),Nt=Rt(st,"",Nt,{display:t(d)==="chat"?"flex":"none"})}),Ie("click",ut,()=>{n(R,!t(R))}),S(e,a)};E(Tt,e=>{t(N)?e(re):t(K)?e(oe,1):t(s)&&e(ie,2)})}var jt=c(Tt,2);Ze(jt,{get open(){return t(R)},onClose:()=>{n(R,!1)}});var le=c(jt,2);ze(le,{get commands(){return t(Vt)},onClose:()=>{n(lt,!1)},get open(){return t(lt)},set open(e){n(lt,e,!0)}}),S(g,It),ot(),T()}Se(["click"]);export{kn as component};
@@ -1 +1 @@
1
- {"version":"1775132154890"}
1
+ {"version":"1775159415510"}
Binary file
Binary file