@openpalm/ui 0.12.34 → 0.12.36
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/.openpalm-ui-version +1 -1
- package/build/client/_app/immutable/chunks/{CJjzJNol.js → 18H4LtPZ.js} +1 -1
- package/build/client/_app/immutable/chunks/18H4LtPZ.js.br +0 -0
- package/build/client/_app/immutable/chunks/18H4LtPZ.js.gz +0 -0
- package/build/client/_app/immutable/chunks/B9EqtPE4.js +1 -0
- package/build/client/_app/immutable/chunks/B9EqtPE4.js.br +2 -0
- package/build/client/_app/immutable/chunks/B9EqtPE4.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CS-tYlaw.js → BWlXSOvq.js} +1 -1
- package/build/client/_app/immutable/chunks/BWlXSOvq.js.br +0 -0
- package/build/client/_app/immutable/chunks/BWlXSOvq.js.gz +0 -0
- package/build/client/_app/immutable/chunks/WWLVY9mq.js +3 -0
- package/build/client/_app/immutable/chunks/WWLVY9mq.js.br +0 -0
- package/build/client/_app/immutable/chunks/WWLVY9mq.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.D7TBsXqj.js → app.C2R9I_ws.js} +2 -2
- package/build/client/_app/immutable/entry/app.C2R9I_ws.js.br +0 -0
- package/build/client/_app/immutable/entry/app.C2R9I_ws.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CH0zgqk7.js +1 -0
- package/build/client/_app/immutable/entry/start.CH0zgqk7.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CH0zgqk7.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.Bi6WIdhc.js → 1.BgCCmrLT.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BgCCmrLT.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.BgCCmrLT.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.lRB7NSwy.js +3 -0
- package/build/client/_app/immutable/nodes/10.lRB7NSwy.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.lRB7NSwy.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.NXDNIo_o.js → 4.CTNJp0zo.js} +1 -1
- package/build/client/_app/immutable/nodes/4.CTNJp0zo.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CTNJp0zo.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{5.CGz0srSp.js → 5.DT81-wvC.js} +1 -1
- package/build/client/_app/immutable/nodes/5.DT81-wvC.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.DT81-wvC.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{6.BUJ84ynI.js → 6.DBcGu6ci.js} +1 -1
- package/build/client/_app/immutable/nodes/6.DBcGu6ci.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.DBcGu6ci.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{7.D4v1j10K.js → 7.CnGpHSBm.js} +1 -1
- package/build/client/_app/immutable/nodes/7.CnGpHSBm.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.CnGpHSBm.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{8.eBCg3Ry9.js → 8.DPIpvND6.js} +1 -1
- package/build/client/_app/immutable/nodes/8.DPIpvND6.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.DPIpvND6.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +1 -1
- package/build/client/_app/version.json.gz +0 -0
- package/build/server/chunks/1-Ba2dl8WF.js +9 -0
- package/build/server/chunks/{1-DrFASQif.js.map → 1-Ba2dl8WF.js.map} +1 -1
- package/build/server/chunks/{10-B6IaM0-e.js → 10-CkPDkKVx.js} +7 -7
- package/build/server/chunks/10-CkPDkKVx.js.map +1 -0
- package/build/server/chunks/{4-C3H9LKRg.js → 4-ZfnBF0Dj.js} +3 -3
- package/build/server/chunks/{4-C3H9LKRg.js.map → 4-ZfnBF0Dj.js.map} +1 -1
- package/build/server/chunks/{5-BGxY0RSD.js → 5-C_Y14AXF.js} +3 -3
- package/build/server/chunks/{5-BGxY0RSD.js.map → 5-C_Y14AXF.js.map} +1 -1
- package/build/server/chunks/{6-BZ-Odk7I.js → 6-ClhMBUrx.js} +3 -3
- package/build/server/chunks/{6-BZ-Odk7I.js.map → 6-ClhMBUrx.js.map} +1 -1
- package/build/server/chunks/{7-etzd-Xd2.js → 7-7gjO-2Lg.js} +3 -3
- package/build/server/chunks/{7-etzd-Xd2.js.map → 7-7gjO-2Lg.js.map} +1 -1
- package/build/server/chunks/{8-CNz8Jpc-.js → 8-BbPGl27f.js} +3 -3
- package/build/server/chunks/{8-CNz8Jpc-.js.map → 8-BbPGl27f.js.map} +1 -1
- package/build/server/chunks/{Navbar-CXNzYgdt.js → Navbar-DN8ttZku.js} +3 -3
- package/build/server/chunks/{Navbar-CXNzYgdt.js.map → Navbar-DN8ttZku.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DtgRYmye.js → _page.svelte-3-BbtUw7.js} +5 -5
- package/build/server/chunks/{_page.svelte-DtgRYmye.js.map → _page.svelte-3-BbtUw7.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DhOqX8mJ.js → _page.svelte-B9w3i-o2.js} +3 -3
- package/build/server/chunks/{_page.svelte-DhOqX8mJ.js.map → _page.svelte-B9w3i-o2.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-mebE6HA8.js → _page.svelte-B_hW5WaY.js} +3 -3
- package/build/server/chunks/{_page.svelte-mebE6HA8.js.map → _page.svelte-B_hW5WaY.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-DSEIDtL1.js → _page.svelte-Ddqlogf2.js} +5 -5
- package/build/server/chunks/{_page.svelte-DSEIDtL1.js.map → _page.svelte-Ddqlogf2.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-Cj0Y9tCh.js → _page.svelte-m57Wpiuj.js} +5 -5
- package/build/server/chunks/{_page.svelte-Cj0Y9tCh.js.map → _page.svelte-m57Wpiuj.js.map} +1 -1
- package/build/server/chunks/{_page.svelte-rf-Q89lq.js → _page.svelte-xumMJJN7.js} +2 -2
- package/build/server/chunks/_page.svelte-xumMJJN7.js.map +1 -0
- package/build/server/chunks/{_server.ts-C0kEzW7V.js → _server.ts-2nV2xJ6k.js} +7 -7
- package/build/server/chunks/{_server.ts-C0kEzW7V.js.map → _server.ts-2nV2xJ6k.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CawziIqs.js → _server.ts-9EX0zwyr.js} +2 -2
- package/build/server/chunks/{_server.ts-CawziIqs.js.map → _server.ts-9EX0zwyr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Cxr9pVQe.js → _server.ts-B-O4_XTp.js} +5 -5
- package/build/server/chunks/{_server.ts-Cxr9pVQe.js.map → _server.ts-B-O4_XTp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Bdv1N4Zn.js → _server.ts-B2hH7NwG.js} +5 -5
- package/build/server/chunks/{_server.ts-Bdv1N4Zn.js.map → _server.ts-B2hH7NwG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-fCo6TSRW.js → _server.ts-B2vHnPyE.js} +5 -5
- package/build/server/chunks/{_server.ts-fCo6TSRW.js.map → _server.ts-B2vHnPyE.js.map} +1 -1
- package/build/server/chunks/{_server.ts-mL9UAmlh.js → _server.ts-B8q5v1MH.js} +5 -5
- package/build/server/chunks/{_server.ts-mL9UAmlh.js.map → _server.ts-B8q5v1MH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BMZDMOWe.js → _server.ts-B9eSpa-M.js} +4 -4
- package/build/server/chunks/{_server.ts-BMZDMOWe.js.map → _server.ts-B9eSpa-M.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CY5x6NoR.js → _server.ts-BAbY8aV1.js} +5 -5
- package/build/server/chunks/{_server.ts-CY5x6NoR.js.map → _server.ts-BAbY8aV1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DaWQ85du.js → _server.ts-BAdKV-Vr.js} +5 -5
- package/build/server/chunks/{_server.ts-DaWQ85du.js.map → _server.ts-BAdKV-Vr.js.map} +1 -1
- package/build/server/chunks/{_server.ts-NMR4dwKz.js → _server.ts-BEA14G2l.js} +6 -6
- package/build/server/chunks/{_server.ts-NMR4dwKz.js.map → _server.ts-BEA14G2l.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CFXMWI2h.js → _server.ts-BF7PAZ4m.js} +5 -5
- package/build/server/chunks/{_server.ts-CFXMWI2h.js.map → _server.ts-BF7PAZ4m.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BD8TAE0P.js → _server.ts-BIUuWkss.js} +5 -5
- package/build/server/chunks/{_server.ts-BD8TAE0P.js.map → _server.ts-BIUuWkss.js.map} +1 -1
- package/build/server/chunks/{_server.ts-cT2SjALE.js → _server.ts-BMJe_-Gu.js} +6 -6
- package/build/server/chunks/{_server.ts-cT2SjALE.js.map → _server.ts-BMJe_-Gu.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DB3tMVgG.js → _server.ts-BWMfLBve.js} +5 -5
- package/build/server/chunks/{_server.ts-DB3tMVgG.js.map → _server.ts-BWMfLBve.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BwZW3eok.js → _server.ts-BeJ5fvf9.js} +5 -5
- package/build/server/chunks/{_server.ts-BwZW3eok.js.map → _server.ts-BeJ5fvf9.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DT10TFj6.js → _server.ts-BlADjd_F.js} +5 -5
- package/build/server/chunks/{_server.ts-DT10TFj6.js.map → _server.ts-BlADjd_F.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dg9JwLNX.js → _server.ts-BoV4vI01.js} +7 -7
- package/build/server/chunks/{_server.ts-Dg9JwLNX.js.map → _server.ts-BoV4vI01.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BzpCbc3S.js → _server.ts-BqHFegPU.js} +27 -8
- package/build/server/chunks/_server.ts-BqHFegPU.js.map +1 -0
- package/build/server/chunks/{_server.ts-GtYK4DYD.js → _server.ts-C-Ts2LDj.js} +5 -5
- package/build/server/chunks/{_server.ts-GtYK4DYD.js.map → _server.ts-C-Ts2LDj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DcJBYt6E.js → _server.ts-C4i3X825.js} +5 -5
- package/build/server/chunks/{_server.ts-DcJBYt6E.js.map → _server.ts-C4i3X825.js.map} +1 -1
- package/build/server/chunks/{_server.ts-OiPARfGO.js → _server.ts-C5ZwxYWZ.js} +6 -6
- package/build/server/chunks/{_server.ts-OiPARfGO.js.map → _server.ts-C5ZwxYWZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-n1RjgFMa.js → _server.ts-C9DfluLS.js} +7 -7
- package/build/server/chunks/{_server.ts-n1RjgFMa.js.map → _server.ts-C9DfluLS.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Z4V3QkQm.js → _server.ts-C9Qk-z2P.js} +2 -2
- package/build/server/chunks/{_server.ts-Z4V3QkQm.js.map → _server.ts-C9Qk-z2P.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B1ToGf9w.js → _server.ts-C9iBT0O1.js} +5 -5
- package/build/server/chunks/{_server.ts-B1ToGf9w.js.map → _server.ts-C9iBT0O1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dosr-dE4.js → _server.ts-CBcEaKhJ.js} +6 -6
- package/build/server/chunks/{_server.ts-Dosr-dE4.js.map → _server.ts-CBcEaKhJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-I0lkvp1g.js → _server.ts-CDMKuzKi.js} +5 -5
- package/build/server/chunks/{_server.ts-I0lkvp1g.js.map → _server.ts-CDMKuzKi.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CvE-xhWs.js → _server.ts-CG9c2nMH.js} +5 -5
- package/build/server/chunks/{_server.ts-CvE-xhWs.js.map → _server.ts-CG9c2nMH.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D2ZlFfi4.js → _server.ts-CGjLssln.js} +2 -2
- package/build/server/chunks/{_server.ts-D2ZlFfi4.js.map → _server.ts-CGjLssln.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DtLrRPqj.js → _server.ts-CJebiZAy.js} +5 -5
- package/build/server/chunks/{_server.ts-DtLrRPqj.js.map → _server.ts-CJebiZAy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DvFTsvub.js → _server.ts-CN3KY-j4.js} +8 -8
- package/build/server/chunks/{_server.ts-DvFTsvub.js.map → _server.ts-CN3KY-j4.js.map} +1 -1
- package/build/server/chunks/{_server.ts-iMaXV6FY.js → _server.ts-CNnAKJNo.js} +5 -5
- package/build/server/chunks/{_server.ts-iMaXV6FY.js.map → _server.ts-CNnAKJNo.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BbuEozdR.js → _server.ts-CO5i0uRb.js} +5 -5
- package/build/server/chunks/{_server.ts-BbuEozdR.js.map → _server.ts-CO5i0uRb.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BWbP8wPw.js → _server.ts-COBY41YU.js} +6 -6
- package/build/server/chunks/{_server.ts-BWbP8wPw.js.map → _server.ts-COBY41YU.js.map} +1 -1
- package/build/server/chunks/{_server.ts-WvKWpw-U.js → _server.ts-CRzgB32e.js} +5 -5
- package/build/server/chunks/{_server.ts-WvKWpw-U.js.map → _server.ts-CRzgB32e.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DG6KmiIw.js → _server.ts-CTn1nPKB.js} +6 -6
- package/build/server/chunks/{_server.ts-DG6KmiIw.js.map → _server.ts-CTn1nPKB.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Adh_oL_T.js → _server.ts-CZIlhr3f.js} +5 -5
- package/build/server/chunks/{_server.ts-Adh_oL_T.js.map → _server.ts-CZIlhr3f.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BfQ7ldwW.js → _server.ts-Cb3DMx8Y.js} +5 -5
- package/build/server/chunks/{_server.ts-BfQ7ldwW.js.map → _server.ts-Cb3DMx8Y.js.map} +1 -1
- package/build/server/chunks/{_server.ts-qwACnEWC.js → _server.ts-Ce1KW1i1.js} +5 -5
- package/build/server/chunks/{_server.ts-qwACnEWC.js.map → _server.ts-Ce1KW1i1.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Df9n4LH_.js → _server.ts-CfECuzPe.js} +5 -5
- package/build/server/chunks/{_server.ts-Df9n4LH_.js.map → _server.ts-CfECuzPe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CxB6_YDS.js → _server.ts-Ch1qx97W.js} +5 -5
- package/build/server/chunks/{_server.ts-CxB6_YDS.js.map → _server.ts-Ch1qx97W.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CZuDLyOr.js → _server.ts-Ch4fnkZq.js} +5 -5
- package/build/server/chunks/{_server.ts-CZuDLyOr.js.map → _server.ts-Ch4fnkZq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DrHTacva.js → _server.ts-Clwa84nf.js} +6 -6
- package/build/server/chunks/{_server.ts-DrHTacva.js.map → _server.ts-Clwa84nf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C5OqiDmH.js → _server.ts-CqQz6OGj.js} +5 -5
- package/build/server/chunks/{_server.ts-C5OqiDmH.js.map → _server.ts-CqQz6OGj.js.map} +1 -1
- package/build/server/chunks/{_server.ts-4BGJWB3J.js → _server.ts-CsUYCOBG.js} +6 -6
- package/build/server/chunks/{_server.ts-4BGJWB3J.js.map → _server.ts-CsUYCOBG.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CftDPhoe.js → _server.ts-D03EOkHX.js} +6 -6
- package/build/server/chunks/{_server.ts-CftDPhoe.js.map → _server.ts-D03EOkHX.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Dr9Qc9qb.js → _server.ts-D4YikZo6.js} +5 -5
- package/build/server/chunks/{_server.ts-Dr9Qc9qb.js.map → _server.ts-D4YikZo6.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CtKU8FWp.js → _server.ts-D6nj5zvV.js} +5 -5
- package/build/server/chunks/{_server.ts-CtKU8FWp.js.map → _server.ts-D6nj5zvV.js.map} +1 -1
- package/build/server/chunks/{_server.ts-jf6Xk_xd.js → _server.ts-D7ty42uk.js} +5 -5
- package/build/server/chunks/{_server.ts-jf6Xk_xd.js.map → _server.ts-D7ty42uk.js.map} +1 -1
- package/build/server/chunks/{_server.ts-fEdCKaDh.js → _server.ts-DA7PaD6O.js} +5 -5
- package/build/server/chunks/{_server.ts-fEdCKaDh.js.map → _server.ts-DA7PaD6O.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BAZYZreJ.js → _server.ts-DBidN7Pf.js} +5 -5
- package/build/server/chunks/{_server.ts-BAZYZreJ.js.map → _server.ts-DBidN7Pf.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B3BDnoZu.js → _server.ts-DD-Wakng.js} +5 -5
- package/build/server/chunks/{_server.ts-B3BDnoZu.js.map → _server.ts-DD-Wakng.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C6EvDiCB.js → _server.ts-DE1no1WK.js} +5 -5
- package/build/server/chunks/{_server.ts-C6EvDiCB.js.map → _server.ts-DE1no1WK.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CjQHzpFo.js → _server.ts-DFQvvf4U.js} +2 -2
- package/build/server/chunks/{_server.ts-CjQHzpFo.js.map → _server.ts-DFQvvf4U.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BUrVYBb9.js → _server.ts-DGT7zOa_.js} +5 -5
- package/build/server/chunks/{_server.ts-BUrVYBb9.js.map → _server.ts-DGT7zOa_.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DK2txFVU.js → _server.ts-DPoW_dJp.js} +6 -6
- package/build/server/chunks/{_server.ts-DK2txFVU.js.map → _server.ts-DPoW_dJp.js.map} +1 -1
- package/build/server/chunks/{_server.ts-Ce-Yb2f8.js → _server.ts-DTkIq90Q.js} +5 -5
- package/build/server/chunks/{_server.ts-Ce-Yb2f8.js.map → _server.ts-DTkIq90Q.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COIxtLd8.js → _server.ts-DU-Yr9vT.js} +5 -5
- package/build/server/chunks/{_server.ts-COIxtLd8.js.map → _server.ts-DU-Yr9vT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CpOcb-Dy.js → _server.ts-DWL57O_5.js} +5 -5
- package/build/server/chunks/{_server.ts-CpOcb-Dy.js.map → _server.ts-DWL57O_5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DYCdg-2V.js → _server.ts-DZ9byWNw.js} +5 -5
- package/build/server/chunks/{_server.ts-DYCdg-2V.js.map → _server.ts-DZ9byWNw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BYJr9N2P.js → _server.ts-DaoMSeHY.js} +6 -6
- package/build/server/chunks/{_server.ts-BYJr9N2P.js.map → _server.ts-DaoMSeHY.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CWdInfEp.js → _server.ts-DbHFbBT0.js} +5 -5
- package/build/server/chunks/{_server.ts-CWdInfEp.js.map → _server.ts-DbHFbBT0.js.map} +1 -1
- package/build/server/chunks/{_server.ts-D45cu11n.js → _server.ts-Dc0k89lw.js} +5 -5
- package/build/server/chunks/{_server.ts-D45cu11n.js.map → _server.ts-Dc0k89lw.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CT31IqQJ.js → _server.ts-DcyN4vFe.js} +5 -5
- package/build/server/chunks/{_server.ts-CT31IqQJ.js.map → _server.ts-DcyN4vFe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-COm0mfdC.js → _server.ts-Dn4oujkq.js} +5 -5
- package/build/server/chunks/{_server.ts-COm0mfdC.js.map → _server.ts-Dn4oujkq.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B80VYpEB.js → _server.ts-Do6yX31K.js} +5 -5
- package/build/server/chunks/{_server.ts-B80VYpEB.js.map → _server.ts-Do6yX31K.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B_d52cJx.js → _server.ts-DvU4VL9N.js} +7 -7
- package/build/server/chunks/{_server.ts-B_d52cJx.js.map → _server.ts-DvU4VL9N.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DVQsU_HM.js → _server.ts-DvgxIQ3m.js} +7 -7
- package/build/server/chunks/{_server.ts-DVQsU_HM.js.map → _server.ts-DvgxIQ3m.js.map} +1 -1
- package/build/server/chunks/{_server.ts-ZReIn63p.js → _server.ts-Dwf56wbe.js} +5 -5
- package/build/server/chunks/{_server.ts-ZReIn63p.js.map → _server.ts-Dwf56wbe.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DNRHhDFK.js → _server.ts-FbCT4fAv.js} +4 -4
- package/build/server/chunks/{_server.ts-DNRHhDFK.js.map → _server.ts-FbCT4fAv.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DllcywUx.js → _server.ts-Grj3ObI-.js} +5 -5
- package/build/server/chunks/{_server.ts-DllcywUx.js.map → _server.ts-Grj3ObI-.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B1BKJgU_.js → _server.ts-JhKQFs9Y.js} +27 -10
- package/build/server/chunks/_server.ts-JhKQFs9Y.js.map +1 -0
- package/build/server/chunks/{_server.ts-DBG9PZWB.js → _server.ts-WDLpd9rl.js} +5 -5
- package/build/server/chunks/{_server.ts-DBG9PZWB.js.map → _server.ts-WDLpd9rl.js.map} +1 -1
- package/build/server/chunks/{_server.ts-DoHWs9cP.js → _server.ts-d_3cbDmy.js} +5 -5
- package/build/server/chunks/{_server.ts-DoHWs9cP.js.map → _server.ts-d_3cbDmy.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BagzUjh6.js → _server.ts-h2lIPoZ2.js} +5 -5
- package/build/server/chunks/{_server.ts-BagzUjh6.js.map → _server.ts-h2lIPoZ2.js.map} +1 -1
- package/build/server/chunks/{_server.ts-C7mCmTRF.js → _server.ts-hQ06BmH4.js} +5 -5
- package/build/server/chunks/_server.ts-hQ06BmH4.js.map +1 -0
- package/build/server/chunks/{_server.ts-DkNKtYwN.js → _server.ts-iMB11laZ.js} +5 -5
- package/build/server/chunks/{_server.ts-DkNKtYwN.js.map → _server.ts-iMB11laZ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BBHgp0iO.js → _server.ts-ierShFKJ.js} +5 -5
- package/build/server/chunks/{_server.ts-BBHgp0iO.js.map → _server.ts-ierShFKJ.js.map} +1 -1
- package/build/server/chunks/{_server.ts-r4_ma4-J.js → _server.ts-kozeClZM.js} +6 -6
- package/build/server/chunks/{_server.ts-r4_ma4-J.js.map → _server.ts-kozeClZM.js.map} +1 -1
- package/build/server/chunks/{_server.ts-B2oxlCMT.js → _server.ts-kvauWXn5.js} +5 -5
- package/build/server/chunks/{_server.ts-B2oxlCMT.js.map → _server.ts-kvauWXn5.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BsCPihL8.js → _server.ts-n67IX1Ts.js} +5 -5
- package/build/server/chunks/{_server.ts-BsCPihL8.js.map → _server.ts-n67IX1Ts.js.map} +1 -1
- package/build/server/chunks/{_server.ts-BPposGPj.js → _server.ts-oQtdP7Qa.js} +31 -37
- package/build/server/chunks/_server.ts-oQtdP7Qa.js.map +1 -0
- package/build/server/chunks/{_server.ts-CM7rcTWq.js → _server.ts-qTMHjfVT.js} +7 -7
- package/build/server/chunks/{_server.ts-CM7rcTWq.js.map → _server.ts-qTMHjfVT.js.map} +1 -1
- package/build/server/chunks/{_server.ts-CxiVPWJk.js → _server.ts-xxbNV0Kw.js} +2 -2
- package/build/server/chunks/{_server.ts-CxiVPWJk.js.map → _server.ts-xxbNV0Kw.js.map} +1 -1
- package/build/server/chunks/{addon-helpers-BiMRh0Y0.js → addon-helpers-DCo7EOJ1.js} +3 -3
- package/build/server/chunks/{addon-helpers-BiMRh0Y0.js.map → addon-helpers-DCo7EOJ1.js.map} +1 -1
- package/build/server/chunks/{akm-Ry9Pheex.js → akm-Cbgyj5YC.js} +2 -2
- package/build/server/chunks/{akm-Ry9Pheex.js.map → akm-Cbgyj5YC.js.map} +1 -1
- package/build/server/chunks/{catalog-UO1eH4XT.js → catalog-1jnj5X5h.js} +5 -5
- package/build/server/chunks/{catalog-UO1eH4XT.js.map → catalog-1jnj5X5h.js.map} +1 -1
- package/build/server/chunks/{client-DrRpdh3J.js → client-DK1n28Yo.js} +2 -2
- package/build/server/chunks/{client-DrRpdh3J.js.map → client-DK1n28Yo.js.map} +1 -1
- package/build/server/chunks/{config-CJ5lgj6m.js → config-CkGp7SGd.js} +2 -2
- package/build/server/chunks/{config-CJ5lgj6m.js.map → config-CkGp7SGd.js.map} +1 -1
- package/build/server/chunks/{docker-BA7ZmLlN.js → docker-Cx5omR60.js} +2 -2
- package/build/server/chunks/{docker-BA7ZmLlN.js.map → docker-Cx5omR60.js.map} +1 -1
- package/build/server/chunks/{endpoints-CaZDtz1E.js → endpoints-C11fNgt_.js} +2 -2
- package/build/server/chunks/{endpoints-CaZDtz1E.js.map → endpoints-C11fNgt_.js.map} +1 -1
- package/build/server/chunks/{error.svelte-HbdmPA5p.js → error.svelte-Drzuho8F.js} +4 -4
- package/build/server/chunks/{error.svelte-HbdmPA5p.js.map → error.svelte-Drzuho8F.js.map} +1 -1
- package/build/server/chunks/{helpers-CbGxMTVo.js → helpers-BUFVs5rR.js} +3 -3
- package/build/server/chunks/{helpers-CbGxMTVo.js.map → helpers-BUFVs5rR.js.map} +1 -1
- package/build/server/chunks/{hooks.server-wW3pI-qp.js → hooks.server-B3zyEAPe.js} +10 -17
- package/build/server/chunks/hooks.server-B3zyEAPe.js.map +1 -0
- package/build/server/chunks/{http-BJBLvJS_.js → http-BcWKKzEL.js} +2 -2
- package/build/server/chunks/{http-BJBLvJS_.js.map → http-BcWKKzEL.js.map} +1 -1
- package/build/server/chunks/{internal-Cg-mVr8r.js → internal-vyS6U9TX.js} +3 -3
- package/build/server/chunks/{internal-Cg-mVr8r.js.map → internal-vyS6U9TX.js.map} +1 -1
- package/build/server/chunks/{migration-status-DwG2iEgP.js → migration-status-DiY6y8qW.js} +3 -3
- package/build/server/chunks/migration-status-DiY6y8qW.js.map +1 -0
- package/build/server/chunks/{session-cookie-CAsGSkTV.js → session-cookie-CAC4r6_1.js} +2 -2
- package/build/server/chunks/{session-cookie-CAsGSkTV.js.map → session-cookie-CAC4r6_1.js.map} +1 -1
- package/build/server/chunks/{setup-deploy-BfBaLbir.js → setup-deploy-DrYkoc76.js} +2 -2
- package/build/server/chunks/{setup-deploy-BfBaLbir.js.map → setup-deploy-DrYkoc76.js.map} +1 -1
- package/build/server/chunks/{src-BunIUeZg.js → src-2DECZjwE.js} +239 -216
- package/build/server/chunks/src-2DECZjwE.js.map +1 -0
- package/build/server/chunks/{state-DvXQigXN.js → state-DmHQD7rQ.js} +3 -6
- package/build/server/chunks/state-DmHQD7rQ.js.map +1 -0
- package/build/server/chunks/{state2-CH9BSbkr.js → state2-j1o3jE_2.js} +2 -2
- package/build/server/chunks/{state2-CH9BSbkr.js.map → state2-j1o3jE_2.js.map} +1 -1
- package/build/server/index.js +1 -1
- package/build/server/index.js.map +1 -1
- package/build/server/manifest.js +91 -105
- package/build/server/manifest.js.map +1 -1
- package/package.json +2 -2
- package/build/client/_app/immutable/chunks/B5tYS-bg.js +0 -3
- package/build/client/_app/immutable/chunks/B5tYS-bg.js.br +0 -0
- package/build/client/_app/immutable/chunks/B5tYS-bg.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CJjzJNol.js.br +0 -0
- package/build/client/_app/immutable/chunks/CJjzJNol.js.gz +0 -0
- package/build/client/_app/immutable/chunks/CS-tYlaw.js.br +0 -0
- package/build/client/_app/immutable/chunks/CS-tYlaw.js.gz +0 -0
- package/build/client/_app/immutable/chunks/D2tCvxVC.js +0 -1
- package/build/client/_app/immutable/chunks/D2tCvxVC.js.br +0 -2
- package/build/client/_app/immutable/chunks/D2tCvxVC.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.D7TBsXqj.js.br +0 -0
- package/build/client/_app/immutable/entry/app.D7TBsXqj.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.BBl-U2qJ.js +0 -1
- package/build/client/_app/immutable/entry/start.BBl-U2qJ.js.br +0 -0
- package/build/client/_app/immutable/entry/start.BBl-U2qJ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.Bi6WIdhc.js.br +0 -1
- package/build/client/_app/immutable/nodes/1.Bi6WIdhc.js.gz +0 -0
- package/build/client/_app/immutable/nodes/10.ydmh33uP.js +0 -3
- package/build/client/_app/immutable/nodes/10.ydmh33uP.js.br +0 -0
- package/build/client/_app/immutable/nodes/10.ydmh33uP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.NXDNIo_o.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.NXDNIo_o.js.gz +0 -0
- package/build/client/_app/immutable/nodes/5.CGz0srSp.js.br +0 -0
- package/build/client/_app/immutable/nodes/5.CGz0srSp.js.gz +0 -0
- package/build/client/_app/immutable/nodes/6.BUJ84ynI.js.br +0 -0
- package/build/client/_app/immutable/nodes/6.BUJ84ynI.js.gz +0 -0
- package/build/client/_app/immutable/nodes/7.D4v1j10K.js.br +0 -0
- package/build/client/_app/immutable/nodes/7.D4v1j10K.js.gz +0 -0
- package/build/client/_app/immutable/nodes/8.eBCg3Ry9.js.br +0 -0
- package/build/client/_app/immutable/nodes/8.eBCg3Ry9.js.gz +0 -0
- package/build/server/chunks/1-DrFASQif.js +0 -9
- package/build/server/chunks/10-B6IaM0-e.js.map +0 -1
- package/build/server/chunks/_page.svelte-rf-Q89lq.js.map +0 -1
- package/build/server/chunks/_server.ts-B1BKJgU_.js.map +0 -1
- package/build/server/chunks/_server.ts-BPposGPj.js.map +0 -1
- package/build/server/chunks/_server.ts-BzpCbc3S.js.map +0 -1
- package/build/server/chunks/_server.ts-C7mCmTRF.js.map +0 -1
- package/build/server/chunks/_server.ts-DlEksmNN.js +0 -96
- package/build/server/chunks/_server.ts-DlEksmNN.js.map +0 -1
- package/build/server/chunks/_server.ts-DtycNfMN.js +0 -77
- package/build/server/chunks/_server.ts-DtycNfMN.js.map +0 -1
- package/build/server/chunks/hooks.server-wW3pI-qp.js.map +0 -1
- package/build/server/chunks/migration-status-DwG2iEgP.js.map +0 -1
- package/build/server/chunks/src-BunIUeZg.js.map +0 -1
- package/build/server/chunks/state-DvXQigXN.js.map +0 -1
|
@@ -2,8 +2,8 @@ import { _ as __commonJSMin, b as __require } from './chunk-CLZ62Ad-.js';
|
|
|
2
2
|
import { P as PROVIDER_DEFAULT_URLS, a as PROVIDER_KEY_MAP } from './provider-constants-DPrj3yBX.js';
|
|
3
3
|
import { r as require_dist } from './dist-DOFcG0Zp.js';
|
|
4
4
|
import { createRequire } from 'node:module';
|
|
5
|
-
import Vt, { existsSync, readFileSync, copyFileSync, chmodSync, mkdirSync,
|
|
6
|
-
import or, { join, basename, dirname, resolve, win32, posix } from 'node:path';
|
|
5
|
+
import Vt, { existsSync, readFileSync, copyFileSync, chmodSync, mkdirSync, rmSync, readdirSync, renameSync, writeFileSync, statfsSync, cpSync, openSync, constants, writeSync, closeSync, statSync, lstatSync, chownSync } from 'node:fs';
|
|
6
|
+
import or, { join, basename, dirname, resolve, relative, win32, posix } from 'node:path';
|
|
7
7
|
import { Buffer as Buffer$1 } from 'buffer';
|
|
8
8
|
import I from 'fs';
|
|
9
9
|
import Xs, { parse, dirname as dirname$1 } from 'path';
|
|
@@ -362,6 +362,13 @@ function acquireInstallLock(dataDir) {
|
|
|
362
362
|
});
|
|
363
363
|
return null;
|
|
364
364
|
}
|
|
365
|
+
try {
|
|
366
|
+
const { pid } = parseLockContent(readFileSync(path, "utf-8"));
|
|
367
|
+
if (pid === process.pid) return {
|
|
368
|
+
path,
|
|
369
|
+
reentrant: true
|
|
370
|
+
};
|
|
371
|
+
} catch {}
|
|
365
372
|
if (!isStale(path)) return null;
|
|
366
373
|
logger$13.info("removing stale install lock and retrying acquire", { path });
|
|
367
374
|
try {
|
|
@@ -459,6 +466,7 @@ function unlockInstallLock(dataDir) {
|
|
|
459
466
|
}
|
|
460
467
|
function releaseInstallLock(handle) {
|
|
461
468
|
if (!handle) return;
|
|
469
|
+
if (handle.reentrant) return;
|
|
462
470
|
try {
|
|
463
471
|
rmSync(handle.path, { force: true });
|
|
464
472
|
} catch (err) {
|
|
@@ -738,7 +746,7 @@ var import_main = (/* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
738
746
|
module.exports = DotenvModule;
|
|
739
747
|
})))();
|
|
740
748
|
var package_default = {
|
|
741
|
-
version: "0.12.
|
|
749
|
+
version: "0.12.36"};
|
|
742
750
|
//#endregion
|
|
743
751
|
//#region ../lib/src/control-plane/versioning.ts
|
|
744
752
|
var SEMVER_RE = /^v?\d+\.\d+\.\d+(?:[-+].*)?$/;
|
|
@@ -823,14 +831,6 @@ function formatForDocker(version) {
|
|
|
823
831
|
return bare ? `v${bare}` : "";
|
|
824
832
|
}
|
|
825
833
|
/**
|
|
826
|
-
* True when `version` carries a semver pre-release segment (`0.12.0-rc.1`).
|
|
827
|
-
* Build metadata (`+build.5`) is NOT a pre-release. Non-semver → false.
|
|
828
|
-
*/
|
|
829
|
-
function isPrerelease(version) {
|
|
830
|
-
if (!isComparableSemver(version)) return false;
|
|
831
|
-
return parseComparableVersion(version).prerelease !== null;
|
|
832
|
-
}
|
|
833
|
-
/**
|
|
834
834
|
* User-facing presentation form: drop the leading `v` so the UI shows one
|
|
835
835
|
* canonical spelling regardless of whether the value arrived as a Docker tag or
|
|
836
836
|
* an npm version. Non-semver values are returned trimmed but otherwise untouched
|
|
@@ -5250,8 +5250,7 @@ function randomHex(bytes) {
|
|
|
5250
5250
|
* Core runtime asset management for the OpenPalm control plane.
|
|
5251
5251
|
*
|
|
5252
5252
|
* Manages source-of-truth files for the ~/.openpalm/ layout:
|
|
5253
|
-
* stack/
|
|
5254
|
-
* config/guardian/ — guardian OpenCode config (skip-if-user-modified)
|
|
5253
|
+
* config/stack/ — system-owned compose files, refreshed every reconcile
|
|
5255
5254
|
*
|
|
5256
5255
|
* This module manages runtime-owned core files only.
|
|
5257
5256
|
* Addon compose bundle generation and registry catalog refresh are handled
|
|
@@ -5260,7 +5259,6 @@ function randomHex(bytes) {
|
|
|
5260
5259
|
* historical `.env.schema` files (varlock format) were retired in #391.
|
|
5261
5260
|
*/
|
|
5262
5261
|
var logger$12 = createLogger("core-assets");
|
|
5263
|
-
var GITHUB_ASSET_TIMEOUT_MS = 1e4;
|
|
5264
5262
|
var _require$1 = createRequire(import.meta.url);
|
|
5265
5263
|
function bundledAssetPath(relPath) {
|
|
5266
5264
|
try {
|
|
@@ -5294,58 +5292,11 @@ function readBundledStackAsset(name) {
|
|
|
5294
5292
|
function ensureOpenCodeSystemConfig() {
|
|
5295
5293
|
mkdirSync(`${resolveDataDir()}/assistant`, { recursive: true });
|
|
5296
5294
|
}
|
|
5297
|
-
var SHIPPED_DEFAULT_HASHES = { "config/guardian/instructions/moderation.md": ["dfa770d433bef9954e58e29cfb337679eb27ed3c9de61ddd2c4106d3add9a628"] };
|
|
5298
|
-
/** Assets under config/guardian/ that are managed (refreshable) but respect user edits. */
|
|
5299
|
-
var GUARDIAN_MANAGED_ASSETS = [{
|
|
5300
|
-
relPath: "config/guardian/instructions/moderation.md",
|
|
5301
|
-
githubFilename: ".openpalm/config/guardian/instructions/moderation.md"
|
|
5302
|
-
}];
|
|
5303
|
-
/**
|
|
5304
|
-
* Returns true when the on-disk content is still byte-identical to one of the
|
|
5305
|
-
* previously shipped defaults for the given relPath (i.e. the user has not
|
|
5306
|
-
* edited it and it is safe to overwrite on refresh).
|
|
5307
|
-
*/
|
|
5308
|
-
function isUnmodifiedDefault(relPath, currentContent) {
|
|
5309
|
-
const known = SHIPPED_DEFAULT_HASHES[relPath];
|
|
5310
|
-
if (!known || known.length === 0) return false;
|
|
5311
|
-
const h = sha256(currentContent);
|
|
5312
|
-
return known.includes(h);
|
|
5313
|
-
}
|
|
5314
|
-
var REPO = "itlackey/openpalm";
|
|
5315
|
-
function normalizeAssetRef(version) {
|
|
5316
|
-
const v = version.trim();
|
|
5317
|
-
if (!v) throw new Error("Cannot download OpenPalm stack assets: no version provided. The caller must pass the target release tag (e.g. \"v0.11.0-rc.6\").");
|
|
5318
|
-
return /^\d/.test(v) ? `v${v}` : v;
|
|
5319
|
-
}
|
|
5320
5295
|
var MANAGED_ASSETS = [
|
|
5321
|
-
{
|
|
5322
|
-
|
|
5323
|
-
|
|
5324
|
-
},
|
|
5325
|
-
{
|
|
5326
|
-
relPath: "config/stack/services.compose.yml",
|
|
5327
|
-
githubFilename: ".openpalm/config/stack/services.compose.yml"
|
|
5328
|
-
},
|
|
5329
|
-
{
|
|
5330
|
-
relPath: "config/stack/portals.compose.yml",
|
|
5331
|
-
githubFilename: ".openpalm/config/stack/portals.compose.yml"
|
|
5332
|
-
}
|
|
5296
|
+
{ relPath: "config/stack/core.compose.yml" },
|
|
5297
|
+
{ relPath: "config/stack/services.compose.yml" },
|
|
5298
|
+
{ relPath: "config/stack/portals.compose.yml" }
|
|
5333
5299
|
];
|
|
5334
|
-
var SEEDED_ASSETS = [{
|
|
5335
|
-
relPath: "config/assistant/opencode.jsonc",
|
|
5336
|
-
githubFilename: ".openpalm/config/assistant/opencode.jsonc"
|
|
5337
|
-
}, {
|
|
5338
|
-
relPath: "config/stack/custom.compose.yml",
|
|
5339
|
-
githubFilename: ".openpalm/config/stack/custom.compose.yml"
|
|
5340
|
-
}];
|
|
5341
|
-
async function downloadAsset(filename, version) {
|
|
5342
|
-
const rawUrl = `https://raw.githubusercontent.com/${REPO}/${version}/${filename}`;
|
|
5343
|
-
try {
|
|
5344
|
-
const res = await fetch(rawUrl, { signal: AbortSignal.timeout(GITHUB_ASSET_TIMEOUT_MS) });
|
|
5345
|
-
if (res.ok) return await res.text();
|
|
5346
|
-
} catch {}
|
|
5347
|
-
throw new Error(`Failed to download ${filename} from GitHub (ref "${version}" not found or network error)`);
|
|
5348
|
-
}
|
|
5349
5300
|
function ensureBackupDir(backupDir, suffix = "") {
|
|
5350
5301
|
if (backupDir) return backupDir;
|
|
5351
5302
|
return join(resolveBackupsDir(), `${(/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-")}${suffix}`);
|
|
@@ -5359,7 +5310,6 @@ function backupExistingFile(targetPath, assetRelPath, backupDir, suffix = "") {
|
|
|
5359
5310
|
}
|
|
5360
5311
|
function refreshCoreAssetsFromSource(sourceRoot, homeDir = resolveOpenPalmHome()) {
|
|
5361
5312
|
const updated = [];
|
|
5362
|
-
const kept = [];
|
|
5363
5313
|
let backupDir = null;
|
|
5364
5314
|
for (const asset of MANAGED_ASSETS) {
|
|
5365
5315
|
const sourcePath = join(sourceRoot, asset.relPath);
|
|
@@ -5373,89 +5323,9 @@ function refreshCoreAssetsFromSource(sourceRoot, homeDir = resolveOpenPalmHome()
|
|
|
5373
5323
|
writeFileSync(targetPath, freshContent);
|
|
5374
5324
|
updated.push(asset.relPath);
|
|
5375
5325
|
}
|
|
5376
|
-
for (const asset of GUARDIAN_MANAGED_ASSETS) {
|
|
5377
|
-
const sourcePath = join(sourceRoot, asset.relPath);
|
|
5378
|
-
const targetPath = join(homeDir, asset.relPath);
|
|
5379
|
-
if (!existsSync(sourcePath)) continue;
|
|
5380
|
-
const freshContent = readFileSync(sourcePath, "utf-8");
|
|
5381
|
-
if (existsSync(targetPath)) {
|
|
5382
|
-
const currentContent = readFileSync(targetPath, "utf-8");
|
|
5383
|
-
if (sha256(currentContent) === sha256(freshContent)) continue;
|
|
5384
|
-
if (!isUnmodifiedDefault(asset.relPath, currentContent)) {
|
|
5385
|
-
logger$12.info("guardian managed asset kept (user-modified); new default available", {
|
|
5386
|
-
path: asset.relPath,
|
|
5387
|
-
hint: "Remove the file or restore the shipped default to pick up the new version on the next refresh."
|
|
5388
|
-
});
|
|
5389
|
-
kept.push(asset.relPath);
|
|
5390
|
-
continue;
|
|
5391
|
-
}
|
|
5392
|
-
}
|
|
5393
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
5394
|
-
writeFileSync(targetPath, freshContent);
|
|
5395
|
-
updated.push(asset.relPath);
|
|
5396
|
-
}
|
|
5397
|
-
for (const asset of SEEDED_ASSETS) {
|
|
5398
|
-
const sourcePath = join(sourceRoot, asset.relPath);
|
|
5399
|
-
const targetPath = join(homeDir, asset.relPath);
|
|
5400
|
-
if (existsSync(targetPath)) continue;
|
|
5401
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
5402
|
-
writeFileSync(targetPath, readFileSync(sourcePath, "utf-8"));
|
|
5403
|
-
updated.push(asset.relPath);
|
|
5404
|
-
}
|
|
5405
|
-
return {
|
|
5406
|
-
backupDir,
|
|
5407
|
-
updated,
|
|
5408
|
-
kept
|
|
5409
|
-
};
|
|
5410
|
-
}
|
|
5411
|
-
async function refreshCoreAssets(version) {
|
|
5412
|
-
const ref = normalizeAssetRef(version);
|
|
5413
|
-
const homeDir = resolveOpenPalmHome();
|
|
5414
|
-
const updated = [];
|
|
5415
|
-
const kept = [];
|
|
5416
|
-
let backupDir = null;
|
|
5417
|
-
for (const asset of MANAGED_ASSETS) {
|
|
5418
|
-
const freshContent = await downloadAsset(asset.githubFilename, ref);
|
|
5419
|
-
const targetPath = join(homeDir, asset.relPath);
|
|
5420
|
-
if (existsSync(targetPath)) {
|
|
5421
|
-
if (sha256(readFileSync(targetPath, "utf-8")) === sha256(freshContent)) continue;
|
|
5422
|
-
backupDir = backupExistingFile(targetPath, asset.relPath, backupDir);
|
|
5423
|
-
}
|
|
5424
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
5425
|
-
writeFileSync(targetPath, freshContent);
|
|
5426
|
-
updated.push(asset.relPath);
|
|
5427
|
-
}
|
|
5428
|
-
for (const asset of GUARDIAN_MANAGED_ASSETS) {
|
|
5429
|
-
const freshContent = await downloadAsset(asset.githubFilename, ref);
|
|
5430
|
-
const targetPath = join(homeDir, asset.relPath);
|
|
5431
|
-
if (existsSync(targetPath)) {
|
|
5432
|
-
const currentContent = readFileSync(targetPath, "utf-8");
|
|
5433
|
-
if (sha256(currentContent) === sha256(freshContent)) continue;
|
|
5434
|
-
if (!isUnmodifiedDefault(asset.relPath, currentContent)) {
|
|
5435
|
-
logger$12.info("guardian managed asset kept (user-modified); new default available", {
|
|
5436
|
-
path: asset.relPath,
|
|
5437
|
-
hint: "Remove the file or restore the shipped default to pick up the new version on the next refresh."
|
|
5438
|
-
});
|
|
5439
|
-
kept.push(asset.relPath);
|
|
5440
|
-
continue;
|
|
5441
|
-
}
|
|
5442
|
-
}
|
|
5443
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
5444
|
-
writeFileSync(targetPath, freshContent);
|
|
5445
|
-
updated.push(asset.relPath);
|
|
5446
|
-
}
|
|
5447
|
-
for (const asset of SEEDED_ASSETS) {
|
|
5448
|
-
const targetPath = join(homeDir, asset.relPath);
|
|
5449
|
-
if (existsSync(targetPath)) continue;
|
|
5450
|
-
const freshContent = await downloadAsset(asset.githubFilename, ref);
|
|
5451
|
-
mkdirSync(dirname(targetPath), { recursive: true });
|
|
5452
|
-
writeFileSync(targetPath, freshContent);
|
|
5453
|
-
updated.push(asset.relPath);
|
|
5454
|
-
}
|
|
5455
5326
|
return {
|
|
5456
5327
|
backupDir,
|
|
5457
|
-
updated
|
|
5458
|
-
kept
|
|
5328
|
+
updated
|
|
5459
5329
|
};
|
|
5460
5330
|
}
|
|
5461
5331
|
//#endregion
|
|
@@ -5492,6 +5362,21 @@ async function fetchWithRetry(url, retries = 3) {
|
|
|
5492
5362
|
}
|
|
5493
5363
|
throw new Error(`Failed to fetch ${url} after ${retries} attempts`);
|
|
5494
5364
|
}
|
|
5365
|
+
function copyTree(src, dest, opts) {
|
|
5366
|
+
if (!existsSync(src)) return;
|
|
5367
|
+
const entries = readdirSync(src, {
|
|
5368
|
+
recursive: true,
|
|
5369
|
+
withFileTypes: true
|
|
5370
|
+
});
|
|
5371
|
+
for (const entry of entries) {
|
|
5372
|
+
if (!entry.isFile()) continue;
|
|
5373
|
+
const srcFile = join(entry.parentPath ?? entry.path, entry.name);
|
|
5374
|
+
const destFile = join(dest, relative(src, srcFile));
|
|
5375
|
+
if (existsSync(destFile)) continue;
|
|
5376
|
+
mkdirSync(dirname(destFile), { recursive: true });
|
|
5377
|
+
copyFileSync(srcFile, destFile);
|
|
5378
|
+
}
|
|
5379
|
+
}
|
|
5495
5380
|
/** Resolve a candidate path using three strategies, returning the first that exists. */
|
|
5496
5381
|
function resolveLocalCandidate(...strategies) {
|
|
5497
5382
|
for (const strategy of strategies) try {
|
|
@@ -5520,6 +5405,81 @@ function resolveLocalOpenpalmDir() {
|
|
|
5520
5405
|
}, () => null);
|
|
5521
5406
|
}
|
|
5522
5407
|
/**
|
|
5408
|
+
* Seed OP_HOME from the .openpalm/ skeleton.
|
|
5409
|
+
*
|
|
5410
|
+
* Existing files are never overwritten (user edits win).
|
|
5411
|
+
* Falls back to downloading the repo tarball from GitHub when no local
|
|
5412
|
+
* skeleton is found (production binary, packaged Electron app).
|
|
5413
|
+
*/
|
|
5414
|
+
/** Version stamp recording which skeleton version OP_HOME was last seeded from. */
|
|
5415
|
+
var SKELETON_VERSION_STAMP = ".skeleton-version";
|
|
5416
|
+
/** The skeleton version OP_HOME was last seeded from, or null when unstamped. */
|
|
5417
|
+
function readSkeletonVersion(homeDir) {
|
|
5418
|
+
try {
|
|
5419
|
+
const p = join(homeDir, SKELETON_VERSION_STAMP);
|
|
5420
|
+
return existsSync(p) ? readFileSync(p, "utf-8").trim() : null;
|
|
5421
|
+
} catch {
|
|
5422
|
+
return null;
|
|
5423
|
+
}
|
|
5424
|
+
}
|
|
5425
|
+
/**
|
|
5426
|
+
* True when this home was seeded by a DIFFERENT platform version than the one
|
|
5427
|
+
* now running — i.e. the binary was updated but its assets/secrets/migrations
|
|
5428
|
+
* have not been applied to OP_HOME yet. The launch flow uses this to land the
|
|
5429
|
+
* user on /splash with an "apply updates" button instead of silently
|
|
5430
|
+
* self-healing on every request. An unstamped home (null) is NOT stale — that's
|
|
5431
|
+
* a fresh/not-installed home handled by the setup flow.
|
|
5432
|
+
*/
|
|
5433
|
+
function isSkeletonStale(homeDir) {
|
|
5434
|
+
const stamped = readSkeletonVersion(homeDir);
|
|
5435
|
+
return stamped !== null && stamped !== PLATFORM_VERSION.trim();
|
|
5436
|
+
}
|
|
5437
|
+
/**
|
|
5438
|
+
* Seed the bundled `.openpalm/` skeleton into OP_HOME — ONCE PER VERSION.
|
|
5439
|
+
*
|
|
5440
|
+
* Electron calls this on every launch; without a guard it re-copied the entire
|
|
5441
|
+
* skeleton tree each time (wasteful, and it re-materialized files a user/process
|
|
5442
|
+
* had deliberately removed). We stamp OP_HOME/.skeleton-version with `repoRef`
|
|
5443
|
+
* after a successful seed and skip the copy when it already matches — so a given
|
|
5444
|
+
* version seeds once and an upgrade re-seeds (skipExisting still preserves any
|
|
5445
|
+
* user edits). To force a re-seed, delete the stamp.
|
|
5446
|
+
*/
|
|
5447
|
+
async function seedOpenPalmDir(repoRef, homeDir, _configDir, _dataDir) {
|
|
5448
|
+
const stampPath = join(homeDir, SKELETON_VERSION_STAMP);
|
|
5449
|
+
let alreadySeeded = false;
|
|
5450
|
+
if (existsSync(stampPath)) try {
|
|
5451
|
+
alreadySeeded = readFileSync(stampPath, "utf-8").trim() === repoRef.trim();
|
|
5452
|
+
} catch {}
|
|
5453
|
+
const stamp = () => {
|
|
5454
|
+
try {
|
|
5455
|
+
writeFileSync(stampPath, `${repoRef}\n`);
|
|
5456
|
+
} catch {}
|
|
5457
|
+
};
|
|
5458
|
+
const local = resolveLocalOpenpalmDir();
|
|
5459
|
+
if (local) {
|
|
5460
|
+
const { updated, backupDir } = refreshCoreAssetsFromSource(local, homeDir);
|
|
5461
|
+
if (updated.length) logger$11.debug("refreshed managed stack assets", { refreshed: updated });
|
|
5462
|
+
if (alreadySeeded) {
|
|
5463
|
+
logger$11.debug("skeleton already seeded for this version — managed assets refreshed, skipping full seed", { repoRef });
|
|
5464
|
+
return {
|
|
5465
|
+
updated,
|
|
5466
|
+
backupDir
|
|
5467
|
+
};
|
|
5468
|
+
}
|
|
5469
|
+
logger$11.debug("seeding .openpalm from local source", {
|
|
5470
|
+
src: local,
|
|
5471
|
+
repoRef
|
|
5472
|
+
});
|
|
5473
|
+
copyTree(local, homeDir);
|
|
5474
|
+
stamp();
|
|
5475
|
+
return {
|
|
5476
|
+
updated,
|
|
5477
|
+
backupDir
|
|
5478
|
+
};
|
|
5479
|
+
}
|
|
5480
|
+
throw new Error("Cannot locate @openpalm/skeleton. Set OPENPALM_REPO_ROOT (dev) or install @openpalm/skeleton: npm install @openpalm/skeleton@" + (process.env.OP_SKELETON_VERSION ?? process.env.PLATFORM_VERSION ?? "<version>"));
|
|
5481
|
+
}
|
|
5482
|
+
/**
|
|
5523
5483
|
* The UI ships as `@openpalm/ui` on npm — a self-contained `adapter-node`
|
|
5524
5484
|
* bundle (only `build/` is published; no `node_modules` is needed at runtime,
|
|
5525
5485
|
* because the build bundles every dependency). The desktop and host updaters
|
|
@@ -6062,7 +6022,7 @@ var SERVICE_VERSION_KEYS = [
|
|
|
6062
6022
|
/**
|
|
6063
6023
|
* Maps each service version key to its Docker Hub image name (without namespace).
|
|
6064
6024
|
* Namespace defaults to "openpalm" (OP_IMAGE_NAMESPACE env var in compose).
|
|
6065
|
-
* Source:
|
|
6025
|
+
* Source: packages/skeleton/config/stack/core.compose.yml + services.compose.yml + portals.compose.yml.
|
|
6066
6026
|
*
|
|
6067
6027
|
* NOTE: voice tags carry a variant suffix in compose (e.g. "-cpu", "-cu121") that is
|
|
6068
6028
|
* appended by the compose file itself. OP_VOICE_VERSION holds only the base semver part.
|
|
@@ -7663,7 +7623,6 @@ function hasArmedSnapshot() {
|
|
|
7663
7623
|
//#endregion
|
|
7664
7624
|
//#region ../lib/src/control-plane/lifecycle.ts
|
|
7665
7625
|
/** Lifecycle helpers — state factory, apply transitions, compose file list. */
|
|
7666
|
-
var IMAGE_NAMESPACE_RE = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/;
|
|
7667
7626
|
function createState() {
|
|
7668
7627
|
const homeDir = resolveOpenPalmHome();
|
|
7669
7628
|
const configDir = resolveConfigDir();
|
|
@@ -7717,11 +7676,73 @@ async function reconcileCore(state, opts) {
|
|
|
7717
7676
|
throw new Error(`Compose preflight failed: ${preflight.stderr}\nFiles: ${files.join(", ")}\nEnv files: ${envFiles.filter(existsSync).join(", ")}\nProfiles: ${profiles.join(", ") || "(none)"}\nProject: ${projectName}`);
|
|
7718
7677
|
}
|
|
7719
7678
|
}
|
|
7720
|
-
if (!opts.skipSnapshot && !hasArmedSnapshot()) snapshotCurrentState(state);
|
|
7721
7679
|
state.artifacts = resolveRuntimeFiles();
|
|
7722
7680
|
writeRuntimeFiles(state);
|
|
7723
7681
|
return active;
|
|
7724
7682
|
}
|
|
7683
|
+
/**
|
|
7684
|
+
* Idempotent OP_HOME asset reconciliation to the running platform version.
|
|
7685
|
+
*
|
|
7686
|
+
* This is the single place that brings an OP_HOME's *assets* (layout, skeleton
|
|
7687
|
+
* data/, managed compose, release transforms) up to PLATFORM_VERSION. It is
|
|
7688
|
+
* keyed entirely on PLATFORM_VERSION (the running control plane), NOT on the
|
|
7689
|
+
* per-image OP_*_VERSION pins in stack.env — those stay independent and drive
|
|
7690
|
+
* compose image resolution only.
|
|
7691
|
+
*
|
|
7692
|
+
* Every step is a cheap no-op when already current:
|
|
7693
|
+
* • ensureMigrated — forward-only layout migrations (skip-if-done)
|
|
7694
|
+
* • ensureHomeDirs — create the OP_HOME directory layout
|
|
7695
|
+
* • seedOpenPalmDir — skeleton data/ seed (stamp-gated, skip-existing) +
|
|
7696
|
+
* managed compose refresh from BUNDLED local source
|
|
7697
|
+
* • ensureOpenCode* — starter OpenCode config + data dir (seed-if-missing)
|
|
7698
|
+
* • ensureReleaseMigrated — forward-only release transforms (copy-only, idempotent)
|
|
7699
|
+
*
|
|
7700
|
+
* This is the ONLY function that writes OP_HOME's layout/assets, so callers never
|
|
7701
|
+
* need to defensively re-ensure dirs or config themselves.
|
|
7702
|
+
*
|
|
7703
|
+
* Returns the assets it actually changed (the refreshed managed compose/config
|
|
7704
|
+
* files) and the backup directory a release migration created (if any), so
|
|
7705
|
+
* performUpgrade can surface them in UpgradeResult — the upgrade route logs the
|
|
7706
|
+
* asset list and shows the backup dir to the operator.
|
|
7707
|
+
*/
|
|
7708
|
+
async function reconcileHome(state, opts = {}) {
|
|
7709
|
+
const migration = ensureMigrated({
|
|
7710
|
+
homeDir: state.homeDir,
|
|
7711
|
+
confirmLowSpace: opts.confirmLowSpace
|
|
7712
|
+
});
|
|
7713
|
+
ensureHomeDirs();
|
|
7714
|
+
ensureSecrets(state);
|
|
7715
|
+
const seed = await seedOpenPalmDir(PLATFORM_VERSION, state.homeDir, state.configDir, state.dataDir);
|
|
7716
|
+
ensureOpenCodeConfig();
|
|
7717
|
+
ensureOpenCodeSystemConfig();
|
|
7718
|
+
const release = ensureReleaseMigrated({
|
|
7719
|
+
homeDir: state.homeDir,
|
|
7720
|
+
targetVersion: PLATFORM_VERSION
|
|
7721
|
+
});
|
|
7722
|
+
return {
|
|
7723
|
+
migration,
|
|
7724
|
+
assetsUpdated: seed.updated,
|
|
7725
|
+
backupDir: release.backupDir ?? seed.backupDir
|
|
7726
|
+
};
|
|
7727
|
+
}
|
|
7728
|
+
/**
|
|
7729
|
+
* Bring OP_HOME up to date WITHOUT touching containers — the single primitive
|
|
7730
|
+
* behind the splash "apply updates" button. Runs the full home reconcile
|
|
7731
|
+
* (migrations + dirs + secrets + skeleton seed + OpenCode config) under the
|
|
7732
|
+
* install lock so it can't race a concurrent install/update, then returns the
|
|
7733
|
+
* migration report for the UI to display. This is the deliberate, user-clicked
|
|
7734
|
+
* replacement for the per-request self-healing we removed: serving the UI is a
|
|
7735
|
+
* pure read; THIS is where the home is mutated.
|
|
7736
|
+
*/
|
|
7737
|
+
async function applyHomeReconcile(state, opts = {}) {
|
|
7738
|
+
const lock = resolveLifecycleLock(state);
|
|
7739
|
+
if (!lock) throw new Error("Another install is already in progress");
|
|
7740
|
+
try {
|
|
7741
|
+
return await reconcileHome(state, opts);
|
|
7742
|
+
} finally {
|
|
7743
|
+
releaseLifecycleLock(lock);
|
|
7744
|
+
}
|
|
7745
|
+
}
|
|
7725
7746
|
function resolveLifecycleLock(state, opts) {
|
|
7726
7747
|
if (opts && "lock" in opts) return opts.lock ?? null;
|
|
7727
7748
|
return acquireInstallLock(state.dataDir);
|
|
@@ -7730,11 +7751,71 @@ function releaseLifecycleLock(lock, opts) {
|
|
|
7730
7751
|
if (opts && "lock" in opts) return;
|
|
7731
7752
|
releaseInstallLock(lock);
|
|
7732
7753
|
}
|
|
7754
|
+
/**
|
|
7755
|
+
* The single idempotent stack reconcile. Every lifecycle entry point is a thin
|
|
7756
|
+
* flag variant of this:
|
|
7757
|
+
* 1. reconcileHome — bring OP_HOME assets up to PLATFORM_VERSION (migrations,
|
|
7758
|
+
* bundled skeleton seed, release transforms). No GitHub.
|
|
7759
|
+
* 2. reconcileCore — preflight, snapshot (rollback), write runtime files,
|
|
7760
|
+
* flip service state per activate/deactivate.
|
|
7761
|
+
* 3. composePull — (compose+pull only) fetch images per OP_*_VERSION pins.
|
|
7762
|
+
* 4. composeUp — (compose only) recreate the managed service set.
|
|
7763
|
+
*
|
|
7764
|
+
* The whole thing runs under withStackEnvRollback: stack.env + the portals/custom
|
|
7765
|
+
* compose files are snapshotted and restored if any step throws, and the
|
|
7766
|
+
* pre-reconcile state is armed for `openpalm rollback`. reconcileCore runs with
|
|
7767
|
+
* skipSnapshot:true so it never takes a second snapshot over that armed one.
|
|
7768
|
+
*
|
|
7769
|
+
* The `compose` flag is deliberately OFF for install/update/uninstall: those
|
|
7770
|
+
* consumers (runDeploy, the admin install/update/uninstall routes) already own a
|
|
7771
|
+
* bespoke compose phase — pulling images first, parsing per-service failures,
|
|
7772
|
+
* polling health, and emitting progress. Letting the wrapper composeUp too would
|
|
7773
|
+
* (a) double-recreate and (b) on a fresh install fatally `up` BEFORE images are
|
|
7774
|
+
* pulled. Only performUpgrade sets compose:true — its consumers (CLI update, the
|
|
7775
|
+
* admin upgrade route) have no separate compose phase and want the full
|
|
7776
|
+
* pull+recreate to happen inside the wrapper, with rollback on failure.
|
|
7777
|
+
*
|
|
7778
|
+
* Returns the services that were active (running) after the reconcile — the
|
|
7779
|
+
* "restarted" set for update/upgrade reporting — plus the OP_HOME assets it
|
|
7780
|
+
* changed and any backup dir a release migration created, for UpgradeResult.
|
|
7781
|
+
*/
|
|
7782
|
+
function reconcileStack(state, opts) {
|
|
7783
|
+
return withStackEnvRollback(state, async () => {
|
|
7784
|
+
const activating = !opts.deactivate;
|
|
7785
|
+
if (activating && opts.compose) await repairRootOwnedBindMounts(state.homeDir);
|
|
7786
|
+
const home = await reconcileHome(state);
|
|
7787
|
+
const active = await reconcileCore(state, {
|
|
7788
|
+
activateServices: opts.activate,
|
|
7789
|
+
deactivateServices: opts.deactivate,
|
|
7790
|
+
skipSnapshot: true
|
|
7791
|
+
});
|
|
7792
|
+
if (activating && opts.compose) {
|
|
7793
|
+
const composeOpts = buildComposeOptions(state);
|
|
7794
|
+
if (opts.pull) {
|
|
7795
|
+
const pullResult = await composePull(composeOpts);
|
|
7796
|
+
if (!pullResult.ok) throw new Error(`Failed to pull images: ${pullResult.stderr}`);
|
|
7797
|
+
}
|
|
7798
|
+
const services = await buildManagedServices(state);
|
|
7799
|
+
const upResult = await composeUp({
|
|
7800
|
+
...composeOpts,
|
|
7801
|
+
services,
|
|
7802
|
+
forceRecreate: true,
|
|
7803
|
+
removeOrphans: true
|
|
7804
|
+
});
|
|
7805
|
+
if (!upResult.ok) throw new Error(`Failed to recreate containers: ${upResult.stderr}`);
|
|
7806
|
+
}
|
|
7807
|
+
return {
|
|
7808
|
+
active,
|
|
7809
|
+
assetsUpdated: home.assetsUpdated,
|
|
7810
|
+
backupDir: home.backupDir
|
|
7811
|
+
};
|
|
7812
|
+
});
|
|
7813
|
+
}
|
|
7733
7814
|
async function applyInstall(state, opts) {
|
|
7734
7815
|
const lock = resolveLifecycleLock(state, opts);
|
|
7735
7816
|
if (!lock) throw new Error("Another install is already in progress");
|
|
7736
7817
|
try {
|
|
7737
|
-
await
|
|
7818
|
+
await reconcileStack(state, { activate: true });
|
|
7738
7819
|
ensureComposeVolumeTargets(state);
|
|
7739
7820
|
} finally {
|
|
7740
7821
|
releaseLifecycleLock(lock, opts);
|
|
@@ -7744,7 +7825,8 @@ async function applyUpdate(state, opts) {
|
|
|
7744
7825
|
const lock = resolveLifecycleLock(state, opts);
|
|
7745
7826
|
if (!lock) throw new Error("Another install is already in progress");
|
|
7746
7827
|
try {
|
|
7747
|
-
|
|
7828
|
+
const { active } = await reconcileStack(state, {});
|
|
7829
|
+
return { restarted: active };
|
|
7748
7830
|
} finally {
|
|
7749
7831
|
releaseLifecycleLock(lock, opts);
|
|
7750
7832
|
}
|
|
@@ -7753,27 +7835,8 @@ async function applyUninstall(state, opts) {
|
|
|
7753
7835
|
const lock = resolveLifecycleLock(state, opts);
|
|
7754
7836
|
if (!lock) throw new Error("Another install is already in progress");
|
|
7755
7837
|
try {
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
releaseLifecycleLock(lock, opts);
|
|
7759
|
-
}
|
|
7760
|
-
}
|
|
7761
|
-
function resolveImageNamespace(state) {
|
|
7762
|
-
const namespace = (parseEnvFile(`${state.stashDir}/env/stack.env`).OP_IMAGE_NAMESPACE ?? process.env.OP_IMAGE_NAMESPACE ?? "openpalm").trim().toLowerCase();
|
|
7763
|
-
if (!IMAGE_NAMESPACE_RE.test(namespace)) throw new Error(`Invalid image namespace in system.env: ${namespace}`);
|
|
7764
|
-
return namespace;
|
|
7765
|
-
}
|
|
7766
|
-
async function applyUpgrade(state, version, opts) {
|
|
7767
|
-
const lock = resolveLifecycleLock(state, opts);
|
|
7768
|
-
if (!lock) throw new Error("Another install is already in progress");
|
|
7769
|
-
try {
|
|
7770
|
-
await repairRootOwnedBindMounts(state.homeDir);
|
|
7771
|
-
const { backupDir, updated } = await refreshCoreAssets(version);
|
|
7772
|
-
return {
|
|
7773
|
-
backupDir,
|
|
7774
|
-
updated,
|
|
7775
|
-
restarted: await reconcileCore(state, { skipSnapshot: true })
|
|
7776
|
-
};
|
|
7838
|
+
const { active } = await reconcileStack(state, { deactivate: true });
|
|
7839
|
+
return { stopped: active };
|
|
7777
7840
|
} finally {
|
|
7778
7841
|
releaseLifecycleLock(lock, opts);
|
|
7779
7842
|
}
|
|
@@ -7794,7 +7857,7 @@ async function withStackEnvRollback(state, run) {
|
|
|
7794
7857
|
try {
|
|
7795
7858
|
originalCustomCompose = readFileSync(customComposePath, "utf-8");
|
|
7796
7859
|
} catch {}
|
|
7797
|
-
snapshotCurrentState(state, { arm: true });
|
|
7860
|
+
if (!hasArmedSnapshot()) snapshotCurrentState(state, { arm: true });
|
|
7798
7861
|
try {
|
|
7799
7862
|
return await run();
|
|
7800
7863
|
} catch (e) {
|
|
@@ -7810,46 +7873,6 @@ async function withStackEnvRollback(state, run) {
|
|
|
7810
7873
|
throw e;
|
|
7811
7874
|
}
|
|
7812
7875
|
}
|
|
7813
|
-
/**
|
|
7814
|
-
* Update the stack to the running control-plane version: run forward release
|
|
7815
|
-
* migrations, refresh core stack assets (compose/config) for PLATFORM_VERSION,
|
|
7816
|
-
* then pull images and recreate containers honoring the per-image OP_*_VERSION
|
|
7817
|
-
* pins already written in stack.env.
|
|
7818
|
-
*
|
|
7819
|
-
* There are NO Docker Hub calls: image versions are user-managed in stack.env
|
|
7820
|
-
* (PATCH /admin/versions), and the platform asset version is the running lib's
|
|
7821
|
-
* PLATFORM_VERSION — never resolved from a remote registry.
|
|
7822
|
-
*/
|
|
7823
|
-
async function performUpgrade(state, _opts = {}) {
|
|
7824
|
-
return withStackEnvRollback(state, async () => {
|
|
7825
|
-
const composeOpts = buildComposeOptions(state);
|
|
7826
|
-
const namespace = resolveImageNamespace(state);
|
|
7827
|
-
const releaseTag = "platform-" + normalizeVersion(PLATFORM_VERSION);
|
|
7828
|
-
ensureReleaseMigrated({
|
|
7829
|
-
homeDir: state.homeDir,
|
|
7830
|
-
targetVersion: PLATFORM_VERSION
|
|
7831
|
-
});
|
|
7832
|
-
const upgradeResult = await applyUpgrade(state, releaseTag);
|
|
7833
|
-
const pullResult = await composePull(composeOpts);
|
|
7834
|
-
if (!pullResult.ok) throw new Error(`Failed to pull images: ${pullResult.stderr}`);
|
|
7835
|
-
const services = await buildManagedServices(state);
|
|
7836
|
-
const upResult = await composeUp({
|
|
7837
|
-
...composeOpts,
|
|
7838
|
-
services,
|
|
7839
|
-
forceRecreate: true,
|
|
7840
|
-
removeOrphans: true
|
|
7841
|
-
});
|
|
7842
|
-
if (!upResult.ok) throw new Error(`Images pulled but failed to recreate containers: ${upResult.stderr}`);
|
|
7843
|
-
return {
|
|
7844
|
-
imageTag: PLATFORM_VERSION,
|
|
7845
|
-
namespace,
|
|
7846
|
-
backupDir: upgradeResult.backupDir,
|
|
7847
|
-
assetsUpdated: upgradeResult.updated,
|
|
7848
|
-
restarted: upgradeResult.restarted,
|
|
7849
|
-
warnings: []
|
|
7850
|
-
};
|
|
7851
|
-
});
|
|
7852
|
-
}
|
|
7853
7876
|
function buildComposeFileList(state) {
|
|
7854
7877
|
return discoverStackOverlays(state.stackDir);
|
|
7855
7878
|
}
|
|
@@ -9147,7 +9170,7 @@ var ENV_FILE_MODE = 384;
|
|
|
9147
9170
|
/**
|
|
9148
9171
|
* Build the env that points akm at the shared OpenPalm stash. We mirror the
|
|
9149
9172
|
* layout that the assistant container uses (see
|
|
9150
|
-
*
|
|
9173
|
+
* `packages/skeleton/config/stack/core.compose.yml`) so host-side and container-side
|
|
9151
9174
|
* runs resolve to the same files.
|
|
9152
9175
|
*
|
|
9153
9176
|
* Host-side runs use the same explicit directories as the assistant container:
|
|
@@ -10384,5 +10407,5 @@ function collectBindAddressWarnings(env) {
|
|
|
10384
10407
|
return warnings;
|
|
10385
10408
|
}
|
|
10386
10409
|
|
|
10387
|
-
export {
|
|
10388
|
-
//# sourceMappingURL=src-
|
|
10410
|
+
export { formatForDisplay as $, AKM_USER_ENV_REF as A, BackupSpaceError as B, CORE_SERVICES as C, DOCKER_IMAGE_NAMES as D, composeStop as E, composeUp as F, createLogger as G, createOpenCodeClient as H, INSTALL_LOCK_STALE_AFTER_MS as I, createState as J, deleteUserEnvKey as K, deriveLaunchStatus as L, MigrationError as M, deriveLocalStackState as N, detectGpu as O, PLATFORM_VERSION as P, detectHostOpenCode as Q, detectLocalProviders as R, SERVICE_VERSION_KEYS as S, detectRuntime as T, disableHostAkmSharing as U, dismissSecretStripNotice as V, enableHostAkmSharing as W, ensureAkmUserEnv as X, ensureMigrated as Y, executeAutomation as Z, fetchProviderModels as _, addonProfileId as a, getAddonProfileAvailability as a0, getAddonProfileSelection as a1, getAddonProfiles as a2, getAddonServiceNames as a3, getAkmStats as a4, getDockerEvents as a5, getHostAkmSharingStatus as a6, getRegistryAddonConfig as a7, hostAkmStashPath as a8, importHostOpenCode as a9, readTaskFile as aA, readUserEnvFile as aB, readVersions as aC, recommendSetup as aD, removeSecretFile as aE, removeTaskFile as aF, resolveComposeProjectName as aG, resolveDataDir as aH, resolveDeployJournalPath as aI, resolveStackDir as aJ, runAssistantAkmCommand as aK, runDeploy as aL, seedUiBuild as aM, setAddonEnabled as aN, setAddonProfileSelection as aO, summarizeBackups as aP, summarizeComposeStderr as aQ, unlockInstallLock as aR, useExistingProviderForAssistantCli as aS, validateProposedState as aT, writeFileAtomic as aU, writeSecretFile as aV, writeStackSecretEnv as aW, writeTaskFile as aX, writeUserEnvKey as aY, writeVersions as aZ, writeVoiceVars as a_, inspectInstallLock as aa, isAllowedService as ab, isSetupComplete as ac, isSkeletonStale as ad, listAssistantCliTools as ae, listAvailableAddonIds as af, listBackupDirs as ag, listEnabledAddonIds as ah, listSecretFiles as ai, loadAutomations as aj, mapDockerError as ak, markSetupComplete as al, mergeEnvContent as am, parseComposeStderr as an, parseEnvFile as ao, patchSecretsEnvFile as ap, performSetup as aq, pruneBackupDirs as ar, readAutomationLogs as as, readDeployJournal as at, readSecret as au, readSecretFile as av, readSecretStripNotice as aw, readStackEnv as ax, readStackRuntimeEnv as ay, readStackSecretEnv as az, annotateAddonProfileAvailability as b, applyHomeReconcile as c, applyInstall as d, applyUninstall as e, applyUpdate as f, assertSafeSecretFilename as g, assertSafeTaskFilename as h, authJsonPath as i, backupSetupInputs as j, buildAkmEndpoint as k, buildAkmEnv as l, buildComposeOptions as m, buildManagedServices as n, checkDocker as o, checkDockerCompose as p, classifyLocalInstall as q, collectBindAddressWarnings as r, composeDown as s, composeLogs as t, composePreflight as u, composePs as v, composePull as w, composeRestart as x, composeStart as y, composeStats as z };
|
|
10411
|
+
//# sourceMappingURL=src-2DECZjwE.js.map
|