plan-assistant 1.5.0 → 1.6.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/README.md +31 -12
  2. package/build/client/_app/immutable/chunks/{CLpU78SQ.js → 5KpFG7Y3.js} +1 -1
  3. package/build/client/_app/immutable/chunks/AMggw8F_.js +1 -0
  4. package/build/client/_app/immutable/chunks/{3hcDFuOy.js → B0Br67Jm.js} +22 -22
  5. package/build/client/_app/immutable/chunks/{DAI9x5pz.js → BGuzEOEG.js} +1 -1
  6. package/build/client/_app/immutable/chunks/{C8APfMGc.js → BPC30ZkC.js} +1 -1
  7. package/build/client/_app/immutable/chunks/{C6lsq0EQ.js → BT-rYp04.js} +1 -1
  8. package/build/client/_app/immutable/chunks/{CuTEmqRN.js → BXachUYg.js} +1 -1
  9. package/build/client/_app/immutable/chunks/{BBUci_EN.js → BdxNwExl.js} +1 -1
  10. package/build/client/_app/immutable/chunks/{BExD98LF.js → Bdy6d4YN.js} +1 -1
  11. package/build/client/_app/immutable/chunks/{Bv2Fvpd-.js → BkkBWYh4.js} +1 -1
  12. package/build/client/_app/immutable/chunks/{CtvUvmNP.js → Bmsplg2Y.js} +1 -1
  13. package/build/client/_app/immutable/chunks/{B7UpUR8j.js → Bn0XLNse.js} +1 -1
  14. package/build/client/_app/immutable/chunks/{CsdQ7qj_.js → BuxFeYZa.js} +1 -1
  15. package/build/client/_app/immutable/chunks/{DmIm4oWg.js → C2OLrLCJ.js} +1 -1
  16. package/build/client/_app/immutable/chunks/C88p_n1l.js +3 -0
  17. package/build/client/_app/immutable/chunks/{CaQ_EsFt.js → CFomSPzW.js} +1 -1
  18. package/build/client/_app/immutable/chunks/{DVyAwrwy.js → CFx4VLDw.js} +1 -1
  19. package/build/client/_app/immutable/chunks/{BP4iV_qy.js → CRUUUIwS.js} +1 -1
  20. package/build/client/_app/immutable/chunks/{CQ3jUvrt.js → CRuCklg1.js} +1 -1
  21. package/build/client/_app/immutable/chunks/{PzsI0t6r.js → CUHvMbx0.js} +1 -1
  22. package/build/client/_app/immutable/chunks/{BE3d1fW1.js → C_5efo6-.js} +1 -1
  23. package/build/client/_app/immutable/chunks/{DgYrUT6W.js → Cb177sm-.js} +1 -1
  24. package/build/client/_app/immutable/chunks/{CMEI75WY.js → Cb9ekAV0.js} +1 -1
  25. package/build/client/_app/immutable/chunks/{Cklag6Wh.js → CdiHcRRA.js} +1 -1
  26. package/build/client/_app/immutable/chunks/{Bp1XOP3Y.js → CgIOtWnS.js} +1 -1
  27. package/build/client/_app/immutable/chunks/{Bc8p4D6T.js → CghPw8Xx.js} +1 -1
  28. package/build/client/_app/immutable/chunks/{BkgST-kf.js → Cmym6IfH.js} +1 -1
  29. package/build/client/_app/immutable/chunks/{C8TKm6Ie.js → Cvpo3167.js} +1 -1
  30. package/build/client/_app/immutable/chunks/{BxbztSiI.js → Cy0JyQfD.js} +1 -1
  31. package/build/client/_app/immutable/chunks/{D-JOz5e5.js → D-0mahX7.js} +1 -1
  32. package/build/client/_app/immutable/chunks/{DX0JfudZ.js → D8823oiN.js} +1 -1
  33. package/build/client/_app/immutable/chunks/{60AcEuIB.js → DIjXbgfi.js} +1 -1
  34. package/build/client/_app/immutable/chunks/{5WozQe49.js → DUIJXtzj.js} +1 -1
  35. package/build/client/_app/immutable/chunks/{2MoIsY2H.js → DXlvMCt6.js} +1 -1
  36. package/build/client/_app/immutable/chunks/{DhhVlT3Q.js → Dffa6mVP.js} +1 -1
  37. package/build/client/_app/immutable/chunks/{DmJI01FD.js → DgzenGSu.js} +1 -1
  38. package/build/client/_app/immutable/chunks/{DwtNXPRV.js → DqaGnr0n.js} +4 -4
  39. package/build/client/_app/immutable/chunks/{D82Ibe2Y.js → Drf3oeac.js} +1 -1
  40. package/build/client/_app/immutable/chunks/{v0r-xbZ1.js → EBvoHjF1.js} +1 -1
  41. package/build/client/_app/immutable/chunks/{BHlQNJvI.js → Fqo6xqtt.js} +1 -1
  42. package/build/client/_app/immutable/chunks/QDQklEwM.js +1 -0
  43. package/build/client/_app/immutable/chunks/{CDe5iF5C.js → Q_gMk3PN.js} +1 -1
  44. package/build/client/_app/immutable/chunks/{wkCjElX-.js → XHkT9caI.js} +1 -1
  45. package/build/client/_app/immutable/chunks/{BSmyMpB9.js → Zxe_1j0j.js} +1 -1
  46. package/build/client/_app/immutable/chunks/{NVoraB0x.js → czbfzgw3.js} +1 -1
  47. package/build/client/_app/immutable/chunks/{BLkN0eN4.js → mlMCI16G.js} +1 -1
  48. package/build/client/_app/immutable/chunks/{B5dqmTZt.js → qFFXeAvY.js} +1 -1
  49. package/build/client/_app/immutable/entry/{app.3iFud8JB.js → app.C_pWXh8R.js} +2 -2
  50. package/build/client/_app/immutable/entry/start.DfbNX0kb.js +1 -0
  51. package/build/client/_app/immutable/nodes/{1.DV_Uu5i6.js → 1.DN_p76XO.js} +1 -1
  52. package/build/client/_app/immutable/nodes/3.B0eShLlr.js +1 -0
  53. package/build/client/_app/version.json +1 -1
  54. package/build/server/chunks/{1-B0EuD9t5.js → 1-CEFNOpUG.js} +2 -2
  55. package/build/server/chunks/{1-B0EuD9t5.js.map → 1-CEFNOpUG.js.map} +1 -1
  56. package/build/server/chunks/{2-1iFROMDo.js → 2-qGWtN2-9.js} +3 -2
  57. package/build/server/chunks/{2-1iFROMDo.js.map → 2-qGWtN2-9.js.map} +1 -1
  58. package/build/server/chunks/{3-ChRVOXhH.js → 3-OUU46X3b.js} +6 -7
  59. package/build/server/chunks/3-OUU46X3b.js.map +1 -0
  60. package/build/server/chunks/{_page.svelte-Bg0Bxr-a.js → _page.svelte-DcqVlJwT.js} +13 -11
  61. package/build/server/chunks/_page.svelte-DcqVlJwT.js.map +1 -0
  62. package/build/server/chunks/_server.ts-BOWeAYnM.js +13 -0
  63. package/build/server/chunks/_server.ts-BOWeAYnM.js.map +1 -0
  64. package/build/server/chunks/{_server.ts-CEtvrNT1.js → _server.ts-BbMhMik1.js} +4 -3
  65. package/build/server/chunks/_server.ts-BbMhMik1.js.map +1 -0
  66. package/build/server/chunks/{_server.ts-H4qb8W_h.js → _server.ts-BhmTJZsP.js} +3 -4
  67. package/build/server/chunks/_server.ts-BhmTJZsP.js.map +1 -0
  68. package/build/server/chunks/{_server.ts-C91-5A8I.js → _server.ts-BjSxqsHx.js} +5 -7
  69. package/build/server/chunks/_server.ts-BjSxqsHx.js.map +1 -0
  70. package/build/server/chunks/{_server.ts-sRxHDQa9.js → _server.ts-C7d7vtwn.js} +3 -2
  71. package/build/server/chunks/_server.ts-C7d7vtwn.js.map +1 -0
  72. package/build/server/chunks/{_server.ts-B-Tg4-8H.js → _server.ts-D9nBKsq1.js} +2 -2
  73. package/build/server/chunks/{_server.ts-B-Tg4-8H.js.map → _server.ts-D9nBKsq1.js.map} +1 -1
  74. package/build/server/chunks/_server.ts-DTGwAmWz.js +14 -0
  75. package/build/server/chunks/_server.ts-DTGwAmWz.js.map +1 -0
  76. package/build/server/chunks/{_server.ts-DLQy-IHP.js → _server.ts-DiMlmks0.js} +2 -2
  77. package/build/server/chunks/{_server.ts-DLQy-IHP.js.map → _server.ts-DiMlmks0.js.map} +1 -1
  78. package/build/server/chunks/{hooks.server-rdEjirDu.js → hooks.server-DigZpFgW.js} +4 -3
  79. package/build/server/chunks/{hooks.server-rdEjirDu.js.map → hooks.server-DigZpFgW.js.map} +1 -1
  80. package/build/server/chunks/{idle-timer-CouFy_WF.js → idle-timer-BshN5Svi.js} +3 -2
  81. package/build/server/chunks/idle-timer-BshN5Svi.js.map +1 -0
  82. package/build/server/chunks/{session-manager-Df52lIJ3.js → session-manager-scAVAR7S.js} +10 -12
  83. package/build/server/chunks/session-manager-scAVAR7S.js.map +1 -0
  84. package/build/server/index.js +2 -2
  85. package/build/server/index.js.map +1 -1
  86. package/build/server/manifest.js +12 -12
  87. package/build/server/manifest.js.map +1 -1
  88. package/dist/cli/commands/clean.js +31 -28
  89. package/dist/cli/commands/export.js +2 -6
  90. package/dist/cli/commands/feedback.js +2 -6
  91. package/dist/cli/commands/status.js +6 -10
  92. package/dist/cli/commands/stop.js +7 -16
  93. package/dist/cli/markdown-parser.js +0 -8
  94. package/dist/cli/markdown-to-plan.js +1 -42
  95. package/dist/cli/server-client.js +15 -21
  96. package/dist/cli/session-reader.js +12 -8
  97. package/dist/cli/session-resolver.js +10 -0
  98. package/dist/lib/server/session-manager.js +8 -9
  99. package/dist/lib/utils/status.js +53 -0
  100. package/package.json +1 -1
  101. package/build/client/_app/immutable/chunks/CT9cgEPP.js +0 -1
  102. package/build/client/_app/immutable/chunks/DcuidqoU.js +0 -1
  103. package/build/client/_app/immutable/chunks/JT4pIYWD.js +0 -3
  104. package/build/client/_app/immutable/entry/start.CfusPEA0.js +0 -1
  105. package/build/client/_app/immutable/nodes/3.C2JIlVS_.js +0 -1
  106. package/build/server/chunks/3-ChRVOXhH.js.map +0 -1
  107. package/build/server/chunks/_page.svelte-Bg0Bxr-a.js.map +0 -1
  108. package/build/server/chunks/_server.ts-5D7tHXsH.js +0 -15
  109. package/build/server/chunks/_server.ts-5D7tHXsH.js.map +0 -1
  110. package/build/server/chunks/_server.ts-C91-5A8I.js.map +0 -1
  111. package/build/server/chunks/_server.ts-CEtvrNT1.js.map +0 -1
  112. package/build/server/chunks/_server.ts-H4qb8W_h.js.map +0 -1
  113. package/build/server/chunks/_server.ts-VG3gOvsa.js +0 -14
  114. package/build/server/chunks/_server.ts-VG3gOvsa.js.map +0 -1
  115. package/build/server/chunks/_server.ts-sRxHDQa9.js.map +0 -1
  116. package/build/server/chunks/idle-timer-CouFy_WF.js.map +0 -1
  117. package/build/server/chunks/session-manager-Df52lIJ3.js.map +0 -1
@@ -0,0 +1,53 @@
1
+ export const STATUS_LABELS = {
2
+ 'pending': 'Pending',
3
+ 'approved': 'Approved',
4
+ 'needs-work': 'Needs Work',
5
+ };
6
+ export function statusLabel(status) {
7
+ return STATUS_LABELS[status] ?? 'Pending';
8
+ }
9
+ export function statusBadgeClass(status) {
10
+ switch (status) {
11
+ case "approved":
12
+ return "bg-green/15 text-green";
13
+ case "needs-work":
14
+ return "bg-orange/15 text-orange";
15
+ default:
16
+ return "bg-accent/15 text-accent";
17
+ }
18
+ }
19
+ export function sessionStatusBadgeClass(status) {
20
+ switch (status) {
21
+ case "approved":
22
+ return "bg-green/15 text-green";
23
+ case "archived":
24
+ return "bg-text-dim/15 text-text-dim";
25
+ case "active":
26
+ default:
27
+ return "bg-accent/15 text-accent";
28
+ }
29
+ }
30
+ export function diffStatusColor(status) {
31
+ switch (status) {
32
+ case "added":
33
+ return "border-l-green bg-green/5";
34
+ case "removed":
35
+ return "border-l-red bg-red/5";
36
+ case "changed":
37
+ return "border-l-orange bg-orange/5";
38
+ default:
39
+ return "border-l-border";
40
+ }
41
+ }
42
+ export function diffStatusBadge(status) {
43
+ switch (status) {
44
+ case "added":
45
+ return "bg-green/15 text-green";
46
+ case "removed":
47
+ return "bg-red/15 text-red";
48
+ case "changed":
49
+ return "bg-orange/15 text-orange";
50
+ default:
51
+ return "bg-text-dim/15 text-text-dim";
52
+ }
53
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "plan-assistant",
3
- "version": "1.5.0",
3
+ "version": "1.6.0-alpha.1",
4
4
  "description": "Review implementation plans in the browser with live reload",
5
5
  "homepage": "https://github.com/sanderdatema/plan_assistant#readme",
6
6
  "bugs": {
@@ -1 +0,0 @@
1
- import{b as r}from"./CQ3jUvrt.js";var e=4;function a(o){return r(o,e)}export{a as c};
@@ -1 +0,0 @@
1
- import{ap as o,aq as n}from"./DwtNXPRV.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
@@ -1,3 +0,0 @@
1
- var Qe=e=>{throw TypeError(e)};var $t=(e,t,n)=>t.has(e)||Qe("Cannot "+n);var S=(e,t,n)=>($t(e,t,"read from private field"),n?n.call(e):t.get(e)),P=(e,t,n)=>t.has(e)?Qe("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,n);import{b8 as Ce,b9 as Dt,d as j,g as N,b as x,aM as _e,ba as Bt}from"./CobJHAAW.js";import{o as et}from"./DGn8gxMH.js";const Y=[];function Fe(e,t=Ce){let n=null;const a=new Set;function r(c){if(Dt(e,c)&&(e=c,n)){const s=!Y.length;for(const l of a)l[1](),Y.push(l,e);if(s){for(let l=0;l<Y.length;l+=2)Y[l][0](Y[l+1]);Y.length=0}}}function i(c){r(c(e))}function o(c,s=Ce){const l=[c,s];return a.add(l),a.size===1&&(n=t(r,i)||Ce),c(e),()=>{a.delete(l),a.size===0&&n&&(n(),n=null)}}return{set:r,update:i,subscribe:o}}class Re{constructor(t,n){this.status=t,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${t}`}}toString(){return JSON.stringify(this.body)}}class Me{constructor(t,n){this.status=t,this.location=n}}class Ve extends Error{constructor(t,n,a){super(a),this.status=t,this.text=n}}new URL("sveltekit-internal://");function qt(e,t){return e==="/"||t==="ignore"?e:t==="never"?e.endsWith("/")?e.slice(0,-1):e:t==="always"&&!e.endsWith("/")?e+"/":e}function Ft(e){return e.split("%25").map(decodeURI).join("%25")}function Mt(e){for(const t in e)e[t]=decodeURIComponent(e[t]);return e}function Pe({href:e}){return e.split("#")[0]}function Vt(...e){let t=5381;for(const n of e)if(typeof n=="string"){let a=n.length;for(;a;)t=t*33^n.charCodeAt(--a)}else if(ArrayBuffer.isView(n)){const a=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let r=a.length;for(;r;)t=t*33^a[--r]}else throw new TypeError("value must be a string or TypedArray");return(t>>>0).toString(36)}new TextEncoder;const Gt=new TextDecoder;function Kt(e){const t=atob(e),n=new Uint8Array(t.length);for(let a=0;a<t.length;a++)n[a]=t.charCodeAt(a);return n}const Yt=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:(t==null?void 0:t.method)||"GET")!=="GET"&&Q.delete(Ge(e)),Yt(e,t));const Q=new Map;function Wt(e,t){const n=Ge(e,t),a=document.querySelector(n);if(a!=null&&a.textContent){a.remove();let{body:r,...i}=JSON.parse(a.textContent);const o=a.getAttribute("data-ttl");return o&&Q.set(n,{body:r,init:i,ttl:1e3*Number(o)}),a.getAttribute("data-b64")!==null&&(r=Kt(r)),Promise.resolve(new Response(r,i))}return window.fetch(e,t)}function zt(e,t,n){if(Q.size>0){const a=Ge(e,n),r=Q.get(a);if(r){if(performance.now()<r.ttl&&["default","force-cache","only-if-cached",void 0].includes(n==null?void 0:n.cache))return new Response(r.body,r.init);Q.delete(a)}}return window.fetch(t,n)}function Ge(e,t){let a=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t!=null&&t.headers||t!=null&&t.body){const r=[];t.headers&&r.push([...new Headers(t.headers)].join(",")),t.body&&(typeof t.body=="string"||ArrayBuffer.isView(t.body))&&r.push(t.body),a+=`[data-hash="${Vt(...r)}"]`}return a}const Ht=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/;function Jt(e){const t=[];return{pattern:e==="/"?/^\/$/:new RegExp(`^${Zt(e).map(a=>{const r=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(a);if(r)return t.push({name:r[1],matcher:r[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(a);if(i)return t.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!a)return;const o=a.split(/\[(.+?)\](?!\])/);return"/"+o.map((s,l)=>{if(l%2){if(s.startsWith("x+"))return Oe(String.fromCharCode(parseInt(s.slice(2),16)));if(s.startsWith("u+"))return Oe(String.fromCharCode(...s.slice(2).split("-").map(h=>parseInt(h,16))));const f=Ht.exec(s),[,u,m,d,p]=f;return t.push({name:d,matcher:p,optional:!!u,rest:!!m,chained:m?l===1&&o[0]==="":!1}),m?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return Oe(s)}).join("")}).join("")}/?$`),params:t}}function Xt(e){return e!==""&&!/^\([^)]+\)$/.test(e)}function Zt(e){return e.slice(1).split("/").filter(Xt)}function Qt(e,t,n){const a={},r=e.slice(1),i=r.filter(c=>c!==void 0);let o=0;for(let c=0;c<t.length;c+=1){const s=t[c];let l=r[c-o];if(s.chained&&s.rest&&o&&(l=r.slice(c-o,c+1).filter(f=>f).join("/"),o=0),l===void 0)if(s.rest)l="";else continue;if(!s.matcher||n[s.matcher](l)){a[s.name]=l;const f=t[c+1],u=r[c+1];f&&!f.rest&&f.optional&&u&&s.chained&&(o=0),!f&&!u&&Object.keys(a).length===i.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return a}function Oe(e){return e.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function en({nodes:e,server_loads:t,dictionary:n,matchers:a}){const r=new Set(t);return Object.entries(n).map(([c,[s,l,f]])=>{const{pattern:u,params:m}=Jt(c),d={id:c,exec:p=>{const h=u.exec(p);if(h)return Qt(h,m,a)},errors:[1,...f||[]].map(p=>e[p]),layouts:[0,...l||[]].map(o),leaf:i(s)};return d.errors.length=d.layouts.length=Math.max(d.errors.length,d.layouts.length),d});function i(c){const s=c<0;return s&&(c=~c),[s,e[c]]}function o(c){return c===void 0?c:[r.has(c),e[c]]}}function gt(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function tt(e,t,n=JSON.stringify){const a=n(t);try{sessionStorage[e]=a}catch{}}var ft;const C=((ft=globalThis.__sveltekit_14qer33)==null?void 0:ft.base)??"";var ut;const tn=((ut=globalThis.__sveltekit_14qer33)==null?void 0:ut.assets)??C??"",nn="1774188748984",mt="sveltekit:snapshot",_t="sveltekit:scroll",wt="sveltekit:states",rn="sveltekit:pageurl",z="sveltekit:history",ne="sveltekit:navigation",V={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Ie=location.origin;function yt(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){const n=document.getElementsByTagName("base");t=n.length?n[0].href:document.URL}return new URL(e,t)}function K(){return{x:pageXOffset,y:pageYOffset}}function W(e,t){return e.getAttribute(`data-sveltekit-${t}`)}const nt={...V,"":V.hover};function vt(e){let t=e.assignedSlot??e.parentNode;return(t==null?void 0:t.nodeType)===11&&(t=t.host),t}function bt(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()==="A"&&e.hasAttribute("href"))return e;e=vt(e)}}function xe(e,t,n){let a;try{if(a=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&a.hash.match(/^#[^/]/)){const c=location.hash.split("#")[1]||"/";a.hash=`#${c}${a.hash}`}}catch{}const r=e instanceof SVGAElement?e.target.baseVal:e.target,i=!a||!!r||Te(a,t,n)||(e.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(a==null?void 0:a.origin)===Ie&&e.hasAttribute("download");return{url:a,external:i,target:r,download:o}}function we(e){let t=null,n=null,a=null,r=null,i=null,o=null,c=e;for(;c&&c!==document.documentElement;)a===null&&(a=W(c,"preload-code")),r===null&&(r=W(c,"preload-data")),t===null&&(t=W(c,"keepfocus")),n===null&&(n=W(c,"noscroll")),i===null&&(i=W(c,"reload")),o===null&&(o=W(c,"replacestate")),c=vt(c);function s(l){switch(l){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:nt[a??"off"],preload_data:nt[r??"off"],keepfocus:s(t),noscroll:s(n),reload:s(i),replace_state:s(o)}}function rt(e){const t=Fe(e);let n=!0;function a(){n=!0,t.update(o=>o)}function r(o){n=!1,t.set(o)}function i(o){let c;return t.subscribe(s=>{(c===void 0||n&&s!==c)&&o(c=s)})}return{notify:a,set:r,subscribe:i}}const kt={v:()=>{}};function an(){const{set:e,subscribe:t}=Fe(!1);let n;async function a(){clearTimeout(n);try{const r=await fetch(`${tn}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!r.ok)return!1;const o=(await r.json()).version!==nn;return o&&(e(!0),kt.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:t,check:a}}function Te(e,t,n){return e.origin!==Ie||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Wn(e){}function on(e){const t=cn(e),n=new ArrayBuffer(t.length),a=new DataView(n);for(let r=0;r<n.byteLength;r++)a.setUint8(r,t.charCodeAt(r));return n}const sn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function cn(e){e.length%4===0&&(e=e.replace(/==?$/,""));let t="",n=0,a=0;for(let r=0;r<e.length;r++)n<<=6,n|=sn.indexOf(e[r]),a+=6,a===24&&(t+=String.fromCharCode((n&16711680)>>16),t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255),n=a=0);return a===12?(n>>=4,t+=String.fromCharCode(n)):a===18&&(n>>=2,t+=String.fromCharCode((n&65280)>>8),t+=String.fromCharCode(n&255)),t}const ln=-1,fn=-2,un=-3,hn=-4,dn=-5,pn=-6,gn=-7;function mn(e,t){if(typeof e=="number")return i(e,!0);if(!Array.isArray(e)||e.length===0)throw new Error("Invalid input");const n=e,a=Array(n.length);let r=null;function i(o,c=!1){if(o===ln)return;if(o===un)return NaN;if(o===hn)return 1/0;if(o===dn)return-1/0;if(o===pn)return-0;if(c||typeof o!="number")throw new Error("Invalid input");if(o in a)return a[o];const s=n[o];if(!s||typeof s!="object")a[o]=s;else if(Array.isArray(s))if(typeof s[0]=="string"){const l=s[0],f=t&&Object.hasOwn(t,l)?t[l]:void 0;if(f){let u=s[1];if(typeof u!="number"&&(u=n.push(s[1])-1),r??(r=new Set),r.has(u))throw new Error("Invalid circular reference");return r.add(u),a[o]=f(i(u)),r.delete(u),a[o]}switch(l){case"Date":a[o]=new Date(s[1]);break;case"Set":const u=new Set;a[o]=u;for(let h=1;h<s.length;h+=1)u.add(i(s[h]));break;case"Map":const m=new Map;a[o]=m;for(let h=1;h<s.length;h+=2)m.set(i(s[h]),i(s[h+1]));break;case"RegExp":a[o]=new RegExp(s[1],s[2]);break;case"Object":const d=Object(s[1]);if(Object.hasOwn(d,"__proto__"))throw new Error("Cannot parse an object with a `__proto__` property");a[o]=d;break;case"BigInt":a[o]=BigInt(s[1]);break;case"null":const p=Object.create(null);a[o]=p;for(let h=1;h<s.length;h+=2){if(s[h]==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");p[s[h]]=i(s[h+1])}break;case"Int8Array":case"Uint8Array":case"Uint8ClampedArray":case"Int16Array":case"Uint16Array":case"Int32Array":case"Uint32Array":case"Float32Array":case"Float64Array":case"BigInt64Array":case"BigUint64Array":{if(n[s[1]][0]!=="ArrayBuffer")throw new Error("Invalid data");const h=globalThis[l],w=i(s[1]),_=new h(w);a[o]=s[2]!==void 0?_.subarray(s[2],s[3]):_;break}case"ArrayBuffer":{const h=s[1];if(typeof h!="string")throw new Error("Invalid ArrayBuffer encoding");const w=on(h);a[o]=w;break}case"Temporal.Duration":case"Temporal.Instant":case"Temporal.PlainDate":case"Temporal.PlainTime":case"Temporal.PlainDateTime":case"Temporal.PlainMonthDay":case"Temporal.PlainYearMonth":case"Temporal.ZonedDateTime":{const h=l.slice(9);a[o]=Temporal[h].from(s[1]);break}case"URL":{const h=new URL(s[1]);a[o]=h;break}case"URLSearchParams":{const h=new URLSearchParams(s[1]);a[o]=h;break}default:throw new Error(`Unknown type ${l}`)}}else if(s[0]===gn){const l=s[1];if(!Number.isInteger(l)||l<0)throw new Error("Invalid input");const f=new Array(l);a[o]=f;for(let u=2;u<s.length;u+=2){const m=s[u];if(!Number.isInteger(m)||m<0||m>=l)throw new Error("Invalid input");f[m]=i(s[u+1])}}else{const l=new Array(s.length);a[o]=l;for(let f=0;f<s.length;f+=1){const u=s[f];u!==fn&&(l[f]=i(u))}}else{const l={};a[o]=l;for(const f of Object.keys(s)){if(f==="__proto__")throw new Error("Cannot parse an object with a `__proto__` property");const u=s[f];l[f]=i(u)}}return a[o]}return i(0)}const Et=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...Et];const _n=new Set([...Et]);[..._n];function wn(e){return e.filter(t=>t!=null)}const yn="x-sveltekit-invalidated",vn="x-sveltekit-trailing-slash";function ye(e){return e instanceof Re||e instanceof Ve?e.status:500}function bn(e){return e instanceof Ve?e.text:"Internal Error"}let U,re,je;const kn=et.toString().includes("$$")||/function \w+\(\) \{\}/.test(et.toString());var se,ie,ce,le,fe,ue,he,de,ht,pe,dt,ge,pt;kn?(U={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},re={current:null},je={current:!1}):(U=new(ht=class{constructor(){P(this,se,j({}));P(this,ie,j(null));P(this,ce,j(null));P(this,le,j({}));P(this,fe,j({id:null}));P(this,ue,j({}));P(this,he,j(-1));P(this,de,j(new URL("https://example.com")))}get data(){return N(S(this,se))}set data(t){x(S(this,se),t)}get form(){return N(S(this,ie))}set form(t){x(S(this,ie),t)}get error(){return N(S(this,ce))}set error(t){x(S(this,ce),t)}get params(){return N(S(this,le))}set params(t){x(S(this,le),t)}get route(){return N(S(this,fe))}set route(t){x(S(this,fe),t)}get state(){return N(S(this,ue))}set state(t){x(S(this,ue),t)}get status(){return N(S(this,he))}set status(t){x(S(this,he),t)}get url(){return N(S(this,de))}set url(t){x(S(this,de),t)}},se=new WeakMap,ie=new WeakMap,ce=new WeakMap,le=new WeakMap,fe=new WeakMap,ue=new WeakMap,he=new WeakMap,de=new WeakMap,ht),re=new(dt=class{constructor(){P(this,pe,j(null))}get current(){return N(S(this,pe))}set current(t){x(S(this,pe),t)}},pe=new WeakMap,dt),je=new(pt=class{constructor(){P(this,ge,j(!1))}get current(){return N(S(this,ge))}set current(t){x(S(this,ge),t)}},ge=new WeakMap,pt),kt.v=()=>je.current=!0);function En(e){Object.assign(U,e)}const Sn="/__data.json",An=".html__data.json";function Rn(e){return e.endsWith(".html")?e.replace(/\.html$/,An):e.replace(/\/$/,"")+Sn}const In=new Set(["icon","shortcut icon","apple-touch-icon"]),q=gt(_t)??{},ae=gt(mt)??{},B={url:rt({}),page:rt({}),navigating:Fe(null),updated:an()};function Ke(e){q[e]=K()}function Tn(e,t){let n=e+1;for(;q[n];)delete q[n],n+=1;for(n=t+1;ae[n];)delete ae[n],n+=1}function X(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(()=>{})}async function St(){if("serviceWorker"in navigator){const e=await navigator.serviceWorker.getRegistration(C||"/");e&&await e.update()}}function at(){}let Ye,$e,ve,D,De,R;const be=[],ke=[];let A=null;function Be(){var e;(e=A==null?void 0:A.fork)==null||e.then(t=>t==null?void 0:t.discard()),A=null}const me=new Map,At=new Set,Un=new Set,ee=new Set;let y={branch:[],error:null,url:null},We=!1,Ee=!1,ot=!0,oe=!1,Z=!1,Rt=!1,ze=!1,It,I,L,G;const te=new Set,st=new Map;async function Xn(e,t,n){var i,o,c,s,l;(i=globalThis.__sveltekit_14qer33)!=null&&i.data&&globalThis.__sveltekit_14qer33.data,document.URL!==location.href&&(location.href=location.href),R=e,await((c=(o=e.hooks).init)==null?void 0:c.call(o)),Ye=en(e),D=document.documentElement,De=t,$e=e.nodes[0],ve=e.nodes[1],$e(),ve(),I=(s=history.state)==null?void 0:s[z],L=(l=history.state)==null?void 0:l[ne],I||(I=L=Date.now(),history.replaceState({...history.state,[z]:I,[ne]:L},""));const a=q[I];function r(){a&&(history.scrollRestoration="manual",scrollTo(a.x,a.y))}n?(r(),await Fn(De,n)):(await H({type:"enter",url:yt(R.hash?Vn(new URL(location.href)):location.href),replace_state:!0}),r()),qn()}function Ln(){be.length=0,ze=!1}function Tt(e){ke.some(t=>t==null?void 0:t.snapshot)&&(ae[e]=ke.map(t=>{var n;return(n=t==null?void 0:t.snapshot)==null?void 0:n.capture()}))}function Ut(e){var t;(t=ae[e])==null||t.forEach((n,a)=>{var r,i;(i=(r=ke[a])==null?void 0:r.snapshot)==null||i.restore(n)})}function it(){Ke(I),tt(_t,q),Tt(L),tt(mt,ae)}async function Cn(e,t,n,a){let r;t.invalidateAll&&Be(),await H({type:"goto",url:yt(e),keepfocus:t.keepFocus,noscroll:t.noScroll,replace_state:t.replaceState,state:t.state,redirect_count:n,nav_token:a,accept:()=>{t.invalidateAll&&(ze=!0,r=[...st.keys()]),t.invalidate&&t.invalidate.forEach(Bn)}}),t.invalidateAll&&_e().then(_e).then(()=>{st.forEach(({resource:i},o)=>{var c;r!=null&&r.includes(o)&&((c=i.refresh)==null||c.call(i))})})}async function Pn(e){if(e.id!==(A==null?void 0:A.id)){Be();const t={};te.add(t),A={id:e.id,token:t,promise:Ct({...e,preload:t}).then(n=>(te.delete(t),n.type==="loaded"&&n.state.error&&Be(),n)),fork:null}}return A.promise}async function Ne(e){var n;const t=(n=await Le(e,!1))==null?void 0:n.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(a=>a[1]()))}async function Lt(e,t,n){var r;y=e.state;const a=document.querySelector("style[data-sveltekit]");if(a&&a.remove(),Object.assign(U,e.props.page),It=new R.root({target:t,props:{...e.props,stores:B,components:ke},hydrate:n,sync:!1}),await Promise.resolve(),Ut(L),n){const i={from:null,to:{params:y.params,route:{id:((r=y.route)==null?void 0:r.id)??null},url:new URL(location.href),scroll:q[I]??K()},willUnload:!1,type:"enter",complete:Promise.resolve()};ee.forEach(o=>o(i))}Ee=!0}function Se({url:e,params:t,branch:n,status:a,error:r,route:i,form:o}){let c="never";if(C&&(e.pathname===C||e.pathname===C+"/"))c="always";else for(const d of n)(d==null?void 0:d.slash)!==void 0&&(c=d.slash);e.pathname=qt(e.pathname,c),e.search=e.search;const s={type:"loaded",state:{url:e,params:t,branch:n,error:r,route:i},props:{constructors:wn(n).map(d=>d.node.component),page:Ze(U)}};o!==void 0&&(s.props.form=o);let l={},f=!U,u=0;for(let d=0;d<Math.max(n.length,y.branch.length);d+=1){const p=n[d],h=y.branch[d];(p==null?void 0:p.data)!==(h==null?void 0:h.data)&&(f=!0),p&&(l={...l,...p.data},f&&(s.props[`data_${u}`]=l),u+=1)}return(!y.url||e.href!==y.url.href||y.error!==r||o!==void 0&&o!==U.form||f)&&(s.props.page={error:r,params:t,route:{id:(i==null?void 0:i.id)??null},state:{},status:a,url:new URL(e),form:o??null,data:f?l:U.data}),s}async function He({loader:e,parent:t,url:n,params:a,route:r,server_data_node:i}){var l,f;let o=null;const c={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:i,universal:(l=s.universal)!=null&&l.load?{type:"data",data:o,uses:c}:null,data:o??(i==null?void 0:i.data)??null,slash:((f=s.universal)==null?void 0:f.trailingSlash)??(i==null?void 0:i.slash)}}function On(e,t,n){let a=e instanceof Request?e.url:e;const r=new URL(a,n);r.origin===n.origin&&(a=r.href.slice(n.origin.length));const i=Ee?zt(a,r.href,t):Wt(a,t);return{resolved:r,promise:i}}function ct(e,t,n,a,r,i){if(ze)return!0;if(!r)return!1;if(r.parent&&e||r.route&&t||r.url&&n)return!0;for(const o of r.search_params)if(a.has(o))return!0;for(const o of r.params)if(i[o]!==y.params[o])return!0;for(const o of r.dependencies)if(be.some(c=>c(new URL(o))))return!0;return!1}function Je(e,t){return(e==null?void 0:e.type)==="data"?e:(e==null?void 0:e.type)==="skip"?t??null:null}function jn(e,t){if(!e)return new Set(t.searchParams.keys());const n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(const a of n){const r=e.searchParams.getAll(a),i=t.searchParams.getAll(a);r.every(o=>i.includes(o))&&i.every(o=>r.includes(o))&&n.delete(a)}return n}function lt({error:e,url:t,route:n,params:a}){return{type:"loaded",state:{error:e,url:t,route:n,params:a,branch:[]},props:{page:Ze(U),constructors:[]}}}async function Ct({id:e,invalidating:t,url:n,params:a,route:r,preload:i}){if((A==null?void 0:A.id)===e)return te.delete(A.token),A.promise;const{errors:o,layouts:c,leaf:s}=r,l=[...c,s];o.forEach(g=>g==null?void 0:g().catch(()=>{})),l.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));let f=null;const u=y.url?e!==Ae(y.url):!1,m=y.route?r.id!==y.route.id:!1,d=jn(y.url,n);let p=!1;{const g=l.map((v,b)=>{var E;const k=y.branch[b],O=!!(v!=null&&v[0])&&((k==null?void 0:k.loader)!==v[1]||ct(p,m,u,d,(E=k.server)==null?void 0:E.uses,a));return O&&(p=!0),O});if(g.some(Boolean)){try{f=await jt(n,g)}catch(v){const b=await J(v,{url:n,params:a,route:{id:e}});return te.has(i)?lt({error:b,url:n,params:a,route:r}):Ue({status:ye(v),error:b,url:n,route:r})}if(f.type==="redirect")return f}}const h=f==null?void 0:f.nodes;let w=!1;const _=l.map(async(g,v)=>{var E;if(!g)return;const b=y.branch[v],k=h==null?void 0:h[v];if((!k||k.type==="skip")&&g[1]===(b==null?void 0:b.loader)&&!ct(w,m,u,d,(E=b.universal)==null?void 0:E.uses,a))return b;if(w=!0,(k==null?void 0:k.type)==="error")throw k;return He({loader:g[1],url:n,params:a,route:r,parent:async()=>{var $;const F={};for(let M=0;M<v;M+=1)Object.assign(F,($=await _[M])==null?void 0:$.data);return F},server_data_node:Je(k===void 0&&g[0]?{type:"skip"}:k??null,g[0]?b==null?void 0:b.server:void 0)})});for(const g of _)g.catch(()=>{});const T=[];for(let g=0;g<l.length;g+=1)if(l[g])try{T.push(await _[g])}catch(v){if(v instanceof Me)return{type:"redirect",location:v.location};if(te.has(i))return lt({error:await J(v,{params:a,url:n,route:{id:r.id}}),url:n,params:a,route:r});let b=ye(v),k;if(h!=null&&h.includes(v))b=v.status??b,k=v.error;else if(v instanceof Re)k=v.body;else{if(await B.updated.check())return await St(),await X(n);k=await J(v,{params:a,url:n,route:{id:r.id}})}const O=await Nn(g,T,o);return O?Se({url:n,params:a,branch:T.slice(0,O.idx).concat(O.node),status:b,error:k,route:r}):await Ot(n,{id:r.id},k,b)}else T.push(void 0);return Se({url:n,params:a,branch:T,status:200,error:null,route:r,form:t?void 0:null})}async function Nn(e,t,n){for(;e--;)if(n[e]){let a=e;for(;!t[a];)a-=1;try{return{idx:a+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Ue({status:e,error:t,url:n,route:a}){const r={};let i=null;if(R.server_loads[0]===0)try{const c=await jt(n,[!0]);if(c.type!=="data"||c.nodes[0]&&c.nodes[0].type!=="data")throw 0;i=c.nodes[0]??null}catch{(n.origin!==Ie||n.pathname!==location.pathname||We)&&await X(n)}try{const o=await He({loader:$e,url:n,params:r,route:a,parent:()=>Promise.resolve({}),server_data_node:Je(i)}),c={node:await ve(),loader:ve,universal:null,server:null,data:null};return Se({url:n,params:r,branch:[o,c],status:e,error:t,route:null})}catch(o){if(o instanceof Me)return Cn(new URL(o.location,location.href),{},0);throw o}}async function xn(e){const t=e.href;if(me.has(t))return me.get(t);let n;try{const a=(async()=>{let r=await R.hooks.reroute({url:new URL(e),fetch:async(i,o)=>On(i,o,e).promise})??e;if(typeof r=="string"){const i=new URL(e);R.hash?i.hash=r:i.pathname=r,r=i}return r})();me.set(t,a),n=await a}catch{me.delete(t);return}return n}async function Le(e,t){if(e&&!Te(e,C,R.hash)){const n=await xn(e);if(!n)return;const a=$n(n);for(const r of Ye){const i=r.exec(a);if(i)return{id:Ae(e),invalidating:t,route:r,params:Mt(i),url:e}}}}function $n(e){return Ft(R.hash?e.hash.replace(/^#/,"").replace(/[?#].+/,""):e.pathname.slice(C.length))||"/"}function Ae(e){return(R.hash?e.hash.replace(/^#/,""):e.pathname)+e.search}function Pt({url:e,type:t,intent:n,delta:a,event:r,scroll:i}){let o=!1;const c=Xe(y,n,e,t,i??null);a!==void 0&&(c.navigation.delta=a),r!==void 0&&(c.navigation.event=r);const s={...c.navigation,cancel:()=>{o=!0,c.reject(new Error("navigation cancelled"))}};return oe||At.forEach(l=>l(s)),o?null:c}async function H({type:e,url:t,popped:n,keepfocus:a,noscroll:r,replace_state:i,state:o={},redirect_count:c=0,nav_token:s={},accept:l=at,block:f=at,event:u}){var O;const m=G;G=s;const d=await Le(t,!1),p=e==="enter"?Xe(y,d,t,e):Pt({url:t,type:e,delta:n==null?void 0:n.delta,intent:d,scroll:n==null?void 0:n.scroll,event:u});if(!p){f(),G===s&&(G=m);return}const h=I,w=L;l(),oe=!0,Ee&&p.navigation.type!=="enter"&&B.navigating.set(re.current=p.navigation);let _=d&&await Ct(d);if(!_){if(Te(t,C,R.hash))return await X(t,i);_=await Ot(t,{id:null},await J(new Ve(404,"Not Found",`Not found: ${t.pathname}`),{url:t,params:{},route:{id:null}}),404,i)}if(t=(d==null?void 0:d.url)||t,G!==s)return p.reject(new Error("navigation aborted")),!1;if(_.type==="redirect"){if(c<20){await H({type:e,url:new URL(_.location,t),popped:n,keepfocus:a,noscroll:r,replace_state:i,state:o,redirect_count:c+1,nav_token:s}),p.fulfil(void 0);return}_=await Ue({status:500,error:await J(new Error("Redirect loop"),{url:t,params:{},route:{id:null}}),url:t,route:{id:null}})}else _.props.page.status>=400&&await B.updated.check()&&(await St(),await X(t,i));if(Ln(),Ke(h),Tt(w),_.props.page.url.pathname!==t.pathname&&(t.pathname=_.props.page.url.pathname),o=n?n.state:o,!n){const E=i?0:1,F={[z]:I+=E,[ne]:L+=E,[wt]:o};(i?history.replaceState:history.pushState).call(history,F,"",t),i||Tn(I,L)}const T=d&&(A==null?void 0:A.id)===d.id?A.fork:null;A=null,_.props.page.state=o;let g;if(Ee){const E=(await Promise.all(Array.from(Un,$=>$(p.navigation)))).filter($=>typeof $=="function");if(E.length>0){let $=function(){E.forEach(M=>{ee.delete(M)})};E.push($),E.forEach(M=>{ee.add(M)})}y=_.state,_.props.page&&(_.props.page.url=t);const F=T&&await T;F?g=F.commit():(It.$set(_.props),En(_.props.page),g=(O=Bt)==null?void 0:O()),Rt=!0}else await Lt(_,De,!1);const{activeElement:v}=document;await g,await _e(),await _e();let b=null;if(ot){const E=n?n.scroll:r?K():null;E?scrollTo(E.x,E.y):(b=t.hash&&document.getElementById(xt(t)))?b.scrollIntoView():scrollTo(0,0)}const k=document.activeElement!==v&&document.activeElement!==document.body;!a&&!k&&Mn(t,!b),ot=!0,_.props.page&&Object.assign(U,_.props.page),oe=!1,e==="popstate"&&Ut(L),p.fulfil(void 0),p.navigation.to&&(p.navigation.to.scroll=K()),ee.forEach(E=>E(p.navigation)),B.navigating.set(re.current=null)}async function Ot(e,t,n,a,r){return e.origin===Ie&&e.pathname===location.pathname&&!We?await Ue({status:a,error:n,url:e,route:t}):await X(e,r)}function Dn(){let e,t={element:void 0,href:void 0},n;D.addEventListener("mousemove",c=>{const s=c.target;clearTimeout(e),e=setTimeout(()=>{i(s,V.hover)},20)});function a(c){c.defaultPrevented||i(c.composedPath()[0],V.tap)}D.addEventListener("mousedown",a),D.addEventListener("touchstart",a,{passive:!0});const r=new IntersectionObserver(c=>{for(const s of c)s.isIntersecting&&(Ne(new URL(s.target.href)),r.unobserve(s.target))},{threshold:0});async function i(c,s){const l=bt(c,D),f=l===t.element&&(l==null?void 0:l.href)===t.href&&s>=n;if(!l||f)return;const{url:u,external:m,download:d}=xe(l,C,R.hash);if(m||d)return;const p=we(l),h=u&&Ae(y.url)===Ae(u);if(!(p.reload||h))if(s<=p.preload_data){t={element:l,href:l.href},n=V.tap;const w=await Le(u,!1);if(!w)return;Pn(w)}else s<=p.preload_code&&(t={element:l,href:l.href},n=s,Ne(u))}function o(){r.disconnect();for(const c of D.querySelectorAll("a")){const{url:s,external:l,download:f}=xe(c,C,R.hash);if(l||f)continue;const u=we(c);u.reload||(u.preload_code===V.viewport&&r.observe(c),u.preload_code===V.eager&&Ne(s))}}ee.add(o),o()}function J(e,t){if(e instanceof Re)return e.body;const n=ye(e),a=bn(e);return R.hooks.handleError({error:e,event:t,status:n,message:a})??{message:a}}function Bn(e){if(typeof e=="function")be.push(e);else{const{href:t}=new URL(e,location.href);be.push(n=>n.href===t)}}function qn(){var t;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let a=!1;if(it(),!oe){const r=Xe(y,void 0,null,"leave"),i={...r.navigation,cancel:()=>{a=!0,r.reject(new Error("navigation cancelled"))}};At.forEach(o=>o(i))}a?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&it()}),(t=navigator.connection)!=null&&t.saveData||Dn(),D.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const a=bt(n.composedPath()[0],D);if(!a)return;const{url:r,external:i,target:o,download:c}=xe(a,C,R.hash);if(!r)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const s=we(a);if(!(a instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol==="https:"||r.protocol==="http:")||c)return;const[f,u]=(R.hash?r.hash.replace(/^#/,""):r.href).split("#"),m=f===Pe(location);if(i||s.reload&&(!m||!u)){Pt({url:r,type:"link",event:n})?oe=!0:n.preventDefault();return}if(u!==void 0&&m){const[,d]=y.url.href.split("#");if(d===u){if(n.preventDefault(),u===""||u==="top"&&a.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const p=a.ownerDocument.getElementById(decodeURIComponent(u));p&&(p.scrollIntoView(),p.focus())}return}if(Z=!0,Ke(I),e(r),!s.replace_state)return;Z=!1}n.preventDefault(),await new Promise(d=>{requestAnimationFrame(()=>{setTimeout(d,0)}),setTimeout(d,100)}),await H({type:"link",url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:n})}),D.addEventListener("submit",n=>{if(n.defaultPrevented)return;const a=HTMLFormElement.prototype.cloneNode.call(n.target),r=n.submitter;if(((r==null?void 0:r.formTarget)||a.target)==="_blank"||((r==null?void 0:r.formMethod)||a.method)!=="get")return;const c=new URL((r==null?void 0:r.hasAttribute("formaction"))&&(r==null?void 0:r.formAction)||a.action);if(Te(c,C,!1))return;const s=n.target,l=we(s);if(l.reload)return;n.preventDefault(),n.stopPropagation();const f=new FormData(s,r);c.search=new URLSearchParams(f).toString(),H({type:"form",url:c,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??c.href===location.href,event:n})}),addEventListener("popstate",async n=>{var a;if(!qe){if((a=n.state)!=null&&a[z]){const r=n.state[z];if(G={},r===I)return;const i=q[r],o=n.state[wt]??{},c=new URL(n.state[rn]??location.href),s=n.state[ne],l=y.url?Pe(location)===Pe(y.url):!1;if(s===L&&(Rt||l)){o!==U.state&&(U.state=o),e(c),q[I]=K(),i&&scrollTo(i.x,i.y),I=r;return}const u=r-I;await H({type:"popstate",url:c,popped:{state:o,scroll:i,delta:u},accept:()=>{I=r,L=s},block:()=>{history.go(-u)},nav_token:G,event:n})}else if(!Z){const r=new URL(location.href);e(r),R.hash&&location.reload()}}}),addEventListener("hashchange",()=>{Z&&(Z=!1,history.replaceState({...history.state,[z]:++I,[ne]:L},"",location.href))});for(const n of document.querySelectorAll("link"))In.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&B.navigating.set(re.current=null)});function e(n){y.url=U.url=n,B.page.set(Ze(U)),B.page.notify()}}async function Fn(e,{status:t=200,error:n,node_ids:a,params:r,route:i,server_route:o,data:c,form:s}){We=!0;const l=new URL(location.href);let f;({params:r={},route:i={id:null}}=await Le(l,!1)||{}),f=Ye.find(({id:d})=>d===i.id);let u,m=!0;try{const d=a.map(async(h,w)=>{const _=c[w];return _!=null&&_.uses&&(_.uses=Nt(_.uses)),He({loader:R.nodes[h],url:l,params:r,route:i,parent:async()=>{const T={};for(let g=0;g<w;g+=1)Object.assign(T,(await d[g]).data);return T},server_data_node:Je(_)})}),p=await Promise.all(d);if(f){const h=f.layouts;for(let w=0;w<h.length;w++)h[w]||p.splice(w,0,void 0)}u=Se({url:l,params:r,branch:p,status:t,error:n,form:s,route:f??null})}catch(d){if(d instanceof Me){await X(new URL(d.location,location.href));return}u=await Ue({status:ye(d),error:await J(d,{url:l,params:r,route:i}),url:l,route:i}),e.textContent="",m=!1}u.props.page&&(u.props.page.state={}),await Lt(u,e,m)}async function jt(e,t){var i;const n=new URL(e);n.pathname=Rn(e.pathname),e.pathname.endsWith("/")&&n.searchParams.append(vn,"1"),n.searchParams.append(yn,t.map(o=>o?"1":"0").join(""));const a=window.fetch,r=await a(n.href,{});if(!r.ok){let o;throw(i=r.headers.get("content-type"))!=null&&i.includes("application/json")?o=await r.json():r.status===404?o="Not Found":r.status===500&&(o="Internal Error"),new Re(r.status,o)}return new Promise(async o=>{var u;const c=new Map,s=r.body.getReader();function l(m){return mn(m,{...R.decoders,Promise:d=>new Promise((p,h)=>{c.set(d,{fulfil:p,reject:h})})})}let f="";for(;;){const{done:m,value:d}=await s.read();if(m&&!f)break;for(f+=!d&&f?`
2
- `:Gt.decode(d,{stream:!0});;){const p=f.indexOf(`
3
- `);if(p===-1)break;const h=JSON.parse(f.slice(0,p));if(f=f.slice(p+1),h.type==="redirect")return o(h);if(h.type==="data")(u=h.nodes)==null||u.forEach(w=>{(w==null?void 0:w.type)==="data"&&(w.uses=Nt(w.uses),w.data=l(w.data))}),o(h);else if(h.type==="chunk"){const{id:w,data:_,error:T}=h,g=c.get(w);c.delete(w),T?g.reject(l(T)):g.fulfil(l(_))}}}})}function Nt(e){return{dependencies:new Set((e==null?void 0:e.dependencies)??[]),params:new Set((e==null?void 0:e.params)??[]),parent:!!(e!=null&&e.parent),route:!!(e!=null&&e.route),url:!!(e!=null&&e.url),search_params:new Set((e==null?void 0:e.search_params)??[])}}let qe=!1;function Mn(e,t=!0){const n=document.querySelector("[autofocus]");if(n)n.focus();else{const a=xt(e);if(a&&document.getElementById(a)){const{x:i,y:o}=K();setTimeout(()=>{const c=history.state;qe=!0,location.replace(new URL(`#${a}`,location.href)),history.replaceState(c,"",e),t&&scrollTo(i,o),qe=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const r=getSelection();if(r&&r.type!=="None"){const i=[];for(let o=0;o<r.rangeCount;o+=1)i.push(r.getRangeAt(o));setTimeout(()=>{if(r.rangeCount===i.length){for(let o=0;o<r.rangeCount;o+=1){const c=i[o],s=r.getRangeAt(o);if(c.commonAncestorContainer!==s.commonAncestorContainer||c.startContainer!==s.startContainer||c.endContainer!==s.endContainer||c.startOffset!==s.startOffset||c.endOffset!==s.endOffset)return}r.removeAllRanges()}})}}}function Xe(e,t,n,a,r=null){var l,f;let i,o;const c=new Promise((u,m)=>{i=u,o=m});return c.catch(()=>{}),{navigation:{from:{params:e.params,route:{id:((l=e.route)==null?void 0:l.id)??null},url:e.url,scroll:K()},to:n&&{params:(t==null?void 0:t.params)??null,route:{id:((f=t==null?void 0:t.route)==null?void 0:f.id)??null},url:n,scroll:r},willUnload:!t,type:a,complete:c},fulfil:i,reject:o}}function Ze(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Vn(e){const t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function xt(e){let t;if(R.hash){const[,,n]=e.hash.split("#",3);t=n??""}else t=e.hash.slice(1);return decodeURIComponent(t)}export{Xn as a,Wn as l,U as p,B as s};
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/JT4pIYWD.js";export{o as load_css,r as start};
@@ -1 +0,0 @@
1
- import{_ as m}from"../chunks/3hcDFuOy.js";export{m as component};
@@ -1 +0,0 @@
1
- {"version":3,"file":"3-ChRVOXhH.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/plan/_sessionId_/_page.server.ts.js","../../../.svelte-kit/adapter-node/nodes/3.js"],"sourcesContent":["import { error } from \"@sveltejs/kit\";\nimport { a as getSession, b as getPlan, d as getFeedback, e as listVersions } from \"../../../../chunks/session-manager.js\";\nconst load = async ({ params }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n const plan = getPlan(params.sessionId);\n const feedback = getFeedback(params.sessionId);\n const versions = listVersions(params.sessionId);\n return {\n session,\n plan,\n feedback,\n versions,\n sessionId: params.sessionId\n };\n};\nexport {\n load\n};\n","import * as server from '../entries/pages/plan/_sessionId_/_page.server.ts.js';\n\nexport const index = 3;\nlet component_cache;\nexport const component = async () => component_cache ??= (await import('../entries/pages/plan/_sessionId_/_page.svelte.js')).default;\nexport { server };\nexport const server_id = \"src/routes/plan/[sessionId]/+page.server.ts\";\nexport const imports = [\"_app/immutable/nodes/3.C2JIlVS_.js\",\"_app/immutable/chunks/3hcDFuOy.js\",\"_app/immutable/chunks/BrjAEg64.js\",\"_app/immutable/chunks/CobJHAAW.js\",\"_app/immutable/chunks/DGn8gxMH.js\",\"_app/immutable/chunks/dRJp6O4P.js\",\"_app/immutable/chunks/BZQqs639.js\",\"_app/immutable/chunks/C5wtj4WQ.js\",\"_app/immutable/chunks/CuD0M7ml.js\",\"_app/immutable/chunks/Dj-iuGW3.js\"];\nexport const stylesheets = [\"_app/immutable/assets/3.OXdAvKD0.css\"];\nexport const fonts = [];\n"],"names":[],"mappings":";;;;;;AAEA,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AACnC,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;AACxC,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;AAChD,EAAE,MAAM,QAAQ,GAAG,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC;AACjD,EAAE,OAAO;AACT,IAAI,OAAO;AACX,IAAI,IAAI;AACR,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,SAAS,EAAE,MAAM,CAAC;AACtB,GAAG;AACH,CAAC;;;;;;;ACbW,MAAC,KAAK,GAAG;AACrB,IAAI,eAAe;AACP,MAAC,SAAS,GAAG,YAAY,eAAe,KAAK,CAAC,MAAM,OAAO,4BAAmD,CAAC,EAAE;AAEjH,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;AACpX,MAAC,WAAW,GAAG,CAAC,sCAAsC;AACtD,MAAC,KAAK,GAAG;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-Bg0Bxr-a.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/plan/_sessionId_/_page.svelte.js"],"sourcesContent":["import { a2 as attr_class, a0 as attr, e as escape_html, _ as derived, a1 as stringify, $ as ensure_array_like, a3 as clsx, a4 as attr_style } from \"../../../../chunks/index.js\";\nimport \"clsx\";\nimport { a as statusBadgeClass, b as statusLabel, S as STATUS_LABELS } from \"../../../../chunks/status.js\";\nimport { marked } from \"marked\";\nfunction html(value) {\n var html2 = String(value ?? \"\");\n var open = \"<!---->\";\n return open + html2 + \"<!---->\";\n}\nlet instance$1 = null;\nfunction createPlanStore() {\n let currentPlan = null;\n let idleRemainingMs = null;\n let serverShutdown = false;\n let eventSource = null;\n let reconnectTimer = null;\n return {\n get plan() {\n return currentPlan;\n },\n get idleRemainingMs() {\n return idleRemainingMs;\n },\n get serverShutdown() {\n return serverShutdown;\n },\n set(plan) {\n currentPlan = plan;\n },\n connectSSE(sessionId) {\n this.disconnectSSE();\n const connect = () => {\n eventSource = new EventSource(`/api/sse/${sessionId}`);\n eventSource.addEventListener(\"plan-updated\", (event) => {\n try {\n const plan = JSON.parse(event.data);\n currentPlan = plan;\n } catch {\n }\n });\n eventSource.addEventListener(\"idle-timer\", (event) => {\n try {\n const data = JSON.parse(event.data);\n idleRemainingMs = data.remainingMs;\n } catch {\n }\n });\n eventSource.addEventListener(\"server-shutdown\", () => {\n serverShutdown = true;\n eventSource?.close();\n });\n eventSource.onerror = () => {\n eventSource?.close();\n if (!serverShutdown) {\n reconnectTimer = setTimeout(connect, 3e3);\n }\n };\n };\n connect();\n },\n disconnectSSE() {\n if (reconnectTimer) {\n clearTimeout(reconnectTimer);\n reconnectTimer = null;\n }\n if (eventSource) {\n eventSource.close();\n eventSource = null;\n }\n }\n };\n}\nfunction getPlanStore() {\n if (!instance$1) instance$1 = createPlanStore();\n return instance$1;\n}\nfunction genId() {\n return \"fb-\" + Date.now().toString(36) + Math.random().toString(36).slice(2, 6);\n}\nlet instance = null;\nfunction createFeedbackStore() {\n let currentFeedback = null;\n let saveTimer = null;\n let sessionId = \"\";\n async function persistFeedback() {\n if (!currentFeedback || !sessionId) return;\n try {\n await fetch(`/api/sessions/${sessionId}/feedback`, {\n method: \"PUT\",\n headers: { \"Content-Type\": \"application/json\" },\n body: JSON.stringify(currentFeedback)\n });\n } catch {\n }\n }\n function debouncedSave() {\n if (saveTimer) clearTimeout(saveTimer);\n saveTimer = setTimeout(persistFeedback, 500);\n }\n return {\n get feedback() {\n return currentFeedback;\n },\n get comments() {\n return currentFeedback?.comments ?? [];\n },\n get phaseStatuses() {\n return currentFeedback?.phaseStatuses ?? {};\n },\n get subItemStatuses() {\n return currentFeedback?.subItemStatuses ?? {};\n },\n get status() {\n return currentFeedback?.status ?? \"reviewing\";\n },\n init(sid, planTitle, planVersion, existing) {\n sessionId = sid;\n if (existing) {\n if (!existing.subItemStatuses) existing.subItemStatuses = {};\n currentFeedback = existing;\n } else {\n currentFeedback = {\n schemaVersion: 1,\n planTitle,\n planVersion,\n sessionId: sid,\n status: \"reviewing\",\n phaseStatuses: {},\n subItemStatuses: {},\n comments: [],\n updatedAt: /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString()\n };\n }\n },\n addComment(section, quote, comment, phaseId) {\n if (!currentFeedback) return;\n const newComment = {\n id: genId(),\n section,\n quote,\n comment,\n phaseId,\n resolved: false,\n createdAt: /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString()\n };\n currentFeedback.comments = [...currentFeedback.comments, newComment];\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n debouncedSave();\n return newComment.id;\n },\n updateComment(id, comment) {\n if (!currentFeedback) return;\n currentFeedback.comments = currentFeedback.comments.map((c) => c.id === id ? { ...c, comment } : c);\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n debouncedSave();\n },\n resolveComment(id) {\n if (!currentFeedback) return;\n currentFeedback.comments = currentFeedback.comments.map((c) => c.id === id ? { ...c, resolved: !c.resolved } : c);\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n debouncedSave();\n },\n deleteComment(id) {\n if (!currentFeedback) return;\n currentFeedback.comments = currentFeedback.comments.filter((c) => c.id !== id);\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n debouncedSave();\n },\n setPhaseStatus(phaseId, status, note) {\n if (!currentFeedback) return;\n currentFeedback.phaseStatuses = {\n ...currentFeedback.phaseStatuses,\n [phaseId]: { phaseId, status, note }\n };\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n debouncedSave();\n },\n setSubItemStatus(subItemId, phaseId, status, allSubItemIds) {\n if (!currentFeedback) return;\n currentFeedback.subItemStatuses = {\n ...currentFeedback.subItemStatuses,\n [subItemId]: { subItemId, phaseId, status }\n };\n const statuses = allSubItemIds.map((id) => currentFeedback.subItemStatuses[id]?.status ?? \"pending\");\n const allSame = statuses.every((s) => s === statuses[0]);\n const aggregated = allSame ? statuses[0] : \"pending\";\n currentFeedback.phaseStatuses = {\n ...currentFeedback.phaseStatuses,\n [phaseId]: {\n phaseId,\n status: aggregated,\n note: currentFeedback.phaseStatuses[phaseId]?.note\n }\n };\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n debouncedSave();\n },\n async submitFeedback(status) {\n if (!currentFeedback) return;\n currentFeedback.status = status;\n currentFeedback.submittedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n currentFeedback.updatedAt = /* @__PURE__ */ (/* @__PURE__ */ new Date()).toISOString();\n if (saveTimer) clearTimeout(saveTimer);\n await persistFeedback();\n }\n };\n}\nfunction getFeedbackStore() {\n if (!instance) instance = createFeedbackStore();\n return instance;\n}\nfunction IdleTimer($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n const store = getPlanStore();\n let display = derived(() => {\n const ms = store.idleRemainingMs;\n if (ms === null) return null;\n if (store.serverShutdown) return \"Server stopped\";\n const totalSec = Math.ceil(ms / 1e3);\n const min = Math.floor(totalSec / 60);\n const sec = totalSec % 60;\n return `${min}:${sec.toString().padStart(2, \"0\")}`;\n });\n let isUrgent = derived(() => store.idleRemainingMs !== null && store.idleRemainingMs < 6e4);\n let isShutdown = derived(() => store.serverShutdown);\n if (display() !== null) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<span${attr_class(\"rounded-full px-3 py-1 text-xs font-semibold transition-colors\", void 0, {\n \"bg-surface2\": !isUrgent() && !isShutdown(),\n \"text-text-dim\": !isUrgent() && !isShutdown(),\n \"bg-red-900\": isUrgent() || isShutdown(),\n \"text-red-200\": isUrgent() || isShutdown()\n })}${attr(\"title\", isShutdown() ? \"Server has shut down due to inactivity\" : `Server idle timeout: ${display()} remaining`)}>`);\n if (isShutdown()) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`Server stopped`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`⏱ ${escape_html(display())}`);\n }\n $$renderer2.push(`<!--]--></span>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction PlanHeader($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { meta, status } = $$props;\n $$renderer2.push(`<header class=\"mb-6\"><div class=\"flex items-start justify-between\"><div><h1 class=\"text-2xl font-bold\">${escape_html(meta.title)}</h1> <p class=\"text-text-dim mt-1 text-sm\">${escape_html(meta.date)} `);\n if (meta.ticketRef) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`· <span class=\"text-accent\">${escape_html(meta.ticketRef)}</span>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></p></div> <div class=\"flex items-center gap-2\">`);\n IdleTimer($$renderer2);\n $$renderer2.push(`<!----> <span class=\"bg-surface2 rounded-full px-3 py-1 text-xs font-semibold text-text-dim\">v${escape_html(meta.version)}</span> <span${attr_class(`rounded-full px-3 py-1 text-xs font-semibold ${stringify(statusBadgeClass(status))}`)}>${escape_html(status)}</span></div></div> `);\n if (meta.markdownPath) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<p class=\"text-text-dim mt-2 text-xs\">Source: <code class=\"bg-surface2 text-accent rounded px-1 py-0.5 font-mono text-xs\">${escape_html(meta.markdownPath)}</code></p>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></header>`);\n });\n}\nfunction PhaseTable($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { phases, phaseStatuses } = $$props;\n $$renderer2.push(`<div class=\"overflow-x-auto\"><table class=\"w-full text-sm\"><thead><tr><th class=\"bg-surface2 border-b border-border px-3 py-2 text-left font-semibold\">Phase</th><th class=\"bg-surface2 border-b border-border px-3 py-2 text-left font-semibold\">Focus</th><th class=\"bg-surface2 border-b border-border px-3 py-2 text-left font-semibold w-32\">Status</th></tr></thead><tbody><!--[-->`);\n const each_array = ensure_array_like(phases);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let phase = each_array[$$index];\n const status = phaseStatuses[phase.id]?.status ?? \"pending\";\n $$renderer2.push(`<tr${attr_class(\"hover:bg-surface transition-colors\", void 0, { \"opacity-50\": status === \"approved\" })}><td class=\"border-b border-border px-3 py-2 font-medium\">Phase ${escape_html(phase.number)}: ${escape_html(phase.name)}</td><td class=\"text-text-dim border-b border-border px-3 py-2\">${escape_html(phase.overview.length > 100 ? phase.overview.slice(0, 100) + \"...\" : phase.overview)}</td><td class=\"border-b border-border px-3 py-2\"><button${attr_class(`inline-block cursor-pointer rounded-full px-2 py-0.5 text-xs font-semibold ${stringify(statusBadgeClass(status))}`)}>${escape_html(statusLabel(status))}</button></td></tr>`);\n }\n $$renderer2.push(`<!--]--></tbody></table></div>`);\n });\n}\nfunction ChangeBlock($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { change, commentLabel } = $$props;\n $$renderer2.push(`<div class=\"mb-3\" data-commentable=\"\" tabindex=\"0\"${attr(\n \"data-comment-label\",\n // Reset any previous highlighting\n commentLabel ?? change.componentName\n )}><h4 class=\"text-text-dim mb-1 text-sm font-medium\">${escape_html(change.componentName)}</h4> <p class=\"mb-1 text-sm\"><strong>File:</strong> <code class=\"bg-surface2 text-accent rounded px-1 py-0.5 font-mono text-xs\">${escape_html(change.filePath)}</code></p> <p class=\"text-text-dim text-sm\">${escape_html(change.description)}</p> `);\n if (change.codeSnippet) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<pre class=\"bg-surface border-border mt-2 overflow-x-auto rounded-md border p-3 text-xs\"><code${attr_class(clsx(change.codeLanguage ? `language-${change.codeLanguage}` : \"\"))}>${escape_html(change.codeSnippet)}</code></pre>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n });\n}\nfunction MarkdownBlock($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { content, sectionPrefix } = $$props;\n let html$1 = derived(() => marked.parse(content, { gfm: true, breaks: false }));\n $$renderer2.push(`<div class=\"markdown-content text-text-dim text-sm leading-relaxed svelte-19d3ioy\">${html(html$1())}</div>`);\n });\n}\nfunction PhaseStatusControl($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { status, onSetStatus } = $$props;\n const STATE_COLORS = {\n \"pending\": \"bg-accent/15 text-accent border-accent/30\",\n \"approved\": \"bg-green/15 text-green border-green/30\",\n \"needs-work\": \"bg-orange/15 text-orange border-orange/30\"\n };\n const states = Object.keys(STATUS_LABELS).map((value) => ({\n value,\n label: STATUS_LABELS[value],\n color: STATE_COLORS[value]\n }));\n $$renderer2.push(`<div class=\"flex gap-1\" role=\"radiogroup\" aria-label=\"Phase status\"><!--[-->`);\n const each_array = ensure_array_like(states);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let s = each_array[$$index];\n $$renderer2.push(`<button${attr_class(`cursor-pointer rounded-full border px-2 py-0.5 text-xs font-medium transition-all ${stringify(status === s.value ? s.color : \"border-transparent text-text-dim hover:bg-surface2\")}`)} role=\"radio\"${attr(\"aria-checked\", status === s.value)}>${escape_html(s.label)}</button>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n });\n}\nfunction PhaseCard($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n phase,\n phaseStatus,\n onSetStatus,\n subItemStatuses = {},\n onSetSubItemStatus\n } = $$props;\n let expanded = true;\n let phaseLabel = derived(() => `Phase ${phase.number}`);\n $$renderer2.push(`<section${attr(\"data-section\", `Phase ${stringify(phase.number)}: ${stringify(phase.name)}`)} data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Phase ${stringify(phase.number)}: ${stringify(phase.name)}`)} class=\"mt-6\"><div class=\"flex items-center gap-3\"><button class=\"text-accent flex-1 cursor-pointer border-b border-border pb-2 text-left text-xl font-semibold\"${attr(\"aria-expanded\", expanded)}${attr(\"aria-controls\", `phase-content-${stringify(phase.id)}`)}><span${attr_class(\"mr-2 inline-block transition-transform\", void 0, { \"rotate-90\": expanded })}>▶</span> Phase ${escape_html(phase.number)}: ${escape_html(phase.name)}</button> `);\n PhaseStatusControl($$renderer2, { status: phaseStatus?.status ?? \"pending\", onSetStatus });\n $$renderer2.push(`<!----></div> `);\n {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div${attr(\"id\", `phase-content-${stringify(phase.id)}`)} class=\"mt-4 space-y-4\">`);\n if (phase.content) {\n $$renderer2.push(\"<!--[-->\");\n MarkdownBlock($$renderer2, {\n content: phase.content,\n sectionPrefix: `${stringify(phaseLabel())} > Content`\n });\n } else if (phase.overview) {\n $$renderer2.push(\"<!--[1-->\");\n MarkdownBlock($$renderer2, {\n content: phase.overview,\n sectionPrefix: `${stringify(phaseLabel())} > Overview`\n });\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (phase.subItems.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"mt-4 space-y-3\"><!--[-->`);\n const each_array = ensure_array_like(phase.subItems);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let subItem = each_array[$$index];\n $$renderer2.push(`<div class=\"bg-surface border-border rounded-lg border p-4\" data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `${stringify(phaseLabel())} > ${stringify(phase.number)}${stringify(subItem.letter)}. ${stringify(subItem.name)}`)}><div class=\"flex items-center justify-between gap-3\"><h4 class=\"text-sm font-semibold\">${escape_html(phase.number)}${escape_html(subItem.letter)}. ${escape_html(subItem.name)}</h4> `);\n PhaseStatusControl($$renderer2, {\n status: subItemStatuses[subItem.id]?.status ?? \"pending\",\n onSetStatus: (status) => onSetSubItemStatus?.(subItem.id, status)\n });\n $$renderer2.push(`<!----></div> `);\n if (subItem.content) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"mt-2\">`);\n MarkdownBlock($$renderer2, {\n content: subItem.content,\n sectionPrefix: `${stringify(phaseLabel())} > ${stringify(subItem.name)}`\n });\n $$renderer2.push(`<!----></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (phase.changes.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h3 class=\"mt-4 mb-2 text-base font-semibold\">Changes Required</h3> <!--[-->`);\n const each_array_1 = ensure_array_like(phase.changes);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let change = each_array_1[$$index_1];\n ChangeBlock($$renderer2, {\n change,\n commentLabel: `${stringify(phaseLabel())} > Changes > ${stringify(change.componentName)}`\n });\n }\n $$renderer2.push(`<!--]-->`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> <div class=\"mt-4\"><h3 class=\"mb-2 text-base font-semibold\">Success Criteria</h3> `);\n if (phase.successCriteria.automated.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h4 class=\"text-text-dim mt-3 mb-1 text-sm font-medium\">Automated Verification</h4> <ul class=\"space-y-1.5 pl-1\"><!--[-->`);\n const each_array_2 = ensure_array_like(phase.successCriteria.automated);\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let criterion = each_array_2[$$index_2];\n $$renderer2.push(`<li class=\"text-text-dim flex items-start gap-2 text-sm\" data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `${stringify(phaseLabel())} > Automated > ${stringify(criterion.text.slice(0, 40))}`)}><input type=\"checkbox\" class=\"mt-0.5 accent-green\"/> <span>`);\n if (criterion.command) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<code class=\"bg-surface2 rounded px-1 py-0.5 font-mono text-xs\">${escape_html(criterion.command)}</code> —`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> ${escape_html(criterion.text)}</span></li>`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (phase.successCriteria.manual.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h4 class=\"text-text-dim mt-3 mb-1 text-sm font-medium\">Manual Verification</h4> <ul class=\"space-y-1.5 pl-1\"><!--[-->`);\n const each_array_3 = ensure_array_like(phase.successCriteria.manual);\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let criterion = each_array_3[$$index_3];\n $$renderer2.push(`<li class=\"text-text-dim flex items-start gap-2 text-sm\" data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `${stringify(phaseLabel())} > Manual > ${stringify(criterion.text.slice(0, 40))}`)}><input type=\"checkbox\" class=\"mt-0.5 accent-green\"/> <span>${escape_html(criterion.text)}</span></li>`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></div></div>`);\n }\n $$renderer2.push(`<!--]--> <hr class=\"border-border mt-6\"/></section>`);\n });\n}\nfunction MermaidDiagram($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n $$renderer2.push(`<div class=\"bg-surface border-border overflow-x-auto rounded-lg border p-6\"><div class=\"flex justify-center\">`);\n {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<p class=\"text-text-dim text-sm\">Loading diagram...</p>`);\n }\n $$renderer2.push(`<!--]--></div></div>`);\n });\n}\nfunction ProgressBar($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { phases, phaseStatuses } = $$props;\n let approvedCount = derived(() => phases.filter((p) => phaseStatuses[p.id]?.status === \"approved\").length);\n let progress = derived(() => phases.length > 0 ? approvedCount() / phases.length * 100 : 0);\n $$renderer2.push(`<div class=\"fixed top-0 right-0 left-0 z-50 h-[3px] bg-surface2\"><div class=\"h-full transition-all duration-400 ease-out\"${attr_style(`width: ${stringify(progress())}%; background: linear-gradient(90deg, var(--color-green), #2ea043);`)}></div></div>`);\n });\n}\nfunction VersionSelector($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { versions, currentVersion, onSelectVersion } = $$props;\n if (versions.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"flex items-center gap-3\"><div class=\"flex items-center gap-2\"><label class=\"text-text-dim text-xs\" for=\"version-select\">Version:</label> `);\n $$renderer2.select(\n {\n id: \"version-select\",\n class: \"bg-surface2 border-border rounded px-2 py-1 text-xs text-text\",\n value: currentVersion,\n onchange: (e) => onSelectVersion(parseInt(e.currentTarget.value, 10))\n },\n ($$renderer3) => {\n $$renderer3.option({ value: currentVersion }, ($$renderer4) => {\n $$renderer4.push(`v${escape_html(currentVersion)} (current)`);\n });\n $$renderer3.push(`<!--[-->`);\n const each_array = ensure_array_like([...versions].reverse());\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let v = each_array[$$index];\n if (v !== currentVersion) {\n $$renderer3.push(\"<!--[-->\");\n $$renderer3.option({ value: v }, ($$renderer4) => {\n $$renderer4.push(`v${escape_html(v)}`);\n });\n } else {\n $$renderer3.push(\"<!--[!-->\");\n }\n $$renderer3.push(`<!--]-->`);\n }\n $$renderer3.push(`<!--]-->`);\n }\n );\n $$renderer2.push(`</div> <button class=\"text-text-dim hover:text-accent rounded px-2 py-1 text-xs transition-colors\">${escape_html(\"Compare versions\")}</button> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nfunction FeedbackItem($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { comment } = $$props;\n $$renderer2.push(`<article${attr_class(`rounded-lg border p-3 ${stringify(\n // Auto-open edit mode for empty comments (just added)\n comment.resolved ? \"border-slate-700 bg-slate-800/40 opacity-60\" : \"border-slate-600/40 bg-slate-800/90\"\n )}`)}><div class=\"mb-1 text-[0.7rem] text-blue-300\">${escape_html(comment.section)}</div> `);\n if (comment.quote) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<p class=\"mb-2 rounded-md border border-slate-700 bg-[#0f172a] px-2 py-1.5 text-xs italic text-slate-300\">\"${escape_html(comment.quote.length > 120 ? comment.quote.slice(0, 120) + \"...\" : comment.quote)}\"</p>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<p class=\"text-xs text-slate-300\">${escape_html(comment.comment)}</p> <div class=\"mt-1.5 flex gap-1.5\"><button class=\"rounded-md bg-blue-700 px-2 py-1 text-xs text-white\">Edit</button> <button${attr_class(`rounded-md px-2 py-1 text-xs ${stringify(comment.resolved ? \"bg-green-800 text-green-200\" : \"bg-slate-700 text-slate-300\")}`)}>${escape_html(comment.resolved ? \"Resolved\" : \"Resolve\")}</button> <button class=\"rounded-md bg-red-900 px-2 py-1 text-xs text-red-200\">Delete</button></div>`);\n }\n $$renderer2.push(`<!--]--></article>`);\n });\n}\nfunction FeedbackPanel($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let {\n comments\n } = $$props;\n let unresolvedCount = derived(() => comments.filter((c) => !c.resolved).length);\n $$renderer2.push(`<aside data-feedback-panel=\"\" role=\"complementary\" aria-label=\"Review comments\" class=\"fixed top-2 right-4 z-40 flex w-80 max-h-[calc(100vh-1rem)] flex-col rounded-xl bg-[#0f172a] shadow-xl shadow-black/35\"><header class=\"border-b border-white/10 px-4 py-3\"><h3 class=\"flex items-center gap-2 text-base font-semibold text-slate-200\">Review <span class=\"bg-accent/15 text-accent inline-block rounded-full px-2 py-0.5 text-xs font-semibold\">${escape_html(unresolvedCount())}</span></h3> <p class=\"mt-1 text-xs text-slate-400\">Hover over plan elements to comment. Click Submit when done.</p> <button class=\"mt-2 w-full cursor-pointer rounded-lg bg-blue-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-blue-500\">Add comment</button></header> <div class=\"flex-1 space-y-2 overflow-y-auto p-3\">`);\n if (comments.length === 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<div class=\"rounded-lg border border-dashed border-slate-600 p-3 text-sm text-slate-400\">No comments yet. Hover and click on any plan element to add a comment.</div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<!--[-->`);\n const each_array = ensure_array_like(comments);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let comment = each_array[$$index];\n FeedbackItem($$renderer2, {\n comment\n });\n }\n $$renderer2.push(`<!--]-->`);\n }\n $$renderer2.push(`<!--]--></div></aside>`);\n });\n}\nfunction ApprovalBar($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { status, commentCount, computedStatus } = $$props;\n $$renderer2.push(`<div role=\"toolbar\" aria-label=\"Review actions\" class=\"fixed right-0 bottom-0 left-0 z-40 border-t border-border bg-surface px-6 py-3\"><div class=\"mx-auto flex max-w-5xl items-center justify-between pr-80\"><div class=\"text-text-dim text-sm\">`);\n if (commentCount > 0) {\n $$renderer2.push(\"<!--[1-->\");\n $$renderer2.push(`<span class=\"text-orange\">${escape_html(commentCount)} unresolved comment${escape_html(commentCount !== 1 ? \"s\" : \"\")}</span> <span class=\"ml-2\">— will submit as <span class=\"font-semibold text-orange\">needs-work</span></span>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<span class=\"text-text-dim\">No unresolved comments — will submit as <span class=\"font-semibold text-green\">approved</span></span>`);\n }\n $$renderer2.push(`<!--]--></div> <div class=\"flex gap-3\">`);\n if (status !== \"approved\" && status !== \"needs-work\") {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<button${attr_class(`cursor-pointer rounded-lg px-5 py-2 text-sm font-semibold transition-colors ${stringify(computedStatus === \"approved\" ? \"bg-green text-white hover:brightness-110\" : \"bg-orange/15 text-orange hover:bg-orange/25\")}`)} aria-label=\"Submit feedback\">Submit Feedback</button>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<span${attr_class(`rounded-lg px-5 py-2 text-sm font-semibold ${stringify(status === \"approved\" ? \"bg-green/15 text-green\" : \"bg-orange/15 text-orange\")}`)}>${escape_html(status === \"approved\" ? \"Approved ✓\" : \"Changes requested\")}</span>`);\n }\n $$renderer2.push(`<!--]--></div></div></div>`);\n });\n}\nfunction _page($$renderer, $$props) {\n $$renderer.component(($$renderer2) => {\n let { data } = $$props;\n const planStore = getPlanStore();\n const feedbackStore = getFeedbackStore();\n async function handleSelectVersion(version) {\n if (!/* ignore */\n /* ignore */\n // Track the version we initialized feedback for\n // Initialize stores from server data\n // Only restore feedback if it belongs to this plan version; otherwise start fresh\n // Reset feedback when plan version changes via SSE (new version = fresh review)\n plan()) return;\n if (version === plan().meta.version) return;\n try {\n const res = await fetch(`/api/sessions/${data.sessionId}/versions/${version}`);\n if (res.ok) {\n const oldPlan = await res.json();\n planStore.set(oldPlan);\n }\n } catch {\n }\n }\n let plan = derived(() => planStore.plan);\n if (plan()) {\n $$renderer2.push(\"<!--[-->\");\n const unresolvedCount = feedbackStore.comments.filter((c) => !c.resolved).length;\n const computedStatus = unresolvedCount > 0 ? \"needs-work\" : \"approved\";\n ProgressBar($$renderer2, {\n phases: plan().phases,\n phaseStatuses: feedbackStore.phaseStatuses\n });\n $$renderer2.push(`<!----> <div role=\"region\" aria-label=\"Plan content\" class=\"min-h-screen pb-20 pr-[22rem] pl-8 pt-4\">`);\n PlanHeader($$renderer2, { meta: plan().meta, status: feedbackStore.status });\n $$renderer2.push(`<!----> <div class=\"mt-4 mb-2\">`);\n VersionSelector($$renderer2, {\n versions: data.versions,\n currentVersion: plan().meta.version,\n onSelectVersion: handleSelectVersion\n });\n $$renderer2.push(`<!----></div> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> <section data-section=\"Overview\" data-commentable=\"\" tabindex=\"0\" data-comment-label=\"Overview\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">Overview</h2> `);\n MarkdownBlock($$renderer2, { content: plan().overview, sectionPrefix: \"Overview\" });\n $$renderer2.push(`<!----></section> <!--[-->`);\n const each_array = ensure_array_like(plan().diagrams);\n for (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n let diagram = each_array[$$index];\n $$renderer2.push(`<section data-section=\"Diagrams\" data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Diagram: ${stringify(diagram.title)}`)}><h3 class=\"mt-6 mb-3 text-lg font-semibold\">${escape_html(diagram.title)}</h3> `);\n MermaidDiagram($$renderer2, { code: diagram.mermaidCode, id: diagram.id });\n $$renderer2.push(`<!----></section>`);\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().currentState) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<section data-section=\"Current State\" data-commentable=\"\" tabindex=\"0\" data-comment-label=\"Current State\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">Current State</h2> `);\n MarkdownBlock($$renderer2, { content: plan().currentState, sectionPrefix: \"Current State\" });\n $$renderer2.push(`<!----> `);\n if (plan().keyDiscoveries.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h3 class=\"mt-6 mb-3 text-lg font-semibold\">Key Discoveries</h3> <ul class=\"text-text-dim space-y-1.5 pl-5 text-sm\"><!--[-->`);\n const each_array_1 = ensure_array_like(plan().keyDiscoveries);\n for (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n let discovery = each_array_1[$$index_1];\n $$renderer2.push(`<li data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Key Discovery: ${stringify(discovery.text.slice(0, 50))}`)}>${escape_html(discovery.text)} `);\n if (discovery.codeRef) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<code class=\"bg-surface2 text-accent rounded px-1 py-0.5 font-mono text-xs\">${escape_html(discovery.codeRef)}</code>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></li>`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></section>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().scopeExclusions.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<section data-section=\"Scope Exclusions\" data-commentable=\"\" tabindex=\"0\" data-comment-label=\"Scope Exclusions\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">What We're NOT Doing</h2> <div class=\"grid grid-cols-2 gap-3\"><!--[-->`);\n const each_array_2 = ensure_array_like(plan().scopeExclusions);\n for (let $$index_2 = 0, $$length = each_array_2.length; $$index_2 < $$length; $$index_2++) {\n let exclusion = each_array_2[$$index_2];\n $$renderer2.push(`<div class=\"bg-surface border-border rounded-lg border border-l-3 border-l-red p-4\" data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Scope > ${stringify(exclusion.title)}`)}><div class=\"text-red text-xs font-semibold uppercase tracking-wide\">Out of scope</div> <h4 class=\"mt-1 mb-1 text-sm font-semibold\">${escape_html(exclusion.title)}</h4> <p class=\"text-text-dim text-xs\">${escape_html(exclusion.reason)}</p></div>`);\n }\n $$renderer2.push(`<!--]--></div></section>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().implementationApproach) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<section data-section=\"Implementation Approach\" data-commentable=\"\" tabindex=\"0\" data-comment-label=\"Implementation Approach\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">Implementation Approach</h2> `);\n MarkdownBlock($$renderer2, {\n content: plan().implementationApproach,\n sectionPrefix: \"Implementation Approach\"\n });\n $$renderer2.push(`<!----></section>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> <section data-section=\"Phase Summary\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">Phase Summary</h2> `);\n PhaseTable($$renderer2, {\n phases: plan().phases,\n phaseStatuses: feedbackStore.phaseStatuses\n });\n $$renderer2.push(`<!----></section> <!--[-->`);\n const each_array_3 = ensure_array_like(plan().phases);\n for (let $$index_3 = 0, $$length = each_array_3.length; $$index_3 < $$length; $$index_3++) {\n let phase = each_array_3[$$index_3];\n PhaseCard($$renderer2, {\n phase,\n phaseStatus: feedbackStore.phaseStatuses[phase.id],\n onSetStatus: (status, note) => feedbackStore.setPhaseStatus(phase.id, status, note),\n subItemStatuses: feedbackStore.subItemStatuses,\n onSetSubItemStatus: (subItemId, status) => feedbackStore.setSubItemStatus(subItemId, phase.id, status, phase.subItems.map((si) => si.id))\n });\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().testingStrategy) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<section data-section=\"Testing Strategy\" data-commentable=\"\" tabindex=\"0\" data-comment-label=\"Testing Strategy\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">Testing Strategy</h2> `);\n if (plan().testingStrategy.unit.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h3 class=\"mt-4 mb-2 text-base font-semibold\">Unit Tests</h3> <ul class=\"text-text-dim space-y-1 pl-5 text-sm\"><!--[-->`);\n const each_array_4 = ensure_array_like(plan().testingStrategy.unit);\n for (let $$index_4 = 0, $$length = each_array_4.length; $$index_4 < $$length; $$index_4++) {\n let item = each_array_4[$$index_4];\n $$renderer2.push(`<li data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Testing > Unit > ${stringify(item.slice(0, 40))}`)}>${escape_html(item)}</li>`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().testingStrategy.integration.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h3 class=\"mt-4 mb-2 text-base font-semibold\">Integration Tests</h3> <ul class=\"text-text-dim space-y-1 pl-5 text-sm\"><!--[-->`);\n const each_array_5 = ensure_array_like(plan().testingStrategy.integration);\n for (let $$index_5 = 0, $$length = each_array_5.length; $$index_5 < $$length; $$index_5++) {\n let item = each_array_5[$$index_5];\n $$renderer2.push(`<li data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Testing > Integration > ${stringify(item.slice(0, 40))}`)}>${escape_html(item)}</li>`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().testingStrategy.manual.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<h3 class=\"mt-4 mb-2 text-base font-semibold\">Manual Tests</h3> <ul class=\"text-text-dim space-y-1 pl-5 text-sm\"><!--[-->`);\n const each_array_6 = ensure_array_like(plan().testingStrategy.manual);\n for (let $$index_6 = 0, $$length = each_array_6.length; $$index_6 < $$length; $$index_6++) {\n let item = each_array_6[$$index_6];\n $$renderer2.push(`<li data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Testing > Manual > ${stringify(item.slice(0, 40))}`)}>${escape_html(item)}</li>`);\n }\n $$renderer2.push(`<!--]--></ul>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></section>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n if (plan().references.length > 0) {\n $$renderer2.push(\"<!--[-->\");\n $$renderer2.push(`<section data-section=\"References\" data-commentable=\"\" tabindex=\"0\" data-comment-label=\"References\"><h2 class=\"text-accent mt-8 mb-4 border-b border-border pb-2 text-xl font-semibold\">References</h2> <ul class=\"text-text-dim space-y-1 pl-5 text-sm\"><!--[-->`);\n const each_array_7 = ensure_array_like(plan().references);\n for (let $$index_7 = 0, $$length = each_array_7.length; $$index_7 < $$length; $$index_7++) {\n let ref = each_array_7[$$index_7];\n $$renderer2.push(`<li data-commentable=\"\" tabindex=\"0\"${attr(\"data-comment-label\", `Reference: ${stringify(ref.slice(0, 50))}`)}>${escape_html(ref)}</li>`);\n }\n $$renderer2.push(`<!--]--></ul></section>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--></div> `);\n {\n $$renderer2.push(\"<!--[!-->\");\n }\n $$renderer2.push(`<!--]--> `);\n FeedbackPanel($$renderer2, {\n comments: feedbackStore.comments\n });\n $$renderer2.push(`<!----> `);\n ApprovalBar($$renderer2, {\n status: feedbackStore.status,\n commentCount: unresolvedCount,\n computedStatus\n });\n $$renderer2.push(`<!----> <div class=\"sr-only\" aria-live=\"polite\"></div>`);\n } else {\n $$renderer2.push(\"<!--[!-->\");\n $$renderer2.push(`<div class=\"flex min-h-screen items-center justify-center\"><div class=\"text-center\"><p class=\"text-text-dim mb-2 text-lg\">Waiting for plan data...</p> <p class=\"text-text-dim text-sm\">Claude Code will write <code class=\"bg-surface2 text-accent rounded px-1 py-0.5 font-mono text-xs\">plan.json</code> to this session.</p> <div class=\"text-text-dim mt-4 animate-pulse text-sm\">Listening for updates via SSE</div></div></div>`);\n }\n $$renderer2.push(`<!--]-->`);\n });\n}\nexport {\n _page as default\n};\n"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { e as error, j as json } from './index-CoD1IJuy.js';
2
- import { a as getSession, b as getPlan } from './session-manager-Df52lIJ3.js';
3
- import 'node:fs';
4
- import 'node:path';
5
- import 'node:os';
6
-
7
- const GET = async ({ params }) => {
8
- const session = getSession(params.sessionId);
9
- if (!session) throw error(404, "Session not found");
10
- const plan = getPlan(params.sessionId);
11
- return json({ session, plan });
12
- };
13
-
14
- export { GET };
15
- //# sourceMappingURL=_server.ts-5D7tHXsH.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-5D7tHXsH.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/_sessionId_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as getSession, b as getPlan } from \"../../../../../chunks/session-manager.js\";\nconst GET = async ({ params }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n const plan = getPlan(params.sessionId);\n return json({ session, plan });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC;AACxC,EAAE,OAAO,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AAChC;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-C91-5A8I.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/_sessionId_/feedback/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as getSession, d as getFeedback, s as saveFeedback, u as updateSessionStatus } from \"../../../../../../chunks/session-manager.js\";\nconst GET = async ({ params }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n const feedback = getFeedback(params.sessionId);\n return json(feedback);\n};\nconst PUT = async ({ params, request }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n const body = await request.json();\n body.updatedAt = (/* @__PURE__ */ new Date()).toISOString();\n saveFeedback(params.sessionId, body);\n if (body.status === \"approved\" || body.status === \"needs-work\") {\n updateSessionStatus(params.sessionId, body.status);\n }\n return json(body);\n};\nexport {\n GET,\n PUT\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;AAChD,EAAE,OAAO,IAAI,CAAC,QAAQ,CAAC;AACvB;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK;AAC3C,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE;AACnC,EAAE,IAAI,CAAC,SAAS,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AAC7D,EAAE,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC;AACtC,EAAE,IAAI,IAAI,CAAC,MAAM,KAAK,UAAU,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE;AAClE,IAAI,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;AACtD,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-CEtvrNT1.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/shutdown/_server.ts.js"],"sourcesContent":["import { json } from \"@sveltejs/kit\";\nimport { s as stop } from \"../../../../chunks/idle-timer.js\";\nimport { b as broadcastAll } from \"../../../../chunks/sse-manager.js\";\nasync function POST() {\n stop();\n broadcastAll(\"server-shutdown\", { reason: \"stop-command\" });\n setTimeout(() => process.exit(0), 500);\n return json({ status: \"shutting-down\" });\n}\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;AAGA,eAAe,IAAI,GAAG;AACtB,EAAE,IAAI,EAAE;AACR,EAAE,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC7D,EAAE,UAAU,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;AACxC,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC;AAC1C;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-H4qb8W_h.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/_sessionId_/versions/_version_/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as getSession, f as getVersion } from \"../../../../../../../chunks/session-manager.js\";\nconst GET = async ({ params }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n const version = parseInt(params.version, 10);\n if (isNaN(version)) throw error(400, \"Invalid version number\");\n const plan = getVersion(params.sessionId, version);\n if (!plan) throw error(404, \"Version not found\");\n return json(plan);\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;AAC9C,EAAE,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,wBAAwB,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC;AACpD,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AAClD,EAAE,OAAO,IAAI,CAAC,IAAI,CAAC;AACnB;;;;"}
@@ -1,14 +0,0 @@
1
- import { e as error, j as json } from './index-CoD1IJuy.js';
2
- import { a as getSession, d as listVersions } from './session-manager-Df52lIJ3.js';
3
- import 'node:fs';
4
- import 'node:path';
5
- import 'node:os';
6
-
7
- const GET = async ({ params }) => {
8
- const session = getSession(params.sessionId);
9
- if (!session) throw error(404, "Session not found");
10
- return json(listVersions(params.sessionId));
11
- };
12
-
13
- export { GET };
14
- //# sourceMappingURL=_server.ts-VG3gOvsa.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-VG3gOvsa.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/_sessionId_/versions/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as getSession, e as listVersions } from \"../../../../../../chunks/session-manager.js\";\nconst GET = async ({ params }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n return json(listVersions(params.sessionId));\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,KAAK,CAAC,GAAG,EAAE,mBAAmB,CAAC;AACrD,EAAE,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7C;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-sRxHDQa9.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sse/_sessionId_/_server.ts.js"],"sourcesContent":["import { r as removeClient, a as addClient } from \"../../../../../chunks/sse-manager.js\";\nconst GET = async ({ params }) => {\n const sessionId = params.sessionId;\n let interval;\n let client;\n const stream = new ReadableStream({\n start(controller) {\n client = addClient(sessionId, controller);\n const encoder = new TextEncoder();\n controller.enqueue(encoder.encode(\": heartbeat\\n\\n\"));\n interval = setInterval(() => {\n try {\n controller.enqueue(encoder.encode(\": heartbeat\\n\\n\"));\n } catch {\n clearInterval(interval);\n removeClient(client);\n }\n }, 3e4);\n },\n cancel() {\n clearInterval(interval);\n removeClient(client);\n }\n });\n return new Response(stream, {\n headers: {\n \"Content-Type\": \"text/event-stream\",\n \"Cache-Control\": \"no-cache\",\n Connection: \"keep-alive\"\n }\n });\n};\nexport {\n GET\n};\n"],"names":[],"mappings":";;AACK,MAAC,GAAG,GAAG,OAAO,EAAE,MAAM,EAAE,KAAK;AAClC,EAAE,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS;AACpC,EAAE,IAAI,QAAQ;AACd,EAAE,IAAI,MAAM;AACZ,EAAE,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC;AACpC,IAAI,KAAK,CAAC,UAAU,EAAE;AACtB,MAAM,MAAM,GAAG,SAAS,CAAC,SAAS,EAAE,UAAU,CAAC;AAC/C,MAAM,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE;AACvC,MAAM,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3D,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM;AACnC,QAAQ,IAAI;AACZ,UAAU,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC/D,QAAQ,CAAC,CAAC,MAAM;AAChB,UAAU,aAAa,CAAC,QAAQ,CAAC;AACjC,UAAU,YAAY,CAAC,MAAM,CAAC;AAC9B,QAAQ;AACR,MAAM,CAAC,EAAE,GAAG,CAAC;AACb,IAAI,CAAC;AACL,IAAI,MAAM,GAAG;AACb,MAAM,aAAa,CAAC,QAAQ,CAAC;AAC7B,MAAM,YAAY,CAAC,MAAM,CAAC;AAC1B,IAAI;AACJ,GAAG,CAAC;AACJ,EAAE,OAAO,IAAI,QAAQ,CAAC,MAAM,EAAE;AAC9B,IAAI,OAAO,EAAE;AACb,MAAM,cAAc,EAAE,mBAAmB;AACzC,MAAM,eAAe,EAAE,UAAU;AACjC,MAAM,UAAU,EAAE;AAClB;AACA,GAAG,CAAC;AACJ;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"idle-timer-CouFy_WF.js","sources":["../../../.svelte-kit/adapter-node/chunks/idle-timer.js"],"sourcesContent":["import { b as broadcastAll } from \"./sse-manager.js\";\nconst IDLE_TIMEOUT_MS = 5 * 60 * 1e3;\nconst TICK_INTERVAL_MS = 10 * 1e3;\nlet deadline = 0;\nlet timer = null;\nlet interval = null;\nlet onExpireCallback = null;\nfunction initIdleTimer(onExpire) {\n onExpireCallback = onExpire;\n reset();\n}\nfunction reset() {\n deadline = Date.now() + IDLE_TIMEOUT_MS;\n if (timer) clearTimeout(timer);\n timer = setTimeout(expire, IDLE_TIMEOUT_MS);\n if (!interval) {\n interval = setInterval(tick, TICK_INTERVAL_MS);\n }\n}\nfunction getRemaining() {\n return Math.max(0, deadline - Date.now());\n}\nfunction stop() {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n if (interval) {\n clearInterval(interval);\n interval = null;\n }\n}\nfunction tick() {\n const remaining = getRemaining();\n broadcastAll(\"idle-timer\", { remainingMs: remaining });\n}\nfunction expire() {\n stop();\n broadcastAll(\"idle-timer\", { remainingMs: 0 });\n broadcastAll(\"server-shutdown\", { reason: \"idle-timeout\" });\n console.log(\"[idle-timer] Server idle for 5 minutes, shutting down.\");\n if (onExpireCallback) {\n onExpireCallback();\n }\n}\nexport {\n initIdleTimer as i,\n reset as r,\n stop as s\n};\n"],"names":[],"mappings":";;AACA,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;AACpC,MAAM,gBAAgB,GAAG,EAAE,GAAG,GAAG;AACjC,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAI,KAAK,GAAG,IAAI;AAChB,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAI,gBAAgB,GAAG,IAAI;AAC3B,SAAS,aAAa,CAAC,QAAQ,EAAE;AACjC,EAAE,gBAAgB,GAAG,QAAQ;AAC7B,EAAE,KAAK,EAAE;AACT;AACA,SAAS,KAAK,GAAG;AACjB,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe;AACzC,EAAE,IAAI,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC;AAChC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,eAAe,CAAC;AAC7C,EAAE,IAAI,CAAC,QAAQ,EAAE;AACjB,IAAI,QAAQ,GAAG,WAAW,CAAC,IAAI,EAAE,gBAAgB,CAAC;AAClD,EAAE;AACF;AACA,SAAS,YAAY,GAAG;AACxB,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;AAC3C;AACA,SAAS,IAAI,GAAG;AAChB,EAAE,IAAI,KAAK,EAAE;AACb,IAAI,YAAY,CAAC,KAAK,CAAC;AACvB,IAAI,KAAK,GAAG,IAAI;AAChB,EAAE;AACF,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,aAAa,CAAC,QAAQ,CAAC;AAC3B,IAAI,QAAQ,GAAG,IAAI;AACnB,EAAE;AACF;AACA,SAAS,IAAI,GAAG;AAChB,EAAE,MAAM,SAAS,GAAG,YAAY,EAAE;AAClC,EAAE,YAAY,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;AACxD;AACA,SAAS,MAAM,GAAG;AAClB,EAAE,IAAI,EAAE;AACR,EAAE,YAAY,CAAC,YAAY,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;AAChD,EAAE,YAAY,CAAC,iBAAiB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AAC7D,EAAE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC;AACvE,EAAE,IAAI,gBAAgB,EAAE;AACxB,IAAI,gBAAgB,EAAE;AACtB,EAAE;AACF;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"session-manager-Df52lIJ3.js","sources":["../../../.svelte-kit/adapter-node/chunks/session-manager.js"],"sourcesContent":["import { mkdirSync, writeFileSync, readdirSync, existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nfunction getBaseDir() {\n return process.env.SESSION_DIR || join(homedir(), \".plan-assistant\", \"sessions\");\n}\nfunction validateSessionId(sessionId) {\n if (!/^[a-f0-9]{1,16}$/.test(sessionId)) {\n throw new Error(`Invalid session ID: ${sessionId}`);\n }\n}\nfunction getSessionDir(sessionId) {\n validateSessionId(sessionId);\n return join(getBaseDir(), sessionId);\n}\nfunction readJsonFile(filePath) {\n if (!existsSync(filePath)) return null;\n try {\n return JSON.parse(readFileSync(filePath, \"utf-8\"));\n } catch {\n return null;\n }\n}\nfunction readMeta(sessionDir) {\n return readJsonFile(join(sessionDir, \"meta.json\"));\n}\nfunction readFeedbackByDir(sessionDir) {\n return readJsonFile(join(sessionDir, \"feedback.json\"));\n}\nfunction readPlanByDir(sessionDir) {\n return readJsonFile(join(sessionDir, \"plan.json\"));\n}\nfunction listSessions() {\n const baseDir = getBaseDir();\n mkdirSync(baseDir, { recursive: true });\n const entries = readdirSync(baseDir, { withFileTypes: true });\n const sessions = [];\n for (const entry of entries) {\n if (!entry.isDirectory()) continue;\n const meta = readJsonFile(join(baseDir, entry.name, \"meta.json\"));\n if (meta) sessions.push(meta);\n }\n return sessions.sort(\n (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()\n );\n}\nfunction getSession(sessionId) {\n return readMeta(getSessionDir(sessionId));\n}\nfunction createSession(sessionId, meta) {\n const dir = getSessionDir(sessionId);\n mkdirSync(dir, { recursive: true });\n mkdirSync(join(dir, \"versions\"), { recursive: true });\n writeFileSync(join(dir, \"meta.json\"), JSON.stringify(meta, null, 2));\n}\nfunction getPlan(sessionId) {\n return readPlanByDir(getSessionDir(sessionId));\n}\nfunction getFeedback(sessionId) {\n return readFeedbackByDir(getSessionDir(sessionId));\n}\nfunction saveFeedback(sessionId, feedback) {\n const dir = getSessionDir(sessionId);\n mkdirSync(dir, { recursive: true });\n writeFileSync(join(dir, \"feedback.json\"), JSON.stringify(feedback, null, 2));\n}\nfunction snapshotVersion(sessionId, plan) {\n const dir = join(getSessionDir(sessionId), \"versions\");\n mkdirSync(dir, { recursive: true });\n const versionFile = join(dir, `v${plan.meta.version}.json`);\n writeFileSync(versionFile, JSON.stringify(plan, null, 2));\n}\nfunction listVersions(sessionId) {\n const dir = join(getSessionDir(sessionId), \"versions\");\n if (!existsSync(dir)) return [];\n return readdirSync(dir).filter((f) => f.startsWith(\"v\") && f.endsWith(\".json\")).map((f) => parseInt(f.slice(1, -5), 10)).filter((n) => !isNaN(n)).sort((a, b) => a - b);\n}\nfunction updateSessionStatus(sessionId, status) {\n const meta = getSession(sessionId);\n if (!meta) throw new Error(`Session not found: ${sessionId}`);\n const updated = {\n ...meta,\n status,\n updatedAt: (/* @__PURE__ */ new Date()).toISOString()\n };\n writeFileSync(\n join(getSessionDir(sessionId), \"meta.json\"),\n JSON.stringify(updated, null, 2)\n );\n}\nfunction getVersion(sessionId, version) {\n const versionPath = join(\n getSessionDir(sessionId),\n \"versions\",\n `v${version}.json`\n );\n if (!existsSync(versionPath)) return null;\n try {\n return JSON.parse(readFileSync(versionPath, \"utf-8\"));\n } catch {\n return null;\n }\n}\nexport {\n getSession as a,\n getPlan as b,\n createSession as c,\n getFeedback as d,\n listVersions as e,\n getVersion as f,\n getBaseDir as g,\n snapshotVersion as h,\n listSessions as l,\n saveFeedback as s,\n updateSessionStatus as u\n};\n"],"names":[],"mappings":"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"}