@juspay/shooter 1.17.0 → 1.18.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 (156) hide show
  1. package/build/client/_app/immutable/assets/{0.B0O0vCnX.css → 0.NV8k8wxG.css} +1 -1
  2. package/build/client/_app/immutable/assets/0.NV8k8wxG.css.br +0 -0
  3. package/build/client/_app/immutable/assets/{0.B0O0vCnX.css.gz → 0.NV8k8wxG.css.gz} +0 -0
  4. package/build/client/_app/immutable/chunks/{BctvtE4d.js → 8lO1IL7u.js} +1 -1
  5. package/build/client/_app/immutable/chunks/8lO1IL7u.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/{BctvtE4d.js.gz → 8lO1IL7u.js.gz} +0 -0
  7. package/build/client/_app/immutable/chunks/B9WQy_3X.js +1 -0
  8. package/build/client/_app/immutable/chunks/B9WQy_3X.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/B9WQy_3X.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/BdtLzPpO.js +1 -0
  11. package/build/client/_app/immutable/chunks/BdtLzPpO.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/BdtLzPpO.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/{CjfxuHdN.js → DJvX78LW.js} +1 -1
  14. package/build/client/_app/immutable/chunks/DJvX78LW.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/DJvX78LW.js.gz +0 -0
  16. package/build/client/_app/immutable/chunks/nWG9RHyB.js +3 -0
  17. package/build/client/_app/immutable/chunks/nWG9RHyB.js.br +0 -0
  18. package/build/client/_app/immutable/chunks/nWG9RHyB.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/{app.CNaTe-zm.js → app.f46Ko1hu.js} +2 -2
  20. package/build/client/_app/immutable/entry/app.f46Ko1hu.js.br +0 -0
  21. package/build/client/_app/immutable/entry/app.f46Ko1hu.js.gz +0 -0
  22. package/build/client/_app/immutable/entry/start.BVDjNnXt.js +1 -0
  23. package/build/client/_app/immutable/entry/start.BVDjNnXt.js.br +2 -0
  24. package/build/client/_app/immutable/entry/start.BVDjNnXt.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{0.C3ELOf4c.js → 0.D_9EwVmq.js} +1 -1
  26. package/build/client/_app/immutable/nodes/0.D_9EwVmq.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/0.D_9EwVmq.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{1.Fqso94b3.js → 1.C4eFlqSB.js} +1 -1
  29. package/build/client/_app/immutable/nodes/1.C4eFlqSB.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/1.C4eFlqSB.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{2.BusCVJWk.js → 2.CdC092Za.js} +1 -1
  32. package/build/client/_app/immutable/nodes/2.CdC092Za.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/2.CdC092Za.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{3.DUlpocIc.js → 3.Dhf4ZWW0.js} +1 -1
  35. package/build/client/_app/immutable/nodes/3.Dhf4ZWW0.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/3.Dhf4ZWW0.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{6.CG4eKRH0.js → 6.B3SEB_li.js} +1 -1
  38. package/build/client/_app/immutable/nodes/6.B3SEB_li.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/6.B3SEB_li.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{7.DHilxD1o.js → 7.DV8cJ1lX.js} +1 -1
  41. package/build/client/_app/immutable/nodes/7.DV8cJ1lX.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/7.DV8cJ1lX.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{8.BjKgvSie.js → 8.Bs362gyb.js} +2 -2
  44. package/build/client/_app/immutable/nodes/8.Bs362gyb.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/8.Bs362gyb.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{9.BRT6HOXB.js → 9.Cf7_3uqT.js} +1 -1
  47. package/build/client/_app/immutable/nodes/9.Cf7_3uqT.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/9.Cf7_3uqT.js.gz +0 -0
  49. package/build/client/_app/version.json +1 -1
  50. package/build/client/_app/version.json.br +0 -0
  51. package/build/client/_app/version.json.gz +0 -0
  52. package/build/server/chunks/{0-BWFSL107.js → 0-Cd7jY0a7.js} +3 -3
  53. package/build/server/chunks/{0-BWFSL107.js.map → 0-Cd7jY0a7.js.map} +1 -1
  54. package/build/server/chunks/{1-Bw5KlAjL.js → 1-C4BOGoJY.js} +2 -2
  55. package/build/server/chunks/{1-Bw5KlAjL.js.map → 1-C4BOGoJY.js.map} +1 -1
  56. package/build/server/chunks/{2-CQ3yYSVK.js → 2-Ba0mNwJ6.js} +2 -2
  57. package/build/server/chunks/{2-CQ3yYSVK.js.map → 2-Ba0mNwJ6.js.map} +1 -1
  58. package/build/server/chunks/{3-DZ4H9hPs.js → 3-Pg8t1uJU.js} +2 -2
  59. package/build/server/chunks/{3-DZ4H9hPs.js.map → 3-Pg8t1uJU.js.map} +1 -1
  60. package/build/server/chunks/{6-BZ0enR6b.js → 6-D8xbnTSo.js} +2 -2
  61. package/build/server/chunks/{6-BZ0enR6b.js.map → 6-D8xbnTSo.js.map} +1 -1
  62. package/build/server/chunks/{7-Lg8imTZn.js → 7-CkVK06S0.js} +2 -2
  63. package/build/server/chunks/{7-Lg8imTZn.js.map → 7-CkVK06S0.js.map} +1 -1
  64. package/build/server/chunks/{8-DKs4yOL7.js → 8-C8qVhrds.js} +2 -2
  65. package/build/server/chunks/{8-DKs4yOL7.js.map → 8-C8qVhrds.js.map} +1 -1
  66. package/build/server/chunks/{9-UNmpUWDY.js → 9-fL5zqN0T.js} +2 -2
  67. package/build/server/chunks/{9-UNmpUWDY.js.map → 9-fL5zqN0T.js.map} +1 -1
  68. package/build/server/chunks/{_server.ts-B1z0q6qZ.js → _server.ts-BA_uWcPw.js} +4 -5
  69. package/build/server/chunks/_server.ts-BA_uWcPw.js.map +1 -0
  70. package/build/server/chunks/{_server.ts-5wx4ZppI.js → _server.ts-Bu3s5hfv.js} +3 -3
  71. package/build/server/chunks/{_server.ts-5wx4ZppI.js.map → _server.ts-Bu3s5hfv.js.map} +1 -1
  72. package/build/server/chunks/{_server.ts-CKXVBbwb.js → _server.ts-CwAjt91u.js} +8 -8
  73. package/build/server/chunks/_server.ts-CwAjt91u.js.map +1 -0
  74. package/build/server/chunks/{_server.ts-CgHc1Zpx.js → _server.ts-DZP2lhaY.js} +3 -3
  75. package/build/server/chunks/{_server.ts-CgHc1Zpx.js.map → _server.ts-DZP2lhaY.js.map} +1 -1
  76. package/build/server/chunks/{_server.ts-BMMTS86y.js → _server.ts-DZgfQKiH.js} +3 -4
  77. package/build/server/chunks/{_server.ts-BMMTS86y.js.map → _server.ts-DZgfQKiH.js.map} +1 -1
  78. package/build/server/chunks/{_server.ts-Bt7EAfjo.js → _server.ts-MbnroWEF.js} +25 -48
  79. package/build/server/chunks/_server.ts-MbnroWEF.js.map +1 -0
  80. package/build/server/chunks/{pty-manager-RmhVe2Ez.js → pty-manager-DmNSCKAr.js} +99 -2
  81. package/build/server/chunks/pty-manager-DmNSCKAr.js.map +1 -0
  82. package/build/server/chunks/qwen-reader-DGfUbKaJ.js +2112 -0
  83. package/build/server/chunks/qwen-reader-DGfUbKaJ.js.map +1 -0
  84. package/build/server/chunks/{registry-DzJj2E6I.js → registry-Kcw2UCMv.js} +55 -23
  85. package/build/server/chunks/registry-Kcw2UCMv.js.map +1 -0
  86. package/build/server/index.js +1 -1
  87. package/build/server/index.js.map +1 -1
  88. package/build/server/manifest.js +15 -15
  89. package/build/server/manifest.js.map +1 -1
  90. package/package.json +2 -2
  91. package/scripts/e2e-all-features.sh +165 -0
  92. package/scripts/e2e-cross-terminal.sh +168 -0
  93. package/server.ts +12 -0
  94. package/src/lib/modules/client/common/provider.ts +0 -2
  95. package/src/lib/modules/client/terminal/ChatView.svelte +9 -2
  96. package/src/lib/modules/client/terminal/LaunchSheet.svelte +3 -0
  97. package/src/lib/modules/server/sessions/amp-reader.ts +439 -0
  98. package/src/lib/modules/server/sessions/copilot-reader.ts +542 -0
  99. package/src/lib/modules/server/sessions/cursor-reader.ts +634 -0
  100. package/src/lib/modules/server/sessions/gemini-reader.ts +48 -25
  101. package/src/lib/modules/server/sessions/opencode-reader.ts +13 -12
  102. package/src/lib/modules/server/sessions/process-detector.ts +37 -60
  103. package/src/lib/modules/server/sessions/provider-paths.ts +173 -0
  104. package/src/lib/modules/server/sessions/qwen-reader.ts +41 -15
  105. package/src/lib/modules/server/sessions/registry.ts +55 -14
  106. package/src/lib/modules/server/terminal/generic-session-watcher.ts +163 -0
  107. package/src/lib/modules/server/terminal/pty-manager.ts +51 -0
  108. package/src/lib/modules/server/ws/session-handler.ts +11 -1
  109. package/src/lib/theme.css +1 -2
  110. package/src/lib/types/generated/Sessions.ts +1 -4
  111. package/src/lib/types/server.ts +23 -6
  112. package/src/lib/types/sessions.ts +1 -10
  113. package/src/routes/api/sessions/connect/+server.ts +7 -3
  114. package/build/client/_app/immutable/assets/0.B0O0vCnX.css.br +0 -0
  115. package/build/client/_app/immutable/chunks/BctvtE4d.js.br +0 -0
  116. package/build/client/_app/immutable/chunks/BxFShcQO.js +0 -1
  117. package/build/client/_app/immutable/chunks/BxFShcQO.js.br +0 -0
  118. package/build/client/_app/immutable/chunks/BxFShcQO.js.gz +0 -0
  119. package/build/client/_app/immutable/chunks/ByzqAuXw.js +0 -3
  120. package/build/client/_app/immutable/chunks/ByzqAuXw.js.br +0 -0
  121. package/build/client/_app/immutable/chunks/ByzqAuXw.js.gz +0 -0
  122. package/build/client/_app/immutable/chunks/CjfxuHdN.js.br +0 -0
  123. package/build/client/_app/immutable/chunks/CjfxuHdN.js.gz +0 -0
  124. package/build/client/_app/immutable/chunks/Pw0jDB7M.js +0 -1
  125. package/build/client/_app/immutable/chunks/Pw0jDB7M.js.br +0 -0
  126. package/build/client/_app/immutable/chunks/Pw0jDB7M.js.gz +0 -0
  127. package/build/client/_app/immutable/entry/app.CNaTe-zm.js.br +0 -0
  128. package/build/client/_app/immutable/entry/app.CNaTe-zm.js.gz +0 -0
  129. package/build/client/_app/immutable/entry/start.hxYnjcDu.js +0 -1
  130. package/build/client/_app/immutable/entry/start.hxYnjcDu.js.br +0 -0
  131. package/build/client/_app/immutable/entry/start.hxYnjcDu.js.gz +0 -0
  132. package/build/client/_app/immutable/nodes/0.C3ELOf4c.js.br +0 -0
  133. package/build/client/_app/immutable/nodes/0.C3ELOf4c.js.gz +0 -0
  134. package/build/client/_app/immutable/nodes/1.Fqso94b3.js.br +0 -0
  135. package/build/client/_app/immutable/nodes/1.Fqso94b3.js.gz +0 -0
  136. package/build/client/_app/immutable/nodes/2.BusCVJWk.js.br +0 -0
  137. package/build/client/_app/immutable/nodes/2.BusCVJWk.js.gz +0 -0
  138. package/build/client/_app/immutable/nodes/3.DUlpocIc.js.br +0 -0
  139. package/build/client/_app/immutable/nodes/3.DUlpocIc.js.gz +0 -0
  140. package/build/client/_app/immutable/nodes/6.CG4eKRH0.js.br +0 -0
  141. package/build/client/_app/immutable/nodes/6.CG4eKRH0.js.gz +0 -0
  142. package/build/client/_app/immutable/nodes/7.DHilxD1o.js.br +0 -0
  143. package/build/client/_app/immutable/nodes/7.DHilxD1o.js.gz +0 -0
  144. package/build/client/_app/immutable/nodes/8.BjKgvSie.js.br +0 -0
  145. package/build/client/_app/immutable/nodes/8.BjKgvSie.js.gz +0 -0
  146. package/build/client/_app/immutable/nodes/9.BRT6HOXB.js.br +0 -0
  147. package/build/client/_app/immutable/nodes/9.BRT6HOXB.js.gz +0 -0
  148. package/build/server/chunks/_server.ts-B1z0q6qZ.js.map +0 -1
  149. package/build/server/chunks/_server.ts-Bt7EAfjo.js.map +0 -1
  150. package/build/server/chunks/_server.ts-CKXVBbwb.js.map +0 -1
  151. package/build/server/chunks/opencode-db-path-BwaPufWf.js +0 -411
  152. package/build/server/chunks/opencode-db-path-BwaPufWf.js.map +0 -1
  153. package/build/server/chunks/pty-manager-RmhVe2Ez.js.map +0 -1
  154. package/build/server/chunks/qwen-reader-2fTFuC_D.js +0 -622
  155. package/build/server/chunks/qwen-reader-2fTFuC_D.js.map +0 -1
  156. package/build/server/chunks/registry-DzJj2E6I.js.map +0 -1
@@ -1 +1 @@
1
- import{i as w,a as p,f as m,s as $}from"../chunks/Cg3dlX05.js";import{p as Qe,s as k,q as We,v as Xe,y as Ye,w as et,z as tt,g as e,b as c,$ as rt,c as o,d as l,r as a,x as u,A as K,B as Z,t as Q}from"../chunks/DYuMZGL5.js";import{b as st,e as ve,i as at,B as N,c as W,P as X,d as ot}from"../chunks/DZvnhU_8.js";import{h as nt}from"../chunks/DZQMsHM5.js";import{g as it}from"../chunks/ByzqAuXw.js";import{p as ct}from"../chunks/BctvtE4d.js";import{A as lt}from"../chunks/DzuS5Nbr.js";import{B as dt}from"../chunks/Bn-6X1BO.js";import{S as ue,R as vt}from"../chunks/BRqaaL5D.js";import{g as ut,s as ft,c as pt}from"../chunks/xs1Xl3_e.js";import{i as mt}from"../chunks/gQJcRhou.js";import"../chunks/BDcFu3l7.js";import{s as fe,a as ht}from"../chunks/BxFShcQO.js";import{f as _t}from"../chunks/BLszSzTT.js";import{E as pe}from"../chunks/C5VOyQCG.js";var gt=m('<meta name="description" content="Project sessions sorted by latest update"/>'),yt=m('<div class="loading-container"><!> <!></div>'),bt=m('<div class="project-back-row svelte-urn6fi"><a href="/" class="back-link"><span class="back-arrow">&larr;</span> Back to Projects</a></div> <!>',1),$t=m("<!> Refresh",1),jt=m('<div class="session-card-subtitle"> </div>'),St=m('<span class="connect-dot svelte-urn6fi"></span> Connect',1),Pt=m('<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>'),xt=m('<div style="text-align: center; padding: 1rem;"><!></div>'),wt=m('<div class="sessions-container svelte-urn6fi"></div> <!>',1),kt=m('<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),Bt=m('<main class="main"><!> <!></main>');function Gt(me,he){Qe(he,!0);const _e=15e3,D=20;let i=k(null),g=k(!0),h=k(null),L=k(null),R=null,B=k(D),Y=k(We([])),j=k(null);const S=u(()=>ct.url.searchParams.get("id")||""),ge=u(()=>e(i)?e(i).sessions.slice(0,e(B)):[]),ye=u(()=>e(i)?e(B)<e(i).sessions.length:!1),be=u(()=>new Set(e(Y).map(t=>t.sessionId).filter(t=>typeof t=="string")));Xe(()=>{$e();const t=ut(`shooter_project_${e(S)}`);t&&(c(i,t,!0),c(g,!1)),setTimeout(()=>{M(),z()},50),R=setInterval(()=>{e(h)?.apiKey&&e(S)&&(M(),z())},_e)}),Ye(()=>{R&&(clearInterval(R),R=null)});function $e(){try{const t=localStorage.getItem("shooter_config");if(t){const r=JSON.parse(t);mt(r)?c(h,r,!0):(localStorage.removeItem("shooter_config"),c(h,null))}}catch{}}async function M(t=!1){if(!e(h)?.apiKey||!e(S)){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(h).apiKey}`}});if(!d.ok){c(L,`Failed to load project (HTTP ${d.status})`),c(g,!1);return}c(L,null);const f=(await d.json()).projects.find(T=>T.id===e(S))||null;c(i,f,!0),f&&ft(`shooter_project_${e(S)}`,f)}catch(r){console.error("Failed to fetch project:",r)}finally{c(g,!1)}}async function z(){if(e(h)?.apiKey)try{const t=await fetch("/api/sessions/detect",{headers:{Authorization:`Bearer ${e(h).apiKey}`}});if(t.ok){const r=await t.json();c(Y,r.processes,!0)}}catch{}}async function ee(t,r,d){if(t.preventDefault(),t.stopPropagation(),!(!e(h)?.apiKey||!e(i)||e(j))){c(j,r,!0);try{const v=await fetch("/api/sessions/connect",{body:JSON.stringify({command:d,cwd:e(i).fullPath,sessionId:r}),headers:{Authorization:`Bearer ${e(h).apiKey}`,"Content-Type":"application/json"},method:"POST"});if(v.ok){const f=await v.json();it(`/terminals/${f.terminalId}`)}}catch(v){console.error("Failed to connect to session:",v)}finally{c(j,null)}}}async function je(){c(g,!0),c(i,null),c(B,D),pt(`shooter_project_${e(S)}`),await M(!0),await z()}function Se(){c(B,e(B)+D)}function te(t){if(!t)return"";const r=new Date(t);return isNaN(r.getTime())?"":r.toLocaleDateString("en-US",{day:"numeric",hour:"2-digit",minute:"2-digit",month:"short"})}function Pe(t,r){return t.length<=r?t:`${t.slice(0,r).trimEnd()}...`}var F=Bt();nt("urn6fi",t=>{var r=gt();tt(()=>{rt.title=`${(e(i)?.name||"Project")??""} - Shooter`}),p(t,r)});var re=o(F);{var xe=t=>{st(t,{get text(){return e(L)},classes:"banner-error"})};w(re,t=>{e(L)&&t(xe)})}var we=l(re,2);{var ke=t=>{var r=yt(),d=o(r);ue(d,{classes:"shimmer-header"});var v=l(d,2);ve(v,16,()=>Array(4),at,(f,T)=>{ue(f,{classes:"shimmer-card"})}),a(r),p(t,r)},Be=t=>{var r=bt(),d=l(K(r),2);pe(d,{title:"Project Not Found",description:"The requested project could not be found.",icon:f=>{W(f,{get svg(){return lt},classes:"icon-24"})}}),p(t,r)},Te=t=>{var r=kt(),d=K(r),v=o(d),f=l(o(v),2);N(f,{classes:"btn-secondary",onclick:je,get disabled(){return e(g)},children:(y,E)=>{var b=$t(),q=K(b);W(q,{get svg(){return vt},classes:"icon-14"}),Z(),p(y,b)},$$slots:{default:!0}}),a(v);var T=l(v,2),Ce=o(T,!0);a(T);var se=l(T,2),O=o(se),Ie=o(O,!0);a(O);var ae=l(O,2),Ae=o(ae);a(ae),a(se),a(d);var Le=l(d,2);{var Re=y=>{pe(y,{title:"No sessions yet",description:"Sessions for this project will appear here",icon:b=>{W(b,{get svg(){return dt},classes:"icon-24"})}})},Ee=y=>{var E=wt(),b=K(E);ve(b,21,()=>e(ge),P=>P.id,(P,s)=>{var C=Pt(),I=o(C),J=o(I),G=o(J),Ne=o(G,!0);a(G);var De=l(G,2);{var Me=n=>{var _=jt(),A=o(_,!0);a(_),Q(x=>$(A,x),[()=>Pe(e(s).summary,80)]),p(n,_)};w(De,n=>{e(s).summary&&n(Me)})}a(J);var oe=l(J,2),ne=o(oe);{let n=u(()=>_t(e(s).modified));X(ne,{get text(){return e(n)},classes:"pill-session-time"})}var ze=l(ne,2);{var Fe=n=>{{let _=u(()=>e(j)===e(s).id),A=u(()=>e(j)===e(s).id);N(n,{classes:"btn-connect btn-xs",onclick:x=>{ee(x,e(s).id,fe(e(s).source))},get disabled(){return e(_)},get showLoader(){return e(A)},children:(x,Tt)=>{var Ze=St();Z(),p(x,Ze)},$$slots:{default:!0}})}},Oe=u(()=>e(be).has(e(s).id)),qe=n=>{{let _=u(()=>e(j)===e(s).id),A=u(()=>e(j)===e(s).id);N(n,{classes:"btn-resume btn-xs",onclick:x=>{ee(x,e(s).id,fe(e(s).source))},get disabled(){return e(_)},get showLoader(){return e(A)},text:"Resume"})}};w(ze,n=>{e(Oe)?n(Fe):n(qe,-1)})}a(oe),a(I);var H=l(I,2),U=o(H),ie=o(U),Je=o(ie,!0);a(ie),Z(),a(U);var ce=l(U,2);{var Ge=n=>{X(n,{get text(){return`🌿 ${e(s).gitBranch??""}`},classes:"pill-git-branch"})};w(ce,n=>{e(s).gitBranch&&n(Ge)})}var He=l(ce,2);{let n=u(()=>ht(e(s).source));X(He,{get text(){return e(n)},get classes(){return`pill-source-${e(s).source??""}`}})}a(H);var le=l(H,2),V=o(le),Ue=o(V);a(V);var de=l(V,2),Ve=o(de);a(de),a(le),a(C),Q((n,_)=>{ot(C,"href",`/session/${e(s).id??""}?project=${e(S)??""}`),$(Ne,e(s).title),$(Je,e(s).messageCount),$(Ue,`Last updated ${n??""}`),$(Ve,`Created ${_??""}`)},[()=>te(e(s).modified),()=>te(e(s).created)]),p(P,C)}),a(b);var q=l(b,2);{var Ke=P=>{var s=xt(),C=o(s);{let I=u(()=>`Load More (${e(i).sessions.length-e(B)} remaining)`);N(C,{classes:"btn-secondary",onclick:Se,get text(){return e(I)}})}a(s),p(P,s)};w(q,P=>{e(ye)&&P(Ke)})}p(y,E)};w(Le,y=>{e(i).sessions.length===0?y(Re):y(Ee,-1)})}Q(()=>{$(Ce,e(i).name),$(Ie,e(i).fullPath),$(Ae,`${e(i).sessionCount??""} sessions`)}),p(t,r)};w(we,t=>{e(g)&&!e(i)?t(ke):e(i)?t(Te,-1):t(Be,1)})}a(F),p(me,F),et()}export{Gt as component};
1
+ import{i as w,a as p,f as m,s as $}from"../chunks/Cg3dlX05.js";import{p as Qe,s as k,q as We,v as Xe,y as Ye,w as et,z as tt,g as e,b as c,$ as rt,c as o,d as l,r as a,x as u,A as K,B as Z,t as Q}from"../chunks/DYuMZGL5.js";import{b as st,e as ve,i as at,B as N,c as W,P as X,d as ot}from"../chunks/DZvnhU_8.js";import{h as nt}from"../chunks/DZQMsHM5.js";import{g as it}from"../chunks/nWG9RHyB.js";import{p as ct}from"../chunks/8lO1IL7u.js";import{A as lt}from"../chunks/DzuS5Nbr.js";import{B as dt}from"../chunks/Bn-6X1BO.js";import{S as ue,R as vt}from"../chunks/BRqaaL5D.js";import{g as ut,s as ft,c as pt}from"../chunks/xs1Xl3_e.js";import{i as mt}from"../chunks/gQJcRhou.js";import"../chunks/BDcFu3l7.js";import{s as fe,a as ht}from"../chunks/BdtLzPpO.js";import{f as _t}from"../chunks/BLszSzTT.js";import{E as pe}from"../chunks/C5VOyQCG.js";var gt=m('<meta name="description" content="Project sessions sorted by latest update"/>'),yt=m('<div class="loading-container"><!> <!></div>'),bt=m('<div class="project-back-row svelte-urn6fi"><a href="/" class="back-link"><span class="back-arrow">&larr;</span> Back to Projects</a></div> <!>',1),$t=m("<!> Refresh",1),jt=m('<div class="session-card-subtitle"> </div>'),St=m('<span class="connect-dot svelte-urn6fi"></span> Connect',1),Pt=m('<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>'),xt=m('<div style="text-align: center; padding: 1rem;"><!></div>'),wt=m('<div class="sessions-container svelte-urn6fi"></div> <!>',1),kt=m('<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),Bt=m('<main class="main"><!> <!></main>');function Gt(me,he){Qe(he,!0);const _e=15e3,D=20;let i=k(null),g=k(!0),h=k(null),L=k(null),R=null,B=k(D),Y=k(We([])),j=k(null);const S=u(()=>ct.url.searchParams.get("id")||""),ge=u(()=>e(i)?e(i).sessions.slice(0,e(B)):[]),ye=u(()=>e(i)?e(B)<e(i).sessions.length:!1),be=u(()=>new Set(e(Y).map(t=>t.sessionId).filter(t=>typeof t=="string")));Xe(()=>{$e();const t=ut(`shooter_project_${e(S)}`);t&&(c(i,t,!0),c(g,!1)),setTimeout(()=>{M(),z()},50),R=setInterval(()=>{e(h)?.apiKey&&e(S)&&(M(),z())},_e)}),Ye(()=>{R&&(clearInterval(R),R=null)});function $e(){try{const t=localStorage.getItem("shooter_config");if(t){const r=JSON.parse(t);mt(r)?c(h,r,!0):(localStorage.removeItem("shooter_config"),c(h,null))}}catch{}}async function M(t=!1){if(!e(h)?.apiKey||!e(S)){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(h).apiKey}`}});if(!d.ok){c(L,`Failed to load project (HTTP ${d.status})`),c(g,!1);return}c(L,null);const f=(await d.json()).projects.find(T=>T.id===e(S))||null;c(i,f,!0),f&&ft(`shooter_project_${e(S)}`,f)}catch(r){console.error("Failed to fetch project:",r)}finally{c(g,!1)}}async function z(){if(e(h)?.apiKey)try{const t=await fetch("/api/sessions/detect",{headers:{Authorization:`Bearer ${e(h).apiKey}`}});if(t.ok){const r=await t.json();c(Y,r.processes,!0)}}catch{}}async function ee(t,r,d){if(t.preventDefault(),t.stopPropagation(),!(!e(h)?.apiKey||!e(i)||e(j))){c(j,r,!0);try{const v=await fetch("/api/sessions/connect",{body:JSON.stringify({command:d,cwd:e(i).fullPath,sessionId:r}),headers:{Authorization:`Bearer ${e(h).apiKey}`,"Content-Type":"application/json"},method:"POST"});if(v.ok){const f=await v.json();it(`/terminals/${f.terminalId}`)}}catch(v){console.error("Failed to connect to session:",v)}finally{c(j,null)}}}async function je(){c(g,!0),c(i,null),c(B,D),pt(`shooter_project_${e(S)}`),await M(!0),await z()}function Se(){c(B,e(B)+D)}function te(t){if(!t)return"";const r=new Date(t);return isNaN(r.getTime())?"":r.toLocaleDateString("en-US",{day:"numeric",hour:"2-digit",minute:"2-digit",month:"short"})}function Pe(t,r){return t.length<=r?t:`${t.slice(0,r).trimEnd()}...`}var F=Bt();nt("urn6fi",t=>{var r=gt();tt(()=>{rt.title=`${(e(i)?.name||"Project")??""} - Shooter`}),p(t,r)});var re=o(F);{var xe=t=>{st(t,{get text(){return e(L)},classes:"banner-error"})};w(re,t=>{e(L)&&t(xe)})}var we=l(re,2);{var ke=t=>{var r=yt(),d=o(r);ue(d,{classes:"shimmer-header"});var v=l(d,2);ve(v,16,()=>Array(4),at,(f,T)=>{ue(f,{classes:"shimmer-card"})}),a(r),p(t,r)},Be=t=>{var r=bt(),d=l(K(r),2);pe(d,{title:"Project Not Found",description:"The requested project could not be found.",icon:f=>{W(f,{get svg(){return lt},classes:"icon-24"})}}),p(t,r)},Te=t=>{var r=kt(),d=K(r),v=o(d),f=l(o(v),2);N(f,{classes:"btn-secondary",onclick:je,get disabled(){return e(g)},children:(y,E)=>{var b=$t(),q=K(b);W(q,{get svg(){return vt},classes:"icon-14"}),Z(),p(y,b)},$$slots:{default:!0}}),a(v);var T=l(v,2),Ce=o(T,!0);a(T);var se=l(T,2),O=o(se),Ie=o(O,!0);a(O);var ae=l(O,2),Ae=o(ae);a(ae),a(se),a(d);var Le=l(d,2);{var Re=y=>{pe(y,{title:"No sessions yet",description:"Sessions for this project will appear here",icon:b=>{W(b,{get svg(){return dt},classes:"icon-24"})}})},Ee=y=>{var E=wt(),b=K(E);ve(b,21,()=>e(ge),P=>P.id,(P,s)=>{var C=Pt(),I=o(C),J=o(I),G=o(J),Ne=o(G,!0);a(G);var De=l(G,2);{var Me=n=>{var _=jt(),A=o(_,!0);a(_),Q(x=>$(A,x),[()=>Pe(e(s).summary,80)]),p(n,_)};w(De,n=>{e(s).summary&&n(Me)})}a(J);var oe=l(J,2),ne=o(oe);{let n=u(()=>_t(e(s).modified));X(ne,{get text(){return e(n)},classes:"pill-session-time"})}var ze=l(ne,2);{var Fe=n=>{{let _=u(()=>e(j)===e(s).id),A=u(()=>e(j)===e(s).id);N(n,{classes:"btn-connect btn-xs",onclick:x=>{ee(x,e(s).id,fe(e(s).source))},get disabled(){return e(_)},get showLoader(){return e(A)},children:(x,Tt)=>{var Ze=St();Z(),p(x,Ze)},$$slots:{default:!0}})}},Oe=u(()=>e(be).has(e(s).id)),qe=n=>{{let _=u(()=>e(j)===e(s).id),A=u(()=>e(j)===e(s).id);N(n,{classes:"btn-resume btn-xs",onclick:x=>{ee(x,e(s).id,fe(e(s).source))},get disabled(){return e(_)},get showLoader(){return e(A)},text:"Resume"})}};w(ze,n=>{e(Oe)?n(Fe):n(qe,-1)})}a(oe),a(I);var H=l(I,2),U=o(H),ie=o(U),Je=o(ie,!0);a(ie),Z(),a(U);var ce=l(U,2);{var Ge=n=>{X(n,{get text(){return`🌿 ${e(s).gitBranch??""}`},classes:"pill-git-branch"})};w(ce,n=>{e(s).gitBranch&&n(Ge)})}var He=l(ce,2);{let n=u(()=>ht(e(s).source));X(He,{get text(){return e(n)},get classes(){return`pill-source-${e(s).source??""}`}})}a(H);var le=l(H,2),V=o(le),Ue=o(V);a(V);var de=l(V,2),Ve=o(de);a(de),a(le),a(C),Q((n,_)=>{ot(C,"href",`/session/${e(s).id??""}?project=${e(S)??""}`),$(Ne,e(s).title),$(Je,e(s).messageCount),$(Ue,`Last updated ${n??""}`),$(Ve,`Created ${_??""}`)},[()=>te(e(s).modified),()=>te(e(s).created)]),p(P,C)}),a(b);var q=l(b,2);{var Ke=P=>{var s=xt(),C=o(s);{let I=u(()=>`Load More (${e(i).sessions.length-e(B)} remaining)`);N(C,{classes:"btn-secondary",onclick:Se,get text(){return e(I)}})}a(s),p(P,s)};w(q,P=>{e(ye)&&P(Ke)})}p(y,E)};w(Le,y=>{e(i).sessions.length===0?y(Re):y(Ee,-1)})}Q(()=>{$(Ce,e(i).name),$(Ie,e(i).fullPath),$(Ae,`${e(i).sessionCount??""} sessions`)}),p(t,r)};w(we,t=>{e(g)&&!e(i)?t(ke):e(i)?t(Te,-1):t(Be,1)})}a(F),p(me,F),et()}export{Gt as component};
@@ -1,4 +1,4 @@
1
- import{i as K,a as h,f as g,s as V}from"../chunks/Cg3dlX05.js";import{p as ge,s as v,q as we,v as ye,w as be,z as Se,b as s,g as e,$ as _e,c as _,r as $,x as P,A as H,d as D,t as Q}from"../chunks/DYuMZGL5.js";import{h as $e}from"../chunks/DZQMsHM5.js";import{d as X,B as ke}from"../chunks/DZvnhU_8.js";import{p as x}from"../chunks/BctvtE4d.js";import{g as Ie,s as Y}from"../chunks/xs1Xl3_e.js";import"../chunks/BDcFu3l7.js";import{s as Z}from"../chunks/BxFShcQO.js";import{C as je}from"../chunks/Pw0jDB7M.js";var Ce=g('<meta name="description" content="Session conversation view"/>'),Oe=g('<div class="loading-container" aria-live="polite" aria-busy="true"><div class="shimmer shimmer-header" aria-hidden="true"></div> <div class="chat-container"><div class="shimmer shimmer-bubble shimmer-bubble-user" aria-hidden="true"></div> <div class="shimmer shimmer-bubble shimmer-bubble-assistant" aria-hidden="true"></div> <div class="shimmer shimmer-bubble shimmer-bubble-user-short" aria-hidden="true"></div> <div class="shimmer shimmer-bubble shimmer-bubble-assistant-wide" aria-hidden="true"></div></div></div>'),Me=g('<div class="session-back-row svelte-1a2wdfb"><a class="back-link">← Back</a></div> <p class="error-text svelte-1a2wdfb"> </p>',1),Ne=g('<span class="resume-status svelte-1a2wdfb">Connecting...</span>'),Ae=g('<span class="resume-status svelte-1a2wdfb">Resuming session...</span>'),Te=g('<span class="connection-dot connected svelte-1a2wdfb"></span>'),Pe=g('<span class="connection-dot reconnecting svelte-1a2wdfb"></span>'),De=g('<div class="load-earlier-row svelte-1a2wdfb"><!></div>'),Re=g('<div class="session-header svelte-1a2wdfb"><div class="session-header-row svelte-1a2wdfb"><a class="back-link">← Back</a> <!></div> <h1 class="session-title svelte-1a2wdfb"> </h1></div> <div class="session-chat-container svelte-1a2wdfb"><!> <!></div>',1),We=g('<main class="main session-page-main svelte-1a2wdfb"><!></main>');function Fe(ee,te){ge(te,!0);let f=v(null),i=v(we([])),w=v(!0),I=v(null),R=v(!1),N=v(!1),A=v(200),j=v(null),k=v("idle"),c=v("idle"),y=null,b=null,C=null,O=null,d=!1;const W=P(()=>x.params.id),M=P(()=>x.url.searchParams.get("project")||""),se=P(()=>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 L(){const t=T();if(!t)return null;try{const n=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${t.apiKey}`},method:"POST"});return n.ok?(await n.json()).ticket:null}catch{return null}}async function z(t,n){if(d||C&&(C.readyState===WebSocket.OPEN||C.readyState===WebSocket.CONNECTING))return;const a=await L();if(!a||d)return;s(k,"connecting");const o=window.location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${o}//${window.location.host}${t}?ticket=${a}`);r.onopen=()=>{if(d){r.close();return}s(k,"connected"),r.send(JSON.stringify({sessionId:n,type:"subscribe"}))},r.onmessage=u=>{if(!d)try{const p=JSON.parse(u.data);ne(p)}catch{}},r.onclose=()=>{d||(s(k,"disconnected"),C=null,e(j)&&(O&&clearTimeout(O),O=setTimeout(()=>{O=null,!d&&e(j)&&z(`/ws/session/${e(j)}`,e(j))},2e3)))},r.onerror=()=>{d||s(k,"disconnected")},C=r}async function q(t){if(d)return;const n=await L();if(!n||d)return;const a=window.location.protocol==="https:"?"wss:":"ws:",o=new WebSocket(`${a}//${window.location.host}${t}?ticket=${n}`);o.onopen=()=>{if(d){o.close();return}b=o,e(c)==="ready"&&y&&(o.send(JSON.stringify({data:`${y}
1
+ import{i as K,a as h,f as g,s as V}from"../chunks/Cg3dlX05.js";import{p as ge,s as v,q as we,v as ye,w as be,z as Se,b as s,g as e,$ as _e,c as _,r as $,x as P,A as H,d as D,t as Q}from"../chunks/DYuMZGL5.js";import{h as $e}from"../chunks/DZQMsHM5.js";import{d as X,B as ke}from"../chunks/DZvnhU_8.js";import{p as x}from"../chunks/8lO1IL7u.js";import{g as Ie,s as Y}from"../chunks/xs1Xl3_e.js";import"../chunks/BDcFu3l7.js";import{s as Z}from"../chunks/BdtLzPpO.js";import{C as je}from"../chunks/B9WQy_3X.js";var Ce=g('<meta name="description" content="Session conversation view"/>'),Oe=g('<div class="loading-container" aria-live="polite" aria-busy="true"><div class="shimmer shimmer-header" aria-hidden="true"></div> <div class="chat-container"><div class="shimmer shimmer-bubble shimmer-bubble-user" aria-hidden="true"></div> <div class="shimmer shimmer-bubble shimmer-bubble-assistant" aria-hidden="true"></div> <div class="shimmer shimmer-bubble shimmer-bubble-user-short" aria-hidden="true"></div> <div class="shimmer shimmer-bubble shimmer-bubble-assistant-wide" aria-hidden="true"></div></div></div>'),Me=g('<div class="session-back-row svelte-1a2wdfb"><a class="back-link">← Back</a></div> <p class="error-text svelte-1a2wdfb"> </p>',1),Ne=g('<span class="resume-status svelte-1a2wdfb">Connecting...</span>'),Ae=g('<span class="resume-status svelte-1a2wdfb">Resuming session...</span>'),Te=g('<span class="connection-dot connected svelte-1a2wdfb"></span>'),Pe=g('<span class="connection-dot reconnecting svelte-1a2wdfb"></span>'),De=g('<div class="load-earlier-row svelte-1a2wdfb"><!></div>'),Re=g('<div class="session-header svelte-1a2wdfb"><div class="session-header-row svelte-1a2wdfb"><a class="back-link">← Back</a> <!></div> <h1 class="session-title svelte-1a2wdfb"> </h1></div> <div class="session-chat-container svelte-1a2wdfb"><!> <!></div>',1),We=g('<main class="main session-page-main svelte-1a2wdfb"><!></main>');function Fe(ee,te){ge(te,!0);let f=v(null),i=v(we([])),w=v(!0),I=v(null),R=v(!1),N=v(!1),A=v(200),j=v(null),k=v("idle"),c=v("idle"),y=null,b=null,C=null,O=null,d=!1;const W=P(()=>x.params.id),M=P(()=>x.url.searchParams.get("project")||""),se=P(()=>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 L(){const t=T();if(!t)return null;try{const n=await fetch("/api/ws-ticket",{headers:{Authorization:`Bearer ${t.apiKey}`},method:"POST"});return n.ok?(await n.json()).ticket:null}catch{return null}}async function z(t,n){if(d||C&&(C.readyState===WebSocket.OPEN||C.readyState===WebSocket.CONNECTING))return;const a=await L();if(!a||d)return;s(k,"connecting");const o=window.location.protocol==="https:"?"wss:":"ws:",r=new WebSocket(`${o}//${window.location.host}${t}?ticket=${a}`);r.onopen=()=>{if(d){r.close();return}s(k,"connected"),r.send(JSON.stringify({sessionId:n,type:"subscribe"}))},r.onmessage=u=>{if(!d)try{const p=JSON.parse(u.data);ne(p)}catch{}},r.onclose=()=>{d||(s(k,"disconnected"),C=null,e(j)&&(O&&clearTimeout(O),O=setTimeout(()=>{O=null,!d&&e(j)&&z(`/ws/session/${e(j)}`,e(j))},2e3)))},r.onerror=()=>{d||s(k,"disconnected")},C=r}async function q(t){if(d)return;const n=await L();if(!n||d)return;const a=window.location.protocol==="https:"?"wss:":"ws:",o=new WebSocket(`${a}//${window.location.host}${t}?ticket=${n}`);o.onopen=()=>{if(d){o.close();return}b=o,e(c)==="ready"&&y&&(o.send(JSON.stringify({data:`${y}
2
2
  `,type:"input"})),y=null)},o.onclose=()=>{b===o&&(b=null)}}function ne(t){if(t.type==="history"){const n=t.messages||[];s(i,n.map(a=>({id:a.id,parts:a.content,role:a.role,timestamp:a.timestamp})),!0),s(R,!1),e(c)==="resuming"&&(s(c,"ready"),y&&b?.readyState===WebSocket.OPEN&&(b.send(JSON.stringify({data:`${y}
3
3
  `,type:"input"})),y=null))}else if(t.type==="message")s(i,[...e(i),{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 n={id:t.id||`tool-${Date.now()}`,input:t.input||{},toolName:t.name,type:"tool_use"},a=e(i).length>0?e(i)[e(i).length-1]:null;a?.role==="assistant"?s(i,[...e(i).slice(0,-1),{...a,parts:[...a.parts,n]}],!0):s(i,[...e(i),{id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[n],role:"assistant",timestamp:new Date().toISOString()}],!0)}else if(t.type==="tool-result"){const n={isError:t.isError||!1,output:t.output||"",toolUseId:t.id,type:"tool_result"},a=e(i).length>0?e(i)[e(i).length-1]:null;a?.role==="system"?s(i,[...e(i).slice(0,-1),{...a,parts:[...a.parts,n]}],!0):s(i,[...e(i),{id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[n],role:"system",timestamp:new Date().toISOString()}],!0)}else if(t.type==="thinking"){const n={content:t.text||"",type:"thinking"},a=e(i).length>0?e(i)[e(i).length-1]:null;a?.role==="assistant"?s(i,[...e(i).slice(0,-1),{...a,parts:[...a.parts,n]}],!0):s(i,[...e(i),{id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[n],role:"assistant",timestamp:new Date().toISOString()}],!0)}else t.type==="session-end"&&s(c,"idle")}async function ae(){if(!e(f)||d){s(c,"idle");return}const t=T();if(!t){s(c,"idle");return}s(c,"connecting");try{const n=Z(e(f).source),a=await fetch("/api/sessions/connect",{body:JSON.stringify({command:n,cwd:e(f).projectPath,sessionId:e(W)}),headers:{Authorization:`Bearer ${t.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!a.ok||d){s(c,"idle");return}const o=await a.json();s(j,o.terminalId,!0),s(c,"resuming"),z(o.sessionWs,o.terminalId),q(o.ws)}catch{s(c,"idle")}}function ie(t){if(t.trim()){if(e(c)==="ready"&&b?.readyState===WebSocket.OPEN){b.send(JSON.stringify({data:`${t}
4
4
  `,type:"input"}));return}if(e(c)==="connecting"||e(c)==="resuming"){y=t;return}y=t,ae()}}async function oe(){e(i).length===0&&s(w,!0);try{const t=T();if(!t){s(I,"No configuration found. Please configure settings first."),s(w,!1);return}const n=e(W)??"",a=e(M);if(!n){s(I,"No session ID"),s(w,!1);return}const o=a?`id=${encodeURIComponent(n)}&project=${encodeURIComponent(a)}&limit=${e(A)}`:`id=${encodeURIComponent(n)}&limit=${e(A)}`;let r=await fetch(`/api/sessions?${o}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});if(r.status===404&&!a){const S=await fetch("/api/sessions",{headers:{Authorization:`Bearer ${t.apiKey}`}});if(S.ok){const J=await S.json();for(const B of J.projects||[])if((B.sessions||[]).find(U=>U.id===n)){r=await fetch(`/api/sessions?id=${encodeURIComponent(n)}&project=${encodeURIComponent(B.id)}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});break}}}if(!r.ok){s(I,"Session not found"),s(w,!1);return}const u=await r.json(),p=Array.isArray(u.messages)?u.messages:[];Y(`shooter_session_${n}`,{messages:p,session:u.session}),s(f,u.session,!0),s(i,p,!0),s(R,p.length>=e(A)),s(w,!1);return}catch{s(I,"Failed to load session")}s(w,!1)}async function re(){if(e(N))return;const t=T();if(t){s(N,!0);try{const n=e(A)+200,a=e(W)??"",o=e(M);if(!a)return;const r=[`id=${encodeURIComponent(a)}`,`limit=${n}`];o&&r.push(`project=${encodeURIComponent(o)}`);const u=await fetch(`/api/sessions?${r.join("&")}`,{headers:{Authorization:`Bearer ${t.apiKey}`}});if(!u.ok)return;const p=await u.json(),S=Array.isArray(p.messages)?p.messages:[];s(i,S,!0),s(A,n),s(R,S.length>=n),Y(`shooter_session_${a}`,{messages:S,session:p.session})}catch{}finally{s(N,!1)}}}ye(()=>{const t=Ie(`shooter_session_${x.params.id}`);return t&&(s(f,t.session,!0),s(i,Array.isArray(t.messages)?t.messages:[],!0),s(w,!1)),oe().then(async()=>{if(!e(f)||d)return;const n=T();if(n)try{const a=Z(e(f).source),o=await fetch("/api/sessions/connect",{body:JSON.stringify({command:a,cwd:e(f).projectPath,noCreate:!0,sessionId:e(W)}),headers:{Authorization:`Bearer ${n.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(o.ok&&!d){const r=await o.json();s(j,r.terminalId,!0),s(c,"resuming"),z(r.sessionWs,r.terminalId),q(r.ws)}}catch{}}),()=>{d=!0,O&&clearTimeout(O),C?.close(),b?.close()}});var E=We();$e("1a2wdfb",t=>{var n=Ce();Se(()=>{_e.title=`${(e(f)?.title||"Session")??""} - Shooter`}),h(t,n)});var ce=_(E);{var le=t=>{var n=Oe();h(t,n)},de=t=>{var n=Me(),a=H(n),o=_(a);$(a);var r=D(a,2),u=_(r,!0);$(r),Q(()=>{X(o,"href",e(M)?`/project?id=${e(M)}`:"/"),V(u,e(I))}),h(t,n)},ue=t=>{var n=Re(),a=H(n),o=_(a),r=_(o),u=D(r,2);{var p=l=>{var m=Ne();h(l,m)},S=l=>{var m=Ae();h(l,m)},J=l=>{var m=Te();h(l,m)},B=l=>{var m=Pe();h(l,m)};K(u,l=>{e(c)==="connecting"?l(p):e(c)==="resuming"?l(S,1):e(k)==="connected"?l(J,2):e(k)==="reconnecting"&&l(B,3)})}$(o);var U=D(o,2),fe=_(U,!0);$(U),$(a);var F=D(a,2),G=_(F);{var pe=l=>{var m=De(),he=_(m);{let ve=P(()=>e(N)?"Loading...":"Load earlier messages");ke(he,{get text(){return e(ve)},classes:"btn-ghost btn-sm",get disabled(){return e(N)},onclick:re})}$(m),h(l,m)};K(G,l=>{e(R)&&l(pe)})}var me=D(G,2);{let l=P(()=>[...e(i)].reverse());je(me,{get messages(){return e(l)},newestFirst:!0,get connectionState(){return e(k)},showInput:!0,get sendDisabled(){return e(se)},onSendInput:ie,sessionEnded:!1})}$(F),Q(()=>{X(r,"href",e(M)?`/project?id=${e(M)}`:"/"),V(fe,e(f).title)}),h(t,n)};K(ce,t=>{e(w)&&e(i).length===0?t(le):e(I)?t(de,1):e(f)&&t(ue,2)})}$(E),h(ee,E),be()}export{Fe as component};
@@ -1,2 +1,2 @@
1
- import{p as fe,j as Ve,i as H,a as _,s as M,f as b,t as We}from"../chunks/Cg3dlX05.js";import{p as ke,v as $e,A as _e,w as Me,b as l,c as n,r as s,t as K,g as e,s as P,x as T,q as Ke,d as c,B as he,y as Ye,N as Ue,$ as Xe}from"../chunks/DYuMZGL5.js";import{T as Pe,s as Le,d as ie,S as et,e as ge,C as tt,f as at,I as st,B as ne,b as Be,c as Ae,i as rt,P as Ie,g as nt}from"../chunks/DZvnhU_8.js";import{h as it}from"../chunks/DZQMsHM5.js";import{g as De}from"../chunks/ByzqAuXw.js";import{R as lt,S as ot}from"../chunks/BRqaaL5D.js";import{S as ct}from"../chunks/CG453M9q.js";import{T as dt}from"../chunks/CSjf4fBs.js";import{c as ut,s as Ee,g as vt}from"../chunks/xs1Xl3_e.js";import{i as mt}from"../chunks/gQJcRhou.js";import"../chunks/BDcFu3l7.js";import{A as pt}from"../chunks/BxFShcQO.js";import{E as Ne}from"../chunks/C5VOyQCG.js";var ft=b("<time> </time>"),ht=b("<time> </time>");function je(le,d){ke(d,!0);let U=fe(d,"format",3,"long"),L=fe(d,"updateInterval",3,6e4),B=fe(d,"tooltip",3,!1),v=T(()=>d.date instanceof Date?d.date:new Date(d.date)),w=T(()=>e(v).toISOString()),O=T(()=>e(v).toLocaleString(d.locale,{dateStyle:"full",timeStyle:"short"})),x=P("");function h(){const S=Date.now(),f=e(v).getTime()-S,u=Math.abs(f),g=Math.round(u/1e3),J=Math.round(u/6e4),R=Math.round(u/36e5),z=Math.round(u/864e5),F=Math.round(u/6048e5),ee=Math.round(u/2592e6),Q=Math.round(u/31536e6),te=new Intl.RelativeTimeFormat(d.locale,{style:U()});let A,o;g<60?(A="second",o=g):J<60?(A="minute",o=J):R<24?(A="hour",o=R):z<7?(A="day",o=z):F<4?(A="week",o=F):ee<12?(A="month",o=ee):(A="year",o=Q);const E=f<0?-1:1;return te.format(E*o,A)}function D(){l(x,h(),!0)}$e(()=>{if(D(),L()>0){const S=setInterval(D,L());return()=>clearInterval(S)}});var X=Ve(),oe=_e(X);{var ce=S=>{Pe(S,{get text(){return e(O)},children:(m,f)=>{var u=ft(),g=n(u,!0);s(u),K(()=>{Le(u,1,`relative-time ${d.classes??""??""}`,"svelte-o98vko"),ie(u,"datetime",e(w)),ie(u,"data-pw",typeof d.testId=="string"?d.testId:null),M(g,e(x))}),_(m,u)},$$slots:{default:!0}})},q=S=>{var m=ht(),f=n(m,!0);s(m),K(()=>{Le(m,1,`relative-time ${d.classes??""??""}`,"svelte-o98vko"),ie(m,"datetime",e(w)),ie(m,"data-pw",typeof d.testId=="string"?d.testId:null),M(f,e(x))}),_(S,m)};H(oe,S=>{B()?S(ce):S(q,-1)})}_(le,X),Me()}var gt=b('<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> <!> <!>',1);function _t(le,d){ke(d,!0);let U=fe(d,"open",15,!1);const L=[{args:[],command:"claude",label:"Claude Code"},{args:[],command:"codex",label:"Codex"},{args:[],command:"gemini",label:"Gemini"},{args:[],command:"qwen",label:"Qwen"},{args:[],command:"opencode",label:"OpenCode"},{args:[],command:"zsh",label:"Shell / zsh"},{args:[],command:"bash",label:"Bash"}];let B=P(0),v=P(Ke([])),w=P(""),O=P(""),x=P(!1),h=P("");$e(()=>{D()});async function D(){try{const m=await fetch("/api/sessions?limit=50&offset=0",{headers:{Authorization:`Bearer ${d.apiKey}`}});if(!m.ok)return;const u=(await m.json()).projects.map(g=>g.fullPath).filter(g=>typeof g=="string"&&g.length>0);l(v,[...new Set(u)],!0),e(v).length>0&&!e(w)&&l(w,e(v)[0],!0)}catch{}}function X(m){l(B,m,!0)}function oe(){return L[e(B)].command}function ce(){return L[e(B)].args}function q(){const m=e(O).trim();return m||(e(w)?e(w):"/tmp")}async function S(){const m=oe();if(m){l(x,!0),l(h,"");try{const f=await fetch("/api/terminals",{body:JSON.stringify({args:ce(),command:m,cwd:q()||void 0}),headers:{Authorization:`Bearer ${d.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!f.ok){const g=await f.json().catch(()=>({}));l(h,(typeof g.error=="string"?g.error:"")||`Failed to launch (${f.status})`,!0);return}const u=await f.json();d.onLaunch(u)}catch{l(h,"Network error — is the server running?")}finally{l(x,!1)}}}et(le,{side:"bottom",title:"New Terminal",get onclose(){return d.onClose},classes:"launch-sheet",get open(){return U()},set open(f){U(f)},content:f=>{var u=gt(),g=_e(u),J=c(n(g),2);ge(J,23,()=>L,o=>o.label,(o,E,k)=>{{let de=T(()=>e(B)===e(k));tt(o,{mode:"radio",get selected(){return e(de)},onclick:()=>{X(e(k))},classes:"preset-choice",children:(ue,we)=>{he();var ve=We();K(()=>M(ve,e(E).label)),_(ue,ve)},$$slots:{default:!0}})}}),s(J),s(g);var R=c(g,2),z=c(n(R),2);{let o=T(()=>e(v).length>0?e(v).map(k=>({id:k,label:k})):[{id:"",label:"No recent projects"}]),E=T(()=>e(w)?[e(w)]:e(v).length>0?[e(v)[0]]:[""]);at(z,{get items(){return e(o)},get value(){return e(E)},placeholder:"Select a project",onchange:k=>{l(w,k[0]||"",!0)},classes:"launch-select"})}var F=c(z,2),ee=n(F);st(ee,{label:"Or enter a custom path",dataType:"text",placeholder:"/path/to/project",classes:"input-mono launch-input",get value(){return e(O)},set value(o){l(O,o,!0)}}),s(F),s(R);var Q=c(R,2);{let o=T(()=>e(x)?"Launching...":"Launch Terminal");ne(Q,{classes:"btn-launch",get disabled(){return e(x)},onclick:S,get showLoader(){return e(x)},get text(){return e(o)}})}var te=c(Q,2);{var A=o=>{Be(o,{get text(){return e(h)},classes:"banner-error launch-error-banner"})};H(te,o=>{e(h)&&o(A)})}_(f,u)},$$slots:{content:!0}}),Me()}var wt=b('<meta name="description" content="Active terminal sessions on this machine"/>'),bt=b("<!> Refresh",1),xt=b('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),yt=b('<div class="loading-container"></div>'),St=b('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),Tt=b('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Ct=b('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),At=b('<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> <!></div> <div class="terminal-card-meta svelte-1ewpmn2"><!> <span class="terminal-pid svelte-1ewpmn2"> </span></div> <!></a>'),It=b('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Pt=b('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),Lt=b('<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"></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!> <!></div> <div class="terminal-card-right svelte-1ewpmn2"><!> <!></div></div> <div class="terminal-card-meta svelte-1ewpmn2"><!></div> <!></a>'),kt=b('<div class="terminals-container svelte-1ewpmn2"><!> <!></div>'),$t=b('<main class="main"><div class="page-header"><div class="page-header-content"><div><h1 class="page-title">Terminals</h1> <p class="page-description">Active terminal sessions on this machine</p></div> <div class="page-actions"><!> <!></div></div></div> <!> <!></main> <!>',1);function Jt(le,d){ke(d,!0);const U=1e4,L="shooter_terminals",B=["zsh","bash","sh","fish"];let v=P(Ke([])),w=P(!1),O=!1,x=P(null),h=P(null),D=null;const X=T(()=>e(v).filter(t=>t.status==="running")),oe=T(()=>e(v).filter(t=>t.status==="exited"));$e(()=>{ce();const t=vt(L,1e4);t&&(l(v,t,!0),l(w,!1)),q(),D=setInterval(()=>{e(h)?.apiKey&&q()},U)}),Ye(()=>{D&&(clearInterval(D),D=null)});function ce(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);mt(a)?l(h,a,!0):(localStorage.removeItem("shooter_config"),l(h,null))}}catch{}}async function q(){if(!(!e(h)?.apiKey||O)){O=!0,e(v).length===0&&l(w,!0);try{const a=await fetch("/api/terminals",{headers:{Authorization:`Bearer ${e(h).apiKey}`}});if(!a.ok){l(x,`Failed to load terminals (HTTP ${a.status})`);return}l(x,null);const r=await a.json();l(v,r.terminals.map(y=>({...y,lastOutput:y.lastOutput??null})),!0),Ee(L,e(v))}catch(t){l(x,"Failed to load terminals"),console.error("Failed to fetch terminals:",t)}finally{l(w,!1),O=!1}}}async function S(){l(w,!0),ut(L),await q()}function m(){De("/config")}let f=P(!1);function u(){l(f,!0)}function g(){l(f,!1)}function J(t){l(f,!1),De(`/terminals/${t.id}`)}function R(t){const a=t.split("/").pop()||t;return pt.includes(a)?"ai":(B.includes(a),"shell")}function z(t){return t.status==="exited"?{class:"pill-badge-ended",label:"ENDED"}:R(t.command)==="ai"?{class:"pill-badge-ai",label:"AI"}:{class:"pill-badge-shell",label:"SHELL"}}function F(t,a=40){if(t.length<=a)return t;const r=t.split("/");return r.length<=3?t:`${r[0]}/.../${r.slice(-2).join("/")}`}function ee(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 Q(t,a=80){if(!t)return"";const r=t.split(`
2
- `).map(C=>ee(C)).filter(C=>C.trim()),y=r[r.length-1]||"";return y.length<=a?y:`${y.slice(0,a)}...`}function te(t){return t.split("/").pop()||t}async function A(t,a){if(t.preventDefault(),t.stopPropagation(),!!e(h)?.apiKey)try{(await fetch(`/api/terminals/${a}`,{headers:{Authorization:`Bearer ${e(h).apiKey}`},method:"DELETE"})).ok&&(l(v,e(v).filter(y=>y.id!==a),!0),Ee(L,e(v)))}catch(r){console.error("Failed to remove terminal:",r)}}var o=$t();it("1ewpmn2",t=>{var a=wt();Ue(()=>{Xe.title="Terminals - Shooter"}),_(t,a)});var E=_e(o),k=n(E),de=n(k),ue=c(n(de),2),we=n(ue);ne(we,{classes:"btn-secondary",onclick:S,get disabled(){return e(w)},children:(t,a)=>{var r=bt(),y=_e(r);Ae(y,{get svg(){return lt},classes:"icon-14"}),he(),_(t,r)},$$slots:{default:!0}});var ve=c(we,2);ne(ve,{classes:"btn-primary",onclick:u,children:(t,a)=>{var r=xt();he(),_(t,r)},$$slots:{default:!0}}),s(ue),s(de),s(k);var Oe=c(k,2);{var Re=t=>{Be(t,{get text(){return e(x)},classes:"banner-error"})};H(Oe,t=>{e(x)&&t(Re)})}var ze=c(Oe,2);{var Fe=t=>{var a=yt();ge(a,20,()=>Array(4),rt,(r,y)=>{ot(r,{classes:"shimmer-card"})}),s(a),_(t,a)},He=t=>{Ne(t,{title:"Configuration Required",description:"Set up your API credentials to view terminal sessions",icon:r=>{Ae(r,{get svg(){return ct},classes:"icon-24"})},children:(r,y)=>{ne(r,{classes:"btn-primary",onclick:m,text:"Configure Settings"})}})},qe=t=>{Ne(t,{title:"No terminals",description:"Launch a new terminal session to get started. Terminal sessions will appear here once created.",icon:r=>{Ae(r,{get svg(){return dt},classes:"icon-24"})},children:(r,y)=>{ne(r,{classes:"btn-primary",onclick:u,children:(C,i)=>{var Z=St();he(),_(C,Z)},$$slots:{default:!0}})}})},Je=t=>{var a=kt(),r=n(a);ge(r,17,()=>e(X),C=>C.id,(C,i)=>{const Z=T(()=>z(e(i)));var N=At(),G=n(N),V=n(G),W=n(V),be=n(W);s(W);var ae=c(W,2),xe=n(ae,!0);s(ae);var ye=c(ae,2);Ie(ye,{get text(){return e(Z).label},get classes(){return e(Z).class}}),s(V);var me=c(V,2);je(me,{get date(){return e(i).createdAt},format:"narrow",classes:"terminal-time"}),s(G);var se=c(G,2),pe=n(se);{let p=T(()=>e(i).currentCwd||e(i).cwd);Pe(pe,{get text(){return e(p)},position:"bottom",children:(I,$)=>{var j=Tt(),Y=n(j,!0);s(j),K(Ge=>M(Y,Ge),[()=>F(e(i).currentCwd||e(i).cwd)]),_(I,j)},$$slots:{default:!0}})}var re=c(pe,2),Se=n(re);s(re),s(se);var Te=c(se,2);{var Ce=p=>{var I=Ct(),$=n(I),j=n($,!0);s($),s(I),K(Y=>M(j,Y),[()=>Q(e(i).lastOutput)]),_(p,I)};H(Te,p=>{e(i).lastOutput&&p(Ce)})}s(N),K(p=>{ie(N,"href",`/terminals/${e(i).id??""}`),Le(be,1,nt(e(i).isActive?"status-dot-active":"status-dot-idle")),M(xe,p),M(Se,`PID ${e(i).pid??""}`)},[()=>te(e(i).command)]),_(C,N)});var y=c(r,2);ge(y,17,()=>e(oe),C=>C.id,(C,i)=>{const Z=T(()=>z(e(i)));var N=Lt(),G=n(N),V=n(G),W=c(n(V),2),be=n(W,!0);s(W);var ae=c(W,2);Ie(ae,{get text(){return e(Z).label},get classes(){return e(Z).class}});var xe=c(ae,2);{var ye=p=>{{let I=T(()=>e(i).exitCode!==0?"pill-exit-error":"pill-exit-ok");Ie(p,{get text(){return`exit ${e(i).exitCode??""}`},get classes(){return e(I)}})}};H(xe,p=>{e(i).exitCode!==null&&p(ye)})}s(V);var me=c(V,2),se=n(me);{let p=T(()=>e(i).exitedAt||e(i).createdAt);je(se,{get date(){return e(p)},format:"narrow",classes:"terminal-time"})}var pe=c(se,2);ne(pe,{classes:"btn-ghost btn-sm btn-remove",onclick:p=>{A(p,e(i).id)},text:"×"}),s(me),s(G);var re=c(G,2),Se=n(re);Pe(Se,{get text(){return e(i).cwd},position:"bottom",children:(p,I)=>{var $=It(),j=n($,!0);s($),K(Y=>M(j,Y),[()=>F(e(i).cwd)]),_(p,$)},$$slots:{default:!0}}),s(re);var Te=c(re,2);{var Ce=p=>{var I=Pt(),$=n(I),j=n($,!0);s($),s(I),K(Y=>M(j,Y),[()=>Q(e(i).lastOutput)]),_(p,I)};H(Te,p=>{e(i).lastOutput&&p(Ce)})}s(N),K(p=>{ie(N,"href",`/terminals/${e(i).id??""}`),M(be,p)},[()=>te(e(i).command)]),_(C,N)}),s(a),_(t,a)};H(ze,t=>{e(w)&&e(v).length===0?t(Fe):e(h)?.apiKey?e(v).length===0?t(qe,2):t(Je,-1):t(He,1)})}s(E);var Qe=c(E,2);{var Ze=t=>{_t(t,{get apiKey(){return e(h).apiKey},onClose:g,onLaunch:J,get open(){return e(f)},set open(a){l(f,a,!0)}})};H(Qe,t=>{e(h)?.apiKey&&t(Ze)})}_(le,o),Me()}export{Jt as component};
1
+ import{p as fe,j as Ve,i as H,a as _,s as M,f as b,t as We}from"../chunks/Cg3dlX05.js";import{p as ke,v as $e,A as _e,w as Me,b as i,c as n,r as s,t as K,g as e,s as P,x as C,q as Ke,d as c,B as he,y as Ye,N as Ue,$ as Xe}from"../chunks/DYuMZGL5.js";import{T as Pe,s as Le,d as le,S as et,e as ge,C as tt,f as at,I as st,B as ne,b as Be,c as Ae,i as rt,P as Ie,g as nt}from"../chunks/DZvnhU_8.js";import{h as lt}from"../chunks/DZQMsHM5.js";import{g as De}from"../chunks/nWG9RHyB.js";import{R as it,S as ot}from"../chunks/BRqaaL5D.js";import{S as ct}from"../chunks/CG453M9q.js";import{T as dt}from"../chunks/CSjf4fBs.js";import{c as ut,s as Ee,g as vt}from"../chunks/xs1Xl3_e.js";import{i as mt}from"../chunks/gQJcRhou.js";import"../chunks/BDcFu3l7.js";import{A as pt}from"../chunks/BdtLzPpO.js";import{E as Ne}from"../chunks/C5VOyQCG.js";var ft=b("<time> </time>"),ht=b("<time> </time>");function je(ie,d){ke(d,!0);let U=fe(d,"format",3,"long"),L=fe(d,"updateInterval",3,6e4),B=fe(d,"tooltip",3,!1),v=C(()=>d.date instanceof Date?d.date:new Date(d.date)),w=C(()=>e(v).toISOString()),O=C(()=>e(v).toLocaleString(d.locale,{dateStyle:"full",timeStyle:"short"})),x=P("");function h(){const S=Date.now(),f=e(v).getTime()-S,u=Math.abs(f),g=Math.round(u/1e3),J=Math.round(u/6e4),R=Math.round(u/36e5),z=Math.round(u/864e5),F=Math.round(u/6048e5),ee=Math.round(u/2592e6),Q=Math.round(u/31536e6),te=new Intl.RelativeTimeFormat(d.locale,{style:U()});let A,o;g<60?(A="second",o=g):J<60?(A="minute",o=J):R<24?(A="hour",o=R):z<7?(A="day",o=z):F<4?(A="week",o=F):ee<12?(A="month",o=ee):(A="year",o=Q);const E=f<0?-1:1;return te.format(E*o,A)}function D(){i(x,h(),!0)}$e(()=>{if(D(),L()>0){const S=setInterval(D,L());return()=>clearInterval(S)}});var X=Ve(),oe=_e(X);{var ce=S=>{Pe(S,{get text(){return e(O)},children:(m,f)=>{var u=ft(),g=n(u,!0);s(u),K(()=>{Le(u,1,`relative-time ${d.classes??""??""}`,"svelte-o98vko"),le(u,"datetime",e(w)),le(u,"data-pw",typeof d.testId=="string"?d.testId:null),M(g,e(x))}),_(m,u)},$$slots:{default:!0}})},q=S=>{var m=ht(),f=n(m,!0);s(m),K(()=>{Le(m,1,`relative-time ${d.classes??""??""}`,"svelte-o98vko"),le(m,"datetime",e(w)),le(m,"data-pw",typeof d.testId=="string"?d.testId:null),M(f,e(x))}),_(S,m)};H(oe,S=>{B()?S(ce):S(q,-1)})}_(ie,X),Me()}var gt=b('<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> <!> <!>',1);function _t(ie,d){ke(d,!0);let U=fe(d,"open",15,!1);const L=[{args:[],command:"claude",label:"Claude Code"},{args:[],command:"codex",label:"Codex"},{args:[],command:"gemini",label:"Gemini"},{args:[],command:"qwen",label:"Qwen"},{args:[],command:"cursor-agent",label:"Cursor"},{args:[],command:"copilot",label:"Copilot"},{args:[],command:"amp",label:"Amp"},{args:[],command:"opencode",label:"OpenCode"},{args:[],command:"zsh",label:"Shell / zsh"},{args:[],command:"bash",label:"Bash"}];let B=P(0),v=P(Ke([])),w=P(""),O=P(""),x=P(!1),h=P("");$e(()=>{D()});async function D(){try{const m=await fetch("/api/sessions?limit=50&offset=0",{headers:{Authorization:`Bearer ${d.apiKey}`}});if(!m.ok)return;const u=(await m.json()).projects.map(g=>g.fullPath).filter(g=>typeof g=="string"&&g.length>0);i(v,[...new Set(u)],!0),e(v).length>0&&!e(w)&&i(w,e(v)[0],!0)}catch{}}function X(m){i(B,m,!0)}function oe(){return L[e(B)].command}function ce(){return L[e(B)].args}function q(){const m=e(O).trim();return m||(e(w)?e(w):"/tmp")}async function S(){const m=oe();if(m){i(x,!0),i(h,"");try{const f=await fetch("/api/terminals",{body:JSON.stringify({args:ce(),command:m,cwd:q()||void 0}),headers:{Authorization:`Bearer ${d.apiKey}`,"Content-Type":"application/json"},method:"POST"});if(!f.ok){const g=await f.json().catch(()=>({}));i(h,(typeof g.error=="string"?g.error:"")||`Failed to launch (${f.status})`,!0);return}const u=await f.json();d.onLaunch(u)}catch{i(h,"Network error — is the server running?")}finally{i(x,!1)}}}et(ie,{side:"bottom",title:"New Terminal",get onclose(){return d.onClose},classes:"launch-sheet",get open(){return U()},set open(f){U(f)},content:f=>{var u=gt(),g=_e(u),J=c(n(g),2);ge(J,23,()=>L,o=>o.label,(o,E,k)=>{{let de=C(()=>e(B)===e(k));tt(o,{mode:"radio",get selected(){return e(de)},onclick:()=>{X(e(k))},classes:"preset-choice",children:(ue,we)=>{he();var ve=We();K(()=>M(ve,e(E).label)),_(ue,ve)},$$slots:{default:!0}})}}),s(J),s(g);var R=c(g,2),z=c(n(R),2);{let o=C(()=>e(v).length>0?e(v).map(k=>({id:k,label:k})):[{id:"",label:"No recent projects"}]),E=C(()=>e(w)?[e(w)]:e(v).length>0?[e(v)[0]]:[""]);at(z,{get items(){return e(o)},get value(){return e(E)},placeholder:"Select a project",onchange:k=>{i(w,k[0]||"",!0)},classes:"launch-select"})}var F=c(z,2),ee=n(F);st(ee,{label:"Or enter a custom path",dataType:"text",placeholder:"/path/to/project",classes:"input-mono launch-input",get value(){return e(O)},set value(o){i(O,o,!0)}}),s(F),s(R);var Q=c(R,2);{let o=C(()=>e(x)?"Launching...":"Launch Terminal");ne(Q,{classes:"btn-launch",get disabled(){return e(x)},onclick:S,get showLoader(){return e(x)},get text(){return e(o)}})}var te=c(Q,2);{var A=o=>{Be(o,{get text(){return e(h)},classes:"banner-error launch-error-banner"})};H(te,o=>{e(h)&&o(A)})}_(f,u)},$$slots:{content:!0}}),Me()}var wt=b('<meta name="description" content="Active terminal sessions on this machine"/>'),bt=b("<!> Refresh",1),xt=b('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),yt=b('<div class="loading-container"></div>'),St=b('<span class="plus-icon svelte-1ewpmn2">+</span> New Terminal',1),Ct=b('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Tt=b('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),At=b('<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> <!></div> <div class="terminal-card-meta svelte-1ewpmn2"><!> <span class="terminal-pid svelte-1ewpmn2"> </span></div> <!></a>'),It=b('<span class="terminal-cwd svelte-1ewpmn2"> </span>'),Pt=b('<div class="terminal-preview svelte-1ewpmn2"><span class="terminal-preview-text svelte-1ewpmn2"> </span></div>'),Lt=b('<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"></span></span> <span class="terminal-command svelte-1ewpmn2"> </span> <!> <!></div> <div class="terminal-card-right svelte-1ewpmn2"><!> <!></div></div> <div class="terminal-card-meta svelte-1ewpmn2"><!></div> <!></a>'),kt=b('<div class="terminals-container svelte-1ewpmn2"><!> <!></div>'),$t=b('<main class="main"><div class="page-header"><div class="page-header-content"><div><h1 class="page-title">Terminals</h1> <p class="page-description">Active terminal sessions on this machine</p></div> <div class="page-actions"><!> <!></div></div></div> <!> <!></main> <!>',1);function Jt(ie,d){ke(d,!0);const U=1e4,L="shooter_terminals",B=["zsh","bash","sh","fish"];let v=P(Ke([])),w=P(!1),O=!1,x=P(null),h=P(null),D=null;const X=C(()=>e(v).filter(t=>t.status==="running")),oe=C(()=>e(v).filter(t=>t.status==="exited"));$e(()=>{ce();const t=vt(L,1e4);t&&(i(v,t,!0),i(w,!1)),q(),D=setInterval(()=>{e(h)?.apiKey&&q()},U)}),Ye(()=>{D&&(clearInterval(D),D=null)});function ce(){try{const t=localStorage.getItem("shooter_config");if(t){const a=JSON.parse(t);mt(a)?i(h,a,!0):(localStorage.removeItem("shooter_config"),i(h,null))}}catch{}}async function q(){if(!(!e(h)?.apiKey||O)){O=!0,e(v).length===0&&i(w,!0);try{const a=await fetch("/api/terminals",{headers:{Authorization:`Bearer ${e(h).apiKey}`}});if(!a.ok){i(x,`Failed to load terminals (HTTP ${a.status})`);return}i(x,null);const r=await a.json();i(v,r.terminals.map(y=>({...y,lastOutput:y.lastOutput??null})),!0),Ee(L,e(v))}catch(t){i(x,"Failed to load terminals"),console.error("Failed to fetch terminals:",t)}finally{i(w,!1),O=!1}}}async function S(){i(w,!0),ut(L),await q()}function m(){De("/config")}let f=P(!1);function u(){i(f,!0)}function g(){i(f,!1)}function J(t){i(f,!1),De(`/terminals/${t.id}`)}function R(t){const a=t.split("/").pop()||t;return pt.includes(a)?"ai":(B.includes(a),"shell")}function z(t){return t.status==="exited"?{class:"pill-badge-ended",label:"ENDED"}:R(t.command)==="ai"?{class:"pill-badge-ai",label:"AI"}:{class:"pill-badge-shell",label:"SHELL"}}function F(t,a=40){if(t.length<=a)return t;const r=t.split("/");return r.length<=3?t:`${r[0]}/.../${r.slice(-2).join("/")}`}function ee(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 Q(t,a=80){if(!t)return"";const r=t.split(`
2
+ `).map(T=>ee(T)).filter(T=>T.trim()),y=r[r.length-1]||"";return y.length<=a?y:`${y.slice(0,a)}...`}function te(t){return t.split("/").pop()||t}async function A(t,a){if(t.preventDefault(),t.stopPropagation(),!!e(h)?.apiKey)try{(await fetch(`/api/terminals/${a}`,{headers:{Authorization:`Bearer ${e(h).apiKey}`},method:"DELETE"})).ok&&(i(v,e(v).filter(y=>y.id!==a),!0),Ee(L,e(v)))}catch(r){console.error("Failed to remove terminal:",r)}}var o=$t();lt("1ewpmn2",t=>{var a=wt();Ue(()=>{Xe.title="Terminals - Shooter"}),_(t,a)});var E=_e(o),k=n(E),de=n(k),ue=c(n(de),2),we=n(ue);ne(we,{classes:"btn-secondary",onclick:S,get disabled(){return e(w)},children:(t,a)=>{var r=bt(),y=_e(r);Ae(y,{get svg(){return it},classes:"icon-14"}),he(),_(t,r)},$$slots:{default:!0}});var ve=c(we,2);ne(ve,{classes:"btn-primary",onclick:u,children:(t,a)=>{var r=xt();he(),_(t,r)},$$slots:{default:!0}}),s(ue),s(de),s(k);var Oe=c(k,2);{var Re=t=>{Be(t,{get text(){return e(x)},classes:"banner-error"})};H(Oe,t=>{e(x)&&t(Re)})}var ze=c(Oe,2);{var Fe=t=>{var a=yt();ge(a,20,()=>Array(4),rt,(r,y)=>{ot(r,{classes:"shimmer-card"})}),s(a),_(t,a)},He=t=>{Ne(t,{title:"Configuration Required",description:"Set up your API credentials to view terminal sessions",icon:r=>{Ae(r,{get svg(){return ct},classes:"icon-24"})},children:(r,y)=>{ne(r,{classes:"btn-primary",onclick:m,text:"Configure Settings"})}})},qe=t=>{Ne(t,{title:"No terminals",description:"Launch a new terminal session to get started. Terminal sessions will appear here once created.",icon:r=>{Ae(r,{get svg(){return dt},classes:"icon-24"})},children:(r,y)=>{ne(r,{classes:"btn-primary",onclick:u,children:(T,l)=>{var Z=St();he(),_(T,Z)},$$slots:{default:!0}})}})},Je=t=>{var a=kt(),r=n(a);ge(r,17,()=>e(X),T=>T.id,(T,l)=>{const Z=C(()=>z(e(l)));var N=At(),G=n(N),V=n(G),W=n(V),be=n(W);s(W);var ae=c(W,2),xe=n(ae,!0);s(ae);var ye=c(ae,2);Ie(ye,{get text(){return e(Z).label},get classes(){return e(Z).class}}),s(V);var me=c(V,2);je(me,{get date(){return e(l).createdAt},format:"narrow",classes:"terminal-time"}),s(G);var se=c(G,2),pe=n(se);{let p=C(()=>e(l).currentCwd||e(l).cwd);Pe(pe,{get text(){return e(p)},position:"bottom",children:(I,$)=>{var j=Ct(),Y=n(j,!0);s(j),K(Ge=>M(Y,Ge),[()=>F(e(l).currentCwd||e(l).cwd)]),_(I,j)},$$slots:{default:!0}})}var re=c(pe,2),Se=n(re);s(re),s(se);var Ce=c(se,2);{var Te=p=>{var I=Tt(),$=n(I),j=n($,!0);s($),s(I),K(Y=>M(j,Y),[()=>Q(e(l).lastOutput)]),_(p,I)};H(Ce,p=>{e(l).lastOutput&&p(Te)})}s(N),K(p=>{le(N,"href",`/terminals/${e(l).id??""}`),Le(be,1,nt(e(l).isActive?"status-dot-active":"status-dot-idle")),M(xe,p),M(Se,`PID ${e(l).pid??""}`)},[()=>te(e(l).command)]),_(T,N)});var y=c(r,2);ge(y,17,()=>e(oe),T=>T.id,(T,l)=>{const Z=C(()=>z(e(l)));var N=Lt(),G=n(N),V=n(G),W=c(n(V),2),be=n(W,!0);s(W);var ae=c(W,2);Ie(ae,{get text(){return e(Z).label},get classes(){return e(Z).class}});var xe=c(ae,2);{var ye=p=>{{let I=C(()=>e(l).exitCode!==0?"pill-exit-error":"pill-exit-ok");Ie(p,{get text(){return`exit ${e(l).exitCode??""}`},get classes(){return e(I)}})}};H(xe,p=>{e(l).exitCode!==null&&p(ye)})}s(V);var me=c(V,2),se=n(me);{let p=C(()=>e(l).exitedAt||e(l).createdAt);je(se,{get date(){return e(p)},format:"narrow",classes:"terminal-time"})}var pe=c(se,2);ne(pe,{classes:"btn-ghost btn-sm btn-remove",onclick:p=>{A(p,e(l).id)},text:"×"}),s(me),s(G);var re=c(G,2),Se=n(re);Pe(Se,{get text(){return e(l).cwd},position:"bottom",children:(p,I)=>{var $=It(),j=n($,!0);s($),K(Y=>M(j,Y),[()=>F(e(l).cwd)]),_(p,$)},$$slots:{default:!0}}),s(re);var Ce=c(re,2);{var Te=p=>{var I=Pt(),$=n(I),j=n($,!0);s($),s(I),K(Y=>M(j,Y),[()=>Q(e(l).lastOutput)]),_(p,I)};H(Ce,p=>{e(l).lastOutput&&p(Te)})}s(N),K(p=>{le(N,"href",`/terminals/${e(l).id??""}`),M(be,p)},[()=>te(e(l).command)]),_(T,N)}),s(a),_(t,a)};H(ze,t=>{e(w)&&e(v).length===0?t(Fe):e(h)?.apiKey?e(v).length===0?t(qe,2):t(Je,-1):t(He,1)})}s(E);var Qe=c(E,2);{var Ze=t=>{_t(t,{get apiKey(){return e(h).apiKey},onClose:g,onLaunch:J,get open(){return e(f)},set open(a){i(f,a,!0)}})};H(Qe,t=>{e(h)?.apiKey&&t(Ze)})}_(ie,o),Me()}export{Jt as component};
@@ -1,2 +1,2 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/CR6bkGJW.js","../chunks/PPVm8Dsz.js"])))=>i.map(i=>d[i]);
2
- import{_ as _e}from"../chunks/PPVm8Dsz.js";import{p as ke,i as M,s as at,a as S,f as x,j as Se,c as xe,e as Ce,g as $t}from"../chunks/Cg3dlX05.js";import{p as rt,w as ot,g as t,x as g,c as k,d as c,r as y,t as B,A as Wt,s as h,q as Ie,v as Te,y as Ee,z as je,b as n,$ as Ae}from"../chunks/DYuMZGL5.js";import{h as Ke}from"../chunks/DZQMsHM5.js";import{m as Me,s as dt,d as Ft,B as H,e as zt,M as qe,K as De,P as Nt,k as Ot,c as Pe,T as Rt,n as $e,I as Ne}from"../chunks/DZvnhU_8.js";import{g as Y}from"../chunks/ByzqAuXw.js";import{p as Oe}from"../chunks/CjfxuHdN.js";import{A as Re}from"../chunks/DzuS5Nbr.js";import"../chunks/BDcFu3l7.js";import{A as Le}from"../chunks/BxFShcQO.js";import{C as We}from"../chunks/Pw0jDB7M.js";import{E as Fe}from"../chunks/C5VOyQCG.js";function ze(b,o){rt(o,!0);let w=ke(o,"open",15,!1);const u=g(()=>o.commands.map((s,d)=>({label:s.label,value:String(d)})));function T(s){const d=parseInt(s.value,10);o.commands[d]&&o.commands[d].action()}Me(b,{get items(){return t(u)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return o.onClose},classes:"command-palette",get open(){return w()},set open(s){w(s)}}),ot()}var Be=x('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function He(b,o){const w=g(()=>o.status==="connected"?"Connected":o.status==="reconnecting"?"Reconnecting...":"Disconnected");var u=Be();let T;var s=k(u),d=c(s,2),D=k(d,!0);y(d);var q=c(d,2);{var E=j=>{H(j,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return o.onretry},text:"Retry"})};M(q,j=>{o.status==="disconnected"&&o.onretry&&j(E)})}y(u),B(()=>{T=dt(u,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:o.status==="reconnecting",disconnected:o.status==="disconnected",connected:o.status==="connected"}),Ft(u,"aria-label",`Connection: ${o.status??""}`),dt(s,1,`conn-dot ${o.status??""}`,"svelte-1cg9pai"),at(D,t(w))}),S(b,u)}const Bt=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),Lt=Bt?"⌘":"Ctrl";function Ue(b){function o(w){if((Bt?w.metaKey:w.ctrlKey)&&!Ge()&&w.key==="/"){w.preventDefault(),w.stopPropagation(),b.onHelp();return}}return window.addEventListener("keydown",o,!0),{destroy(){window.removeEventListener("keydown",o,!0)}}}function Je(){return[{description:"Command palette",keys:`${Lt}+K`},{description:"Keyboard shortcuts",keys:`${Lt}+/`}]}function Ge(){const b=document.activeElement;if(!b)return!1;const o=b.tagName;return!!(o==="INPUT"||o==="TEXTAREA"||b.isContentEditable||b.closest(".xterm"))}var Ve=x('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Qe(b,o){rt(o,!0);const w=[{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=Ve();zt(u,21,()=>w,T=>T.label,(T,s)=>{H(T,{classes:"btn-quick-key",onclick:()=>{o.onKey(t(s).escape)},get text(){return t(s).label}})}),y(u),S(b,u),ot()}var Xe=x('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Ze=x('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ye(b,o){rt(o,!0);const w=Je();var u=Se(),T=Wt(u);{var s=d=>{qe(d,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return o.onClose},classes:"shortcuts-modal",content:q=>{var E=Ze();zt(E,21,()=>w,j=>j.keys,(j,F)=>{var f=Xe(),C=k(f),$=k(C,!0);y(C);var N=c(C,2);De(N,{get keys(){return t(F).keys},classes:"shortcut-kbd"}),y(f),B(()=>at($,t(F).description)),S(j,f)}),y(E),S(q,E)},$$slots:{content:!0}})};M(T,d=>{o.open&&d(s)})}S(b,u),ot()}var tn=x('<meta name="description" content="Interactive terminal session"/>'),en=x('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton" style="width: 100%; height: 100%;"></div></div></div>'),nn=x('<main class="main"><div class="session-back-row"><a href="/terminals" class="back-link"><span class="back-arrow">&larr;</span> Terminals</a></div> <!></main>'),sn=x("<span></span>"),an=x('<span class="term-cwd svelte-1tubujq"> </span>'),rn=x('<a class="term-session-link svelte-1tubujq" title="View session history">Session</a>'),on=x('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),ln=x('<div class="term-exited-bar svelte-1tubujq"><span>Process exited</span> <!></div>'),cn=x('<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"><!> <!> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),un=x("<!> <!> <!>",1);function Sn(b,o){rt(o,!0);const w=()=>Ce(Oe,"$page",u),[u,T]=xe();let s=h(null),d=h(!0),D=h(null),q=h(!1),E=h(!1),j=h(!1),F=h(null),f=h("raw"),C=h("disconnected"),$=h("disconnected"),N=h(""),P=h(Ie([])),ft=h(!1),U=h(null),it=h(null),O=null,vt=null,L=h(!1),lt=h(!1),v=null,W=null,m=!1;const J=g(()=>w().params.id),G=g(()=>t(s)?Le.includes((t(s).command.split("/").pop()||"").toLowerCase()):!1),z=g(()=>t(s)?.status==="running"),mt=g(()=>t(s)?.command.split("/").pop()||"terminal"),Ht=g(()=>t(G)?"AI":"SHELL"),Ut=g(()=>t(G)?"pill-badge-ai":"pill-badge-shell"),Jt=["Raw","Chat"],pt=g(()=>t(f)==="raw"?t(C):t($)),Gt=g(()=>t(f)==="raw"?0:1),ht=g(()=>Qt(t(F)||t(s)?.cwd||"")),Vt=g(()=>{const e=[{action:()=>{Y("/")},label:"Go to Home"},{action:()=>{Y("/terminals")},label:"Go to Terminals"},{action:()=>{Y("/config")},label:"Go to Settings"},{action:()=>{n(L,!0)},label:"Show keyboard shortcuts"}];return t(z)&&e.push({action:()=>{yt()},label:"Kill terminal"}),e});function Qt(e){if(!e)return"";const a="";let r=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?r=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(r=`~/${l.slice(3).join("/")}`)}if(r.length>30){const l=r.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return r||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(D,"No configuration found. Please configure settings first."),n(d,!1);return}try{const a=await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!a.ok){n(D,a.status===404?"Terminal not found":"Failed to load terminal",!0),n(d,!1);return}n(s,await a.json(),!0)}catch{n(D,"Failed to connect to server")}n(d,!1)}async function gt(){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 yt(){if(!t(s)||t(q))return;const e=V();if(e){n(q,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(q,!1)}catch{n(q,!1)}}}async function Zt(){if(!t(s)||t(E))return;const e=V();if(e){n(E,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(E,!1)}catch{n(E,!1)}}}async function ct(){if(!t(U)||!t(s)||m)return;const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).ws}`,r=async()=>{const l=await gt();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await _e(async()=>{const{createTerminal:A}=await import("../chunks/CR6bkGJW.js");return{createTerminal:A}},__vite__mapDeps([0,1]),import.meta.url);if(m||!t(U))return;const p=await l({apiKey:V()?.apiKey,container:t(U),fontSize:window.innerWidth<768?12:14,getTicket:r,onActivity:A=>{m||n(j,A,!0)},onCwd:A=>{m||n(F,A,!0)},onDisconnect:()=>{m||n(C,"reconnecting")},onExit:A=>{!m&&t(s)&&(n(s,{...t(s),exitCode:A,exitedAt:new Date().toISOString(),status:"exited"},!0),n(C,"disconnected"))},onReconnect:()=>{m||n(C,"connected")},terminalId:t(J),wsUrl:a});if(m){p.dispose();return}O=p,n(C,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(C,"disconnected")}}function bt(){O&&(O.dispose(),O=null)}async function tt(){if(!t(s)||m||v&&(v.readyState===WebSocket.OPEN||v.readyState===WebSocket.CONNECTING))return;const e=await gt();if(!e||m||!t(s)){n($,"disconnected");return}const r=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).sessionWs}?ticket=${e}`;v=new WebSocket(r),v.onopen=()=>{m||(n($,"connected"),v?.send(JSON.stringify({sessionId:t(J),type:"subscribe"})))},v.onmessage=l=>{if(!m)try{const p=JSON.parse(l.data);Yt(p)}catch{}},v.onclose=()=>{!m&&t(s)?.status==="running"&&(n($,"reconnecting"),W&&clearTimeout(W),W=setTimeout(()=>{W=null,!m&&t(s)?.status==="running"&&tt()},2e3))},v.onerror=()=>{m||n($,"disconnected")}}function Q(){return t(P)}function Yt(e){if(e.type==="history"){const a=e.messages||[];n(P,a.map(r=>({id:r.id,parts:r.content,role:r.role,timestamp:r.timestamp})),!0)}else if(e.type==="message"){const a=typeof e.role=="string"?e.role:"assistant",r=a==="user"?"user":a==="system"?"system":"assistant",l={id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:r,timestamp:(typeof e.timestamp=="string"?e.timestamp:"")||new Date().toISOString()};n(P,Q().concat(l),!0)}else if(e.type==="tool-use"){const a={id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"},r={id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else if(e.type==="tool-result"){const a={isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"},r={id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"system",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else if(e.type==="thinking"){const a={content:e.text||"",type:"thinking"},r=Q(),l=r.length-1;if(l>=0&&r[l].role==="assistant"){const p=r[l],A={id:p.id,parts:p.parts.concat(a),role:p.role,timestamp:p.timestamp};n(P,[...r.slice(0,l),A],!0)}else{const p={id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()};n(P,r.concat(p),!0)}}else if(e.type==="error"){const a={content:e.message||"Unknown error",type:"text"},r={id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"system",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else e.type==="session-end"&&(n(ft,!0),t(s)&&n(s,{...t(s),status:"exited"},!0))}function wt(){W&&(clearTimeout(W),W=null),v&&(v.onclose=null,v.close(),v=null)}function _t(){t(N).trim()&&(O&&t(C)==="connected"&&O.sendInput(`${t(N)}\r`),n(N,""),t(it)?.focus())}function te(e){!e.trim()||v?.readyState!==WebSocket.OPEN||v.send(JSON.stringify({text:e,type:"send-input"}))}function kt(){v?.readyState===WebSocket.OPEN&&v.send(JSON.stringify({type:"cancel"}))}function ee(e){t(f)==="raw"?O&&t(C)==="connected"&&O.sendInput(e):t(f)==="chat"&&e===""&&kt()}function ne(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),_t())}let et=!1,nt=!1;function se(e){e!==t(f)&&(n(f,e,!0),e==="raw"&&!et?(requestAnimationFrame(()=>{ct()}),et=!0):e==="chat"&&!nt&&(tt(),nt=!0))}function ae(){t(f)==="raw"?(bt(),n(C,"reconnecting"),ct(),et=!0):(wt(),n($,"reconnecting"),tt(),nt=!0)}Te(async()=>{await Xt(),!m&&(vt=Ue({onHelp:()=>{n(L,!t(L))}}),!(!t(s)||t(D))&&(t(G)&&window.innerWidth<768?n(f,"chat"):n(f,"raw"),t(f)==="raw"?(requestAnimationFrame(()=>{ct()}),et=!0):(tt(),nt=!0)))}),Ee(()=>{m=!0,bt(),wt(),vt?.destroy()});var St=un();Ke("1tubujq",e=>{var a=tn();je(()=>{Ae.title=`${t(mt)??""} - Terminal - Shooter`}),S(e,a)});var xt=Wt(St);{var re=e=>{var a=en();S(e,a)},oe=e=>{var a=nn(),r=c(k(a),2);Fe(r,{title:"Error",get description(){return t(D)},icon:p=>{Pe(p,{get svg(){return Re},classes:"icon-24"})}}),y(a),S(e,a)},ie=e=>{var a=cn(),r=k(a),l=k(r),p=c(k(l),2),A=k(p,!0);y(p);var It=c(p,2);Nt(It,{get text(){return t(Ht)},get classes(){return t(Ut)}});var Tt=c(It,2);{var ce=i=>{{let _=g(()=>t(j)?"Active":"Idle");Rt(i,{get text(){return t(_)},position:"bottom",children:(K,R)=>{var I=sn();B(()=>dt(I,1,`activity-dot ${t(j)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(K,I)},$$slots:{default:!0}})}};M(Tt,i=>{t(z)&&i(ce)})}var Et=c(Tt,2);{var ue=i=>{{let _=g(()=>t(F)||t(s)?.cwd||"");Rt(i,{get text(){return t(_)},position:"bottom",children:(K,R)=>{var I=an(),X=k(I,!0);y(I),B(()=>at(X,t(ht))),S(K,I)},$$slots:{default:!0}})}};M(Et,i=>{t(ht)&&i(ue)})}var jt=c(Et,2);He(jt,{get status(){return t(pt)},onretry:ae});var de=c(jt,2);{var fe=i=>{const _=g(()=>t(s).sessionFile??"");var K=rn();B(R=>Ft(K,"href",`/session/${R??""}`),[()=>t(_).split(/[\\/]/).pop()?.replace(".jsonl","")||""]),S(i,K)};M(de,i=>{t(G)&&t(s)?.sessionFile&&i(fe)})}y(l);var At=c(l,2),Kt=k(At);{var ve=i=>{$e(i,{get items(){return Jt},get activeIndex(){return t(Gt)},onchange:_=>{se(_===0?"raw":"chat")},classes:"term-tabs"})};M(Kt,i=>{t(G)&&i(ve)})}var Mt=c(Kt,2);H(Mt,{classes:"term-shortcuts-btn",onclick:()=>{n(L,!t(L))},text:"?",ariaLabel:"Keyboard shortcuts"});var me=c(Mt,2);{var pe=i=>{H(i,{classes:"btn-danger btn-sm",onclick:yt,get disabled(){return t(q)},get showLoader(){return t(q)},text:"Kill"})},he=i=>{H(i,{classes:"btn-secondary btn-sm",onclick:Zt,get disabled(){return t(E)},get showLoader(){return t(E)},text:"Remove"})};M(me,i=>{t(z)?i(pe):i(he,-1)})}y(At),y(r);var ut=c(r,2);let qt;$t(ut,i=>n(U,i),()=>t(U));var Dt=c(ut,2);{var ge=i=>{var _=on(),K=k(_);Qe(K,{onKey:ee});var R=c(K,2),I=k(R);$t(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(N)},set value(Z){n(N,Z,!0)}}),Z=>n(it,Z,!0),()=>t(it));var X=c(I,2);{let Z=g(()=>!t(N).trim());H(X,{classes:"btn-primary btn-send",onclick:_t,get disabled(){return t(Z)},text:"↵"})}y(R),y(_),S(i,_)};M(Dt,i=>{t(z)&&t(f)==="raw"&&i(ge)})}var st=c(Dt,2);let Pt;var ye=k(st);We(ye,{get messages(){return t(P)},get connectionState(){return t(pt)},get sessionEnded(){return t(ft)},get showInput(){return t(z)},onSendInput:te,onCancel:kt}),y(st);var be=c(st,2);{var we=i=>{var _=ln(),K=c(k(_),2);{var R=I=>{{let X=g(()=>t(s).exitCode!==0?"pill-exit-error":"pill-exit-ok");Nt(I,{get text(){return`code ${t(s).exitCode??""}`},get classes(){return t(X)}})}};M(K,I=>{t(s).exitCode!==null&&I(R)})}y(_),S(i,_)};M(be,i=>{t(z)||i(we)})}y(a),B(()=>{at(A,t(mt)),qt=Ot(ut,"",qt,{display:t(f)==="raw"?"flex":"none"}),Pt=Ot(st,"",Pt,{display:t(f)==="chat"?"flex":"none"})}),S(e,a)};M(xt,e=>{t(d)?e(re):t(D)?e(oe,1):t(s)&&e(ie,2)})}var Ct=c(xt,2);Ye(Ct,{get open(){return t(L)},onClose:()=>{n(L,!1)}});var le=c(Ct,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(b,St),ot(),T()}export{Sn as component};
2
+ import{_ as _e}from"../chunks/PPVm8Dsz.js";import{p as ke,i as M,s as at,a as S,f as x,j as Se,c as xe,e as Ce,g as $t}from"../chunks/Cg3dlX05.js";import{p as rt,w as ot,g as t,x as g,c as k,d as c,r as y,t as B,A as Wt,s as h,q as Ie,v as Te,y as Ee,z as je,b as n,$ as Ae}from"../chunks/DYuMZGL5.js";import{h as Ke}from"../chunks/DZQMsHM5.js";import{m as Me,s as dt,d as Ft,B as H,e as zt,M as qe,K as De,P as Nt,k as Ot,c as Pe,T as Rt,n as $e,I as Ne}from"../chunks/DZvnhU_8.js";import{g as Y}from"../chunks/nWG9RHyB.js";import{p as Oe}from"../chunks/DJvX78LW.js";import{A as Re}from"../chunks/DzuS5Nbr.js";import"../chunks/BDcFu3l7.js";import{A as Le}from"../chunks/BdtLzPpO.js";import{C as We}from"../chunks/B9WQy_3X.js";import{E as Fe}from"../chunks/C5VOyQCG.js";function ze(b,o){rt(o,!0);let w=ke(o,"open",15,!1);const u=g(()=>o.commands.map((s,d)=>({label:s.label,value:String(d)})));function T(s){const d=parseInt(s.value,10);o.commands[d]&&o.commands[d].action()}Me(b,{get items(){return t(u)},placeholder:"Type a command...",emptyText:"No matching commands",onselect:T,get onclose(){return o.onClose},classes:"command-palette",get open(){return w()},set open(s){w(s)}}),ot()}var Be=x('<div><span></span> <span class="status-label svelte-1cg9pai"> </span> <!></div>');function He(b,o){const w=g(()=>o.status==="connected"?"Connected":o.status==="reconnecting"?"Reconnecting...":"Disconnected");var u=Be();let T;var s=k(u),d=c(s,2),D=k(d,!0);y(d);var q=c(d,2);{var E=j=>{H(j,{classes:"btn-ghost btn-sm btn-retry",get onclick(){return o.onretry},text:"Retry"})};M(q,j=>{o.status==="disconnected"&&o.onretry&&j(E)})}y(u),B(()=>{T=dt(u,1,"connection-status svelte-1cg9pai",null,T,{reconnecting:o.status==="reconnecting",disconnected:o.status==="disconnected",connected:o.status==="connected"}),Ft(u,"aria-label",`Connection: ${o.status??""}`),dt(s,1,`conn-dot ${o.status??""}`,"svelte-1cg9pai"),at(D,t(w))}),S(b,u)}const Bt=typeof navigator<"u"&&/Mac|iPhone|iPad/.test(navigator.userAgent),Lt=Bt?"⌘":"Ctrl";function Ue(b){function o(w){if((Bt?w.metaKey:w.ctrlKey)&&!Ge()&&w.key==="/"){w.preventDefault(),w.stopPropagation(),b.onHelp();return}}return window.addEventListener("keydown",o,!0),{destroy(){window.removeEventListener("keydown",o,!0)}}}function Je(){return[{description:"Command palette",keys:`${Lt}+K`},{description:"Keyboard shortcuts",keys:`${Lt}+/`}]}function Ge(){const b=document.activeElement;if(!b)return!1;const o=b.tagName;return!!(o==="INPUT"||o==="TEXTAREA"||b.isContentEditable||b.closest(".xterm"))}var Ve=x('<div class="quick-keys svelte-64qat5" role="toolbar" aria-label="Quick terminal keys"></div>');function Qe(b,o){rt(o,!0);const w=[{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=Ve();zt(u,21,()=>w,T=>T.label,(T,s)=>{H(T,{classes:"btn-quick-key",onclick:()=>{o.onKey(t(s).escape)},get text(){return t(s).label}})}),y(u),S(b,u),ot()}var Xe=x('<div class="shortcut-row svelte-1u7lstk"><span class="shortcut-desc svelte-1u7lstk"> </span> <!></div>'),Ze=x('<div class="shortcuts-list svelte-1u7lstk"></div>');function Ye(b,o){rt(o,!0);const w=Je();var u=Se(),T=Wt(u);{var s=d=>{qe(d,{header:{text:"Keyboard Shortcuts"},get onoverlayClick(){return o.onClose},classes:"shortcuts-modal",content:q=>{var E=Ze();zt(E,21,()=>w,j=>j.keys,(j,F)=>{var f=Xe(),C=k(f),$=k(C,!0);y(C);var N=c(C,2);De(N,{get keys(){return t(F).keys},classes:"shortcut-kbd"}),y(f),B(()=>at($,t(F).description)),S(j,f)}),y(E),S(q,E)},$$slots:{content:!0}})};M(T,d=>{o.open&&d(s)})}S(b,u),ot()}var tn=x('<meta name="description" content="Interactive terminal session"/>'),en=x('<div class="term-page svelte-1tubujq"><div class="term-topbar svelte-1tubujq"><div class="skeleton" style="width: 120px; height: 20px;"></div></div> <div class="term-body-loading svelte-1tubujq"><div class="skeleton" style="width: 100%; height: 100%;"></div></div></div>'),nn=x('<main class="main"><div class="session-back-row"><a href="/terminals" class="back-link"><span class="back-arrow">&larr;</span> Terminals</a></div> <!></main>'),sn=x("<span></span>"),an=x('<span class="term-cwd svelte-1tubujq"> </span>'),rn=x('<a class="term-session-link svelte-1tubujq" title="View session history">Session</a>'),on=x('<div class="term-input-area svelte-1tubujq"><!> <div class="term-input-bar svelte-1tubujq"><!> <!></div></div>'),ln=x('<div class="term-exited-bar svelte-1tubujq"><span>Process exited</span> <!></div>'),cn=x('<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"><!> <!> <!></div></div> <div class="term-body svelte-1tubujq"></div> <!> <div class="term-chat-body svelte-1tubujq"><!></div> <!></div>'),un=x("<!> <!> <!>",1);function Sn(b,o){rt(o,!0);const w=()=>Ce(Oe,"$page",u),[u,T]=xe();let s=h(null),d=h(!0),D=h(null),q=h(!1),E=h(!1),j=h(!1),F=h(null),f=h("raw"),C=h("disconnected"),$=h("disconnected"),N=h(""),P=h(Ie([])),ft=h(!1),U=h(null),it=h(null),O=null,vt=null,L=h(!1),lt=h(!1),v=null,W=null,m=!1;const J=g(()=>w().params.id),G=g(()=>t(s)?Le.includes((t(s).command.split("/").pop()||"").toLowerCase()):!1),z=g(()=>t(s)?.status==="running"),mt=g(()=>t(s)?.command.split("/").pop()||"terminal"),Ht=g(()=>t(G)?"AI":"SHELL"),Ut=g(()=>t(G)?"pill-badge-ai":"pill-badge-shell"),Jt=["Raw","Chat"],pt=g(()=>t(f)==="raw"?t(C):t($)),Gt=g(()=>t(f)==="raw"?0:1),ht=g(()=>Qt(t(F)||t(s)?.cwd||"")),Vt=g(()=>{const e=[{action:()=>{Y("/")},label:"Go to Home"},{action:()=>{Y("/terminals")},label:"Go to Terminals"},{action:()=>{Y("/config")},label:"Go to Settings"},{action:()=>{n(L,!0)},label:"Show keyboard shortcuts"}];return t(z)&&e.push({action:()=>{yt()},label:"Kill terminal"}),e});function Qt(e){if(!e)return"";const a="";let r=e;if(typeof navigator<"u"){const l=e.split("/");l.length>=3&&l[1]==="Users"?r=`~/${l.slice(3).join("/")}`:l.length>=3&&l[1]==="home"&&(r=`~/${l.slice(3).join("/")}`)}if(r.length>30){const l=r.split("/");if(l.length>2)return`.../${l.slice(-2).join("/")}`}return r||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(D,"No configuration found. Please configure settings first."),n(d,!1);return}try{const a=await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`}});if(!a.ok){n(D,a.status===404?"Terminal not found":"Failed to load terminal",!0),n(d,!1);return}n(s,await a.json(),!0)}catch{n(D,"Failed to connect to server")}n(d,!1)}async function gt(){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 yt(){if(!t(s)||t(q))return;const e=V();if(e){n(q,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(q,!1)}catch{n(q,!1)}}}async function Zt(){if(!t(s)||t(E))return;const e=V();if(e){n(E,!0);try{(await fetch(`/api/terminals/${t(J)}`,{headers:{Authorization:`Bearer ${e.apiKey}`},method:"DELETE"})).ok?Y("/terminals"):n(E,!1)}catch{n(E,!1)}}}async function ct(){if(!t(U)||!t(s)||m)return;const a=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).ws}`,r=async()=>{const l=await gt();if(!l)throw new Error("Failed to obtain WebSocket ticket");return l};try{const{createTerminal:l}=await _e(async()=>{const{createTerminal:A}=await import("../chunks/CR6bkGJW.js");return{createTerminal:A}},__vite__mapDeps([0,1]),import.meta.url);if(m||!t(U))return;const p=await l({apiKey:V()?.apiKey,container:t(U),fontSize:window.innerWidth<768?12:14,getTicket:r,onActivity:A=>{m||n(j,A,!0)},onCwd:A=>{m||n(F,A,!0)},onDisconnect:()=>{m||n(C,"reconnecting")},onExit:A=>{!m&&t(s)&&(n(s,{...t(s),exitCode:A,exitedAt:new Date().toISOString(),status:"exited"},!0),n(C,"disconnected"))},onReconnect:()=>{m||n(C,"connected")},terminalId:t(J),wsUrl:a});if(m){p.dispose();return}O=p,n(C,"connected")}catch(l){console.error("Failed to initialize terminal:",l),n(C,"disconnected")}}function bt(){O&&(O.dispose(),O=null)}async function tt(){if(!t(s)||m||v&&(v.readyState===WebSocket.OPEN||v.readyState===WebSocket.CONNECTING))return;const e=await gt();if(!e||m||!t(s)){n($,"disconnected");return}const r=`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}${t(s).sessionWs}?ticket=${e}`;v=new WebSocket(r),v.onopen=()=>{m||(n($,"connected"),v?.send(JSON.stringify({sessionId:t(J),type:"subscribe"})))},v.onmessage=l=>{if(!m)try{const p=JSON.parse(l.data);Yt(p)}catch{}},v.onclose=()=>{!m&&t(s)?.status==="running"&&(n($,"reconnecting"),W&&clearTimeout(W),W=setTimeout(()=>{W=null,!m&&t(s)?.status==="running"&&tt()},2e3))},v.onerror=()=>{m||n($,"disconnected")}}function Q(){return t(P)}function Yt(e){if(e.type==="history"){const a=e.messages||[];n(P,a.map(r=>({id:r.id,parts:r.content,role:r.role,timestamp:r.timestamp})),!0)}else if(e.type==="message"){const a=typeof e.role=="string"?e.role:"assistant",r=a==="user"?"user":a==="system"?"system":"assistant",l={id:`msg-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:e.content||[],role:r,timestamp:(typeof e.timestamp=="string"?e.timestamp:"")||new Date().toISOString()};n(P,Q().concat(l),!0)}else if(e.type==="tool-use"){const a={id:e.id||`tool-${Date.now()}`,input:e.input||{},toolName:e.name,type:"tool_use"},r={id:`tool-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else if(e.type==="tool-result"){const a={isError:e.isError||!1,output:e.output||"",toolUseId:e.id,type:"tool_result"},r={id:`result-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"system",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else if(e.type==="thinking"){const a={content:e.text||"",type:"thinking"},r=Q(),l=r.length-1;if(l>=0&&r[l].role==="assistant"){const p=r[l],A={id:p.id,parts:p.parts.concat(a),role:p.role,timestamp:p.timestamp};n(P,[...r.slice(0,l),A],!0)}else{const p={id:`think-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"assistant",timestamp:new Date().toISOString()};n(P,r.concat(p),!0)}}else if(e.type==="error"){const a={content:e.message||"Unknown error",type:"text"},r={id:`err-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,parts:[a],role:"system",timestamp:new Date().toISOString()};n(P,Q().concat(r),!0)}else e.type==="session-end"&&(n(ft,!0),t(s)&&n(s,{...t(s),status:"exited"},!0))}function wt(){W&&(clearTimeout(W),W=null),v&&(v.onclose=null,v.close(),v=null)}function _t(){t(N).trim()&&(O&&t(C)==="connected"&&O.sendInput(`${t(N)}\r`),n(N,""),t(it)?.focus())}function te(e){!e.trim()||v?.readyState!==WebSocket.OPEN||v.send(JSON.stringify({text:e,type:"send-input"}))}function kt(){v?.readyState===WebSocket.OPEN&&v.send(JSON.stringify({type:"cancel"}))}function ee(e){t(f)==="raw"?O&&t(C)==="connected"&&O.sendInput(e):t(f)==="chat"&&e===""&&kt()}function ne(e){e.key==="Enter"&&!e.shiftKey&&(e.preventDefault(),_t())}let et=!1,nt=!1;function se(e){e!==t(f)&&(n(f,e,!0),e==="raw"&&!et?(requestAnimationFrame(()=>{ct()}),et=!0):e==="chat"&&!nt&&(tt(),nt=!0))}function ae(){t(f)==="raw"?(bt(),n(C,"reconnecting"),ct(),et=!0):(wt(),n($,"reconnecting"),tt(),nt=!0)}Te(async()=>{await Xt(),!m&&(vt=Ue({onHelp:()=>{n(L,!t(L))}}),!(!t(s)||t(D))&&(t(G)&&window.innerWidth<768?n(f,"chat"):n(f,"raw"),t(f)==="raw"?(requestAnimationFrame(()=>{ct()}),et=!0):(tt(),nt=!0)))}),Ee(()=>{m=!0,bt(),wt(),vt?.destroy()});var St=un();Ke("1tubujq",e=>{var a=tn();je(()=>{Ae.title=`${t(mt)??""} - Terminal - Shooter`}),S(e,a)});var xt=Wt(St);{var re=e=>{var a=en();S(e,a)},oe=e=>{var a=nn(),r=c(k(a),2);Fe(r,{title:"Error",get description(){return t(D)},icon:p=>{Pe(p,{get svg(){return Re},classes:"icon-24"})}}),y(a),S(e,a)},ie=e=>{var a=cn(),r=k(a),l=k(r),p=c(k(l),2),A=k(p,!0);y(p);var It=c(p,2);Nt(It,{get text(){return t(Ht)},get classes(){return t(Ut)}});var Tt=c(It,2);{var ce=i=>{{let _=g(()=>t(j)?"Active":"Idle");Rt(i,{get text(){return t(_)},position:"bottom",children:(K,R)=>{var I=sn();B(()=>dt(I,1,`activity-dot ${t(j)?"activity-active":"activity-idle"}`,"svelte-1tubujq")),S(K,I)},$$slots:{default:!0}})}};M(Tt,i=>{t(z)&&i(ce)})}var Et=c(Tt,2);{var ue=i=>{{let _=g(()=>t(F)||t(s)?.cwd||"");Rt(i,{get text(){return t(_)},position:"bottom",children:(K,R)=>{var I=an(),X=k(I,!0);y(I),B(()=>at(X,t(ht))),S(K,I)},$$slots:{default:!0}})}};M(Et,i=>{t(ht)&&i(ue)})}var jt=c(Et,2);He(jt,{get status(){return t(pt)},onretry:ae});var de=c(jt,2);{var fe=i=>{const _=g(()=>t(s).sessionFile??"");var K=rn();B(R=>Ft(K,"href",`/session/${R??""}`),[()=>t(_).split(/[\\/]/).pop()?.replace(".jsonl","")||""]),S(i,K)};M(de,i=>{t(G)&&t(s)?.sessionFile&&i(fe)})}y(l);var At=c(l,2),Kt=k(At);{var ve=i=>{$e(i,{get items(){return Jt},get activeIndex(){return t(Gt)},onchange:_=>{se(_===0?"raw":"chat")},classes:"term-tabs"})};M(Kt,i=>{t(G)&&i(ve)})}var Mt=c(Kt,2);H(Mt,{classes:"term-shortcuts-btn",onclick:()=>{n(L,!t(L))},text:"?",ariaLabel:"Keyboard shortcuts"});var me=c(Mt,2);{var pe=i=>{H(i,{classes:"btn-danger btn-sm",onclick:yt,get disabled(){return t(q)},get showLoader(){return t(q)},text:"Kill"})},he=i=>{H(i,{classes:"btn-secondary btn-sm",onclick:Zt,get disabled(){return t(E)},get showLoader(){return t(E)},text:"Remove"})};M(me,i=>{t(z)?i(pe):i(he,-1)})}y(At),y(r);var ut=c(r,2);let qt;$t(ut,i=>n(U,i),()=>t(U));var Dt=c(ut,2);{var ge=i=>{var _=on(),K=k(_);Qe(K,{onKey:ee});var R=c(K,2),I=k(R);$t(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(N)},set value(Z){n(N,Z,!0)}}),Z=>n(it,Z,!0),()=>t(it));var X=c(I,2);{let Z=g(()=>!t(N).trim());H(X,{classes:"btn-primary btn-send",onclick:_t,get disabled(){return t(Z)},text:"↵"})}y(R),y(_),S(i,_)};M(Dt,i=>{t(z)&&t(f)==="raw"&&i(ge)})}var st=c(Dt,2);let Pt;var ye=k(st);We(ye,{get messages(){return t(P)},get connectionState(){return t(pt)},get sessionEnded(){return t(ft)},get showInput(){return t(z)},onSendInput:te,onCancel:kt}),y(st);var be=c(st,2);{var we=i=>{var _=ln(),K=c(k(_),2);{var R=I=>{{let X=g(()=>t(s).exitCode!==0?"pill-exit-error":"pill-exit-ok");Nt(I,{get text(){return`code ${t(s).exitCode??""}`},get classes(){return t(X)}})}};M(K,I=>{t(s).exitCode!==null&&I(R)})}y(_),S(i,_)};M(be,i=>{t(z)||i(we)})}y(a),B(()=>{at(A,t(mt)),qt=Ot(ut,"",qt,{display:t(f)==="raw"?"flex":"none"}),Pt=Ot(st,"",Pt,{display:t(f)==="chat"?"flex":"none"})}),S(e,a)};M(xt,e=>{t(d)?e(re):t(D)?e(oe,1):t(s)&&e(ie,2)})}var Ct=c(xt,2);Ye(Ct,{get open(){return t(L)},onClose:()=>{n(L,!1)}});var le=c(Ct,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(b,St),ot(),T()}export{Sn as component};
@@ -1 +1 @@
1
- {"version":"1780800154021"}
1
+ {"version":"1780830864274"}
Binary file
Binary file
@@ -15,9 +15,9 @@ const index = 0;
15
15
  let component_cache;
16
16
  const component = async () => component_cache ??= (await import('./_layout.svelte-noB4j-v2.js')).default;
17
17
  const server_id = "src/routes/+layout.server.ts";
18
- const imports = ["_app/immutable/nodes/0.C3ELOf4c.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/CjfxuHdN.js","_app/immutable/chunks/Bn-6X1BO.js","_app/immutable/chunks/CG453M9q.js","_app/immutable/chunks/CSjf4fBs.js"];
19
- const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/0.B0O0vCnX.css"];
18
+ const imports = ["_app/immutable/nodes/0.D_9EwVmq.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/DJvX78LW.js","_app/immutable/chunks/Bn-6X1BO.js","_app/immutable/chunks/CG453M9q.js","_app/immutable/chunks/CSjf4fBs.js"];
19
+ const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/0.NV8k8wxG.css"];
20
20
  const fonts = [];
21
21
 
22
22
  export { component, fonts, imports, index, _layout_server_ts as server, server_id, stylesheets };
23
- //# sourceMappingURL=0-BWFSL107.js.map
23
+ //# sourceMappingURL=0-Cd7jY0a7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"0-BWFSL107.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import { b as private_env } from \"../../chunks/shared-server.js\";\nimport { g as getProviderAvailability } from \"../../chunks/providers.js\";\nconst load = () => ({\n aiProviders: getProviderAvailability(private_env),\n neurolinkProvider: private_env.NEUROLINK_PROVIDER ?? \"\"\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/_layout.server.ts.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/0.C3ELOf4c.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/CjfxuHdN.js\",\"_app/immutable/chunks/Bn-6X1BO.js\",\"_app/immutable/chunks/CG453M9q.js\",\"_app/immutable/chunks/CSjf4fBs.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/0.B0O0vCnX.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC;AACnD,EAAE,iBAAiB,EAAE,WAAW,CAAC,kBAAkB,IAAI;AACvD,CAAC,CAAC;;;;;;;ACHU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAElG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChV,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"0-Cd7jY0a7.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_layout.server.ts.js","../../../.svelte-kit/adapter-node/nodes/0.js"],"sourcesContent":["import { b as private_env } from \"../../chunks/shared-server.js\";\nimport { g as getProviderAvailability } from \"../../chunks/providers.js\";\nconst load = () => ({\n aiProviders: getProviderAvailability(private_env),\n neurolinkProvider: private_env.NEUROLINK_PROVIDER ?? \"\"\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/_layout.server.ts.js';\n\nexport const index = 0;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_layout.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+layout.server.ts\";\nexport const imports = [\"_app/immutable/nodes/0.D_9EwVmq.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/DJvX78LW.js\",\"_app/immutable/chunks/Bn-6X1BO.js\",\"_app/immutable/chunks/CG453M9q.js\",\"_app/immutable/chunks/CSjf4fBs.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/0.NV8k8wxG.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;AAEA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,WAAW,EAAE,uBAAuB,CAAC,WAAW,CAAC;AACnD,EAAE,iBAAiB,EAAE,WAAW,CAAC,kBAAkB,IAAI;AACvD,CAAC,CAAC;;;;;;;ACHU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,8BAAoC,CAAC,EAAE;AAElG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChV,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 1;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./_error.svelte-CSIxs-ab.js')).default;
4
- const imports = ["_app/immutable/nodes/1.Fqso94b3.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/CjfxuHdN.js","_app/immutable/chunks/DZvnhU_8.js"];
4
+ const imports = ["_app/immutable/nodes/1.C4eFlqSB.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/DJvX78LW.js","_app/immutable/chunks/DZvnhU_8.js"];
5
5
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/1.B_AnTlN1.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=1-Bw5KlAjL.js.map
9
+ //# sourceMappingURL=1-C4BOGoJY.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"1-Bw5KlAjL.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.Fqso94b3.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/CjfxuHdN.js\",\"_app/immutable/chunks/DZvnhU_8.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/1.B_AnTlN1.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,6BAAmC,CAAC,EAAE;AACjG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"1-C4BOGoJY.js","sources":["../../../.svelte-kit/adapter-node/nodes/1.js"],"sourcesContent":["\n\nexport const index = 1;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_error.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/1.C4eFlqSB.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/DJvX78LW.js\",\"_app/immutable/chunks/DZvnhU_8.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/1.B_AnTlN1.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,6BAAmC,CAAC,EAAE;AACjG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACxQ,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
@@ -13,9 +13,9 @@ const index = 2;
13
13
  let component_cache;
14
14
  const component = async () => component_cache ??= (await import('./_page.svelte-DuzZr5dA.js')).default;
15
15
  const server_id = "src/routes/+page.server.ts";
16
- const imports = ["_app/immutable/nodes/2.BusCVJWk.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/Bn-6X1BO.js","_app/immutable/chunks/BRqaaL5D.js","_app/immutable/chunks/CG453M9q.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/C_9BZILB.js","_app/immutable/chunks/CRkG7oE4.js","_app/immutable/chunks/pRcLbE0d.js","_app/immutable/chunks/C5VOyQCG.js"];
16
+ const imports = ["_app/immutable/nodes/2.CdC092Za.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/Bn-6X1BO.js","_app/immutable/chunks/BRqaaL5D.js","_app/immutable/chunks/CG453M9q.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/C_9BZILB.js","_app/immutable/chunks/CRkG7oE4.js","_app/immutable/chunks/pRcLbE0d.js","_app/immutable/chunks/C5VOyQCG.js"];
17
17
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/2.DjiwkLqE.css"];
18
18
  const fonts = [];
19
19
 
20
20
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
21
- //# sourceMappingURL=2-CQ3yYSVK.js.map
21
+ //# sourceMappingURL=2-Ba0mNwJ6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"2-CQ3yYSVK.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["import { b as private_env } from \"../../chunks/shared-server.js\";\nconst load = () => ({\n googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/_page.server.ts.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/2.BusCVJWk.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/Bn-6X1BO.js\",\"_app/immutable/chunks/BRqaaL5D.js\",\"_app/immutable/chunks/CG453M9q.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/C_9BZILB.js\",\"_app/immutable/chunks/CRkG7oE4.js\",\"_app/immutable/chunks/pRcLbE0d.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/2.DjiwkLqE.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACnE,CAAC,CAAC;;;;;;;ACDU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE;AAEhG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChnB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"2-Ba0mNwJ6.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/2.js"],"sourcesContent":["import { b as private_env } from \"../../chunks/shared-server.js\";\nconst load = () => ({\n googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/_page.server.ts.js';\n\nexport const index = 2;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/2.CdC092Za.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/Bn-6X1BO.js\",\"_app/immutable/chunks/BRqaaL5D.js\",\"_app/immutable/chunks/CG453M9q.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/C_9BZILB.js\",\"_app/immutable/chunks/CRkG7oE4.js\",\"_app/immutable/chunks/pRcLbE0d.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/2.DjiwkLqE.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACnE,CAAC,CAAC;;;;;;;ACDU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAkC,CAAC,EAAE;AAEhG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAChnB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
@@ -13,9 +13,9 @@ const index = 3;
13
13
  let component_cache;
14
14
  const component = async () => component_cache ??= (await import('./_page.svelte-BV0XyYJZ.js')).default;
15
15
  const server_id = "src/routes/activity/+page.server.ts";
16
- const imports = ["_app/immutable/nodes/3.DUlpocIc.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/C_9BZILB.js","_app/immutable/chunks/CRkG7oE4.js","_app/immutable/chunks/pRcLbE0d.js"];
16
+ const imports = ["_app/immutable/nodes/3.Dhf4ZWW0.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/C_9BZILB.js","_app/immutable/chunks/CRkG7oE4.js","_app/immutable/chunks/pRcLbE0d.js"];
17
17
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/3.DHxQoulp.css"];
18
18
  const fonts = [];
19
19
 
20
20
  export { component, fonts, imports, index, _page_server_ts as server, server_id, stylesheets };
21
- //# sourceMappingURL=3-DZ4H9hPs.js.map
21
+ //# sourceMappingURL=3-Pg8t1uJU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"3-DZ4H9hPs.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/activity/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { b as private_env } from \"../../../chunks/shared-server.js\";\nconst load = () => ({\n googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/activity/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/activity/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/activity/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.DUlpocIc.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/C_9BZILB.js\",\"_app/immutable/chunks/CRkG7oE4.js\",\"_app/immutable/chunks/pRcLbE0d.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/3.DHxQoulp.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACnE,CAAC,CAAC;;;;;;;ACDU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AAEzG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"3-Pg8t1uJU.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/activity/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { b as private_env } from \"../../../chunks/shared-server.js\";\nconst load = () => ({\n googleAiConfigured: Boolean(private_env.GOOGLE_AI_API_KEY?.trim())\n});\nexport {\n load\n};\n","import * as server from '../entries/pages/activity/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/activity/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/activity/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.Dhf4ZWW0.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/C_9BZILB.js\",\"_app/immutable/chunks/CRkG7oE4.js\",\"_app/immutable/chunks/pRcLbE0d.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/3.DHxQoulp.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;AACA,MAAM,IAAI,GAAG,OAAO;AACpB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,iBAAiB,EAAE,IAAI,EAAE;AACnE,CAAC,CAAC;;;;;;;ACDU,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA2C,CAAC,EAAE;AAEzG,MAAC,SAAS,GAAG;AACb,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 6;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./_page.svelte-BfB8maoc.js')).default;
4
- const imports = ["_app/immutable/nodes/6.CG4eKRH0.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/BctvtE4d.js","_app/immutable/chunks/DzuS5Nbr.js","_app/immutable/chunks/Bn-6X1BO.js","_app/immutable/chunks/BRqaaL5D.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BxFShcQO.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/C5VOyQCG.js"];
4
+ const imports = ["_app/immutable/nodes/6.B3SEB_li.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/8lO1IL7u.js","_app/immutable/chunks/DzuS5Nbr.js","_app/immutable/chunks/Bn-6X1BO.js","_app/immutable/chunks/BRqaaL5D.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BdtLzPpO.js","_app/immutable/chunks/BLszSzTT.js","_app/immutable/chunks/C5VOyQCG.js"];
5
5
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/6.DzV0p3l-.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=6-BZ0enR6b.js.map
9
+ //# sourceMappingURL=6-D8xbnTSo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"6-BZ0enR6b.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/project/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.CG4eKRH0.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/BctvtE4d.js\",\"_app/immutable/chunks/DzuS5Nbr.js\",\"_app/immutable/chunks/Bn-6X1BO.js\",\"_app/immutable/chunks/BRqaaL5D.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BxFShcQO.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/6.DzV0p3l-.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA0C,CAAC,EAAE;AACxG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5kB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"6-D8xbnTSo.js","sources":["../../../.svelte-kit/adapter-node/nodes/6.js"],"sourcesContent":["\n\nexport const index = 6;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/project/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/6.B3SEB_li.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/8lO1IL7u.js\",\"_app/immutable/chunks/DzuS5Nbr.js\",\"_app/immutable/chunks/Bn-6X1BO.js\",\"_app/immutable/chunks/BRqaaL5D.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BdtLzPpO.js\",\"_app/immutable/chunks/BLszSzTT.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/6.DzV0p3l-.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA0C,CAAC,EAAE;AACxG,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5kB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 7;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./_page.svelte-Dmg-RFCg.js')).default;
4
- const imports = ["_app/immutable/nodes/7.DHilxD1o.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/BctvtE4d.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BxFShcQO.js","_app/immutable/chunks/Pw0jDB7M.js","_app/immutable/chunks/C_9BZILB.js"];
4
+ const imports = ["_app/immutable/nodes/7.DV8cJ1lX.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/8lO1IL7u.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BdtLzPpO.js","_app/immutable/chunks/B9WQy_3X.js","_app/immutable/chunks/C_9BZILB.js"];
5
5
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/ChatView.Bnlg-oAF.css","_app/immutable/assets/7.CEbRAOOf.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=7-Lg8imTZn.js.map
9
+ //# sourceMappingURL=7-CkVK06S0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"7-Lg8imTZn.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/session/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.DHilxD1o.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/BctvtE4d.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BxFShcQO.js\",\"_app/immutable/chunks/Pw0jDB7M.js\",\"_app/immutable/chunks/C_9BZILB.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/ChatView.Bnlg-oAF.css\",\"_app/immutable/assets/7.CEbRAOOf.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAC7G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,6CAA6C,CAAC,sCAAsC;AACrJ,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"7-CkVK06S0.js","sources":["../../../.svelte-kit/adapter-node/nodes/7.js"],"sourcesContent":["\n\nexport const index = 7;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/session/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/7.DV8cJ1lX.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/8lO1IL7u.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BdtLzPpO.js\",\"_app/immutable/chunks/B9WQy_3X.js\",\"_app/immutable/chunks/C_9BZILB.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/ChatView.Bnlg-oAF.css\",\"_app/immutable/assets/7.CEbRAOOf.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA+C,CAAC,EAAE;AAC7G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AAC5b,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,6CAA6C,CAAC,sCAAsC;AACrJ,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 8;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./_page.svelte-B6qyh-K-.js')).default;
4
- const imports = ["_app/immutable/nodes/8.BjKgvSie.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/BRqaaL5D.js","_app/immutable/chunks/CG453M9q.js","_app/immutable/chunks/CSjf4fBs.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BxFShcQO.js","_app/immutable/chunks/C5VOyQCG.js"];
4
+ const imports = ["_app/immutable/nodes/8.Bs362gyb.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/BRqaaL5D.js","_app/immutable/chunks/CG453M9q.js","_app/immutable/chunks/CSjf4fBs.js","_app/immutable/chunks/xs1Xl3_e.js","_app/immutable/chunks/gQJcRhou.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BdtLzPpO.js","_app/immutable/chunks/C5VOyQCG.js"];
5
5
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/8.BhoBXADL.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=8-DKs4yOL7.js.map
9
+ //# sourceMappingURL=8-C8qVhrds.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"8-DKs4yOL7.js","sources":["../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/8.BjKgvSie.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/BRqaaL5D.js\",\"_app/immutable/chunks/CG453M9q.js\",\"_app/immutable/chunks/CSjf4fBs.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BxFShcQO.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/8.BhoBXADL.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA4C,CAAC,EAAE;AAC1G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"8-C8qVhrds.js","sources":["../../../.svelte-kit/adapter-node/nodes/8.js"],"sourcesContent":["\n\nexport const index = 8;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/8.Bs362gyb.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/BRqaaL5D.js\",\"_app/immutable/chunks/CG453M9q.js\",\"_app/immutable/chunks/CSjf4fBs.js\",\"_app/immutable/chunks/xs1Xl3_e.js\",\"_app/immutable/chunks/gQJcRhou.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BdtLzPpO.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/8.BhoBXADL.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAA4C,CAAC,EAAE;AAC1G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,sCAAsC;AACvG,MAAC,KAAK,GAAG;;;;"}
@@ -1,9 +1,9 @@
1
1
  const index = 9;
2
2
  let component_cache;
3
3
  const component = async () => component_cache ??= (await import('./_page.svelte-C60lAagP.js')).default;
4
- const imports = ["_app/immutable/nodes/9.BRT6HOXB.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/ByzqAuXw.js","_app/immutable/chunks/CjfxuHdN.js","_app/immutable/chunks/DzuS5Nbr.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BxFShcQO.js","_app/immutable/chunks/Pw0jDB7M.js","_app/immutable/chunks/C_9BZILB.js","_app/immutable/chunks/C5VOyQCG.js"];
4
+ const imports = ["_app/immutable/nodes/9.Cf7_3uqT.js","_app/immutable/chunks/PPVm8Dsz.js","_app/immutable/chunks/Cg3dlX05.js","_app/immutable/chunks/DYuMZGL5.js","_app/immutable/chunks/DZQMsHM5.js","_app/immutable/chunks/DZvnhU_8.js","_app/immutable/chunks/nWG9RHyB.js","_app/immutable/chunks/DJvX78LW.js","_app/immutable/chunks/DzuS5Nbr.js","_app/immutable/chunks/BDcFu3l7.js","_app/immutable/chunks/BdtLzPpO.js","_app/immutable/chunks/B9WQy_3X.js","_app/immutable/chunks/C_9BZILB.js","_app/immutable/chunks/C5VOyQCG.js"];
5
5
  const stylesheets = ["_app/immutable/assets/ColorPicker.CV4IKef4.css","_app/immutable/assets/ChatView.Bnlg-oAF.css","_app/immutable/assets/9.v5KA95xm.css"];
6
6
  const fonts = [];
7
7
 
8
8
  export { component, fonts, imports, index, stylesheets };
9
- //# sourceMappingURL=9-UNmpUWDY.js.map
9
+ //# sourceMappingURL=9-fL5zqN0T.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"9-UNmpUWDY.js","sources":["../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/9.BRT6HOXB.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/ByzqAuXw.js\",\"_app/immutable/chunks/CjfxuHdN.js\",\"_app/immutable/chunks/DzuS5Nbr.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BxFShcQO.js\",\"_app/immutable/chunks/Pw0jDB7M.js\",\"_app/immutable/chunks/C_9BZILB.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/ChatView.Bnlg-oAF.css\",\"_app/immutable/assets/9.v5KA95xm.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAC/G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,6CAA6C,CAAC,sCAAsC;AACrJ,MAAC,KAAK,GAAG;;;;"}
1
+ {"version":3,"file":"9-fL5zqN0T.js","sources":["../../../.svelte-kit/adapter-node/nodes/9.js"],"sourcesContent":["\n\nexport const index = 9;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/terminals/_id_/_page.svelte.js')).default;\nexport const imports = [\"_app/immutable/nodes/9.Cf7_3uqT.js\",\"_app/immutable/chunks/PPVm8Dsz.js\",\"_app/immutable/chunks/Cg3dlX05.js\",\"_app/immutable/chunks/DYuMZGL5.js\",\"_app/immutable/chunks/DZQMsHM5.js\",\"_app/immutable/chunks/DZvnhU_8.js\",\"_app/immutable/chunks/nWG9RHyB.js\",\"_app/immutable/chunks/DJvX78LW.js\",\"_app/immutable/chunks/DzuS5Nbr.js\",\"_app/immutable/chunks/BDcFu3l7.js\",\"_app/immutable/chunks/BdtLzPpO.js\",\"_app/immutable/chunks/B9WQy_3X.js\",\"_app/immutable/chunks/C_9BZILB.js\",\"_app/immutable/chunks/C5VOyQCG.js\"];\nexport const stylesheets = [\"_app/immutable/assets/ColorPicker.CV4IKef4.css\",\"_app/immutable/assets/ChatView.Bnlg-oAF.css\",\"_app/immutable/assets/9.v5KA95xm.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":"AAEY,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAiD,CAAC,EAAE;AAC/G,MAAC,OAAO,GAAG,CAAC,oCAAoC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC,CAAC,mCAAmC;AACpgB,MAAC,WAAW,GAAG,CAAC,gDAAgD,CAAC,6CAA6C,CAAC,sCAAsC;AACrJ,MAAC,KAAK,GAAG;;;;"}
@@ -1,15 +1,14 @@
1
1
  import { v as validateAuth } from './auth-DuunT7Cg.js';
2
- import { P as PROVIDER_COMMANDS } from './registry-DzJj2E6I.js';
3
- import { p as ptyManager } from './pty-manager-RmhVe2Ez.js';
2
+ import { P as PROVIDER_COMMANDS } from './registry-Kcw2UCMv.js';
3
+ import { p as ptyManager } from './pty-manager-DmNSCKAr.js';
4
4
  import { t as toErrorMessage } from './error-DDXB3duW.js';
5
5
  import { j as json } from './index-CoD1IJuy.js';
6
6
  import { realpathSync, statSync } from 'fs';
7
7
  import { relative, isAbsolute } from 'path';
8
8
  import './shared-server-DaWdgxVh.js';
9
9
  import 'crypto';
10
- import './opencode-db-path-BwaPufWf.js';
10
+ import './qwen-reader-DGfUbKaJ.js';
11
11
  import 'os';
12
- import './qwen-reader-2fTFuC_D.js';
13
12
  import 'better-sqlite3';
14
13
  import 'child_process';
15
14
  import 'url';
@@ -137,4 +136,4 @@ const POST = async ({ request }) => {
137
136
  };
138
137
 
139
138
  export { GET, POST };
140
- //# sourceMappingURL=_server.ts-B1z0q6qZ.js.map
139
+ //# sourceMappingURL=_server.ts-BA_uWcPw.js.map