@smartmemory/compose 0.2.54-beta → 0.2.55-beta

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 (65) hide show
  1. package/dist/assets/{App-D_tvTs_n.js → App-gyObi7Fh.js} +5 -5
  2. package/dist/assets/{abnfDiagram-VRR7QNED-Dhb7O5rp.js → abnfDiagram-VRR7QNED-DJ5dPOe-.js} +1 -1
  3. package/dist/assets/{arc-C4oVdnk2.js → arc-CEbBvAxi.js} +1 -1
  4. package/dist/assets/{architectureDiagram-ZJ3FMSHR-DqHrb5_F.js → architectureDiagram-ZJ3FMSHR-D7Dutd2o.js} +1 -1
  5. package/dist/assets/{blockDiagram-677ZJIJ3-DUyBayYK.js → blockDiagram-677ZJIJ3-B-FqnKY3.js} +1 -1
  6. package/dist/assets/{c4Diagram-LMCZKHZV-CxlkWMRK.js → c4Diagram-LMCZKHZV-DKyTJh_m.js} +1 -1
  7. package/dist/assets/channel-CmuM_CaB.js +1 -0
  8. package/dist/assets/{chunk-2Q5K7J3B-C6QJsyOQ.js → chunk-2Q5K7J3B-oUMIjqtr.js} +1 -1
  9. package/dist/assets/{chunk-32BRIVSS-D9NgYu9W.js → chunk-32BRIVSS-BX5Uyghd.js} +1 -1
  10. package/dist/assets/{chunk-5VM5RSS4-DbD86rhK.js → chunk-5VM5RSS4-DZGXdHnG.js} +1 -1
  11. package/dist/assets/{chunk-EX3LRPZG-E4m4xNMw.js → chunk-EX3LRPZG-iz_V2kb-.js} +1 -1
  12. package/dist/assets/{chunk-JWPE2WC7-DHGlRWbw.js → chunk-JWPE2WC7-cneY4s8q.js} +1 -1
  13. package/dist/assets/{chunk-MOJQB5TN-BblYnFUq.js → chunk-MOJQB5TN-NGLTNiNf.js} +1 -1
  14. package/dist/assets/{chunk-RYQCIY6F-CGT-88vL.js → chunk-RYQCIY6F-BjW2x61e.js} +1 -1
  15. package/dist/assets/{chunk-V7JOEXUC-BJJmX0mc.js → chunk-V7JOEXUC-CU7ID8uE.js} +1 -1
  16. package/dist/assets/{chunk-VR4S4FIN-B4ygduCD.js → chunk-VR4S4FIN-CxmSp2Q2.js} +1 -1
  17. package/dist/assets/{chunk-XXDRQBXY-7APXuI2s.js → chunk-XXDRQBXY-DHczIQQU.js} +1 -1
  18. package/dist/assets/classDiagram-OUVF2IWQ-D0HUdgLP.js +1 -0
  19. package/dist/assets/classDiagram-v2-EOCWNBFH-D0HUdgLP.js +1 -0
  20. package/dist/assets/{cose-bilkent-JH36ORCC-DnVcT6R6.js → cose-bilkent-JH36ORCC-DV1msdt2.js} +1 -1
  21. package/dist/assets/{cynefin-VYW2F7L2-C9qiUSfX.js → cynefin-VYW2F7L2-B-thkCgc.js} +1 -1
  22. package/dist/assets/{cynefinDiagram-TSTJHNR4-BowkQhEu.js → cynefinDiagram-TSTJHNR4-B9sLmzW7.js} +1 -1
  23. package/dist/assets/{dagre-VKFMJZFB-Y5V-7U3p.js → dagre-VKFMJZFB-CzVd8ZeS.js} +1 -1
  24. package/dist/assets/{diagram-FQU43EPY-I7wDE-Xp.js → diagram-FQU43EPY-C2kUlpSd.js} +1 -1
  25. package/dist/assets/{diagram-G47NLZAW-DapGa1HI.js → diagram-G47NLZAW-Bpk-Et_a.js} +1 -1
  26. package/dist/assets/{diagram-NH7WQ7WH-CHO1JntO.js → diagram-NH7WQ7WH-DOICKw5r.js} +1 -1
  27. package/dist/assets/{diagram-OA4YK3LP-mBWP2D1G.js → diagram-OA4YK3LP-CUV9PnRC.js} +1 -1
  28. package/dist/assets/{diagram-WEI45ONY-C8KN8YnF.js → diagram-WEI45ONY-BmhIXYmr.js} +1 -1
  29. package/dist/assets/{ebnfDiagram-CCIWWBDH-ZkJG9NOL.js → ebnfDiagram-CCIWWBDH-BO_0Mcjb.js} +1 -1
  30. package/dist/assets/{erDiagram-Q63AITRT-DGnL3kW1.js → erDiagram-Q63AITRT-Bd5yIkwb.js} +1 -1
  31. package/dist/assets/{flowDiagram-23GEKE2U-DHYupfOu.js → flowDiagram-23GEKE2U-BC1lVLbe.js} +1 -1
  32. package/dist/assets/{ganttDiagram-NO4QXBWP-B1B2zpwR.js → ganttDiagram-NO4QXBWP-CbHS2Md0.js} +1 -1
  33. package/dist/assets/{gitGraphDiagram-IHSO6WYX-B9_OP4Fs.js → gitGraphDiagram-IHSO6WYX-DZtA0qeo.js} +1 -1
  34. package/dist/assets/index-C00QpUdP.js +119 -0
  35. package/dist/assets/{infoDiagram-FWYZ7A6U-D-a34TqE.js → infoDiagram-FWYZ7A6U-Caji6WpL.js} +1 -1
  36. package/dist/assets/{ishikawaDiagram-FXEZZL3T-h0bUvXGV.js → ishikawaDiagram-FXEZZL3T-CNhNIQOK.js} +1 -1
  37. package/dist/assets/{journeyDiagram-5HDEW3XC-B4lm0RBa.js → journeyDiagram-5HDEW3XC-Dnso1Q2f.js} +1 -1
  38. package/dist/assets/{kanban-definition-HUTT4EX6-msvfouRX.js → kanban-definition-HUTT4EX6-CnpPLKHm.js} +1 -1
  39. package/dist/assets/{linear-B0trv2xN.js → linear-COgkPG4Y.js} +1 -1
  40. package/dist/assets/{mindmap-definition-LN4V7U3C-CvswbRgd.js → mindmap-definition-LN4V7U3C-CBH5P268.js} +1 -1
  41. package/dist/assets/{pegDiagram-2B236MQR-DZEmIYC7.js → pegDiagram-2B236MQR-C4FswqnY.js} +1 -1
  42. package/dist/assets/{pieDiagram-ENE6RG2P-1ZfqxHkL.js → pieDiagram-ENE6RG2P-DU_WHHdv.js} +1 -1
  43. package/dist/assets/{quadrantDiagram-ABIIQ3AL-Owx49uiJ.js → quadrantDiagram-ABIIQ3AL-CDzGdzG9.js} +1 -1
  44. package/dist/assets/{railroadDiagram-RFXS5EU6-B7RiaIGf.js → railroadDiagram-RFXS5EU6-DlRKrGUE.js} +1 -1
  45. package/dist/assets/{requirementDiagram-TGXJPOKE-fqmHs_5o.js → requirementDiagram-TGXJPOKE-DBLVKLPS.js} +1 -1
  46. package/dist/assets/{sankeyDiagram-HTMAVEWB-D0Q3FeKV.js → sankeyDiagram-HTMAVEWB-Be0dIvmC.js} +1 -1
  47. package/dist/assets/{sequenceDiagram-DBY2YBRQ-CnPuB3fy.js → sequenceDiagram-DBY2YBRQ-BCpYBQ8F.js} +1 -1
  48. package/dist/assets/{sizeCapture-X5ZJPWSS-CsHoR37V.js → sizeCapture-X5ZJPWSS-BZnyrxa6.js} +1 -1
  49. package/dist/assets/{stateDiagram-2N3HPSRC-GVwpflU5.js → stateDiagram-2N3HPSRC-DMroM4ld.js} +1 -1
  50. package/dist/assets/stateDiagram-v2-6OUMAXLB-cykL6dtf.js +1 -0
  51. package/dist/assets/{swimlanes-5IMT3BWC-DRR41dsQ.js → swimlanes-5IMT3BWC-Dx9Lc7jS.js} +2 -2
  52. package/dist/assets/swimlanesDiagram-G3AALYLV-CJMK8pFj.js +8 -0
  53. package/dist/assets/{timeline-definition-FHXFAJF6-ePaEemL7.js → timeline-definition-FHXFAJF6-SlkJLwrF.js} +1 -1
  54. package/dist/assets/{vennDiagram-L72KCM5P-BAYP8dNF.js → vennDiagram-L72KCM5P-DH7Ad5bs.js} +1 -1
  55. package/dist/assets/{wardleyDiagram-EHGQE667-jNVH5Adm.js → wardleyDiagram-EHGQE667-yUzFRzyF.js} +1 -1
  56. package/dist/assets/{xychartDiagram-FW5EYKEG-BYDWGXbZ.js → xychartDiagram-FW5EYKEG-B-MsI0CO.js} +1 -1
  57. package/dist/index.html +1 -1
  58. package/lib/experiment-pricing.js +6 -2
  59. package/package.json +1 -1
  60. package/dist/assets/channel-xb4mQfuL.js +0 -1
  61. package/dist/assets/classDiagram-OUVF2IWQ-BIvgPTgh.js +0 -1
  62. package/dist/assets/classDiagram-v2-EOCWNBFH-BIvgPTgh.js +0 -1
  63. package/dist/assets/index-0Hq9436Q.js +0 -119
  64. package/dist/assets/stateDiagram-v2-6OUMAXLB-DCGIHFu9.js +0 -1
  65. package/dist/assets/swimlanesDiagram-G3AALYLV-C4RhLkZo.js +0 -8
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-VKFMJZFB-Y5V-7U3p.js","assets/chunk-RYQCIY6F-CGT-88vL.js","assets/graph-C9eacEi8.js","assets/map-Czzmt4hB.js","assets/layout-DEXfKzaS.js","assets/mobile-CNLMhdFP.js","assets/mobile-1gVCT0OK.css","assets/index-0Hq9436Q.js","assets/index-LIwREYgH.css","assets/graph-xkel59g2.js","assets/swimlanes-5IMT3BWC-DRR41dsQ.js","assets/cose-bilkent-JH36ORCC-DnVcT6R6.js","assets/c4Diagram-LMCZKHZV-CxlkWMRK.js","assets/chunk-32BRIVSS-D9NgYu9W.js","assets/flowDiagram-23GEKE2U-DHYupfOu.js","assets/chunk-5VM5RSS4-DbD86rhK.js","assets/chunk-XXDRQBXY-7APXuI2s.js","assets/chunk-VR4S4FIN-B4ygduCD.js","assets/channel-xb4mQfuL.js","assets/swimlanesDiagram-G3AALYLV-C4RhLkZo.js","assets/erDiagram-Q63AITRT-DGnL3kW1.js","assets/gitGraphDiagram-IHSO6WYX-B9_OP4Fs.js","assets/chunk-2Q5K7J3B-C6QJsyOQ.js","assets/chunk-JWPE2WC7-DHGlRWbw.js","assets/cynefin-VYW2F7L2-C9qiUSfX.js","assets/ganttDiagram-NO4QXBWP-B1B2zpwR.js","assets/linear-B0trv2xN.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-DX6XiGOO.js","assets/infoDiagram-FWYZ7A6U-D-a34TqE.js","assets/pieDiagram-ENE6RG2P-1ZfqxHkL.js","assets/arc-C4oVdnk2.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-ABIIQ3AL-Owx49uiJ.js","assets/xychartDiagram-FW5EYKEG-BYDWGXbZ.js","assets/requirementDiagram-TGXJPOKE-fqmHs_5o.js","assets/sequenceDiagram-DBY2YBRQ-CnPuB3fy.js","assets/classDiagram-OUVF2IWQ-BIvgPTgh.js","assets/chunk-V7JOEXUC-BJJmX0mc.js","assets/classDiagram-v2-EOCWNBFH-BIvgPTgh.js","assets/stateDiagram-2N3HPSRC-GVwpflU5.js","assets/chunk-EX3LRPZG-E4m4xNMw.js","assets/stateDiagram-v2-6OUMAXLB-DCGIHFu9.js","assets/journeyDiagram-5HDEW3XC-B4lm0RBa.js","assets/timeline-definition-FHXFAJF6-ePaEemL7.js","assets/mindmap-definition-LN4V7U3C-CvswbRgd.js","assets/kanban-definition-HUTT4EX6-msvfouRX.js","assets/sankeyDiagram-HTMAVEWB-D0Q3FeKV.js","assets/diagram-NH7WQ7WH-CHO1JntO.js","assets/diagram-WEI45ONY-C8KN8YnF.js","assets/blockDiagram-677ZJIJ3-DUyBayYK.js","assets/diagram-OA4YK3LP-mBWP2D1G.js","assets/architectureDiagram-ZJ3FMSHR-DqHrb5_F.js","assets/diagram-FQU43EPY-I7wDE-Xp.js","assets/ishikawaDiagram-FXEZZL3T-h0bUvXGV.js","assets/vennDiagram-L72KCM5P-BAYP8dNF.js","assets/diagram-G47NLZAW-DapGa1HI.js","assets/wardleyDiagram-EHGQE667-jNVH5Adm.js","assets/cynefinDiagram-TSTJHNR4-BowkQhEu.js","assets/railroadDiagram-RFXS5EU6-B7RiaIGf.js","assets/chunk-MOJQB5TN-BblYnFUq.js","assets/ebnfDiagram-CCIWWBDH-ZkJG9NOL.js","assets/abnfDiagram-VRR7QNED-Dhb7O5rp.js","assets/pegDiagram-2B236MQR-DZEmIYC7.js","assets/browser-Cr0recrN.js"])))=>i.map(i=>d[i]);
2
- var BN=Object.defineProperty;var AN=(e,t,r)=>t in e?BN(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var it=(e,t,r)=>AN(e,typeof t!="symbol"?t+"":t,r);import{a as C,j as c,d as Ve,i as m1,e as g1,f as MN,g as rm,w as Te,h as IN,v as x1,k as en,n as at,l as FN,m as ON,P as ax,o as $N,N as PN}from"./mobile-CNLMhdFP.js";import{c as ve,a as ne,b as DN,u as Lo,P as Bo,d as ru,e as RN,f as zi,g as Mi,h as zN,I as nm,B as Ie,X as _r,_ as We,i as im,D as uo,j as fo,k as po,l as mo,m as el,n as sm,r as qN,o as WN,p as y1}from"./index-0Hq9436Q.js";import{c as rs,b as om,f as HN}from"./graph-xkel59g2.js";/**
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/dagre-VKFMJZFB-CzVd8ZeS.js","assets/chunk-RYQCIY6F-BjW2x61e.js","assets/graph-C9eacEi8.js","assets/map-Czzmt4hB.js","assets/layout-DEXfKzaS.js","assets/mobile-CNLMhdFP.js","assets/mobile-1gVCT0OK.css","assets/index-C00QpUdP.js","assets/index-LIwREYgH.css","assets/graph-xkel59g2.js","assets/swimlanes-5IMT3BWC-Dx9Lc7jS.js","assets/cose-bilkent-JH36ORCC-DV1msdt2.js","assets/c4Diagram-LMCZKHZV-DKyTJh_m.js","assets/chunk-32BRIVSS-BX5Uyghd.js","assets/flowDiagram-23GEKE2U-BC1lVLbe.js","assets/chunk-5VM5RSS4-DZGXdHnG.js","assets/chunk-XXDRQBXY-DHczIQQU.js","assets/chunk-VR4S4FIN-CxmSp2Q2.js","assets/channel-CmuM_CaB.js","assets/swimlanesDiagram-G3AALYLV-CJMK8pFj.js","assets/erDiagram-Q63AITRT-Bd5yIkwb.js","assets/gitGraphDiagram-IHSO6WYX-DZtA0qeo.js","assets/chunk-2Q5K7J3B-oUMIjqtr.js","assets/chunk-JWPE2WC7-cneY4s8q.js","assets/cynefin-VYW2F7L2-B-thkCgc.js","assets/ganttDiagram-NO4QXBWP-CbHS2Md0.js","assets/linear-COgkPG4Y.js","assets/init-Gi6I4Gst.js","assets/defaultLocale-DX6XiGOO.js","assets/infoDiagram-FWYZ7A6U-Caji6WpL.js","assets/pieDiagram-ENE6RG2P-DU_WHHdv.js","assets/arc-CEbBvAxi.js","assets/ordinal-Cboi1Yqb.js","assets/quadrantDiagram-ABIIQ3AL-CDzGdzG9.js","assets/xychartDiagram-FW5EYKEG-B-MsI0CO.js","assets/requirementDiagram-TGXJPOKE-DBLVKLPS.js","assets/sequenceDiagram-DBY2YBRQ-BCpYBQ8F.js","assets/classDiagram-OUVF2IWQ-D0HUdgLP.js","assets/chunk-V7JOEXUC-CU7ID8uE.js","assets/classDiagram-v2-EOCWNBFH-D0HUdgLP.js","assets/stateDiagram-2N3HPSRC-DMroM4ld.js","assets/chunk-EX3LRPZG-iz_V2kb-.js","assets/stateDiagram-v2-6OUMAXLB-cykL6dtf.js","assets/journeyDiagram-5HDEW3XC-Dnso1Q2f.js","assets/timeline-definition-FHXFAJF6-SlkJLwrF.js","assets/mindmap-definition-LN4V7U3C-CBH5P268.js","assets/kanban-definition-HUTT4EX6-CnpPLKHm.js","assets/sankeyDiagram-HTMAVEWB-Be0dIvmC.js","assets/diagram-NH7WQ7WH-DOICKw5r.js","assets/diagram-WEI45ONY-BmhIXYmr.js","assets/blockDiagram-677ZJIJ3-B-FqnKY3.js","assets/diagram-OA4YK3LP-CUV9PnRC.js","assets/architectureDiagram-ZJ3FMSHR-D7Dutd2o.js","assets/diagram-FQU43EPY-C2kUlpSd.js","assets/ishikawaDiagram-FXEZZL3T-CNhNIQOK.js","assets/vennDiagram-L72KCM5P-DH7Ad5bs.js","assets/diagram-G47NLZAW-Bpk-Et_a.js","assets/wardleyDiagram-EHGQE667-yUzFRzyF.js","assets/cynefinDiagram-TSTJHNR4-B9sLmzW7.js","assets/railroadDiagram-RFXS5EU6-DlRKrGUE.js","assets/chunk-MOJQB5TN-NGLTNiNf.js","assets/ebnfDiagram-CCIWWBDH-BO_0Mcjb.js","assets/abnfDiagram-VRR7QNED-DJ5dPOe-.js","assets/pegDiagram-2B236MQR-C4FswqnY.js","assets/browser-Cr0recrN.js"])))=>i.map(i=>d[i]);
2
+ var BN=Object.defineProperty;var AN=(e,t,r)=>t in e?BN(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var it=(e,t,r)=>AN(e,typeof t!="symbol"?t+"":t,r);import{a as C,j as c,d as Ve,i as m1,e as g1,f as MN,g as rm,w as Te,h as IN,v as x1,k as en,n as at,l as FN,m as ON,P as ax,o as $N,N as PN}from"./mobile-CNLMhdFP.js";import{c as ve,a as ne,b as DN,u as Lo,P as Bo,d as ru,e as RN,f as zi,g as Mi,h as zN,I as nm,B as Ie,X as _r,_ as We,i as im,D as uo,j as fo,k as po,l as mo,m as el,n as sm,r as qN,o as WN,p as y1}from"./index-C00QpUdP.js";import{c as rs,b as om,f as HN}from"./graph-xkel59g2.js";/**
3
3
  * @license lucide-react v0.563.0 - ISC
4
4
  *
5
5
  * This source code is licensed under the ISC license.
@@ -503,7 +503,7 @@ ${r.comment}`:r.comment}this.doc.range[2]=r.offset;break}default:this.errors.pus
503
503
  `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
504
504
  `,r)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(t){var n;const r=t.items[t.items.length-1];switch(this.type){case"newline":if(this.onKeyLine=!1,r.value){const i="end"in r.value?r.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else if(r.sep)r.sep.push(this.sourceToken);else{if(this.atIndentedComment(r.start,t.indent)){const i=t.items[t.items.length-2],s=(n=i==null?void 0:i.value)==null?void 0:n.end;if(Array.isArray(s)){dh(s,r.start),s.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return}if(this.indent>=t.indent){const i=!this.onKeyLine&&this.indent===t.indent,s=i&&(r.sep||r.explicitKey)&&this.type!=="seq-item-ind";let o=[];if(s&&r.sep&&!r.value){const a=[];for(let l=0;l<r.sep.length;++l){const h=r.sep[l];switch(h.type){case"newline":a.push(l);break;case"space":break;case"comment":h.indent>t.indent&&(a.length=0);break;default:a.length=0}}a.length>=2&&(o=r.sep.splice(a[1]))}switch(this.type){case"anchor":case"tag":s||r.value?(o.push(this.sourceToken),t.items.push({start:o}),this.onKeyLine=!0):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"explicit-key-ind":!r.sep&&!r.explicitKey?(r.start.push(this.sourceToken),r.explicitKey=!0):s||r.value?(o.push(this.sourceToken),t.items.push({start:o,explicitKey:!0})):this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case"map-value-ind":if(r.explicitKey)if(r.sep)if(r.value)t.items.push({start:[],key:null,sep:[this.sourceToken]});else if(ii(r.sep,"map-value-ind"))this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:o,key:null,sep:[this.sourceToken]}]});else if(OC(r.key)&&!ii(r.sep,"newline")){const a=ws(r.start),l=r.key,h=r.sep;h.push(this.sourceToken),delete r.key,delete r.sep,this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:l,sep:h}]})}else o.length>0?r.sep=r.sep.concat(o,this.sourceToken):r.sep.push(this.sourceToken);else if(ii(r.start,"newline"))Object.assign(r,{key:null,sep:[this.sourceToken]});else{const a=ws(r.start);this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:a,key:null,sep:[this.sourceToken]}]})}else r.sep?r.value||s?t.items.push({start:o,key:null,sep:[this.sourceToken]}):ii(r.sep,"map-value-ind")?this.stack.push({type:"block-map",offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const a=this.flowScalar(this.type);s||r.value?(t.items.push({start:o,key:a,sep:[]}),this.onKeyLine=!0):r.sep?this.stack.push(a):(Object.assign(r,{key:a,sep:[]}),this.onKeyLine=!0);return}default:{const a=this.startBlockValue(t);if(a){if(a.type==="block-seq"){if(!r.explicitKey&&r.sep&&!ii(r.sep,"newline")){yield*this.pop({type:"error",offset:this.offset,message:"Unexpected block-seq-ind on same line with key",source:this.source});return}}else i&&t.items.push({start:o});this.stack.push(a);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(t){var n;const r=t.items[t.items.length-1];switch(this.type){case"newline":if(r.value){const i="end"in r.value?r.value.end:void 0,s=Array.isArray(i)?i[i.length-1]:void 0;(s==null?void 0:s.type)==="comment"?i==null||i.push(this.sourceToken):t.items.push({start:[this.sourceToken]})}else r.start.push(this.sourceToken);return;case"space":case"comment":if(r.value)t.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(r.start,t.indent)){const i=t.items[t.items.length-2],s=(n=i==null?void 0:i.value)==null?void 0:n.end;if(Array.isArray(s)){dh(s,r.start),s.push(this.sourceToken),t.items.pop();return}}r.start.push(this.sourceToken)}return;case"anchor":case"tag":if(r.value||this.indent<=t.indent)break;r.start.push(this.sourceToken);return;case"seq-item-ind":if(this.indent!==t.indent)break;r.value||ii(r.start,"seq-item-ind")?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return}if(this.indent>t.indent){const i=this.startBlockValue(t);if(i){this.stack.push(i);return}}yield*this.pop(),yield*this.step()}*flowCollection(t){const r=t.items[t.items.length-1];if(this.type==="flow-error-end"){let n;do yield*this.pop(),n=this.peek(1);while((n==null?void 0:n.type)==="flow-collection")}else if(t.end.length===0){switch(this.type){case"comma":case"explicit-key-ind":!r||r.sep?t.items.push({start:[this.sourceToken]}):r.start.push(this.sourceToken);return;case"map-value-ind":!r||r.value?t.items.push({start:[],key:null,sep:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):Object.assign(r,{key:null,sep:[this.sourceToken]});return;case"space":case"comment":case"newline":case"anchor":case"tag":!r||r.value?t.items.push({start:[this.sourceToken]}):r.sep?r.sep.push(this.sourceToken):r.start.push(this.sourceToken);return;case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":{const i=this.flowScalar(this.type);!r||r.value?t.items.push({start:[],key:i,sep:[]}):r.sep?this.stack.push(i):Object.assign(r,{key:i,sep:[]});return}case"flow-map-end":case"flow-seq-end":t.end.push(this.sourceToken);return}const n=this.startBlockValue(t);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{const n=this.peek(2);if(n.type==="block-map"&&(this.type==="map-value-ind"&&n.indent===t.indent||this.type==="newline"&&!n.items[n.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type==="map-value-ind"&&n.type!=="flow-collection"){const i=lc(n),s=ws(i);Cy(t);const o=t.end.splice(1,t.end.length);o.push(this.sourceToken);const a={type:"block-map",offset:t.offset,indent:t.indent,items:[{start:s,key:t,sep:o}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=a}else yield*this.lineEnd(t)}}flowScalar(t){if(this.onNewLine){let r=this.source.indexOf(`
505
505
  `)+1;for(;r!==0;)this.onNewLine(this.offset+r),r=this.source.indexOf(`
506
- `,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const r=lc(t),n=ws(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const r=lc(t),n=ws(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function $C(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new FC||null,prettyErrors:t}}function U4(e,t={}){const{lineCounter:r,prettyErrors:n}=$C(t),i=new Xm(r==null?void 0:r.addNewLine),s=new Gm(t),o=Array.from(s.compose(i.parse(e)));if(n&&r)for(const a of o)a.errors.forEach(hh(e,r)),a.warnings.forEach(hh(e,r));return o.length>0?o:Object.assign([],{empty:!0},s.streamInfo())}function PC(e,t={}){const{lineCounter:r,prettyErrors:n}=$C(t),i=new Xm(r==null?void 0:r.addNewLine),s=new Gm(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Oi(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(o.errors.forEach(hh(e,r)),o.warnings.forEach(hh(e,r))),o}function Y4(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);const i=PC(e,r);if(!i)return null;if(i.warnings.forEach(s=>nC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:n},r))}function V4(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){const i=Math.round(r);r=i<1?void 0:i>8?{indent:8}:{indent:i}}if(e===void 0){const{keepUndefined:i}=r??t??{};if(!i)return}return as(e)&&!n?e.toString(r):new zo(e,n,r).toString(r)}const qf=Object.freeze(Object.defineProperty({__proto__:null,Alias:du,CST:q4,Composer:Gm,Document:zo,Lexer:IC,LineCounter:FC,Pair:nr,Parser:Xm,Scalar:ze,Schema:Cu,YAMLError:Ym,YAMLMap:Ir,YAMLParseError:Oi,YAMLSeq:pi,YAMLWarning:vC,isAlias:os,isCollection:bt,isDocument:as,isMap:$o,isNode:kt,isPair:xt,isScalar:ut,isSeq:Po,parse:Y4,parseAllDocuments:U4,parseDocument:PC,stringify:V4,visit:ls,visitAsync:uu},Symbol.toStringTag,{value:"Module"})),la=new Map;function G4(e,t,r){var $,z;const{prevItemMapRef:n,snapshotProviderRef:i,gatesRef:s,pendingResolveIdsRef:o,changeTimerRef:a,sessionEndTimerRef:l,wsRef:h}=t,{setItems:u,setConnections:d,setGates:f,setGateEvent:p,setRecentChanges:m,setUICommand:x,setAgentActivity:g,setAgentErrors:y,setSessionState:k,setSpawnedAgents:b,setAgentRelays:w,setSettings:T,setPipelineDraft:S,setActiveBuild:j,setSessions:E,setIterationStates:B,setFeatureTimeline:N,EMPTY_CHANGES:I,appendDecisionEvent:R,setDecisionEventsSnapshot:A,setStatusSnapshot:O,clearStatusSnapshots:F}=r,L=N?D=>{N(_=>_.some(U=>U.id===D.id)?_:[..._,D])}:null;if(e.type==="visionState"||e.type==="hydrate"){const D=e.items||[];if(n.current){const _=n.current,U=new Set,Q=new Set;for(const P of D){const ae=_.get(P.id);ae?(ae.status!==P.status||ae.confidence!==P.confidence||ae.title!==P.title)&&Q.add(P.id):U.add(P.id)}(U.size>0||Q.size>0)&&(m({newIds:U,changedIds:Q}),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>m(I),800))}n.current=new Map(D.map(_=>[_.id,_])),u(D),d(e.connections||[]),f(e.gates||[]),E&&E(e.sessions||[]),A&&Array.isArray(e.decisionEventsSnapshot)&&A(e.decisionEventsSnapshot),F&&F()}else if(e.type==="decisionEvent")R&&e.event&&R(e.event);else if(e.type==="decisionEventsSnapshot")A&&Array.isArray(e.events)&&A(e.events);else if(e.type==="statusSnapshot")O&&e.featureCode&&e.snapshot&&O(e.featureCode,e.snapshot);else if(e.type==="visionUI")x(e);else if(e.type==="agentActivity")g(D=>{const _=[...D,{tool:e.tool,category:e.category||null,detail:e.detail,items:e.items||[],error:e.error||null,timestamp:e.timestamp}];return _.length>20?_.slice(-20):_}),k(D=>D!=null&&D.active?{...D,toolCount:(D.toolCount||0)+1}:D);else if(e.type==="agentSpawned")b(D=>[...D,{agentId:e.agentId,parentSessionId:e.parentSessionId,agentType:e.agentType,status:"running",startedAt:e.startedAt,prompt:e.prompt}]);else if(e.type==="agentSilent")b(D=>D.map(_=>_.agentId===e.agentId?{..._,silent:!0,silentSinceMs:e.silentSinceMs}:_));else if(e.type==="agentKilled")b(D=>D.map(_=>_.agentId===e.agentId?{..._,status:"killed",terminalReason:e.reason,completedAt:new Date().toISOString()}:_));else if(e.type==="agentGC")(($=e.removed)==null?void 0:$.length)>0&&g(D=>{const _=[...D,{tool:"gc",category:"executing",detail:`Cleaned ${e.removed.length} orphan worktree(s)`,items:[],timestamp:e.timestamp}];return _.length>20?_.slice(-20):_});else if(e.type==="agentComplete")b(D=>D.map(_=>_.agentId===e.agentId?_.status==="killed"?_:{..._,status:e.status,completedAt:new Date().toISOString()}:_));else if(e.type==="agentRelay")w(D=>[...D,e].slice(-50));else if(e.type==="sessionStart")l.current&&(clearTimeout(l.current),l.current=null),b(()=>[]),w(()=>[]),k(D=>D&&D.id===e.sessionId?{...D,active:!0}:{id:e.sessionId,active:!0,startedAt:e.timestamp,source:e.source,toolCount:0,errorCount:0,summaries:[],featureCode:null,featureItemId:null,phaseAtBind:null,boundAt:null}),L&&L({id:`session-start-${e.sessionId}`,timestamp:e.timestamp,category:"session",title:"Session started",detail:e.source?`Source: ${e.source}`:null,severity:"info",sessionId:e.sessionId,meta:{source:e.source}});else if(e.type==="sessionEnd")l.current&&(clearTimeout(l.current),l.current=null),k(D=>D?{...D,active:!1,endedAt:e.timestamp,toolCount:e.toolCount,duration:e.duration,journalSpawned:e.journalSpawned,featureCode:e.featureCode||(D==null?void 0:D.featureCode)||null,phaseAtEnd:e.phaseAtEnd||null}:null),l.current=setTimeout(()=>{k(null),l.current=null},3e3),L&&L({id:`session-end-${e.sessionId||Date.now()}`,timestamp:e.timestamp,category:"session",title:`Session ended (${e.toolCount??0} tools)`,detail:null,severity:"info",sessionId:e.sessionId||null,meta:{toolCount:e.toolCount,duration:e.duration}});else if(e.type==="sessionSummary")k(D=>D&&{...D,summaries:[...D.summaries||[],{summary:e.summary,intent:e.intent,component:e.component,timestamp:e.timestamp}].slice(-5)});else if(e.type==="sessionBound")k(D=>D&&{...D,featureCode:e.featureCode,featureItemId:e.itemId,phaseAtBind:e.phase,boundAt:e.timestamp});else if(e.type==="agentError")y(D=>{const _=[...D,{errorType:e.errorType,severity:e.severity,message:e.message,tool:e.tool,detail:e.detail,items:e.items||[],timestamp:e.timestamp||new Date().toISOString()}];return _.length>10?_.slice(-10):_}),k(D=>D!=null&&D.active?{...D,errorCount:(D.errorCount||0)+1}:D),L&&L({id:`error-${e.timestamp}-${Math.random().toString(36).slice(2,6)}`,timestamp:e.timestamp||new Date().toISOString(),category:"error",title:e.message||`${e.errorType} error`,detail:e.tool?`Tool: ${e.tool}`:null,severity:e.severity==="error"?"error":"warning",sessionId:null,meta:{type:e.errorType,tool:e.tool}});else if(e.type==="gateCreated"||e.type==="gatePending")p({type:"pending",gateId:e.gateId,itemId:e.itemId,fromPhase:e.fromPhase,toPhase:e.toPhase}),L&&L({id:`gate-created-${e.gateId}`,timestamp:e.timestamp||new Date().toISOString(),category:"gate",title:e.fromPhase&&e.toPhase?`Gate: ${e.fromPhase} → ${e.toPhase}`:"Gate created",detail:null,severity:"info",sessionId:null,meta:{gateId:e.gateId,itemId:e.itemId,fromPhase:e.fromPhase,toPhase:e.toPhase}});else if(e.type==="gateResolved"){if(f(U=>U.map(Q=>Q.id===e.gateId?{...Q,status:"resolved",outcome:e.outcome,resolvedAt:e.timestamp}:Q)),o.current.has(e.gateId))o.current.delete(e.gateId);else{const U=e.itemId??((z=s.current.find(Q=>Q.id===e.gateId))==null?void 0:z.itemId)??e.gateId;p({type:"resolved",gateId:e.gateId,outcome:e.outcome,itemId:U})}const D=e.outcome==="approve"?"approved":e.outcome==="revise"?"revised":e.outcome==="kill"?"killed":e.outcome,_={approve:"success",revise:"warning",kill:"error"};L&&L({id:`gate-resolved-${e.gateId}`,timestamp:e.timestamp||new Date().toISOString(),category:"gate",title:`Gate ${D}`,detail:null,severity:_[e.outcome]||"info",sessionId:null,meta:{gateId:e.gateId,itemId:e.itemId,outcome:e.outcome}})}else if(e.type==="iterationStarted"||e.type==="iterationUpdate"||e.type==="iterationComplete"){if(g(D=>{let _;e.type==="iterationStarted"?_=`${e.loopType} loop started (0/${e.maxIterations})`:e.type==="iterationComplete"?_=`${e.loopType??"loop"} loop complete (${e.outcome} after ${e.finalCount} iterations)`:_=`${e.loopType??"loop"} iteration ${e.count}/${e.maxIterations}`;const U=[...D,{tool:"iteration",category:e.loopType||"iteration",detail:_,items:[],timestamp:e.timestamp}];return U.length>20?U.slice(-20):U}),e.type==="iterationStarted")la.has(e.loopId)&&(clearTimeout(la.get(e.loopId)),la.delete(e.loopId)),B(D=>{const _=new Map(D);return _.set(e.loopId,{loopId:e.loopId,itemId:e.itemId,loopType:e.loopType,count:0,maxIterations:e.maxIterations,status:"running",outcome:null,startedAt:e.startedAt??e.timestamp,wallClockTimeout:e.wallClockTimeout??null,maxActions:e.maxActions??null}),_});else if(e.type==="iterationUpdate")B(D=>{const _=D.get(e.loopId);if(!_)return D;const U=new Map(D);return U.set(e.loopId,{..._,count:e.count,maxIterations:e.maxIterations}),U});else if(e.type==="iterationComplete"){B(_=>{const U=_.get(e.loopId);if(!U)return _;const Q=new Map(_);return Q.set(e.loopId,{...U,status:"complete",outcome:e.outcome,count:e.finalCount??U.count}),Q});const D=setTimeout(()=>{B(_=>{const U=new Map(_);return U.delete(e.loopId),U}),la.delete(e.loopId)},5e3);la.set(e.loopId,D)}if(e.type==="iterationComplete"&&(e.outcome==="max_reached"||e.outcome==="timeout"||e.outcome==="action_limit")){const D={max_reached:`${e.loopType??"Loop"} hit max iterations (${e.finalCount}) — problem may be in the spec`,timeout:`${e.loopType??"Loop"} timed out after ${e.elapsedMinutes??"?"} minutes (${e.finalCount} iterations)`,action_limit:`${e.loopType??"Loop"} hit action count ceiling (${e.finalCount} iterations)`};y(_=>{const U=[..._,{errorType:"iteration_limit",severity:"warning",message:D[e.outcome]??`${e.loopType??"Loop"} stopped: ${e.outcome}`,timestamp:e.timestamp}];return U.length>10?U.slice(-10):U}),k(_=>_!=null&&_.active?{..._,errorCount:(_.errorCount||0)+1}:_)}if(L&&(e.type==="iterationStarted"||e.type==="iterationComplete")){const D=e.type==="iterationStarted"?`${e.loopType} loop started (0/${e.maxIterations})`:`${e.loopType??"loop"} loop ${e.outcome} (${e.finalCount} iterations)`;L({id:`iteration-${e.loopId}-${e.type}`,timestamp:e.timestamp,category:"iteration",title:D,detail:null,severity:e.outcome==="max_reached"||e.outcome==="timeout"||e.outcome==="action_limit"?"warning":e.type==="iterationComplete"?"success":"info",sessionId:null,meta:{loopId:e.loopId,loopType:e.loopType}})}}else if(e.type==="lifecycleStarted")L&&L({id:`lifecycle-started-${e.itemId}`,timestamp:e.timestamp,category:"phase",title:`Lifecycle started: ${e.phase}`,detail:e.featureCode?`Feature: ${e.featureCode}`:null,severity:"success",sessionId:null,meta:{itemId:e.itemId,phase:e.phase,featureCode:e.featureCode}});else if(e.type==="lifecycleTransition"){const D=e.outcome==="skipped"?" (skipped)":e.outcome==="killed"?" (killed)":"",_=e.outcome==="killed"?"error":e.outcome==="skipped"?"info":"success";L&&L({id:`lifecycle-${e.itemId}-${e.from}-${e.to}`,timestamp:e.timestamp,category:"phase",title:`Phase: ${e.from} → ${e.to}${D}`,detail:null,severity:_,sessionId:null,meta:{itemId:e.itemId,from:e.from,to:e.to,outcome:e.outcome}})}else if(e.type==="openLoopsUpdate")u&&e.itemId&&Array.isArray(e.loops)&&u(D=>D.map(_=>{if(_.id!==e.itemId)return _;const U=_.lifecycle?{..._.lifecycle}:{};return U.lifecycle_ext={...U.lifecycle_ext||{},open_loops:e.loops},{..._,lifecycle:U}}));else if(e.type==="driftAxesUpdate")u&&e.itemId&&Array.isArray(e.drift_axes)&&u(D=>D.map(_=>{if(_.id!==e.itemId)return _;const U=_.lifecycle?{..._.lifecycle}:{};return U.lifecycle_ext={...U.lifecycle_ext||{},drift_axes:e.drift_axes},{..._,lifecycle:U}}));else if(e.type==="branchLineageUpdate"){if(u&&e.itemId){const{type:D,itemId:_,...U}=e;u(Q=>Q.map(P=>{if(P.id!==_)return P;const ae=P.lifecycle?{...P.lifecycle}:{};return ae.lifecycle_ext={...ae.lifecycle_ext||{},branch_lineage:U},{...P,lifecycle:ae}}))}}else if(e.type==="settingsState"||e.type==="settingsUpdated")T&&T(e.settings||null);else if(e.type==="buildState")j&&j(D=>{const _=(D==null?void 0:D.flowId)&&e.flowId&&D.flowId===e.flowId;return{...e,tierEvents:_?D.tierEvents??[]:[],capabilityEvents:_?D.capabilityEvents??[]:[],..._&&(D==null?void 0:D.health_score)!=null?{health_score:D.health_score,health_breakdown:D.health_breakdown,health_missing:D.health_missing}:{}}});else if(e.type==="pipelineDraft")S&&S(e);else if(e.type==="pipelineDraftResolved")S&&S(null);else if(e.type==="system"&&e.subtype==="health_score")j&&j(D=>D&&{...D,health_score:e.score,health_breakdown:e.breakdown,health_missing:e.missing});else if(e.type==="system"&&(e.subtype==="gate_tier_result"||e.subtype==="gate_tier_failed"||e.subtype==="gate_tier_summary"))j&&j(D=>D&&{...D,tierEvents:[...D.tierEvents||[],e].slice(-50)});else if(e.type==="system"&&e.subtype==="capability_violation")j&&j(D=>D&&{...D,capabilityEvents:[...D.capabilityEvents||[],e].slice(-200)});else if(e.type==="devicePaired")try{window.dispatchEvent(new CustomEvent("compose:devicePaired",{detail:{device_id:e.device_id,name:e.name,timestamp:e.timestamp}}))}catch{}else if(e.type==="snapshotRequest"&&e.requestId){const{collectDOMSnapshot:D}=t,_=i.current?i.current():{},U=D?D():{},Q=h.current;Q&&Q.send(JSON.stringify({type:"snapshotResponse",requestId:e.requestId,snapshot:{..._,dom:U,timestamp:new Date().toISOString()}}))}}const X4=new Set(["id","agent","function","intent","inputs","output_contract","ensure","retries","depends_on","on_fail"]),K4=new Set(["TaskGraph","none"]),DC=["on_fail","on_approve","on_revise","on_kill"];function RC(e){var r;const t=[];if(Array.isArray((r=e==null?void 0:e.workflow)==null?void 0:r.steps)){const n=e.workflow.name||"workflow";t.push({name:n,rawSteps:e.workflow.steps})}if(e!=null&&e.flows&&typeof e.flows=="object")for(const n of Object.keys(e.flows)){const i=e.flows[n];Array.isArray(i==null?void 0:i.steps)&&t.push({name:n,rawSteps:i.steps})}if(t.length===0&&(e!=null&&e.functions)&&typeof e.functions=="object"){const n=Object.keys(e.functions).map(i=>({id:i,function:i}));t.push({name:"functions",rawSteps:n,synthetic:!0})}return t}function Q4(e){const t={};for(const n of Object.keys(e))X4.has(n)||(t[n]=e[n]);let r="agent";return e.flow?r="flow":e.type==="parallel_dispatch"?r="parallel":e.function&&e.agent===void 0?r="function":e.agent!==void 0?r="agent":e.function&&(r="function"),{id:e.id,kind:r,agent:e.agent,function:e.function,intent:e.intent,inputs:e.inputs?{...e.inputs}:{},output_contract:e.output_contract,ensure:Array.isArray(e.ensure)?[...e.ensure]:[],retries:e.retries,depends_on:Array.isArray(e.depends_on)?[...e.depends_on]:[],on_fail:e.on_fail,_extra:t}}function wy(e){const t=e||{},n=RC(t).map(({name:i,rawSteps:s,synthetic:o})=>({name:i,steps:s.map(Q4),...o?{synthetic:!0}:{}}));return{version:t.version,flows:n,contracts:J4(t.contracts),_doc:t}}function J4(e){return!e||typeof e!="object"?{}:JSON.parse(JSON.stringify(e))}function Yn(e,t){const r=e.flows.find(n=>n.name===t);return r?r.steps:[]}function $c(e){return RC(e).filter(t=>t.rawSteps.length>0).map(t=>t.name)}function Nd(e){const t={};t.id=e.id;for(const r of Object.keys(e._extra||{}))t[r]=e._extra[r];return e.agent!==void 0&&(t.agent=e.agent),e.function!==void 0&&(t.function=e.function),e.intent!==void 0&&(t.intent=e.intent),e.inputs&&Object.keys(e.inputs).length>0&&(t.inputs={...e.inputs}),e.output_contract!==void 0&&(t.output_contract=e.output_contract),Array.isArray(e.ensure)&&e.ensure.length>0&&(t.ensure=[...e.ensure]),e.retries!==void 0&&(t.retries=e.retries),Array.isArray(e.depends_on)&&e.depends_on.length>0&&(t.depends_on=[...e.depends_on]),e.on_fail!==void 0&&(t.on_fail=e.on_fail),t}function Z4(e){var o,a,l;const t=e._doc||{},r={...t},n=new Map(e.flows.map(h=>[h.name,h]));if(Array.isArray((o=t==null?void 0:t.workflow)==null?void 0:o.steps)){const h=t.workflow.name||"workflow",u=n.get(h);u&&(r.workflow={...t.workflow,steps:u.steps.map(Nd)})}const i=t!=null&&t.flows&&typeof t.flows=="object"?t.flows:null,s=new Set;if(i){r.flows={};for(const h of Object.keys(i)){const u=n.get(h);u?(r.flows[h]={...i[h],steps:u.steps.map(Nd)},s.add(h)):r.flows[h]=i[h]}}for(const h of e.flows)h.synthetic||h.name===(((a=t==null?void 0:t.workflow)==null?void 0:a.name)||"workflow")&&Array.isArray((l=t==null?void 0:t.workflow)==null?void 0:l.steps)||s.has(h.name)||i&&Object.prototype.hasOwnProperty.call(i,h.name)||(r.flows=r.flows||{},r.flows[h.name]={steps:h.steps.map(Nd)});return r}function eO(e){const t=Z4(e);return t.contracts=pO(e),t}const tO=/^\$\.steps\.([A-Za-z0-9_-]+)/;function fh(e){if(typeof e!="string")return null;const t=e.match(tO);return t?t[1]:null}function ph(e){var n,i;const t=[];for(const s of e.depends_on||[])t.push({field:"depends_on",id:s});for(const s of DC){const o=s==="on_fail"?e.on_fail:(n=e._extra)==null?void 0:n[s];o!=null&&o!=="null"&&t.push({field:s,id:o})}for(const[s,o]of Object.entries(e.inputs||{})){const a=fh(o);a&&t.push({field:`inputs.${s}`,id:a})}const r=fh((i=e._extra)==null?void 0:i.source);return r&&t.push({field:"source",id:r}),t}function Wf(e,t){var y,k,b,w;const r=Yn(e,t),n=[],i={},s=r.map(T=>T.id),o=new Set(s),a=new Set;for(const T of s){if(a.has(T)){const S=`Duplicate step id "${T}" in flow "${t}"`;n.push(S),(i[T]||(i[T]=[])).push(S)}a.add(T)}const l=new Set([...Object.keys(e.contracts||{}),...K4]),h=new Set((e.flows||[]).map(T=>T.name));for(const T of r){if(T.kind==="flow"){const S=(y=T._extra)==null?void 0:y.flow;if(typeof S=="string"&&S!==t&&S!==T.id&&!h.has(S)){const j=`Step "${T.id}" flow references unknown flow "${S}" in flow "${t}"`;n.push(j),(i[k=T.id]||(i[k]=[])).push(j)}}for(const{field:S,id:j}of ph(T))if(!o.has(j)){const E=`Step "${T.id}" ${S} references unknown step "${j}" in flow "${t}"`;n.push(E),(i[b=T.id]||(i[b]=[])).push(E)}if(T.output_contract!=null&&!l.has(T.output_contract)){const S=`Step "${T.id}" output_contract "${T.output_contract}" is not a known contract`;n.push(S),(i[w=T.id]||(i[w]=[])).push(S)}}const u=new Map(r.map(T=>[T.id,(T.depends_on||[]).filter(S=>o.has(S))])),d=0,f=1,p=2,m=new Map(s.map(T=>[T,d]));let x=!1;const g=T=>{if(!x){m.set(T,f);for(const S of u.get(T)||[]){if(m.get(S)===f){x=!0;return}m.get(S)===d&&g(S)}m.set(T,p)}};for(const T of s)if(m.get(T)===d&&g(T),x)break;return x&&n.push(`Dependency cycle detected in flow "${t}"`),{errors:n,warningsByStepId:i}}function Ed(e,t,r){return e===t?r:e}function Hf(e,t,r){if(typeof e!="string")return e;const n=t.replace(/[.*+?^${}()|[\]\\-]/g,"\\$&");return e.replace(new RegExp(`^(\\$\\.steps\\.)${n}(?![A-Za-z0-9_-])`),`$1${r}`)}function rO(e,t,r,n){const i=Yn(e,t);for(const s of i){s.id===r&&(s._renamedFrom===void 0&&(s._renamedFrom=r),s.id=n),Array.isArray(s.depends_on)&&(s.depends_on=s.depends_on.map(o=>Ed(o,r,n))),s.on_fail!==void 0&&(s.on_fail=Ed(s.on_fail,r,n));for(const o of["on_approve","on_revise","on_kill"])s._extra&&s._extra[o]!==void 0&&(s._extra[o]=Ed(s._extra[o],r,n));for(const o of Object.keys(s.inputs||{}))s.inputs[o]=Hf(s.inputs[o],r,n);s._extra&&typeof s._extra.source=="string"&&(s._extra.source=Hf(s._extra.source,r,n))}return e}function zC(e,t,r){const n=Yn(e,t);for(const i of n)if(i.id!==r){for(const s of ph(i))if(s.id===r)return{ok:!1,reason:`Cannot delete "${r}": step "${i.id}" references it via ${s.field}`}}return{ok:!0}}function nO(e,t,r){const n=zC(e,t,r);if(!n.ok)throw new Error(n.reason);const i=e.flows.find(s=>s.name===t);if(!i)throw new Error(`Unknown flow "${t}"`);return i.steps=i.steps.filter(s=>s.id!==r),e}function iO(e,t,r,n){if(r===n)return!1;const i=Yn(e,t),s=i.find(o=>o.id===r);return!s||!i.some(o=>o.id===n)||(Array.isArray(s.depends_on)||(s.depends_on=[]),s.depends_on.includes(n))?!1:(s.depends_on.push(n),!0)}function sO(e,t,r,n){const i=Yn(e,t).find(o=>o.id===r);if(!i||!Array.isArray(i.depends_on))return!1;const s=i.depends_on.indexOf(n);return s===-1?!1:(i.depends_on.splice(s,1),!0)}function oO(e,t,r,n){if(r===n)return!0;const i=Yn(e,t),s=new Map(i.map(l=>[l.id,Array.isArray(l.depends_on)?l.depends_on:[]])),o=new Set,a=[n];for(;a.length;){const l=a.pop();if(l===r)return!0;if(!o.has(l)){o.add(l);for(const h of s.get(l)||[])a.push(h)}}return!1}const gn="TaskGraph";function aO(e,t){var o,a,l;const r=[];for(const h of e.flows||[])for(const u of h.steps||[])u.output_contract===t&&r.push(`flow "${h.name}" step "${u.id}" output_contract`);const n=(o=e._doc)==null?void 0:o.flows;if(n&&typeof n=="object")for(const h of Object.keys(n))n[h]&&n[h].output===t&&r.push(`flows.${h}.output`);const i=(a=e._doc)==null?void 0:a.functions;if(i&&typeof i=="object")for(const h of Object.keys(i))i[h]&&i[h].output===t&&r.push(`functions.${h}.output`);const s=(l=e._doc)==null?void 0:l.workflow;return s&&typeof s=="object"&&s.output===t&&r.push("workflow.output"),r}function lO(e,t){if(t===gn)throw new Error(`"${gn}" is a reserved built-in contract and cannot be added`);if(e.contracts||(e.contracts={}),t in e.contracts)throw new Error(`Contract "${t}" already exists`);return e.contracts[t]={},e}function cO(e,t,r){var a,l,h;if(r===gn||t===gn)throw new Error(`"${gn}" is a reserved built-in contract and cannot be renamed`);if(t===r)return e;if(!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);if(r in e.contracts)throw new Error(`Contract "${r}" already exists`);const n={};for(const u of Object.keys(e.contracts))u===t?n[r]=e.contracts[t]:n[u]=e.contracts[u];e.contracts=n;for(const u of e.flows||[])for(const d of u.steps||[])d.output_contract===t&&(d.output_contract=r);const i=(a=e._doc)==null?void 0:a.flows;if(i&&typeof i=="object")for(const u of Object.keys(i))i[u]&&i[u].output===t&&(i[u].output=r);const s=(l=e._doc)==null?void 0:l.functions;if(s&&typeof s=="object")for(const u of Object.keys(s))s[u]&&s[u].output===t&&(s[u].output=r);const o=(h=e._doc)==null?void 0:h.workflow;return o&&typeof o=="object"&&o.output===t&&(o.output=r),e}function qC(e,t){if(t===gn)return{ok:!1,reason:`"${gn}" is a reserved built-in contract and cannot be deleted`};const r=aO(e,t);return r.length>0?{ok:!1,reason:`Cannot delete contract "${t}": still referenced by ${r.join(", ")}`}:{ok:!0}}function hO(e,t){const r=qC(e,t);if(!r.ok)throw new Error(r.reason);return e.contracts&&delete e.contracts[t],e}function Km(e){if(e===gn)throw new Error(`"${gn}" is a reserved built-in contract and cannot be edited`)}function uO(e,t,r,n){if(Km(t),!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);return e.contracts[t][r]=n,e}function dO(e,t,r){if(Km(t),!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);return delete e.contracts[t][r],e}function fO(e,t,r,n){if(Km(t),!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);const i=e.contracts[t];if(!(r in i))throw new Error(`Field "${r}" does not exist on contract "${t}"`);if(r===n)return e;if(n in i)throw new Error(`Field "${n}" already exists on contract "${t}"`);const s={};for(const o of Object.keys(i))o===r?s[n]=i[r]:s[o]=i[o];return e.contracts[t]=s,e}function pO(e){const t={},r=e.contracts||{};for(const n of Object.keys(r))n!==gn&&(t[n]=r[n]);return t}const mO=new Set(["depends_on"]);function gO(e){return typeof e=="string"&&e.startsWith("inputs.")}function xO(e){return DC.includes(e)}function yO(e,t){let n=`in_${String(e).replace(/^\$\.steps\./,"").replace(/[^A-Za-z0-9_]/g,"_")}`;n=n.replace(/_+/g,"_").replace(/_$/,"");let i=n,s=2;for(;t.has(i);)i=`${n}_${s++}`;return t.add(i),i}function bO(e,t,r,n){var F;const i=e.flows.find(L=>L.name===t);if(!i)return{ok:!1,reason:`Unknown flow "${t}"`};if(!n||typeof n!="string")return{ok:!1,reason:"newFlowName is required"};if(n===t)return{ok:!1,reason:`New flow name "${n}" must differ from the source flow (no self-reference)`};if(e.flows.some(L=>L.name===n))return{ok:!1,reason:`Flow "${n}" already exists`};const s=e._doc&&e._doc.flows&&typeof e._doc.flows=="object"?e._doc.flows:null;if(s&&Object.prototype.hasOwnProperty.call(s,n))return{ok:!1,reason:`Flow "${n}" already exists in the spec document`};const o=new Set;for(const L of r||[]){if(o.has(L))return{ok:!1,reason:`Duplicate step "${L}" in selection`};if(!i.steps.some($=>$.id===L))return{ok:!1,reason:`Step "${L}" is not in flow "${t}"`};o.add(L)}if(o.size===0)return{ok:!1,reason:"Selection is empty"};const a=new Map(i.steps.map(L=>[L.id,L])),l=[],h=[];for(const L of i.steps){const $=o.has(L.id);for(const{field:z,id:D}of ph(L)){const _=o.has(D);$&&!_?l.push({consumerId:L.id,field:z,producerId:D}):!$&&_&&h.push({consumerId:L.id,field:z,producerId:D})}}for(const L of[...l,...h]){if(xO(L.field))return{ok:!1,reason:`Cannot collapse: gate route "${L.field}" on step "${L.consumerId}" crosses the sub-flow boundary (control transfer cannot cross a flow boundary)`};if(L.field==="source")return{ok:!1,reason:`Cannot collapse: parallel "source" on step "${L.consumerId}" references "${L.producerId}" across the boundary (source only accepts $.steps.<id>, cannot become $.input.*)`};if(!(mO.has(L.field)||gO(L.field)))return{ok:!1,reason:`Cannot collapse: ref "${L.field}" on step "${L.consumerId}" crosses the boundary and is not rewireable`}}const u=new Map;for(const L of i.steps){const $=[];for(const{id:z}of ph(L))$.push(z);u.set(L.id,$)}const d=new Set;{const L=new Map(i.steps.map(z=>[z.id,[]]));for(const[z,D]of u)for(const _ of D)L.has(_)&&L.get(_).push(z);const $=[...o];for(;$.length;){const z=$.pop();for(const D of L.get(z)||[])!o.has(D)&&!d.has(D)&&(d.add(D),$.push(D))}}const f=new Set;{const L=[...o];for(;L.length;){const $=L.pop();for(const z of u.get($)||[])!o.has(z)&&!f.has(z)&&(f.add(z),L.push(z))}}for(const L of d)if(f.has(L))return{ok:!1,reason:`Cannot collapse: step "${L}" sits between selected steps (selection is not dependency-contiguous)`};const p=new Set(h.map(L=>L.producerId));if(p.size>1)return{ok:!1,reason:`Cannot collapse: a sub-flow has exactly one output, but selected steps [${[...p].join(", ")}] are each consumed outside the group`};const m=i.steps.filter(L=>o.has(L.id)).map(L=>L.id),x=i.steps.findIndex(L=>o.has(L.id)),g=L=>JSON.parse(JSON.stringify(L)),y=m.map(L=>g(a.get(L))),k=new Map(y.map(L=>[L.id,L])),b={},w=new Map,T=new Set;for(const L of y)if(!(!L.inputs||typeof L.inputs!="object"))for(const $ of Object.keys(L.inputs)){const z=L.inputs[$],D=fh(z);if(D&&!o.has(D)&&!w.has(z)){const _=yO(z,T);w.set(z,_),b[_]={type:"string"}}}for(const L of y){if(L.inputs&&typeof L.inputs=="object")for(const $ of Object.keys(L.inputs)){const z=L.inputs[$];w.has(z)&&(L.inputs[$]=`$.input.${w.get(z)}`)}Array.isArray(L.depends_on)&&(L.depends_on=L.depends_on.filter($=>o.has($)))}const S=p.size===1?[...p][0]:null;let j=null;if(S){const L=(F=k.get(S))==null?void 0:F.output_contract;j=L??null}else{const L=y[y.length-1];j=L&&L.output_contract!=null?L.output_contract:null}e.flows.push({name:n,steps:y}),e._doc||(e._doc={}),(!e._doc.flows||typeof e._doc.flows!="object")&&(e._doc.flows={}),e._doc.flows[n]={input:b,output:j,steps:[]};const E=new Set(i.steps.filter(L=>!o.has(L.id)).map(L=>L.id));let B=n;if(E.has(B)){let L=2;for(;E.has(`${B}_${L}`);)L++;B=`${B}_${L}`}const N={};for(const[L,$]of w)N[$]=L;const I=[];for(const L of l)I.includes(L.producerId)||I.push(L.producerId);const R={id:B,kind:"flow",agent:void 0,function:void 0,intent:void 0,inputs:N,output_contract:void 0,ensure:[],retries:void 0,depends_on:I,on_fail:void 0,_extra:{flow:n}},A=[];let O=!1;i.steps.forEach((L,$)=>{if(o.has(L.id)){!O&&$===x&&(A.push(R),O=!0);return}A.push(L)}),O||A.unshift(R);for(const L of A)if(L!==R&&!o.has(L.id)){if(L.inputs&&typeof L.inputs=="object")for(const $ of Object.keys(L.inputs)){const z=fh(L.inputs[$]);z&&o.has(z)&&(L.inputs[$]=Hf(L.inputs[$],z,B))}if(Array.isArray(L.depends_on)){const $=[];for(const z of L.depends_on){const D=o.has(z)?B:z;$.includes(D)||$.push(D)}L.depends_on=$}}return i.steps=A,{ok:!0}}function vy(e){const t=String(e||""),r=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return r>=0?t.slice(r+1):t}function kO(e){return String(e)==="0.1"}function CO(e,t="new_step"){const r=new Set((e||[]).map(i=>i.id));if(!r.has(t))return t;let n=2;for(;r.has(`${t}_${n}`);)n+=1;return`${t}_${n}`}function hr(e){return e&&{...e,flows:e.flows.map(t=>({...t,steps:t.steps.map(r=>({...r}))}))}}function Sy(e,t,r){const n=[];let i={};for(const s of t||[]){const o=Wf(e,s);for(const a of o.errors||[])n.push(a);s===r&&(i={...o.warningsByStepId||{}})}return{errors:n,warningsByStepId:i}}function wO(){const e=new Set(["SCRIPT","STYLE","LINK","META","NOSCRIPT"]),t=12,r=120;function n(s,o){if(!s||o>t)return null;if(s.nodeType===Node.TEXT_NODE){const f=s.textContent.trim();return f?f.slice(0,r):null}if(s.nodeType!==Node.ELEMENT_NODE||e.has(s.tagName))return null;const a=window.getComputedStyle(s);if(a.display==="none"||a.visibility==="hidden")return null;const l={},h=s.getAttribute("role")||s.getAttribute("aria-label"),u=s.tagName.toLowerCase();if(h?l.role=h:l.tag=u,s.className&&typeof s.className=="string"){const f=s.className.trim();f.length<80&&(l.class=f)}const d=[];for(const f of s.childNodes){const p=n(f,o+1);p&&d.push(p)}return d.length===1&&typeof d[0]=="string"?l.text=d[0]:d.length>0&&(l.children=d),!h&&(u==="div"||u==="span")&&!l.text&&d.length===1&&typeof d[0]=="object"?d[0]:l}const i=document.querySelector("[data-snapshot-root]")||document.body;return n(i,0)}const yt={ws:null,snapshotProvider:null,prevItemMap:null,changeTimer:null,sessionEndTimer:null,gates:[],pendingResolveIds:new Set,buildPollInterval:null,recentErrorsInterval:null,connected:!1},Ty={newIds:new Set,changedIds:new Set},Ee=Im((e,t)=>{async function r(o,a){const l=await Te(o,a),h=await l.json();return l.ok?h:(console.error(`[vision] API error ${l.status}:`,h.error||h),{error:h.error||`HTTP ${l.status}`})}function n(){e({connected:!0}),Te("/api/build/state").then(o=>o.json()).then(o=>e({activeBuild:o.state??null})).catch(()=>{}),Te("/api/pipeline/draft").then(o=>o.json()).then(o=>e({pipelineDraft:o.draft??null})).catch(()=>{}),Te("/api/agents/tree").then(o=>o.json()).then(o=>{t().spawnedAgents.length===0&&e({spawnedAgents:(o.agents||[]).map(l=>({agentId:l.agentId,parentSessionId:l.parentSessionId,agentType:l.agentType,status:l.status||"running",startedAt:l.startedAt,prompt:l.prompt}))})}).catch(()=>{})}function i(o){try{const a=JSON.parse(o.data);if(a.type==="specChanged"){const l=t().editorSpecFile;if(l){const h=vy(a.file||a.path||"");h&&h===vy(l)&&t().handleSpecChanged({currentHash:a.hash??a.currentHash})}return}G4(a,{prevItemMapRef:{get current(){return yt.prevItemMap},set current(l){yt.prevItemMap=l}},snapshotProviderRef:{get current(){return yt.snapshotProvider},set current(l){yt.snapshotProvider=l}},gatesRef:{get current(){return yt.gates},set current(l){yt.gates=l}},pendingResolveIdsRef:{get current(){return yt.pendingResolveIds},set current(l){yt.pendingResolveIds=l}},changeTimerRef:{get current(){return yt.changeTimer},set current(l){yt.changeTimer=l}},sessionEndTimerRef:{get current(){return yt.sessionEndTimer},set current(l){yt.sessionEndTimer=l}},wsRef:{get current(){var l;return((l=yt.ws)==null?void 0:l.socket)||null},set current(l){}},collectDOMSnapshot:wO},{setItems:l=>e(h=>({items:typeof l=="function"?l(h.items):l})),setConnections:l=>e(h=>({connections:typeof l=="function"?l(h.connections):l})),setGates:l=>{e(h=>{const u=typeof l=="function"?l(h.gates):l;return yt.gates=u,{gates:u}})},setGateEvent:l=>e({gateEvent:l}),setRecentChanges:l=>e(h=>({recentChanges:typeof l=="function"?l(h.recentChanges):l})),setUICommand:l=>e({uiCommand:l}),setAgentActivity:l=>e(h=>({agentActivity:typeof l=="function"?l(h.agentActivity):l})),setAgentErrors:l=>{e(h=>{const u=typeof l=="function"?l(h.agentErrors):l,d=Date.now()-6e4,f=u.filter(p=>new Date(p.timestamp).getTime()>d).slice(-5);return{agentErrors:u,recentErrors:f}})},setSessionState:l=>e(h=>({sessionState:typeof l=="function"?l(h.sessionState):l})),setSpawnedAgents:l=>e(h=>({spawnedAgents:typeof l=="function"?l(h.spawnedAgents):l})),setAgentRelays:l=>e(h=>({agentRelays:typeof l=="function"?l(h.agentRelays):l})),setSettings:l=>e({settings:l}),setPipelineDraft:l=>e({pipelineDraft:l}),setActiveBuild:l=>e(h=>({activeBuild:typeof l=="function"?l(h.activeBuild):l})),setSessions:l=>e(h=>({sessions:typeof l=="function"?l(h.sessions):l})),setFeatureTimeline:l=>e(h=>({featureTimeline:typeof l=="function"?l(h.featureTimeline):l})),setIterationStates:l=>e(h=>({iterationStates:typeof l=="function"?l(h.iterationStates):l})),appendDecisionEvent:l=>e(h=>!(l!=null&&l.id)||h.decisionEvents.some(u=>u.id===l.id)?h:{decisionEvents:[...h.decisionEvents,l]}),setDecisionEventsSnapshot:l=>e({decisionEvents:Array.isArray(l)?l:[]}),setStatusSnapshot:(l,h)=>e(u=>({statusSnapshots:{...u.statusSnapshots,[l]:h}})),clearStatusSnapshots:()=>e({statusSnapshots:{}}),EMPTY_CHANGES:Ty})}catch{}}function s(){yt.disposed||yt.ws||(yt.ws=IN({url:()=>x1(),onOpen:n,onMessage:i,onClose:()=>e({connected:!1})}))}return Te("/api/session/current").then(o=>o.json()).then(o=>{o.session&&e(a=>a.sessionState?{}:{sessionState:{id:o.session.id,active:!0,startedAt:o.session.startedAt,source:o.session.source||"hydrated",toolCount:o.session.toolCount||0,errorCount:o.session.errorCount||0,summaries:o.session.summaries||[],featureCode:o.session.featureCode||null,featureItemId:o.session.featureItemId||null,phaseAtBind:o.session.phaseAtBind||null,boundAt:o.session.boundAt||null}})}).catch(()=>console.warn("[vision] Failed to hydrate session state")),yt.buildPollInterval=setInterval(()=>{Te("/api/build/state").then(o=>o.json()).then(o=>e({activeBuild:o.state??null})).catch(()=>{})},5e3),yt.recentErrorsInterval=setInterval(()=>{const{agentErrors:o}=t(),a=Date.now()-6e4,l=o.filter(h=>new Date(h.timestamp).getTime()>a).slice(-5);e({recentErrors:l})},1e4),s(),{items:[],connections:[],connected:!1,uiCommand:null,recentChanges:Ty,agentActivity:[],agentErrors:[],recentErrors:[],spawnedAgents:[],agentRelays:[],sessionState:null,gates:[],gateEvent:null,settings:null,pipelineDraft:null,activeBuild:null,iterationStates:new Map,sessions:[],buildHistory:[],featureTimeline:[],selectedPhase:(()=>{try{return localStorage.getItem("compose:selectedPhase")||null}catch{return null}})(),selectedBranches:{},decisionEvents:[],statusSnapshots:{},editorSpecFile:null,editorSpecs:[],editorModel:null,editorVersion:null,editorSelectedFlow:null,editorSelectedStep:null,editorDirty:!1,editorErrors:{errors:[],warningsByStepId:{}},editorReadOnly:!1,editorSpecHash:null,editorSaveScope:"flow",editorConflict:null,editorYamlBuffer:null,editorYamlError:null,clearUICommand:()=>e({uiCommand:null}),setSelectedBranches:(o,a)=>e(l=>({selectedBranches:{...l.selectedBranches,[o]:a}})),setStatusSnapshot:(o,a)=>e(l=>({statusSnapshots:{...l.statusSnapshots,[o]:a}})),clearStatusSnapshots:()=>e({statusSnapshots:{}}),setDecisionEventsSnapshot:o=>e({decisionEvents:Array.isArray(o)?o:[]}),appendDecisionEvent:o=>e(a=>!(o!=null&&o.id)||a.decisionEvents.some(l=>l.id===o.id)?a:{decisionEvents:[...a.decisionEvents,o]}),registerSnapshotProvider:o=>{yt.snapshotProvider=o},setActiveBuild:o=>e({activeBuild:o}),setBuildHistory:o=>e({buildHistory:Array.isArray(o)?o:[]}),fetchBuildHistory:async()=>{try{const a=await(await Te("/api/builds")).json();e({buildHistory:Array.isArray(a.builds)?a.builds:[]})}catch{e({buildHistory:[]})}},setPipelineDraft:o=>e({pipelineDraft:o}),_revalidateEditor:()=>{const{editorModel:o,editorSelectedFlow:a,editorSaveScope:l}=t();if(!o||!a){e({editorErrors:{errors:[],warningsByStepId:{}}});return}if(l==="spec"){const h=$c(o._doc);e({editorErrors:Sy(o,h,a)});return}e({editorErrors:Wf(o,a)})},loadSpecList:async()=>{const o=await r("/api/pipeline/specs"),a=Array.isArray(o==null?void 0:o.specs)?o.specs:[];return e({editorSpecs:a}),a},loadSpecForEdit:async o=>{const a=await r(`/api/pipeline/spec?file=${encodeURIComponent(o)}`);if(a!=null&&a.error||typeof(a==null?void 0:a.text)!="string")return e({editorErrors:{errors:[(a==null?void 0:a.error)||"Failed to load spec"],warningsByStepId:{}}}),null;const l=qf.parse(a.text),h=wy(l),d=$c(l)[0]||null,f=kO(h.version);return e({editorSpecFile:o,editorModel:h,editorVersion:h.version??null,editorSelectedFlow:d,editorSelectedStep:null,editorDirty:!1,editorReadOnly:f,editorErrors:d?Wf(h,d):{errors:[],warningsByStepId:{}},editorSpecHash:typeof a.hash=="string"?a.hash:null,editorSaveScope:"flow",editorConflict:null,editorYamlBuffer:null,editorYamlError:null}),h},selectFlow:o=>{e({editorSelectedFlow:o,editorSelectedStep:null}),t()._revalidateEditor()},selectStep:o=>e({editorSelectedStep:o}),updateStep:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();if(!l||!h||u)return;const f=Yn(l,h).find(p=>p.id===o);f&&(Object.assign(f,a),e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor())},renameStep:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorSelectedStep:u,editorReadOnly:d}=t();!l||!h||d||!a||o===a||(rO(l,h,o,a),e({editorModel:hr(l),editorDirty:!0,editorSelectedStep:u===o?a:u}),t()._revalidateEditor())},addStep:()=>{const{editorModel:o,editorSelectedFlow:a,editorReadOnly:l}=t();if(!o||!a||l)return null;const h=o.flows.find(f=>f.name===a);if(!h)return null;const u=CO(h.steps),d={id:u,kind:"agent",agent:"",function:void 0,intent:"",inputs:{},output_contract:void 0,ensure:[],retries:void 0,depends_on:[],on_fail:void 0,_extra:{}};return h.steps.push(d),e({editorModel:hr(o),editorDirty:!0,editorSelectedStep:u}),t()._revalidateEditor(),u},deleteStep:o=>{const{editorModel:a,editorSelectedFlow:l,editorSelectedStep:h,editorReadOnly:u}=t();if(!a||!l||u)return!1;const d=zC(a,l,o);return d.ok?(nO(a,l,o),e({editorModel:hr(a),editorDirty:!0,editorSelectedStep:h===o?null:h}),t()._revalidateEditor(),!0):(e(f=>{var p,m,x;return{editorErrors:{errors:[d.reason,...((p=f.editorErrors)==null?void 0:p.errors)||[]],warningsByStepId:{...((m=f.editorErrors)==null?void 0:m.warningsByStepId)||{},[o]:[d.reason,...(((x=f.editorErrors)==null?void 0:x.warningsByStepId)||{})[o]||[]]}}}}),!1)},saveSpec:async({force:o=!1}={})=>{var b;const{editorModel:a,editorSpecFile:l,editorSelectedFlow:h,editorReadOnly:u,editorSaveScope:d,editorSpecHash:f,editorYamlBuffer:p,editorYamlError:m,editorErrors:x}=t();if(!a||!l||u)return{error:"No editable spec loaded"};if(p!=null||m){const w="Resolve the YAML pane (let it parse) before saving";return t()._surfaceEditorError(w),{error:w}}if((((b=x==null?void 0:x.errors)==null?void 0:b.length)||0)>0)return{error:"Resolve validation errors before saving"};const g={file:l,model:a};d!=="spec"&&(g.flowName=h),f!=null&&(g.baseHash=f),o&&(g.force=!0);const y=await Te("/api/pipeline/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});let k;try{k=await y.json()}catch{k={}}if(y.status===409||k!=null&&k.conflict)return e({editorConflict:{currentHash:(k==null?void 0:k.currentHash)??null}}),{error:(k==null?void 0:k.error)||"Spec changed on disk",conflict:!0,currentHash:k==null?void 0:k.currentHash};if(!y.ok)return{error:(k==null?void 0:k.error)||`HTTP ${y.status}`};if(k&&k.ok){if(d==="spec")for(const w of a.flows)for(const T of w.steps)delete T._renamedFrom;else{const w=a.flows.find(T=>T.name===h);if(w)for(const T of w.steps)delete T._renamedFrom}e({editorModel:hr(a),editorDirty:!1,editorSpecHash:typeof k.hash=="string"?k.hash:t().editorSpecHash,editorSaveScope:"flow",editorConflict:null})}return k},setYamlBuffer:o=>e({editorYamlBuffer:o,editorYamlError:null}),flushYaml:()=>{const{editorModel:o,editorYamlBuffer:a,editorReadOnly:l,editorSelectedFlow:h}=t();if(o==null||l||a==null)return!1;let u;try{u=qf.parse(a)}catch(m){const x=`YAML parse error: ${(m==null?void 0:m.message)||m}`;return e({editorYamlError:x}),t()._surfaceEditorError(x),!1}const d=wy(u),f=$c(d._doc),p=f.includes(h)?h:f[0]||null;return e({editorModel:hr(d),editorSelectedFlow:p,editorDirty:!0,editorSaveScope:"spec",editorYamlBuffer:null,editorYamlError:null,editorErrors:Sy(d,f,p)}),!0},resolveConflict:async o=>{const{editorSpecFile:a}=t();return o==="reload"?a?t().loadSpecForEdit(a):null:o==="overwrite"?await t().saveSpec({force:!0}):{error:`Unknown conflict resolution "${o}"`}},collapseSelectedToSubflow:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();if(!l||!h||u)return!1;const d=bO(l,h,o,a);return d.ok?(e({editorModel:hr(l),editorDirty:!0,editorSaveScope:"spec",editorSelectedStep:null}),t()._revalidateEditor(),!0):(t()._surfaceEditorError(d.reason||"Cannot collapse the selected steps"),!1)},expandSubflow:o=>{o&&t().selectFlow(o)},handleSpecChanged:({currentHash:o}={})=>{const{editorSpecFile:a,editorDirty:l,editorYamlBuffer:h,editorYamlError:u}=t();if(!a)return;if(!l&&h==null&&!u)return t().loadSpecForEdit(a);e({editorConflict:{currentHash:o??null}})},_surfaceEditorError:(o,a)=>{e(l=>{var d,f;const h=((d=l.editorErrors)==null?void 0:d.warningsByStepId)||{},u=a?{...h,[a]:[o,...h[a]||[]]}:h;return{editorErrors:{errors:[o,...((f=l.editorErrors)==null?void 0:f.errors)||[]],warningsByStepId:u}}})},addDependency:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();return!l||!h||u?!1:oO(l,h,o,a)?(t()._surfaceEditorError(`Cannot add dependency "${o}" → "${a}": would create a cycle`,o),!1):iO(l,h,o,a)?(e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0):(t()._surfaceEditorError(`Cannot add dependency "${o}" → "${a}": invalid (self-edge, duplicate, or missing step)`,o),!1)},removeDependency:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();return!l||!h||u||!sO(l,h,o,a)?!1:(e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0)},addContract:o=>{const{editorModel:a,editorReadOnly:l}=t();if(!a||l)return!1;try{lO(a,o)}catch(h){return t()._surfaceEditorError(h.message),!1}return e({editorModel:hr(a),editorDirty:!0}),t()._revalidateEditor(),!0},renameContract:(o,a)=>{const{editorModel:l,editorReadOnly:h}=t();if(!l||h||!a||o===a)return!1;try{cO(l,o,a)}catch(u){return t()._surfaceEditorError(u.message),!1}return e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0},deleteContract:o=>{const{editorModel:a,editorReadOnly:l}=t();if(!a||l)return!1;const h=qC(a,o);return h.ok?(hO(a,o),e({editorModel:hr(a),editorDirty:!0}),t()._revalidateEditor(),!0):(t()._surfaceEditorError(h.reason),!1)},setContractField:(o,a,l)=>{const{editorModel:h,editorReadOnly:u}=t();if(!h||u)return!1;try{uO(h,o,a,l)}catch(d){return t()._surfaceEditorError(d.message),!1}return e({editorModel:hr(h),editorDirty:!0}),t()._revalidateEditor(),!0},removeContractField:(o,a)=>{const{editorModel:l,editorReadOnly:h}=t();if(!l||h)return!1;try{dO(l,o,a)}catch(u){return t()._surfaceEditorError(u.message),!1}return e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0},renameContractField:(o,a,l)=>{const{editorModel:h,editorReadOnly:u}=t();if(!h||u||!l||a===l)return!1;try{fO(h,o,a,l)}catch(d){return t()._surfaceEditorError(d.message),!1}return e({editorModel:hr(h),editorDirty:!0}),t()._revalidateEditor(),!0},saveAsTemplate:async({filename:o,metadata:a})=>{var f;const{editorModel:l,editorErrors:h,editorYamlBuffer:u,editorYamlError:d}=t();return l?u!=null||d?{error:"Resolve the YAML pane (let it parse) before saving as a template"}:(((f=h==null?void 0:h.errors)==null?void 0:f.length)||0)>0?{error:"Resolve validation errors before saving as a template"}:r("/api/pipeline/save-as-template",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:o,model:l,metadata:a})}):{error:"No spec loaded"}},setFeatureTimeline:o=>e(a=>({featureTimeline:typeof o=="function"?o(a.featureTimeline):o})),setSelectedPhase:o=>{e({selectedPhase:o});try{o?localStorage.setItem("compose:selectedPhase",o):localStorage.removeItem("compose:selectedPhase")}catch{}},updateItemPosition:(o,a)=>{e(l=>({items:l.items.map(h=>h.id===o?{...h,position:a}:h)}))},createItem:o=>r("/api/vision/items",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),updateItem:(o,a)=>r(`/api/vision/items/${o}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),deleteItem:o=>r(`/api/vision/items/${o}`,{method:"DELETE"}),createConnection:o=>r("/api/vision/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),deleteConnection:o=>r(`/api/vision/connections/${o}`,{method:"DELETE"}),resolveGate:async(o,a,l)=>{yt.pendingResolveIds.add(o);try{const h=await r(`/api/vision/gates/${o}/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({outcome:a,comment:l})});return h.error&&yt.pendingResolveIds.delete(o),h}catch{return yt.pendingResolveIds.delete(o),{error:"Network error"}}},updateSettings:o=>r("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),resetSettings:o=>r("/api/settings/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o?{section:o}:{})})}}),vO=DN("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Tr({className:e,variant:t,...r}){return c.jsx("div",{className:ne(vO({variant:t}),e),...r})}var SO=C.createContext(void 0);function TO(e){const t=C.useContext(SO);return e||t||"ltr"}function _O(e,[t,r]){return Math.min(r,Math.max(t,e))}function jO(e,t){return C.useReducer((r,n)=>t[r][n]??r,e)}var Qm="ScrollArea",[WC]=RN(Qm),[NO,Wr]=WC(Qm),HC=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:i,scrollHideDelay:s=600,...o}=e,[a,l]=C.useState(null),[h,u]=C.useState(null),[d,f]=C.useState(null),[p,m]=C.useState(null),[x,g]=C.useState(null),[y,k]=C.useState(0),[b,w]=C.useState(0),[T,S]=C.useState(!1),[j,E]=C.useState(!1),B=Lo(t,l),N=TO(i);return c.jsx(NO,{scope:r,type:n,dir:N,scrollHideDelay:s,scrollArea:a,viewport:h,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:T,onScrollbarXEnabledChange:S,scrollbarY:x,onScrollbarYChange:g,scrollbarYEnabled:j,onScrollbarYEnabledChange:E,onCornerWidthChange:k,onCornerHeightChange:w,children:c.jsx(Bo.div,{dir:N,...o,ref:B,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":b+"px",...e.style}})})});HC.displayName=Qm;var UC="ScrollAreaViewport",YC=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:i,...s}=e,o=Wr(UC,r),a=C.useRef(null),l=Lo(t,a,o.onViewportChange);return c.jsxs(c.Fragment,{children:[c.jsx(EO,{nonce:i}),c.jsx(Bo.div,{"data-radix-scroll-area-viewport":"",...s,ref:l,style:{overflowX:o.scrollbarXEnabled?"scroll":"hidden",overflowY:o.scrollbarYEnabled?"scroll":"hidden",...e.style},children:c.jsx("div",{ref:o.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});YC.displayName=UC;var EO=C.memo(({nonce:e})=>c.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(e,t)=>e.nonce===t.nonce),wn="ScrollAreaScrollbar",Jm=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=Wr(wn,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:o}=i,a=e.orientation==="horizontal";return C.useEffect(()=>(a?s(!0):o(!0),()=>{a?s(!1):o(!1)}),[a,s,o]),i.type==="hover"?c.jsx(LO,{...n,ref:t,forceMount:r}):i.type==="scroll"?c.jsx(BO,{...n,ref:t,forceMount:r}):i.type==="auto"?c.jsx(VC,{...n,ref:t,forceMount:r}):i.type==="always"?c.jsx(Zm,{...n,ref:t,"data-state":"visible"}):null});Jm.displayName=wn;var LO=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=Wr(wn,e.__scopeScrollArea),[s,o]=C.useState(!1);return C.useEffect(()=>{const a=i.scrollArea;let l=0;if(a){const h=()=>{window.clearTimeout(l),o(!0)},u=()=>{l=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return a.addEventListener("pointerenter",h),a.addEventListener("pointerleave",u),()=>{window.clearTimeout(l),a.removeEventListener("pointerenter",h),a.removeEventListener("pointerleave",u)}}},[i.scrollArea,i.scrollHideDelay]),c.jsx(ru,{present:r||s,children:c.jsx(VC,{"data-state":s?"visible":"hidden",...n,ref:t})})}),BO=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=Wr(wn,e.__scopeScrollArea),s=e.orientation==="horizontal",o=_u(()=>l("SCROLL_END"),100),[a,l]=jO("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return C.useEffect(()=>{if(a==="idle"){const h=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(h)}},[a,i.scrollHideDelay,l]),C.useEffect(()=>{const h=i.viewport,u=s?"scrollLeft":"scrollTop";if(h){let d=h[u];const f=()=>{const p=h[u];d!==p&&(l("SCROLL"),o()),d=p};return h.addEventListener("scroll",f),()=>h.removeEventListener("scroll",f)}},[i.viewport,s,l,o]),c.jsx(ru,{present:r||a!=="hidden",children:c.jsx(Zm,{"data-state":a==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:zi(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:zi(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),VC=C.forwardRef((e,t)=>{const r=Wr(wn,e.__scopeScrollArea),{forceMount:n,...i}=e,[s,o]=C.useState(!1),a=e.orientation==="horizontal",l=_u(()=>{if(r.viewport){const h=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;o(a?h:u)}},10);return ko(r.viewport,l),ko(r.content,l),c.jsx(ru,{present:n||s,children:c.jsx(Zm,{"data-state":s?"visible":"hidden",...i,ref:t})})}),Zm=C.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,i=Wr(wn,e.__scopeScrollArea),s=C.useRef(null),o=C.useRef(0),[a,l]=C.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),h=JC(a.viewport,a.content),u={...n,sizes:a,onSizesChange:l,hasThumb:h>0&&h<1,onThumbChange:f=>s.current=f,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:f=>o.current=f};function d(f,p){return $O(f,o.current,a,p)}return r==="horizontal"?c.jsx(AO,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&s.current){const f=i.viewport.scrollLeft,p=_y(f,a,i.dir);s.current.style.transform=`translate3d(${p}px, 0, 0)`}},onWheelScroll:f=>{i.viewport&&(i.viewport.scrollLeft=f)},onDragScroll:f=>{i.viewport&&(i.viewport.scrollLeft=d(f,i.dir))}}):r==="vertical"?c.jsx(MO,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&s.current){const f=i.viewport.scrollTop,p=_y(f,a);s.current.style.transform=`translate3d(0, ${p}px, 0)`}},onWheelScroll:f=>{i.viewport&&(i.viewport.scrollTop=f)},onDragScroll:f=>{i.viewport&&(i.viewport.scrollTop=d(f))}}):null}),AO=C.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...i}=e,s=Wr(wn,e.__scopeScrollArea),[o,a]=C.useState(),l=C.useRef(null),h=Lo(t,l,s.onScrollbarXChange);return C.useEffect(()=>{l.current&&a(getComputedStyle(l.current))},[l]),c.jsx(XC,{"data-orientation":"horizontal",...i,ref:h,sizes:r,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Tu(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,d)=>{if(s.viewport){const f=s.viewport.scrollLeft+u.deltaX;e.onWheelScroll(f),ew(f,d)&&u.preventDefault()}},onResize:()=>{l.current&&s.viewport&&o&&n({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:gh(o.paddingLeft),paddingEnd:gh(o.paddingRight)}})}})}),MO=C.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...i}=e,s=Wr(wn,e.__scopeScrollArea),[o,a]=C.useState(),l=C.useRef(null),h=Lo(t,l,s.onScrollbarYChange);return C.useEffect(()=>{l.current&&a(getComputedStyle(l.current))},[l]),c.jsx(XC,{"data-orientation":"vertical",...i,ref:h,sizes:r,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Tu(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,d)=>{if(s.viewport){const f=s.viewport.scrollTop+u.deltaY;e.onWheelScroll(f),ew(f,d)&&u.preventDefault()}},onResize:()=>{l.current&&s.viewport&&o&&n({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:gh(o.paddingTop),paddingEnd:gh(o.paddingBottom)}})}})}),[IO,GC]=WC(wn),XC=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:i,onThumbChange:s,onThumbPointerUp:o,onThumbPointerDown:a,onThumbPositionChange:l,onDragScroll:h,onWheelScroll:u,onResize:d,...f}=e,p=Wr(wn,r),[m,x]=C.useState(null),g=Lo(t,x),y=C.useRef(null),k=C.useRef(""),b=p.viewport,w=n.content-n.viewport,T=Mi(u),S=Mi(l),j=_u(d,10);function E(B){if(y.current){const N=B.clientX-y.current.left,I=B.clientY-y.current.top;h({x:N,y:I})}}return C.useEffect(()=>{const B=N=>{const I=N.target;(m==null?void 0:m.contains(I))&&T(N,w)};return document.addEventListener("wheel",B,{passive:!1}),()=>document.removeEventListener("wheel",B,{passive:!1})},[b,m,w,T]),C.useEffect(S,[n,S]),ko(m,j),ko(p.content,j),c.jsx(IO,{scope:r,scrollbar:m,hasThumb:i,onThumbChange:Mi(s),onThumbPointerUp:Mi(o),onThumbPositionChange:S,onThumbPointerDown:Mi(a),children:c.jsx(Bo.div,{...f,ref:g,style:{position:"absolute",...f.style},onPointerDown:zi(e.onPointerDown,B=>{B.button===0&&(B.target.setPointerCapture(B.pointerId),y.current=m.getBoundingClientRect(),k.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",p.viewport&&(p.viewport.style.scrollBehavior="auto"),E(B))}),onPointerMove:zi(e.onPointerMove,E),onPointerUp:zi(e.onPointerUp,B=>{const N=B.target;N.hasPointerCapture(B.pointerId)&&N.releasePointerCapture(B.pointerId),document.body.style.webkitUserSelect=k.current,p.viewport&&(p.viewport.style.scrollBehavior=""),y.current=null})})})}),mh="ScrollAreaThumb",KC=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=GC(mh,e.__scopeScrollArea);return c.jsx(ru,{present:r||i.hasThumb,children:c.jsx(FO,{ref:t,...n})})}),FO=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...i}=e,s=Wr(mh,r),o=GC(mh,r),{onThumbPositionChange:a}=o,l=Lo(t,o.onThumbChange),h=C.useRef(void 0),u=_u(()=>{h.current&&(h.current(),h.current=void 0)},100);return C.useEffect(()=>{const d=s.viewport;if(d){const f=()=>{if(u(),!h.current){const p=PO(d,a);h.current=p,a()}};return a(),d.addEventListener("scroll",f),()=>d.removeEventListener("scroll",f)}},[s.viewport,u,a]),c.jsx(Bo.div,{"data-state":o.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:zi(e.onPointerDownCapture,d=>{const p=d.target.getBoundingClientRect(),m=d.clientX-p.left,x=d.clientY-p.top;o.onThumbPointerDown({x:m,y:x})}),onPointerUp:zi(e.onPointerUp,o.onThumbPointerUp)})});KC.displayName=mh;var eg="ScrollAreaCorner",QC=C.forwardRef((e,t)=>{const r=Wr(eg,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?c.jsx(OO,{...e,ref:t}):null});QC.displayName=eg;var OO=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,i=Wr(eg,r),[s,o]=C.useState(0),[a,l]=C.useState(0),h=!!(s&&a);return ko(i.scrollbarX,()=>{var d;const u=((d=i.scrollbarX)==null?void 0:d.offsetHeight)||0;i.onCornerHeightChange(u),l(u)}),ko(i.scrollbarY,()=>{var d;const u=((d=i.scrollbarY)==null?void 0:d.offsetWidth)||0;i.onCornerWidthChange(u),o(u)}),h?c.jsx(Bo.div,{...n,ref:t,style:{width:s,height:a,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function gh(e){return e?parseInt(e,10):0}function JC(e,t){const r=e/t;return isNaN(r)?0:r}function Tu(e){const t=JC(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function $O(e,t,r,n="ltr"){const i=Tu(r),s=i/2,o=t||s,a=i-o,l=r.scrollbar.paddingStart+o,h=r.scrollbar.size-r.scrollbar.paddingEnd-a,u=r.content-r.viewport,d=n==="ltr"?[0,u]:[u*-1,0];return ZC([l,h],d)(e)}function _y(e,t,r="ltr"){const n=Tu(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-i,o=t.content-t.viewport,a=s-n,l=r==="ltr"?[0,o]:[o*-1,0],h=_O(e,l);return ZC([0,o],[0,a])(h)}function ZC(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function ew(e,t){return e>0&&e<t}var PO=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function i(){const s={left:e.scrollLeft,top:e.scrollTop},o=r.left!==s.left,a=r.top!==s.top;(o||a)&&t(),r=s,n=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(n)};function _u(e,t){const r=Mi(e),n=C.useRef(0);return C.useEffect(()=>()=>window.clearTimeout(n.current),[]),C.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function ko(e,t){const r=Mi(t);zN(()=>{let n=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return i.observe(e),()=>{window.cancelAnimationFrame(n),i.unobserve(e)}}},[e,r])}var tw=HC,DO=YC,RO=QC;const mi=C.forwardRef(({className:e,children:t,...r},n)=>c.jsxs(tw,{ref:n,className:ne("relative overflow-hidden",e),...r,children:[c.jsx(DO,{className:"h-full w-full rounded-[inherit]",children:t}),c.jsx(rw,{}),c.jsx(RO,{})]}));mi.displayName=tw.displayName;const rw=C.forwardRef(({className:e,orientation:t="vertical",...r},n)=>c.jsx(Jm,{ref:n,orientation:t,className:ne("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r,children:c.jsx(KC,{className:"relative flex-1 rounded-full bg-border"})}));rw.displayName=Jm.displayName;var zO="Separator",jy="horizontal",qO=["horizontal","vertical"],nw=C.forwardRef((e,t)=>{const{decorative:r,orientation:n=jy,...i}=e,s=WO(n)?n:jy,a=r?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return c.jsx(Bo.div,{"data-orientation":s,...a,...i,ref:t})});nw.displayName=zO;function WO(e){return qO.includes(e)}var iw=nw;const xh=C.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...n},i)=>c.jsx(iw,{ref:i,decorative:r,orientation:t,className:ne("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));xh.displayName=iw.displayName;function HO({agentId:e,status:t}){const[r,n]=C.useState(""),[i,s]=C.useState(""),o=C.useRef(null),a=C.useRef(!1),l=C.useCallback(()=>{const d=o.current;d&&(a.current=d.scrollTop+d.clientHeight<d.scrollHeight-20)},[]);C.useEffect(()=>{const d=o.current;d&&!a.current&&(d.scrollTop=d.scrollHeight)},[r,i]),C.useEffect(()=>{if(!e)return;const d=async()=>{try{const f=await Te(`/api/agent/${e}`);if(!f.ok)return;const p=await f.json();p.output!=null&&n(p.output),p.stderr!=null&&s(p.stderr)}catch{}};if(d(),t==="running"){const f=setInterval(d,2e3);return()=>clearInterval(f)}},[e,t]);const h=!r&&!i,u=t==="running";return c.jsx("div",{children:c.jsx("div",{ref:o,onScroll:l,className:"overflow-auto max-h-[300px] rounded bg-muted/30 p-2",children:h?c.jsx("p",{className:"text-[10px] font-mono text-muted-foreground italic",children:u?"Waiting for output...":"No output"}):c.jsxs(c.Fragment,{children:[r&&c.jsx("pre",{className:"text-[10px] font-mono text-muted-foreground whitespace-pre-wrap break-all m-0",children:r}),i&&c.jsxs("div",{className:"mt-2",children:[c.jsx("span",{className:"text-[10px] font-mono font-medium text-destructive",children:"stderr"}),c.jsx("pre",{className:"text-[10px] font-mono text-destructive whitespace-pre-wrap break-all m-0 mt-0.5",children:i})]})]})})})}const UO=Ve.memo(HO);function YO(e){if(!e)return"";const t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<5?"now":t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:`${Math.floor(t/3600)}h ago`}function VO({agentId:e,relays:t}){const r=C.useMemo(()=>!t||!e?[]:t.filter(n=>n.fromAgentId===e||n.toAgentId===e),[t,e]);return r.length===0?null:c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--muted-foreground))"},children:"Relays"}),c.jsx("div",{className:"space-y-0.5",children:r.map((n,i)=>{const s=n.direction==="result";return c.jsxs("div",{className:"flex items-start gap-1 text-[10px] font-mono",children:[c.jsx("span",{className:s?"text-foreground shrink-0":"text-muted-foreground shrink-0",children:s?"→":"←"}),c.jsx("span",{className:s?"text-foreground truncate":"text-muted-foreground truncate",title:n.messagePreview,children:n.messagePreview}),c.jsx("span",{className:"text-muted-foreground opacity-50 ml-auto shrink-0 tabular-nums",children:YO(n.timestamp)})]},n.id||i)})})]})}const GO=Ve.memo(VO),XO={reading:"Reading",writing:"Writing",executing:"Running",searching:"Searching",fetching:"Fetching",delegating:"Delegating",thinking:"Thinking"},Ny={build_error:"Build",test_failure:"Test",lint_error:"Lint",git_conflict:"Conflict",permission_error:"Permission",not_found:"Not Found",runtime_error:"Error"};function Ld(e){if(!e||e<1e3)return"<1s";const t=Math.floor(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}const KO=Ve.memo(function({startedAt:t,active:r,duration:n}){const[,i]=Ve.useState(0);Ve.useEffect(()=>{if(!r)return;const l=setInterval(()=>i(h=>h+1),1e3);return()=>clearInterval(l)},[r]);const s=r?Math.floor((Date.now()-new Date(t).getTime())/1e3):n||0,o=Math.floor(s/60),a=s%60;return c.jsxs("span",{className:"tabular-nums",children:[o,"m ",String(a).padStart(2,"0"),"s"]})});function QO({agentActivity:e,agentErrors:t,sessionState:r,onSelectItem:n,spawnedAgents:i,agentRelays:s,onStopAgent:o}){var x,g,y,k;const[a,l]=Ve.useState(null),[h,u]=Ve.useState({status:"idle",tool:null,category:null,activityLog:[],currentActivity:null}),[,d]=Ve.useState(0),[f,p]=Ve.useState([]),m=Ve.useRef(null);return Ve.useEffect(()=>{const b=w=>u(w.detail);return window.addEventListener("compose:agent-status",b),()=>window.removeEventListener("compose:agent-status",b)},[]),Ve.useEffect(()=>{if(h.status!=="working")return;const b=setInterval(()=>d(w=>w+1),1e3);return()=>clearInterval(b)},[h.status]),Ve.useEffect(()=>{if(!e||e.length===0)return;const b=e[e.length-1];Array.isArray(b.items)&&b.items.length>0&&(p(b.items),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>p([]),3e4))},[e]),Ve.useEffect(()=>()=>{m.current&&clearTimeout(m.current)},[]),c.jsxs(c.Fragment,{children:[i&&i.length>0&&c.jsxs("div",{className:"flex items-center gap-0.5 mb-1.5 overflow-x-auto px-3",children:[c.jsx("button",{onClick:()=>l(null),className:ne("text-[10px] px-2 py-0.5 rounded cursor-pointer transition-colors border shrink-0",a?"bg-transparent text-muted-foreground border-border hover:text-foreground":"bg-primary text-primary-foreground border-primary"),children:"Session"}),i.map(b=>c.jsxs("span",{className:"flex items-center gap-0 shrink-0",children:[c.jsxs("button",{onClick:()=>l(b.agentId),className:ne("text-[10px] px-2 py-0.5 rounded-l cursor-pointer transition-colors border flex items-center gap-1 shrink-0",a===b.agentId?"bg-primary text-primary-foreground border-primary":"bg-transparent text-muted-foreground border-border hover:text-foreground"),children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:b.status==="killed"?"hsl(var(--destructive))":b.silent?"hsl(45 93% 47%)":b.status==="running"?"hsl(var(--success))":b.status==="complete"?"hsl(142 71% 45%)":"hsl(var(--destructive))",animation:b.status==="running"&&!b.silent?"phase-active-pulse 2s ease-in-out infinite":"none"}}),b.agentType,b.silent&&c.jsx("span",{className:"text-[8px] text-yellow-500 ml-0.5",title:"Agent silent",children:"!"})]}),b.status==="running"&&o&&c.jsx("button",{onClick:w=>{w.stopPropagation(),o(b.agentId)},className:"text-[10px] px-1 py-0.5 rounded-r border border-l-0 border-border hover:bg-destructive/20 hover:text-destructive cursor-pointer transition-colors",title:"Stop agent",children:"x"})]},b.agentId))]}),a?c.jsxs("div",{className:"px-3 pb-2 space-y-2",children:[c.jsx(UO,{agentId:a,status:(x=i.find(b=>b.agentId===a))==null?void 0:x.status}),c.jsx(GO,{agentId:a,relays:s})]}):c.jsxs(c.Fragment,{children:[(r==null?void 0:r.featureCode)&&c.jsxs("div",{className:"px-3 py-1.5 mb-1 rounded bg-muted/50",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",children:[c.jsx("span",{className:"text-muted-foreground",children:"Working on"}),c.jsx("button",{className:"font-medium text-foreground hover:underline",onClick:()=>r.featureItemId&&(n==null?void 0:n(r.featureItemId)),children:r.featureCode})]}),r.phaseAtBind&&c.jsxs("div",{className:"text-[10px] text-muted-foreground mt-0.5",children:["Phase: ",r.phaseAtBind.replace(/_/g," ")]})]}),r&&c.jsxs("div",{className:"px-3 pb-1",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",style:{color:"hsl(var(--muted-foreground))"},children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:r.active?"hsl(var(--primary))":"hsl(var(--success))"}}),c.jsx(KO,{startedAt:r.startedAt,active:r.active,duration:r.duration}),c.jsxs("span",{className:"tabular-nums",children:[r.toolCount||0," tools"]}),r.errorCount>0&&c.jsxs("span",{style:{color:"hsl(var(--destructive))"},children:[r.errorCount," err"]}),!r.active&&r.journalSpawned&&c.jsx("span",{style:{color:"hsl(var(--primary))"},children:"journal"})]}),((g=r.summaries)==null?void 0:g.length)>0&&c.jsx("p",{className:"text-[10px] mt-0.5 truncate",style:{color:"hsl(var(--muted-foreground))",opacity:.7},title:(y=r.summaries[r.summaries.length-1])==null?void 0:y.summary,children:(k=r.summaries[r.summaries.length-1])==null?void 0:k.summary})]}),c.jsx("div",{className:"px-3 pb-2",children:c.jsxs("div",{className:"rounded-md p-2",style:{background:"hsl(var(--accent))"},children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:h.status==="working"?"var(--color-category-writing)":"hsl(var(--success))",animation:h.status==="working"?"pulse 1.5s ease-in-out infinite":"none"}}),c.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider",style:{color:h.status==="working"?"var(--color-category-writing)":"hsl(var(--muted-foreground))"},children:h.status==="working"?XO[h.category]||"Working":"Idle"}),h.status==="working"&&h.tool&&c.jsx("span",{className:"text-[10px] tracking-wider",style:{color:"hsl(var(--muted-foreground))"},children:h.tool}),h.status==="working"&&h.currentActivity&&c.jsx("span",{className:"text-[10px] tabular-nums ml-auto",style:{color:"hsl(var(--muted-foreground))",opacity:.6},children:Ld(Date.now()-h.currentActivity.startTime)})]}),h.activityLog&&h.activityLog.length>0&&c.jsx("div",{className:"flex items-center gap-0.5 mt-1",children:h.activityLog.slice(-6).map((b,w,T)=>c.jsx("div",{className:"h-1 rounded-full",title:`${b.tool||"thinking"} — ${Ld(b.duration)}`,style:{width:Math.max(4,Math.min(16,(b.duration||0)/1e3*2)),background:mx[b.category]||(h.status==="working"?"var(--color-category-writing)":"hsl(var(--success))"),opacity:.2+w/T.length*.6}},w))}),e&&e.length>0&&c.jsx("div",{className:"mt-1.5 space-y-0.5",children:e.slice(-4).map((b,w)=>c.jsxs("div",{className:"flex items-center gap-1 text-[10px]",style:{color:b.error?"hsl(var(--destructive))":"hsl(var(--muted-foreground))"},children:[b.error&&c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:"hsl(var(--destructive))"}}),c.jsx("span",{className:"font-medium shrink-0",children:b.tool}),b.category&&!b.error&&c.jsx("span",{className:"shrink-0 opacity-50",style:{color:mx[b.category]},children:b.category}),b.error?c.jsx("span",{className:"truncate",title:b.error.type,children:Ny[b.error.type]||b.error.type}):b.detail?c.jsx("span",{className:"truncate opacity-60",title:b.detail,children:b.detail.split("/").pop()}):null]},w))}),f.length>0&&c.jsxs("div",{className:"mt-1.5",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--muted-foreground))"},children:"Working on"}),f.slice(0,3).map(b=>c.jsxs("div",{className:"flex items-center gap-1 text-[10px] py-0.5",style:{color:"hsl(var(--muted-foreground))"},children:[c.jsx("span",{children:b.status==="in_progress"?"◆":"◇"}),c.jsx("span",{className:"truncate",children:b.title})]},b.id))]}),t&&t.length>0&&c.jsxs("div",{className:"mt-1.5",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--destructive))"},children:"Errors"}),t.slice(-3).map((b,w)=>c.jsxs("div",{className:"flex items-center gap-1 text-[10px] py-0.5",style:{color:"hsl(var(--destructive))"},children:[c.jsx("span",{className:"font-medium shrink-0",children:Ny[b.errorType]||b.errorType}),c.jsx("span",{className:"truncate opacity-70",title:b.message,children:b.message})]},w))]}),i&&i.length>0&&c.jsxs("div",{className:"mt-1.5",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--muted-foreground))"},children:"Subagents"}),i.map(b=>c.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] py-0.5",style:{color:"hsl(var(--muted-foreground))"},children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:b.status==="running"?"var(--color-category-executing)":b.status==="complete"?"hsl(var(--success))":"hsl(var(--destructive))",animation:b.status==="running"?"pulse 1.5s ease-in-out infinite":"none"}}),c.jsx("span",{className:"font-medium shrink-0",children:b.agentType}),c.jsx("span",{className:"truncate opacity-60",children:b.status}),c.jsx("span",{className:"tabular-nums ml-auto opacity-50",children:Ld(Date.now()-new Date(b.startedAt).getTime())})]},b.agentId))]})]})})]})]})}const JO=Ve.memo(QO),Ha={DECISION:1,PENDING_GATE:2,BLOCKED:3};function sw(e,t){const r=new Set((t||[]).filter(s=>s.status==="pending").map(s=>s.itemId)),n=new Map,i=(s,o,a)=>{const l=n.get(s.id);(!l||o>l.priority)&&n.set(s.id,{item:s,priority:o,reason:a})};for(const s of e||[])s.status==="blocked"&&i(s,Ha.BLOCKED,"Blocked"),r.has(s.id)&&i(s,Ha.PENDING_GATE,"Pending gate"),s.type==="decision"&&s.status!=="complete"&&s.status!=="killed"&&s.status!=="parked"&&i(s,Ha.DECISION,"Open decision");return Array.from(n.values()).sort((s,o)=>o.priority-s.priority)}function ZO(e){if(!e)return{isRunning:!1,pct:0,stepLabel:"",featureCode:"",stepNum:0,totalSteps:0,status:""};const{currentStepId:t,stepNum:r,totalSteps:n,status:i,featureCode:s}=e,o=i==="running",a=n>0?r/n*100:0,l=Math.min(100,Math.max(0,Math.round(a))),h=t?t.charAt(0).toUpperCase()+t.slice(1).replace(/_/g," "):"";return{isRunning:o,pct:l,stepLabel:h,featureCode:s||"",stepNum:r??0,totalSteps:n??0,status:i||""}}function ow(e,t){const r=e||[],n=t||[];let i=0,s=0,o=0;for(const l of r)l.status==="in_progress"&&i++,l.status==="blocked"&&s++;const a=n.filter(l=>l.status==="pending"||l.status==="awaiting").length;return o=sw(r,n).length,{total:r.length,inProgress:i,blocked:s,pendingGates:a,attentionCount:o}}function e$(e,t){return e&&e===t?null:t}const t$={planned:{bg:"bg-slate-500/15",text:"text-slate-400",dot:"bg-slate-400"},ready:{bg:"bg-sky-500/15",text:"text-sky-400",dot:"bg-sky-400"},in_progress:{bg:"bg-blue-500/15",text:"text-blue-400",dot:"bg-blue-400"},review:{bg:"bg-amber-500/15",text:"text-amber-400",dot:"bg-amber-400"},complete:{bg:"bg-emerald-500/15",text:"text-emerald-400",dot:"bg-emerald-400"},blocked:{bg:"bg-rose-500/15",text:"text-rose-400",dot:"bg-rose-400"},parked:{bg:"bg-slate-500/15",text:"text-slate-500",dot:"bg-slate-500"},killed:{bg:"bg-slate-500/15",text:"text-slate-600",dot:"bg-slate-600"},pending:{bg:"bg-amber-500/15",text:"text-amber-400",dot:"bg-amber-400"},resolved:{bg:"bg-emerald-500/15",text:"text-emerald-400",dot:"bg-emerald-400"},active:{bg:"bg-blue-500/15",text:"text-blue-400",dot:"bg-blue-400"},completed:{bg:"bg-emerald-500/15",text:"text-emerald-400",dot:"bg-emerald-400"},failed:{bg:"bg-rose-500/15",text:"text-rose-400",dot:"bg-rose-400"},paused:{bg:"bg-amber-500/15",text:"text-amber-400",dot:"bg-amber-400"}},r$={bg:"bg-slate-500/10",text:"text-slate-400",dot:"bg-slate-400"};function tg({status:e,className:t}){const r=t$[e]||r$,n=e?e.replace(/_/g," "):"—";return c.jsxs("span",{className:ne("inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium",r.bg,r.text,t),children:[c.jsx("span",{className:ne("w-1 h-1 rounded-full shrink-0",r.dot)}),n]})}const n$={vision:"text-violet-400 bg-violet-500/10 border-violet-500/20",specification:"text-purple-400 bg-purple-500/10 border-purple-500/20",planning:"text-cyan-400 bg-cyan-500/10 border-cyan-500/20",implementation:"text-amber-400 bg-amber-500/10 border-amber-500/20",verification:"text-emerald-400 bg-emerald-500/10 border-emerald-500/20",release:"text-green-400 bg-green-500/10 border-green-500/20"},i$="text-slate-400 bg-slate-500/10 border-slate-500/20";function s$({phase:e,className:t}){const r=n$[e]||i$;return c.jsx("span",{className:ne("inline-flex items-center px-2 py-0.5 rounded-full border text-xs font-mono",r,t),children:e||"—"})}async function Zn(e,t={}){const r=await Te(e,t),n=await r.json();if(!r.ok)throw new Error(n.error||`HTTP ${r.status}`);return n}let Bd=null;function aw(e){if(Bd)return;const t=new WebSocket(x1());Bd=t,t.onmessage=r=>{try{const n=JSON.parse(r.data);n.type==="ideaboxUpdated"&&e(n)}catch{}},t.onclose=()=>{Bd=null,setTimeout(()=>{aw(e)},3e3)},t.onerror=()=>{}}const Co=Im((e,t)=>(setTimeout(()=>t().hydrate(),0),setTimeout(()=>{aw(()=>{t().hydrate()})},500),{ideas:[],killed:[],loading:!1,error:null,selectedIdeaId:null,filters:{tag:"",status:"",priority:"",search:""},hydrate:async()=>{e({loading:!0,error:null});try{const r=await Zn("/api/ideabox");e({ideas:r.ideas||[],killed:r.killed||[],loading:!1})}catch(r){e({error:r.message,loading:!1})}},addIdea:async r=>{const n=await Zn("/api/ideabox/ideas",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});return await t().hydrate(),n},promoteIdea:async(r,n="")=>{const i=await Zn(`/api/ideabox/ideas/${r}/promote`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({featureCode:n})});return await t().hydrate(),i},killIdea:async(r,n="")=>{const i=await Zn(`/api/ideabox/ideas/${r}/kill`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:n})});return await t().hydrate(),i},setPriority:async(r,n)=>{const i=await Zn(`/api/ideabox/ideas/${r}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:n})});return e(s=>({ideas:s.ideas.map(o=>o.id===r?{...o,priority:n}:o)})),i},resurrectIdea:async r=>{const n=await Zn(`/api/ideabox/ideas/${encodeURIComponent(r)}/resurrect`,{method:"POST"});return await t().hydrate(),n},addDiscussion:async(r,n,i)=>{const s=await Zn(`/api/ideabox/ideas/${encodeURIComponent(r)}/discuss`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({author:n,text:i})});return await t().hydrate(),s},updateIdea:async(r,n)=>{const i=await Zn(`/api/ideabox/ideas/${encodeURIComponent(r)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return await t().hydrate(),i},setSelectedIdea:r=>e({selectedIdeaId:r}),updateFilters:r=>e(n=>({filters:{...n.filters,...r}})),clearFilters:()=>e({filters:{tag:"",status:"",priority:"",search:""}})}));function o$({activeBuild:e}){const t=ZO(e);if(!e)return null;const r=t.isRunning?"hsl(var(--primary))":t.status==="complete"?"hsl(var(--success))":t.status==="failed"||t.status==="killed"?"hsl(var(--destructive))":"hsl(var(--muted-foreground))";return c.jsxs("div",{className:"mx-3 mb-2 rounded-md p-2",style:{background:"hsl(var(--accent))"},children:[c.jsxs("div",{className:"flex items-center justify-between mb-1",children:[c.jsxs("div",{className:"flex items-center gap-1.5",children:[c.jsx(th,{className:"h-3 w-3 shrink-0",style:{color:r}}),c.jsx("span",{className:"text-[10px] font-medium truncate max-w-[100px]",style:{color:"hsl(var(--foreground))"},children:t.featureCode||"Build"})]}),c.jsxs("span",{className:"text-[10px] tabular-nums",style:{color:"hsl(var(--muted-foreground))"},children:[t.stepNum,"/",t.totalSteps]})]}),c.jsx("div",{className:"h-1 w-full rounded-full bg-muted overflow-hidden",children:c.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${t.pct}%`,background:r}})}),c.jsxs("div",{className:"flex items-center justify-between mt-1",children:[c.jsx("span",{className:"text-[10px]",style:{color:"hsl(var(--muted-foreground))"},children:t.stepLabel}),t.isRunning&&c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:"hsl(var(--primary))",animation:"pulse 1.5s ease-in-out infinite"}})]})]})}function a$({items:e,gates:t,onSelectItem:r}){const n=Ve.useMemo(()=>sw(e,t),[e,t]),[i,s]=Ve.useState(!1);if(n.length===0)return null;const o=i?n:n.slice(0,5),a=n.length-5,l=h=>h===Ha.BLOCKED?c.jsx(iu,{className:"h-3 w-3 shrink-0",style:{color:"hsl(var(--destructive))"}}):h===Ha.PENDING_GATE?c.jsx(f5,{className:"h-3 w-3 shrink-0",style:{color:"hsl(var(--warning))"}}):c.jsx(JN,{className:"h-3 w-3 shrink-0",style:{color:"hsl(var(--muted-foreground))"}});return c.jsxs("div",{className:"px-2 mb-2",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider px-2 mb-1",style:{color:"hsl(var(--muted-foreground))"},children:"Needs Attention"}),o.map(({item:h,priority:u,reason:d})=>c.jsxs("button",{onClick:()=>r==null?void 0:r(h.id),className:"flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors hover:bg-sidebar-accent/50",style:{color:"hsl(var(--muted-foreground))"},title:d,children:[l(u),c.jsx("span",{className:"truncate flex-1 text-left",children:h.title}),h.phase&&c.jsx(s$,{phase:h.phase,className:"shrink-0 text-[9px] px-1.5 py-0 h-4"}),c.jsx(tg,{status:h.status,className:"shrink-0"})]},h.id)),a>0&&c.jsx("button",{onClick:()=>s(h=>!h),className:"flex w-full items-center px-2 py-0.5 text-[10px] rounded-md hover:bg-sidebar-accent/50 transition-colors",style:{color:"hsl(var(--muted-foreground))"},children:i?"Show less":`+${a} more`})]})}function l$({items:e,gates:t}){const r=Ve.useMemo(()=>ow(e,t),[e,t]);return r.total===0?null:c.jsxs("div",{className:"flex items-center gap-2 flex-wrap px-3 pb-1",children:[c.jsxs("span",{className:"text-xs text-muted-foreground",children:[r.total," items"]}),r.inProgress>0&&c.jsxs("span",{className:"text-xs",style:{color:"hsl(var(--primary))"},children:[r.inProgress," active"]}),r.blocked>0&&c.jsxs("span",{className:"text-xs",style:{color:"hsl(var(--destructive))"},children:[r.blocked," blocked"]}),r.pendingGates>0&&c.jsxs("span",{className:"text-xs",style:{color:"hsl(var(--warning))"},children:[r.pendingGates," ",r.pendingGates===1?"gate":"gates"]})]})}const c$=new Set(["planned","ready","in_progress","review","blocked","parked"]);function h$({items:e,hiddenGroups:t,onToggleGroup:r}){const n=Ve.useMemo(()=>{const i={},s={};for(const o of e){const a=o.title||"";if(a.startsWith("`docs/")||a.startsWith("docs/")||!c$.has(o.status))continue;const l=o.group||"other";i[l]=(i[l]||0)+1,["in_progress","review","ready"].includes(o.status)&&(s[l]=(s[l]||0)+1)}return Object.entries(i).sort((o,a)=>(s[a[0]]||0)-(s[o[0]]||0)||a[1]-o[1]||o[0].localeCompare(a[0])).map(([o,a])=>({group:o,count:a,active:s[o]||0}))},[e]);return n.length<=1?null:c.jsx(c.Fragment,{children:n.map(({group:i,count:s,active:o})=>{const a=t==null?void 0:t.has(i);return c.jsxs("button",{onClick:()=>r==null?void 0:r(i),className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-sm transition-colors hover:bg-sidebar-accent/50",style:{color:"hsl(var(--muted-foreground))",opacity:a?.4:1,fontWeight:o>0?500:400},children:[c.jsx("span",{className:"truncate flex-1 text-left",children:i}),o>0&&c.jsx("span",{className:"text-[10px] tabular-nums",style:{color:"hsl(var(--primary))"},children:o}),c.jsx("span",{className:"text-[10px] tabular-nums shrink-0",style:{color:"hsl(var(--muted-foreground))"},children:s})]},i)})})}function u$({onViewChange:e}){const t=Co(n=>n.ideas),r=Ve.useMemo(()=>t.filter(n=>!n.priority||n.priority==="—").length,[t]);return r===0?null:c.jsxs("div",{className:"px-2 mb-2",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider px-2 mb-1",style:{color:"hsl(var(--muted-foreground))"},children:"Ideas"}),c.jsxs("button",{onClick:()=>e==null?void 0:e("ideabox"),className:"flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors hover:bg-sidebar-accent/50",style:{color:"hsl(var(--muted-foreground))"},title:"View untriaged ideas",children:[c.jsx(Yi,{className:"h-3 w-3 shrink-0 text-amber-400"}),c.jsxs("span",{className:"flex-1 text-left",children:[r," untriaged"]})]})]})}function lw({items:e,gates:t,activeBuild:r,onViewChange:n,selectedPhase:i,onPhaseSelect:s,selectedTrack:o,onTrackSelect:a,visibleTracks:l,onToggleVisibleTrack:h,onShowAllTracks:u,hiddenGroups:d,onToggleGroup:f,searchQuery:p,onSearchChange:m,connected:x,agentActivity:g,agentErrors:y,spawnedAgents:k,agentRelays:b,sessionState:w,onSelectItem:T,onStopAgent:S,onThemeChange:j,onNewItem:E,widthPx:B}){const N=e||[],I=t||[],R=Ve.useMemo(()=>ow(N,I),[N,I]),[A,O]=Ve.useState(()=>typeof document<"u"&&document.documentElement.classList.contains("dark"));Ve.useEffect(()=>{if(typeof document>"u")return;const L=new MutationObserver(()=>{O(document.documentElement.classList.contains("dark"))});return L.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>L.disconnect()},[]);const F=Ve.useCallback(()=>{const L=!A,$=L?"dark":"light";typeof document<"u"&&document.documentElement.classList.toggle("dark",L);try{localStorage.setItem("compose:theme",$)}catch{}j&&j({ui:{theme:$}})},[A,j]);return Ve.useCallback(L=>{s&&s(e$(i,L))},[s,i]),c.jsxs("aside",{className:"shrink-0 flex flex-col bg-sidebar border-r border-sidebar-border",style:{width:B??208},children:[c.jsxs("div",{className:"p-3 pb-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h2",{className:"text-sm font-semibold text-sidebar-foreground",children:"Compose"}),c.jsxs("div",{className:"flex items-center gap-1.5",children:[!x&&c.jsx("span",{className:"text-[10px] text-destructive",children:"disconnected"}),E&&c.jsxs("button",{onClick:E,className:"flex items-center gap-1 px-1.5 py-0.5 rounded-md text-xs text-muted-foreground hover:text-foreground bg-sidebar-accent/50 hover:bg-sidebar-accent transition-colors",title:"New item (⌘N)",children:[c.jsx(Rn,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"New"})]}),c.jsx("button",{onClick:F,className:"p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-sidebar-accent transition-colors",title:A?"Switch to light mode":"Switch to dark mode",children:A?c.jsx(w5,{className:"h-3.5 w-3.5"}):c.jsx(ZE,{className:"h-3.5 w-3.5"})})]})]}),c.jsx(l$,{items:N,gates:I})]}),c.jsx(o$,{activeBuild:r}),c.jsx(JO,{agentActivity:g,agentErrors:y,sessionState:w,onSelectItem:T,onStopAgent:S,spawnedAgents:k,agentRelays:b}),R.attentionCount>0&&c.jsxs(c.Fragment,{children:[c.jsx(xh,{className:"bg-sidebar-border"}),c.jsx(a$,{items:N,gates:I,onSelectItem:T,onViewChange:n})]}),c.jsx(u$,{onViewChange:n}),c.jsx("div",{className:"px-3 pb-2",children:c.jsxs("div",{className:"relative",children:[c.jsx(Hn,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(nm,{placeholder:"Search...",value:p,onChange:L=>m(L.target.value),className:"h-7 pl-7 text-xs bg-sidebar"})]})}),c.jsx(xh,{className:"bg-sidebar-border"}),c.jsx(mi,{className:"flex-1",children:c.jsxs("div",{className:"p-2",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider px-2 mb-1",style:{color:"hsl(var(--muted-foreground))"},children:"Groups"}),c.jsx(h$,{items:N,hiddenGroups:d,onToggleGroup:f})]})})]})}function d$({level:e,size:t=4}){return c.jsx("div",{className:"flex items-center gap-px",children:[0,1,2,3].map(r=>c.jsx("div",{className:"rounded-full",style:{width:t,height:t,background:r<e?e>=3?"hsl(var(--success))":e>=2?"hsl(var(--accent))":"hsl(var(--destructive))":"transparent",border:`1px solid ${r<e?e>=3?"hsl(var(--success))":e>=2?"hsl(var(--accent))":"hsl(var(--destructive))":"hsl(var(--border))"}`}},r))})}function _l({featureCode:e,active:t,onToggle:r}){return e?c.jsxs("button",{onClick:r,style:{fontSize:11,padding:"3px 9px",borderRadius:4,cursor:"pointer",transition:"all 0.15s",border:`1px solid ${t?"#f59e0b":"#334155"}`,background:t?"#f59e0b20":"#1e293b",color:t?"#f59e0b":"#94a3b8"},children:["Focus: ",e]}):null}function jl({icon:e=$E,title:t,description:r,action:n,onAction:i,className:s}){return c.jsxs("div",{className:ne("flex flex-col items-center justify-center gap-3 p-8 text-center",s),children:[c.jsx("div",{className:"flex items-center justify-center w-12 h-12 rounded-full bg-muted/50",children:c.jsx(e,{className:"w-6 h-6 text-muted-foreground/60"})}),c.jsxs("div",{className:"space-y-1",children:[c.jsx("h3",{className:"text-sm font-medium text-foreground",children:t}),r&&c.jsx("p",{className:"text-xs text-muted-foreground",children:r})]}),n&&c.jsx(Ie,{variant:"outline",size:"sm",onClick:i,children:n})]})}const Ey=[{key:"all",label:"All",statuses:null},{key:"active",label:"Active",statuses:["planned","ready","in_progress","review"]},{key:"done",label:"Done",statuses:["complete"]},{key:"blocked",label:"Blocked",statuses:["blocked","parked"]}],f$=[{key:"all",label:"All"},{key:"feature",label:"Feature"},{key:"task",label:"Task"},{key:"track",label:"Track"}];function Ly({active:e,onClick:t,children:r}){return c.jsx("button",{onClick:t,style:{fontSize:11,padding:"2px 7px",borderRadius:4,cursor:"pointer",transition:"all 0.15s",border:`1px solid ${e?"#3b82f6":"#334155"}`,background:e?"#3b82f6":"#1e293b",color:e?"#fff":"#94a3b8"},children:r})}function cw({item:e,children:t,depth:r,selectedItemId:n,onSelect:i,onToggle:s,expandedIds:o}){const a=t.length>0,l=o.has(e.id),h=n===e.id,u=jr[e.type]||jr.task,d=fi[e.status]||fi.planned,{newIds:f,changedIds:p}=C.useContext(hu),m=f.has(e.id),x=p.has(e.id);return c.jsxs("div",{children:[c.jsxs("div",{"data-item-id":e.id,onClick:()=>i(e.id),className:ne("flex items-center gap-1.5 py-1 px-2 cursor-pointer transition-colors rounded-md","hover:bg-accent/5",h&&"bg-accent/10",m&&"bg-green-500/5 border-l-2 border-l-green-500",x&&!m&&"bg-amber-500/5 border-l-2 border-l-amber-500"),style:{paddingLeft:`${r*20+8}px`},children:[c.jsx("button",{onClick:g=>{g.stopPropagation(),a&&s(e.id)},className:ne("shrink-0 w-4 h-4 flex items-center justify-center rounded",a?"text-muted-foreground hover:text-foreground":"invisible"),children:a&&(l?c.jsx(Mo,{className:"h-3.5 w-3.5"}):c.jsx(Ui,{className:"h-3.5 w-3.5"}))}),c.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{background:d}}),c.jsx("span",{className:"text-[9px] uppercase tracking-wider shrink-0 w-12",style:{color:u},children:e.type}),c.jsx("span",{className:ne("text-sm text-foreground truncate flex-1",e.status==="killed"&&"line-through opacity-50"),children:e.title}),c.jsx(d$,{level:e.confidence||0}),e.phase&&c.jsx(Tr,{variant:"outline",className:"text-[9px] px-1 py-0 h-3.5 shrink-0",children:e.phase})]}),a&&l&&c.jsx("div",{children:t.map(g=>c.jsx(cw,{item:g,children:g._children||[],depth:r+1,selectedItemId:n,onSelect:i,onToggle:s,expandedIds:o},g.id))})]})}function hw({items:e,connections:t,selectedItemId:r,onSelect:n,onCreate:i,onCreateFeature:s,isEmptyProject:o,featureCode:a,focusActive:l,onToggleFocus:h}){const[u,d]=C.useState(()=>new Set),[f,p]=C.useState(""),[m,x]=C.useState("all"),[g,y]=C.useState("all"),k=C.useCallback(j=>{d(E=>{const B=new Set(E);return B.has(j)?B.delete(j):B.add(j),B})},[]),b=C.useMemo(()=>{let j=e;const E=Ey.find(B=>B.key===m);if(E!=null&&E.statuses&&(j=j.filter(B=>E.statuses.includes(B.status||"planned"))),g!=="all"&&(j=j.filter(B=>B.type===g)),f){const B=f.toLowerCase();j=j.filter(N=>(N.title||"").toLowerCase().includes(B)||(N.description||"").toLowerCase().includes(B)||(N.type||"").toLowerCase().includes(B)||(N.phase||"").toLowerCase().includes(B))}return l&&a&&(j=j.filter(B=>{var N;return B.featureCode===a||((N=B.lifecycle)==null?void 0:N.featureCode)===a||(B.title||"").includes(a)})),j},[e,f,m,g,l,a]),w=C.useMemo(()=>{const j=new Set(b.map(R=>R.id)),E=new Map;for(const R of b)E.set(R.id,{...R,_children:[]});const B=new Map;for(const R of t)!j.has(R.fromId)||!j.has(R.toId)||(R.type==="informs"?B.has(R.toId)||B.set(R.toId,R.fromId):(R.type==="supports"||R.type==="blocks")&&(B.has(R.fromId)||B.set(R.fromId,R.toId)));for(const R of e)R.parentId&&E.has(R.parentId)&&B.set(R.id,R.parentId);for(const[R]of B){const A=new Set;let O=R;for(;O&&B.has(O);){if(A.has(O)){B.delete(O);break}A.add(O),O=B.get(O)}}const N=[];for(const R of E.values()){const A=B.get(R.id);A&&E.has(A)?E.get(A)._children.push(R):N.push(R)}const I=R=>{R.sort((A,O)=>(A.confidence||0)-(O.confidence||0));for(const A of R)A._children.length>0&&I(A._children)};return I(N),N},[b,t]);Ve.useEffect(()=>{if(f){const j=new Set,E=B=>{for(const N of B)N._children.length>0&&(j.add(N.id),E(N._children))};E(w),d(j)}else u.size===0&&w.length>0&&d(new Set(w.map(j=>j.id)))},[w,f]),Ve.useEffect(()=>{if(!r||w.length===0)return;const j=[],E=(B,N)=>{for(const I of B){if(I.id===N)return!0;if(I._children.length>0&&E(I._children,N))return j.push(I.id),!0}return!1};E(w,r),j.length>0&&d(B=>{const N=new Set(B);for(const I of j)N.add(I);return N}),requestAnimationFrame(()=>{const B=document.querySelector(`[data-item-id="${r}"]`);B&&B.scrollIntoView({block:"center",behavior:"smooth"})})},[r,w]);const T=C.useCallback(()=>{const j=new Set,E=B=>{for(const N of B)N._children.length>0&&(j.add(N.id),E(N._children))};E(w),d(j)},[w]),S=C.useCallback(()=>{d(new Set)},[]);return w.filter(j=>j._children.length>0).length,c.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[c.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-border",children:[c.jsx(_l,{featureCode:a,active:l,onToggle:h}),c.jsxs("div",{className:"relative flex-1 max-w-[180px]",children:[c.jsx(Hn,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(nm,{placeholder:"Search items...",value:f,onChange:j=>p(j.target.value),className:"h-7 pl-7 pr-7 text-xs"}),f&&c.jsx("button",{onClick:()=>p(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:c.jsx(_r,{className:"h-3 w-3"})})]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-[10px] text-muted-foreground mr-0.5",children:"Status:"}),Ey.map(j=>c.jsx(Ly,{active:m===j.key,onClick:()=>x(j.key),children:j.label},j.key))]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-[10px] text-muted-foreground mr-0.5",children:"Type:"}),f$.map(j=>c.jsx(Ly,{active:g===j.key,onClick:()=>y(j.key),children:j.label},j.key))]}),c.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[b.length,f||m!=="all"||g!=="all"?`/${e.length}`:""]}),c.jsx("div",{className:"flex-1"}),c.jsx("button",{onClick:T,className:"text-[10px] px-1.5 py-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-accent/10 transition-colors",children:"Expand"}),c.jsx("button",{onClick:S,className:"text-[10px] px-1.5 py-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-accent/10 transition-colors",children:"Collapse"}),i&&c.jsx("button",{onClick:i,title:"Create item",style:{width:24,height:24,borderRadius:4,border:"1px solid #334155",background:"#1e293b",color:"#94a3b8",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.15s"},className:"hover:border-blue-500 hover:text-white",children:c.jsx(Rn,{className:"h-3.5 w-3.5"})})]}),c.jsx(mi,{className:"flex-1",children:c.jsx("div",{className:"py-1",children:w.length===0?o?c.jsx(jl,{icon:Rn,title:"No items yet",description:"Create your first feature to start building in the cockpit.",action:s?"Create your first feature":void 0,onAction:s,className:"py-8"}):c.jsx("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:"No items match the current filters"}):w.map(j=>c.jsx(cw,{item:j,children:j._children,depth:0,selectedItemId:r,onSelect:n,onToggle:k,expandedIds:u},j.id))})})]})}try{rs.use(om)}catch{}try{rs.use(HN)}catch{}const yh={planned:"#64748b",ready:"#3b82f6",in_progress:"#fbbf24",review:"#f59e0b",complete:"#22c55e",blocked:"#ef4444",parked:"#6b7280",killed:"#475569"},p$=Object.fromEntries(Object.entries(jr).map(([e,t])=>{const r=parseInt(t.slice(1,3),16),n=parseInt(t.slice(3,5),16),i=parseInt(t.slice(5,7),16),s=[15,23,42],o=.15,a=[Math.round(s[0]*(1-o)+r*o),Math.round(s[1]*(1-o)+n*o),Math.round(s[2]*(1-o)+i*o)];return[e,`#${a.map(l=>l.toString(16).padStart(2,"0")).join("")}`]})),m$=[1,1.5,2,2.5,3],Uf={informs:{color:"#64748b",style:"solid"},supports:{color:"#22c55e",style:"solid"},blocks:{color:"#ef4444",style:"solid"},contradicts:{color:"#f472b6",style:"dashed"},implements:{color:"#a78bfa",style:"solid"}},By=[{key:"all",label:"All",statuses:null},{key:"active",label:"Active",statuses:["planned","ready","in_progress","review"]},{key:"complete",label:"Done",statuses:["complete"]},{key:"blocked",label:"Blocked",statuses:["blocked","parked"]}];function Ea(e){return e.group||"other"}const Ay=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)*[a-z]?$/,Ad=24;function g$(e){if(!e||e.length<=Ad)return e;const t=e.split("-");let r="";for(const n of t){const i=r?r+"-"+n:n;if(i.length>Ad-1)break;r=i}return(r||e.slice(0,Ad-1))+"…"}function x$(e){var i;const t=((i=e.lifecycle)==null?void 0:i.featureCode)||e.featureCode;if(t&&Ay.test(t))return t;if(e.id&&Ay.test(e.id)&&e.id.length<=32)return e.id;const n=(e.title||"").replace(/`/g,"").trim().match(/^([A-Z][A-Z0-9]*(?:-[A-Z0-9]+)*[a-z]?)\b/);return n&&n[1].length>=3?n[1]:e.slug?g$(e.slug):e.id?e.id.slice(0,12):"item"}function My(e,t=18){const r=e.split("-"),n=[];let i="";for(const s of r){const o=i?i+"-"+s:s;o.length>t&&i?(n.push(i),i=s):i=o}return i&&n.push(i),n.join(`
506
+ `,r)+1}return{type:t,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(t){switch(this.type){case"alias":case"scalar":case"single-quoted-scalar":case"double-quoted-scalar":return this.flowScalar(this.type);case"block-scalar-header":return{type:"block-scalar",offset:this.offset,indent:this.indent,props:[this.sourceToken],source:""};case"flow-map-start":case"flow-seq-start":return{type:"flow-collection",offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case"seq-item-ind":return{type:"block-seq",offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case"explicit-key-ind":{this.onKeyLine=!0;const r=lc(t),n=ws(r);return n.push(this.sourceToken),{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,explicitKey:!0}]}}case"map-value-ind":{this.onKeyLine=!0;const r=lc(t),n=ws(r);return{type:"block-map",offset:this.offset,indent:this.indent,items:[{start:n,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(t,r){return this.type!=="comment"||this.indent<=r?!1:t.every(n=>n.type==="newline"||n.type==="space")}*documentEnd(t){this.type!=="doc-mode"&&(t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop()))}*lineEnd(t){switch(this.type){case"comma":case"doc-start":case"doc-end":case"flow-seq-end":case"flow-map-end":case"map-value-ind":yield*this.pop(),yield*this.step();break;case"newline":this.onKeyLine=!1;case"space":case"comment":default:t.end?t.end.push(this.sourceToken):t.end=[this.sourceToken],this.type==="newline"&&(yield*this.pop())}}}function $C(e){const t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new FC||null,prettyErrors:t}}function U4(e,t={}){const{lineCounter:r,prettyErrors:n}=$C(t),i=new Xm(r==null?void 0:r.addNewLine),s=new Gm(t),o=Array.from(s.compose(i.parse(e)));if(n&&r)for(const a of o)a.errors.forEach(hh(e,r)),a.warnings.forEach(hh(e,r));return o.length>0?o:Object.assign([],{empty:!0},s.streamInfo())}function PC(e,t={}){const{lineCounter:r,prettyErrors:n}=$C(t),i=new Xm(r==null?void 0:r.addNewLine),s=new Gm(t);let o=null;for(const a of s.compose(i.parse(e),!0,e.length))if(!o)o=a;else if(o.options.logLevel!=="silent"){o.errors.push(new Oi(a.range.slice(0,2),"MULTIPLE_DOCS","Source contains multiple documents; please use YAML.parseAllDocuments()"));break}return n&&r&&(o.errors.forEach(hh(e,r)),o.warnings.forEach(hh(e,r))),o}function Y4(e,t,r){let n;typeof t=="function"?n=t:r===void 0&&t&&typeof t=="object"&&(r=t);const i=PC(e,r);if(!i)return null;if(i.warnings.forEach(s=>nC(i.options.logLevel,s)),i.errors.length>0){if(i.options.logLevel!=="silent")throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:n},r))}function V4(e,t,r){let n=null;if(typeof t=="function"||Array.isArray(t)?n=t:r===void 0&&t&&(r=t),typeof r=="string"&&(r=r.length),typeof r=="number"){const i=Math.round(r);r=i<1?void 0:i>8?{indent:8}:{indent:i}}if(e===void 0){const{keepUndefined:i}=r??t??{};if(!i)return}return as(e)&&!n?e.toString(r):new zo(e,n,r).toString(r)}const qf=Object.freeze(Object.defineProperty({__proto__:null,Alias:du,CST:q4,Composer:Gm,Document:zo,Lexer:IC,LineCounter:FC,Pair:nr,Parser:Xm,Scalar:ze,Schema:Cu,YAMLError:Ym,YAMLMap:Ir,YAMLParseError:Oi,YAMLSeq:pi,YAMLWarning:vC,isAlias:os,isCollection:bt,isDocument:as,isMap:$o,isNode:kt,isPair:xt,isScalar:ut,isSeq:Po,parse:Y4,parseAllDocuments:U4,parseDocument:PC,stringify:V4,visit:ls,visitAsync:uu},Symbol.toStringTag,{value:"Module"})),la=new Map;function G4(e,t,r){var $,z;const{prevItemMapRef:n,snapshotProviderRef:i,gatesRef:s,pendingResolveIdsRef:o,changeTimerRef:a,sessionEndTimerRef:l,wsRef:h}=t,{setItems:u,setConnections:d,setGates:f,setGateEvent:p,setRecentChanges:m,setUICommand:x,setAgentActivity:g,setAgentErrors:y,setSessionState:k,setSpawnedAgents:b,setAgentRelays:w,setSettings:T,setPipelineDraft:S,setActiveBuild:j,setSessions:E,setIterationStates:B,setFeatureTimeline:N,EMPTY_CHANGES:I,appendDecisionEvent:R,setDecisionEventsSnapshot:A,setStatusSnapshot:O,clearStatusSnapshots:F}=r,L=N?D=>{N(_=>_.some(U=>U.id===D.id)?_:[..._,D])}:null;if(e.type==="visionState"||e.type==="hydrate"){const D=e.items||[];if(n.current){const _=n.current,U=new Set,Q=new Set;for(const P of D){const ae=_.get(P.id);ae?(ae.status!==P.status||ae.confidence!==P.confidence||ae.title!==P.title)&&Q.add(P.id):U.add(P.id)}(U.size>0||Q.size>0)&&(m({newIds:U,changedIds:Q}),a.current&&clearTimeout(a.current),a.current=setTimeout(()=>m(I),800))}n.current=new Map(D.map(_=>[_.id,_])),u(D),d(e.connections||[]),f(e.gates||[]),E&&E(e.sessions||[]),A&&Array.isArray(e.decisionEventsSnapshot)&&A(e.decisionEventsSnapshot),F&&F()}else if(e.type==="decisionEvent")R&&e.event&&R(e.event);else if(e.type==="decisionEventsSnapshot")A&&Array.isArray(e.events)&&A(e.events);else if(e.type==="statusSnapshot")O&&e.featureCode&&e.snapshot&&O(e.featureCode,e.snapshot);else if(e.type==="visionUI")x(e);else if(e.type==="agentActivity")g(D=>{const _=[...D,{tool:e.tool,category:e.category||null,detail:e.detail,items:e.items||[],error:e.error||null,timestamp:e.timestamp}];return _.length>20?_.slice(-20):_}),k(D=>D!=null&&D.active?{...D,toolCount:(D.toolCount||0)+1}:D);else if(e.type==="agentSpawned")b(D=>[...D,{agentId:e.agentId,parentSessionId:e.parentSessionId,agentType:e.agentType,status:"running",startedAt:e.startedAt,prompt:e.prompt}]);else if(e.type==="agentSilent")b(D=>D.map(_=>_.agentId===e.agentId?{..._,silent:!0,silentSinceMs:e.silentSinceMs}:_));else if(e.type==="agentKilled")b(D=>D.map(_=>_.agentId===e.agentId?{..._,status:"killed",terminalReason:e.reason,completedAt:new Date().toISOString()}:_));else if(e.type==="agentGC")(($=e.removed)==null?void 0:$.length)>0&&g(D=>{const _=[...D,{tool:"gc",category:"executing",detail:`Cleaned ${e.removed.length} orphan worktree(s)`,items:[],timestamp:e.timestamp}];return _.length>20?_.slice(-20):_});else if(e.type==="agentComplete")b(D=>D.map(_=>_.agentId===e.agentId?_.status==="killed"?_:{..._,status:e.status,completedAt:new Date().toISOString()}:_));else if(e.type==="agentRelay")w(D=>[...D,e].slice(-50));else if(e.type==="sessionStart")l.current&&(clearTimeout(l.current),l.current=null),b(()=>[]),w(()=>[]),k(D=>D&&D.id===e.sessionId?{...D,active:!0}:{id:e.sessionId,active:!0,startedAt:e.timestamp,source:e.source,toolCount:0,errorCount:0,summaries:[],featureCode:null,featureItemId:null,phaseAtBind:null,boundAt:null}),L&&L({id:`session-start-${e.sessionId}`,timestamp:e.timestamp,category:"session",title:"Session started",detail:e.source?`Source: ${e.source}`:null,severity:"info",sessionId:e.sessionId,meta:{source:e.source}});else if(e.type==="sessionEnd")l.current&&(clearTimeout(l.current),l.current=null),k(D=>D?{...D,active:!1,endedAt:e.timestamp,toolCount:e.toolCount,duration:e.duration,journalSpawned:e.journalSpawned,featureCode:e.featureCode||(D==null?void 0:D.featureCode)||null,phaseAtEnd:e.phaseAtEnd||null}:null),l.current=setTimeout(()=>{k(null),l.current=null},3e3),L&&L({id:`session-end-${e.sessionId||Date.now()}`,timestamp:e.timestamp,category:"session",title:`Session ended (${e.toolCount??0} tools)`,detail:null,severity:"info",sessionId:e.sessionId||null,meta:{toolCount:e.toolCount,duration:e.duration}});else if(e.type==="sessionSummary")k(D=>D&&{...D,summaries:[...D.summaries||[],{summary:e.summary,intent:e.intent,component:e.component,timestamp:e.timestamp}].slice(-5)});else if(e.type==="sessionBound")k(D=>D&&{...D,featureCode:e.featureCode,featureItemId:e.itemId,phaseAtBind:e.phase,boundAt:e.timestamp});else if(e.type==="agentError")y(D=>{const _=[...D,{errorType:e.errorType,severity:e.severity,message:e.message,tool:e.tool,detail:e.detail,items:e.items||[],timestamp:e.timestamp||new Date().toISOString()}];return _.length>10?_.slice(-10):_}),k(D=>D!=null&&D.active?{...D,errorCount:(D.errorCount||0)+1}:D),L&&L({id:`error-${e.timestamp}-${Math.random().toString(36).slice(2,6)}`,timestamp:e.timestamp||new Date().toISOString(),category:"error",title:e.message||`${e.errorType} error`,detail:e.tool?`Tool: ${e.tool}`:null,severity:e.severity==="error"?"error":"warning",sessionId:null,meta:{type:e.errorType,tool:e.tool}});else if(e.type==="gateCreated"||e.type==="gatePending")p({type:"pending",gateId:e.gateId,itemId:e.itemId,fromPhase:e.fromPhase,toPhase:e.toPhase}),L&&L({id:`gate-created-${e.gateId}`,timestamp:e.timestamp||new Date().toISOString(),category:"gate",title:e.fromPhase&&e.toPhase?`Gate: ${e.fromPhase} → ${e.toPhase}`:"Gate created",detail:null,severity:"info",sessionId:null,meta:{gateId:e.gateId,itemId:e.itemId,fromPhase:e.fromPhase,toPhase:e.toPhase}});else if(e.type==="gateResolved"){if(f(U=>U.map(Q=>Q.id===e.gateId?{...Q,status:"resolved",outcome:e.outcome,resolvedAt:e.timestamp}:Q)),o.current.has(e.gateId))o.current.delete(e.gateId);else{const U=e.itemId??((z=s.current.find(Q=>Q.id===e.gateId))==null?void 0:z.itemId)??e.gateId;p({type:"resolved",gateId:e.gateId,outcome:e.outcome,itemId:U})}const D=e.outcome==="approve"?"approved":e.outcome==="revise"?"revised":e.outcome==="kill"?"killed":e.outcome,_={approve:"success",revise:"warning",kill:"error"};L&&L({id:`gate-resolved-${e.gateId}`,timestamp:e.timestamp||new Date().toISOString(),category:"gate",title:`Gate ${D}`,detail:null,severity:_[e.outcome]||"info",sessionId:null,meta:{gateId:e.gateId,itemId:e.itemId,outcome:e.outcome}})}else if(e.type==="iterationStarted"||e.type==="iterationUpdate"||e.type==="iterationComplete"){if(g(D=>{let _;e.type==="iterationStarted"?_=`${e.loopType} loop started (0/${e.maxIterations})`:e.type==="iterationComplete"?_=`${e.loopType??"loop"} loop complete (${e.outcome} after ${e.finalCount} iterations)`:_=`${e.loopType??"loop"} iteration ${e.count}/${e.maxIterations}`;const U=[...D,{tool:"iteration",category:e.loopType||"iteration",detail:_,items:[],timestamp:e.timestamp}];return U.length>20?U.slice(-20):U}),e.type==="iterationStarted")la.has(e.loopId)&&(clearTimeout(la.get(e.loopId)),la.delete(e.loopId)),B(D=>{const _=new Map(D);return _.set(e.loopId,{loopId:e.loopId,itemId:e.itemId,loopType:e.loopType,count:0,maxIterations:e.maxIterations,status:"running",outcome:null,startedAt:e.startedAt??e.timestamp,wallClockTimeout:e.wallClockTimeout??null,maxActions:e.maxActions??null}),_});else if(e.type==="iterationUpdate")B(D=>{const _=D.get(e.loopId);if(!_)return D;const U=new Map(D);return U.set(e.loopId,{..._,count:e.count,maxIterations:e.maxIterations}),U});else if(e.type==="iterationComplete"){B(_=>{const U=_.get(e.loopId);if(!U)return _;const Q=new Map(_);return Q.set(e.loopId,{...U,status:"complete",outcome:e.outcome,count:e.finalCount??U.count}),Q});const D=setTimeout(()=>{B(_=>{const U=new Map(_);return U.delete(e.loopId),U}),la.delete(e.loopId)},5e3);la.set(e.loopId,D)}if(e.type==="iterationComplete"&&(e.outcome==="max_reached"||e.outcome==="timeout"||e.outcome==="action_limit")){const D={max_reached:`${e.loopType??"Loop"} hit max iterations (${e.finalCount}) — problem may be in the spec`,timeout:`${e.loopType??"Loop"} timed out after ${e.elapsedMinutes??"?"} minutes (${e.finalCount} iterations)`,action_limit:`${e.loopType??"Loop"} hit action count ceiling (${e.finalCount} iterations)`};y(_=>{const U=[..._,{errorType:"iteration_limit",severity:"warning",message:D[e.outcome]??`${e.loopType??"Loop"} stopped: ${e.outcome}`,timestamp:e.timestamp}];return U.length>10?U.slice(-10):U}),k(_=>_!=null&&_.active?{..._,errorCount:(_.errorCount||0)+1}:_)}if(L&&(e.type==="iterationStarted"||e.type==="iterationComplete")){const D=e.type==="iterationStarted"?`${e.loopType} loop started (0/${e.maxIterations})`:`${e.loopType??"loop"} loop ${e.outcome} (${e.finalCount} iterations)`;L({id:`iteration-${e.loopId}-${e.type}`,timestamp:e.timestamp,category:"iteration",title:D,detail:null,severity:e.outcome==="max_reached"||e.outcome==="timeout"||e.outcome==="action_limit"?"warning":e.type==="iterationComplete"?"success":"info",sessionId:null,meta:{loopId:e.loopId,loopType:e.loopType}})}}else if(e.type==="lifecycleStarted")L&&L({id:`lifecycle-started-${e.itemId}`,timestamp:e.timestamp,category:"phase",title:`Lifecycle started: ${e.phase}`,detail:e.featureCode?`Feature: ${e.featureCode}`:null,severity:"success",sessionId:null,meta:{itemId:e.itemId,phase:e.phase,featureCode:e.featureCode}});else if(e.type==="lifecycleTransition"){const D=e.outcome==="skipped"?" (skipped)":e.outcome==="killed"?" (killed)":"",_=e.outcome==="killed"?"error":e.outcome==="skipped"?"info":"success";L&&L({id:`lifecycle-${e.itemId}-${e.from}-${e.to}`,timestamp:e.timestamp,category:"phase",title:`Phase: ${e.from} → ${e.to}${D}`,detail:null,severity:_,sessionId:null,meta:{itemId:e.itemId,from:e.from,to:e.to,outcome:e.outcome}})}else if(e.type==="openLoopsUpdate")u&&e.itemId&&Array.isArray(e.loops)&&u(D=>D.map(_=>{if(_.id!==e.itemId)return _;const U=_.lifecycle?{..._.lifecycle}:{};return U.lifecycle_ext={...U.lifecycle_ext||{},open_loops:e.loops},{..._,lifecycle:U}}));else if(e.type==="driftAxesUpdate")u&&e.itemId&&Array.isArray(e.drift_axes)&&u(D=>D.map(_=>{if(_.id!==e.itemId)return _;const U=_.lifecycle?{..._.lifecycle}:{};return U.lifecycle_ext={...U.lifecycle_ext||{},drift_axes:e.drift_axes},{..._,lifecycle:U}}));else if(e.type==="branchLineageUpdate"){if(u&&e.itemId){const{type:D,itemId:_,...U}=e;u(Q=>Q.map(P=>{if(P.id!==_)return P;const ae=P.lifecycle?{...P.lifecycle}:{};return ae.lifecycle_ext={...ae.lifecycle_ext||{},branch_lineage:U},{...P,lifecycle:ae}}))}}else if(e.type==="settingsState"||e.type==="settingsUpdated")T&&T(e.settings||null);else if(e.type==="buildState")j&&j(D=>{const _=(D==null?void 0:D.flowId)&&e.flowId&&D.flowId===e.flowId;return{...e,tierEvents:_?D.tierEvents??[]:[],capabilityEvents:_?D.capabilityEvents??[]:[],..._&&(D==null?void 0:D.health_score)!=null?{health_score:D.health_score,health_breakdown:D.health_breakdown,health_missing:D.health_missing}:{}}});else if(e.type==="pipelineDraft")S&&S(e);else if(e.type==="pipelineDraftResolved")S&&S(null);else if(e.type==="system"&&e.subtype==="health_score")j&&j(D=>D&&{...D,health_score:e.score,health_breakdown:e.breakdown,health_missing:e.missing});else if(e.type==="system"&&(e.subtype==="gate_tier_result"||e.subtype==="gate_tier_failed"||e.subtype==="gate_tier_summary"))j&&j(D=>D&&{...D,tierEvents:[...D.tierEvents||[],e].slice(-50)});else if(e.type==="system"&&e.subtype==="capability_violation")j&&j(D=>D&&{...D,capabilityEvents:[...D.capabilityEvents||[],e].slice(-200)});else if(e.type==="devicePaired")try{window.dispatchEvent(new CustomEvent("compose:devicePaired",{detail:{device_id:e.device_id,name:e.name,timestamp:e.timestamp}}))}catch{}else if(e.type==="snapshotRequest"&&e.requestId){const{collectDOMSnapshot:D}=t,_=i.current?i.current():{},U=D?D():{},Q=h.current;Q&&Q.send(JSON.stringify({type:"snapshotResponse",requestId:e.requestId,snapshot:{..._,dom:U,timestamp:new Date().toISOString()}}))}}const X4=new Set(["id","agent","function","intent","inputs","output_contract","ensure","retries","depends_on","on_fail"]),K4=new Set(["TaskGraph","none"]),DC=["on_fail","on_approve","on_revise","on_kill"];function RC(e){var r;const t=[];if(Array.isArray((r=e==null?void 0:e.workflow)==null?void 0:r.steps)){const n=e.workflow.name||"workflow";t.push({name:n,rawSteps:e.workflow.steps})}if(e!=null&&e.flows&&typeof e.flows=="object")for(const n of Object.keys(e.flows)){const i=e.flows[n];Array.isArray(i==null?void 0:i.steps)&&t.push({name:n,rawSteps:i.steps})}if(t.length===0&&(e!=null&&e.functions)&&typeof e.functions=="object"){const n=Object.keys(e.functions).map(i=>({id:i,function:i}));t.push({name:"functions",rawSteps:n,synthetic:!0})}return t}function Q4(e){const t={};for(const n of Object.keys(e))X4.has(n)||(t[n]=e[n]);let r="agent";return e.flow?r="flow":e.type==="parallel_dispatch"?r="parallel":e.function&&e.agent===void 0?r="function":e.agent!==void 0?r="agent":e.function&&(r="function"),{id:e.id,kind:r,agent:e.agent,function:e.function,intent:e.intent,inputs:e.inputs?{...e.inputs}:{},output_contract:e.output_contract,ensure:Array.isArray(e.ensure)?[...e.ensure]:[],retries:e.retries,depends_on:Array.isArray(e.depends_on)?[...e.depends_on]:[],on_fail:e.on_fail,_extra:t}}function wy(e){const t=e||{},n=RC(t).map(({name:i,rawSteps:s,synthetic:o})=>({name:i,steps:s.map(Q4),...o?{synthetic:!0}:{}}));return{version:t.version,flows:n,contracts:J4(t.contracts),_doc:t}}function J4(e){return!e||typeof e!="object"?{}:JSON.parse(JSON.stringify(e))}function Yn(e,t){const r=e.flows.find(n=>n.name===t);return r?r.steps:[]}function $c(e){return RC(e).filter(t=>t.rawSteps.length>0).map(t=>t.name)}function Nd(e){const t={};t.id=e.id;for(const r of Object.keys(e._extra||{}))t[r]=e._extra[r];return e.agent!==void 0&&(t.agent=e.agent),e.function!==void 0&&(t.function=e.function),e.intent!==void 0&&(t.intent=e.intent),e.inputs&&Object.keys(e.inputs).length>0&&(t.inputs={...e.inputs}),e.output_contract!==void 0&&(t.output_contract=e.output_contract),Array.isArray(e.ensure)&&e.ensure.length>0&&(t.ensure=[...e.ensure]),e.retries!==void 0&&(t.retries=e.retries),Array.isArray(e.depends_on)&&e.depends_on.length>0&&(t.depends_on=[...e.depends_on]),e.on_fail!==void 0&&(t.on_fail=e.on_fail),t}function Z4(e){var o,a,l;const t=e._doc||{},r={...t},n=new Map(e.flows.map(h=>[h.name,h]));if(Array.isArray((o=t==null?void 0:t.workflow)==null?void 0:o.steps)){const h=t.workflow.name||"workflow",u=n.get(h);u&&(r.workflow={...t.workflow,steps:u.steps.map(Nd)})}const i=t!=null&&t.flows&&typeof t.flows=="object"?t.flows:null,s=new Set;if(i){r.flows={};for(const h of Object.keys(i)){const u=n.get(h);u?(r.flows[h]={...i[h],steps:u.steps.map(Nd)},s.add(h)):r.flows[h]=i[h]}}for(const h of e.flows)h.synthetic||h.name===(((a=t==null?void 0:t.workflow)==null?void 0:a.name)||"workflow")&&Array.isArray((l=t==null?void 0:t.workflow)==null?void 0:l.steps)||s.has(h.name)||i&&Object.prototype.hasOwnProperty.call(i,h.name)||(r.flows=r.flows||{},r.flows[h.name]={steps:h.steps.map(Nd)});return r}function eO(e){const t=Z4(e);return t.contracts=pO(e),t}const tO=/^\$\.steps\.([A-Za-z0-9_-]+)/;function fh(e){if(typeof e!="string")return null;const t=e.match(tO);return t?t[1]:null}function ph(e){var n,i;const t=[];for(const s of e.depends_on||[])t.push({field:"depends_on",id:s});for(const s of DC){const o=s==="on_fail"?e.on_fail:(n=e._extra)==null?void 0:n[s];o!=null&&o!=="null"&&t.push({field:s,id:o})}for(const[s,o]of Object.entries(e.inputs||{})){const a=fh(o);a&&t.push({field:`inputs.${s}`,id:a})}const r=fh((i=e._extra)==null?void 0:i.source);return r&&t.push({field:"source",id:r}),t}function Wf(e,t){var y,k,b,w;const r=Yn(e,t),n=[],i={},s=r.map(T=>T.id),o=new Set(s),a=new Set;for(const T of s){if(a.has(T)){const S=`Duplicate step id "${T}" in flow "${t}"`;n.push(S),(i[T]||(i[T]=[])).push(S)}a.add(T)}const l=new Set([...Object.keys(e.contracts||{}),...K4]),h=new Set((e.flows||[]).map(T=>T.name));for(const T of r){if(T.kind==="flow"){const S=(y=T._extra)==null?void 0:y.flow;if(typeof S=="string"&&S!==t&&S!==T.id&&!h.has(S)){const j=`Step "${T.id}" flow references unknown flow "${S}" in flow "${t}"`;n.push(j),(i[k=T.id]||(i[k]=[])).push(j)}}for(const{field:S,id:j}of ph(T))if(!o.has(j)){const E=`Step "${T.id}" ${S} references unknown step "${j}" in flow "${t}"`;n.push(E),(i[b=T.id]||(i[b]=[])).push(E)}if(T.output_contract!=null&&!l.has(T.output_contract)){const S=`Step "${T.id}" output_contract "${T.output_contract}" is not a known contract`;n.push(S),(i[w=T.id]||(i[w]=[])).push(S)}}const u=new Map(r.map(T=>[T.id,(T.depends_on||[]).filter(S=>o.has(S))])),d=0,f=1,p=2,m=new Map(s.map(T=>[T,d]));let x=!1;const g=T=>{if(!x){m.set(T,f);for(const S of u.get(T)||[]){if(m.get(S)===f){x=!0;return}m.get(S)===d&&g(S)}m.set(T,p)}};for(const T of s)if(m.get(T)===d&&g(T),x)break;return x&&n.push(`Dependency cycle detected in flow "${t}"`),{errors:n,warningsByStepId:i}}function Ed(e,t,r){return e===t?r:e}function Hf(e,t,r){if(typeof e!="string")return e;const n=t.replace(/[.*+?^${}()|[\]\\-]/g,"\\$&");return e.replace(new RegExp(`^(\\$\\.steps\\.)${n}(?![A-Za-z0-9_-])`),`$1${r}`)}function rO(e,t,r,n){const i=Yn(e,t);for(const s of i){s.id===r&&(s._renamedFrom===void 0&&(s._renamedFrom=r),s.id=n),Array.isArray(s.depends_on)&&(s.depends_on=s.depends_on.map(o=>Ed(o,r,n))),s.on_fail!==void 0&&(s.on_fail=Ed(s.on_fail,r,n));for(const o of["on_approve","on_revise","on_kill"])s._extra&&s._extra[o]!==void 0&&(s._extra[o]=Ed(s._extra[o],r,n));for(const o of Object.keys(s.inputs||{}))s.inputs[o]=Hf(s.inputs[o],r,n);s._extra&&typeof s._extra.source=="string"&&(s._extra.source=Hf(s._extra.source,r,n))}return e}function zC(e,t,r){const n=Yn(e,t);for(const i of n)if(i.id!==r){for(const s of ph(i))if(s.id===r)return{ok:!1,reason:`Cannot delete "${r}": step "${i.id}" references it via ${s.field}`}}return{ok:!0}}function nO(e,t,r){const n=zC(e,t,r);if(!n.ok)throw new Error(n.reason);const i=e.flows.find(s=>s.name===t);if(!i)throw new Error(`Unknown flow "${t}"`);return i.steps=i.steps.filter(s=>s.id!==r),e}function iO(e,t,r,n){if(r===n)return!1;const i=Yn(e,t),s=i.find(o=>o.id===r);return!s||!i.some(o=>o.id===n)||(Array.isArray(s.depends_on)||(s.depends_on=[]),s.depends_on.includes(n))?!1:(s.depends_on.push(n),!0)}function sO(e,t,r,n){const i=Yn(e,t).find(o=>o.id===r);if(!i||!Array.isArray(i.depends_on))return!1;const s=i.depends_on.indexOf(n);return s===-1?!1:(i.depends_on.splice(s,1),!0)}function oO(e,t,r,n){if(r===n)return!0;const i=Yn(e,t),s=new Map(i.map(l=>[l.id,Array.isArray(l.depends_on)?l.depends_on:[]])),o=new Set,a=[n];for(;a.length;){const l=a.pop();if(l===r)return!0;if(!o.has(l)){o.add(l);for(const h of s.get(l)||[])a.push(h)}}return!1}const gn="TaskGraph";function aO(e,t){var o,a,l;const r=[];for(const h of e.flows||[])for(const u of h.steps||[])u.output_contract===t&&r.push(`flow "${h.name}" step "${u.id}" output_contract`);const n=(o=e._doc)==null?void 0:o.flows;if(n&&typeof n=="object")for(const h of Object.keys(n))n[h]&&n[h].output===t&&r.push(`flows.${h}.output`);const i=(a=e._doc)==null?void 0:a.functions;if(i&&typeof i=="object")for(const h of Object.keys(i))i[h]&&i[h].output===t&&r.push(`functions.${h}.output`);const s=(l=e._doc)==null?void 0:l.workflow;return s&&typeof s=="object"&&s.output===t&&r.push("workflow.output"),r}function lO(e,t){if(t===gn)throw new Error(`"${gn}" is a reserved built-in contract and cannot be added`);if(e.contracts||(e.contracts={}),t in e.contracts)throw new Error(`Contract "${t}" already exists`);return e.contracts[t]={},e}function cO(e,t,r){var a,l,h;if(r===gn||t===gn)throw new Error(`"${gn}" is a reserved built-in contract and cannot be renamed`);if(t===r)return e;if(!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);if(r in e.contracts)throw new Error(`Contract "${r}" already exists`);const n={};for(const u of Object.keys(e.contracts))u===t?n[r]=e.contracts[t]:n[u]=e.contracts[u];e.contracts=n;for(const u of e.flows||[])for(const d of u.steps||[])d.output_contract===t&&(d.output_contract=r);const i=(a=e._doc)==null?void 0:a.flows;if(i&&typeof i=="object")for(const u of Object.keys(i))i[u]&&i[u].output===t&&(i[u].output=r);const s=(l=e._doc)==null?void 0:l.functions;if(s&&typeof s=="object")for(const u of Object.keys(s))s[u]&&s[u].output===t&&(s[u].output=r);const o=(h=e._doc)==null?void 0:h.workflow;return o&&typeof o=="object"&&o.output===t&&(o.output=r),e}function qC(e,t){if(t===gn)return{ok:!1,reason:`"${gn}" is a reserved built-in contract and cannot be deleted`};const r=aO(e,t);return r.length>0?{ok:!1,reason:`Cannot delete contract "${t}": still referenced by ${r.join(", ")}`}:{ok:!0}}function hO(e,t){const r=qC(e,t);if(!r.ok)throw new Error(r.reason);return e.contracts&&delete e.contracts[t],e}function Km(e){if(e===gn)throw new Error(`"${gn}" is a reserved built-in contract and cannot be edited`)}function uO(e,t,r,n){if(Km(t),!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);return e.contracts[t][r]=n,e}function dO(e,t,r){if(Km(t),!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);return delete e.contracts[t][r],e}function fO(e,t,r,n){if(Km(t),!e.contracts||!(t in e.contracts))throw new Error(`Contract "${t}" does not exist`);const i=e.contracts[t];if(!(r in i))throw new Error(`Field "${r}" does not exist on contract "${t}"`);if(r===n)return e;if(n in i)throw new Error(`Field "${n}" already exists on contract "${t}"`);const s={};for(const o of Object.keys(i))o===r?s[n]=i[r]:s[o]=i[o];return e.contracts[t]=s,e}function pO(e){const t={},r=e.contracts||{};for(const n of Object.keys(r))n!==gn&&(t[n]=r[n]);return t}const mO=new Set(["depends_on"]);function gO(e){return typeof e=="string"&&e.startsWith("inputs.")}function xO(e){return DC.includes(e)}function yO(e,t){let n=`in_${String(e).replace(/^\$\.steps\./,"").replace(/[^A-Za-z0-9_]/g,"_")}`;n=n.replace(/_+/g,"_").replace(/_$/,"");let i=n,s=2;for(;t.has(i);)i=`${n}_${s++}`;return t.add(i),i}function bO(e,t,r,n){var F;const i=e.flows.find(L=>L.name===t);if(!i)return{ok:!1,reason:`Unknown flow "${t}"`};if(!n||typeof n!="string")return{ok:!1,reason:"newFlowName is required"};if(n===t)return{ok:!1,reason:`New flow name "${n}" must differ from the source flow (no self-reference)`};if(e.flows.some(L=>L.name===n))return{ok:!1,reason:`Flow "${n}" already exists`};const s=e._doc&&e._doc.flows&&typeof e._doc.flows=="object"?e._doc.flows:null;if(s&&Object.prototype.hasOwnProperty.call(s,n))return{ok:!1,reason:`Flow "${n}" already exists in the spec document`};const o=new Set;for(const L of r||[]){if(o.has(L))return{ok:!1,reason:`Duplicate step "${L}" in selection`};if(!i.steps.some($=>$.id===L))return{ok:!1,reason:`Step "${L}" is not in flow "${t}"`};o.add(L)}if(o.size===0)return{ok:!1,reason:"Selection is empty"};const a=new Map(i.steps.map(L=>[L.id,L])),l=[],h=[];for(const L of i.steps){const $=o.has(L.id);for(const{field:z,id:D}of ph(L)){const _=o.has(D);$&&!_?l.push({consumerId:L.id,field:z,producerId:D}):!$&&_&&h.push({consumerId:L.id,field:z,producerId:D})}}for(const L of[...l,...h]){if(xO(L.field))return{ok:!1,reason:`Cannot collapse: gate route "${L.field}" on step "${L.consumerId}" crosses the sub-flow boundary (control transfer cannot cross a flow boundary)`};if(L.field==="source")return{ok:!1,reason:`Cannot collapse: parallel "source" on step "${L.consumerId}" references "${L.producerId}" across the boundary (source only accepts $.steps.<id>, cannot become $.input.*)`};if(!(mO.has(L.field)||gO(L.field)))return{ok:!1,reason:`Cannot collapse: ref "${L.field}" on step "${L.consumerId}" crosses the boundary and is not rewireable`}}const u=new Map;for(const L of i.steps){const $=[];for(const{id:z}of ph(L))$.push(z);u.set(L.id,$)}const d=new Set;{const L=new Map(i.steps.map(z=>[z.id,[]]));for(const[z,D]of u)for(const _ of D)L.has(_)&&L.get(_).push(z);const $=[...o];for(;$.length;){const z=$.pop();for(const D of L.get(z)||[])!o.has(D)&&!d.has(D)&&(d.add(D),$.push(D))}}const f=new Set;{const L=[...o];for(;L.length;){const $=L.pop();for(const z of u.get($)||[])!o.has(z)&&!f.has(z)&&(f.add(z),L.push(z))}}for(const L of d)if(f.has(L))return{ok:!1,reason:`Cannot collapse: step "${L}" sits between selected steps (selection is not dependency-contiguous)`};const p=new Set(h.map(L=>L.producerId));if(p.size>1)return{ok:!1,reason:`Cannot collapse: a sub-flow has exactly one output, but selected steps [${[...p].join(", ")}] are each consumed outside the group`};const m=i.steps.filter(L=>o.has(L.id)).map(L=>L.id),x=i.steps.findIndex(L=>o.has(L.id)),g=L=>JSON.parse(JSON.stringify(L)),y=m.map(L=>g(a.get(L))),k=new Map(y.map(L=>[L.id,L])),b={},w=new Map,T=new Set;for(const L of y)if(!(!L.inputs||typeof L.inputs!="object"))for(const $ of Object.keys(L.inputs)){const z=L.inputs[$],D=fh(z);if(D&&!o.has(D)&&!w.has(z)){const _=yO(z,T);w.set(z,_),b[_]={type:"string"}}}for(const L of y){if(L.inputs&&typeof L.inputs=="object")for(const $ of Object.keys(L.inputs)){const z=L.inputs[$];w.has(z)&&(L.inputs[$]=`$.input.${w.get(z)}`)}Array.isArray(L.depends_on)&&(L.depends_on=L.depends_on.filter($=>o.has($)))}const S=p.size===1?[...p][0]:null;let j=null;if(S){const L=(F=k.get(S))==null?void 0:F.output_contract;j=L??null}else{const L=y[y.length-1];j=L&&L.output_contract!=null?L.output_contract:null}e.flows.push({name:n,steps:y}),e._doc||(e._doc={}),(!e._doc.flows||typeof e._doc.flows!="object")&&(e._doc.flows={}),e._doc.flows[n]={input:b,output:j,steps:[]};const E=new Set(i.steps.filter(L=>!o.has(L.id)).map(L=>L.id));let B=n;if(E.has(B)){let L=2;for(;E.has(`${B}_${L}`);)L++;B=`${B}_${L}`}const N={};for(const[L,$]of w)N[$]=L;const I=[];for(const L of l)I.includes(L.producerId)||I.push(L.producerId);const R={id:B,kind:"flow",agent:void 0,function:void 0,intent:void 0,inputs:N,output_contract:void 0,ensure:[],retries:void 0,depends_on:I,on_fail:void 0,_extra:{flow:n}},A=[];let O=!1;i.steps.forEach((L,$)=>{if(o.has(L.id)){!O&&$===x&&(A.push(R),O=!0);return}A.push(L)}),O||A.unshift(R);for(const L of A)if(L!==R&&!o.has(L.id)){if(L.inputs&&typeof L.inputs=="object")for(const $ of Object.keys(L.inputs)){const z=fh(L.inputs[$]);z&&o.has(z)&&(L.inputs[$]=Hf(L.inputs[$],z,B))}if(Array.isArray(L.depends_on)){const $=[];for(const z of L.depends_on){const D=o.has(z)?B:z;$.includes(D)||$.push(D)}L.depends_on=$}}return i.steps=A,{ok:!0}}function vy(e){const t=String(e||""),r=Math.max(t.lastIndexOf("/"),t.lastIndexOf("\\"));return r>=0?t.slice(r+1):t}function kO(e){return String(e)==="0.1"}function CO(e,t="new_step"){const r=new Set((e||[]).map(i=>i.id));if(!r.has(t))return t;let n=2;for(;r.has(`${t}_${n}`);)n+=1;return`${t}_${n}`}function hr(e){return e&&{...e,flows:e.flows.map(t=>({...t,steps:t.steps.map(r=>({...r}))}))}}function Sy(e,t,r){const n=[];let i={};for(const s of t||[]){const o=Wf(e,s);for(const a of o.errors||[])n.push(a);s===r&&(i={...o.warningsByStepId||{}})}return{errors:n,warningsByStepId:i}}function wO(){const e=new Set(["SCRIPT","STYLE","LINK","META","NOSCRIPT"]),t=12,r=120;function n(s,o){if(!s||o>t)return null;if(s.nodeType===Node.TEXT_NODE){const f=s.textContent.trim();return f?f.slice(0,r):null}if(s.nodeType!==Node.ELEMENT_NODE||e.has(s.tagName))return null;const a=window.getComputedStyle(s);if(a.display==="none"||a.visibility==="hidden")return null;const l={},h=s.getAttribute("role")||s.getAttribute("aria-label"),u=s.tagName.toLowerCase();if(h?l.role=h:l.tag=u,s.className&&typeof s.className=="string"){const f=s.className.trim();f.length<80&&(l.class=f)}const d=[];for(const f of s.childNodes){const p=n(f,o+1);p&&d.push(p)}return d.length===1&&typeof d[0]=="string"?l.text=d[0]:d.length>0&&(l.children=d),!h&&(u==="div"||u==="span")&&!l.text&&d.length===1&&typeof d[0]=="object"?d[0]:l}const i=document.querySelector("[data-snapshot-root]")||document.body;return n(i,0)}const yt={ws:null,snapshotProvider:null,prevItemMap:null,changeTimer:null,sessionEndTimer:null,gates:[],pendingResolveIds:new Set,buildPollInterval:null,recentErrorsInterval:null,connected:!1},Ty={newIds:new Set,changedIds:new Set},Ee=Im((e,t)=>{async function r(o,a){const l=await Te(o,a),h=await l.json();return l.ok?h:(console.error(`[vision] API error ${l.status}:`,h.error||h),{error:h.error||`HTTP ${l.status}`})}function n(){e({connected:!0}),Te("/api/build/state").then(o=>o.json()).then(o=>e({activeBuild:o.state??null})).catch(()=>{}),Te("/api/pipeline/draft").then(o=>o.json()).then(o=>e({pipelineDraft:o.draft??null})).catch(()=>{}),Te("/api/agents/tree").then(o=>o.json()).then(o=>{t().spawnedAgents.length===0&&e({spawnedAgents:(o.agents||[]).map(l=>({agentId:l.agentId,parentSessionId:l.parentSessionId,agentType:l.agentType,status:l.status||"running",startedAt:l.startedAt,prompt:l.prompt}))})}).catch(()=>{})}function i(o){try{const a=JSON.parse(o.data);if(a.type==="specChanged"){const l=t().editorSpecFile;if(l){const h=vy(a.file||a.path||"");h&&h===vy(l)&&t().handleSpecChanged({currentHash:a.hash??a.currentHash})}return}G4(a,{prevItemMapRef:{get current(){return yt.prevItemMap},set current(l){yt.prevItemMap=l}},snapshotProviderRef:{get current(){return yt.snapshotProvider},set current(l){yt.snapshotProvider=l}},gatesRef:{get current(){return yt.gates},set current(l){yt.gates=l}},pendingResolveIdsRef:{get current(){return yt.pendingResolveIds},set current(l){yt.pendingResolveIds=l}},changeTimerRef:{get current(){return yt.changeTimer},set current(l){yt.changeTimer=l}},sessionEndTimerRef:{get current(){return yt.sessionEndTimer},set current(l){yt.sessionEndTimer=l}},wsRef:{get current(){var l;return((l=yt.ws)==null?void 0:l.socket)||null},set current(l){}},collectDOMSnapshot:wO},{setItems:l=>e(h=>({items:typeof l=="function"?l(h.items):l})),setConnections:l=>e(h=>({connections:typeof l=="function"?l(h.connections):l})),setGates:l=>{e(h=>{const u=typeof l=="function"?l(h.gates):l;return yt.gates=u,{gates:u}})},setGateEvent:l=>e({gateEvent:l}),setRecentChanges:l=>e(h=>({recentChanges:typeof l=="function"?l(h.recentChanges):l})),setUICommand:l=>e({uiCommand:l}),setAgentActivity:l=>e(h=>({agentActivity:typeof l=="function"?l(h.agentActivity):l})),setAgentErrors:l=>{e(h=>{const u=typeof l=="function"?l(h.agentErrors):l,d=Date.now()-6e4,f=u.filter(p=>new Date(p.timestamp).getTime()>d).slice(-5);return{agentErrors:u,recentErrors:f}})},setSessionState:l=>e(h=>({sessionState:typeof l=="function"?l(h.sessionState):l})),setSpawnedAgents:l=>e(h=>({spawnedAgents:typeof l=="function"?l(h.spawnedAgents):l})),setAgentRelays:l=>e(h=>({agentRelays:typeof l=="function"?l(h.agentRelays):l})),setSettings:l=>e({settings:l}),setPipelineDraft:l=>e({pipelineDraft:l}),setActiveBuild:l=>e(h=>({activeBuild:typeof l=="function"?l(h.activeBuild):l})),setSessions:l=>e(h=>({sessions:typeof l=="function"?l(h.sessions):l})),setFeatureTimeline:l=>e(h=>({featureTimeline:typeof l=="function"?l(h.featureTimeline):l})),setIterationStates:l=>e(h=>({iterationStates:typeof l=="function"?l(h.iterationStates):l})),appendDecisionEvent:l=>e(h=>!(l!=null&&l.id)||h.decisionEvents.some(u=>u.id===l.id)?h:{decisionEvents:[...h.decisionEvents,l]}),setDecisionEventsSnapshot:l=>e({decisionEvents:Array.isArray(l)?l:[]}),setStatusSnapshot:(l,h)=>e(u=>({statusSnapshots:{...u.statusSnapshots,[l]:h}})),clearStatusSnapshots:()=>e({statusSnapshots:{}}),EMPTY_CHANGES:Ty})}catch{}}function s(){yt.disposed||yt.ws||(yt.ws=IN({url:()=>x1(),onOpen:n,onMessage:i,onClose:()=>e({connected:!1})}))}return Te("/api/session/current").then(o=>o.json()).then(o=>{o.session&&e(a=>a.sessionState?{}:{sessionState:{id:o.session.id,active:!0,startedAt:o.session.startedAt,source:o.session.source||"hydrated",toolCount:o.session.toolCount||0,errorCount:o.session.errorCount||0,summaries:o.session.summaries||[],featureCode:o.session.featureCode||null,featureItemId:o.session.featureItemId||null,phaseAtBind:o.session.phaseAtBind||null,boundAt:o.session.boundAt||null}})}).catch(()=>console.warn("[vision] Failed to hydrate session state")),yt.buildPollInterval=setInterval(()=>{Te("/api/build/state").then(o=>o.json()).then(o=>e({activeBuild:o.state??null})).catch(()=>{})},5e3),yt.recentErrorsInterval=setInterval(()=>{const{agentErrors:o}=t(),a=Date.now()-6e4,l=o.filter(h=>new Date(h.timestamp).getTime()>a).slice(-5);e({recentErrors:l})},1e4),s(),{items:[],connections:[],connected:!1,uiCommand:null,recentChanges:Ty,agentActivity:[],agentErrors:[],recentErrors:[],spawnedAgents:[],agentRelays:[],sessionState:null,gates:[],gateEvent:null,settings:null,pipelineDraft:null,activeBuild:null,iterationStates:new Map,sessions:[],buildHistory:[],featureTimeline:[],selectedPhase:(()=>{try{return localStorage.getItem("compose:selectedPhase")||null}catch{return null}})(),selectedBranches:{},decisionEvents:[],statusSnapshots:{},editorSpecFile:null,editorSpecs:[],editorModel:null,editorVersion:null,editorSelectedFlow:null,editorSelectedStep:null,editorDirty:!1,editorErrors:{errors:[],warningsByStepId:{}},editorReadOnly:!1,editorSpecHash:null,editorSaveScope:"flow",editorConflict:null,editorYamlBuffer:null,editorYamlError:null,clearUICommand:()=>e({uiCommand:null}),setSelectedBranches:(o,a)=>e(l=>({selectedBranches:{...l.selectedBranches,[o]:a}})),setStatusSnapshot:(o,a)=>e(l=>({statusSnapshots:{...l.statusSnapshots,[o]:a}})),clearStatusSnapshots:()=>e({statusSnapshots:{}}),setDecisionEventsSnapshot:o=>e({decisionEvents:Array.isArray(o)?o:[]}),appendDecisionEvent:o=>e(a=>!(o!=null&&o.id)||a.decisionEvents.some(l=>l.id===o.id)?a:{decisionEvents:[...a.decisionEvents,o]}),registerSnapshotProvider:o=>{yt.snapshotProvider=o},setActiveBuild:o=>e({activeBuild:o}),setBuildHistory:o=>e({buildHistory:Array.isArray(o)?o:[]}),fetchBuildHistory:async()=>{try{const a=await(await Te("/api/builds")).json();e({buildHistory:Array.isArray(a.builds)?a.builds:[]})}catch{e({buildHistory:[]})}},setPipelineDraft:o=>e({pipelineDraft:o}),_revalidateEditor:()=>{const{editorModel:o,editorSelectedFlow:a,editorSaveScope:l}=t();if(!o||!a){e({editorErrors:{errors:[],warningsByStepId:{}}});return}if(l==="spec"){const h=$c(o._doc);e({editorErrors:Sy(o,h,a)});return}e({editorErrors:Wf(o,a)})},loadSpecList:async()=>{const o=await r("/api/pipeline/specs"),a=Array.isArray(o==null?void 0:o.specs)?o.specs:[];return e({editorSpecs:a}),a},loadSpecForEdit:async o=>{const a=await r(`/api/pipeline/spec?file=${encodeURIComponent(o)}`);if(a!=null&&a.error||typeof(a==null?void 0:a.text)!="string")return e({editorErrors:{errors:[(a==null?void 0:a.error)||"Failed to load spec"],warningsByStepId:{}}}),null;const l=qf.parse(a.text),h=wy(l),d=$c(l)[0]||null,f=kO(h.version);return e({editorSpecFile:o,editorModel:h,editorVersion:h.version??null,editorSelectedFlow:d,editorSelectedStep:null,editorDirty:!1,editorReadOnly:f,editorErrors:d?Wf(h,d):{errors:[],warningsByStepId:{}},editorSpecHash:typeof a.hash=="string"?a.hash:null,editorSaveScope:"flow",editorConflict:null,editorYamlBuffer:null,editorYamlError:null}),h},selectFlow:o=>{e({editorSelectedFlow:o,editorSelectedStep:null}),t()._revalidateEditor()},selectStep:o=>e({editorSelectedStep:o}),updateStep:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();if(!l||!h||u)return;const f=Yn(l,h).find(p=>p.id===o);f&&(Object.assign(f,a),e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor())},renameStep:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorSelectedStep:u,editorReadOnly:d}=t();!l||!h||d||!a||o===a||(rO(l,h,o,a),e({editorModel:hr(l),editorDirty:!0,editorSelectedStep:u===o?a:u}),t()._revalidateEditor())},addStep:()=>{const{editorModel:o,editorSelectedFlow:a,editorReadOnly:l}=t();if(!o||!a||l)return null;const h=o.flows.find(f=>f.name===a);if(!h)return null;const u=CO(h.steps),d={id:u,kind:"agent",agent:"",function:void 0,intent:"",inputs:{},output_contract:void 0,ensure:[],retries:void 0,depends_on:[],on_fail:void 0,_extra:{}};return h.steps.push(d),e({editorModel:hr(o),editorDirty:!0,editorSelectedStep:u}),t()._revalidateEditor(),u},deleteStep:o=>{const{editorModel:a,editorSelectedFlow:l,editorSelectedStep:h,editorReadOnly:u}=t();if(!a||!l||u)return!1;const d=zC(a,l,o);return d.ok?(nO(a,l,o),e({editorModel:hr(a),editorDirty:!0,editorSelectedStep:h===o?null:h}),t()._revalidateEditor(),!0):(e(f=>{var p,m,x;return{editorErrors:{errors:[d.reason,...((p=f.editorErrors)==null?void 0:p.errors)||[]],warningsByStepId:{...((m=f.editorErrors)==null?void 0:m.warningsByStepId)||{},[o]:[d.reason,...(((x=f.editorErrors)==null?void 0:x.warningsByStepId)||{})[o]||[]]}}}}),!1)},saveSpec:async({force:o=!1}={})=>{var b;const{editorModel:a,editorSpecFile:l,editorSelectedFlow:h,editorReadOnly:u,editorSaveScope:d,editorSpecHash:f,editorYamlBuffer:p,editorYamlError:m,editorErrors:x}=t();if(!a||!l||u)return{error:"No editable spec loaded"};if(p!=null||m){const w="Resolve the YAML pane (let it parse) before saving";return t()._surfaceEditorError(w),{error:w}}if((((b=x==null?void 0:x.errors)==null?void 0:b.length)||0)>0)return{error:"Resolve validation errors before saving"};const g={file:l,model:a};d!=="spec"&&(g.flowName=h),f!=null&&(g.baseHash=f),o&&(g.force=!0);const y=await Te("/api/pipeline/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});let k;try{k=await y.json()}catch{k={}}if(y.status===409||k!=null&&k.conflict)return e({editorConflict:{currentHash:(k==null?void 0:k.currentHash)??null}}),{error:(k==null?void 0:k.error)||"Spec changed on disk",conflict:!0,currentHash:k==null?void 0:k.currentHash};if(!y.ok)return{error:(k==null?void 0:k.error)||`HTTP ${y.status}`};if(k&&k.ok){if(d==="spec")for(const w of a.flows)for(const T of w.steps)delete T._renamedFrom;else{const w=a.flows.find(T=>T.name===h);if(w)for(const T of w.steps)delete T._renamedFrom}e({editorModel:hr(a),editorDirty:!1,editorSpecHash:typeof k.hash=="string"?k.hash:t().editorSpecHash,editorSaveScope:"flow",editorConflict:null})}return k},setYamlBuffer:o=>e({editorYamlBuffer:o,editorYamlError:null}),flushYaml:()=>{const{editorModel:o,editorYamlBuffer:a,editorReadOnly:l,editorSelectedFlow:h}=t();if(o==null||l||a==null)return!1;let u;try{u=qf.parse(a)}catch(m){const x=`YAML parse error: ${(m==null?void 0:m.message)||m}`;return e({editorYamlError:x}),t()._surfaceEditorError(x),!1}const d=wy(u),f=$c(d._doc),p=f.includes(h)?h:f[0]||null;return e({editorModel:hr(d),editorSelectedFlow:p,editorDirty:!0,editorSaveScope:"spec",editorYamlBuffer:null,editorYamlError:null,editorErrors:Sy(d,f,p)}),!0},resolveConflict:async o=>{const{editorSpecFile:a}=t();return o==="reload"?a?t().loadSpecForEdit(a):null:o==="overwrite"?await t().saveSpec({force:!0}):{error:`Unknown conflict resolution "${o}"`}},collapseSelectedToSubflow:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();if(!l||!h||u)return!1;const d=bO(l,h,o,a);return d.ok?(e({editorModel:hr(l),editorDirty:!0,editorSaveScope:"spec",editorSelectedStep:null}),t()._revalidateEditor(),!0):(t()._surfaceEditorError(d.reason||"Cannot collapse the selected steps"),!1)},expandSubflow:o=>{o&&t().selectFlow(o)},handleSpecChanged:({currentHash:o}={})=>{const{editorSpecFile:a,editorDirty:l,editorYamlBuffer:h,editorYamlError:u}=t();if(!a)return;if(!l&&h==null&&!u)return t().loadSpecForEdit(a);e({editorConflict:{currentHash:o??null}})},_surfaceEditorError:(o,a)=>{e(l=>{var d,f;const h=((d=l.editorErrors)==null?void 0:d.warningsByStepId)||{},u=a?{...h,[a]:[o,...h[a]||[]]}:h;return{editorErrors:{errors:[o,...((f=l.editorErrors)==null?void 0:f.errors)||[]],warningsByStepId:u}}})},addDependency:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();return!l||!h||u?!1:oO(l,h,o,a)?(t()._surfaceEditorError(`Cannot add dependency "${o}" → "${a}": would create a cycle`,o),!1):iO(l,h,o,a)?(e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0):(t()._surfaceEditorError(`Cannot add dependency "${o}" → "${a}": invalid (self-edge, duplicate, or missing step)`,o),!1)},removeDependency:(o,a)=>{const{editorModel:l,editorSelectedFlow:h,editorReadOnly:u}=t();return!l||!h||u||!sO(l,h,o,a)?!1:(e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0)},addContract:o=>{const{editorModel:a,editorReadOnly:l}=t();if(!a||l)return!1;try{lO(a,o)}catch(h){return t()._surfaceEditorError(h.message),!1}return e({editorModel:hr(a),editorDirty:!0}),t()._revalidateEditor(),!0},renameContract:(o,a)=>{const{editorModel:l,editorReadOnly:h}=t();if(!l||h||!a||o===a)return!1;try{cO(l,o,a)}catch(u){return t()._surfaceEditorError(u.message),!1}return e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0},deleteContract:o=>{const{editorModel:a,editorReadOnly:l}=t();if(!a||l)return!1;const h=qC(a,o);return h.ok?(hO(a,o),e({editorModel:hr(a),editorDirty:!0}),t()._revalidateEditor(),!0):(t()._surfaceEditorError(h.reason),!1)},setContractField:(o,a,l)=>{const{editorModel:h,editorReadOnly:u}=t();if(!h||u)return!1;try{uO(h,o,a,l)}catch(d){return t()._surfaceEditorError(d.message),!1}return e({editorModel:hr(h),editorDirty:!0}),t()._revalidateEditor(),!0},removeContractField:(o,a)=>{const{editorModel:l,editorReadOnly:h}=t();if(!l||h)return!1;try{dO(l,o,a)}catch(u){return t()._surfaceEditorError(u.message),!1}return e({editorModel:hr(l),editorDirty:!0}),t()._revalidateEditor(),!0},renameContractField:(o,a,l)=>{const{editorModel:h,editorReadOnly:u}=t();if(!h||u||!l||a===l)return!1;try{fO(h,o,a,l)}catch(d){return t()._surfaceEditorError(d.message),!1}return e({editorModel:hr(h),editorDirty:!0}),t()._revalidateEditor(),!0},saveAsTemplate:async({filename:o,metadata:a})=>{var f;const{editorModel:l,editorErrors:h,editorYamlBuffer:u,editorYamlError:d}=t();return l?u!=null||d?{error:"Resolve the YAML pane (let it parse) before saving as a template"}:(((f=h==null?void 0:h.errors)==null?void 0:f.length)||0)>0?{error:"Resolve validation errors before saving as a template"}:r("/api/pipeline/save-as-template",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({filename:o,model:l,metadata:a})}):{error:"No spec loaded"}},setFeatureTimeline:o=>e(a=>({featureTimeline:typeof o=="function"?o(a.featureTimeline):o})),setSelectedPhase:o=>{e({selectedPhase:o});try{o?localStorage.setItem("compose:selectedPhase",o):localStorage.removeItem("compose:selectedPhase")}catch{}},updateItemPosition:(o,a)=>{e(l=>({items:l.items.map(h=>h.id===o?{...h,position:a}:h)}))},createItem:o=>r("/api/vision/items",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),updateItem:(o,a)=>r(`/api/vision/items/${o}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),deleteItem:o=>r(`/api/vision/items/${o}`,{method:"DELETE"}),createConnection:o=>r("/api/vision/connections",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),deleteConnection:o=>r(`/api/vision/connections/${o}`,{method:"DELETE"}),resolveGate:async(o,a,l)=>{yt.pendingResolveIds.add(o);try{const h=await r(`/api/vision/gates/${o}/resolve`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({outcome:a,comment:l})});return h.error&&yt.pendingResolveIds.delete(o),h}catch{return yt.pendingResolveIds.delete(o),{error:"Network error"}}},updateSettings:o=>r("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)}),resetSettings:o=>r("/api/settings/reset",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(o?{section:o}:{})})}}),vO=DN("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function Tr({className:e,variant:t,...r}){return c.jsx("div",{className:ne(vO({variant:t}),e),...r})}var SO=C.createContext(void 0);function TO(e){const t=C.useContext(SO);return e||t||"ltr"}function _O(e,[t,r]){return Math.min(r,Math.max(t,e))}function jO(e,t){return C.useReducer((r,n)=>t[r][n]??r,e)}var Qm="ScrollArea",[WC]=RN(Qm),[NO,Wr]=WC(Qm),HC=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,type:n="hover",dir:i,scrollHideDelay:s=600,...o}=e,[a,l]=C.useState(null),[h,u]=C.useState(null),[d,f]=C.useState(null),[p,m]=C.useState(null),[x,g]=C.useState(null),[y,k]=C.useState(0),[b,w]=C.useState(0),[T,S]=C.useState(!1),[j,E]=C.useState(!1),B=Lo(t,l),N=TO(i);return c.jsx(NO,{scope:r,type:n,dir:N,scrollHideDelay:s,scrollArea:a,viewport:h,onViewportChange:u,content:d,onContentChange:f,scrollbarX:p,onScrollbarXChange:m,scrollbarXEnabled:T,onScrollbarXEnabledChange:S,scrollbarY:x,onScrollbarYChange:g,scrollbarYEnabled:j,onScrollbarYEnabledChange:E,onCornerWidthChange:k,onCornerHeightChange:w,children:c.jsx(Bo.div,{dir:N,...o,ref:B,style:{position:"relative","--radix-scroll-area-corner-width":y+"px","--radix-scroll-area-corner-height":b+"px",...e.style}})})});HC.displayName=Qm;var UC="ScrollAreaViewport",YC=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,children:n,nonce:i,...s}=e,o=Wr(UC,r),a=C.useRef(null),l=Lo(t,a,o.onViewportChange);return c.jsxs(c.Fragment,{children:[c.jsx(EO,{nonce:i}),c.jsx(Bo.div,{"data-radix-scroll-area-viewport":"",...s,ref:l,style:{overflowX:o.scrollbarXEnabled?"scroll":"hidden",overflowY:o.scrollbarYEnabled?"scroll":"hidden",...e.style},children:c.jsx("div",{ref:o.onContentChange,style:{minWidth:"100%",display:"table"},children:n})})]})});YC.displayName=UC;var EO=C.memo(({nonce:e})=>c.jsx("style",{dangerouslySetInnerHTML:{__html:"[data-radix-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-scroll-area-viewport]::-webkit-scrollbar{display:none}"},nonce:e}),(e,t)=>e.nonce===t.nonce),wn="ScrollAreaScrollbar",Jm=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=Wr(wn,e.__scopeScrollArea),{onScrollbarXEnabledChange:s,onScrollbarYEnabledChange:o}=i,a=e.orientation==="horizontal";return C.useEffect(()=>(a?s(!0):o(!0),()=>{a?s(!1):o(!1)}),[a,s,o]),i.type==="hover"?c.jsx(LO,{...n,ref:t,forceMount:r}):i.type==="scroll"?c.jsx(BO,{...n,ref:t,forceMount:r}):i.type==="auto"?c.jsx(VC,{...n,ref:t,forceMount:r}):i.type==="always"?c.jsx(Zm,{...n,ref:t,"data-state":"visible"}):null});Jm.displayName=wn;var LO=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=Wr(wn,e.__scopeScrollArea),[s,o]=C.useState(!1);return C.useEffect(()=>{const a=i.scrollArea;let l=0;if(a){const h=()=>{window.clearTimeout(l),o(!0)},u=()=>{l=window.setTimeout(()=>o(!1),i.scrollHideDelay)};return a.addEventListener("pointerenter",h),a.addEventListener("pointerleave",u),()=>{window.clearTimeout(l),a.removeEventListener("pointerenter",h),a.removeEventListener("pointerleave",u)}}},[i.scrollArea,i.scrollHideDelay]),c.jsx(ru,{present:r||s,children:c.jsx(VC,{"data-state":s?"visible":"hidden",...n,ref:t})})}),BO=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=Wr(wn,e.__scopeScrollArea),s=e.orientation==="horizontal",o=_u(()=>l("SCROLL_END"),100),[a,l]=jO("hidden",{hidden:{SCROLL:"scrolling"},scrolling:{SCROLL_END:"idle",POINTER_ENTER:"interacting"},interacting:{SCROLL:"interacting",POINTER_LEAVE:"idle"},idle:{HIDE:"hidden",SCROLL:"scrolling",POINTER_ENTER:"interacting"}});return C.useEffect(()=>{if(a==="idle"){const h=window.setTimeout(()=>l("HIDE"),i.scrollHideDelay);return()=>window.clearTimeout(h)}},[a,i.scrollHideDelay,l]),C.useEffect(()=>{const h=i.viewport,u=s?"scrollLeft":"scrollTop";if(h){let d=h[u];const f=()=>{const p=h[u];d!==p&&(l("SCROLL"),o()),d=p};return h.addEventListener("scroll",f),()=>h.removeEventListener("scroll",f)}},[i.viewport,s,l,o]),c.jsx(ru,{present:r||a!=="hidden",children:c.jsx(Zm,{"data-state":a==="hidden"?"hidden":"visible",...n,ref:t,onPointerEnter:zi(e.onPointerEnter,()=>l("POINTER_ENTER")),onPointerLeave:zi(e.onPointerLeave,()=>l("POINTER_LEAVE"))})})}),VC=C.forwardRef((e,t)=>{const r=Wr(wn,e.__scopeScrollArea),{forceMount:n,...i}=e,[s,o]=C.useState(!1),a=e.orientation==="horizontal",l=_u(()=>{if(r.viewport){const h=r.viewport.offsetWidth<r.viewport.scrollWidth,u=r.viewport.offsetHeight<r.viewport.scrollHeight;o(a?h:u)}},10);return ko(r.viewport,l),ko(r.content,l),c.jsx(ru,{present:n||s,children:c.jsx(Zm,{"data-state":s?"visible":"hidden",...i,ref:t})})}),Zm=C.forwardRef((e,t)=>{const{orientation:r="vertical",...n}=e,i=Wr(wn,e.__scopeScrollArea),s=C.useRef(null),o=C.useRef(0),[a,l]=C.useState({content:0,viewport:0,scrollbar:{size:0,paddingStart:0,paddingEnd:0}}),h=JC(a.viewport,a.content),u={...n,sizes:a,onSizesChange:l,hasThumb:h>0&&h<1,onThumbChange:f=>s.current=f,onThumbPointerUp:()=>o.current=0,onThumbPointerDown:f=>o.current=f};function d(f,p){return $O(f,o.current,a,p)}return r==="horizontal"?c.jsx(AO,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&s.current){const f=i.viewport.scrollLeft,p=_y(f,a,i.dir);s.current.style.transform=`translate3d(${p}px, 0, 0)`}},onWheelScroll:f=>{i.viewport&&(i.viewport.scrollLeft=f)},onDragScroll:f=>{i.viewport&&(i.viewport.scrollLeft=d(f,i.dir))}}):r==="vertical"?c.jsx(MO,{...u,ref:t,onThumbPositionChange:()=>{if(i.viewport&&s.current){const f=i.viewport.scrollTop,p=_y(f,a);s.current.style.transform=`translate3d(0, ${p}px, 0)`}},onWheelScroll:f=>{i.viewport&&(i.viewport.scrollTop=f)},onDragScroll:f=>{i.viewport&&(i.viewport.scrollTop=d(f))}}):null}),AO=C.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...i}=e,s=Wr(wn,e.__scopeScrollArea),[o,a]=C.useState(),l=C.useRef(null),h=Lo(t,l,s.onScrollbarXChange);return C.useEffect(()=>{l.current&&a(getComputedStyle(l.current))},[l]),c.jsx(XC,{"data-orientation":"horizontal",...i,ref:h,sizes:r,style:{bottom:0,left:s.dir==="rtl"?"var(--radix-scroll-area-corner-width)":0,right:s.dir==="ltr"?"var(--radix-scroll-area-corner-width)":0,"--radix-scroll-area-thumb-width":Tu(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.x),onDragScroll:u=>e.onDragScroll(u.x),onWheelScroll:(u,d)=>{if(s.viewport){const f=s.viewport.scrollLeft+u.deltaX;e.onWheelScroll(f),ew(f,d)&&u.preventDefault()}},onResize:()=>{l.current&&s.viewport&&o&&n({content:s.viewport.scrollWidth,viewport:s.viewport.offsetWidth,scrollbar:{size:l.current.clientWidth,paddingStart:gh(o.paddingLeft),paddingEnd:gh(o.paddingRight)}})}})}),MO=C.forwardRef((e,t)=>{const{sizes:r,onSizesChange:n,...i}=e,s=Wr(wn,e.__scopeScrollArea),[o,a]=C.useState(),l=C.useRef(null),h=Lo(t,l,s.onScrollbarYChange);return C.useEffect(()=>{l.current&&a(getComputedStyle(l.current))},[l]),c.jsx(XC,{"data-orientation":"vertical",...i,ref:h,sizes:r,style:{top:0,right:s.dir==="ltr"?0:void 0,left:s.dir==="rtl"?0:void 0,bottom:"var(--radix-scroll-area-corner-height)","--radix-scroll-area-thumb-height":Tu(r)+"px",...e.style},onThumbPointerDown:u=>e.onThumbPointerDown(u.y),onDragScroll:u=>e.onDragScroll(u.y),onWheelScroll:(u,d)=>{if(s.viewport){const f=s.viewport.scrollTop+u.deltaY;e.onWheelScroll(f),ew(f,d)&&u.preventDefault()}},onResize:()=>{l.current&&s.viewport&&o&&n({content:s.viewport.scrollHeight,viewport:s.viewport.offsetHeight,scrollbar:{size:l.current.clientHeight,paddingStart:gh(o.paddingTop),paddingEnd:gh(o.paddingBottom)}})}})}),[IO,GC]=WC(wn),XC=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,sizes:n,hasThumb:i,onThumbChange:s,onThumbPointerUp:o,onThumbPointerDown:a,onThumbPositionChange:l,onDragScroll:h,onWheelScroll:u,onResize:d,...f}=e,p=Wr(wn,r),[m,x]=C.useState(null),g=Lo(t,x),y=C.useRef(null),k=C.useRef(""),b=p.viewport,w=n.content-n.viewport,T=Mi(u),S=Mi(l),j=_u(d,10);function E(B){if(y.current){const N=B.clientX-y.current.left,I=B.clientY-y.current.top;h({x:N,y:I})}}return C.useEffect(()=>{const B=N=>{const I=N.target;(m==null?void 0:m.contains(I))&&T(N,w)};return document.addEventListener("wheel",B,{passive:!1}),()=>document.removeEventListener("wheel",B,{passive:!1})},[b,m,w,T]),C.useEffect(S,[n,S]),ko(m,j),ko(p.content,j),c.jsx(IO,{scope:r,scrollbar:m,hasThumb:i,onThumbChange:Mi(s),onThumbPointerUp:Mi(o),onThumbPositionChange:S,onThumbPointerDown:Mi(a),children:c.jsx(Bo.div,{...f,ref:g,style:{position:"absolute",...f.style},onPointerDown:zi(e.onPointerDown,B=>{B.button===0&&(B.target.setPointerCapture(B.pointerId),y.current=m.getBoundingClientRect(),k.current=document.body.style.webkitUserSelect,document.body.style.webkitUserSelect="none",p.viewport&&(p.viewport.style.scrollBehavior="auto"),E(B))}),onPointerMove:zi(e.onPointerMove,E),onPointerUp:zi(e.onPointerUp,B=>{const N=B.target;N.hasPointerCapture(B.pointerId)&&N.releasePointerCapture(B.pointerId),document.body.style.webkitUserSelect=k.current,p.viewport&&(p.viewport.style.scrollBehavior=""),y.current=null})})})}),mh="ScrollAreaThumb",KC=C.forwardRef((e,t)=>{const{forceMount:r,...n}=e,i=GC(mh,e.__scopeScrollArea);return c.jsx(ru,{present:r||i.hasThumb,children:c.jsx(FO,{ref:t,...n})})}),FO=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,style:n,...i}=e,s=Wr(mh,r),o=GC(mh,r),{onThumbPositionChange:a}=o,l=Lo(t,o.onThumbChange),h=C.useRef(void 0),u=_u(()=>{h.current&&(h.current(),h.current=void 0)},100);return C.useEffect(()=>{const d=s.viewport;if(d){const f=()=>{if(u(),!h.current){const p=PO(d,a);h.current=p,a()}};return a(),d.addEventListener("scroll",f),()=>d.removeEventListener("scroll",f)}},[s.viewport,u,a]),c.jsx(Bo.div,{"data-state":o.hasThumb?"visible":"hidden",...i,ref:l,style:{width:"var(--radix-scroll-area-thumb-width)",height:"var(--radix-scroll-area-thumb-height)",...n},onPointerDownCapture:zi(e.onPointerDownCapture,d=>{const p=d.target.getBoundingClientRect(),m=d.clientX-p.left,x=d.clientY-p.top;o.onThumbPointerDown({x:m,y:x})}),onPointerUp:zi(e.onPointerUp,o.onThumbPointerUp)})});KC.displayName=mh;var eg="ScrollAreaCorner",QC=C.forwardRef((e,t)=>{const r=Wr(eg,e.__scopeScrollArea),n=!!(r.scrollbarX&&r.scrollbarY);return r.type!=="scroll"&&n?c.jsx(OO,{...e,ref:t}):null});QC.displayName=eg;var OO=C.forwardRef((e,t)=>{const{__scopeScrollArea:r,...n}=e,i=Wr(eg,r),[s,o]=C.useState(0),[a,l]=C.useState(0),h=!!(s&&a),{onCornerWidthChange:u,onCornerHeightChange:d}=i;return ko(i.scrollbarX,()=>{var p;const f=((p=i.scrollbarX)==null?void 0:p.offsetHeight)||0;i.onCornerHeightChange(f),l(f)}),ko(i.scrollbarY,()=>{var p;const f=((p=i.scrollbarY)==null?void 0:p.offsetWidth)||0;i.onCornerWidthChange(f),o(f)}),C.useEffect(()=>()=>{u(0),d(0)},[u,d]),h?c.jsx(Bo.div,{...n,ref:t,style:{width:s,height:a,position:"absolute",right:i.dir==="ltr"?0:void 0,left:i.dir==="rtl"?0:void 0,bottom:0,...e.style}}):null});function gh(e){return e?parseInt(e,10):0}function JC(e,t){const r=e/t;return isNaN(r)?0:r}function Tu(e){const t=JC(e.viewport,e.content),r=e.scrollbar.paddingStart+e.scrollbar.paddingEnd,n=(e.scrollbar.size-r)*t;return Math.max(n,18)}function $O(e,t,r,n="ltr"){const i=Tu(r),s=i/2,o=t||s,a=i-o,l=r.scrollbar.paddingStart+o,h=r.scrollbar.size-r.scrollbar.paddingEnd-a,u=r.content-r.viewport,d=n==="ltr"?[0,u]:[u*-1,0];return ZC([l,h],d)(e)}function _y(e,t,r="ltr"){const n=Tu(t),i=t.scrollbar.paddingStart+t.scrollbar.paddingEnd,s=t.scrollbar.size-i,o=t.content-t.viewport,a=s-n,l=r==="ltr"?[0,o]:[o*-1,0],h=_O(e,l);return ZC([0,o],[0,a])(h)}function ZC(e,t){return r=>{if(e[0]===e[1]||t[0]===t[1])return t[0];const n=(t[1]-t[0])/(e[1]-e[0]);return t[0]+n*(r-e[0])}}function ew(e,t){return e>0&&e<t}var PO=(e,t=()=>{})=>{let r={left:e.scrollLeft,top:e.scrollTop},n=0;return(function i(){const s={left:e.scrollLeft,top:e.scrollTop},o=r.left!==s.left,a=r.top!==s.top;(o||a)&&t(),r=s,n=window.requestAnimationFrame(i)})(),()=>window.cancelAnimationFrame(n)};function _u(e,t){const r=Mi(e),n=C.useRef(0);return C.useEffect(()=>()=>window.clearTimeout(n.current),[]),C.useCallback(()=>{window.clearTimeout(n.current),n.current=window.setTimeout(r,t)},[r,t])}function ko(e,t){const r=Mi(t);zN(()=>{let n=0;if(e){const i=new ResizeObserver(()=>{cancelAnimationFrame(n),n=window.requestAnimationFrame(r)});return i.observe(e),()=>{window.cancelAnimationFrame(n),i.unobserve(e)}}},[e,r])}var tw=HC,DO=YC,RO=QC;const mi=C.forwardRef(({className:e,children:t,...r},n)=>c.jsxs(tw,{ref:n,className:ne("relative overflow-hidden",e),...r,children:[c.jsx(DO,{className:"h-full w-full rounded-[inherit]",children:t}),c.jsx(rw,{}),c.jsx(RO,{})]}));mi.displayName=tw.displayName;const rw=C.forwardRef(({className:e,orientation:t="vertical",...r},n)=>c.jsx(Jm,{ref:n,orientation:t,className:ne("flex touch-none select-none transition-colors",t==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",t==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",e),...r,children:c.jsx(KC,{className:"relative flex-1 rounded-full bg-border"})}));rw.displayName=Jm.displayName;var zO="Separator",jy="horizontal",qO=["horizontal","vertical"],nw=C.forwardRef((e,t)=>{const{decorative:r,orientation:n=jy,...i}=e,s=WO(n)?n:jy,a=r?{role:"none"}:{"aria-orientation":s==="vertical"?s:void 0,role:"separator"};return c.jsx(Bo.div,{"data-orientation":s,...a,...i,ref:t})});nw.displayName=zO;function WO(e){return qO.includes(e)}var iw=nw;const xh=C.forwardRef(({className:e,orientation:t="horizontal",decorative:r=!0,...n},i)=>c.jsx(iw,{ref:i,decorative:r,orientation:t,className:ne("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...n}));xh.displayName=iw.displayName;function HO({agentId:e,status:t}){const[r,n]=C.useState(""),[i,s]=C.useState(""),o=C.useRef(null),a=C.useRef(!1),l=C.useCallback(()=>{const d=o.current;d&&(a.current=d.scrollTop+d.clientHeight<d.scrollHeight-20)},[]);C.useEffect(()=>{const d=o.current;d&&!a.current&&(d.scrollTop=d.scrollHeight)},[r,i]),C.useEffect(()=>{if(!e)return;const d=async()=>{try{const f=await Te(`/api/agent/${e}`);if(!f.ok)return;const p=await f.json();p.output!=null&&n(p.output),p.stderr!=null&&s(p.stderr)}catch{}};if(d(),t==="running"){const f=setInterval(d,2e3);return()=>clearInterval(f)}},[e,t]);const h=!r&&!i,u=t==="running";return c.jsx("div",{children:c.jsx("div",{ref:o,onScroll:l,className:"overflow-auto max-h-[300px] rounded bg-muted/30 p-2",children:h?c.jsx("p",{className:"text-[10px] font-mono text-muted-foreground italic",children:u?"Waiting for output...":"No output"}):c.jsxs(c.Fragment,{children:[r&&c.jsx("pre",{className:"text-[10px] font-mono text-muted-foreground whitespace-pre-wrap break-all m-0",children:r}),i&&c.jsxs("div",{className:"mt-2",children:[c.jsx("span",{className:"text-[10px] font-mono font-medium text-destructive",children:"stderr"}),c.jsx("pre",{className:"text-[10px] font-mono text-destructive whitespace-pre-wrap break-all m-0 mt-0.5",children:i})]})]})})})}const UO=Ve.memo(HO);function YO(e){if(!e)return"";const t=Math.floor((Date.now()-new Date(e).getTime())/1e3);return t<5?"now":t<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:`${Math.floor(t/3600)}h ago`}function VO({agentId:e,relays:t}){const r=C.useMemo(()=>!t||!e?[]:t.filter(n=>n.fromAgentId===e||n.toAgentId===e),[t,e]);return r.length===0?null:c.jsxs("div",{children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--muted-foreground))"},children:"Relays"}),c.jsx("div",{className:"space-y-0.5",children:r.map((n,i)=>{const s=n.direction==="result";return c.jsxs("div",{className:"flex items-start gap-1 text-[10px] font-mono",children:[c.jsx("span",{className:s?"text-foreground shrink-0":"text-muted-foreground shrink-0",children:s?"→":"←"}),c.jsx("span",{className:s?"text-foreground truncate":"text-muted-foreground truncate",title:n.messagePreview,children:n.messagePreview}),c.jsx("span",{className:"text-muted-foreground opacity-50 ml-auto shrink-0 tabular-nums",children:YO(n.timestamp)})]},n.id||i)})})]})}const GO=Ve.memo(VO),XO={reading:"Reading",writing:"Writing",executing:"Running",searching:"Searching",fetching:"Fetching",delegating:"Delegating",thinking:"Thinking"},Ny={build_error:"Build",test_failure:"Test",lint_error:"Lint",git_conflict:"Conflict",permission_error:"Permission",not_found:"Not Found",runtime_error:"Error"};function Ld(e){if(!e||e<1e3)return"<1s";const t=Math.floor(e/1e3);return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}const KO=Ve.memo(function({startedAt:t,active:r,duration:n}){const[,i]=Ve.useState(0);Ve.useEffect(()=>{if(!r)return;const l=setInterval(()=>i(h=>h+1),1e3);return()=>clearInterval(l)},[r]);const s=r?Math.floor((Date.now()-new Date(t).getTime())/1e3):n||0,o=Math.floor(s/60),a=s%60;return c.jsxs("span",{className:"tabular-nums",children:[o,"m ",String(a).padStart(2,"0"),"s"]})});function QO({agentActivity:e,agentErrors:t,sessionState:r,onSelectItem:n,spawnedAgents:i,agentRelays:s,onStopAgent:o}){var x,g,y,k;const[a,l]=Ve.useState(null),[h,u]=Ve.useState({status:"idle",tool:null,category:null,activityLog:[],currentActivity:null}),[,d]=Ve.useState(0),[f,p]=Ve.useState([]),m=Ve.useRef(null);return Ve.useEffect(()=>{const b=w=>u(w.detail);return window.addEventListener("compose:agent-status",b),()=>window.removeEventListener("compose:agent-status",b)},[]),Ve.useEffect(()=>{if(h.status!=="working")return;const b=setInterval(()=>d(w=>w+1),1e3);return()=>clearInterval(b)},[h.status]),Ve.useEffect(()=>{if(!e||e.length===0)return;const b=e[e.length-1];Array.isArray(b.items)&&b.items.length>0&&(p(b.items),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>p([]),3e4))},[e]),Ve.useEffect(()=>()=>{m.current&&clearTimeout(m.current)},[]),c.jsxs(c.Fragment,{children:[i&&i.length>0&&c.jsxs("div",{className:"flex items-center gap-0.5 mb-1.5 overflow-x-auto px-3",children:[c.jsx("button",{onClick:()=>l(null),className:ne("text-[10px] px-2 py-0.5 rounded cursor-pointer transition-colors border shrink-0",a?"bg-transparent text-muted-foreground border-border hover:text-foreground":"bg-primary text-primary-foreground border-primary"),children:"Session"}),i.map(b=>c.jsxs("span",{className:"flex items-center gap-0 shrink-0",children:[c.jsxs("button",{onClick:()=>l(b.agentId),className:ne("text-[10px] px-2 py-0.5 rounded-l cursor-pointer transition-colors border flex items-center gap-1 shrink-0",a===b.agentId?"bg-primary text-primary-foreground border-primary":"bg-transparent text-muted-foreground border-border hover:text-foreground"),children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:b.status==="killed"?"hsl(var(--destructive))":b.silent?"hsl(45 93% 47%)":b.status==="running"?"hsl(var(--success))":b.status==="complete"?"hsl(142 71% 45%)":"hsl(var(--destructive))",animation:b.status==="running"&&!b.silent?"phase-active-pulse 2s ease-in-out infinite":"none"}}),b.agentType,b.silent&&c.jsx("span",{className:"text-[8px] text-yellow-500 ml-0.5",title:"Agent silent",children:"!"})]}),b.status==="running"&&o&&c.jsx("button",{onClick:w=>{w.stopPropagation(),o(b.agentId)},className:"text-[10px] px-1 py-0.5 rounded-r border border-l-0 border-border hover:bg-destructive/20 hover:text-destructive cursor-pointer transition-colors",title:"Stop agent",children:"x"})]},b.agentId))]}),a?c.jsxs("div",{className:"px-3 pb-2 space-y-2",children:[c.jsx(UO,{agentId:a,status:(x=i.find(b=>b.agentId===a))==null?void 0:x.status}),c.jsx(GO,{agentId:a,relays:s})]}):c.jsxs(c.Fragment,{children:[(r==null?void 0:r.featureCode)&&c.jsxs("div",{className:"px-3 py-1.5 mb-1 rounded bg-muted/50",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",children:[c.jsx("span",{className:"text-muted-foreground",children:"Working on"}),c.jsx("button",{className:"font-medium text-foreground hover:underline",onClick:()=>r.featureItemId&&(n==null?void 0:n(r.featureItemId)),children:r.featureCode})]}),r.phaseAtBind&&c.jsxs("div",{className:"text-[10px] text-muted-foreground mt-0.5",children:["Phase: ",r.phaseAtBind.replace(/_/g," ")]})]}),r&&c.jsxs("div",{className:"px-3 pb-1",children:[c.jsxs("div",{className:"flex items-center gap-1.5 text-[10px]",style:{color:"hsl(var(--muted-foreground))"},children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:r.active?"hsl(var(--primary))":"hsl(var(--success))"}}),c.jsx(KO,{startedAt:r.startedAt,active:r.active,duration:r.duration}),c.jsxs("span",{className:"tabular-nums",children:[r.toolCount||0," tools"]}),r.errorCount>0&&c.jsxs("span",{style:{color:"hsl(var(--destructive))"},children:[r.errorCount," err"]}),!r.active&&r.journalSpawned&&c.jsx("span",{style:{color:"hsl(var(--primary))"},children:"journal"})]}),((g=r.summaries)==null?void 0:g.length)>0&&c.jsx("p",{className:"text-[10px] mt-0.5 truncate",style:{color:"hsl(var(--muted-foreground))",opacity:.7},title:(y=r.summaries[r.summaries.length-1])==null?void 0:y.summary,children:(k=r.summaries[r.summaries.length-1])==null?void 0:k.summary})]}),c.jsx("div",{className:"px-3 pb-2",children:c.jsxs("div",{className:"rounded-md p-2",style:{background:"hsl(var(--accent))"},children:[c.jsxs("div",{className:"flex items-center gap-1.5 mb-1",children:[c.jsx("div",{className:"w-1.5 h-1.5 rounded-full flex-shrink-0",style:{background:h.status==="working"?"var(--color-category-writing)":"hsl(var(--success))",animation:h.status==="working"?"pulse 1.5s ease-in-out infinite":"none"}}),c.jsx("span",{className:"text-[10px] font-medium uppercase tracking-wider",style:{color:h.status==="working"?"var(--color-category-writing)":"hsl(var(--muted-foreground))"},children:h.status==="working"?XO[h.category]||"Working":"Idle"}),h.status==="working"&&h.tool&&c.jsx("span",{className:"text-[10px] tracking-wider",style:{color:"hsl(var(--muted-foreground))"},children:h.tool}),h.status==="working"&&h.currentActivity&&c.jsx("span",{className:"text-[10px] tabular-nums ml-auto",style:{color:"hsl(var(--muted-foreground))",opacity:.6},children:Ld(Date.now()-h.currentActivity.startTime)})]}),h.activityLog&&h.activityLog.length>0&&c.jsx("div",{className:"flex items-center gap-0.5 mt-1",children:h.activityLog.slice(-6).map((b,w,T)=>c.jsx("div",{className:"h-1 rounded-full",title:`${b.tool||"thinking"} — ${Ld(b.duration)}`,style:{width:Math.max(4,Math.min(16,(b.duration||0)/1e3*2)),background:mx[b.category]||(h.status==="working"?"var(--color-category-writing)":"hsl(var(--success))"),opacity:.2+w/T.length*.6}},w))}),e&&e.length>0&&c.jsx("div",{className:"mt-1.5 space-y-0.5",children:e.slice(-4).map((b,w)=>c.jsxs("div",{className:"flex items-center gap-1 text-[10px]",style:{color:b.error?"hsl(var(--destructive))":"hsl(var(--muted-foreground))"},children:[b.error&&c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:"hsl(var(--destructive))"}}),c.jsx("span",{className:"font-medium shrink-0",children:b.tool}),b.category&&!b.error&&c.jsx("span",{className:"shrink-0 opacity-50",style:{color:mx[b.category]},children:b.category}),b.error?c.jsx("span",{className:"truncate",title:b.error.type,children:Ny[b.error.type]||b.error.type}):b.detail?c.jsx("span",{className:"truncate opacity-60",title:b.detail,children:b.detail.split("/").pop()}):null]},w))}),f.length>0&&c.jsxs("div",{className:"mt-1.5",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--muted-foreground))"},children:"Working on"}),f.slice(0,3).map(b=>c.jsxs("div",{className:"flex items-center gap-1 text-[10px] py-0.5",style:{color:"hsl(var(--muted-foreground))"},children:[c.jsx("span",{children:b.status==="in_progress"?"◆":"◇"}),c.jsx("span",{className:"truncate",children:b.title})]},b.id))]}),t&&t.length>0&&c.jsxs("div",{className:"mt-1.5",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--destructive))"},children:"Errors"}),t.slice(-3).map((b,w)=>c.jsxs("div",{className:"flex items-center gap-1 text-[10px] py-0.5",style:{color:"hsl(var(--destructive))"},children:[c.jsx("span",{className:"font-medium shrink-0",children:Ny[b.errorType]||b.errorType}),c.jsx("span",{className:"truncate opacity-70",title:b.message,children:b.message})]},w))]}),i&&i.length>0&&c.jsxs("div",{className:"mt-1.5",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider mb-0.5",style:{color:"hsl(var(--muted-foreground))"},children:"Subagents"}),i.map(b=>c.jsxs("div",{className:"flex items-center gap-1.5 text-[10px] py-0.5",style:{color:"hsl(var(--muted-foreground))"},children:[c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:b.status==="running"?"var(--color-category-executing)":b.status==="complete"?"hsl(var(--success))":"hsl(var(--destructive))",animation:b.status==="running"?"pulse 1.5s ease-in-out infinite":"none"}}),c.jsx("span",{className:"font-medium shrink-0",children:b.agentType}),c.jsx("span",{className:"truncate opacity-60",children:b.status}),c.jsx("span",{className:"tabular-nums ml-auto opacity-50",children:Ld(Date.now()-new Date(b.startedAt).getTime())})]},b.agentId))]})]})})]})]})}const JO=Ve.memo(QO),Ha={DECISION:1,PENDING_GATE:2,BLOCKED:3};function sw(e,t){const r=new Set((t||[]).filter(s=>s.status==="pending").map(s=>s.itemId)),n=new Map,i=(s,o,a)=>{const l=n.get(s.id);(!l||o>l.priority)&&n.set(s.id,{item:s,priority:o,reason:a})};for(const s of e||[])s.status==="blocked"&&i(s,Ha.BLOCKED,"Blocked"),r.has(s.id)&&i(s,Ha.PENDING_GATE,"Pending gate"),s.type==="decision"&&s.status!=="complete"&&s.status!=="killed"&&s.status!=="parked"&&i(s,Ha.DECISION,"Open decision");return Array.from(n.values()).sort((s,o)=>o.priority-s.priority)}function ZO(e){if(!e)return{isRunning:!1,pct:0,stepLabel:"",featureCode:"",stepNum:0,totalSteps:0,status:""};const{currentStepId:t,stepNum:r,totalSteps:n,status:i,featureCode:s}=e,o=i==="running",a=n>0?r/n*100:0,l=Math.min(100,Math.max(0,Math.round(a))),h=t?t.charAt(0).toUpperCase()+t.slice(1).replace(/_/g," "):"";return{isRunning:o,pct:l,stepLabel:h,featureCode:s||"",stepNum:r??0,totalSteps:n??0,status:i||""}}function ow(e,t){const r=e||[],n=t||[];let i=0,s=0,o=0;for(const l of r)l.status==="in_progress"&&i++,l.status==="blocked"&&s++;const a=n.filter(l=>l.status==="pending"||l.status==="awaiting").length;return o=sw(r,n).length,{total:r.length,inProgress:i,blocked:s,pendingGates:a,attentionCount:o}}function e$(e,t){return e&&e===t?null:t}const t$={planned:{bg:"bg-slate-500/15",text:"text-slate-400",dot:"bg-slate-400"},ready:{bg:"bg-sky-500/15",text:"text-sky-400",dot:"bg-sky-400"},in_progress:{bg:"bg-blue-500/15",text:"text-blue-400",dot:"bg-blue-400"},review:{bg:"bg-amber-500/15",text:"text-amber-400",dot:"bg-amber-400"},complete:{bg:"bg-emerald-500/15",text:"text-emerald-400",dot:"bg-emerald-400"},blocked:{bg:"bg-rose-500/15",text:"text-rose-400",dot:"bg-rose-400"},parked:{bg:"bg-slate-500/15",text:"text-slate-500",dot:"bg-slate-500"},killed:{bg:"bg-slate-500/15",text:"text-slate-600",dot:"bg-slate-600"},pending:{bg:"bg-amber-500/15",text:"text-amber-400",dot:"bg-amber-400"},resolved:{bg:"bg-emerald-500/15",text:"text-emerald-400",dot:"bg-emerald-400"},active:{bg:"bg-blue-500/15",text:"text-blue-400",dot:"bg-blue-400"},completed:{bg:"bg-emerald-500/15",text:"text-emerald-400",dot:"bg-emerald-400"},failed:{bg:"bg-rose-500/15",text:"text-rose-400",dot:"bg-rose-400"},paused:{bg:"bg-amber-500/15",text:"text-amber-400",dot:"bg-amber-400"}},r$={bg:"bg-slate-500/10",text:"text-slate-400",dot:"bg-slate-400"};function tg({status:e,className:t}){const r=t$[e]||r$,n=e?e.replace(/_/g," "):"—";return c.jsxs("span",{className:ne("inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-medium",r.bg,r.text,t),children:[c.jsx("span",{className:ne("w-1 h-1 rounded-full shrink-0",r.dot)}),n]})}const n$={vision:"text-violet-400 bg-violet-500/10 border-violet-500/20",specification:"text-purple-400 bg-purple-500/10 border-purple-500/20",planning:"text-cyan-400 bg-cyan-500/10 border-cyan-500/20",implementation:"text-amber-400 bg-amber-500/10 border-amber-500/20",verification:"text-emerald-400 bg-emerald-500/10 border-emerald-500/20",release:"text-green-400 bg-green-500/10 border-green-500/20"},i$="text-slate-400 bg-slate-500/10 border-slate-500/20";function s$({phase:e,className:t}){const r=n$[e]||i$;return c.jsx("span",{className:ne("inline-flex items-center px-2 py-0.5 rounded-full border text-xs font-mono",r,t),children:e||"—"})}async function Zn(e,t={}){const r=await Te(e,t),n=await r.json();if(!r.ok)throw new Error(n.error||`HTTP ${r.status}`);return n}let Bd=null;function aw(e){if(Bd)return;const t=new WebSocket(x1());Bd=t,t.onmessage=r=>{try{const n=JSON.parse(r.data);n.type==="ideaboxUpdated"&&e(n)}catch{}},t.onclose=()=>{Bd=null,setTimeout(()=>{aw(e)},3e3)},t.onerror=()=>{}}const Co=Im((e,t)=>(setTimeout(()=>t().hydrate(),0),setTimeout(()=>{aw(()=>{t().hydrate()})},500),{ideas:[],killed:[],loading:!1,error:null,selectedIdeaId:null,filters:{tag:"",status:"",priority:"",search:""},hydrate:async()=>{e({loading:!0,error:null});try{const r=await Zn("/api/ideabox");e({ideas:r.ideas||[],killed:r.killed||[],loading:!1})}catch(r){e({error:r.message,loading:!1})}},addIdea:async r=>{const n=await Zn("/api/ideabox/ideas",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r)});return await t().hydrate(),n},promoteIdea:async(r,n="")=>{const i=await Zn(`/api/ideabox/ideas/${r}/promote`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({featureCode:n})});return await t().hydrate(),i},killIdea:async(r,n="")=>{const i=await Zn(`/api/ideabox/ideas/${r}/kill`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({reason:n})});return await t().hydrate(),i},setPriority:async(r,n)=>{const i=await Zn(`/api/ideabox/ideas/${r}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:n})});return e(s=>({ideas:s.ideas.map(o=>o.id===r?{...o,priority:n}:o)})),i},resurrectIdea:async r=>{const n=await Zn(`/api/ideabox/ideas/${encodeURIComponent(r)}/resurrect`,{method:"POST"});return await t().hydrate(),n},addDiscussion:async(r,n,i)=>{const s=await Zn(`/api/ideabox/ideas/${encodeURIComponent(r)}/discuss`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({author:n,text:i})});return await t().hydrate(),s},updateIdea:async(r,n)=>{const i=await Zn(`/api/ideabox/ideas/${encodeURIComponent(r)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});return await t().hydrate(),i},setSelectedIdea:r=>e({selectedIdeaId:r}),updateFilters:r=>e(n=>({filters:{...n.filters,...r}})),clearFilters:()=>e({filters:{tag:"",status:"",priority:"",search:""}})}));function o$({activeBuild:e}){const t=ZO(e);if(!e)return null;const r=t.isRunning?"hsl(var(--primary))":t.status==="complete"?"hsl(var(--success))":t.status==="failed"||t.status==="killed"?"hsl(var(--destructive))":"hsl(var(--muted-foreground))";return c.jsxs("div",{className:"mx-3 mb-2 rounded-md p-2",style:{background:"hsl(var(--accent))"},children:[c.jsxs("div",{className:"flex items-center justify-between mb-1",children:[c.jsxs("div",{className:"flex items-center gap-1.5",children:[c.jsx(th,{className:"h-3 w-3 shrink-0",style:{color:r}}),c.jsx("span",{className:"text-[10px] font-medium truncate max-w-[100px]",style:{color:"hsl(var(--foreground))"},children:t.featureCode||"Build"})]}),c.jsxs("span",{className:"text-[10px] tabular-nums",style:{color:"hsl(var(--muted-foreground))"},children:[t.stepNum,"/",t.totalSteps]})]}),c.jsx("div",{className:"h-1 w-full rounded-full bg-muted overflow-hidden",children:c.jsx("div",{className:"h-full rounded-full transition-all duration-500",style:{width:`${t.pct}%`,background:r}})}),c.jsxs("div",{className:"flex items-center justify-between mt-1",children:[c.jsx("span",{className:"text-[10px]",style:{color:"hsl(var(--muted-foreground))"},children:t.stepLabel}),t.isRunning&&c.jsx("span",{className:"w-1.5 h-1.5 rounded-full shrink-0",style:{background:"hsl(var(--primary))",animation:"pulse 1.5s ease-in-out infinite"}})]})]})}function a$({items:e,gates:t,onSelectItem:r}){const n=Ve.useMemo(()=>sw(e,t),[e,t]),[i,s]=Ve.useState(!1);if(n.length===0)return null;const o=i?n:n.slice(0,5),a=n.length-5,l=h=>h===Ha.BLOCKED?c.jsx(iu,{className:"h-3 w-3 shrink-0",style:{color:"hsl(var(--destructive))"}}):h===Ha.PENDING_GATE?c.jsx(f5,{className:"h-3 w-3 shrink-0",style:{color:"hsl(var(--warning))"}}):c.jsx(JN,{className:"h-3 w-3 shrink-0",style:{color:"hsl(var(--muted-foreground))"}});return c.jsxs("div",{className:"px-2 mb-2",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider px-2 mb-1",style:{color:"hsl(var(--muted-foreground))"},children:"Needs Attention"}),o.map(({item:h,priority:u,reason:d})=>c.jsxs("button",{onClick:()=>r==null?void 0:r(h.id),className:"flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors hover:bg-sidebar-accent/50",style:{color:"hsl(var(--muted-foreground))"},title:d,children:[l(u),c.jsx("span",{className:"truncate flex-1 text-left",children:h.title}),h.phase&&c.jsx(s$,{phase:h.phase,className:"shrink-0 text-[9px] px-1.5 py-0 h-4"}),c.jsx(tg,{status:h.status,className:"shrink-0"})]},h.id)),a>0&&c.jsx("button",{onClick:()=>s(h=>!h),className:"flex w-full items-center px-2 py-0.5 text-[10px] rounded-md hover:bg-sidebar-accent/50 transition-colors",style:{color:"hsl(var(--muted-foreground))"},children:i?"Show less":`+${a} more`})]})}function l$({items:e,gates:t}){const r=Ve.useMemo(()=>ow(e,t),[e,t]);return r.total===0?null:c.jsxs("div",{className:"flex items-center gap-2 flex-wrap px-3 pb-1",children:[c.jsxs("span",{className:"text-xs text-muted-foreground",children:[r.total," items"]}),r.inProgress>0&&c.jsxs("span",{className:"text-xs",style:{color:"hsl(var(--primary))"},children:[r.inProgress," active"]}),r.blocked>0&&c.jsxs("span",{className:"text-xs",style:{color:"hsl(var(--destructive))"},children:[r.blocked," blocked"]}),r.pendingGates>0&&c.jsxs("span",{className:"text-xs",style:{color:"hsl(var(--warning))"},children:[r.pendingGates," ",r.pendingGates===1?"gate":"gates"]})]})}const c$=new Set(["planned","ready","in_progress","review","blocked","parked"]);function h$({items:e,hiddenGroups:t,onToggleGroup:r}){const n=Ve.useMemo(()=>{const i={},s={};for(const o of e){const a=o.title||"";if(a.startsWith("`docs/")||a.startsWith("docs/")||!c$.has(o.status))continue;const l=o.group||"other";i[l]=(i[l]||0)+1,["in_progress","review","ready"].includes(o.status)&&(s[l]=(s[l]||0)+1)}return Object.entries(i).sort((o,a)=>(s[a[0]]||0)-(s[o[0]]||0)||a[1]-o[1]||o[0].localeCompare(a[0])).map(([o,a])=>({group:o,count:a,active:s[o]||0}))},[e]);return n.length<=1?null:c.jsx(c.Fragment,{children:n.map(({group:i,count:s,active:o})=>{const a=t==null?void 0:t.has(i);return c.jsxs("button",{onClick:()=>r==null?void 0:r(i),className:"flex w-full items-center gap-2 rounded-md px-2 py-1 text-sm transition-colors hover:bg-sidebar-accent/50",style:{color:"hsl(var(--muted-foreground))",opacity:a?.4:1,fontWeight:o>0?500:400},children:[c.jsx("span",{className:"truncate flex-1 text-left",children:i}),o>0&&c.jsx("span",{className:"text-[10px] tabular-nums",style:{color:"hsl(var(--primary))"},children:o}),c.jsx("span",{className:"text-[10px] tabular-nums shrink-0",style:{color:"hsl(var(--muted-foreground))"},children:s})]},i)})})}function u$({onViewChange:e}){const t=Co(n=>n.ideas),r=Ve.useMemo(()=>t.filter(n=>!n.priority||n.priority==="—").length,[t]);return r===0?null:c.jsxs("div",{className:"px-2 mb-2",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider px-2 mb-1",style:{color:"hsl(var(--muted-foreground))"},children:"Ideas"}),c.jsxs("button",{onClick:()=>e==null?void 0:e("ideabox"),className:"flex w-full items-center gap-1.5 rounded-md px-2 py-1 text-xs transition-colors hover:bg-sidebar-accent/50",style:{color:"hsl(var(--muted-foreground))"},title:"View untriaged ideas",children:[c.jsx(Yi,{className:"h-3 w-3 shrink-0 text-amber-400"}),c.jsxs("span",{className:"flex-1 text-left",children:[r," untriaged"]})]})]})}function lw({items:e,gates:t,activeBuild:r,onViewChange:n,selectedPhase:i,onPhaseSelect:s,selectedTrack:o,onTrackSelect:a,visibleTracks:l,onToggleVisibleTrack:h,onShowAllTracks:u,hiddenGroups:d,onToggleGroup:f,searchQuery:p,onSearchChange:m,connected:x,agentActivity:g,agentErrors:y,spawnedAgents:k,agentRelays:b,sessionState:w,onSelectItem:T,onStopAgent:S,onThemeChange:j,onNewItem:E,widthPx:B}){const N=e||[],I=t||[],R=Ve.useMemo(()=>ow(N,I),[N,I]),[A,O]=Ve.useState(()=>typeof document<"u"&&document.documentElement.classList.contains("dark"));Ve.useEffect(()=>{if(typeof document>"u")return;const L=new MutationObserver(()=>{O(document.documentElement.classList.contains("dark"))});return L.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>L.disconnect()},[]);const F=Ve.useCallback(()=>{const L=!A,$=L?"dark":"light";typeof document<"u"&&document.documentElement.classList.toggle("dark",L);try{localStorage.setItem("compose:theme",$)}catch{}j&&j({ui:{theme:$}})},[A,j]);return Ve.useCallback(L=>{s&&s(e$(i,L))},[s,i]),c.jsxs("aside",{className:"shrink-0 flex flex-col bg-sidebar border-r border-sidebar-border",style:{width:B??208},children:[c.jsxs("div",{className:"p-3 pb-2",children:[c.jsxs("div",{className:"flex items-center justify-between",children:[c.jsx("h2",{className:"text-sm font-semibold text-sidebar-foreground",children:"Compose"}),c.jsxs("div",{className:"flex items-center gap-1.5",children:[!x&&c.jsx("span",{className:"text-[10px] text-destructive",children:"disconnected"}),E&&c.jsxs("button",{onClick:E,className:"flex items-center gap-1 px-1.5 py-0.5 rounded-md text-xs text-muted-foreground hover:text-foreground bg-sidebar-accent/50 hover:bg-sidebar-accent transition-colors",title:"New item (⌘N)",children:[c.jsx(Rn,{className:"h-3.5 w-3.5"}),c.jsx("span",{children:"New"})]}),c.jsx("button",{onClick:F,className:"p-1 rounded-md text-muted-foreground hover:text-foreground hover:bg-sidebar-accent transition-colors",title:A?"Switch to light mode":"Switch to dark mode",children:A?c.jsx(w5,{className:"h-3.5 w-3.5"}):c.jsx(ZE,{className:"h-3.5 w-3.5"})})]})]}),c.jsx(l$,{items:N,gates:I})]}),c.jsx(o$,{activeBuild:r}),c.jsx(JO,{agentActivity:g,agentErrors:y,sessionState:w,onSelectItem:T,onStopAgent:S,spawnedAgents:k,agentRelays:b}),R.attentionCount>0&&c.jsxs(c.Fragment,{children:[c.jsx(xh,{className:"bg-sidebar-border"}),c.jsx(a$,{items:N,gates:I,onSelectItem:T,onViewChange:n})]}),c.jsx(u$,{onViewChange:n}),c.jsx("div",{className:"px-3 pb-2",children:c.jsxs("div",{className:"relative",children:[c.jsx(Hn,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(nm,{placeholder:"Search...",value:p,onChange:L=>m(L.target.value),className:"h-7 pl-7 text-xs bg-sidebar"})]})}),c.jsx(xh,{className:"bg-sidebar-border"}),c.jsx(mi,{className:"flex-1",children:c.jsxs("div",{className:"p-2",children:[c.jsx("p",{className:"text-[10px] font-medium uppercase tracking-wider px-2 mb-1",style:{color:"hsl(var(--muted-foreground))"},children:"Groups"}),c.jsx(h$,{items:N,hiddenGroups:d,onToggleGroup:f})]})})]})}function d$({level:e,size:t=4}){return c.jsx("div",{className:"flex items-center gap-px",children:[0,1,2,3].map(r=>c.jsx("div",{className:"rounded-full",style:{width:t,height:t,background:r<e?e>=3?"hsl(var(--success))":e>=2?"hsl(var(--accent))":"hsl(var(--destructive))":"transparent",border:`1px solid ${r<e?e>=3?"hsl(var(--success))":e>=2?"hsl(var(--accent))":"hsl(var(--destructive))":"hsl(var(--border))"}`}},r))})}function _l({featureCode:e,active:t,onToggle:r}){return e?c.jsxs("button",{onClick:r,style:{fontSize:11,padding:"3px 9px",borderRadius:4,cursor:"pointer",transition:"all 0.15s",border:`1px solid ${t?"#f59e0b":"#334155"}`,background:t?"#f59e0b20":"#1e293b",color:t?"#f59e0b":"#94a3b8"},children:["Focus: ",e]}):null}function jl({icon:e=$E,title:t,description:r,action:n,onAction:i,className:s}){return c.jsxs("div",{className:ne("flex flex-col items-center justify-center gap-3 p-8 text-center",s),children:[c.jsx("div",{className:"flex items-center justify-center w-12 h-12 rounded-full bg-muted/50",children:c.jsx(e,{className:"w-6 h-6 text-muted-foreground/60"})}),c.jsxs("div",{className:"space-y-1",children:[c.jsx("h3",{className:"text-sm font-medium text-foreground",children:t}),r&&c.jsx("p",{className:"text-xs text-muted-foreground",children:r})]}),n&&c.jsx(Ie,{variant:"outline",size:"sm",onClick:i,children:n})]})}const Ey=[{key:"all",label:"All",statuses:null},{key:"active",label:"Active",statuses:["planned","ready","in_progress","review"]},{key:"done",label:"Done",statuses:["complete"]},{key:"blocked",label:"Blocked",statuses:["blocked","parked"]}],f$=[{key:"all",label:"All"},{key:"feature",label:"Feature"},{key:"task",label:"Task"},{key:"track",label:"Track"}];function Ly({active:e,onClick:t,children:r}){return c.jsx("button",{onClick:t,style:{fontSize:11,padding:"2px 7px",borderRadius:4,cursor:"pointer",transition:"all 0.15s",border:`1px solid ${e?"#3b82f6":"#334155"}`,background:e?"#3b82f6":"#1e293b",color:e?"#fff":"#94a3b8"},children:r})}function cw({item:e,children:t,depth:r,selectedItemId:n,onSelect:i,onToggle:s,expandedIds:o}){const a=t.length>0,l=o.has(e.id),h=n===e.id,u=jr[e.type]||jr.task,d=fi[e.status]||fi.planned,{newIds:f,changedIds:p}=C.useContext(hu),m=f.has(e.id),x=p.has(e.id);return c.jsxs("div",{children:[c.jsxs("div",{"data-item-id":e.id,onClick:()=>i(e.id),className:ne("flex items-center gap-1.5 py-1 px-2 cursor-pointer transition-colors rounded-md","hover:bg-accent/5",h&&"bg-accent/10",m&&"bg-green-500/5 border-l-2 border-l-green-500",x&&!m&&"bg-amber-500/5 border-l-2 border-l-amber-500"),style:{paddingLeft:`${r*20+8}px`},children:[c.jsx("button",{onClick:g=>{g.stopPropagation(),a&&s(e.id)},className:ne("shrink-0 w-4 h-4 flex items-center justify-center rounded",a?"text-muted-foreground hover:text-foreground":"invisible"),children:a&&(l?c.jsx(Mo,{className:"h-3.5 w-3.5"}):c.jsx(Ui,{className:"h-3.5 w-3.5"}))}),c.jsx("div",{className:"w-2 h-2 rounded-full shrink-0",style:{background:d}}),c.jsx("span",{className:"text-[9px] uppercase tracking-wider shrink-0 w-12",style:{color:u},children:e.type}),c.jsx("span",{className:ne("text-sm text-foreground truncate flex-1",e.status==="killed"&&"line-through opacity-50"),children:e.title}),c.jsx(d$,{level:e.confidence||0}),e.phase&&c.jsx(Tr,{variant:"outline",className:"text-[9px] px-1 py-0 h-3.5 shrink-0",children:e.phase})]}),a&&l&&c.jsx("div",{children:t.map(g=>c.jsx(cw,{item:g,children:g._children||[],depth:r+1,selectedItemId:n,onSelect:i,onToggle:s,expandedIds:o},g.id))})]})}function hw({items:e,connections:t,selectedItemId:r,onSelect:n,onCreate:i,onCreateFeature:s,isEmptyProject:o,featureCode:a,focusActive:l,onToggleFocus:h}){const[u,d]=C.useState(()=>new Set),[f,p]=C.useState(""),[m,x]=C.useState("all"),[g,y]=C.useState("all"),k=C.useCallback(j=>{d(E=>{const B=new Set(E);return B.has(j)?B.delete(j):B.add(j),B})},[]),b=C.useMemo(()=>{let j=e;const E=Ey.find(B=>B.key===m);if(E!=null&&E.statuses&&(j=j.filter(B=>E.statuses.includes(B.status||"planned"))),g!=="all"&&(j=j.filter(B=>B.type===g)),f){const B=f.toLowerCase();j=j.filter(N=>(N.title||"").toLowerCase().includes(B)||(N.description||"").toLowerCase().includes(B)||(N.type||"").toLowerCase().includes(B)||(N.phase||"").toLowerCase().includes(B))}return l&&a&&(j=j.filter(B=>{var N;return B.featureCode===a||((N=B.lifecycle)==null?void 0:N.featureCode)===a||(B.title||"").includes(a)})),j},[e,f,m,g,l,a]),w=C.useMemo(()=>{const j=new Set(b.map(R=>R.id)),E=new Map;for(const R of b)E.set(R.id,{...R,_children:[]});const B=new Map;for(const R of t)!j.has(R.fromId)||!j.has(R.toId)||(R.type==="informs"?B.has(R.toId)||B.set(R.toId,R.fromId):(R.type==="supports"||R.type==="blocks")&&(B.has(R.fromId)||B.set(R.fromId,R.toId)));for(const R of e)R.parentId&&E.has(R.parentId)&&B.set(R.id,R.parentId);for(const[R]of B){const A=new Set;let O=R;for(;O&&B.has(O);){if(A.has(O)){B.delete(O);break}A.add(O),O=B.get(O)}}const N=[];for(const R of E.values()){const A=B.get(R.id);A&&E.has(A)?E.get(A)._children.push(R):N.push(R)}const I=R=>{R.sort((A,O)=>(A.confidence||0)-(O.confidence||0));for(const A of R)A._children.length>0&&I(A._children)};return I(N),N},[b,t]);Ve.useEffect(()=>{if(f){const j=new Set,E=B=>{for(const N of B)N._children.length>0&&(j.add(N.id),E(N._children))};E(w),d(j)}else u.size===0&&w.length>0&&d(new Set(w.map(j=>j.id)))},[w,f]),Ve.useEffect(()=>{if(!r||w.length===0)return;const j=[],E=(B,N)=>{for(const I of B){if(I.id===N)return!0;if(I._children.length>0&&E(I._children,N))return j.push(I.id),!0}return!1};E(w,r),j.length>0&&d(B=>{const N=new Set(B);for(const I of j)N.add(I);return N}),requestAnimationFrame(()=>{const B=document.querySelector(`[data-item-id="${r}"]`);B&&B.scrollIntoView({block:"center",behavior:"smooth"})})},[r,w]);const T=C.useCallback(()=>{const j=new Set,E=B=>{for(const N of B)N._children.length>0&&(j.add(N.id),E(N._children))};E(w),d(j)},[w]),S=C.useCallback(()=>{d(new Set)},[]);return w.filter(j=>j._children.length>0).length,c.jsxs("div",{className:"flex-1 flex flex-col min-h-0",children:[c.jsxs("div",{className:"flex items-center gap-2 px-3 py-2 border-b border-border",children:[c.jsx(_l,{featureCode:a,active:l,onToggle:h}),c.jsxs("div",{className:"relative flex-1 max-w-[180px]",children:[c.jsx(Hn,{className:"absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground"}),c.jsx(nm,{placeholder:"Search items...",value:f,onChange:j=>p(j.target.value),className:"h-7 pl-7 pr-7 text-xs"}),f&&c.jsx("button",{onClick:()=>p(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground hover:text-foreground",children:c.jsx(_r,{className:"h-3 w-3"})})]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-[10px] text-muted-foreground mr-0.5",children:"Status:"}),Ey.map(j=>c.jsx(Ly,{active:m===j.key,onClick:()=>x(j.key),children:j.label},j.key))]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx("span",{className:"text-[10px] text-muted-foreground mr-0.5",children:"Type:"}),f$.map(j=>c.jsx(Ly,{active:g===j.key,onClick:()=>y(j.key),children:j.label},j.key))]}),c.jsxs("span",{className:"text-[10px] text-muted-foreground",children:[b.length,f||m!=="all"||g!=="all"?`/${e.length}`:""]}),c.jsx("div",{className:"flex-1"}),c.jsx("button",{onClick:T,className:"text-[10px] px-1.5 py-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-accent/10 transition-colors",children:"Expand"}),c.jsx("button",{onClick:S,className:"text-[10px] px-1.5 py-0.5 rounded text-muted-foreground hover:text-foreground hover:bg-accent/10 transition-colors",children:"Collapse"}),i&&c.jsx("button",{onClick:i,title:"Create item",style:{width:24,height:24,borderRadius:4,border:"1px solid #334155",background:"#1e293b",color:"#94a3b8",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",transition:"all 0.15s"},className:"hover:border-blue-500 hover:text-white",children:c.jsx(Rn,{className:"h-3.5 w-3.5"})})]}),c.jsx(mi,{className:"flex-1",children:c.jsx("div",{className:"py-1",children:w.length===0?o?c.jsx(jl,{icon:Rn,title:"No items yet",description:"Create your first feature to start building in the cockpit.",action:s?"Create your first feature":void 0,onAction:s,className:"py-8"}):c.jsx("div",{className:"flex items-center justify-center py-8 text-sm text-muted-foreground",children:"No items match the current filters"}):w.map(j=>c.jsx(cw,{item:j,children:j._children,depth:0,selectedItemId:r,onSelect:n,onToggle:k,expandedIds:u},j.id))})})]})}try{rs.use(om)}catch{}try{rs.use(HN)}catch{}const yh={planned:"#64748b",ready:"#3b82f6",in_progress:"#fbbf24",review:"#f59e0b",complete:"#22c55e",blocked:"#ef4444",parked:"#6b7280",killed:"#475569"},p$=Object.fromEntries(Object.entries(jr).map(([e,t])=>{const r=parseInt(t.slice(1,3),16),n=parseInt(t.slice(3,5),16),i=parseInt(t.slice(5,7),16),s=[15,23,42],o=.15,a=[Math.round(s[0]*(1-o)+r*o),Math.round(s[1]*(1-o)+n*o),Math.round(s[2]*(1-o)+i*o)];return[e,`#${a.map(l=>l.toString(16).padStart(2,"0")).join("")}`]})),m$=[1,1.5,2,2.5,3],Uf={informs:{color:"#64748b",style:"solid"},supports:{color:"#22c55e",style:"solid"},blocks:{color:"#ef4444",style:"solid"},contradicts:{color:"#f472b6",style:"dashed"},implements:{color:"#a78bfa",style:"solid"}},By=[{key:"all",label:"All",statuses:null},{key:"active",label:"Active",statuses:["planned","ready","in_progress","review"]},{key:"complete",label:"Done",statuses:["complete"]},{key:"blocked",label:"Blocked",statuses:["blocked","parked"]}];function Ea(e){return e.group||"other"}const Ay=/^[A-Z][A-Z0-9]*(?:-[A-Z0-9]+)*[a-z]?$/,Ad=24;function g$(e){if(!e||e.length<=Ad)return e;const t=e.split("-");let r="";for(const n of t){const i=r?r+"-"+n:n;if(i.length>Ad-1)break;r=i}return(r||e.slice(0,Ad-1))+"…"}function x$(e){var i;const t=((i=e.lifecycle)==null?void 0:i.featureCode)||e.featureCode;if(t&&Ay.test(t))return t;if(e.id&&Ay.test(e.id)&&e.id.length<=32)return e.id;const n=(e.title||"").replace(/`/g,"").trim().match(/^([A-Z][A-Z0-9]*(?:-[A-Z0-9]+)*[a-z]?)\b/);return n&&n[1].length>=3?n[1]:e.slug?g$(e.slug):e.id?e.id.slice(0,12):"item"}function My(e,t=18){const r=e.split("-"),n=[];let i="";for(const s of r){const o=i?i+"-"+s:s;o.length>t&&i?(n.push(i),i=s):i=o}return i&&n.push(i),n.join(`
507
507
  `)}function y$(e,t,r,n,i){var h;const s=[],o=new Set(e.map(u=>u.id));let a=null;if(n&&i){a=new Set(e.filter(u=>{var d;return u.featureCode===i||((d=u.lifecycle)==null?void 0:d.featureCode)===i||(u.title||"").startsWith(i)}).map(u=>u.id));for(const u of t)a.has(u.fromId)&&o.has(u.toId)&&a.add(u.toId),a.has(u.toId)&&o.has(u.fromId)&&a.add(u.fromId)}const l=new Set;if(r){const d=[...new Set(e.map(f=>Ea(f)).filter(Boolean))].map(f=>{const p=e.filter(y=>Ea(y)===f),m=p.filter(y=>["blocked","parked"].includes(y.status)).length,x=p.filter(y=>["in_progress","review","ready"].includes(y.status)).length,g=p.filter(y=>y.status==="planned").length;return{group:f,blocked:m,active:x,planned:g,total:p.length}});d.sort((f,p)=>p.active-f.active||p.blocked-f.blocked||p.planned-f.planned||f.group.localeCompare(p.group));for(const{group:f,active:p,total:m}of d){if(m<2)continue;l.add(f);const x=a&&e.some(g=>Ea(g)===f&&a.has(g.id));s.push({data:{id:`group-${f}`,label:`${My(f)}
508
508
  (${p} active, ${m} total)`,isGroup:!0,groupType:f},...a&&!x?{classes:"focus-dimmed"}:{}})}}for(const u of e){const d=u.slug||u.id.slice(0,8),f=My(x$(u),14),p=Ea(u),m=a&&!a.has(u.id);s.push({data:{id:u.id,label:f,itemType:u.type||"task",status:u.status||"planned",phase:u.phase||"vision",confidence:u.confidence??0,title:u.title,description:u.description,slug:d,featureCode:((h=u.lifecycle)==null?void 0:h.featureCode)||u.featureCode||null,group:p||null,...r&&p&&l.has(p)?{parent:`group-${p}`}:{}},...m?{classes:"focus-dimmed"}:{}})}for(const u of t){if(!o.has(u.fromId)||!o.has(u.toId))continue;let d,f;u.type==="supports"||u.type==="blocks"?(d=u.toId,f=u.fromId):(d=u.fromId,f=u.toId);const p=Uf[u.type]||Uf.informs;s.push({data:{id:u.id||`${u.fromId}-${u.toId}`,source:d,target:f,edgeType:u.type,edgeColor:p.color,edgeStyle:p.style}})}return s}function b$(){return[{selector:"[?isGroup]",style:{label:"data(label)","text-valign":"top","text-halign":"center","font-size":"10px","font-weight":600,color:"#64748b","text-transform":"uppercase","letter-spacing":"0.08em","text-wrap":"wrap","text-max-width":"160px","background-color":"#1a2537","border-width":1,"border-color":"#283548","border-style":"solid",padding:"24px","text-margin-y":-4}},{selector:"node[status]",style:{label:"data(label)","text-valign":"center","text-halign":"center","font-size":"9px","font-family":'-apple-system, BlinkMacSystemFont, "Segoe UI", monospace',"font-weight":500,color:"#e2e8f0","text-wrap":"wrap","text-max-width":"130px",width:"150px",height:"60px",shape:"round-rectangle","background-color":"#1e293b","border-style":"solid","border-width":2,"border-color":"#3b82f6"}},...Object.entries(yh).map(([e,t])=>({selector:`node[status="${e}"]`,style:{"border-color":t,...e==="parked"||e==="killed"?{opacity:.7}:{}}})),...Object.entries(p$).map(([e,t])=>({selector:`node[itemType="${e}"]`,style:{"background-color":t}})),...m$.map((e,t)=>({selector:`node[confidence=${t}]`,style:{"border-width":e}})),{selector:"node:selected",style:{"background-color":"#1e3a5f","border-width":3,"border-color":"#60a5fa"}},{selector:"edge",style:{width:1.5,"line-color":"data(edgeColor)","target-arrow-color":"data(edgeColor)","target-arrow-shape":"triangle","arrow-scale":.8,"curve-style":"bezier",opacity:.6}},{selector:'edge[edgeStyle="dashed"]',style:{"line-style":"dashed","line-dash-pattern":[6,3],"target-arrow-shape":"diamond"}},{selector:'edge[edgeType="blocks"]',style:{"target-arrow-shape":"tee"}},{selector:".dimmed",style:{opacity:.35}},{selector:".focus-dimmed",style:{opacity:.15,events:"no"}},{selector:".highlighted",style:{"border-width":3,"border-color":"#60a5fa"}},{selector:".build-building",style:{"border-color":"#3b82f6","border-width":3,"shadow-color":"#3b82f6","shadow-opacity":.6,"shadow-blur":12}},{selector:".build-gate-pending",style:{"border-color":"#f59e0b","border-width":3,"shadow-color":"#f59e0b","shadow-opacity":.5,"shadow-blur":8}},{selector:".build-blocked-downstream",style:{opacity:.35,"border-color":"#94a3b8"}},{selector:".build-error",style:{"border-color":"#ef4444","border-width":3,"shadow-color":"#ef4444","shadow-opacity":.5,"shadow-blur":8}},{selector:"[?isAgentGroup]",style:{label:"data(label)","text-valign":"top","text-halign":"center","font-size":"9px",color:"#64748b","text-transform":"uppercase","background-color":"#0f1a2b","border-width":1,"border-color":"#1e3050","border-style":"dashed",padding:"14px"}},{selector:"[?isAgentNode]",style:{label:"data(label)","text-valign":"center","text-halign":"center","font-size":"8px","font-family":"monospace",color:"#e2e8f0","text-wrap":"wrap","text-max-width":"70px",width:"80px",height:"40px",shape:"diamond","background-color":"#1e293b","border-style":"solid","border-width":2,"border-color":"data(agentColor)"}},{selector:'[agentStatus="complete"]',style:{"border-style":"dashed",opacity:.6}},{selector:'[agentStatus="failed"]',style:{"border-color":"#ef4444","border-style":"dashed",opacity:.6}},{selector:"[?isRelayEdge]",style:{width:1,"line-color":"#475569","line-style":"dashed","line-dash-pattern":[8,4],"target-arrow-color":"#475569","target-arrow-shape":"triangle","arrow-scale":.6,"curve-style":"bezier",opacity:.4}},{selector:".relay-active",style:{width:2,"line-color":"#3b82f6",opacity:.8,"target-arrow-color":"#3b82f6"}},{selector:".relay-result",style:{width:2,"line-color":"#10b981",opacity:.8,"target-arrow-color":"#10b981"}},{selector:".idea-node",style:{label:"data(label)","text-valign":"center","text-halign":"center","font-size":"8px","font-family":"monospace",color:"#fbbf24","text-wrap":"wrap","text-max-width":"70px",width:"70px",height:"70px",shape:"ellipse","background-color":"#451a0310","border-style":"dashed","border-width":1.5,"border-color":"#f59e0b",opacity:.85}},{selector:'edge[edgeType="idea"]',style:{width:1,"line-color":"#f59e0b","line-style":"dashed","line-dash-pattern":[6,3],"target-arrow-color":"#f59e0b","target-arrow-shape":"triangle","arrow-scale":.7,"curve-style":"bezier",opacity:.5}}]}function k$({data:e}){if(!e)return null;const{x:t,y:r,item:n}=e,i=yh[n.status]||yh.planned,s=jr[n.itemType]||"#94a3b8",o=t+300>window.innerWidth?t-294:t+14,a=Math.min(r-10,window.innerHeight-200);return c.jsxs("div",{style:{position:"fixed",left:o,top:a,zIndex:9999,pointerEvents:"none",maxWidth:280,background:"#1e293b",border:"1px solid #475569",borderRadius:8,padding:"10px 13px",fontSize:12,boxShadow:"0 8px 24px rgba(0,0,0,0.5)"},children:[c.jsx("div",{style:{fontWeight:700,fontSize:13,color:"#f8fafc",marginBottom:3},children:n.slug}),c.jsx("div",{style:{color:"#94a3b8",marginBottom:6,lineHeight:1.4},children:n.title}),c.jsxs("div",{style:{display:"flex",gap:6,alignItems:"center",flexWrap:"wrap"},children:[c.jsx(Md,{color:i,children:(n.status||"planned").replace("_"," ")}),c.jsx(Md,{color:s,children:n.itemType}),n.phase&&c.jsx(Md,{color:"#94a3b8",children:rh[n.phase]||n.phase})]}),n.description&&c.jsx("div",{style:{marginTop:8,color:"#94a3b8",fontSize:11,lineHeight:1.4},children:n.description.length>140?n.description.slice(0,140)+"…":n.description}),c.jsxs("div",{style:{marginTop:6,color:"#64748b",fontSize:10},children:[fm[n.confidence||0]," confidence"]})]})}function C$({data:e,onApply:t,onClose:r}){const{x:n,y:i,currentGroup:s}=e,[o,a]=C.useState(s||""),l=C.useRef(null);C.useEffect(()=>{var f,p;(f=l.current)==null||f.focus(),(p=l.current)==null||p.select()},[]),C.useEffect(()=>{const f=p=>{p.key==="Escape"&&r()};return window.addEventListener("keydown",f),()=>window.removeEventListener("keydown",f)},[r]),C.useEffect(()=>{const f=m=>{const x=document.getElementById("group-change-popover-root");x&&!x.contains(m.target)&&r()},p=setTimeout(()=>window.addEventListener("mousedown",f),0);return()=>{clearTimeout(p),window.removeEventListener("mousedown",f)}},[r]);const h=n+240>window.innerWidth?n-234:n+14,u=Math.min(i-10,window.innerHeight-120),d=()=>t(o.trim());return c.jsxs("div",{id:"group-change-popover-root","data-testid":"group-change-popover",style:{position:"fixed",left:h,top:u,zIndex:1e4,width:220,background:"#1e293b",border:"1px solid #475569",borderRadius:8,padding:"10px 12px",boxShadow:"0 8px 24px rgba(0,0,0,0.5)"},children:[c.jsx("div",{style:{fontSize:11,color:"#94a3b8",marginBottom:6,fontWeight:600,textTransform:"uppercase",letterSpacing:"0.05em"},children:"Change group"}),c.jsx("input",{ref:l,type:"text",value:o,onChange:f=>a(f.target.value),onKeyDown:f=>{f.key==="Enter"&&(f.preventDefault(),d())},placeholder:"(no group)",style:{width:"100%",boxSizing:"border-box",fontSize:12,padding:"5px 7px",background:"#0f172a",color:"#f8fafc",border:"1px solid #334155",borderRadius:4,outline:"none"}}),c.jsxs("div",{style:{display:"flex",gap:6,marginTop:8,justifyContent:"flex-end"},children:[c.jsx("button",{onClick:r,style:{fontSize:11,padding:"3px 9px",borderRadius:4,cursor:"pointer",background:"transparent",color:"#94a3b8",border:"1px solid #334155"},children:"Cancel"}),c.jsx("button",{onClick:d,"data-testid":"group-change-apply",style:{fontSize:11,padding:"3px 9px",borderRadius:4,cursor:"pointer",background:"#2563eb",color:"#f8fafc",border:"1px solid #2563eb"},children:"Apply"})]})]})}function Md({color:e,children:t}){return c.jsx("span",{style:{fontSize:10,padding:"1px 6px",borderRadius:3,fontWeight:600,background:`${e}20`,color:e,border:`1px solid ${e}40`,textTransform:"uppercase",letterSpacing:"0.03em"},children:t})}const uw={fontSize:11,padding:"3px 9px",borderRadius:4,cursor:"pointer",transition:"all 0.15s"};function ca({active:e,onClick:t,children:r}){return c.jsx("button",{onClick:t,style:{...uw,border:`1px solid ${e?"#3b82f6":"#334155"}`,background:e?"#3b82f6":"#1e293b",color:e?"#fff":"#94a3b8"},children:r})}function ha({onClick:e,children:t,title:r}){return c.jsx("button",{onClick:e,title:r,style:{...uw,border:"1px solid #334155",background:"#1e293b",color:"#94a3b8"},children:t})}function ua(){return c.jsx("div",{style:{width:1,height:20,background:"#334155",margin:"0 2px"}})}const w$=["build-building","build-gate-pending","build-blocked-downstream","build-error"],v$={building:{bg:"#3b82f620",border:"#3b82f6",color:"#3b82f6",label:"⚙"},gate_pending:{bg:"#f59e0b20",border:"#f59e0b",color:"#f59e0b",label:"⚠"},error:{bg:"#ef444420",border:"#ef4444",color:"#ef4444",label:"✖"}};function S$({badge:e,onClick:t}){const r=v$[e.state];return r?c.jsx("div",{onClick:t,style:{position:"absolute",left:e.x,top:e.y,width:16,height:16,borderRadius:"50%",background:r.bg,border:`1.5px solid ${r.border}`,color:r.color,fontSize:9,fontWeight:700,display:"flex",alignItems:"center",justifyContent:"center",cursor:t?"pointer":"default",zIndex:100,pointerEvents:t?"auto":"none"},title:e.state.replace(/_/g," "),children:r.label}):null}function T$({featureCode:e,gates:t,items:r,badgePositions:n,onResolve:i,onClose:s}){const o=n.find(u=>u.featureCode===e);if(!o)return null;const a=r.find(u=>{var d;return((d=u.lifecycle)==null?void 0:d.featureCode)===e||u.featureCode===e||u.title===e}),l=a&&(t==null?void 0:t.find(u=>u.itemId===a.id&&!u.resolvedAt));if(!l)return null;const h=l.stepId?l.stepId.replace(/_/g," ").replace(/\b\w/g,u=>u.toUpperCase()):"Gate";return c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{position:"fixed",inset:0,zIndex:199},onClick:s}),c.jsxs("div",{style:{position:"absolute",left:o.x-80,top:o.y+22,zIndex:200,width:200,background:"#1e293b",border:"1px solid #475569",borderRadius:8,padding:"10px 12px",boxShadow:"0 8px 24px rgba(0,0,0,0.5)"},children:[c.jsx("div",{style:{fontSize:10,color:"#94a3b8",textTransform:"uppercase",letterSpacing:"0.05em",marginBottom:4},children:h}),c.jsx("div",{style:{fontSize:12,color:"#f8fafc",fontWeight:600,marginBottom:8},children:e}),c.jsxs("div",{style:{display:"flex",gap:4},children:[c.jsx("button",{onClick:()=>i(l.id,"approve"),style:{flex:1,padding:"4px 0",fontSize:10,fontWeight:600,borderRadius:4,background:"#22c55e20",color:"#22c55e",border:"1px solid #22c55e40",cursor:"pointer"},children:"Approve"}),c.jsx("button",{onClick:()=>i(l.id,"revise"),style:{flex:1,padding:"4px 0",fontSize:10,fontWeight:600,borderRadius:4,background:"#f59e0b20",color:"#f59e0b",border:"1px solid #f59e0b40",cursor:"pointer"},children:"Revise"}),c.jsx("button",{onClick:()=>i(l.id,"kill"),style:{flex:1,padding:"4px 0",fontSize:10,fontWeight:600,borderRadius:4,background:"#ef444420",color:"#ef4444",border:"1px solid #ef444440",cursor:"pointer"},children:"Kill"})]})]})]})}function dw({items:e,connections:t,selectedItemId:r,onSelect:n,onCreateFeature:i,isEmptyProject:s,visibleTracks:o,hiddenGroups:a,buildStateMap:l,resolveGate:h,gates:u,spawnedAgents:d,agentRelays:f,agentOverlay:p,featureCode:m,focusActive:x,onToggleFocus:g}){const y=C.useRef(null),k=C.useRef(null),b=C.useRef({}),w=C.useRef(!1),T=C.useRef({}),S=C.useRef(null),[j,E]=C.useState(null),[B,N]=C.useState("active"),[I,R]=C.useState(!0),[A,O]=C.useState(!1),[F,L]=C.useState(null),[$,z]=C.useState(null),[D,_]=C.useState([]),[U,Q]=C.useState(!1),[P,ae]=C.useState(!1),J=Co(H=>H.ideas);C.useEffect(()=>{let H=!1;return Te("/api/graph/layout").then(re=>re.ok?re.json():{positions:{}}).then(re=>{if(H)return;b.current=re.positions||{},w.current=!0;const V=k.current;V&&Ae(V)}).catch(()=>{w.current=!0}),()=>{H=!0}},[]);const ce=C.useCallback(()=>{const H=T.current;T.current={},S.current=null,Object.keys(H).length&&Te("/api/graph/layout",{method:"POST",headers:{"content-type":"application/json"},body:JSON.stringify({positions:H})}).catch(re=>console.warn("[graph-layout] save failed:",re))},[]),Ce=C.useCallback(H=>{Object.assign(T.current,H),Object.assign(b.current,H),S.current&&clearTimeout(S.current),S.current=setTimeout(ce,500)},[ce]),Ae=C.useCallback(H=>{const re=b.current,V={};H.nodes("node[status]").forEach(se=>{const de=se.data();if(de.isAgentNode||de.isIdeaNode)return;const be=se.id(),Le=re[be];if(Le&&Number.isFinite(Le.x)&&Number.isFinite(Le.y))se.position({x:Le.x,y:Le.y});else{const tt=se.position();Number.isFinite(tt.x)&&Number.isFinite(tt.y)&&(V[be]={x:tt.x,y:tt.y})}}),Object.keys(V).length&&Ce(V)},[Ce]),me=C.useRef(!1);C.useEffect(()=>{const H=d==null?void 0:d.some(re=>re.status==="running");H&&!me.current?Q(!0):!H&&me.current&&(d==null?void 0:d.length)>0&&Q(!1),me.current=!!H},[d]);const X=C.useMemo(()=>e.filter(H=>{const re=H.title||"";return!re.startsWith("`docs/")&&!re.startsWith("docs/")}),[e]),te=C.useMemo(()=>{let H=X;const re=By.find(V=>V.key===B);if(re!=null&&re.statuses&&(H=H.filter(V=>re.statuses.includes(V.status||"planned"))),o){const V=se=>{const de=(se.description||"").match(/Track:\s*(\w+)/i);return de?de[1].toLowerCase():se.type||"other"};H=H.filter(se=>o.has(V(se)))}return(a==null?void 0:a.size)>0&&(H=H.filter(V=>!a.has(Ea(V)))),H},[X,B,o,a]),ge=C.useMemo(()=>{const H=new Set(te.map(re=>re.id));return t.filter(re=>H.has(re.fromId)&&H.has(re.toId))},[t,te]),ue=C.useMemo(()=>!p||!p.nodes.length?[]:[...p.nodes,...p.edges],[d]),W=C.useMemo(()=>{if(!P)return[];new Set(te.map(re=>re.id));const H=[];for(const re of J){if(!re.mapsTo)continue;const V=`idea-${re.id}`;H.push({data:{id:V,label:`${re.id}
509
509
  ${re.title.slice(0,20)}${re.title.length>20?"…":""}`,isIdeaNode:!0,status:"idea",ideaId:re.id},classes:"idea-node"});const se=re.mapsTo.split(",").map(de=>de.trim()).filter(Boolean);for(const de of se){const be=te.find(Le=>{var tt;return((tt=Le.lifecycle)==null?void 0:tt.featureCode)===de||Le.featureCode===de||(Le.title||"").startsWith(de)});be&&H.push({data:{id:`idea-edge-${re.id}-${be.id}`,source:V,target:be.id,edgeType:"idea",edgeColor:"#f59e0b",edgeStyle:"dashed"}})}}return H},[P,J,te]),le=C.useMemo(()=>{let re=y$(te,ge,I,x,m);return U&&ue.length>0&&(re=[...re,...ue]),P&&W.length>0&&(re=[...re,...W]),re},[te,ge,I,U,ue,P,W,x,m]),He=C.useMemo(()=>b$(),[]);C.useEffect(()=>{if(!y.current)return;k.current&&(k.current.destroy(),k.current=null);const H=rs({container:y.current,elements:le,style:He,layout:{name:"fcose",quality:"proof",animate:!1,fit:!1,padding:20,nodeSeparation:80,idealEdgeLength:120,nodeRepulsion:6e3,gravity:.3,gravityRange:1.5,tilingPaddingVertical:12,tilingPaddingHorizontal:12},minZoom:.1,maxZoom:4,wheelSensitivity:.3,boxSelectionEnabled:!1});if(k.current=H,H.one("layoutstop",()=>{w.current&&Ae(H),H.fit(void 0,30)}),H.fit(void 0,30),H.on("dragfree","node[status]",re=>{const V=re.target,se=V.data();if(se.isAgentNode||se.isIdeaNode)return;const de=V.position();!Number.isFinite(de.x)||!Number.isFinite(de.y)||Ce({[V.id()]:{x:de.x,y:de.y}})}),r){const re=H.$id(r);re.length&&Id(H,re)}return H.on("mouseover","node[status]",re=>{const V=re.renderedPosition||re.position,se=H.container().getBoundingClientRect();E({x:se.left+V.x,y:se.top+V.y,item:re.target.data()})}),H.on("mousemove","node[status]",re=>{const V=re.renderedPosition||re.position,se=H.container().getBoundingClientRect();E(de=>de?{x:se.left+V.x,y:se.top+V.y,item:de.item}:null)}),H.on("mouseout","node[status]",()=>E(null)),H.on("tap","node[status]",re=>{Tt.current=!0,Id(H,re.target),n(re.target.id())}),H.on("tap",re=>{re.target===H&&H.elements().removeClass("dimmed highlighted")}),H.on("cxttap","node[status]",re=>{var be;const V=re.target.data();if(V.isAgentNode||V.isIdeaNode||V.isGroup)return;try{(be=re.originalEvent)==null||be.preventDefault()}catch{}const se=re.renderedPosition||re.position,de=H.container().getBoundingClientRect();z({x:de.left+se.x,y:de.top+se.y,itemId:re.target.id(),currentGroup:V.group||""}),E(null)}),H.container().addEventListener("contextmenu",re=>re.preventDefault()),()=>{S.current&&(clearTimeout(S.current),ce()),H.destroy(),k.current=null}},[le,He]);const Tt=C.useRef(!1);C.useEffect(()=>{const H=k.current;if(!H||!r)return;const re=H.$id(r);re.length&&(H.elements().removeClass("dimmed highlighted"),Id(H,re),Tt.current||H.animate({center:{eles:re},duration:200}),Tt.current=!1)},[r]),C.useEffect(()=>{const H=k.current;if(H&&(H.nodes().removeClass(w$.join(" ")),!(!l||Object.keys(l).length===0)))for(const[re,V]of Object.entries(l)){const se=`build-${V.replace(/_/g,"-")}`,de=H.nodes().filter(be=>{const Le=be.data();return Le.slug===re||Le.title===re||Le.featureCode===re});de.length&&de.addClass(se)}},[l]),C.useEffect(()=>{const H=k.current;if(!H||!l||!Object.values(l).includes("building"))return;let V=!0;const se=setInterval(()=>{const de=H.nodes(".build-building");de.length&&(V=!V,de.style("shadow-blur",V?12:4),de.style("shadow-opacity",V?.6:.2))},800);return()=>clearInterval(se)},[l]),C.useEffect(()=>{var de;const H=k.current;if(!H||(H.edges("[?isRelayEdge]").removeClass("relay-active relay-result"),!U||!((de=p==null?void 0:p.activeEdgeIds)!=null&&de.size)))return;const re=new Set((d||[]).map(be=>be.agentId)),V=be=>be==="session"?"agent-session":re.has(be)?`agent-${be}`:"agent-session";for(const be of p.activeEdgeIds){const Le=H.getElementById(be);if(Le.length){const tt=f==null?void 0:f.findLast(pt=>{const Nt=V(pt.fromAgentId),lr=V(pt.toAgentId);return(pt.direction==="dispatch"?`relay-${Nt}-${lr}`:`relay-${lr}-${Nt}`)===be});Le.addClass((tt==null?void 0:tt.direction)==="result"?"relay-result":"relay-active")}}const se=setInterval(()=>{const be=H.edges(".relay-active, .relay-result");if(!be.length)return;const Le=Date.now()/20%100;be.style("line-dash-offset",-Le)},50);return()=>clearInterval(se)},[U,p==null?void 0:p.activeEdgeIds,f]);const Xe=C.useCallback(()=>{const H=k.current;if(!H||!l||Object.keys(l).length===0){_([]);return}const re=[];for(const[V,se]of Object.entries(l)){if(se!=="gate_pending"&&se!=="error"&&se!=="building")continue;const de=H.nodes().filter(tt=>{const pt=tt.data();return pt.slug===V||pt.title===V||pt.featureCode===V});if(!de.length)continue;const be=de.renderedPosition(),Le=de.renderedOuterWidth();re.push({featureCode:V,state:se,x:be.x+Le/2-6,y:be.y-de.renderedOuterHeight()/2-6,nodeId:de.id()})}_(re)},[l]);C.useEffect(()=>{const H=k.current;if(H)return H.on("render pan zoom",Xe),Xe(),()=>{H.removeListener("render pan zoom",Xe)}},[Xe]);const ar=C.useCallback(()=>{var H;return(H=k.current)==null?void 0:H.fit(void 0,40)},[]),dt=C.useCallback(()=>{const H=k.current;H&&H.zoom({level:H.zoom()*1.3,renderedPosition:{x:H.width()/2,y:H.height()/2}})},[]),Wt=C.useCallback(()=>{const H=k.current;H&&H.zoom({level:H.zoom()/1.3,renderedPosition:{x:H.width()/2,y:H.height()/2}})},[]),Kt=C.useCallback(()=>{window.open("/api/export/roadmap-graph","_blank","noopener")},[]),ft=C.useCallback(async()=>{try{const H=await Te("/api/export/roadmap-graph/save",{method:"POST",headers:en({"Content-Type":"application/json"})}),re=await H.json().catch(()=>({}));H.ok&&re.ok?at(`Saved ${re.path}`,"info"):at(re.error||`Export save failed (HTTP ${H.status})`,"error")}catch(H){at(`Export save failed: ${H.message}`,"error")}},[]);return c.jsxs("div",{className:"flex-1 flex flex-col min-h-0",style:{background:"#0f172a"},children:[c.jsx("div",{className:"shrink-0",style:{background:"#1e293b",borderBottom:"1px solid #334155"},children:c.jsxs("div",{className:"flex items-center justify-between px-3 py-1.5",children:[c.jsxs("div",{className:"flex items-center gap-2",children:[c.jsx(_l,{featureCode:m,active:x,onToggle:g}),m&&c.jsx(ua,{}),c.jsx("span",{style:{fontSize:11,color:"#64748b"},children:"Status:"}),By.map(H=>c.jsx(ca,{active:B===H.key,onClick:()=>N(H.key),children:H.label},H.key)),c.jsx(ua,{}),c.jsxs("span",{style:{fontSize:10,color:"#475569"},children:[te.length," items · ",ge.length," edges"]})]}),c.jsxs("div",{className:"flex items-center gap-1",children:[c.jsx(ca,{active:I,onClick:()=>R(!I),children:"Group"}),c.jsx(ca,{active:U,onClick:()=>Q(H=>!H),title:"Show/hide agent topology",children:"Agents"}),c.jsx(ca,{active:P,onClick:()=>ae(H=>!H),title:"Show/hide idea nodes (connected to features via mapsTo)",children:"Ideas"}),c.jsx(ua,{}),c.jsx(ha,{onClick:Wt,title:"Zoom out",children:"−"}),c.jsx(ha,{onClick:ar,title:"Fit to view",children:"Fit"}),c.jsx(ha,{onClick:dt,title:"Zoom in",children:"+"}),c.jsx(ua,{}),c.jsx(ha,{onClick:Kt,title:"Open roadmap graph HTML export in a new tab",children:"Export"}),c.jsx(ha,{onClick:ft,title:"Save roadmap graph export to docs/roadmap-graph.html",children:"Save HTML"}),c.jsx(ua,{}),c.jsx(ca,{active:A,onClick:()=>O(!A),children:"Legend"})]})]})}),te.length===0&&!U?c.jsx("div",{className:"flex-1 flex items-center justify-center",children:c.jsx("div",{style:{textAlign:"center"},children:s?c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{fontSize:12,color:"#64748b",marginBottom:6},children:"No items yet"}),c.jsx("div",{style:{fontSize:11,color:"#475569",marginBottom:10},children:"Create your first feature to start building in the cockpit."}),i&&c.jsx("button",{onClick:i,style:{fontSize:11,color:"#e2e8f0",background:"#1e293b",border:"1px solid #334155",borderRadius:6,padding:"5px 12px",cursor:"pointer"},children:"Create your first feature"})]}):c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{fontSize:12,color:"#64748b",marginBottom:6},children:"No items match the current filters"}),c.jsx("div",{style:{fontSize:11,color:"#475569"},children:"Try adjusting the status or group filters"})]})})}):c.jsxs("div",{className:"flex-1 relative min-h-0",children:[c.jsx("div",{ref:y,className:"w-full h-full"}),A&&c.jsxs("div",{style:{position:"absolute",bottom:16,left:16,zIndex:10,background:"#1e293b",border:"1px solid #334155",borderRadius:8,padding:"10px 13px",fontSize:11,maxHeight:"calc(100% - 32px)",overflowY:"auto"},children:[c.jsx(Fd,{title:"Types",children:Object.entries(jr).map(([H,re])=>c.jsxs($d,{children:[c.jsx(Iy,{color:re}),H]},H))}),c.jsx(Od,{}),c.jsx(Fd,{title:"Status",children:Object.entries(yh).map(([H,re])=>c.jsxs($d,{children:[c.jsx(Iy,{color:re}),H.replace("_"," ")]},H))}),c.jsx(Od,{}),c.jsx(Fd,{title:"Edges",children:Object.entries(Uf).map(([H,re])=>c.jsxs($d,{children:[c.jsx("svg",{width:"22",height:"6",style:{flexShrink:0},children:c.jsx("line",{x1:"0",y1:"3",x2:"22",y2:"3",stroke:re.color,strokeWidth:"1.5",strokeDasharray:re.style==="dashed"?"6,3":"none"})}),H]},H))}),c.jsx(Od,{}),c.jsxs("div",{style:{fontSize:10,color:"#475569"},children:["Border weight = confidence",c.jsx("br",{}),"Click node to trace deps"]})]}),c.jsx(k$,{data:j}),$&&c.jsx(C$,{data:$,onClose:()=>z(null),onApply:H=>{const re=$.itemId;z(null),Te(`/api/vision/items/${re}`,{method:"PATCH",headers:{"content-type":"application/json"},body:JSON.stringify({group:H||null})}).catch(V=>console.warn("[graph] group update failed:",V))}}),D.map(H=>c.jsx(S$,{badge:H,onClick:H.state==="gate_pending"?()=>L(F===H.featureCode?null:H.featureCode):H.state==="error"?()=>n(H.nodeId):void 0},H.featureCode)),F&&c.jsx(T$,{featureCode:F,gates:u,items:e,badgePositions:D,onResolve:(H,re)=>{h&&h(H,re),L(null)},onClose:()=>L(null)})]})]})}function Id(e,t){e.elements().removeClass("dimmed highlighted");const r=t.union(t.predecessors("node[status]")).union(t.successors("node[status]")),n=r.edgesWith(r);e.nodes("[status]").not(r).addClass("dimmed"),e.edges().not(n).addClass("dimmed"),t.addClass("highlighted")}function Fd({title:e,children:t}){return c.jsxs(c.Fragment,{children:[c.jsx("div",{style:{fontSize:10,color:"#64748b",textTransform:"uppercase",letterSpacing:"0.08em",marginBottom:5,fontWeight:700},children:e}),t]})}function Od(){return c.jsx("div",{style:{height:1,background:"#334155",margin:"6px 0"}})}function $d({children:e}){return c.jsx("div",{style:{display:"flex",alignItems:"center",gap:7,marginBottom:3,color:"#94a3b8"},children:e})}function Iy({color:e}){return c.jsx("div",{style:{width:10,height:10,borderRadius:2,background:e,flexShrink:0}})}var fw=Object.defineProperty,v=(e,t)=>fw(e,"name",{value:t,configurable:!0}),_$=(e,t)=>{for(var r in t)fw(e,r,{get:t[r],enumerable:!0})},Pc={exports:{}},j$=Pc.exports,Fy;function N$(){return Fy||(Fy=1,(function(e,t){(function(r,n){e.exports=n()})(j$,(function(){var r=1e3,n=6e4,i=36e5,s="millisecond",o="second",a="minute",l="hour",h="day",u="week",d="month",f="quarter",p="year",m="date",x="Invalid Date",g=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|YYYY|YY|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,k={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(O){var F=["th","st","nd","rd"],L=O%100;return"["+O+(F[(L-20)%10]||F[L]||F[0])+"]"}},b=function(O,F,L){var $=String(O);return!$||$.length>=F?O:""+Array(F+1-$.length).join(L)+O},w={s:b,z:function(O){var F=-O.utcOffset(),L=Math.abs(F),$=Math.floor(L/60),z=L%60;return(F<=0?"+":"-")+b($,2,"0")+":"+b(z,2,"0")},m:function O(F,L){if(F.date()<L.date())return-O(L,F);var $=12*(L.year()-F.year())+(L.month()-F.month()),z=F.clone().add($,d),D=L-z<0,_=F.clone().add($+(D?-1:1),d);return+(-($+(L-z)/(D?z-_:_-z))||0)},a:function(O){return O<0?Math.ceil(O)||0:Math.floor(O)},p:function(O){return{M:d,y:p,w:u,d:h,D:m,h:l,m:a,s:o,ms:s,Q:f}[O]||String(O||"").toLowerCase().replace(/s$/,"")},u:function(O){return O===void 0}},T="en",S={};S[T]=k;var j="$isDayjsObject",E=function(O){return O instanceof R||!(!O||!O[j])},B=function O(F,L,$){var z;if(!F)return T;if(typeof F=="string"){var D=F.toLowerCase();S[D]&&(z=D),L&&(S[D]=L,z=D);var _=F.split("-");if(!z&&_.length>1)return O(_[0])}else{var U=F.name;S[U]=F,z=U}return!$&&z&&(T=z),z||!$&&T},N=function(O,F){if(E(O))return O.clone();var L=typeof F=="object"?F:{};return L.date=O,L.args=arguments,new R(L)},I=w;I.l=B,I.i=E,I.w=function(O,F){return N(O,{locale:F.$L,utc:F.$u,x:F.$x,$offset:F.$offset})};var R=(function(){function O(L){this.$L=B(L.locale,null,!0),this.parse(L),this.$x=this.$x||L.x||{},this[j]=!0}var F=O.prototype;return F.parse=function(L){this.$d=(function($){var z=$.date,D=$.utc;if(z===null)return new Date(NaN);if(I.u(z))return new Date;if(z instanceof Date)return new Date(z);if(typeof z=="string"&&!/Z$/i.test(z)){var _=z.match(g);if(_){var U=_[2]-1||0,Q=(_[7]||"0").substring(0,3);return D?new Date(Date.UTC(_[1],U,_[3]||1,_[4]||0,_[5]||0,_[6]||0,Q)):new Date(_[1],U,_[3]||1,_[4]||0,_[5]||0,_[6]||0,Q)}}return new Date(z)})(L),this.init()},F.init=function(){var L=this.$d;this.$y=L.getFullYear(),this.$M=L.getMonth(),this.$D=L.getDate(),this.$W=L.getDay(),this.$H=L.getHours(),this.$m=L.getMinutes(),this.$s=L.getSeconds(),this.$ms=L.getMilliseconds()},F.$utils=function(){return I},F.isValid=function(){return this.$d.toString()!==x},F.isSame=function(L,$){var z=N(L);return this.startOf($)<=z&&z<=this.endOf($)},F.isAfter=function(L,$){return N(L)<this.startOf($)},F.isBefore=function(L,$){return this.endOf($)<N(L)},F.$g=function(L,$,z){return I.u(L)?this[$]:this.set(z,L)},F.unix=function(){return Math.floor(this.valueOf()/1e3)},F.valueOf=function(){return this.$d.getTime()},F.startOf=function(L,$){var z=this,D=!!I.u($)||$,_=I.p(L),U=function(me,X){var te=I.w(z.$u?Date.UTC(z.$y,X,me):new Date(z.$y,X,me),z);return D?te:te.endOf(h)},Q=function(me,X){return I.w(z.toDate()[me].apply(z.toDate("s"),(D?[0,0,0,0]:[23,59,59,999]).slice(X)),z)},P=this.$W,ae=this.$M,J=this.$D,ce="set"+(this.$u?"UTC":"");switch(_){case p:return D?U(1,0):U(31,11);case d:return D?U(1,ae):U(0,ae+1);case u:var Ce=this.$locale().weekStart||0,Ae=(P<Ce?P+7:P)-Ce;return U(D?J-Ae:J+(6-Ae),ae);case h:case m:return Q(ce+"Hours",0);case l:return Q(ce+"Minutes",1);case a:return Q(ce+"Seconds",2);case o:return Q(ce+"Milliseconds",3);default:return this.clone()}},F.endOf=function(L){return this.startOf(L,!1)},F.$set=function(L,$){var z,D=I.p(L),_="set"+(this.$u?"UTC":""),U=(z={},z[h]=_+"Date",z[m]=_+"Date",z[d]=_+"Month",z[p]=_+"FullYear",z[l]=_+"Hours",z[a]=_+"Minutes",z[o]=_+"Seconds",z[s]=_+"Milliseconds",z)[D],Q=D===h?this.$D+($-this.$W):$;if(D===d||D===p){var P=this.clone().set(m,1);P.$d[U](Q),P.init(),this.$d=P.set(m,Math.min(this.$D,P.daysInMonth())).$d}else U&&this.$d[U](Q);return this.init(),this},F.set=function(L,$){return this.clone().$set(L,$)},F.get=function(L){return this[I.p(L)]()},F.add=function(L,$){var z,D=this;L=Number(L);var _=I.p($),U=function(ae){var J=N(D);return I.w(J.date(J.date()+Math.round(ae*L)),D)};if(_===d)return this.set(d,this.$M+L);if(_===p)return this.set(p,this.$y+L);if(_===h)return U(1);if(_===u)return U(7);var Q=(z={},z[a]=n,z[l]=i,z[o]=r,z)[_]||1,P=this.$d.getTime()+L*Q;return I.w(P,this)},F.subtract=function(L,$){return this.add(-1*L,$)},F.format=function(L){var $=this,z=this.$locale();if(!this.isValid())return z.invalidDate||x;var D=L||"YYYY-MM-DDTHH:mm:ssZ",_=I.z(this),U=this.$H,Q=this.$m,P=this.$M,ae=z.weekdays,J=z.months,ce=z.meridiem,Ce=function(X,te,ge,ue){return X&&(X[te]||X($,D))||ge[te].slice(0,ue)},Ae=function(X){return I.s(U%12||12,X,"0")},me=ce||function(X,te,ge){var ue=X<12?"AM":"PM";return ge?ue.toLowerCase():ue};return D.replace(y,(function(X,te){return te||(function(ge){switch(ge){case"YY":return String($.$y).slice(-2);case"YYYY":return I.s($.$y,4,"0");case"M":return P+1;case"MM":return I.s(P+1,2,"0");case"MMM":return Ce(z.monthsShort,P,J,3);case"MMMM":return Ce(J,P);case"D":return $.$D;case"DD":return I.s($.$D,2,"0");case"d":return String($.$W);case"dd":return Ce(z.weekdaysMin,$.$W,ae,2);case"ddd":return Ce(z.weekdaysShort,$.$W,ae,3);case"dddd":return ae[$.$W];case"H":return String(U);case"HH":return I.s(U,2,"0");case"h":return Ae(1);case"hh":return Ae(2);case"a":return me(U,Q,!0);case"A":return me(U,Q,!1);case"m":return String(Q);case"mm":return I.s(Q,2,"0");case"s":return String($.$s);case"ss":return I.s($.$s,2,"0");case"SSS":return I.s($.$ms,3,"0");case"Z":return _}return null})(X)||_.replace(":","")}))},F.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},F.diff=function(L,$,z){var D,_=this,U=I.p($),Q=N(L),P=(Q.utcOffset()-this.utcOffset())*n,ae=this-Q,J=function(){return I.m(_,Q)};switch(U){case p:D=J()/12;break;case d:D=J();break;case f:D=J()/3;break;case u:D=(ae-P)/6048e5;break;case h:D=(ae-P)/864e5;break;case l:D=ae/i;break;case a:D=ae/n;break;case o:D=ae/r;break;default:D=ae}return z?D:I.a(D)},F.daysInMonth=function(){return this.endOf(d).$D},F.$locale=function(){return S[this.$L]},F.locale=function(L,$){if(!L)return this.$L;var z=this.clone(),D=B(L,$,!0);return D&&(z.$L=D),z},F.clone=function(){return I.w(this.$d,this)},F.toDate=function(){return new Date(this.valueOf())},F.toJSON=function(){return this.isValid()?this.toISOString():null},F.toISOString=function(){return this.$d.toISOString()},F.toString=function(){return this.$d.toUTCString()},O})(),A=R.prototype;return N.prototype=A,[["$ms",s],["$s",o],["$m",a],["$H",l],["$W",h],["$M",d],["$y",p],["$D",m]].forEach((function(O){A[O[1]]=function(F){return this.$g(F,O[0],O[1])}})),N.extend=function(O,F){return O.$i||(O(F,R,N),O.$i=!0),N},N.locale=B,N.isDayjs=E,N.unix=function(O){return N(1e3*O)},N.en=S[T],N.Ls=S,N.p={},N}))})(Pc)),Pc.exports}var E$=N$();const L$=rm(E$);var Ln={trace:0,debug:1,info:2,warn:3,error:4,fatal:5},oe={trace:v((...e)=>{},"trace"),debug:v((...e)=>{},"debug"),info:v((...e)=>{},"info"),warn:v((...e)=>{},"warn"),error:v((...e)=>{},"error"),fatal:v((...e)=>{},"fatal")},rg=v(function(e="fatal"){let t=Ln.fatal;typeof e=="string"?e.toLowerCase()in Ln&&(t=Ln[e]):typeof e=="number"&&(t=e),oe.trace=()=>{},oe.debug=()=>{},oe.info=()=>{},oe.warn=()=>{},oe.error=()=>{},oe.fatal=()=>{},t<=Ln.fatal&&(oe.fatal=console.error?console.error.bind(console,Pr("FATAL"),"color: orange"):console.log.bind(console,"\x1B[35m",Pr("FATAL"))),t<=Ln.error&&(oe.error=console.error?console.error.bind(console,Pr("ERROR"),"color: orange"):console.log.bind(console,"\x1B[31m",Pr("ERROR"))),t<=Ln.warn&&(oe.warn=console.warn?console.warn.bind(console,Pr("WARN"),"color: orange"):console.log.bind(console,"\x1B[33m",Pr("WARN"))),t<=Ln.info&&(oe.info=console.info?console.info.bind(console,Pr("INFO"),"color: lightblue"):console.log.bind(console,"\x1B[34m",Pr("INFO"))),t<=Ln.debug&&(oe.debug=console.debug?console.debug.bind(console,Pr("DEBUG"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Pr("DEBUG"))),t<=Ln.trace&&(oe.trace=console.debug?console.debug.bind(console,Pr("TRACE"),"color: lightgreen"):console.log.bind(console,"\x1B[32m",Pr("TRACE")))},"setLogLevel"),Pr=v(e=>`%c${L$().format("ss.SSS")} : ${e} : `,"format");const Dc={min:{r:0,g:0,b:0,s:0,l:0,a:0},max:{r:255,g:255,b:255,h:360,s:100,l:100,a:1},clamp:{r:e=>e>=255?255:e<0?0:e,g:e=>e>=255?255:e<0?0:e,b:e=>e>=255?255:e<0?0:e,h:e=>e%360,s:e=>e>=100?100:e<0?0:e,l:e=>e>=100?100:e<0?0:e,a:e=>e>=1?1:e<0?0:e},toLinear:e=>{const t=e/255;return e>.03928?Math.pow((t+.055)/1.055,2.4):t/12.92},hue2rgb:(e,t,r)=>(r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+(t-e)*6*r:r<1/2?t:r<2/3?e+(t-e)*(2/3-r)*6:e),hsl2rgb:({h:e,s:t,l:r},n)=>{if(!t)return r*2.55;e/=360,t/=100,r/=100;const i=r<.5?r*(1+t):r+t-r*t,s=2*r-i;switch(n){case"r":return Dc.hue2rgb(s,i,e+1/3)*255;case"g":return Dc.hue2rgb(s,i,e)*255;case"b":return Dc.hue2rgb(s,i,e-1/3)*255}},rgb2hsl:({r:e,g:t,b:r},n)=>{e/=255,t/=255,r/=255;const i=Math.max(e,t,r),s=Math.min(e,t,r),o=(i+s)/2;if(n==="l")return o*100;if(i===s)return 0;const a=i-s,l=o>.5?a/(2-i-s):a/(i+s);if(n==="s")return l*100;switch(i){case e:return((t-r)/a+(t<r?6:0))*60;case t:return((r-e)/a+2)*60;case r:return((e-t)/a+4)*60;default:return-1}}},B$={clamp:(e,t,r)=>t>r?Math.min(t,Math.max(r,e)):Math.min(r,Math.max(t,e)),round:e=>Math.round(e*1e10)/1e10},A$={dec2hex:e=>{const t=Math.round(e).toString(16);return t.length>1?t:`0${t}`}},De={channel:Dc,lang:B$,unit:A$},ni={};for(let e=0;e<=255;e++)ni[e]=De.unit.dec2hex(e);const Zt={ALL:0,RGB:1,HSL:2};class M${constructor(){this.type=Zt.ALL}get(){return this.type}set(t){if(this.type&&this.type!==t)throw new Error("Cannot change both RGB and HSL channels at the same time");this.type=t}reset(){this.type=Zt.ALL}is(t){return this.type===t}}class I${constructor(t,r){this.color=r,this.changed=!1,this.data=t,this.type=new M$}set(t,r){return this.color=r,this.changed=!1,this.data=t,this.type.type=Zt.ALL,this}_ensureHSL(){const t=this.data,{h:r,s:n,l:i}=t;r===void 0&&(t.h=De.channel.rgb2hsl(t,"h")),n===void 0&&(t.s=De.channel.rgb2hsl(t,"s")),i===void 0&&(t.l=De.channel.rgb2hsl(t,"l"))}_ensureRGB(){const t=this.data,{r,g:n,b:i}=t;r===void 0&&(t.r=De.channel.hsl2rgb(t,"r")),n===void 0&&(t.g=De.channel.hsl2rgb(t,"g")),i===void 0&&(t.b=De.channel.hsl2rgb(t,"b"))}get r(){const t=this.data,r=t.r;return!this.type.is(Zt.HSL)&&r!==void 0?r:(this._ensureHSL(),De.channel.hsl2rgb(t,"r"))}get g(){const t=this.data,r=t.g;return!this.type.is(Zt.HSL)&&r!==void 0?r:(this._ensureHSL(),De.channel.hsl2rgb(t,"g"))}get b(){const t=this.data,r=t.b;return!this.type.is(Zt.HSL)&&r!==void 0?r:(this._ensureHSL(),De.channel.hsl2rgb(t,"b"))}get h(){const t=this.data,r=t.h;return!this.type.is(Zt.RGB)&&r!==void 0?r:(this._ensureRGB(),De.channel.rgb2hsl(t,"h"))}get s(){const t=this.data,r=t.s;return!this.type.is(Zt.RGB)&&r!==void 0?r:(this._ensureRGB(),De.channel.rgb2hsl(t,"s"))}get l(){const t=this.data,r=t.l;return!this.type.is(Zt.RGB)&&r!==void 0?r:(this._ensureRGB(),De.channel.rgb2hsl(t,"l"))}get a(){return this.data.a}set r(t){this.type.set(Zt.RGB),this.changed=!0,this.data.r=t}set g(t){this.type.set(Zt.RGB),this.changed=!0,this.data.g=t}set b(t){this.type.set(Zt.RGB),this.changed=!0,this.data.b=t}set h(t){this.type.set(Zt.HSL),this.changed=!0,this.data.h=t}set s(t){this.type.set(Zt.HSL),this.changed=!0,this.data.s=t}set l(t){this.type.set(Zt.HSL),this.changed=!0,this.data.l=t}set a(t){this.changed=!0,this.data.a=t}}const ju=new I$({r:0,g:0,b:0,a:0},"transparent"),Vs={re:/^#((?:[a-f0-9]{2}){2,4}|[a-f0-9]{3})$/i,parse:e=>{if(e.charCodeAt(0)!==35)return;const t=e.match(Vs.re);if(!t)return;const r=t[1],n=parseInt(r,16),i=r.length,s=i%4===0,o=i>4,a=o?1:17,l=o?8:4,h=s?0:-1,u=o?255:15;return ju.set({r:(n>>l*(h+3)&u)*a,g:(n>>l*(h+2)&u)*a,b:(n>>l*(h+1)&u)*a,a:s?(n&u)*a/255:1},e)},stringify:e=>{const{r:t,g:r,b:n,a:i}=e;return i<1?`#${ni[Math.round(t)]}${ni[Math.round(r)]}${ni[Math.round(n)]}${ni[Math.round(i*255)]}`:`#${ni[Math.round(t)]}${ni[Math.round(r)]}${ni[Math.round(n)]}`}},$i={re:/^hsla?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(?:deg|grad|rad|turn)?)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?%)(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e-?\d+)?(%)?))?\s*?\)$/i,hueRe:/^(.+?)(deg|grad|rad|turn)$/i,_hue2deg:e=>{const t=e.match($i.hueRe);if(t){const[,r,n]=t;switch(n){case"grad":return De.channel.clamp.h(parseFloat(r)*.9);case"rad":return De.channel.clamp.h(parseFloat(r)*180/Math.PI);case"turn":return De.channel.clamp.h(parseFloat(r)*360)}}return De.channel.clamp.h(parseFloat(e))},parse:e=>{const t=e.charCodeAt(0);if(t!==104&&t!==72)return;const r=e.match($i.re);if(!r)return;const[,n,i,s,o,a]=r;return ju.set({h:$i._hue2deg(n),s:De.channel.clamp.s(parseFloat(i)),l:De.channel.clamp.l(parseFloat(s)),a:o?De.channel.clamp.a(a?parseFloat(o)/100:parseFloat(o)):1},e)},stringify:e=>{const{h:t,s:r,l:n,a:i}=e;return i<1?`hsla(${De.lang.round(t)}, ${De.lang.round(r)}%, ${De.lang.round(n)}%, ${i})`:`hsl(${De.lang.round(t)}, ${De.lang.round(r)}%, ${De.lang.round(n)}%)`}},Ua={colors:{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyanaqua:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",transparent:"#00000000",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"},parse:e=>{e=e.toLowerCase();const t=Ua.colors[e];if(t)return Vs.parse(t)},stringify:e=>{const t=Vs.stringify(e);for(const r in Ua.colors)if(Ua.colors[r]===t)return r}},La={re:/^rgba?\(\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))\s*?(?:,|\s)\s*?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?))(?:\s*?(?:,|\/)\s*?\+?(-?(?:\d+(?:\.\d+)?|(?:\.\d+))(?:e\d+)?(%?)))?\s*?\)$/i,parse:e=>{const t=e.charCodeAt(0);if(t!==114&&t!==82)return;const r=e.match(La.re);if(!r)return;const[,n,i,s,o,a,l,h,u]=r;return ju.set({r:De.channel.clamp.r(i?parseFloat(n)*2.55:parseFloat(n)),g:De.channel.clamp.g(o?parseFloat(s)*2.55:parseFloat(s)),b:De.channel.clamp.b(l?parseFloat(a)*2.55:parseFloat(a)),a:h?De.channel.clamp.a(u?parseFloat(h)/100:parseFloat(h)):1},e)},stringify:e=>{const{r:t,g:r,b:n,a:i}=e;return i<1?`rgba(${De.lang.round(t)}, ${De.lang.round(r)}, ${De.lang.round(n)}, ${De.lang.round(i)})`:`rgb(${De.lang.round(t)}, ${De.lang.round(r)}, ${De.lang.round(n)})`}},bn={format:{keyword:Ua,hex:Vs,rgb:La,rgba:La,hsl:$i,hsla:$i},parse:e=>{if(typeof e!="string")return e;const t=Vs.parse(e)||La.parse(e)||$i.parse(e)||Ua.parse(e);if(t)return t;throw new Error(`Unsupported color format: "${e}"`)},stringify:e=>!e.changed&&e.color?e.color:e.type.is(Zt.HSL)||e.data.r===void 0?$i.stringify(e):e.a<1||!Number.isInteger(e.r)||!Number.isInteger(e.g)||!Number.isInteger(e.b)?La.stringify(e):Vs.stringify(e)},pw=(e,t)=>{const r=bn.parse(e);for(const n in t)r[n]=De.channel.clamp[n](t[n]);return bn.stringify(r)},hi=(e,t,r=0,n=1)=>{if(typeof e!="number")return pw(e,{a:t});const i=ju.set({r:De.channel.clamp.r(e),g:De.channel.clamp.g(t),b:De.channel.clamp.b(r),a:De.channel.clamp.a(n)});return bn.stringify(i)},F$=e=>{const{r:t,g:r,b:n}=bn.parse(e),i=.2126*De.channel.toLinear(t)+.7152*De.channel.toLinear(r)+.0722*De.channel.toLinear(n);return De.lang.round(i)},O$=e=>F$(e)>=.5,an=e=>!O$(e),mw=(e,t,r)=>{const n=bn.parse(e),i=n[t],s=De.channel.clamp[t](i+r);return i!==s&&(n[t]=s),bn.stringify(n)},Z=(e,t)=>mw(e,"l",t),ee=(e,t)=>mw(e,"l",-t),M=(e,t)=>{const r=bn.parse(e),n={};for(const i in t)t[i]&&(n[i]=r[i]+t[i]);return pw(e,n)},$$=(e,t,r=50)=>{const{r:n,g:i,b:s,a:o}=bn.parse(e),{r:a,g:l,b:h,a:u}=bn.parse(t),d=r/100,f=d*2-1,p=o-u,x=((f*p===-1?f:(f+p)/(1+f*p))+1)/2,g=1-x,y=n*x+a*g,k=i*x+l*g,b=s*x+h*g,w=o*d+u*(1-d);return hi(y,k,b,w)},G=(e,t=100)=>{const r=bn.parse(e);return r.r=255-r.r,r.g=255-r.g,r.b=255-r.b,$$(r,e,t)};/*! @license DOMPurify 3.4.11 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.11/LICENSE */function Oy(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function P$(e){if(Array.isArray(e))return e}function D$(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,s,o,a=[],l=!0,h=!1;try{if(s=(r=r.call(e)).next,t!==0)for(;!(l=(n=s.call(r)).done)&&(a.push(n.value),a.length!==t);l=!0);}catch(u){h=!0,i=u}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(h)throw i}}return a}}function R$(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
@@ -807,8 +807,8 @@ Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error
807
807
  L0,20`)},"requirement_arrow"),PW=v((e,t,r)=>{const n=Ct(),{themeVariables:i}=n,{strokeWidth:s}=i;e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_arrowEnd").attr("refX",20).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").attr("stroke-width",`${s}`).attr("viewBox","0 0 25 20").append("path").attr("d",`M0,0
808
808
  L20,10
809
809
  M20,10
810
- L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),DW=v((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),RW=v((e,t,r)=>{const n=Ct(),{themeVariables:i}=n,{strokeWidth:s}=i,o=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");o.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),o.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),o.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),o.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),zW={extension:bW,composition:kW,aggregation:CW,dependency:wW,lollipop:vW,point:SW,circle:TW,cross:_W,barb:jW,barbNeo:NW,only_one:EW,zero_or_one:LW,one_or_more:BW,zero_or_more:AW,only_one_neo:MW,zero_or_one_neo:IW,one_or_more_neo:FW,zero_or_more_neo:OW,requirement_arrow:$W,requirement_contains:DW,requirement_arrow_neo:PW,requirement_contains_neo:RW},qW=yW,WW={common:El,getConfig:Ct,insertCluster:Pq,insertEdge:xW,insertEdgeLabel:hW,insertMarkers:qW,insertNode:L_,interpolateToCurve:Mg,labelHelper:Oe,log:oe,positionEdgeLabel:uW},xl={},I_=v(e=>{for(const t of e)xl[t.name]=t},"registerLayoutLoaders"),HW=v(()=>{I_([{name:"dagre",loader:v(async()=>await We(()=>import("./dagre-VKFMJZFB-Y5V-7U3p.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),"loader")},{name:"swimlane",loader:v(async()=>await We(()=>import("./swimlanes-5IMT3BWC-DRR41dsQ.js"),__vite__mapDeps([10,7,5,6,8,1,2,3,9])),"loader")},{name:"cose-bilkent",loader:v(async()=>await We(()=>import("./cose-bilkent-JH36ORCC-DnVcT6R6.js"),__vite__mapDeps([11,9,5,6,7,8])),"loader")}])},"registerDefaultLayoutLoaders");HW();var zee=v(async(e,t,r)=>{if(!(e.layoutAlgorithm in xl))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(const d of e.nodes){const f=d.domId||d.id;d.domId=`${e.diagramId}-${f}`}const n=xl[e.layoutAlgorithm],i=await n.loader(),{theme:s,themeVariables:o}=e.config,{useGradient:a,gradientStart:l,gradientStop:h}=o,u=t.attr("id");if(t.append("defs").append("filter").attr("id",`${u}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${s!=null&&s.includes("dark")?"#FFFFFF":"#000000"}`),t.append("defs").append("filter").attr("id",`${u}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${s!=null&&s.includes("dark")?"#FFFFFF":"#000000"}`),a){const d=t.append("linearGradient").attr("id",t.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");d.append("svg:stop").attr("offset","0%").attr("stop-color",l).attr("stop-opacity",1),d.append("svg:stop").attr("offset","100%").attr("stop-color",h).attr("stop-opacity",1)}return i.render(e,t,WW,{algorithm:n.algorithm},r)},"render"),qee=v((e="",{fallback:t="dagre"}={})=>{if(e in xl)return e;if(t in xl)return oe.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),ex="comm",F_="rule",O_="decl",UW="@media",YW="@import",VW="@supports",GW="@namespace",Rp="@keyframes",$_="@layer",XW="@scope",KW=Math.abs,Ka=String.fromCharCode;function P_(e){return e.trim()}function zp(e,t,r){return e.replace(t,r)}function Xs(e,t){return e.charCodeAt(t)|0}function No(e,t,r){return e.slice(t,r)}function pn(e){return e.length}function D_(e){return e.length}function kc(e,t){return t.push(e),e}var Wu=1,Eo=1,R_=0,qr=0,It=0,Ho="";function tx(e,t,r,n,i,s,o,a){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:Wu,column:Eo,length:o,return:"",siblings:a}}function QW(){return It}function JW(){return It=qr>0?Xs(Ho,--qr):0,Eo--,It===10&&(Eo=1,Wu--),It}function nn(){return It=qr<R_?Xs(Ho,qr++):0,Eo++,It===10&&(Eo=1,Wu++),It}function li(){return Xs(Ho,qr)}function Kc(){return qr}function Hu(e,t){return No(Ho,e,t)}function yl(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function ZW(e){return Wu=Eo=1,R_=pn(Ho=e),qr=0,[]}function eH(e){return Ho="",e}function rf(e){return P_(Hu(qr-1,qp(e===91?e+2:e===40?e+1:e)))}function tH(e){for(;(It=li())&&It<33;)nn();return yl(e)>2||yl(It)>3?"":" "}function rH(e,t){for(;--t&&nn()&&!(It<48||It>102||It>57&&It<65||It>70&&It<97););return Hu(e,Kc()+(t<6&&li()==32&&nn()==32))}function qp(e){for(;nn();)switch(It){case e:return qr;case 34:case 39:e!==34&&e!==39&&qp(It);break;case 40:e===41&&qp(e);break;case 92:nn();break}return qr}function nH(e,t){for(;nn()&&e+It!==57;)if(e+It===84&&li()===47)break;return"/*"+Hu(t,qr-1)+"*"+Ka(e===47?e:nn())}function iH(e){for(;!yl(li());)nn();return Hu(e,qr)}function sH(e){return eH(Qc("",null,null,null,[""],e=ZW(e),0,[0],e))}function Qc(e,t,r,n,i,s,o,a,l){for(var h=0,u=0,d=o,f=0,p=0,m=0,x=1,g=1,y=1,k=0,b=0,w="",T=i,S=s,j=n,E=w;g;)switch(m=b,b=nn()){case 40:m!=108&&Xs(E,d-1)==58?(k++,E+="("):E+=rf(b);break;case 41:k--,E+=")";break;case 34:case 39:case 91:E+=rf(b);break;case 9:case 10:case 13:case 32:if(k>0){E+=Ka(b);break}E+=tH(m);break;case 92:E+=rH(Kc()-1,7);continue;case 47:switch(li()){case 42:case 47:kc(oH(nH(nn(),Kc()),t,r,l),l),(yl(m||1)==5||yl(li()||1)==5)&&pn(E)&&No(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*x:a[h++]=pn(E)*y;case 125*x:case 59:case 0:if(k>0&&b){E+=Ka(b);break}switch(b){case 0:case 125:g=0;case 59+u:y==-1&&(E=zp(E,/\f/g,"")),p>0&&(pn(E)-d||x===0)&&kc(p>32?fb(E+";",n,r,d-1,l):fb(zp(E," ","")+";",n,r,d-2,l),l);break;case 59:E+=";";default:if(kc(j=db(E,t,r,h,u,i,a,w,T=[],S=[],d,s),s),b===123)if(u===0)Qc(E,t,j,j,T,s,d,a,S);else{switch(f){case 99:if(Xs(E,3)===110)break;case 108:if(Xs(E,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Qc(e,j,j,n&&kc(db(e,j,j,0,0,i,a,w,i,T=[],d,S),S),i,S,d,a,n?T:S):Qc(E,j,j,j,[""],S,0,a,S)}}h=u=p=0,x=y=1,w=E="",d=o;break;case 58:d=1+pn(E),p=m;default:if(x<1){if(b==123)--x;else if(b==125&&x++==0&&JW()==125)continue}switch(E+=Ka(b),b*x){case 38:y=u>0?1:(E+="\f",-1);break;case 44:if(k>0)break;a[h++]=(pn(E)-1)*y,y=1;break;case 64:li()===45&&(E+=rf(nn())),f=li(),u=d=pn(w=E+=iH(Kc())),b++;break;case 45:m===45&&pn(E)==2&&(x=0)}}return s}function db(e,t,r,n,i,s,o,a,l,h,u,d){for(var f=i-1,p=i===0?s:[""],m=D_(p),x=0,g=0,y=0;x<n;++x)for(var k=0,b=No(e,f+1,f=KW(g=o[x])),w=e;k<m;++k)(w=P_(g>0?p[k]+" "+b:zp(b,/&\f/g,p[k])))&&(l[y++]=w);return tx(e,t,r,i===0?F_:a,l,h,u,d)}function oH(e,t,r,n){return tx(e,t,r,ex,Ka(QW()),No(e,2,-2),0,n)}function fb(e,t,r,n,i){return tx(e,t,r,O_,No(e,0,n),No(e,n+1,-1),n,i)}function Wp(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function aH(e,t,r,n){switch(e.type){case $_:if(e.children.length)break;case YW:case GW:case O_:return e.return=e.return||e.value;case ex:return"";case Rp:return e.return=e.value+"{"+Wp(e.children,n)+"}";case F_:if(!pn(e.value=e.props.join(",")))return""}return pn(r=Wp(e.children,n))?e.return=e.value+"{"+r+"}":""}function lH(e){var t=D_(e);return function(r,n,i,s){for(var o="",a=0;a<t;a++)o+=e[a](r,n,i,s)||"";return o}}var z_="c4",cH=v(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),hH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./c4Diagram-LMCZKHZV-CxlkWMRK.js");return{diagram:t}},__vite__mapDeps([12,13,5,6,7,8,9]));return{id:z_,diagram:e}},"loader"),uH={id:z_,detector:cH,loader:hH},dH=uH,q_="flowchart",fH=v((e,t)=>{var r,n;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((n=t==null?void 0:t.flowchart)==null?void 0:n.defaultRenderer)==="elk"?!1:/^\s*graph/.test(e)},"detector"),pH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DHYupfOu.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([14,15,16,17,13,18]));return{id:q_,diagram:e}},"loader"),mH={id:q_,detector:fH,loader:pH},gH=mH,W_="flowchart-v2",xH=v((e,t)=>{var r,n,i;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((n=t==null?void 0:t.flowchart)==null?void 0:n.defaultRenderer)==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(e))},"detector"),yH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DHYupfOu.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([14,15,16,17,13,18]));return{id:W_,diagram:e}},"loader"),bH={id:W_,detector:xH,loader:yH},kH=bH,H_="swimlane",CH=v(e=>/^\s*swimlane-beta\b/.test(e),"detector"),wH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./swimlanesDiagram-G3AALYLV-C4RhLkZo.js");return{diagram:t}},__vite__mapDeps([19,14,15,16,17,13,18,5,6,7,8,9]));return{id:H_,diagram:e}},"loader"),vH={id:H_,detector:CH,loader:wH},SH=vH,U_="er",TH=v(e=>/^\s*erDiagram/.test(e),"detector"),_H=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./erDiagram-Q63AITRT-DGnL3kW1.js");return{diagram:t}},__vite__mapDeps([20,16,17,18,5,6,7,8,9]));return{id:U_,diagram:e}},"loader"),jH={id:U_,detector:TH,loader:_H},NH=jH,Y_="gitGraph",EH=v(e=>/^\s*gitGraph/.test(e),"detector"),LH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./gitGraphDiagram-IHSO6WYX-B9_OP4Fs.js");return{diagram:t}},__vite__mapDeps([21,22,23,24,7,5,6,8,9]));return{id:Y_,diagram:e}},"loader"),BH={id:Y_,detector:EH,loader:LH},AH=BH,V_="gantt",MH=v(e=>/^\s*gantt/.test(e),"detector"),IH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./ganttDiagram-NO4QXBWP-B1B2zpwR.js");return{diagram:t}},__vite__mapDeps([25,5,6,26,27,28,7,8,9]));return{id:V_,diagram:e}},"loader"),FH={id:V_,detector:MH,loader:IH},OH=FH,G_="info",$H=v(e=>/^\s*info/.test(e),"detector"),PH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./infoDiagram-FWYZ7A6U-D-a34TqE.js");return{diagram:t}},__vite__mapDeps([29,24,7,5,6,8,9]));return{id:G_,diagram:e}},"loader"),DH={id:G_,detector:$H,loader:PH},X_="pie",RH=v(e=>/^\s*pie/.test(e),"detector"),zH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./pieDiagram-ENE6RG2P-1ZfqxHkL.js");return{diagram:t}},__vite__mapDeps([30,23,24,7,5,6,8,31,32,27,9]));return{id:X_,diagram:e}},"loader"),qH={id:X_,detector:RH,loader:zH},K_="quadrantChart",WH=v(e=>/^\s*quadrantChart/.test(e),"detector"),HH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./quadrantDiagram-ABIIQ3AL-Owx49uiJ.js");return{diagram:t}},__vite__mapDeps([33,26,27,28,5,6,7,8,9]));return{id:K_,diagram:e}},"loader"),UH={id:K_,detector:WH,loader:HH},YH=UH,Q_="xychart",VH=v(e=>/^\s*xychart(-beta)?/.test(e),"detector"),GH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./xychartDiagram-FW5EYKEG-BYDWGXbZ.js");return{diagram:t}},__vite__mapDeps([34,27,32,26,28,5,6,7,8,9]));return{id:Q_,diagram:e}},"loader"),XH={id:Q_,detector:VH,loader:GH},KH=XH,J_="requirement",QH=v(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),JH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./requirementDiagram-TGXJPOKE-fqmHs_5o.js");return{diagram:t}},__vite__mapDeps([35,16,17,5,6,7,8,9]));return{id:J_,diagram:e}},"loader"),ZH={id:J_,detector:QH,loader:JH},eU=ZH,Z_="sequence",tU=v(e=>/^\s*sequenceDiagram/.test(e),"detector"),rU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./sequenceDiagram-DBY2YBRQ-CnPuB3fy.js");return{diagram:t}},__vite__mapDeps([36,22,13,5,6,7,8,9]));return{id:Z_,diagram:e}},"loader"),nU={id:Z_,detector:tU,loader:rU},iU=nU,ej="class",sU=v((e,t)=>{var r;return((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e)},"detector"),oU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./classDiagram-OUVF2IWQ-BIvgPTgh.js");return{diagram:t}},__vite__mapDeps([37,38,15,16,17,13,5,6,7,8,9]));return{id:ej,diagram:e}},"loader"),aU={id:ej,detector:sU,loader:oU},lU=aU,tj="classDiagram",cU=v((e,t)=>{var r;return/^\s*classDiagram/.test(e)&&((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e)},"detector"),hU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./classDiagram-v2-EOCWNBFH-BIvgPTgh.js");return{diagram:t}},__vite__mapDeps([39,38,15,16,17,13,5,6,7,8,9]));return{id:tj,diagram:e}},"loader"),uU={id:tj,detector:cU,loader:hU},dU=uU,rj="state",fU=v((e,t)=>{var r;return((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e)},"detector"),pU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./stateDiagram-2N3HPSRC-GVwpflU5.js");return{diagram:t}},__vite__mapDeps([40,41,16,17,13,2,4,3,5,6,7,8,9]));return{id:rj,diagram:e}},"loader"),mU={id:rj,detector:fU,loader:pU},gU=mU,nj="stateDiagram",xU=v((e,t)=>{var r;return!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),yU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./stateDiagram-v2-6OUMAXLB-DCGIHFu9.js");return{diagram:t}},__vite__mapDeps([42,41,16,17,13,5,6,7,8,9]));return{id:nj,diagram:e}},"loader"),bU={id:nj,detector:xU,loader:yU},kU=bU,ij="journey",CU=v(e=>/^\s*journey/.test(e),"detector"),wU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./journeyDiagram-5HDEW3XC-B4lm0RBa.js");return{diagram:t}},__vite__mapDeps([43,15,13,31,5,6,7,8,9]));return{id:ij,diagram:e}},"loader"),vU={id:ij,detector:CU,loader:wU},SU=vU,TU=v((e,t,r)=>{oe.debug(`rendering svg for syntax error
811
- `);const n=ez(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Fw(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),sj={draw:TU},_U=sj,jU={db:{},renderer:sj,parser:{parse:v(()=>{},"parse")}},NU=jU,oj="flowchart-elk",EU=v((e,t={})=>{var r;return/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(t.layout="elk",!0):!1},"detector"),LU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-DHYupfOu.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([14,15,16,17,13,18]));return{id:oj,diagram:e}},"loader"),BU={id:oj,detector:EU,loader:LU},AU=BU,aj="timeline",MU=v(e=>/^\s*timeline/.test(e),"detector"),IU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./timeline-definition-FHXFAJF6-ePaEemL7.js");return{diagram:t}},__vite__mapDeps([44,31,5,6,7,8,9]));return{id:aj,diagram:e}},"loader"),FU={id:aj,detector:MU,loader:IU},OU=FU,lj="mindmap",$U=v(e=>/^\s*mindmap/.test(e),"detector"),PU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./mindmap-definition-LN4V7U3C-CvswbRgd.js");return{diagram:t}},__vite__mapDeps([45,16,17,5,6,7,8,9]));return{id:lj,diagram:e}},"loader"),DU={id:lj,detector:$U,loader:PU},RU=DU,cj="kanban",zU=v(e=>/^\s*kanban/.test(e),"detector"),qU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./kanban-definition-HUTT4EX6-msvfouRX.js");return{diagram:t}},__vite__mapDeps([46,15,5,6,7,8,9]));return{id:cj,diagram:e}},"loader"),WU={id:cj,detector:zU,loader:qU},HU=WU,hj="sankey",UU=v(e=>/^\s*sankey(-beta)?/.test(e),"detector"),YU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./sankeyDiagram-HTMAVEWB-D0Q3FeKV.js");return{diagram:t}},__vite__mapDeps([47,32,27,5,6,7,8,9]));return{id:hj,diagram:e}},"loader"),VU={id:hj,detector:UU,loader:YU},GU=VU,uj="packet",XU=v(e=>/^\s*packet(-beta)?/.test(e),"detector"),KU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-NH7WQ7WH-CHO1JntO.js");return{diagram:t}},__vite__mapDeps([48,23,24,7,5,6,8,9]));return{id:uj,diagram:e}},"loader"),QU={id:uj,detector:XU,loader:KU},dj="radar",JU=v(e=>/^\s*radar-beta/.test(e),"detector"),ZU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-WEI45ONY-C8KN8YnF.js");return{diagram:t}},__vite__mapDeps([49,23,24,7,5,6,8,9]));return{id:dj,diagram:e}},"loader"),eY={id:dj,detector:JU,loader:ZU},fj="block",tY=v(e=>/^\s*block(-beta)?/.test(e),"detector"),rY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./blockDiagram-677ZJIJ3-DUyBayYK.js");return{diagram:t}},__vite__mapDeps([50,15,2,18,5,6,7,8,9]));return{id:fj,diagram:e}},"loader"),nY={id:fj,detector:tY,loader:rY},iY=nY,pj="treeView",sY=v(e=>/^\s*treeView-beta/.test(e),"detector"),oY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-OA4YK3LP-mBWP2D1G.js");return{diagram:t}},__vite__mapDeps([51,22,23,24,7,5,6,8,9]));return{id:pj,diagram:e}},"loader"),aY={id:pj,detector:sY,loader:oY},lY=aY,mj="architecture",cY=v(e=>/^\s*architecture/.test(e),"detector"),hY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./architectureDiagram-ZJ3FMSHR-DqHrb5_F.js");return{diagram:t}},__vite__mapDeps([52,23,24,7,5,6,8,9]));return{id:mj,diagram:e}},"loader"),uY={id:mj,detector:cY,loader:hY},dY=uY,gj="eventmodeling",fY=v(e=>/^\s*eventmodeling/.test(e),"detector"),pY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-FQU43EPY-I7wDE-Xp.js");return{diagram:t}},__vite__mapDeps([53,23,24,7,5,6,8,9]));return{id:gj,diagram:e}},"loader"),mY={id:gj,detector:fY,loader:pY},gY=mY,xj="ishikawa",xY=v(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),yY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./ishikawaDiagram-FXEZZL3T-h0bUvXGV.js");return{diagram:t}},__vite__mapDeps([54,5,6,7,8,9]));return{id:xj,diagram:e}},"loader"),bY={id:xj,detector:xY,loader:yY},yj="venn",kY=v(e=>/^\s*venn-beta/.test(e),"detector"),wY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./vennDiagram-L72KCM5P-BAYP8dNF.js");return{diagram:t}},__vite__mapDeps([55,5,6,7,8,9]));return{id:yj,diagram:e}},"loader"),vY={id:yj,detector:kY,loader:wY},SY=vY,bj="treemap",TY=v(e=>/^\s*treemap/.test(e),"detector"),_Y=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-G47NLZAW-DapGa1HI.js");return{diagram:t}},__vite__mapDeps([56,23,17,24,7,5,6,8,28,32,27,9]));return{id:bj,diagram:e}},"loader"),jY={id:bj,detector:TY,loader:_Y},kj="wardley",NY=v(e=>/^\s*wardley-beta/i.test(e),"detector"),EY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./wardleyDiagram-EHGQE667-jNVH5Adm.js");return{diagram:t}},__vite__mapDeps([57,23,24,7,5,6,8,9]));return{id:kj,diagram:e}},"loader"),LY={id:kj,detector:NY,loader:EY},BY=LY,Cj="cynefin",AY=v(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),"detector"),MY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./cynefinDiagram-TSTJHNR4-BowkQhEu.js");return{diagram:t}},__vite__mapDeps([58,23,24,7,5,6,8,9]));return{id:Cj,diagram:e}},"loader"),IY={id:Cj,detector:AY,loader:MY},wj="railroad",FY=v(e=>/^\s*railroad-beta/i.test(e),"detector"),OY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./railroadDiagram-RFXS5EU6-B7RiaIGf.js");return{diagram:t}},__vite__mapDeps([59,60,23,24,7,5,6,8,9]));return{id:wj,diagram:e}},"loader"),$Y={id:wj,detector:FY,loader:OY},vj="railroadEbnf",PY=v(e=>/^\s*railroad-ebnf-beta/i.test(e),"detector"),DY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./ebnfDiagram-CCIWWBDH-ZkJG9NOL.js");return{diagram:t}},__vite__mapDeps([61,60,23,24,7,5,6,8,9]));return{id:vj,diagram:e}},"loader"),RY={id:vj,detector:PY,loader:DY},Sj="railroadAbnf",zY=v(e=>/^\s*railroad-abnf-beta/i.test(e),"detector"),qY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./abnfDiagram-VRR7QNED-Dhb7O5rp.js");return{diagram:t}},__vite__mapDeps([62,60,23,24,7,5,6,8,9]));return{id:Sj,diagram:e}},"loader"),WY={id:Sj,detector:zY,loader:qY},Tj="railroadPeg",HY=v(e=>/^\s*railroad-peg-beta/i.test(e),"detector"),UY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./pegDiagram-2B236MQR-DZEmIYC7.js");return{diagram:t}},__vite__mapDeps([63,60,23,24,7,5,6,8,9]));return{id:Tj,diagram:e}},"loader"),YY={id:Tj,detector:HY,loader:UY},pb=!1,Uu=v(()=>{pb||(pb=!0,vh("error",NU,e=>e.toLowerCase().trim()==="error"),vh("---",{db:{clear:v(()=>{},"clear")},styles:{},renderer:{draw:v(()=>{},"draw")},parser:{parse:v(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:v(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Xf(AU,RU,dY),Xf(dH,HU,dU,lU,NH,OH,DH,qH,eU,iU,SH,kH,gH,OU,AH,kU,gU,SU,YH,GU,QU,KH,iY,gY,lY,eY,bY,jY,$Y,RY,WY,YY,SY,BY,IY))},"addDiagrams"),VY=v(async()=>{oe.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Ki).map(async([r,{detector:n,loader:i}])=>{if(i)try{Zf(r)}catch{try{const{diagram:s,id:o}=await i();vh(o,s,n)}catch(s){throw oe.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Ki[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){oe.error(`Failed to load ${t.length} external diagrams`);for(const r of t)oe.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),GY="graphics-document document";function _j(e,t){e.attr("role",GY),t!==""&&e.attr("aria-roledescription",t)}v(_j,"setA11yDiagramInfo");function jj(e,t,r,n){if(e.insert!==void 0){if(r){const i=`chart-desc-${n}`;e.attr("aria-describedby",i),e.insert("desc",":first-child").attr("id",i).text(r)}if(t){const i=`chart-title-${n}`;e.attr("aria-labelledby",i),e.insert("title",":first-child").attr("id",i).text(t)}}}v(jj,"addSVGa11yTitleDescription");var Hi,Hp=(Hi=class{constructor(t,r,n,i,s){this.type=t,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(t,r={}){var h,u;const n=Ct(),i=ng(t,n);t=o7(t)+`
810
+ L0,20`).attr("stroke-linejoin","miter")},"requirement_arrow_neo"),DW=v((e,t,r)=>{const n=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").append("g");n.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),n.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),n.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10)},"requirement_contains"),RW=v((e,t,r)=>{const n=Ct(),{themeVariables:i}=n,{strokeWidth:s}=i,o=e.append("defs").append("marker").attr("id",r+"_"+t+"-requirement_containsStart").attr("refX",0).attr("refY",10).attr("markerWidth",20).attr("markerHeight",20).attr("orient","auto").attr("markerUnits","userSpaceOnUse").append("g");o.append("circle").attr("cx",10).attr("cy",10).attr("r",9).attr("fill","none"),o.append("line").attr("x1",1).attr("x2",19).attr("y1",10).attr("y2",10),o.append("line").attr("y1",1).attr("y2",19).attr("x1",10).attr("x2",10),o.selectAll("*").attr("stroke-width",`${s}`)},"requirement_contains_neo"),zW={extension:bW,composition:kW,aggregation:CW,dependency:wW,lollipop:vW,point:SW,circle:TW,cross:_W,barb:jW,barbNeo:NW,only_one:EW,zero_or_one:LW,one_or_more:BW,zero_or_more:AW,only_one_neo:MW,zero_or_one_neo:IW,one_or_more_neo:FW,zero_or_more_neo:OW,requirement_arrow:$W,requirement_contains:DW,requirement_arrow_neo:PW,requirement_contains_neo:RW},qW=yW,WW={common:El,getConfig:Ct,insertCluster:Pq,insertEdge:xW,insertEdgeLabel:hW,insertMarkers:qW,insertNode:L_,interpolateToCurve:Mg,labelHelper:Oe,log:oe,positionEdgeLabel:uW},xl={},I_=v(e=>{for(const t of e)xl[t.name]=t},"registerLayoutLoaders"),HW=v(()=>{I_([{name:"dagre",loader:v(async()=>await We(()=>import("./dagre-VKFMJZFB-CzVd8ZeS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9])),"loader")},{name:"swimlane",loader:v(async()=>await We(()=>import("./swimlanes-5IMT3BWC-Dx9Lc7jS.js"),__vite__mapDeps([10,7,5,6,8,1,2,3,9])),"loader")},{name:"cose-bilkent",loader:v(async()=>await We(()=>import("./cose-bilkent-JH36ORCC-DV1msdt2.js"),__vite__mapDeps([11,9,5,6,7,8])),"loader")}])},"registerDefaultLayoutLoaders");HW();var zee=v(async(e,t,r)=>{if(!(e.layoutAlgorithm in xl))throw new Error(`Unknown layout algorithm: ${e.layoutAlgorithm}`);if(e.diagramId)for(const d of e.nodes){const f=d.domId||d.id;d.domId=`${e.diagramId}-${f}`}const n=xl[e.layoutAlgorithm],i=await n.loader(),{theme:s,themeVariables:o}=e.config,{useGradient:a,gradientStart:l,gradientStop:h}=o,u=t.attr("id");if(t.append("defs").append("filter").attr("id",`${u}-drop-shadow`).attr("height","130%").attr("width","130%").append("feDropShadow").attr("dx","4").attr("dy","4").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${s!=null&&s.includes("dark")?"#FFFFFF":"#000000"}`),t.append("defs").append("filter").attr("id",`${u}-drop-shadow-small`).attr("height","150%").attr("width","150%").append("feDropShadow").attr("dx","2").attr("dy","2").attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",`${s!=null&&s.includes("dark")?"#FFFFFF":"#000000"}`),a){const d=t.append("linearGradient").attr("id",t.attr("id")+"-gradient").attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");d.append("svg:stop").attr("offset","0%").attr("stop-color",l).attr("stop-opacity",1),d.append("svg:stop").attr("offset","100%").attr("stop-color",h).attr("stop-opacity",1)}return i.render(e,t,WW,{algorithm:n.algorithm},r)},"render"),qee=v((e="",{fallback:t="dagre"}={})=>{if(e in xl)return e;if(t in xl)return oe.warn(`Layout algorithm ${e} is not registered. Using ${t} as fallback.`),t;throw new Error(`Both layout algorithms ${e} and ${t} are not registered.`)},"getRegisteredLayoutAlgorithm"),ex="comm",F_="rule",O_="decl",UW="@media",YW="@import",VW="@supports",GW="@namespace",Rp="@keyframes",$_="@layer",XW="@scope",KW=Math.abs,Ka=String.fromCharCode;function P_(e){return e.trim()}function zp(e,t,r){return e.replace(t,r)}function Xs(e,t){return e.charCodeAt(t)|0}function No(e,t,r){return e.slice(t,r)}function pn(e){return e.length}function D_(e){return e.length}function kc(e,t){return t.push(e),e}var Wu=1,Eo=1,R_=0,qr=0,It=0,Ho="";function tx(e,t,r,n,i,s,o,a){return{value:e,root:t,parent:r,type:n,props:i,children:s,line:Wu,column:Eo,length:o,return:"",siblings:a}}function QW(){return It}function JW(){return It=qr>0?Xs(Ho,--qr):0,Eo--,It===10&&(Eo=1,Wu--),It}function nn(){return It=qr<R_?Xs(Ho,qr++):0,Eo++,It===10&&(Eo=1,Wu++),It}function li(){return Xs(Ho,qr)}function Kc(){return qr}function Hu(e,t){return No(Ho,e,t)}function yl(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function ZW(e){return Wu=Eo=1,R_=pn(Ho=e),qr=0,[]}function eH(e){return Ho="",e}function rf(e){return P_(Hu(qr-1,qp(e===91?e+2:e===40?e+1:e)))}function tH(e){for(;(It=li())&&It<33;)nn();return yl(e)>2||yl(It)>3?"":" "}function rH(e,t){for(;--t&&nn()&&!(It<48||It>102||It>57&&It<65||It>70&&It<97););return Hu(e,Kc()+(t<6&&li()==32&&nn()==32))}function qp(e){for(;nn();)switch(It){case e:return qr;case 34:case 39:e!==34&&e!==39&&qp(It);break;case 40:e===41&&qp(e);break;case 92:nn();break}return qr}function nH(e,t){for(;nn()&&e+It!==57;)if(e+It===84&&li()===47)break;return"/*"+Hu(t,qr-1)+"*"+Ka(e===47?e:nn())}function iH(e){for(;!yl(li());)nn();return Hu(e,qr)}function sH(e){return eH(Qc("",null,null,null,[""],e=ZW(e),0,[0],e))}function Qc(e,t,r,n,i,s,o,a,l){for(var h=0,u=0,d=o,f=0,p=0,m=0,x=1,g=1,y=1,k=0,b=0,w="",T=i,S=s,j=n,E=w;g;)switch(m=b,b=nn()){case 40:m!=108&&Xs(E,d-1)==58?(k++,E+="("):E+=rf(b);break;case 41:k--,E+=")";break;case 34:case 39:case 91:E+=rf(b);break;case 9:case 10:case 13:case 32:if(k>0){E+=Ka(b);break}E+=tH(m);break;case 92:E+=rH(Kc()-1,7);continue;case 47:switch(li()){case 42:case 47:kc(oH(nH(nn(),Kc()),t,r,l),l),(yl(m||1)==5||yl(li()||1)==5)&&pn(E)&&No(E,-1,void 0)!==" "&&(E+=" ");break;default:E+="/"}break;case 123*x:a[h++]=pn(E)*y;case 125*x:case 59:case 0:if(k>0&&b){E+=Ka(b);break}switch(b){case 0:case 125:g=0;case 59+u:y==-1&&(E=zp(E,/\f/g,"")),p>0&&(pn(E)-d||x===0)&&kc(p>32?fb(E+";",n,r,d-1,l):fb(zp(E," ","")+";",n,r,d-2,l),l);break;case 59:E+=";";default:if(kc(j=db(E,t,r,h,u,i,a,w,T=[],S=[],d,s),s),b===123)if(u===0)Qc(E,t,j,j,T,s,d,a,S);else{switch(f){case 99:if(Xs(E,3)===110)break;case 108:if(Xs(E,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Qc(e,j,j,n&&kc(db(e,j,j,0,0,i,a,w,i,T=[],d,S),S),i,S,d,a,n?T:S):Qc(E,j,j,j,[""],S,0,a,S)}}h=u=p=0,x=y=1,w=E="",d=o;break;case 58:d=1+pn(E),p=m;default:if(x<1){if(b==123)--x;else if(b==125&&x++==0&&JW()==125)continue}switch(E+=Ka(b),b*x){case 38:y=u>0?1:(E+="\f",-1);break;case 44:if(k>0)break;a[h++]=(pn(E)-1)*y,y=1;break;case 64:li()===45&&(E+=rf(nn())),f=li(),u=d=pn(w=E+=iH(Kc())),b++;break;case 45:m===45&&pn(E)==2&&(x=0)}}return s}function db(e,t,r,n,i,s,o,a,l,h,u,d){for(var f=i-1,p=i===0?s:[""],m=D_(p),x=0,g=0,y=0;x<n;++x)for(var k=0,b=No(e,f+1,f=KW(g=o[x])),w=e;k<m;++k)(w=P_(g>0?p[k]+" "+b:zp(b,/&\f/g,p[k])))&&(l[y++]=w);return tx(e,t,r,i===0?F_:a,l,h,u,d)}function oH(e,t,r,n){return tx(e,t,r,ex,Ka(QW()),No(e,2,-2),0,n)}function fb(e,t,r,n,i){return tx(e,t,r,O_,No(e,0,n),No(e,n+1,-1),n,i)}function Wp(e,t){for(var r="",n=0;n<e.length;n++)r+=t(e[n],n,e,t)||"";return r}function aH(e,t,r,n){switch(e.type){case $_:if(e.children.length)break;case YW:case GW:case O_:return e.return=e.return||e.value;case ex:return"";case Rp:return e.return=e.value+"{"+Wp(e.children,n)+"}";case F_:if(!pn(e.value=e.props.join(",")))return""}return pn(r=Wp(e.children,n))?e.return=e.value+"{"+r+"}":""}function lH(e){var t=D_(e);return function(r,n,i,s){for(var o="",a=0;a<t;a++)o+=e[a](r,n,i,s)||"";return o}}var z_="c4",cH=v(e=>/^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(e),"detector"),hH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./c4Diagram-LMCZKHZV-DKyTJh_m.js");return{diagram:t}},__vite__mapDeps([12,13,5,6,7,8,9]));return{id:z_,diagram:e}},"loader"),uH={id:z_,detector:cH,loader:hH},dH=uH,q_="flowchart",fH=v((e,t)=>{var r,n;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-wrapper"||((n=t==null?void 0:t.flowchart)==null?void 0:n.defaultRenderer)==="elk"?!1:/^\s*graph/.test(e)},"detector"),pH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-BC1lVLbe.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([14,15,16,17,13,18]));return{id:q_,diagram:e}},"loader"),mH={id:q_,detector:fH,loader:pH},gH=mH,W_="flowchart-v2",xH=v((e,t)=>{var r,n,i;return((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="dagre-d3"?!1:(((n=t==null?void 0:t.flowchart)==null?void 0:n.defaultRenderer)==="elk"&&(t.layout="elk"),/^\s*graph/.test(e)&&((i=t==null?void 0:t.flowchart)==null?void 0:i.defaultRenderer)==="dagre-wrapper"?!0:/^\s*flowchart/.test(e))},"detector"),yH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-BC1lVLbe.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([14,15,16,17,13,18]));return{id:W_,diagram:e}},"loader"),bH={id:W_,detector:xH,loader:yH},kH=bH,H_="swimlane",CH=v(e=>/^\s*swimlane-beta\b/.test(e),"detector"),wH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./swimlanesDiagram-G3AALYLV-CJMK8pFj.js");return{diagram:t}},__vite__mapDeps([19,14,15,16,17,13,18,5,6,7,8,9]));return{id:H_,diagram:e}},"loader"),vH={id:H_,detector:CH,loader:wH},SH=vH,U_="er",TH=v(e=>/^\s*erDiagram/.test(e),"detector"),_H=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./erDiagram-Q63AITRT-Bd5yIkwb.js");return{diagram:t}},__vite__mapDeps([20,16,17,18,5,6,7,8,9]));return{id:U_,diagram:e}},"loader"),jH={id:U_,detector:TH,loader:_H},NH=jH,Y_="gitGraph",EH=v(e=>/^\s*gitGraph/.test(e),"detector"),LH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./gitGraphDiagram-IHSO6WYX-DZtA0qeo.js");return{diagram:t}},__vite__mapDeps([21,22,23,24,7,5,6,8,9]));return{id:Y_,diagram:e}},"loader"),BH={id:Y_,detector:EH,loader:LH},AH=BH,V_="gantt",MH=v(e=>/^\s*gantt/.test(e),"detector"),IH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./ganttDiagram-NO4QXBWP-CbHS2Md0.js");return{diagram:t}},__vite__mapDeps([25,5,6,26,27,28,7,8,9]));return{id:V_,diagram:e}},"loader"),FH={id:V_,detector:MH,loader:IH},OH=FH,G_="info",$H=v(e=>/^\s*info/.test(e),"detector"),PH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./infoDiagram-FWYZ7A6U-Caji6WpL.js");return{diagram:t}},__vite__mapDeps([29,24,7,5,6,8,9]));return{id:G_,diagram:e}},"loader"),DH={id:G_,detector:$H,loader:PH},X_="pie",RH=v(e=>/^\s*pie/.test(e),"detector"),zH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./pieDiagram-ENE6RG2P-DU_WHHdv.js");return{diagram:t}},__vite__mapDeps([30,23,24,7,5,6,8,31,32,27,9]));return{id:X_,diagram:e}},"loader"),qH={id:X_,detector:RH,loader:zH},K_="quadrantChart",WH=v(e=>/^\s*quadrantChart/.test(e),"detector"),HH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./quadrantDiagram-ABIIQ3AL-CDzGdzG9.js");return{diagram:t}},__vite__mapDeps([33,26,27,28,5,6,7,8,9]));return{id:K_,diagram:e}},"loader"),UH={id:K_,detector:WH,loader:HH},YH=UH,Q_="xychart",VH=v(e=>/^\s*xychart(-beta)?/.test(e),"detector"),GH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./xychartDiagram-FW5EYKEG-B-MsI0CO.js");return{diagram:t}},__vite__mapDeps([34,27,32,26,28,5,6,7,8,9]));return{id:Q_,diagram:e}},"loader"),XH={id:Q_,detector:VH,loader:GH},KH=XH,J_="requirement",QH=v(e=>/^\s*requirement(Diagram)?/.test(e),"detector"),JH=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./requirementDiagram-TGXJPOKE-DBLVKLPS.js");return{diagram:t}},__vite__mapDeps([35,16,17,5,6,7,8,9]));return{id:J_,diagram:e}},"loader"),ZH={id:J_,detector:QH,loader:JH},eU=ZH,Z_="sequence",tU=v(e=>/^\s*sequenceDiagram/.test(e),"detector"),rU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./sequenceDiagram-DBY2YBRQ-BCpYBQ8F.js");return{diagram:t}},__vite__mapDeps([36,22,13,5,6,7,8,9]));return{id:Z_,diagram:e}},"loader"),nU={id:Z_,detector:tU,loader:rU},iU=nU,ej="class",sU=v((e,t)=>{var r;return((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*classDiagram/.test(e)},"detector"),oU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./classDiagram-OUVF2IWQ-D0HUdgLP.js");return{diagram:t}},__vite__mapDeps([37,38,15,16,17,13,5,6,7,8,9]));return{id:ej,diagram:e}},"loader"),aU={id:ej,detector:sU,loader:oU},lU=aU,tj="classDiagram",cU=v((e,t)=>{var r;return/^\s*classDiagram/.test(e)&&((r=t==null?void 0:t.class)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!0:/^\s*classDiagram-v2/.test(e)},"detector"),hU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./classDiagram-v2-EOCWNBFH-D0HUdgLP.js");return{diagram:t}},__vite__mapDeps([39,38,15,16,17,13,5,6,7,8,9]));return{id:tj,diagram:e}},"loader"),uU={id:tj,detector:cU,loader:hU},dU=uU,rj="state",fU=v((e,t)=>{var r;return((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper"?!1:/^\s*stateDiagram/.test(e)},"detector"),pU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./stateDiagram-2N3HPSRC-DMroM4ld.js");return{diagram:t}},__vite__mapDeps([40,41,16,17,13,2,4,3,5,6,7,8,9]));return{id:rj,diagram:e}},"loader"),mU={id:rj,detector:fU,loader:pU},gU=mU,nj="stateDiagram",xU=v((e,t)=>{var r;return!!(/^\s*stateDiagram-v2/.test(e)||/^\s*stateDiagram/.test(e)&&((r=t==null?void 0:t.state)==null?void 0:r.defaultRenderer)==="dagre-wrapper")},"detector"),yU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./stateDiagram-v2-6OUMAXLB-cykL6dtf.js");return{diagram:t}},__vite__mapDeps([42,41,16,17,13,5,6,7,8,9]));return{id:nj,diagram:e}},"loader"),bU={id:nj,detector:xU,loader:yU},kU=bU,ij="journey",CU=v(e=>/^\s*journey/.test(e),"detector"),wU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./journeyDiagram-5HDEW3XC-Dnso1Q2f.js");return{diagram:t}},__vite__mapDeps([43,15,13,31,5,6,7,8,9]));return{id:ij,diagram:e}},"loader"),vU={id:ij,detector:CU,loader:wU},SU=vU,TU=v((e,t,r)=>{oe.debug(`rendering svg for syntax error
811
+ `);const n=ez(t),i=n.append("g");n.attr("viewBox","0 0 2412 512"),Fw(n,100,512,!0),i.append("path").attr("class","error-icon").attr("d","m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z"),i.append("path").attr("class","error-icon").attr("d","m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z"),i.append("path").attr("class","error-icon").attr("d","m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z"),i.append("path").attr("class","error-icon").attr("d","m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z"),i.append("path").attr("class","error-icon").attr("d","m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z"),i.append("path").attr("class","error-icon").attr("d","m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z"),i.append("text").attr("class","error-text").attr("x",1440).attr("y",250).attr("font-size","150px").style("text-anchor","middle").text("Syntax error in text"),i.append("text").attr("class","error-text").attr("x",1250).attr("y",400).attr("font-size","100px").style("text-anchor","middle").text(`mermaid version ${r}`)},"draw"),sj={draw:TU},_U=sj,jU={db:{},renderer:sj,parser:{parse:v(()=>{},"parse")}},NU=jU,oj="flowchart-elk",EU=v((e,t={})=>{var r;return/^\s*flowchart-elk/.test(e)||/^\s*(flowchart|graph)/.test(e)&&((r=t==null?void 0:t.flowchart)==null?void 0:r.defaultRenderer)==="elk"?(t.layout="elk",!0):!1},"detector"),LU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./flowDiagram-23GEKE2U-BC1lVLbe.js").then(r=>r.f);return{diagram:t}},__vite__mapDeps([14,15,16,17,13,18]));return{id:oj,diagram:e}},"loader"),BU={id:oj,detector:EU,loader:LU},AU=BU,aj="timeline",MU=v(e=>/^\s*timeline/.test(e),"detector"),IU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./timeline-definition-FHXFAJF6-SlkJLwrF.js");return{diagram:t}},__vite__mapDeps([44,31,5,6,7,8,9]));return{id:aj,diagram:e}},"loader"),FU={id:aj,detector:MU,loader:IU},OU=FU,lj="mindmap",$U=v(e=>/^\s*mindmap/.test(e),"detector"),PU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./mindmap-definition-LN4V7U3C-CBH5P268.js");return{diagram:t}},__vite__mapDeps([45,16,17,5,6,7,8,9]));return{id:lj,diagram:e}},"loader"),DU={id:lj,detector:$U,loader:PU},RU=DU,cj="kanban",zU=v(e=>/^\s*kanban/.test(e),"detector"),qU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./kanban-definition-HUTT4EX6-CnpPLKHm.js");return{diagram:t}},__vite__mapDeps([46,15,5,6,7,8,9]));return{id:cj,diagram:e}},"loader"),WU={id:cj,detector:zU,loader:qU},HU=WU,hj="sankey",UU=v(e=>/^\s*sankey(-beta)?/.test(e),"detector"),YU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./sankeyDiagram-HTMAVEWB-Be0dIvmC.js");return{diagram:t}},__vite__mapDeps([47,32,27,5,6,7,8,9]));return{id:hj,diagram:e}},"loader"),VU={id:hj,detector:UU,loader:YU},GU=VU,uj="packet",XU=v(e=>/^\s*packet(-beta)?/.test(e),"detector"),KU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-NH7WQ7WH-DOICKw5r.js");return{diagram:t}},__vite__mapDeps([48,23,24,7,5,6,8,9]));return{id:uj,diagram:e}},"loader"),QU={id:uj,detector:XU,loader:KU},dj="radar",JU=v(e=>/^\s*radar-beta/.test(e),"detector"),ZU=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-WEI45ONY-BmhIXYmr.js");return{diagram:t}},__vite__mapDeps([49,23,24,7,5,6,8,9]));return{id:dj,diagram:e}},"loader"),eY={id:dj,detector:JU,loader:ZU},fj="block",tY=v(e=>/^\s*block(-beta)?/.test(e),"detector"),rY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./blockDiagram-677ZJIJ3-B-FqnKY3.js");return{diagram:t}},__vite__mapDeps([50,15,2,18,5,6,7,8,9]));return{id:fj,diagram:e}},"loader"),nY={id:fj,detector:tY,loader:rY},iY=nY,pj="treeView",sY=v(e=>/^\s*treeView-beta/.test(e),"detector"),oY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-OA4YK3LP-CUV9PnRC.js");return{diagram:t}},__vite__mapDeps([51,22,23,24,7,5,6,8,9]));return{id:pj,diagram:e}},"loader"),aY={id:pj,detector:sY,loader:oY},lY=aY,mj="architecture",cY=v(e=>/^\s*architecture/.test(e),"detector"),hY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./architectureDiagram-ZJ3FMSHR-D7Dutd2o.js");return{diagram:t}},__vite__mapDeps([52,23,24,7,5,6,8,9]));return{id:mj,diagram:e}},"loader"),uY={id:mj,detector:cY,loader:hY},dY=uY,gj="eventmodeling",fY=v(e=>/^\s*eventmodeling/.test(e),"detector"),pY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-FQU43EPY-C2kUlpSd.js");return{diagram:t}},__vite__mapDeps([53,23,24,7,5,6,8,9]));return{id:gj,diagram:e}},"loader"),mY={id:gj,detector:fY,loader:pY},gY=mY,xj="ishikawa",xY=v(e=>/^\s*ishikawa(-beta)?\b/i.test(e),"detector"),yY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./ishikawaDiagram-FXEZZL3T-CNhNIQOK.js");return{diagram:t}},__vite__mapDeps([54,5,6,7,8,9]));return{id:xj,diagram:e}},"loader"),bY={id:xj,detector:xY,loader:yY},yj="venn",kY=v(e=>/^\s*venn-beta/.test(e),"detector"),wY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./vennDiagram-L72KCM5P-DH7Ad5bs.js");return{diagram:t}},__vite__mapDeps([55,5,6,7,8,9]));return{id:yj,diagram:e}},"loader"),vY={id:yj,detector:kY,loader:wY},SY=vY,bj="treemap",TY=v(e=>/^\s*treemap/.test(e),"detector"),_Y=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./diagram-G47NLZAW-Bpk-Et_a.js");return{diagram:t}},__vite__mapDeps([56,23,17,24,7,5,6,8,28,32,27,9]));return{id:bj,diagram:e}},"loader"),jY={id:bj,detector:TY,loader:_Y},kj="wardley",NY=v(e=>/^\s*wardley-beta/i.test(e),"detector"),EY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./wardleyDiagram-EHGQE667-yUzFRzyF.js");return{diagram:t}},__vite__mapDeps([57,23,24,7,5,6,8,9]));return{id:kj,diagram:e}},"loader"),LY={id:kj,detector:NY,loader:EY},BY=LY,Cj="cynefin",AY=v(e=>/^\s*cynefin-beta(?:[\s:]|$)/.test(e),"detector"),MY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./cynefinDiagram-TSTJHNR4-B9sLmzW7.js");return{diagram:t}},__vite__mapDeps([58,23,24,7,5,6,8,9]));return{id:Cj,diagram:e}},"loader"),IY={id:Cj,detector:AY,loader:MY},wj="railroad",FY=v(e=>/^\s*railroad-beta/i.test(e),"detector"),OY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./railroadDiagram-RFXS5EU6-DlRKrGUE.js");return{diagram:t}},__vite__mapDeps([59,60,23,24,7,5,6,8,9]));return{id:wj,diagram:e}},"loader"),$Y={id:wj,detector:FY,loader:OY},vj="railroadEbnf",PY=v(e=>/^\s*railroad-ebnf-beta/i.test(e),"detector"),DY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./ebnfDiagram-CCIWWBDH-BO_0Mcjb.js");return{diagram:t}},__vite__mapDeps([61,60,23,24,7,5,6,8,9]));return{id:vj,diagram:e}},"loader"),RY={id:vj,detector:PY,loader:DY},Sj="railroadAbnf",zY=v(e=>/^\s*railroad-abnf-beta/i.test(e),"detector"),qY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./abnfDiagram-VRR7QNED-DJ5dPOe-.js");return{diagram:t}},__vite__mapDeps([62,60,23,24,7,5,6,8,9]));return{id:Sj,diagram:e}},"loader"),WY={id:Sj,detector:zY,loader:qY},Tj="railroadPeg",HY=v(e=>/^\s*railroad-peg-beta/i.test(e),"detector"),UY=v(async()=>{const{diagram:e}=await We(async()=>{const{diagram:t}=await import("./pegDiagram-2B236MQR-C4FswqnY.js");return{diagram:t}},__vite__mapDeps([63,60,23,24,7,5,6,8,9]));return{id:Tj,diagram:e}},"loader"),YY={id:Tj,detector:HY,loader:UY},pb=!1,Uu=v(()=>{pb||(pb=!0,vh("error",NU,e=>e.toLowerCase().trim()==="error"),vh("---",{db:{clear:v(()=>{},"clear")},styles:{},renderer:{draw:v(()=>{},"draw")},parser:{parse:v(()=>{throw new Error("Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks")},"parse")},init:v(()=>null,"init")},e=>e.toLowerCase().trimStart().startsWith("---")),Xf(AU,RU,dY),Xf(dH,HU,dU,lU,NH,OH,DH,qH,eU,iU,SH,kH,gH,OU,AH,kU,gU,SU,YH,GU,QU,KH,iY,gY,lY,eY,bY,jY,$Y,RY,WY,YY,SY,BY,IY))},"addDiagrams"),VY=v(async()=>{oe.debug("Loading registered diagrams");const t=(await Promise.allSettled(Object.entries(Ki).map(async([r,{detector:n,loader:i}])=>{if(i)try{Zf(r)}catch{try{const{diagram:s,id:o}=await i();vh(o,s,n)}catch(s){throw oe.error(`Failed to load external diagram with key ${r}. Removing from detectors.`),delete Ki[r],s}}}))).filter(r=>r.status==="rejected");if(t.length>0){oe.error(`Failed to load ${t.length} external diagrams`);for(const r of t)oe.error(r);throw new Error(`Failed to load ${t.length} external diagrams`)}},"loadRegisteredDiagrams"),GY="graphics-document document";function _j(e,t){e.attr("role",GY),t!==""&&e.attr("aria-roledescription",t)}v(_j,"setA11yDiagramInfo");function jj(e,t,r,n){if(e.insert!==void 0){if(r){const i=`chart-desc-${n}`;e.attr("aria-describedby",i),e.insert("desc",":first-child").attr("id",i).text(r)}if(t){const i=`chart-title-${n}`;e.attr("aria-labelledby",i),e.insert("title",":first-child").attr("id",i).text(t)}}}v(jj,"addSVGa11yTitleDescription");var Hi,Hp=(Hi=class{constructor(t,r,n,i,s){this.type=t,this.text=r,this.db=n,this.parser=i,this.renderer=s}static async fromText(t,r={}){var h,u;const n=Ct(),i=ng(t,n);t=o7(t)+`
812
812
  `;try{Zf(i)}catch{const d=GP(i);if(!d)throw new Ew(`Diagram ${i} not found.`);const{id:f,diagram:p}=await d();vh(f,p)}const{db:s,parser:o,renderer:a,init:l}=Zf(i);return o.parser&&(o.parser.yy=s),(h=s.clear)==null||h.call(s),l==null||l(n),r.title&&((u=s.setDiagramTitle)==null||u.call(s,r.title)),await o.parse(t),new Hi(i,t,s,o,a)}async render(t,r){await this.renderer.draw(this.text,t,r,this)}getParser(){return this.parser}getType(){return this.type}},v(Hi,"Diagram"),Hi),mb=[],XY=v(()=>{mb.forEach(e=>{e()}),mb=[]},"attachFunctions"),KY=v(e=>e.replace(/^\s*%%(?!{)[^\n]+\n?/gm,"").trimStart(),"cleanupComments");function Nj(e){const t=e.match(Nw);if(!t)return{text:e,metadata:{}};const r=t[1],n=r?t[2].split(`
813
813
  `).map(o=>o.startsWith(r)?o.slice(r.length):o).join(`
814
814
  `):t[2];let i=a9(n,{schema:o9})??{};i=typeof i=="object"&&!Array.isArray(i)?i:{};const s={};return i.displayMode&&(s.displayMode=i.displayMode.toString()),i.title&&(s.title=i.title.toString()),i.config&&(s.config=i.config),{text:e.slice(t[0].length),metadata:s}}v(Nj,"extractFrontMatter");var QY=v(e=>e.replace(/\r\n?/g,`