@openpalm/ui 0.11.0-rc.10
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/README.md +160 -0
- package/build/.openpalm-ui-version +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css +1 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.br +0 -0
- package/build/client/_app/immutable/assets/0.p3iHeEvq.css.gz +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css +1 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.br +0 -0
- package/build/client/_app/immutable/assets/4.BakrtzGF.css.gz +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css +1 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.br +0 -0
- package/build/client/_app/immutable/assets/5.Cj0Mk9Gn.css.gz +0 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.br +1 -0
- package/build/client/_app/immutable/assets/6.B0Z8tVIH.css.gz +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css +1 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.br +0 -0
- package/build/client/_app/immutable/assets/7.Cucah5cY.css.gz +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css +1 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.br +0 -0
- package/build/client/_app/immutable/assets/8.DjrHy5wu.css.gz +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css +1 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.br +0 -0
- package/build/client/_app/immutable/assets/AuthGate.B8fOC_pJ.css.gz +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css +1 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.br +0 -0
- package/build/client/_app/immutable/assets/ModeSwitch.RmRIDur-.css.gz +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css +1 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.br +0 -0
- package/build/client/_app/immutable/assets/VoiceProfileSelector.CM_o2XIa.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js +5 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.br +0 -0
- package/build/client/_app/immutable/chunks/BDFsK-cU.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js +1 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.br +0 -0
- package/build/client/_app/immutable/chunks/BOq4Y36A.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js +1 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bdvti_5C.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js +1 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.br +0 -0
- package/build/client/_app/immutable/chunks/BuFlayix.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js +3 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.br +0 -0
- package/build/client/_app/immutable/chunks/BwTF6U35.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js +1 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJkMgfFh.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js +1 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.br +0 -0
- package/build/client/_app/immutable/chunks/DQCVeARi.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js +1 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.br +0 -0
- package/build/client/_app/immutable/chunks/DpdFx-ph.js.gz +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js +1 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.br +0 -0
- package/build/client/_app/immutable/chunks/kNaey6uv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.br +1 -0
- package/build/client/_app/immutable/chunks/os2NZ37U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.br +1 -0
- package/build/client/_app/immutable/chunks/xihTtKlq.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js +2 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.br +0 -0
- package/build/client/_app/immutable/entry/app.Coaz9qVz.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.br +1 -0
- package/build/client/_app/immutable/entry/start.CaHQB6hU.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js +1 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.BUaVTC13.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js +1 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.br +0 -0
- package/build/client/_app/immutable/nodes/1.DpM9NN8J.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js +1 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.ojh8oE7F.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js +1 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DeAC3yVJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js +18 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.8L-_wsn9.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js +4 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.kb9iVd3S.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js +1 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DtmDzmki.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js +15 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.-Pv5Qce0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js +2 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.Rc3xcFgu.js.gz +0 -0
- package/build/client/_app/version.json +1 -0
- package/build/client/_app/version.json.br +1 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/client/banner.png +0 -0
- package/build/client/fu-128.png +0 -0
- package/build/client/fu.png +0 -0
- package/build/client/logo-128.png +0 -0
- package/build/client/logo.png +0 -0
- package/build/client/setup/wizard.css +1639 -0
- package/build/client/setup/wizard.css.br +0 -0
- package/build/client/setup/wizard.css.gz +0 -0
- package/build/client/wizard-128.png +0 -0
- package/build/client/wizard.png +0 -0
- package/build/env.js +94 -0
- package/build/handler.js +1494 -0
- package/build/index.js +345 -0
- package/build/server/chunks/0-TTdZdv8o.js +9 -0
- package/build/server/chunks/0-TTdZdv8o.js.map +1 -0
- package/build/server/chunks/1-XPMbcj69.js +9 -0
- package/build/server/chunks/1-XPMbcj69.js.map +1 -0
- package/build/server/chunks/2-C2y4ydWU.js +9 -0
- package/build/server/chunks/2-C2y4ydWU.js.map +1 -0
- package/build/server/chunks/3-BgeGdVvT.js +23 -0
- package/build/server/chunks/3-BgeGdVvT.js.map +1 -0
- package/build/server/chunks/4-v8u4eatk.js +9 -0
- package/build/server/chunks/4-v8u4eatk.js.map +1 -0
- package/build/server/chunks/5-BkUoZ2K4.js +9 -0
- package/build/server/chunks/5-BkUoZ2K4.js.map +1 -0
- package/build/server/chunks/6-Cep4AGS2.js +9 -0
- package/build/server/chunks/6-Cep4AGS2.js.map +1 -0
- package/build/server/chunks/7-DOEFGynd.js +9 -0
- package/build/server/chunks/7-DOEFGynd.js.map +1 -0
- package/build/server/chunks/8-EJHw3wqt.js +9 -0
- package/build/server/chunks/8-EJHw3wqt.js.map +1 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js +741 -0
- package/build/server/chunks/AuthGate-UhfWI3rb.js.map +1 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js +15 -0
- package/build/server/chunks/ModeSwitch-S3I-WINb.js.map +1 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js +74 -0
- package/build/server/chunks/_helpers-B_lb4-jB.js.map +1 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js +11 -0
- package/build/server/chunks/_layout.svelte-B93aaRP_.js.map +1 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js +60 -0
- package/build/server/chunks/_layout.svelte-CcloHuB_.js.map +1 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js +69 -0
- package/build/server/chunks/_page.svelte-9RQ3rYiU.js.map +1 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js +5 -0
- package/build/server/chunks/_page.svelte-BP2EdQl3.js.map +1 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js +408 -0
- package/build/server/chunks/_page.svelte-CKARhLvT.js.map +1 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js +5540 -0
- package/build/server/chunks/_page.svelte-CnZsPxgJ.js.map +1 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js +104 -0
- package/build/server/chunks/_page.svelte-D0gMlmzQ.js.map +1 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js +106 -0
- package/build/server/chunks/_page.svelte-pxsCzB7-.js.map +1 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js +19 -0
- package/build/server/chunks/_server.ts-33LuQvHu.js.map +1 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js +514 -0
- package/build/server/chunks/_server.ts-5CjguYY3.js.map +1 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js +64 -0
- package/build/server/chunks/_server.ts-B3tjtq2m.js.map +1 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js +70 -0
- package/build/server/chunks/_server.ts-B4N5gO26.js.map +1 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js +82 -0
- package/build/server/chunks/_server.ts-B6FENZO7.js.map +1 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js +41 -0
- package/build/server/chunks/_server.ts-B8JtVHLy.js.map +1 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js +68 -0
- package/build/server/chunks/_server.ts-BR9OrjcE.js.map +1 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js +107 -0
- package/build/server/chunks/_server.ts-BYVcXj0z.js.map +1 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js +97 -0
- package/build/server/chunks/_server.ts-BYdXdnje.js.map +1 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js +44 -0
- package/build/server/chunks/_server.ts-BaxRyhZ8.js.map +1 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js +41 -0
- package/build/server/chunks/_server.ts-BclZ3UFT.js.map +1 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js +60 -0
- package/build/server/chunks/_server.ts-Bd_I8GjG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js +33 -0
- package/build/server/chunks/_server.ts-Bdry_CdG.js.map +1 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js +65 -0
- package/build/server/chunks/_server.ts-Bg8OpPuA.js.map +1 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js +73 -0
- package/build/server/chunks/_server.ts-BjrO7pvn.js.map +1 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js +70 -0
- package/build/server/chunks/_server.ts-BkoJOqrr.js.map +1 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js +40 -0
- package/build/server/chunks/_server.ts-Bl0YOh50.js.map +1 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js +55 -0
- package/build/server/chunks/_server.ts-BmZlEy27.js.map +1 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js +163 -0
- package/build/server/chunks/_server.ts-Bq2S1OMq.js.map +1 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js +59 -0
- package/build/server/chunks/_server.ts-BwHojI4i.js.map +1 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js +33 -0
- package/build/server/chunks/_server.ts-C-lN2ZUO.js.map +1 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js +200 -0
- package/build/server/chunks/_server.ts-C1DcK_rP.js.map +1 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js +52 -0
- package/build/server/chunks/_server.ts-C1y3X6iK.js.map +1 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js +79 -0
- package/build/server/chunks/_server.ts-C5s-OXCm.js.map +1 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js +63 -0
- package/build/server/chunks/_server.ts-CAKTZL2t.js.map +1 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js +83 -0
- package/build/server/chunks/_server.ts-CDtOOD3Q.js.map +1 -0
- package/build/server/chunks/_server.ts-CG409cWi.js +46 -0
- package/build/server/chunks/_server.ts-CG409cWi.js.map +1 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js +56 -0
- package/build/server/chunks/_server.ts-CJL8da0o.js.map +1 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js +204 -0
- package/build/server/chunks/_server.ts-CLBKpKeH.js.map +1 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js +50 -0
- package/build/server/chunks/_server.ts-CLiYOnOv.js.map +1 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js +101 -0
- package/build/server/chunks/_server.ts-CMvY0ZDz.js.map +1 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js +41 -0
- package/build/server/chunks/_server.ts-CQqURrHY.js.map +1 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js +79 -0
- package/build/server/chunks/_server.ts-CSgPjCYv.js.map +1 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js +44 -0
- package/build/server/chunks/_server.ts-C_fNO73y.js.map +1 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js +41 -0
- package/build/server/chunks/_server.ts-CcTt5aAs.js.map +1 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js +53 -0
- package/build/server/chunks/_server.ts-CfLbEufw.js.map +1 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js +53 -0
- package/build/server/chunks/_server.ts-CqHMhINi.js.map +1 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js +88 -0
- package/build/server/chunks/_server.ts-CrU9r7-F.js.map +1 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js +70 -0
- package/build/server/chunks/_server.ts-CtZuKotA.js.map +1 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js +103 -0
- package/build/server/chunks/_server.ts-D-sjM5kn.js.map +1 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js +41 -0
- package/build/server/chunks/_server.ts-D2wlMMJl.js.map +1 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js +65 -0
- package/build/server/chunks/_server.ts-D7L27_xI.js.map +1 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js +90 -0
- package/build/server/chunks/_server.ts-DMKIHwKi.js.map +1 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js +33 -0
- package/build/server/chunks/_server.ts-DTyZan5L.js.map +1 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js +96 -0
- package/build/server/chunks/_server.ts-DVekHgMN.js.map +1 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js +54 -0
- package/build/server/chunks/_server.ts-DWLkr6Qg.js.map +1 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js +149 -0
- package/build/server/chunks/_server.ts-DWN6TJv0.js.map +1 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js +56 -0
- package/build/server/chunks/_server.ts-D_dO8hvJ.js.map +1 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js +82 -0
- package/build/server/chunks/_server.ts-Da9y6lio.js.map +1 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js +54 -0
- package/build/server/chunks/_server.ts-DbO3cg55.js.map +1 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js +44 -0
- package/build/server/chunks/_server.ts-DclRsTpW.js.map +1 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js +159 -0
- package/build/server/chunks/_server.ts-DdlF1vjy.js.map +1 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js +759 -0
- package/build/server/chunks/_server.ts-De7IOs2z.js.map +1 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js +40 -0
- package/build/server/chunks/_server.ts-DmyOp1yq.js.map +1 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js +46 -0
- package/build/server/chunks/_server.ts-DnKTcT9x.js.map +1 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js +72 -0
- package/build/server/chunks/_server.ts-Dq82kHyx.js.map +1 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js +55 -0
- package/build/server/chunks/_server.ts-DqVJ1NqI.js.map +1 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js +46 -0
- package/build/server/chunks/_server.ts-DzWtvjem.js.map +1 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js +62 -0
- package/build/server/chunks/_server.ts-EZS5Qan4.js.map +1 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js +77 -0
- package/build/server/chunks/_server.ts-I0iKpsyr.js.map +1 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js +55 -0
- package/build/server/chunks/_server.ts-P4pmd9NX.js.map +1 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js +79 -0
- package/build/server/chunks/_server.ts-UF_kxNaU.js.map +1 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js +121 -0
- package/build/server/chunks/_server.ts-b3mVtmkb.js.map +1 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js +63 -0
- package/build/server/chunks/_server.ts-dhkEt2p6.js.map +1 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js +67 -0
- package/build/server/chunks/_server.ts-eK_9jY-9.js.map +1 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js +42 -0
- package/build/server/chunks/_server.ts-fsEmx9mw.js.map +1 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js +109 -0
- package/build/server/chunks/_server.ts-l4CK3c4j.js.map +1 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js +139 -0
- package/build/server/chunks/_server.ts-otJRaSSq.js.map +1 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js +49 -0
- package/build/server/chunks/_server.ts-rXhjnBtw.js.map +1 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js +157 -0
- package/build/server/chunks/_server.ts-wZ88P3nX.js.map +1 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js +60 -0
- package/build/server/chunks/_server.ts-xO4nhxDx.js.map +1 -0
- package/build/server/chunks/_server.ts-yimewsjO.js +57 -0
- package/build/server/chunks/_server.ts-yimewsjO.js.map +1 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js +49 -0
- package/build/server/chunks/addon-helpers-BpnH-GEc.js.map +1 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js +18 -0
- package/build/server/chunks/chunk-CLZ62Ad-.js.map +1 -0
- package/build/server/chunks/coercion-TNFJisCC.js +34 -0
- package/build/server/chunks/coercion-TNFJisCC.js.map +1 -0
- package/build/server/chunks/config-0LFudKuE.js +121 -0
- package/build/server/chunks/config-0LFudKuE.js.map +1 -0
- package/build/server/chunks/dev-DjANv7AF.js +4389 -0
- package/build/server/chunks/dev-DjANv7AF.js.map +1 -0
- package/build/server/chunks/docker-B23w4kr6.js +20 -0
- package/build/server/chunks/docker-B23w4kr6.js.map +1 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js +340 -0
- package/build/server/chunks/endpoints-Drq_J-2Z.js.map +1 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js +16 -0
- package/build/server/chunks/error.svelte-ByNznOuj.js.map +1 -0
- package/build/server/chunks/exports-D1quPX8S.js +124 -0
- package/build/server/chunks/exports-D1quPX8S.js.map +1 -0
- package/build/server/chunks/helpers-CX6xRBmt.js +226 -0
- package/build/server/chunks/helpers-CX6xRBmt.js.map +1 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js +86 -0
- package/build/server/chunks/hooks.server-BEVMYNQ4.js.map +1 -0
- package/build/server/chunks/http-VqOG8hyj.js +31 -0
- package/build/server/chunks/http-VqOG8hyj.js.map +1 -0
- package/build/server/chunks/internal-CeK24Lte.js +1544 -0
- package/build/server/chunks/internal-CeK24Lte.js.map +1 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js +22 -0
- package/build/server/chunks/serial-queue-D9FEpYVv.js.map +1 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js +529 -0
- package/build/server/chunks/setup-deploy-B4oSSFYi.js.map +1 -0
- package/build/server/chunks/src-BkvQ5Uuf.js +14082 -0
- package/build/server/chunks/src-BkvQ5Uuf.js.map +1 -0
- package/build/server/chunks/state-D7JS-l_D.js +203 -0
- package/build/server/chunks/state-D7JS-l_D.js.map +1 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js +520 -0
- package/build/server/chunks/theme-state.svelte-PtPMmKGN.js.map +1 -0
- package/build/server/chunks/utils-BSRjJDrZ.js +150 -0
- package/build/server/chunks/utils-BSRjJDrZ.js.map +1 -0
- package/build/server/index.js +4389 -0
- package/build/server/index.js.map +1 -0
- package/build/server/manifest.js +584 -0
- package/build/server/manifest.js.map +1 -0
- package/build/shims.js +32 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_page.svelte-pxsCzB7-.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/admin/endpoints/_page.svelte.js"],"sourcesContent":["import { H as escape_html, V as attr, a as derived, n as attr_class, o as ensure_array_like, s as head } from \"../../../../chunks/dev.js\";\nimport \"../../../../chunks/index-server.js\";\nimport { n as Navbar, r as endpointsService, t as AuthGate } from \"../../../../chunks/AuthGate.js\";\n//#region src/routes/admin/endpoints/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tlet authLocked = true;\n\t\tlet authLoading = false;\n\t\tlet authError = \"\";\n\t\tlet deletingId = null;\n\t\tconst endpoints = derived(() => endpointsService.endpoints);\n\t\tconst active = derived(() => endpointsService.active);\n\t\tasync function handleAuthSuccess(token) {\n\t\t\tif (authLoading) return false;\n\t\t\tauthLoading = true;\n\t\t\tauthError = \"\";\n\t\t\ttry {\n\t\t\t\tif (!(await fetch(\"/admin/auth/login\", {\n\t\t\t\t\tmethod: \"POST\",\n\t\t\t\t\theaders: { \"content-type\": \"application/json\" },\n\t\t\t\t\tbody: JSON.stringify({ password: token }),\n\t\t\t\t\tcredentials: \"include\"\n\t\t\t\t})).ok) {\n\t\t\t\t\tauthError = \"Invalid password.\";\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tauthLocked = false;\n\t\t\t\tawait endpointsService.load(true);\n\t\t\t\treturn true;\n\t\t\t} catch {\n\t\t\t\tauthError = \"Unable to reach admin API.\";\n\t\t\t\treturn false;\n\t\t\t} finally {\n\t\t\t\tauthLoading = false;\n\t\t\t}\n\t\t}\n\t\thead(\"m7qpzt\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Assistant Endpoints — OpenPalm</title>`);\n\t\t\t});\n\t\t});\n\t\tif (authLocked) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\tAuthGate($$renderer, {\n\t\t\t\tonSuccess: handleAuthSuccess,\n\t\t\t\tloading: authLoading,\n\t\t\t\terror: authError\n\t\t\t});\n\t\t} else {\n\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\tNavbar($$renderer, {});\n\t\t\t$$renderer.push(`<!----> <main class=\"page svelte-m7qpzt\"><header class=\"page-header svelte-m7qpzt\"><h1 class=\"svelte-m7qpzt\">Assistant Endpoints</h1> <p class=\"lede svelte-m7qpzt\">Connect to local or remote OpenPalm assistants. The <strong>Default</strong> entry comes\n from the environment (set by the launcher) and cannot be deleted. Add more endpoints to\n switch between stacks at any time.</p></header> `);\n\t\t\tif (endpointsService.error) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<div class=\"alert error svelte-m7qpzt\" role=\"alert\">${escape_html(endpointsService.error)}</div>`);\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> <section class=\"endpoints-list svelte-m7qpzt\" aria-label=\"Configured endpoints\"><!--[-->`);\n\t\t\tconst each_array = ensure_array_like(endpoints());\n\t\t\tfor (let $$index = 0, $$length = each_array.length; $$index < $$length; $$index++) {\n\t\t\t\tlet ep = each_array[$$index];\n\t\t\t\t$$renderer.push(`<article${attr_class(\"endpoint-card svelte-m7qpzt\", void 0, { \"active\": ep.id === active()?.id })}><div class=\"endpoint-main svelte-m7qpzt\"><div class=\"endpoint-title svelte-m7qpzt\"><span class=\"endpoint-label svelte-m7qpzt\">${escape_html(ep.label)}</span> `);\n\t\t\t\tif (ep.isDefault) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<span class=\"badge default svelte-m7qpzt\">Default</span>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\t\tif (ep.id === active()?.id) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<span class=\"badge active svelte-m7qpzt\">Active</span>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\t\tif (ep.hasPassword) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<span class=\"badge password svelte-m7qpzt\" title=\"Server password configured\">🔒</span>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></div> <div class=\"endpoint-url svelte-m7qpzt\">${escape_html(ep.url)}</div></div> <div class=\"endpoint-actions svelte-m7qpzt\">`);\n\t\t\t\tif (ep.id !== active()?.id) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary btn-sm\">Use this</button>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\t\tif (!ep.isDefault) {\n\t\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-secondary btn-sm\">Edit</button> <button type=\"button\" class=\"btn btn-danger btn-sm svelte-m7qpzt\"${attr(\"disabled\", deletingId === ep.id, true)}>${escape_html(deletingId === ep.id ? \"Removing…\" : \"Remove\")}</button>`);\n\t\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<!--]--></div></article>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></section> `);\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<button type=\"button\" class=\"btn btn-primary\">+ Add endpoint</button>`);\n\t\t\t$$renderer.push(`<!--]--></main>`);\n\t\t}\n\t\t$$renderer.push(`<!--]-->`);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { j as json } from './exports-D1quPX8S.js';
|
|
2
|
+
import './utils-BSRjJDrZ.js';
|
|
3
|
+
|
|
4
|
+
//#region src/routes/api/electron/update-status/+server.ts
|
|
5
|
+
var GET = () => {
|
|
6
|
+
const inElectron = process.env.OP_INSIDE_ELECTRON === "1";
|
|
7
|
+
const currentVersion = process.env.OP_ELECTRON_VERSION ?? null;
|
|
8
|
+
const latestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;
|
|
9
|
+
return json({
|
|
10
|
+
inElectron,
|
|
11
|
+
currentVersion,
|
|
12
|
+
latestVersion,
|
|
13
|
+
latestUrl: process.env.OP_ELECTRON_LATEST_URL ?? null,
|
|
14
|
+
updateAvailable: !!latestVersion
|
|
15
|
+
});
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export { GET };
|
|
19
|
+
//# sourceMappingURL=_server.ts-33LuQvHu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_server.ts-33LuQvHu.js","sources":["../../../.svelte-kit/adapter-node/entries/endpoints/api/electron/update-status/_server.ts.js"],"sourcesContent":["import { r as json } from \"../../../../../chunks/exports.js\";\n//#region src/routes/api/electron/update-status/+server.ts\nvar GET = () => {\n\tconst inElectron = process.env.OP_INSIDE_ELECTRON === \"1\";\n\tconst currentVersion = process.env.OP_ELECTRON_VERSION ?? null;\n\tconst latestVersion = process.env.OP_ELECTRON_LATEST_VERSION ?? null;\n\treturn json({\n\t\tinElectron,\n\t\tcurrentVersion,\n\t\tlatestVersion,\n\t\tlatestUrl: process.env.OP_ELECTRON_LATEST_URL ?? null,\n\t\tupdateAvailable: !!latestVersion\n\t});\n};\n//#endregion\nexport { GET };\n"],"names":[],"mappings":";;;AACA;AACG,IAAC,GAAG,GAAG,MAAM;AAChB,CAAC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,GAAG;AAC1D,CAAC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,IAAI;AAC/D,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B,IAAI,IAAI;AACrE,CAAC,OAAO,IAAI,CAAC;AACb,EAAE,UAAU;AACZ,EAAE,cAAc;AAChB,EAAE,aAAa;AACf,EAAE,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,IAAI;AACvD,EAAE,eAAe,EAAE,CAAC,CAAC;AACrB,EAAE,CAAC;AACH;;;;"}
|
|
@@ -0,0 +1,514 @@
|
|
|
1
|
+
import { aq as writeFileAtomic } from './src-BkvQ5Uuf.js';
|
|
2
|
+
import { b as getState } from './endpoints-Drq_J-2Z.js';
|
|
3
|
+
import { d as getRequestId, r as requireAdmin, h as jsonResponse, p as parseJsonBody, j as jsonBodyError, e as errorResponse } from './helpers-CX6xRBmt.js';
|
|
4
|
+
import { mkdirSync, existsSync, readFileSync } from 'node:fs';
|
|
5
|
+
import './chunk-CLZ62Ad-.js';
|
|
6
|
+
import 'node:module';
|
|
7
|
+
import 'node:path';
|
|
8
|
+
import 'node:child_process';
|
|
9
|
+
import 'node:os';
|
|
10
|
+
import 'buffer';
|
|
11
|
+
import 'node:url';
|
|
12
|
+
import 'node:crypto';
|
|
13
|
+
import 'events';
|
|
14
|
+
import 'fs';
|
|
15
|
+
import 'node:events';
|
|
16
|
+
import 'node:stream';
|
|
17
|
+
import 'node:string_decoder';
|
|
18
|
+
import 'path';
|
|
19
|
+
import 'assert';
|
|
20
|
+
import 'zlib';
|
|
21
|
+
import 'node:assert';
|
|
22
|
+
import 'node:fs/promises';
|
|
23
|
+
|
|
24
|
+
//#region src/routes/admin/akm/+server.ts
|
|
25
|
+
function akmConfigPath(configDir) {
|
|
26
|
+
return `${configDir}/akm/config.json`;
|
|
27
|
+
}
|
|
28
|
+
function readAkmConfig(configDir) {
|
|
29
|
+
const path = akmConfigPath(configDir);
|
|
30
|
+
if (!existsSync(path)) return {};
|
|
31
|
+
try {
|
|
32
|
+
return JSON.parse(readFileSync(path, "utf-8"));
|
|
33
|
+
} catch {
|
|
34
|
+
return {};
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
function isRec(v) {
|
|
38
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
39
|
+
}
|
|
40
|
+
function expectStr(v, field) {
|
|
41
|
+
return typeof v === "string" ? v : /* @__PURE__ */ new Error(`${field} must be a string`);
|
|
42
|
+
}
|
|
43
|
+
function expectBool(v, field) {
|
|
44
|
+
return typeof v === "boolean" ? v : /* @__PURE__ */ new Error(`${field} must be a boolean`);
|
|
45
|
+
}
|
|
46
|
+
function expectPosInt(v, field) {
|
|
47
|
+
return typeof v === "number" && Number.isInteger(v) && v > 0 ? v : /* @__PURE__ */ new Error(`${field} must be a positive integer`);
|
|
48
|
+
}
|
|
49
|
+
function expectNum(v, field, min, max) {
|
|
50
|
+
return typeof v === "number" && v >= min && v <= max ? v : /* @__PURE__ */ new Error(`${field} must be a number between ${min} and ${max}`);
|
|
51
|
+
}
|
|
52
|
+
function validateLlmProfile(raw, prefix) {
|
|
53
|
+
if ("endpoint" in raw) {
|
|
54
|
+
const r = expectStr(raw.endpoint, `${prefix}.endpoint`);
|
|
55
|
+
if (r instanceof Error) return r;
|
|
56
|
+
}
|
|
57
|
+
if ("model" in raw) {
|
|
58
|
+
const r = expectStr(raw.model, `${prefix}.model`);
|
|
59
|
+
if (r instanceof Error) return r;
|
|
60
|
+
}
|
|
61
|
+
if ("provider" in raw) {
|
|
62
|
+
const r = expectStr(raw.provider, `${prefix}.provider`);
|
|
63
|
+
if (r instanceof Error) return r;
|
|
64
|
+
}
|
|
65
|
+
if ("apiKey" in raw) {
|
|
66
|
+
const r = expectStr(raw.apiKey, `${prefix}.apiKey`);
|
|
67
|
+
if (r instanceof Error) return r;
|
|
68
|
+
}
|
|
69
|
+
if ("judgeModel" in raw) {
|
|
70
|
+
const r = expectStr(raw.judgeModel, `${prefix}.judgeModel`);
|
|
71
|
+
if (r instanceof Error) return r;
|
|
72
|
+
}
|
|
73
|
+
if ("temperature" in raw) {
|
|
74
|
+
const r = expectNum(raw.temperature, `${prefix}.temperature`, 0, 2);
|
|
75
|
+
if (r instanceof Error) return r;
|
|
76
|
+
}
|
|
77
|
+
if ("maxTokens" in raw) {
|
|
78
|
+
const r = expectPosInt(raw.maxTokens, `${prefix}.maxTokens`);
|
|
79
|
+
if (r instanceof Error) return r;
|
|
80
|
+
}
|
|
81
|
+
if ("timeoutMs" in raw) {
|
|
82
|
+
const r = expectPosInt(raw.timeoutMs, `${prefix}.timeoutMs`);
|
|
83
|
+
if (r instanceof Error) return r;
|
|
84
|
+
}
|
|
85
|
+
if ("concurrency" in raw) {
|
|
86
|
+
const r = expectPosInt(raw.concurrency, `${prefix}.concurrency`);
|
|
87
|
+
if (r instanceof Error) return r;
|
|
88
|
+
}
|
|
89
|
+
if ("contextLength" in raw) {
|
|
90
|
+
const r = expectPosInt(raw.contextLength, `${prefix}.contextLength`);
|
|
91
|
+
if (r instanceof Error) return r;
|
|
92
|
+
}
|
|
93
|
+
if ("supportsJsonSchema" in raw) {
|
|
94
|
+
const r = expectBool(raw.supportsJsonSchema, `${prefix}.supportsJsonSchema`);
|
|
95
|
+
if (r instanceof Error) return r;
|
|
96
|
+
}
|
|
97
|
+
if ("enableThinking" in raw) {
|
|
98
|
+
const r = expectBool(raw.enableThinking, `${prefix}.enableThinking`);
|
|
99
|
+
if (r instanceof Error) return r;
|
|
100
|
+
}
|
|
101
|
+
if ("capabilities" in raw) {
|
|
102
|
+
if (!isRec(raw.capabilities)) return /* @__PURE__ */ new Error(`${prefix}.capabilities must be an object`);
|
|
103
|
+
if ("structuredOutput" in raw.capabilities) {
|
|
104
|
+
const r = expectBool(raw.capabilities.structuredOutput, `${prefix}.capabilities.structuredOutput`);
|
|
105
|
+
if (r instanceof Error) return r;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if ("extraParams" in raw && !isRec(raw.extraParams)) return /* @__PURE__ */ new Error(`${prefix}.extraParams must be an object`);
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
function pickLlmProfile(raw) {
|
|
112
|
+
const out = {};
|
|
113
|
+
for (const f of [
|
|
114
|
+
"endpoint",
|
|
115
|
+
"model",
|
|
116
|
+
"provider",
|
|
117
|
+
"judgeModel"
|
|
118
|
+
]) if (f in raw && raw[f]) out[f] = raw[f];
|
|
119
|
+
if ("apiKey" in raw) {
|
|
120
|
+
if (raw.apiKey) out.apiKey = raw.apiKey;
|
|
121
|
+
}
|
|
122
|
+
for (const f of [
|
|
123
|
+
"temperature",
|
|
124
|
+
"maxTokens",
|
|
125
|
+
"timeoutMs",
|
|
126
|
+
"concurrency",
|
|
127
|
+
"contextLength"
|
|
128
|
+
]) if (f in raw && raw[f] !== void 0) out[f] = raw[f];
|
|
129
|
+
if ("supportsJsonSchema" in raw) out.supportsJsonSchema = raw.supportsJsonSchema;
|
|
130
|
+
if ("enableThinking" in raw) out.enableThinking = raw.enableThinking;
|
|
131
|
+
if (isRec(raw.capabilities) && Object.keys(raw.capabilities).length) out.capabilities = raw.capabilities;
|
|
132
|
+
if (isRec(raw.extraParams) && Object.keys(raw.extraParams).length) out.extraParams = raw.extraParams;
|
|
133
|
+
return out;
|
|
134
|
+
}
|
|
135
|
+
var ALLOWED_IMPROVE_PROCESSES = new Set([
|
|
136
|
+
"reflect",
|
|
137
|
+
"distill",
|
|
138
|
+
"consolidate",
|
|
139
|
+
"memoryInference",
|
|
140
|
+
"graphExtraction",
|
|
141
|
+
"validation",
|
|
142
|
+
"extract",
|
|
143
|
+
"triage"
|
|
144
|
+
]);
|
|
145
|
+
var APPLY_MODES = new Set(["queue", "promote"]);
|
|
146
|
+
var FEAT_MODES = new Set([
|
|
147
|
+
"llm",
|
|
148
|
+
"agent",
|
|
149
|
+
"sdk"
|
|
150
|
+
]);
|
|
151
|
+
var AGENT_PLATFORMS = new Set([
|
|
152
|
+
"opencode",
|
|
153
|
+
"claude",
|
|
154
|
+
"opencode-sdk"
|
|
155
|
+
]);
|
|
156
|
+
var SEMANTIC_SEARCH_MODES = new Set(["auto", "off"]);
|
|
157
|
+
var OUTPUT_FORMATS = new Set([
|
|
158
|
+
"json",
|
|
159
|
+
"yaml",
|
|
160
|
+
"text"
|
|
161
|
+
]);
|
|
162
|
+
var OUTPUT_DETAILS = new Set([
|
|
163
|
+
"brief",
|
|
164
|
+
"normal",
|
|
165
|
+
"full"
|
|
166
|
+
]);
|
|
167
|
+
function validateEnabledGate(v, path) {
|
|
168
|
+
if (!isRec(v)) return /* @__PURE__ */ new Error(`${path} must be an object`);
|
|
169
|
+
if ("enabled" in v) {
|
|
170
|
+
const r = expectBool(v.enabled, `${path}.enabled`);
|
|
171
|
+
if (r instanceof Error) return r;
|
|
172
|
+
}
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
function validateImproveProcess(proc, path) {
|
|
176
|
+
if ("enabled" in proc) {
|
|
177
|
+
const r = expectBool(proc.enabled, `${path}.enabled`);
|
|
178
|
+
if (r instanceof Error) return r;
|
|
179
|
+
}
|
|
180
|
+
if ("mode" in proc && (typeof proc.mode !== "string" || !FEAT_MODES.has(proc.mode))) return /* @__PURE__ */ new Error(`${path}.mode must be llm, agent, or sdk`);
|
|
181
|
+
if ("profile" in proc) {
|
|
182
|
+
const r = expectStr(proc.profile, `${path}.profile`);
|
|
183
|
+
if (r instanceof Error) return r;
|
|
184
|
+
}
|
|
185
|
+
if ("timeoutMs" in proc && proc.timeoutMs !== null) {
|
|
186
|
+
const r = expectPosInt(proc.timeoutMs, `${path}.timeoutMs`);
|
|
187
|
+
if (r instanceof Error) return r;
|
|
188
|
+
}
|
|
189
|
+
if ("allowedTypes" in proc) {
|
|
190
|
+
if (!Array.isArray(proc.allowedTypes) || !proc.allowedTypes.every((t) => typeof t === "string" && t.length > 0)) return /* @__PURE__ */ new Error(`${path}.allowedTypes must be an array of non-empty strings`);
|
|
191
|
+
}
|
|
192
|
+
if ("qualityGate" in proc) {
|
|
193
|
+
const r = validateEnabledGate(proc.qualityGate, `${path}.qualityGate`);
|
|
194
|
+
if (r) return r;
|
|
195
|
+
}
|
|
196
|
+
if ("contradictionDetection" in proc) {
|
|
197
|
+
const r = validateEnabledGate(proc.contradictionDetection, `${path}.contradictionDetection`);
|
|
198
|
+
if (r) return r;
|
|
199
|
+
}
|
|
200
|
+
if ("defaultSince" in proc) {
|
|
201
|
+
const r = expectStr(proc.defaultSince, `${path}.defaultSince`);
|
|
202
|
+
if (r instanceof Error) return r;
|
|
203
|
+
}
|
|
204
|
+
if ("maxTotalChars" in proc) {
|
|
205
|
+
const r = expectPosInt(proc.maxTotalChars, `${path}.maxTotalChars`);
|
|
206
|
+
if (r instanceof Error) return r;
|
|
207
|
+
}
|
|
208
|
+
if ("maxChunkSize" in proc) {
|
|
209
|
+
if (typeof proc.maxChunkSize !== "number" || !Number.isInteger(proc.maxChunkSize) || proc.maxChunkSize < 1 || proc.maxChunkSize > 50) return /* @__PURE__ */ new Error(`${path}.maxChunkSize must be an integer 1–50`);
|
|
210
|
+
}
|
|
211
|
+
if ("applyMode" in proc && (typeof proc.applyMode !== "string" || !APPLY_MODES.has(proc.applyMode))) return /* @__PURE__ */ new Error(`${path}.applyMode must be queue or promote`);
|
|
212
|
+
if ("policy" in proc) {
|
|
213
|
+
const r = expectStr(proc.policy, `${path}.policy`);
|
|
214
|
+
if (r instanceof Error) return r;
|
|
215
|
+
}
|
|
216
|
+
if ("maxAcceptsPerRun" in proc) {
|
|
217
|
+
const r = expectPosInt(proc.maxAcceptsPerRun, `${path}.maxAcceptsPerRun`);
|
|
218
|
+
if (r instanceof Error) return r;
|
|
219
|
+
}
|
|
220
|
+
if ("maxDiffLines" in proc) {
|
|
221
|
+
const r = expectPosInt(proc.maxDiffLines, `${path}.maxDiffLines`);
|
|
222
|
+
if (r instanceof Error) return r;
|
|
223
|
+
}
|
|
224
|
+
if ("rejectEmpty" in proc) {
|
|
225
|
+
const r = expectBool(proc.rejectEmpty, `${path}.rejectEmpty`);
|
|
226
|
+
if (r instanceof Error) return r;
|
|
227
|
+
}
|
|
228
|
+
if ("judgment" in proc) {
|
|
229
|
+
if (!isRec(proc.judgment)) return /* @__PURE__ */ new Error(`${path}.judgment must be an object`);
|
|
230
|
+
const j = proc.judgment;
|
|
231
|
+
if ("mode" in j && (typeof j.mode !== "string" || !FEAT_MODES.has(j.mode))) return /* @__PURE__ */ new Error(`${path}.judgment.mode must be llm, agent, or sdk`);
|
|
232
|
+
if ("profile" in j) {
|
|
233
|
+
const r = expectStr(j.profile, `${path}.judgment.profile`);
|
|
234
|
+
if (r instanceof Error) return r;
|
|
235
|
+
}
|
|
236
|
+
if ("timeoutMs" in j && j.timeoutMs !== null) {
|
|
237
|
+
const r = expectPosInt(j.timeoutMs, `${path}.judgment.timeoutMs`);
|
|
238
|
+
if (r instanceof Error) return r;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return null;
|
|
242
|
+
}
|
|
243
|
+
var GET = async (event) => {
|
|
244
|
+
const requestId = getRequestId(event);
|
|
245
|
+
const authError = requireAdmin(event, requestId);
|
|
246
|
+
if (authError) return authError;
|
|
247
|
+
return jsonResponse(200, { config: readAkmConfig(getState().configDir) }, requestId);
|
|
248
|
+
};
|
|
249
|
+
var PATCH = async (event) => {
|
|
250
|
+
const requestId = getRequestId(event);
|
|
251
|
+
const authError = requireAdmin(event, requestId);
|
|
252
|
+
if (authError) return authError;
|
|
253
|
+
const state = getState();
|
|
254
|
+
const result = await parseJsonBody(event.request);
|
|
255
|
+
if ("error" in result) return jsonBodyError(result, requestId);
|
|
256
|
+
const body = result.data;
|
|
257
|
+
const profilesBody = body.profiles;
|
|
258
|
+
if (profilesBody !== void 0 && !isRec(profilesBody)) return errorResponse(400, "bad_request", "profiles must be an object", {}, requestId);
|
|
259
|
+
const profilesLlmBody = profilesBody?.llm;
|
|
260
|
+
if (profilesLlmBody !== void 0) {
|
|
261
|
+
if (!isRec(profilesLlmBody)) return errorResponse(400, "bad_request", "profiles.llm must be an object", {}, requestId);
|
|
262
|
+
for (const [name, entry] of Object.entries(profilesLlmBody)) {
|
|
263
|
+
if (!isRec(entry)) return errorResponse(400, "bad_request", `profiles.llm.${name} must be an object`, {}, requestId);
|
|
264
|
+
const err = validateLlmProfile(entry, `profiles.llm.${name}`);
|
|
265
|
+
if (err) return errorResponse(400, "bad_request", err.message, {}, requestId);
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
const profilesAgentBody = profilesBody?.agent;
|
|
269
|
+
if (profilesAgentBody !== void 0) {
|
|
270
|
+
if (!isRec(profilesAgentBody)) return errorResponse(400, "bad_request", "profiles.agent must be an object", {}, requestId);
|
|
271
|
+
for (const [name, entry] of Object.entries(profilesAgentBody)) {
|
|
272
|
+
if (!isRec(entry)) return errorResponse(400, "bad_request", `profiles.agent.${name} must be an object`, {}, requestId);
|
|
273
|
+
if ("platform" in entry && (typeof entry.platform !== "string" || !AGENT_PLATFORMS.has(entry.platform))) return errorResponse(400, "bad_request", `profiles.agent.${name}.platform must be opencode, claude, or opencode-sdk`, {}, requestId);
|
|
274
|
+
if ("bin" in entry) {
|
|
275
|
+
const r = expectStr(entry.bin, `profiles.agent.${name}.bin`);
|
|
276
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
277
|
+
}
|
|
278
|
+
if ("workspace" in entry) {
|
|
279
|
+
const r = expectStr(entry.workspace, `profiles.agent.${name}.workspace`);
|
|
280
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
281
|
+
}
|
|
282
|
+
if ("model" in entry) {
|
|
283
|
+
const r = expectStr(entry.model, `profiles.agent.${name}.model`);
|
|
284
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
285
|
+
}
|
|
286
|
+
if ("args" in entry && !Array.isArray(entry.args)) return errorResponse(400, "bad_request", `profiles.agent.${name}.args must be an array`, {}, requestId);
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
const profilesImproveBody = profilesBody?.improve;
|
|
290
|
+
if (profilesImproveBody !== void 0) {
|
|
291
|
+
if (!isRec(profilesImproveBody)) return errorResponse(400, "bad_request", "profiles.improve must be an object", {}, requestId);
|
|
292
|
+
for (const [name, entry] of Object.entries(profilesImproveBody)) {
|
|
293
|
+
if (!isRec(entry)) return errorResponse(400, "bad_request", `profiles.improve.${name} must be an object`, {}, requestId);
|
|
294
|
+
if ("description" in entry) {
|
|
295
|
+
const r = expectStr(entry.description, `profiles.improve.${name}.description`);
|
|
296
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
297
|
+
}
|
|
298
|
+
if ("limit" in entry) {
|
|
299
|
+
const r = expectPosInt(entry.limit, `profiles.improve.${name}.limit`);
|
|
300
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
301
|
+
}
|
|
302
|
+
if ("autoAccept" in entry && (typeof entry.autoAccept !== "number" || entry.autoAccept < 0)) return errorResponse(400, "bad_request", `profiles.improve.${name}.autoAccept must be a non-negative number`, {}, requestId);
|
|
303
|
+
if ("processes" in entry) {
|
|
304
|
+
if (!isRec(entry.processes)) return errorResponse(400, "bad_request", `profiles.improve.${name}.processes must be an object`, {}, requestId);
|
|
305
|
+
for (const [procName, proc] of Object.entries(entry.processes)) {
|
|
306
|
+
if (!ALLOWED_IMPROVE_PROCESSES.has(procName)) return errorResponse(400, "bad_request", `profiles.improve.${name}.processes.${procName} is not a recognized process name`, {}, requestId);
|
|
307
|
+
if (!isRec(proc)) return errorResponse(400, "bad_request", `profiles.improve.${name}.processes.${procName} must be an object`, {}, requestId);
|
|
308
|
+
const err = validateImproveProcess(proc, `profiles.improve.${name}.processes.${procName}`);
|
|
309
|
+
if (err) return errorResponse(400, "bad_request", err.message, {}, requestId);
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
if ("sync" in entry) {
|
|
313
|
+
if (!isRec(entry.sync)) return errorResponse(400, "bad_request", `profiles.improve.${name}.sync must be an object`, {}, requestId);
|
|
314
|
+
const sync = entry.sync;
|
|
315
|
+
if ("enabled" in sync) {
|
|
316
|
+
const r = expectBool(sync.enabled, `profiles.improve.${name}.sync.enabled`);
|
|
317
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
318
|
+
}
|
|
319
|
+
if ("push" in sync) {
|
|
320
|
+
const r = expectBool(sync.push, `profiles.improve.${name}.sync.push`);
|
|
321
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
322
|
+
}
|
|
323
|
+
if ("message" in sync) {
|
|
324
|
+
const r = expectStr(sync.message, `profiles.improve.${name}.sync.message`);
|
|
325
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
const defaultsBody = body.defaults;
|
|
331
|
+
if (defaultsBody !== void 0 && !isRec(defaultsBody)) return errorResponse(400, "bad_request", "defaults must be an object", {}, requestId);
|
|
332
|
+
if (defaultsBody?.llm !== void 0) {
|
|
333
|
+
const r = expectStr(defaultsBody.llm, "defaults.llm");
|
|
334
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
335
|
+
}
|
|
336
|
+
if (defaultsBody?.agent !== void 0) {
|
|
337
|
+
const r = expectStr(defaultsBody.agent, "defaults.agent");
|
|
338
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
339
|
+
}
|
|
340
|
+
if (defaultsBody?.improve !== void 0) {
|
|
341
|
+
const r = expectStr(defaultsBody.improve, "defaults.improve");
|
|
342
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
343
|
+
}
|
|
344
|
+
const embBody = body.embedding;
|
|
345
|
+
if (embBody !== void 0) {
|
|
346
|
+
if (!isRec(embBody)) return errorResponse(400, "bad_request", "embedding must be an object", {}, requestId);
|
|
347
|
+
for (const f of [
|
|
348
|
+
"endpoint",
|
|
349
|
+
"model",
|
|
350
|
+
"provider",
|
|
351
|
+
"apiKey",
|
|
352
|
+
"localModel"
|
|
353
|
+
]) if (f in embBody) {
|
|
354
|
+
const r = expectStr(embBody[f], `embedding.${f}`);
|
|
355
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
356
|
+
}
|
|
357
|
+
if ("dimension" in embBody) {
|
|
358
|
+
const r = expectPosInt(embBody.dimension, "embedding.dimension");
|
|
359
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
360
|
+
}
|
|
361
|
+
for (const f of [
|
|
362
|
+
"maxTokens",
|
|
363
|
+
"batchSize",
|
|
364
|
+
"chunkSize",
|
|
365
|
+
"contextLength"
|
|
366
|
+
]) if (f in embBody) {
|
|
367
|
+
const r = expectPosInt(embBody[f], `embedding.${f}`);
|
|
368
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
369
|
+
}
|
|
370
|
+
if (isRec(embBody.ollamaOptions) && "num_ctx" in embBody.ollamaOptions) {
|
|
371
|
+
const r = expectPosInt(embBody.ollamaOptions.num_ctx, "embedding.ollamaOptions.num_ctx");
|
|
372
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
if ("semanticSearchMode" in body && (typeof body.semanticSearchMode !== "string" || !SEMANTIC_SEARCH_MODES.has(body.semanticSearchMode))) return errorResponse(400, "bad_request", "semanticSearchMode must be \"auto\" or \"off\"", {}, requestId);
|
|
376
|
+
const outputBody = body.output;
|
|
377
|
+
if (outputBody !== void 0) {
|
|
378
|
+
if (!isRec(outputBody)) return errorResponse(400, "bad_request", "output must be an object", {}, requestId);
|
|
379
|
+
if ("format" in outputBody && (typeof outputBody.format !== "string" || !OUTPUT_FORMATS.has(outputBody.format))) return errorResponse(400, "bad_request", "output.format must be json, yaml, or text", {}, requestId);
|
|
380
|
+
if ("detail" in outputBody && (typeof outputBody.detail !== "string" || !OUTPUT_DETAILS.has(outputBody.detail))) return errorResponse(400, "bad_request", "output.detail must be brief, normal, or full", {}, requestId);
|
|
381
|
+
}
|
|
382
|
+
const improveTopBody = body.improve;
|
|
383
|
+
if (improveTopBody !== void 0) {
|
|
384
|
+
if (!isRec(improveTopBody)) return errorResponse(400, "bad_request", "improve must be an object", {}, requestId);
|
|
385
|
+
if ("utilityDecay" in improveTopBody) {
|
|
386
|
+
if (!isRec(improveTopBody.utilityDecay)) return errorResponse(400, "bad_request", "improve.utilityDecay must be an object", {}, requestId);
|
|
387
|
+
const d = improveTopBody.utilityDecay;
|
|
388
|
+
if ("halfLifeDays" in d && (typeof d.halfLifeDays !== "number" || d.halfLifeDays < .1)) return errorResponse(400, "bad_request", "improve.utilityDecay.halfLifeDays must be a number ≥ 0.1", {}, requestId);
|
|
389
|
+
if ("feedbackStabilityBoost" in d && (typeof d.feedbackStabilityBoost !== "number" || d.feedbackStabilityBoost < 1)) return errorResponse(400, "bad_request", "improve.utilityDecay.feedbackStabilityBoost must be a number ≥ 1", {}, requestId);
|
|
390
|
+
}
|
|
391
|
+
if ("eventRetentionDays" in improveTopBody && (typeof improveTopBody.eventRetentionDays !== "number" || improveTopBody.eventRetentionDays < 0)) return errorResponse(400, "bad_request", "improve.eventRetentionDays must be a non-negative number", {}, requestId);
|
|
392
|
+
}
|
|
393
|
+
const searchBody = body.search;
|
|
394
|
+
if (searchBody !== void 0) {
|
|
395
|
+
if (!isRec(searchBody)) return errorResponse(400, "bad_request", "search must be an object", {}, requestId);
|
|
396
|
+
if ("minScore" in searchBody && (typeof searchBody.minScore !== "number" || searchBody.minScore < 0)) return errorResponse(400, "bad_request", "search.minScore must be a non-negative number", {}, requestId);
|
|
397
|
+
if ("curateRerank" in searchBody) {
|
|
398
|
+
const r = validateEnabledGate(searchBody.curateRerank, "search.curateRerank");
|
|
399
|
+
if (r) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
const feedbackBody = body.feedback;
|
|
403
|
+
if (feedbackBody !== void 0) {
|
|
404
|
+
if (!isRec(feedbackBody)) return errorResponse(400, "bad_request", "feedback must be an object", {}, requestId);
|
|
405
|
+
if ("requireReason" in feedbackBody) {
|
|
406
|
+
const r = expectBool(feedbackBody.requireReason, "feedback.requireReason");
|
|
407
|
+
if (r instanceof Error) return errorResponse(400, "bad_request", r.message, {}, requestId);
|
|
408
|
+
}
|
|
409
|
+
if ("allowedFailureModes" in feedbackBody && (!Array.isArray(feedbackBody.allowedFailureModes) || !feedbackBody.allowedFailureModes.every((m) => typeof m === "string" && m.length > 0))) return errorResponse(400, "bad_request", "feedback.allowedFailureModes must be an array of non-empty strings", {}, requestId);
|
|
410
|
+
}
|
|
411
|
+
const indexBody = body.index;
|
|
412
|
+
if (indexBody !== void 0 && !isRec(indexBody)) return errorResponse(400, "bad_request", "index must be an object keyed by pass name", {}, requestId);
|
|
413
|
+
try {
|
|
414
|
+
const existing = readAkmConfig(state.configDir);
|
|
415
|
+
const updated = { ...existing };
|
|
416
|
+
if (profilesBody !== void 0) {
|
|
417
|
+
const existingProfiles = existing.profiles ?? {};
|
|
418
|
+
const newProfiles = { ...existingProfiles };
|
|
419
|
+
if (profilesLlmBody !== void 0) {
|
|
420
|
+
const built = {};
|
|
421
|
+
for (const [name, entry] of Object.entries(profilesLlmBody)) built[name] = pickLlmProfile(entry);
|
|
422
|
+
newProfiles.llm = built;
|
|
423
|
+
}
|
|
424
|
+
if (profilesAgentBody !== void 0) {
|
|
425
|
+
const built = {};
|
|
426
|
+
for (const [name, entry] of Object.entries(profilesAgentBody)) {
|
|
427
|
+
const raw = entry;
|
|
428
|
+
const agentEntry = {};
|
|
429
|
+
if ("platform" in raw) agentEntry.platform = raw.platform;
|
|
430
|
+
if ("bin" in raw && raw.bin) agentEntry.bin = raw.bin;
|
|
431
|
+
if ("args" in raw && Array.isArray(raw.args) && raw.args.length) agentEntry.args = raw.args;
|
|
432
|
+
if ("workspace" in raw && raw.workspace) agentEntry.workspace = raw.workspace;
|
|
433
|
+
if ("model" in raw && raw.model) agentEntry.model = raw.model;
|
|
434
|
+
built[name] = agentEntry;
|
|
435
|
+
}
|
|
436
|
+
newProfiles.agent = built;
|
|
437
|
+
}
|
|
438
|
+
if (profilesImproveBody !== void 0) {
|
|
439
|
+
const existingImprove = existingProfiles.improve ?? {};
|
|
440
|
+
const builtImprove = {};
|
|
441
|
+
for (const [name, entry] of Object.entries(profilesImproveBody)) {
|
|
442
|
+
const raw = entry;
|
|
443
|
+
const existingProfile = existingImprove[name] ?? {};
|
|
444
|
+
const profileEntry = { ...existingProfile };
|
|
445
|
+
if ("description" in raw && raw.description) profileEntry.description = raw.description;
|
|
446
|
+
if ("limit" in raw) profileEntry.limit = raw.limit;
|
|
447
|
+
if ("autoAccept" in raw) profileEntry.autoAccept = raw.autoAccept;
|
|
448
|
+
if ("processes" in raw && isRec(raw.processes)) {
|
|
449
|
+
const newProcs = { ...existingProfile.processes ?? {} };
|
|
450
|
+
for (const [procName, proc] of Object.entries(raw.processes)) newProcs[procName] = proc;
|
|
451
|
+
profileEntry.processes = newProcs;
|
|
452
|
+
}
|
|
453
|
+
if ("sync" in raw) if (isRec(raw.sync)) profileEntry.sync = raw.sync;
|
|
454
|
+
else delete profileEntry.sync;
|
|
455
|
+
builtImprove[name] = profileEntry;
|
|
456
|
+
}
|
|
457
|
+
newProfiles.improve = builtImprove;
|
|
458
|
+
}
|
|
459
|
+
updated.profiles = newProfiles;
|
|
460
|
+
}
|
|
461
|
+
if (defaultsBody !== void 0) updated.defaults = {
|
|
462
|
+
...existing.defaults ?? {},
|
|
463
|
+
..."llm" in defaultsBody ? { llm: defaultsBody.llm } : {},
|
|
464
|
+
..."agent" in defaultsBody ? { agent: defaultsBody.agent } : {},
|
|
465
|
+
..."improve" in defaultsBody ? { improve: defaultsBody.improve } : {}
|
|
466
|
+
};
|
|
467
|
+
if (embBody !== void 0) {
|
|
468
|
+
const merged = { ...existing.embedding ?? {} };
|
|
469
|
+
for (const f of [
|
|
470
|
+
"endpoint",
|
|
471
|
+
"model",
|
|
472
|
+
"provider",
|
|
473
|
+
"localModel"
|
|
474
|
+
]) if (f in embBody) if (embBody[f]) merged[f] = embBody[f];
|
|
475
|
+
else delete merged[f];
|
|
476
|
+
if ("apiKey" in embBody) if (embBody.apiKey) merged.apiKey = embBody.apiKey;
|
|
477
|
+
else delete merged.apiKey;
|
|
478
|
+
if ("dimension" in embBody) merged.dimension = embBody.dimension;
|
|
479
|
+
for (const f of [
|
|
480
|
+
"maxTokens",
|
|
481
|
+
"batchSize",
|
|
482
|
+
"chunkSize",
|
|
483
|
+
"contextLength"
|
|
484
|
+
]) if (f in embBody) merged[f] = embBody[f];
|
|
485
|
+
if (isRec(embBody.ollamaOptions) && "num_ctx" in embBody.ollamaOptions) merged.ollamaOptions = {
|
|
486
|
+
...existing.embedding?.["ollamaOptions"] ?? {},
|
|
487
|
+
num_ctx: embBody.ollamaOptions.num_ctx
|
|
488
|
+
};
|
|
489
|
+
updated.embedding = merged;
|
|
490
|
+
}
|
|
491
|
+
if ("semanticSearchMode" in body) updated.semanticSearchMode = body.semanticSearchMode;
|
|
492
|
+
updated.stashDir = "/stash";
|
|
493
|
+
if (outputBody !== void 0) updated.output = {
|
|
494
|
+
...existing.output ?? {},
|
|
495
|
+
..."format" in outputBody ? { format: outputBody.format } : {},
|
|
496
|
+
..."detail" in outputBody ? { detail: outputBody.detail } : {}
|
|
497
|
+
};
|
|
498
|
+
if (improveTopBody !== void 0) updated.improve = improveTopBody;
|
|
499
|
+
if (searchBody !== void 0) updated.search = searchBody;
|
|
500
|
+
if (feedbackBody !== void 0) updated.feedback = feedbackBody;
|
|
501
|
+
if (indexBody !== void 0) updated.index = indexBody;
|
|
502
|
+
mkdirSync(`${state.configDir}/akm`, { recursive: true });
|
|
503
|
+
writeFileAtomic(akmConfigPath(state.configDir), JSON.stringify(updated, null, 2), 384);
|
|
504
|
+
return jsonResponse(200, {
|
|
505
|
+
ok: true,
|
|
506
|
+
config: updated
|
|
507
|
+
}, requestId);
|
|
508
|
+
} catch (e) {
|
|
509
|
+
return errorResponse(500, "internal_error", `Failed to persist akm config: ${String(e)}`, {}, requestId);
|
|
510
|
+
}
|
|
511
|
+
};
|
|
512
|
+
|
|
513
|
+
export { GET, PATCH };
|
|
514
|
+
//# sourceMappingURL=_server.ts-5CjguYY3.js.map
|