@saluzi/saluzi-edu 0.2.5 → 0.2.7

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 (110) hide show
  1. package/dist/cli.js +60 -60
  2. package/dist/rcs-web/assets/{Dashboard-D78ysVsg.js → Dashboard-Cyj-Bb86.js} +1 -1
  3. package/dist/rcs-web/assets/{SessionDetail-DCQxr0Dd.js → SessionDetail-SA9QBkyj.js} +1 -1
  4. package/{packages/remote-control-server/web/dist/assets/arc-Bn7hwFiO.js → dist/rcs-web/assets/arc-D90597o-.js} +1 -1
  5. package/{packages/remote-control-server/web/dist/assets/architectureDiagram-3BPJPVTR-Bdmc1LIf.js → dist/rcs-web/assets/architectureDiagram-3BPJPVTR-CG9q9_bk.js} +1 -1
  6. package/dist/rcs-web/assets/{blockDiagram-GPEHLZMM-BXt8ZY8h.js → blockDiagram-GPEHLZMM-DHd8IbOs.js} +1 -1
  7. package/{packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-n2o2v48U.js → dist/rcs-web/assets/c4Diagram-AAUBKEIU-CjFkQJ9h.js} +1 -1
  8. package/dist/rcs-web/assets/channel-CQFGglg-.js +1 -0
  9. package/dist/rcs-web/assets/{chunk-2J33WTMH-k_4eN4Es.js → chunk-2J33WTMH-C21XWnGZ.js} +1 -1
  10. package/dist/rcs-web/assets/{chunk-4BX2VUAB-DGwlrj1_.js → chunk-4BX2VUAB-B3SXiJlt.js} +1 -1
  11. package/dist/rcs-web/assets/{chunk-55IACEB6-CZedDdgT.js → chunk-55IACEB6-DjImv45F.js} +1 -1
  12. package/{packages/remote-control-server/web/dist/assets/chunk-727SXJPM-BSYf9yud.js → dist/rcs-web/assets/chunk-727SXJPM-DtnaqsyD.js} +1 -1
  13. package/dist/rcs-web/assets/{chunk-AQP2D5EJ-B6rMcQJl.js → chunk-AQP2D5EJ-BVFgH5mS.js} +1 -1
  14. package/dist/rcs-web/assets/{chunk-FMBD7UC4-BmEcgk9M.js → chunk-FMBD7UC4-Bl8jgb57.js} +1 -1
  15. package/dist/rcs-web/assets/{chunk-ND2GUHAM-Bm98fSZo.js → chunk-ND2GUHAM-BpK111zh.js} +1 -1
  16. package/dist/rcs-web/assets/{chunk-QZHKN3VN-VBLsfNCF.js → chunk-QZHKN3VN-ruhIHBim.js} +1 -1
  17. package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-C5rBdShD.js +1 -0
  18. package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-C5rBdShD.js +1 -0
  19. package/dist/rcs-web/assets/{code-block-IT6T5CEO-DVGaLHna.js → code-block-IT6T5CEO-BLGFrBw3.js} +1 -1
  20. package/dist/rcs-web/assets/{cose-bilkent-S5V4N54A-Bbq-aFeR.js → cose-bilkent-S5V4N54A-DBKEXjqM.js} +1 -1
  21. package/dist/rcs-web/assets/{dagre-BM42HDAG-Kb5K_YRf.js → dagre-BM42HDAG-DB_SWlAe.js} +1 -1
  22. package/dist/rcs-web/assets/{diagram-2AECGRRQ-C2Gp_v2r.js → diagram-2AECGRRQ-Gbm8G3Xz.js} +1 -1
  23. package/dist/rcs-web/assets/{diagram-5GNKFQAL-Dq8LW37J.js → diagram-5GNKFQAL-BBuWqfDc.js} +1 -1
  24. package/dist/rcs-web/assets/{diagram-KO2AKTUF-DzRNXaiB.js → diagram-KO2AKTUF-Uy3PDP5S.js} +1 -1
  25. package/dist/rcs-web/assets/{diagram-LMA3HP47-B7k7LiuO.js → diagram-LMA3HP47-DyUwNrlg.js} +1 -1
  26. package/dist/rcs-web/assets/{diagram-OG6HWLK6-DxfgHgaZ.js → diagram-OG6HWLK6-BXpvRwkJ.js} +1 -1
  27. package/dist/rcs-web/assets/{erDiagram-TEJ5UH35-CUiUykfs.js → erDiagram-TEJ5UH35-sre_MTeK.js} +1 -1
  28. package/dist/rcs-web/assets/{flowDiagram-I6XJVG4X-B29nrA8t.js → flowDiagram-I6XJVG4X-DwrWaLoe.js} +1 -1
  29. package/dist/rcs-web/assets/{ganttDiagram-6RSMTGT7-ByxmsL00.js → ganttDiagram-6RSMTGT7-ByDYviDl.js} +1 -1
  30. package/dist/rcs-web/assets/{gitGraphDiagram-PVQCEYII-CfRjtrUh.js → gitGraphDiagram-PVQCEYII-BUnOPw74.js} +1 -1
  31. package/dist/rcs-web/assets/{infoDiagram-5YYISTIA-09LOn9-7.js → infoDiagram-5YYISTIA-B1RpwJHG.js} +1 -1
  32. package/{packages/remote-control-server/web/dist/assets/ishikawaDiagram-YF4QCWOH-BzeCO2e1.js → dist/rcs-web/assets/ishikawaDiagram-YF4QCWOH-SO0nn3--.js} +1 -1
  33. package/dist/rcs-web/assets/{journeyDiagram-JHISSGLW-D1cAAywf.js → journeyDiagram-JHISSGLW-D4igFUd4.js} +1 -1
  34. package/dist/rcs-web/assets/{kanban-definition-UN3LZRKU-BaaQS9_c.js → kanban-definition-UN3LZRKU-Cm_yKsZC.js} +1 -1
  35. package/dist/rcs-web/assets/{linear-RRGQOlFa.js → linear-4IMGll_E.js} +1 -1
  36. package/dist/rcs-web/assets/{main-LHxO-r0k.js → main-Dom16YJk.js} +3 -3
  37. package/{packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-C9-eaj0o.js → dist/rcs-web/assets/mermaid-VLURNSYL-D_yQ7nAd.js} +4 -4
  38. package/dist/rcs-web/assets/{mermaid.core-Se14XyCU.js → mermaid.core-B1qOUdiU.js} +5 -5
  39. package/dist/rcs-web/assets/{mindmap-definition-RKZ34NQL-DBMeogTw.js → mindmap-definition-RKZ34NQL-yETom5qt.js} +1 -1
  40. package/{packages/remote-control-server/web/dist/assets/pieDiagram-4H26LBE5-FbOOOWTk.js → dist/rcs-web/assets/pieDiagram-4H26LBE5-KIhqXGT6.js} +1 -1
  41. package/{packages/remote-control-server/web/dist/assets/quadrantDiagram-W4KKPZXB-BgKHanYy.js → dist/rcs-web/assets/quadrantDiagram-W4KKPZXB-DISqmoA6.js} +1 -1
  42. package/dist/rcs-web/assets/{requirementDiagram-4Y6WPE33-BQ5-ZsUm.js → requirementDiagram-4Y6WPE33-DsgT4ptk.js} +1 -1
  43. package/{packages/remote-control-server/web/dist/assets/sankeyDiagram-5OEKKPKP-DolWioBb.js → dist/rcs-web/assets/sankeyDiagram-5OEKKPKP-Dn67kbn0.js} +1 -1
  44. package/{packages/remote-control-server/web/dist/assets/sequenceDiagram-3UESZ5HK-DkN6nSvm.js → dist/rcs-web/assets/sequenceDiagram-3UESZ5HK-CtWaXZHl.js} +1 -1
  45. package/dist/rcs-web/assets/{stateDiagram-AJRCARHV-eGw_bx-H.js → stateDiagram-AJRCARHV-D6xp64f3.js} +1 -1
  46. package/dist/rcs-web/assets/{stateDiagram-v2-BHNVJYJU-DopvC2JW.js → stateDiagram-v2-BHNVJYJU-D76vZCyQ.js} +1 -1
  47. package/{packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-t5Qw3wRA.js → dist/rcs-web/assets/timeline-definition-PNZ67QCA-Dk5WUenC.js} +1 -1
  48. package/dist/rcs-web/assets/{vennDiagram-CIIHVFJN-TJsXXaHw.js → vennDiagram-CIIHVFJN-TY8EiRrC.js} +1 -1
  49. package/{packages/remote-control-server/web/dist/assets/wardleyDiagram-YWT4CUSO-Dznf7Z14.js → dist/rcs-web/assets/wardleyDiagram-YWT4CUSO-BK3oi47X.js} +1 -1
  50. package/dist/rcs-web/assets/{xychartDiagram-2RQKCTM6-Dk6SuXiH.js → xychartDiagram-2RQKCTM6-DhsxqX67.js} +1 -1
  51. package/dist/rcs-web/index.html +1 -1
  52. package/package.json +2 -2
  53. package/packages/remote-control-server/src/__tests__/acp-ws-handler.test.ts +138 -0
  54. package/packages/remote-control-server/src/transport/acp-ws-handler.ts +44 -13
  55. package/packages/remote-control-server/web/dist/assets/{Dashboard-D78ysVsg.js → Dashboard-Cyj-Bb86.js} +1 -1
  56. package/packages/remote-control-server/web/dist/assets/{SessionDetail-DCQxr0Dd.js → SessionDetail-SA9QBkyj.js} +1 -1
  57. package/{dist/rcs-web/assets/arc-Bn7hwFiO.js → packages/remote-control-server/web/dist/assets/arc-D90597o-.js} +1 -1
  58. package/{dist/rcs-web/assets/architectureDiagram-3BPJPVTR-Bdmc1LIf.js → packages/remote-control-server/web/dist/assets/architectureDiagram-3BPJPVTR-CG9q9_bk.js} +1 -1
  59. package/packages/remote-control-server/web/dist/assets/{blockDiagram-GPEHLZMM-BXt8ZY8h.js → blockDiagram-GPEHLZMM-DHd8IbOs.js} +1 -1
  60. package/{dist/rcs-web/assets/c4Diagram-AAUBKEIU-n2o2v48U.js → packages/remote-control-server/web/dist/assets/c4Diagram-AAUBKEIU-CjFkQJ9h.js} +1 -1
  61. package/packages/remote-control-server/web/dist/assets/channel-CQFGglg-.js +1 -0
  62. package/packages/remote-control-server/web/dist/assets/{chunk-2J33WTMH-k_4eN4Es.js → chunk-2J33WTMH-C21XWnGZ.js} +1 -1
  63. package/packages/remote-control-server/web/dist/assets/{chunk-4BX2VUAB-DGwlrj1_.js → chunk-4BX2VUAB-B3SXiJlt.js} +1 -1
  64. package/packages/remote-control-server/web/dist/assets/{chunk-55IACEB6-CZedDdgT.js → chunk-55IACEB6-DjImv45F.js} +1 -1
  65. package/{dist/rcs-web/assets/chunk-727SXJPM-BSYf9yud.js → packages/remote-control-server/web/dist/assets/chunk-727SXJPM-DtnaqsyD.js} +1 -1
  66. package/packages/remote-control-server/web/dist/assets/{chunk-AQP2D5EJ-B6rMcQJl.js → chunk-AQP2D5EJ-BVFgH5mS.js} +1 -1
  67. package/packages/remote-control-server/web/dist/assets/{chunk-FMBD7UC4-BmEcgk9M.js → chunk-FMBD7UC4-Bl8jgb57.js} +1 -1
  68. package/packages/remote-control-server/web/dist/assets/{chunk-ND2GUHAM-Bm98fSZo.js → chunk-ND2GUHAM-BpK111zh.js} +1 -1
  69. package/packages/remote-control-server/web/dist/assets/{chunk-QZHKN3VN-VBLsfNCF.js → chunk-QZHKN3VN-ruhIHBim.js} +1 -1
  70. package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-C5rBdShD.js +1 -0
  71. package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-C5rBdShD.js +1 -0
  72. package/packages/remote-control-server/web/dist/assets/{code-block-IT6T5CEO-DVGaLHna.js → code-block-IT6T5CEO-BLGFrBw3.js} +1 -1
  73. package/packages/remote-control-server/web/dist/assets/{cose-bilkent-S5V4N54A-Bbq-aFeR.js → cose-bilkent-S5V4N54A-DBKEXjqM.js} +1 -1
  74. package/packages/remote-control-server/web/dist/assets/{dagre-BM42HDAG-Kb5K_YRf.js → dagre-BM42HDAG-DB_SWlAe.js} +1 -1
  75. package/packages/remote-control-server/web/dist/assets/{diagram-2AECGRRQ-C2Gp_v2r.js → diagram-2AECGRRQ-Gbm8G3Xz.js} +1 -1
  76. package/packages/remote-control-server/web/dist/assets/{diagram-5GNKFQAL-Dq8LW37J.js → diagram-5GNKFQAL-BBuWqfDc.js} +1 -1
  77. package/packages/remote-control-server/web/dist/assets/{diagram-KO2AKTUF-DzRNXaiB.js → diagram-KO2AKTUF-Uy3PDP5S.js} +1 -1
  78. package/packages/remote-control-server/web/dist/assets/{diagram-LMA3HP47-B7k7LiuO.js → diagram-LMA3HP47-DyUwNrlg.js} +1 -1
  79. package/packages/remote-control-server/web/dist/assets/{diagram-OG6HWLK6-DxfgHgaZ.js → diagram-OG6HWLK6-BXpvRwkJ.js} +1 -1
  80. package/packages/remote-control-server/web/dist/assets/{erDiagram-TEJ5UH35-CUiUykfs.js → erDiagram-TEJ5UH35-sre_MTeK.js} +1 -1
  81. package/packages/remote-control-server/web/dist/assets/{flowDiagram-I6XJVG4X-B29nrA8t.js → flowDiagram-I6XJVG4X-DwrWaLoe.js} +1 -1
  82. package/packages/remote-control-server/web/dist/assets/{ganttDiagram-6RSMTGT7-ByxmsL00.js → ganttDiagram-6RSMTGT7-ByDYviDl.js} +1 -1
  83. package/packages/remote-control-server/web/dist/assets/{gitGraphDiagram-PVQCEYII-CfRjtrUh.js → gitGraphDiagram-PVQCEYII-BUnOPw74.js} +1 -1
  84. package/packages/remote-control-server/web/dist/assets/{infoDiagram-5YYISTIA-09LOn9-7.js → infoDiagram-5YYISTIA-B1RpwJHG.js} +1 -1
  85. package/{dist/rcs-web/assets/ishikawaDiagram-YF4QCWOH-BzeCO2e1.js → packages/remote-control-server/web/dist/assets/ishikawaDiagram-YF4QCWOH-SO0nn3--.js} +1 -1
  86. package/packages/remote-control-server/web/dist/assets/{journeyDiagram-JHISSGLW-D1cAAywf.js → journeyDiagram-JHISSGLW-D4igFUd4.js} +1 -1
  87. package/packages/remote-control-server/web/dist/assets/{kanban-definition-UN3LZRKU-BaaQS9_c.js → kanban-definition-UN3LZRKU-Cm_yKsZC.js} +1 -1
  88. package/packages/remote-control-server/web/dist/assets/{linear-RRGQOlFa.js → linear-4IMGll_E.js} +1 -1
  89. package/packages/remote-control-server/web/dist/assets/{main-LHxO-r0k.js → main-Dom16YJk.js} +3 -3
  90. package/{dist/rcs-web/assets/mermaid-VLURNSYL-C9-eaj0o.js → packages/remote-control-server/web/dist/assets/mermaid-VLURNSYL-D_yQ7nAd.js} +4 -4
  91. package/packages/remote-control-server/web/dist/assets/{mermaid.core-Se14XyCU.js → mermaid.core-B1qOUdiU.js} +5 -5
  92. package/packages/remote-control-server/web/dist/assets/{mindmap-definition-RKZ34NQL-DBMeogTw.js → mindmap-definition-RKZ34NQL-yETom5qt.js} +1 -1
  93. package/{dist/rcs-web/assets/pieDiagram-4H26LBE5-FbOOOWTk.js → packages/remote-control-server/web/dist/assets/pieDiagram-4H26LBE5-KIhqXGT6.js} +1 -1
  94. package/{dist/rcs-web/assets/quadrantDiagram-W4KKPZXB-BgKHanYy.js → packages/remote-control-server/web/dist/assets/quadrantDiagram-W4KKPZXB-DISqmoA6.js} +1 -1
  95. package/packages/remote-control-server/web/dist/assets/{requirementDiagram-4Y6WPE33-BQ5-ZsUm.js → requirementDiagram-4Y6WPE33-DsgT4ptk.js} +1 -1
  96. package/{dist/rcs-web/assets/sankeyDiagram-5OEKKPKP-DolWioBb.js → packages/remote-control-server/web/dist/assets/sankeyDiagram-5OEKKPKP-Dn67kbn0.js} +1 -1
  97. package/{dist/rcs-web/assets/sequenceDiagram-3UESZ5HK-DkN6nSvm.js → packages/remote-control-server/web/dist/assets/sequenceDiagram-3UESZ5HK-CtWaXZHl.js} +1 -1
  98. package/packages/remote-control-server/web/dist/assets/{stateDiagram-AJRCARHV-eGw_bx-H.js → stateDiagram-AJRCARHV-D6xp64f3.js} +1 -1
  99. package/packages/remote-control-server/web/dist/assets/{stateDiagram-v2-BHNVJYJU-DopvC2JW.js → stateDiagram-v2-BHNVJYJU-D76vZCyQ.js} +1 -1
  100. package/{dist/rcs-web/assets/timeline-definition-PNZ67QCA-t5Qw3wRA.js → packages/remote-control-server/web/dist/assets/timeline-definition-PNZ67QCA-Dk5WUenC.js} +1 -1
  101. package/packages/remote-control-server/web/dist/assets/{vennDiagram-CIIHVFJN-TJsXXaHw.js → vennDiagram-CIIHVFJN-TY8EiRrC.js} +1 -1
  102. package/{dist/rcs-web/assets/wardleyDiagram-YWT4CUSO-Dznf7Z14.js → packages/remote-control-server/web/dist/assets/wardleyDiagram-YWT4CUSO-BK3oi47X.js} +1 -1
  103. package/packages/remote-control-server/web/dist/assets/{xychartDiagram-2RQKCTM6-Dk6SuXiH.js → xychartDiagram-2RQKCTM6-DhsxqX67.js} +1 -1
  104. package/packages/remote-control-server/web/dist/index.html +1 -1
  105. package/dist/rcs-web/assets/channel-CjomeXBs.js +0 -1
  106. package/dist/rcs-web/assets/classDiagram-4FO5ZUOK-DEDQHjqV.js +0 -1
  107. package/dist/rcs-web/assets/classDiagram-v2-Q7XG4LA2-DEDQHjqV.js +0 -1
  108. package/packages/remote-control-server/web/dist/assets/channel-CjomeXBs.js +0 -1
  109. package/packages/remote-control-server/web/dist/assets/classDiagram-4FO5ZUOK-DEDQHjqV.js +0 -1
  110. package/packages/remote-control-server/web/dist/assets/classDiagram-v2-Q7XG4LA2-DEDQHjqV.js +0 -1
@@ -1 +1 @@
1
- import{G as j,ar as p,x as w,as as k,at as q}from"./mermaid.core-Se14XyCU.js";import{i as D}from"./init-Gi6I4Gst.js";import{e as g,b as F,a as x,f as z}from"./defaultLocale-CrowFXzY.js";function M(n,r){return n==null||r==null?NaN:n<r?-1:n>r?1:n>=r?0:NaN}function B(n,r){return n==null||r==null?NaN:r<n?-1:r>n?1:r>=n?0:NaN}function R(n){let r,t,e;n.length!==2?(r=M,t=(o,c)=>M(n(o),c),e=(o,c)=>n(o)-c):(r=n===M||n===B?n:I,t=n,e=n);function u(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<0?i=l+1:h=l}while(i<h)}return i}function f(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<=0?i=l+1:h=l}while(i<h)}return i}function a(o,c,i=0,h=o.length){const l=u(o,c,i,h-1);return l>i&&e(o[l-1],c)>-e(o[l],c)?l-1:l}return{left:u,center:a,right:f}}function I(){return 0}function P(n){return n===null?NaN:+n}const V=R(M),$=V.right;R(P).center;const G=Math.sqrt(50),O=Math.sqrt(10),T=Math.sqrt(2);function v(n,r,t){const e=(r-n)/Math.max(0,t),u=Math.floor(Math.log10(e)),f=e/Math.pow(10,u),a=f>=G?10:f>=O?5:f>=T?2:1;let o,c,i;return u<0?(i=Math.pow(10,-u)/a,o=Math.round(n*i),c=Math.round(r*i),o/i<n&&++o,c/i>r&&--c,i=-i):(i=Math.pow(10,u)*a,o=Math.round(n/i),c=Math.round(r/i),o*i<n&&++o,c*i>r&&--c),c<o&&.5<=t&&t<2?v(n,r,t*2):[o,c,i]}function C(n,r,t){if(r=+r,n=+n,t=+t,!(t>0))return[];if(n===r)return[n];const e=r<n,[u,f,a]=e?v(r,n,t):v(n,r,t);if(!(f>=u))return[];const o=f-u+1,c=new Array(o);if(e)if(a<0)for(let i=0;i<o;++i)c[i]=(f-i)/-a;else for(let i=0;i<o;++i)c[i]=(f-i)*a;else if(a<0)for(let i=0;i<o;++i)c[i]=(u+i)/-a;else for(let i=0;i<o;++i)c[i]=(u+i)*a;return c}function y(n,r,t){return r=+r,n=+n,t=+t,v(n,r,t)[2]}function E(n,r,t){r=+r,n=+n,t=+t;const e=r<n,u=e?y(r,n,t):y(n,r,t);return(e?-1:1)*(u<0?1/-u:u)}function H(n,r){r||(r=[]);var t=n?Math.min(r.length,n.length):0,e=r.slice(),u;return function(f){for(u=0;u<t;++u)e[u]=n[u]*(1-f)+r[u]*f;return e}}function J(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function K(n,r){var t=r?r.length:0,e=n?Math.min(t,n.length):0,u=new Array(e),f=new Array(t),a;for(a=0;a<e;++a)u[a]=d(n[a],r[a]);for(;a<t;++a)f[a]=r[a];return function(o){for(a=0;a<e;++a)f[a]=u[a](o);return f}}function L(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.setTime(n*(1-e)+r*e),t}}function Q(n,r){var t={},e={},u;(n===null||typeof n!="object")&&(n={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in n?t[u]=d(n[u],r[u]):e[u]=r[u];return function(f){for(u in t)e[u]=t[u](f);return e}}function d(n,r){var t=typeof r,e;return r==null||t==="boolean"?j(r):(t==="number"?p:t==="string"?(e=w(r))?(r=e,k):q:r instanceof w?k:r instanceof Date?L:J(r)?H:Array.isArray(r)?K:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?Q:p)(n,r)}function U(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-t)+r*t)}}function W(n){return Math.max(0,-g(Math.abs(n)))}function X(n,r){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(g(r)/3)))*3-g(Math.abs(n)))}function Y(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,g(r)-g(n))+1}function Z(n){return function(){return n}}function _(n){return+n}var A=[0,1];function m(n){return n}function N(n,r){return(r-=n=+n)?function(t){return(t-n)/r}:Z(isNaN(r)?NaN:.5)}function b(n,r){var t;return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function nn(n,r,t){var e=n[0],u=n[1],f=r[0],a=r[1];return u<e?(e=N(u,e),f=t(a,f)):(e=N(e,u),f=t(f,a)),function(o){return f(e(o))}}function rn(n,r,t){var e=Math.min(n.length,r.length)-1,u=new Array(e),f=new Array(e),a=-1;for(n[e]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<e;)u[a]=N(n[a],n[a+1]),f[a]=t(r[a],r[a+1]);return function(o){var c=$(n,o,1,e)-1;return f[c](u[c](o))}}function en(n,r){return r.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function tn(){var n=A,r=A,t=d,e,u,f,a=m,o,c,i;function h(){var s=Math.min(n.length,r.length);return a!==m&&(a=b(n[0],n[s-1])),o=s>2?rn:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?f:(c||(c=o(n.map(e),r,t)))(e(a(s)))}return l.invert=function(s){return a(u((i||(i=o(r,n.map(e),p)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,_),h()):n.slice()},l.range=function(s){return arguments.length?(r=Array.from(s),h()):r.slice()},l.rangeRound=function(s){return r=Array.from(s),t=U,h()},l.clamp=function(s){return arguments.length?(a=s?!0:m,h()):a!==m},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(f=s,l):f},function(s,S){return e=s,u=S,h()}}function un(){return tn()(m,m)}function an(n,r,t,e){var u=E(n,r,t),f;switch(e=F(e??",f"),e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(r));return e.precision==null&&!isNaN(f=X(u,a))&&(e.precision=f),x(e,a)}case"":case"e":case"g":case"p":case"r":{e.precision==null&&!isNaN(f=Y(u,Math.max(Math.abs(n),Math.abs(r))))&&(e.precision=f-(e.type==="e"));break}case"f":case"%":{e.precision==null&&!isNaN(f=W(u))&&(e.precision=f-(e.type==="%")*2);break}}return z(e)}function on(n){var r=n.domain;return n.ticks=function(t){var e=r();return C(e[0],e[e.length-1],t??10)},n.tickFormat=function(t,e){var u=r();return an(u[0],u[u.length-1],t??10,e)},n.nice=function(t){t==null&&(t=10);var e=r(),u=0,f=e.length-1,a=e[u],o=e[f],c,i,h=10;for(o<a&&(i=a,a=o,o=i,i=u,u=f,f=i);h-- >0;){if(i=y(a,o,t),i===c)return e[u]=a,e[f]=o,r(e);if(i>0)a=Math.floor(a/i)*i,o=Math.ceil(o/i)*i;else if(i<0)a=Math.ceil(a*i)/i,o=Math.floor(o*i)/i;else break;c=i}return n},n}function fn(){var n=un();return n.copy=function(){return en(n,fn())},D.apply(n,arguments),on(n)}export{en as a,R as b,un as c,fn as l,E as t};
1
+ import{G as j,ar as p,x as w,as as k,at as q}from"./mermaid.core-B1qOUdiU.js";import{i as D}from"./init-Gi6I4Gst.js";import{e as g,b as F,a as x,f as z}from"./defaultLocale-CrowFXzY.js";function M(n,r){return n==null||r==null?NaN:n<r?-1:n>r?1:n>=r?0:NaN}function B(n,r){return n==null||r==null?NaN:r<n?-1:r>n?1:r>=n?0:NaN}function R(n){let r,t,e;n.length!==2?(r=M,t=(o,c)=>M(n(o),c),e=(o,c)=>n(o)-c):(r=n===M||n===B?n:I,t=n,e=n);function u(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<0?i=l+1:h=l}while(i<h)}return i}function f(o,c,i=0,h=o.length){if(i<h){if(r(c,c)!==0)return h;do{const l=i+h>>>1;t(o[l],c)<=0?i=l+1:h=l}while(i<h)}return i}function a(o,c,i=0,h=o.length){const l=u(o,c,i,h-1);return l>i&&e(o[l-1],c)>-e(o[l],c)?l-1:l}return{left:u,center:a,right:f}}function I(){return 0}function P(n){return n===null?NaN:+n}const V=R(M),$=V.right;R(P).center;const G=Math.sqrt(50),O=Math.sqrt(10),T=Math.sqrt(2);function v(n,r,t){const e=(r-n)/Math.max(0,t),u=Math.floor(Math.log10(e)),f=e/Math.pow(10,u),a=f>=G?10:f>=O?5:f>=T?2:1;let o,c,i;return u<0?(i=Math.pow(10,-u)/a,o=Math.round(n*i),c=Math.round(r*i),o/i<n&&++o,c/i>r&&--c,i=-i):(i=Math.pow(10,u)*a,o=Math.round(n/i),c=Math.round(r/i),o*i<n&&++o,c*i>r&&--c),c<o&&.5<=t&&t<2?v(n,r,t*2):[o,c,i]}function C(n,r,t){if(r=+r,n=+n,t=+t,!(t>0))return[];if(n===r)return[n];const e=r<n,[u,f,a]=e?v(r,n,t):v(n,r,t);if(!(f>=u))return[];const o=f-u+1,c=new Array(o);if(e)if(a<0)for(let i=0;i<o;++i)c[i]=(f-i)/-a;else for(let i=0;i<o;++i)c[i]=(f-i)*a;else if(a<0)for(let i=0;i<o;++i)c[i]=(u+i)/-a;else for(let i=0;i<o;++i)c[i]=(u+i)*a;return c}function y(n,r,t){return r=+r,n=+n,t=+t,v(n,r,t)[2]}function E(n,r,t){r=+r,n=+n,t=+t;const e=r<n,u=e?y(r,n,t):y(n,r,t);return(e?-1:1)*(u<0?1/-u:u)}function H(n,r){r||(r=[]);var t=n?Math.min(r.length,n.length):0,e=r.slice(),u;return function(f){for(u=0;u<t;++u)e[u]=n[u]*(1-f)+r[u]*f;return e}}function J(n){return ArrayBuffer.isView(n)&&!(n instanceof DataView)}function K(n,r){var t=r?r.length:0,e=n?Math.min(t,n.length):0,u=new Array(e),f=new Array(t),a;for(a=0;a<e;++a)u[a]=d(n[a],r[a]);for(;a<t;++a)f[a]=r[a];return function(o){for(a=0;a<e;++a)f[a]=u[a](o);return f}}function L(n,r){var t=new Date;return n=+n,r=+r,function(e){return t.setTime(n*(1-e)+r*e),t}}function Q(n,r){var t={},e={},u;(n===null||typeof n!="object")&&(n={}),(r===null||typeof r!="object")&&(r={});for(u in r)u in n?t[u]=d(n[u],r[u]):e[u]=r[u];return function(f){for(u in t)e[u]=t[u](f);return e}}function d(n,r){var t=typeof r,e;return r==null||t==="boolean"?j(r):(t==="number"?p:t==="string"?(e=w(r))?(r=e,k):q:r instanceof w?k:r instanceof Date?L:J(r)?H:Array.isArray(r)?K:typeof r.valueOf!="function"&&typeof r.toString!="function"||isNaN(r)?Q:p)(n,r)}function U(n,r){return n=+n,r=+r,function(t){return Math.round(n*(1-t)+r*t)}}function W(n){return Math.max(0,-g(Math.abs(n)))}function X(n,r){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(g(r)/3)))*3-g(Math.abs(n)))}function Y(n,r){return n=Math.abs(n),r=Math.abs(r)-n,Math.max(0,g(r)-g(n))+1}function Z(n){return function(){return n}}function _(n){return+n}var A=[0,1];function m(n){return n}function N(n,r){return(r-=n=+n)?function(t){return(t-n)/r}:Z(isNaN(r)?NaN:.5)}function b(n,r){var t;return n>r&&(t=n,n=r,r=t),function(e){return Math.max(n,Math.min(r,e))}}function nn(n,r,t){var e=n[0],u=n[1],f=r[0],a=r[1];return u<e?(e=N(u,e),f=t(a,f)):(e=N(e,u),f=t(f,a)),function(o){return f(e(o))}}function rn(n,r,t){var e=Math.min(n.length,r.length)-1,u=new Array(e),f=new Array(e),a=-1;for(n[e]<n[0]&&(n=n.slice().reverse(),r=r.slice().reverse());++a<e;)u[a]=N(n[a],n[a+1]),f[a]=t(r[a],r[a+1]);return function(o){var c=$(n,o,1,e)-1;return f[c](u[c](o))}}function en(n,r){return r.domain(n.domain()).range(n.range()).interpolate(n.interpolate()).clamp(n.clamp()).unknown(n.unknown())}function tn(){var n=A,r=A,t=d,e,u,f,a=m,o,c,i;function h(){var s=Math.min(n.length,r.length);return a!==m&&(a=b(n[0],n[s-1])),o=s>2?rn:nn,c=i=null,l}function l(s){return s==null||isNaN(s=+s)?f:(c||(c=o(n.map(e),r,t)))(e(a(s)))}return l.invert=function(s){return a(u((i||(i=o(r,n.map(e),p)))(s)))},l.domain=function(s){return arguments.length?(n=Array.from(s,_),h()):n.slice()},l.range=function(s){return arguments.length?(r=Array.from(s),h()):r.slice()},l.rangeRound=function(s){return r=Array.from(s),t=U,h()},l.clamp=function(s){return arguments.length?(a=s?!0:m,h()):a!==m},l.interpolate=function(s){return arguments.length?(t=s,h()):t},l.unknown=function(s){return arguments.length?(f=s,l):f},function(s,S){return e=s,u=S,h()}}function un(){return tn()(m,m)}function an(n,r,t,e){var u=E(n,r,t),f;switch(e=F(e??",f"),e.type){case"s":{var a=Math.max(Math.abs(n),Math.abs(r));return e.precision==null&&!isNaN(f=X(u,a))&&(e.precision=f),x(e,a)}case"":case"e":case"g":case"p":case"r":{e.precision==null&&!isNaN(f=Y(u,Math.max(Math.abs(n),Math.abs(r))))&&(e.precision=f-(e.type==="e"));break}case"f":case"%":{e.precision==null&&!isNaN(f=W(u))&&(e.precision=f-(e.type==="%")*2);break}}return z(e)}function on(n){var r=n.domain;return n.ticks=function(t){var e=r();return C(e[0],e[e.length-1],t??10)},n.tickFormat=function(t,e){var u=r();return an(u[0],u[u.length-1],t??10,e)},n.nice=function(t){t==null&&(t=10);var e=r(),u=0,f=e.length-1,a=e[u],o=e[f],c,i,h=10;for(o<a&&(i=a,a=o,o=i,i=u,u=f,f=i);h-- >0;){if(i=y(a,o,t),i===c)return e[u]=a,e[f]=o,r(e);if(i>0)a=Math.floor(a/i)*i,o=Math.ceil(o/i)*i;else if(i<0)a=Math.ceil(a*i)/i,o=Math.floor(o*i)/i;else break;c=i}return n},n}function fn(){var n=un();return n.copy=function(){return en(n,fn())},D.apply(n,arguments),on(n)}export{en as a,R as b,un as c,fn as l,E as t};
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid-VLURNSYL-C9-eaj0o.js","assets/shiki-mEP5vQQu.js","assets/vendor-DE_-CLIE.js","assets/Dashboard-D78ysVsg.js","assets/qr-C0jP9HcD.js","assets/motion-BILbV7YQ.js","assets/SessionDetail-DCQxr0Dd.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/mermaid-VLURNSYL-D_yQ7nAd.js","assets/shiki-mEP5vQQu.js","assets/vendor-DE_-CLIE.js","assets/Dashboard-Cyj-Bb86.js","assets/qr-C0jP9HcD.js","assets/motion-BILbV7YQ.js","assets/SessionDetail-SA9QBkyj.js"])))=>i.map(i=>d[i]);
2
2
  var oc=Object.defineProperty;var sc=(e,t,n)=>t in e?oc(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ae=(e,t,n)=>sc(e,typeof t!="symbol"?t+"":t,n);import{e as m,a as rt,j as d,R as Gr,r as Os,b as ac,c as Kr,d as ic}from"./vendor-DE_-CLIE.js";import{_ as sn}from"./shiki-mEP5vQQu.js";import{Q as lc}from"./qr-C0jP9HcD.js";import{m as cc}from"./motion-BILbV7YQ.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const s of o)if(s.type==="childList")for(const a of s.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const s={};return o.integrity&&(s.integrity=o.integrity),o.referrerPolicy&&(s.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?s.credentials="include":o.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function r(o){if(o.ep)return;o.ep=!0;const s=n(o);fetch(o.href,s)}})();function Ds(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=Ds(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function Ls(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=Ds(e))&&(r&&(r+=" "),r+=t);return r}const dc=(e,t)=>{const n=new Array(e.length+t.length);for(let r=0;r<e.length;r++)n[r]=e[r];for(let r=0;r<t.length;r++)n[e.length+r]=t[r];return n},uc=(e,t)=>({classGroupId:e,validator:t}),$s=(e=new Map,t=null,n)=>({nextPart:e,validators:t,classGroupId:n}),Nn="-",Fo=[],fc="arbitrary..",hc=e=>{const t=pc(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{if(a.startsWith("[")&&a.endsWith("]"))return mc(a);const i=a.split(Nn),h=i[0]===""&&i.length>1?1:0;return Fs(i,h,t)},getConflictingClassGroupIds:(a,i)=>{if(i){const h=r[a],f=n[a];return h?f?dc(f,h):h:f||Fo}return n[a]||Fo}}},Fs=(e,t,n)=>{if(e.length-t===0)return n.classGroupId;const o=e[t],s=n.nextPart.get(o);if(s){const f=Fs(e,t+1,s);if(f)return f}const a=n.validators;if(a===null)return;const i=t===0?e.join(Nn):e.slice(t).join(Nn),h=a.length;for(let f=0;f<h;f++){const l=a[f];if(l.validator(i))return l.classGroupId}},mc=e=>e.slice(1,-1).indexOf(":")===-1?void 0:(()=>{const t=e.slice(1,-1),n=t.indexOf(":"),r=t.slice(0,n);return r?fc+r:void 0})(),pc=e=>{const{theme:t,classGroups:n}=e;return gc(n,t)},gc=(e,t)=>{const n=$s();for(const r in e){const o=e[r];qr(o,n,r,t)}return n},qr=(e,t,n,r)=>{const o=e.length;for(let s=0;s<o;s++){const a=e[s];xc(a,t,n,r)}},xc=(e,t,n,r)=>{if(typeof e=="string"){vc(e,t,n);return}if(typeof e=="function"){bc(e,t,n,r);return}yc(e,t,n,r)},vc=(e,t,n)=>{const r=e===""?t:Us(t,e);r.classGroupId=n},bc=(e,t,n,r)=>{if(wc(e)){qr(e(r),t,n,r);return}t.validators===null&&(t.validators=[]),t.validators.push(uc(n,e))},yc=(e,t,n,r)=>{const o=Object.entries(e),s=o.length;for(let a=0;a<s;a++){const[i,h]=o[a];qr(h,Us(t,i),n,r)}},Us=(e,t)=>{let n=e;const r=t.split(Nn),o=r.length;for(let s=0;s<o;s++){const a=r[s];let i=n.nextPart.get(a);i||(i=$s(),n.nextPart.set(a,i)),n=i}return n},wc=e=>"isThemeGetter"in e&&e.isThemeGetter===!0,Cc=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=Object.create(null),r=Object.create(null);const o=(s,a)=>{n[s]=a,t++,t>e&&(t=0,r=n,n=Object.create(null))};return{get(s){let a=n[s];if(a!==void 0)return a;if((a=r[s])!==void 0)return o(s,a),a},set(s,a){s in n?n[s]=a:o(s,a)}}},Ar="!",Uo=":",Sc=[],zo=(e,t,n,r,o)=>({modifiers:e,hasImportantModifier:t,baseClassName:n,maybePostfixModifierPosition:r,isExternal:o}),kc=e=>{const{prefix:t,experimentalParseClassName:n}=e;let r=o=>{const s=[];let a=0,i=0,h=0,f;const l=o.length;for(let b=0;b<l;b++){const w=o[b];if(a===0&&i===0){if(w===Uo){s.push(o.slice(h,b)),h=b+1;continue}if(w==="/"){f=b;continue}}w==="["?a++:w==="]"?a--:w==="("?i++:w===")"&&i--}const c=s.length===0?o:o.slice(h);let u=c,p=!1;c.endsWith(Ar)?(u=c.slice(0,-1),p=!0):c.startsWith(Ar)&&(u=c.slice(1),p=!0);const g=f&&f>h?f-h:void 0;return zo(s,p,u,g)};if(t){const o=t+Uo,s=r;r=a=>a.startsWith(o)?s(a.slice(o.length)):zo(Sc,!1,a,void 0,!0)}if(n){const o=r;r=s=>n({className:s,parseClassName:o})}return r},_c=e=>{const t=new Map;return e.orderSensitiveModifiers.forEach((n,r)=>{t.set(n,1e6+r)}),n=>{const r=[];let o=[];for(let s=0;s<n.length;s++){const a=n[s],i=a[0]==="[",h=t.has(a);i||h?(o.length>0&&(o.sort(),r.push(...o),o=[]),r.push(a)):o.push(a)}return o.length>0&&(o.sort(),r.push(...o)),r}},Ec=e=>({cache:Cc(e.cacheSize),parseClassName:kc(e),sortModifiers:_c(e),postfixLookupClassGroupIds:Nc(e),...hc(e)}),Nc=e=>{const t=Object.create(null),n=e.postfixLookupClassGroups;if(n)for(let r=0;r<n.length;r++)t[n[r]]=!0;return t},jc=/\s+/,Ac=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o,sortModifiers:s,postfixLookupClassGroupIds:a}=t,i=[],h=e.trim().split(jc);let f="";for(let l=h.length-1;l>=0;l-=1){const c=h[l],{isExternal:u,modifiers:p,hasImportantModifier:g,baseClassName:b,maybePostfixModifierPosition:w}=n(c);if(u){f=c+(f.length>0?" "+f:f);continue}let y=!!w,A;if(y){const C=b.substring(0,w);A=r(C);const x=A&&a[A]?r(b):void 0;x&&x!==A&&(A=x,y=!1)}else A=r(b);if(!A){if(!y){f=c+(f.length>0?" "+f:f);continue}if(A=r(b),!A){f=c+(f.length>0?" "+f:f);continue}y=!1}const R=p.length===0?"":p.length===1?p[0]:s(p).join(":"),E=g?R+Ar:R,$=E+A;if(i.indexOf($)>-1)continue;i.push($);const k=o(A,y);for(let C=0;C<k.length;++C){const x=k[C];i.push(E+x)}f=c+(f.length>0?" "+f:f)}return f},Rc=(...e)=>{let t=0,n,r,o="";for(;t<e.length;)(n=e[t++])&&(r=zs(n))&&(o&&(o+=" "),o+=r);return o},zs=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=zs(e[r]))&&(n&&(n+=" "),n+=t);return n},Tc=(e,...t)=>{let n,r,o,s;const a=h=>{const f=t.reduce((l,c)=>c(l),e());return n=Ec(f),r=n.cache.get,o=n.cache.set,s=i,i(h)},i=h=>{const f=r(h);if(f)return f;const l=Ac(h,n);return o(h,l),l};return s=a,(...h)=>s(Rc(...h))},Ic=[],ve=e=>{const t=n=>n[e]||Ic;return t.isThemeGetter=!0,t},Bs=/^\[(?:(\w[\w-]*):)?(.+)\]$/i,Hs=/^\((?:(\w[\w-]*):)?(.+)\)$/i,Mc=/^\d+(?:\.\d+)?\/\d+(?:\.\d+)?$/,Pc=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Oc=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Dc=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Lc=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,$c=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,nt=e=>Mc.test(e),se=e=>!!e&&!Number.isNaN(Number(e)),Fe=e=>!!e&&Number.isInteger(Number(e)),cr=e=>e.endsWith("%")&&se(e.slice(0,-1)),Ge=e=>Pc.test(e),Ws=()=>!0,Fc=e=>Oc.test(e)&&!Dc.test(e),Yr=()=>!1,Uc=e=>Lc.test(e),zc=e=>$c.test(e),Bc=e=>!Y(e)&&!Q(e),Hc=e=>e.startsWith("@container")&&(e[10]==="/"&&e[11]!==void 0||e[11]==="s"&&e[16]!==void 0&&e.startsWith("-size/",10)||e[11]==="n"&&e[18]!==void 0&&e.startsWith("-normal/",10)),Wc=e=>ut(e,Ks,Yr),Y=e=>Bs.test(e),vt=e=>ut(e,qs,Fc),Bo=e=>ut(e,Zc,se),Vc=e=>ut(e,Xs,Ws),Gc=e=>ut(e,Ys,Yr),Ho=e=>ut(e,Vs,Yr),Kc=e=>ut(e,Gs,zc),vn=e=>ut(e,Qs,Uc),Q=e=>Hs.test(e),Yt=e=>_t(e,qs),qc=e=>_t(e,Ys),Wo=e=>_t(e,Vs),Yc=e=>_t(e,Ks),Xc=e=>_t(e,Gs),bn=e=>_t(e,Qs,!0),Qc=e=>_t(e,Xs,!0),ut=(e,t,n)=>{const r=Bs.exec(e);return r?r[1]?t(r[1]):n(r[2]):!1},_t=(e,t,n=!1)=>{const r=Hs.exec(e);return r?r[1]?t(r[1]):n:!1},Vs=e=>e==="position"||e==="percentage",Gs=e=>e==="image"||e==="url",Ks=e=>e==="length"||e==="size"||e==="bg-size",qs=e=>e==="length",Zc=e=>e==="number",Ys=e=>e==="family-name",Xs=e=>e==="number"||e==="weight",Qs=e=>e==="shadow",Jc=()=>{const e=ve("color"),t=ve("font"),n=ve("text"),r=ve("font-weight"),o=ve("tracking"),s=ve("leading"),a=ve("breakpoint"),i=ve("container"),h=ve("spacing"),f=ve("radius"),l=ve("shadow"),c=ve("inset-shadow"),u=ve("text-shadow"),p=ve("drop-shadow"),g=ve("blur"),b=ve("perspective"),w=ve("aspect"),y=ve("ease"),A=ve("animate"),R=()=>["auto","avoid","all","avoid-page","page","left","right","column"],E=()=>["center","top","bottom","left","right","top-left","left-top","top-right","right-top","bottom-right","right-bottom","bottom-left","left-bottom"],$=()=>[...E(),Q,Y],k=()=>["auto","hidden","clip","visible","scroll"],C=()=>["auto","contain","none"],x=()=>[Q,Y,h],v=()=>[nt,"full","auto",...x()],j=()=>[Fe,"none","subgrid",Q,Y],P=()=>["auto",{span:["full",Fe,Q,Y]},Fe,Q,Y],O=()=>[Fe,"auto",Q,Y],F=()=>["auto","min","max","fr",Q,Y],M=()=>["start","end","center","between","around","evenly","stretch","baseline","center-safe","end-safe"],D=()=>["start","end","center","stretch","center-safe","end-safe"],_=()=>["auto",...x()],S=()=>[nt,"auto","full","dvw","dvh","lvw","lvh","svw","svh","min","max","fit",...x()],L=()=>[nt,"screen","full","dvw","lvw","svw","min","max","fit",...x()],N=()=>[nt,"screen","full","lh","dvh","lvh","svh","min","max","fit",...x()],I=()=>[e,Q,Y],H=()=>[...E(),Wo,Ho,{position:[Q,Y]}],T=()=>["no-repeat",{repeat:["","x","y","space","round"]}],B=()=>["auto","cover","contain",Yc,Wc,{size:[Q,Y]}],z=()=>[cr,Yt,vt],U=()=>["","none","full",f,Q,Y],V=()=>["",se,Yt,vt],G=()=>["solid","dashed","dotted","double"],X=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],K=()=>[se,cr,Wo,Ho],ne=()=>["","none",g,Q,Y],ie=()=>["none",se,Q,Y],de=()=>["none",se,Q,Y],me=()=>[se,Q,Y],W=()=>[nt,"full",...x()];return{cacheSize:500,theme:{animate:["spin","ping","pulse","bounce"],aspect:["video"],blur:[Ge],breakpoint:[Ge],color:[Ws],container:[Ge],"drop-shadow":[Ge],ease:["in","out","in-out"],font:[Bc],"font-weight":["thin","extralight","light","normal","medium","semibold","bold","extrabold","black"],"inset-shadow":[Ge],leading:["none","tight","snug","normal","relaxed","loose"],perspective:["dramatic","near","normal","midrange","distant","none"],radius:[Ge],shadow:[Ge],spacing:["px",se],text:[Ge],"text-shadow":[Ge],tracking:["tighter","tight","normal","wide","wider","widest"]},classGroups:{aspect:[{aspect:["auto","square",nt,Y,Q,w]}],container:["container"],"container-type":[{"@container":["","normal","size",Q,Y]}],"container-named":[Hc],columns:[{columns:[se,Y,Q,i]}],"break-after":[{"break-after":R()}],"break-before":[{"break-before":R()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],sr:["sr-only","not-sr-only"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:$()}],overflow:[{overflow:k()}],"overflow-x":[{"overflow-x":k()}],"overflow-y":[{"overflow-y":k()}],overscroll:[{overscroll:C()}],"overscroll-x":[{"overscroll-x":C()}],"overscroll-y":[{"overscroll-y":C()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:v()}],"inset-x":[{"inset-x":v()}],"inset-y":[{"inset-y":v()}],start:[{"inset-s":v(),start:v()}],end:[{"inset-e":v(),end:v()}],"inset-bs":[{"inset-bs":v()}],"inset-be":[{"inset-be":v()}],top:[{top:v()}],right:[{right:v()}],bottom:[{bottom:v()}],left:[{left:v()}],visibility:["visible","invisible","collapse"],z:[{z:[Fe,"auto",Q,Y]}],basis:[{basis:[nt,"full","auto",i,...x()]}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["nowrap","wrap","wrap-reverse"]}],flex:[{flex:[se,nt,"auto","initial","none",Y]}],grow:[{grow:["",se,Q,Y]}],shrink:[{shrink:["",se,Q,Y]}],order:[{order:[Fe,"first","last","none",Q,Y]}],"grid-cols":[{"grid-cols":j()}],"col-start-end":[{col:P()}],"col-start":[{"col-start":O()}],"col-end":[{"col-end":O()}],"grid-rows":[{"grid-rows":j()}],"row-start-end":[{row:P()}],"row-start":[{"row-start":O()}],"row-end":[{"row-end":O()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":F()}],"auto-rows":[{"auto-rows":F()}],gap:[{gap:x()}],"gap-x":[{"gap-x":x()}],"gap-y":[{"gap-y":x()}],"justify-content":[{justify:[...M(),"normal"]}],"justify-items":[{"justify-items":[...D(),"normal"]}],"justify-self":[{"justify-self":["auto",...D()]}],"align-content":[{content:["normal",...M()]}],"align-items":[{items:[...D(),{baseline:["","last"]}]}],"align-self":[{self:["auto",...D(),{baseline:["","last"]}]}],"place-content":[{"place-content":M()}],"place-items":[{"place-items":[...D(),"baseline"]}],"place-self":[{"place-self":["auto",...D()]}],p:[{p:x()}],px:[{px:x()}],py:[{py:x()}],ps:[{ps:x()}],pe:[{pe:x()}],pbs:[{pbs:x()}],pbe:[{pbe:x()}],pt:[{pt:x()}],pr:[{pr:x()}],pb:[{pb:x()}],pl:[{pl:x()}],m:[{m:_()}],mx:[{mx:_()}],my:[{my:_()}],ms:[{ms:_()}],me:[{me:_()}],mbs:[{mbs:_()}],mbe:[{mbe:_()}],mt:[{mt:_()}],mr:[{mr:_()}],mb:[{mb:_()}],ml:[{ml:_()}],"space-x":[{"space-x":x()}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":x()}],"space-y-reverse":["space-y-reverse"],size:[{size:S()}],"inline-size":[{inline:["auto",...L()]}],"min-inline-size":[{"min-inline":["auto",...L()]}],"max-inline-size":[{"max-inline":["none",...L()]}],"block-size":[{block:["auto",...N()]}],"min-block-size":[{"min-block":["auto",...N()]}],"max-block-size":[{"max-block":["none",...N()]}],w:[{w:[i,"screen",...S()]}],"min-w":[{"min-w":[i,"screen","none",...S()]}],"max-w":[{"max-w":[i,"screen","none","prose",{screen:[a]},...S()]}],h:[{h:["screen","lh",...S()]}],"min-h":[{"min-h":["screen","lh","none",...S()]}],"max-h":[{"max-h":["screen","lh",...S()]}],"font-size":[{text:["base",n,Yt,vt]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:[r,Qc,Vc]}],"font-stretch":[{"font-stretch":["ultra-condensed","extra-condensed","condensed","semi-condensed","normal","semi-expanded","expanded","extra-expanded","ultra-expanded",cr,Y]}],"font-family":[{font:[qc,Gc,t]}],"font-features":[{"font-features":[Y]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:[o,Q,Y]}],"line-clamp":[{"line-clamp":[se,"none",Q,Bo]}],leading:[{leading:[s,...x()]}],"list-image":[{"list-image":["none",Q,Y]}],"list-style-position":[{list:["inside","outside"]}],"list-style-type":[{list:["disc","decimal","none",Q,Y]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"placeholder-color":[{placeholder:I()}],"text-color":[{text:I()}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...G(),"wavy"]}],"text-decoration-thickness":[{decoration:[se,"from-font","auto",Q,vt]}],"text-decoration-color":[{decoration:I()}],"underline-offset":[{"underline-offset":[se,"auto",Q,Y]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:x()}],"tab-size":[{tab:[Fe,Q,Y]}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Q,Y]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],wrap:[{wrap:["break-word","anywhere","normal"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Q,Y]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:H()}],"bg-repeat":[{bg:T()}],"bg-size":[{bg:B()}],"bg-image":[{bg:["none",{linear:[{to:["t","tr","r","br","b","bl","l","tl"]},Fe,Q,Y],radial:["",Q,Y],conic:[Fe,Q,Y]},Xc,Kc]}],"bg-color":[{bg:I()}],"gradient-from-pos":[{from:z()}],"gradient-via-pos":[{via:z()}],"gradient-to-pos":[{to:z()}],"gradient-from":[{from:I()}],"gradient-via":[{via:I()}],"gradient-to":[{to:I()}],rounded:[{rounded:U()}],"rounded-s":[{"rounded-s":U()}],"rounded-e":[{"rounded-e":U()}],"rounded-t":[{"rounded-t":U()}],"rounded-r":[{"rounded-r":U()}],"rounded-b":[{"rounded-b":U()}],"rounded-l":[{"rounded-l":U()}],"rounded-ss":[{"rounded-ss":U()}],"rounded-se":[{"rounded-se":U()}],"rounded-ee":[{"rounded-ee":U()}],"rounded-es":[{"rounded-es":U()}],"rounded-tl":[{"rounded-tl":U()}],"rounded-tr":[{"rounded-tr":U()}],"rounded-br":[{"rounded-br":U()}],"rounded-bl":[{"rounded-bl":U()}],"border-w":[{border:V()}],"border-w-x":[{"border-x":V()}],"border-w-y":[{"border-y":V()}],"border-w-s":[{"border-s":V()}],"border-w-e":[{"border-e":V()}],"border-w-bs":[{"border-bs":V()}],"border-w-be":[{"border-be":V()}],"border-w-t":[{"border-t":V()}],"border-w-r":[{"border-r":V()}],"border-w-b":[{"border-b":V()}],"border-w-l":[{"border-l":V()}],"divide-x":[{"divide-x":V()}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":V()}],"divide-y-reverse":["divide-y-reverse"],"border-style":[{border:[...G(),"hidden","none"]}],"divide-style":[{divide:[...G(),"hidden","none"]}],"border-color":[{border:I()}],"border-color-x":[{"border-x":I()}],"border-color-y":[{"border-y":I()}],"border-color-s":[{"border-s":I()}],"border-color-e":[{"border-e":I()}],"border-color-bs":[{"border-bs":I()}],"border-color-be":[{"border-be":I()}],"border-color-t":[{"border-t":I()}],"border-color-r":[{"border-r":I()}],"border-color-b":[{"border-b":I()}],"border-color-l":[{"border-l":I()}],"divide-color":[{divide:I()}],"outline-style":[{outline:[...G(),"none","hidden"]}],"outline-offset":[{"outline-offset":[se,Q,Y]}],"outline-w":[{outline:["",se,Yt,vt]}],"outline-color":[{outline:I()}],shadow:[{shadow:["","none",l,bn,vn]}],"shadow-color":[{shadow:I()}],"inset-shadow":[{"inset-shadow":["none",c,bn,vn]}],"inset-shadow-color":[{"inset-shadow":I()}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:I()}],"ring-offset-w":[{"ring-offset":[se,vt]}],"ring-offset-color":[{"ring-offset":I()}],"inset-ring-w":[{"inset-ring":V()}],"inset-ring-color":[{"inset-ring":I()}],"text-shadow":[{"text-shadow":["none",u,bn,vn]}],"text-shadow-color":[{"text-shadow":I()}],opacity:[{opacity:[se,Q,Y]}],"mix-blend":[{"mix-blend":[...X(),"plus-darker","plus-lighter"]}],"bg-blend":[{"bg-blend":X()}],"mask-clip":[{"mask-clip":["border","padding","content","fill","stroke","view"]},"mask-no-clip"],"mask-composite":[{mask:["add","subtract","intersect","exclude"]}],"mask-image-linear-pos":[{"mask-linear":[se]}],"mask-image-linear-from-pos":[{"mask-linear-from":K()}],"mask-image-linear-to-pos":[{"mask-linear-to":K()}],"mask-image-linear-from-color":[{"mask-linear-from":I()}],"mask-image-linear-to-color":[{"mask-linear-to":I()}],"mask-image-t-from-pos":[{"mask-t-from":K()}],"mask-image-t-to-pos":[{"mask-t-to":K()}],"mask-image-t-from-color":[{"mask-t-from":I()}],"mask-image-t-to-color":[{"mask-t-to":I()}],"mask-image-r-from-pos":[{"mask-r-from":K()}],"mask-image-r-to-pos":[{"mask-r-to":K()}],"mask-image-r-from-color":[{"mask-r-from":I()}],"mask-image-r-to-color":[{"mask-r-to":I()}],"mask-image-b-from-pos":[{"mask-b-from":K()}],"mask-image-b-to-pos":[{"mask-b-to":K()}],"mask-image-b-from-color":[{"mask-b-from":I()}],"mask-image-b-to-color":[{"mask-b-to":I()}],"mask-image-l-from-pos":[{"mask-l-from":K()}],"mask-image-l-to-pos":[{"mask-l-to":K()}],"mask-image-l-from-color":[{"mask-l-from":I()}],"mask-image-l-to-color":[{"mask-l-to":I()}],"mask-image-x-from-pos":[{"mask-x-from":K()}],"mask-image-x-to-pos":[{"mask-x-to":K()}],"mask-image-x-from-color":[{"mask-x-from":I()}],"mask-image-x-to-color":[{"mask-x-to":I()}],"mask-image-y-from-pos":[{"mask-y-from":K()}],"mask-image-y-to-pos":[{"mask-y-to":K()}],"mask-image-y-from-color":[{"mask-y-from":I()}],"mask-image-y-to-color":[{"mask-y-to":I()}],"mask-image-radial":[{"mask-radial":[Q,Y]}],"mask-image-radial-from-pos":[{"mask-radial-from":K()}],"mask-image-radial-to-pos":[{"mask-radial-to":K()}],"mask-image-radial-from-color":[{"mask-radial-from":I()}],"mask-image-radial-to-color":[{"mask-radial-to":I()}],"mask-image-radial-shape":[{"mask-radial":["circle","ellipse"]}],"mask-image-radial-size":[{"mask-radial":[{closest:["side","corner"],farthest:["side","corner"]}]}],"mask-image-radial-pos":[{"mask-radial-at":E()}],"mask-image-conic-pos":[{"mask-conic":[se]}],"mask-image-conic-from-pos":[{"mask-conic-from":K()}],"mask-image-conic-to-pos":[{"mask-conic-to":K()}],"mask-image-conic-from-color":[{"mask-conic-from":I()}],"mask-image-conic-to-color":[{"mask-conic-to":I()}],"mask-mode":[{mask:["alpha","luminance","match"]}],"mask-origin":[{"mask-origin":["border","padding","content","fill","stroke","view"]}],"mask-position":[{mask:H()}],"mask-repeat":[{mask:T()}],"mask-size":[{mask:B()}],"mask-type":[{"mask-type":["alpha","luminance"]}],"mask-image":[{mask:["none",Q,Y]}],filter:[{filter:["","none",Q,Y]}],blur:[{blur:ne()}],brightness:[{brightness:[se,Q,Y]}],contrast:[{contrast:[se,Q,Y]}],"drop-shadow":[{"drop-shadow":["","none",p,bn,vn]}],"drop-shadow-color":[{"drop-shadow":I()}],grayscale:[{grayscale:["",se,Q,Y]}],"hue-rotate":[{"hue-rotate":[se,Q,Y]}],invert:[{invert:["",se,Q,Y]}],saturate:[{saturate:[se,Q,Y]}],sepia:[{sepia:["",se,Q,Y]}],"backdrop-filter":[{"backdrop-filter":["","none",Q,Y]}],"backdrop-blur":[{"backdrop-blur":ne()}],"backdrop-brightness":[{"backdrop-brightness":[se,Q,Y]}],"backdrop-contrast":[{"backdrop-contrast":[se,Q,Y]}],"backdrop-grayscale":[{"backdrop-grayscale":["",se,Q,Y]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[se,Q,Y]}],"backdrop-invert":[{"backdrop-invert":["",se,Q,Y]}],"backdrop-opacity":[{"backdrop-opacity":[se,Q,Y]}],"backdrop-saturate":[{"backdrop-saturate":[se,Q,Y]}],"backdrop-sepia":[{"backdrop-sepia":["",se,Q,Y]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":x()}],"border-spacing-x":[{"border-spacing-x":x()}],"border-spacing-y":[{"border-spacing-y":x()}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["","all","colors","opacity","shadow","transform","none",Q,Y]}],"transition-behavior":[{transition:["normal","discrete"]}],duration:[{duration:[se,"initial",Q,Y]}],ease:[{ease:["linear","initial",y,Q,Y]}],delay:[{delay:[se,Q,Y]}],animate:[{animate:["none",A,Q,Y]}],backface:[{backface:["hidden","visible"]}],perspective:[{perspective:[b,Q,Y]}],"perspective-origin":[{"perspective-origin":$()}],rotate:[{rotate:ie()}],"rotate-x":[{"rotate-x":ie()}],"rotate-y":[{"rotate-y":ie()}],"rotate-z":[{"rotate-z":ie()}],scale:[{scale:de()}],"scale-x":[{"scale-x":de()}],"scale-y":[{"scale-y":de()}],"scale-z":[{"scale-z":de()}],"scale-3d":["scale-3d"],skew:[{skew:me()}],"skew-x":[{"skew-x":me()}],"skew-y":[{"skew-y":me()}],transform:[{transform:[Q,Y,"","none","gpu","cpu"]}],"transform-origin":[{origin:$()}],"transform-style":[{transform:["3d","flat"]}],translate:[{translate:W()}],"translate-x":[{"translate-x":W()}],"translate-y":[{"translate-y":W()}],"translate-z":[{"translate-z":W()}],"translate-none":["translate-none"],zoom:[{zoom:[Fe,Q,Y]}],accent:[{accent:I()}],appearance:[{appearance:["none","auto"]}],"caret-color":[{caret:I()}],"color-scheme":[{scheme:["normal","dark","light","light-dark","only-dark","only-light"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Q,Y]}],"field-sizing":[{"field-sizing":["fixed","content"]}],"pointer-events":[{"pointer-events":["auto","none"]}],resize:[{resize:["none","","y","x"]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scrollbar-thumb-color":[{"scrollbar-thumb":I()}],"scrollbar-track-color":[{"scrollbar-track":I()}],"scrollbar-gutter":[{"scrollbar-gutter":["auto","stable","both"]}],"scrollbar-w":[{scrollbar:["auto","thin","none"]}],"scroll-m":[{"scroll-m":x()}],"scroll-mx":[{"scroll-mx":x()}],"scroll-my":[{"scroll-my":x()}],"scroll-ms":[{"scroll-ms":x()}],"scroll-me":[{"scroll-me":x()}],"scroll-mbs":[{"scroll-mbs":x()}],"scroll-mbe":[{"scroll-mbe":x()}],"scroll-mt":[{"scroll-mt":x()}],"scroll-mr":[{"scroll-mr":x()}],"scroll-mb":[{"scroll-mb":x()}],"scroll-ml":[{"scroll-ml":x()}],"scroll-p":[{"scroll-p":x()}],"scroll-px":[{"scroll-px":x()}],"scroll-py":[{"scroll-py":x()}],"scroll-ps":[{"scroll-ps":x()}],"scroll-pe":[{"scroll-pe":x()}],"scroll-pbs":[{"scroll-pbs":x()}],"scroll-pbe":[{"scroll-pbe":x()}],"scroll-pt":[{"scroll-pt":x()}],"scroll-pr":[{"scroll-pr":x()}],"scroll-pb":[{"scroll-pb":x()}],"scroll-pl":[{"scroll-pl":x()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Q,Y]}],fill:[{fill:["none",...I()]}],"stroke-w":[{stroke:[se,Yt,vt,Bo]}],stroke:[{stroke:["none",...I()]}],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{"container-named":["container-type"],overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","inset-bs","inset-be","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pbs","pbe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mbs","mbe","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-x","border-w-y","border-w-s","border-w-e","border-w-bs","border-w-be","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-x","border-color-y","border-color-s","border-color-e","border-color-bs","border-color-be","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],translate:["translate-x","translate-y","translate-none"],"translate-none":["translate","translate-x","translate-y","translate-z"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mbs","scroll-mbe","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pbs","scroll-pbe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]},postfixLookupClassGroups:["container-type"],orderSensitiveModifiers:["*","**","after","backdrop","before","details-content","file","first-letter","first-line","marker","placeholder","selection"]}},ed=Tc(Jc);function Z(...e){return ed(Ls(e))}function td(e){if(!e)return"";const t=String(e),n=document.createElement("div");return n.textContent=t,n.innerHTML}function eb(e){return e?new Date(e*1e3).toLocaleString():""}function tb(e){return e==="archived"||e==="inactive"}function nb(e,t){if(!e)return"";const n=String(e);return n.length>t?n.slice(0,t)+"...":n}function nd(e){e[6]=e[6]&15|64,e[8]=e[8]&63|128;const t=Array.from(e,n=>n.toString(16).padStart(2,"0"));return[t.slice(0,4).join(""),t.slice(4,6).join(""),t.slice(6,8).join(""),t.slice(8,10).join(""),t.slice(10,16).join("")].join("-")}function rd(){const e=globalThis.crypto;if(e&&typeof e.randomUUID=="function")return e.randomUUID();if(!e||typeof e.getRandomValues!="function")throw new Error("crypto.getRandomValues is required to generate message UUIDs");const t=new Uint8Array(16);return e.getRandomValues(t),nd(t)}/**
3
3
  * @license lucide-react v0.555.0 - ISC
4
4
  *
@@ -247,7 +247,7 @@ self.addEventListener('message', async (e) => {
247
247
  self.postMessage({ error: e.message + '\\n' + e.stack, id })
248
248
  }
249
249
  })
250
- `;let vr;function Qp(e,t){return new Promise(((n,r)=>{vr||(vr=(function(a){const i=[];return i.push(a),URL.createObjectURL(new Blob(i))})(Xp));const o=new Worker(vr);o.addEventListener("message",(function(a){if(t.signal&&t.signal.aborted)o.terminate();else if(a.data.progress===void 0){if(a.data.error)return r(new Error(a.data.error)),void o.terminate();n(a.data.file),o.terminate()}else t.onProgress(a.data.progress)})),o.addEventListener("error",r),t.signal&&t.signal.addEventListener("abort",(()=>{r(t.signal.reason),o.terminate()})),o.postMessage({file:e,imageCompressionLibUrl:t.libURL,options:{...t,onProgress:void 0,signal:void 0}})}))}function be(e,t){return new Promise((function(n,r){let o,s,a,i,h,f;if(o={...t},a=0,{onProgress:i}=o,o.maxSizeMB=o.maxSizeMB||Number.POSITIVE_INFINITY,h=typeof o.useWebWorker!="boolean"||o.useWebWorker,delete o.useWebWorker,o.onProgress=p=>{a=p,typeof i=="function"&&i(a)},!(e instanceof Blob||e instanceof Yp))return r(new Error("The file given is not an instance of Blob or File"));if(!/^image/.test(e.type))return r(new Error("The file given is not an image"));if(f=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,!h||typeof Worker!="function"||f)return ys(e,o).then((function(p){try{return s=p,u.call(this)}catch(g){return r(g)}}).bind(this),r);var l=(function(){try{return u.call(this)}catch(p){return r(p)}}).bind(this),c=function(p){try{return ys(e,o).then((function(g){try{return s=g,l()}catch(b){return r(b)}}),r)}catch(g){return r(g)}};try{return o.libURL=o.libURL||"https://cdn.jsdelivr.net/npm/browser-image-compression@2.0.2/dist/browser-image-compression.js",Qp(e,o).then((function(p){try{return s=p,l()}catch{return c()}}),c)}catch{c()}function u(){try{s.name=e.name,s.lastModified=e.lastModified}catch{}try{o.preserveExif&&e.type==="image/jpeg"&&(!o.fileType||o.fileType&&o.fileType===e.type)&&(s=Zi(e,s))}catch{}return n(s)}}))}be.getDataUrlFromFile=nl,be.getFilefromDataUrl=No,be.loadImage=rl,be.drawImageInCanvas=sl,be.drawFileInCanvas=Fn,be.canvasToFile=Un,be.getExifOrientation=al,be.handleMaxWidthOrHeight=il,be.followExifOrientation=ll,be.cleanupCanvasMemory=Ue,be.isAutoOrientationInBrowser=Mt,be.approximateBelowMaximumCanvasSizeOfBrowser=ol,be.copyExifWithoutOrientation=Zi,be.getBrowserName=yt,be.version="2.0.2";var Zp=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ft=Zp.reduce((e,t)=>{const n=fa(`Primitive.${t}`),r=m.forwardRef((o,s)=>{const{asChild:a,...i}=o,h=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(h,{...i,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Jp=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),eg="VisuallyHidden",cl=m.forwardRef((e,t)=>d.jsx(ue.span,{...e,ref:t,style:{...Jp,...e.style}}));cl.displayName=eg;var tg=cl,[tr]=Qe("Tooltip",[Vt]),nr=Vt(),dl="TooltipProvider",ng=700,Ur="tooltip.open",[rg,jo]=tr(dl),ul=e=>{const{__scopeTooltip:t,delayDuration:n=ng,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:s}=e,a=m.useRef(!0),i=m.useRef(!1),h=m.useRef(0);return m.useEffect(()=>{const f=h.current;return()=>window.clearTimeout(f)},[]),d.jsx(rg,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(h.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:i,onPointerInTransitChange:m.useCallback(f=>{i.current=f},[]),disableHoverableContent:o,children:s})};ul.displayName=dl;var rn="Tooltip",[og,mn]=tr(rn),fl=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o,onOpenChange:s,disableHoverableContent:a,delayDuration:i}=e,h=jo(rn,e.__scopeTooltip),f=nr(t),[l,c]=m.useState(null),u=Ce(),p=m.useRef(0),g=a??h.disableHoverableContent,b=i??h.delayDuration,w=m.useRef(!1),[y,A]=it({prop:r,defaultProp:o??!1,onChange:C=>{C?(h.onOpen(),document.dispatchEvent(new CustomEvent(Ur))):h.onClose(),s==null||s(C)},caller:rn}),R=m.useMemo(()=>y?w.current?"delayed-open":"instant-open":"closed",[y]),E=m.useCallback(()=>{window.clearTimeout(p.current),p.current=0,w.current=!1,A(!0)},[A]),$=m.useCallback(()=>{window.clearTimeout(p.current),p.current=0,A(!1)},[A]),k=m.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{w.current=!0,A(!0),p.current=0},b)},[b,A]);return m.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),d.jsx(co,{...f,children:d.jsx(og,{scope:t,contentId:u,open:y,stateAttribute:R,trigger:l,onTriggerChange:c,onTriggerEnter:m.useCallback(()=>{h.isOpenDelayedRef.current?k():E()},[h.isOpenDelayedRef,k,E]),onTriggerLeave:m.useCallback(()=>{g?$():(window.clearTimeout(p.current),p.current=0)},[$,g]),onOpen:E,onClose:$,disableHoverableContent:g,children:n})})};fl.displayName=rn;var zr="TooltipTrigger",hl=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=mn(zr,n),s=jo(zr,n),a=nr(n),i=m.useRef(null),h=pe(t,i,o.onTriggerChange),f=m.useRef(!1),l=m.useRef(!1),c=m.useCallback(()=>f.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",c),[c]),d.jsx(qn,{asChild:!0,...a,children:d.jsx(ue.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:h,onPointerMove:ee(e.onPointerMove,u=>{u.pointerType!=="touch"&&!l.current&&!s.isPointerInTransitRef.current&&(o.onTriggerEnter(),l.current=!0)}),onPointerLeave:ee(e.onPointerLeave,()=>{o.onTriggerLeave(),l.current=!1}),onPointerDown:ee(e.onPointerDown,()=>{o.open&&o.onClose(),f.current=!0,document.addEventListener("pointerup",c,{once:!0})}),onFocus:ee(e.onFocus,()=>{f.current||o.onOpen()}),onBlur:ee(e.onBlur,o.onClose),onClick:ee(e.onClick,o.onClose)})})});hl.displayName=zr;var Ao="TooltipPortal",[sg,ag]=tr(Ao,{forceMount:void 0}),ml=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,s=mn(Ao,t);return d.jsx(sg,{scope:t,forceMount:n,children:d.jsx(Ae,{present:n||s.open,children:d.jsx(dn,{asChild:!0,container:o,children:r})})})};ml.displayName=Ao;var Ft="TooltipContent",pl=m.forwardRef((e,t)=>{const n=ag(Ft,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...s}=e,a=mn(Ft,e.__scopeTooltip);return d.jsx(Ae,{present:r||a.open,children:a.disableHoverableContent?d.jsx(gl,{side:o,...s,ref:t}):d.jsx(ig,{side:o,...s,ref:t})})}),ig=m.forwardRef((e,t)=>{const n=mn(Ft,e.__scopeTooltip),r=jo(Ft,e.__scopeTooltip),o=m.useRef(null),s=pe(t,o),[a,i]=m.useState(null),{trigger:h,onClose:f}=n,l=o.current,{onPointerInTransitChange:c}=r,u=m.useCallback(()=>{i(null),c(!1)},[c]),p=m.useCallback((g,b)=>{const w=g.currentTarget,y={x:g.clientX,y:g.clientY},A=ug(y,w.getBoundingClientRect()),R=fg(y,A),E=hg(b.getBoundingClientRect()),$=pg([...R,...E]);i($),c(!0)},[c]);return m.useEffect(()=>()=>u(),[u]),m.useEffect(()=>{if(h&&l){const g=w=>p(w,l),b=w=>p(w,h);return h.addEventListener("pointerleave",g),l.addEventListener("pointerleave",b),()=>{h.removeEventListener("pointerleave",g),l.removeEventListener("pointerleave",b)}}},[h,l,p,u]),m.useEffect(()=>{if(a){const g=b=>{const w=b.target,y={x:b.clientX,y:b.clientY},A=(h==null?void 0:h.contains(w))||(l==null?void 0:l.contains(w)),R=!mg(y,a);A?u():R&&(u(),f())};return document.addEventListener("pointermove",g),()=>document.removeEventListener("pointermove",g)}},[h,l,a,f,u]),d.jsx(gl,{...e,ref:s})}),[lg,cg]=tr(rn,{isInside:!1}),dg=Ou("TooltipContent"),gl=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:s,onPointerDownOutside:a,...i}=e,h=mn(Ft,n),f=nr(n),{onClose:l}=h;return m.useEffect(()=>(document.addEventListener(Ur,l),()=>document.removeEventListener(Ur,l)),[l]),m.useEffect(()=>{if(h.trigger){const c=u=>{const p=u.target;p!=null&&p.contains(h.trigger)&&l()};return window.addEventListener("scroll",c,{capture:!0}),()=>window.removeEventListener("scroll",c,{capture:!0})}},[h.trigger,l]),d.jsx(ln,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:c=>c.preventDefault(),onDismiss:l,children:d.jsxs(uo,{"data-state":h.stateAttribute,...f,...i,ref:t,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[d.jsx(dg,{children:r}),d.jsx(lg,{scope:n,isInside:!0,children:d.jsx(tg,{id:h.contentId,role:"tooltip",children:o||r})})]})})});pl.displayName=Ft;var xl="TooltipArrow",vl=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=nr(n);return cg(xl,n).isInside?null:d.jsx(fo,{...o,...r,ref:t})});vl.displayName=xl;function ug(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,o,s)){case s:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function fg(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function hg(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function mg(e,t){const{x:n,y:r}=e;let o=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const i=t[s],h=t[a],f=i.x,l=i.y,c=h.x,u=h.y;l>r!=u>r&&n<(c-f)*(r-l)/(u-l)+f&&(o=!o)}return o}function pg(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),gg(t)}function gg(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const o=e[r];for(;t.length>=2;){const s=t[t.length-1],a=t[t.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const s=n[n.length-1],a=n[n.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var xg=ul,vg=fl,bg=hl,yg=ml,wg=pl,Cg=vl;function Sg({delayDuration:e=0,...t}){return d.jsx(xg,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function kg({...e}){return d.jsx(Sg,{children:d.jsx(vg,{"data-slot":"tooltip",...e})})}function _g({...e}){return d.jsx(bg,{"data-slot":"tooltip-trigger",...e})}function Eg({className:e,sideOffset:t=0,children:n,...r}){return d.jsx(yg,{children:d.jsxs(wg,{"data-slot":"tooltip-content",sideOffset:t,className:Z("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...r,children:[n,d.jsx(Cg,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}const Ng=m.lazy(()=>sn(()=>import("./mermaid-VLURNSYL-C9-eaj0o.js").then(e=>e.i),__vite__mapDeps([0,1,2])).then(e=>({default:e.Streamdown})));m.createContext(null);const Ro=m.memo(({className:e,children:t,...n})=>d.jsx(m.Suspense,{fallback:d.jsx("div",{className:Z("whitespace-pre-wrap break-words",e),children:t}),children:d.jsx(Ng,{className:Z("size-full break-words [overflow-wrap:anywhere] [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",e),...n,children:t})}),(e,t)=>e.children===t.children);Ro.displayName="MessageResponse";var rr="Collapsible",[jg]=Qe(rr),[Ag,To]=jg(rr),bl=m.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:o,disabled:s,onOpenChange:a,...i}=e,[h,f]=it({prop:r,defaultProp:o??!1,onChange:a,caller:rr});return d.jsx(Ag,{scope:n,disabled:s,contentId:Ce(),open:h,onOpenToggle:m.useCallback(()=>f(l=>!l),[f]),children:d.jsx(ue.div,{"data-state":Mo(h),"data-disabled":s?"":void 0,...i,ref:t})})});bl.displayName=rr;var yl="CollapsibleTrigger",wl=m.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,o=To(yl,n);return d.jsx(ue.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":Mo(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...r,ref:t,onClick:ee(e.onClick,o.onOpenToggle)})});wl.displayName=yl;var Io="CollapsibleContent",Cl=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=To(Io,e.__scopeCollapsible);return d.jsx(Ae,{present:n||o.open,children:({present:s})=>d.jsx(Rg,{...r,ref:t,present:s})})});Cl.displayName=Io;var Rg=m.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:o,...s}=e,a=To(Io,n),[i,h]=m.useState(r),f=m.useRef(null),l=pe(t,f),c=m.useRef(0),u=c.current,p=m.useRef(0),g=p.current,b=a.open||i,w=m.useRef(b),y=m.useRef(void 0);return m.useEffect(()=>{const A=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(A)},[]),Ke(()=>{const A=f.current;if(A){y.current=y.current||{transitionDuration:A.style.transitionDuration,animationName:A.style.animationName},A.style.transitionDuration="0s",A.style.animationName="none";const R=A.getBoundingClientRect();c.current=R.height,p.current=R.width,w.current||(A.style.transitionDuration=y.current.transitionDuration,A.style.animationName=y.current.animationName),h(r)}},[a.open,r]),d.jsx(ue.div,{"data-state":Mo(a.open),"data-disabled":a.disabled?"":void 0,id:a.contentId,hidden:!b,...s,ref:l,style:{"--radix-collapsible-content-height":u?`${u}px`:void 0,"--radix-collapsible-content-width":g?`${g}px`:void 0,...e.style},children:b&&o})});function Mo(e){return e?"open":"closed"}var Tg=bl;function Ig({...e}){return d.jsx(Tg,{"data-slot":"collapsible",...e})}function Mg({...e}){return d.jsx(wl,{"data-slot":"collapsible-trigger",...e})}function Pg({...e}){return d.jsx(Cl,{"data-slot":"collapsible-content",...e})}const Og=({children:e,as:t="p",className:n,duration:r=2})=>{const o=cc.create(t);return d.jsx(o,{animate:{opacity:[.5,1,.5]},className:Z("relative inline-block text-muted-foreground",n),transition:{repeat:Number.POSITIVE_INFINITY,duration:r,ease:"easeInOut"},children:e})},Dg=m.memo(Og),Sl=m.createContext(null),Lg=()=>{const e=m.useContext(Sl);if(!e)throw new Error("Reasoning components must be used within Reasoning");return e},$g=1e3,Fg=1e3,kl=m.memo(({className:e,isStreaming:t=!1,open:n,defaultOpen:r=!0,onOpenChange:o,duration:s,children:a,...i})=>{const[h,f]=it({prop:n,defaultProp:r,onChange:o}),[l,c]=it({prop:s,defaultProp:void 0}),[u,p]=m.useState(!1),[g,b]=m.useState(null);m.useEffect(()=>{t?g===null&&b(Date.now()):g!==null&&(c(Math.ceil((Date.now()-g)/Fg)),b(null))},[t,g,c]);const w=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;m.useEffect(()=>{if(!w&&r&&!t&&h&&!u){const A=setTimeout(()=>{f(!1),p(!0)},$g);return()=>clearTimeout(A)}},[t,h,r,f,u,w]);const y=A=>{f(A)};return d.jsx(Sl.Provider,{value:{isStreaming:t,isOpen:h??!1,setIsOpen:f,duration:l},children:d.jsx(Ig,{className:Z("not-prose mb-4",e),onOpenChange:y,open:h,...i,children:a})})}),Ug=(e,t)=>e||t===0?d.jsx(Dg,{duration:1,children:"Thinking..."}):t===void 0?d.jsx("p",{children:"Thought for a few seconds"}):d.jsxs("p",{children:["Thought for ",t," seconds"]}),_l=m.memo(({className:e,children:t,getThinkingMessage:n=Ug,...r})=>{const{isStreaming:o,isOpen:s,duration:a}=Lg();return d.jsx(Mg,{className:Z("flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground",e),...r,children:t??d.jsxs(d.Fragment,{children:[d.jsx(fd,{className:"size-4"}),n(o,a),d.jsx(an,{className:Z("size-4 transition-transform",s?"rotate-180":"rotate-0")})]})})}),El=m.memo(({className:e,children:t,...n})=>d.jsx(Pg,{className:Z("mt-4 text-sm","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",e),...n,children:t}));kl.displayName="Reasoning";_l.displayName="ReasoningTrigger";El.displayName="ReasoningContent";const br=200;function zg({entry:e}){const[t,n]=m.useState(!1),[r,o]=m.useState(!1),s=m.useRef(null),a=m.useCallback(()=>{const i=s.current;i&&o(i.scrollHeight>br+4)},[]);return m.useEffect(()=>{a()},[a,e.content]),d.jsx("div",{className:"flex justify-end",children:d.jsxs("div",{className:"max-w-[85%] sm:max-w-[70%]",children:[e.images&&e.images.length>0&&d.jsx("div",{className:"flex flex-wrap gap-2 mb-2 justify-end",children:e.images.map((i,h)=>d.jsx(Hg,{image:i},h))}),e.attachments&&e.attachments.length>0&&d.jsx("div",{className:"flex flex-wrap gap-2 mb-2 justify-end",children:e.attachments.map((i,h)=>d.jsx(Wg,{attachment:i},h))}),e.content&&d.jsxs("div",{className:"relative rounded-2xl rounded-br-md bg-user-bubble border border-user-bubble-border overflow-hidden",children:[d.jsx("div",{ref:s,className:Z("px-5 py-3 text-sm text-text-primary whitespace-pre-wrap font-display leading-relaxed",!t&&r&&`max-h-[${br}px]`),style:!t&&r?{maxHeight:`${br}px`}:void 0,children:td(e.content)}),!t&&r&&d.jsx("div",{className:"absolute bottom-0 inset-x-0 flex flex-col items-center pt-8 bg-gradient-to-t from-user-bubble via-user-bubble/80 to-transparent",children:d.jsxs("button",{type:"button",onClick:()=>n(!0),className:"flex items-center gap-1 px-3 py-1 rounded-full text-xs font-display font-medium text-text-secondary hover:bg-brand/10 transition-colors",children:[d.jsx("span",{children:"展开"}),d.jsx(an,{className:"h-3 w-3"})]})})]})]})})}function Bg({entry:e,isStreaming:t}){return d.jsxs("div",{className:"flex gap-4 items-start",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg bg-brand/8 flex items-center justify-center flex-shrink-0 mt-0.5 overflow-hidden",children:d.jsx("img",{src:"/code/pony.svg",alt:"Saluzi",width:28,height:28,className:"object-contain",draggable:!1})}),d.jsxs("div",{className:"flex-1 min-w-0 space-y-4",children:[d.jsx("span",{className:"text-sm font-semibold text-text-primary font-display",children:"Saluzi"}),e.chunks.map((n,r)=>{if(n.type==="thought"){const o=r===e.chunks.length-1,s=t&&o;return d.jsxs(kl,{isStreaming:s,children:[d.jsx(_l,{}),d.jsx(El,{children:d.jsx("div",{className:"text-sm text-text-secondary leading-relaxed",children:n.text})})]},r)}return d.jsx("div",{className:"message-content text-text-primary leading-[1.75]",children:d.jsx(Ro,{children:n.text})},r)})]})]})}function Hg({image:e}){const t=`data:${e.mimeType};base64,${e.data}`;return d.jsx("button",{type:"button",className:"rounded-lg overflow-hidden border border-border hover:border-brand/40 transition-colors cursor-pointer",onClick:()=>{const n=window.open("");n&&n.document.write(`<img src="${t}" style="max-width:100%;max-height:100%" />`)},children:d.jsx("img",{src:t,alt:"Uploaded image",className:"h-20 w-20 object-cover"})})}function Wg({attachment:e}){const[t,n]=m.useState(!1),r=(()=>{switch(e.kind){case"text":return d.jsx(Jt,{className:"h-4 w-4"});case"table":return d.jsx(Zr,{className:"h-4 w-4"});case"directory":return d.jsx(Xr,{className:"h-4 w-4"});default:return d.jsx(Jt,{className:"h-4 w-4"})}})(),o=e.size!=null?Vg(e.size):null,s=e.kind==="directory"&&e.files?e.files.length:null,a=!!e.textContent;return d.jsxs("div",{className:"min-w-[160px] max-w-[300px]",children:[d.jsxs("button",{type:"button",onClick:()=>a&&n(i=>!i),className:Z("w-full flex items-center gap-2 rounded-lg border border-border bg-surface-1/50 px-3 py-2 text-xs text-text-secondary",a?"hover:border-brand/40 hover:bg-surface-1 cursor-pointer":"cursor-default"),children:[r,d.jsxs("div",{className:"flex-1 min-w-0 text-left",children:[d.jsx("div",{className:"truncate font-mono text-text-primary",title:e.name,children:e.name}),d.jsxs("div",{className:"text-[10px] text-text-muted",children:[o&&d.jsx("span",{children:o}),o&&s!=null&&d.jsx("span",{children:" · "}),s!=null&&d.jsxs("span",{children:[s," 个文件"]})]})]}),a&&d.jsx(an,{className:Z("h-3.5 w-3.5 flex-shrink-0 transition-transform",t&&"rotate-180")})]}),t&&a&&d.jsx("div",{className:"mt-1 rounded-lg border border-border bg-surface-2 p-3 max-h-[300px] overflow-auto",children:d.jsx("pre",{className:"text-[11px] text-text-secondary font-mono whitespace-pre-wrap break-words",children:e.textContent})})]})}function Vg(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Gg(e){switch(e){case"allow_once":case"allow_always":return"default";case"reject_once":case"reject_always":return"destructive";default:return"outline"}}function Kg(e){switch(e){case"allow_once":case"allow_always":return d.jsx(at,{className:"size-4"});case"reject_once":case"reject_always":return d.jsx(Bt,{className:"size-4"});default:return null}}function qg({requestId:e,options:t,onRespond:n,className:r}){const o=s=>{n(e,s.optionId,s.kind)};return d.jsxs("div",{className:Z("p-3 border-t border-warning-border/30 bg-warning-bg/50",r),children:[d.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[d.jsx(Qr,{className:"size-4 text-warning-text"}),d.jsx("span",{className:"text-xs font-medium text-warning-text",children:"Permission Required"})]}),d.jsx("div",{className:"flex flex-wrap gap-2",children:t.map(s=>d.jsxs(Et,{variant:Gg(s.kind),size:"sm",onClick:()=>o(s),className:"gap-1.5",children:[Kg(s.kind),s.name]},s.optionId))})]})}function Nl({entries:e,onPermissionRespond:t}){const[n,r]=m.useState(!1);if(e.length===0)return null;if(e.length===1)return d.jsx("div",{className:"pl-10",children:d.jsx(ws,{tool:e[0].toolCall,compact:!0,onPermissionRespond:t})});const o=Yg(e);return d.jsx("div",{className:"pl-10",children:d.jsxs("div",{className:"rounded-lg border border-border bg-surface-2/50 overflow-hidden",children:[d.jsxs("button",{type:"button",className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-brand font-bold hover:bg-brand/10 transition-colors",onClick:()=>r(!n),children:[d.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:Z("transition-transform text-text-muted",n&&"rotate-90"),children:d.jsx("path",{d:"M4 2L8 6L4 10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"})}),d.jsx("span",{className:"text-xs text-brand font-bold font-display",children:o})]}),n&&d.jsx("div",{className:"border-t border-border divide-y divide-border",children:e.map((s,a)=>d.jsx(ws,{tool:s.toolCall,compact:!0,onPermissionRespond:t},s.toolCall.id||a))})]})})}function ws({tool:e,compact:t,onPermissionRespond:n}){const[r,o]=m.useState(!t),s=(()=>{switch(e.status){case"running":return d.jsx("span",{className:"text-status-running text-[10px]",children:"▶"});case"complete":return d.jsx("span",{className:"text-status-active text-[10px]",children:"✓"});case"error":return d.jsx("span",{className:"text-status-error text-[10px]",children:"✕"});case"waiting_for_confirmation":return d.jsx("span",{className:"text-brand text-[10px]",children:"⍻"});case"canceled":return d.jsx("span",{className:"text-text-muted text-[10px]",children:"—"});case"rejected":return d.jsx("span",{className:"text-status-error text-[10px]",children:"✕"});default:return null}})(),a=e.status!=="running"&&e.status!=="waiting_for_confirmation"&&(e.rawOutput||e.content);return d.jsxs("div",{className:Z("px-3 py-2",t&&"py-1.5"),children:[d.jsxs("button",{type:"button",className:"flex w-full items-center gap-1.5 text-left group",onClick:()=>o(!r),children:[s,d.jsx("span",{className:"text-xs font-display font-bold text-brand transition-colors truncate",children:e.title}),e.status==="running"&&d.jsx("span",{className:"text-[10px] text-status-running animate-pulse",children:"running"})]}),e.status==="waiting_for_confirmation"&&e.permissionRequest&&d.jsx("div",{className:"mt-1.5 ml-4",children:d.jsx(qg,{requestId:e.permissionRequest.requestId,options:e.permissionRequest.options,onRespond:n||(()=>{})})}),r&&d.jsxs("div",{className:"mt-1.5 ml-4 space-y-1.5",children:[e.rawInput&&Object.keys(e.rawInput).length>0&&d.jsx("div",{children:d.jsx("pre",{className:"text-[11px] bg-surface-1 rounded-md p-2 overflow-x-auto font-mono max-h-36 text-text-secondary",children:Br(JSON.stringify(e.rawInput,null,2),2e3)})}),a&&d.jsx("div",{children:d.jsx("pre",{className:Z("text-[11px] rounded-md p-2 overflow-x-auto font-mono max-h-36",e.status==="error"?"bg-status-error/10 text-status-error":"bg-surface-1 text-text-secondary"),children:Qg(e)})})]})]})}function Yg(e){const t=new Map;for(const r of e){const o=Xg(r.toolCall.title);t.set(o,(t.get(o)||0)+1)}const n=[];for(const[r,o]of t)n.push(o===1?r:`${o} 次${r}`);return n.length===0?`${e.length} 个工具调用`:n.length===1?n[0]:`${e.length} 个工具: ${n.join("、")}`}function Xg(e){const t=e.match(/^(\w+)/);return t?t[1]:e}function Qg(e){if(e.content&&e.content.length>0){const t=e.content.filter(n=>n.type==="content").filter(n=>n.content.type==="text"&&"text"in n.content).map(n=>n.content.text);if(t.length>0)return Br(t.join(`
250
+ `;let vr;function Qp(e,t){return new Promise(((n,r)=>{vr||(vr=(function(a){const i=[];return i.push(a),URL.createObjectURL(new Blob(i))})(Xp));const o=new Worker(vr);o.addEventListener("message",(function(a){if(t.signal&&t.signal.aborted)o.terminate();else if(a.data.progress===void 0){if(a.data.error)return r(new Error(a.data.error)),void o.terminate();n(a.data.file),o.terminate()}else t.onProgress(a.data.progress)})),o.addEventListener("error",r),t.signal&&t.signal.addEventListener("abort",(()=>{r(t.signal.reason),o.terminate()})),o.postMessage({file:e,imageCompressionLibUrl:t.libURL,options:{...t,onProgress:void 0,signal:void 0}})}))}function be(e,t){return new Promise((function(n,r){let o,s,a,i,h,f;if(o={...t},a=0,{onProgress:i}=o,o.maxSizeMB=o.maxSizeMB||Number.POSITIVE_INFINITY,h=typeof o.useWebWorker!="boolean"||o.useWebWorker,delete o.useWebWorker,o.onProgress=p=>{a=p,typeof i=="function"&&i(a)},!(e instanceof Blob||e instanceof Yp))return r(new Error("The file given is not an instance of Blob or File"));if(!/^image/.test(e.type))return r(new Error("The file given is not an image"));if(f=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,!h||typeof Worker!="function"||f)return ys(e,o).then((function(p){try{return s=p,u.call(this)}catch(g){return r(g)}}).bind(this),r);var l=(function(){try{return u.call(this)}catch(p){return r(p)}}).bind(this),c=function(p){try{return ys(e,o).then((function(g){try{return s=g,l()}catch(b){return r(b)}}),r)}catch(g){return r(g)}};try{return o.libURL=o.libURL||"https://cdn.jsdelivr.net/npm/browser-image-compression@2.0.2/dist/browser-image-compression.js",Qp(e,o).then((function(p){try{return s=p,l()}catch{return c()}}),c)}catch{c()}function u(){try{s.name=e.name,s.lastModified=e.lastModified}catch{}try{o.preserveExif&&e.type==="image/jpeg"&&(!o.fileType||o.fileType&&o.fileType===e.type)&&(s=Zi(e,s))}catch{}return n(s)}}))}be.getDataUrlFromFile=nl,be.getFilefromDataUrl=No,be.loadImage=rl,be.drawImageInCanvas=sl,be.drawFileInCanvas=Fn,be.canvasToFile=Un,be.getExifOrientation=al,be.handleMaxWidthOrHeight=il,be.followExifOrientation=ll,be.cleanupCanvasMemory=Ue,be.isAutoOrientationInBrowser=Mt,be.approximateBelowMaximumCanvasSizeOfBrowser=ol,be.copyExifWithoutOrientation=Zi,be.getBrowserName=yt,be.version="2.0.2";var Zp=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],ft=Zp.reduce((e,t)=>{const n=fa(`Primitive.${t}`),r=m.forwardRef((o,s)=>{const{asChild:a,...i}=o,h=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),d.jsx(h,{...i,ref:s})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{}),Jp=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),eg="VisuallyHidden",cl=m.forwardRef((e,t)=>d.jsx(ue.span,{...e,ref:t,style:{...Jp,...e.style}}));cl.displayName=eg;var tg=cl,[tr]=Qe("Tooltip",[Vt]),nr=Vt(),dl="TooltipProvider",ng=700,Ur="tooltip.open",[rg,jo]=tr(dl),ul=e=>{const{__scopeTooltip:t,delayDuration:n=ng,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:s}=e,a=m.useRef(!0),i=m.useRef(!1),h=m.useRef(0);return m.useEffect(()=>{const f=h.current;return()=>window.clearTimeout(f)},[]),d.jsx(rg,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(h.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:i,onPointerInTransitChange:m.useCallback(f=>{i.current=f},[]),disableHoverableContent:o,children:s})};ul.displayName=dl;var rn="Tooltip",[og,mn]=tr(rn),fl=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o,onOpenChange:s,disableHoverableContent:a,delayDuration:i}=e,h=jo(rn,e.__scopeTooltip),f=nr(t),[l,c]=m.useState(null),u=Ce(),p=m.useRef(0),g=a??h.disableHoverableContent,b=i??h.delayDuration,w=m.useRef(!1),[y,A]=it({prop:r,defaultProp:o??!1,onChange:C=>{C?(h.onOpen(),document.dispatchEvent(new CustomEvent(Ur))):h.onClose(),s==null||s(C)},caller:rn}),R=m.useMemo(()=>y?w.current?"delayed-open":"instant-open":"closed",[y]),E=m.useCallback(()=>{window.clearTimeout(p.current),p.current=0,w.current=!1,A(!0)},[A]),$=m.useCallback(()=>{window.clearTimeout(p.current),p.current=0,A(!1)},[A]),k=m.useCallback(()=>{window.clearTimeout(p.current),p.current=window.setTimeout(()=>{w.current=!0,A(!0),p.current=0},b)},[b,A]);return m.useEffect(()=>()=>{p.current&&(window.clearTimeout(p.current),p.current=0)},[]),d.jsx(co,{...f,children:d.jsx(og,{scope:t,contentId:u,open:y,stateAttribute:R,trigger:l,onTriggerChange:c,onTriggerEnter:m.useCallback(()=>{h.isOpenDelayedRef.current?k():E()},[h.isOpenDelayedRef,k,E]),onTriggerLeave:m.useCallback(()=>{g?$():(window.clearTimeout(p.current),p.current=0)},[$,g]),onOpen:E,onClose:$,disableHoverableContent:g,children:n})})};fl.displayName=rn;var zr="TooltipTrigger",hl=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=mn(zr,n),s=jo(zr,n),a=nr(n),i=m.useRef(null),h=pe(t,i,o.onTriggerChange),f=m.useRef(!1),l=m.useRef(!1),c=m.useCallback(()=>f.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",c),[c]),d.jsx(qn,{asChild:!0,...a,children:d.jsx(ue.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:h,onPointerMove:ee(e.onPointerMove,u=>{u.pointerType!=="touch"&&!l.current&&!s.isPointerInTransitRef.current&&(o.onTriggerEnter(),l.current=!0)}),onPointerLeave:ee(e.onPointerLeave,()=>{o.onTriggerLeave(),l.current=!1}),onPointerDown:ee(e.onPointerDown,()=>{o.open&&o.onClose(),f.current=!0,document.addEventListener("pointerup",c,{once:!0})}),onFocus:ee(e.onFocus,()=>{f.current||o.onOpen()}),onBlur:ee(e.onBlur,o.onClose),onClick:ee(e.onClick,o.onClose)})})});hl.displayName=zr;var Ao="TooltipPortal",[sg,ag]=tr(Ao,{forceMount:void 0}),ml=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,s=mn(Ao,t);return d.jsx(sg,{scope:t,forceMount:n,children:d.jsx(Ae,{present:n||s.open,children:d.jsx(dn,{asChild:!0,container:o,children:r})})})};ml.displayName=Ao;var Ft="TooltipContent",pl=m.forwardRef((e,t)=>{const n=ag(Ft,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...s}=e,a=mn(Ft,e.__scopeTooltip);return d.jsx(Ae,{present:r||a.open,children:a.disableHoverableContent?d.jsx(gl,{side:o,...s,ref:t}):d.jsx(ig,{side:o,...s,ref:t})})}),ig=m.forwardRef((e,t)=>{const n=mn(Ft,e.__scopeTooltip),r=jo(Ft,e.__scopeTooltip),o=m.useRef(null),s=pe(t,o),[a,i]=m.useState(null),{trigger:h,onClose:f}=n,l=o.current,{onPointerInTransitChange:c}=r,u=m.useCallback(()=>{i(null),c(!1)},[c]),p=m.useCallback((g,b)=>{const w=g.currentTarget,y={x:g.clientX,y:g.clientY},A=ug(y,w.getBoundingClientRect()),R=fg(y,A),E=hg(b.getBoundingClientRect()),$=pg([...R,...E]);i($),c(!0)},[c]);return m.useEffect(()=>()=>u(),[u]),m.useEffect(()=>{if(h&&l){const g=w=>p(w,l),b=w=>p(w,h);return h.addEventListener("pointerleave",g),l.addEventListener("pointerleave",b),()=>{h.removeEventListener("pointerleave",g),l.removeEventListener("pointerleave",b)}}},[h,l,p,u]),m.useEffect(()=>{if(a){const g=b=>{const w=b.target,y={x:b.clientX,y:b.clientY},A=(h==null?void 0:h.contains(w))||(l==null?void 0:l.contains(w)),R=!mg(y,a);A?u():R&&(u(),f())};return document.addEventListener("pointermove",g),()=>document.removeEventListener("pointermove",g)}},[h,l,a,f,u]),d.jsx(gl,{...e,ref:s})}),[lg,cg]=tr(rn,{isInside:!1}),dg=Ou("TooltipContent"),gl=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:s,onPointerDownOutside:a,...i}=e,h=mn(Ft,n),f=nr(n),{onClose:l}=h;return m.useEffect(()=>(document.addEventListener(Ur,l),()=>document.removeEventListener(Ur,l)),[l]),m.useEffect(()=>{if(h.trigger){const c=u=>{const p=u.target;p!=null&&p.contains(h.trigger)&&l()};return window.addEventListener("scroll",c,{capture:!0}),()=>window.removeEventListener("scroll",c,{capture:!0})}},[h.trigger,l]),d.jsx(ln,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:a,onFocusOutside:c=>c.preventDefault(),onDismiss:l,children:d.jsxs(uo,{"data-state":h.stateAttribute,...f,...i,ref:t,style:{...i.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[d.jsx(dg,{children:r}),d.jsx(lg,{scope:n,isInside:!0,children:d.jsx(tg,{id:h.contentId,role:"tooltip",children:o||r})})]})})});pl.displayName=Ft;var xl="TooltipArrow",vl=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=nr(n);return cg(xl,n).isInside?null:d.jsx(fo,{...o,...r,ref:t})});vl.displayName=xl;function ug(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),s=Math.abs(t.left-e.x);switch(Math.min(n,r,o,s)){case s:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function fg(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function hg(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function mg(e,t){const{x:n,y:r}=e;let o=!1;for(let s=0,a=t.length-1;s<t.length;a=s++){const i=t[s],h=t[a],f=i.x,l=i.y,c=h.x,u=h.y;l>r!=u>r&&n<(c-f)*(r-l)/(u-l)+f&&(o=!o)}return o}function pg(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),gg(t)}function gg(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const o=e[r];for(;t.length>=2;){const s=t[t.length-1],a=t[t.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const s=n[n.length-1],a=n[n.length-2];if((s.x-a.x)*(o.y-a.y)>=(s.y-a.y)*(o.x-a.x))n.pop();else break}n.push(o)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var xg=ul,vg=fl,bg=hl,yg=ml,wg=pl,Cg=vl;function Sg({delayDuration:e=0,...t}){return d.jsx(xg,{"data-slot":"tooltip-provider",delayDuration:e,...t})}function kg({...e}){return d.jsx(Sg,{children:d.jsx(vg,{"data-slot":"tooltip",...e})})}function _g({...e}){return d.jsx(bg,{"data-slot":"tooltip-trigger",...e})}function Eg({className:e,sideOffset:t=0,children:n,...r}){return d.jsx(yg,{children:d.jsxs(wg,{"data-slot":"tooltip-content",sideOffset:t,className:Z("bg-foreground text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-fit origin-(--radix-tooltip-content-transform-origin) rounded-md px-3 py-1.5 text-xs text-balance",e),...r,children:[n,d.jsx(Cg,{className:"bg-foreground fill-foreground z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px]"})]})})}const Ng=m.lazy(()=>sn(()=>import("./mermaid-VLURNSYL-D_yQ7nAd.js").then(e=>e.i),__vite__mapDeps([0,1,2])).then(e=>({default:e.Streamdown})));m.createContext(null);const Ro=m.memo(({className:e,children:t,...n})=>d.jsx(m.Suspense,{fallback:d.jsx("div",{className:Z("whitespace-pre-wrap break-words",e),children:t}),children:d.jsx(Ng,{className:Z("size-full break-words [overflow-wrap:anywhere] [&>*:first-child]:mt-0 [&>*:last-child]:mb-0",e),...n,children:t})}),(e,t)=>e.children===t.children);Ro.displayName="MessageResponse";var rr="Collapsible",[jg]=Qe(rr),[Ag,To]=jg(rr),bl=m.forwardRef((e,t)=>{const{__scopeCollapsible:n,open:r,defaultOpen:o,disabled:s,onOpenChange:a,...i}=e,[h,f]=it({prop:r,defaultProp:o??!1,onChange:a,caller:rr});return d.jsx(Ag,{scope:n,disabled:s,contentId:Ce(),open:h,onOpenToggle:m.useCallback(()=>f(l=>!l),[f]),children:d.jsx(ue.div,{"data-state":Mo(h),"data-disabled":s?"":void 0,...i,ref:t})})});bl.displayName=rr;var yl="CollapsibleTrigger",wl=m.forwardRef((e,t)=>{const{__scopeCollapsible:n,...r}=e,o=To(yl,n);return d.jsx(ue.button,{type:"button","aria-controls":o.contentId,"aria-expanded":o.open||!1,"data-state":Mo(o.open),"data-disabled":o.disabled?"":void 0,disabled:o.disabled,...r,ref:t,onClick:ee(e.onClick,o.onOpenToggle)})});wl.displayName=yl;var Io="CollapsibleContent",Cl=m.forwardRef((e,t)=>{const{forceMount:n,...r}=e,o=To(Io,e.__scopeCollapsible);return d.jsx(Ae,{present:n||o.open,children:({present:s})=>d.jsx(Rg,{...r,ref:t,present:s})})});Cl.displayName=Io;var Rg=m.forwardRef((e,t)=>{const{__scopeCollapsible:n,present:r,children:o,...s}=e,a=To(Io,n),[i,h]=m.useState(r),f=m.useRef(null),l=pe(t,f),c=m.useRef(0),u=c.current,p=m.useRef(0),g=p.current,b=a.open||i,w=m.useRef(b),y=m.useRef(void 0);return m.useEffect(()=>{const A=requestAnimationFrame(()=>w.current=!1);return()=>cancelAnimationFrame(A)},[]),Ke(()=>{const A=f.current;if(A){y.current=y.current||{transitionDuration:A.style.transitionDuration,animationName:A.style.animationName},A.style.transitionDuration="0s",A.style.animationName="none";const R=A.getBoundingClientRect();c.current=R.height,p.current=R.width,w.current||(A.style.transitionDuration=y.current.transitionDuration,A.style.animationName=y.current.animationName),h(r)}},[a.open,r]),d.jsx(ue.div,{"data-state":Mo(a.open),"data-disabled":a.disabled?"":void 0,id:a.contentId,hidden:!b,...s,ref:l,style:{"--radix-collapsible-content-height":u?`${u}px`:void 0,"--radix-collapsible-content-width":g?`${g}px`:void 0,...e.style},children:b&&o})});function Mo(e){return e?"open":"closed"}var Tg=bl;function Ig({...e}){return d.jsx(Tg,{"data-slot":"collapsible",...e})}function Mg({...e}){return d.jsx(wl,{"data-slot":"collapsible-trigger",...e})}function Pg({...e}){return d.jsx(Cl,{"data-slot":"collapsible-content",...e})}const Og=({children:e,as:t="p",className:n,duration:r=2})=>{const o=cc.create(t);return d.jsx(o,{animate:{opacity:[.5,1,.5]},className:Z("relative inline-block text-muted-foreground",n),transition:{repeat:Number.POSITIVE_INFINITY,duration:r,ease:"easeInOut"},children:e})},Dg=m.memo(Og),Sl=m.createContext(null),Lg=()=>{const e=m.useContext(Sl);if(!e)throw new Error("Reasoning components must be used within Reasoning");return e},$g=1e3,Fg=1e3,kl=m.memo(({className:e,isStreaming:t=!1,open:n,defaultOpen:r=!0,onOpenChange:o,duration:s,children:a,...i})=>{const[h,f]=it({prop:n,defaultProp:r,onChange:o}),[l,c]=it({prop:s,defaultProp:void 0}),[u,p]=m.useState(!1),[g,b]=m.useState(null);m.useEffect(()=>{t?g===null&&b(Date.now()):g!==null&&(c(Math.ceil((Date.now()-g)/Fg)),b(null))},[t,g,c]);const w=typeof window<"u"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;m.useEffect(()=>{if(!w&&r&&!t&&h&&!u){const A=setTimeout(()=>{f(!1),p(!0)},$g);return()=>clearTimeout(A)}},[t,h,r,f,u,w]);const y=A=>{f(A)};return d.jsx(Sl.Provider,{value:{isStreaming:t,isOpen:h??!1,setIsOpen:f,duration:l},children:d.jsx(Ig,{className:Z("not-prose mb-4",e),onOpenChange:y,open:h,...i,children:a})})}),Ug=(e,t)=>e||t===0?d.jsx(Dg,{duration:1,children:"Thinking..."}):t===void 0?d.jsx("p",{children:"Thought for a few seconds"}):d.jsxs("p",{children:["Thought for ",t," seconds"]}),_l=m.memo(({className:e,children:t,getThinkingMessage:n=Ug,...r})=>{const{isStreaming:o,isOpen:s,duration:a}=Lg();return d.jsx(Mg,{className:Z("flex w-full items-center gap-2 text-muted-foreground text-sm transition-colors hover:text-foreground",e),...r,children:t??d.jsxs(d.Fragment,{children:[d.jsx(fd,{className:"size-4"}),n(o,a),d.jsx(an,{className:Z("size-4 transition-transform",s?"rotate-180":"rotate-0")})]})})}),El=m.memo(({className:e,children:t,...n})=>d.jsx(Pg,{className:Z("mt-4 text-sm","data-[state=closed]:fade-out-0 data-[state=closed]:slide-out-to-top-2 data-[state=open]:slide-in-from-top-2 text-muted-foreground outline-none data-[state=closed]:animate-out data-[state=open]:animate-in",e),...n,children:t}));kl.displayName="Reasoning";_l.displayName="ReasoningTrigger";El.displayName="ReasoningContent";const br=200;function zg({entry:e}){const[t,n]=m.useState(!1),[r,o]=m.useState(!1),s=m.useRef(null),a=m.useCallback(()=>{const i=s.current;i&&o(i.scrollHeight>br+4)},[]);return m.useEffect(()=>{a()},[a,e.content]),d.jsx("div",{className:"flex justify-end",children:d.jsxs("div",{className:"max-w-[85%] sm:max-w-[70%]",children:[e.images&&e.images.length>0&&d.jsx("div",{className:"flex flex-wrap gap-2 mb-2 justify-end",children:e.images.map((i,h)=>d.jsx(Hg,{image:i},h))}),e.attachments&&e.attachments.length>0&&d.jsx("div",{className:"flex flex-wrap gap-2 mb-2 justify-end",children:e.attachments.map((i,h)=>d.jsx(Wg,{attachment:i},h))}),e.content&&d.jsxs("div",{className:"relative rounded-2xl rounded-br-md bg-user-bubble border border-user-bubble-border overflow-hidden",children:[d.jsx("div",{ref:s,className:Z("px-5 py-3 text-sm text-text-primary whitespace-pre-wrap font-display leading-relaxed",!t&&r&&`max-h-[${br}px]`),style:!t&&r?{maxHeight:`${br}px`}:void 0,children:td(e.content)}),!t&&r&&d.jsx("div",{className:"absolute bottom-0 inset-x-0 flex flex-col items-center pt-8 bg-gradient-to-t from-user-bubble via-user-bubble/80 to-transparent",children:d.jsxs("button",{type:"button",onClick:()=>n(!0),className:"flex items-center gap-1 px-3 py-1 rounded-full text-xs font-display font-medium text-text-secondary hover:bg-brand/10 transition-colors",children:[d.jsx("span",{children:"展开"}),d.jsx(an,{className:"h-3 w-3"})]})})]})]})})}function Bg({entry:e,isStreaming:t}){return d.jsxs("div",{className:"flex gap-4 items-start",children:[d.jsx("div",{className:"w-8 h-8 rounded-lg bg-brand/8 flex items-center justify-center flex-shrink-0 mt-0.5 overflow-hidden",children:d.jsx("img",{src:"/code/pony.svg",alt:"Saluzi",width:28,height:28,className:"object-contain",draggable:!1})}),d.jsxs("div",{className:"flex-1 min-w-0 space-y-4",children:[d.jsx("span",{className:"text-sm font-semibold text-text-primary font-display",children:"Saluzi"}),e.chunks.map((n,r)=>{if(n.type==="thought"){const o=r===e.chunks.length-1,s=t&&o;return d.jsxs(kl,{isStreaming:s,children:[d.jsx(_l,{}),d.jsx(El,{children:d.jsx("div",{className:"text-sm text-text-secondary leading-relaxed",children:n.text})})]},r)}return d.jsx("div",{className:"message-content text-text-primary leading-[1.75]",children:d.jsx(Ro,{children:n.text})},r)})]})]})}function Hg({image:e}){const t=`data:${e.mimeType};base64,${e.data}`;return d.jsx("button",{type:"button",className:"rounded-lg overflow-hidden border border-border hover:border-brand/40 transition-colors cursor-pointer",onClick:()=>{const n=window.open("");n&&n.document.write(`<img src="${t}" style="max-width:100%;max-height:100%" />`)},children:d.jsx("img",{src:t,alt:"Uploaded image",className:"h-20 w-20 object-cover"})})}function Wg({attachment:e}){const[t,n]=m.useState(!1),r=(()=>{switch(e.kind){case"text":return d.jsx(Jt,{className:"h-4 w-4"});case"table":return d.jsx(Zr,{className:"h-4 w-4"});case"directory":return d.jsx(Xr,{className:"h-4 w-4"});default:return d.jsx(Jt,{className:"h-4 w-4"})}})(),o=e.size!=null?Vg(e.size):null,s=e.kind==="directory"&&e.files?e.files.length:null,a=!!e.textContent;return d.jsxs("div",{className:"min-w-[160px] max-w-[300px]",children:[d.jsxs("button",{type:"button",onClick:()=>a&&n(i=>!i),className:Z("w-full flex items-center gap-2 rounded-lg border border-border bg-surface-1/50 px-3 py-2 text-xs text-text-secondary",a?"hover:border-brand/40 hover:bg-surface-1 cursor-pointer":"cursor-default"),children:[r,d.jsxs("div",{className:"flex-1 min-w-0 text-left",children:[d.jsx("div",{className:"truncate font-mono text-text-primary",title:e.name,children:e.name}),d.jsxs("div",{className:"text-[10px] text-text-muted",children:[o&&d.jsx("span",{children:o}),o&&s!=null&&d.jsx("span",{children:" · "}),s!=null&&d.jsxs("span",{children:[s," 个文件"]})]})]}),a&&d.jsx(an,{className:Z("h-3.5 w-3.5 flex-shrink-0 transition-transform",t&&"rotate-180")})]}),t&&a&&d.jsx("div",{className:"mt-1 rounded-lg border border-border bg-surface-2 p-3 max-h-[300px] overflow-auto",children:d.jsx("pre",{className:"text-[11px] text-text-secondary font-mono whitespace-pre-wrap break-words",children:e.textContent})})]})}function Vg(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function Gg(e){switch(e){case"allow_once":case"allow_always":return"default";case"reject_once":case"reject_always":return"destructive";default:return"outline"}}function Kg(e){switch(e){case"allow_once":case"allow_always":return d.jsx(at,{className:"size-4"});case"reject_once":case"reject_always":return d.jsx(Bt,{className:"size-4"});default:return null}}function qg({requestId:e,options:t,onRespond:n,className:r}){const o=s=>{n(e,s.optionId,s.kind)};return d.jsxs("div",{className:Z("p-3 border-t border-warning-border/30 bg-warning-bg/50",r),children:[d.jsxs("div",{className:"flex items-center gap-2 mb-2",children:[d.jsx(Qr,{className:"size-4 text-warning-text"}),d.jsx("span",{className:"text-xs font-medium text-warning-text",children:"Permission Required"})]}),d.jsx("div",{className:"flex flex-wrap gap-2",children:t.map(s=>d.jsxs(Et,{variant:Gg(s.kind),size:"sm",onClick:()=>o(s),className:"gap-1.5",children:[Kg(s.kind),s.name]},s.optionId))})]})}function Nl({entries:e,onPermissionRespond:t}){const[n,r]=m.useState(!1);if(e.length===0)return null;if(e.length===1)return d.jsx("div",{className:"pl-10",children:d.jsx(ws,{tool:e[0].toolCall,compact:!0,onPermissionRespond:t})});const o=Yg(e);return d.jsx("div",{className:"pl-10",children:d.jsxs("div",{className:"rounded-lg border border-border bg-surface-2/50 overflow-hidden",children:[d.jsxs("button",{type:"button",className:"w-full flex items-center gap-2 px-3 py-2 text-sm text-brand font-bold hover:bg-brand/10 transition-colors",onClick:()=>r(!n),children:[d.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:Z("transition-transform text-text-muted",n&&"rotate-90"),children:d.jsx("path",{d:"M4 2L8 6L4 10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"})}),d.jsx("span",{className:"text-xs text-brand font-bold font-display",children:o})]}),n&&d.jsx("div",{className:"border-t border-border divide-y divide-border",children:e.map((s,a)=>d.jsx(ws,{tool:s.toolCall,compact:!0,onPermissionRespond:t},s.toolCall.id||a))})]})})}function ws({tool:e,compact:t,onPermissionRespond:n}){const[r,o]=m.useState(!t),s=(()=>{switch(e.status){case"running":return d.jsx("span",{className:"text-status-running text-[10px]",children:"▶"});case"complete":return d.jsx("span",{className:"text-status-active text-[10px]",children:"✓"});case"error":return d.jsx("span",{className:"text-status-error text-[10px]",children:"✕"});case"waiting_for_confirmation":return d.jsx("span",{className:"text-brand text-[10px]",children:"⍻"});case"canceled":return d.jsx("span",{className:"text-text-muted text-[10px]",children:"—"});case"rejected":return d.jsx("span",{className:"text-status-error text-[10px]",children:"✕"});default:return null}})(),a=e.status!=="running"&&e.status!=="waiting_for_confirmation"&&(e.rawOutput||e.content);return d.jsxs("div",{className:Z("px-3 py-2",t&&"py-1.5"),children:[d.jsxs("button",{type:"button",className:"flex w-full items-center gap-1.5 text-left group",onClick:()=>o(!r),children:[s,d.jsx("span",{className:"text-xs font-display font-bold text-brand transition-colors truncate",children:e.title}),e.status==="running"&&d.jsx("span",{className:"text-[10px] text-status-running animate-pulse",children:"running"})]}),e.status==="waiting_for_confirmation"&&e.permissionRequest&&d.jsx("div",{className:"mt-1.5 ml-4",children:d.jsx(qg,{requestId:e.permissionRequest.requestId,options:e.permissionRequest.options,onRespond:n||(()=>{})})}),r&&d.jsxs("div",{className:"mt-1.5 ml-4 space-y-1.5",children:[e.rawInput&&Object.keys(e.rawInput).length>0&&d.jsx("div",{children:d.jsx("pre",{className:"text-[11px] bg-surface-1 rounded-md p-2 overflow-x-auto font-mono max-h-36 text-text-secondary",children:Br(JSON.stringify(e.rawInput,null,2),2e3)})}),a&&d.jsx("div",{children:d.jsx("pre",{className:Z("text-[11px] rounded-md p-2 overflow-x-auto font-mono max-h-36",e.status==="error"?"bg-status-error/10 text-status-error":"bg-surface-1 text-text-secondary"),children:Qg(e)})})]})]})}function Yg(e){const t=new Map;for(const r of e){const o=Xg(r.toolCall.title);t.set(o,(t.get(o)||0)+1)}const n=[];for(const[r,o]of t)n.push(o===1?r:`${o} 次${r}`);return n.length===0?`${e.length} 个工具调用`:n.length===1?n[0]:`${e.length} 个工具: ${n.join("、")}`}function Xg(e){const t=e.match(/^(\w+)/);return t?t[1]:e}function Qg(e){if(e.content&&e.content.length>0){const t=e.content.filter(n=>n.type==="content").filter(n=>n.content.type==="text"&&"text"in n.content).map(n=>n.content.text);if(t.length>0)return Br(t.join(`
251
251
  `),2e3)}return e.rawOutput&&Object.keys(e.rawOutput).length>0?Br(JSON.stringify(e.rawOutput,null,2),2e3):""}function Br(e,t){return e.length>t?e.slice(0,t)+"...":e}function Zg({entry:e}){const[t,n]=m.useState(!1),{entries:r}=e;if(r.length===0)return null;const o=r.filter(i=>i.status==="completed").length,s=r.length,a=s>0?Math.round(o/s*100):0;return d.jsx("div",{className:"pl-10",children:d.jsxs("div",{className:"rounded-xl border border-border bg-brand/5 overflow-hidden",children:[d.jsxs("button",{type:"button",className:"w-full flex items-center gap-2 px-3 py-2.5 text-sm hover:bg-surface-1/50 transition-colors",onClick:()=>n(!t),children:[d.jsx("svg",{width:"12",height:"12",viewBox:"0 0 12 12",fill:"none",className:Z("transition-transform text-text-muted flex-shrink-0",t&&"rotate-90"),children:d.jsx("path",{d:"M4 2L8 6L4 10",stroke:"currentColor",strokeWidth:"1.5",fill:"none"})}),d.jsx("span",{className:"text-xs font-display font-medium text-text-secondary",children:"执行计划"}),d.jsxs("span",{className:"text-[10px] text-text-muted font-mono",children:[o,"/",s]}),d.jsx("div",{className:"flex-1 h-1 rounded-full bg-surface-1 overflow-hidden ml-1 mr-2",children:d.jsx("div",{className:"h-full rounded-full bg-brand/70 transition-all duration-500",style:{width:`${a}%`}})}),d.jsxs("span",{className:"text-[10px] text-text-muted font-mono",children:[a,"%"]})]}),!t&&d.jsx("div",{className:Z("border-t border-border px-3 py-1.5 space-y-0.5",s>5&&"max-h-64 overflow-y-auto"),children:r.map((i,h)=>d.jsx(Jg,{entry:i},h))})]})})}function Jg({entry:e}){return d.jsxs("div",{className:"flex items-start gap-2 py-1.5 px-1",children:[d.jsx("span",{className:"flex-shrink-0 mt-0.5",children:d.jsx(ex,{status:e.status})}),d.jsx("span",{className:Z("text-xs leading-relaxed flex-1",e.status==="completed"?"text-text-muted line-through":"text-text-secondary",e.status==="in_progress"&&"text-text-primary font-medium"),children:e.content}),d.jsx(tx,{priority:e.priority})]})}function ex({status:e}){switch(e){case"completed":return d.jsx(bd,{className:"h-3.5 w-3.5 text-status-active"});case"in_progress":return d.jsx(ra,{className:"h-3.5 w-3.5 text-brand animate-spin",style:{animationDuration:"2s"}});case"pending":return d.jsx(wd,{className:"h-3.5 w-3.5 text-text-muted"})}}function tx({priority:e}){const t={high:"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-300",medium:"bg-brand/10 text-brand dark:bg-brand/20",low:"bg-surface-1 text-text-muted"},n={high:"高",medium:"中",low:"低"};return d.jsx("span",{className:Z("text-[9px] font-display rounded-full px-1.5 py-0.5 flex-shrink-0 leading-none",t[e]),children:n[e]})}function nx({entry:e}){const t=e.variant==="error";return d.jsxs("div",{className:"w-full",children:[d.jsx("div",{className:Z("border-t-2",t?"border-status-error":"border-border")}),d.jsxs("div",{className:"pt-3",children:[d.jsx("h3",{className:Z("font-bold font-display text-base",t?"text-status-error":"text-brand"),children:e.title}),e.subtitle&&d.jsx("p",{className:"text-sm text-text-muted mt-0.5",children:e.subtitle})]}),d.jsx("div",{className:"py-3 message-content text-text-primary leading-[1.75]",children:d.jsx(Ro,{children:e.outputText})}),d.jsx("div",{className:"pb-1 text-xs text-text-muted italic",children:"命令已执行 · 输入消息继续"})]})}/*!---------------------------------------------------------------------------------------------
252
252
  * Copyright (c) StackBlitz. All rights reserved.
253
253
  * Licensed under the MIT License. See License.txt in the project root for license information.
@@ -280,4 +280,4 @@ ${g}
280
280
  ${G.textContent}`}else{const K=G.size!=null?` (${Lv(G.size)})`:"";X=`📎 ${G.name}${K}
281
281
  \`\`\`
282
282
  ${G.textContent}
283
- \`\`\``}T.push({type:"text",text:X}),z.push(G)}}catch(X){console.error("[ChatInterface] Failed to process attachment:",X)}if(T.length===0)return;const U={type:"user_message",id:`user-${Date.now()}`,content:N,images:B.length>0?B:void 0,attachments:z.length>0?z:void 0};r(G=>[...G,U]),s(!0);try{await e.sendPrompt(T)}catch(G){console.error("[ChatInterface] Failed to send prompt:",G),s(!1)}},[o,a,e,R,E,$,y,h,k,O]);return d.jsxs("div",{className:"flex flex-col h-full",children:[d.jsx(gx,{entries:n,isLoading:o&&!a?!1:o,onPermissionRespond:(L,N,I)=>{M(L,N,I)},emptyTitle:a?"开始对话":void 0,emptyDescription:a?"输入消息开始与 ACP agent 聊天":void 0}),d.jsx(Rx,{requests:D,onRespond:_}),u&&d.jsx("div",{className:"mx-auto max-w-3xl w-full px-4 sm:px-8 pb-1",children:d.jsxs("div",{className:"rounded-lg bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 px-3 py-2 text-sm text-red-700 dark:text-red-300 flex items-center justify-between",children:[d.jsx("span",{children:u}),d.jsx("button",{type:"button",onClick:()=>p(null),className:"ml-2 text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200 flex-shrink-0",children:"×"})]})}),d.jsxs("div",{className:"flex-shrink-0",children:[d.jsxs("div",{className:"max-w-3xl mx-auto w-full px-4 sm:px-8 pb-1 flex items-center justify-between",children:[d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx(Ov,{mode:b,onModeChange:L=>{w(L),localStorage.setItem("acp_permission_mode",L)}}),d.jsx(Sv,{client:e})]}),n.length>0&&d.jsxs(kg,{children:[d.jsx(_g,{asChild:!0,children:d.jsxs(Et,{variant:"ghost",size:"sm",className:"h-7 text-xs text-text-muted hover:text-brand font-display gap-1",onClick:O,children:[d.jsx(Bn,{className:"h-3 w-3"}),"新会话"]})}),d.jsx(Eg,{children:"New Thread"})]})]}),d.jsx(Ex,{onSubmit:S,isLoading:o,onInterrupt:F,disabled:!a,placeholder:a?"给 Saluzi 发送消息…":"等待会话...",supportsAttachments:y,commands:R.length>0?R:void 0})]})]})}function Lv(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function $v({client:e,agentId:t}){const[n,r]=m.useState(!1),o=m.useCallback(async s=>{try{if(e.supportsLoadSession)await e.loadSession({sessionId:s.sessionId,cwd:s.cwd});else if(e.supportsResumeSession)await e.resumeSession({sessionId:s.sessionId,cwd:s.cwd});else throw new Error("Loading or resuming sessions is not supported by this agent.")}catch(a){console.error("Failed to load/resume session:",a)}},[e]);return d.jsxs("div",{className:"flex h-full w-full",children:[d.jsxs("div",{className:Z("hidden md:flex flex-col border-r border-border/60 bg-surface-1/50 transition-all duration-200 flex-shrink-0",n?"w-12":"w-64"),children:[d.jsxs("div",{className:"flex items-center justify-between px-3 py-4",children:[!n&&d.jsx("span",{className:"text-xs font-display font-semibold text-text-muted uppercase tracking-widest px-1",children:"会话"}),d.jsxs("div",{className:Z("flex items-center gap-0.5",n&&"mx-auto"),children:[!n&&d.jsx("button",{type:"button",onClick:()=>{},className:"h-7 w-7 flex items-center justify-center rounded-lg text-text-muted hover:text-brand hover:bg-brand/10 transition-colors",title:"新会话",children:d.jsx(Bn,{className:"h-4 w-4"})}),d.jsx("button",{type:"button",onClick:()=>r(!n),className:"h-7 w-7 flex items-center justify-center rounded-lg text-text-muted hover:text-text-primary hover:bg-surface-2 transition-colors",children:n?d.jsx(Bd,{className:"h-4 w-4"}):d.jsx(Ud,{className:"h-4 w-4"})})]})]}),!n&&d.jsx("div",{className:"flex-1 overflow-y-auto",children:d.jsx(Fv,{client:e,onSelectSession:o})})]}),d.jsx("div",{className:"flex-1 flex flex-col min-w-0",children:d.jsx(Dv,{client:e,agentId:t})})]})}function Fv({client:e,onSelectSession:t}){const[n,r]=m.useState([]),[o,s]=m.useState(!0),[a,i]=m.useState(null),[h,f]=m.useState(null),[l,c]=m.useState(""),[u,p]=m.useState(!0),g=m.useRef(null),b=m.useCallback(async()=>{if(!e.supportsSessionList){s(!1);return}s(!0);try{const C=await e.listSessions();r(C.sessions)}catch(C){console.warn("[SidebarSessionList] Failed to load:",C)}finally{s(!1)}},[e]);m.useEffect(()=>{e.getState()==="connected"&&e.supportsSessionList&&b()},[e,b]),m.useEffect(()=>{const C=x=>{x==="connected"&&setTimeout(b,200)};return e.setConnectionStateHandler(C),()=>e.removeConnectionStateHandler(C)},[e,b]),m.useEffect(()=>{const C=setInterval(b,1e4);return()=>clearInterval(C)},[b]),m.useEffect(()=>{e.setSessionDeletedHandler(C=>{b()}),e.setSessionRenamedHandler((C,x)=>{b()})},[e,b]),m.useEffect(()=>{e.setErrorMessageHandler(C=>{/Method not found/i.test(C)&&/(rename|delete)_session/i.test(C)&&(p(!1),f(null))})},[e]),m.useEffect(()=>{h&&g.current&&(g.current.focus(),g.current.select())},[h]);const w=m.useCallback(C=>{const x=C.title&&C.title.trim()?C.title:C.sessionId.slice(0,8);if(window.confirm(`删除会话 "${x}"?此操作不可恢复。`))try{e.deleteSession(C.sessionId),r(v=>v.filter(j=>j.sessionId!==C.sessionId)),a===C.sessionId&&i(null)}catch(v){console.error("[SidebarSessionList] delete failed:",v)}},[e,a]),y=m.useCallback(C=>{f(C.sessionId),c(C.title&&C.title.trim()?C.title:"")},[]),A=m.useCallback(()=>{if(!h)return;const C=l.trim();if(!C){f(null);return}try{e.renameSession(h,C),r(x=>x.map(v=>v.sessionId===h?{...v,title:C}:v))}catch(x){console.error("[SidebarSessionList] rename failed:",x)}f(null)},[e,h,l]),R=m.useCallback(()=>{f(null)},[]),E=m.useCallback(C=>{C.key==="Enter"?(C.preventDefault(),A()):C.key==="Escape"&&(C.preventDefault(),R())},[A,R]),$=m.useMemo(()=>[...n].sort((C,x)=>{const v=C.updatedAt?new Date(C.updatedAt).getTime():0;return(x.updatedAt?new Date(x.updatedAt).getTime():0)-v}),[n]);if(o&&n.length===0)return d.jsx("div",{className:"flex items-center justify-center py-8",children:d.jsx("span",{className:"text-xs text-text-muted font-display",children:"加载中..."})});if(n.length===0)return d.jsx("div",{className:"flex items-center justify-center py-8",children:d.jsx("span",{className:"text-xs text-text-muted font-display",children:"暂无会话"})});const k=Uv($);return d.jsx("nav",{className:"py-1","aria-label":"历史会话",children:k.map((C,x)=>d.jsxs("div",{children:[x>0&&d.jsx("div",{className:"mx-3 my-2 border-t border-border/40"}),d.jsx("div",{className:"px-4 py-2",children:d.jsx("span",{className:"text-[10px] font-display font-semibold uppercase tracking-widest text-text-muted/70",children:C.label})}),C.sessions.map(v=>{const j=h===v.sessionId;return d.jsxs("div",{className:Z("group relative flex items-center gap-2.5 px-4 py-2 transition-colors",v.sessionId===a?"bg-brand/8 text-text-primary":"text-text-secondary hover:bg-surface-2/60 hover:text-text-primary"),children:[d.jsx(Od,{className:"h-3.5 w-3.5 flex-shrink-0 opacity-50"}),j?d.jsx("input",{ref:g,type:"text",value:l,onChange:P=>c(P.target.value),onKeyDown:E,onBlur:A,className:"flex-1 min-w-0 bg-surface-2 border border-border rounded px-1 py-0.5 text-[13px] font-display text-text-primary outline-none focus:border-brand",onClick:P=>P.stopPropagation()}):d.jsx("button",{type:"button",onClick:()=>{i(v.sessionId),t(v)},className:"flex-1 min-w-0 text-left",title:v.title||v.sessionId,children:d.jsx("span",{className:"text-[13px] font-display truncate leading-snug block",children:v.title&&v.title.trim()?v.title:"新会话"})}),j?d.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0",children:[d.jsx("button",{type:"button",onClick:A,className:"h-6 w-6 flex items-center justify-center rounded text-text-muted hover:text-brand hover:bg-brand/10 transition-colors",title:"确认",children:d.jsx(at,{className:"h-3.5 w-3.5"})}),d.jsx("button",{type:"button",onClick:R,className:"h-6 w-6 flex items-center justify-center rounded text-text-muted hover:text-status-error hover:bg-status-error/10 transition-colors",title:"取消",children:d.jsx(Bt,{className:"h-3.5 w-3.5"})})]}):d.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0 opacity-0 group-hover:opacity-100 transition-opacity",title:u?void 0:"该 agent 不支持会话管理(重命名/删除)",children:[d.jsx("button",{type:"button",disabled:!u,onClick:P=>{P.stopPropagation(),u&&y(v)},className:Z("h-6 w-6 flex items-center justify-center rounded transition-colors",u?"text-text-muted hover:text-brand hover:bg-brand/10":"text-text-muted/30 cursor-not-allowed"),title:u?"重命名":"该 agent 不支持会话重命名",children:d.jsx(sa,{className:"h-3 w-3"})}),d.jsx("button",{type:"button",disabled:!u,onClick:P=>{P.stopPropagation(),u&&w(v)},className:Z("h-6 w-6 flex items-center justify-center rounded transition-colors",u?"text-text-muted hover:text-status-error hover:bg-status-error/10":"text-text-muted/30 cursor-not-allowed"),title:u?"删除":"该 agent 不支持会话删除",children:d.jsx(Jr,{className:"h-3 w-3"})})]})]},v.sessionId)})]},C.label))})}function Uv(e){const t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(n.getTime()-864e5),o=[{label:"今天",sessions:[]},{label:"昨天",sessions:[]},{label:"更早",sessions:[]}];for(const s of e){const a=s.updatedAt?new Date(s.updatedAt):new Date(0);a>=n?o[0].sessions.push(s):a>=r?o[1].sessions.push(s):o[2].sessions.push(s)}return o.filter(s=>s.sessions.length>0)}function zv({url:e,token:t,onBack:n}){const[r,o]=m.useState(null),[s,a]=m.useState("disconnected"),[i,h]=m.useState(null),f=m.useRef(null);return m.useEffect(()=>{const l=new Fr({proxyUrl:e,token:t});return l.setConnectionStateHandler((c,u)=>{a(c),h(u||null)}),f.current=l,o(l),l.connect().catch(c=>{c instanceof Qi||(h(c.message),a("error"))}),()=>{l.disconnect(),f.current=null,o(null),a("disconnected")}},[e,t]),d.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i&&s==="error"&&d.jsxs("div",{className:"px-4 py-2 bg-status-error/10 text-status-error text-sm border-b",children:[i,d.jsx("button",{onClick:n,className:"ml-3 underline hover:no-underline",children:"Back to Dashboard"})]}),s==="connecting"&&d.jsx("div",{className:"flex-1 flex items-center justify-center",children:d.jsxs("div",{className:"text-center",children:[d.jsx("div",{className:"animate-spin h-8 w-8 border-2 border-brand border-t-transparent rounded-full mx-auto mb-3"}),d.jsx("p",{className:"text-text-muted text-sm",children:"Connecting to ACP agent..."})]})}),s==="error"&&!r&&d.jsx("div",{className:"flex-1 flex items-center justify-center",children:d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"font-medium mb-1",children:"Connection Failed"}),d.jsx("p",{className:"text-text-muted text-sm mb-3",children:i}),d.jsx("button",{onClick:n,className:"rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white hover:bg-brand-light transition-colors",children:"Back to Dashboard"})]})}),r&&s==="connected"&&d.jsx($v,{client:r})]})}const ec="rcs_tokens",tc="rcs_active_token",zt="__default__";function Bv(){return`tk_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Hv(e){if(e.some(n=>n.id===zt))return e;let t=null;try{t=localStorage.getItem("rcs_uuid")}catch{}return t?[{id:zt,token:t,label:"Default"},...e]:e}function Ts(){let e=[];try{const t=localStorage.getItem(ec);if(t){const n=JSON.parse(t);Array.isArray(n)&&(e=n)}}catch{}return Hv(e)}function Wv(e){var n;try{const r=localStorage.getItem(tc);if(r&&e.some(o=>o.id===r))return r}catch{}const t=e.find(r=>r.id===zt);return t?t.id:((n=e[0])==null?void 0:n.id)??zt}function Vv(){const[e,t]=m.useState(Ts),[n,r]=m.useState(()=>Wv(Ts())),o=m.useCallback(u=>{t(u);try{localStorage.setItem(ec,JSON.stringify(u))}catch{}},[]),s=m.useCallback(u=>{r(u);try{localStorage.setItem(tc,u),location.reload()}catch{}},[]),a=m.useCallback((u,p)=>{const g=u.trim();if(!g)return"Token is required";const b={id:Bv(),token:g,label:p.trim()||g.slice(0,8)},w=[...e,b];return o(w),null},[e,o]),i=m.useCallback(u=>{if(u===zt)return;const p=e.filter(g=>g.id!==u);o(p),n===u&&s(zt)},[e,o,n,s]),h=m.useCallback((u,p)=>{const g=e.map(b=>b.id===u?{...b,label:p}:b);o(g)},[e,o]),f=e.find(u=>u.id===n)??e[0]??null,l=(f==null?void 0:f.label)??"Default",c=(f==null?void 0:f.token)??null;return{tokens:e,activeTokenId:n,activeToken:f,activeLabel:l,activeTokenValue:c,setActiveTokenId:s,addToken:a,removeToken:i,updateToken:h}}const Gv=m.lazy(()=>sn(()=>import("./Dashboard-D78ysVsg.js"),__vite__mapDeps([3,2,1,4,5])).then(e=>({default:e.Dashboard}))),Kv=m.lazy(()=>sn(()=>import("./SessionDetail-DCQxr0Dd.js"),__vite__mapDeps([6,2,1,4,5])).then(e=>({default:e.SessionDetail})));function qv(){const[e,t]=m.useState(null),[n,r]=m.useState(void 0),[o,s]=m.useState(!1),[a,i]=m.useState(!1),[h,f]=m.useState(null),{tokens:l,activeTokenId:c,activeLabel:u,activeTokenValue:p,setActiveTokenId:g,addToken:b,removeToken:w,updateToken:y}=Vv();m.useEffect(()=>{dp(p)},[p]);const A=m.useCallback(k=>{g(k)},[g]),R=m.useCallback(()=>{wo();const k=window.location.pathname,C=new URLSearchParams(window.location.search),x=C.get("uuid");if(x){_n(x);const O=new URL(window.location.href);O.searchParams.delete("uuid"),window.history.replaceState(null,"",O)}if(C.get("acp")==="1"){const O=sessionStorage.getItem("acp_connection");if(O)try{const F=JSON.parse(O);if(F.url&&F.token){f({url:F.url,token:F.token}),sessionStorage.removeItem("acp_connection");const M=new URL(window.location.href);M.searchParams.delete("acp"),window.history.replaceState(null,"",M);return}}catch{sessionStorage.removeItem("acp_connection")}}const j=C.get("sid");if(j){new URL(window.location.href).searchParams.delete("sid"),window.history.replaceState(null,"",`/code/${j}`),t(j),pp(j).catch(F=>{console.warn("Failed to bind session:",F)});return}const P=k.match(/^\/code\/([^/]+)/);P&&P[1]?(t(P[1]),r(void 0)):(t(null),r(void 0))},[]);m.useEffect(()=>(R(),window.addEventListener("popstate",R),()=>window.removeEventListener("popstate",R)),[R]);const E=m.useCallback(k=>{window.history.pushState(null,"",`/code/${k}`),t(k),r(void 0)},[]),$=m.useCallback(()=>{window.history.pushState(null,"","/code/"),t(null),r(void 0),f(null)},[]);return d.jsx(vu,{defaultTheme:"system",children:d.jsxs("div",{className:"flex h-screen flex-col bg-surface-0 text-text-primary",children:[d.jsx(ip,{onIdentityClick:()=>s(!0),onTokenClick:()=>i(!0),activeTokenLabel:e?void 0:u,sessionTitle:e||(h?"ACP":void 0),sessionSource:h?"acp":n,onBack:e||h?$:void 0}),d.jsx(m.Suspense,{fallback:d.jsx("div",{className:"flex flex-1 items-center justify-center text-text-muted",children:"Loading..."}),children:h?d.jsx(zv,{url:h.url,token:h.token,onBack:$}):e?d.jsx(Kv,{sessionId:e,onSessionLoaded:k=>r(k.source)},e):d.jsx("div",{className:"flex-1 overflow-y-auto",children:d.jsx(Gv,{onNavigateSession:E})})}),d.jsx(Dp,{open:o,onClose:()=>s(!1)}),d.jsx(Up,{open:a,onClose:()=>i(!1),tokens:l,activeTokenId:c,onSetActive:A,onAdd:b,onRemove:w,onUpdate:y})]})})}ic.createRoot(document.getElementById("root")).render(d.jsx(m.StrictMode,{children:d.jsx(qv,{})}));export{Fr as A,eb as B,Ex as C,Ki as D,rd as E,sb as F,wo as G,hp as H,Lr as I,Fp as J,tb as K,ra as L,vb as M,ab as N,ib as O,up as P,nb as Q,Iv as R,du as S,Sg as T,ed as U,$v as a,mp as b,gx as c,at as d,qi as e,xb as f,Yi as g,Xi as h,Qi as i,ob as j,Jr as k,pp as l,pb as m,mb as n,lb as o,gp as p,cb as q,db as r,hb as s,fb as t,ub as u,Ls as v,Z as w,re as x,wt as y,td as z};
283
+ \`\`\``}T.push({type:"text",text:X}),z.push(G)}}catch(X){console.error("[ChatInterface] Failed to process attachment:",X)}if(T.length===0)return;const U={type:"user_message",id:`user-${Date.now()}`,content:N,images:B.length>0?B:void 0,attachments:z.length>0?z:void 0};r(G=>[...G,U]),s(!0);try{await e.sendPrompt(T)}catch(G){console.error("[ChatInterface] Failed to send prompt:",G),s(!1)}},[o,a,e,R,E,$,y,h,k,O]);return d.jsxs("div",{className:"flex flex-col h-full",children:[d.jsx(gx,{entries:n,isLoading:o&&!a?!1:o,onPermissionRespond:(L,N,I)=>{M(L,N,I)},emptyTitle:a?"开始对话":void 0,emptyDescription:a?"输入消息开始与 ACP agent 聊天":void 0}),d.jsx(Rx,{requests:D,onRespond:_}),u&&d.jsx("div",{className:"mx-auto max-w-3xl w-full px-4 sm:px-8 pb-1",children:d.jsxs("div",{className:"rounded-lg bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 px-3 py-2 text-sm text-red-700 dark:text-red-300 flex items-center justify-between",children:[d.jsx("span",{children:u}),d.jsx("button",{type:"button",onClick:()=>p(null),className:"ml-2 text-red-500 hover:text-red-700 dark:text-red-400 dark:hover:text-red-200 flex-shrink-0",children:"×"})]})}),d.jsxs("div",{className:"flex-shrink-0",children:[d.jsxs("div",{className:"max-w-3xl mx-auto w-full px-4 sm:px-8 pb-1 flex items-center justify-between",children:[d.jsxs("div",{className:"flex items-center gap-1",children:[d.jsx(Ov,{mode:b,onModeChange:L=>{w(L),localStorage.setItem("acp_permission_mode",L)}}),d.jsx(Sv,{client:e})]}),n.length>0&&d.jsxs(kg,{children:[d.jsx(_g,{asChild:!0,children:d.jsxs(Et,{variant:"ghost",size:"sm",className:"h-7 text-xs text-text-muted hover:text-brand font-display gap-1",onClick:O,children:[d.jsx(Bn,{className:"h-3 w-3"}),"新会话"]})}),d.jsx(Eg,{children:"New Thread"})]})]}),d.jsx(Ex,{onSubmit:S,isLoading:o,onInterrupt:F,disabled:!a,placeholder:a?"给 Saluzi 发送消息…":"等待会话...",supportsAttachments:y,commands:R.length>0?R:void 0})]})]})}function Lv(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/(1024*1024)).toFixed(1)} MB`}function $v({client:e,agentId:t}){const[n,r]=m.useState(!1),o=m.useCallback(async s=>{try{if(e.supportsLoadSession)await e.loadSession({sessionId:s.sessionId,cwd:s.cwd});else if(e.supportsResumeSession)await e.resumeSession({sessionId:s.sessionId,cwd:s.cwd});else throw new Error("Loading or resuming sessions is not supported by this agent.")}catch(a){console.error("Failed to load/resume session:",a)}},[e]);return d.jsxs("div",{className:"flex h-full w-full",children:[d.jsxs("div",{className:Z("hidden md:flex flex-col border-r border-border/60 bg-surface-1/50 transition-all duration-200 flex-shrink-0",n?"w-12":"w-64"),children:[d.jsxs("div",{className:"flex items-center justify-between px-3 py-4",children:[!n&&d.jsx("span",{className:"text-xs font-display font-semibold text-text-muted uppercase tracking-widest px-1",children:"会话"}),d.jsxs("div",{className:Z("flex items-center gap-0.5",n&&"mx-auto"),children:[!n&&d.jsx("button",{type:"button",onClick:()=>{},className:"h-7 w-7 flex items-center justify-center rounded-lg text-text-muted hover:text-brand hover:bg-brand/10 transition-colors",title:"新会话",children:d.jsx(Bn,{className:"h-4 w-4"})}),d.jsx("button",{type:"button",onClick:()=>r(!n),className:"h-7 w-7 flex items-center justify-center rounded-lg text-text-muted hover:text-text-primary hover:bg-surface-2 transition-colors",children:n?d.jsx(Bd,{className:"h-4 w-4"}):d.jsx(Ud,{className:"h-4 w-4"})})]})]}),!n&&d.jsx("div",{className:"flex-1 overflow-y-auto",children:d.jsx(Fv,{client:e,onSelectSession:o})})]}),d.jsx("div",{className:"flex-1 flex flex-col min-w-0",children:d.jsx(Dv,{client:e,agentId:t})})]})}function Fv({client:e,onSelectSession:t}){const[n,r]=m.useState([]),[o,s]=m.useState(!0),[a,i]=m.useState(null),[h,f]=m.useState(null),[l,c]=m.useState(""),[u,p]=m.useState(!0),g=m.useRef(null),b=m.useCallback(async()=>{if(!e.supportsSessionList){s(!1);return}s(!0);try{const C=await e.listSessions();r(C.sessions)}catch(C){console.warn("[SidebarSessionList] Failed to load:",C)}finally{s(!1)}},[e]);m.useEffect(()=>{e.getState()==="connected"&&e.supportsSessionList&&b()},[e,b]),m.useEffect(()=>{const C=x=>{x==="connected"&&setTimeout(b,200)};return e.setConnectionStateHandler(C),()=>e.removeConnectionStateHandler(C)},[e,b]),m.useEffect(()=>{const C=setInterval(b,1e4);return()=>clearInterval(C)},[b]),m.useEffect(()=>{e.setSessionDeletedHandler(C=>{b()}),e.setSessionRenamedHandler((C,x)=>{b()})},[e,b]),m.useEffect(()=>{e.setErrorMessageHandler(C=>{/Method not found/i.test(C)&&/session\/(rename|delete)/i.test(C)&&(p(!1),f(null))})},[e]),m.useEffect(()=>{h&&g.current&&(g.current.focus(),g.current.select())},[h]);const w=m.useCallback(C=>{const x=C.title&&C.title.trim()?C.title:C.sessionId.slice(0,8);if(window.confirm(`删除会话 "${x}"?此操作不可恢复。`))try{e.deleteSession(C.sessionId),r(v=>v.filter(j=>j.sessionId!==C.sessionId)),a===C.sessionId&&i(null)}catch(v){console.error("[SidebarSessionList] delete failed:",v)}},[e,a]),y=m.useCallback(C=>{f(C.sessionId),c(C.title&&C.title.trim()?C.title:"")},[]),A=m.useCallback(()=>{if(!h)return;const C=l.trim();if(!C){f(null);return}try{e.renameSession(h,C),r(x=>x.map(v=>v.sessionId===h?{...v,title:C}:v))}catch(x){console.error("[SidebarSessionList] rename failed:",x)}f(null)},[e,h,l]),R=m.useCallback(()=>{f(null)},[]),E=m.useCallback(C=>{C.key==="Enter"?(C.preventDefault(),A()):C.key==="Escape"&&(C.preventDefault(),R())},[A,R]),$=m.useMemo(()=>[...n].sort((C,x)=>{const v=C.updatedAt?new Date(C.updatedAt).getTime():0;return(x.updatedAt?new Date(x.updatedAt).getTime():0)-v}),[n]);if(o&&n.length===0)return d.jsx("div",{className:"flex items-center justify-center py-8",children:d.jsx("span",{className:"text-xs text-text-muted font-display",children:"加载中..."})});if(n.length===0)return d.jsx("div",{className:"flex items-center justify-center py-8",children:d.jsx("span",{className:"text-xs text-text-muted font-display",children:"暂无会话"})});const k=Uv($);return d.jsx("nav",{className:"py-1","aria-label":"历史会话",children:k.map((C,x)=>d.jsxs("div",{children:[x>0&&d.jsx("div",{className:"mx-3 my-2 border-t border-border/40"}),d.jsx("div",{className:"px-4 py-2",children:d.jsx("span",{className:"text-[10px] font-display font-semibold uppercase tracking-widest text-text-muted/70",children:C.label})}),C.sessions.map(v=>{const j=h===v.sessionId;return d.jsxs("div",{className:Z("group relative flex items-center gap-2.5 px-4 py-2 transition-colors",v.sessionId===a?"bg-brand/8 text-text-primary":"text-text-secondary hover:bg-surface-2/60 hover:text-text-primary"),children:[d.jsx(Od,{className:"h-3.5 w-3.5 flex-shrink-0 opacity-50"}),j?d.jsx("input",{ref:g,type:"text",value:l,onChange:P=>c(P.target.value),onKeyDown:E,onBlur:A,className:"flex-1 min-w-0 bg-surface-2 border border-border rounded px-1 py-0.5 text-[13px] font-display text-text-primary outline-none focus:border-brand",onClick:P=>P.stopPropagation()}):d.jsx("button",{type:"button",onClick:()=>{i(v.sessionId),t(v)},className:"flex-1 min-w-0 text-left",title:v.title||v.sessionId,children:d.jsx("span",{className:"text-[13px] font-display truncate leading-snug block",children:v.title&&v.title.trim()?v.title:"新会话"})}),j?d.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0",children:[d.jsx("button",{type:"button",onClick:A,className:"h-6 w-6 flex items-center justify-center rounded text-text-muted hover:text-brand hover:bg-brand/10 transition-colors",title:"确认",children:d.jsx(at,{className:"h-3.5 w-3.5"})}),d.jsx("button",{type:"button",onClick:R,className:"h-6 w-6 flex items-center justify-center rounded text-text-muted hover:text-status-error hover:bg-status-error/10 transition-colors",title:"取消",children:d.jsx(Bt,{className:"h-3.5 w-3.5"})})]}):d.jsxs("div",{className:"flex items-center gap-0.5 flex-shrink-0 opacity-0 group-hover:opacity-100 transition-opacity",title:u?void 0:"该 agent 不支持会话管理(重命名/删除)",children:[d.jsx("button",{type:"button",disabled:!u,onClick:P=>{P.stopPropagation(),u&&y(v)},className:Z("h-6 w-6 flex items-center justify-center rounded transition-colors",u?"text-text-muted hover:text-brand hover:bg-brand/10":"text-text-muted/30 cursor-not-allowed"),title:u?"重命名":"该 agent 不支持会话重命名",children:d.jsx(sa,{className:"h-3 w-3"})}),d.jsx("button",{type:"button",disabled:!u,onClick:P=>{P.stopPropagation(),u&&w(v)},className:Z("h-6 w-6 flex items-center justify-center rounded transition-colors",u?"text-text-muted hover:text-status-error hover:bg-status-error/10":"text-text-muted/30 cursor-not-allowed"),title:u?"删除":"该 agent 不支持会话删除",children:d.jsx(Jr,{className:"h-3 w-3"})})]})]},v.sessionId)})]},C.label))})}function Uv(e){const t=new Date,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()),r=new Date(n.getTime()-864e5),o=[{label:"今天",sessions:[]},{label:"昨天",sessions:[]},{label:"更早",sessions:[]}];for(const s of e){const a=s.updatedAt?new Date(s.updatedAt):new Date(0);a>=n?o[0].sessions.push(s):a>=r?o[1].sessions.push(s):o[2].sessions.push(s)}return o.filter(s=>s.sessions.length>0)}function zv({url:e,token:t,onBack:n}){const[r,o]=m.useState(null),[s,a]=m.useState("disconnected"),[i,h]=m.useState(null),f=m.useRef(null);return m.useEffect(()=>{const l=new Fr({proxyUrl:e,token:t});return l.setConnectionStateHandler((c,u)=>{a(c),h(u||null)}),f.current=l,o(l),l.connect().catch(c=>{c instanceof Qi||(h(c.message),a("error"))}),()=>{l.disconnect(),f.current=null,o(null),a("disconnected")}},[e,t]),d.jsxs("div",{className:"flex flex-1 flex-col overflow-hidden",children:[i&&s==="error"&&d.jsxs("div",{className:"px-4 py-2 bg-status-error/10 text-status-error text-sm border-b",children:[i,d.jsx("button",{onClick:n,className:"ml-3 underline hover:no-underline",children:"Back to Dashboard"})]}),s==="connecting"&&d.jsx("div",{className:"flex-1 flex items-center justify-center",children:d.jsxs("div",{className:"text-center",children:[d.jsx("div",{className:"animate-spin h-8 w-8 border-2 border-brand border-t-transparent rounded-full mx-auto mb-3"}),d.jsx("p",{className:"text-text-muted text-sm",children:"Connecting to ACP agent..."})]})}),s==="error"&&!r&&d.jsx("div",{className:"flex-1 flex items-center justify-center",children:d.jsxs("div",{className:"text-center",children:[d.jsx("p",{className:"font-medium mb-1",children:"Connection Failed"}),d.jsx("p",{className:"text-text-muted text-sm mb-3",children:i}),d.jsx("button",{onClick:n,className:"rounded-lg bg-brand px-4 py-2 text-sm font-medium text-white hover:bg-brand-light transition-colors",children:"Back to Dashboard"})]})}),r&&s==="connected"&&d.jsx($v,{client:r})]})}const ec="rcs_tokens",tc="rcs_active_token",zt="__default__";function Bv(){return`tk_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,8)}`}function Hv(e){if(e.some(n=>n.id===zt))return e;let t=null;try{t=localStorage.getItem("rcs_uuid")}catch{}return t?[{id:zt,token:t,label:"Default"},...e]:e}function Ts(){let e=[];try{const t=localStorage.getItem(ec);if(t){const n=JSON.parse(t);Array.isArray(n)&&(e=n)}}catch{}return Hv(e)}function Wv(e){var n;try{const r=localStorage.getItem(tc);if(r&&e.some(o=>o.id===r))return r}catch{}const t=e.find(r=>r.id===zt);return t?t.id:((n=e[0])==null?void 0:n.id)??zt}function Vv(){const[e,t]=m.useState(Ts),[n,r]=m.useState(()=>Wv(Ts())),o=m.useCallback(u=>{t(u);try{localStorage.setItem(ec,JSON.stringify(u))}catch{}},[]),s=m.useCallback(u=>{r(u);try{localStorage.setItem(tc,u),location.reload()}catch{}},[]),a=m.useCallback((u,p)=>{const g=u.trim();if(!g)return"Token is required";const b={id:Bv(),token:g,label:p.trim()||g.slice(0,8)},w=[...e,b];return o(w),null},[e,o]),i=m.useCallback(u=>{if(u===zt)return;const p=e.filter(g=>g.id!==u);o(p),n===u&&s(zt)},[e,o,n,s]),h=m.useCallback((u,p)=>{const g=e.map(b=>b.id===u?{...b,label:p}:b);o(g)},[e,o]),f=e.find(u=>u.id===n)??e[0]??null,l=(f==null?void 0:f.label)??"Default",c=(f==null?void 0:f.token)??null;return{tokens:e,activeTokenId:n,activeToken:f,activeLabel:l,activeTokenValue:c,setActiveTokenId:s,addToken:a,removeToken:i,updateToken:h}}const Gv=m.lazy(()=>sn(()=>import("./Dashboard-Cyj-Bb86.js"),__vite__mapDeps([3,2,1,4,5])).then(e=>({default:e.Dashboard}))),Kv=m.lazy(()=>sn(()=>import("./SessionDetail-SA9QBkyj.js"),__vite__mapDeps([6,2,1,4,5])).then(e=>({default:e.SessionDetail})));function qv(){const[e,t]=m.useState(null),[n,r]=m.useState(void 0),[o,s]=m.useState(!1),[a,i]=m.useState(!1),[h,f]=m.useState(null),{tokens:l,activeTokenId:c,activeLabel:u,activeTokenValue:p,setActiveTokenId:g,addToken:b,removeToken:w,updateToken:y}=Vv();m.useEffect(()=>{dp(p)},[p]);const A=m.useCallback(k=>{g(k)},[g]),R=m.useCallback(()=>{wo();const k=window.location.pathname,C=new URLSearchParams(window.location.search),x=C.get("uuid");if(x){_n(x);const O=new URL(window.location.href);O.searchParams.delete("uuid"),window.history.replaceState(null,"",O)}if(C.get("acp")==="1"){const O=sessionStorage.getItem("acp_connection");if(O)try{const F=JSON.parse(O);if(F.url&&F.token){f({url:F.url,token:F.token}),sessionStorage.removeItem("acp_connection");const M=new URL(window.location.href);M.searchParams.delete("acp"),window.history.replaceState(null,"",M);return}}catch{sessionStorage.removeItem("acp_connection")}}const j=C.get("sid");if(j){new URL(window.location.href).searchParams.delete("sid"),window.history.replaceState(null,"",`/code/${j}`),t(j),pp(j).catch(F=>{console.warn("Failed to bind session:",F)});return}const P=k.match(/^\/code\/([^/]+)/);P&&P[1]?(t(P[1]),r(void 0)):(t(null),r(void 0))},[]);m.useEffect(()=>(R(),window.addEventListener("popstate",R),()=>window.removeEventListener("popstate",R)),[R]);const E=m.useCallback(k=>{window.history.pushState(null,"",`/code/${k}`),t(k),r(void 0)},[]),$=m.useCallback(()=>{window.history.pushState(null,"","/code/"),t(null),r(void 0),f(null)},[]);return d.jsx(vu,{defaultTheme:"system",children:d.jsxs("div",{className:"flex h-screen flex-col bg-surface-0 text-text-primary",children:[d.jsx(ip,{onIdentityClick:()=>s(!0),onTokenClick:()=>i(!0),activeTokenLabel:e?void 0:u,sessionTitle:e||(h?"ACP":void 0),sessionSource:h?"acp":n,onBack:e||h?$:void 0}),d.jsx(m.Suspense,{fallback:d.jsx("div",{className:"flex flex-1 items-center justify-center text-text-muted",children:"Loading..."}),children:h?d.jsx(zv,{url:h.url,token:h.token,onBack:$}):e?d.jsx(Kv,{sessionId:e,onSessionLoaded:k=>r(k.source)},e):d.jsx("div",{className:"flex-1 overflow-y-auto",children:d.jsx(Gv,{onNavigateSession:E})})}),d.jsx(Dp,{open:o,onClose:()=>s(!1)}),d.jsx(Up,{open:a,onClose:()=>i(!1),tokens:l,activeTokenId:c,onSetActive:A,onAdd:b,onRemove:w,onUpdate:y})]})})}ic.createRoot(document.getElementById("root")).render(d.jsx(m.StrictMode,{children:d.jsx(qv,{})}));export{Fr as A,eb as B,Ex as C,Ki as D,rd as E,sb as F,wo as G,hp as H,Lr as I,Fp as J,tb as K,ra as L,vb as M,ab as N,ib as O,up as P,nb as Q,Iv as R,du as S,Sg as T,ed as U,$v as a,mp as b,gx as c,at as d,qi as e,xb as f,Yi as g,Xi as h,Qi as i,ob as j,Jr as k,pp as l,pb as m,mb as n,lb as o,gp as p,cb as q,db as r,hb as s,fb as t,ub as u,Ls as v,Z as w,re as x,wt as y,td as z};