@runeya/runeya 2.0.71 → 2.0.73
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 +208 -160
- package/agent/index.js.map +1 -1
- package/agent-manager-LBV3CVHB.js +7 -0
- package/{chunk-Z3KAXI7V.js → chunk-OTJQEK4D.js} +240 -29
- package/chunk-OTJQEK4D.js.map +1 -0
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/{src-Q3PSCMS7.js → src-MY5W5AYS.js} +828 -633
- package/src-MY5W5AYS.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-369U2Skl.js +13 -0
- package/web/assets/AgentTerminalPage-RHehuR0e.js +1 -0
- package/web/assets/AiChatPage-BbgFeCu5.js +1 -0
- package/web/assets/AppLayout-CvEbrCSS.js +1 -0
- package/web/assets/{AppLayout-BqXoW05V.css → AppLayout-Dj8VrBzz.css} +1 -1
- package/web/assets/AuditPage-BRBcRwff.js +1 -0
- package/web/assets/CloudAccountPage-C9Y4zQYc.js +1 -0
- package/web/assets/CloudAccountPage-DmDrYdSX.js +1 -0
- package/web/assets/CloudMessagingPage-j2dztUz1.js +2 -0
- package/web/assets/DashboardPage-DbgOaKaI.js +1 -0
- package/web/assets/DirectoryPickerDialog-B5a7tO0P.js +1 -0
- package/web/assets/{EditorIcon-JRryeySJ.js → EditorIcon-C32poOg-.js} +2 -2
- package/web/assets/EnvironmentForm-CjnghPBi.js +108 -0
- package/web/assets/EnvironmentFormPage-VkOp77jY.js +1 -0
- package/web/assets/EnvironmentListPage-GkrefCj6.js +1 -0
- package/web/assets/KanbanBoardPage-CCl8dmwn.css +1 -0
- package/web/assets/KanbanBoardPage-CkrXazSk.js +4 -0
- package/web/assets/KanbanListPage-CtC0GWl8.js +1 -0
- package/web/assets/LaunchProjectPage-BrmWhutG.css +1 -0
- package/web/assets/LaunchProjectPage-Zx3L-5pP.js +1 -0
- package/web/assets/LaunchServicesPage-CMxUWoNQ.css +1 -0
- package/web/assets/LaunchServicesPage-Du56bNpD.js +1 -0
- package/web/assets/LogViewer-CusYWOVz.js +3 -0
- package/web/assets/OrgKeyPrompt-BhsICoTI.js +1 -0
- package/web/assets/{ProcessControls-BPQXGKib.js → ProcessControls-CNrbnTpl.js} +1 -1
- package/web/assets/ProcessDetailPage-h8RXTZkW.js +1 -0
- package/web/assets/{ProcessMetrics-D7L708Em.js → ProcessMetrics-B6Zf110f.js} +2 -2
- package/web/assets/ProjectDetailPage-B_fowFne.js +1 -0
- package/web/assets/ProjectListPage-DA9HaZW1.js +1 -0
- package/web/assets/RandomJobTestPage-BlKmN8WR.js +2 -0
- package/web/assets/ScenarioEditorPage-DxmF9C9y.js +14 -0
- package/web/assets/SendToChatDialog-CKDis_oY.js +1 -0
- package/web/assets/ServiceControlsBar-DqWOWB8l.js +1 -0
- package/web/assets/ServiceDetailPage-D4w7i_m0.js +2 -0
- package/web/assets/ServiceFormPage-D9EeSeKX.js +1 -0
- package/web/assets/SettingsPage-1zz5wMpp.js +2063 -0
- package/web/assets/{SettingsPage-CScovMi5.css → SettingsPage-ClUsbLPy.css} +1 -1
- package/web/assets/UnlockPage-BkqsC0ML.css +1 -0
- package/web/assets/UnlockPage-C4b4tv9Z.js +1 -0
- package/web/assets/VariablesTable-BQW0OS3C.js +1 -0
- package/web/assets/VaultMigrationPage-B20L2W_w.css +1 -0
- package/web/assets/VaultMigrationPage-B24yEz24.js +1 -0
- package/web/assets/VersionBadge-AuIQKahq.js +1 -0
- package/web/assets/WikiPage-YnXchmy7.js +1 -0
- package/web/assets/WikiView-B4FOcZxi.js +1 -0
- package/web/assets/add-scalar-classes-Bb4tLm0z.js +387 -0
- package/web/assets/auth-errors-CtC8HAvD.js +1 -0
- package/web/assets/autocomplete-LUb8fDRi.js +308 -0
- package/web/assets/{basic-shape-diamond.svg-C8K6YjGj.js → basic-shape-diamond.svg-CCzIrujg.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-C9PeXR6S.js → basic-shape-hexagon.svg-DdSh-N2z.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CfBLN6Yj.js → basic-shape-primary-circle-ellipse-round.svg-DsMpzYdr.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-D2QPBP5_.js → basic-shape-primary-square-rectangle.svg-S5aiKynO.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-ClsEFdja.js → basic-shape-shield.svg-06mLN5Kq.js} +1 -1
- package/web/assets/{browser-D7ZckEFz.js → browser-B6kPJYkH.js} +1 -1
- package/web/assets/{browser-CF5_9QqR.js → browser-CvGRE98D.js} +1 -1
- package/web/assets/card-DQ-7UOQt.js +32 -0
- package/web/assets/{checkbox-CfwNXlF_.js → checkbox-CIizqAL5.js} +3 -3
- package/web/assets/{chip-3tOoBrD7.js → chip-CKY-cFPm.js} +2 -2
- package/web/assets/client-Cem5gxc3.js +24 -0
- package/web/assets/cloud-chat.store-JxTqY8hH.js +1 -0
- package/web/assets/cloud-session-BsgS9t9u.js +1 -0
- package/web/assets/column-C1iIQeFS.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-9f4DSNLj.js → computer-device-desktop-monitor.svg-pZKLXVEO.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-BYoXiEOE.js → computer-device-desktop.svg-CPuJoG2N.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-DR1sEMdL.js → computer-device-laptop.svg-B2lqbpvX.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-B-AOaBuq.js → computer-device-mobile-phone-android-samsung-back.svg-C91mPbw_.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-Dw4z_H5H.js → computer-device-mobile-phone-android-samsung.svg-CgjjMhRB.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-BtqMb2Wo.js → computer-device-mobile-phone-iphone-x-back.svg-DdpW-odT.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-eYEM_VXA.js → computer-device-mobile-phone-iphone-x.svg-B_qWFdEx.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-jLD41nvm.js → computer-device-mobile-tablet-touch.svg-BzehkLNH.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-D_7_M1GK.js → computer-device-mobile-tablet.svg-rkDIg0TG.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-B_527QGY.js → computer-device-network-ethernet-cat6.svg-B-d_wrR_.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-ClZIaUOH.js → computer-device-network-lan-www.svg-TIELALfm.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-DC4OCJY0.js → computer-device-network-wifi-connection.svg-DbXW3PhA.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-BWPpobCc.js → computer-device-network-wifi-router.svg-D_35yOXc.js} +1 -1
- package/web/assets/{cssMode-CXUrkdrQ.js → cssMode-B7e_eNPV.js} +1 -1
- package/web/assets/{divider-BrO5nkpd.js → divider-BHKktSGp.js} +2 -2
- package/web/assets/{docx-preview-tE714WSD.js → docx-preview-DlxCg_6l.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-o8D0ASmr.js → ecology-science-erlenmeyer-flask.svg-Dl6fsl4J.js} +1 -1
- package/web/assets/{fieldset-LX5cdTvN.js → fieldset-De5JS2HC.js} +2 -2
- package/web/assets/{freemarker2-DJ82s0fP.js → freemarker2-BZ1pmGPV.js} +1 -1
- package/web/assets/{handlebars-BXFlY2Lu.js → handlebars-DQnFd9h7.js} +1 -1
- package/web/assets/{html-CqDVypOC.js → html-C0efjIn9.js} +1 -1
- package/web/assets/{htmlMode-DrHxdTQP.js → htmlMode-ChFMbKcf.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-BDPMOynq.js → image-flash-lightning.svg-B7e5E2Qw.js} +1 -1
- package/web/assets/{image-picture-flower.svg-D-AJaery.js → image-picture-flower.svg-Cw1CZ_Iv.js} +1 -1
- package/web/assets/{index-CICxLkjp.css → index-B___lI4D.css} +1 -1
- package/web/assets/{index-a6DAapTb.js → index-nY5cynKj.js} +238 -238
- package/web/assets/{interface-alert-exclamation-diamond.svg-CV7M0IVQ.js → interface-alert-exclamation-diamond.svg-BSUXkUin.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-B8NapiB7.js → interface-alert-exclamation-triangle-warning.svg-BYqq_OZy.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-eQIFULjG.js → interface-alert-information-circle.svg-BhCupwNF.js} +1 -1
- package/web/assets/{interface-award-crown.svg-D-4fclUD.js → interface-award-crown.svg-BSbmsgu7.js} +1 -1
- package/web/assets/{interface-bookmark.svg-XdbYDqqk.js → interface-bookmark-tag.svg-C9Tj2VKg.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-Jy6EOdau.js → interface-bookmark.svg-DImT79em.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-BIoXVZrz.js → interface-calendar-date-one.svg-emGvRYfy.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-DHwJbBvQ.js → interface-content-book-open-pages.svg-DZvD8n9A.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-47msUBN_.js → interface-content-book-page.svg--RPY0ONx.js} +1 -1
- package/web/assets/{interface-content-file.svg-DXw9W8QM.js → interface-content-file.svg-BhkPpAIG.js} +1 -1
- package/web/assets/interface-content-folder.svg-DNkHJfTi.js +1 -0
- package/web/assets/{interface-content-folder.svg-BmK_IJv8.js → interface-content-folder.svg-_Qz96t7R.js} +1 -1
- package/web/assets/{interface-copy-clipboard.svg-CQ1rQN0L.js → interface-copy-clipboard.svg-DBVvMdKB.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-C3aTaTh_.js → interface-edit-attachment.svg-Bq9IjtmQ.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-B2Ue_tgs.js → interface-edit-binocular.svg-BFUljAkg.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-DDKse-Wy.js → interface-edit-magic-wand.svg-DSWYEf6V.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-C2ABby1f.js → interface-edit-tool-paint-roller.svg-iMYCD-Af.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-CNjYbknQ.js → interface-edit-tool-pencil.svg-D7jUKckt.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-DWqSHfIa.js → interface-favorite-award.svg-CLCdfKlW.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-CNUsr98g.js → interface-favorite-flag.svg-CMNediEx.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-3Eb366FO.js → interface-favorite-heart.svg-9AfGidiX.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-CVJ3aq1n.js → interface-favorite-star.svg-DD76FDcq.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-BfXhPBbs.js → interface-favorite-stars-sparkles.svg-DZmc8XpZ.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-DzsqKrYq.js → interface-hierarchy-flowchart.svg-DbdQ6BrN.js} +1 -1
- package/web/assets/{interface-home-house.svg-BnXbuyZn.js → interface-home-house.svg-BIWYFqhm.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BsmSmyP5.js → interface-hyperlink.svg-CknF1YxB.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-BywVQRo9.js → interface-lighting-brightness.svg-B3Svsmp0.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-BLPORc_h.js → interface-lock-closed.svg-CTmwhMsF.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-CaYlbVmU.js → interface-lock-open-unlock.svg-BSC0HJE5.js} +1 -1
- package/web/assets/{interface-login-key.svg-D5F_9MJ0.js → interface-login-key.svg-CmPadurO.js} +1 -1
- package/web/assets/{interface-search.svg-CF1D8GIV.js → interface-search.svg-BbWqGsiC.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-D4AOKG2g.js → interface-setting-cog.svg-D336jNxR.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-BIfr2_va.js → interface-share-megaphone-bullhorn.svg-BEPIq-yB.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-NDd3dv1t.js → interface-share-rocket.svg-bi0Fp7B7.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CVDJbmT-.js → interface-share-satellite.svg-DZ-FBSOP.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-D0ZLJNO2.js → interface-share-space-ship.svg-CL8kfexn.js} +1 -1
- package/web/assets/{interface-share.svg-WpwbpOes.js → interface-share.svg-B4NzC8MW.js} +1 -1
- package/web/assets/{interface-signal-square.svg-DnfzUw_B.js → interface-signal-square.svg-Do9HNC1g.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-BhxciNvX.js → interface-time-clock-circle.svg-BiwVEBFE.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-DBzSaSHQ.js → interface-time-hour-glass.svg-Bj4400VR.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-BULh1giq.js → interface-users-multiple.svg-wf0xHt7S.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-D377V2os.js → interface-weather-moon.svg-CHq44y1K.js} +1 -1
- package/web/assets/{javascript-BTXoJ3Qy.js → javascript-C5gAX9Ho.js} +1 -1
- package/web/assets/{jsonMode-D4a3Khim.js → jsonMode-Cah11eZC.js} +2 -2
- package/web/assets/{liquid-DfO0R4Mk.js → liquid-CS5lfWiD.js} +1 -1
- package/web/assets/{lspLanguageFeatures-BvPWuQFt.js → lspLanguageFeatures-DrQCZerv.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-SK3IJ6QN.js → mail-chat-bubble-square.svg-Bn4lLCAH.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-CJFA7B2E.js → mail-send-email-paper-airplane.svg-0dbuhy9s.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-eO_-QNyE.js → mail-send-envelope.svg-D7MrBGJp.js} +1 -1
- package/web/assets/{mdx-G_vwFSSe.js → mdx-B4jzso3k.js} +1 -1
- package/web/assets/{message-CxPw04rG.js → message-DnHiYCym.js} +2 -2
- package/web/assets/{minus-Dp5ez1-1.js → minus-BbLiFqfk.js} +2 -2
- package/web/assets/modal-BVB2xBJ_.js +1 -0
- package/web/assets/modal-dKcYqKht.js +5 -0
- package/web/assets/{money-cashier-receipt.svg-EutWthy8.js → money-cashier-receipt.svg-C3G7AK7q.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-MnLj-orw.js → money-currency-dollar-pay.svg-DCj0-yon.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-CVCZ3TyJ.js → money-graph-arrow-increase.svg-DxdQlcuf.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-DiUmCuhj.js → money-graph-bar-chart-increase.svg-Cm-WIBNr.js} +1 -1
- package/web/assets/multiselect-C8IBJ6lu.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-ByaLs72Y.js → nature-ecology-leaf.svg-BDz3LTpd.js} +1 -1
- package/web/assets/{password-CxtOqagM.js → password-DEuFV3TX.js} +4 -4
- package/web/assets/{phone-telephone.svg-BKz6Jkwn.js → phone-telephone.svg-DRL7_jEB.js} +1 -1
- package/web/assets/{plus-BPT_7GGk.js → plus-CdxO2Yq9.js} +6 -6
- package/web/assets/process.store-CauAk_PY.js +1 -0
- package/web/assets/{programming-bug.svg-BwSc8f0s.js → programming-bug.svg-BDftmfZl.js} +1 -1
- package/web/assets/{programming-cloud.svg-CEIulNEp.js → programming-cloud.svg-i-GCH3f4.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-Bc_F3NH0.js → programming-computer-database-server.svg-CC2MM4RA.js} +1 -1
- package/web/assets/{programming-computer-database.svg-AYLkzJJE.js → programming-computer-database.svg-CwD3IE7b.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-DLpzPxNB.js → programming-module-four-layout.svg-L5WQW7eZ.js} +1 -1
- package/web/assets/{programming-module-three.svg-CcuZn8dz.js → programming-module-three.svg-BqKxUh2a.js} +1 -1
- package/web/assets/{programming-module.svg-BjbGpQeu.js → programming-module.svg-B5HGxk_5.js} +1 -1
- package/web/assets/{programming-script-code.svg-poyfodgC.js → programming-script-code.svg-C6b1t67U.js} +1 -1
- package/web/assets/{python-DpMMlrWM.js → python-PWdcATjU.js} +1 -1
- package/web/assets/{razor-Ba_mg6U5.js → razor-D2OFUF9W.js} +1 -1
- package/web/assets/router-WC51nlcm.js +1 -0
- package/web/assets/settings-scope-CIL2r-x6.js +1 -0
- package/web/assets/settings.store-Cx63DJSu.js +1 -0
- package/web/assets/{shopping-cart.svg-BX2KYVCw.js → shopping-cart.svg-C4eUOPuW.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-BOl2vYLg.js → shopping-gift-present.svg-DWR1Ue0b.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-gxfbOgnM.js → shopping-shipping-box-parcel-package.svg-vIUMJCzM.js} +1 -1
- package/web/assets/src-CG6NRFnq.js +1 -0
- package/web/assets/{src-D0LXRijj.js → src-D3B9QT3f.js} +34 -34
- package/web/assets/tabpanel-Dt8wxAUn.js +150 -0
- package/web/assets/{tag-new-circle.svg-CTRMBJyc.js → tag-new-circle.svg-CrLYLp-g.js} +1 -1
- package/web/assets/{toggleswitch-DcDrXRKn.js → toggleswitch-DXNKoD3W.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-BPp4IapC.js → travel-map-earth-globe.svg-CbJkEfGx.js} +1 -1
- package/web/assets/trpc-BTkvhuSo.js +1 -0
- package/web/assets/{tsMode-HfLOT-e5.js → tsMode-BWnOhIDG.js} +6 -6
- package/web/assets/{typescript-DJAEsDnw.js → typescript-Ca6d0Xpt.js} +1 -1
- package/web/assets/useAiChatDrawer-DbiVGX1A.js +1 -0
- package/web/assets/useCloudOrg-CYZgY69j.css +1 -0
- package/web/assets/useCloudOrg-JI0t8ZfS.js +97 -0
- package/web/assets/{useProjectCatalog-C95cDPIr.js → useProjectCatalog-T9HoUKsV.js} +1 -1
- package/web/assets/{xml-1frg7aol.js → xml-DJnU4yP8.js} +1 -1
- package/web/assets/{yaml-DXzDcMOS.js → yaml-DJC6BhFp.js} +1 -1
- package/web/index.html +2 -2
- package/agent-manager-UUSQK6S2.js +0 -7
- package/chunk-Z3KAXI7V.js.map +0 -1
- package/src-Q3PSCMS7.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-Cin_Rbay.js +0 -13
- package/web/assets/AgentTerminalPage-YgCQj_Mj.js +0 -1
- package/web/assets/AiChatPage-cIE_ZdF6.js +0 -1
- package/web/assets/AppLayout-dYfSESzv.js +0 -1
- package/web/assets/AuditPage-Bw3-G8ZM.js +0 -1
- package/web/assets/CloudAccountPage-CA4dMsIm.js +0 -1
- package/web/assets/CloudAccountPage-DjljrEI_.js +0 -1
- package/web/assets/CloudMessagingPage-CbfH2vPo.js +0 -2
- package/web/assets/DashboardPage-Cn3bUyhR.js +0 -1
- package/web/assets/DirectoryPickerDialog-BmsAi5gR.js +0 -1
- package/web/assets/EnvironmentForm-BfF9IFRB.js +0 -108
- package/web/assets/EnvironmentFormPage-CebWv3I_.js +0 -1
- package/web/assets/EnvironmentListPage-DDJGOHvR.js +0 -1
- package/web/assets/KanbanBoardPage-BMXyvHOl.js +0 -4
- package/web/assets/KanbanBoardPage-JjjS4BfO.css +0 -1
- package/web/assets/KanbanListPage-YMm_7vzg.js +0 -1
- package/web/assets/LaunchProjectPage--S6EXtGb.css +0 -1
- package/web/assets/LaunchProjectPage-Da21oFjw.js +0 -1
- package/web/assets/LaunchServicesPage-8YJT1stQ.js +0 -1
- package/web/assets/LaunchServicesPage-pWREsZTD.css +0 -1
- package/web/assets/LogViewer-BYNRWqlP.js +0 -3
- package/web/assets/OrgKeyPrompt-De8D0zzy.js +0 -1
- package/web/assets/ProcessDetailPage-CVwMbU6x.js +0 -1
- package/web/assets/ProjectDetailPage-BjBN3hnN.js +0 -1
- package/web/assets/ProjectListPage-BRXKT6op.js +0 -1
- package/web/assets/RandomJobTestPage-dhDNam5v.js +0 -2
- package/web/assets/ScenarioEditorPage-yOp4ZF14.js +0 -14
- package/web/assets/SendToChatDialog-o4y1Q-OD.js +0 -1
- package/web/assets/ServiceControlsBar-BH1ZEFkK.js +0 -1
- package/web/assets/ServiceDetailPage-CFb0blqq.js +0 -2
- package/web/assets/ServiceFormPage-DzFQ_M1-.js +0 -1
- package/web/assets/SettingsPage-Bcs3tnUy.js +0 -2063
- package/web/assets/UnlockPage-BAxKs_K9.js +0 -1
- package/web/assets/UnlockPage-DE_HJy8h.css +0 -1
- package/web/assets/VariablesTable-CSuAPeF-.js +0 -1
- package/web/assets/VaultMigrationPage-BGJ2PP-7.css +0 -1
- package/web/assets/VaultMigrationPage-BJX9kunL.js +0 -1
- package/web/assets/VersionBadge-B9Wvyvf6.js +0 -1
- package/web/assets/WikiPage-CBZFOPL_.js +0 -1
- package/web/assets/WikiView-DxPrGyFy.js +0 -1
- package/web/assets/add-scalar-classes-vtTXFTZ6.js +0 -387
- package/web/assets/auth-errors-DpUvxKid.js +0 -1
- package/web/assets/autocomplete-BakcEoGP.js +0 -308
- package/web/assets/card-DcpoBJHQ.js +0 -32
- package/web/assets/client-CKBKBNVm.js +0 -24
- package/web/assets/cloud-chat.store-Ci1DBP5j.js +0 -1
- package/web/assets/cloud-session-CzYQ65k8.js +0 -1
- package/web/assets/column-CVuKYYbZ.js +0 -907
- package/web/assets/interface-content-folder.svg-BikaY449.js +0 -1
- package/web/assets/modal-CGT4d1lM.js +0 -5
- package/web/assets/modal-D_N6NaGL.js +0 -1
- package/web/assets/multiselect-C6uayHqj.js +0 -251
- package/web/assets/process.store-CMxuFjFg.js +0 -1
- package/web/assets/router-QZ5Z8Lh7.js +0 -1
- package/web/assets/settings-scope-D7umae8c.js +0 -1
- package/web/assets/settings.store-Dte8TdJb.js +0 -1
- package/web/assets/src-DWvNj-EG.js +0 -1
- package/web/assets/tabpanel-Bkt-f7d6.js +0 -150
- package/web/assets/trpc-Dtgb4BMw.js +0 -1
- package/web/assets/useAiChatDrawer-fzyQ-fyM.js +0 -1
- package/web/assets/useCloudOrg-BdpqnN19.css +0 -1
- package/web/assets/useCloudOrg-Bg7-icbW.js +0 -97
- /package/{agent-manager-UUSQK6S2.js.map → agent-manager-LBV3CVHB.js.map} +0 -0
- /package/web/assets/{uuid-CXjA27vZ.js → uuid-FpfcaBnR.js} +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ../server/src/services/agent-manager.ts
|
|
2
2
|
import { EventEmitter as EventEmitter2 } from "events";
|
|
3
3
|
import WebSocket2 from "ws";
|
|
4
|
-
import { z as
|
|
4
|
+
import { z as z23 } from "zod";
|
|
5
5
|
|
|
6
6
|
// ../server/src/services/agent-store.ts
|
|
7
7
|
import { randomUUID, randomBytes, createCipheriv, createDecipheriv } from "crypto";
|
|
@@ -1758,6 +1758,54 @@ var KanbanCardRefSchema = z20.object({
|
|
|
1758
1758
|
commentCount: z20.number().int().nonnegative().default(0)
|
|
1759
1759
|
});
|
|
1760
1760
|
|
|
1761
|
+
// ../../packages/shared/src/schemas/cloud-api-key.schema.ts
|
|
1762
|
+
import { z as z21 } from "zod";
|
|
1763
|
+
var CloudApiScopeSchema = z21.enum([
|
|
1764
|
+
"kanban:read",
|
|
1765
|
+
"kanban:write",
|
|
1766
|
+
"kanban:comment",
|
|
1767
|
+
"kanban:delete"
|
|
1768
|
+
]);
|
|
1769
|
+
var CloudApiKeySecretSchema = z21.string().regex(/^rk_[0-9a-f]{64}$/);
|
|
1770
|
+
var CloudApiKeySchema = z21.object({
|
|
1771
|
+
id: z21.string().max(128),
|
|
1772
|
+
organizationId: z21.string().max(128),
|
|
1773
|
+
name: z21.string().min(1).max(200),
|
|
1774
|
+
scopes: z21.array(CloudApiScopeSchema).min(1).max(10),
|
|
1775
|
+
/**
|
|
1776
|
+
* Les tableaux que la clé peut atteindre, ou `null` pour « tous ceux de
|
|
1777
|
+
* l'organisation ».
|
|
1778
|
+
*
|
|
1779
|
+
* `null` et `[]` ne sont pas la même chose : la liste vide n'ouvre rien, et
|
|
1780
|
+
* c'est délibéré — un tableau supprimé ne doit pas élargir une clé qui ne le
|
|
1781
|
+
* nommait plus que lui.
|
|
1782
|
+
*/
|
|
1783
|
+
boards: z21.array(z21.string().max(64)).max(200).nullable(),
|
|
1784
|
+
createdAt: z21.string().max(64),
|
|
1785
|
+
/** Dernier usage constaté, pour reconnaître une clé oubliée. */
|
|
1786
|
+
lastUsedAt: z21.string().max(64).nullable(),
|
|
1787
|
+
/** Qui l'a émise — une clé sans visage ne se révoque jamais sereinement. */
|
|
1788
|
+
createdBy: z21.object({ id: z21.string().max(128), name: z21.string().max(200) }),
|
|
1789
|
+
/** Les 4 derniers caractères du secret, pour reconnaître une clé dans une liste. */
|
|
1790
|
+
keyPreview: z21.string().max(8)
|
|
1791
|
+
});
|
|
1792
|
+
var CreatedCloudApiKeySchema = z21.object({
|
|
1793
|
+
key: CloudApiKeySchema,
|
|
1794
|
+
secret: CloudApiKeySecretSchema
|
|
1795
|
+
});
|
|
1796
|
+
var CreateCloudApiKeyInput = z21.object({
|
|
1797
|
+
organizationId: z21.string().min(1).max(128),
|
|
1798
|
+
name: z21.string().min(1).max(200),
|
|
1799
|
+
scopes: z21.array(CloudApiScopeSchema).min(1).max(10),
|
|
1800
|
+
boards: z21.array(z21.string().max(64)).max(200).nullable().default(null)
|
|
1801
|
+
});
|
|
1802
|
+
var UpdateCloudApiKeyInput = z21.object({
|
|
1803
|
+
id: z21.string().min(1).max(128),
|
|
1804
|
+
name: z21.string().min(1).max(200).optional(),
|
|
1805
|
+
scopes: z21.array(CloudApiScopeSchema).min(1).max(10).optional(),
|
|
1806
|
+
boards: z21.array(z21.string().max(64)).max(200).nullable().optional()
|
|
1807
|
+
});
|
|
1808
|
+
|
|
1761
1809
|
// ../../packages/shared/src/utils/crypto.ts
|
|
1762
1810
|
import { createCipheriv as createCipheriv3, createDecipheriv as createDecipheriv3, randomBytes as randomBytes3, pbkdf2Sync } from "crypto";
|
|
1763
1811
|
|
|
@@ -3092,7 +3140,7 @@ var ServiceStore = class {
|
|
|
3092
3140
|
var serviceStore = new ServiceStore();
|
|
3093
3141
|
|
|
3094
3142
|
// ../server/src/services/agent-spawner.ts
|
|
3095
|
-
import { spawn } from "child_process";
|
|
3143
|
+
import { spawn as spawn2 } from "child_process";
|
|
3096
3144
|
import { createInterface } from "readline";
|
|
3097
3145
|
import { watch } from "fs";
|
|
3098
3146
|
import { dirname as dirname2, join as join6 } from "path";
|
|
@@ -3100,10 +3148,13 @@ import { fileURLToPath } from "url";
|
|
|
3100
3148
|
|
|
3101
3149
|
// ../server/src/services/instance-registry.ts
|
|
3102
3150
|
import { mkdir as mkdir5, readdir as readdir2, readFile as readFile5, writeFile as writeFile5, rm as rm3 } from "fs/promises";
|
|
3151
|
+
import { readFileSync } from "fs";
|
|
3152
|
+
import dotenv from "dotenv";
|
|
3153
|
+
import { spawn } from "child_process";
|
|
3103
3154
|
import { join as join5 } from "path";
|
|
3104
|
-
import { z as
|
|
3105
|
-
var InstanceFileSchema =
|
|
3106
|
-
pid:
|
|
3155
|
+
import { z as z22 } from "zod";
|
|
3156
|
+
var InstanceFileSchema = z22.object({
|
|
3157
|
+
pid: z22.number().int().positive(),
|
|
3107
3158
|
/**
|
|
3108
3159
|
* The agent this server spawned, when it has one.
|
|
3109
3160
|
*
|
|
@@ -3111,14 +3162,37 @@ var InstanceFileSchema = z21.object({
|
|
|
3111
3162
|
* it, and because the agent may not be up yet — or at all, when the
|
|
3112
3163
|
* encryption key is missing. Absent means « unknown », never « none ».
|
|
3113
3164
|
*/
|
|
3114
|
-
agentPid:
|
|
3115
|
-
port:
|
|
3116
|
-
agentPort:
|
|
3117
|
-
cwd:
|
|
3118
|
-
dataDir:
|
|
3119
|
-
version:
|
|
3120
|
-
fromDesktop:
|
|
3121
|
-
startedAt:
|
|
3165
|
+
agentPid: z22.number().int().positive().optional(),
|
|
3166
|
+
port: z22.number().int().min(1).max(65535),
|
|
3167
|
+
agentPort: z22.number().int().min(1).max(65535),
|
|
3168
|
+
cwd: z22.string().max(4096),
|
|
3169
|
+
dataDir: z22.string().max(4096),
|
|
3170
|
+
version: z22.string().max(64),
|
|
3171
|
+
fromDesktop: z22.boolean(),
|
|
3172
|
+
startedAt: z22.number().int().nonnegative(),
|
|
3173
|
+
/**
|
|
3174
|
+
* De quoi relancer ce lancement à l'identique : l'exécutable, ses arguments,
|
|
3175
|
+
* et les `RUNEYA_*` de son environnement. Le `cwd` ci-dessus complète le
|
|
3176
|
+
* tableau.
|
|
3177
|
+
*
|
|
3178
|
+
* Optionnels, comme `agentPid` : une instance antérieure à ce champ ne les
|
|
3179
|
+
* écrit pas. Elle reste listée et arrêtable, simplement pas redémarrable —
|
|
3180
|
+
* un redémarrage approximatif serait pire qu'un bouton absent.
|
|
3181
|
+
*/
|
|
3182
|
+
execPath: z22.string().max(4096).optional(),
|
|
3183
|
+
argv: z22.array(z22.string().max(4096)).max(128).optional(),
|
|
3184
|
+
env: z22.record(z22.string().max(64), z22.string().max(4096)).optional(),
|
|
3185
|
+
/**
|
|
3186
|
+
* L'instance tient un secret (`RUNEYA_ENCRYPTION_KEY`,
|
|
3187
|
+
* `RUNEYA_MASTER_PASSWORD`) que le relancement ne retrouverait pas. Le
|
|
3188
|
+
* drapeau, jamais la valeur : le registre est un fichier lisible, et ces
|
|
3189
|
+
* deux-là n'ont délibérément pas de flag CLI parce qu'`argv` se lit dans
|
|
3190
|
+
* `ps`.
|
|
3191
|
+
*
|
|
3192
|
+
* Un secret posé dans le `.env` de la pile ne compte pas : `dotenv` le relit
|
|
3193
|
+
* au démarrage depuis le même répertoire. Voir `secretsAreReproducible()`.
|
|
3194
|
+
*/
|
|
3195
|
+
needsSecretEnv: z22.boolean().optional()
|
|
3122
3196
|
});
|
|
3123
3197
|
function registryDir() {
|
|
3124
3198
|
return join5(machineRoot(), "instances");
|
|
@@ -3127,6 +3201,29 @@ function fileFor(pid) {
|
|
|
3127
3201
|
return join5(registryDir(), `${pid}.json`);
|
|
3128
3202
|
}
|
|
3129
3203
|
var published = null;
|
|
3204
|
+
var SECRET_ENV_KEYS = ["RUNEYA_ENCRYPTION_KEY", "RUNEYA_MASTER_PASSWORD"];
|
|
3205
|
+
function isSecretEnvKey(key) {
|
|
3206
|
+
return SECRET_ENV_KEYS.includes(key);
|
|
3207
|
+
}
|
|
3208
|
+
function runeyaEnv() {
|
|
3209
|
+
const out = {};
|
|
3210
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
3211
|
+
if (!key.startsWith("RUNEYA_") || isSecretEnvKey(key)) continue;
|
|
3212
|
+
if (typeof value === "string" && value.length <= 4096) out[key] = value;
|
|
3213
|
+
}
|
|
3214
|
+
return out;
|
|
3215
|
+
}
|
|
3216
|
+
function secretsAreReproducible() {
|
|
3217
|
+
const present = SECRET_ENV_KEYS.filter((key) => Boolean(process.env[key]));
|
|
3218
|
+
if (present.length === 0) return true;
|
|
3219
|
+
let fromFile;
|
|
3220
|
+
try {
|
|
3221
|
+
fromFile = dotenv.parse(readFileSync(join5(process.cwd(), ".env")));
|
|
3222
|
+
} catch {
|
|
3223
|
+
return false;
|
|
3224
|
+
}
|
|
3225
|
+
return present.every((key) => fromFile[key] === process.env[key]);
|
|
3226
|
+
}
|
|
3130
3227
|
function selfRecord() {
|
|
3131
3228
|
return {
|
|
3132
3229
|
pid: process.pid,
|
|
@@ -3136,7 +3233,13 @@ function selfRecord() {
|
|
|
3136
3233
|
dataDir: env.DATA_DIR,
|
|
3137
3234
|
version: process.env["RUNEYA_VERSION"] ?? "unknown",
|
|
3138
3235
|
fromDesktop: env.FROM_DESKTOP,
|
|
3139
|
-
startedAt: Date.now()
|
|
3236
|
+
startedAt: Date.now(),
|
|
3237
|
+
execPath: process.execPath,
|
|
3238
|
+
// argv[0] est l'exécutable, déjà repris par `execPath` ; le reste est le
|
|
3239
|
+
// script suivi de ses arguments, c'est-à-dire ce qu'il faut repasser à spawn.
|
|
3240
|
+
argv: process.argv.slice(1),
|
|
3241
|
+
env: runeyaEnv(),
|
|
3242
|
+
needsSecretEnv: !secretsAreReproducible()
|
|
3140
3243
|
};
|
|
3141
3244
|
}
|
|
3142
3245
|
async function registerInstance() {
|
|
@@ -3214,14 +3317,18 @@ async function listInstances() {
|
|
|
3214
3317
|
});
|
|
3215
3318
|
return null;
|
|
3216
3319
|
}
|
|
3320
|
+
const current = record.pid === process.pid;
|
|
3321
|
+
const blocker = restartBlockerFor(record);
|
|
3217
3322
|
return {
|
|
3218
3323
|
...record,
|
|
3219
3324
|
// Trust the live answer over the file: the file was written at boot
|
|
3220
3325
|
// and an upgraded instance would keep claiming its old version.
|
|
3221
3326
|
version: version ?? record.version,
|
|
3222
3327
|
reachable: true,
|
|
3223
|
-
current
|
|
3224
|
-
uptimeMs
|
|
3328
|
+
current,
|
|
3329
|
+
uptimeMs,
|
|
3330
|
+
restartable: blocker === null,
|
|
3331
|
+
restartBlockedBy: blocker
|
|
3225
3332
|
};
|
|
3226
3333
|
})
|
|
3227
3334
|
);
|
|
@@ -3237,6 +3344,11 @@ function dedupeByPort(instances) {
|
|
|
3237
3344
|
}
|
|
3238
3345
|
return [...byPort.values()];
|
|
3239
3346
|
}
|
|
3347
|
+
function restartBlockerFor(record) {
|
|
3348
|
+
if (record.needsSecretEnv) return "secrets";
|
|
3349
|
+
if (!record.execPath || !record.argv) return "legacy";
|
|
3350
|
+
return null;
|
|
3351
|
+
}
|
|
3240
3352
|
var GRACE_MS = 5e3;
|
|
3241
3353
|
var POLL_MS = 100;
|
|
3242
3354
|
async function terminate(pid) {
|
|
@@ -3274,6 +3386,103 @@ async function killInstance(pid) {
|
|
|
3274
3386
|
}
|
|
3275
3387
|
return { agent, server };
|
|
3276
3388
|
}
|
|
3389
|
+
function launchOf(record) {
|
|
3390
|
+
if (!record.execPath || !record.argv) throw new Error("instance-not-restartable:legacy");
|
|
3391
|
+
const env2 = {};
|
|
3392
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
3393
|
+
if (typeof value === "string" && !key.startsWith("RUNEYA_")) env2[key] = value;
|
|
3394
|
+
}
|
|
3395
|
+
return {
|
|
3396
|
+
execPath: record.execPath,
|
|
3397
|
+
argv: record.argv,
|
|
3398
|
+
cwd: record.cwd,
|
|
3399
|
+
env: { ...env2, ...record.env ?? {} }
|
|
3400
|
+
};
|
|
3401
|
+
}
|
|
3402
|
+
var PORT_RELEASE_TIMEOUT_MS = 15e3;
|
|
3403
|
+
async function waitForPortRelease(port) {
|
|
3404
|
+
const deadline = Date.now() + PORT_RELEASE_TIMEOUT_MS;
|
|
3405
|
+
while (Date.now() < deadline) {
|
|
3406
|
+
const { ok } = await probe(port);
|
|
3407
|
+
if (!ok) return true;
|
|
3408
|
+
await new Promise((resolve) => setTimeout(resolve, POLL_MS));
|
|
3409
|
+
}
|
|
3410
|
+
return false;
|
|
3411
|
+
}
|
|
3412
|
+
async function restartInstance(pid) {
|
|
3413
|
+
const target = (await listInstances()).find((i) => i.pid === pid);
|
|
3414
|
+
if (!target) throw new Error("instance-not-found");
|
|
3415
|
+
if (target.restartBlockedBy) throw new Error(`instance-not-restartable:${target.restartBlockedBy}`);
|
|
3416
|
+
if (target.current) throw new Error("instance-is-current");
|
|
3417
|
+
const stop = await killInstance(pid);
|
|
3418
|
+
if (stop.server !== "terminated" && stop.server !== "killed") {
|
|
3419
|
+
throw new Error(`instance-stop-${stop.server}`);
|
|
3420
|
+
}
|
|
3421
|
+
const portReleased = await waitForPortRelease(target.port);
|
|
3422
|
+
const launch = launchOf(target);
|
|
3423
|
+
const child = spawn(launch.execPath, launch.argv, {
|
|
3424
|
+
cwd: launch.cwd,
|
|
3425
|
+
env: launch.env,
|
|
3426
|
+
detached: true,
|
|
3427
|
+
stdio: "ignore"
|
|
3428
|
+
});
|
|
3429
|
+
child.on("error", (err) => {
|
|
3430
|
+
console.log(`[instances] Relance du pid ${pid} impossible :`, err.message);
|
|
3431
|
+
});
|
|
3432
|
+
child.unref();
|
|
3433
|
+
if (typeof child.pid !== "number") throw new Error("instance-restart-failed");
|
|
3434
|
+
return { stop, pid: child.pid, portReleased };
|
|
3435
|
+
}
|
|
3436
|
+
var RELAUNCHER = `
|
|
3437
|
+
const p = JSON.parse(process.env.RUNEYA_RELAUNCH_PAYLOAD);
|
|
3438
|
+
const deadline = Date.now() + p.timeoutMs;
|
|
3439
|
+
const held = async () => {
|
|
3440
|
+
try {
|
|
3441
|
+
const res = await fetch('http://127.0.0.1:' + p.port + '/api/trpc/health.check', {
|
|
3442
|
+
signal: AbortSignal.timeout(500),
|
|
3443
|
+
});
|
|
3444
|
+
return res.ok;
|
|
3445
|
+
} catch { return false; }
|
|
3446
|
+
};
|
|
3447
|
+
(async () => {
|
|
3448
|
+
while (Date.now() < deadline && await held()) {
|
|
3449
|
+
await new Promise((r) => setTimeout(r, ${POLL_MS}));
|
|
3450
|
+
}
|
|
3451
|
+
require('node:child_process')
|
|
3452
|
+
.spawn(p.execPath, p.argv, { cwd: p.cwd, env: p.env, detached: true, stdio: 'ignore' })
|
|
3453
|
+
.unref();
|
|
3454
|
+
})();
|
|
3455
|
+
`;
|
|
3456
|
+
var SELF_RESTART_DELAY_MS = 250;
|
|
3457
|
+
function spawnRelauncher(record) {
|
|
3458
|
+
const blocker = restartBlockerFor(record);
|
|
3459
|
+
if (blocker) throw new Error(`instance-not-restartable:${blocker}`);
|
|
3460
|
+
const launch = launchOf(record);
|
|
3461
|
+
const relauncher = spawn(process.execPath, ["-e", RELAUNCHER], {
|
|
3462
|
+
cwd: launch.cwd,
|
|
3463
|
+
env: {
|
|
3464
|
+
...launch.env,
|
|
3465
|
+
RUNEYA_RELAUNCH_PAYLOAD: JSON.stringify({ ...launch, port: record.port, timeoutMs: PORT_RELEASE_TIMEOUT_MS })
|
|
3466
|
+
},
|
|
3467
|
+
detached: true,
|
|
3468
|
+
stdio: "ignore"
|
|
3469
|
+
});
|
|
3470
|
+
relauncher.on("error", (err) => {
|
|
3471
|
+
console.log("[instances] Relanceur impossible \xE0 lancer :", err.message);
|
|
3472
|
+
});
|
|
3473
|
+
relauncher.unref();
|
|
3474
|
+
if (typeof relauncher.pid !== "number") throw new Error("instance-restart-failed");
|
|
3475
|
+
return relauncher.pid;
|
|
3476
|
+
}
|
|
3477
|
+
async function scheduleSelfRestart() {
|
|
3478
|
+
const record = published ?? selfRecord();
|
|
3479
|
+
const relauncherPid = spawnRelauncher(record);
|
|
3480
|
+
setTimeout(() => {
|
|
3481
|
+
console.log("[instances] Red\xE9marrage demand\xE9 : arr\xEAt de cette instance.");
|
|
3482
|
+
process.kill(process.pid, "SIGTERM");
|
|
3483
|
+
}, SELF_RESTART_DELAY_MS);
|
|
3484
|
+
return { relauncherPid, port: record.port };
|
|
3485
|
+
}
|
|
3277
3486
|
|
|
3278
3487
|
// ../server/src/services/agent-spawner.ts
|
|
3279
3488
|
var POSIX_SAFE_KEYS = [
|
|
@@ -3392,7 +3601,7 @@ var AgentSpawner = class {
|
|
|
3392
3601
|
console.log(`[agent-spawner] Spawning local agent on ${agentUrl}...`);
|
|
3393
3602
|
const isDev = process.env.NODE_ENV === "development";
|
|
3394
3603
|
this.agentDistPath = env.AGENT_BINARY_PATH || join6(dirname2(fileURLToPath(import.meta.url)), "..", "..", "agent", "dist", "index.js");
|
|
3395
|
-
this.agentProcess =
|
|
3604
|
+
this.agentProcess = spawn2("node", [this.agentDistPath], {
|
|
3396
3605
|
env: agentEnv,
|
|
3397
3606
|
stdio: ["ignore", "pipe", "pipe"]
|
|
3398
3607
|
});
|
|
@@ -3529,7 +3738,7 @@ var AgentSpawner = class {
|
|
|
3529
3738
|
}
|
|
3530
3739
|
const agentUrl = `http://${env.RUNEYA_AGENT_HOST}:${env.RUNEYA_AGENT_PORT}`;
|
|
3531
3740
|
const isDev = process.env.NODE_ENV === "development";
|
|
3532
|
-
this.agentProcess =
|
|
3741
|
+
this.agentProcess = spawn2("node", [this.agentDistPath], {
|
|
3533
3742
|
env: agentEnv,
|
|
3534
3743
|
stdio: ["ignore", "pipe", "pipe"]
|
|
3535
3744
|
});
|
|
@@ -3805,13 +4014,13 @@ var AgentWSBridge = class extends EventEmitter {
|
|
|
3805
4014
|
};
|
|
3806
4015
|
|
|
3807
4016
|
// ../server/src/services/agent-manager.ts
|
|
3808
|
-
var HealthMessageSchema =
|
|
3809
|
-
status:
|
|
3810
|
-
uptime:
|
|
3811
|
-
runnersAvailable:
|
|
3812
|
-
processCount:
|
|
3813
|
-
runningCount:
|
|
3814
|
-
lanIp:
|
|
4017
|
+
var HealthMessageSchema = z23.object({
|
|
4018
|
+
status: z23.string(),
|
|
4019
|
+
uptime: z23.number(),
|
|
4020
|
+
runnersAvailable: z23.array(z23.enum(["native", "docker"])),
|
|
4021
|
+
processCount: z23.number(),
|
|
4022
|
+
runningCount: z23.number(),
|
|
4023
|
+
lanIp: z23.string().optional()
|
|
3815
4024
|
});
|
|
3816
4025
|
var MIN_RECONNECT_DELAY = WS_RECONNECT_MIN;
|
|
3817
4026
|
var MAX_RECONNECT_DELAY = WS_RECONNECT_MAX;
|
|
@@ -4197,9 +4406,9 @@ var AgentManager = class extends EventEmitter2 {
|
|
|
4197
4406
|
if (spawns.length > 0) {
|
|
4198
4407
|
const summary = spawns.map((s) => `${s.spawnId} (${s.cli}, ${s.status}, buf:${s.bufferLength})`).join(", ");
|
|
4199
4408
|
console.log("[agent-manager] Agent %s has %d AI spawn(s): %s", agentId, spawns.length, summary);
|
|
4200
|
-
for (const
|
|
4201
|
-
if (
|
|
4202
|
-
this.agentMutation(agentId, "ai.ack", { spawnId:
|
|
4409
|
+
for (const spawn3 of spawns) {
|
|
4410
|
+
if (spawn3.status !== "running") {
|
|
4411
|
+
this.agentMutation(agentId, "ai.ack", { spawnId: spawn3.spawnId }).catch(() => {
|
|
4203
4412
|
});
|
|
4204
4413
|
}
|
|
4205
4414
|
}
|
|
@@ -4369,8 +4578,10 @@ export {
|
|
|
4369
4578
|
unregisterInstance,
|
|
4370
4579
|
listInstances,
|
|
4371
4580
|
killInstance,
|
|
4581
|
+
restartInstance,
|
|
4582
|
+
scheduleSelfRestart,
|
|
4372
4583
|
agentSpawner,
|
|
4373
4584
|
traefikManager,
|
|
4374
4585
|
agentManager
|
|
4375
4586
|
};
|
|
4376
|
-
//# sourceMappingURL=chunk-
|
|
4587
|
+
//# sourceMappingURL=chunk-OTJQEK4D.js.map
|