@openpalm/ui 0.12.0-rc.1 → 0.12.0-rc.2

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 (306) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/chunks/B7L0wlSY.js +1 -0
  3. package/build/client/_app/immutable/chunks/B7L0wlSY.js.br +2 -0
  4. package/build/client/_app/immutable/chunks/B7L0wlSY.js.gz +0 -0
  5. package/build/client/_app/immutable/chunks/{BihYGk9Y.js → BEuC-NYT.js} +1 -1
  6. package/build/client/_app/immutable/chunks/BEuC-NYT.js.br +0 -0
  7. package/build/client/_app/immutable/chunks/BEuC-NYT.js.gz +0 -0
  8. package/build/client/_app/immutable/chunks/{D6NbA5vY.js → DHRKaBFV.js} +2 -2
  9. package/build/client/_app/immutable/chunks/DHRKaBFV.js.br +0 -0
  10. package/build/client/_app/immutable/chunks/DHRKaBFV.js.gz +0 -0
  11. package/build/client/_app/immutable/chunks/{C5EI77dn.js → DOWJsT_T.js} +1 -1
  12. package/build/client/_app/immutable/chunks/DOWJsT_T.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/{C5EI77dn.js.gz → DOWJsT_T.js.gz} +0 -0
  14. package/build/client/_app/immutable/chunks/{CMRs-cy6.js → DkCRM8d5.js} +1 -1
  15. package/build/client/_app/immutable/chunks/DkCRM8d5.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/DkCRM8d5.js.gz +0 -0
  17. package/build/client/_app/immutable/entry/{app.D4HjSNXN.js → app.Dgd8Sqiz.js} +2 -2
  18. package/build/client/_app/immutable/entry/app.Dgd8Sqiz.js.br +0 -0
  19. package/build/client/_app/immutable/entry/app.Dgd8Sqiz.js.gz +0 -0
  20. package/build/client/_app/immutable/entry/start.DN4LafZw.js +1 -0
  21. package/build/client/_app/immutable/entry/start.DN4LafZw.js.br +1 -0
  22. package/build/client/_app/immutable/entry/start.DN4LafZw.js.gz +0 -0
  23. package/build/client/_app/immutable/nodes/{1.Cv1FI9RA.js → 1.DiTVmAJ4.js} +1 -1
  24. package/build/client/_app/immutable/nodes/1.DiTVmAJ4.js.br +3 -0
  25. package/build/client/_app/immutable/nodes/1.DiTVmAJ4.js.gz +0 -0
  26. package/build/client/_app/immutable/nodes/{4.0ZfV2HFJ.js → 4.C-pAk-ut.js} +63 -62
  27. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js.br +0 -0
  28. package/build/client/_app/immutable/nodes/4.C-pAk-ut.js.gz +0 -0
  29. package/build/client/_app/immutable/nodes/{5.B_jsAXs5.js → 5.WMP0f8pf.js} +1 -1
  30. package/build/client/_app/immutable/nodes/5.WMP0f8pf.js.br +0 -0
  31. package/build/client/_app/immutable/nodes/5.WMP0f8pf.js.gz +0 -0
  32. package/build/client/_app/immutable/nodes/{6.CD18u_qC.js → 6.9o6Bephx.js} +1 -1
  33. package/build/client/_app/immutable/nodes/6.9o6Bephx.js.br +0 -0
  34. package/build/client/_app/immutable/nodes/6.9o6Bephx.js.gz +0 -0
  35. package/build/client/_app/immutable/nodes/{7.BXyjSbT8.js → 7._N3I_xWy.js} +1 -1
  36. package/build/client/_app/immutable/nodes/7._N3I_xWy.js.br +0 -0
  37. package/build/client/_app/immutable/nodes/7._N3I_xWy.js.gz +0 -0
  38. package/build/client/_app/immutable/nodes/{8.CDTwcjzi.js → 8.aWZ5mSKB.js} +1 -1
  39. package/build/client/_app/immutable/nodes/8.aWZ5mSKB.js.br +0 -0
  40. package/build/client/_app/immutable/nodes/8.aWZ5mSKB.js.gz +0 -0
  41. package/build/client/_app/version.json +1 -1
  42. package/build/client/_app/version.json.br +1 -1
  43. package/build/client/_app/version.json.gz +0 -0
  44. package/build/server/chunks/1-BdcHiFUZ.js +9 -0
  45. package/build/server/chunks/{1-CVcQJtBc.js.map → 1-BdcHiFUZ.js.map} +1 -1
  46. package/build/server/chunks/{10-W-ONZquv.js → 10-DMi_4x3S.js} +4 -4
  47. package/build/server/chunks/{10-W-ONZquv.js.map → 10-DMi_4x3S.js.map} +1 -1
  48. package/build/server/chunks/4-siztlnPA.js +9 -0
  49. package/build/server/chunks/{4-CTyDAO7N.js.map → 4-siztlnPA.js.map} +1 -1
  50. package/build/server/chunks/{5-BXILJ_BC.js → 5-DR1iBcbj.js} +3 -3
  51. package/build/server/chunks/{5-BXILJ_BC.js.map → 5-DR1iBcbj.js.map} +1 -1
  52. package/build/server/chunks/{6-HdFbhR1m.js → 6-BdZadUUO.js} +3 -3
  53. package/build/server/chunks/{6-HdFbhR1m.js.map → 6-BdZadUUO.js.map} +1 -1
  54. package/build/server/chunks/7-CjmZOzkF.js +9 -0
  55. package/build/server/chunks/{7-k9H-eD_d.js.map → 7-CjmZOzkF.js.map} +1 -1
  56. package/build/server/chunks/{8-CQmCVu_8.js → 8-DVpEHTHq.js} +3 -3
  57. package/build/server/chunks/{8-CQmCVu_8.js.map → 8-DVpEHTHq.js.map} +1 -1
  58. package/build/server/chunks/{ChatMessage-DfLmvrJq.js → ChatMessage-BNxQgrRW.js} +2 -2
  59. package/build/server/chunks/{ChatMessage-DfLmvrJq.js.map → ChatMessage-BNxQgrRW.js.map} +1 -1
  60. package/build/server/chunks/{Navbar-Dnxvfk10.js → Navbar-UVOusnw-.js} +3 -3
  61. package/build/server/chunks/{Navbar-Dnxvfk10.js.map → Navbar-UVOusnw-.js.map} +1 -1
  62. package/build/server/chunks/{_page.svelte-DnHQefg6.js → _page.svelte-B5xh8SJ5.js} +6 -6
  63. package/build/server/chunks/{_page.svelte-DnHQefg6.js.map → _page.svelte-B5xh8SJ5.js.map} +1 -1
  64. package/build/server/chunks/{_page.svelte-Dea_LGsw.js → _page.svelte-B7FQDg28.js} +5 -5
  65. package/build/server/chunks/{_page.svelte-Dea_LGsw.js.map → _page.svelte-B7FQDg28.js.map} +1 -1
  66. package/build/server/chunks/{_page.svelte-BsDNnBfz.js → _page.svelte-CMyq-t3Q.js} +59 -13
  67. package/build/server/chunks/_page.svelte-CMyq-t3Q.js.map +1 -0
  68. package/build/server/chunks/{_page.svelte-CqkvpyUV.js → _page.svelte-D4Zivreu.js} +3 -3
  69. package/build/server/chunks/{_page.svelte-CqkvpyUV.js.map → _page.svelte-D4Zivreu.js.map} +1 -1
  70. package/build/server/chunks/{_page.svelte-DMBLB7p4.js → _page.svelte-w4SS3sVN.js} +5 -5
  71. package/build/server/chunks/{_page.svelte-DMBLB7p4.js.map → _page.svelte-w4SS3sVN.js.map} +1 -1
  72. package/build/server/chunks/{_server.ts-CERCOBc3.js → _server.ts-4Pwhm5iv.js} +5 -5
  73. package/build/server/chunks/{_server.ts-CERCOBc3.js.map → _server.ts-4Pwhm5iv.js.map} +1 -1
  74. package/build/server/chunks/{_server.ts-D1v6AXVY.js → _server.ts-5cUQFkT_.js} +2 -2
  75. package/build/server/chunks/{_server.ts-D1v6AXVY.js.map → _server.ts-5cUQFkT_.js.map} +1 -1
  76. package/build/server/chunks/{_server.ts-Ou4LHoL0.js → _server.ts-6sLoCHl6.js} +5 -5
  77. package/build/server/chunks/{_server.ts-Ou4LHoL0.js.map → _server.ts-6sLoCHl6.js.map} +1 -1
  78. package/build/server/chunks/{_server.ts-D1dT173b.js → _server.ts-748DtXrC.js} +5 -5
  79. package/build/server/chunks/{_server.ts-D1dT173b.js.map → _server.ts-748DtXrC.js.map} +1 -1
  80. package/build/server/chunks/{_server.ts-anQxgBbg.js → _server.ts-9zKJx2eV.js} +5 -5
  81. package/build/server/chunks/{_server.ts-anQxgBbg.js.map → _server.ts-9zKJx2eV.js.map} +1 -1
  82. package/build/server/chunks/{_server.ts-WQLovWTW.js → _server.ts-B1Ka3iiX.js} +6 -6
  83. package/build/server/chunks/{_server.ts-WQLovWTW.js.map → _server.ts-B1Ka3iiX.js.map} +1 -1
  84. package/build/server/chunks/{_server.ts-Dbnh0OAK.js → _server.ts-B25xvhiX.js} +5 -5
  85. package/build/server/chunks/{_server.ts-Dbnh0OAK.js.map → _server.ts-B25xvhiX.js.map} +1 -1
  86. package/build/server/chunks/{_server.ts-CW_MqxCL.js → _server.ts-B2kJ3mfg.js} +7 -7
  87. package/build/server/chunks/{_server.ts-CW_MqxCL.js.map → _server.ts-B2kJ3mfg.js.map} +1 -1
  88. package/build/server/chunks/{_server.ts-BfpKWyaE.js → _server.ts-B4WEAp6B.js} +5 -5
  89. package/build/server/chunks/{_server.ts-BfpKWyaE.js.map → _server.ts-B4WEAp6B.js.map} +1 -1
  90. package/build/server/chunks/{_server.ts-B5hR6mRJ.js → _server.ts-B7Fkprd8.js} +2 -2
  91. package/build/server/chunks/{_server.ts-B5hR6mRJ.js.map → _server.ts-B7Fkprd8.js.map} +1 -1
  92. package/build/server/chunks/{_server.ts-CHC5iyoo.js → _server.ts-BCKweCGM.js} +4 -4
  93. package/build/server/chunks/{_server.ts-CHC5iyoo.js.map → _server.ts-BCKweCGM.js.map} +1 -1
  94. package/build/server/chunks/{_server.ts-CGlVN30h.js → _server.ts-BEgkYvNh.js} +5 -5
  95. package/build/server/chunks/{_server.ts-CGlVN30h.js.map → _server.ts-BEgkYvNh.js.map} +1 -1
  96. package/build/server/chunks/{_server.ts-BmQi3d-p.js → _server.ts-BFp9Fobi.js} +4 -4
  97. package/build/server/chunks/{_server.ts-BmQi3d-p.js.map → _server.ts-BFp9Fobi.js.map} +1 -1
  98. package/build/server/chunks/{_server.ts-keJe--oH.js → _server.ts-BHIqLHCr.js} +2 -2
  99. package/build/server/chunks/{_server.ts-keJe--oH.js.map → _server.ts-BHIqLHCr.js.map} +1 -1
  100. package/build/server/chunks/{_server.ts-Ckf8jQdl.js → _server.ts-BMeLIoiB.js} +6 -6
  101. package/build/server/chunks/{_server.ts-Ckf8jQdl.js.map → _server.ts-BMeLIoiB.js.map} +1 -1
  102. package/build/server/chunks/{_server.ts-tSnumHIh.js → _server.ts-BR_JejQG.js} +5 -5
  103. package/build/server/chunks/{_server.ts-tSnumHIh.js.map → _server.ts-BR_JejQG.js.map} +1 -1
  104. package/build/server/chunks/{_server.ts-BfRDa9Ak.js → _server.ts-BSxbdNXo.js} +5 -5
  105. package/build/server/chunks/{_server.ts-BfRDa9Ak.js.map → _server.ts-BSxbdNXo.js.map} +1 -1
  106. package/build/server/chunks/{_server.ts-YGPIKWu1.js → _server.ts-BXOIslIH.js} +5 -5
  107. package/build/server/chunks/{_server.ts-YGPIKWu1.js.map → _server.ts-BXOIslIH.js.map} +1 -1
  108. package/build/server/chunks/{_server.ts-0B6ETUr-.js → _server.ts-B_du9gRB.js} +5 -5
  109. package/build/server/chunks/{_server.ts-0B6ETUr-.js.map → _server.ts-B_du9gRB.js.map} +1 -1
  110. package/build/server/chunks/{_server.ts-DSn8PZs3.js → _server.ts-BaTXv_bR.js} +5 -5
  111. package/build/server/chunks/{_server.ts-DSn8PZs3.js.map → _server.ts-BaTXv_bR.js.map} +1 -1
  112. package/build/server/chunks/{_server.ts-Dsl30Kqm.js → _server.ts-BdN5NtL4.js} +5 -5
  113. package/build/server/chunks/{_server.ts-Dsl30Kqm.js.map → _server.ts-BdN5NtL4.js.map} +1 -1
  114. package/build/server/chunks/{_server.ts-D53Q4y2U.js → _server.ts-Bf3mh1Vw.js} +5 -5
  115. package/build/server/chunks/{_server.ts-D53Q4y2U.js.map → _server.ts-Bf3mh1Vw.js.map} +1 -1
  116. package/build/server/chunks/{_server.ts-Cg_nVcGe.js → _server.ts-BhzFTv-h.js} +6 -6
  117. package/build/server/chunks/{_server.ts-Cg_nVcGe.js.map → _server.ts-BhzFTv-h.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-vz7XppYp.js → _server.ts-BiwKKu1y.js} +5 -5
  119. package/build/server/chunks/{_server.ts-vz7XppYp.js.map → _server.ts-BiwKKu1y.js.map} +1 -1
  120. package/build/server/chunks/{_server.ts-DhF_U44B.js → _server.ts-BkxwpAv2.js} +5 -5
  121. package/build/server/chunks/{_server.ts-DhF_U44B.js.map → _server.ts-BkxwpAv2.js.map} +1 -1
  122. package/build/server/chunks/{_server.ts-C40BmZoV.js → _server.ts-Byc_SyKx.js} +5 -5
  123. package/build/server/chunks/{_server.ts-C40BmZoV.js.map → _server.ts-Byc_SyKx.js.map} +1 -1
  124. package/build/server/chunks/{_server.ts-C2oIwHOm.js → _server.ts-C3ic1HZf.js} +5 -5
  125. package/build/server/chunks/{_server.ts-C2oIwHOm.js.map → _server.ts-C3ic1HZf.js.map} +1 -1
  126. package/build/server/chunks/{_server.ts-BEdChB0B.js → _server.ts-C9E9tYAO.js} +14 -7
  127. package/build/server/chunks/_server.ts-C9E9tYAO.js.map +1 -0
  128. package/build/server/chunks/{_server.ts-JWoayilI.js → _server.ts-CCEnPIKA.js} +15 -10
  129. package/build/server/chunks/_server.ts-CCEnPIKA.js.map +1 -0
  130. package/build/server/chunks/{_server.ts--ZXHd_7G.js → _server.ts-CCtCwyZb.js} +6 -6
  131. package/build/server/chunks/{_server.ts--ZXHd_7G.js.map → _server.ts-CCtCwyZb.js.map} +1 -1
  132. package/build/server/chunks/{_server.ts-CB1MjjTN.js → _server.ts-CDLW9TPG.js} +6 -6
  133. package/build/server/chunks/{_server.ts-CB1MjjTN.js.map → _server.ts-CDLW9TPG.js.map} +1 -1
  134. package/build/server/chunks/{_server.ts-B409KD6U.js → _server.ts-CILn0WEi.js} +25 -7
  135. package/build/server/chunks/_server.ts-CILn0WEi.js.map +1 -0
  136. package/build/server/chunks/{_server.ts-DjPUN7lf.js → _server.ts-CMytohFo.js} +5 -5
  137. package/build/server/chunks/{_server.ts-DjPUN7lf.js.map → _server.ts-CMytohFo.js.map} +1 -1
  138. package/build/server/chunks/{_server.ts-Dr56nQwT.js → _server.ts-CN8iu9En.js} +5 -5
  139. package/build/server/chunks/{_server.ts-Dr56nQwT.js.map → _server.ts-CN8iu9En.js.map} +1 -1
  140. package/build/server/chunks/{_server.ts-DErSZ0aB.js → _server.ts-CSN60plL.js} +2 -2
  141. package/build/server/chunks/{_server.ts-DErSZ0aB.js.map → _server.ts-CSN60plL.js.map} +1 -1
  142. package/build/server/chunks/{_server.ts-BzEFvvlp.js → _server.ts-CTKPnd64.js} +7 -7
  143. package/build/server/chunks/{_server.ts-BzEFvvlp.js.map → _server.ts-CTKPnd64.js.map} +1 -1
  144. package/build/server/chunks/{_server.ts-Cl0rLFUw.js → _server.ts-CV30eOSb.js} +6 -6
  145. package/build/server/chunks/{_server.ts-Cl0rLFUw.js.map → _server.ts-CV30eOSb.js.map} +1 -1
  146. package/build/server/chunks/{_server.ts-Cya45Eco.js → _server.ts-CZ9rxA09.js} +5 -5
  147. package/build/server/chunks/{_server.ts-Cya45Eco.js.map → _server.ts-CZ9rxA09.js.map} +1 -1
  148. package/build/server/chunks/{_server.ts-BVQjwsMp.js → _server.ts-C_c_15ac.js} +5 -5
  149. package/build/server/chunks/{_server.ts-BVQjwsMp.js.map → _server.ts-C_c_15ac.js.map} +1 -1
  150. package/build/server/chunks/{_server.ts-DESj9ag6.js → _server.ts-Cc-c2ehY.js} +5 -5
  151. package/build/server/chunks/{_server.ts-DESj9ag6.js.map → _server.ts-Cc-c2ehY.js.map} +1 -1
  152. package/build/server/chunks/{_server.ts-Bs3oAE6C.js → _server.ts-CfAx4ndA.js} +5 -5
  153. package/build/server/chunks/{_server.ts-Bs3oAE6C.js.map → _server.ts-CfAx4ndA.js.map} +1 -1
  154. package/build/server/chunks/{_server.ts-CcKpUv9a.js → _server.ts-CgPqNf7-.js} +5 -5
  155. package/build/server/chunks/{_server.ts-CcKpUv9a.js.map → _server.ts-CgPqNf7-.js.map} +1 -1
  156. package/build/server/chunks/{_server.ts-DUJObAJG.js → _server.ts-Cs7f-gaR.js} +6 -6
  157. package/build/server/chunks/{_server.ts-DUJObAJG.js.map → _server.ts-Cs7f-gaR.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-Dwhv7KnR.js → _server.ts-Cscu5y6A.js} +6 -6
  159. package/build/server/chunks/{_server.ts-Dwhv7KnR.js.map → _server.ts-Cscu5y6A.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-DYU3yoaF.js → _server.ts-Cwuo2EyS.js} +5 -5
  161. package/build/server/chunks/{_server.ts-DYU3yoaF.js.map → _server.ts-Cwuo2EyS.js.map} +1 -1
  162. package/build/server/chunks/{_server.ts-D2YDAvSW.js → _server.ts-CxWx02dy.js} +5 -5
  163. package/build/server/chunks/{_server.ts-D2YDAvSW.js.map → _server.ts-CxWx02dy.js.map} +1 -1
  164. package/build/server/chunks/{_server.ts-ComhXvuD.js → _server.ts-CzTX8a_p.js} +5 -5
  165. package/build/server/chunks/{_server.ts-ComhXvuD.js.map → _server.ts-CzTX8a_p.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts-Z6Jl5czR.js → _server.ts-D2tkCP8q.js} +5 -5
  167. package/build/server/chunks/{_server.ts-Z6Jl5czR.js.map → _server.ts-D2tkCP8q.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-DtJPTK6T.js → _server.ts-D4B9IkKh.js} +5 -5
  169. package/build/server/chunks/{_server.ts-DtJPTK6T.js.map → _server.ts-D4B9IkKh.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-B2osMaU8.js → _server.ts-D5WwDggN.js} +5 -5
  171. package/build/server/chunks/{_server.ts-B2osMaU8.js.map → _server.ts-D5WwDggN.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-B1yfYKPg.js → _server.ts-DAv3C7oW.js} +5 -5
  173. package/build/server/chunks/{_server.ts-B1yfYKPg.js.map → _server.ts-DAv3C7oW.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-DFfzCkBR.js → _server.ts-DEV3GiN8.js} +5 -5
  175. package/build/server/chunks/{_server.ts-DFfzCkBR.js.map → _server.ts-DEV3GiN8.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-BOYEjBGJ.js → _server.ts-DE_dFybU.js} +7 -7
  177. package/build/server/chunks/{_server.ts-BOYEjBGJ.js.map → _server.ts-DE_dFybU.js.map} +1 -1
  178. package/build/server/chunks/{_server.ts-b0eG_upf.js → _server.ts-DFhNnn-G.js} +5 -5
  179. package/build/server/chunks/{_server.ts-b0eG_upf.js.map → _server.ts-DFhNnn-G.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-Dbczo4Pv.js → _server.ts-DMTF4KjV.js} +2 -2
  181. package/build/server/chunks/{_server.ts-Dbczo4Pv.js.map → _server.ts-DMTF4KjV.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-DsXYP4wI.js → _server.ts-DPpj-ZUv.js} +5 -5
  183. package/build/server/chunks/{_server.ts-DsXYP4wI.js.map → _server.ts-DPpj-ZUv.js.map} +1 -1
  184. package/build/server/chunks/{_server.ts-ALC_q9Pv.js → _server.ts-DPw4QRWb.js} +5 -5
  185. package/build/server/chunks/{_server.ts-ALC_q9Pv.js.map → _server.ts-DPw4QRWb.js.map} +1 -1
  186. package/build/server/chunks/{_server.ts-DGkBTOLd.js → _server.ts-DQP6uEx5.js} +5 -5
  187. package/build/server/chunks/{_server.ts-DGkBTOLd.js.map → _server.ts-DQP6uEx5.js.map} +1 -1
  188. package/build/server/chunks/{_server.ts-tVOMHVfT.js → _server.ts-DRpXmKSI.js} +6 -6
  189. package/build/server/chunks/{_server.ts-tVOMHVfT.js.map → _server.ts-DRpXmKSI.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-DMNpdAr1.js → _server.ts-DT8fIE9B.js} +5 -5
  191. package/build/server/chunks/{_server.ts-DMNpdAr1.js.map → _server.ts-DT8fIE9B.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-BP1-cpdO.js → _server.ts-DY4maxIB.js} +6 -6
  193. package/build/server/chunks/{_server.ts-BP1-cpdO.js.map → _server.ts-DY4maxIB.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-CfZXoUH1.js → _server.ts-DjJu23jV.js} +5 -5
  195. package/build/server/chunks/{_server.ts-CfZXoUH1.js.map → _server.ts-DjJu23jV.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-D4lQjUia.js → _server.ts-Djimbzpw.js} +7 -7
  197. package/build/server/chunks/{_server.ts-D4lQjUia.js.map → _server.ts-Djimbzpw.js.map} +1 -1
  198. package/build/server/chunks/{_server.ts-D47IinIP.js → _server.ts-Dpk6ddyU.js} +7 -7
  199. package/build/server/chunks/{_server.ts-D47IinIP.js.map → _server.ts-Dpk6ddyU.js.map} +1 -1
  200. package/build/server/chunks/{_server.ts-xxCrP77n.js → _server.ts-Dr6ShsbQ.js} +5 -5
  201. package/build/server/chunks/{_server.ts-xxCrP77n.js.map → _server.ts-Dr6ShsbQ.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-MPKhnT_9.js → _server.ts-DsbN7dr7.js} +5 -5
  203. package/build/server/chunks/{_server.ts-MPKhnT_9.js.map → _server.ts-DsbN7dr7.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-CPzXJpes.js → _server.ts-Dv7xll_B.js} +6 -6
  205. package/build/server/chunks/{_server.ts-CPzXJpes.js.map → _server.ts-Dv7xll_B.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-DJ8dviE4.js → _server.ts-Ieve8Oxl.js} +8 -8
  207. package/build/server/chunks/{_server.ts-DJ8dviE4.js.map → _server.ts-Ieve8Oxl.js.map} +1 -1
  208. package/build/server/chunks/{_server.ts-BX19lZQE.js → _server.ts-JPsLUf_g.js} +5 -5
  209. package/build/server/chunks/{_server.ts-BX19lZQE.js.map → _server.ts-JPsLUf_g.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-Df_d0aal.js → _server.ts-MJdHZvPF.js} +5 -5
  211. package/build/server/chunks/{_server.ts-Df_d0aal.js.map → _server.ts-MJdHZvPF.js.map} +1 -1
  212. package/build/server/chunks/{_server.ts-Bu5_FYA-.js → _server.ts-MORzCMU7.js} +5 -5
  213. package/build/server/chunks/{_server.ts-Bu5_FYA-.js.map → _server.ts-MORzCMU7.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-gBd2rolQ.js → _server.ts-QdyZiBuA.js} +5 -5
  215. package/build/server/chunks/{_server.ts-gBd2rolQ.js.map → _server.ts-QdyZiBuA.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-CSZz4p8L.js → _server.ts-RagJb3I4.js} +5 -5
  217. package/build/server/chunks/{_server.ts-CSZz4p8L.js.map → _server.ts-RagJb3I4.js.map} +1 -1
  218. package/build/server/chunks/{_server.ts-DzFK8bVm.js → _server.ts-Ts6pcZ0d.js} +5 -5
  219. package/build/server/chunks/{_server.ts-DzFK8bVm.js.map → _server.ts-Ts6pcZ0d.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-D30T84pQ.js → _server.ts-VuZwBycD.js} +5 -5
  221. package/build/server/chunks/{_server.ts-D30T84pQ.js.map → _server.ts-VuZwBycD.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-BsgERSUa.js → _server.ts-bClum6wa.js} +5 -5
  223. package/build/server/chunks/{_server.ts-BsgERSUa.js.map → _server.ts-bClum6wa.js.map} +1 -1
  224. package/build/server/chunks/{_server.ts-CI29Cyri.js → _server.ts-gLH0uvQH.js} +6 -6
  225. package/build/server/chunks/{_server.ts-CI29Cyri.js.map → _server.ts-gLH0uvQH.js.map} +1 -1
  226. package/build/server/chunks/{_server.ts-BaCAfVqq.js → _server.ts-lmfAKx6b.js} +7 -7
  227. package/build/server/chunks/{_server.ts-BaCAfVqq.js.map → _server.ts-lmfAKx6b.js.map} +1 -1
  228. package/build/server/chunks/{_server.ts-BCfPFzEV.js → _server.ts-op5C3XGb.js} +6 -6
  229. package/build/server/chunks/{_server.ts-BCfPFzEV.js.map → _server.ts-op5C3XGb.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-LS-MWWTz.js → _server.ts-zUZknmZx.js} +6 -6
  231. package/build/server/chunks/{_server.ts-LS-MWWTz.js.map → _server.ts-zUZknmZx.js.map} +1 -1
  232. package/build/server/chunks/{addon-helpers-CNp09lT6.js → addon-helpers-CoPzjA3s.js} +3 -3
  233. package/build/server/chunks/{addon-helpers-CNp09lT6.js.map → addon-helpers-CoPzjA3s.js.map} +1 -1
  234. package/build/server/chunks/{akm-Du5uQGJQ.js → akm-BS59M7h3.js} +2 -2
  235. package/build/server/chunks/{akm-Du5uQGJQ.js.map → akm-BS59M7h3.js.map} +1 -1
  236. package/build/server/chunks/{catalog-VJdRC16s.js → catalog-DAQWike4.js} +5 -5
  237. package/build/server/chunks/{catalog-VJdRC16s.js.map → catalog-DAQWike4.js.map} +1 -1
  238. package/build/server/chunks/{client-BQEOyapc.js → client-B3vN-Uvc.js} +2 -2
  239. package/build/server/chunks/{client-BQEOyapc.js.map → client-B3vN-Uvc.js.map} +1 -1
  240. package/build/server/chunks/{config-VQx1c1o2.js → config-Bdb4ZTos.js} +2 -2
  241. package/build/server/chunks/{config-VQx1c1o2.js.map → config-Bdb4ZTos.js.map} +1 -1
  242. package/build/server/chunks/{docker-DeSRsk_C.js → docker-DaU_SNhi.js} +2 -2
  243. package/build/server/chunks/{docker-DeSRsk_C.js.map → docker-DaU_SNhi.js.map} +1 -1
  244. package/build/server/chunks/{endpoints-CVaZyXGR.js → endpoints-1byh0xs8.js} +2 -2
  245. package/build/server/chunks/{endpoints-CVaZyXGR.js.map → endpoints-1byh0xs8.js.map} +1 -1
  246. package/build/server/chunks/{environment-BTWh1E9j.js → environment-BQh6a8iU.js} +2 -2
  247. package/build/server/chunks/{environment-BTWh1E9j.js.map → environment-BQh6a8iU.js.map} +1 -1
  248. package/build/server/chunks/{error.svelte-Cz7XJbXh.js → error.svelte-CEj0_dRA.js} +4 -4
  249. package/build/server/chunks/{error.svelte-Cz7XJbXh.js.map → error.svelte-CEj0_dRA.js.map} +1 -1
  250. package/build/server/chunks/{helpers-DEWuEDi5.js → helpers-Be-wOei2.js} +3 -3
  251. package/build/server/chunks/{helpers-DEWuEDi5.js.map → helpers-Be-wOei2.js.map} +1 -1
  252. package/build/server/chunks/{hooks.server-D_p0VTSA.js → hooks.server-DlA1ck_e.js} +6 -6
  253. package/build/server/chunks/{hooks.server-D_p0VTSA.js.map → hooks.server-DlA1ck_e.js.map} +1 -1
  254. package/build/server/chunks/{http-Bz9VDTR1.js → http-BbFgukqs.js} +2 -2
  255. package/build/server/chunks/{http-Bz9VDTR1.js.map → http-BbFgukqs.js.map} +1 -1
  256. package/build/server/chunks/{internal-CXonuT4k.js → internal-CP-qQJfY.js} +3 -3
  257. package/build/server/chunks/{internal-CXonuT4k.js.map → internal-CP-qQJfY.js.map} +1 -1
  258. package/build/server/chunks/{session-cookie-CQw8e0tc.js → session-cookie-C-kIy9pI.js} +2 -2
  259. package/build/server/chunks/{session-cookie-CQw8e0tc.js.map → session-cookie-C-kIy9pI.js.map} +1 -1
  260. package/build/server/chunks/{setup-deploy-BBl1pM-Q.js → setup-deploy-BL_wmz6j.js} +2 -2
  261. package/build/server/chunks/{setup-deploy-BBl1pM-Q.js.map → setup-deploy-BL_wmz6j.js.map} +1 -1
  262. package/build/server/chunks/{src-CHZNd5cO.js → src-BEj0DuSB.js} +167 -80
  263. package/build/server/chunks/src-BEj0DuSB.js.map +1 -0
  264. package/build/server/chunks/{state-BcQ5v_Ye.js → state-DAPDF26p.js} +2 -2
  265. package/build/server/chunks/{state-BcQ5v_Ye.js.map → state-DAPDF26p.js.map} +1 -1
  266. package/build/server/chunks/{state2-CGTr4dHs.js → state2-3fEu-ReG.js} +2 -2
  267. package/build/server/chunks/{state2-CGTr4dHs.js.map → state2-3fEu-ReG.js.map} +1 -1
  268. package/build/server/index.js +2 -2
  269. package/build/server/manifest.js +88 -88
  270. package/build/server/manifest.js.map +1 -1
  271. package/package.json +4 -2
  272. package/build/client/_app/immutable/chunks/BihYGk9Y.js.br +0 -0
  273. package/build/client/_app/immutable/chunks/BihYGk9Y.js.gz +0 -0
  274. package/build/client/_app/immutable/chunks/C5EI77dn.js.br +0 -0
  275. package/build/client/_app/immutable/chunks/CMRs-cy6.js.br +0 -0
  276. package/build/client/_app/immutable/chunks/CMRs-cy6.js.gz +0 -0
  277. package/build/client/_app/immutable/chunks/D6NbA5vY.js.br +0 -0
  278. package/build/client/_app/immutable/chunks/D6NbA5vY.js.gz +0 -0
  279. package/build/client/_app/immutable/chunks/lIgyewlB.js +0 -1
  280. package/build/client/_app/immutable/chunks/lIgyewlB.js.br +0 -2
  281. package/build/client/_app/immutable/chunks/lIgyewlB.js.gz +0 -0
  282. package/build/client/_app/immutable/entry/app.D4HjSNXN.js.br +0 -0
  283. package/build/client/_app/immutable/entry/app.D4HjSNXN.js.gz +0 -0
  284. package/build/client/_app/immutable/entry/start.BBmWGrcI.js +0 -1
  285. package/build/client/_app/immutable/entry/start.BBmWGrcI.js.br +0 -0
  286. package/build/client/_app/immutable/entry/start.BBmWGrcI.js.gz +0 -0
  287. package/build/client/_app/immutable/nodes/1.Cv1FI9RA.js.br +0 -2
  288. package/build/client/_app/immutable/nodes/1.Cv1FI9RA.js.gz +0 -0
  289. package/build/client/_app/immutable/nodes/4.0ZfV2HFJ.js.br +0 -0
  290. package/build/client/_app/immutable/nodes/4.0ZfV2HFJ.js.gz +0 -0
  291. package/build/client/_app/immutable/nodes/5.B_jsAXs5.js.br +0 -0
  292. package/build/client/_app/immutable/nodes/5.B_jsAXs5.js.gz +0 -0
  293. package/build/client/_app/immutable/nodes/6.CD18u_qC.js.br +0 -0
  294. package/build/client/_app/immutable/nodes/6.CD18u_qC.js.gz +0 -0
  295. package/build/client/_app/immutable/nodes/7.BXyjSbT8.js.br +0 -0
  296. package/build/client/_app/immutable/nodes/7.BXyjSbT8.js.gz +0 -0
  297. package/build/client/_app/immutable/nodes/8.CDTwcjzi.js.br +0 -0
  298. package/build/client/_app/immutable/nodes/8.CDTwcjzi.js.gz +0 -0
  299. package/build/server/chunks/1-CVcQJtBc.js +0 -9
  300. package/build/server/chunks/4-CTyDAO7N.js +0 -9
  301. package/build/server/chunks/7-k9H-eD_d.js +0 -9
  302. package/build/server/chunks/_page.svelte-BsDNnBfz.js.map +0 -1
  303. package/build/server/chunks/_server.ts-B409KD6U.js.map +0 -1
  304. package/build/server/chunks/_server.ts-BEdChB0B.js.map +0 -1
  305. package/build/server/chunks/_server.ts-JWoayilI.js.map +0 -1
  306. package/build/server/chunks/src-CHZNd5cO.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { E as head, d as attr } from './dev-B6xUe35c.js';
2
- import './client-BQEOyapc.js';
3
- import './internal-CXonuT4k.js';
2
+ import './client-B3vN-Uvc.js';
3
+ import './internal-CP-qQJfY.js';
4
4
  import './utils-BSRjJDrZ.js';
5
5
  import 'node:module';
6
6
  import './chunk-CLZ62Ad-.js';
@@ -34,4 +34,4 @@ function _page($$renderer, $$props) {
34
34
  }
35
35
 
36
36
  export { _page as default };
37
- //# sourceMappingURL=_page.svelte-CqkvpyUV.js.map
37
+ //# sourceMappingURL=_page.svelte-D4Zivreu.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-CqkvpyUV.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, s as head } from \"../../../chunks/dev.js\";\nimport { n as goto } from \"../../../chunks/client.js\";\nimport \"../../../chunks/navigation.js\";\nimport { t as Spinner } from \"../../../chunks/Spinner.js\";\n//#region src/lib/components/common/AuthGate.svelte\nfunction AuthGate($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { onSuccess, loading, error } = $$props;\n\t\tlet tokenInput = \"\";\n\t\t$$renderer.push(`<main class=\"auth-gate svelte-zhbyfn\" aria-label=\"Admin login gate\"><section class=\"auth-card svelte-zhbyfn\"><div class=\"auth-brand svelte-zhbyfn\"><span class=\"brand-icon svelte-zhbyfn\"><img src=\"/logo-128.png\" alt=\"OpenPalm Logo\" class=\"svelte-zhbyfn\"/></span> <div><h1 class=\"svelte-zhbyfn\">OpenPalm Console</h1> <p class=\"svelte-zhbyfn\">Enter your admin password to unlock the control plane.</p></div></div> <form class=\"auth-form svelte-zhbyfn\"><label for=\"admin-token\" class=\"svelte-zhbyfn\">Admin Password</label> <input type=\"text\" name=\"username\" autocomplete=\"username\" value=\"admin\" class=\"sr-only svelte-zhbyfn\" tabindex=\"-1\" aria-hidden=\"true\"/> <div class=\"token-input-wrapper svelte-zhbyfn\"><input id=\"admin-token\" name=\"admin-token\"${attr(\"type\", \"password\")}${attr(\"value\", tokenInput)} placeholder=\"Enter admin password\" autocomplete=\"current-password\" class=\"svelte-zhbyfn\"/> <button type=\"button\" class=\"btn-toggle svelte-zhbyfn\"${attr(\"aria-label\", \"Show token\")}>`);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<svg aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>`);\n\t\t$$renderer.push(`<!--]--></button></div> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"auth-error svelte-zhbyfn\" role=\"alert\">${escape_html(error)}</p>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <button class=\"btn btn-primary\" type=\"submit\"${attr(\"disabled\", loading || !tokenInput.trim(), true)}>`);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tSpinner($$renderer, {});\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> Unlock Console</button></form></section></main>`);\n\t});\n}\n//#endregion\n//#region src/routes/login/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet loading = false;\n\t\tlet error = \"\";\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (loading) return false;\n\t\t\tconst target = data.redirectTo || \"/chat\";\n\t\t\tloading = true;\n\t\t\terror = \"\";\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\terror = res.status === 503 ? \"Admin password is not configured yet. Complete setup first.\" : \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tawait goto(target);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\terror = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"1x05zx6\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Sign in — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tAuthGate($$renderer, {\n\t\t\tonSuccess: handleAuthSuccess,\n\t\t\tloading,\n\t\t\terror\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;AAIA;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAEtC,EAAE,IAAI,UAAU,GAAG,EAAE;AACrB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,0uBAA0uB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,kJAAkJ,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5+B,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,gRAAgR,CAAC,CAAC;AACrS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,sDAAsD,EAAE,IAAI,CAAC,UAAU,EAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpI,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wDAAwD,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AA4BxB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,UAIR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_page.svelte-D4Zivreu.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/login/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, s as head } from \"../../../chunks/dev.js\";\nimport { n as goto } from \"../../../chunks/client.js\";\nimport \"../../../chunks/navigation.js\";\nimport { t as Spinner } from \"../../../chunks/Spinner.js\";\n//#region src/lib/components/common/AuthGate.svelte\nfunction AuthGate($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { onSuccess, loading, error } = $$props;\n\t\tlet tokenInput = \"\";\n\t\t$$renderer.push(`<main class=\"auth-gate svelte-zhbyfn\" aria-label=\"Admin login gate\"><section class=\"auth-card svelte-zhbyfn\"><div class=\"auth-brand svelte-zhbyfn\"><span class=\"brand-icon svelte-zhbyfn\"><img src=\"/logo-128.png\" alt=\"OpenPalm Logo\" class=\"svelte-zhbyfn\"/></span> <div><h1 class=\"svelte-zhbyfn\">OpenPalm Console</h1> <p class=\"svelte-zhbyfn\">Enter your admin password to unlock the control plane.</p></div></div> <form class=\"auth-form svelte-zhbyfn\"><label for=\"admin-token\" class=\"svelte-zhbyfn\">Admin Password</label> <input type=\"text\" name=\"username\" autocomplete=\"username\" value=\"admin\" class=\"sr-only svelte-zhbyfn\" tabindex=\"-1\" aria-hidden=\"true\"/> <div class=\"token-input-wrapper svelte-zhbyfn\"><input id=\"admin-token\" name=\"admin-token\"${attr(\"type\", \"password\")}${attr(\"value\", tokenInput)} placeholder=\"Enter admin password\" autocomplete=\"current-password\" class=\"svelte-zhbyfn\"/> <button type=\"button\" class=\"btn-toggle svelte-zhbyfn\"${attr(\"aria-label\", \"Show token\")}>`);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<svg aria-hidden=\"true\" width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"></path><circle cx=\"12\" cy=\"12\" r=\"3\"></circle></svg>`);\n\t\t$$renderer.push(`<!--]--></button></div> `);\n\t\tif (error) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<p class=\"auth-error svelte-zhbyfn\" role=\"alert\">${escape_html(error)}</p>`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> <button class=\"btn btn-primary\" type=\"submit\"${attr(\"disabled\", loading || !tokenInput.trim(), true)}>`);\n\t\tif (loading) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tSpinner($$renderer, {});\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> Unlock Console</button></form></section></main>`);\n\t});\n}\n//#endregion\n//#region src/routes/login/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet { data } = $$props;\n\t\tlet loading = false;\n\t\tlet error = \"\";\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (loading) return false;\n\t\t\tconst target = data.redirectTo || \"/chat\";\n\t\t\tloading = true;\n\t\t\terror = \"\";\n\t\t\ttry {\n\t\t\t\tconst res = await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t});\n\t\t\t\tif (!res.ok) {\n\t\t\t\t\terror = res.status === 503 ? \"Admin password is not configured yet. Complete setup first.\" : \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tawait goto(target);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\terror = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tloading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"1x05zx6\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Sign in — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tAuthGate($$renderer, {\n\t\t\tonSuccess: handleAuthSuccess,\n\t\t\tloading,\n\t\t\terror\n\t\t});\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;AAIA;AACA,SAAS,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE;AACvC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AAEtC,EAAE,IAAI,UAAU,GAAG,EAAE;AACrB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,0uBAA0uB,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,kJAAkJ,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5+B,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AAC/B,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,gRAAgR,CAAC,CAAC;AACrS,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC7C,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,sDAAsD,EAAE,IAAI,CAAC,UAAU,EAAa,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACpI,EAGS,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,wDAAwD,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC;AACH;AACA;AACA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,OAAO;AA4BxB,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,iCAAiC,CAAC,CAAC;AACxD,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,QAAQ,CAAC,UAIR,CAAC;AACJ,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { E as head, d as attr, o as derived } from './dev-B6xUe35c.js';
2
2
  import 'node:module';
3
- import { p as page } from './state2-CGTr4dHs.js';
4
- import { N as Navbar, b as buildAdvancedIframeUrl, e as endpointsService } from './Navbar-Dnxvfk10.js';
5
- import './client-BQEOyapc.js';
6
- import './internal-CXonuT4k.js';
3
+ import { p as page } from './state2-3fEu-ReG.js';
4
+ import { N as Navbar, b as buildAdvancedIframeUrl, e as endpointsService } from './Navbar-UVOusnw-.js';
5
+ import './client-B3vN-Uvc.js';
6
+ import './internal-CP-qQJfY.js';
7
7
  import './utils-BSRjJDrZ.js';
8
8
  import './chunk-CLZ62Ad-.js';
9
9
  import './theme-state.svelte-CUVpUHOv.js';
@@ -26,4 +26,4 @@ function _page($$renderer, $$props) {
26
26
  }
27
27
 
28
28
  export { _page as default };
29
- //# sourceMappingURL=_page.svelte-DMBLB7p4.js.map
29
+ //# sourceMappingURL=_page.svelte-w4SS3sVN.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_page.svelte-DMBLB7p4.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/advanced/_page.svelte.js"],"sourcesContent":["import { V as attr, a as derived, s as head } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { t as page } from \"../../../chunks/state2.js\";\nimport { i as endpointsService, o as buildAdvancedIframeUrl, t as Navbar } from \"../../../chunks/Navbar.js\";\n//#region src/routes/advanced/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet openCodeUrl = derived(() => {\n\t\t\treturn buildAdvancedIframeUrl(endpointsService.active?.url ?? \"http://127.0.0.1:3800\", page.url.searchParams.get(\"session\"));\n\t\t});\n\t\thead(\"1z0msvj\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Advanced Chat — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <div class=\"advanced-layout svelte-1z0msvj\"><iframe class=\"opencode-frame svelte-1z0msvj\"${attr(\"src\", openCodeUrl())} title=\"OpenCode — Advanced Chat\" allow=\"clipboard-read; clipboard-write; microphone\"></iframe></div>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;;;;;AAIA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM;AAClC,GAAG,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,IAAI,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/H,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC9D,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,CAAC,UAAc,CAAC;AACxB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,iGAAiG,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,qGAAqG,CAAC,CAAC;AACxP,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_page.svelte-w4SS3sVN.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/advanced/_page.svelte.js"],"sourcesContent":["import { V as attr, a as derived, s as head } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { t as page } from \"../../../chunks/state2.js\";\nimport { i as endpointsService, o as buildAdvancedIframeUrl, t as Navbar } from \"../../../chunks/Navbar.js\";\n//#region src/routes/advanced/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet openCodeUrl = derived(() => {\n\t\t\treturn buildAdvancedIframeUrl(endpointsService.active?.url ?? \"http://127.0.0.1:3800\", page.url.searchParams.get(\"session\"));\n\t\t});\n\t\thead(\"1z0msvj\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Advanced Chat — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tNavbar($$renderer, {});\n\t\t$$renderer.push(`<!----> <div class=\"advanced-layout svelte-1z0msvj\"><iframe class=\"opencode-frame svelte-1z0msvj\"${attr(\"src\", openCodeUrl())} title=\"OpenCode — Advanced Chat\" allow=\"clipboard-read; clipboard-write; microphone\"></iframe></div>`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":";;;;;;;;;;;AAIA;AACA,SAAS,KAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,IAAI,WAAW,GAAG,OAAO,CAAC,MAAM;AAClC,GAAG,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,IAAI,uBAAuB,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC/H,EAAE,CAAC,CAAC;AACJ,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,CAAC,UAAU,KAAK;AAC9C,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,UAAU,KAAK;AACpC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,uCAAuC,CAAC,CAAC;AAC9D,GAAG,CAAC,CAAC;AACL,EAAE,CAAC,CAAC;AACJ,EAAE,MAAM,CAAC,UAAc,CAAC;AACxB,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,iGAAiG,EAAE,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,qGAAqG,CAAC,CAAC;AACxP,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,6 +1,6 @@
1
- import { E as createLogger, a8 as isAllowedService, o as checkDocker, B as composeStop, m as buildComposeOptions } from './src-CHZNd5cO.js';
2
- import { g as getState } from './state-BcQ5v_Ye.js';
3
- import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-DEWuEDi5.js';
1
+ import { F as createLogger, ab as isAllowedService, o as checkDocker, D as composeStop, m as buildComposeOptions } from './src-BEj0DuSB.js';
2
+ import { g as getState } from './state-DAPDF26p.js';
3
+ import { d as getRequestId, r as requireAdmin, p as parseJsonBody, j as jsonBodyError, e as errorResponse, k as jsonResponse } from './helpers-Be-wOei2.js';
4
4
  import { w as withSerialQueue } from './serial-queue-D9FEpYVv.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
@@ -23,7 +23,7 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-CVaZyXGR.js';
26
+ import './endpoints-1byh0xs8.js';
27
27
 
28
28
  //#region src/routes/admin/containers/down/+server.ts
29
29
  var logger = createLogger("containers-down");
@@ -53,4 +53,4 @@ var POST = async (event) => {
53
53
  };
54
54
 
55
55
  export { POST };
56
- //# sourceMappingURL=_server.ts-CERCOBc3.js.map
56
+ //# sourceMappingURL=_server.ts-4Pwhm5iv.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-CERCOBc3.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/down/_server.ts.js"],"sourcesContent":["import { D as isAllowedService, I as buildComposeOptions, X as checkDocker, en as createLogger, ot as composeStop } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/down/+server.ts\nvar logger = createLogger(\"containers-down\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container stop request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:down\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeStop([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"stopped\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to stop service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"stopped\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-4Pwhm5iv.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/down/_server.ts.js"],"sourcesContent":["import { D as isAllowedService, I as buildComposeOptions, X as checkDocker, in as createLogger, ot as composeStop } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { c as jsonBodyError, d as requireAdmin, i as errorResponse, l as jsonResponse, o as getRequestId, u as parseJsonBody } from \"../../../../../chunks/helpers.js\";\nimport { t as withSerialQueue } from \"../../../../../chunks/serial-queue.js\";\n//#region src/routes/admin/containers/down/+server.ts\nvar logger = createLogger(\"containers-down\");\nvar POST = async (event) => {\n\tconst requestId = getRequestId(event);\n\tlogger.info(\"container stop request\", { requestId });\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\treturn withSerialQueue(\"admin:containers:down\", async () => {\n\t\tconst state = getState();\n\t\tconst result = await parseJsonBody(event.request);\n\t\tif (\"error\" in result) return jsonBodyError(result, requestId);\n\t\tconst body = result.data;\n\t\tconst service = typeof body.service === \"string\" ? body.service : \"\";\n\t\tif (!isAllowedService(service, state.configDir)) return errorResponse(400, \"invalid_service\", \"Service is not in allowlist\", { service }, requestId);\n\t\tif ((await checkDocker()).ok) {\n\t\t\tconst result = await composeStop([service], buildComposeOptions(state));\n\t\t\tif (result.ok) state.services[service] = \"stopped\";\n\t\t\telse return errorResponse(500, \"docker_error\", `Failed to stop service: ${result.stderr}`, { service }, requestId);\n\t\t} else state.services[service] = \"stopped\";\n\t\treturn jsonResponse(200, {\n\t\t\tok: true,\n\t\t\tservice,\n\t\t\tstatus: state.services[service]\n\t\t}, requestId);\n\t});\n};\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA;AACA,IAAI,MAAM,GAAG,YAAY,CAAC,iBAAiB,CAAC;AACzC,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK;AAC5B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,EAAE,EAAE,SAAS,EAAE,CAAC;AACrD,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,OAAO,eAAe,CAAC,uBAAuB,EAAE,YAAY;AAC7D,EAAE,MAAM,KAAK,GAAG,QAAQ,EAAE;AAC1B,EAAE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC;AACnD,EAAE,IAAI,OAAO,IAAI,MAAM,EAAE,OAAO,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC;AAChE,EAAE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI;AAC1B,EAAE,MAAM,OAAO,GAAG,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,GAAG,IAAI,CAAC,OAAO,GAAG,EAAE;AACtE,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACtJ,EAAE,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,EAAE,EAAE;AAChC,GAAG,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC1E,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AACrD,QAAQ,OAAO,aAAa,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,wBAAwB,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC;AACrH,EAAE,CAAC,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,SAAS;AAC5C,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,EAAE,EAAE,IAAI;AACX,GAAG,OAAO;AACV,GAAG,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO;AACjC,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC;AACH;;;;"}
@@ -1,5 +1,5 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { aa as isSetupComplete, aD as resolveStackDir } from './src-CHZNd5cO.js';
2
+ import { ae as isSetupComplete, aH as resolveStackDir } from './src-BEj0DuSB.js';
3
3
  import './utils-BSRjJDrZ.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
@@ -32,4 +32,4 @@ var GET = () => {
32
32
  };
33
33
 
34
34
  export { GET };
35
- //# sourceMappingURL=_server.ts-D1v6AXVY.js.map
35
+ //# sourceMappingURL=_server.ts-5cUQFkT_.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-D1v6AXVY.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Yt as resolveStackDir, ut as isSetupComplete } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/status/+server.ts\nvar GET = () => {\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: isSetupComplete(resolveStackDir())\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,eAAe,CAAC,eAAe,EAAE;AAClD,EAAE,CAAC;AACH;;;;"}
1
+ {"version":3,"file":"_server.ts-5cUQFkT_.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/setup/status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\nimport { Yt as resolveStackDir, ut as isSetupComplete } from \"../../../../../chunks/src.js\";\n//#region src/routes/api/setup/status/+server.ts\nvar GET = () => {\n\treturn json({\n\t\tok: true,\n\t\tsetupComplete: isSetupComplete(resolveStackDir())\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,EAAE,EAAE,IAAI;AACV,EAAE,aAAa,EAAE,eAAe,CAAC,eAAe,EAAE;AAClD,EAAE,CAAC;AACH;;;;"}
@@ -1,7 +1,7 @@
1
- import { g as getActiveEndpoint } from './endpoints-CVaZyXGR.js';
2
- import { d as getRequestId, r as requireAdmin } from './helpers-DEWuEDi5.js';
3
- import './state-BcQ5v_Ye.js';
4
- import './src-CHZNd5cO.js';
1
+ import { g as getActiveEndpoint } from './endpoints-1byh0xs8.js';
2
+ import { d as getRequestId, r as requireAdmin } from './helpers-Be-wOei2.js';
3
+ import './state-DAPDF26p.js';
4
+ import './src-BEj0DuSB.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -109,4 +109,4 @@ var PUT = handler;
109
109
  var DELETE = handler;
110
110
 
111
111
  export { DELETE, GET, POST, PUT };
112
- //# sourceMappingURL=_server.ts-Ou4LHoL0.js.map
112
+ //# sourceMappingURL=_server.ts-6sLoCHl6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-Ou4LHoL0.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"_server.ts-6sLoCHl6.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/proxy/assistant/_...path_/_server.ts.js"],"sourcesContent":["import { r as getActiveEndpoint } from \"../../../../../chunks/endpoints.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/proxy/assistant/[...path]/+server.ts\n/**\n* Proxy route: forward /proxy/assistant/[...path] → assistant OpenCode server.\n*\n* Auth: requires the operator's `op_session` cookie (cookie-only since\n* Phase 2 of the auth/proxy refactor — the `x-admin-token` header fallback\n* was removed).\n* Forwards the full request body and method unchanged.\n* The target URL and per-endpoint Basic-auth password are resolved per-request\n* from the active endpoint store, so switching endpoints in the UI takes\n* effect immediately without restarting the server.\n*\n* Streaming: the upstream response body is forwarded as-is (no buffering) so\n* SSE responses (text/event-stream) pass through chunk-by-chunk. We do not\n* impose a fixed timeout on the upstream fetch — OpenCode SSE streams can run\n* for minutes. Instead the per-request AbortController is wired to the client\n* disconnect signal (`event.request.signal`); when the browser aborts (tab\n* close, navigation away), we propagate the abort to upstream.\n*/\nfunction buildForwardHeaders(incomingContentType, username, password) {\n\tconst headers = {};\n\tif (incomingContentType) headers[\"content-type\"] = incomingContentType;\n\tif (password) headers[\"authorization\"] = `Basic ${btoa(`${username || \"openpalm\"}:${password}`)}`;\n\treturn headers;\n}\nfunction buildResponseHeaders(upstream, requestId, endpointId, endpointLabel) {\n\tconst headers = new Headers();\n\theaders.set(\"content-type\", upstream.headers.get(\"content-type\") ?? \"application/json\");\n\tconst cacheControl = upstream.headers.get(\"cache-control\");\n\tif (cacheControl) headers.set(\"cache-control\", cacheControl);\n\tconst transferEncoding = upstream.headers.get(\"transfer-encoding\");\n\tif (transferEncoding) headers.set(\"transfer-encoding\", transferEncoding);\n\theaders.set(\"x-request-id\", requestId);\n\theaders.set(\"x-endpoint-id\", endpointId);\n\theaders.set(\"x-endpoint-label\", encodeURIComponent(endpointLabel));\n\treturn headers;\n}\nvar handler = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst endpoint = getActiveEndpoint();\n\tconst { path } = event.params;\n\tconst targetUrl = `${endpoint.url}/${path}${event.url.search}`;\n\tconst method = event.request.method;\n\tconst contentType = event.request.headers.get(\"content-type\");\n\tconst body = method !== \"GET\" && method !== \"HEAD\" ? await event.request.arrayBuffer() : void 0;\n\tconst controller = new AbortController();\n\tconst onClientAbort = () => controller.abort();\n\tevent.request.signal.addEventListener(\"abort\", onClientAbort, { once: true });\n\ttry {\n\t\tconst upstream = await fetch(targetUrl, {\n\t\t\tmethod,\n\t\t\theaders: buildForwardHeaders(contentType, endpoint.username, endpoint.password),\n\t\t\tbody,\n\t\t\tsignal: controller.signal\n\t\t});\n\t\treturn new Response(upstream.body, {\n\t\t\tstatus: upstream.status,\n\t\t\theaders: buildResponseHeaders(upstream, requestId, endpoint.id, endpoint.label)\n\t\t});\n\t} catch (e) {\n\t\tevent.request.signal.removeEventListener(\"abort\", onClientAbort);\n\t\tconsole.warn(\"[proxy/assistant] Upstream request failed:\", e);\n\t\treturn new Response(JSON.stringify({\n\t\t\terror: \"endpoint_unreachable\",\n\t\t\tmessage: `Assistant endpoint \"${endpoint.label}\" is not reachable`,\n\t\t\tendpointId: endpoint.id,\n\t\t\tendpointLabel: endpoint.label,\n\t\t\turl: endpoint.url\n\t\t}), {\n\t\t\tstatus: 503,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"application/json\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\nvar GET = handler;\nvar POST = handler;\nvar PUT = handler;\nvar DELETE = handler;\n//#endregion\nexport { DELETE, GET, POST, PUT };\n"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { o as checkDocker, v as composePs, m as buildComposeOptions, n as buildManagedServices } from './src-CHZNd5cO.js';
2
- import { g as getState } from './state-BcQ5v_Ye.js';
3
- import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-DEWuEDi5.js';
1
+ import { o as checkDocker, w as composePs, m as buildComposeOptions, n as buildManagedServices } from './src-BEj0DuSB.js';
2
+ import { g as getState } from './state-DAPDF26p.js';
3
+ import { d as getRequestId, r as requireAdmin, k as jsonResponse } from './helpers-Be-wOei2.js';
4
4
  import './chunk-CLZ62Ad-.js';
5
5
  import 'node:module';
6
6
  import './provider-constants-DPrj3yBX.js';
@@ -22,7 +22,7 @@ import 'zlib';
22
22
  import 'node:assert';
23
23
  import 'node:fs/promises';
24
24
  import 'node:os';
25
- import './endpoints-CVaZyXGR.js';
25
+ import './endpoints-1byh0xs8.js';
26
26
 
27
27
  //#region src/routes/admin/containers/list/+server.ts
28
28
  var GET = async (event) => {
@@ -67,4 +67,4 @@ var GET = async (event) => {
67
67
  };
68
68
 
69
69
  export { GET };
70
- //# sourceMappingURL=_server.ts-D1dT173b.js.map
70
+ //# sourceMappingURL=_server.ts-748DtXrC.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-D1dT173b.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/list/_server.ts.js"],"sourcesContent":["import { I as buildComposeOptions, V as buildManagedServices, X as checkDocker, tt as composePs } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/list/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tlet dockerContainers = null;\n\tif (dockerCheck.ok) {\n\t\tconst ps = await composePs(buildComposeOptions(state));\n\t\tif (ps.ok && ps.stdout.trim()) try {\n\t\t\tdockerContainers = ps.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[containers.list] Failed to parse docker compose ps output\", e);\n\t\t\tdockerContainers = null;\n\t\t}\n\t}\n\tif (dockerContainers) {\n\t\tconst dockerStateByService = /* @__PURE__ */ new Map();\n\t\tfor (const c of dockerContainers) if (c.Service && c.State) dockerStateByService.set(c.Service, c.State);\n\t\tfor (const service of Object.keys(state.services)) {\n\t\t\tconst dockerState = dockerStateByService.get(service);\n\t\t\tif (dockerState) state.services[service] = dockerState === \"running\" ? \"running\" : \"stopped\";\n\t\t}\n\t}\n\tlet managedServices;\n\ttry {\n\t\tmanagedServices = await buildManagedServices(state);\n\t} catch {\n\t\tmanagedServices = Object.keys(state.services);\n\t}\n\tconst managedSet = new Set(managedServices);\n\tconst containers = {};\n\tfor (const [name, status] of Object.entries(state.services)) if (managedSet.has(name)) containers[name] = status;\n\treturn jsonResponse(200, {\n\t\tcontainers,\n\t\tdockerContainers,\n\t\tdockerAvailable: dockerCheck.ok,\n\t\tmanagedServices\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,gBAAgB,GAAG,IAAI;AAC5B,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AACrC,GAAG,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,CAAC;AAChF,GAAG,gBAAgB,GAAG,IAAI;AAC1B,EAAE;AACF,CAAC;AACD,CAAC,IAAI,gBAAgB,EAAE;AACvB,EAAE,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,EAAE;AACxD,EAAE,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;AAC1G,EAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACrD,GAAG,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;AACxD,GAAG,IAAI,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/F,EAAE;AACF,CAAC;AACD,CAAC,IAAI,eAAe;AACpB,CAAC,IAAI;AACL,EAAE,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/C,CAAC;AACD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;AACjH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,UAAU;AACZ,EAAE,gBAAgB;AAClB,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE;AACjC,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
1
+ {"version":3,"file":"_server.ts-748DtXrC.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/containers/list/_server.ts.js"],"sourcesContent":["import { I as buildComposeOptions, V as buildManagedServices, X as checkDocker, tt as composePs } from \"../../../../../chunks/src.js\";\nimport { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, l as jsonResponse, o as getRequestId } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/containers/list/+server.ts\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst authError = requireAdmin(event, requestId);\n\tif (authError) return authError;\n\tconst state = getState();\n\tconst dockerCheck = await checkDocker();\n\tlet dockerContainers = null;\n\tif (dockerCheck.ok) {\n\t\tconst ps = await composePs(buildComposeOptions(state));\n\t\tif (ps.ok && ps.stdout.trim()) try {\n\t\t\tdockerContainers = ps.stdout.trim().split(\"\\n\").filter((l) => l.startsWith(\"{\")).map((l) => JSON.parse(l));\n\t\t} catch (e) {\n\t\t\tconsole.warn(\"[containers.list] Failed to parse docker compose ps output\", e);\n\t\t\tdockerContainers = null;\n\t\t}\n\t}\n\tif (dockerContainers) {\n\t\tconst dockerStateByService = /* @__PURE__ */ new Map();\n\t\tfor (const c of dockerContainers) if (c.Service && c.State) dockerStateByService.set(c.Service, c.State);\n\t\tfor (const service of Object.keys(state.services)) {\n\t\t\tconst dockerState = dockerStateByService.get(service);\n\t\t\tif (dockerState) state.services[service] = dockerState === \"running\" ? \"running\" : \"stopped\";\n\t\t}\n\t}\n\tlet managedServices;\n\ttry {\n\t\tmanagedServices = await buildManagedServices(state);\n\t} catch {\n\t\tmanagedServices = Object.keys(state.services);\n\t}\n\tconst managedSet = new Set(managedServices);\n\tconst containers = {};\n\tfor (const [name, status] of Object.entries(state.services)) if (managedSet.has(name)) containers[name] = status;\n\treturn jsonResponse(200, {\n\t\tcontainers,\n\t\tdockerContainers,\n\t\tdockerAvailable: dockerCheck.ok,\n\t\tmanagedServices\n\t}, requestId);\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACG,IAAC,GAAG,GAAG,OAAO,KAAK,KAAK;AAC3B,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC;AACtC,CAAC,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;AACjD,CAAC,IAAI,SAAS,EAAE,OAAO,SAAS;AAChC,CAAC,MAAM,KAAK,GAAG,QAAQ,EAAE;AACzB,CAAC,MAAM,WAAW,GAAG,MAAM,WAAW,EAAE;AACxC,CAAC,IAAI,gBAAgB,GAAG,IAAI;AAC5B,CAAC,IAAI,WAAW,CAAC,EAAE,EAAE;AACrB,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AACxD,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,IAAI;AACrC,GAAG,gBAAgB,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7G,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;AACd,GAAG,OAAO,CAAC,IAAI,CAAC,4DAA4D,EAAE,CAAC,CAAC;AAChF,GAAG,gBAAgB,GAAG,IAAI;AAC1B,EAAE;AACF,CAAC;AACD,CAAC,IAAI,gBAAgB,EAAE;AACvB,EAAE,MAAM,oBAAoB,mBAAmB,IAAI,GAAG,EAAE;AACxD,EAAE,KAAK,MAAM,CAAC,IAAI,gBAAgB,EAAE,IAAI,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,KAAK,EAAE,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC;AAC1G,EAAE,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;AACrD,GAAG,MAAM,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC;AACxD,GAAG,IAAI,WAAW,EAAE,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,WAAW,KAAK,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/F,EAAE;AACF,CAAC;AACD,CAAC,IAAI,eAAe;AACpB,CAAC,IAAI;AACL,EAAE,eAAe,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC;AACrD,CAAC,CAAC,CAAC,MAAM;AACT,EAAE,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;AAC/C,CAAC;AACD,CAAC,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,UAAU,GAAG,EAAE;AACtB,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,MAAM;AACjH,CAAC,OAAO,YAAY,CAAC,GAAG,EAAE;AAC1B,EAAE,UAAU;AACZ,EAAE,gBAAgB;AAClB,EAAE,eAAe,EAAE,WAAW,CAAC,EAAE;AACjC,EAAE;AACF,EAAE,EAAE,SAAS,CAAC;AACd;;;;"}
@@ -1,7 +1,7 @@
1
- import { s as setActiveId } from './endpoints-CVaZyXGR.js';
2
- import { w as withAdminBody, e as errorResponse, k as jsonResponse } from './helpers-DEWuEDi5.js';
3
- import './state-BcQ5v_Ye.js';
4
- import './src-CHZNd5cO.js';
1
+ import { s as setActiveId } from './endpoints-1byh0xs8.js';
2
+ import { w as withAdminBody, e as errorResponse, k as jsonResponse } from './helpers-Be-wOei2.js';
3
+ import './state-DAPDF26p.js';
4
+ import './src-BEj0DuSB.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -46,4 +46,4 @@ var POST = async (event) => withAdminBody(event, async ({ requestId, body }) =>
46
46
  });
47
47
 
48
48
  export { POST };
49
- //# sourceMappingURL=_server.ts-anQxgBbg.js.map
49
+ //# sourceMappingURL=_server.ts-9zKJx2eV.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-anQxgBbg.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/active/_server.ts.js"],"sourcesContent":["import { o as setActiveId } from \"../../../../../chunks/endpoints.js\";\nimport { i as errorResponse, l as jsonResponse, p as withAdminBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/active/+server.ts\nvar POST = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst id = typeof body.id === \"string\" ? body.id : \"\";\n\tif (!id) return errorResponse(400, \"invalid_request\", \"id is required\", {}, requestId);\n\ttry {\n\t\tconst active = setActiveId(id);\n\t\treturn jsonResponse(200, {\n\t\t\tactiveId: active.id,\n\t\t\tendpoint: {\n\t\t\t\tid: active.id,\n\t\t\t\tlabel: active.label,\n\t\t\t\turl: active.url,\n\t\t\t\tisDefault: active.isDefault,\n\t\t\t\thasPassword: Boolean(active.password)\n\t\t\t}\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(404, \"not_found\", e instanceof Error ? e.message : \"failed to set active endpoint\", {}, requestId);\n\t}\n});\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAChF,CAAC,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE;AACtD,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;AAChC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE;AACtB,GAAG,QAAQ,EAAE;AACb,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE;AACjB,IAAI,KAAK,EAAE,MAAM,CAAC,KAAK;AACvB,IAAI,GAAG,EAAE,MAAM,CAAC,GAAG;AACnB,IAAI,SAAS,EAAE,MAAM,CAAC,SAAS;AAC/B,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;AACxC;AACA,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,+BAA+B,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC;AACD,CAAC;;;;"}
1
+ {"version":3,"file":"_server.ts-9zKJx2eV.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/endpoints/active/_server.ts.js"],"sourcesContent":["import { o as setActiveId } from \"../../../../../chunks/endpoints.js\";\nimport { i as errorResponse, l as jsonResponse, p as withAdminBody } from \"../../../../../chunks/helpers.js\";\n//#region src/routes/admin/endpoints/active/+server.ts\nvar POST = async (event) => withAdminBody(event, async ({ requestId, body }) => {\n\tconst id = typeof body.id === \"string\" ? body.id : \"\";\n\tif (!id) return errorResponse(400, \"invalid_request\", \"id is required\", {}, requestId);\n\ttry {\n\t\tconst active = setActiveId(id);\n\t\treturn jsonResponse(200, {\n\t\t\tactiveId: active.id,\n\t\t\tendpoint: {\n\t\t\t\tid: active.id,\n\t\t\t\tlabel: active.label,\n\t\t\t\turl: active.url,\n\t\t\t\tisDefault: active.isDefault,\n\t\t\t\thasPassword: Boolean(active.password)\n\t\t\t}\n\t\t}, requestId);\n\t} catch (e) {\n\t\treturn errorResponse(404, \"not_found\", e instanceof Error ? e.message : \"failed to set active endpoint\", {}, requestId);\n\t}\n});\n//#endregion\nexport { POST };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAEA;AACG,IAAC,IAAI,GAAG,OAAO,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK;AAChF,CAAC,MAAM,EAAE,GAAG,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE;AACtD,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,EAAE,EAAE,SAAS,CAAC;AACvF,CAAC,IAAI;AACL,EAAE,MAAM,MAAM,GAAG,WAAW,CAAC,EAAE,CAAC;AAChC,EAAE,OAAO,YAAY,CAAC,GAAG,EAAE;AAC3B,GAAG,QAAQ,EAAE,MAAM,CAAC,EAAE;AACtB,GAAG,QAAQ,EAAE;AACb,IAAI,EAAE,EAAE,MAAM,CAAC,EAAE;AACjB,IAAI,KAAK,EAAE,MAAM,CAAC,KAAK;AACvB,IAAI,GAAG,EAAE,MAAM,CAAC,GAAG;AACnB,IAAI,SAAS,EAAE,MAAM,CAAC,SAAS;AAC/B,IAAI,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ;AACxC;AACA,GAAG,EAAE,SAAS,CAAC;AACf,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,aAAa,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,YAAY,KAAK,GAAG,CAAC,CAAC,OAAO,GAAG,+BAA+B,EAAE,EAAE,EAAE,SAAS,CAAC;AACzH,CAAC;AACD,CAAC;;;;"}
@@ -1,7 +1,7 @@
1
- import { g as getState } from './state-BcQ5v_Ye.js';
2
- import { d as getRequestId, r as requireAdmin } from './helpers-DEWuEDi5.js';
3
- import { r as runAkmCommand, s as safeParseJsonObject } from './akm-Du5uQGJQ.js';
4
- import './src-CHZNd5cO.js';
1
+ import { g as getState } from './state-DAPDF26p.js';
2
+ import { d as getRequestId, r as requireAdmin } from './helpers-Be-wOei2.js';
3
+ import { r as runAkmCommand, s as safeParseJsonObject } from './akm-BS59M7h3.js';
4
+ import './src-BEj0DuSB.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -23,7 +23,7 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-CVaZyXGR.js';
26
+ import './endpoints-1byh0xs8.js';
27
27
 
28
28
  //#region src/lib/server/akm-health-report.ts
29
29
  var AKM_HEALTH_REPORT_WINDOWS = [
@@ -653,4 +653,4 @@ var GET = async (event) => {
653
653
  };
654
654
 
655
655
  export { GET };
656
- //# sourceMappingURL=_server.ts-WQLovWTW.js.map
656
+ //# sourceMappingURL=_server.ts-B1Ka3iiX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_server.ts-WQLovWTW.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/health-report/_server.ts.js"],"sourcesContent":["import { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { n as runAkmCommand, r as safeParseJsonObject } from \"../../../../../chunks/akm.js\";\n//#region src/lib/server/akm-health-report.ts\nvar AKM_HEALTH_REPORT_WINDOWS = [\n\t\"24h\",\n\t\"72h\",\n\t\"7d\",\n\t\"14d\",\n\t\"30d\"\n];\nfunction asRecord(value) {\n\treturn value && typeof value === \"object\" && !Array.isArray(value) ? value : null;\n}\nfunction asArray(value) {\n\treturn Array.isArray(value) ? value : [];\n}\nfunction asNumber(value) {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\nfunction asString(value) {\n\treturn typeof value === \"string\" ? value : \"\";\n}\nfunction asBoolean(value) {\n\treturn value === true;\n}\nfunction clampWindow(value) {\n\treturn AKM_HEALTH_REPORT_WINDOWS.includes(value ?? \"\") ? value : \"72h\";\n}\nfunction escapeHtml(value) {\n\treturn value.replaceAll(\"&\", \"&amp;\").replaceAll(\"<\", \"&lt;\").replaceAll(\">\", \"&gt;\").replaceAll(\"\\\"\", \"&quot;\").replaceAll(\"'\", \"&#39;\");\n}\nfunction scriptJson(value) {\n\treturn JSON.stringify(value).replaceAll(\"<\", \"\\\\u003c\");\n}\nfunction fmtInt(value) {\n\treturn new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 0 }).format(value);\n}\nfunction fmtPercent(value) {\n\treturn `${(value * 100).toFixed(value === 0 || value >= .1 ? 0 : 1)}%`;\n}\nfunction fmtDuration(ms) {\n\tif (!Number.isFinite(ms) || ms <= 0) return \"0s\";\n\tif (ms < 1e3) return `${Math.round(ms)}ms`;\n\tconst seconds = ms / 1e3;\n\tif (seconds < 60) return `${seconds.toFixed(seconds >= 10 ? 0 : 1)}s`;\n\tconst minutes = Math.floor(seconds / 60);\n\tconst remSeconds = Math.round(seconds % 60);\n\tif (minutes < 60) return `${minutes}m ${remSeconds}s`;\n\treturn `${Math.floor(minutes / 60)}h ${minutes % 60}m`;\n}\nfunction fmtUtc(value) {\n\tif (!value) return \"n/a\";\n\tconst d = new Date(value);\n\tif (Number.isNaN(d.getTime())) return \"n/a\";\n\treturn d.toLocaleString(\"en-US\", {\n\t\tdateStyle: \"medium\",\n\t\ttimeStyle: \"short\",\n\t\ttimeZone: \"UTC\"\n\t}) + \" UTC\";\n}\nfunction metricDelta(current, prior) {\n\tif (prior === current) return \"flat vs prior window\";\n\tif (prior === 0) return current > 0 ? \"new vs prior window\" : \"flat vs prior window\";\n\tconst pct = (current - prior) / Math.abs(prior) * 100;\n\treturn `${pct > 0 ? \"up\" : \"down\"} ${Math.abs(pct).toFixed(Math.abs(pct) >= 10 ? 0 : 1)}% vs prior window`;\n}\nfunction statusClass(status) {\n\tif (status === \"ok\" || status === \"pass\") return \"ok\";\n\tif (status === \"warn\") return \"warn\";\n\treturn \"fail\";\n}\nfunction buildCards(current, prior, proposalCount) {\n\tconst invoked = asNumber(current.invoked);\n\tconst completed = asNumber(current.completed);\n\tconst completionRate = invoked > 0 ? completed / invoked : 0;\n\tconst failRate = asNumber(asRecord(current.actions)?.error) > 0 && invoked > 0 ? asNumber(asRecord(current.actions)?.error) / invoked : 0;\n\tconst promoted = asNumber(asRecord(current.consolidation)?.promoted);\n\tconst written = asNumber(asRecord(current.memoryInference)?.written);\n\tconst entities = asNumber(asRecord(current.graphExtraction)?.entities);\n\tconst medianMs = asNumber(asRecord(current.wallTime)?.medianMs);\n\tconst priorInvoked = asNumber(prior.invoked);\n\tconst priorCompleted = asNumber(prior.completed);\n\tconst priorCompletionRate = priorInvoked > 0 ? priorCompleted / priorInvoked : 0;\n\tconst priorFailRate = asNumber(asRecord(prior.actions)?.error) > 0 && priorInvoked > 0 ? asNumber(asRecord(prior.actions)?.error) / priorInvoked : 0;\n\treturn [\n\t\t{\n\t\t\tlabel: \"Completion rate\",\n\t\t\tvalue: fmtPercent(completionRate),\n\t\t\tsub: metricDelta(completionRate, priorCompletionRate)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fail rate\",\n\t\t\tvalue: fmtPercent(failRate),\n\t\t\tsub: metricDelta(failRate, priorFailRate)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Promoted\",\n\t\t\tvalue: fmtInt(promoted),\n\t\t\tsub: metricDelta(promoted, asNumber(asRecord(prior.consolidation)?.promoted))\n\t\t},\n\t\t{\n\t\t\tlabel: \"MI written\",\n\t\t\tvalue: fmtInt(written),\n\t\t\tsub: metricDelta(written, asNumber(asRecord(prior.memoryInference)?.written))\n\t\t},\n\t\t{\n\t\t\tlabel: \"Graph entities\",\n\t\t\tvalue: fmtInt(entities),\n\t\t\tsub: metricDelta(entities, asNumber(asRecord(prior.graphExtraction)?.entities))\n\t\t},\n\t\t{\n\t\t\tlabel: \"Median duration\",\n\t\t\tvalue: fmtDuration(medianMs),\n\t\t\tsub: metricDelta(medianMs, asNumber(asRecord(prior.wallTime)?.medianMs))\n\t\t},\n\t\t{\n\t\t\tlabel: \"Runs\",\n\t\t\tvalue: fmtInt(completed),\n\t\t\tsub: metricDelta(completed, priorCompleted)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Pending proposals\",\n\t\t\tvalue: fmtInt(proposalCount),\n\t\t\tsub: proposalCount > 0 ? \"review queue has pending items\" : \"no pending proposals\"\n\t\t}\n\t].map((card) => `\n <div class=\"card\">\n <div class=\"card-label\">${escapeHtml(card.label)}</div>\n <div class=\"card-value\">${escapeHtml(card.value)}</div>\n <div class=\"card-sub\">${escapeHtml(card.sub)}</div>\n </div>`).join(\"\");\n}\nfunction buildAdvisories(health) {\n\tconst items = [...asArray(health.advisories), ...asArray(health.hardChecks).filter((item) => {\n\t\tconst status = asString(asRecord(item)?.status);\n\t\treturn status === \"warn\" || status === \"fail\";\n\t})].map((item) => asRecord(item)).filter((item) => item !== null);\n\tif (items.length === 0) return \"<div class=\\\"notice ok\\\">No active advisories for this window.</div>\";\n\treturn items.map((item) => {\n\t\tconst status = statusClass(asString(item.status));\n\t\tconst name = asString(item.name) || \"advisory\";\n\t\tconst message = asString(item.message) || \"No details.\";\n\t\treturn `<div class=\"notice ${status}\"><strong>${escapeHtml(name)}</strong><span>${escapeHtml(message)}</span></div>`;\n\t}).join(\"\");\n}\nfunction buildProposalRows(proposals) {\n\tif (proposals.length === 0) return \"<tr><td colspan=\\\"4\\\" class=\\\"empty\\\">No pending proposals.</td></tr>\";\n\treturn proposals.slice(0, 20).map((proposal) => `\n <tr>\n <td>${escapeHtml(proposal.ref || proposal.id || \"unknown\")}</td>\n <td>${escapeHtml(proposal.source || \"unknown\")}</td>\n <td>${escapeHtml(fmtUtc(proposal.createdAt))}</td>\n <td>${escapeHtml(proposal.id || \"\")}</td>\n </tr>`).join(\"\");\n}\nfunction buildRunRows(runs) {\n\tif (runs.length === 0) return \"<tr><td colspan=\\\"6\\\" class=\\\"empty\\\">No improve runs in this window.</td></tr>\";\n\treturn runs.slice(-10).reverse().map((run, index) => {\n\t\tconst consolidation = asRecord(run.consolidation);\n\t\tconst memoryInference = asRecord(run.memoryInference);\n\t\tconst graphExtraction = asRecord(run.graphExtraction);\n\t\tconst startedAt = asString(run.startedAt);\n\t\tconst durationMs = asNumber(run.wallTimeMs) || asNumber(run.durationMs);\n\t\treturn `\n <tr>\n <td>${escapeHtml(asString(run.runId) || asString(run.id) || `run-${index + 1}`)}</td>\n <td>${escapeHtml(fmtUtc(startedAt))}</td>\n <td>${escapeHtml(fmtDuration(durationMs))}</td>\n <td>${escapeHtml(String(asBoolean(run.ok) ? \"ok\" : \"fail\"))}</td>\n <td>${escapeHtml(fmtInt(asNumber(consolidation?.promoted)))}</td>\n <td>${escapeHtml(fmtInt(asNumber(memoryInference?.written)))}</td>\n <td>${escapeHtml(fmtInt(asNumber(graphExtraction?.entities)))}</td>\n </tr>`;\n\t}).join(\"\");\n}\nfunction buildSummaryRows(current) {\n\treturn [\n\t\t[\"Invoked\", fmtInt(asNumber(current.invoked))],\n\t\t[\"Completed\", fmtInt(asNumber(current.completed))],\n\t\t[\"Skipped\", fmtInt(asNumber(current.skipped))],\n\t\t[\"Promoted\", fmtInt(asNumber(asRecord(current.consolidation)?.promoted))],\n\t\t[\"Merged\", fmtInt(asNumber(asRecord(current.consolidation)?.merged))],\n\t\t[\"Deleted\", fmtInt(asNumber(asRecord(current.consolidation)?.deleted))],\n\t\t[\"Judged no action\", fmtInt(asNumber(asRecord(current.consolidation)?.judgedNoAction))],\n\t\t[\"Inference written\", fmtInt(asNumber(asRecord(current.memoryInference)?.written))],\n\t\t[\"Graph entities\", fmtInt(asNumber(asRecord(current.graphExtraction)?.entities))],\n\t\t[\"Median wall time\", fmtDuration(asNumber(asRecord(current.wallTime)?.medianMs))]\n\t].map(([label, value]) => `\n <tr>\n <th>${escapeHtml(label)}</th>\n <td>${escapeHtml(value)}</td>\n </tr>`).join(\"\");\n}\nfunction renderHtml(window, health, proposals) {\n\tconst improve = asRecord(health.improve) ?? {};\n\tconst windows = asArray(health.windows).map((item) => asRecord(item)).filter((item) => item !== null);\n\tconst currentWindow = asRecord(windows.find((item) => asString(item.name) === \"current\")?.improve) ?? improve;\n\tconst priorWindow = asRecord(windows.find((item) => asString(item.name) === \"prior\")?.improve) ?? {};\n\tconst runs = asArray(health.runs).map((item) => asRecord(item)).filter((item) => item !== null);\n\tconst status = asString(health.status) || \"unknown\";\n\tconst since = asString(health.since);\n\tconst until = asString((windows.find((item) => asString(item.name) === \"current\") ?? {}).until);\n\tconst semanticStatus = asString(asRecord(asArray(health.advisories).map((item) => asRecord(item)).find((item) => asString(item?.name) === \"semantic-search-runtime\")?.evidence)?.status) || \"unknown\";\n\tconst payload = runs.map((run, index) => {\n\t\tconst consolidation = asRecord(run.consolidation);\n\t\tconst memoryInference = asRecord(run.memoryInference);\n\t\tconst graphExtraction = asRecord(run.graphExtraction);\n\t\treturn {\n\t\t\tlabel: asString(run.startedAt) ? fmtUtc(asString(run.startedAt)).replace(\" UTC\", \"\") : `Run ${index + 1}`,\n\t\t\twallTimeMs: asNumber(run.wallTimeMs) || asNumber(run.durationMs),\n\t\t\tpromoted: asNumber(consolidation?.promoted),\n\t\t\tmerged: asNumber(consolidation?.merged),\n\t\t\tdeleted: asNumber(consolidation?.deleted),\n\t\t\tjudgedNoAction: asNumber(consolidation?.judgedNoAction),\n\t\t\twritten: asNumber(memoryInference?.written),\n\t\t\tentities: asNumber(graphExtraction?.entities),\n\t\t\tconsolidationMs: asNumber(consolidation?.durationMs),\n\t\t\tmemoryInferenceMs: asNumber(memoryInference?.durationMs),\n\t\t\tgraphExtractionMs: asNumber(graphExtraction?.durationMs),\n\t\t\tok: asBoolean(run.ok)\n\t\t};\n\t});\n\treturn `<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <title>AKM Health Report (${escapeHtml(window)})</title>\n <style>\n :root {\n color-scheme: dark;\n --bg: #07111f;\n --panel: #101b2d;\n --panel-soft: #15233a;\n --border: rgba(148, 163, 184, 0.18);\n --text: #e5eefc;\n --muted: #93a4bf;\n --ok: #22c55e;\n --warn: #f59e0b;\n --fail: #ef4444;\n --accent: #60a5fa;\n }\n * { box-sizing: border-box; }\n body {\n margin: 0;\n font-family: Inter, ui-sans-serif, system-ui, sans-serif;\n background: radial-gradient(circle at top, #14233d 0%, var(--bg) 55%);\n color: var(--text);\n padding: 24px;\n }\n .shell {\n max-width: 1400px;\n margin: 0 auto;\n display: grid;\n gap: 20px;\n }\n .hero, .panel {\n background: rgba(16, 27, 45, 0.9);\n border: 1px solid var(--border);\n border-radius: 18px;\n box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);\n }\n .hero {\n padding: 24px;\n display: grid;\n gap: 16px;\n }\n .hero-top {\n display: flex;\n justify-content: space-between;\n gap: 16px;\n align-items: flex-start;\n flex-wrap: wrap;\n }\n h1, h2, h3, p { margin: 0; }\n .eyebrow { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }\n .title { font-size: clamp(28px, 4vw, 40px); font-weight: 700; }\n .subtitle { color: var(--muted); max-width: 80ch; }\n .status {\n border-radius: 999px;\n padding: 8px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n border: 1px solid transparent;\n }\n .status.ok { color: #bbf7d0; background: rgba(34, 197, 94, 0.14); border-color: rgba(34, 197, 94, 0.32); }\n .status.warn { color: #fde68a; background: rgba(245, 158, 11, 0.14); border-color: rgba(245, 158, 11, 0.32); }\n .status.fail { color: #fecaca; background: rgba(239, 68, 68, 0.14); border-color: rgba(239, 68, 68, 0.32); }\n .meta {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 12px;\n }\n .meta-item, .card {\n background: var(--panel-soft);\n border: 1px solid var(--border);\n border-radius: 14px;\n padding: 14px;\n }\n .meta-label, .card-label { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }\n .meta-value, .card-value { margin-top: 8px; font-size: 22px; font-weight: 700; }\n .card-sub { margin-top: 8px; color: var(--muted); font-size: 13px; }\n .cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 12px;\n }\n .grid-two {\n display: grid;\n grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);\n gap: 20px;\n }\n .panel { padding: 18px; }\n .panel-title { font-size: 18px; font-weight: 700; margin-bottom: 14px; }\n .chart-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n gap: 16px;\n }\n .chart {\n height: 320px;\n background: linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0));\n border: 1px solid var(--border);\n border-radius: 14px;\n }\n .notice-list {\n display: grid;\n gap: 10px;\n }\n .notice {\n display: grid;\n gap: 6px;\n border-radius: 14px;\n padding: 14px;\n border: 1px solid var(--border);\n background: var(--panel-soft);\n }\n .notice.ok { border-color: rgba(34, 197, 94, 0.32); }\n .notice.warn { border-color: rgba(245, 158, 11, 0.32); }\n .notice.fail { border-color: rgba(239, 68, 68, 0.32); }\n .summary-table, .data-table {\n width: 100%;\n border-collapse: collapse;\n }\n .summary-table th, .summary-table td, .data-table th, .data-table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--border);\n text-align: left;\n vertical-align: top;\n }\n .summary-table th, .data-table th { color: var(--muted); font-weight: 600; }\n .empty { color: var(--muted); text-align: center; }\n .footer-note { color: var(--muted); font-size: 13px; }\n @media (max-width: 900px) {\n body { padding: 12px; }\n .grid-two { grid-template-columns: 1fr; }\n }\n @media (prefers-color-scheme: light) {\n :root {\n color-scheme: light;\n --bg: #f9fafb;\n --panel: #ffffff;\n --panel-soft: #f3f4f6;\n --border: rgba(0, 0, 0, 0.1);\n --text: #111827;\n --muted: #6b7280;\n --ok: #16a34a;\n --warn: #d97706;\n --fail: #dc2626;\n --accent: #2563eb;\n }\n body {\n background: radial-gradient(circle at top, #e9f0ff 0%, var(--bg) 55%);\n color: var(--text);\n }\n .hero, .panel {\n background: rgba(255, 255, 255, 0.95);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);\n }\n .status.ok { color: #15803d; background: rgba(22, 163, 74, 0.1); border-color: rgba(22, 163, 74, 0.3); }\n .status.warn { color: #b45309; background: rgba(217, 119, 6, 0.1); border-color: rgba(217, 119, 6, 0.3); }\n .status.fail { color: #b91c1c; background: rgba(220, 38, 38, 0.1); border-color: rgba(220, 38, 38, 0.3); }\n }\n </style>\n</head>\n<body>\n <div class=\"shell\">\n <section class=\"hero\">\n <div class=\"hero-top\">\n <div>\n <div class=\"eyebrow\">AKM Health Report</div>\n <h1 class=\"title\">Knowledge Health for ${escapeHtml(window)}</h1>\n <p class=\"subtitle\">Generated from live <code>akm health</code> data in the current stack stash. This mirrors the existing AKM report shape with KPI cards, ECharts trends, advisories, and queue visibility.</p>\n </div>\n <div class=\"status ${escapeHtml(statusClass(status))}\">${escapeHtml(status)}</div>\n </div>\n <div class=\"meta\">\n <div class=\"meta-item\">\n <div class=\"meta-label\">Window</div>\n <div class=\"meta-value\">${escapeHtml(window)}</div>\n </div>\n <div class=\"meta-item\">\n <div class=\"meta-label\">Since</div>\n <div class=\"meta-value\">${escapeHtml(fmtUtc(since))}</div>\n </div>\n <div class=\"meta-item\">\n <div class=\"meta-label\">Until</div>\n <div class=\"meta-value\">${escapeHtml(fmtUtc(until))}</div>\n </div>\n <div class=\"meta-item\">\n <div class=\"meta-label\">Semantic search</div>\n <div class=\"meta-value\">${escapeHtml(semanticStatus)}</div>\n </div>\n </div>\n <div class=\"cards\">${buildCards(currentWindow, priorWindow, proposals.length)}</div>\n </section>\n\n <section class=\"panel\">\n <h2 class=\"panel-title\">Run Trends</h2>\n <div class=\"chart-grid\">\n <div id=\"chartWallTime\" class=\"chart\"></div>\n <div id=\"chartPhases\" class=\"chart\"></div>\n <div id=\"chartOutput\" class=\"chart\"></div>\n <div id=\"chartKnowledge\" class=\"chart\"></div>\n </div>\n </section>\n\n <section class=\"grid-two\">\n <div class=\"panel\">\n <h2 class=\"panel-title\">Summary</h2>\n <table class=\"summary-table\">\n <tbody>${buildSummaryRows(currentWindow)}</tbody>\n </table>\n </div>\n <div class=\"panel\">\n <h2 class=\"panel-title\">Advisories</h2>\n <div class=\"notice-list\">${buildAdvisories(health)}</div>\n </div>\n </section>\n\n <section class=\"grid-two\">\n <div class=\"panel\">\n <h2 class=\"panel-title\">Pending Proposals (${escapeHtml(fmtInt(proposals.length))})</h2>\n <table class=\"data-table\">\n <thead>\n <tr><th>Ref</th><th>Source</th><th>Created</th><th>ID</th></tr>\n </thead>\n <tbody>${buildProposalRows(proposals)}</tbody>\n </table>\n </div>\n <div class=\"panel\">\n <h2 class=\"panel-title\">Recent Runs</h2>\n <table class=\"data-table\">\n <thead>\n <tr><th>Run</th><th>Started</th><th>Duration</th><th>Status</th><th>Promoted</th><th>MI</th><th>Entities</th></tr>\n </thead>\n <tbody>${buildRunRows(runs)}</tbody>\n </table>\n </div>\n </section>\n\n <div class=\"footer-note\">Charts use Apache ECharts from jsDelivr. If the browser blocks external assets, the summary tables above remain the source of truth.</div>\n </div>\n\n <script>window.REPORT_DATA = ${scriptJson(payload)};<\\/script>\n <script src=\"https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js\"><\\/script>\n <script>\n const runs = Array.isArray(window.REPORT_DATA) ? window.REPORT_DATA : [];\n const textColor = '#dbe7ff';\n const mutedColor = '#93a4bf';\n const axisStyle = { axisLabel: { color: mutedColor }, axisLine: { lineStyle: { color: '#334155' } }, splitLine: { lineStyle: { color: 'rgba(148,163,184,0.12)' } } };\n function baseChart(id) {\n const el = document.getElementById(id);\n if (!el || !window.echarts) return null;\n return window.echarts.init(el, null, { renderer: 'canvas' });\n }\n function setEmpty(elId, label) {\n const el = document.getElementById(elId);\n if (!el) return;\n el.innerHTML = '<div style=\"height:100%;display:grid;place-items:center;color:' + mutedColor + ';font-size:14px;\">' + label + '</div>';\n }\n function labels() { return runs.map((run) => run.label); }\n if (!window.echarts) {\n ['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'ECharts failed to load.'));\n } else if (runs.length === 0) {\n ['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'No runs in this window.'));\n } else {\n const common = { textStyle: { color: textColor }, animation: false, grid: { left: 48, right: 18, top: 40, bottom: 36 }, tooltip: { trigger: 'axis' } };\n const wallTime = baseChart('chartWallTime');\n wallTime && wallTime.setOption({\n ...common,\n title: { text: 'Wall Time Per Run', textStyle: { color: textColor, fontSize: 14 } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },\n series: [{ type: 'line', smooth: true, data: runs.map((run) => run.wallTimeMs), lineStyle: { color: '#60a5fa' }, itemStyle: { color: '#60a5fa' }, areaStyle: { color: 'rgba(96,165,250,0.14)' } }]\n });\n\n const phases = baseChart('chartPhases');\n phases && phases.setOption({\n ...common,\n title: { text: 'Phase Breakdown', textStyle: { color: textColor, fontSize: 14 } },\n legend: { textStyle: { color: mutedColor } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },\n series: [\n { name: 'Consolidation', type: 'bar', stack: 'phases', data: runs.map((run) => run.consolidationMs), itemStyle: { color: '#60a5fa' } },\n { name: 'Memory Inference', type: 'bar', stack: 'phases', data: runs.map((run) => run.memoryInferenceMs), itemStyle: { color: '#a78bfa' } },\n { name: 'Graph Extraction', type: 'bar', stack: 'phases', data: runs.map((run) => run.graphExtractionMs), itemStyle: { color: '#34d399' } }\n ]\n });\n\n const output = baseChart('chartOutput');\n output && output.setOption({\n ...common,\n title: { text: 'Consolidation Output', textStyle: { color: textColor, fontSize: 14 } },\n legend: { textStyle: { color: mutedColor } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },\n series: [\n { name: 'Promoted', type: 'bar', data: runs.map((run) => run.promoted), itemStyle: { color: '#22c55e' } },\n { name: 'Merged', type: 'bar', data: runs.map((run) => run.merged), itemStyle: { color: '#f59e0b' } },\n { name: 'Deleted', type: 'bar', data: runs.map((run) => run.deleted), itemStyle: { color: '#ef4444' } },\n { name: 'No action', type: 'bar', data: runs.map((run) => run.judgedNoAction), itemStyle: { color: '#94a3b8' } }\n ]\n });\n\n const knowledge = baseChart('chartKnowledge');\n knowledge && knowledge.setOption({\n ...common,\n title: { text: 'Knowledge Growth Signals', textStyle: { color: textColor, fontSize: 14 } },\n legend: { textStyle: { color: mutedColor } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },\n series: [\n { name: 'MI written', type: 'line', smooth: true, data: runs.map((run) => run.written), itemStyle: { color: '#a78bfa' }, lineStyle: { color: '#a78bfa' } },\n { name: 'Entities', type: 'line', smooth: true, data: runs.map((run) => run.entities), itemStyle: { color: '#34d399' }, lineStyle: { color: '#34d399' } }\n ]\n });\n\n window.addEventListener('resize', () => {\n wallTime && wallTime.resize();\n phases && phases.resize();\n output && output.resize();\n knowledge && knowledge.resize();\n });\n }\n <\\/script>\n</body>\n</html>`;\n}\nasync function buildAkmHealthReport(state, requestedWindow) {\n\tconst window = clampWindow(requestedWindow);\n\tconst [healthResult, proposalsResult] = await Promise.all([runAkmCommand(state, [\n\t\t\"health\",\n\t\t`--since=${window}`,\n\t\t\"--group-by\",\n\t\t\"run\",\n\t\t`--window-compare=${window}`,\n\t\t\"--format\",\n\t\t\"json\"\n\t], 2e4), runAkmCommand(state, [\n\t\t\"proposal\",\n\t\t\"list\",\n\t\t\"--format\",\n\t\t\"json\"\n\t], 12e3)]);\n\tconst health = safeParseJsonObject(healthResult.stdout);\n\tconst proposalsPayload = safeParseJsonObject(proposalsResult.stdout);\n\tif (!health) {\n\t\tconst detail = [healthResult.stderr.trim(), healthResult.stdout.trim()].filter(Boolean).join(\"\\n\\n\");\n\t\treturn {\n\t\t\twindow,\n\t\t\thtml: `<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>AKM Health Report</title><style>body{margin:0;font-family:Inter,system-ui,sans-serif;background:#07111f;color:#e5eefc;padding:24px}main{max-width:860px;margin:0 auto;background:#101b2d;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:24px}pre{white-space:pre-wrap;background:#15233a;padding:16px;border-radius:12px;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,monospace}</style></head><body><main><h1>AKM health report unavailable</h1><p>The admin UI could not build the report from <code>akm health</code> for window <code>${escapeHtml(window)}</code>.</p><pre>${escapeHtml(detail || \"The AKM CLI returned no parseable JSON output.\")}</pre></main></body></html>`\n\t\t};\n\t}\n\treturn {\n\t\thtml: renderHtml(window, health, asArray(proposalsPayload?.proposals).map((item) => asRecord(item)).filter((item) => item !== null).map((item) => ({\n\t\t\tid: asString(item.id),\n\t\t\tref: asString(item.ref),\n\t\t\tsource: asString(item.source),\n\t\t\tcreatedAt: asString(item.createdAt)\n\t\t}))),\n\t\twindow\n\t};\n}\n//#endregion\n//#region src/routes/admin/akm/health-report/+server.ts\nvar REPORT_CSP = [\n\t\"default-src 'none'\",\n\t\"script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net\",\n\t\"style-src 'unsafe-inline'\",\n\t\"img-src 'self' data:\",\n\t\"font-src 'self' data:\",\n\t\"connect-src 'none'\",\n\t\"object-src 'none'\",\n\t\"base-uri 'none'\",\n\t\"form-action 'none'\",\n\t\"frame-ancestors 'self'\"\n].join(\"; \");\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\ttry {\n\t\tconst { html } = await buildAkmHealthReport(getState(), event.url.searchParams.get(\"since\"));\n\t\treturn new Response(html, {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/html; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-security-policy\": REPORT_CSP,\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : \"Failed to build AKM health report.\";\n\t\treturn new Response(message, {\n\t\t\tstatus: 500,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/plain; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACtE;AACA;AACA,2BAA2B,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACpF;AACA;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACvD;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;AAC/D;AACA;AACA,yBAAyB,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA,iCAAiC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;AAC3D;AACA;;AAEA;AACA;AACA,mDAAmD,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1F;AACA;AACA;AACA;AACA,iBAAiB,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;AACR;AACA,eAAe,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE;AAC5D,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE;AACjF,E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"}
1
+ {"version":3,"file":"_server.ts-B1Ka3iiX.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/admin/akm/health-report/_server.ts.js"],"sourcesContent":["import { t as getState } from \"../../../../../chunks/state.js\";\nimport { d as requireAdmin, o as getRequestId } from \"../../../../../chunks/helpers.js\";\nimport { n as runAkmCommand, r as safeParseJsonObject } from \"../../../../../chunks/akm.js\";\n//#region src/lib/server/akm-health-report.ts\nvar AKM_HEALTH_REPORT_WINDOWS = [\n\t\"24h\",\n\t\"72h\",\n\t\"7d\",\n\t\"14d\",\n\t\"30d\"\n];\nfunction asRecord(value) {\n\treturn value && typeof value === \"object\" && !Array.isArray(value) ? value : null;\n}\nfunction asArray(value) {\n\treturn Array.isArray(value) ? value : [];\n}\nfunction asNumber(value) {\n\treturn typeof value === \"number\" && Number.isFinite(value) ? value : 0;\n}\nfunction asString(value) {\n\treturn typeof value === \"string\" ? value : \"\";\n}\nfunction asBoolean(value) {\n\treturn value === true;\n}\nfunction clampWindow(value) {\n\treturn AKM_HEALTH_REPORT_WINDOWS.includes(value ?? \"\") ? value : \"72h\";\n}\nfunction escapeHtml(value) {\n\treturn value.replaceAll(\"&\", \"&amp;\").replaceAll(\"<\", \"&lt;\").replaceAll(\">\", \"&gt;\").replaceAll(\"\\\"\", \"&quot;\").replaceAll(\"'\", \"&#39;\");\n}\nfunction scriptJson(value) {\n\treturn JSON.stringify(value).replaceAll(\"<\", \"\\\\u003c\");\n}\nfunction fmtInt(value) {\n\treturn new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 0 }).format(value);\n}\nfunction fmtPercent(value) {\n\treturn `${(value * 100).toFixed(value === 0 || value >= .1 ? 0 : 1)}%`;\n}\nfunction fmtDuration(ms) {\n\tif (!Number.isFinite(ms) || ms <= 0) return \"0s\";\n\tif (ms < 1e3) return `${Math.round(ms)}ms`;\n\tconst seconds = ms / 1e3;\n\tif (seconds < 60) return `${seconds.toFixed(seconds >= 10 ? 0 : 1)}s`;\n\tconst minutes = Math.floor(seconds / 60);\n\tconst remSeconds = Math.round(seconds % 60);\n\tif (minutes < 60) return `${minutes}m ${remSeconds}s`;\n\treturn `${Math.floor(minutes / 60)}h ${minutes % 60}m`;\n}\nfunction fmtUtc(value) {\n\tif (!value) return \"n/a\";\n\tconst d = new Date(value);\n\tif (Number.isNaN(d.getTime())) return \"n/a\";\n\treturn d.toLocaleString(\"en-US\", {\n\t\tdateStyle: \"medium\",\n\t\ttimeStyle: \"short\",\n\t\ttimeZone: \"UTC\"\n\t}) + \" UTC\";\n}\nfunction metricDelta(current, prior) {\n\tif (prior === current) return \"flat vs prior window\";\n\tif (prior === 0) return current > 0 ? \"new vs prior window\" : \"flat vs prior window\";\n\tconst pct = (current - prior) / Math.abs(prior) * 100;\n\treturn `${pct > 0 ? \"up\" : \"down\"} ${Math.abs(pct).toFixed(Math.abs(pct) >= 10 ? 0 : 1)}% vs prior window`;\n}\nfunction statusClass(status) {\n\tif (status === \"ok\" || status === \"pass\") return \"ok\";\n\tif (status === \"warn\") return \"warn\";\n\treturn \"fail\";\n}\nfunction buildCards(current, prior, proposalCount) {\n\tconst invoked = asNumber(current.invoked);\n\tconst completed = asNumber(current.completed);\n\tconst completionRate = invoked > 0 ? completed / invoked : 0;\n\tconst failRate = asNumber(asRecord(current.actions)?.error) > 0 && invoked > 0 ? asNumber(asRecord(current.actions)?.error) / invoked : 0;\n\tconst promoted = asNumber(asRecord(current.consolidation)?.promoted);\n\tconst written = asNumber(asRecord(current.memoryInference)?.written);\n\tconst entities = asNumber(asRecord(current.graphExtraction)?.entities);\n\tconst medianMs = asNumber(asRecord(current.wallTime)?.medianMs);\n\tconst priorInvoked = asNumber(prior.invoked);\n\tconst priorCompleted = asNumber(prior.completed);\n\tconst priorCompletionRate = priorInvoked > 0 ? priorCompleted / priorInvoked : 0;\n\tconst priorFailRate = asNumber(asRecord(prior.actions)?.error) > 0 && priorInvoked > 0 ? asNumber(asRecord(prior.actions)?.error) / priorInvoked : 0;\n\treturn [\n\t\t{\n\t\t\tlabel: \"Completion rate\",\n\t\t\tvalue: fmtPercent(completionRate),\n\t\t\tsub: metricDelta(completionRate, priorCompletionRate)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Fail rate\",\n\t\t\tvalue: fmtPercent(failRate),\n\t\t\tsub: metricDelta(failRate, priorFailRate)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Promoted\",\n\t\t\tvalue: fmtInt(promoted),\n\t\t\tsub: metricDelta(promoted, asNumber(asRecord(prior.consolidation)?.promoted))\n\t\t},\n\t\t{\n\t\t\tlabel: \"MI written\",\n\t\t\tvalue: fmtInt(written),\n\t\t\tsub: metricDelta(written, asNumber(asRecord(prior.memoryInference)?.written))\n\t\t},\n\t\t{\n\t\t\tlabel: \"Graph entities\",\n\t\t\tvalue: fmtInt(entities),\n\t\t\tsub: metricDelta(entities, asNumber(asRecord(prior.graphExtraction)?.entities))\n\t\t},\n\t\t{\n\t\t\tlabel: \"Median duration\",\n\t\t\tvalue: fmtDuration(medianMs),\n\t\t\tsub: metricDelta(medianMs, asNumber(asRecord(prior.wallTime)?.medianMs))\n\t\t},\n\t\t{\n\t\t\tlabel: \"Runs\",\n\t\t\tvalue: fmtInt(completed),\n\t\t\tsub: metricDelta(completed, priorCompleted)\n\t\t},\n\t\t{\n\t\t\tlabel: \"Pending proposals\",\n\t\t\tvalue: fmtInt(proposalCount),\n\t\t\tsub: proposalCount > 0 ? \"review queue has pending items\" : \"no pending proposals\"\n\t\t}\n\t].map((card) => `\n <div class=\"card\">\n <div class=\"card-label\">${escapeHtml(card.label)}</div>\n <div class=\"card-value\">${escapeHtml(card.value)}</div>\n <div class=\"card-sub\">${escapeHtml(card.sub)}</div>\n </div>`).join(\"\");\n}\nfunction buildAdvisories(health) {\n\tconst items = [...asArray(health.advisories), ...asArray(health.hardChecks).filter((item) => {\n\t\tconst status = asString(asRecord(item)?.status);\n\t\treturn status === \"warn\" || status === \"fail\";\n\t})].map((item) => asRecord(item)).filter((item) => item !== null);\n\tif (items.length === 0) return \"<div class=\\\"notice ok\\\">No active advisories for this window.</div>\";\n\treturn items.map((item) => {\n\t\tconst status = statusClass(asString(item.status));\n\t\tconst name = asString(item.name) || \"advisory\";\n\t\tconst message = asString(item.message) || \"No details.\";\n\t\treturn `<div class=\"notice ${status}\"><strong>${escapeHtml(name)}</strong><span>${escapeHtml(message)}</span></div>`;\n\t}).join(\"\");\n}\nfunction buildProposalRows(proposals) {\n\tif (proposals.length === 0) return \"<tr><td colspan=\\\"4\\\" class=\\\"empty\\\">No pending proposals.</td></tr>\";\n\treturn proposals.slice(0, 20).map((proposal) => `\n <tr>\n <td>${escapeHtml(proposal.ref || proposal.id || \"unknown\")}</td>\n <td>${escapeHtml(proposal.source || \"unknown\")}</td>\n <td>${escapeHtml(fmtUtc(proposal.createdAt))}</td>\n <td>${escapeHtml(proposal.id || \"\")}</td>\n </tr>`).join(\"\");\n}\nfunction buildRunRows(runs) {\n\tif (runs.length === 0) return \"<tr><td colspan=\\\"6\\\" class=\\\"empty\\\">No improve runs in this window.</td></tr>\";\n\treturn runs.slice(-10).reverse().map((run, index) => {\n\t\tconst consolidation = asRecord(run.consolidation);\n\t\tconst memoryInference = asRecord(run.memoryInference);\n\t\tconst graphExtraction = asRecord(run.graphExtraction);\n\t\tconst startedAt = asString(run.startedAt);\n\t\tconst durationMs = asNumber(run.wallTimeMs) || asNumber(run.durationMs);\n\t\treturn `\n <tr>\n <td>${escapeHtml(asString(run.runId) || asString(run.id) || `run-${index + 1}`)}</td>\n <td>${escapeHtml(fmtUtc(startedAt))}</td>\n <td>${escapeHtml(fmtDuration(durationMs))}</td>\n <td>${escapeHtml(String(asBoolean(run.ok) ? \"ok\" : \"fail\"))}</td>\n <td>${escapeHtml(fmtInt(asNumber(consolidation?.promoted)))}</td>\n <td>${escapeHtml(fmtInt(asNumber(memoryInference?.written)))}</td>\n <td>${escapeHtml(fmtInt(asNumber(graphExtraction?.entities)))}</td>\n </tr>`;\n\t}).join(\"\");\n}\nfunction buildSummaryRows(current) {\n\treturn [\n\t\t[\"Invoked\", fmtInt(asNumber(current.invoked))],\n\t\t[\"Completed\", fmtInt(asNumber(current.completed))],\n\t\t[\"Skipped\", fmtInt(asNumber(current.skipped))],\n\t\t[\"Promoted\", fmtInt(asNumber(asRecord(current.consolidation)?.promoted))],\n\t\t[\"Merged\", fmtInt(asNumber(asRecord(current.consolidation)?.merged))],\n\t\t[\"Deleted\", fmtInt(asNumber(asRecord(current.consolidation)?.deleted))],\n\t\t[\"Judged no action\", fmtInt(asNumber(asRecord(current.consolidation)?.judgedNoAction))],\n\t\t[\"Inference written\", fmtInt(asNumber(asRecord(current.memoryInference)?.written))],\n\t\t[\"Graph entities\", fmtInt(asNumber(asRecord(current.graphExtraction)?.entities))],\n\t\t[\"Median wall time\", fmtDuration(asNumber(asRecord(current.wallTime)?.medianMs))]\n\t].map(([label, value]) => `\n <tr>\n <th>${escapeHtml(label)}</th>\n <td>${escapeHtml(value)}</td>\n </tr>`).join(\"\");\n}\nfunction renderHtml(window, health, proposals) {\n\tconst improve = asRecord(health.improve) ?? {};\n\tconst windows = asArray(health.windows).map((item) => asRecord(item)).filter((item) => item !== null);\n\tconst currentWindow = asRecord(windows.find((item) => asString(item.name) === \"current\")?.improve) ?? improve;\n\tconst priorWindow = asRecord(windows.find((item) => asString(item.name) === \"prior\")?.improve) ?? {};\n\tconst runs = asArray(health.runs).map((item) => asRecord(item)).filter((item) => item !== null);\n\tconst status = asString(health.status) || \"unknown\";\n\tconst since = asString(health.since);\n\tconst until = asString((windows.find((item) => asString(item.name) === \"current\") ?? {}).until);\n\tconst semanticStatus = asString(asRecord(asArray(health.advisories).map((item) => asRecord(item)).find((item) => asString(item?.name) === \"semantic-search-runtime\")?.evidence)?.status) || \"unknown\";\n\tconst payload = runs.map((run, index) => {\n\t\tconst consolidation = asRecord(run.consolidation);\n\t\tconst memoryInference = asRecord(run.memoryInference);\n\t\tconst graphExtraction = asRecord(run.graphExtraction);\n\t\treturn {\n\t\t\tlabel: asString(run.startedAt) ? fmtUtc(asString(run.startedAt)).replace(\" UTC\", \"\") : `Run ${index + 1}`,\n\t\t\twallTimeMs: asNumber(run.wallTimeMs) || asNumber(run.durationMs),\n\t\t\tpromoted: asNumber(consolidation?.promoted),\n\t\t\tmerged: asNumber(consolidation?.merged),\n\t\t\tdeleted: asNumber(consolidation?.deleted),\n\t\t\tjudgedNoAction: asNumber(consolidation?.judgedNoAction),\n\t\t\twritten: asNumber(memoryInference?.written),\n\t\t\tentities: asNumber(graphExtraction?.entities),\n\t\t\tconsolidationMs: asNumber(consolidation?.durationMs),\n\t\t\tmemoryInferenceMs: asNumber(memoryInference?.durationMs),\n\t\t\tgraphExtractionMs: asNumber(graphExtraction?.durationMs),\n\t\t\tok: asBoolean(run.ok)\n\t\t};\n\t});\n\treturn `<!doctype html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n <title>AKM Health Report (${escapeHtml(window)})</title>\n <style>\n :root {\n color-scheme: dark;\n --bg: #07111f;\n --panel: #101b2d;\n --panel-soft: #15233a;\n --border: rgba(148, 163, 184, 0.18);\n --text: #e5eefc;\n --muted: #93a4bf;\n --ok: #22c55e;\n --warn: #f59e0b;\n --fail: #ef4444;\n --accent: #60a5fa;\n }\n * { box-sizing: border-box; }\n body {\n margin: 0;\n font-family: Inter, ui-sans-serif, system-ui, sans-serif;\n background: radial-gradient(circle at top, #14233d 0%, var(--bg) 55%);\n color: var(--text);\n padding: 24px;\n }\n .shell {\n max-width: 1400px;\n margin: 0 auto;\n display: grid;\n gap: 20px;\n }\n .hero, .panel {\n background: rgba(16, 27, 45, 0.9);\n border: 1px solid var(--border);\n border-radius: 18px;\n box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);\n }\n .hero {\n padding: 24px;\n display: grid;\n gap: 16px;\n }\n .hero-top {\n display: flex;\n justify-content: space-between;\n gap: 16px;\n align-items: flex-start;\n flex-wrap: wrap;\n }\n h1, h2, h3, p { margin: 0; }\n .eyebrow { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }\n .title { font-size: clamp(28px, 4vw, 40px); font-weight: 700; }\n .subtitle { color: var(--muted); max-width: 80ch; }\n .status {\n border-radius: 999px;\n padding: 8px 12px;\n font-size: 12px;\n font-weight: 700;\n text-transform: uppercase;\n letter-spacing: 0.08em;\n border: 1px solid transparent;\n }\n .status.ok { color: #bbf7d0; background: rgba(34, 197, 94, 0.14); border-color: rgba(34, 197, 94, 0.32); }\n .status.warn { color: #fde68a; background: rgba(245, 158, 11, 0.14); border-color: rgba(245, 158, 11, 0.32); }\n .status.fail { color: #fecaca; background: rgba(239, 68, 68, 0.14); border-color: rgba(239, 68, 68, 0.32); }\n .meta {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 12px;\n }\n .meta-item, .card {\n background: var(--panel-soft);\n border: 1px solid var(--border);\n border-radius: 14px;\n padding: 14px;\n }\n .meta-label, .card-label { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }\n .meta-value, .card-value { margin-top: 8px; font-size: 22px; font-weight: 700; }\n .card-sub { margin-top: 8px; color: var(--muted); font-size: 13px; }\n .cards {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));\n gap: 12px;\n }\n .grid-two {\n display: grid;\n grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);\n gap: 20px;\n }\n .panel { padding: 18px; }\n .panel-title { font-size: 18px; font-weight: 700; margin-bottom: 14px; }\n .chart-grid {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));\n gap: 16px;\n }\n .chart {\n height: 320px;\n background: linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0));\n border: 1px solid var(--border);\n border-radius: 14px;\n }\n .notice-list {\n display: grid;\n gap: 10px;\n }\n .notice {\n display: grid;\n gap: 6px;\n border-radius: 14px;\n padding: 14px;\n border: 1px solid var(--border);\n background: var(--panel-soft);\n }\n .notice.ok { border-color: rgba(34, 197, 94, 0.32); }\n .notice.warn { border-color: rgba(245, 158, 11, 0.32); }\n .notice.fail { border-color: rgba(239, 68, 68, 0.32); }\n .summary-table, .data-table {\n width: 100%;\n border-collapse: collapse;\n }\n .summary-table th, .summary-table td, .data-table th, .data-table td {\n padding: 10px 12px;\n border-bottom: 1px solid var(--border);\n text-align: left;\n vertical-align: top;\n }\n .summary-table th, .data-table th { color: var(--muted); font-weight: 600; }\n .empty { color: var(--muted); text-align: center; }\n .footer-note { color: var(--muted); font-size: 13px; }\n @media (max-width: 900px) {\n body { padding: 12px; }\n .grid-two { grid-template-columns: 1fr; }\n }\n @media (prefers-color-scheme: light) {\n :root {\n color-scheme: light;\n --bg: #f9fafb;\n --panel: #ffffff;\n --panel-soft: #f3f4f6;\n --border: rgba(0, 0, 0, 0.1);\n --text: #111827;\n --muted: #6b7280;\n --ok: #16a34a;\n --warn: #d97706;\n --fail: #dc2626;\n --accent: #2563eb;\n }\n body {\n background: radial-gradient(circle at top, #e9f0ff 0%, var(--bg) 55%);\n color: var(--text);\n }\n .hero, .panel {\n background: rgba(255, 255, 255, 0.95);\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);\n }\n .status.ok { color: #15803d; background: rgba(22, 163, 74, 0.1); border-color: rgba(22, 163, 74, 0.3); }\n .status.warn { color: #b45309; background: rgba(217, 119, 6, 0.1); border-color: rgba(217, 119, 6, 0.3); }\n .status.fail { color: #b91c1c; background: rgba(220, 38, 38, 0.1); border-color: rgba(220, 38, 38, 0.3); }\n }\n </style>\n</head>\n<body>\n <div class=\"shell\">\n <section class=\"hero\">\n <div class=\"hero-top\">\n <div>\n <div class=\"eyebrow\">AKM Health Report</div>\n <h1 class=\"title\">Knowledge Health for ${escapeHtml(window)}</h1>\n <p class=\"subtitle\">Generated from live <code>akm health</code> data in the current stack stash. This mirrors the existing AKM report shape with KPI cards, ECharts trends, advisories, and queue visibility.</p>\n </div>\n <div class=\"status ${escapeHtml(statusClass(status))}\">${escapeHtml(status)}</div>\n </div>\n <div class=\"meta\">\n <div class=\"meta-item\">\n <div class=\"meta-label\">Window</div>\n <div class=\"meta-value\">${escapeHtml(window)}</div>\n </div>\n <div class=\"meta-item\">\n <div class=\"meta-label\">Since</div>\n <div class=\"meta-value\">${escapeHtml(fmtUtc(since))}</div>\n </div>\n <div class=\"meta-item\">\n <div class=\"meta-label\">Until</div>\n <div class=\"meta-value\">${escapeHtml(fmtUtc(until))}</div>\n </div>\n <div class=\"meta-item\">\n <div class=\"meta-label\">Semantic search</div>\n <div class=\"meta-value\">${escapeHtml(semanticStatus)}</div>\n </div>\n </div>\n <div class=\"cards\">${buildCards(currentWindow, priorWindow, proposals.length)}</div>\n </section>\n\n <section class=\"panel\">\n <h2 class=\"panel-title\">Run Trends</h2>\n <div class=\"chart-grid\">\n <div id=\"chartWallTime\" class=\"chart\"></div>\n <div id=\"chartPhases\" class=\"chart\"></div>\n <div id=\"chartOutput\" class=\"chart\"></div>\n <div id=\"chartKnowledge\" class=\"chart\"></div>\n </div>\n </section>\n\n <section class=\"grid-two\">\n <div class=\"panel\">\n <h2 class=\"panel-title\">Summary</h2>\n <table class=\"summary-table\">\n <tbody>${buildSummaryRows(currentWindow)}</tbody>\n </table>\n </div>\n <div class=\"panel\">\n <h2 class=\"panel-title\">Advisories</h2>\n <div class=\"notice-list\">${buildAdvisories(health)}</div>\n </div>\n </section>\n\n <section class=\"grid-two\">\n <div class=\"panel\">\n <h2 class=\"panel-title\">Pending Proposals (${escapeHtml(fmtInt(proposals.length))})</h2>\n <table class=\"data-table\">\n <thead>\n <tr><th>Ref</th><th>Source</th><th>Created</th><th>ID</th></tr>\n </thead>\n <tbody>${buildProposalRows(proposals)}</tbody>\n </table>\n </div>\n <div class=\"panel\">\n <h2 class=\"panel-title\">Recent Runs</h2>\n <table class=\"data-table\">\n <thead>\n <tr><th>Run</th><th>Started</th><th>Duration</th><th>Status</th><th>Promoted</th><th>MI</th><th>Entities</th></tr>\n </thead>\n <tbody>${buildRunRows(runs)}</tbody>\n </table>\n </div>\n </section>\n\n <div class=\"footer-note\">Charts use Apache ECharts from jsDelivr. If the browser blocks external assets, the summary tables above remain the source of truth.</div>\n </div>\n\n <script>window.REPORT_DATA = ${scriptJson(payload)};<\\/script>\n <script src=\"https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js\"><\\/script>\n <script>\n const runs = Array.isArray(window.REPORT_DATA) ? window.REPORT_DATA : [];\n const textColor = '#dbe7ff';\n const mutedColor = '#93a4bf';\n const axisStyle = { axisLabel: { color: mutedColor }, axisLine: { lineStyle: { color: '#334155' } }, splitLine: { lineStyle: { color: 'rgba(148,163,184,0.12)' } } };\n function baseChart(id) {\n const el = document.getElementById(id);\n if (!el || !window.echarts) return null;\n return window.echarts.init(el, null, { renderer: 'canvas' });\n }\n function setEmpty(elId, label) {\n const el = document.getElementById(elId);\n if (!el) return;\n el.innerHTML = '<div style=\"height:100%;display:grid;place-items:center;color:' + mutedColor + ';font-size:14px;\">' + label + '</div>';\n }\n function labels() { return runs.map((run) => run.label); }\n if (!window.echarts) {\n ['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'ECharts failed to load.'));\n } else if (runs.length === 0) {\n ['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'No runs in this window.'));\n } else {\n const common = { textStyle: { color: textColor }, animation: false, grid: { left: 48, right: 18, top: 40, bottom: 36 }, tooltip: { trigger: 'axis' } };\n const wallTime = baseChart('chartWallTime');\n wallTime && wallTime.setOption({\n ...common,\n title: { text: 'Wall Time Per Run', textStyle: { color: textColor, fontSize: 14 } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },\n series: [{ type: 'line', smooth: true, data: runs.map((run) => run.wallTimeMs), lineStyle: { color: '#60a5fa' }, itemStyle: { color: '#60a5fa' }, areaStyle: { color: 'rgba(96,165,250,0.14)' } }]\n });\n\n const phases = baseChart('chartPhases');\n phases && phases.setOption({\n ...common,\n title: { text: 'Phase Breakdown', textStyle: { color: textColor, fontSize: 14 } },\n legend: { textStyle: { color: mutedColor } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },\n series: [\n { name: 'Consolidation', type: 'bar', stack: 'phases', data: runs.map((run) => run.consolidationMs), itemStyle: { color: '#60a5fa' } },\n { name: 'Memory Inference', type: 'bar', stack: 'phases', data: runs.map((run) => run.memoryInferenceMs), itemStyle: { color: '#a78bfa' } },\n { name: 'Graph Extraction', type: 'bar', stack: 'phases', data: runs.map((run) => run.graphExtractionMs), itemStyle: { color: '#34d399' } }\n ]\n });\n\n const output = baseChart('chartOutput');\n output && output.setOption({\n ...common,\n title: { text: 'Consolidation Output', textStyle: { color: textColor, fontSize: 14 } },\n legend: { textStyle: { color: mutedColor } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },\n series: [\n { name: 'Promoted', type: 'bar', data: runs.map((run) => run.promoted), itemStyle: { color: '#22c55e' } },\n { name: 'Merged', type: 'bar', data: runs.map((run) => run.merged), itemStyle: { color: '#f59e0b' } },\n { name: 'Deleted', type: 'bar', data: runs.map((run) => run.deleted), itemStyle: { color: '#ef4444' } },\n { name: 'No action', type: 'bar', data: runs.map((run) => run.judgedNoAction), itemStyle: { color: '#94a3b8' } }\n ]\n });\n\n const knowledge = baseChart('chartKnowledge');\n knowledge && knowledge.setOption({\n ...common,\n title: { text: 'Knowledge Growth Signals', textStyle: { color: textColor, fontSize: 14 } },\n legend: { textStyle: { color: mutedColor } },\n xAxis: { type: 'category', data: labels(), ...axisStyle },\n yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },\n series: [\n { name: 'MI written', type: 'line', smooth: true, data: runs.map((run) => run.written), itemStyle: { color: '#a78bfa' }, lineStyle: { color: '#a78bfa' } },\n { name: 'Entities', type: 'line', smooth: true, data: runs.map((run) => run.entities), itemStyle: { color: '#34d399' }, lineStyle: { color: '#34d399' } }\n ]\n });\n\n window.addEventListener('resize', () => {\n wallTime && wallTime.resize();\n phases && phases.resize();\n output && output.resize();\n knowledge && knowledge.resize();\n });\n }\n <\\/script>\n</body>\n</html>`;\n}\nasync function buildAkmHealthReport(state, requestedWindow) {\n\tconst window = clampWindow(requestedWindow);\n\tconst [healthResult, proposalsResult] = await Promise.all([runAkmCommand(state, [\n\t\t\"health\",\n\t\t`--since=${window}`,\n\t\t\"--group-by\",\n\t\t\"run\",\n\t\t`--window-compare=${window}`,\n\t\t\"--format\",\n\t\t\"json\"\n\t], 2e4), runAkmCommand(state, [\n\t\t\"proposal\",\n\t\t\"list\",\n\t\t\"--format\",\n\t\t\"json\"\n\t], 12e3)]);\n\tconst health = safeParseJsonObject(healthResult.stdout);\n\tconst proposalsPayload = safeParseJsonObject(proposalsResult.stdout);\n\tif (!health) {\n\t\tconst detail = [healthResult.stderr.trim(), healthResult.stdout.trim()].filter(Boolean).join(\"\\n\\n\");\n\t\treturn {\n\t\t\twindow,\n\t\t\thtml: `<!doctype html><html lang=\"en\"><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><title>AKM Health Report</title><style>body{margin:0;font-family:Inter,system-ui,sans-serif;background:#07111f;color:#e5eefc;padding:24px}main{max-width:860px;margin:0 auto;background:#101b2d;border:1px solid rgba(148,163,184,.18);border-radius:18px;padding:24px}pre{white-space:pre-wrap;background:#15233a;padding:16px;border-radius:12px;overflow:auto}code{font-family:ui-monospace,SFMono-Regular,monospace}</style></head><body><main><h1>AKM health report unavailable</h1><p>The admin UI could not build the report from <code>akm health</code> for window <code>${escapeHtml(window)}</code>.</p><pre>${escapeHtml(detail || \"The AKM CLI returned no parseable JSON output.\")}</pre></main></body></html>`\n\t\t};\n\t}\n\treturn {\n\t\thtml: renderHtml(window, health, asArray(proposalsPayload?.proposals).map((item) => asRecord(item)).filter((item) => item !== null).map((item) => ({\n\t\t\tid: asString(item.id),\n\t\t\tref: asString(item.ref),\n\t\t\tsource: asString(item.source),\n\t\t\tcreatedAt: asString(item.createdAt)\n\t\t}))),\n\t\twindow\n\t};\n}\n//#endregion\n//#region src/routes/admin/akm/health-report/+server.ts\nvar REPORT_CSP = [\n\t\"default-src 'none'\",\n\t\"script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net\",\n\t\"style-src 'unsafe-inline'\",\n\t\"img-src 'self' data:\",\n\t\"font-src 'self' data:\",\n\t\"connect-src 'none'\",\n\t\"object-src 'none'\",\n\t\"base-uri 'none'\",\n\t\"form-action 'none'\",\n\t\"frame-ancestors 'self'\"\n].join(\"; \");\nvar GET = async (event) => {\n\tconst requestId = getRequestId(event);\n\tconst denied = requireAdmin(event, requestId);\n\tif (denied) return denied;\n\ttry {\n\t\tconst { html } = await buildAkmHealthReport(getState(), event.url.searchParams.get(\"since\"));\n\t\treturn new Response(html, {\n\t\t\tstatus: 200,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/html; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"content-security-policy\": REPORT_CSP,\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : \"Failed to build AKM health report.\";\n\t\treturn new Response(message, {\n\t\t\tstatus: 500,\n\t\t\theaders: {\n\t\t\t\t\"content-type\": \"text/plain; charset=utf-8\",\n\t\t\t\t\"cache-control\": \"no-store\",\n\t\t\t\t\"x-request-id\": requestId\n\t\t\t}\n\t\t});\n\t}\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":"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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACtE;AACA;AACA,2BAA2B,EAAE,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACpF;AACA;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;AACvD;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;AAC9D;AACA;AACA;AACA,kCAAkC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;AAC/D;AACA;AACA,yBAAyB,EAAE,UAAU,CAAC,aAAa,EAAE,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC;AACpF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,gBAAgB,CAAC,aAAa,CAAC,CAAC;AACnD;AACA;AACA;AACA;AACA,iCAAiC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;AAC3D;AACA;;AAEA;AACA;AACA,mDAAmD,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;AAC1F;AACA;AACA;AACA;AACA,iBAAiB,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;AACtC;AACA;AACA;;AAEA;AACA;;AAEA,+BAA+B,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,CAAC;AACR;AACA,eAAe,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE;AAC5D,CAAC,MAAM,MAAM,GAAG,WAAW,CAAC,eAAe,CAAC;AAC5C,CAAC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,aAAa,CAAC,KAAK,EAAE;AACjF,E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"}
@@ -1,7 +1,7 @@
1
1
  import { j as json } from './exports-D1quPX8S.js';
2
- import { r as requireAdmin, d as getRequestId } from './helpers-DEWuEDi5.js';
2
+ import { r as requireAdmin, d as getRequestId } from './helpers-Be-wOei2.js';
3
3
  import './utils-BSRjJDrZ.js';
4
- import './src-CHZNd5cO.js';
4
+ import './src-BEj0DuSB.js';
5
5
  import './chunk-CLZ62Ad-.js';
6
6
  import 'node:module';
7
7
  import './provider-constants-DPrj3yBX.js';
@@ -23,8 +23,8 @@ import 'zlib';
23
23
  import 'node:assert';
24
24
  import 'node:fs/promises';
25
25
  import 'node:os';
26
- import './endpoints-CVaZyXGR.js';
27
- import './state-BcQ5v_Ye.js';
26
+ import './endpoints-1byh0xs8.js';
27
+ import './state-DAPDF26p.js';
28
28
 
29
29
  //#region src/routes/admin/versions/ui/+server.ts
30
30
  var UI_PACKAGE = "@openpalm/ui";
@@ -82,4 +82,4 @@ var GET = async (event) => {
82
82
  };
83
83
 
84
84
  export { GET };
85
- //# sourceMappingURL=_server.ts-Dbnh0OAK.js.map
85
+ //# sourceMappingURL=_server.ts-B25xvhiX.js.map