@openpalm/ui 0.11.5-rc.2 → 0.11.5-rc.5
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/assets/4.Cg0DWfRJ.css +1 -0
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.br +0 -0
- package/build/client/_app/immutable/assets/4.Cg0DWfRJ.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js +3 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/B0yFRekZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B6TDOH9N.js +5 -0
- package/build/client/_app/immutable/chunks/B6TDOH9N.js.br +0 -0
- package/build/client/_app/immutable/chunks/B6TDOH9N.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Dd6EPzlG.js → BAaXfhM-.js} +1 -1
- package/build/client/_app/immutable/chunks/BAaXfhM-.js.br +0 -0
- package/build/client/_app/immutable/chunks/BAaXfhM-.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DNTZUJo4.js → BKYOLYrG.js} +4 -4
- package/build/client/_app/immutable/chunks/BKYOLYrG.js.br +0 -0
- package/build/client/_app/immutable/chunks/BKYOLYrG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DAn-iPjx.js → B_FOicoS.js} +1 -1
- package/build/client/_app/immutable/chunks/B_FOicoS.js.br +0 -0
- package/build/client/_app/immutable/chunks/B_FOicoS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Bc91qquS.js +1 -0
- package/build/client/_app/immutable/chunks/Bc91qquS.js.br +0 -0
- package/build/client/_app/immutable/chunks/Bc91qquS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Z2W9flFH.js → C0etjiv9.js} +2 -2
- package/build/client/_app/immutable/chunks/C0etjiv9.js.br +0 -0
- package/build/client/_app/immutable/chunks/C0etjiv9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js +1 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js.br +1 -0
- package/build/client/_app/immutable/chunks/CDYZd3Dt.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{Cu0zcwlV.js → CghSfF6U.js} +1 -1
- package/build/client/_app/immutable/chunks/CghSfF6U.js.br +0 -0
- package/build/client/_app/immutable/chunks/CghSfF6U.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DTZmSm97.js +1 -0
- package/build/client/_app/immutable/chunks/DTZmSm97.js.br +2 -0
- package/build/client/_app/immutable/chunks/DTZmSm97.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.LopPl7G5.js → app.CIC2xFmj.js} +2 -2
- package/build/client/_app/immutable/entry/app.CIC2xFmj.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CIC2xFmj.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.PCdanKMO.js +1 -0
- package/build/client/_app/immutable/entry/start.PCdanKMO.js.br +0 -0
- package/build/client/_app/immutable/entry/start.PCdanKMO.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.n1Zne31Q.js → 0.CmaZoW6Y.js} +1 -1
- package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CmaZoW6Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.viUd6sTI.js → 1.BhQMYP2N.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BhQMYP2N.js.br +3 -0
- package/build/client/_app/immutable/nodes/1.BhQMYP2N.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js +1 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.C-MzgTuq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js +1 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DXmMKZyn.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B9yFE6HR.js +19 -0
- package/build/client/_app/immutable/nodes/4.B9yFE6HR.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B9yFE6HR.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.OYZYGgdQ.js → 5.BeNqQzJI.js} +2 -2
- package/build/client/_app/immutable/nodes/5.BeNqQzJI.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.BeNqQzJI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.D4Oy0UwK.js → 6.t6Qb5QFT.js} +1 -1
- package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.t6Qb5QFT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.BvvIQZgW.js → 7.D4yXtdUW.js} +1 -1
- package/build/client/_app/immutable/nodes/7.D4yXtdUW.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.D4yXtdUW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.BypRBgKA.js → 8.CaUTWkJ5.js} +1 -1
- package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.CaUTWkJ5.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{9.Cvhy8NSW.js → 9.B1IAKpfH.js} +1 -1
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.B1IAKpfH.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/{0-DYSdORF4.js → 0-C0Wm0uh4.js} +2 -2
- package/build/server/chunks/{0-DYSdORF4.js.map → 0-C0Wm0uh4.js.map} +1 -1
- package/build/server/chunks/1-BO1FboQo.js +9 -0
- package/build/server/chunks/{1-DriLpuch.js.map → 1-BO1FboQo.js.map} +1 -1
- package/build/server/chunks/{2-CTCIjKJp.js → 2-wNOz2qR7.js} +2 -2
- package/build/server/chunks/{2-CTCIjKJp.js.map → 2-wNOz2qR7.js.map} +1 -1
- package/build/server/chunks/{3-PAUGKR-M.js → 3-CMcVVZ5t.js} +2 -2
- package/build/server/chunks/{3-PAUGKR-M.js.map → 3-CMcVVZ5t.js.map} +1 -1
- package/build/server/chunks/4-Cy42KZEq.js +9 -0
- package/build/server/chunks/{4-ipq2Fo20.js.map → 4-Cy42KZEq.js.map} +1 -1
- package/build/server/chunks/5-wTAacz_u.js +9 -0
- package/build/server/chunks/{5-CaAZ_pnW.js.map → 5-wTAacz_u.js.map} +1 -1
- package/build/server/chunks/6-CwuJSZNK.js +9 -0
- package/build/server/chunks/{6-Djkq9gPL.js.map → 6-CwuJSZNK.js.map} +1 -1
- package/build/server/chunks/7-BhucvAxb.js +9 -0
- package/build/server/chunks/{7-Bw1DwzQC.js.map → 7-BhucvAxb.js.map} +1 -1
- package/build/server/chunks/{8-CrXn8AWD.js → 8-BbmPm5QQ.js} +3 -3
- package/build/server/chunks/{8-CrXn8AWD.js.map → 8-BbmPm5QQ.js.map} +1 -1
- package/build/server/chunks/{9-yLwdBbDq.js → 9-BCmr-315.js} +2 -2
- package/build/server/chunks/{9-yLwdBbDq.js.map → 9-BCmr-315.js.map} +1 -1
- package/build/server/chunks/{ChatMessage-jkPoi0IR.js → ChatMessage-DV_A9qbU.js} +2 -2
- package/build/server/chunks/{ChatMessage-jkPoi0IR.js.map → ChatMessage-DV_A9qbU.js.map} +1 -1
- package/build/server/chunks/{Navbar-C72vlTUN.js → Navbar-Djg-dawo.js} +39 -3
- package/build/server/chunks/Navbar-Djg-dawo.js.map +1 -0
- package/build/server/chunks/{_page.svelte-DRU3ay4a.js → _page.svelte-0Fseybo3.js} +3 -3
- package/build/server/chunks/{_page.svelte-DRU3ay4a.js.map → _page.svelte-0Fseybo3.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-BBHjv6FS.js → _page.svelte-C41AgWxR.js} +5 -5
- package/build/server/chunks/{_page.svelte-BBHjv6FS.js.map → _page.svelte-C41AgWxR.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-CtyxfG3i.js → _page.svelte-CF0NIwNQ.js} +5 -5
- package/build/server/chunks/{_page.svelte-CtyxfG3i.js.map → _page.svelte-CF0NIwNQ.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DzrHD3Dp.js → _page.svelte-DHges4Pl.js} +6 -6
- package/build/server/chunks/{_page.svelte-DzrHD3Dp.js.map → _page.svelte-DHges4Pl.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-C6_O57B-.js → _page.svelte-GBRvAIuJ.js} +96 -19
- package/build/server/chunks/_page.svelte-GBRvAIuJ.js.map +1 -0
- package/build/server/chunks/{_server.ts-CqKt78Pt.js → _server.ts-1QDB0bka.js} +4 -4
- package/build/server/chunks/{_server.ts-CqKt78Pt.js.map → _server.ts-1QDB0bka.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DWuaJT7_.js → _server.ts-8gRao4pC.js} +4 -4
- package/build/server/chunks/{_server.ts-DWuaJT7_.js.map → _server.ts-8gRao4pC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D13Et6Nm.js → _server.ts-9P7a99w7.js} +4 -4
- package/build/server/chunks/{_server.ts-D13Et6Nm.js.map → _server.ts-9P7a99w7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CBEORQmf.js → _server.ts-AOvZbE_q.js} +5 -5
- package/build/server/chunks/{_server.ts-CBEORQmf.js.map → _server.ts-AOvZbE_q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BaUBfxz3.js → _server.ts-B35VhBNb.js} +4 -4
- package/build/server/chunks/{_server.ts-BaUBfxz3.js.map → _server.ts-B35VhBNb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-dXPW3qhK.js → _server.ts-B3OHtJvn.js} +5 -5
- package/build/server/chunks/{_server.ts-dXPW3qhK.js.map → _server.ts-B3OHtJvn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D7mVp5wx.js → _server.ts-BCLgKgV5.js} +4 -4
- package/build/server/chunks/{_server.ts-D7mVp5wx.js.map → _server.ts-BCLgKgV5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-NLmps3nz.js → _server.ts-BCtRrhpo.js} +4 -4
- package/build/server/chunks/{_server.ts-NLmps3nz.js.map → _server.ts-BCtRrhpo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DXWUvegr.js → _server.ts-BEir1hXE.js} +4 -4
- package/build/server/chunks/{_server.ts-DXWUvegr.js.map → _server.ts-BEir1hXE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DUJMugN3.js → _server.ts-BGhuGAqU.js} +4 -4
- package/build/server/chunks/{_server.ts-DUJMugN3.js.map → _server.ts-BGhuGAqU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BZU8fpG9.js → _server.ts-BMpV32HH.js} +4 -4
- package/build/server/chunks/{_server.ts-BZU8fpG9.js.map → _server.ts-BMpV32HH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWz851yG.js → _server.ts-BNfKymFO.js} +4 -4
- package/build/server/chunks/{_server.ts-BWz851yG.js.map → _server.ts-BNfKymFO.js.map} +1 -1
- package/build/server/chunks/{_server.ts-rjMXs5w6.js → _server.ts-BPRY2j_2.js} +4 -4
- package/build/server/chunks/{_server.ts-rjMXs5w6.js.map → _server.ts-BPRY2j_2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BhS7lUNN.js → _server.ts-BPu3WMA2.js} +4 -4
- package/build/server/chunks/{_server.ts-BhS7lUNN.js.map → _server.ts-BPu3WMA2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-zHhiafCS.js → _server.ts-BTD23brV.js} +4 -4
- package/build/server/chunks/{_server.ts-zHhiafCS.js.map → _server.ts-BTD23brV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cln7YA08.js → _server.ts-BUexy9Bs.js} +4 -4
- package/build/server/chunks/{_server.ts-Cln7YA08.js.map → _server.ts-BUexy9Bs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzWfvYWd.js → _server.ts-BWuDPAZI.js} +2 -2
- package/build/server/chunks/{_server.ts-DzWfvYWd.js.map → _server.ts-BWuDPAZI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-IsQCU7Zw.js → _server.ts-B_A1pH6i.js} +4 -4
- package/build/server/chunks/{_server.ts-IsQCU7Zw.js.map → _server.ts-B_A1pH6i.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DzNUAWRG.js → _server.ts-BbpEaFjU.js} +4 -4
- package/build/server/chunks/{_server.ts-DzNUAWRG.js.map → _server.ts-BbpEaFjU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9sR9fd3C.js → _server.ts-BiiFhOLE.js} +5 -5
- package/build/server/chunks/{_server.ts-9sR9fd3C.js.map → _server.ts-BiiFhOLE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BDtgFSkw.js → _server.ts-Bq99b7U6.js} +4 -4
- package/build/server/chunks/{_server.ts-BDtgFSkw.js.map → _server.ts-Bq99b7U6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C2din2_5.js → _server.ts-BvCT6Mjh.js} +4 -4
- package/build/server/chunks/{_server.ts-C2din2_5.js.map → _server.ts-BvCT6Mjh.js.map} +1 -1
- package/build/server/chunks/{_server.ts-9Qea4tbm.js → _server.ts-Bw7wH5nP.js} +4 -4
- package/build/server/chunks/{_server.ts-9Qea4tbm.js.map → _server.ts-Bw7wH5nP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DUqQgjZv.js → _server.ts-C3Y82EbX.js} +4 -4
- package/build/server/chunks/{_server.ts-DUqQgjZv.js.map → _server.ts-C3Y82EbX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CF9SWt4o.js → _server.ts-C58ziWGi.js} +4 -4
- package/build/server/chunks/{_server.ts-CF9SWt4o.js.map → _server.ts-C58ziWGi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B-boVJcF.js → _server.ts-C8NNR7lm.js} +4 -4
- package/build/server/chunks/{_server.ts-B-boVJcF.js.map → _server.ts-C8NNR7lm.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DMh6Tg2b.js → _server.ts-CHvr_s0m.js} +4 -4
- package/build/server/chunks/{_server.ts-DMh6Tg2b.js.map → _server.ts-CHvr_s0m.js.map} +1 -1
- package/build/server/chunks/{_server.ts-nTzGdtnW.js → _server.ts-CPKa2U2F.js} +4 -4
- package/build/server/chunks/{_server.ts-nTzGdtnW.js.map → _server.ts-CPKa2U2F.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D9kpjwUe.js → _server.ts-CQmJIAUn.js} +4 -4
- package/build/server/chunks/{_server.ts-D9kpjwUe.js.map → _server.ts-CQmJIAUn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CU1zUqIs.js → _server.ts-CSzLOBbB.js} +5 -5
- package/build/server/chunks/{_server.ts-CU1zUqIs.js.map → _server.ts-CSzLOBbB.js.map} +1 -1
- package/build/server/chunks/_server.ts-CWWHoyPz.js +48 -0
- package/build/server/chunks/_server.ts-CWWHoyPz.js.map +1 -0
- package/build/server/chunks/{_server.ts-ILHo2l5u.js → _server.ts-CakB2g2B.js} +3 -3
- package/build/server/chunks/{_server.ts-ILHo2l5u.js.map → _server.ts-CakB2g2B.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CPdyvrte.js → _server.ts-CbB7X8WD.js} +6 -6
- package/build/server/chunks/{_server.ts-CPdyvrte.js.map → _server.ts-CbB7X8WD.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CbKiZYKJ.js → _server.ts-Ch5VrU5z.js} +4 -4
- package/build/server/chunks/{_server.ts-CbKiZYKJ.js.map → _server.ts-Ch5VrU5z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-owfxHChR.js → _server.ts-CmcgtPlf.js} +5 -5
- package/build/server/chunks/{_server.ts-owfxHChR.js.map → _server.ts-CmcgtPlf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWmKP3RO.js → _server.ts-Cu3yIoGR.js} +18 -5
- package/build/server/chunks/{_server.ts-CWmKP3RO.js.map → _server.ts-Cu3yIoGR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-agyoOrvg.js → _server.ts-CuEcjgfs.js} +4 -4
- package/build/server/chunks/{_server.ts-agyoOrvg.js.map → _server.ts-CuEcjgfs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DTDGaSBp.js → _server.ts-CyTEh-kp.js} +6 -6
- package/build/server/chunks/{_server.ts-DTDGaSBp.js.map → _server.ts-CyTEh-kp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-xI2x8ziC.js → _server.ts-CyxjwCIW.js} +4 -4
- package/build/server/chunks/{_server.ts-xI2x8ziC.js.map → _server.ts-CyxjwCIW.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DPgmVByY.js → _server.ts-CzHLF3XJ.js} +2 -2
- package/build/server/chunks/{_server.ts-DPgmVByY.js.map → _server.ts-CzHLF3XJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bn_yGKDn.js → _server.ts-CzcX98RF.js} +5 -5
- package/build/server/chunks/{_server.ts-Bn_yGKDn.js.map → _server.ts-CzcX98RF.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BipzCnqX.js → _server.ts-D4hS029K.js} +6 -6
- package/build/server/chunks/{_server.ts-BipzCnqX.js.map → _server.ts-D4hS029K.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DjY1Wxwi.js → _server.ts-D5KmG8Iz.js} +2 -2
- package/build/server/chunks/{_server.ts-DjY1Wxwi.js.map → _server.ts-D5KmG8Iz.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C2xwF6p0.js → _server.ts-D6bq6_Fp.js} +6 -6
- package/build/server/chunks/{_server.ts-C2xwF6p0.js.map → _server.ts-D6bq6_Fp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CfMgNVBt.js → _server.ts-DEL6C5fs.js} +4 -4
- package/build/server/chunks/{_server.ts-CfMgNVBt.js.map → _server.ts-DEL6C5fs.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BybgwfUH.js → _server.ts-DLMyOePt.js} +4 -4
- package/build/server/chunks/_server.ts-DLMyOePt.js.map +1 -0
- package/build/server/chunks/{_server.ts-CffocV9v.js → _server.ts-DLkvAnm7.js} +4 -4
- package/build/server/chunks/{_server.ts-CffocV9v.js.map → _server.ts-DLkvAnm7.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZ1QyKiP.js → _server.ts-DTVKXoI5.js} +4 -4
- package/build/server/chunks/{_server.ts-CZ1QyKiP.js.map → _server.ts-DTVKXoI5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-QG_Io1nH.js → _server.ts-DZ7Ko_32.js} +4 -4
- package/build/server/chunks/{_server.ts-QG_Io1nH.js.map → _server.ts-DZ7Ko_32.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DEpPzJ18.js → _server.ts-DZY0Qpnk.js} +4 -4
- package/build/server/chunks/{_server.ts-DEpPzJ18.js.map → _server.ts-DZY0Qpnk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-1UmhXPK8.js → _server.ts-DcW9CTcB.js} +4 -4
- package/build/server/chunks/{_server.ts-1UmhXPK8.js.map → _server.ts-DcW9CTcB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BXz3inxG.js → _server.ts-Df17RBWC.js} +5 -5
- package/build/server/chunks/{_server.ts-BXz3inxG.js.map → _server.ts-Df17RBWC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DaKMiVFv.js → _server.ts-Dh9SJATt.js} +4 -4
- package/build/server/chunks/{_server.ts-DaKMiVFv.js.map → _server.ts-Dh9SJATt.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dhr817vY.js → _server.ts-DlDgeWtr.js} +4 -4
- package/build/server/chunks/{_server.ts-Dhr817vY.js.map → _server.ts-DlDgeWtr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DueRmcvI.js → _server.ts-Dmtbp8AT.js} +5 -5
- package/build/server/chunks/{_server.ts-DueRmcvI.js.map → _server.ts-Dmtbp8AT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-FJA0FE83.js → _server.ts-Dnq1yxVI.js} +6 -6
- package/build/server/chunks/{_server.ts-FJA0FE83.js.map → _server.ts-Dnq1yxVI.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DHjryCBX.js → _server.ts-DolRZ_5Z.js} +4 -4
- package/build/server/chunks/{_server.ts-DHjryCBX.js.map → _server.ts-DolRZ_5Z.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CPTHGxCn.js → _server.ts-DrccDqL8.js} +4 -4
- package/build/server/chunks/{_server.ts-CPTHGxCn.js.map → _server.ts-DrccDqL8.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CfOeqfql.js → _server.ts-Drxntihb.js} +5 -5
- package/build/server/chunks/{_server.ts-CfOeqfql.js.map → _server.ts-Drxntihb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DOiOnglY.js → _server.ts-Du4lTXoC.js} +5 -5
- package/build/server/chunks/{_server.ts-DOiOnglY.js.map → _server.ts-Du4lTXoC.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DhJ3EQ1-.js → _server.ts-Dvo786k1.js} +5 -5
- package/build/server/chunks/{_server.ts-DhJ3EQ1-.js.map → _server.ts-Dvo786k1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DC8UQBex.js → _server.ts-DxE9zbbG.js} +4 -4
- package/build/server/chunks/{_server.ts-DC8UQBex.js.map → _server.ts-DxE9zbbG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DEFxa6iW.js → _server.ts-DzVt4tZV.js} +4 -4
- package/build/server/chunks/{_server.ts-DEFxa6iW.js.map → _server.ts-DzVt4tZV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BIdpky_N.js → _server.ts-GnnvjDGL.js} +4 -4
- package/build/server/chunks/{_server.ts-BIdpky_N.js.map → _server.ts-GnnvjDGL.js.map} +1 -1
- package/build/server/chunks/{_server.ts-rTKNgtmO.js → _server.ts-H1fnqBYP.js} +4 -4
- package/build/server/chunks/{_server.ts-rTKNgtmO.js.map → _server.ts-H1fnqBYP.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CRr08SwC.js → _server.ts-OVberUvp.js} +6 -6
- package/build/server/chunks/{_server.ts-CRr08SwC.js.map → _server.ts-OVberUvp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-NsPlw6SY.js → _server.ts-Oh6upxFv.js} +4 -4
- package/build/server/chunks/{_server.ts-NsPlw6SY.js.map → _server.ts-Oh6upxFv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COna958t.js → _server.ts-TkRG9AFn.js} +4 -4
- package/build/server/chunks/{_server.ts-COna958t.js.map → _server.ts-TkRG9AFn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-MNKeYGnJ.js → _server.ts-UwHoFWx1.js} +2 -2
- package/build/server/chunks/{_server.ts-MNKeYGnJ.js.map → _server.ts-UwHoFWx1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DEKm5x2n.js → _server.ts-XArez5bY.js} +2 -2
- package/build/server/chunks/{_server.ts-DEKm5x2n.js.map → _server.ts-XArez5bY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CYQK3G4x.js → _server.ts-ZfDsuW2E.js} +5 -5
- package/build/server/chunks/{_server.ts-CYQK3G4x.js.map → _server.ts-ZfDsuW2E.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYdXyLLa.js → _server.ts-chaYrNFx.js} +5 -5
- package/build/server/chunks/{_server.ts-DYdXyLLa.js.map → _server.ts-chaYrNFx.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C9PqkEga.js → _server.ts-lZxRvx5G.js} +4 -4
- package/build/server/chunks/{_server.ts-C9PqkEga.js.map → _server.ts-lZxRvx5G.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DcKEI2Ff.js → _server.ts-v7meNBSR.js} +4 -4
- package/build/server/chunks/{_server.ts-DcKEI2Ff.js.map → _server.ts-v7meNBSR.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CO62Q41P.js → _server.ts-vSoEzokn.js} +4 -4
- package/build/server/chunks/{_server.ts-CO62Q41P.js.map → _server.ts-vSoEzokn.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B3CTgC7e.js → _server.ts-x3-1Iy5T.js} +4 -4
- package/build/server/chunks/{_server.ts-B3CTgC7e.js.map → _server.ts-x3-1Iy5T.js.map} +1 -1
- package/build/server/chunks/{_server.ts-vrMFfkPv.js → _server.ts-z9JFYptL.js} +4 -4
- package/build/server/chunks/{_server.ts-vrMFfkPv.js.map → _server.ts-z9JFYptL.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-DFEyMJhA.js → addon-helpers-o7ish5mE.js} +3 -3
- package/build/server/chunks/{addon-helpers-DFEyMJhA.js.map → addon-helpers-o7ish5mE.js.map} +1 -1
- package/build/server/chunks/{akm-CxqalIXt.js → akm-W9nWVWkP.js} +2 -2
- package/build/server/chunks/{akm-CxqalIXt.js.map → akm-W9nWVWkP.js.map} +1 -1
- package/build/server/chunks/{client-DsJcfz5L.js → client-BxrkCo8A.js} +2 -2
- package/build/server/chunks/{client-DsJcfz5L.js.map → client-BxrkCo8A.js.map} +1 -1
- package/build/server/chunks/{config-gWehiHgc.js → config-DHWE6_Oh.js} +2 -2
- package/build/server/chunks/{config-gWehiHgc.js.map → config-DHWE6_Oh.js.map} +1 -1
- package/build/server/chunks/{docker-7X4MmyTh.js → docker-DTmz3vyS.js} +2 -2
- package/build/server/chunks/{docker-7X4MmyTh.js.map → docker-DTmz3vyS.js.map} +1 -1
- package/build/server/chunks/{endpoints-CtFzewjq.js → endpoints-DeqIjeS-.js} +19 -6
- package/build/server/chunks/endpoints-DeqIjeS-.js.map +1 -0
- package/build/server/chunks/{environment-WkaY56eW.js → environment-eUM4Nrm3.js} +2 -2
- package/build/server/chunks/{environment-WkaY56eW.js.map → environment-eUM4Nrm3.js.map} +1 -1
- package/build/server/chunks/{error.svelte-wQDMzENS.js → error.svelte-C1YZdXu0.js} +4 -4
- package/build/server/chunks/{error.svelte-wQDMzENS.js.map → error.svelte-C1YZdXu0.js.map} +1 -1
- package/build/server/chunks/{helpers-DHqjUGTB.js → helpers-BxClonOR.js} +3 -3
- package/build/server/chunks/{helpers-DHqjUGTB.js.map → helpers-BxClonOR.js.map} +1 -1
- package/build/server/chunks/{hooks.server-BT9BE8vm.js → hooks.server-BbqU1Xkl.js} +6 -6
- package/build/server/chunks/hooks.server-BbqU1Xkl.js.map +1 -0
- package/build/server/chunks/{http-oyGIz0mI.js → http-B4lcqCl2.js} +2 -2
- package/build/server/chunks/{http-oyGIz0mI.js.map → http-B4lcqCl2.js.map} +1 -1
- package/build/server/chunks/{internal-BxZRZr_z.js → internal-BqydNqHi.js} +3 -3
- package/build/server/chunks/{internal-BxZRZr_z.js.map → internal-BqydNqHi.js.map} +1 -1
- package/build/server/chunks/{session-cookie-xaN0BnnT.js → session-cookie-BhONF37G.js} +2 -2
- package/build/server/chunks/{session-cookie-xaN0BnnT.js.map → session-cookie-BhONF37G.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-LcTBIlO0.js → setup-deploy-XJpbNV-N.js} +2 -2
- package/build/server/chunks/{setup-deploy-LcTBIlO0.js.map → setup-deploy-XJpbNV-N.js.map} +1 -1
- package/build/server/chunks/{src-Bqr11v--.js → src-DGGmhx-_.js} +494 -128
- package/build/server/chunks/src-DGGmhx-_.js.map +1 -0
- package/build/server/chunks/{state-Cp7JnmAS.js → state-Dd9gBPIF.js} +2 -2
- package/build/server/chunks/{state-Cp7JnmAS.js.map → state-Dd9gBPIF.js.map} +1 -1
- package/build/server/chunks/theme-state.svelte-_CMr5Hu9.js.map +1 -1
- package/build/server/index.js +2 -2
- package/build/server/manifest.js +94 -87
- package/build/server/manifest.js.map +1 -1
- package/package.json +3 -2
- package/build/client/_app/immutable/assets/4.Dplzd8Dq.css +0 -1
- package/build/client/_app/immutable/assets/4.Dplzd8Dq.css.br +0 -0
- package/build/client/_app/immutable/assets/4.Dplzd8Dq.css.gz +0 -0
- package/build/client/_app/immutable/chunks/B29IM9zg.js +0 -1
- package/build/client/_app/immutable/chunks/B29IM9zg.js.br +0 -0
- package/build/client/_app/immutable/chunks/B29IM9zg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/BZzNcvj6.js +0 -1
- package/build/client/_app/immutable/chunks/BZzNcvj6.js.br +0 -2
- package/build/client/_app/immutable/chunks/BZzNcvj6.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cu0zcwlV.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cu0zcwlV.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Cue0EpfJ.js +0 -3
- package/build/client/_app/immutable/chunks/Cue0EpfJ.js.br +0 -0
- package/build/client/_app/immutable/chunks/Cue0EpfJ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DAn-iPjx.js.br +0 -0
- package/build/client/_app/immutable/chunks/DAn-iPjx.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DNTZUJo4.js.br +0 -0
- package/build/client/_app/immutable/chunks/DNTZUJo4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Dd6EPzlG.js.br +0 -0
- package/build/client/_app/immutable/chunks/Dd6EPzlG.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DhD65Brz.js +0 -1
- package/build/client/_app/immutable/chunks/DhD65Brz.js.br +0 -1
- package/build/client/_app/immutable/chunks/DhD65Brz.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Z2W9flFH.js.br +0 -0
- package/build/client/_app/immutable/chunks/Z2W9flFH.js.gz +0 -0
- package/build/client/_app/immutable/chunks/pnb2UBxa.js +0 -5
- package/build/client/_app/immutable/chunks/pnb2UBxa.js.br +0 -0
- package/build/client/_app/immutable/chunks/pnb2UBxa.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.LopPl7G5.js.br +0 -0
- package/build/client/_app/immutable/entry/app.LopPl7G5.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.Cg5Afe6E.js +0 -1
- package/build/client/_app/immutable/entry/start.Cg5Afe6E.js.br +0 -1
- package/build/client/_app/immutable/entry/start.Cg5Afe6E.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.n1Zne31Q.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.n1Zne31Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.viUd6sTI.js.br +0 -3
- package/build/client/_app/immutable/nodes/1.viUd6sTI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DsX_M4-Z.js +0 -1
- package/build/client/_app/immutable/nodes/2.DsX_M4-Z.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DsX_M4-Z.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.DVc7iZMv.js +0 -1
- package/build/client/_app/immutable/nodes/3.DVc7iZMv.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.DVc7iZMv.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CsYXQz3Y.js +0 -19
- package/build/client/_app/immutable/nodes/4.CsYXQz3Y.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CsYXQz3Y.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.OYZYGgdQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.OYZYGgdQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.D4Oy0UwK.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.D4Oy0UwK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.BvvIQZgW.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.BvvIQZgW.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.BypRBgKA.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.BypRBgKA.js.gz +0 -0
- package/build/client/_app/immutable/nodes/9.Cvhy8NSW.js.br +0 -0
- package/build/client/_app/immutable/nodes/9.Cvhy8NSW.js.gz +0 -0
- package/build/server/chunks/1-DriLpuch.js +0 -9
- package/build/server/chunks/4-ipq2Fo20.js +0 -9
- package/build/server/chunks/5-CaAZ_pnW.js +0 -9
- package/build/server/chunks/6-Djkq9gPL.js +0 -9
- package/build/server/chunks/7-Bw1DwzQC.js +0 -9
- package/build/server/chunks/Navbar-C72vlTUN.js.map +0 -1
- package/build/server/chunks/_page.svelte-C6_O57B-.js.map +0 -1
- package/build/server/chunks/_server.ts-BybgwfUH.js.map +0 -1
- package/build/server/chunks/endpoints-CtFzewjq.js.map +0 -1
- package/build/server/chunks/hooks.server-BT9BE8vm.js.map +0 -1
- package/build/server/chunks/src-Bqr11v--.js.map +0 -1
|
@@ -181,6 +181,8 @@ function backupOpenPalmHome(homeDir) {
|
|
|
181
181
|
}
|
|
182
182
|
return copiedAny ? backupDir : null;
|
|
183
183
|
}
|
|
184
|
+
var package_default = {
|
|
185
|
+
version: "0.11.5-rc.5"};
|
|
184
186
|
//#endregion
|
|
185
187
|
//#region ../../node_modules/.bun/yaml@2.9.0/node_modules/yaml/dist/nodes/identity.js
|
|
186
188
|
var require_identity = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
@@ -7378,6 +7380,79 @@ function mergeEnvContent(content, updates, options = {}) {
|
|
|
7378
7380
|
return lines.join("\n");
|
|
7379
7381
|
}
|
|
7380
7382
|
//#endregion
|
|
7383
|
+
//#region ../lib/src/control-plane/image-tags.ts
|
|
7384
|
+
var PLATFORM_IMAGE_TAG_KEYS = [
|
|
7385
|
+
"OP_ASSISTANT_IMAGE_TAG",
|
|
7386
|
+
"OP_GUARDIAN_IMAGE_TAG",
|
|
7387
|
+
"OP_CHANNEL_IMAGE_TAG"
|
|
7388
|
+
];
|
|
7389
|
+
function buildPlatformImageTagEnv(tag) {
|
|
7390
|
+
return {
|
|
7391
|
+
OP_IMAGE_TAG: tag,
|
|
7392
|
+
OP_ASSISTANT_IMAGE_TAG: tag,
|
|
7393
|
+
OP_GUARDIAN_IMAGE_TAG: tag,
|
|
7394
|
+
OP_CHANNEL_IMAGE_TAG: tag
|
|
7395
|
+
};
|
|
7396
|
+
}
|
|
7397
|
+
//#endregion
|
|
7398
|
+
//#region ../lib/src/control-plane/versioning.ts
|
|
7399
|
+
var SEMVER_RE = /^v?\d+\.\d+\.\d+(?:[-+].*)?$/;
|
|
7400
|
+
function isComparableSemver(version) {
|
|
7401
|
+
return !!version && SEMVER_RE.test(version.trim());
|
|
7402
|
+
}
|
|
7403
|
+
function parseComparableVersion(version) {
|
|
7404
|
+
const clean = version.trim().replace(/^v/, "").split("+")[0];
|
|
7405
|
+
const dashIdx = clean.indexOf("-");
|
|
7406
|
+
const main = dashIdx === -1 ? clean : clean.slice(0, dashIdx);
|
|
7407
|
+
const prerelease = dashIdx === -1 ? null : clean.slice(dashIdx + 1);
|
|
7408
|
+
const [major = 0, minor = 0, patch = 0] = main.split(".").map(Number);
|
|
7409
|
+
return {
|
|
7410
|
+
major,
|
|
7411
|
+
minor,
|
|
7412
|
+
patch,
|
|
7413
|
+
prerelease
|
|
7414
|
+
};
|
|
7415
|
+
}
|
|
7416
|
+
function comparePrerelease(a, b) {
|
|
7417
|
+
const aParts = a.split(".");
|
|
7418
|
+
const bParts = b.split(".");
|
|
7419
|
+
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
7420
|
+
if (i >= aParts.length) return -1;
|
|
7421
|
+
if (i >= bParts.length) return 1;
|
|
7422
|
+
const aNum = Number(aParts[i]);
|
|
7423
|
+
const bNum = Number(bParts[i]);
|
|
7424
|
+
const aIsNum = !Number.isNaN(aNum);
|
|
7425
|
+
const bIsNum = !Number.isNaN(bNum);
|
|
7426
|
+
if (aIsNum && bIsNum) {
|
|
7427
|
+
if (aNum !== bNum) return aNum > bNum ? 1 : -1;
|
|
7428
|
+
continue;
|
|
7429
|
+
}
|
|
7430
|
+
if (aIsNum !== bIsNum) return aIsNum ? -1 : 1;
|
|
7431
|
+
if (aParts[i] !== bParts[i]) return aParts[i] > bParts[i] ? 1 : -1;
|
|
7432
|
+
}
|
|
7433
|
+
return 0;
|
|
7434
|
+
}
|
|
7435
|
+
function compareComparableVersions(a, b) {
|
|
7436
|
+
const aParsed = parseComparableVersion(a);
|
|
7437
|
+
const bParsed = parseComparableVersion(b);
|
|
7438
|
+
if (aParsed.major !== bParsed.major) return aParsed.major > bParsed.major ? 1 : -1;
|
|
7439
|
+
if (aParsed.minor !== bParsed.minor) return aParsed.minor > bParsed.minor ? 1 : -1;
|
|
7440
|
+
if (aParsed.patch !== bParsed.patch) return aParsed.patch > bParsed.patch ? 1 : -1;
|
|
7441
|
+
if (aParsed.prerelease === null && bParsed.prerelease !== null) return 1;
|
|
7442
|
+
if (aParsed.prerelease !== null && bParsed.prerelease === null) return -1;
|
|
7443
|
+
if (aParsed.prerelease !== null && bParsed.prerelease !== null) return comparePrerelease(aParsed.prerelease, bParsed.prerelease);
|
|
7444
|
+
return 0;
|
|
7445
|
+
}
|
|
7446
|
+
function majorVersionOf(version) {
|
|
7447
|
+
if (!isComparableSemver(version)) return null;
|
|
7448
|
+
return parseComparableVersion(version).major;
|
|
7449
|
+
}
|
|
7450
|
+
function isSameMajorVersion(a, b) {
|
|
7451
|
+
const aMajor = majorVersionOf(a);
|
|
7452
|
+
const bMajor = majorVersionOf(b);
|
|
7453
|
+
return aMajor !== null && bMajor !== null && aMajor === bMajor;
|
|
7454
|
+
}
|
|
7455
|
+
//#endregion
|
|
7381
7456
|
//#region ../lib/src/control-plane/migrations.ts
|
|
7382
7457
|
/**
|
|
7383
7458
|
* On-disk layout migration harness.
|
|
@@ -7412,6 +7487,17 @@ var MigrationError = class extends Error {
|
|
|
7412
7487
|
this.name = "MigrationError";
|
|
7413
7488
|
}
|
|
7414
7489
|
};
|
|
7490
|
+
var RELEASE_VERSION_KEY = "OP_RELEASE_VERSION";
|
|
7491
|
+
var CURRENT_RELEASE_VERSION = `v${package_default.version}`;
|
|
7492
|
+
function selectPendingReleaseMigrations(releaseFrom, targetVersion) {
|
|
7493
|
+
if (!isComparableSemver(targetVersion)) return [];
|
|
7494
|
+
return RELEASE_MIGRATIONS.filter((migration) => {
|
|
7495
|
+
if (!isComparableSemver(migration.version)) return false;
|
|
7496
|
+
if (compareComparableVersions(migration.version, targetVersion) > 0) return false;
|
|
7497
|
+
if (releaseFrom === null || !isComparableSemver(releaseFrom)) return true;
|
|
7498
|
+
return compareComparableVersions(migration.version, releaseFrom) > 0;
|
|
7499
|
+
}).sort((a, b) => compareComparableVersions(a.version, b.version));
|
|
7500
|
+
}
|
|
7415
7501
|
function stackEnvFile(stashDir) {
|
|
7416
7502
|
return join(stashDir, "env", "stack.env");
|
|
7417
7503
|
}
|
|
@@ -7435,6 +7521,26 @@ function stampLayoutVersion(stashDir, version) {
|
|
|
7435
7521
|
if (!existsSync(envPath)) return;
|
|
7436
7522
|
writeFileSync(envPath, upsertEnvValue(readFileSync(envPath, "utf-8"), LAYOUT_VERSION_KEY, String(version)));
|
|
7437
7523
|
}
|
|
7524
|
+
function readReleaseVersion(stashDir) {
|
|
7525
|
+
const envPath = stackEnvFile(stashDir);
|
|
7526
|
+
if (!existsSync(envPath)) return null;
|
|
7527
|
+
let imageTagFallback = null;
|
|
7528
|
+
for (const line of readFileSync(envPath, "utf-8").split("\n")) {
|
|
7529
|
+
const releaseMatch = line.match(/^OP_RELEASE_VERSION=(.+)\s*$/);
|
|
7530
|
+
if (releaseMatch) return releaseMatch[1].trim();
|
|
7531
|
+
const imageTagMatch = line.match(/^OP_IMAGE_TAG=(.+)\s*$/);
|
|
7532
|
+
if (imageTagMatch && !imageTagFallback) imageTagFallback = imageTagMatch[1].trim();
|
|
7533
|
+
}
|
|
7534
|
+
return imageTagFallback;
|
|
7535
|
+
}
|
|
7536
|
+
function stampReleaseVersion(stashDir, version) {
|
|
7537
|
+
const envPath = stackEnvFile(stashDir);
|
|
7538
|
+
if (!existsSync(envPath)) return;
|
|
7539
|
+
writeFileSync(envPath, upsertEnvValue(readFileSync(envPath, "utf-8"), RELEASE_VERSION_KEY, version));
|
|
7540
|
+
}
|
|
7541
|
+
function upsertMany(content, values) {
|
|
7542
|
+
return Object.entries(values).reduce((next, [key, value]) => upsertEnvValue(next, key, value), content);
|
|
7543
|
+
}
|
|
7438
7544
|
function ensureDir(ctx, dir) {
|
|
7439
7545
|
if (ctx.dryRun) {
|
|
7440
7546
|
ctx.log(`[dry-run] mkdir ${rel(ctx, dir)}`);
|
|
@@ -7476,6 +7582,20 @@ function writeFile600(ctx, path, content) {
|
|
|
7476
7582
|
chmodSync(path, 384);
|
|
7477
7583
|
} catch {}
|
|
7478
7584
|
}
|
|
7585
|
+
function seedPerImageTagVars(ctx) {
|
|
7586
|
+
const envPath = stackEnvFile(ctx.stashDir);
|
|
7587
|
+
if (!existsSync(envPath)) return;
|
|
7588
|
+
const current = readFileSync(envPath, "utf-8");
|
|
7589
|
+
const imageTag = current.match(/^OP_IMAGE_TAG=(.+)$/m)?.[1]?.trim();
|
|
7590
|
+
if (!imageTag) return;
|
|
7591
|
+
if (PLATFORM_IMAGE_TAG_KEYS.filter((key) => !new RegExp(`^${key}=`, "m").test(current)).length === 0) return;
|
|
7592
|
+
if (ctx.dryRun) {
|
|
7593
|
+
ctx.log(`[dry-run] seed per-image tag vars from OP_IMAGE_TAG=${imageTag}`);
|
|
7594
|
+
return;
|
|
7595
|
+
}
|
|
7596
|
+
writeFile600(ctx, envPath, upsertMany(current, buildPlatformImageTagEnv(imageTag)));
|
|
7597
|
+
ctx.log(`seeded per-image tag vars from OP_IMAGE_TAG=${imageTag}`);
|
|
7598
|
+
}
|
|
7479
7599
|
var SECRET_KEY_RE = /(_API_KEY|_TOKEN|_SECRET|_PASSWORD)$/;
|
|
7480
7600
|
var CONFIG_KEY_RE = /^(OP_CAP_|SYSTEM_LLM_|EMBEDDING_)/;
|
|
7481
7601
|
function migrate010to011(ctx) {
|
|
@@ -7631,6 +7751,19 @@ var MIGRATIONS = [{
|
|
|
7631
7751
|
if (!existsSync(stackEnvFile(ctx.stashDir))) throw new Error("post-migration check failed: knowledge/env/stack.env is missing");
|
|
7632
7752
|
}
|
|
7633
7753
|
}];
|
|
7754
|
+
var RELEASE_MIGRATIONS = [{
|
|
7755
|
+
version: CURRENT_RELEASE_VERSION,
|
|
7756
|
+
describe: "seed per-image platform tags from OP_IMAGE_TAG",
|
|
7757
|
+
apply: seedPerImageTagVars,
|
|
7758
|
+
verify(ctx) {
|
|
7759
|
+
if (ctx.dryRun) return;
|
|
7760
|
+
const envPath = stackEnvFile(ctx.stashDir);
|
|
7761
|
+
if (!existsSync(envPath)) return;
|
|
7762
|
+
const content = readFileSync(envPath, "utf-8");
|
|
7763
|
+
if (!/^OP_IMAGE_TAG=/m.test(content)) return;
|
|
7764
|
+
for (const key of PLATFORM_IMAGE_TAG_KEYS) if (!new RegExp(`^${key}=`, "m").test(content)) throw new Error(`post-migration check failed: ${key} is missing`);
|
|
7765
|
+
}
|
|
7766
|
+
}];
|
|
7634
7767
|
var RECOVERY_GUIDANCE = "Your original files were left untouched and a full backup was taken first. To recover, restore the backup (see docs/operations/backup-restore.md) or run the standalone migrator with --dry-run (scripts/migrate-0.10-to-0.11.sh / .ps1). Full guide: docs/operations/upgrade-0.10-to-0.11.md";
|
|
7635
7768
|
/**
|
|
7636
7769
|
* Ensure the home directory is migrated to the current layout. Safe to call at
|
|
@@ -7653,24 +7786,25 @@ function ensureMigrated(opts = {}) {
|
|
|
7653
7786
|
notes: []
|
|
7654
7787
|
};
|
|
7655
7788
|
const from = readLayoutVersion(ctxBase);
|
|
7789
|
+
const releaseFrom = readReleaseVersion(stashDir);
|
|
7656
7790
|
const empty = {
|
|
7657
7791
|
migrated: false,
|
|
7658
7792
|
from,
|
|
7659
7793
|
to: from,
|
|
7660
7794
|
applied: [],
|
|
7661
7795
|
backupDir: null,
|
|
7662
|
-
notes: []
|
|
7796
|
+
notes: [],
|
|
7797
|
+
releaseFrom,
|
|
7798
|
+
releaseTo: CURRENT_RELEASE_VERSION,
|
|
7799
|
+
releaseApplied: []
|
|
7663
7800
|
};
|
|
7664
|
-
if (from >= 1) {
|
|
7665
|
-
if (!dryRun) stampLayoutVersion(stashDir, 1);
|
|
7666
|
-
return {
|
|
7667
|
-
...empty,
|
|
7668
|
-
to: 1
|
|
7669
|
-
};
|
|
7670
|
-
}
|
|
7671
7801
|
const pending = MIGRATIONS.filter((m) => m.from >= from && m.to <= 1).sort((a, b) => a.from - b.from);
|
|
7672
|
-
|
|
7673
|
-
|
|
7802
|
+
const pendingRelease = selectPendingReleaseMigrations(releaseFrom, CURRENT_RELEASE_VERSION);
|
|
7803
|
+
if (pending.length === 0 && pendingRelease.length === 0) {
|
|
7804
|
+
if (!dryRun) {
|
|
7805
|
+
stampLayoutVersion(stashDir, 1);
|
|
7806
|
+
stampReleaseVersion(stashDir, CURRENT_RELEASE_VERSION);
|
|
7807
|
+
}
|
|
7674
7808
|
return {
|
|
7675
7809
|
...empty,
|
|
7676
7810
|
to: 1
|
|
@@ -7697,6 +7831,7 @@ function ensureMigrated(opts = {}) {
|
|
|
7697
7831
|
log(`Backup: ${backupDir}`);
|
|
7698
7832
|
}
|
|
7699
7833
|
const applied = [];
|
|
7834
|
+
const releaseApplied = [];
|
|
7700
7835
|
const notes = [];
|
|
7701
7836
|
for (const m of pending) {
|
|
7702
7837
|
const ctx = {
|
|
@@ -7708,13 +7843,107 @@ function ensureMigrated(opts = {}) {
|
|
|
7708
7843
|
m.verify(ctx);
|
|
7709
7844
|
applied.push(`${m.from}->${m.to}`);
|
|
7710
7845
|
}
|
|
7711
|
-
|
|
7846
|
+
for (const migration of pendingRelease) {
|
|
7847
|
+
const ctx = {
|
|
7848
|
+
...ctxBase,
|
|
7849
|
+
notes
|
|
7850
|
+
};
|
|
7851
|
+
log(`Migrating release ${releaseFrom ?? "unknown"} → ${migration.version}: ${migration.describe}`);
|
|
7852
|
+
migration.apply(ctx);
|
|
7853
|
+
migration.verify(ctx);
|
|
7854
|
+
releaseApplied.push(migration.version);
|
|
7855
|
+
}
|
|
7856
|
+
if (!dryRun) {
|
|
7857
|
+
stampLayoutVersion(stashDir, 1);
|
|
7858
|
+
stampReleaseVersion(stashDir, CURRENT_RELEASE_VERSION);
|
|
7859
|
+
}
|
|
7712
7860
|
return {
|
|
7713
7861
|
migrated: true,
|
|
7714
7862
|
from,
|
|
7715
7863
|
to: 1,
|
|
7716
7864
|
applied,
|
|
7717
7865
|
backupDir,
|
|
7866
|
+
notes,
|
|
7867
|
+
releaseFrom,
|
|
7868
|
+
releaseTo: CURRENT_RELEASE_VERSION,
|
|
7869
|
+
releaseApplied
|
|
7870
|
+
};
|
|
7871
|
+
} catch (e) {
|
|
7872
|
+
if (e instanceof MigrationError) throw e;
|
|
7873
|
+
throw new MigrationError(`Migration failed: ${e instanceof Error ? e.message : String(e)}`, RECOVERY_GUIDANCE, backupDir);
|
|
7874
|
+
} finally {
|
|
7875
|
+
releaseInstallLock(lock);
|
|
7876
|
+
}
|
|
7877
|
+
}
|
|
7878
|
+
function ensureReleaseMigrated(opts) {
|
|
7879
|
+
const homeDir = opts.homeDir ?? resolveOpenPalmHome();
|
|
7880
|
+
const dryRun = opts.dryRun ?? false;
|
|
7881
|
+
const log = opts.log ?? (() => {});
|
|
7882
|
+
const stashDir = resolveStashDir();
|
|
7883
|
+
const targetVersion = opts.targetVersion.trim();
|
|
7884
|
+
const releaseFrom = readReleaseVersion(stashDir);
|
|
7885
|
+
const pendingRelease = selectPendingReleaseMigrations(releaseFrom, targetVersion);
|
|
7886
|
+
const empty = {
|
|
7887
|
+
migrated: false,
|
|
7888
|
+
from: releaseFrom,
|
|
7889
|
+
to: targetVersion,
|
|
7890
|
+
applied: [],
|
|
7891
|
+
backupDir: null,
|
|
7892
|
+
notes: []
|
|
7893
|
+
};
|
|
7894
|
+
if (pendingRelease.length === 0) {
|
|
7895
|
+
if (!dryRun && releaseFrom !== targetVersion) stampReleaseVersion(stashDir, targetVersion);
|
|
7896
|
+
return empty;
|
|
7897
|
+
}
|
|
7898
|
+
const ctxBase = {
|
|
7899
|
+
homeDir,
|
|
7900
|
+
dataDir: resolveDataDir(),
|
|
7901
|
+
stackDir: resolveStackDir(),
|
|
7902
|
+
stashDir,
|
|
7903
|
+
configDir: resolveConfigDir(),
|
|
7904
|
+
dryRun,
|
|
7905
|
+
log,
|
|
7906
|
+
notes: []
|
|
7907
|
+
};
|
|
7908
|
+
let lock = null;
|
|
7909
|
+
let backupDir = null;
|
|
7910
|
+
try {
|
|
7911
|
+
if (!dryRun) {
|
|
7912
|
+
try {
|
|
7913
|
+
mkdirSync(ctxBase.dataDir, { recursive: true });
|
|
7914
|
+
} catch (e) {
|
|
7915
|
+
throw new MigrationError(`Could not prepare the data directory: ${e instanceof Error ? e.message : String(e)}`, RECOVERY_GUIDANCE, null);
|
|
7916
|
+
}
|
|
7917
|
+
lock = acquireInstallLock(ctxBase.dataDir);
|
|
7918
|
+
if (!lock) throw new MigrationError("Another install/upgrade is in progress.", RECOVERY_GUIDANCE, null);
|
|
7919
|
+
log("Taking a full backup before migrating…");
|
|
7920
|
+
try {
|
|
7921
|
+
backupDir = backupOpenPalmHome(homeDir);
|
|
7922
|
+
} catch (e) {
|
|
7923
|
+
throw new MigrationError(`Could not create a safety backup; upgrade aborted (no changes made): ${e instanceof Error ? e.message : String(e)}`, RECOVERY_GUIDANCE, null);
|
|
7924
|
+
}
|
|
7925
|
+
if (!backupDir) throw new MigrationError("Could not create a safety backup; upgrade aborted (no changes made).", RECOVERY_GUIDANCE, null);
|
|
7926
|
+
log(`Backup: ${backupDir}`);
|
|
7927
|
+
}
|
|
7928
|
+
const applied = [];
|
|
7929
|
+
const notes = [];
|
|
7930
|
+
for (const migration of pendingRelease) {
|
|
7931
|
+
const ctx = {
|
|
7932
|
+
...ctxBase,
|
|
7933
|
+
notes
|
|
7934
|
+
};
|
|
7935
|
+
log(`Migrating release ${releaseFrom ?? "unknown"} → ${migration.version}: ${migration.describe}`);
|
|
7936
|
+
migration.apply(ctx);
|
|
7937
|
+
migration.verify(ctx);
|
|
7938
|
+
applied.push(migration.version);
|
|
7939
|
+
}
|
|
7940
|
+
if (!dryRun) stampReleaseVersion(stashDir, targetVersion);
|
|
7941
|
+
return {
|
|
7942
|
+
migrated: true,
|
|
7943
|
+
from: releaseFrom,
|
|
7944
|
+
to: targetVersion,
|
|
7945
|
+
applied,
|
|
7946
|
+
backupDir,
|
|
7718
7947
|
notes
|
|
7719
7948
|
};
|
|
7720
7949
|
} catch (e) {
|
|
@@ -10683,64 +10912,6 @@ var yo = (s) => {
|
|
|
10683
10912
|
s.mtimeCache || (s.mtimeCache = /* @__PURE__ */ new Map()), s.filter = t ? (e, i) => t(e, i) && !((s.mtimeCache?.get(e) ?? i.mtime ?? 0) > (i.mtime ?? 0)) : (e, i) => !((s.mtimeCache?.get(e) ?? i.mtime ?? 0) > (i.mtime ?? 0));
|
|
10684
10913
|
};
|
|
10685
10914
|
//#endregion
|
|
10686
|
-
//#region ../lib/src/control-plane/versioning.ts
|
|
10687
|
-
var SEMVER_RE = /^v?\d+\.\d+\.\d+(?:[-+].*)?$/;
|
|
10688
|
-
function isComparableSemver(version) {
|
|
10689
|
-
return !!version && SEMVER_RE.test(version.trim());
|
|
10690
|
-
}
|
|
10691
|
-
function parseComparableVersion(version) {
|
|
10692
|
-
const clean = version.trim().replace(/^v/, "").split("+")[0];
|
|
10693
|
-
const dashIdx = clean.indexOf("-");
|
|
10694
|
-
const main = dashIdx === -1 ? clean : clean.slice(0, dashIdx);
|
|
10695
|
-
const prerelease = dashIdx === -1 ? null : clean.slice(dashIdx + 1);
|
|
10696
|
-
const [major = 0, minor = 0, patch = 0] = main.split(".").map(Number);
|
|
10697
|
-
return {
|
|
10698
|
-
major,
|
|
10699
|
-
minor,
|
|
10700
|
-
patch,
|
|
10701
|
-
prerelease
|
|
10702
|
-
};
|
|
10703
|
-
}
|
|
10704
|
-
function comparePrerelease(a, b) {
|
|
10705
|
-
const aParts = a.split(".");
|
|
10706
|
-
const bParts = b.split(".");
|
|
10707
|
-
for (let i = 0; i < Math.max(aParts.length, bParts.length); i++) {
|
|
10708
|
-
if (i >= aParts.length) return -1;
|
|
10709
|
-
if (i >= bParts.length) return 1;
|
|
10710
|
-
const aNum = Number(aParts[i]);
|
|
10711
|
-
const bNum = Number(bParts[i]);
|
|
10712
|
-
const aIsNum = !Number.isNaN(aNum);
|
|
10713
|
-
const bIsNum = !Number.isNaN(bNum);
|
|
10714
|
-
if (aIsNum && bIsNum) {
|
|
10715
|
-
if (aNum !== bNum) return aNum > bNum ? 1 : -1;
|
|
10716
|
-
continue;
|
|
10717
|
-
}
|
|
10718
|
-
if (aIsNum !== bIsNum) return aIsNum ? -1 : 1;
|
|
10719
|
-
if (aParts[i] !== bParts[i]) return aParts[i] > bParts[i] ? 1 : -1;
|
|
10720
|
-
}
|
|
10721
|
-
return 0;
|
|
10722
|
-
}
|
|
10723
|
-
function compareComparableVersions(a, b) {
|
|
10724
|
-
const aParsed = parseComparableVersion(a);
|
|
10725
|
-
const bParsed = parseComparableVersion(b);
|
|
10726
|
-
if (aParsed.major !== bParsed.major) return aParsed.major > bParsed.major ? 1 : -1;
|
|
10727
|
-
if (aParsed.minor !== bParsed.minor) return aParsed.minor > bParsed.minor ? 1 : -1;
|
|
10728
|
-
if (aParsed.patch !== bParsed.patch) return aParsed.patch > bParsed.patch ? 1 : -1;
|
|
10729
|
-
if (aParsed.prerelease === null && bParsed.prerelease !== null) return 1;
|
|
10730
|
-
if (aParsed.prerelease !== null && bParsed.prerelease === null) return -1;
|
|
10731
|
-
if (aParsed.prerelease !== null && bParsed.prerelease !== null) return comparePrerelease(aParsed.prerelease, bParsed.prerelease);
|
|
10732
|
-
return 0;
|
|
10733
|
-
}
|
|
10734
|
-
function majorVersionOf(version) {
|
|
10735
|
-
if (!isComparableSemver(version)) return null;
|
|
10736
|
-
return parseComparableVersion(version).major;
|
|
10737
|
-
}
|
|
10738
|
-
function isSameMajorVersion(a, b) {
|
|
10739
|
-
const aMajor = majorVersionOf(a);
|
|
10740
|
-
const bMajor = majorVersionOf(b);
|
|
10741
|
-
return aMajor !== null && bMajor !== null && aMajor === bMajor;
|
|
10742
|
-
}
|
|
10743
|
-
//#endregion
|
|
10744
10915
|
//#region ../lib/src/control-plane/ui-assets.ts
|
|
10745
10916
|
/**
|
|
10746
10917
|
* Runtime asset seeding and resolution for the UI build and OP_HOME skeleton.
|
|
@@ -11477,7 +11648,7 @@ function generateFallbackSystemEnv(state) {
|
|
|
11477
11648
|
"",
|
|
11478
11649
|
"# ── Images ──────────────────────────────────────────────────────────",
|
|
11479
11650
|
`OP_IMAGE_NAMESPACE=${process.env.OP_IMAGE_NAMESPACE ?? "openpalm"}`,
|
|
11480
|
-
|
|
11651
|
+
...Object.entries(buildPlatformImageTagEnv(DEFAULT_IMAGE_TAG)).map(([key, value]) => `${key}=${value}`),
|
|
11481
11652
|
"",
|
|
11482
11653
|
"# ── Layout (on-disk schema version; managed by the migration harness) ──",
|
|
11483
11654
|
`OP_LAYOUT_VERSION=1`,
|
|
@@ -13351,8 +13522,6 @@ async function validateProposedState(state) {
|
|
|
13351
13522
|
warnings
|
|
13352
13523
|
};
|
|
13353
13524
|
}
|
|
13354
|
-
var package_default = {
|
|
13355
|
-
version: "0.11.5-rc.2"};
|
|
13356
13525
|
//#endregion
|
|
13357
13526
|
//#region ../lib/src/control-plane/compose-args.ts
|
|
13358
13527
|
/**
|
|
@@ -13403,6 +13572,11 @@ function buildComposeOptions(state) {
|
|
|
13403
13572
|
/** Lifecycle helpers — state factory, apply transitions, compose file list. */
|
|
13404
13573
|
var IMAGE_NAMESPACE_RE = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/;
|
|
13405
13574
|
var SEMVER_TAG_RE = /^v\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.-]+)?$/;
|
|
13575
|
+
var PLATFORM_IMAGE_NAMES = [
|
|
13576
|
+
"assistant",
|
|
13577
|
+
"guardian",
|
|
13578
|
+
"channel"
|
|
13579
|
+
];
|
|
13406
13580
|
function createState() {
|
|
13407
13581
|
const homeDir = resolveOpenPalmHome();
|
|
13408
13582
|
const configDir = resolveConfigDir();
|
|
@@ -13523,6 +13697,35 @@ function resolveImageNamespace(state) {
|
|
|
13523
13697
|
if (!IMAGE_NAMESPACE_RE.test(namespace)) throw new Error(`Invalid image namespace in system.env: ${namespace}`);
|
|
13524
13698
|
return namespace;
|
|
13525
13699
|
}
|
|
13700
|
+
function resolveRequiredPlatformImages(state) {
|
|
13701
|
+
const required = new Set(["assistant"]);
|
|
13702
|
+
if (hasEnabledChannel(listEnabledAddonIds(state.homeDir))) {
|
|
13703
|
+
required.add("guardian");
|
|
13704
|
+
required.add("channel");
|
|
13705
|
+
}
|
|
13706
|
+
return PLATFORM_IMAGE_NAMES.filter((name) => required.has(name));
|
|
13707
|
+
}
|
|
13708
|
+
async function isDockerImageTagPublished(namespace, imageName, tag) {
|
|
13709
|
+
let response;
|
|
13710
|
+
try {
|
|
13711
|
+
response = await fetch(`https://registry.hub.docker.com/v2/repositories/${namespace}/${imageName}/tags/${tag}`, { headers: { Accept: "application/json" } });
|
|
13712
|
+
} catch (e) {
|
|
13713
|
+
throw new Error(`Failed to verify Docker image tag ${namespace}/${imageName}:${tag}: ${e instanceof Error ? e.message : String(e)}`);
|
|
13714
|
+
}
|
|
13715
|
+
if (response.status === 404) return false;
|
|
13716
|
+
if (!response.ok) throw new Error(`Docker tag verification failed for ${namespace}/${imageName}:${tag} (${response.status})`);
|
|
13717
|
+
return true;
|
|
13718
|
+
}
|
|
13719
|
+
async function ensurePlatformImagesPublished(state, namespace, tag) {
|
|
13720
|
+
if (namespace !== "openpalm") return;
|
|
13721
|
+
const requiredImages = resolveRequiredPlatformImages(state);
|
|
13722
|
+
const missing = (await Promise.all(requiredImages.map(async (imageName) => ({
|
|
13723
|
+
imageName,
|
|
13724
|
+
published: await isDockerImageTagPublished(namespace, imageName, tag)
|
|
13725
|
+
})))).filter((entry) => !entry.published).map((entry) => entry.imageName);
|
|
13726
|
+
if (missing.length === 0) return;
|
|
13727
|
+
throw new Error(`Refusing to update to ${namespace}/*:${tag}: missing published image tag(s) for ${missing.join(", ")}. This release is incomplete for the enabled services; stack.env was left unchanged.`);
|
|
13728
|
+
}
|
|
13526
13729
|
/**
|
|
13527
13730
|
* Resolve the newest published platform tag from the Docker registry.
|
|
13528
13731
|
*
|
|
@@ -13558,11 +13761,12 @@ async function resolveLatestPlatformTagForCurrentMajor(namespace, currentTag) {
|
|
|
13558
13761
|
if (!latestTag) throw new Error(`No usable Docker image tag found in major ${currentTag.replace(/^v/, "").split(".")[0]}`);
|
|
13559
13762
|
return latestTag;
|
|
13560
13763
|
}
|
|
13561
|
-
async function updateStackEnvToLatestImageTag(state) {
|
|
13764
|
+
async function updateStackEnvToLatestImageTag(state, resolvedTag) {
|
|
13562
13765
|
const systemEnvPath = `${state.stashDir}/env/stack.env`;
|
|
13563
13766
|
const namespace = resolveImageNamespace(state);
|
|
13564
|
-
const latestTag = await resolveLatestPlatformTagForCurrentMajor(namespace, resolvePlatformVersionPolicyBaseTag(state));
|
|
13565
|
-
|
|
13767
|
+
const latestTag = resolvedTag ?? await resolveLatestPlatformTagForCurrentMajor(namespace, resolvePlatformVersionPolicyBaseTag(state));
|
|
13768
|
+
await ensurePlatformImagesPublished(state, namespace, latestTag);
|
|
13769
|
+
writeFileSync(systemEnvPath, mergeEnvContent(existsSync(systemEnvPath) ? readFileSync(systemEnvPath, "utf-8") : "", buildPlatformImageTagEnv(latestTag), { uncomment: true }));
|
|
13566
13770
|
return {
|
|
13567
13771
|
namespace,
|
|
13568
13772
|
tag: latestTag
|
|
@@ -13582,75 +13786,89 @@ async function applyUpgrade(state, version) {
|
|
|
13582
13786
|
releaseInstallLock(lock);
|
|
13583
13787
|
}
|
|
13584
13788
|
}
|
|
13585
|
-
|
|
13586
|
-
* Full upgrade: resolve latest image tag, refresh assets, pull images,
|
|
13587
|
-
* and recreate containers. Used by both the admin endpoint and CLI.
|
|
13588
|
-
*
|
|
13589
|
-
* Callers handle their own audit logging and admin self-recreation.
|
|
13590
|
-
*/
|
|
13591
|
-
async function performUpgrade(state) {
|
|
13592
|
-
const composeOpts = buildComposeOptions(state);
|
|
13789
|
+
async function withStackEnvRollback(state, run) {
|
|
13593
13790
|
const stackEnvPath = `${state.stashDir}/env/stack.env`;
|
|
13594
13791
|
let originalStackEnv = null;
|
|
13595
13792
|
try {
|
|
13596
13793
|
originalStackEnv = readFileSync(stackEnvPath, "utf-8");
|
|
13597
13794
|
} catch {}
|
|
13598
|
-
let imageTag;
|
|
13599
|
-
let namespace;
|
|
13600
|
-
let upgradeResult;
|
|
13601
13795
|
try {
|
|
13602
|
-
|
|
13603
|
-
imageTag = tagResult.tag;
|
|
13604
|
-
namespace = tagResult.namespace;
|
|
13605
|
-
upgradeResult = await applyUpgrade(state, imageTag);
|
|
13796
|
+
return await run();
|
|
13606
13797
|
} catch (e) {
|
|
13607
13798
|
if (originalStackEnv !== null) try {
|
|
13608
13799
|
writeFileSync(stackEnvPath, originalStackEnv);
|
|
13609
13800
|
} catch {}
|
|
13610
13801
|
throw e;
|
|
13611
13802
|
}
|
|
13612
|
-
|
|
13613
|
-
|
|
13614
|
-
|
|
13615
|
-
|
|
13616
|
-
|
|
13617
|
-
|
|
13618
|
-
|
|
13619
|
-
|
|
13803
|
+
}
|
|
13804
|
+
/**
|
|
13805
|
+
* Full upgrade: resolve latest image tag, refresh assets, pull images,
|
|
13806
|
+
* and recreate containers. Used by both the admin endpoint and CLI.
|
|
13807
|
+
*
|
|
13808
|
+
* Callers handle their own audit logging and admin self-recreation.
|
|
13809
|
+
*/
|
|
13810
|
+
async function performUpgrade(state) {
|
|
13811
|
+
return withStackEnvRollback(state, async () => {
|
|
13812
|
+
const composeOpts = buildComposeOptions(state);
|
|
13813
|
+
const namespace = resolveImageNamespace(state);
|
|
13814
|
+
const imageTag = await resolveLatestPlatformTagForCurrentMajor(namespace, resolvePlatformVersionPolicyBaseTag(state));
|
|
13815
|
+
await ensurePlatformImagesPublished(state, namespace, imageTag);
|
|
13816
|
+
ensureReleaseMigrated({
|
|
13817
|
+
homeDir: state.homeDir,
|
|
13818
|
+
targetVersion: imageTag
|
|
13819
|
+
});
|
|
13820
|
+
const { tag: confirmedImageTag } = await updateStackEnvToLatestImageTag(state, imageTag);
|
|
13821
|
+
const upgradeResult = await applyUpgrade(state, confirmedImageTag);
|
|
13822
|
+
const pullResult = await composePull(composeOpts);
|
|
13823
|
+
if (!pullResult.ok) throw new Error(`Failed to pull images: ${pullResult.stderr}`);
|
|
13824
|
+
const services = await buildManagedServices(state);
|
|
13825
|
+
const upResult = await composeUp({
|
|
13826
|
+
...composeOpts,
|
|
13827
|
+
services,
|
|
13828
|
+
forceRecreate: true,
|
|
13829
|
+
removeOrphans: true
|
|
13830
|
+
});
|
|
13831
|
+
if (!upResult.ok) throw new Error(`Images pulled but failed to recreate containers: ${upResult.stderr}`);
|
|
13832
|
+
return {
|
|
13833
|
+
imageTag: confirmedImageTag,
|
|
13834
|
+
namespace,
|
|
13835
|
+
backupDir: upgradeResult.backupDir,
|
|
13836
|
+
assetsUpdated: upgradeResult.updated,
|
|
13837
|
+
restarted: upgradeResult.restarted
|
|
13838
|
+
};
|
|
13620
13839
|
});
|
|
13621
|
-
if (!upResult.ok) throw new Error(`Images pulled but failed to recreate containers: ${upResult.stderr}`);
|
|
13622
|
-
return {
|
|
13623
|
-
imageTag,
|
|
13624
|
-
namespace,
|
|
13625
|
-
backupDir: upgradeResult.backupDir,
|
|
13626
|
-
assetsUpdated: upgradeResult.updated,
|
|
13627
|
-
restarted: upgradeResult.restarted
|
|
13628
|
-
};
|
|
13629
13840
|
}
|
|
13630
13841
|
/**
|
|
13631
13842
|
* Set a specific image tag in stack.env then pull images and restart containers.
|
|
13632
13843
|
* Used by the admin "set version" action — skips the auto-detect step in performUpgrade.
|
|
13633
13844
|
*/
|
|
13634
13845
|
async function applyTagChange(state, tag) {
|
|
13635
|
-
|
|
13636
|
-
|
|
13637
|
-
|
|
13638
|
-
|
|
13639
|
-
|
|
13640
|
-
|
|
13641
|
-
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
|
|
13648
|
-
|
|
13649
|
-
|
|
13650
|
-
|
|
13651
|
-
|
|
13652
|
-
|
|
13653
|
-
|
|
13846
|
+
return withStackEnvRollback(state, async () => {
|
|
13847
|
+
const namespace = resolveImageNamespace(state);
|
|
13848
|
+
const requested = tag.trim();
|
|
13849
|
+
let resolvedTag = requested;
|
|
13850
|
+
if (requested === "" || requested.toLowerCase() === "latest") try {
|
|
13851
|
+
resolvedTag = await resolveLatestPlatformTag(namespace);
|
|
13852
|
+
} catch (e) {
|
|
13853
|
+
const msg = e instanceof Error ? e.message : String(e);
|
|
13854
|
+
throw new Error(`Cannot resolve "latest" to a concrete release: ${msg}. Check your network connection or select a specific version.`);
|
|
13855
|
+
}
|
|
13856
|
+
await ensurePlatformImagesPublished(state, namespace, resolvedTag);
|
|
13857
|
+
ensureReleaseMigrated({
|
|
13858
|
+
homeDir: state.homeDir,
|
|
13859
|
+
targetVersion: resolvedTag
|
|
13860
|
+
});
|
|
13861
|
+
const stackEnvPath = `${state.stashDir}/env/stack.env`;
|
|
13862
|
+
writeFileSync(stackEnvPath, mergeEnvContent(existsSync(stackEnvPath) ? readFileSync(stackEnvPath, "utf-8") : "", buildPlatformImageTagEnv(resolvedTag), { uncomment: true }));
|
|
13863
|
+
const upgradeResult = await applyUpgrade(state, resolvedTag);
|
|
13864
|
+
return {
|
|
13865
|
+
imageTag: resolvedTag,
|
|
13866
|
+
namespace,
|
|
13867
|
+
backupDir: upgradeResult.backupDir,
|
|
13868
|
+
assetsUpdated: upgradeResult.updated,
|
|
13869
|
+
restarted: upgradeResult.restarted
|
|
13870
|
+
};
|
|
13871
|
+
});
|
|
13654
13872
|
}
|
|
13655
13873
|
function buildComposeFileList(state) {
|
|
13656
13874
|
return discoverStackOverlays(state.stackDir, state.homeDir);
|
|
@@ -14780,7 +14998,7 @@ async function performSetup(input, opts) {
|
|
|
14780
14998
|
try {
|
|
14781
14999
|
const systemEnvForAkm = existsSync(`${state.stashDir}/env/stack.env`) ? readFileSync(`${state.stashDir}/env/stack.env`, "utf-8") : "";
|
|
14782
15000
|
const akmUpdates = {};
|
|
14783
|
-
akmUpdates
|
|
15001
|
+
Object.assign(akmUpdates, buildPlatformImageTagEnv(imageTag && imageTag.trim() ? imageTag.trim() : DEFAULT_IMAGE_TAG));
|
|
14784
15002
|
if (Object.keys(akmUpdates).length > 0) writeFileAtomic(`${state.stashDir}/env/stack.env`, mergeEnvContent(systemEnvForAkm, akmUpdates), 384);
|
|
14785
15003
|
if (llm || embedding) {
|
|
14786
15004
|
const akmConfigDir = join(state.configDir, "akm");
|
|
@@ -15041,6 +15259,154 @@ function importHostOpenCode(state, options = {}) {
|
|
|
15041
15259
|
conflicts
|
|
15042
15260
|
};
|
|
15043
15261
|
}
|
|
15262
|
+
//#endregion
|
|
15263
|
+
//#region ../lib/src/control-plane/akm-stats.ts
|
|
15264
|
+
function asRecord(value) {
|
|
15265
|
+
return value && typeof value === "object" && !Array.isArray(value) ? value : null;
|
|
15266
|
+
}
|
|
15267
|
+
function asArray(value) {
|
|
15268
|
+
return Array.isArray(value) ? value : [];
|
|
15269
|
+
}
|
|
15270
|
+
function asString(value) {
|
|
15271
|
+
return typeof value === "string" && value.trim() ? value : null;
|
|
15272
|
+
}
|
|
15273
|
+
function asNumber(value) {
|
|
15274
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
15275
|
+
}
|
|
15276
|
+
function asBoolean(value) {
|
|
15277
|
+
return typeof value === "boolean" ? value : null;
|
|
15278
|
+
}
|
|
15279
|
+
function parseJsonObject(stdout) {
|
|
15280
|
+
try {
|
|
15281
|
+
return asRecord(JSON.parse(stdout));
|
|
15282
|
+
} catch {
|
|
15283
|
+
return null;
|
|
15284
|
+
}
|
|
15285
|
+
}
|
|
15286
|
+
function runAkmJsonCommand(state, args, timeoutMs, options = {}) {
|
|
15287
|
+
const akmEnv = buildAkmEnv(state);
|
|
15288
|
+
assertAkmEnvComplete(akmEnv);
|
|
15289
|
+
return new Promise((resolve) => {
|
|
15290
|
+
execFile("akm", [
|
|
15291
|
+
...args,
|
|
15292
|
+
"--format",
|
|
15293
|
+
"json",
|
|
15294
|
+
"--quiet"
|
|
15295
|
+
], {
|
|
15296
|
+
env: {
|
|
15297
|
+
...process.env,
|
|
15298
|
+
...akmEnv
|
|
15299
|
+
},
|
|
15300
|
+
timeout: timeoutMs,
|
|
15301
|
+
maxBuffer: 4 * 1024 * 1024
|
|
15302
|
+
}, (error, stdout, stderr) => {
|
|
15303
|
+
const execError = error;
|
|
15304
|
+
const exitCode = typeof execError?.code === "number" ? execError.code : null;
|
|
15305
|
+
const errorCode = typeof execError?.code === "string" ? execError.code : null;
|
|
15306
|
+
const allowed = exitCode !== null && (options.allowExitCodes ?? []).includes(exitCode);
|
|
15307
|
+
resolve({
|
|
15308
|
+
ok: !error || allowed,
|
|
15309
|
+
stdout: stdout?.toString() ?? "",
|
|
15310
|
+
stderr: stderr?.toString() ?? "",
|
|
15311
|
+
exitCode,
|
|
15312
|
+
errorCode
|
|
15313
|
+
});
|
|
15314
|
+
});
|
|
15315
|
+
});
|
|
15316
|
+
}
|
|
15317
|
+
function readAssetCount(info, type) {
|
|
15318
|
+
if (!info) return null;
|
|
15319
|
+
const candidates = [
|
|
15320
|
+
asRecord(info.assetCounts),
|
|
15321
|
+
asRecord(info.assetTypeCounts),
|
|
15322
|
+
asRecord(info.assetsByType),
|
|
15323
|
+
asRecord(info.counts)
|
|
15324
|
+
];
|
|
15325
|
+
for (const candidate of candidates) {
|
|
15326
|
+
const value = asNumber(candidate?.[type]);
|
|
15327
|
+
if (value !== null) return value;
|
|
15328
|
+
}
|
|
15329
|
+
return null;
|
|
15330
|
+
}
|
|
15331
|
+
function advisoryMessage(value) {
|
|
15332
|
+
if (typeof value === "string" && value.trim()) return value.trim();
|
|
15333
|
+
const record = asRecord(value);
|
|
15334
|
+
if (!record) return null;
|
|
15335
|
+
return asString(record.message) ?? asString(record.name);
|
|
15336
|
+
}
|
|
15337
|
+
function parseAkmStats(healthStdout, infoStdout, proposalsStdout) {
|
|
15338
|
+
const health = parseJsonObject(healthStdout);
|
|
15339
|
+
const info = parseJsonObject(infoStdout);
|
|
15340
|
+
const proposalsPayload = parseJsonObject(proposalsStdout);
|
|
15341
|
+
if (!health && !info) return {
|
|
15342
|
+
available: false,
|
|
15343
|
+
reason: "AKM stats unavailable on this host."
|
|
15344
|
+
};
|
|
15345
|
+
const indexStats = asRecord(info?.indexStats);
|
|
15346
|
+
const improve = asRecord(health?.improve);
|
|
15347
|
+
const reflect = asRecord(improve?.reflect);
|
|
15348
|
+
const consolidation = asRecord(improve?.consolidation);
|
|
15349
|
+
const proposals = asArray(proposalsPayload?.proposals).map((entry) => asRecord(entry)).filter((entry) => entry !== null).map((entry) => ({
|
|
15350
|
+
ref: asString(entry.ref),
|
|
15351
|
+
generator: asString(entry.generator) ?? asString(entry.source),
|
|
15352
|
+
createdAt: asString(entry.createdAt),
|
|
15353
|
+
status: asString(entry.status)
|
|
15354
|
+
}));
|
|
15355
|
+
const rawStatus = asString(health?.status)?.toLowerCase();
|
|
15356
|
+
const status = rawStatus === "pass" || rawStatus === "ok" ? "pass" : rawStatus === "warn" ? "warn" : "unknown";
|
|
15357
|
+
return {
|
|
15358
|
+
available: true,
|
|
15359
|
+
version: asString(info?.version),
|
|
15360
|
+
health: {
|
|
15361
|
+
status,
|
|
15362
|
+
advisories: asArray(health?.advisories).map((entry) => advisoryMessage(entry)).filter((entry) => entry !== null)
|
|
15363
|
+
},
|
|
15364
|
+
index: {
|
|
15365
|
+
entryCount: asNumber(indexStats?.entryCount),
|
|
15366
|
+
lastBuiltAt: asString(indexStats?.lastBuiltAt),
|
|
15367
|
+
hasEmbeddings: asBoolean(indexStats?.hasEmbeddings),
|
|
15368
|
+
vecAvailable: asBoolean(indexStats?.vecAvailable)
|
|
15369
|
+
},
|
|
15370
|
+
assetCounts: {
|
|
15371
|
+
memory: readAssetCount(info, "memory"),
|
|
15372
|
+
skill: readAssetCount(info, "skill"),
|
|
15373
|
+
lesson: readAssetCount(info, "lesson")
|
|
15374
|
+
},
|
|
15375
|
+
improve: {
|
|
15376
|
+
invoked: asNumber(improve?.invoked),
|
|
15377
|
+
completed: asNumber(improve?.completed),
|
|
15378
|
+
skipped: asNumber(improve?.skipped),
|
|
15379
|
+
reflectOk: asNumber(reflect?.ok),
|
|
15380
|
+
reflectCooldown: asNumber(reflect?.cooldown),
|
|
15381
|
+
consolidation: {
|
|
15382
|
+
promoted: asNumber(consolidation?.promoted),
|
|
15383
|
+
merged: asNumber(consolidation?.merged),
|
|
15384
|
+
deleted: asNumber(consolidation?.deleted)
|
|
15385
|
+
}
|
|
15386
|
+
},
|
|
15387
|
+
proposals: {
|
|
15388
|
+
pending: proposals.length,
|
|
15389
|
+
items: proposals
|
|
15390
|
+
}
|
|
15391
|
+
};
|
|
15392
|
+
}
|
|
15393
|
+
async function getAkmStats(state) {
|
|
15394
|
+
const [healthResult, infoResult, proposalsResult] = await Promise.all([
|
|
15395
|
+
runAkmJsonCommand(state, ["health"], 8e3, { allowExitCodes: [4] }),
|
|
15396
|
+
runAkmJsonCommand(state, ["info"], 8e3),
|
|
15397
|
+
runAkmJsonCommand(state, [
|
|
15398
|
+
"proposal",
|
|
15399
|
+
"list",
|
|
15400
|
+
"--status",
|
|
15401
|
+
"pending"
|
|
15402
|
+
], 12e3)
|
|
15403
|
+
]);
|
|
15404
|
+
if (healthResult.errorCode === "ENOENT" || infoResult.errorCode === "ENOENT") return {
|
|
15405
|
+
available: false,
|
|
15406
|
+
reason: "The akm CLI is not installed on this host."
|
|
15407
|
+
};
|
|
15408
|
+
return parseAkmStats(healthResult.stdout, infoResult.stdout, proposalsResult.stdout);
|
|
15409
|
+
}
|
|
15044
15410
|
|
|
15045
|
-
export {
|
|
15046
|
-
//# sourceMappingURL=src-
|
|
15411
|
+
export { getHostAkmSharingStatus as $, AKM_USER_ENV_REF as A, createOpenCodeClient as B, CORE_SERVICES as C, createState as D, deleteUserEnvKey as E, detectExistingProject as F, detectGpu as G, detectHostOpenCode as H, detectLocalProviders as I, disableHostAkmSharing as J, enableHostAkmSharing as K, ensureAkmUserEnv as L, MigrationError as M, ensureHomeDirs as N, ensureMigrated as O, PROVIDER_KEY_MAP as P, ensureOpenCodeConfig as Q, ensureOpenCodeSystemConfig as R, ensureSecrets as S, executeAutomation as T, fetchProviderModels as U, getAddonProfileAvailability as V, getAddonProfileSelection as W, getAddonProfiles as X, getAddonServiceNames as Y, getAkmStats as Z, getDockerEvents as _, addonProfileId as a, getRegistryAddonConfig as a0, hostAkmStashPath as a1, importHostOpenCode as a2, isAllowedService as a3, isHostAkmAvailable as a4, isSetupComplete as a5, listAvailableAddonIds as a6, listEnabledAddonIds as a7, listSecretFiles as a8, loadAutomations as a9, writeFileAtomic as aA, writeRuntimeFiles as aB, writeSecretFile as aC, writeStackSecretEnv as aD, writeTaskFile as aE, writeUserEnvKey as aF, writeVoiceVars as aG, lookupEmbeddingDims as aa, parseComposeStderr as ab, parseEnvFile as ac, patchSecretsEnvFile as ad, performSetup as ae, performUpgrade as af, readAutomationLogs as ag, readSecret as ah, readSecretFile as ai, readStackEnv as aj, readStackRuntimeEnv as ak, readStackSecretEnv as al, readTaskFile as am, readUserEnvFile as an, recommendSetup as ao, removeSecretFile as ap, removeTaskFile as aq, resolveComposeProjectName as ar, resolveDataDir as as, resolveRuntimeFiles as at, resolveStackDir as au, seedUiBuild as av, setAddonEnabled as aw, setAddonProfileSelection as ax, summarizeComposeStderr as ay, validateProposedState as az, annotateAddonProfileAvailability as b, applyInstall as c, applyTagChange as d, applyUninstall as e, applyUpdate as f, assertSafeSecretFilename as g, assertSafeTaskFilename as h, authJsonPath as i, buildAkmEndpoint as j, buildAkmEnv as k, buildComposeOptions as l, buildManagedServices as m, checkDocker as n, checkDockerCompose as o, composeDown as p, composeLogs as q, composePreflight as r, composePs as s, composePull as t, composeRestart as u, composeStart as v, composeStats as w, composeStop as x, composeUp as y, createLogger as z };
|
|
15412
|
+
//# sourceMappingURL=src-DGGmhx-_.js.map
|