@runeya/runeya 2.0.120 → 2.0.122
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 +17 -2
- package/agent/index.js.map +1 -1
- package/agent-manager-BSPEFZKZ.js +10 -0
- package/{chat-PXMMZIAY.js → chat-SE5GIT4B.js} +7 -6
- package/{chunk-22RJM654.js → chunk-BVBK2WII.js} +155 -157
- package/chunk-BVBK2WII.js.map +1 -0
- package/chunk-GL7WA5K3.js +92 -0
- package/chunk-GL7WA5K3.js.map +1 -0
- package/{chunk-GIHR3BGT.js → chunk-NIU3CN5A.js} +37 -17
- package/chunk-NIU3CN5A.js.map +1 -0
- package/{chunk-H6VIS4OY.js → chunk-T2BV5WZE.js} +18 -3
- package/chunk-T2BV5WZE.js.map +1 -0
- package/{chunk-NYKFDU76.js → chunk-VNLIA5PV.js} +137 -59
- package/chunk-VNLIA5PV.js.map +1 -0
- package/{chunk-2WXQIUVC.js → chunk-XTLQOYLT.js} +147 -81
- package/chunk-XTLQOYLT.js.map +1 -0
- package/{companion-4RQ3AMOL.js → companion-HEJHC3UR.js} +5 -4
- package/{desktop-launcher-ADGRYF4S.js → desktop-launcher-EGGVXXKV.js} +2 -2
- package/index.js +4 -4
- package/package.json +1 -1
- package/settings-manager-4GAINSJO.js +10 -0
- package/{src-NRKK27F3.js → src-YUVA6WCM.js} +259 -172
- package/src-YUVA6WCM.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-DrcrJYKe.js +13 -0
- package/web/assets/AgentTerminalPage-BonnuSSS.js +1 -0
- package/web/assets/AiChatPage-DzTc9-iH.js +1 -0
- package/web/assets/AppLayout-DRTTSl7g.js +1 -0
- package/web/assets/{AppLayout-kIdcdJ2n.css → AppLayout-vWoE_P8T.css} +1 -1
- package/web/assets/AuditPage-CBWGaY0D.js +1 -0
- package/web/assets/CloudAccountPage-DTrPLz-p.js +1 -0
- package/web/assets/CloudAccountPage-DYOvfMjD.css +1 -0
- package/web/assets/CloudAccountPage-DvbOBtHJ.js +1 -0
- package/web/assets/CloudMessagingPage-BB-_RdEk.js +2 -0
- package/web/assets/DashboardPage-MdYRjTwv.js +164 -0
- package/web/assets/DirectoryPickerDialog-DROtNZ9T.js +1 -0
- package/web/assets/{EditorIcon-CdapdMgo.js → EditorIcon-LCl9V_-a.js} +2 -2
- package/web/assets/{EnvironmentForm-Dgrt5I5N.js → EnvironmentForm-BUadxutb.js} +2 -2
- package/web/assets/EnvironmentFormPage-Do3NwXL5.js +1 -0
- package/web/assets/EnvironmentListPage-DiG8nF1p.js +1 -0
- package/web/assets/KanbanBoardPage-_QCZ2A2f.js +4 -0
- package/web/assets/KanbanListPage-Dl-FpuPX.css +1 -0
- package/web/assets/KanbanListPage-nyfKMn50.js +1 -0
- package/web/assets/LaunchProjectPage-VHAUZ-cq.js +1 -0
- package/web/assets/LaunchServicesPage-CRv2zJxH.js +1 -0
- package/web/assets/LogViewer-DcoQF_33.js +3 -0
- package/web/assets/OrgKeyPrompt-X9hHtpi9.js +1 -0
- package/web/assets/{ProcessControls-DRyD5bQg.js → ProcessControls-PKQWukd7.js} +1 -1
- package/web/assets/ProcessDetailPage-DhFoi4DT.js +1 -0
- package/web/assets/{ProcessMetrics-D5SgFgFU.js → ProcessMetrics-CMewzyxA.js} +2 -2
- package/web/assets/RandomJobTestPage-CErdKP1K.js +2 -0
- package/web/assets/ScenarioEditorPage-CpRlfU3g.js +14 -0
- package/web/assets/SendToChatDialog-DIp62wvw.js +1 -0
- package/web/assets/ServiceControlsBar-Bk4M-tKR.js +1 -0
- package/web/assets/ServiceDetailPage-BxAZTqFu.js +2 -0
- package/web/assets/ServiceFormPage-Dr_e9QMM.js +1 -0
- package/web/assets/SettingsPage-Dx1eYZKP.js +2063 -0
- package/web/assets/UnlockPage-CgynzFN3.js +1 -0
- package/web/assets/UnlockPage-DU3hoV78.css +1 -0
- package/web/assets/VaultMigrationPage-Cw--n60U.js +1 -0
- package/web/assets/VersionBadge-Ct-qYNDF.js +1 -0
- package/web/assets/WikiPage-D7N7nA2O.js +1 -0
- package/web/assets/WikiView-Izg2SvGt.js +1 -0
- package/web/assets/add-scalar-classes-BP_OZa5m.js +387 -0
- package/web/assets/{autocomplete-ByrzVX5h.js → autocomplete-DMfvn4sK.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-h2koobo1.js → basic-shape-diamond.svg-B5H1r2bp.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg--IMj5O6H.js → basic-shape-hexagon.svg-CYAjKF0z.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-B0JqtIPK.js → basic-shape-primary-circle-ellipse-round.svg-CgleCAf-.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-nMUFcz3q.js → basic-shape-primary-square-rectangle.svg-1Oa48Hhs.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-B01_o2Y1.js → basic-shape-shield.svg-F6dZwVUJ.js} +1 -1
- package/web/assets/{browser-OPkfGEHD.js → browser-CmPAWcJ7.js} +1 -1
- package/web/assets/{browser-DcLBGCAS.js → browser-D3KJ0m2n.js} +1 -1
- package/web/assets/card-Ciw7uU90.js +32 -0
- package/web/assets/{checkbox-DGCPu95-.js → checkbox-BCCx0Nu6.js} +3 -3
- package/web/assets/{chip-Chk5tAnb.js → chip-JRh6DXig.js} +2 -2
- package/web/assets/client-BIlYBe0s.js +24 -0
- package/web/assets/cloud-chat.store-BUYi4kYT.js +1 -0
- package/web/assets/cloud-client-CujRC6FF.js +1 -0
- package/web/assets/cloud-session-CSIV9Uvx.js +1 -0
- package/web/assets/{cloud-session-CnTOFA6T.js → cloud-session-CZWto5y3.js} +2 -2
- package/web/assets/column-DSBHw97f.js +763 -0
- package/web/assets/{computer-device-desktop-monitor.svg-CfTbcAFd.js → computer-device-desktop-monitor.svg-D7wu2cQ4.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-Cl-xv361.js → computer-device-desktop.svg-BtVwjOEG.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-ukRjIyMq.js → computer-device-laptop.svg-f3tFeUHj.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CoDvI0SU.js → computer-device-mobile-phone-android-samsung-back.svg-CmJcGkrL.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-BQWjk4Zt.js → computer-device-mobile-phone-android-samsung.svg-C2ke6Sbg.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-DAoSG317.js → computer-device-mobile-phone-iphone-x-back.svg-DxMqUXKE.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-BPjvW-EA.js → computer-device-mobile-phone-iphone-x.svg-DkbKlrh8.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-BYEFFDGJ.js → computer-device-mobile-tablet-touch.svg-DP0uXMda.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-DNLPmtgI.js → computer-device-mobile-tablet.svg-C064ZFQm.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BLWV1j_N.js → computer-device-network-ethernet-cat6.svg-Dwzl7zBN.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-BOoU0zpo.js → computer-device-network-lan-www.svg-BgErom5w.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-DGwn0IjA.js → computer-device-network-wifi-connection.svg-ByqNsV6y.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-C5g_K48A.js → computer-device-network-wifi-router.svg-AySGITbi.js} +1 -1
- package/web/assets/{cssMode-Cx5qrxXy.js → cssMode-BqrZ4SB-.js} +1 -1
- package/web/assets/{divider-BrS14lDG.js → divider-BswZTb8q.js} +2 -2
- package/web/assets/{docx-preview-DAPpQjxw.js → docx-preview-t_oOha_C.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-DomVqm74.js → ecology-science-erlenmeyer-flask.svg-Keg4ZY0z.js} +1 -1
- package/web/assets/{fieldset-C0CmkHzJ.js → fieldset-DaWy9FsL.js} +2 -2
- package/web/assets/{freemarker2-183f16_T.js → freemarker2-Br0kiufp.js} +1 -1
- package/web/assets/{handlebars-Ck2u5MRS.js → handlebars-BrATzKUL.js} +1 -1
- package/web/assets/{html-RFHCet7g.js → html-LWTJcTM2.js} +1 -1
- package/web/assets/{htmlMode-MLvTePcj.js → htmlMode-A23pWfMP.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-C_9EqK2Z.js → image-flash-lightning.svg-uQfoT6Ex.js} +1 -1
- package/web/assets/{image-picture-flower.svg-Cw0p4SDa.js → image-picture-flower.svg-XxD1bCHC.js} +1 -1
- package/web/assets/{index-De7vzwYE.js → index-e5dmzMc-.js} +362 -362
- package/web/assets/{index-qjiWPMcS.css → index-rUoTy8xc.css} +1 -1
- package/web/assets/{interface-alert-exclamation-diamond.svg-D_7jQp52.js → interface-alert-exclamation-diamond.svg-gQAlkILu.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-slrQHD7Z.js → interface-alert-exclamation-triangle-warning.svg-Ga2rsl6o.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-D6HZsCxj.js → interface-alert-information-circle.svg-BS0N2R1M.js} +1 -1
- package/web/assets/{interface-award-crown.svg-C8KlpCo8.js → interface-award-crown.svg-CtLbK4Gl.js} +1 -1
- package/web/assets/{interface-bookmark.svg-CcHEFyZI.js → interface-bookmark-tag.svg-Dfd6eXAX.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-4m7iWpFd.js → interface-bookmark.svg-Clt6TTov.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-B-NpBZQW.js → interface-calendar-date-one.svg-BmFNLrzR.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-D6JSr0DE.js → interface-content-book-open-pages.svg-u8kJbc3N.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-4JwHKP99.js → interface-content-book-page.svg-Csk8d0R8.js} +1 -1
- package/web/assets/{interface-content-file.svg-dDsVtuW0.js → interface-content-file.svg-DIoD1UhJ.js} +1 -1
- package/web/assets/interface-content-folder.svg-BPZbNQNK.js +1 -0
- package/web/assets/{interface-content-folder.svg-VlaIOWsg.js → interface-content-folder.svg-ipO7hYM2.js} +1 -1
- package/web/assets/{interface-copy-clipboard.svg-C8NaVJTP.js → interface-copy-clipboard.svg-BaK2fHKS.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-DLv3r8Ta.js → interface-edit-attachment.svg-CrpyP6c6.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-Dn_isC0z.js → interface-edit-binocular.svg-Cw-YeqUQ.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-D7nDtfWR.js → interface-edit-magic-wand.svg-BPa49t_4.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-pvqfHBhq.js → interface-edit-tool-paint-roller.svg-Cfag7vxY.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-65sH97q4.js → interface-edit-tool-pencil.svg-BNAmX0d_.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-ByKr9sn6.js → interface-favorite-award.svg-CIMvocAv.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-Dw-AP2Bq.js → interface-favorite-flag.svg-8C3GXK06.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-B_rIv8ZF.js → interface-favorite-heart.svg-CEU_IALn.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-DdSC1aGg.js → interface-favorite-star.svg-Bs0RUtgk.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-B2P_fEQm.js → interface-favorite-stars-sparkles.svg-CZYZ5qkH.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-Dn7xVcha.js → interface-hierarchy-flowchart.svg-DOgEXHV2.js} +1 -1
- package/web/assets/{interface-home-house.svg-CPV7dtoL.js → interface-home-house.svg-lDERGk8q.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BxEpW0yS.js → interface-hyperlink.svg-CAZrs64U.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-CHwx5muE.js → interface-lighting-brightness.svg-CVANBB7i.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-Ct9YyvGT.js → interface-lock-closed.svg-qDLyceL-.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-DuuZ9seB.js → interface-lock-open-unlock.svg-Bc-cq6eU.js} +1 -1
- package/web/assets/{interface-login-key.svg-DwQq_1hs.js → interface-login-key.svg-D6wZBYEi.js} +1 -1
- package/web/assets/{interface-search.svg-Cd9FPHXP.js → interface-search.svg-BVM6kkvA.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-C2oUvcZk.js → interface-setting-cog.svg-uJYqlmKx.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-D_sqPbcr.js → interface-share-megaphone-bullhorn.svg-CgBVBu7Z.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-DHw9o1DN.js → interface-share-rocket.svg-C1iCXMlX.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CYuWbhdH.js → interface-share-satellite.svg-uH-Cvq9d.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-CsQbvDGw.js → interface-share-space-ship.svg-81lauyV5.js} +1 -1
- package/web/assets/{interface-share.svg-CxR58P36.js → interface-share.svg-DO85t-F0.js} +1 -1
- package/web/assets/{interface-signal-square.svg-BFCAMIlM.js → interface-signal-square.svg-CFAni6lY.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-BMtmcI_Z.js → interface-time-clock-circle.svg-BUQfluh7.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-F_74mbfe.js → interface-time-hour-glass.svg-BAZDU-C5.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-GqG3hBlb.js → interface-users-multiple.svg-Bj0AvF2-.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-By26aJ-s.js → interface-weather-moon.svg-Cxz-5thD.js} +1 -1
- package/web/assets/{javascript-DWG-shUz.js → javascript-CuP68vN5.js} +1 -1
- package/web/assets/{jsonMode-c7o5Rqeq.js → jsonMode-CdGjze9r.js} +1 -1
- package/web/assets/{liquid-DqJ-7gUQ.js → liquid-fJJZPdJb.js} +1 -1
- package/web/assets/{lspLanguageFeatures-C_r6rVue.js → lspLanguageFeatures-YzzH9q9a.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-1OECQtwZ.js → mail-chat-bubble-square.svg-DY1-sN8v.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-DGa9kXqg.js → mail-send-email-paper-airplane.svg-6zVEUG2-.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-DOnW83Qn.js → mail-send-envelope.svg-DNpA7Auy.js} +1 -1
- package/web/assets/{mdx-BmXiyjsf.js → mdx-CphM-wvX.js} +1 -1
- package/web/assets/{minus-Bva6o6mu.js → minus-DD84SZSh.js} +2 -2
- package/web/assets/modal-CKGM8Wb3.js +5 -0
- package/web/assets/modal-Dd5rzDUd.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-C9S8E9Gs.js → money-cashier-receipt.svg-ChxLUMT0.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-CXNYqgJd.js → money-currency-dollar-pay.svg-CcPdfv1E.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-DVTCnF_9.js → money-graph-arrow-increase.svg-BsmXO8yM.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-CIlyGCUY.js → money-graph-bar-chart-increase.svg-QVk3zD8i.js} +1 -1
- package/web/assets/multiselect-3cR58mLz.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-xc6FzauK.js → nature-ecology-leaf.svg-nzup63P6.js} +1 -1
- package/web/assets/{password-B_HLITFe.js → password-CCYLOu-C.js} +4 -4
- package/web/assets/{phone-telephone.svg-D6y6im-g.js → phone-telephone.svg-BLtgdZw-.js} +1 -1
- package/web/assets/{plus-DJr2QEgS.js → plus-jk73RdzY.js} +5 -5
- package/web/assets/process.store-jsfEBwiA.js +1 -0
- package/web/assets/{programming-bug.svg-jKhqPvQ0.js → programming-bug.svg-BCN6lOn1.js} +1 -1
- package/web/assets/{programming-cloud.svg-C1_us4-8.js → programming-cloud.svg-DHNBRNkQ.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-C_8mq7k2.js → programming-computer-database-server.svg-C4DheEbm.js} +1 -1
- package/web/assets/{programming-computer-database.svg-Cc445gb5.js → programming-computer-database.svg-cD2w2ZZ6.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-B5fbcAO3.js → programming-module-four-layout.svg-D6_P2rTG.js} +1 -1
- package/web/assets/{programming-module-three.svg-J7fncT0c.js → programming-module-three.svg-Dc076Z_f.js} +1 -1
- package/web/assets/{programming-module.svg-BVjzZRgZ.js → programming-module.svg-D0c9akII.js} +1 -1
- package/web/assets/{programming-script-code.svg-By609kb5.js → programming-script-code.svg-BrT3KZQe.js} +1 -1
- package/web/assets/project-launch.store-Bp7vasUu.js +1 -0
- package/web/assets/project.store-DuZriz9o.js +1 -0
- package/web/assets/{python-jVn8dPRY.js → python-DMw-TRDY.js} +1 -1
- package/web/assets/{radiobutton-erK19fCL.js → radiobutton-CnoEo0qc.js} +2 -2
- package/web/assets/{razor-BJoJ2H1P.js → razor-BTS4Lk96.js} +1 -1
- package/web/assets/router-BU2tqcBm.js +1 -0
- package/web/assets/settings-scope-Bg_X1n_Y.js +1 -0
- package/web/assets/{settings.store-CcYfFedF.js → settings.store-DeGpnclr.js} +1 -1
- package/web/assets/{shopping-cart.svg-a8Rjk8rK.js → shopping-cart.svg-pvFNKXP_.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-BIN9jnEb.js → shopping-gift-present.svg-PYJ4_vdS.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-05MVPg3v.js → shopping-shipping-box-parcel-package.svg-KMRd9Rmg.js} +1 -1
- package/web/assets/src-BsadAol0.js +572 -0
- package/web/assets/{src-DCcw9sU3.css → src-DU1mBjF-.css} +1 -1
- package/web/assets/src-NXursDRf.js +1 -0
- package/web/assets/{tabpanel-BIAV4aKH.js → tabpanel-CKudNnqo.js} +3 -3
- package/web/assets/{tag-new-circle.svg-ehKpryNe.js → tag-new-circle.svg-Bf83DYRq.js} +1 -1
- package/web/assets/theme-D6M00FyZ.js +1 -0
- package/web/assets/{toggleswitch-qhHjeH7s.js → toggleswitch-Cv0supU2.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-D0Dk72so.js → travel-map-earth-globe.svg-WxnFDzEH.js} +1 -1
- package/web/assets/trpc-mWVODCs2.js +1 -0
- package/web/assets/{tsMode-B-s4JVyR.js → tsMode-CfruLmor.js} +5 -5
- package/web/assets/{typescript-CToySho3.js → typescript-BvsjNfHT.js} +1 -1
- package/web/assets/useAiChatDrawer-vNey6IKe.js +1 -0
- package/web/assets/useCloudOrg-B0o8vN4e.js +1 -0
- package/web/assets/useEnvVarAutocomplete-DJMTIim7.js +1 -0
- package/web/assets/useProjectCatalog-B6GXBDDA.js +1 -0
- package/web/assets/{useProjectCloudOrg-DOTcwa9I.js → useProjectCloudOrg-BwLsTiz0.js} +1 -1
- package/web/assets/useServiceUrlHost-CE4Qoy-J.js +1 -0
- package/web/assets/{xml-BMt9wg3H.js → xml-BTID20Kj.js} +1 -1
- package/web/assets/{yaml-RmzWffCM.js → yaml-BtOf_8je.js} +1 -1
- package/web/index.html +2 -2
- package/agent-manager-ACPQWUZ5.js +0 -9
- package/chunk-22RJM654.js.map +0 -1
- package/chunk-2WXQIUVC.js.map +0 -1
- package/chunk-GIHR3BGT.js.map +0 -1
- package/chunk-H6VIS4OY.js.map +0 -1
- package/chunk-NYKFDU76.js.map +0 -1
- package/settings-manager-2C7RY6ZC.js +0 -9
- package/src-NRKK27F3.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-Lgml1vhh.js +0 -13
- package/web/assets/AgentTerminalPage-CwxbyQxm.js +0 -1
- package/web/assets/AiChatPage-CknE-NOo.js +0 -1
- package/web/assets/AppLayout-DT6bb__K.js +0 -1
- package/web/assets/AuditPage-DzK5Tp3Z.js +0 -1
- package/web/assets/CloudAccountPage-BDQpVEAX.js +0 -1
- package/web/assets/CloudAccountPage-CWdxZvAC.js +0 -1
- package/web/assets/CloudAccountPage-CfMY69pk.css +0 -1
- package/web/assets/CloudMessagingPage-BX0QPzkR.js +0 -2
- package/web/assets/DashboardPage-BNBzT2zb.js +0 -164
- package/web/assets/DirectoryPickerDialog-ZT-tL_4A.js +0 -1
- package/web/assets/EnvironmentFormPage-B7uerFJ0.js +0 -1
- package/web/assets/EnvironmentListPage-tTe_1yh-.js +0 -1
- package/web/assets/KanbanBoardPage-DTZVqxd6.js +0 -4
- package/web/assets/KanbanListPage-C5rbZ1eL.css +0 -1
- package/web/assets/KanbanListPage-D82HSRy7.js +0 -1
- package/web/assets/LaunchProjectPage-DgaslasQ.js +0 -1
- package/web/assets/LaunchServicesPage-I2HCqujc.js +0 -1
- package/web/assets/LogViewer-CYuoSJAN.js +0 -3
- package/web/assets/OrgKeyPrompt-Asz6FlrN.js +0 -1
- package/web/assets/ProcessDetailPage-DHmTCgj8.js +0 -1
- package/web/assets/RandomJobTestPage-COLLiJzt.js +0 -2
- package/web/assets/ScenarioEditorPage-rDIB08Ap.js +0 -14
- package/web/assets/SendToChatDialog-BvUmZhUU.js +0 -1
- package/web/assets/ServiceControlsBar-DGTsbA5Q.js +0 -1
- package/web/assets/ServiceDetailPage-Ddko3DNN.js +0 -2
- package/web/assets/ServiceFormPage-oVVmtWjt.js +0 -1
- package/web/assets/SettingsPage-BcQruhk1.js +0 -2063
- package/web/assets/UnlockPage-CpysPhlT.css +0 -1
- package/web/assets/UnlockPage-OH7UV01L.js +0 -1
- package/web/assets/VaultMigrationPage-B4a0WihW.js +0 -1
- package/web/assets/VersionBadge-URtOAd5L.js +0 -1
- package/web/assets/WikiPage-BotpKBAY.js +0 -1
- package/web/assets/WikiView-DQCs79lu.js +0 -1
- package/web/assets/add-scalar-classes-CnAomA8D.js +0 -387
- package/web/assets/card-C3Xots9M.js +0 -32
- package/web/assets/client-CbBJUuyt.js +0 -24
- package/web/assets/cloud-chat.store-COR3nnYR.js +0 -1
- package/web/assets/cloud-client-DZFY1sze.js +0 -1
- package/web/assets/cloud-session-CCJUvzk1.js +0 -1
- package/web/assets/column-ROcesBUs.js +0 -763
- package/web/assets/interface-content-folder.svg-CagI3wg0.js +0 -1
- package/web/assets/modal-AUS2ksVq.js +0 -5
- package/web/assets/modal-BR3MAJDn.js +0 -1
- package/web/assets/multiselect-aPow7kzy.js +0 -251
- package/web/assets/process.store-CVrBwiRB.js +0 -1
- package/web/assets/project-launch.store-DCuERm8z.js +0 -1
- package/web/assets/project.store-D0oo8kyl.js +0 -1
- package/web/assets/router-0UcfydXq.js +0 -1
- package/web/assets/settings-scope-DdLe151G.js +0 -1
- package/web/assets/src-BiwZaAz3.js +0 -1
- package/web/assets/src-OmBj_GBQ.js +0 -572
- package/web/assets/theme-DiK_jXoN.js +0 -1
- package/web/assets/trpc-DOYpfRgV.js +0 -1
- package/web/assets/useAiChatDrawer-BSlDU8P0.js +0 -1
- package/web/assets/useCloudOrg-_EGQ6eUY.js +0 -1
- package/web/assets/useEnvVarAutocomplete-B4h_6ylX.js +0 -1
- package/web/assets/useProjectCatalog-B3GacZkf.js +0 -1
- package/web/assets/useServiceUrlHost-B-38dOxY.js +0 -1
- /package/{agent-manager-ACPQWUZ5.js.map → agent-manager-BSPEFZKZ.js.map} +0 -0
- /package/{chat-PXMMZIAY.js.map → chat-SE5GIT4B.js.map} +0 -0
- /package/{companion-4RQ3AMOL.js.map → companion-HEJHC3UR.js.map} +0 -0
- /package/{desktop-launcher-ADGRYF4S.js.map → desktop-launcher-EGGVXXKV.js.map} +0 -0
- /package/{settings-manager-2C7RY6ZC.js.map → settings-manager-4GAINSJO.js.map} +0 -0
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
import {
|
|
2
|
+
atomicWriteSecure,
|
|
3
|
+
fingerprintFiles,
|
|
4
|
+
hasChangedSinceRead,
|
|
5
|
+
rememberFile,
|
|
6
|
+
wasRead
|
|
7
|
+
} from "./chunk-GL7WA5K3.js";
|
|
1
8
|
import {
|
|
2
9
|
AGENT_FETCH_TIMEOUT,
|
|
3
10
|
AGENT_HEALTH_POLL_INTERVAL,
|
|
@@ -8,7 +15,7 @@ import {
|
|
|
8
15
|
TraefikConfigSchema,
|
|
9
16
|
WS_RECONNECT_MAX,
|
|
10
17
|
WS_RECONNECT_MIN
|
|
11
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-T2BV5WZE.js";
|
|
12
19
|
import {
|
|
13
20
|
allVaultRoots,
|
|
14
21
|
env,
|
|
@@ -384,7 +391,7 @@ var agentStore = new AgentStore();
|
|
|
384
391
|
|
|
385
392
|
// ../server/src/services/service-store.ts
|
|
386
393
|
import { randomUUID as randomUUID3 } from "crypto";
|
|
387
|
-
import { readFile as readFile3,
|
|
394
|
+
import { readFile as readFile3, rm as rm2 } from "fs/promises";
|
|
388
395
|
import { join as join3 } from "path";
|
|
389
396
|
|
|
390
397
|
// ../server/src/services/project-key.ts
|
|
@@ -495,36 +502,51 @@ function isVaultConflicted(root) {
|
|
|
495
502
|
return conflicted.has(root);
|
|
496
503
|
}
|
|
497
504
|
|
|
505
|
+
// ../server/src/services/store-disk-coordinator.ts
|
|
506
|
+
import { AsyncLocalStorage } from "async_hooks";
|
|
507
|
+
var insideReload = new AsyncLocalStorage();
|
|
508
|
+
var StoreDiskCoordinator = class {
|
|
509
|
+
reloading = null;
|
|
510
|
+
saves = 0;
|
|
511
|
+
queue = Promise.resolve();
|
|
512
|
+
/**
|
|
513
|
+
* `read` rend de quoi substituer le nouvel état, ou `null` s'il n'y a rien à
|
|
514
|
+
* relire. La substitution doit être synchrone : c'est ce qui la rend atomique.
|
|
515
|
+
*/
|
|
516
|
+
load(read) {
|
|
517
|
+
const inside = insideReload.getStore();
|
|
518
|
+
if (inside && (inside.has(this) || this.reloading)) return Promise.resolve();
|
|
519
|
+
this.reloading ??= this.reload(read).finally(() => {
|
|
520
|
+
this.reloading = null;
|
|
521
|
+
});
|
|
522
|
+
return this.reloading;
|
|
523
|
+
}
|
|
524
|
+
async reload(read) {
|
|
525
|
+
for (; ; ) {
|
|
526
|
+
await this.queue;
|
|
527
|
+
const savesBefore = this.saves;
|
|
528
|
+
const outer = insideReload.getStore() ?? /* @__PURE__ */ new Set();
|
|
529
|
+
const commit = await insideReload.run(/* @__PURE__ */ new Set([...outer, this]), read);
|
|
530
|
+
if (!commit) return;
|
|
531
|
+
if (this.saves !== savesBefore) continue;
|
|
532
|
+
commit();
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
save(write) {
|
|
537
|
+
this.saves += 1;
|
|
538
|
+
const run = this.queue.then(write);
|
|
539
|
+
this.queue = run.catch(() => {
|
|
540
|
+
});
|
|
541
|
+
return run;
|
|
542
|
+
}
|
|
543
|
+
};
|
|
544
|
+
|
|
498
545
|
// ../server/src/services/environment-store.ts
|
|
499
546
|
import { randomUUID as randomUUID2 } from "crypto";
|
|
500
|
-
import { readFile as readFile2,
|
|
547
|
+
import { readFile as readFile2, rm } from "fs/promises";
|
|
501
548
|
import { join as join2 } from "path";
|
|
502
549
|
|
|
503
|
-
// ../server/src/services/disk-freshness.ts
|
|
504
|
-
import { stat } from "fs/promises";
|
|
505
|
-
var seen = /* @__PURE__ */ new Map();
|
|
506
|
-
async function rememberFile(path) {
|
|
507
|
-
try {
|
|
508
|
-
const s = await stat(path);
|
|
509
|
-
seen.set(path, { mtimeMs: s.mtimeMs, size: s.size });
|
|
510
|
-
} catch {
|
|
511
|
-
seen.delete(path);
|
|
512
|
-
}
|
|
513
|
-
}
|
|
514
|
-
async function hasChangedSinceRead(path) {
|
|
515
|
-
const known = seen.get(path);
|
|
516
|
-
if (!known) return true;
|
|
517
|
-
try {
|
|
518
|
-
const s = await stat(path);
|
|
519
|
-
return s.mtimeMs !== known.mtimeMs || s.size !== known.size;
|
|
520
|
-
} catch {
|
|
521
|
-
return true;
|
|
522
|
-
}
|
|
523
|
-
}
|
|
524
|
-
function wasRead(path) {
|
|
525
|
-
return seen.has(path);
|
|
526
|
-
}
|
|
527
|
-
|
|
528
550
|
// ../server/src/services/crypto-helpers.ts
|
|
529
551
|
import { randomBytes as randomBytes2, createCipheriv as createCipheriv2, createDecipheriv as createDecipheriv2 } from "crypto";
|
|
530
552
|
var ALGORITHM2 = "aes-256-gcm";
|
|
@@ -657,6 +679,16 @@ var EnvironmentStore = class {
|
|
|
657
679
|
* fichier et de laisser le prochain chargement faire foi.
|
|
658
680
|
*/
|
|
659
681
|
staleRoots = /* @__PURE__ */ new Set();
|
|
682
|
+
/**
|
|
683
|
+
* L'état du disque au dernier chargement — voir `ProjectStore.fingerprint`.
|
|
684
|
+
*
|
|
685
|
+
* `staleRoots` dit « ne réécris pas ce fichier, il a bougé » ; celui-ci dit
|
|
686
|
+
* « relis-le ». Les deux vont ensemble : refuser d'écrire protège le travail
|
|
687
|
+
* de l'autre instance, mais tant que la mémoire n'est pas reprise, l'écriture
|
|
688
|
+
* refusée l'est pour toujours et la modification de l'utilisateur se perd.
|
|
689
|
+
*/
|
|
690
|
+
fingerprint = "";
|
|
691
|
+
disk = new StoreDiskCoordinator();
|
|
660
692
|
listeners = /* @__PURE__ */ new Set();
|
|
661
693
|
/** Notified after every persisted mutation, for the cloud sync bridge. */
|
|
662
694
|
onChange(fn) {
|
|
@@ -820,7 +852,7 @@ var EnvironmentStore = class {
|
|
|
820
852
|
}
|
|
821
853
|
return result;
|
|
822
854
|
}
|
|
823
|
-
decryptEnvironment(environment, vault) {
|
|
855
|
+
decryptEnvironment(environment, vault, unreadable = this.unreadableSecrets) {
|
|
824
856
|
let decryptedVars = environment.variables;
|
|
825
857
|
if (environment.variables && Object.keys(environment.variables).length > 0) {
|
|
826
858
|
const failed = /* @__PURE__ */ new Set();
|
|
@@ -830,11 +862,15 @@ var EnvironmentStore = class {
|
|
|
830
862
|
(variableId) => failed.add(variableId),
|
|
831
863
|
vault ?? this.vaultOf(environment)
|
|
832
864
|
);
|
|
833
|
-
if (failed.size > 0)
|
|
834
|
-
else
|
|
865
|
+
if (failed.size > 0) unreadable.set(environment.id, failed);
|
|
866
|
+
else unreadable.delete(environment.id);
|
|
835
867
|
}
|
|
836
868
|
return { ...environment, variables: decryptedVars };
|
|
837
869
|
}
|
|
870
|
+
/** Ce que le disque porte : un fichier d'environnements par coffre. */
|
|
871
|
+
async diskFingerprint() {
|
|
872
|
+
return fingerprintFiles((await allVaultRoots()).map((root) => this.getFilePath(root)));
|
|
873
|
+
}
|
|
838
874
|
/**
|
|
839
875
|
* Read every vault — the launch directory and each materialized cloud project.
|
|
840
876
|
*
|
|
@@ -843,32 +879,47 @@ var EnvironmentStore = class {
|
|
|
843
879
|
* store reads environments while absorbing a project, which would deadlock).
|
|
844
880
|
*/
|
|
845
881
|
async load() {
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
882
|
+
await this.disk.load(async () => {
|
|
883
|
+
const fingerprint = await this.diskFingerprint();
|
|
884
|
+
if (this.loaded && fingerprint === this.fingerprint) return null;
|
|
885
|
+
await ensureProjectsLoaded();
|
|
886
|
+
if (!getEncryptionKey()) return null;
|
|
887
|
+
const next = await this.readVaults();
|
|
888
|
+
return () => {
|
|
889
|
+
this.environments = next.environments;
|
|
890
|
+
this.diskEncryptedSlots = next.diskEncryptedSlots;
|
|
891
|
+
this.roots = next.roots;
|
|
892
|
+
this.unreadableSecrets = next.unreadableSecrets;
|
|
893
|
+
this.fingerprint = fingerprint;
|
|
894
|
+
this.loaded = true;
|
|
895
|
+
};
|
|
896
|
+
});
|
|
897
|
+
}
|
|
898
|
+
/** Lire tous les coffres dans des tables neuves, que `load` substitue d'un coup. */
|
|
899
|
+
async readVaults() {
|
|
900
|
+
const environments = /* @__PURE__ */ new Map();
|
|
901
|
+
const diskEncryptedSlots = /* @__PURE__ */ new Map();
|
|
902
|
+
const roots = /* @__PURE__ */ new Map();
|
|
903
|
+
const unreadableSecrets = /* @__PURE__ */ new Map();
|
|
853
904
|
for (const root of await allVaultRoots()) {
|
|
854
905
|
try {
|
|
855
906
|
const raw = await readFile2(this.getFilePath(root), "utf-8");
|
|
856
907
|
await rememberFile(this.getFilePath(root));
|
|
857
908
|
const data = JSON.parse(raw);
|
|
858
|
-
const clash = data.find((e) =>
|
|
909
|
+
const clash = data.find((e) => environments.has(e.id) && roots.get(e.id) !== root);
|
|
859
910
|
if (clash) {
|
|
860
911
|
markVaultConflict(root, `environnement ${clash.id}`);
|
|
861
912
|
continue;
|
|
862
913
|
}
|
|
863
914
|
for (const e of data) {
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
this.environments.set(e.id, decrypted);
|
|
915
|
+
diskEncryptedSlots.set(e.id, this.extractEncryptedCache(e));
|
|
916
|
+
roots.set(e.id, root);
|
|
917
|
+
environments.set(e.id, this.decryptEnvironment(e, vaultIdOfRoot(root), unreadableSecrets));
|
|
868
918
|
}
|
|
869
919
|
} catch {
|
|
870
920
|
}
|
|
871
921
|
}
|
|
922
|
+
return { environments, diskEncryptedSlots, roots, unreadableSecrets };
|
|
872
923
|
}
|
|
873
924
|
/**
|
|
874
925
|
* Write each vault that holds — or held — an environment.
|
|
@@ -890,7 +941,10 @@ var EnvironmentStore = class {
|
|
|
890
941
|
if (wasRead(path) && await hasChangedSinceRead(path)) this.staleRoots.add(root);
|
|
891
942
|
}
|
|
892
943
|
}
|
|
893
|
-
|
|
944
|
+
save() {
|
|
945
|
+
return this.disk.save(() => this.writeVaults());
|
|
946
|
+
}
|
|
947
|
+
async writeVaults() {
|
|
894
948
|
await this.markStaleRoots();
|
|
895
949
|
const byRoot = /* @__PURE__ */ new Map();
|
|
896
950
|
for (const root of this.roots.values()) {
|
|
@@ -920,13 +974,10 @@ var EnvironmentStore = class {
|
|
|
920
974
|
});
|
|
921
975
|
continue;
|
|
922
976
|
}
|
|
923
|
-
await
|
|
924
|
-
const tmpPath = filePath + ".tmp";
|
|
925
|
-
await writeFile2(tmpPath, JSON.stringify(environments, null, 2), "utf-8");
|
|
926
|
-
await rename2(tmpPath, filePath);
|
|
927
|
-
await chmod2(filePath, 384);
|
|
977
|
+
await atomicWriteSecure(filePath, JSON.stringify(environments, null, 2));
|
|
928
978
|
await rememberFile(filePath);
|
|
929
979
|
}
|
|
980
|
+
this.fingerprint = await this.diskFingerprint();
|
|
930
981
|
this.notify();
|
|
931
982
|
}
|
|
932
983
|
/**
|
|
@@ -1265,6 +1316,13 @@ function prepareForDisk(service, previous, vault) {
|
|
|
1265
1316
|
var ServiceStore = class {
|
|
1266
1317
|
services = /* @__PURE__ */ new Map();
|
|
1267
1318
|
loaded = false;
|
|
1319
|
+
/**
|
|
1320
|
+
* L'état du disque au dernier chargement — voir `ProjectStore.fingerprint` :
|
|
1321
|
+
* plusieurs Runeya partagent la racine machine, et un store chargé une fois
|
|
1322
|
+
* pour toutes ne verrait jamais les services créés par l'autre.
|
|
1323
|
+
*/
|
|
1324
|
+
fingerprint = "";
|
|
1325
|
+
disk = new StoreDiskCoordinator();
|
|
1268
1326
|
listeners = /* @__PURE__ */ new Set();
|
|
1269
1327
|
/**
|
|
1270
1328
|
* Last on-disk (encrypted) form per service id, so `prepareForDisk` can reuse
|
|
@@ -1324,6 +1382,10 @@ var ServiceStore = class {
|
|
|
1324
1382
|
rootFor(serviceId) {
|
|
1325
1383
|
return rootOfService(serviceId, this.roots.get(serviceId) ?? null) ?? localVaultRoot();
|
|
1326
1384
|
}
|
|
1385
|
+
/** Ce que le disque porte : un fichier de services par coffre. */
|
|
1386
|
+
async diskFingerprint() {
|
|
1387
|
+
return fingerprintFiles((await allVaultRoots()).map((root) => this.getFilePath(root)));
|
|
1388
|
+
}
|
|
1327
1389
|
/**
|
|
1328
1390
|
* Read every vault: the launch directory and each materialized cloud project.
|
|
1329
1391
|
*
|
|
@@ -1331,15 +1393,31 @@ var ServiceStore = class {
|
|
|
1331
1393
|
* without waiting on projects.
|
|
1332
1394
|
*/
|
|
1333
1395
|
async load() {
|
|
1334
|
-
if (this.loaded) return;
|
|
1335
1396
|
if (!getEncryptionKey()) return;
|
|
1336
|
-
this.
|
|
1337
|
-
|
|
1397
|
+
await this.disk.load(async () => {
|
|
1398
|
+
const fingerprint = await this.diskFingerprint();
|
|
1399
|
+
if (this.loaded && fingerprint === this.fingerprint) return null;
|
|
1400
|
+
await ensureProjectsLoaded();
|
|
1401
|
+
const next = await this.readVaults();
|
|
1402
|
+
return () => {
|
|
1403
|
+
this.services = next.services;
|
|
1404
|
+
this.diskForm = next.diskForm;
|
|
1405
|
+
this.roots = next.roots;
|
|
1406
|
+
this.fingerprint = fingerprint;
|
|
1407
|
+
this.loaded = true;
|
|
1408
|
+
if (this.services.size > 0) this.notify();
|
|
1409
|
+
};
|
|
1410
|
+
});
|
|
1411
|
+
}
|
|
1412
|
+
async readVaults() {
|
|
1413
|
+
const services = /* @__PURE__ */ new Map();
|
|
1414
|
+
const diskForm = /* @__PURE__ */ new Map();
|
|
1415
|
+
const roots = /* @__PURE__ */ new Map();
|
|
1338
1416
|
for (const root of await allVaultRoots()) {
|
|
1339
1417
|
try {
|
|
1340
1418
|
const raw = await readFile3(this.getFilePath(root), "utf-8");
|
|
1341
1419
|
const data = JSON.parse(raw);
|
|
1342
|
-
const clash = data.find((s) =>
|
|
1420
|
+
const clash = data.find((s) => services.has(s.id) && roots.get(s.id) !== root);
|
|
1343
1421
|
if (clash) {
|
|
1344
1422
|
markVaultConflict(root, `service ${clash.id}`);
|
|
1345
1423
|
continue;
|
|
@@ -1350,17 +1428,17 @@ var ServiceStore = class {
|
|
|
1350
1428
|
if (cmd.shell === void 0) cmd.shell = true;
|
|
1351
1429
|
}
|
|
1352
1430
|
}
|
|
1353
|
-
|
|
1354
|
-
|
|
1431
|
+
diskForm.set(s.id, s);
|
|
1432
|
+
services.set(s.id, {
|
|
1355
1433
|
...s,
|
|
1356
1434
|
logSources: decryptLogSources(s.logSources ?? [], vaultIdOfRoot(root))
|
|
1357
1435
|
});
|
|
1358
|
-
|
|
1436
|
+
roots.set(s.id, root);
|
|
1359
1437
|
}
|
|
1360
1438
|
} catch {
|
|
1361
1439
|
}
|
|
1362
1440
|
}
|
|
1363
|
-
|
|
1441
|
+
return { services, diskForm, roots };
|
|
1364
1442
|
}
|
|
1365
1443
|
/**
|
|
1366
1444
|
* Write each vault that holds — or held — a service.
|
|
@@ -1369,7 +1447,10 @@ var ServiceStore = class {
|
|
|
1369
1447
|
* another vault must not survive in the one it left, and a `[]` left behind
|
|
1370
1448
|
* would keep (or recreate) a `.runeya` in a directory that holds nothing.
|
|
1371
1449
|
*/
|
|
1372
|
-
|
|
1450
|
+
save() {
|
|
1451
|
+
return this.disk.save(() => this.writeVaults());
|
|
1452
|
+
}
|
|
1453
|
+
async writeVaults() {
|
|
1373
1454
|
const byRoot = /* @__PURE__ */ new Map();
|
|
1374
1455
|
for (const root of this.roots.values()) {
|
|
1375
1456
|
if (!isVaultConflicted(root)) byRoot.set(root, []);
|
|
@@ -1392,12 +1473,9 @@ var ServiceStore = class {
|
|
|
1392
1473
|
});
|
|
1393
1474
|
continue;
|
|
1394
1475
|
}
|
|
1395
|
-
await
|
|
1396
|
-
const tmpPath = filePath + ".tmp";
|
|
1397
|
-
await writeFile3(tmpPath, JSON.stringify(services, null, 2), "utf-8");
|
|
1398
|
-
await rename3(tmpPath, filePath);
|
|
1399
|
-
await chmod3(filePath, 384);
|
|
1476
|
+
await atomicWriteSecure(filePath, JSON.stringify(services, null, 2));
|
|
1400
1477
|
}
|
|
1478
|
+
this.fingerprint = await this.diskFingerprint();
|
|
1401
1479
|
}
|
|
1402
1480
|
/**
|
|
1403
1481
|
* Drop services from memory, without touching the disk.
|
|
@@ -1608,7 +1686,7 @@ import { dirname as dirname2, join as join5 } from "path";
|
|
|
1608
1686
|
import { fileURLToPath } from "url";
|
|
1609
1687
|
|
|
1610
1688
|
// ../server/src/services/instance-registry.ts
|
|
1611
|
-
import { mkdir as
|
|
1689
|
+
import { mkdir as mkdir2, readdir, readFile as readFile4, writeFile as writeFile2, rm as rm3 } from "fs/promises";
|
|
1612
1690
|
import { readFileSync } from "fs";
|
|
1613
1691
|
import dotenv from "dotenv";
|
|
1614
1692
|
import { spawn } from "child_process";
|
|
@@ -1705,9 +1783,9 @@ function selfRecord() {
|
|
|
1705
1783
|
}
|
|
1706
1784
|
async function registerInstance() {
|
|
1707
1785
|
try {
|
|
1708
|
-
await
|
|
1786
|
+
await mkdir2(registryDir(), { recursive: true });
|
|
1709
1787
|
published = selfRecord();
|
|
1710
|
-
await
|
|
1788
|
+
await writeFile2(fileFor(process.pid), JSON.stringify(published, null, 2));
|
|
1711
1789
|
} catch (err) {
|
|
1712
1790
|
console.log("[instances] Could not register this instance:", err.message);
|
|
1713
1791
|
}
|
|
@@ -1720,7 +1798,7 @@ async function setInstanceAgentPid(agentPid) {
|
|
|
1720
1798
|
if (!published) return;
|
|
1721
1799
|
published = { ...published, agentPid: agentPid ?? void 0 };
|
|
1722
1800
|
try {
|
|
1723
|
-
await
|
|
1801
|
+
await writeFile2(fileFor(process.pid), JSON.stringify(published, null, 2));
|
|
1724
1802
|
} catch {
|
|
1725
1803
|
}
|
|
1726
1804
|
}
|
|
@@ -1745,15 +1823,6 @@ async function probe(port) {
|
|
|
1745
1823
|
return { ok: false, uptimeMs: null, version: null };
|
|
1746
1824
|
}
|
|
1747
1825
|
}
|
|
1748
|
-
async function describeInstance(pid) {
|
|
1749
|
-
try {
|
|
1750
|
-
const parsed = InstanceFileSchema.safeParse(JSON.parse(await readFile4(fileFor(pid), "utf8")));
|
|
1751
|
-
if (!parsed.success) return null;
|
|
1752
|
-
return { pid, port: parsed.data.port, cwd: parsed.data.cwd };
|
|
1753
|
-
} catch {
|
|
1754
|
-
return null;
|
|
1755
|
-
}
|
|
1756
|
-
}
|
|
1757
1826
|
async function listInstances() {
|
|
1758
1827
|
let files;
|
|
1759
1828
|
try {
|
|
@@ -3001,9 +3070,7 @@ export {
|
|
|
3001
3070
|
decryptVariableSlots,
|
|
3002
3071
|
extractEncryptedVariableSlots,
|
|
3003
3072
|
isEncryptedValue,
|
|
3004
|
-
|
|
3005
|
-
hasChangedSinceRead,
|
|
3006
|
-
wasRead,
|
|
3073
|
+
StoreDiskCoordinator,
|
|
3007
3074
|
projectKey,
|
|
3008
3075
|
AmbiguousProjectError,
|
|
3009
3076
|
registerProjectLoader,
|
|
@@ -3020,7 +3087,6 @@ export {
|
|
|
3020
3087
|
agentStore,
|
|
3021
3088
|
registerInstance,
|
|
3022
3089
|
unregisterInstance,
|
|
3023
|
-
describeInstance,
|
|
3024
3090
|
listInstances,
|
|
3025
3091
|
killInstance,
|
|
3026
3092
|
restartInstance,
|
|
@@ -3029,4 +3095,4 @@ export {
|
|
|
3029
3095
|
traefikManager,
|
|
3030
3096
|
agentManager
|
|
3031
3097
|
};
|
|
3032
|
-
//# sourceMappingURL=chunk-
|
|
3098
|
+
//# sourceMappingURL=chunk-XTLQOYLT.js.map
|