@openpalm/ui 0.11.5-rc.3 → 0.11.5-rc.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/build/.openpalm-ui-version +1 -1
  2. package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css +1 -0
  3. package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.br +0 -0
  4. package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.gz +0 -0
  5. package/build/client/_app/immutable/assets/7.BzioASK3.css +1 -0
  6. package/build/client/_app/immutable/assets/7.BzioASK3.css.br +0 -0
  7. package/build/client/_app/immutable/assets/7.BzioASK3.css.gz +0 -0
  8. package/build/client/_app/immutable/assets/ChatMessage.nPUEFb-s.css +1 -0
  9. package/build/client/_app/immutable/assets/ChatMessage.nPUEFb-s.css.br +0 -0
  10. package/build/client/_app/immutable/assets/ChatMessage.nPUEFb-s.css.gz +0 -0
  11. package/build/client/_app/immutable/chunks/B0yFRekZ.js +3 -0
  12. package/build/client/_app/immutable/chunks/B0yFRekZ.js.br +0 -0
  13. package/build/client/_app/immutable/chunks/B0yFRekZ.js.gz +0 -0
  14. package/build/client/_app/immutable/chunks/{BQ0vnNWj.js → BAaXfhM-.js} +1 -1
  15. package/build/client/_app/immutable/chunks/BAaXfhM-.js.br +0 -0
  16. package/build/client/_app/immutable/chunks/BAaXfhM-.js.gz +0 -0
  17. package/build/client/_app/immutable/chunks/BTrxgLOM.js +1 -0
  18. package/build/client/_app/immutable/chunks/BTrxgLOM.js.br +2 -0
  19. package/build/client/_app/immutable/chunks/BTrxgLOM.js.gz +0 -0
  20. package/build/client/_app/immutable/chunks/{irujFCsS.js → B_FOicoS.js} +1 -1
  21. package/build/client/_app/immutable/chunks/B_FOicoS.js.br +0 -0
  22. package/build/client/_app/immutable/chunks/B_FOicoS.js.gz +0 -0
  23. package/build/client/_app/immutable/chunks/CDYZd3Dt.js +1 -0
  24. package/build/client/_app/immutable/chunks/CDYZd3Dt.js.br +1 -0
  25. package/build/client/_app/immutable/chunks/CDYZd3Dt.js.gz +0 -0
  26. package/build/client/_app/immutable/chunks/CVWppHrm.js +16 -0
  27. package/build/client/_app/immutable/chunks/CVWppHrm.js.br +0 -0
  28. package/build/client/_app/immutable/chunks/CVWppHrm.js.gz +0 -0
  29. package/build/client/_app/immutable/chunks/DYcHS_qY.js +5 -0
  30. package/build/client/_app/immutable/chunks/DYcHS_qY.js.br +0 -0
  31. package/build/client/_app/immutable/chunks/DYcHS_qY.js.gz +0 -0
  32. package/build/client/_app/immutable/chunks/{CDS1U3lf.js → HsxQhp5A.js} +2 -2
  33. package/build/client/_app/immutable/chunks/HsxQhp5A.js.br +0 -0
  34. package/build/client/_app/immutable/chunks/HsxQhp5A.js.gz +0 -0
  35. package/build/client/_app/immutable/chunks/{BTsRblfw.js → hgikw-Qd.js} +1 -1
  36. package/build/client/_app/immutable/chunks/hgikw-Qd.js.br +0 -0
  37. package/build/client/_app/immutable/chunks/hgikw-Qd.js.gz +0 -0
  38. package/build/client/_app/immutable/chunks/xtI7_jDL.js +1 -0
  39. package/build/client/_app/immutable/chunks/xtI7_jDL.js.br +0 -0
  40. package/build/client/_app/immutable/chunks/xtI7_jDL.js.gz +0 -0
  41. package/build/client/_app/immutable/entry/app.DtY5C9pR.js +2 -0
  42. package/build/client/_app/immutable/entry/app.DtY5C9pR.js.br +0 -0
  43. package/build/client/_app/immutable/entry/app.DtY5C9pR.js.gz +0 -0
  44. package/build/client/_app/immutable/entry/start.CmS1dlrE.js +1 -0
  45. package/build/client/_app/immutable/entry/start.CmS1dlrE.js.br +0 -0
  46. package/build/client/_app/immutable/entry/start.CmS1dlrE.js.gz +0 -0
  47. package/build/client/_app/immutable/nodes/0.CeRyHcWC.js +1 -0
  48. package/build/client/_app/immutable/nodes/0.CeRyHcWC.js.br +0 -0
  49. package/build/client/_app/immutable/nodes/0.CeRyHcWC.js.gz +0 -0
  50. package/build/client/_app/immutable/nodes/1.BIqfJFCb.js +1 -0
  51. package/build/client/_app/immutable/nodes/1.BIqfJFCb.js.br +1 -1
  52. package/build/client/_app/immutable/nodes/1.BIqfJFCb.js.gz +0 -0
  53. package/build/client/_app/immutable/nodes/2.C-MzgTuq.js +1 -0
  54. package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.br +0 -0
  55. package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.gz +0 -0
  56. package/build/client/_app/immutable/nodes/3.DXmMKZyn.js +1 -0
  57. package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.br +0 -0
  58. package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.gz +0 -0
  59. package/build/client/_app/immutable/nodes/4.h8N33vpx.js +19 -0
  60. package/build/client/_app/immutable/nodes/4.h8N33vpx.js.br +0 -0
  61. package/build/client/_app/immutable/nodes/4.h8N33vpx.js.gz +0 -0
  62. package/build/client/_app/immutable/nodes/5.B2qtGelf.js +4 -0
  63. package/build/client/_app/immutable/nodes/5.B2qtGelf.js.br +0 -0
  64. package/build/client/_app/immutable/nodes/5.B2qtGelf.js.gz +0 -0
  65. package/build/client/_app/immutable/nodes/6.DrYb30Cc.js +1 -0
  66. package/build/client/_app/immutable/nodes/6.DrYb30Cc.js.br +0 -0
  67. package/build/client/_app/immutable/nodes/6.DrYb30Cc.js.gz +0 -0
  68. package/build/client/_app/immutable/nodes/7.CrDhK7am.js +1 -0
  69. package/build/client/_app/immutable/nodes/7.CrDhK7am.js.br +0 -0
  70. package/build/client/_app/immutable/nodes/7.CrDhK7am.js.gz +0 -0
  71. package/build/client/_app/immutable/nodes/8.CKAtL-gx.js +1 -0
  72. package/build/client/_app/immutable/nodes/8.CKAtL-gx.js.br +0 -0
  73. package/build/client/_app/immutable/nodes/8.CKAtL-gx.js.gz +0 -0
  74. package/build/client/_app/immutable/nodes/9.B1IAKpfH.js +5 -0
  75. package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.br +0 -0
  76. package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.gz +0 -0
  77. package/build/client/_app/version.json +1 -1
  78. package/build/client/_app/version.json.br +1 -1
  79. package/build/client/_app/version.json.gz +0 -0
  80. package/build/server/chunks/0-sfmVs00_.js +9 -0
  81. package/build/server/chunks/{0-BGsPZcaQ.js.map → 0-sfmVs00_.js.map} +1 -1
  82. package/build/server/chunks/1-BQlukPTN.js +9 -0
  83. package/build/server/chunks/{1-Daoybjaw.js.map → 1-BQlukPTN.js.map} +1 -1
  84. package/build/server/chunks/{2-DQWoUtW1.js → 2-wNOz2qR7.js} +2 -2
  85. package/build/server/chunks/{2-DQWoUtW1.js.map → 2-wNOz2qR7.js.map} +1 -1
  86. package/build/server/chunks/{3-COIGgysA.js → 3-CMcVVZ5t.js} +2 -2
  87. package/build/server/chunks/{3-COIGgysA.js.map → 3-CMcVVZ5t.js.map} +1 -1
  88. package/build/server/chunks/4-C79a4Yto.js +9 -0
  89. package/build/server/chunks/4-C79a4Yto.js.map +1 -0
  90. package/build/server/chunks/5-D7eeN25a.js +9 -0
  91. package/build/server/chunks/{5-BfmhtNP9.js.map → 5-D7eeN25a.js.map} +1 -1
  92. package/build/server/chunks/6-Dg79fiQc.js +9 -0
  93. package/build/server/chunks/{6-AcylLX8-.js.map → 6-Dg79fiQc.js.map} +1 -1
  94. package/build/server/chunks/7-DTavGKhw.js +9 -0
  95. package/build/server/chunks/7-DTavGKhw.js.map +1 -0
  96. package/build/server/chunks/{8-DMgWQQBm.js → 8-B0FQ5gh5.js} +3 -3
  97. package/build/server/chunks/{8-DMgWQQBm.js.map → 8-B0FQ5gh5.js.map} +1 -1
  98. package/build/server/chunks/{9-CGVsBC0_.js → 9-BCmr-315.js} +2 -2
  99. package/build/server/chunks/{9-CGVsBC0_.js.map → 9-BCmr-315.js.map} +1 -1
  100. package/build/server/chunks/{_page.svelte-C0eMsRDk.js → ChatMessage-CzW3dV57.js} +73 -105
  101. package/build/server/chunks/ChatMessage-CzW3dV57.js.map +1 -0
  102. package/build/server/chunks/{Navbar-C9kE6wR-.js → Navbar-EBUPxUnS.js} +670 -142
  103. package/build/server/chunks/Navbar-EBUPxUnS.js.map +1 -0
  104. package/build/server/chunks/{_layout.svelte-DCfzq18z.js → _layout.svelte-e5vEwOWj.js} +2 -2
  105. package/build/server/chunks/{_layout.svelte-DCfzq18z.js.map → _layout.svelte-e5vEwOWj.js.map} +1 -1
  106. package/build/server/chunks/_page.svelte-CScIJqid.js +252 -0
  107. package/build/server/chunks/_page.svelte-CScIJqid.js.map +1 -0
  108. package/build/server/chunks/{_page.svelte-Dl3WoXNo.js → _page.svelte-CXGT7iVI.js} +251 -15
  109. package/build/server/chunks/_page.svelte-CXGT7iVI.js.map +1 -0
  110. package/build/server/chunks/{_page.svelte-B3FJ13Ci.js → _page.svelte-Dc9YczvY.js} +6 -6
  111. package/build/server/chunks/{_page.svelte-B3FJ13Ci.js.map → _page.svelte-Dc9YczvY.js.map} +1 -1
  112. package/build/server/chunks/{_page.svelte-Dnt12F6c.js → _page.svelte-Dq0B2wTX.js} +9 -7
  113. package/build/server/chunks/_page.svelte-Dq0B2wTX.js.map +1 -0
  114. package/build/server/chunks/{_page.svelte-BA7DptUV.js → _page.svelte-Du_FGvId.js} +3 -3
  115. package/build/server/chunks/{_page.svelte-BA7DptUV.js.map → _page.svelte-Du_FGvId.js.map} +1 -1
  116. package/build/server/chunks/{_server.ts-CVxiERfc.js → _server.ts--ajZwgpx.js} +4 -4
  117. package/build/server/chunks/{_server.ts-CVxiERfc.js.map → _server.ts--ajZwgpx.js.map} +1 -1
  118. package/build/server/chunks/{_server.ts-Gbkg-oto.js → _server.ts-B-YtpFZv.js} +4 -4
  119. package/build/server/chunks/{_server.ts-Gbkg-oto.js.map → _server.ts-B-YtpFZv.js.map} +1 -1
  120. package/build/server/chunks/{_server.ts-CbOKfJ3v.js → _server.ts-B3n_KrVi.js} +6 -6
  121. package/build/server/chunks/{_server.ts-CbOKfJ3v.js.map → _server.ts-B3n_KrVi.js.map} +1 -1
  122. package/build/server/chunks/{_server.ts-D3QPUpDc.js → _server.ts-B8JGa5NB.js} +4 -4
  123. package/build/server/chunks/{_server.ts-D3QPUpDc.js.map → _server.ts-B8JGa5NB.js.map} +1 -1
  124. package/build/server/chunks/{_server.ts-DsTUwnu1.js → _server.ts-B8vW8q3-.js} +4 -4
  125. package/build/server/chunks/{_server.ts-DsTUwnu1.js.map → _server.ts-B8vW8q3-.js.map} +1 -1
  126. package/build/server/chunks/{_server.ts-CreuvDch.js → _server.ts-BCivjDa1.js} +4 -4
  127. package/build/server/chunks/{_server.ts-CreuvDch.js.map → _server.ts-BCivjDa1.js.map} +1 -1
  128. package/build/server/chunks/{_server.ts-BGqa6Laa.js → _server.ts-BGMXMZ3f.js} +4 -4
  129. package/build/server/chunks/_server.ts-BGMXMZ3f.js.map +1 -0
  130. package/build/server/chunks/{_server.ts-B8YF9aVx.js → _server.ts-BG_3Aam5.js} +4 -4
  131. package/build/server/chunks/{_server.ts-B8YF9aVx.js.map → _server.ts-BG_3Aam5.js.map} +1 -1
  132. package/build/server/chunks/{_server.ts-CqH3nv-S.js → _server.ts-BQlauqG7.js} +5 -5
  133. package/build/server/chunks/{_server.ts-CqH3nv-S.js.map → _server.ts-BQlauqG7.js.map} +1 -1
  134. package/build/server/chunks/{_server.ts-Dd4Mh0JV.js → _server.ts-BQtDb5rW.js} +4 -4
  135. package/build/server/chunks/{_server.ts-Dd4Mh0JV.js.map → _server.ts-BQtDb5rW.js.map} +1 -1
  136. package/build/server/chunks/{_server.ts-BdLKHRnY.js → _server.ts-BTFsY3ns.js} +6 -6
  137. package/build/server/chunks/{_server.ts-BdLKHRnY.js.map → _server.ts-BTFsY3ns.js.map} +1 -1
  138. package/build/server/chunks/{_server.ts-3JO3CKsE.js → _server.ts-BUuhZLQW.js} +4 -4
  139. package/build/server/chunks/{_server.ts-3JO3CKsE.js.map → _server.ts-BUuhZLQW.js.map} +1 -1
  140. package/build/server/chunks/{_server.ts-D8cp-Em3.js → _server.ts-BYHQLzIU.js} +4 -4
  141. package/build/server/chunks/{_server.ts-D8cp-Em3.js.map → _server.ts-BYHQLzIU.js.map} +1 -1
  142. package/build/server/chunks/{_server.ts-DzIilMO5.js → _server.ts-BYNejrbv.js} +2 -2
  143. package/build/server/chunks/{_server.ts-DzIilMO5.js.map → _server.ts-BYNejrbv.js.map} +1 -1
  144. package/build/server/chunks/{_server.ts-CdB1K2M6.js → _server.ts-BZNECWdo.js} +2 -2
  145. package/build/server/chunks/{_server.ts-CdB1K2M6.js.map → _server.ts-BZNECWdo.js.map} +1 -1
  146. package/build/server/chunks/{_server.ts-B31I037d.js → _server.ts-Bd95fWI2.js} +6 -6
  147. package/build/server/chunks/{_server.ts-B31I037d.js.map → _server.ts-Bd95fWI2.js.map} +1 -1
  148. package/build/server/chunks/{_server.ts-SLlbT28g.js → _server.ts-BdyV0_Is.js} +2 -2
  149. package/build/server/chunks/{_server.ts-SLlbT28g.js.map → _server.ts-BdyV0_Is.js.map} +1 -1
  150. package/build/server/chunks/{_server.ts-CH8uRkxq.js → _server.ts-BfXe8M8I.js} +4 -4
  151. package/build/server/chunks/{_server.ts-CH8uRkxq.js.map → _server.ts-BfXe8M8I.js.map} +1 -1
  152. package/build/server/chunks/{_server.ts-B8EZxkK3.js → _server.ts-BglWcbgl.js} +5 -5
  153. package/build/server/chunks/{_server.ts-B8EZxkK3.js.map → _server.ts-BglWcbgl.js.map} +1 -1
  154. package/build/server/chunks/{_server.ts-BvbnbZsl.js → _server.ts-BhduAFwe.js} +4 -4
  155. package/build/server/chunks/{_server.ts-BvbnbZsl.js.map → _server.ts-BhduAFwe.js.map} +1 -1
  156. package/build/server/chunks/{_server.ts-C8BrkC8T.js → _server.ts-Bi7Kdi9Z.js} +5 -5
  157. package/build/server/chunks/{_server.ts-C8BrkC8T.js.map → _server.ts-Bi7Kdi9Z.js.map} +1 -1
  158. package/build/server/chunks/{_server.ts-pQ9okj_b.js → _server.ts-BnCNI_5v.js} +6 -6
  159. package/build/server/chunks/{_server.ts-pQ9okj_b.js.map → _server.ts-BnCNI_5v.js.map} +1 -1
  160. package/build/server/chunks/{_server.ts-CtltE_T-.js → _server.ts-Bttq5XEc.js} +2 -2
  161. package/build/server/chunks/{_server.ts-CtltE_T-.js.map → _server.ts-Bttq5XEc.js.map} +1 -1
  162. package/build/server/chunks/{_server.ts-CpJ08_Lw.js → _server.ts-C0gphQE8.js} +4 -4
  163. package/build/server/chunks/{_server.ts-CpJ08_Lw.js.map → _server.ts-C0gphQE8.js.map} +1 -1
  164. package/build/server/chunks/{_server.ts-DL9hlvL8.js → _server.ts-C0p_epYa.js} +4 -4
  165. package/build/server/chunks/{_server.ts-DL9hlvL8.js.map → _server.ts-C0p_epYa.js.map} +1 -1
  166. package/build/server/chunks/{_server.ts-CXI7k8hl.js → _server.ts-CBW-iSGY.js} +4 -4
  167. package/build/server/chunks/{_server.ts-CXI7k8hl.js.map → _server.ts-CBW-iSGY.js.map} +1 -1
  168. package/build/server/chunks/{_server.ts-BhRtn8Xn.js → _server.ts-CBYhHA1_.js} +4 -4
  169. package/build/server/chunks/{_server.ts-BhRtn8Xn.js.map → _server.ts-CBYhHA1_.js.map} +1 -1
  170. package/build/server/chunks/{_server.ts-CX2sHcZR.js → _server.ts-CFjN9JNk.js} +4 -4
  171. package/build/server/chunks/{_server.ts-CX2sHcZR.js.map → _server.ts-CFjN9JNk.js.map} +1 -1
  172. package/build/server/chunks/{_server.ts-CIEz-ybk.js → _server.ts-CHd9_WPs.js} +4 -4
  173. package/build/server/chunks/{_server.ts-CIEz-ybk.js.map → _server.ts-CHd9_WPs.js.map} +1 -1
  174. package/build/server/chunks/{_server.ts-4HorMS2R.js → _server.ts-CKqIuso7.js} +4 -4
  175. package/build/server/chunks/{_server.ts-4HorMS2R.js.map → _server.ts-CKqIuso7.js.map} +1 -1
  176. package/build/server/chunks/{_server.ts-DLVGDzlE.js → _server.ts-CObmPmDw.js} +4 -4
  177. package/build/server/chunks/{_server.ts-DLVGDzlE.js.map → _server.ts-CObmPmDw.js.map} +1 -1
  178. package/build/server/chunks/{_server.ts-MGn-MXr5.js → _server.ts-CQn6OWsw.js} +4 -4
  179. package/build/server/chunks/{_server.ts-MGn-MXr5.js.map → _server.ts-CQn6OWsw.js.map} +1 -1
  180. package/build/server/chunks/{_server.ts-BWtTOsFi.js → _server.ts-CQucsScY.js} +4 -4
  181. package/build/server/chunks/{_server.ts-BWtTOsFi.js.map → _server.ts-CQucsScY.js.map} +1 -1
  182. package/build/server/chunks/{_server.ts-B3ntDGZM.js → _server.ts-CZMBEF_P.js} +5 -5
  183. package/build/server/chunks/{_server.ts-B3ntDGZM.js.map → _server.ts-CZMBEF_P.js.map} +1 -1
  184. package/build/server/chunks/_server.ts-Cay6JJmu.js +205 -0
  185. package/build/server/chunks/_server.ts-Cay6JJmu.js.map +1 -0
  186. package/build/server/chunks/_server.ts-Cdq-yzqP.js +627 -0
  187. package/build/server/chunks/_server.ts-Cdq-yzqP.js.map +1 -0
  188. package/build/server/chunks/{_server.ts-1mdOjWEN.js → _server.ts-Ch8LouSG.js} +5 -5
  189. package/build/server/chunks/{_server.ts-1mdOjWEN.js.map → _server.ts-Ch8LouSG.js.map} +1 -1
  190. package/build/server/chunks/{_server.ts-B1Jl9Grz.js → _server.ts-Cmi0m_Ec.js} +4 -4
  191. package/build/server/chunks/{_server.ts-B1Jl9Grz.js.map → _server.ts-Cmi0m_Ec.js.map} +1 -1
  192. package/build/server/chunks/{_server.ts-Bq4Oko-2.js → _server.ts-CmshKmzd.js} +4 -4
  193. package/build/server/chunks/{_server.ts-Bq4Oko-2.js.map → _server.ts-CmshKmzd.js.map} +1 -1
  194. package/build/server/chunks/{_server.ts-C7K7bv8w.js → _server.ts-CoIWXJLt.js} +5 -5
  195. package/build/server/chunks/{_server.ts-C7K7bv8w.js.map → _server.ts-CoIWXJLt.js.map} +1 -1
  196. package/build/server/chunks/{_server.ts-E5YqcwqQ.js → _server.ts-CqviakL3.js} +4 -4
  197. package/build/server/chunks/{_server.ts-E5YqcwqQ.js.map → _server.ts-CqviakL3.js.map} +1 -1
  198. package/build/server/chunks/_server.ts-CrK5Xjnh.js +86 -0
  199. package/build/server/chunks/_server.ts-CrK5Xjnh.js.map +1 -0
  200. package/build/server/chunks/{_server.ts-BLUm8wAq.js → _server.ts-CsUJia-4.js} +4 -4
  201. package/build/server/chunks/{_server.ts-BLUm8wAq.js.map → _server.ts-CsUJia-4.js.map} +1 -1
  202. package/build/server/chunks/{_server.ts-BY7nR9Ev.js → _server.ts-CtqksBun.js} +4 -4
  203. package/build/server/chunks/{_server.ts-BY7nR9Ev.js.map → _server.ts-CtqksBun.js.map} +1 -1
  204. package/build/server/chunks/{_server.ts-IzD0bafW.js → _server.ts-CuFSHsdA.js} +5 -5
  205. package/build/server/chunks/{_server.ts-IzD0bafW.js.map → _server.ts-CuFSHsdA.js.map} +1 -1
  206. package/build/server/chunks/{_server.ts-CzoE8edN.js → _server.ts-CvBgeFp9.js} +5 -5
  207. package/build/server/chunks/{_server.ts-CzoE8edN.js.map → _server.ts-CvBgeFp9.js.map} +1 -1
  208. package/build/server/chunks/{_server.ts-DY3ZDXdA.js → _server.ts-CxOokd6P.js} +4 -4
  209. package/build/server/chunks/{_server.ts-DY3ZDXdA.js.map → _server.ts-CxOokd6P.js.map} +1 -1
  210. package/build/server/chunks/{_server.ts-Bu_7eQaL.js → _server.ts-CxpkPdkw.js} +5 -5
  211. package/build/server/chunks/{_server.ts-Bu_7eQaL.js.map → _server.ts-CxpkPdkw.js.map} +1 -1
  212. package/build/server/chunks/{_server.ts-BUIWPYRF.js → _server.ts-D-hh_BTK.js} +4 -4
  213. package/build/server/chunks/{_server.ts-BUIWPYRF.js.map → _server.ts-D-hh_BTK.js.map} +1 -1
  214. package/build/server/chunks/{_server.ts-D-Vwef5C.js → _server.ts-D064BG7i.js} +4 -4
  215. package/build/server/chunks/{_server.ts-D-Vwef5C.js.map → _server.ts-D064BG7i.js.map} +1 -1
  216. package/build/server/chunks/{_server.ts-DVRyf5BI.js → _server.ts-D0fThJEL.js} +4 -4
  217. package/build/server/chunks/{_server.ts-DVRyf5BI.js.map → _server.ts-D0fThJEL.js.map} +1 -1
  218. package/build/server/chunks/{_server.ts-CExwMomX.js → _server.ts-D4QpYVnk.js} +4 -4
  219. package/build/server/chunks/{_server.ts-CExwMomX.js.map → _server.ts-D4QpYVnk.js.map} +1 -1
  220. package/build/server/chunks/{_server.ts-DHBX6Ary.js → _server.ts-DABvBtNg.js} +5 -5
  221. package/build/server/chunks/{_server.ts-DHBX6Ary.js.map → _server.ts-DABvBtNg.js.map} +1 -1
  222. package/build/server/chunks/{_server.ts-BHmCir74.js → _server.ts-DBD7W3nM.js} +4 -4
  223. package/build/server/chunks/{_server.ts-BHmCir74.js.map → _server.ts-DBD7W3nM.js.map} +1 -1
  224. package/build/server/chunks/{_server.ts-C_EnHMEu.js → _server.ts-DDhNa_X1.js} +4 -4
  225. package/build/server/chunks/{_server.ts-C_EnHMEu.js.map → _server.ts-DDhNa_X1.js.map} +1 -1
  226. package/build/server/chunks/{_server.ts-Dc9XEMmF.js → _server.ts-DFBxMXVv.js} +4 -4
  227. package/build/server/chunks/{_server.ts-Dc9XEMmF.js.map → _server.ts-DFBxMXVv.js.map} +1 -1
  228. package/build/server/chunks/{_server.ts-DlwXpopR.js → _server.ts-DLS_wObr.js} +3 -3
  229. package/build/server/chunks/{_server.ts-DlwXpopR.js.map → _server.ts-DLS_wObr.js.map} +1 -1
  230. package/build/server/chunks/{_server.ts-Lzz9ashZ.js → _server.ts-DTlXzoMP.js} +4 -4
  231. package/build/server/chunks/{_server.ts-Lzz9ashZ.js.map → _server.ts-DTlXzoMP.js.map} +1 -1
  232. package/build/server/chunks/{_server.ts-Do5L_4tt.js → _server.ts-Dicprv7A.js} +4 -4
  233. package/build/server/chunks/{_server.ts-Do5L_4tt.js.map → _server.ts-Dicprv7A.js.map} +1 -1
  234. package/build/server/chunks/{_server.ts-CD-Cddqe.js → _server.ts-DooshvGc.js} +5 -5
  235. package/build/server/chunks/{_server.ts-CD-Cddqe.js.map → _server.ts-DooshvGc.js.map} +1 -1
  236. package/build/server/chunks/{_server.ts-j5xF-dJX.js → _server.ts-DpnQQsEi.js} +4 -4
  237. package/build/server/chunks/{_server.ts-j5xF-dJX.js.map → _server.ts-DpnQQsEi.js.map} +1 -1
  238. package/build/server/chunks/{_server.ts-CXmwf1pu.js → _server.ts-DqnxZoKV.js} +2 -2
  239. package/build/server/chunks/{_server.ts-CXmwf1pu.js.map → _server.ts-DqnxZoKV.js.map} +1 -1
  240. package/build/server/chunks/{_server.ts-DPC8qYUD.js → _server.ts-DwH287WQ.js} +4 -4
  241. package/build/server/chunks/{_server.ts-DPC8qYUD.js.map → _server.ts-DwH287WQ.js.map} +1 -1
  242. package/build/server/chunks/{_server.ts-CHQmAGEC.js → _server.ts-SA9d0x_K.js} +5 -5
  243. package/build/server/chunks/{_server.ts-CHQmAGEC.js.map → _server.ts-SA9d0x_K.js.map} +1 -1
  244. package/build/server/chunks/{_server.ts-C4pf3VKi.js → _server.ts-TS_ttjdr.js} +4 -4
  245. package/build/server/chunks/{_server.ts-C4pf3VKi.js.map → _server.ts-TS_ttjdr.js.map} +1 -1
  246. package/build/server/chunks/{_server.ts-BEjyvkVV.js → _server.ts-VtDFzmOm.js} +4 -4
  247. package/build/server/chunks/{_server.ts-BEjyvkVV.js.map → _server.ts-VtDFzmOm.js.map} +1 -1
  248. package/build/server/chunks/_server.ts-Y57oqscW.js +48 -0
  249. package/build/server/chunks/_server.ts-Y57oqscW.js.map +1 -0
  250. package/build/server/chunks/{_server.ts-CeeR1W32.js → _server.ts-YHGTRtDD.js} +4 -4
  251. package/build/server/chunks/{_server.ts-CeeR1W32.js.map → _server.ts-YHGTRtDD.js.map} +1 -1
  252. package/build/server/chunks/{_server.ts-CciSVwzg.js → _server.ts-Zu8ZTux3.js} +5 -5
  253. package/build/server/chunks/{_server.ts-CciSVwzg.js.map → _server.ts-Zu8ZTux3.js.map} +1 -1
  254. package/build/server/chunks/{_server.ts-CNLz6iJ7.js → _server.ts-_lxrLHOI.js} +4 -4
  255. package/build/server/chunks/{_server.ts-CNLz6iJ7.js.map → _server.ts-_lxrLHOI.js.map} +1 -1
  256. package/build/server/chunks/{_server.ts-BTvZB-WH.js → _server.ts-dBLS5OxC.js} +4 -4
  257. package/build/server/chunks/{_server.ts-BTvZB-WH.js.map → _server.ts-dBLS5OxC.js.map} +1 -1
  258. package/build/server/chunks/{_server.ts-ykNeG8km.js → _server.ts-jUybF0F9.js} +4 -4
  259. package/build/server/chunks/{_server.ts-ykNeG8km.js.map → _server.ts-jUybF0F9.js.map} +1 -1
  260. package/build/server/chunks/{_server.ts-C8zFV8J3.js → _server.ts-mFCCnU2f.js} +4 -4
  261. package/build/server/chunks/{_server.ts-C8zFV8J3.js.map → _server.ts-mFCCnU2f.js.map} +1 -1
  262. package/build/server/chunks/{_server.ts-yWBMi6sn.js → _server.ts-nOJLfmaj.js} +6 -6
  263. package/build/server/chunks/{_server.ts-yWBMi6sn.js.map → _server.ts-nOJLfmaj.js.map} +1 -1
  264. package/build/server/chunks/{_server.ts-DAW24-9-.js → _server.ts-pJgm08Ns.js} +4 -4
  265. package/build/server/chunks/{_server.ts-DAW24-9-.js.map → _server.ts-pJgm08Ns.js.map} +1 -1
  266. package/build/server/chunks/{_server.ts-BNJn20vV.js → _server.ts-vuXd3nrT.js} +4 -4
  267. package/build/server/chunks/{_server.ts-BNJn20vV.js.map → _server.ts-vuXd3nrT.js.map} +1 -1
  268. package/build/server/chunks/{_server.ts-QvBpEIYu.js → _server.ts-wKN3c9Bs.js} +4 -4
  269. package/build/server/chunks/{_server.ts-QvBpEIYu.js.map → _server.ts-wKN3c9Bs.js.map} +1 -1
  270. package/build/server/chunks/{addon-helpers-DBJL8kvq.js → addon-helpers-D3GJCulD.js} +3 -3
  271. package/build/server/chunks/{addon-helpers-DBJL8kvq.js.map → addon-helpers-D3GJCulD.js.map} +1 -1
  272. package/build/server/chunks/{akm-hO0p79ZE.js → akm-B_BIZJJv.js} +2 -2
  273. package/build/server/chunks/{akm-hO0p79ZE.js.map → akm-B_BIZJJv.js.map} +1 -1
  274. package/build/server/chunks/{client-DchoQXpW.js → client-DuNIsVic.js} +2 -2
  275. package/build/server/chunks/{client-DchoQXpW.js.map → client-DuNIsVic.js.map} +1 -1
  276. package/build/server/chunks/{config-5vfdWPGq.js → config-UnF5M7J6.js} +2 -2
  277. package/build/server/chunks/{config-5vfdWPGq.js.map → config-UnF5M7J6.js.map} +1 -1
  278. package/build/server/chunks/{docker-DYeytgDI.js → docker-DmrYwY_e.js} +2 -2
  279. package/build/server/chunks/{docker-DYeytgDI.js.map → docker-DmrYwY_e.js.map} +1 -1
  280. package/build/server/chunks/{endpoints-pIoXJCW6.js → endpoints-D6uoesB9.js} +19 -6
  281. package/build/server/chunks/endpoints-D6uoesB9.js.map +1 -0
  282. package/build/server/chunks/{environment-B0PbsX5P.js → environment-C9HyCxX9.js} +2 -2
  283. package/build/server/chunks/{environment-B0PbsX5P.js.map → environment-C9HyCxX9.js.map} +1 -1
  284. package/build/server/chunks/{error.svelte-Cmr7gpdL.js → error.svelte-BajT8v3i.js} +4 -4
  285. package/build/server/chunks/{error.svelte-Cmr7gpdL.js.map → error.svelte-BajT8v3i.js.map} +1 -1
  286. package/build/server/chunks/{helpers-CVirrNSz.js → helpers-zCNRvZpT.js} +3 -3
  287. package/build/server/chunks/{helpers-CVirrNSz.js.map → helpers-zCNRvZpT.js.map} +1 -1
  288. package/build/server/chunks/{hooks.server-pc-TSpQy.js → hooks.server-BKK-8Ct6.js} +6 -6
  289. package/build/server/chunks/hooks.server-BKK-8Ct6.js.map +1 -0
  290. package/build/server/chunks/{http-DGsfa0DV.js → http-Cm-sRzTa.js} +2 -2
  291. package/build/server/chunks/{http-DGsfa0DV.js.map → http-Cm-sRzTa.js.map} +1 -1
  292. package/build/server/chunks/{internal-DriC3vi3.js → internal-LXD6a4Om.js} +3 -3
  293. package/build/server/chunks/{internal-DriC3vi3.js.map → internal-LXD6a4Om.js.map} +1 -1
  294. package/build/server/chunks/{session-cookie-DEuOwtHY.js → session-cookie-CoF3FU_0.js} +2 -2
  295. package/build/server/chunks/{session-cookie-DEuOwtHY.js.map → session-cookie-CoF3FU_0.js.map} +1 -1
  296. package/build/server/chunks/{setup-deploy-D4bnmfpV.js → setup-deploy-CVYxUJZD.js} +2 -2
  297. package/build/server/chunks/{setup-deploy-D4bnmfpV.js.map → setup-deploy-CVYxUJZD.js.map} +1 -1
  298. package/build/server/chunks/{src-CyeWH4Df.js → src-efp8mb8-.js} +567 -81
  299. package/build/server/chunks/src-efp8mb8-.js.map +1 -0
  300. package/build/server/chunks/{state-BcUnjLg5.js → state-z9dl5k8n.js} +2 -2
  301. package/build/server/chunks/{state-BcUnjLg5.js.map → state-z9dl5k8n.js.map} +1 -1
  302. package/build/server/chunks/{theme-state.svelte-CeABRes-.js → theme-state.svelte-BNtUaCD7.js} +119 -20
  303. package/build/server/chunks/theme-state.svelte-BNtUaCD7.js.map +1 -0
  304. package/build/server/index.js +2 -2
  305. package/build/server/manifest.js +106 -85
  306. package/build/server/manifest.js.map +1 -1
  307. package/package.json +3 -2
  308. package/build/client/_app/immutable/assets/4.BFLRjZM9.css +0 -1
  309. package/build/client/_app/immutable/assets/4.BFLRjZM9.css.br +0 -0
  310. package/build/client/_app/immutable/assets/4.BFLRjZM9.css.gz +0 -0
  311. package/build/client/_app/immutable/assets/7.DKl0e2Fb.css +0 -1
  312. package/build/client/_app/immutable/assets/7.DKl0e2Fb.css.br +0 -0
  313. package/build/client/_app/immutable/assets/7.DKl0e2Fb.css.gz +0 -0
  314. package/build/client/_app/immutable/chunks/0swOyi-5.js +0 -3
  315. package/build/client/_app/immutable/chunks/0swOyi-5.js.br +0 -0
  316. package/build/client/_app/immutable/chunks/0swOyi-5.js.gz +0 -0
  317. package/build/client/_app/immutable/chunks/B4LSIsxy.js +0 -1
  318. package/build/client/_app/immutable/chunks/B4LSIsxy.js.br +0 -2
  319. package/build/client/_app/immutable/chunks/B4LSIsxy.js.gz +0 -0
  320. package/build/client/_app/immutable/chunks/BQ0vnNWj.js.br +0 -1
  321. package/build/client/_app/immutable/chunks/BQ0vnNWj.js.gz +0 -0
  322. package/build/client/_app/immutable/chunks/BTsRblfw.js.br +0 -0
  323. package/build/client/_app/immutable/chunks/BTsRblfw.js.gz +0 -0
  324. package/build/client/_app/immutable/chunks/Bmfn2m9N.js +0 -1
  325. package/build/client/_app/immutable/chunks/Bmfn2m9N.js.br +0 -1
  326. package/build/client/_app/immutable/chunks/Bmfn2m9N.js.gz +0 -0
  327. package/build/client/_app/immutable/chunks/C-9oV3QK.js +0 -1
  328. package/build/client/_app/immutable/chunks/C-9oV3QK.js.br +0 -0
  329. package/build/client/_app/immutable/chunks/C-9oV3QK.js.gz +0 -0
  330. package/build/client/_app/immutable/chunks/CDS1U3lf.js.br +0 -0
  331. package/build/client/_app/immutable/chunks/CDS1U3lf.js.gz +0 -0
  332. package/build/client/_app/immutable/chunks/TM1MyO6b.js +0 -5
  333. package/build/client/_app/immutable/chunks/TM1MyO6b.js.br +0 -0
  334. package/build/client/_app/immutable/chunks/TM1MyO6b.js.gz +0 -0
  335. package/build/client/_app/immutable/chunks/irujFCsS.js.br +0 -0
  336. package/build/client/_app/immutable/chunks/irujFCsS.js.gz +0 -0
  337. package/build/client/_app/immutable/entry/app.j4FjlmJV.js +0 -2
  338. package/build/client/_app/immutable/entry/app.j4FjlmJV.js.br +0 -0
  339. package/build/client/_app/immutable/entry/app.j4FjlmJV.js.gz +0 -0
  340. package/build/client/_app/immutable/entry/start.BG0VgQz3.js +0 -1
  341. package/build/client/_app/immutable/entry/start.BG0VgQz3.js.br +0 -1
  342. package/build/client/_app/immutable/entry/start.BG0VgQz3.js.gz +0 -0
  343. package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js +0 -1
  344. package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.br +0 -0
  345. package/build/client/_app/immutable/nodes/0.C7eQ_ow9.js.gz +0 -0
  346. package/build/client/_app/immutable/nodes/1.DOderKqv.js +0 -1
  347. package/build/client/_app/immutable/nodes/1.DOderKqv.js.br +0 -1
  348. package/build/client/_app/immutable/nodes/1.DOderKqv.js.gz +0 -0
  349. package/build/client/_app/immutable/nodes/2.B-8ehRO1.js +0 -1
  350. package/build/client/_app/immutable/nodes/2.B-8ehRO1.js.br +0 -0
  351. package/build/client/_app/immutable/nodes/2.B-8ehRO1.js.gz +0 -0
  352. package/build/client/_app/immutable/nodes/3.B_FXzjZB.js +0 -1
  353. package/build/client/_app/immutable/nodes/3.B_FXzjZB.js.br +0 -0
  354. package/build/client/_app/immutable/nodes/3.B_FXzjZB.js.gz +0 -0
  355. package/build/client/_app/immutable/nodes/4.CL9pbPfw.js +0 -19
  356. package/build/client/_app/immutable/nodes/4.CL9pbPfw.js.br +0 -0
  357. package/build/client/_app/immutable/nodes/4.CL9pbPfw.js.gz +0 -0
  358. package/build/client/_app/immutable/nodes/5.By0afU0Y.js +0 -4
  359. package/build/client/_app/immutable/nodes/5.By0afU0Y.js.br +0 -0
  360. package/build/client/_app/immutable/nodes/5.By0afU0Y.js.gz +0 -0
  361. package/build/client/_app/immutable/nodes/6.BnWmdf6t.js +0 -1
  362. package/build/client/_app/immutable/nodes/6.BnWmdf6t.js.br +0 -0
  363. package/build/client/_app/immutable/nodes/6.BnWmdf6t.js.gz +0 -0
  364. package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js +0 -15
  365. package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js.br +0 -0
  366. package/build/client/_app/immutable/nodes/7.RAc8_3qJ.js.gz +0 -0
  367. package/build/client/_app/immutable/nodes/8.Dytsowyk.js +0 -1
  368. package/build/client/_app/immutable/nodes/8.Dytsowyk.js.br +0 -0
  369. package/build/client/_app/immutable/nodes/8.Dytsowyk.js.gz +0 -0
  370. package/build/client/_app/immutable/nodes/9.CFQabEMi.js +0 -5
  371. package/build/client/_app/immutable/nodes/9.CFQabEMi.js.br +0 -0
  372. package/build/client/_app/immutable/nodes/9.CFQabEMi.js.gz +0 -0
  373. package/build/server/chunks/0-BGsPZcaQ.js +0 -9
  374. package/build/server/chunks/1-Daoybjaw.js +0 -9
  375. package/build/server/chunks/4-Lm1O6Rmh.js +0 -9
  376. package/build/server/chunks/4-Lm1O6Rmh.js.map +0 -1
  377. package/build/server/chunks/5-BfmhtNP9.js +0 -9
  378. package/build/server/chunks/6-AcylLX8-.js +0 -9
  379. package/build/server/chunks/7-BT0zxD9E.js +0 -9
  380. package/build/server/chunks/7-BT0zxD9E.js.map +0 -1
  381. package/build/server/chunks/Navbar-C9kE6wR-.js.map +0 -1
  382. package/build/server/chunks/_page.svelte-C0eMsRDk.js.map +0 -1
  383. package/build/server/chunks/_page.svelte-Dl3WoXNo.js.map +0 -1
  384. package/build/server/chunks/_page.svelte-Dnt12F6c.js.map +0 -1
  385. package/build/server/chunks/_server.ts-B79PxL9c.js +0 -91
  386. package/build/server/chunks/_server.ts-B79PxL9c.js.map +0 -1
  387. package/build/server/chunks/_server.ts-BGqa6Laa.js.map +0 -1
  388. package/build/server/chunks/endpoints-pIoXJCW6.js.map +0 -1
  389. package/build/server/chunks/hooks.server-pc-TSpQy.js.map +0 -1
  390. package/build/server/chunks/src-CyeWH4Df.js.map +0 -1
  391. package/build/server/chunks/theme-state.svelte-CeABRes-.js.map +0 -1
@@ -0,0 +1,627 @@
1
+ import { b as getState } from './endpoints-D6uoesB9.js';
2
+ import { d as getRequestId, r as requireAdmin } from './helpers-zCNRvZpT.js';
3
+ import { r as runAkmCommand, s as safeParseJsonObject } from './akm-B_BIZJJv.js';
4
+ import './src-efp8mb8-.js';
5
+ import './chunk-CLZ62Ad-.js';
6
+ import 'node:module';
7
+ import 'node:fs';
8
+ import 'node:path';
9
+ import 'buffer';
10
+ import 'node:os';
11
+ import 'fs';
12
+ import 'path';
13
+ import 'node:child_process';
14
+ import 'node:url';
15
+ import 'node:crypto';
16
+ import 'events';
17
+ import 'node:events';
18
+ import 'node:stream';
19
+ import 'node:string_decoder';
20
+ import 'assert';
21
+ import 'zlib';
22
+ import 'node:assert';
23
+ import 'node:fs/promises';
24
+
25
+ //#region src/lib/server/akm-health-report.ts
26
+ var AKM_HEALTH_REPORT_WINDOWS = [
27
+ "24h",
28
+ "72h",
29
+ "7d",
30
+ "14d",
31
+ "30d"
32
+ ];
33
+ function asRecord(value) {
34
+ return value && typeof value === "object" && !Array.isArray(value) ? value : null;
35
+ }
36
+ function asArray(value) {
37
+ return Array.isArray(value) ? value : [];
38
+ }
39
+ function asNumber(value) {
40
+ return typeof value === "number" && Number.isFinite(value) ? value : 0;
41
+ }
42
+ function asString(value) {
43
+ return typeof value === "string" ? value : "";
44
+ }
45
+ function asBoolean(value) {
46
+ return value === true;
47
+ }
48
+ function clampWindow(value) {
49
+ return AKM_HEALTH_REPORT_WINDOWS.includes(value ?? "") ? value : "72h";
50
+ }
51
+ function escapeHtml(value) {
52
+ return value.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;").replaceAll("\"", "&quot;").replaceAll("'", "&#39;");
53
+ }
54
+ function scriptJson(value) {
55
+ return JSON.stringify(value).replaceAll("<", "\\u003c");
56
+ }
57
+ function fmtInt(value) {
58
+ return new Intl.NumberFormat("en-US", { maximumFractionDigits: 0 }).format(value);
59
+ }
60
+ function fmtPercent(value) {
61
+ return `${(value * 100).toFixed(value === 0 || value >= .1 ? 0 : 1)}%`;
62
+ }
63
+ function fmtDuration(ms) {
64
+ if (!Number.isFinite(ms) || ms <= 0) return "0s";
65
+ if (ms < 1e3) return `${Math.round(ms)}ms`;
66
+ const seconds = ms / 1e3;
67
+ if (seconds < 60) return `${seconds.toFixed(seconds >= 10 ? 0 : 1)}s`;
68
+ const minutes = Math.floor(seconds / 60);
69
+ const remSeconds = Math.round(seconds % 60);
70
+ if (minutes < 60) return `${minutes}m ${remSeconds}s`;
71
+ return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
72
+ }
73
+ function fmtUtc(value) {
74
+ if (!value) return "n/a";
75
+ const d = new Date(value);
76
+ if (Number.isNaN(d.getTime())) return "n/a";
77
+ return d.toLocaleString("en-US", {
78
+ dateStyle: "medium",
79
+ timeStyle: "short",
80
+ timeZone: "UTC"
81
+ }) + " UTC";
82
+ }
83
+ function metricDelta(current, prior) {
84
+ if (prior === current) return "flat vs prior window";
85
+ if (prior === 0) return current > 0 ? "new vs prior window" : "flat vs prior window";
86
+ const pct = (current - prior) / Math.abs(prior) * 100;
87
+ return `${pct > 0 ? "up" : "down"} ${Math.abs(pct).toFixed(Math.abs(pct) >= 10 ? 0 : 1)}% vs prior window`;
88
+ }
89
+ function statusClass(status) {
90
+ if (status === "ok" || status === "pass") return "ok";
91
+ if (status === "warn") return "warn";
92
+ return "fail";
93
+ }
94
+ function buildCards(current, prior, proposalCount) {
95
+ const invoked = asNumber(current.invoked);
96
+ const completed = asNumber(current.completed);
97
+ const completionRate = invoked > 0 ? completed / invoked : 0;
98
+ const failRate = asNumber(asRecord(current.actions)?.error) > 0 && invoked > 0 ? asNumber(asRecord(current.actions)?.error) / invoked : 0;
99
+ const promoted = asNumber(asRecord(current.consolidation)?.promoted);
100
+ const written = asNumber(asRecord(current.memoryInference)?.written);
101
+ const entities = asNumber(asRecord(current.graphExtraction)?.entities);
102
+ const medianMs = asNumber(asRecord(current.wallTime)?.medianMs);
103
+ const priorInvoked = asNumber(prior.invoked);
104
+ const priorCompleted = asNumber(prior.completed);
105
+ const priorCompletionRate = priorInvoked > 0 ? priorCompleted / priorInvoked : 0;
106
+ const priorFailRate = asNumber(asRecord(prior.actions)?.error) > 0 && priorInvoked > 0 ? asNumber(asRecord(prior.actions)?.error) / priorInvoked : 0;
107
+ return [
108
+ {
109
+ label: "Completion rate",
110
+ value: fmtPercent(completionRate),
111
+ sub: metricDelta(completionRate, priorCompletionRate)
112
+ },
113
+ {
114
+ label: "Fail rate",
115
+ value: fmtPercent(failRate),
116
+ sub: metricDelta(failRate, priorFailRate)
117
+ },
118
+ {
119
+ label: "Promoted",
120
+ value: fmtInt(promoted),
121
+ sub: metricDelta(promoted, asNumber(asRecord(prior.consolidation)?.promoted))
122
+ },
123
+ {
124
+ label: "MI written",
125
+ value: fmtInt(written),
126
+ sub: metricDelta(written, asNumber(asRecord(prior.memoryInference)?.written))
127
+ },
128
+ {
129
+ label: "Graph entities",
130
+ value: fmtInt(entities),
131
+ sub: metricDelta(entities, asNumber(asRecord(prior.graphExtraction)?.entities))
132
+ },
133
+ {
134
+ label: "Median duration",
135
+ value: fmtDuration(medianMs),
136
+ sub: metricDelta(medianMs, asNumber(asRecord(prior.wallTime)?.medianMs))
137
+ },
138
+ {
139
+ label: "Runs",
140
+ value: fmtInt(completed),
141
+ sub: metricDelta(completed, priorCompleted)
142
+ },
143
+ {
144
+ label: "Pending proposals",
145
+ value: fmtInt(proposalCount),
146
+ sub: proposalCount > 0 ? "review queue has pending items" : "no pending proposals"
147
+ }
148
+ ].map((card) => `
149
+ <div class="card">
150
+ <div class="card-label">${escapeHtml(card.label)}</div>
151
+ <div class="card-value">${escapeHtml(card.value)}</div>
152
+ <div class="card-sub">${escapeHtml(card.sub)}</div>
153
+ </div>`).join("");
154
+ }
155
+ function buildAdvisories(health) {
156
+ const items = [...asArray(health.advisories), ...asArray(health.hardChecks).filter((item) => {
157
+ const status = asString(asRecord(item)?.status);
158
+ return status === "warn" || status === "fail";
159
+ })].map((item) => asRecord(item)).filter((item) => item !== null);
160
+ if (items.length === 0) return "<div class=\"notice ok\">No active advisories for this window.</div>";
161
+ return items.map((item) => {
162
+ const status = statusClass(asString(item.status));
163
+ const name = asString(item.name) || "advisory";
164
+ const message = asString(item.message) || "No details.";
165
+ return `<div class="notice ${status}"><strong>${escapeHtml(name)}</strong><span>${escapeHtml(message)}</span></div>`;
166
+ }).join("");
167
+ }
168
+ function buildProposalRows(proposals) {
169
+ if (proposals.length === 0) return "<tr><td colspan=\"4\" class=\"empty\">No pending proposals.</td></tr>";
170
+ return proposals.slice(0, 20).map((proposal) => `
171
+ <tr>
172
+ <td>${escapeHtml(proposal.ref || proposal.id || "unknown")}</td>
173
+ <td>${escapeHtml(proposal.source || "unknown")}</td>
174
+ <td>${escapeHtml(fmtUtc(proposal.createdAt))}</td>
175
+ <td>${escapeHtml(proposal.id || "")}</td>
176
+ </tr>`).join("");
177
+ }
178
+ function buildRunRows(runs) {
179
+ if (runs.length === 0) return "<tr><td colspan=\"6\" class=\"empty\">No improve runs in this window.</td></tr>";
180
+ return runs.slice(-10).reverse().map((run, index) => {
181
+ const consolidation = asRecord(run.consolidation);
182
+ const memoryInference = asRecord(run.memoryInference);
183
+ const graphExtraction = asRecord(run.graphExtraction);
184
+ const startedAt = asString(run.startedAt);
185
+ const durationMs = asNumber(run.wallTimeMs) || asNumber(run.durationMs);
186
+ return `
187
+ <tr>
188
+ <td>${escapeHtml(asString(run.runId) || asString(run.id) || `run-${index + 1}`)}</td>
189
+ <td>${escapeHtml(fmtUtc(startedAt))}</td>
190
+ <td>${escapeHtml(fmtDuration(durationMs))}</td>
191
+ <td>${escapeHtml(String(asBoolean(run.ok) ? "ok" : "fail"))}</td>
192
+ <td>${escapeHtml(fmtInt(asNumber(consolidation?.promoted)))}</td>
193
+ <td>${escapeHtml(fmtInt(asNumber(memoryInference?.written)))}</td>
194
+ <td>${escapeHtml(fmtInt(asNumber(graphExtraction?.entities)))}</td>
195
+ </tr>`;
196
+ }).join("");
197
+ }
198
+ function buildSummaryRows(current) {
199
+ return [
200
+ ["Invoked", fmtInt(asNumber(current.invoked))],
201
+ ["Completed", fmtInt(asNumber(current.completed))],
202
+ ["Skipped", fmtInt(asNumber(current.skipped))],
203
+ ["Promoted", fmtInt(asNumber(asRecord(current.consolidation)?.promoted))],
204
+ ["Merged", fmtInt(asNumber(asRecord(current.consolidation)?.merged))],
205
+ ["Deleted", fmtInt(asNumber(asRecord(current.consolidation)?.deleted))],
206
+ ["Judged no action", fmtInt(asNumber(asRecord(current.consolidation)?.judgedNoAction))],
207
+ ["Inference written", fmtInt(asNumber(asRecord(current.memoryInference)?.written))],
208
+ ["Graph entities", fmtInt(asNumber(asRecord(current.graphExtraction)?.entities))],
209
+ ["Median wall time", fmtDuration(asNumber(asRecord(current.wallTime)?.medianMs))]
210
+ ].map(([label, value]) => `
211
+ <tr>
212
+ <th>${escapeHtml(label)}</th>
213
+ <td>${escapeHtml(value)}</td>
214
+ </tr>`).join("");
215
+ }
216
+ function renderHtml(window, health, proposals) {
217
+ const improve = asRecord(health.improve) ?? {};
218
+ const windows = asArray(health.windows).map((item) => asRecord(item)).filter((item) => item !== null);
219
+ const currentWindow = asRecord(windows.find((item) => asString(item.name) === "current")?.improve) ?? improve;
220
+ const priorWindow = asRecord(windows.find((item) => asString(item.name) === "prior")?.improve) ?? {};
221
+ const runs = asArray(health.runs).map((item) => asRecord(item)).filter((item) => item !== null);
222
+ const status = asString(health.status) || "unknown";
223
+ const since = asString(health.since);
224
+ const until = asString((windows.find((item) => asString(item.name) === "current") ?? {}).until);
225
+ const semanticStatus = asString(asRecord(asArray(health.advisories).map((item) => asRecord(item)).find((item) => asString(item?.name) === "semantic-search-runtime")?.evidence)?.status) || "unknown";
226
+ const payload = runs.map((run, index) => {
227
+ const consolidation = asRecord(run.consolidation);
228
+ const memoryInference = asRecord(run.memoryInference);
229
+ const graphExtraction = asRecord(run.graphExtraction);
230
+ return {
231
+ label: asString(run.startedAt) ? fmtUtc(asString(run.startedAt)).replace(" UTC", "") : `Run ${index + 1}`,
232
+ wallTimeMs: asNumber(run.wallTimeMs) || asNumber(run.durationMs),
233
+ promoted: asNumber(consolidation?.promoted),
234
+ merged: asNumber(consolidation?.merged),
235
+ deleted: asNumber(consolidation?.deleted),
236
+ judgedNoAction: asNumber(consolidation?.judgedNoAction),
237
+ written: asNumber(memoryInference?.written),
238
+ entities: asNumber(graphExtraction?.entities),
239
+ consolidationMs: asNumber(consolidation?.durationMs),
240
+ memoryInferenceMs: asNumber(memoryInference?.durationMs),
241
+ graphExtractionMs: asNumber(graphExtraction?.durationMs),
242
+ ok: asBoolean(run.ok)
243
+ };
244
+ });
245
+ return `<!doctype html>
246
+ <html lang="en">
247
+ <head>
248
+ <meta charset="utf-8">
249
+ <meta name="viewport" content="width=device-width, initial-scale=1">
250
+ <title>AKM Health Report (${escapeHtml(window)})</title>
251
+ <style>
252
+ :root {
253
+ color-scheme: dark;
254
+ --bg: #07111f;
255
+ --panel: #101b2d;
256
+ --panel-soft: #15233a;
257
+ --border: rgba(148, 163, 184, 0.18);
258
+ --text: #e5eefc;
259
+ --muted: #93a4bf;
260
+ --ok: #22c55e;
261
+ --warn: #f59e0b;
262
+ --fail: #ef4444;
263
+ --accent: #60a5fa;
264
+ }
265
+ * { box-sizing: border-box; }
266
+ body {
267
+ margin: 0;
268
+ font-family: Inter, ui-sans-serif, system-ui, sans-serif;
269
+ background: radial-gradient(circle at top, #14233d 0%, var(--bg) 55%);
270
+ color: var(--text);
271
+ padding: 24px;
272
+ }
273
+ .shell {
274
+ max-width: 1400px;
275
+ margin: 0 auto;
276
+ display: grid;
277
+ gap: 20px;
278
+ }
279
+ .hero, .panel {
280
+ background: rgba(16, 27, 45, 0.9);
281
+ border: 1px solid var(--border);
282
+ border-radius: 18px;
283
+ box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);
284
+ }
285
+ .hero {
286
+ padding: 24px;
287
+ display: grid;
288
+ gap: 16px;
289
+ }
290
+ .hero-top {
291
+ display: flex;
292
+ justify-content: space-between;
293
+ gap: 16px;
294
+ align-items: flex-start;
295
+ flex-wrap: wrap;
296
+ }
297
+ h1, h2, h3, p { margin: 0; }
298
+ .eyebrow { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }
299
+ .title { font-size: clamp(28px, 4vw, 40px); font-weight: 700; }
300
+ .subtitle { color: var(--muted); max-width: 80ch; }
301
+ .status {
302
+ border-radius: 999px;
303
+ padding: 8px 12px;
304
+ font-size: 12px;
305
+ font-weight: 700;
306
+ text-transform: uppercase;
307
+ letter-spacing: 0.08em;
308
+ border: 1px solid transparent;
309
+ }
310
+ .status.ok { color: #bbf7d0; background: rgba(34, 197, 94, 0.14); border-color: rgba(34, 197, 94, 0.32); }
311
+ .status.warn { color: #fde68a; background: rgba(245, 158, 11, 0.14); border-color: rgba(245, 158, 11, 0.32); }
312
+ .status.fail { color: #fecaca; background: rgba(239, 68, 68, 0.14); border-color: rgba(239, 68, 68, 0.32); }
313
+ .meta {
314
+ display: grid;
315
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
316
+ gap: 12px;
317
+ }
318
+ .meta-item, .card {
319
+ background: var(--panel-soft);
320
+ border: 1px solid var(--border);
321
+ border-radius: 14px;
322
+ padding: 14px;
323
+ }
324
+ .meta-label, .card-label { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
325
+ .meta-value, .card-value { margin-top: 8px; font-size: 22px; font-weight: 700; }
326
+ .card-sub { margin-top: 8px; color: var(--muted); font-size: 13px; }
327
+ .cards {
328
+ display: grid;
329
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
330
+ gap: 12px;
331
+ }
332
+ .grid-two {
333
+ display: grid;
334
+ grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
335
+ gap: 20px;
336
+ }
337
+ .panel { padding: 18px; }
338
+ .panel-title { font-size: 18px; font-weight: 700; margin-bottom: 14px; }
339
+ .chart-grid {
340
+ display: grid;
341
+ grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
342
+ gap: 16px;
343
+ }
344
+ .chart {
345
+ height: 320px;
346
+ background: linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0));
347
+ border: 1px solid var(--border);
348
+ border-radius: 14px;
349
+ }
350
+ .notice-list {
351
+ display: grid;
352
+ gap: 10px;
353
+ }
354
+ .notice {
355
+ display: grid;
356
+ gap: 6px;
357
+ border-radius: 14px;
358
+ padding: 14px;
359
+ border: 1px solid var(--border);
360
+ background: var(--panel-soft);
361
+ }
362
+ .notice.ok { border-color: rgba(34, 197, 94, 0.32); }
363
+ .notice.warn { border-color: rgba(245, 158, 11, 0.32); }
364
+ .notice.fail { border-color: rgba(239, 68, 68, 0.32); }
365
+ .summary-table, .data-table {
366
+ width: 100%;
367
+ border-collapse: collapse;
368
+ }
369
+ .summary-table th, .summary-table td, .data-table th, .data-table td {
370
+ padding: 10px 12px;
371
+ border-bottom: 1px solid var(--border);
372
+ text-align: left;
373
+ vertical-align: top;
374
+ }
375
+ .summary-table th, .data-table th { color: var(--muted); font-weight: 600; }
376
+ .empty { color: var(--muted); text-align: center; }
377
+ .footer-note { color: var(--muted); font-size: 13px; }
378
+ @media (max-width: 900px) {
379
+ body { padding: 12px; }
380
+ .grid-two { grid-template-columns: 1fr; }
381
+ }
382
+ </style>
383
+ </head>
384
+ <body>
385
+ <div class="shell">
386
+ <section class="hero">
387
+ <div class="hero-top">
388
+ <div>
389
+ <div class="eyebrow">AKM Health Report</div>
390
+ <h1 class="title">Knowledge Health for ${escapeHtml(window)}</h1>
391
+ <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>
392
+ </div>
393
+ <div class="status ${escapeHtml(statusClass(status))}">${escapeHtml(status)}</div>
394
+ </div>
395
+ <div class="meta">
396
+ <div class="meta-item">
397
+ <div class="meta-label">Window</div>
398
+ <div class="meta-value">${escapeHtml(window)}</div>
399
+ </div>
400
+ <div class="meta-item">
401
+ <div class="meta-label">Since</div>
402
+ <div class="meta-value">${escapeHtml(fmtUtc(since))}</div>
403
+ </div>
404
+ <div class="meta-item">
405
+ <div class="meta-label">Until</div>
406
+ <div class="meta-value">${escapeHtml(fmtUtc(until))}</div>
407
+ </div>
408
+ <div class="meta-item">
409
+ <div class="meta-label">Semantic search</div>
410
+ <div class="meta-value">${escapeHtml(semanticStatus)}</div>
411
+ </div>
412
+ </div>
413
+ <div class="cards">${buildCards(currentWindow, priorWindow, proposals.length)}</div>
414
+ </section>
415
+
416
+ <section class="panel">
417
+ <h2 class="panel-title">Run Trends</h2>
418
+ <div class="chart-grid">
419
+ <div id="chartWallTime" class="chart"></div>
420
+ <div id="chartPhases" class="chart"></div>
421
+ <div id="chartOutput" class="chart"></div>
422
+ <div id="chartKnowledge" class="chart"></div>
423
+ </div>
424
+ </section>
425
+
426
+ <section class="grid-two">
427
+ <div class="panel">
428
+ <h2 class="panel-title">Summary</h2>
429
+ <table class="summary-table">
430
+ <tbody>${buildSummaryRows(currentWindow)}</tbody>
431
+ </table>
432
+ </div>
433
+ <div class="panel">
434
+ <h2 class="panel-title">Advisories</h2>
435
+ <div class="notice-list">${buildAdvisories(health)}</div>
436
+ </div>
437
+ </section>
438
+
439
+ <section class="grid-two">
440
+ <div class="panel">
441
+ <h2 class="panel-title">Pending Proposals (${escapeHtml(fmtInt(proposals.length))})</h2>
442
+ <table class="data-table">
443
+ <thead>
444
+ <tr><th>Ref</th><th>Source</th><th>Created</th><th>ID</th></tr>
445
+ </thead>
446
+ <tbody>${buildProposalRows(proposals)}</tbody>
447
+ </table>
448
+ </div>
449
+ <div class="panel">
450
+ <h2 class="panel-title">Recent Runs</h2>
451
+ <table class="data-table">
452
+ <thead>
453
+ <tr><th>Run</th><th>Started</th><th>Duration</th><th>Status</th><th>Promoted</th><th>MI</th><th>Entities</th></tr>
454
+ </thead>
455
+ <tbody>${buildRunRows(runs)}</tbody>
456
+ </table>
457
+ </div>
458
+ </section>
459
+
460
+ <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>
461
+ </div>
462
+
463
+ <script>window.REPORT_DATA = ${scriptJson(payload)};<\/script>
464
+ <script src="https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js"><\/script>
465
+ <script>
466
+ const runs = Array.isArray(window.REPORT_DATA) ? window.REPORT_DATA : [];
467
+ const textColor = '#dbe7ff';
468
+ const mutedColor = '#93a4bf';
469
+ const axisStyle = { axisLabel: { color: mutedColor }, axisLine: { lineStyle: { color: '#334155' } }, splitLine: { lineStyle: { color: 'rgba(148,163,184,0.12)' } } };
470
+ function baseChart(id) {
471
+ const el = document.getElementById(id);
472
+ if (!el || !window.echarts) return null;
473
+ return window.echarts.init(el, null, { renderer: 'canvas' });
474
+ }
475
+ function setEmpty(elId, label) {
476
+ const el = document.getElementById(elId);
477
+ if (!el) return;
478
+ el.innerHTML = '<div style="height:100%;display:grid;place-items:center;color:' + mutedColor + ';font-size:14px;">' + label + '</div>';
479
+ }
480
+ function labels() { return runs.map((run) => run.label); }
481
+ if (!window.echarts) {
482
+ ['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'ECharts failed to load.'));
483
+ } else if (runs.length === 0) {
484
+ ['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'No runs in this window.'));
485
+ } else {
486
+ const common = { textStyle: { color: textColor }, animation: false, grid: { left: 48, right: 18, top: 40, bottom: 36 }, tooltip: { trigger: 'axis' } };
487
+ const wallTime = baseChart('chartWallTime');
488
+ wallTime && wallTime.setOption({
489
+ ...common,
490
+ title: { text: 'Wall Time Per Run', textStyle: { color: textColor, fontSize: 14 } },
491
+ xAxis: { type: 'category', data: labels(), ...axisStyle },
492
+ yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },
493
+ 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)' } }]
494
+ });
495
+
496
+ const phases = baseChart('chartPhases');
497
+ phases && phases.setOption({
498
+ ...common,
499
+ title: { text: 'Phase Breakdown', textStyle: { color: textColor, fontSize: 14 } },
500
+ legend: { textStyle: { color: mutedColor } },
501
+ xAxis: { type: 'category', data: labels(), ...axisStyle },
502
+ yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },
503
+ series: [
504
+ { name: 'Consolidation', type: 'bar', stack: 'phases', data: runs.map((run) => run.consolidationMs), itemStyle: { color: '#60a5fa' } },
505
+ { name: 'Memory Inference', type: 'bar', stack: 'phases', data: runs.map((run) => run.memoryInferenceMs), itemStyle: { color: '#a78bfa' } },
506
+ { name: 'Graph Extraction', type: 'bar', stack: 'phases', data: runs.map((run) => run.graphExtractionMs), itemStyle: { color: '#34d399' } }
507
+ ]
508
+ });
509
+
510
+ const output = baseChart('chartOutput');
511
+ output && output.setOption({
512
+ ...common,
513
+ title: { text: 'Consolidation Output', textStyle: { color: textColor, fontSize: 14 } },
514
+ legend: { textStyle: { color: mutedColor } },
515
+ xAxis: { type: 'category', data: labels(), ...axisStyle },
516
+ yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },
517
+ series: [
518
+ { name: 'Promoted', type: 'bar', data: runs.map((run) => run.promoted), itemStyle: { color: '#22c55e' } },
519
+ { name: 'Merged', type: 'bar', data: runs.map((run) => run.merged), itemStyle: { color: '#f59e0b' } },
520
+ { name: 'Deleted', type: 'bar', data: runs.map((run) => run.deleted), itemStyle: { color: '#ef4444' } },
521
+ { name: 'No action', type: 'bar', data: runs.map((run) => run.judgedNoAction), itemStyle: { color: '#94a3b8' } }
522
+ ]
523
+ });
524
+
525
+ const knowledge = baseChart('chartKnowledge');
526
+ knowledge && knowledge.setOption({
527
+ ...common,
528
+ title: { text: 'Knowledge Growth Signals', textStyle: { color: textColor, fontSize: 14 } },
529
+ legend: { textStyle: { color: mutedColor } },
530
+ xAxis: { type: 'category', data: labels(), ...axisStyle },
531
+ yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },
532
+ series: [
533
+ { name: 'MI written', type: 'line', smooth: true, data: runs.map((run) => run.written), itemStyle: { color: '#a78bfa' }, lineStyle: { color: '#a78bfa' } },
534
+ { name: 'Entities', type: 'line', smooth: true, data: runs.map((run) => run.entities), itemStyle: { color: '#34d399' }, lineStyle: { color: '#34d399' } }
535
+ ]
536
+ });
537
+
538
+ window.addEventListener('resize', () => {
539
+ wallTime && wallTime.resize();
540
+ phases && phases.resize();
541
+ output && output.resize();
542
+ knowledge && knowledge.resize();
543
+ });
544
+ }
545
+ <\/script>
546
+ </body>
547
+ </html>`;
548
+ }
549
+ async function buildAkmHealthReport(state, requestedWindow) {
550
+ const window = clampWindow(requestedWindow);
551
+ const [healthResult, proposalsResult] = await Promise.all([runAkmCommand(state, [
552
+ "health",
553
+ `--since=${window}`,
554
+ "--group-by",
555
+ "run",
556
+ `--window-compare=${window}`,
557
+ "--format",
558
+ "json"
559
+ ], 2e4), runAkmCommand(state, [
560
+ "proposal",
561
+ "list",
562
+ "--format",
563
+ "json"
564
+ ], 12e3)]);
565
+ const health = safeParseJsonObject(healthResult.stdout);
566
+ const proposalsPayload = safeParseJsonObject(proposalsResult.stdout);
567
+ if (!health) {
568
+ const detail = [healthResult.stderr.trim(), healthResult.stdout.trim()].filter(Boolean).join("\n\n");
569
+ return {
570
+ window,
571
+ html: `<!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>`
572
+ };
573
+ }
574
+ return {
575
+ html: renderHtml(window, health, asArray(proposalsPayload?.proposals).map((item) => asRecord(item)).filter((item) => item !== null).map((item) => ({
576
+ id: asString(item.id),
577
+ ref: asString(item.ref),
578
+ source: asString(item.source),
579
+ createdAt: asString(item.createdAt)
580
+ }))),
581
+ window
582
+ };
583
+ }
584
+ //#endregion
585
+ //#region src/routes/admin/akm/health-report/+server.ts
586
+ var REPORT_CSP = [
587
+ "default-src 'none'",
588
+ "script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net",
589
+ "style-src 'unsafe-inline'",
590
+ "img-src 'self' data:",
591
+ "font-src 'self' data:",
592
+ "connect-src 'none'",
593
+ "object-src 'none'",
594
+ "base-uri 'none'",
595
+ "form-action 'none'",
596
+ "frame-ancestors 'self'"
597
+ ].join("; ");
598
+ var GET = async (event) => {
599
+ const requestId = getRequestId(event);
600
+ const denied = requireAdmin(event, requestId);
601
+ if (denied) return denied;
602
+ try {
603
+ const { html } = await buildAkmHealthReport(getState(), event.url.searchParams.get("since"));
604
+ return new Response(html, {
605
+ status: 200,
606
+ headers: {
607
+ "content-type": "text/html; charset=utf-8",
608
+ "cache-control": "no-store",
609
+ "content-security-policy": REPORT_CSP,
610
+ "x-request-id": requestId
611
+ }
612
+ });
613
+ } catch (error) {
614
+ const message = error instanceof Error ? error.message : "Failed to build AKM health report.";
615
+ return new Response(message, {
616
+ status: 500,
617
+ headers: {
618
+ "content-type": "text/plain; charset=utf-8",
619
+ "cache-control": "no-store",
620
+ "x-request-id": requestId
621
+ }
622
+ });
623
+ }
624
+ };
625
+
626
+ export { GET };
627
+ //# sourceMappingURL=_server.ts-Cdq-yzqP.js.map