@runeya/runeya 2.0.57 → 2.0.59
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/agent/index.js +138 -103
- package/agent/index.js.map +1 -1
- package/agent-manager-4EKOSJBR.js +7 -0
- package/assets/icon.icns +0 -0
- package/assets/icon.ico +0 -0
- package/assets/icon.png +0 -0
- package/assets/icon.svg +5 -0
- package/{chunk-4665DVGB.js → chunk-F7HMKPFB.js} +165 -10
- package/chunk-F7HMKPFB.js.map +1 -0
- package/chunk-O2KOX4LU.js +66 -0
- package/chunk-O2KOX4LU.js.map +1 -0
- package/desktop-launcher-TM7AABMC.js +256 -0
- package/desktop-launcher-TM7AABMC.js.map +1 -0
- package/desktop-wizard-4CYANX2O.js +209 -0
- package/desktop-wizard-4CYANX2O.js.map +1 -0
- package/free-port-565NMFIZ.js +13 -0
- package/free-port-565NMFIZ.js.map +1 -0
- package/index.js +101 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/{src-6MVU3BDZ.js → src-7YQHXQ6L.js} +3008 -2477
- package/src-7YQHXQ6L.js.map +1 -0
- package/startup-failure-FOO7BLHD.js +180 -0
- package/startup-failure-FOO7BLHD.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-EIqnE2D0.js +13 -0
- package/web/assets/AgentTerminalPage-5kH1RTj6.js +1 -0
- package/web/assets/AiChatPage-DvPM0b-g.js +1 -0
- package/web/assets/AppLayout-CxU9x6en.js +1 -0
- package/web/assets/{AppLayout-CDh-jiJ3.css → AppLayout-Dj8YOvMQ.css} +1 -1
- package/web/assets/AuditPage-BrqreO8a.js +1 -0
- package/web/assets/CloudAccountPage-CzUpIjdc.js +1 -0
- package/web/assets/CloudAccountPage-DRcN1jNp.css +1 -0
- package/web/assets/CloudAccountPage-DS3ZfENB.js +1 -0
- package/web/assets/CloudMessagingPage-D8gBnkFY.js +2 -0
- package/web/assets/DashboardPage-BiskmF6R.js +1 -0
- package/web/assets/DirectoryPickerDialog-Bny02api.css +1 -0
- package/web/assets/DirectoryPickerDialog-CtKWj2hx.js +1 -0
- package/web/assets/{EditorIcon-Bdl2Mco_.js → EditorIcon-B58cXgvK.js} +2 -2
- package/web/assets/EnvironmentForm-DZXx9r78.js +108 -0
- package/web/assets/EnvironmentFormPage-Dl7pdkEM.js +1 -0
- package/web/assets/EnvironmentListPage-B0WX_Hq7.js +1 -0
- package/web/assets/KanbanBoardPage-CBJs26gZ.js +4 -0
- package/web/assets/KanbanListPage-Cz-tlLWA.js +1 -0
- package/web/assets/LaunchProjectPage-8SDkFiLE.js +1 -0
- package/web/assets/LaunchServicesPage-B-ncX3rd.js +1 -0
- package/web/assets/LogViewer-BJNqKt3I.js +3 -0
- package/web/assets/{ProcessControls-DJtuLQwj.js → ProcessControls-NA6_my0q.js} +1 -1
- package/web/assets/ProcessDetailPage-6galJRdd.js +1 -0
- package/web/assets/ProcessDetailPage-CFJfjneL.css +1 -0
- package/web/assets/{ProcessMetrics-BZ6CoGPS.js → ProcessMetrics-CUDjJ4s_.js} +2 -2
- package/web/assets/ProjectDetailPage-CLbj9ZT4.css +1 -0
- package/web/assets/ProjectDetailPage-DKHoFXjW.js +1 -0
- package/web/assets/ProjectListPage-C1xSP6Bq.js +1 -0
- package/web/assets/RandomJobTestPage-BAuT49yE.js +2 -0
- package/web/assets/ScenarioEditorPage-CROCV83A.js +14 -0
- package/web/assets/SendToChatDialog-BfaLVfzw.js +1 -0
- package/web/assets/ServiceControlsBar-DE0In-jH.js +1 -0
- package/web/assets/ServiceDetailPage-0iIv9RqU.js +2 -0
- package/web/assets/{ServiceDetailPage-BRg1byDZ.css → ServiceDetailPage-DDSyACSv.css} +1 -1
- package/web/assets/ServiceFormPage-D-tLX8jE.js +1 -0
- package/web/assets/SettingsPage-ClNw9uEA.js +2063 -0
- package/web/assets/{SettingsPage-BY3dG-wn.css → SettingsPage-ySsQCeYE.css} +1 -1
- package/web/assets/UnlockPage-flNU5Iky.js +1 -0
- package/web/assets/VariablesTable-BnCSYLD4.js +1 -0
- package/web/assets/VaultMigrationPage-BSv9anTA.js +1 -0
- package/web/assets/VersionBadge-zyKx_N_w.js +1 -0
- package/web/assets/WikiPage-C9Bruew6.js +1 -0
- package/web/assets/WikiView-BZZ5mybT.js +1 -0
- package/web/assets/add-scalar-classes-DZb8OCPH.js +387 -0
- package/web/assets/auth-errors-CU6pB2jP.js +1 -0
- package/web/assets/autocomplete-DGLJp6Xx.js +308 -0
- package/web/assets/{basic-shape-diamond.svg-BNEaZNR4.js → basic-shape-diamond.svg-D7lBpWcu.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-DkLboKXh.js → basic-shape-hexagon.svg-BIDPqohs.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CvXLE0nY.js → basic-shape-primary-circle-ellipse-round.svg-iWUF3CNK.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-DuBPGbCQ.js → basic-shape-primary-square-rectangle.svg-BQy8tY9i.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-B76nqlMT.js → basic-shape-shield.svg-Dcov5U2N.js} +1 -1
- package/web/assets/{browser-D6cyxfts.js → browser-Dc4T6GL2.js} +1 -1
- package/web/assets/{browser-DCK7QKdh.js → browser-DrMkXWE3.js} +1 -1
- package/web/assets/{card-nlH99ZRa.js → card-DADdd2-i.js} +2 -2
- package/web/assets/{checkbox-tmaSRjCY.js → checkbox-By0TwAz_.js} +3 -3
- package/web/assets/{chip-C6agT-Lk.js → chip-W5HkUiZA.js} +2 -2
- package/web/assets/{client-DSIO6MRA.js → client-Be8SiY8s.js} +2 -2
- package/web/assets/cloud-chat.store-GKWq9kin.js +1 -0
- package/web/assets/{cloud-session-BRhRomCj.js → cloud-session-CJ4n3dbT.js} +1 -1
- package/web/assets/column-P4Yoqttz.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-ClG1er6E.js → computer-device-desktop-monitor.svg-BjBC4Q_B.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-VJa9AdHB.js → computer-device-desktop.svg-C7H8X0sb.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-CHluUfrC.js → computer-device-laptop.svg-GDU5987h.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-Bz7ymNgY.js → computer-device-mobile-phone-android-samsung-back.svg-BcWod8vA.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-BZjCYTDe.js → computer-device-mobile-phone-android-samsung.svg-Cj58lY5g.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-B6hMc7YN.js → computer-device-mobile-phone-iphone-x-back.svg-CtJM7Ul_.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-BDackkJX.js → computer-device-mobile-phone-iphone-x.svg-BiSi4riW.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-DLepUSe0.js → computer-device-mobile-tablet-touch.svg-BAMVDwHH.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-CpU7bs1J.js → computer-device-mobile-tablet.svg-quWU62em.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BIPoN5dZ.js → computer-device-network-ethernet-cat6.svg-eoCbNWkF.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-DjBnI47W.js → computer-device-network-lan-www.svg-AR5jmH9w.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-jL_T26gB.js → computer-device-network-wifi-connection.svg-C3-i1o4I.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-Bt0HKV-a.js → computer-device-network-wifi-router.svg-D8_62H2U.js} +1 -1
- package/web/assets/{cssMode-l83Ab_FG.js → cssMode-CfDickSl.js} +1 -1
- package/web/assets/{divider-0la1DK7n.js → divider-DOwWKUnp.js} +2 -2
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-jGfcZJk6.js → ecology-science-erlenmeyer-flask.svg-bmj1315r.js} +1 -1
- package/web/assets/{fieldset-Dnw-5ZTN.js → fieldset-CM6GY5DX.js} +2 -2
- package/web/assets/{freemarker2-CKxYYqUc.js → freemarker2-B_0Gh4L-.js} +1 -1
- package/web/assets/{handlebars-DwAvjXsf.js → handlebars-D7Oha3sz.js} +1 -1
- package/web/assets/{html-C8HeZ91y.js → html-BDq-ql3l.js} +1 -1
- package/web/assets/{htmlMode-DJLqukef.js → htmlMode-DVuzX8LQ.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-BRqL2x81.js → image-flash-lightning.svg-pdHiRywD.js} +1 -1
- package/web/assets/{image-picture-flower.svg-CD2Yyx7q.js → image-picture-flower.svg-BJarIt4k.js} +1 -1
- package/web/assets/{index-D-sVY9DJ.js → index-Dk3h9927.js} +225 -225
- package/web/assets/{interface-alert-exclamation-diamond.svg-C1jZyyiH.js → interface-alert-exclamation-diamond.svg-CZUf0TtR.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-CJRjxSxB.js → interface-alert-exclamation-triangle-warning.svg-B1qbmOvN.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-_yhjZAB6.js → interface-alert-information-circle.svg-DAH6I2Rk.js} +1 -1
- package/web/assets/{interface-award-crown.svg-D11H_zuN.js → interface-award-crown.svg-Co-un_0E.js} +1 -1
- package/web/assets/{interface-bookmark.svg-CGayI3g0.js → interface-bookmark-tag.svg-DCeSL4gX.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-B-l2i8Ii.js → interface-bookmark.svg-BoAQ5WAA.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-CJxH-duP.js → interface-calendar-date-one.svg-KM5TH_vj.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-CKlbHpZM.js → interface-content-book-open-pages.svg-2t-0H_Nl.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-ClW0JcO1.js → interface-content-book-page.svg-Dx9U_5uo.js} +1 -1
- package/web/assets/{interface-content-file.svg-vXnq-VTU.js → interface-content-file.svg-CW_9AGDl.js} +1 -1
- package/web/assets/interface-content-folder.svg-C9_1n23c.js +1 -0
- package/web/assets/{interface-content-folder.svg-DVuVP2_n.js → interface-content-folder.svg-DgU2KM8d.js} +1 -1
- package/web/assets/{interface-copy-clipboard.svg-By6SZiB4.js → interface-copy-clipboard.svg-BXCY1wtO.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-5FhntK3Y.js → interface-edit-attachment.svg-lJsBgdnd.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-BNAa3NU3.js → interface-edit-binocular.svg-N_us2_d_.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-CHIex2kh.js → interface-edit-magic-wand.svg-GlHpAoND.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-BOU7EZxD.js → interface-edit-tool-paint-roller.svg-B3s6tHLT.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-R4MWKJk8.js → interface-edit-tool-pencil.svg-BhJltLPD.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-suD3XTUy.js → interface-favorite-award.svg-CAC4qrCL.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-hdyn6Kl_.js → interface-favorite-flag.svg-5dLI18uT.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-CsvpCgqr.js → interface-favorite-heart.svg-DAWMqUS8.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-BYnYZej4.js → interface-favorite-star.svg-C9DICFBb.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-CJF8bktG.js → interface-favorite-stars-sparkles.svg-zD5-a95u.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-Cz8Kp45m.js → interface-hierarchy-flowchart.svg-BzAAQM0v.js} +1 -1
- package/web/assets/{interface-home-house.svg-C9GgEmKT.js → interface-home-house.svg-CB_mzszz.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-T_oHSPOF.js → interface-hyperlink.svg-BUMVlOAE.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-Ds5ZO6oa.js → interface-lighting-brightness.svg-wPXo2pZW.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-CoMPAlnI.js → interface-lock-closed.svg-Qj4fLj5D.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-jGLDczcA.js → interface-lock-open-unlock.svg-PaaFsUiU.js} +1 -1
- package/web/assets/{interface-login-key.svg-CDeEaRf5.js → interface-login-key.svg-By-IZ7EH.js} +1 -1
- package/web/assets/{interface-search.svg-Cy4Q-xYo.js → interface-search.svg-D1s5Gsyk.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-BDhQZOJ4.js → interface-setting-cog.svg-BIjZVOwf.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-DagGdEnC.js → interface-share-megaphone-bullhorn.svg-1oPoDdIL.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-CKJ5nUEh.js → interface-share-rocket.svg-B07UdOH6.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-BK1pCz3B.js → interface-share-satellite.svg-AxSAr1JP.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-KdgeixBZ.js → interface-share-space-ship.svg-ghRJYkXG.js} +1 -1
- package/web/assets/{interface-share.svg-ChAZ94rW.js → interface-share.svg-jVvV5wf9.js} +1 -1
- package/web/assets/{interface-signal-square.svg-DzuPfXUh.js → interface-signal-square.svg-BB8KvxNI.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-B4ynuu4H.js → interface-time-clock-circle.svg-Bt_vXLib.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-CwKlC1Na.js → interface-time-hour-glass.svg-CqsWXDx3.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-Dr3rSYsr.js → interface-users-multiple.svg-DfZzhCkI.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-k_uau_ay.js → interface-weather-moon.svg-B5X37fBl.js} +1 -1
- package/web/assets/{javascript-Bx-xJAtR.js → javascript-DWxMn_QC.js} +1 -1
- package/web/assets/{jsonMode-CF72gzTX.js → jsonMode-BWOZzM3d.js} +2 -2
- package/web/assets/{liquid-Du7COcWK.js → liquid-B0VtIwJX.js} +1 -1
- package/web/assets/{lspLanguageFeatures-B0b9esI0.js → lspLanguageFeatures-DXFZNqLk.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-Dss1BS5k.js → mail-chat-bubble-square.svg-DVi8sPM-.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-BjlSFw6x.js → mail-send-email-paper-airplane.svg-Dlk35rWL.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-CpGqZ3T_.js → mail-send-envelope.svg-DpEE06QS.js} +1 -1
- package/web/assets/{mdx-DgIEovcA.js → mdx-XjdLNHo4.js} +1 -1
- package/web/assets/{message-n9JmpxQB.js → message-TASaHoOx.js} +2 -2
- package/web/assets/{minus-Eq7h2HNM.js → minus-BO9HwuhK.js} +2 -2
- package/web/assets/modal-B0K9qtIb.js +1 -0
- package/web/assets/modal-Dadfdblm.js +5 -0
- package/web/assets/{money-cashier-receipt.svg-DVDhS_Zc.js → money-cashier-receipt.svg-D3T1gdZO.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-DRnO0pzf.js → money-currency-dollar-pay.svg-RhoFWz8z.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-Beaf3gcH.js → money-graph-arrow-increase.svg-BENn1K5R.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-Bx83srA6.js → money-graph-bar-chart-increase.svg-COGPwero.js} +1 -1
- package/web/assets/{multiselect-BzaOLdpd.js → multiselect-QI9V-o7t.js} +3 -3
- package/web/assets/{nature-ecology-leaf.svg-BPF0Z-R-.js → nature-ecology-leaf.svg-CyQJuX9P.js} +1 -1
- package/web/assets/{password-BOruXB1m.js → password-68lVUSdj.js} +4 -4
- package/web/assets/{phone-telephone.svg-CoyP7Dxe.js → phone-telephone.svg-Cp49xUlu.js} +1 -1
- package/web/assets/{plus-D3SKHEeC.js → plus-CtAUJUu2.js} +6 -6
- package/web/assets/process.store-DkO9CCEs.js +1 -0
- package/web/assets/{programming-bug.svg-BnJMsv8E.js → programming-bug.svg-DJCw-G7S.js} +1 -1
- package/web/assets/{programming-cloud.svg-CQYYCVwK.js → programming-cloud.svg-Dawch6nl.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-B8efwNUW.js → programming-computer-database-server.svg-wM3gh9nl.js} +1 -1
- package/web/assets/{programming-computer-database.svg-DNTDIyeu.js → programming-computer-database.svg-B-CBQ4FN.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-CDOGccyo.js → programming-module-four-layout.svg-B8K3IYUP.js} +1 -1
- package/web/assets/{programming-module-three.svg-Bge3Bi-7.js → programming-module-three.svg-BVHpxetj.js} +1 -1
- package/web/assets/{programming-module.svg-CzqYRXSb.js → programming-module.svg-CXID9wrd.js} +1 -1
- package/web/assets/{programming-script-code.svg-C5p0kA7v.js → programming-script-code.svg-lSz-9Xfp.js} +1 -1
- package/web/assets/{python-UpylI8e4.js → python-DL0o4ZFa.js} +1 -1
- package/web/assets/{razor-aZxkyrH6.js → razor-1T_DtFYV.js} +1 -1
- package/web/assets/router-BKOiPGCa.js +1 -0
- package/web/assets/settings-scope-DrVQNSTC.js +1 -0
- package/web/assets/{settings.store-BOiI53kz.js → settings.store-xvHd8xGI.js} +1 -1
- package/web/assets/{shopping-cart.svg-CdyNNU8T.js → shopping-cart.svg-TZA8HEQB.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-oYuij_wi.js → shopping-gift-present.svg-CRGiXfBk.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BHHfdC-w.js → shopping-shipping-box-parcel-package.svg-BuEMZoGf.js} +1 -1
- package/web/assets/src-Be-L2-AH.js +1 -0
- package/web/assets/{src-C0e6s3a3.js → src-Dy-bHT95.js} +12 -12
- package/web/assets/tabpanel-BP3edJSv.js +150 -0
- package/web/assets/{tag-new-circle.svg-De8jHJc3.js → tag-new-circle.svg-CsOt9-U5.js} +1 -1
- package/web/assets/{toggleswitch-7N_rrZCL.js → toggleswitch-B49OhBFD.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-DDerkPaO.js → travel-map-earth-globe.svg-BTR5ahca.js} +1 -1
- package/web/assets/trpc-hOuUVUMw.js +1 -0
- package/web/assets/{tsMode-Bm3dVodi.js → tsMode-BUrbWgsu.js} +5 -5
- package/web/assets/{typescript-Cw6KoAtM.js → typescript-tKGzqX3Z.js} +1 -1
- package/web/assets/useAiChatDrawer-CZS0RLp8.js +1 -0
- package/web/assets/useCloudOrg-0VY86rgI.js +93 -0
- package/web/assets/{useCloudOrg-B4VXAHsj.css → useCloudOrg-CDe4gvZH.css} +1 -1
- package/web/assets/{useProjectCatalog-O62WCLX4.js → useProjectCatalog-C2BH8Bnr.js} +1 -1
- package/web/assets/{xml-D4uEa569.js → xml-4CdtJV3Y.js} +1 -1
- package/web/assets/{yaml-y9iDkUjP.js → yaml-Cj7LK0oJ.js} +1 -1
- package/web/index.html +1 -1
- package/agent-manager-452D7XW5.js +0 -7
- package/chunk-4665DVGB.js.map +0 -1
- package/src-6MVU3BDZ.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-82XG5NKb.js +0 -13
- package/web/assets/AgentTerminalPage-BwQhPdyw.js +0 -1
- package/web/assets/AiChatPage-BRnRhmhg.js +0 -1
- package/web/assets/AppLayout-BZrNmMDL.js +0 -1
- package/web/assets/AuditPage-Dds0912d.js +0 -1
- package/web/assets/CloudAccountPage-49RVZf9h.js +0 -1
- package/web/assets/CloudAccountPage-CVAMkCOF.css +0 -1
- package/web/assets/CloudAccountPage-KipqXtVJ.js +0 -1
- package/web/assets/CloudMessagingPage-H43XvI3d.js +0 -2
- package/web/assets/DashboardPage-D9kDTU7y.js +0 -1
- package/web/assets/EnvironmentForm-B_gviXu_.js +0 -108
- package/web/assets/EnvironmentFormPage-BHrfU03w.js +0 -1
- package/web/assets/EnvironmentListPage-CW3FpI79.js +0 -1
- package/web/assets/EnvironmentSelector-B9SZvB3I.css +0 -1
- package/web/assets/EnvironmentSelector-C49ocjBM.js +0 -1
- package/web/assets/KanbanBoardPage-DUgJRQK7.js +0 -4
- package/web/assets/KanbanListPage-D8LIr7sZ.js +0 -1
- package/web/assets/LaunchProjectPage-BBSKTUnF.js +0 -1
- package/web/assets/LaunchServicesPage-vJU87PHP.js +0 -1
- package/web/assets/LogViewer-D5tSUFpZ.js +0 -3
- package/web/assets/ProcessDetailPage-CzGUsQM9.css +0 -1
- package/web/assets/ProcessDetailPage-DqGqF1Eh.js +0 -1
- package/web/assets/ProjectDetailPage-AFuj4C-h.js +0 -1
- package/web/assets/ProjectDetailPage-hcU-rKhJ.css +0 -1
- package/web/assets/ProjectListPage-C1T_1Y0g.js +0 -1
- package/web/assets/RandomJobTestPage-C760ZS5-.js +0 -2
- package/web/assets/ScenarioEditorPage-DFYcNzHU.js +0 -14
- package/web/assets/SendToChatDialog-D4kPRj-6.js +0 -1
- package/web/assets/ServiceControlsBar-D_7_q5e3.js +0 -1
- package/web/assets/ServiceDetailPage-H8pJ6Dke.js +0 -2
- package/web/assets/ServiceFormPage-DSU5wiDe.js +0 -1
- package/web/assets/SettingsPage-Bo6jEumX.js +0 -2062
- package/web/assets/UnlockPage-B7oIw1Ep.js +0 -1
- package/web/assets/VariablesTable-DREhc-Vd.js +0 -1
- package/web/assets/VaultMigrationPage-BeCx1t1u.js +0 -1
- package/web/assets/VersionBadge-DZw8ffTr.js +0 -1
- package/web/assets/WikiPage-BYOLAA15.js +0 -1
- package/web/assets/WikiView-CA-fg4Xk.js +0 -1
- package/web/assets/add-scalar-classes-wjDwsWcH.js +0 -387
- package/web/assets/auth-errors-BG58jeF5.js +0 -1
- package/web/assets/autocomplete-DFFxoeg7.js +0 -308
- package/web/assets/cloud-chat.store-BAYcx61I.js +0 -1
- package/web/assets/column-sIpdz9_l.js +0 -907
- package/web/assets/interface-content-folder.svg-BDo_OJHD.js +0 -1
- package/web/assets/modal-COpDqWq9.js +0 -5
- package/web/assets/modal-CqJ-XbwV.js +0 -1
- package/web/assets/process.store-dEVcW1iy.js +0 -1
- package/web/assets/router-DgsjS0ri.js +0 -1
- package/web/assets/settings-scope-BXA0BjX7.js +0 -1
- package/web/assets/src-BscSu0ry.js +0 -1
- package/web/assets/tabpanel-CEUw3G7r.js +0 -150
- package/web/assets/trpc-Bv0dS7QZ.js +0 -1
- package/web/assets/useAiChatDrawer-D9n1q5jE.js +0 -1
- package/web/assets/useCloudOrg-RH2schZM.js +0 -93
- /package/{agent-manager-452D7XW5.js.map → agent-manager-4EKOSJBR.js.map} +0 -0
package/assets/icon.icns
ADDED
|
Binary file
|
package/assets/icon.ico
ADDED
|
Binary file
|
package/assets/icon.png
ADDED
|
Binary file
|
package/assets/icon.svg
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28">
|
|
2
|
+
<rect width="28" height="28" rx="8" fill="#6366f1"/>
|
|
3
|
+
<path d="M7 20 L14 8 L21 20" stroke="white" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M10 16 L18 16" stroke="white" stroke-width="2.5" stroke-linecap="round"/>
|
|
5
|
+
</svg>
|
|
@@ -36,6 +36,10 @@ var EnvSchema = z.object({
|
|
|
36
36
|
RUNEYA_MODE: z.enum(["local-simple", "cloud"]).default("local-simple"),
|
|
37
37
|
RUNEYA_CORS_ORIGIN: z.string().nullable().default(null),
|
|
38
38
|
RUNEYA_LAN_PROXY: z.preprocess((v) => v === "true" || v === "1", z.boolean()).default(false),
|
|
39
|
+
// Set by the CLI when it was started from a desktop launcher rather than a
|
|
40
|
+
// terminal. The web app surfaces it so the user knows which Runeya they are
|
|
41
|
+
// looking at when several are running.
|
|
42
|
+
RUNEYA_FROM_DESKTOP: z.preprocess((v) => v === "true" || v === "1", z.boolean()).default(false),
|
|
39
43
|
// Label shown for this machine in the cloud's "linked machines" screen.
|
|
40
44
|
// Defaults to the hostname (see `getDeviceName`); set it explicitly when a
|
|
41
45
|
// single host runs several instances and you want to tell them apart.
|
|
@@ -63,7 +67,8 @@ var EnvSchema = z.object({
|
|
|
63
67
|
CLOUD_APP_URL: data.RUNEYA_CLOUD_APP_URL,
|
|
64
68
|
CORS_ORIGIN: data.RUNEYA_CORS_ORIGIN,
|
|
65
69
|
AGENT_BINARY_PATH: data.RUNEYA_AGENT_BINARY_PATH,
|
|
66
|
-
DEVICE_NAME: data.RUNEYA_DEVICE_NAME
|
|
70
|
+
DEVICE_NAME: data.RUNEYA_DEVICE_NAME,
|
|
71
|
+
FROM_DESKTOP: data.RUNEYA_FROM_DESKTOP
|
|
67
72
|
}));
|
|
68
73
|
var env = EnvSchema.parse(process.env);
|
|
69
74
|
|
|
@@ -103,10 +108,35 @@ function vaultFor(target) {
|
|
|
103
108
|
return { root: projectVaultRoot(target.orgId, target.id) };
|
|
104
109
|
}
|
|
105
110
|
var ORG_CLOUD_FILE = "cloud.json";
|
|
106
|
-
async function stampOrgCloud(orgId, cloudUrl) {
|
|
111
|
+
async function stampOrgCloud(orgId, cloudUrl, name) {
|
|
107
112
|
const root = orgVaultRoot(orgId);
|
|
108
113
|
await mkdir(root, { recursive: true });
|
|
109
|
-
|
|
114
|
+
const known = name ?? (await readOrgNames())[orgId];
|
|
115
|
+
const stamp = known ? { cloudUrl, name: known } : { cloudUrl };
|
|
116
|
+
await writeFile(join(root, ORG_CLOUD_FILE), JSON.stringify(stamp, null, 2), "utf-8");
|
|
117
|
+
}
|
|
118
|
+
async function rememberOrgName(orgId, name) {
|
|
119
|
+
const file = join(orgVaultRoot(orgId), ORG_CLOUD_FILE);
|
|
120
|
+
let stamp;
|
|
121
|
+
try {
|
|
122
|
+
stamp = JSON.parse(await readFile(file, "utf-8"));
|
|
123
|
+
} catch {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
if (stamp["name"] === name) return;
|
|
127
|
+
await writeFile(file, JSON.stringify({ ...stamp, name }, null, 2), "utf-8");
|
|
128
|
+
}
|
|
129
|
+
async function readOrgNames() {
|
|
130
|
+
const out = {};
|
|
131
|
+
for (const orgId of await listOrgVaults()) {
|
|
132
|
+
try {
|
|
133
|
+
const raw = await readFile(join(orgVaultRoot(orgId), ORG_CLOUD_FILE), "utf-8");
|
|
134
|
+
const name = JSON.parse(raw).name;
|
|
135
|
+
if (typeof name === "string" && name) out[orgId] = name;
|
|
136
|
+
} catch {
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return out;
|
|
110
140
|
}
|
|
111
141
|
async function readOrgClouds() {
|
|
112
142
|
const orgsDir = join(machineRoot(), "orgs");
|
|
@@ -264,6 +294,9 @@ function markVaultLocked(vault) {
|
|
|
264
294
|
lockedVaults.add(vault);
|
|
265
295
|
keyring.delete(vault);
|
|
266
296
|
}
|
|
297
|
+
function isVaultLocked(vault) {
|
|
298
|
+
return lockedVaults.has(vault);
|
|
299
|
+
}
|
|
267
300
|
function clearVaultLock(vault) {
|
|
268
301
|
lockedVaults.delete(vault);
|
|
269
302
|
}
|
|
@@ -650,6 +683,28 @@ import { randomUUID as randomUUID2 } from "crypto";
|
|
|
650
683
|
import { readFile as readFile3, writeFile as writeFile3, rename as rename2, mkdir as mkdir3, chmod as chmod2, rm } from "fs/promises";
|
|
651
684
|
import { join as join3 } from "path";
|
|
652
685
|
|
|
686
|
+
// ../server/src/services/disk-freshness.ts
|
|
687
|
+
import { stat } from "fs/promises";
|
|
688
|
+
var seen = /* @__PURE__ */ new Map();
|
|
689
|
+
async function rememberFile(path) {
|
|
690
|
+
try {
|
|
691
|
+
const s = await stat(path);
|
|
692
|
+
seen.set(path, { mtimeMs: s.mtimeMs, size: s.size });
|
|
693
|
+
} catch {
|
|
694
|
+
seen.delete(path);
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
async function hasChangedSinceRead(path) {
|
|
698
|
+
const known = seen.get(path);
|
|
699
|
+
if (!known) return true;
|
|
700
|
+
try {
|
|
701
|
+
const s = await stat(path);
|
|
702
|
+
return s.mtimeMs !== known.mtimeMs || s.size !== known.size;
|
|
703
|
+
} catch {
|
|
704
|
+
return true;
|
|
705
|
+
}
|
|
706
|
+
}
|
|
707
|
+
|
|
653
708
|
// ../server/src/services/crypto-helpers.ts
|
|
654
709
|
import { randomBytes as randomBytes2, createCipheriv as createCipheriv2, createDecipheriv as createDecipheriv2 } from "crypto";
|
|
655
710
|
var ALGORITHM2 = "aes-256-gcm";
|
|
@@ -1204,7 +1259,17 @@ var ProcessStatusSchema = z9.object({
|
|
|
1204
1259
|
startedAt: z9.coerce.date().nullable().optional(),
|
|
1205
1260
|
restartCount: z9.number().int().nonnegative().default(0),
|
|
1206
1261
|
uptime: z9.number().nonnegative().default(0),
|
|
1207
|
-
healthStatus: HealthStatusSchema.default("unknown")
|
|
1262
|
+
healthStatus: HealthStatusSchema.default("unknown"),
|
|
1263
|
+
/**
|
|
1264
|
+
* Le répertoire où le processus s'exécute VRAIMENT, absolutisé par l'agent.
|
|
1265
|
+
*
|
|
1266
|
+
* Rapporté par l'agent plutôt que déduit de la config : entre le `cwd` de la
|
|
1267
|
+
* commande, celui du service, l'ancrage sur le projet et les variables que
|
|
1268
|
+
* l'agent étend lui-même, la valeur affichée n'aurait rien prouvé. Ce qui
|
|
1269
|
+
* intéresse quand un service tourne contre le mauvais dépôt, c'est le chemin
|
|
1270
|
+
* final — y compris quand il retombe sur le répertoire de l'agent.
|
|
1271
|
+
*/
|
|
1272
|
+
cwd: z9.string().max(4096).nullable().optional()
|
|
1208
1273
|
});
|
|
1209
1274
|
|
|
1210
1275
|
// ../../packages/shared/src/schemas/log.schema.ts
|
|
@@ -2009,12 +2074,12 @@ function applyToArray(arr, next) {
|
|
|
2009
2074
|
const wanted = next.map(identityOf);
|
|
2010
2075
|
const wantedCount = /* @__PURE__ */ new Map();
|
|
2011
2076
|
for (const k of wanted) wantedCount.set(k, (wantedCount.get(k) ?? 0) + 1);
|
|
2012
|
-
const
|
|
2077
|
+
const seen2 = /* @__PURE__ */ new Map();
|
|
2013
2078
|
for (let i = arr.length - 1; i >= 0; i--) {
|
|
2014
2079
|
const key = identityOfY(arr.get(i));
|
|
2015
|
-
const used =
|
|
2080
|
+
const used = seen2.get(key) ?? 0;
|
|
2016
2081
|
if (used >= (wantedCount.get(key) ?? 0)) arr.delete(i, 1);
|
|
2017
|
-
else
|
|
2082
|
+
else seen2.set(key, used + 1);
|
|
2018
2083
|
}
|
|
2019
2084
|
for (let j = 0; j < next.length; j++) {
|
|
2020
2085
|
const key = wanted[j];
|
|
@@ -2075,6 +2140,15 @@ var EnvironmentStore = class {
|
|
|
2075
2140
|
* chiffrée : c'est ce que retient cette liste. Voir `keepUnreadableSecrets`.
|
|
2076
2141
|
*/
|
|
2077
2142
|
unreadableSecrets = /* @__PURE__ */ new Map();
|
|
2143
|
+
/**
|
|
2144
|
+
* Coffres dont le fichier a bougé depuis la lecture.
|
|
2145
|
+
*
|
|
2146
|
+
* On ne les réécrit pas. Ni avec notre copie — elle décrirait l'état d'avant
|
|
2147
|
+
* la réparation — ni sans elle, ce qui effacerait les secrets qu'elle
|
|
2148
|
+
* protège. Entre les deux, la seule issue sûre est de ne pas toucher au
|
|
2149
|
+
* fichier et de laisser le prochain chargement faire foi.
|
|
2150
|
+
*/
|
|
2151
|
+
staleRoots = /* @__PURE__ */ new Set();
|
|
2078
2152
|
listeners = /* @__PURE__ */ new Set();
|
|
2079
2153
|
/** Notified after every persisted mutation, for the cloud sync bridge. */
|
|
2080
2154
|
onChange(fn) {
|
|
@@ -2091,6 +2165,43 @@ var EnvironmentStore = class {
|
|
|
2091
2165
|
roots = /* @__PURE__ */ new Map();
|
|
2092
2166
|
/** L'organisation d'où vient un environnement reçu du cloud — voir `vaultOf`. */
|
|
2093
2167
|
remoteOrgs = /* @__PURE__ */ new Map();
|
|
2168
|
+
/**
|
|
2169
|
+
* Oublier ce qui a été lu, pour tout relire sous la clé courante.
|
|
2170
|
+
*
|
|
2171
|
+
* Appelé après l'adoption d'une clé d'organisation : le disque vient d'être
|
|
2172
|
+
* re-chiffré sous les pieds du store, si bien que sa mémoire décrit un état
|
|
2173
|
+
* qui n'existe plus. La laisser en place n'affichait pas seulement des
|
|
2174
|
+
* comptes périmés — la sauvegarde suivante réécrivait l'ancien chiffré
|
|
2175
|
+
* par-dessus le nouveau, et défaisait l'adoption.
|
|
2176
|
+
*/
|
|
2177
|
+
resetCache() {
|
|
2178
|
+
this.environments.clear();
|
|
2179
|
+
this.diskEncryptedSlots.clear();
|
|
2180
|
+
this.unreadableSecrets.clear();
|
|
2181
|
+
this.roots.clear();
|
|
2182
|
+
this.remoteOrgs.clear();
|
|
2183
|
+
this.loaded = false;
|
|
2184
|
+
this.notify();
|
|
2185
|
+
}
|
|
2186
|
+
/**
|
|
2187
|
+
* Combien de secrets ce coffre garde chiffrés sans savoir les ouvrir, par
|
|
2188
|
+
* organisation (`null` pour la machine).
|
|
2189
|
+
*
|
|
2190
|
+
* Ils sont déjà préservés à l'écriture (`keepUnreadableSecrets`) ; ce qui
|
|
2191
|
+
* manquait, c'est de le dire. Un secret qui s'affiche vide et se sauvegarde
|
|
2192
|
+
* intact est rassurant sur le disque et déroutant à l'écran.
|
|
2193
|
+
*/
|
|
2194
|
+
async unreadableByVault() {
|
|
2195
|
+
await this.load();
|
|
2196
|
+
const out = /* @__PURE__ */ new Map();
|
|
2197
|
+
for (const [environmentId, failed] of this.unreadableSecrets) {
|
|
2198
|
+
if (!failed.size) continue;
|
|
2199
|
+
const environment = this.environments.get(environmentId);
|
|
2200
|
+
const vault = (environment ? this.vaultOf(environment) : void 0) ?? null;
|
|
2201
|
+
out.set(vault, (out.get(vault) ?? 0) + failed.size);
|
|
2202
|
+
}
|
|
2203
|
+
return out;
|
|
2204
|
+
}
|
|
2094
2205
|
getFilePath(root) {
|
|
2095
2206
|
return join3(root, FILENAME2);
|
|
2096
2207
|
}
|
|
@@ -2234,6 +2345,7 @@ var EnvironmentStore = class {
|
|
|
2234
2345
|
for (const root of await allVaultRoots()) {
|
|
2235
2346
|
try {
|
|
2236
2347
|
const raw = await readFile3(this.getFilePath(root), "utf-8");
|
|
2348
|
+
await rememberFile(this.getFilePath(root));
|
|
2237
2349
|
const data = JSON.parse(raw);
|
|
2238
2350
|
const clash = data.find((e) => this.environments.has(e.id) && this.roots.get(e.id) !== root);
|
|
2239
2351
|
if (clash) {
|
|
@@ -2242,9 +2354,9 @@ var EnvironmentStore = class {
|
|
|
2242
2354
|
}
|
|
2243
2355
|
for (const e of data) {
|
|
2244
2356
|
this.diskEncryptedSlots.set(e.id, this.extractEncryptedCache(e));
|
|
2245
|
-
const decrypted = this.decryptEnvironment(e);
|
|
2246
|
-
this.environments.set(e.id, decrypted);
|
|
2247
2357
|
this.roots.set(e.id, root);
|
|
2358
|
+
const decrypted = this.decryptEnvironment(e, vaultIdOfRoot(root));
|
|
2359
|
+
this.environments.set(e.id, decrypted);
|
|
2248
2360
|
}
|
|
2249
2361
|
} catch {
|
|
2250
2362
|
}
|
|
@@ -2257,7 +2369,20 @@ var EnvironmentStore = class {
|
|
|
2257
2369
|
* another vault must not survive in the old one, and a `[]` left behind would
|
|
2258
2370
|
* keep (or recreate) a `.runeya` in a directory that holds nothing.
|
|
2259
2371
|
*/
|
|
2372
|
+
/**
|
|
2373
|
+
* Repérer les coffres réparés sous nos pieds, avant d'écrire.
|
|
2374
|
+
*
|
|
2375
|
+
* Le test est fait ici, une fois par sauvegarde, plutôt que par
|
|
2376
|
+
* environnement : c'est le fichier du coffre qui change, pas la variable.
|
|
2377
|
+
*/
|
|
2378
|
+
async markStaleRoots() {
|
|
2379
|
+
this.staleRoots.clear();
|
|
2380
|
+
for (const root of new Set(this.roots.values())) {
|
|
2381
|
+
if (await hasChangedSinceRead(this.getFilePath(root))) this.staleRoots.add(root);
|
|
2382
|
+
}
|
|
2383
|
+
}
|
|
2260
2384
|
async save() {
|
|
2385
|
+
await this.markStaleRoots();
|
|
2261
2386
|
const byRoot = /* @__PURE__ */ new Map();
|
|
2262
2387
|
for (const root of this.roots.values()) {
|
|
2263
2388
|
if (!isVaultConflicted(root)) byRoot.set(root, []);
|
|
@@ -2274,6 +2399,12 @@ var EnvironmentStore = class {
|
|
|
2274
2399
|
else byRoot.set(root, [prepared]);
|
|
2275
2400
|
}
|
|
2276
2401
|
for (const [root, environments] of byRoot) {
|
|
2402
|
+
if (this.staleRoots.has(root)) {
|
|
2403
|
+
console.warn(
|
|
2404
|
+
`[environment-store] ${this.getFilePath(root)} a chang\xE9 depuis sa lecture \u2014 \xE9criture ignor\xE9e pour ne pas \xE9craser une r\xE9paration faite en dehors du serveur.`
|
|
2405
|
+
);
|
|
2406
|
+
continue;
|
|
2407
|
+
}
|
|
2277
2408
|
const filePath = this.getFilePath(root);
|
|
2278
2409
|
if (environments.length === 0) {
|
|
2279
2410
|
await rm(filePath, { force: true }).catch(() => {
|
|
@@ -2285,6 +2416,7 @@ var EnvironmentStore = class {
|
|
|
2285
2416
|
await writeFile3(tmpPath, JSON.stringify(environments, null, 2), "utf-8");
|
|
2286
2417
|
await rename2(tmpPath, filePath);
|
|
2287
2418
|
await chmod2(filePath, 384);
|
|
2419
|
+
await rememberFile(filePath);
|
|
2288
2420
|
}
|
|
2289
2421
|
this.notify();
|
|
2290
2422
|
}
|
|
@@ -2644,6 +2776,23 @@ var ServiceStore = class {
|
|
|
2644
2776
|
* dit la même chose que le coffre.
|
|
2645
2777
|
*/
|
|
2646
2778
|
remoteOrgs = /* @__PURE__ */ new Map();
|
|
2779
|
+
/**
|
|
2780
|
+
* Oublier ce qui a été lu, pour tout relire sous la clé courante.
|
|
2781
|
+
*
|
|
2782
|
+
* Appelé après l'adoption d'une clé d'organisation : le disque vient d'être
|
|
2783
|
+
* re-chiffré sous les pieds du store, si bien que sa mémoire décrit un état
|
|
2784
|
+
* qui n'existe plus. La laisser en place n'affichait pas seulement des
|
|
2785
|
+
* comptes périmés — la sauvegarde suivante réécrivait l'ancien chiffré
|
|
2786
|
+
* par-dessus le nouveau, et défaisait l'adoption.
|
|
2787
|
+
*/
|
|
2788
|
+
resetCache() {
|
|
2789
|
+
this.services.clear();
|
|
2790
|
+
this.diskForm.clear();
|
|
2791
|
+
this.roots.clear();
|
|
2792
|
+
this.remoteOrgs.clear();
|
|
2793
|
+
this.loaded = false;
|
|
2794
|
+
this.notify();
|
|
2795
|
+
}
|
|
2647
2796
|
getFilePath(root) {
|
|
2648
2797
|
return join4(root, FILENAME3);
|
|
2649
2798
|
}
|
|
@@ -3934,6 +4083,7 @@ export {
|
|
|
3934
4083
|
hasEncryptionKey,
|
|
3935
4084
|
getEncryptionKey,
|
|
3936
4085
|
markVaultLocked,
|
|
4086
|
+
isVaultLocked,
|
|
3937
4087
|
clearVaultLock,
|
|
3938
4088
|
ensureEncryptionKey,
|
|
3939
4089
|
setEncryptionKey,
|
|
@@ -3941,9 +4091,12 @@ export {
|
|
|
3941
4091
|
localVaultRoot,
|
|
3942
4092
|
orgVaultRoot,
|
|
3943
4093
|
projectVaultRoot,
|
|
4094
|
+
orgIdOfRoot,
|
|
3944
4095
|
vaultIdOfRoot,
|
|
3945
4096
|
vaultFor,
|
|
3946
4097
|
stampOrgCloud,
|
|
4098
|
+
rememberOrgName,
|
|
4099
|
+
readOrgNames,
|
|
3947
4100
|
readOrgClouds,
|
|
3948
4101
|
listOrgVaults,
|
|
3949
4102
|
listCloudVaults,
|
|
@@ -3996,6 +4149,8 @@ export {
|
|
|
3996
4149
|
decryptVariableSlots,
|
|
3997
4150
|
extractEncryptedVariableSlots,
|
|
3998
4151
|
isEncryptedValue,
|
|
4152
|
+
rememberFile,
|
|
4153
|
+
hasChangedSinceRead,
|
|
3999
4154
|
projectKey,
|
|
4000
4155
|
AmbiguousProjectError,
|
|
4001
4156
|
registerProjectLoader,
|
|
@@ -4014,4 +4169,4 @@ export {
|
|
|
4014
4169
|
traefikManager,
|
|
4015
4170
|
agentManager
|
|
4016
4171
|
};
|
|
4017
|
-
//# sourceMappingURL=chunk-
|
|
4172
|
+
//# sourceMappingURL=chunk-F7HMKPFB.js.map
|