@openpalm/ui 0.12.30 → 0.12.31
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.
- package/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/chunks/BB8XY_of.js +3 -0
- package/build/client/_app/immutable/chunks/BB8XY_of.js.br +0 -0
- package/build/client/_app/immutable/chunks/BB8XY_of.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{BO4NROwb.js → BDjdOSE_.js} +1 -1
- package/build/client/_app/immutable/chunks/BDjdOSE_.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDjdOSE_.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BUUK1x74.js +1 -0
- package/build/client/_app/immutable/chunks/BUUK1x74.js.br +2 -0
- package/build/client/_app/immutable/chunks/BUUK1x74.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CLdO58WX.js → h4pLEiZL.js} +1 -1
- package/build/client/_app/immutable/chunks/h4pLEiZL.js.br +0 -0
- package/build/client/_app/immutable/chunks/h4pLEiZL.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.B0VnlV1D.js → app.CLAYHG8o.js} +2 -2
- package/build/client/_app/immutable/entry/app.CLAYHG8o.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CLAYHG8o.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.3TjYybUj.js +1 -0
- package/build/client/_app/immutable/entry/start.3TjYybUj.js.br +1 -0
- package/build/client/_app/immutable/entry/start.3TjYybUj.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.BrAaLw95.js → 1.DhXGFVCH.js} +1 -1
- package/build/client/_app/immutable/nodes/{1.BrAaLw95.js.br → 1.DhXGFVCH.js.br} +0 -0
- package/build/client/_app/immutable/nodes/1.DhXGFVCH.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.caleLvGw.js → 4.CazenlB_.js} +66 -66
- package/build/client/_app/immutable/nodes/4.CazenlB_.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CazenlB_.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.DMJXuosM.js → 5.DYXFa7dm.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DYXFa7dm.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DYXFa7dm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.4uWEFIGs.js → 6.Dx8bSxHP.js} +1 -1
- package/build/client/_app/immutable/nodes/6.Dx8bSxHP.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.Dx8bSxHP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.BBl7JXjt.js → 7.BcwjyKcV.js} +1 -1
- package/build/client/_app/immutable/nodes/7.BcwjyKcV.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BcwjyKcV.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.CchFRn2k.js → 8.C3s9OPVB.js} +1 -1
- package/build/client/_app/immutable/nodes/8.C3s9OPVB.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.C3s9OPVB.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/1-jHEdg3cb.js +9 -0
- package/build/server/chunks/{1-CBlVFGB9.js.map → 1-jHEdg3cb.js.map} +1 -1
- package/build/server/chunks/{10-Blsd813O.js → 10-CBqH51LT.js} +5 -5
- package/build/server/chunks/{10-Blsd813O.js.map → 10-CBqH51LT.js.map} +1 -1
- package/build/server/chunks/{4-Cs3sEVb7.js → 4-YDPVJ8ni.js} +3 -3
- package/build/server/chunks/{4-Cs3sEVb7.js.map → 4-YDPVJ8ni.js.map} +1 -1
- package/build/server/chunks/{5-LGGrqeZn.js → 5-BVbyR7N4.js} +3 -3
- package/build/server/chunks/{5-LGGrqeZn.js.map → 5-BVbyR7N4.js.map} +1 -1
- package/build/server/chunks/{6-Dx521VoJ.js → 6-B-7fWWbr.js} +3 -3
- package/build/server/chunks/{6-Dx521VoJ.js.map → 6-B-7fWWbr.js.map} +1 -1
- package/build/server/chunks/{7-tuYOO8Al.js → 7-DhK-R31H.js} +3 -3
- package/build/server/chunks/{7-tuYOO8Al.js.map → 7-DhK-R31H.js.map} +1 -1
- package/build/server/chunks/{8-QQP1bF8p.js → 8-in7_KaJ0.js} +3 -3
- package/build/server/chunks/{8-QQP1bF8p.js.map → 8-in7_KaJ0.js.map} +1 -1
- package/build/server/chunks/{Navbar-D3-dml2D.js → Navbar-Dezt2oJ0.js} +3 -3
- package/build/server/chunks/{Navbar-D3-dml2D.js.map → Navbar-Dezt2oJ0.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CeqrYx7P.js → _page.svelte-BrHqSkJc.js} +5 -5
- package/build/server/chunks/_page.svelte-BrHqSkJc.js.map +1 -0
- package/build/server/chunks/{_page.svelte-xWgvQYVV.js → _page.svelte-D4cg0Y17.js} +5 -5
- package/build/server/chunks/{_page.svelte-xWgvQYVV.js.map → _page.svelte-D4cg0Y17.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-v26GfWAu.js → _page.svelte-DBvsPIBj.js} +3 -3
- package/build/server/chunks/{_page.svelte-v26GfWAu.js.map → _page.svelte-DBvsPIBj.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BncT5wqj.js → _page.svelte-bI9QtRyO.js} +5 -5
- package/build/server/chunks/{_page.svelte-BncT5wqj.js.map → _page.svelte-bI9QtRyO.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-B6h3RiZ-.js → _page.svelte-sBMDEVxI.js} +3 -3
- package/build/server/chunks/{_page.svelte-B6h3RiZ-.js.map → _page.svelte-sBMDEVxI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CLHONwD4.js → _server.ts-7n1hTvLL.js} +6 -6
- package/build/server/chunks/{_server.ts-CLHONwD4.js.map → _server.ts-7n1hTvLL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DQNJFLR3.js → _server.ts-9ZPbgrUi.js} +5 -5
- package/build/server/chunks/{_server.ts-DQNJFLR3.js.map → _server.ts-9ZPbgrUi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DXpnsm_n.js → _server.ts-B-TEGCpE.js} +5 -5
- package/build/server/chunks/{_server.ts-DXpnsm_n.js.map → _server.ts-B-TEGCpE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DkiM0c0r.js → _server.ts-B1cGPRqX.js} +5 -5
- package/build/server/chunks/{_server.ts-DkiM0c0r.js.map → _server.ts-B1cGPRqX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CVzDfcQE.js → _server.ts-B2ll44dZ.js} +2 -2
- package/build/server/chunks/{_server.ts-CVzDfcQE.js.map → _server.ts-B2ll44dZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CmJiqNLL.js → _server.ts-B6cv5wIX.js} +2 -2
- package/build/server/chunks/{_server.ts-CmJiqNLL.js.map → _server.ts-B6cv5wIX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-FhkW1KTP.js → _server.ts-B84lAl05.js} +6 -6
- package/build/server/chunks/{_server.ts-FhkW1KTP.js.map → _server.ts-B84lAl05.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dm1ryw4F.js → _server.ts-BA9D7cfg.js} +2 -2
- package/build/server/chunks/{_server.ts-Dm1ryw4F.js.map → _server.ts-BA9D7cfg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D8ITCdL1.js → _server.ts-BBm9UBPx.js} +5 -5
- package/build/server/chunks/{_server.ts-D8ITCdL1.js.map → _server.ts-BBm9UBPx.js.map} +1 -1
- package/build/server/chunks/_server.ts-BDtX2Ihr.js +105 -0
- package/build/server/chunks/_server.ts-BDtX2Ihr.js.map +1 -0
- package/build/server/chunks/{_server.ts-CiVIZEWF.js → _server.ts-BLDQpSYU.js} +28 -41
- package/build/server/chunks/_server.ts-BLDQpSYU.js.map +1 -0
- package/build/server/chunks/{_server.ts-DPP8y7KI.js → _server.ts-BLOj5vDw.js} +5 -5
- package/build/server/chunks/{_server.ts-DPP8y7KI.js.map → _server.ts-BLOj5vDw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D2f5NEVb.js → _server.ts-BPEU5AkD.js} +6 -6
- package/build/server/chunks/{_server.ts-D2f5NEVb.js.map → _server.ts-BPEU5AkD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BpfJshbf.js → _server.ts-BPJFoLAR.js} +5 -5
- package/build/server/chunks/{_server.ts-BpfJshbf.js.map → _server.ts-BPJFoLAR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ChabbgDq.js → _server.ts-BT5Jw59U.js} +5 -5
- package/build/server/chunks/{_server.ts-ChabbgDq.js.map → _server.ts-BT5Jw59U.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrCzex0x.js → _server.ts-BTu2HOzm.js} +5 -5
- package/build/server/chunks/{_server.ts-DrCzex0x.js.map → _server.ts-BTu2HOzm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BsSd56zs.js → _server.ts-BVBBjZkq.js} +5 -5
- package/build/server/chunks/{_server.ts-BsSd56zs.js.map → _server.ts-BVBBjZkq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CG00do9J.js → _server.ts-BX4XWBjQ.js} +5 -5
- package/build/server/chunks/{_server.ts-CG00do9J.js.map → _server.ts-BX4XWBjQ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Do0nZ11M.js → _server.ts-BXGrX9AC.js} +5 -5
- package/build/server/chunks/{_server.ts-Do0nZ11M.js.map → _server.ts-BXGrX9AC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DHDV44kU.js → _server.ts-BZXR5tEt.js} +5 -5
- package/build/server/chunks/{_server.ts-DHDV44kU.js.map → _server.ts-BZXR5tEt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DHuV-IKw.js → _server.ts-BaKG0Hli.js} +5 -5
- package/build/server/chunks/{_server.ts-DHuV-IKw.js.map → _server.ts-BaKG0Hli.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9PjUPfnm.js → _server.ts-BdiZEsSh.js} +6 -6
- package/build/server/chunks/_server.ts-BdiZEsSh.js.map +1 -0
- package/build/server/chunks/{_server.ts-CXC4jnmZ.js → _server.ts-Be-K2GZj.js} +7 -7
- package/build/server/chunks/{_server.ts-CXC4jnmZ.js.map → _server.ts-Be-K2GZj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BImbAjFT.js → _server.ts-BfJpdl0V.js} +5 -5
- package/build/server/chunks/{_server.ts-BImbAjFT.js.map → _server.ts-BfJpdl0V.js.map} +1 -1
- package/build/server/chunks/{_server.ts-o3d2ebrR.js → _server.ts-BkgeKtbO.js} +7 -7
- package/build/server/chunks/{_server.ts-o3d2ebrR.js.map → _server.ts-BkgeKtbO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ex0gqTvl.js → _server.ts-BsoATpw1.js} +4 -4
- package/build/server/chunks/{_server.ts-ex0gqTvl.js.map → _server.ts-BsoATpw1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-k2Ka2S1I.js → _server.ts-BvRyWe6Q.js} +7 -7
- package/build/server/chunks/{_server.ts-k2Ka2S1I.js.map → _server.ts-BvRyWe6Q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D8oYZ2e-.js → _server.ts-C37joWix.js} +5 -5
- package/build/server/chunks/{_server.ts-D8oYZ2e-.js.map → _server.ts-C37joWix.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dy1iF6cg.js → _server.ts-C3sA0bSn.js} +5 -5
- package/build/server/chunks/{_server.ts-Dy1iF6cg.js.map → _server.ts-C3sA0bSn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbxvGqPo.js → _server.ts-C5uVuwit.js} +5 -5
- package/build/server/chunks/{_server.ts-CbxvGqPo.js.map → _server.ts-C5uVuwit.js.map} +1 -1
- package/build/server/chunks/{_server.ts-hLsRXWLT.js → _server.ts-C88LNtxa.js} +5 -5
- package/build/server/chunks/{_server.ts-hLsRXWLT.js.map → _server.ts-C88LNtxa.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Derp6D-A.js → _server.ts-C8j-b9sv.js} +5 -5
- package/build/server/chunks/{_server.ts-Derp6D-A.js.map → _server.ts-C8j-b9sv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-S-JBodAK.js → _server.ts-CBkKlIxH.js} +5 -5
- package/build/server/chunks/{_server.ts-S-JBodAK.js.map → _server.ts-CBkKlIxH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ChvwdWmH.js → _server.ts-CC99ff7V.js} +5 -5
- package/build/server/chunks/{_server.ts-ChvwdWmH.js.map → _server.ts-CC99ff7V.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CIffbWOr.js → _server.ts-CGtp6QZV.js} +7 -7
- package/build/server/chunks/{_server.ts-CIffbWOr.js.map → _server.ts-CGtp6QZV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Duc444YH.js → _server.ts-CHYNosXf.js} +6 -6
- package/build/server/chunks/{_server.ts-Duc444YH.js.map → _server.ts-CHYNosXf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BTHv1_3n.js → _server.ts-CPV0j3ND.js} +5 -5
- package/build/server/chunks/{_server.ts-BTHv1_3n.js.map → _server.ts-CPV0j3ND.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DUqFWmvr.js → _server.ts-CR9B45ur.js} +5 -5
- package/build/server/chunks/{_server.ts-DUqFWmvr.js.map → _server.ts-CR9B45ur.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Zx7-z7iR.js → _server.ts-CS9H4bEG.js} +5 -5
- package/build/server/chunks/{_server.ts-Zx7-z7iR.js.map → _server.ts-CS9H4bEG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-waMYdhp6.js → _server.ts-CSKQ47H3.js} +5 -5
- package/build/server/chunks/{_server.ts-waMYdhp6.js.map → _server.ts-CSKQ47H3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DIyEp4rq.js → _server.ts-CSM_OzSz.js} +6 -6
- package/build/server/chunks/{_server.ts-DIyEp4rq.js.map → _server.ts-CSM_OzSz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dipm3OBu.js → _server.ts-CTs434_S.js} +2 -2
- package/build/server/chunks/{_server.ts-Dipm3OBu.js.map → _server.ts-CTs434_S.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BQLpCkXl.js → _server.ts-CVLYiJl0.js} +6 -6
- package/build/server/chunks/{_server.ts-BQLpCkXl.js.map → _server.ts-CVLYiJl0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B9nRs4On.js → _server.ts-CdB_QvU7.js} +6 -6
- package/build/server/chunks/{_server.ts-B9nRs4On.js.map → _server.ts-CdB_QvU7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-TR6UyTLZ.js → _server.ts-CeEPKzsU.js} +5 -5
- package/build/server/chunks/{_server.ts-TR6UyTLZ.js.map → _server.ts-CeEPKzsU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xS7sMkxa.js → _server.ts-Cq8KxpH6.js} +5 -5
- package/build/server/chunks/{_server.ts-xS7sMkxa.js.map → _server.ts-Cq8KxpH6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-shPLWmam.js → _server.ts-Ct2AuZ9O.js} +7 -7
- package/build/server/chunks/{_server.ts-shPLWmam.js.map → _server.ts-Ct2AuZ9O.js.map} +1 -1
- package/build/server/chunks/{_server.ts-H0-fK41i.js → _server.ts-D34MdYD3.js} +5 -5
- package/build/server/chunks/{_server.ts-H0-fK41i.js.map → _server.ts-D34MdYD3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DKDPiB3l.js → _server.ts-D4_jIIdX.js} +5 -5
- package/build/server/chunks/{_server.ts-DKDPiB3l.js.map → _server.ts-D4_jIIdX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DX9V8mJw.js → _server.ts-D6ZHFHbG.js} +5 -5
- package/build/server/chunks/{_server.ts-DX9V8mJw.js.map → _server.ts-D6ZHFHbG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-yzpWSCXF.js → _server.ts-D6mOuTDr.js} +4 -4
- package/build/server/chunks/{_server.ts-yzpWSCXF.js.map → _server.ts-D6mOuTDr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CgR3I3g6.js → _server.ts-DAtmew-Q.js} +5 -5
- package/build/server/chunks/{_server.ts-CgR3I3g6.js.map → _server.ts-DAtmew-Q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cqdb46dB.js → _server.ts-DBfylu5e.js} +5 -5
- package/build/server/chunks/{_server.ts-Cqdb46dB.js.map → _server.ts-DBfylu5e.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bf6qRIKL.js → _server.ts-DBnGEHR4.js} +5 -5
- package/build/server/chunks/{_server.ts-Bf6qRIKL.js.map → _server.ts-DBnGEHR4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bu2vn3fo.js → _server.ts-DCeAEeU3.js} +5 -5
- package/build/server/chunks/{_server.ts-Bu2vn3fo.js.map → _server.ts-DCeAEeU3.js.map} +1 -1
- package/build/server/chunks/{_server.ts-i-rS2Jno.js → _server.ts-DJAKo2Cv.js} +5 -5
- package/build/server/chunks/{_server.ts-i-rS2Jno.js.map → _server.ts-DJAKo2Cv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BuZ522NL.js → _server.ts-DLTxKruJ.js} +5 -5
- package/build/server/chunks/{_server.ts-BuZ522NL.js.map → _server.ts-DLTxKruJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BeZiSZPa.js → _server.ts-DNRzb1yI.js} +5 -5
- package/build/server/chunks/{_server.ts-BeZiSZPa.js.map → _server.ts-DNRzb1yI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-NPiZCiUP.js → _server.ts-DNfKQWHl.js} +5 -5
- package/build/server/chunks/{_server.ts-NPiZCiUP.js.map → _server.ts-DNfKQWHl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DJDpQCOT.js → _server.ts-DQexieVk.js} +5 -5
- package/build/server/chunks/{_server.ts-DJDpQCOT.js.map → _server.ts-DQexieVk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BqHhalJ0.js → _server.ts-DVj-C8te.js} +5 -5
- package/build/server/chunks/{_server.ts-BqHhalJ0.js.map → _server.ts-DVj-C8te.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BBNJJXcP.js → _server.ts-DXeoc6nA.js} +5 -5
- package/build/server/chunks/{_server.ts-BBNJJXcP.js.map → _server.ts-DXeoc6nA.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CCXXZwEK.js → _server.ts-DXkzeTiv.js} +5 -5
- package/build/server/chunks/{_server.ts-CCXXZwEK.js.map → _server.ts-DXkzeTiv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C0kb1s0H.js → _server.ts-D_bHLh83.js} +6 -6
- package/build/server/chunks/{_server.ts-C0kb1s0H.js.map → _server.ts-D_bHLh83.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dh_IN_-K.js → _server.ts-DaTCpESK.js} +5 -5
- package/build/server/chunks/{_server.ts-Dh_IN_-K.js.map → _server.ts-DaTCpESK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BVixeHpL.js → _server.ts-DefnTP8Y.js} +5 -5
- package/build/server/chunks/{_server.ts-BVixeHpL.js.map → _server.ts-DefnTP8Y.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DHlacLn5.js → _server.ts-DgjZ4-j_.js} +6 -6
- package/build/server/chunks/{_server.ts-DHlacLn5.js.map → _server.ts-DgjZ4-j_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DpAi1suL.js → _server.ts-DjelSaMT.js} +5 -5
- package/build/server/chunks/{_server.ts-DpAi1suL.js.map → _server.ts-DjelSaMT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BiY6rZ_w.js → _server.ts-Dl2M-jEg.js} +5 -5
- package/build/server/chunks/{_server.ts-BiY6rZ_w.js.map → _server.ts-Dl2M-jEg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-HgZ5qwdH.js → _server.ts-DmOpIph6.js} +6 -6
- package/build/server/chunks/{_server.ts-HgZ5qwdH.js.map → _server.ts-DmOpIph6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbuFYLHu.js → _server.ts-DmupLutg.js} +6 -6
- package/build/server/chunks/{_server.ts-CbuFYLHu.js.map → _server.ts-DmupLutg.js.map} +1 -1
- package/build/server/chunks/{_server.ts-LXNcX_gr.js → _server.ts-DpeC2vNS.js} +7 -7
- package/build/server/chunks/{_server.ts-LXNcX_gr.js.map → _server.ts-DpeC2vNS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrlHr3Yp.js → _server.ts-Dqvc_mfX.js} +5 -5
- package/build/server/chunks/{_server.ts-DrlHr3Yp.js.map → _server.ts-Dqvc_mfX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D5o0d90E.js → _server.ts-DxFQvIpF.js} +5 -5
- package/build/server/chunks/{_server.ts-D5o0d90E.js.map → _server.ts-DxFQvIpF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DdO3KWOt.js → _server.ts-FKL5HS3x.js} +2 -2
- package/build/server/chunks/{_server.ts-DdO3KWOt.js.map → _server.ts-FKL5HS3x.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWIO3AB7.js → _server.ts-IbjYnxkW.js} +6 -6
- package/build/server/chunks/{_server.ts-CWIO3AB7.js.map → _server.ts-IbjYnxkW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CkeucrQP.js → _server.ts-Sql_T4sD.js} +5 -5
- package/build/server/chunks/{_server.ts-CkeucrQP.js.map → _server.ts-Sql_T4sD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ClFJ0eZj.js → _server.ts-XyFV7Ae_.js} +5 -5
- package/build/server/chunks/{_server.ts-ClFJ0eZj.js.map → _server.ts-XyFV7Ae_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CaXQiZsV.js → _server.ts-aakwO05Z.js} +5 -5
- package/build/server/chunks/{_server.ts-CaXQiZsV.js.map → _server.ts-aakwO05Z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CQUxuBXW.js → _server.ts-bJoeeqjT.js} +5 -5
- package/build/server/chunks/{_server.ts-CQUxuBXW.js.map → _server.ts-bJoeeqjT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C2xTEuJw.js → _server.ts-bUsCd2k2.js} +8 -8
- package/build/server/chunks/{_server.ts-C2xTEuJw.js.map → _server.ts-bUsCd2k2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BIQ_iRKu.js → _server.ts-eRcAq7hS.js} +5 -5
- package/build/server/chunks/{_server.ts-BIQ_iRKu.js.map → _server.ts-eRcAq7hS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CaxNFXXL.js → _server.ts-fW9wkm5N.js} +5 -5
- package/build/server/chunks/{_server.ts-CaxNFXXL.js.map → _server.ts-fW9wkm5N.js.map} +1 -1
- package/build/server/chunks/{_server.ts-PN2Woc-O.js → _server.ts-nLjql9Cn.js} +5 -5
- package/build/server/chunks/{_server.ts-PN2Woc-O.js.map → _server.ts-nLjql9Cn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C63clURM.js → _server.ts-uhT1izmu.js} +5 -5
- package/build/server/chunks/{_server.ts-C63clURM.js.map → _server.ts-uhT1izmu.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-u14MZ4hn.js → addon-helpers-gVfzUXXd.js} +3 -3
- package/build/server/chunks/{addon-helpers-u14MZ4hn.js.map → addon-helpers-gVfzUXXd.js.map} +1 -1
- package/build/server/chunks/{akm-xwGlYpRz.js → akm-B6ns2KlF.js} +2 -2
- package/build/server/chunks/{akm-xwGlYpRz.js.map → akm-B6ns2KlF.js.map} +1 -1
- package/build/server/chunks/{catalog-BxiB0JdQ.js → catalog-DGo6J8kN.js} +5 -5
- package/build/server/chunks/{catalog-BxiB0JdQ.js.map → catalog-DGo6J8kN.js.map} +1 -1
- package/build/server/chunks/{client-BlHW-zbp.js → client-CMrKROuB.js} +2 -2
- package/build/server/chunks/{client-BlHW-zbp.js.map → client-CMrKROuB.js.map} +1 -1
- package/build/server/chunks/{config-CLcA63MG.js → config-D057bE5f.js} +2 -2
- package/build/server/chunks/{config-CLcA63MG.js.map → config-D057bE5f.js.map} +1 -1
- package/build/server/chunks/{docker-BfXg_KFV.js → docker-BQfdt0TT.js} +2 -2
- package/build/server/chunks/{docker-BfXg_KFV.js.map → docker-BQfdt0TT.js.map} +1 -1
- package/build/server/chunks/{endpoints-CrOJJcY7.js → endpoints-CNmMPrJe.js} +2 -2
- package/build/server/chunks/{endpoints-CrOJJcY7.js.map → endpoints-CNmMPrJe.js.map} +1 -1
- package/build/server/chunks/{error.svelte-CxWQRcta.js → error.svelte-plJv_cT6.js} +4 -4
- package/build/server/chunks/{error.svelte-CxWQRcta.js.map → error.svelte-plJv_cT6.js.map} +1 -1
- package/build/server/chunks/{helpers-51xKvH3p.js → helpers-CMYUGLUe.js} +3 -3
- package/build/server/chunks/{helpers-51xKvH3p.js.map → helpers-CMYUGLUe.js.map} +1 -1
- package/build/server/chunks/{hooks.server-Bm9YSf7u.js → hooks.server-0DAzw1fa.js} +7 -7
- package/build/server/chunks/{hooks.server-Bm9YSf7u.js.map → hooks.server-0DAzw1fa.js.map} +1 -1
- package/build/server/chunks/{http-PJIJy_DZ.js → http-DIGZIGJX.js} +2 -2
- package/build/server/chunks/{http-PJIJy_DZ.js.map → http-DIGZIGJX.js.map} +1 -1
- package/build/server/chunks/{internal-Gs373B6e.js → internal-DQBQD4mY.js} +3 -3
- package/build/server/chunks/{internal-Gs373B6e.js.map → internal-DQBQD4mY.js.map} +1 -1
- package/build/server/chunks/{migration-status-BtV8L86X.js → migration-status-BLosyNNr.js} +2 -2
- package/build/server/chunks/{migration-status-BtV8L86X.js.map → migration-status-BLosyNNr.js.map} +1 -1
- package/build/server/chunks/{session-cookie-C1h7vTjA.js → session-cookie-BkbI5w4V.js} +2 -2
- package/build/server/chunks/{session-cookie-C1h7vTjA.js.map → session-cookie-BkbI5w4V.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-l4X5b5iM.js → setup-deploy-DGWwUwr1.js} +2 -2
- package/build/server/chunks/{setup-deploy-l4X5b5iM.js.map → setup-deploy-DGWwUwr1.js.map} +1 -1
- package/build/server/chunks/{src-D4Gm5mXv.js → src-Bqw87sul.js} +17 -48
- package/build/server/chunks/src-Bqw87sul.js.map +1 -0
- package/build/server/chunks/{state-CRRB2G4r.js → state-DIwd3OUy.js} +2 -2
- package/build/server/chunks/{state-CRRB2G4r.js.map → state-DIwd3OUy.js.map} +1 -1
- package/build/server/chunks/{state2-D0vyh78m.js → state2-DWJYlkBv.js} +2 -2
- package/build/server/chunks/{state2-D0vyh78m.js.map → state2-DWJYlkBv.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +93 -93
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/chunks/BO4NROwb.js.br +0 -0
- package/build/client/_app/immutable/chunks/BO4NROwb.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CLdO58WX.js.br +0 -0
- package/build/client/_app/immutable/chunks/CLdO58WX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Can7qHg2.js +0 -3
- package/build/client/_app/immutable/chunks/Can7qHg2.js.br +0 -0
- package/build/client/_app/immutable/chunks/Can7qHg2.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Sq4Ybtei.js +0 -1
- package/build/client/_app/immutable/chunks/Sq4Ybtei.js.br +0 -2
- package/build/client/_app/immutable/chunks/Sq4Ybtei.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.B0VnlV1D.js.br +0 -0
- package/build/client/_app/immutable/entry/app.B0VnlV1D.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BjMK74Tq.js +0 -1
- package/build/client/_app/immutable/entry/start.BjMK74Tq.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BjMK74Tq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.BrAaLw95.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.caleLvGw.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.caleLvGw.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.DMJXuosM.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DMJXuosM.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.4uWEFIGs.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.4uWEFIGs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BBl7JXjt.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BBl7JXjt.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.CchFRn2k.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CchFRn2k.js.gz +0 -0
- package/build/server/chunks/1-CBlVFGB9.js +0 -9
- package/build/server/chunks/_page.svelte-CeqrYx7P.js.map +0 -1
- package/build/server/chunks/_server.ts-9PjUPfnm.js.map +0 -1
- package/build/server/chunks/_server.ts-CiVIZEWF.js.map +0 -1
- package/build/server/chunks/_server.ts-CmRDeO3g.js +0 -656
- package/build/server/chunks/_server.ts-CmRDeO3g.js.map +0 -1
- package/build/server/chunks/src-D4Gm5mXv.js.map +0 -1
|
@@ -1,656 +0,0 @@
|
|
|
1
|
-
import { aU as runAssistantAkmCommand } from './src-D4Gm5mXv.js';
|
|
2
|
-
import { g as getState } from './state-CRRB2G4r.js';
|
|
3
|
-
import { d as getRequestId, r as requireAdmin } from './helpers-51xKvH3p.js';
|
|
4
|
-
import { s as safeParseJsonObject } from './akm-xwGlYpRz.js';
|
|
5
|
-
import './chunk-CLZ62Ad-.js';
|
|
6
|
-
import 'node:module';
|
|
7
|
-
import './provider-constants-DPrj3yBX.js';
|
|
8
|
-
import './dist-DOFcG0Zp.js';
|
|
9
|
-
import 'node:fs';
|
|
10
|
-
import 'node:path';
|
|
11
|
-
import 'buffer';
|
|
12
|
-
import 'fs';
|
|
13
|
-
import 'path';
|
|
14
|
-
import 'node:child_process';
|
|
15
|
-
import 'node:url';
|
|
16
|
-
import 'node:crypto';
|
|
17
|
-
import 'events';
|
|
18
|
-
import 'node:events';
|
|
19
|
-
import 'node:stream';
|
|
20
|
-
import 'node:string_decoder';
|
|
21
|
-
import 'assert';
|
|
22
|
-
import 'zlib';
|
|
23
|
-
import 'node:assert';
|
|
24
|
-
import 'node:fs/promises';
|
|
25
|
-
import 'node:os';
|
|
26
|
-
import './endpoints-CrOJJcY7.js';
|
|
27
|
-
|
|
28
|
-
//#region src/lib/server/akm-health-report.ts
|
|
29
|
-
var AKM_HEALTH_REPORT_WINDOWS = [
|
|
30
|
-
"24h",
|
|
31
|
-
"72h",
|
|
32
|
-
"7d",
|
|
33
|
-
"14d",
|
|
34
|
-
"30d"
|
|
35
|
-
];
|
|
36
|
-
function asRecord(value) {
|
|
37
|
-
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
38
|
-
}
|
|
39
|
-
function asArray(value) {
|
|
40
|
-
return Array.isArray(value) ? value : [];
|
|
41
|
-
}
|
|
42
|
-
function asNumber(value) {
|
|
43
|
-
return typeof value === "number" && Number.isFinite(value) ? value : 0;
|
|
44
|
-
}
|
|
45
|
-
function asString(value) {
|
|
46
|
-
return typeof value === "string" ? value : "";
|
|
47
|
-
}
|
|
48
|
-
function asBoolean(value) {
|
|
49
|
-
return value === true;
|
|
50
|
-
}
|
|
51
|
-
function clampWindow(value) {
|
|
52
|
-
return AKM_HEALTH_REPORT_WINDOWS.includes(value ?? "") ? value : "72h";
|
|
53
|
-
}
|
|
54
|
-
function escapeHtml(value) {
|
|
55
|
-
return value.replaceAll("&", "&").replaceAll("<", "<").replaceAll(">", ">").replaceAll("\"", """).replaceAll("'", "'");
|
|
56
|
-
}
|
|
57
|
-
function scriptJson(value) {
|
|
58
|
-
return JSON.stringify(value).replaceAll("<", "\\u003c");
|
|
59
|
-
}
|
|
60
|
-
function fmtInt(value) {
|
|
61
|
-
return new Intl.NumberFormat("en-US", { maximumFractionDigits: 0 }).format(value);
|
|
62
|
-
}
|
|
63
|
-
function fmtPercent(value) {
|
|
64
|
-
return `${(value * 100).toFixed(value === 0 || value >= .1 ? 0 : 1)}%`;
|
|
65
|
-
}
|
|
66
|
-
function fmtDuration(ms) {
|
|
67
|
-
if (!Number.isFinite(ms) || ms <= 0) return "0s";
|
|
68
|
-
if (ms < 1e3) return `${Math.round(ms)}ms`;
|
|
69
|
-
const seconds = ms / 1e3;
|
|
70
|
-
if (seconds < 60) return `${seconds.toFixed(seconds >= 10 ? 0 : 1)}s`;
|
|
71
|
-
const minutes = Math.floor(seconds / 60);
|
|
72
|
-
const remSeconds = Math.round(seconds % 60);
|
|
73
|
-
if (minutes < 60) return `${minutes}m ${remSeconds}s`;
|
|
74
|
-
return `${Math.floor(minutes / 60)}h ${minutes % 60}m`;
|
|
75
|
-
}
|
|
76
|
-
function fmtUtc(value) {
|
|
77
|
-
if (!value) return "n/a";
|
|
78
|
-
const d = new Date(value);
|
|
79
|
-
if (Number.isNaN(d.getTime())) return "n/a";
|
|
80
|
-
return d.toLocaleString("en-US", {
|
|
81
|
-
dateStyle: "medium",
|
|
82
|
-
timeStyle: "short",
|
|
83
|
-
timeZone: "UTC"
|
|
84
|
-
}) + " UTC";
|
|
85
|
-
}
|
|
86
|
-
function metricDelta(current, prior) {
|
|
87
|
-
if (prior === current) return "flat vs prior window";
|
|
88
|
-
if (prior === 0) return current > 0 ? "new vs prior window" : "flat vs prior window";
|
|
89
|
-
const pct = (current - prior) / Math.abs(prior) * 100;
|
|
90
|
-
return `${pct > 0 ? "up" : "down"} ${Math.abs(pct).toFixed(Math.abs(pct) >= 10 ? 0 : 1)}% vs prior window`;
|
|
91
|
-
}
|
|
92
|
-
function statusClass(status) {
|
|
93
|
-
if (status === "ok" || status === "pass") return "ok";
|
|
94
|
-
if (status === "warn") return "warn";
|
|
95
|
-
return "fail";
|
|
96
|
-
}
|
|
97
|
-
function buildCards(current, prior, proposalCount) {
|
|
98
|
-
const invoked = asNumber(current.invoked);
|
|
99
|
-
const completed = asNumber(current.completed);
|
|
100
|
-
const completionRate = invoked > 0 ? completed / invoked : 0;
|
|
101
|
-
const failRate = asNumber(asRecord(current.actions)?.error) > 0 && invoked > 0 ? asNumber(asRecord(current.actions)?.error) / invoked : 0;
|
|
102
|
-
const promoted = asNumber(asRecord(current.consolidation)?.promoted);
|
|
103
|
-
const written = asNumber(asRecord(current.memoryInference)?.written);
|
|
104
|
-
const entities = asNumber(asRecord(current.graphExtraction)?.entities);
|
|
105
|
-
const medianMs = asNumber(asRecord(current.wallTime)?.medianMs);
|
|
106
|
-
const priorInvoked = asNumber(prior.invoked);
|
|
107
|
-
const priorCompleted = asNumber(prior.completed);
|
|
108
|
-
const priorCompletionRate = priorInvoked > 0 ? priorCompleted / priorInvoked : 0;
|
|
109
|
-
const priorFailRate = asNumber(asRecord(prior.actions)?.error) > 0 && priorInvoked > 0 ? asNumber(asRecord(prior.actions)?.error) / priorInvoked : 0;
|
|
110
|
-
return [
|
|
111
|
-
{
|
|
112
|
-
label: "Completion rate",
|
|
113
|
-
value: fmtPercent(completionRate),
|
|
114
|
-
sub: metricDelta(completionRate, priorCompletionRate)
|
|
115
|
-
},
|
|
116
|
-
{
|
|
117
|
-
label: "Fail rate",
|
|
118
|
-
value: fmtPercent(failRate),
|
|
119
|
-
sub: metricDelta(failRate, priorFailRate)
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
label: "Promoted",
|
|
123
|
-
value: fmtInt(promoted),
|
|
124
|
-
sub: metricDelta(promoted, asNumber(asRecord(prior.consolidation)?.promoted))
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
label: "MI written",
|
|
128
|
-
value: fmtInt(written),
|
|
129
|
-
sub: metricDelta(written, asNumber(asRecord(prior.memoryInference)?.written))
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
label: "Graph entities",
|
|
133
|
-
value: fmtInt(entities),
|
|
134
|
-
sub: metricDelta(entities, asNumber(asRecord(prior.graphExtraction)?.entities))
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
label: "Median duration",
|
|
138
|
-
value: fmtDuration(medianMs),
|
|
139
|
-
sub: metricDelta(medianMs, asNumber(asRecord(prior.wallTime)?.medianMs))
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
label: "Runs",
|
|
143
|
-
value: fmtInt(completed),
|
|
144
|
-
sub: metricDelta(completed, priorCompleted)
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
label: "Pending proposals",
|
|
148
|
-
value: fmtInt(proposalCount),
|
|
149
|
-
sub: proposalCount > 0 ? "review queue has pending items" : "no pending proposals"
|
|
150
|
-
}
|
|
151
|
-
].map((card) => `
|
|
152
|
-
<div class="card">
|
|
153
|
-
<div class="card-label">${escapeHtml(card.label)}</div>
|
|
154
|
-
<div class="card-value">${escapeHtml(card.value)}</div>
|
|
155
|
-
<div class="card-sub">${escapeHtml(card.sub)}</div>
|
|
156
|
-
</div>`).join("");
|
|
157
|
-
}
|
|
158
|
-
function buildAdvisories(health) {
|
|
159
|
-
const items = [...asArray(health.advisories), ...asArray(health.hardChecks).filter((item) => {
|
|
160
|
-
const status = asString(asRecord(item)?.status);
|
|
161
|
-
return status === "warn" || status === "fail";
|
|
162
|
-
})].map((item) => asRecord(item)).filter((item) => item !== null);
|
|
163
|
-
if (items.length === 0) return "<div class=\"notice ok\">No active advisories for this window.</div>";
|
|
164
|
-
return items.map((item) => {
|
|
165
|
-
const status = statusClass(asString(item.status));
|
|
166
|
-
const name = asString(item.name) || "advisory";
|
|
167
|
-
const message = asString(item.message) || "No details.";
|
|
168
|
-
return `<div class="notice ${status}"><strong>${escapeHtml(name)}</strong><span>${escapeHtml(message)}</span></div>`;
|
|
169
|
-
}).join("");
|
|
170
|
-
}
|
|
171
|
-
function buildProposalRows(proposals) {
|
|
172
|
-
if (proposals.length === 0) return "<tr><td colspan=\"4\" class=\"empty\">No pending proposals.</td></tr>";
|
|
173
|
-
return proposals.slice(0, 20).map((proposal) => `
|
|
174
|
-
<tr>
|
|
175
|
-
<td>${escapeHtml(proposal.ref || proposal.id || "unknown")}</td>
|
|
176
|
-
<td>${escapeHtml(proposal.source || "unknown")}</td>
|
|
177
|
-
<td>${escapeHtml(fmtUtc(proposal.createdAt))}</td>
|
|
178
|
-
<td>${escapeHtml(proposal.id || "")}</td>
|
|
179
|
-
</tr>`).join("");
|
|
180
|
-
}
|
|
181
|
-
function buildRunRows(runs) {
|
|
182
|
-
if (runs.length === 0) return "<tr><td colspan=\"6\" class=\"empty\">No improve runs in this window.</td></tr>";
|
|
183
|
-
return runs.slice(-10).reverse().map((run, index) => {
|
|
184
|
-
const consolidation = asRecord(run.consolidation);
|
|
185
|
-
const memoryInference = asRecord(run.memoryInference);
|
|
186
|
-
const graphExtraction = asRecord(run.graphExtraction);
|
|
187
|
-
const startedAt = asString(run.startedAt);
|
|
188
|
-
const durationMs = asNumber(run.wallTimeMs) || asNumber(run.durationMs);
|
|
189
|
-
return `
|
|
190
|
-
<tr>
|
|
191
|
-
<td>${escapeHtml(asString(run.runId) || asString(run.id) || `run-${index + 1}`)}</td>
|
|
192
|
-
<td>${escapeHtml(fmtUtc(startedAt))}</td>
|
|
193
|
-
<td>${escapeHtml(fmtDuration(durationMs))}</td>
|
|
194
|
-
<td>${escapeHtml(String(asBoolean(run.ok) ? "ok" : "fail"))}</td>
|
|
195
|
-
<td>${escapeHtml(fmtInt(asNumber(consolidation?.promoted)))}</td>
|
|
196
|
-
<td>${escapeHtml(fmtInt(asNumber(memoryInference?.written)))}</td>
|
|
197
|
-
<td>${escapeHtml(fmtInt(asNumber(graphExtraction?.entities)))}</td>
|
|
198
|
-
</tr>`;
|
|
199
|
-
}).join("");
|
|
200
|
-
}
|
|
201
|
-
function buildSummaryRows(current) {
|
|
202
|
-
return [
|
|
203
|
-
["Invoked", fmtInt(asNumber(current.invoked))],
|
|
204
|
-
["Completed", fmtInt(asNumber(current.completed))],
|
|
205
|
-
["Skipped", fmtInt(asNumber(current.skipped))],
|
|
206
|
-
["Promoted", fmtInt(asNumber(asRecord(current.consolidation)?.promoted))],
|
|
207
|
-
["Merged", fmtInt(asNumber(asRecord(current.consolidation)?.merged))],
|
|
208
|
-
["Deleted", fmtInt(asNumber(asRecord(current.consolidation)?.deleted))],
|
|
209
|
-
["Judged no action", fmtInt(asNumber(asRecord(current.consolidation)?.judgedNoAction))],
|
|
210
|
-
["Inference written", fmtInt(asNumber(asRecord(current.memoryInference)?.written))],
|
|
211
|
-
["Graph entities", fmtInt(asNumber(asRecord(current.graphExtraction)?.entities))],
|
|
212
|
-
["Median wall time", fmtDuration(asNumber(asRecord(current.wallTime)?.medianMs))]
|
|
213
|
-
].map(([label, value]) => `
|
|
214
|
-
<tr>
|
|
215
|
-
<th>${escapeHtml(label)}</th>
|
|
216
|
-
<td>${escapeHtml(value)}</td>
|
|
217
|
-
</tr>`).join("");
|
|
218
|
-
}
|
|
219
|
-
function renderHtml(window, health, proposals) {
|
|
220
|
-
const improve = asRecord(health.improve) ?? {};
|
|
221
|
-
const windows = asArray(health.windows).map((item) => asRecord(item)).filter((item) => item !== null);
|
|
222
|
-
const currentWindow = asRecord(windows.find((item) => asString(item.name) === "current")?.improve) ?? improve;
|
|
223
|
-
const priorWindow = asRecord(windows.find((item) => asString(item.name) === "prior")?.improve) ?? {};
|
|
224
|
-
const runs = asArray(health.runs).map((item) => asRecord(item)).filter((item) => item !== null);
|
|
225
|
-
const status = asString(health.status) || "unknown";
|
|
226
|
-
const since = asString(health.since);
|
|
227
|
-
const until = asString((windows.find((item) => asString(item.name) === "current") ?? {}).until);
|
|
228
|
-
const semanticStatus = asString(asRecord(asArray(health.advisories).map((item) => asRecord(item)).find((item) => asString(item?.name) === "semantic-search-runtime")?.evidence)?.status) || "unknown";
|
|
229
|
-
const payload = runs.map((run, index) => {
|
|
230
|
-
const consolidation = asRecord(run.consolidation);
|
|
231
|
-
const memoryInference = asRecord(run.memoryInference);
|
|
232
|
-
const graphExtraction = asRecord(run.graphExtraction);
|
|
233
|
-
return {
|
|
234
|
-
label: asString(run.startedAt) ? fmtUtc(asString(run.startedAt)).replace(" UTC", "") : `Run ${index + 1}`,
|
|
235
|
-
wallTimeMs: asNumber(run.wallTimeMs) || asNumber(run.durationMs),
|
|
236
|
-
promoted: asNumber(consolidation?.promoted),
|
|
237
|
-
merged: asNumber(consolidation?.merged),
|
|
238
|
-
deleted: asNumber(consolidation?.deleted),
|
|
239
|
-
judgedNoAction: asNumber(consolidation?.judgedNoAction),
|
|
240
|
-
written: asNumber(memoryInference?.written),
|
|
241
|
-
entities: asNumber(graphExtraction?.entities),
|
|
242
|
-
consolidationMs: asNumber(consolidation?.durationMs),
|
|
243
|
-
memoryInferenceMs: asNumber(memoryInference?.durationMs),
|
|
244
|
-
graphExtractionMs: asNumber(graphExtraction?.durationMs),
|
|
245
|
-
ok: asBoolean(run.ok)
|
|
246
|
-
};
|
|
247
|
-
});
|
|
248
|
-
return `<!doctype html>
|
|
249
|
-
<html lang="en">
|
|
250
|
-
<head>
|
|
251
|
-
<meta charset="utf-8">
|
|
252
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
253
|
-
<title>AKM Health Report (${escapeHtml(window)})</title>
|
|
254
|
-
<style>
|
|
255
|
-
:root {
|
|
256
|
-
color-scheme: dark;
|
|
257
|
-
--bg: #07111f;
|
|
258
|
-
--panel: #101b2d;
|
|
259
|
-
--panel-soft: #15233a;
|
|
260
|
-
--border: rgba(148, 163, 184, 0.18);
|
|
261
|
-
--text: #e5eefc;
|
|
262
|
-
--muted: #93a4bf;
|
|
263
|
-
--ok: #22c55e;
|
|
264
|
-
--warn: #f59e0b;
|
|
265
|
-
--fail: #ef4444;
|
|
266
|
-
--accent: #60a5fa;
|
|
267
|
-
}
|
|
268
|
-
* { box-sizing: border-box; }
|
|
269
|
-
body {
|
|
270
|
-
margin: 0;
|
|
271
|
-
font-family: Inter, ui-sans-serif, system-ui, sans-serif;
|
|
272
|
-
background: radial-gradient(circle at top, #14233d 0%, var(--bg) 55%);
|
|
273
|
-
color: var(--text);
|
|
274
|
-
padding: 24px;
|
|
275
|
-
}
|
|
276
|
-
.shell {
|
|
277
|
-
max-width: 1400px;
|
|
278
|
-
margin: 0 auto;
|
|
279
|
-
display: grid;
|
|
280
|
-
gap: 20px;
|
|
281
|
-
}
|
|
282
|
-
.hero, .panel {
|
|
283
|
-
background: rgba(16, 27, 45, 0.9);
|
|
284
|
-
border: 1px solid var(--border);
|
|
285
|
-
border-radius: 18px;
|
|
286
|
-
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.28);
|
|
287
|
-
}
|
|
288
|
-
.hero {
|
|
289
|
-
padding: 24px;
|
|
290
|
-
display: grid;
|
|
291
|
-
gap: 16px;
|
|
292
|
-
}
|
|
293
|
-
.hero-top {
|
|
294
|
-
display: flex;
|
|
295
|
-
justify-content: space-between;
|
|
296
|
-
gap: 16px;
|
|
297
|
-
align-items: flex-start;
|
|
298
|
-
flex-wrap: wrap;
|
|
299
|
-
}
|
|
300
|
-
h1, h2, h3, p { margin: 0; }
|
|
301
|
-
.eyebrow { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; }
|
|
302
|
-
.title { font-size: clamp(28px, 4vw, 40px); font-weight: 700; }
|
|
303
|
-
.subtitle { color: var(--muted); max-width: 80ch; }
|
|
304
|
-
.status {
|
|
305
|
-
border-radius: 999px;
|
|
306
|
-
padding: 8px 12px;
|
|
307
|
-
font-size: 12px;
|
|
308
|
-
font-weight: 700;
|
|
309
|
-
text-transform: uppercase;
|
|
310
|
-
letter-spacing: 0.08em;
|
|
311
|
-
border: 1px solid transparent;
|
|
312
|
-
}
|
|
313
|
-
.status.ok { color: #bbf7d0; background: rgba(34, 197, 94, 0.14); border-color: rgba(34, 197, 94, 0.32); }
|
|
314
|
-
.status.warn { color: #fde68a; background: rgba(245, 158, 11, 0.14); border-color: rgba(245, 158, 11, 0.32); }
|
|
315
|
-
.status.fail { color: #fecaca; background: rgba(239, 68, 68, 0.14); border-color: rgba(239, 68, 68, 0.32); }
|
|
316
|
-
.meta {
|
|
317
|
-
display: grid;
|
|
318
|
-
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
319
|
-
gap: 12px;
|
|
320
|
-
}
|
|
321
|
-
.meta-item, .card {
|
|
322
|
-
background: var(--panel-soft);
|
|
323
|
-
border: 1px solid var(--border);
|
|
324
|
-
border-radius: 14px;
|
|
325
|
-
padding: 14px;
|
|
326
|
-
}
|
|
327
|
-
.meta-label, .card-label { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: 0.06em; }
|
|
328
|
-
.meta-value, .card-value { margin-top: 8px; font-size: 22px; font-weight: 700; }
|
|
329
|
-
.card-sub { margin-top: 8px; color: var(--muted); font-size: 13px; }
|
|
330
|
-
.cards {
|
|
331
|
-
display: grid;
|
|
332
|
-
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
|
|
333
|
-
gap: 12px;
|
|
334
|
-
}
|
|
335
|
-
.grid-two {
|
|
336
|
-
display: grid;
|
|
337
|
-
grid-template-columns: minmax(0, 2fr) minmax(320px, 1fr);
|
|
338
|
-
gap: 20px;
|
|
339
|
-
}
|
|
340
|
-
.panel { padding: 18px; }
|
|
341
|
-
.panel-title { font-size: 18px; font-weight: 700; margin-bottom: 14px; }
|
|
342
|
-
.chart-grid {
|
|
343
|
-
display: grid;
|
|
344
|
-
grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
|
|
345
|
-
gap: 16px;
|
|
346
|
-
}
|
|
347
|
-
.chart {
|
|
348
|
-
height: 320px;
|
|
349
|
-
background: linear-gradient(180deg, rgba(255,255,255,0.01), rgba(255,255,255,0));
|
|
350
|
-
border: 1px solid var(--border);
|
|
351
|
-
border-radius: 14px;
|
|
352
|
-
}
|
|
353
|
-
.notice-list {
|
|
354
|
-
display: grid;
|
|
355
|
-
gap: 10px;
|
|
356
|
-
}
|
|
357
|
-
.notice {
|
|
358
|
-
display: grid;
|
|
359
|
-
gap: 6px;
|
|
360
|
-
border-radius: 14px;
|
|
361
|
-
padding: 14px;
|
|
362
|
-
border: 1px solid var(--border);
|
|
363
|
-
background: var(--panel-soft);
|
|
364
|
-
}
|
|
365
|
-
.notice.ok { border-color: rgba(34, 197, 94, 0.32); }
|
|
366
|
-
.notice.warn { border-color: rgba(245, 158, 11, 0.32); }
|
|
367
|
-
.notice.fail { border-color: rgba(239, 68, 68, 0.32); }
|
|
368
|
-
.summary-table, .data-table {
|
|
369
|
-
width: 100%;
|
|
370
|
-
border-collapse: collapse;
|
|
371
|
-
}
|
|
372
|
-
.summary-table th, .summary-table td, .data-table th, .data-table td {
|
|
373
|
-
padding: 10px 12px;
|
|
374
|
-
border-bottom: 1px solid var(--border);
|
|
375
|
-
text-align: left;
|
|
376
|
-
vertical-align: top;
|
|
377
|
-
}
|
|
378
|
-
.summary-table th, .data-table th { color: var(--muted); font-weight: 600; }
|
|
379
|
-
.empty { color: var(--muted); text-align: center; }
|
|
380
|
-
.footer-note { color: var(--muted); font-size: 13px; }
|
|
381
|
-
@media (max-width: 900px) {
|
|
382
|
-
body { padding: 12px; }
|
|
383
|
-
.grid-two { grid-template-columns: 1fr; }
|
|
384
|
-
}
|
|
385
|
-
@media (prefers-color-scheme: light) {
|
|
386
|
-
:root {
|
|
387
|
-
color-scheme: light;
|
|
388
|
-
--bg: #f9fafb;
|
|
389
|
-
--panel: #ffffff;
|
|
390
|
-
--panel-soft: #f3f4f6;
|
|
391
|
-
--border: rgba(0, 0, 0, 0.1);
|
|
392
|
-
--text: #111827;
|
|
393
|
-
--muted: #6b7280;
|
|
394
|
-
--ok: #16a34a;
|
|
395
|
-
--warn: #d97706;
|
|
396
|
-
--fail: #dc2626;
|
|
397
|
-
--accent: #2563eb;
|
|
398
|
-
}
|
|
399
|
-
body {
|
|
400
|
-
background: radial-gradient(circle at top, #e9f0ff 0%, var(--bg) 55%);
|
|
401
|
-
color: var(--text);
|
|
402
|
-
}
|
|
403
|
-
.hero, .panel {
|
|
404
|
-
background: rgba(255, 255, 255, 0.95);
|
|
405
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
|
|
406
|
-
}
|
|
407
|
-
.status.ok { color: #15803d; background: rgba(22, 163, 74, 0.1); border-color: rgba(22, 163, 74, 0.3); }
|
|
408
|
-
.status.warn { color: #b45309; background: rgba(217, 119, 6, 0.1); border-color: rgba(217, 119, 6, 0.3); }
|
|
409
|
-
.status.fail { color: #b91c1c; background: rgba(220, 38, 38, 0.1); border-color: rgba(220, 38, 38, 0.3); }
|
|
410
|
-
}
|
|
411
|
-
</style>
|
|
412
|
-
</head>
|
|
413
|
-
<body>
|
|
414
|
-
<div class="shell">
|
|
415
|
-
<section class="hero">
|
|
416
|
-
<div class="hero-top">
|
|
417
|
-
<div>
|
|
418
|
-
<div class="eyebrow">AKM Health Report</div>
|
|
419
|
-
<h1 class="title">Knowledge Health for ${escapeHtml(window)}</h1>
|
|
420
|
-
<p class="subtitle">Generated from live <code>akm health</code> data inside the running assistant container. This mirrors the existing AKM report shape with KPI cards, ECharts trends, advisories, and queue visibility.</p>
|
|
421
|
-
</div>
|
|
422
|
-
<div class="status ${escapeHtml(statusClass(status))}">${escapeHtml(status)}</div>
|
|
423
|
-
</div>
|
|
424
|
-
<div class="meta">
|
|
425
|
-
<div class="meta-item">
|
|
426
|
-
<div class="meta-label">Window</div>
|
|
427
|
-
<div class="meta-value">${escapeHtml(window)}</div>
|
|
428
|
-
</div>
|
|
429
|
-
<div class="meta-item">
|
|
430
|
-
<div class="meta-label">Since</div>
|
|
431
|
-
<div class="meta-value">${escapeHtml(fmtUtc(since))}</div>
|
|
432
|
-
</div>
|
|
433
|
-
<div class="meta-item">
|
|
434
|
-
<div class="meta-label">Until</div>
|
|
435
|
-
<div class="meta-value">${escapeHtml(fmtUtc(until))}</div>
|
|
436
|
-
</div>
|
|
437
|
-
<div class="meta-item">
|
|
438
|
-
<div class="meta-label">Semantic search</div>
|
|
439
|
-
<div class="meta-value">${escapeHtml(semanticStatus)}</div>
|
|
440
|
-
</div>
|
|
441
|
-
</div>
|
|
442
|
-
<div class="cards">${buildCards(currentWindow, priorWindow, proposals.length)}</div>
|
|
443
|
-
</section>
|
|
444
|
-
|
|
445
|
-
<section class="panel">
|
|
446
|
-
<h2 class="panel-title">Run Trends</h2>
|
|
447
|
-
<div class="chart-grid">
|
|
448
|
-
<div id="chartWallTime" class="chart"></div>
|
|
449
|
-
<div id="chartPhases" class="chart"></div>
|
|
450
|
-
<div id="chartOutput" class="chart"></div>
|
|
451
|
-
<div id="chartKnowledge" class="chart"></div>
|
|
452
|
-
</div>
|
|
453
|
-
</section>
|
|
454
|
-
|
|
455
|
-
<section class="grid-two">
|
|
456
|
-
<div class="panel">
|
|
457
|
-
<h2 class="panel-title">Summary</h2>
|
|
458
|
-
<table class="summary-table">
|
|
459
|
-
<tbody>${buildSummaryRows(currentWindow)}</tbody>
|
|
460
|
-
</table>
|
|
461
|
-
</div>
|
|
462
|
-
<div class="panel">
|
|
463
|
-
<h2 class="panel-title">Advisories</h2>
|
|
464
|
-
<div class="notice-list">${buildAdvisories(health)}</div>
|
|
465
|
-
</div>
|
|
466
|
-
</section>
|
|
467
|
-
|
|
468
|
-
<section class="grid-two">
|
|
469
|
-
<div class="panel">
|
|
470
|
-
<h2 class="panel-title">Pending Proposals (${escapeHtml(fmtInt(proposals.length))})</h2>
|
|
471
|
-
<table class="data-table">
|
|
472
|
-
<thead>
|
|
473
|
-
<tr><th>Ref</th><th>Source</th><th>Created</th><th>ID</th></tr>
|
|
474
|
-
</thead>
|
|
475
|
-
<tbody>${buildProposalRows(proposals)}</tbody>
|
|
476
|
-
</table>
|
|
477
|
-
</div>
|
|
478
|
-
<div class="panel">
|
|
479
|
-
<h2 class="panel-title">Recent Runs</h2>
|
|
480
|
-
<table class="data-table">
|
|
481
|
-
<thead>
|
|
482
|
-
<tr><th>Run</th><th>Started</th><th>Duration</th><th>Status</th><th>Promoted</th><th>MI</th><th>Entities</th></tr>
|
|
483
|
-
</thead>
|
|
484
|
-
<tbody>${buildRunRows(runs)}</tbody>
|
|
485
|
-
</table>
|
|
486
|
-
</div>
|
|
487
|
-
</section>
|
|
488
|
-
|
|
489
|
-
<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>
|
|
490
|
-
</div>
|
|
491
|
-
|
|
492
|
-
<script>window.REPORT_DATA = ${scriptJson(payload)};<\/script>
|
|
493
|
-
<script src="https://cdn.jsdelivr.net/npm/echarts@5.5.1/dist/echarts.min.js"><\/script>
|
|
494
|
-
<script>
|
|
495
|
-
const runs = Array.isArray(window.REPORT_DATA) ? window.REPORT_DATA : [];
|
|
496
|
-
const textColor = '#dbe7ff';
|
|
497
|
-
const mutedColor = '#93a4bf';
|
|
498
|
-
const axisStyle = { axisLabel: { color: mutedColor }, axisLine: { lineStyle: { color: '#334155' } }, splitLine: { lineStyle: { color: 'rgba(148,163,184,0.12)' } } };
|
|
499
|
-
function baseChart(id) {
|
|
500
|
-
const el = document.getElementById(id);
|
|
501
|
-
if (!el || !window.echarts) return null;
|
|
502
|
-
return window.echarts.init(el, null, { renderer: 'canvas' });
|
|
503
|
-
}
|
|
504
|
-
function setEmpty(elId, label) {
|
|
505
|
-
const el = document.getElementById(elId);
|
|
506
|
-
if (!el) return;
|
|
507
|
-
el.innerHTML = '<div style="height:100%;display:grid;place-items:center;color:' + mutedColor + ';font-size:14px;">' + label + '</div>';
|
|
508
|
-
}
|
|
509
|
-
function labels() { return runs.map((run) => run.label); }
|
|
510
|
-
if (!window.echarts) {
|
|
511
|
-
['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'ECharts failed to load.'));
|
|
512
|
-
} else if (runs.length === 0) {
|
|
513
|
-
['chartWallTime', 'chartPhases', 'chartOutput', 'chartKnowledge'].forEach((id) => setEmpty(id, 'No runs in this window.'));
|
|
514
|
-
} else {
|
|
515
|
-
const common = { textStyle: { color: textColor }, animation: false, grid: { left: 48, right: 18, top: 40, bottom: 36 }, tooltip: { trigger: 'axis' } };
|
|
516
|
-
const wallTime = baseChart('chartWallTime');
|
|
517
|
-
wallTime && wallTime.setOption({
|
|
518
|
-
...common,
|
|
519
|
-
title: { text: 'Wall Time Per Run', textStyle: { color: textColor, fontSize: 14 } },
|
|
520
|
-
xAxis: { type: 'category', data: labels(), ...axisStyle },
|
|
521
|
-
yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },
|
|
522
|
-
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)' } }]
|
|
523
|
-
});
|
|
524
|
-
|
|
525
|
-
const phases = baseChart('chartPhases');
|
|
526
|
-
phases && phases.setOption({
|
|
527
|
-
...common,
|
|
528
|
-
title: { text: 'Phase Breakdown', textStyle: { color: textColor, fontSize: 14 } },
|
|
529
|
-
legend: { textStyle: { color: mutedColor } },
|
|
530
|
-
xAxis: { type: 'category', data: labels(), ...axisStyle },
|
|
531
|
-
yAxis: { type: 'value', axisLabel: { color: mutedColor, formatter: (value) => Math.round(value / 1000) + 's' }, splitLine: axisStyle.splitLine },
|
|
532
|
-
series: [
|
|
533
|
-
{ name: 'Consolidation', type: 'bar', stack: 'phases', data: runs.map((run) => run.consolidationMs), itemStyle: { color: '#60a5fa' } },
|
|
534
|
-
{ name: 'Memory Inference', type: 'bar', stack: 'phases', data: runs.map((run) => run.memoryInferenceMs), itemStyle: { color: '#a78bfa' } },
|
|
535
|
-
{ name: 'Graph Extraction', type: 'bar', stack: 'phases', data: runs.map((run) => run.graphExtractionMs), itemStyle: { color: '#34d399' } }
|
|
536
|
-
]
|
|
537
|
-
});
|
|
538
|
-
|
|
539
|
-
const output = baseChart('chartOutput');
|
|
540
|
-
output && output.setOption({
|
|
541
|
-
...common,
|
|
542
|
-
title: { text: 'Consolidation Output', textStyle: { color: textColor, fontSize: 14 } },
|
|
543
|
-
legend: { textStyle: { color: mutedColor } },
|
|
544
|
-
xAxis: { type: 'category', data: labels(), ...axisStyle },
|
|
545
|
-
yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },
|
|
546
|
-
series: [
|
|
547
|
-
{ name: 'Promoted', type: 'bar', data: runs.map((run) => run.promoted), itemStyle: { color: '#22c55e' } },
|
|
548
|
-
{ name: 'Merged', type: 'bar', data: runs.map((run) => run.merged), itemStyle: { color: '#f59e0b' } },
|
|
549
|
-
{ name: 'Deleted', type: 'bar', data: runs.map((run) => run.deleted), itemStyle: { color: '#ef4444' } },
|
|
550
|
-
{ name: 'No action', type: 'bar', data: runs.map((run) => run.judgedNoAction), itemStyle: { color: '#94a3b8' } }
|
|
551
|
-
]
|
|
552
|
-
});
|
|
553
|
-
|
|
554
|
-
const knowledge = baseChart('chartKnowledge');
|
|
555
|
-
knowledge && knowledge.setOption({
|
|
556
|
-
...common,
|
|
557
|
-
title: { text: 'Knowledge Growth Signals', textStyle: { color: textColor, fontSize: 14 } },
|
|
558
|
-
legend: { textStyle: { color: mutedColor } },
|
|
559
|
-
xAxis: { type: 'category', data: labels(), ...axisStyle },
|
|
560
|
-
yAxis: { type: 'value', axisLabel: { color: mutedColor }, splitLine: axisStyle.splitLine },
|
|
561
|
-
series: [
|
|
562
|
-
{ name: 'MI written', type: 'line', smooth: true, data: runs.map((run) => run.written), itemStyle: { color: '#a78bfa' }, lineStyle: { color: '#a78bfa' } },
|
|
563
|
-
{ name: 'Entities', type: 'line', smooth: true, data: runs.map((run) => run.entities), itemStyle: { color: '#34d399' }, lineStyle: { color: '#34d399' } }
|
|
564
|
-
]
|
|
565
|
-
});
|
|
566
|
-
|
|
567
|
-
window.addEventListener('resize', () => {
|
|
568
|
-
wallTime && wallTime.resize();
|
|
569
|
-
phases && phases.resize();
|
|
570
|
-
output && output.resize();
|
|
571
|
-
knowledge && knowledge.resize();
|
|
572
|
-
});
|
|
573
|
-
}
|
|
574
|
-
<\/script>
|
|
575
|
-
</body>
|
|
576
|
-
</html>`;
|
|
577
|
-
}
|
|
578
|
-
async function buildAkmHealthReport(state, requestedWindow) {
|
|
579
|
-
const window = clampWindow(requestedWindow);
|
|
580
|
-
const [healthResult, proposalsResult] = await Promise.all([runAssistantAkmCommand(state, [
|
|
581
|
-
"health",
|
|
582
|
-
`--since=${window}`,
|
|
583
|
-
"--group-by",
|
|
584
|
-
"run",
|
|
585
|
-
`--window-compare=${window}`,
|
|
586
|
-
"--format",
|
|
587
|
-
"json"
|
|
588
|
-
], 2e4), runAssistantAkmCommand(state, [
|
|
589
|
-
"proposal",
|
|
590
|
-
"list",
|
|
591
|
-
"--format",
|
|
592
|
-
"json"
|
|
593
|
-
], 12e3)]);
|
|
594
|
-
const health = safeParseJsonObject(healthResult.stdout);
|
|
595
|
-
const proposalsPayload = safeParseJsonObject(proposalsResult.stdout);
|
|
596
|
-
if (!health) {
|
|
597
|
-
const detail = [healthResult.stderr.trim(), healthResult.stdout.trim()].filter(Boolean).join("\n\n");
|
|
598
|
-
return {
|
|
599
|
-
window,
|
|
600
|
-
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>`
|
|
601
|
-
};
|
|
602
|
-
}
|
|
603
|
-
return {
|
|
604
|
-
html: renderHtml(window, health, asArray(proposalsPayload?.proposals).map((item) => asRecord(item)).filter((item) => item !== null).map((item) => ({
|
|
605
|
-
id: asString(item.id),
|
|
606
|
-
ref: asString(item.ref),
|
|
607
|
-
source: asString(item.source),
|
|
608
|
-
createdAt: asString(item.createdAt)
|
|
609
|
-
}))),
|
|
610
|
-
window
|
|
611
|
-
};
|
|
612
|
-
}
|
|
613
|
-
//#endregion
|
|
614
|
-
//#region src/routes/admin/akm/health-report/+server.ts
|
|
615
|
-
var REPORT_CSP = [
|
|
616
|
-
"default-src 'none'",
|
|
617
|
-
"script-src 'self' 'unsafe-inline' https://cdn.jsdelivr.net",
|
|
618
|
-
"style-src 'unsafe-inline'",
|
|
619
|
-
"img-src 'self' data:",
|
|
620
|
-
"font-src 'self' data:",
|
|
621
|
-
"connect-src 'none'",
|
|
622
|
-
"object-src 'none'",
|
|
623
|
-
"base-uri 'none'",
|
|
624
|
-
"form-action 'none'",
|
|
625
|
-
"frame-ancestors 'self'"
|
|
626
|
-
].join("; ");
|
|
627
|
-
var GET = async (event) => {
|
|
628
|
-
const requestId = getRequestId(event);
|
|
629
|
-
const denied = requireAdmin(event, requestId);
|
|
630
|
-
if (denied) return denied;
|
|
631
|
-
try {
|
|
632
|
-
const { html } = await buildAkmHealthReport(getState(), event.url.searchParams.get("since"));
|
|
633
|
-
return new Response(html, {
|
|
634
|
-
status: 200,
|
|
635
|
-
headers: {
|
|
636
|
-
"content-type": "text/html; charset=utf-8",
|
|
637
|
-
"cache-control": "no-store",
|
|
638
|
-
"content-security-policy": REPORT_CSP,
|
|
639
|
-
"x-request-id": requestId
|
|
640
|
-
}
|
|
641
|
-
});
|
|
642
|
-
} catch (error) {
|
|
643
|
-
const message = error instanceof Error ? error.message : "Failed to build AKM health report.";
|
|
644
|
-
return new Response(message, {
|
|
645
|
-
status: 500,
|
|
646
|
-
headers: {
|
|
647
|
-
"content-type": "text/plain; charset=utf-8",
|
|
648
|
-
"cache-control": "no-store",
|
|
649
|
-
"x-request-id": requestId
|
|
650
|
-
}
|
|
651
|
-
});
|
|
652
|
-
}
|
|
653
|
-
};
|
|
654
|
-
|
|
655
|
-
export { GET };
|
|
656
|
-
//# sourceMappingURL=_server.ts-CmRDeO3g.js.map
|