plan-assistant 1.4.5 → 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 (130) hide show
  1. package/README.md +31 -12
  2. package/build/client/_app/immutable/assets/0.Bc8GgJCN.css +1 -0
  3. package/build/client/_app/immutable/chunks/{ABPQj_I6.js → 5KpFG7Y3.js} +1 -1
  4. package/build/client/_app/immutable/chunks/AMggw8F_.js +1 -0
  5. package/build/client/_app/immutable/chunks/{DCP7pAeu.js → B0Br67Jm.js} +22 -22
  6. package/build/client/_app/immutable/chunks/{D01yuNpr.js → BGuzEOEG.js} +1 -1
  7. package/build/client/_app/immutable/chunks/{x3JJhWj3.js → BPC30ZkC.js} +1 -1
  8. package/build/client/_app/immutable/chunks/{Dn9lSg-V.js → BT-rYp04.js} +1 -1
  9. package/build/client/_app/immutable/chunks/{B25Hd2fz.js → BXachUYg.js} +1 -1
  10. package/build/client/_app/immutable/chunks/{CKmKshyc.js → BdxNwExl.js} +1 -1
  11. package/build/client/_app/immutable/chunks/{BcKBKgcZ.js → Bdy6d4YN.js} +1 -1
  12. package/build/client/_app/immutable/chunks/{ClpyzqjJ.js → BkkBWYh4.js} +1 -1
  13. package/build/client/_app/immutable/chunks/{yS11QLaS.js → Bmsplg2Y.js} +1 -1
  14. package/build/client/_app/immutable/chunks/{hHxGQnZj.js → Bn0XLNse.js} +1 -1
  15. package/build/client/_app/immutable/chunks/{J7DoTV-B.js → BuxFeYZa.js} +1 -1
  16. package/build/client/_app/immutable/chunks/{DJ4AwCJ9.js → C2OLrLCJ.js} +1 -1
  17. package/build/client/_app/immutable/chunks/C88p_n1l.js +3 -0
  18. package/build/client/_app/immutable/chunks/{DVaxwt1f.js → CFomSPzW.js} +1 -1
  19. package/build/client/_app/immutable/chunks/{BRUI-1NR.js → CFx4VLDw.js} +1 -1
  20. package/build/client/_app/immutable/chunks/{DBY3mAk0.js → CRUUUIwS.js} +1 -1
  21. package/build/client/_app/immutable/chunks/{CfICpXHz.js → CRuCklg1.js} +1 -1
  22. package/build/client/_app/immutable/chunks/{DmuA5Qzn.js → CUHvMbx0.js} +1 -1
  23. package/build/client/_app/immutable/chunks/{CadzRJ6P.js → C_5efo6-.js} +1 -1
  24. package/build/client/_app/immutable/chunks/{BierXyQN.js → Cb177sm-.js} +1 -1
  25. package/build/client/_app/immutable/chunks/{CWe1fJjs.js → Cb9ekAV0.js} +1 -1
  26. package/build/client/_app/immutable/chunks/{DnZ1MoPi.js → CdiHcRRA.js} +1 -1
  27. package/build/client/_app/immutable/chunks/{BAG_vqoT.js → CgIOtWnS.js} +1 -1
  28. package/build/client/_app/immutable/chunks/{CbLSu4oh.js → CghPw8Xx.js} +1 -1
  29. package/build/client/_app/immutable/chunks/{Uy7RUP_Z.js → Cmym6IfH.js} +1 -1
  30. package/build/client/_app/immutable/chunks/{C7FtzXJF.js → Cvpo3167.js} +1 -1
  31. package/build/client/_app/immutable/chunks/{4dPdNqKL.js → Cy0JyQfD.js} +1 -1
  32. package/build/client/_app/immutable/chunks/{DXnvq78W.js → D-0mahX7.js} +1 -1
  33. package/build/client/_app/immutable/chunks/{gqH_bfvs.js → D8823oiN.js} +1 -1
  34. package/build/client/_app/immutable/chunks/{BCxCv_4N.js → DIjXbgfi.js} +1 -1
  35. package/build/client/_app/immutable/chunks/{CF3N_j1A.js → DUIJXtzj.js} +1 -1
  36. package/build/client/_app/immutable/chunks/{DbxsK-Gw.js → DXlvMCt6.js} +1 -1
  37. package/build/client/_app/immutable/chunks/{DA_DyJGG.js → Dffa6mVP.js} +1 -1
  38. package/build/client/_app/immutable/chunks/{D8aFfI6M.js → DgzenGSu.js} +1 -1
  39. package/build/client/_app/immutable/chunks/{1hoFVlwF.js → DqaGnr0n.js} +4 -4
  40. package/build/client/_app/immutable/chunks/{CE48ZXRi.js → Drf3oeac.js} +1 -1
  41. package/build/client/_app/immutable/chunks/{CmCoqHco.js → EBvoHjF1.js} +1 -1
  42. package/build/client/_app/immutable/chunks/{Cumsgxi9.js → Fqo6xqtt.js} +1 -1
  43. package/build/client/_app/immutable/chunks/QDQklEwM.js +1 -0
  44. package/build/client/_app/immutable/chunks/{zMHAx0Qk.js → Q_gMk3PN.js} +1 -1
  45. package/build/client/_app/immutable/chunks/{Wv7WdG7L.js → XHkT9caI.js} +1 -1
  46. package/build/client/_app/immutable/chunks/{B3CyqxdZ.js → Zxe_1j0j.js} +1 -1
  47. package/build/client/_app/immutable/chunks/{Bysr0gLv.js → czbfzgw3.js} +1 -1
  48. package/build/client/_app/immutable/chunks/{BdcZtdph.js → mlMCI16G.js} +1 -1
  49. package/build/client/_app/immutable/chunks/{BEobpKJ6.js → qFFXeAvY.js} +1 -1
  50. package/build/client/_app/immutable/entry/{app.BdutA_ce.js → app.C_pWXh8R.js} +2 -2
  51. package/build/client/_app/immutable/entry/start.DfbNX0kb.js +1 -0
  52. package/build/client/_app/immutable/nodes/{1.BBwvzKm5.js → 1.DN_p76XO.js} +1 -1
  53. package/build/client/_app/immutable/nodes/3.B0eShLlr.js +1 -0
  54. package/build/client/_app/version.json +1 -1
  55. package/build/server/chunks/{0-DpiwjOzQ.js → 0-rXmaDIAK.js} +3 -3
  56. package/build/server/chunks/{0-DpiwjOzQ.js.map → 0-rXmaDIAK.js.map} +1 -1
  57. package/build/server/chunks/{1-DLxoXeuD.js → 1-CEFNOpUG.js} +2 -2
  58. package/build/server/chunks/{1-DLxoXeuD.js.map → 1-CEFNOpUG.js.map} +1 -1
  59. package/build/server/chunks/{2-Cy9PX2zK.js → 2-qGWtN2-9.js} +3 -2
  60. package/build/server/chunks/{2-Cy9PX2zK.js.map → 2-qGWtN2-9.js.map} +1 -1
  61. package/build/server/chunks/{3-DIjT-1nt.js → 3-OUU46X3b.js} +6 -7
  62. package/build/server/chunks/3-OUU46X3b.js.map +1 -0
  63. package/build/server/chunks/{_page.svelte-XhzZOhTs.js → _page.svelte-DcqVlJwT.js} +13 -14
  64. package/build/server/chunks/_page.svelte-DcqVlJwT.js.map +1 -0
  65. package/build/server/chunks/_server.ts-BOWeAYnM.js +13 -0
  66. package/build/server/chunks/_server.ts-BOWeAYnM.js.map +1 -0
  67. package/build/server/chunks/{_server.ts-CEtvrNT1.js → _server.ts-BbMhMik1.js} +4 -3
  68. package/build/server/chunks/_server.ts-BbMhMik1.js.map +1 -0
  69. package/build/server/chunks/{_server.ts-b4ynvdd4.js → _server.ts-BhmTJZsP.js} +3 -4
  70. package/build/server/chunks/_server.ts-BhmTJZsP.js.map +1 -0
  71. package/build/server/chunks/{_server.ts-DCa-_qe7.js → _server.ts-BjSxqsHx.js} +5 -7
  72. package/build/server/chunks/_server.ts-BjSxqsHx.js.map +1 -0
  73. package/build/server/chunks/{_server.ts-sRxHDQa9.js → _server.ts-C7d7vtwn.js} +3 -2
  74. package/build/server/chunks/_server.ts-C7d7vtwn.js.map +1 -0
  75. package/build/server/chunks/{_server.ts-aWI5JVTi.js → _server.ts-D9nBKsq1.js} +2 -2
  76. package/build/server/chunks/{_server.ts-aWI5JVTi.js.map → _server.ts-D9nBKsq1.js.map} +1 -1
  77. package/build/server/chunks/_server.ts-DTGwAmWz.js +14 -0
  78. package/build/server/chunks/_server.ts-DTGwAmWz.js.map +1 -0
  79. package/build/server/chunks/{_server.ts-DVH0ejp0.js → _server.ts-DiMlmks0.js} +2 -2
  80. package/build/server/chunks/{_server.ts-DVH0ejp0.js.map → _server.ts-DiMlmks0.js.map} +1 -1
  81. package/build/server/chunks/{hooks.server-sBuk2932.js → hooks.server-DigZpFgW.js} +4 -3
  82. package/build/server/chunks/{hooks.server-sBuk2932.js.map → hooks.server-DigZpFgW.js.map} +1 -1
  83. package/build/server/chunks/{idle-timer-CouFy_WF.js → idle-timer-BshN5Svi.js} +3 -2
  84. package/build/server/chunks/idle-timer-BshN5Svi.js.map +1 -0
  85. package/build/server/chunks/{session-manager-Vdr0BxAo.js → session-manager-scAVAR7S.js} +39 -41
  86. package/build/server/chunks/session-manager-scAVAR7S.js.map +1 -0
  87. package/build/server/index.js +2 -2
  88. package/build/server/index.js.map +1 -1
  89. package/build/server/manifest.js +13 -20
  90. package/build/server/manifest.js.map +1 -1
  91. package/dist/cli/commands/clean.js +33 -29
  92. package/dist/cli/commands/export.js +5 -8
  93. package/dist/cli/commands/feedback.js +5 -8
  94. package/dist/cli/commands/init.js +2 -1
  95. package/dist/cli/commands/review.js +18 -121
  96. package/dist/cli/commands/status.js +20 -23
  97. package/dist/cli/commands/stop.js +7 -15
  98. package/dist/cli/errors.js +23 -0
  99. package/dist/cli/export-html.js +1 -1
  100. package/dist/cli/index.js +21 -5
  101. package/dist/cli/markdown-parser.js +117 -132
  102. package/dist/cli/markdown-to-plan.js +1 -50
  103. package/dist/cli/review-session.js +130 -0
  104. package/dist/cli/server-client.js +20 -33
  105. package/dist/cli/session-reader.js +20 -47
  106. package/dist/cli/session-resolver.js +10 -0
  107. package/dist/lib/server/session-manager.js +115 -0
  108. package/dist/lib/utils/status.js +53 -0
  109. package/package.json +1 -1
  110. package/build/client/_app/immutable/assets/0.CltY7ilp.css +0 -1
  111. package/build/client/_app/immutable/chunks/CULHGyhn.js +0 -1
  112. package/build/client/_app/immutable/chunks/DPsQ0F5p.js +0 -3
  113. package/build/client/_app/immutable/chunks/UfQGGAux.js +0 -1
  114. package/build/client/_app/immutable/entry/start.CTfow7ge.js +0 -1
  115. package/build/client/_app/immutable/nodes/3.DHzG8WJV.js +0 -1
  116. package/build/server/chunks/3-DIjT-1nt.js.map +0 -1
  117. package/build/server/chunks/_page.svelte-XhzZOhTs.js.map +0 -1
  118. package/build/server/chunks/_server.ts-BkcqX0Gw.js +0 -14
  119. package/build/server/chunks/_server.ts-BkcqX0Gw.js.map +0 -1
  120. package/build/server/chunks/_server.ts-C9Rz5pqb.js +0 -15
  121. package/build/server/chunks/_server.ts-C9Rz5pqb.js.map +0 -1
  122. package/build/server/chunks/_server.ts-CEtvrNT1.js.map +0 -1
  123. package/build/server/chunks/_server.ts-DCa-_qe7.js.map +0 -1
  124. package/build/server/chunks/_server.ts-b4ynvdd4.js.map +0 -1
  125. package/build/server/chunks/_server.ts-r59HGb-h.js +0 -22
  126. package/build/server/chunks/_server.ts-r59HGb-h.js.map +0 -1
  127. package/build/server/chunks/_server.ts-sRxHDQa9.js.map +0 -1
  128. package/build/server/chunks/idle-timer-CouFy_WF.js.map +0 -1
  129. package/build/server/chunks/session-manager-Vdr0BxAo.js.map +0 -1
  130. /package/build/client/_app/immutable/nodes/{0.D7ZwKtS7.js → 0.CuhA9F69.js} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"_page.svelte-XhzZOhTs.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 if (status === \"approved\") {\n await fetch(`/api/sessions/${sessionId}/approve`, { method: \"POST\" });\n }\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,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-Vdr0BxAo.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-BkcqX0Gw.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-BkcqX0Gw.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,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-Vdr0BxAo.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-C9Rz5pqb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-C9Rz5pqb.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-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-DCa-_qe7.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-b4ynvdd4.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,22 +0,0 @@
1
- import { e as error, j as json } from './index-CoD1IJuy.js';
2
- import { a as getSession, u as updateSessionStatus, c as getFeedback, f as saveFeedback } from './session-manager-Vdr0BxAo.js';
3
- import 'node:fs';
4
- import 'node:path';
5
- import 'node:os';
6
-
7
- const POST = async ({ params }) => {
8
- const session = getSession(params.sessionId);
9
- if (!session) throw error(404, "Session not found");
10
- updateSessionStatus(params.sessionId, "approved");
11
- let feedback = getFeedback(params.sessionId);
12
- if (feedback) {
13
- feedback.status = "approved";
14
- feedback.submittedAt = (/* @__PURE__ */ new Date()).toISOString();
15
- feedback.updatedAt = (/* @__PURE__ */ new Date()).toISOString();
16
- saveFeedback(params.sessionId, feedback);
17
- }
18
- return json({ status: "approved" });
19
- };
20
-
21
- export { POST };
22
- //# sourceMappingURL=_server.ts-r59HGb-h.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"_server.ts-r59HGb-h.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/sessions/_sessionId_/approve/_server.ts.js"],"sourcesContent":["import { error, json } from \"@sveltejs/kit\";\nimport { a as getSession, u as updateSessionStatus, d as getFeedback, s as saveFeedback } from \"../../../../../../chunks/session-manager.js\";\nconst POST = async ({ params }) => {\n const session = getSession(params.sessionId);\n if (!session) throw error(404, \"Session not found\");\n updateSessionStatus(params.sessionId, \"approved\");\n let feedback = getFeedback(params.sessionId);\n if (feedback) {\n feedback.status = \"approved\";\n feedback.submittedAt = (/* @__PURE__ */ new Date()).toISOString();\n feedback.updatedAt = (/* @__PURE__ */ new Date()).toISOString();\n saveFeedback(params.sessionId, feedback);\n }\n return json({ status: \"approved\" });\n};\nexport {\n POST\n};\n"],"names":[],"mappings":";;;;;;AAEK,MAAC,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,mBAAmB,CAAC,MAAM,CAAC,SAAS,EAAE,UAAU,CAAC;AACnD,EAAE,IAAI,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,EAAE,IAAI,QAAQ,EAAE;AAChB,IAAI,QAAQ,CAAC,MAAM,GAAG,UAAU;AAChC,IAAI,QAAQ,CAAC,WAAW,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACrE,IAAI,QAAQ,CAAC,SAAS,GAAG,iBAAiB,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACnE,IAAI,YAAY,CAAC,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC;AAC5C,EAAE;AACF,EAAE,OAAO,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AACrC;;;;"}
@@ -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-Vdr0BxAo.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 getSessionDir(sessionId) {\n return join(getBaseDir(), sessionId);\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 metaPath = join(baseDir, entry.name, \"meta.json\");\n if (!existsSync(metaPath)) continue;\n try {\n const meta = JSON.parse(readFileSync(metaPath, \"utf-8\"));\n sessions.push(meta);\n } catch {\n }\n }\n return sessions.sort(\n (a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()\n );\n}\nfunction getSession(sessionId) {\n const metaPath = join(getSessionDir(sessionId), \"meta.json\");\n if (!existsSync(metaPath)) return null;\n try {\n return JSON.parse(readFileSync(metaPath, \"utf-8\"));\n } catch {\n return null;\n }\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 const planPath = join(getSessionDir(sessionId), \"plan.json\");\n if (!existsSync(planPath)) return null;\n try {\n return JSON.parse(readFileSync(planPath, \"utf-8\"));\n } catch {\n return null;\n }\n}\nfunction getFeedback(sessionId) {\n const fbPath = join(getSessionDir(sessionId), \"feedback.json\");\n if (!existsSync(fbPath)) return null;\n try {\n return JSON.parse(readFileSync(fbPath, \"utf-8\"));\n } catch {\n return null;\n }\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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"}