@runeya/runeya 2.0.71 → 2.0.72
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 +203 -160
- package/agent/index.js.map +1 -1
- package/agent-manager-YDLSYZE3.js +7 -0
- package/{chunk-Z3KAXI7V.js → chunk-HPYBAUAH.js} +235 -29
- package/chunk-HPYBAUAH.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-53OQNM27.js} +850 -677
- package/src-53OQNM27.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-DdIfThmp.js +13 -0
- package/web/assets/AgentTerminalPage-v9fFc2Kd.js +1 -0
- package/web/assets/AiChatPage-BvrKlLxc.js +1 -0
- package/web/assets/AppLayout-CLzy-QOZ.js +1 -0
- package/web/assets/{AppLayout-BqXoW05V.css → AppLayout-Dj8VrBzz.css} +1 -1
- package/web/assets/AuditPage-DgJIcr0c.js +1 -0
- package/web/assets/CloudAccountPage-CoJV3YCA.js +1 -0
- package/web/assets/CloudAccountPage-DGtKCmXL.js +1 -0
- package/web/assets/CloudMessagingPage-Bql34zJU.js +2 -0
- package/web/assets/DashboardPage-BSvJxrcT.js +1 -0
- package/web/assets/DirectoryPickerDialog-BfLLfUQy.js +1 -0
- package/web/assets/{EditorIcon-JRryeySJ.js → EditorIcon-BbilRWLq.js} +2 -2
- package/web/assets/EnvironmentForm-BIHXK18r.js +108 -0
- package/web/assets/EnvironmentFormPage-oLAwLJ1b.js +1 -0
- package/web/assets/EnvironmentListPage-tJfB0q_E.js +1 -0
- package/web/assets/KanbanBoardPage-DpyYe6jx.js +4 -0
- package/web/assets/KanbanListPage-DjXWjWgU.js +1 -0
- package/web/assets/LaunchProjectPage-Bqgsa2z1.js +1 -0
- package/web/assets/LaunchProjectPage-BrmWhutG.css +1 -0
- package/web/assets/LaunchServicesPage-BCNDSuuN.js +1 -0
- package/web/assets/LaunchServicesPage-CMxUWoNQ.css +1 -0
- package/web/assets/LogViewer-gTNzyao0.js +3 -0
- package/web/assets/OrgKeyPrompt-BdNV_cve.js +1 -0
- package/web/assets/{ProcessControls-BPQXGKib.js → ProcessControls-BzMrd-2c.js} +1 -1
- package/web/assets/ProcessDetailPage-Rg5zyPYJ.js +1 -0
- package/web/assets/{ProcessMetrics-D7L708Em.js → ProcessMetrics-hZWAa3gi.js} +2 -2
- package/web/assets/ProjectDetailPage-NbxG6AIr.js +1 -0
- package/web/assets/ProjectListPage-COMYMVbr.js +1 -0
- package/web/assets/RandomJobTestPage-DTK2RLln.js +2 -0
- package/web/assets/ScenarioEditorPage-DIx_Nzbh.js +14 -0
- package/web/assets/SendToChatDialog-BAalryU3.js +1 -0
- package/web/assets/ServiceControlsBar-CgR8yFZb.js +1 -0
- package/web/assets/ServiceDetailPage-Cvqftndf.js +2 -0
- package/web/assets/ServiceFormPage-CGgCwNM3.js +1 -0
- package/web/assets/{SettingsPage-CScovMi5.css → SettingsPage-ClUsbLPy.css} +1 -1
- package/web/assets/SettingsPage-Dx5xoAS7.js +2063 -0
- package/web/assets/UnlockPage-BkqsC0ML.css +1 -0
- package/web/assets/UnlockPage-Dlp8kXD-.js +1 -0
- package/web/assets/VariablesTable-Dr1C6hg4.js +1 -0
- package/web/assets/VaultMigrationPage-1zZCTKgS.js +1 -0
- package/web/assets/VaultMigrationPage-B20L2W_w.css +1 -0
- package/web/assets/VersionBadge-BiLjqi8I.js +1 -0
- package/web/assets/WikiPage-B51w0xOX.js +1 -0
- package/web/assets/WikiView-CGQrkGH4.js +1 -0
- package/web/assets/add-scalar-classes-ChVyhgpT.js +387 -0
- package/web/assets/auth-errors-BdfA61wA.js +1 -0
- package/web/assets/autocomplete-wqj_ORBH.js +308 -0
- package/web/assets/{basic-shape-diamond.svg-C8K6YjGj.js → basic-shape-diamond.svg-CWwnQ30s.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-C9PeXR6S.js → basic-shape-hexagon.svg-C9JMDUIK.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CfBLN6Yj.js → basic-shape-primary-circle-ellipse-round.svg-Do0Ewbp-.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-D2QPBP5_.js → basic-shape-primary-square-rectangle.svg-CRq767cD.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-ClsEFdja.js → basic-shape-shield.svg-BuxJBs70.js} +1 -1
- package/web/assets/{browser-CF5_9QqR.js → browser-BEEW2obM.js} +1 -1
- package/web/assets/{browser-D7ZckEFz.js → browser-BhZAIVa8.js} +1 -1
- package/web/assets/card-C1iS2wAN.js +32 -0
- package/web/assets/{checkbox-CfwNXlF_.js → checkbox-CCU9xze9.js} +3 -3
- package/web/assets/{chip-3tOoBrD7.js → chip-DsJBorBp.js} +2 -2
- package/web/assets/client-BFK39Zab.js +24 -0
- package/web/assets/cloud-chat.store-D39vo5xT.js +1 -0
- package/web/assets/cloud-session-B7G8xhKC.js +1 -0
- package/web/assets/column-CPU5Jg0n.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-9f4DSNLj.js → computer-device-desktop-monitor.svg-XWEWhL0y.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-BYoXiEOE.js → computer-device-desktop.svg-COkZClBv.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-DR1sEMdL.js → computer-device-laptop.svg-C4EfJUqO.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-Bb2_2tyI.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-Dw4z_H5H.js → computer-device-mobile-phone-android-samsung.svg-CEUhXP7K.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-BtqMb2Wo.js → computer-device-mobile-phone-iphone-x-back.svg-B3rxizbE.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-eYEM_VXA.js → computer-device-mobile-phone-iphone-x.svg-BSKpZFCN.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-jLD41nvm.js → computer-device-mobile-tablet-touch.svg-CZvb3YX2.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-D_7_M1GK.js → computer-device-mobile-tablet.svg-BM4_YZYi.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-B_527QGY.js → computer-device-network-ethernet-cat6.svg-CK0v-Rjf.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-ClZIaUOH.js → computer-device-network-lan-www.svg-DvhO71Lq.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-DC4OCJY0.js → computer-device-network-wifi-connection.svg--olUYsgv.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-BWPpobCc.js → computer-device-network-wifi-router.svg-D5HKSWTi.js} +1 -1
- package/web/assets/{cssMode-CXUrkdrQ.js → cssMode-CTjKNOiX.js} +1 -1
- package/web/assets/{divider-BrO5nkpd.js → divider-VFAPax5_.js} +2 -2
- package/web/assets/{docx-preview-tE714WSD.js → docx-preview-gNYLz3FX.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-o8D0ASmr.js → ecology-science-erlenmeyer-flask.svg-THkDG-tj.js} +1 -1
- package/web/assets/{fieldset-LX5cdTvN.js → fieldset-DZGy449H.js} +2 -2
- package/web/assets/{freemarker2-DJ82s0fP.js → freemarker2-CNSvFpVF.js} +1 -1
- package/web/assets/{handlebars-BXFlY2Lu.js → handlebars-BeRu48NI.js} +1 -1
- package/web/assets/{html-CqDVypOC.js → html-DrTiGPjE.js} +1 -1
- package/web/assets/{htmlMode-DrHxdTQP.js → htmlMode-DpbDpbjK.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-BDPMOynq.js → image-flash-lightning.svg-DrkyfdIV.js} +1 -1
- package/web/assets/{image-picture-flower.svg-D-AJaery.js → image-picture-flower.svg-BqFj1xcR.js} +1 -1
- package/web/assets/{index-CICxLkjp.css → index-B___lI4D.css} +1 -1
- package/web/assets/{index-a6DAapTb.js → index-y5bguEQB.js} +238 -238
- package/web/assets/{interface-alert-exclamation-diamond.svg-CV7M0IVQ.js → interface-alert-exclamation-diamond.svg-B40BfW6d.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-B8NapiB7.js → interface-alert-exclamation-triangle-warning.svg-DeIlksL4.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-eQIFULjG.js → interface-alert-information-circle.svg-SwVdV-Z6.js} +1 -1
- package/web/assets/{interface-award-crown.svg-D-4fclUD.js → interface-award-crown.svg-DZHf0EHC.js} +1 -1
- package/web/assets/{interface-bookmark.svg-XdbYDqqk.js → interface-bookmark-tag.svg-CiaV2Cjo.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-Jy6EOdau.js → interface-bookmark.svg-DBEqa-8W.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-BIoXVZrz.js → interface-calendar-date-one.svg-C_afKyyz.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-DHwJbBvQ.js → interface-content-book-open-pages.svg-D5d9ilSu.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-47msUBN_.js → interface-content-book-page.svg-B6hlaLP5.js} +1 -1
- package/web/assets/{interface-content-file.svg-DXw9W8QM.js → interface-content-file.svg-COWMwejF.js} +1 -1
- package/web/assets/interface-content-folder.svg-BCIUgpD4.js +1 -0
- package/web/assets/{interface-content-folder.svg-BmK_IJv8.js → interface-content-folder.svg-K7DTqQH-.js} +1 -1
- package/web/assets/{interface-copy-clipboard.svg-CQ1rQN0L.js → interface-copy-clipboard.svg-BFQ6eajI.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-C3aTaTh_.js → interface-edit-attachment.svg-B-LsB4cM.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-B2Ue_tgs.js → interface-edit-binocular.svg-CnVjKyrn.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-DDKse-Wy.js → interface-edit-magic-wand.svg-CUY6vVJT.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-C2ABby1f.js → interface-edit-tool-paint-roller.svg-B1tSdIxN.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-CNjYbknQ.js → interface-edit-tool-pencil.svg-BHFULT75.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-DWqSHfIa.js → interface-favorite-award.svg-CcOLoF8I.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-CNUsr98g.js → interface-favorite-flag.svg-CAW6LmLW.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-3Eb366FO.js → interface-favorite-heart.svg-BEz4zlNs.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-CVJ3aq1n.js → interface-favorite-star.svg-DKFuvYge.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-BfXhPBbs.js → interface-favorite-stars-sparkles.svg-BfzccoPz.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-DzsqKrYq.js → interface-hierarchy-flowchart.svg-BT8QX161.js} +1 -1
- package/web/assets/{interface-home-house.svg-BnXbuyZn.js → interface-home-house.svg-B264pTPi.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BsmSmyP5.js → interface-hyperlink.svg-DhUgNKkr.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-BywVQRo9.js → interface-lighting-brightness.svg-CPKb40uB.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-BLPORc_h.js → interface-lock-closed.svg-CvXhgCtt.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-CaYlbVmU.js → interface-lock-open-unlock.svg-B0PMKRhP.js} +1 -1
- package/web/assets/{interface-login-key.svg-D5F_9MJ0.js → interface-login-key.svg-DJUm3vhg.js} +1 -1
- package/web/assets/{interface-search.svg-CF1D8GIV.js → interface-search.svg-ByW98ez_.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-D4AOKG2g.js → interface-setting-cog.svg-DYOmJ9It.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-BIfr2_va.js → interface-share-megaphone-bullhorn.svg-YOCUHa3i.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-NDd3dv1t.js → interface-share-rocket.svg-C5kj5dSu.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CVDJbmT-.js → interface-share-satellite.svg-C0svPxG6.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-D0ZLJNO2.js → interface-share-space-ship.svg-8Nw02n1Q.js} +1 -1
- package/web/assets/{interface-share.svg-WpwbpOes.js → interface-share.svg-eDW294tn.js} +1 -1
- package/web/assets/{interface-signal-square.svg-DnfzUw_B.js → interface-signal-square.svg-CxB5mcJQ.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-BhxciNvX.js → interface-time-clock-circle.svg-CEnlQi79.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-DBzSaSHQ.js → interface-time-hour-glass.svg-qL3_s19Q.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-BULh1giq.js → interface-users-multiple.svg-Cz2iA33z.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-D377V2os.js → interface-weather-moon.svg-BoT9GUK_.js} +1 -1
- package/web/assets/{javascript-BTXoJ3Qy.js → javascript-DWdA0-HW.js} +1 -1
- package/web/assets/{jsonMode-D4a3Khim.js → jsonMode-DxGrVlm0.js} +2 -2
- package/web/assets/{liquid-DfO0R4Mk.js → liquid-COqLk0mR.js} +1 -1
- package/web/assets/{lspLanguageFeatures-BvPWuQFt.js → lspLanguageFeatures--0hj1ZV4.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-SK3IJ6QN.js → mail-chat-bubble-square.svg-eiKzTBOv.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-CJFA7B2E.js → mail-send-email-paper-airplane.svg-CCI77Gk8.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-eO_-QNyE.js → mail-send-envelope.svg-ChM5k_N7.js} +1 -1
- package/web/assets/{mdx-G_vwFSSe.js → mdx-CwXNREAO.js} +1 -1
- package/web/assets/{message-CxPw04rG.js → message-CSxReshg.js} +2 -2
- package/web/assets/{minus-Dp5ez1-1.js → minus-Cg0lH8Mn.js} +2 -2
- package/web/assets/modal-D3dkRJqD.js +1 -0
- package/web/assets/modal-ix4Amfqv.js +5 -0
- package/web/assets/{money-cashier-receipt.svg-EutWthy8.js → money-cashier-receipt.svg-WMIW7vxg.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-MnLj-orw.js → money-currency-dollar-pay.svg-qTcGSVX2.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-CVCZ3TyJ.js → money-graph-arrow-increase.svg-B-TQKOW-.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-DiUmCuhj.js → money-graph-bar-chart-increase.svg-CWCIjQcI.js} +1 -1
- package/web/assets/multiselect-C7U34xql.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-ByaLs72Y.js → nature-ecology-leaf.svg-CL26IBv2.js} +1 -1
- package/web/assets/{password-CxtOqagM.js → password-ZOY0bqV1.js} +4 -4
- package/web/assets/{phone-telephone.svg-BKz6Jkwn.js → phone-telephone.svg-BhzxDLVX.js} +1 -1
- package/web/assets/{plus-BPT_7GGk.js → plus-DsBv8bgd.js} +6 -6
- package/web/assets/process.store-DPp7dk63.js +1 -0
- package/web/assets/{programming-bug.svg-BwSc8f0s.js → programming-bug.svg-CBNm3E3F.js} +1 -1
- package/web/assets/{programming-cloud.svg-CEIulNEp.js → programming-cloud.svg-BrVRbl9B.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-Bc_F3NH0.js → programming-computer-database-server.svg-LQp6n-du.js} +1 -1
- package/web/assets/{programming-computer-database.svg-AYLkzJJE.js → programming-computer-database.svg-CSbhcIMU.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-DLpzPxNB.js → programming-module-four-layout.svg-DYEAcL2j.js} +1 -1
- package/web/assets/{programming-module-three.svg-CcuZn8dz.js → programming-module-three.svg-CCQXCU-e.js} +1 -1
- package/web/assets/{programming-module.svg-BjbGpQeu.js → programming-module.svg-Chrmf7k4.js} +1 -1
- package/web/assets/{programming-script-code.svg-poyfodgC.js → programming-script-code.svg-DPhhp3IW.js} +1 -1
- package/web/assets/{python-DpMMlrWM.js → python-B7ePhfsS.js} +1 -1
- package/web/assets/{razor-Ba_mg6U5.js → razor-ChpzroOv.js} +1 -1
- package/web/assets/router-Df972Ysi.js +1 -0
- package/web/assets/settings-scope-CC3oHq2H.js +1 -0
- package/web/assets/settings.store-B31_cRNl.js +1 -0
- package/web/assets/{shopping-cart.svg-BX2KYVCw.js → shopping-cart.svg-bmefzlOu.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-BOl2vYLg.js → shopping-gift-present.svg-aUOleva0.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-gxfbOgnM.js → shopping-shipping-box-parcel-package.svg-BLsRP4dg.js} +1 -1
- package/web/assets/{src-D0LXRijj.js → src-BPSr9dU2.js} +34 -34
- package/web/assets/src-Dt37H-VN.js +1 -0
- package/web/assets/tabpanel-DZQ_g__B.js +150 -0
- package/web/assets/{tag-new-circle.svg-CTRMBJyc.js → tag-new-circle.svg-kTMMMv-0.js} +1 -1
- package/web/assets/{toggleswitch-DcDrXRKn.js → toggleswitch-BWXDXl37.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-BPp4IapC.js → travel-map-earth-globe.svg-BdQmz8_b.js} +1 -1
- package/web/assets/trpc-aSS7b3jh.js +1 -0
- package/web/assets/{tsMode-HfLOT-e5.js → tsMode-arHIUQbZ.js} +6 -6
- package/web/assets/{typescript-DJAEsDnw.js → typescript-Ds9kgbPd.js} +1 -1
- package/web/assets/useAiChatDrawer-C1xrMtLl.js +1 -0
- package/web/assets/useCloudOrg-BexK510D.js +97 -0
- package/web/assets/{useProjectCatalog-C95cDPIr.js → useProjectCatalog-BbSaTBSS.js} +1 -1
- package/web/assets/{xml-1frg7aol.js → xml-CO56TgpZ.js} +1 -1
- package/web/assets/{yaml-DXzDcMOS.js → yaml-DueFV2-x.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/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-Bg7-icbW.js +0 -97
- /package/{agent-manager-UUSQK6S2.js.map → agent-manager-YDLSYZE3.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,49 @@ 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(["kanban:read", "kanban:write", "kanban:comment"]);
|
|
1764
|
+
var CloudApiKeySecretSchema = z21.string().regex(/^rk_[0-9a-f]{64}$/);
|
|
1765
|
+
var CloudApiKeySchema = z21.object({
|
|
1766
|
+
id: z21.string().max(128),
|
|
1767
|
+
organizationId: z21.string().max(128),
|
|
1768
|
+
name: z21.string().min(1).max(200),
|
|
1769
|
+
scopes: z21.array(CloudApiScopeSchema).min(1).max(10),
|
|
1770
|
+
/**
|
|
1771
|
+
* Les tableaux que la clé peut atteindre, ou `null` pour « tous ceux de
|
|
1772
|
+
* l'organisation ».
|
|
1773
|
+
*
|
|
1774
|
+
* `null` et `[]` ne sont pas la même chose : la liste vide n'ouvre rien, et
|
|
1775
|
+
* c'est délibéré — un tableau supprimé ne doit pas élargir une clé qui ne le
|
|
1776
|
+
* nommait plus que lui.
|
|
1777
|
+
*/
|
|
1778
|
+
boards: z21.array(z21.string().max(64)).max(200).nullable(),
|
|
1779
|
+
createdAt: z21.string().max(64),
|
|
1780
|
+
/** Dernier usage constaté, pour reconnaître une clé oubliée. */
|
|
1781
|
+
lastUsedAt: z21.string().max(64).nullable(),
|
|
1782
|
+
/** Qui l'a émise — une clé sans visage ne se révoque jamais sereinement. */
|
|
1783
|
+
createdBy: z21.object({ id: z21.string().max(128), name: z21.string().max(200) }),
|
|
1784
|
+
/** Les 4 derniers caractères du secret, pour reconnaître une clé dans une liste. */
|
|
1785
|
+
keyPreview: z21.string().max(8)
|
|
1786
|
+
});
|
|
1787
|
+
var CreatedCloudApiKeySchema = z21.object({
|
|
1788
|
+
key: CloudApiKeySchema,
|
|
1789
|
+
secret: CloudApiKeySecretSchema
|
|
1790
|
+
});
|
|
1791
|
+
var CreateCloudApiKeyInput = z21.object({
|
|
1792
|
+
organizationId: z21.string().min(1).max(128),
|
|
1793
|
+
name: z21.string().min(1).max(200),
|
|
1794
|
+
scopes: z21.array(CloudApiScopeSchema).min(1).max(10),
|
|
1795
|
+
boards: z21.array(z21.string().max(64)).max(200).nullable().default(null)
|
|
1796
|
+
});
|
|
1797
|
+
var UpdateCloudApiKeyInput = z21.object({
|
|
1798
|
+
id: z21.string().min(1).max(128),
|
|
1799
|
+
name: z21.string().min(1).max(200).optional(),
|
|
1800
|
+
scopes: z21.array(CloudApiScopeSchema).min(1).max(10).optional(),
|
|
1801
|
+
boards: z21.array(z21.string().max(64)).max(200).nullable().optional()
|
|
1802
|
+
});
|
|
1803
|
+
|
|
1761
1804
|
// ../../packages/shared/src/utils/crypto.ts
|
|
1762
1805
|
import { createCipheriv as createCipheriv3, createDecipheriv as createDecipheriv3, randomBytes as randomBytes3, pbkdf2Sync } from "crypto";
|
|
1763
1806
|
|
|
@@ -3092,7 +3135,7 @@ var ServiceStore = class {
|
|
|
3092
3135
|
var serviceStore = new ServiceStore();
|
|
3093
3136
|
|
|
3094
3137
|
// ../server/src/services/agent-spawner.ts
|
|
3095
|
-
import { spawn } from "child_process";
|
|
3138
|
+
import { spawn as spawn2 } from "child_process";
|
|
3096
3139
|
import { createInterface } from "readline";
|
|
3097
3140
|
import { watch } from "fs";
|
|
3098
3141
|
import { dirname as dirname2, join as join6 } from "path";
|
|
@@ -3100,10 +3143,13 @@ import { fileURLToPath } from "url";
|
|
|
3100
3143
|
|
|
3101
3144
|
// ../server/src/services/instance-registry.ts
|
|
3102
3145
|
import { mkdir as mkdir5, readdir as readdir2, readFile as readFile5, writeFile as writeFile5, rm as rm3 } from "fs/promises";
|
|
3146
|
+
import { readFileSync } from "fs";
|
|
3147
|
+
import dotenv from "dotenv";
|
|
3148
|
+
import { spawn } from "child_process";
|
|
3103
3149
|
import { join as join5 } from "path";
|
|
3104
|
-
import { z as
|
|
3105
|
-
var InstanceFileSchema =
|
|
3106
|
-
pid:
|
|
3150
|
+
import { z as z22 } from "zod";
|
|
3151
|
+
var InstanceFileSchema = z22.object({
|
|
3152
|
+
pid: z22.number().int().positive(),
|
|
3107
3153
|
/**
|
|
3108
3154
|
* The agent this server spawned, when it has one.
|
|
3109
3155
|
*
|
|
@@ -3111,14 +3157,37 @@ var InstanceFileSchema = z21.object({
|
|
|
3111
3157
|
* it, and because the agent may not be up yet — or at all, when the
|
|
3112
3158
|
* encryption key is missing. Absent means « unknown », never « none ».
|
|
3113
3159
|
*/
|
|
3114
|
-
agentPid:
|
|
3115
|
-
port:
|
|
3116
|
-
agentPort:
|
|
3117
|
-
cwd:
|
|
3118
|
-
dataDir:
|
|
3119
|
-
version:
|
|
3120
|
-
fromDesktop:
|
|
3121
|
-
startedAt:
|
|
3160
|
+
agentPid: z22.number().int().positive().optional(),
|
|
3161
|
+
port: z22.number().int().min(1).max(65535),
|
|
3162
|
+
agentPort: z22.number().int().min(1).max(65535),
|
|
3163
|
+
cwd: z22.string().max(4096),
|
|
3164
|
+
dataDir: z22.string().max(4096),
|
|
3165
|
+
version: z22.string().max(64),
|
|
3166
|
+
fromDesktop: z22.boolean(),
|
|
3167
|
+
startedAt: z22.number().int().nonnegative(),
|
|
3168
|
+
/**
|
|
3169
|
+
* De quoi relancer ce lancement à l'identique : l'exécutable, ses arguments,
|
|
3170
|
+
* et les `RUNEYA_*` de son environnement. Le `cwd` ci-dessus complète le
|
|
3171
|
+
* tableau.
|
|
3172
|
+
*
|
|
3173
|
+
* Optionnels, comme `agentPid` : une instance antérieure à ce champ ne les
|
|
3174
|
+
* écrit pas. Elle reste listée et arrêtable, simplement pas redémarrable —
|
|
3175
|
+
* un redémarrage approximatif serait pire qu'un bouton absent.
|
|
3176
|
+
*/
|
|
3177
|
+
execPath: z22.string().max(4096).optional(),
|
|
3178
|
+
argv: z22.array(z22.string().max(4096)).max(128).optional(),
|
|
3179
|
+
env: z22.record(z22.string().max(64), z22.string().max(4096)).optional(),
|
|
3180
|
+
/**
|
|
3181
|
+
* L'instance tient un secret (`RUNEYA_ENCRYPTION_KEY`,
|
|
3182
|
+
* `RUNEYA_MASTER_PASSWORD`) que le relancement ne retrouverait pas. Le
|
|
3183
|
+
* drapeau, jamais la valeur : le registre est un fichier lisible, et ces
|
|
3184
|
+
* deux-là n'ont délibérément pas de flag CLI parce qu'`argv` se lit dans
|
|
3185
|
+
* `ps`.
|
|
3186
|
+
*
|
|
3187
|
+
* Un secret posé dans le `.env` de la pile ne compte pas : `dotenv` le relit
|
|
3188
|
+
* au démarrage depuis le même répertoire. Voir `secretsAreReproducible()`.
|
|
3189
|
+
*/
|
|
3190
|
+
needsSecretEnv: z22.boolean().optional()
|
|
3122
3191
|
});
|
|
3123
3192
|
function registryDir() {
|
|
3124
3193
|
return join5(machineRoot(), "instances");
|
|
@@ -3127,6 +3196,29 @@ function fileFor(pid) {
|
|
|
3127
3196
|
return join5(registryDir(), `${pid}.json`);
|
|
3128
3197
|
}
|
|
3129
3198
|
var published = null;
|
|
3199
|
+
var SECRET_ENV_KEYS = ["RUNEYA_ENCRYPTION_KEY", "RUNEYA_MASTER_PASSWORD"];
|
|
3200
|
+
function isSecretEnvKey(key) {
|
|
3201
|
+
return SECRET_ENV_KEYS.includes(key);
|
|
3202
|
+
}
|
|
3203
|
+
function runeyaEnv() {
|
|
3204
|
+
const out = {};
|
|
3205
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
3206
|
+
if (!key.startsWith("RUNEYA_") || isSecretEnvKey(key)) continue;
|
|
3207
|
+
if (typeof value === "string" && value.length <= 4096) out[key] = value;
|
|
3208
|
+
}
|
|
3209
|
+
return out;
|
|
3210
|
+
}
|
|
3211
|
+
function secretsAreReproducible() {
|
|
3212
|
+
const present = SECRET_ENV_KEYS.filter((key) => Boolean(process.env[key]));
|
|
3213
|
+
if (present.length === 0) return true;
|
|
3214
|
+
let fromFile;
|
|
3215
|
+
try {
|
|
3216
|
+
fromFile = dotenv.parse(readFileSync(join5(process.cwd(), ".env")));
|
|
3217
|
+
} catch {
|
|
3218
|
+
return false;
|
|
3219
|
+
}
|
|
3220
|
+
return present.every((key) => fromFile[key] === process.env[key]);
|
|
3221
|
+
}
|
|
3130
3222
|
function selfRecord() {
|
|
3131
3223
|
return {
|
|
3132
3224
|
pid: process.pid,
|
|
@@ -3136,7 +3228,13 @@ function selfRecord() {
|
|
|
3136
3228
|
dataDir: env.DATA_DIR,
|
|
3137
3229
|
version: process.env["RUNEYA_VERSION"] ?? "unknown",
|
|
3138
3230
|
fromDesktop: env.FROM_DESKTOP,
|
|
3139
|
-
startedAt: Date.now()
|
|
3231
|
+
startedAt: Date.now(),
|
|
3232
|
+
execPath: process.execPath,
|
|
3233
|
+
// argv[0] est l'exécutable, déjà repris par `execPath` ; le reste est le
|
|
3234
|
+
// script suivi de ses arguments, c'est-à-dire ce qu'il faut repasser à spawn.
|
|
3235
|
+
argv: process.argv.slice(1),
|
|
3236
|
+
env: runeyaEnv(),
|
|
3237
|
+
needsSecretEnv: !secretsAreReproducible()
|
|
3140
3238
|
};
|
|
3141
3239
|
}
|
|
3142
3240
|
async function registerInstance() {
|
|
@@ -3214,14 +3312,18 @@ async function listInstances() {
|
|
|
3214
3312
|
});
|
|
3215
3313
|
return null;
|
|
3216
3314
|
}
|
|
3315
|
+
const current = record.pid === process.pid;
|
|
3316
|
+
const blocker = restartBlockerFor(record);
|
|
3217
3317
|
return {
|
|
3218
3318
|
...record,
|
|
3219
3319
|
// Trust the live answer over the file: the file was written at boot
|
|
3220
3320
|
// and an upgraded instance would keep claiming its old version.
|
|
3221
3321
|
version: version ?? record.version,
|
|
3222
3322
|
reachable: true,
|
|
3223
|
-
current
|
|
3224
|
-
uptimeMs
|
|
3323
|
+
current,
|
|
3324
|
+
uptimeMs,
|
|
3325
|
+
restartable: blocker === null,
|
|
3326
|
+
restartBlockedBy: blocker
|
|
3225
3327
|
};
|
|
3226
3328
|
})
|
|
3227
3329
|
);
|
|
@@ -3237,6 +3339,11 @@ function dedupeByPort(instances) {
|
|
|
3237
3339
|
}
|
|
3238
3340
|
return [...byPort.values()];
|
|
3239
3341
|
}
|
|
3342
|
+
function restartBlockerFor(record) {
|
|
3343
|
+
if (record.needsSecretEnv) return "secrets";
|
|
3344
|
+
if (!record.execPath || !record.argv) return "legacy";
|
|
3345
|
+
return null;
|
|
3346
|
+
}
|
|
3240
3347
|
var GRACE_MS = 5e3;
|
|
3241
3348
|
var POLL_MS = 100;
|
|
3242
3349
|
async function terminate(pid) {
|
|
@@ -3274,6 +3381,103 @@ async function killInstance(pid) {
|
|
|
3274
3381
|
}
|
|
3275
3382
|
return { agent, server };
|
|
3276
3383
|
}
|
|
3384
|
+
function launchOf(record) {
|
|
3385
|
+
if (!record.execPath || !record.argv) throw new Error("instance-not-restartable:legacy");
|
|
3386
|
+
const env2 = {};
|
|
3387
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
3388
|
+
if (typeof value === "string" && !key.startsWith("RUNEYA_")) env2[key] = value;
|
|
3389
|
+
}
|
|
3390
|
+
return {
|
|
3391
|
+
execPath: record.execPath,
|
|
3392
|
+
argv: record.argv,
|
|
3393
|
+
cwd: record.cwd,
|
|
3394
|
+
env: { ...env2, ...record.env ?? {} }
|
|
3395
|
+
};
|
|
3396
|
+
}
|
|
3397
|
+
var PORT_RELEASE_TIMEOUT_MS = 15e3;
|
|
3398
|
+
async function waitForPortRelease(port) {
|
|
3399
|
+
const deadline = Date.now() + PORT_RELEASE_TIMEOUT_MS;
|
|
3400
|
+
while (Date.now() < deadline) {
|
|
3401
|
+
const { ok } = await probe(port);
|
|
3402
|
+
if (!ok) return true;
|
|
3403
|
+
await new Promise((resolve) => setTimeout(resolve, POLL_MS));
|
|
3404
|
+
}
|
|
3405
|
+
return false;
|
|
3406
|
+
}
|
|
3407
|
+
async function restartInstance(pid) {
|
|
3408
|
+
const target = (await listInstances()).find((i) => i.pid === pid);
|
|
3409
|
+
if (!target) throw new Error("instance-not-found");
|
|
3410
|
+
if (target.restartBlockedBy) throw new Error(`instance-not-restartable:${target.restartBlockedBy}`);
|
|
3411
|
+
if (target.current) throw new Error("instance-is-current");
|
|
3412
|
+
const stop = await killInstance(pid);
|
|
3413
|
+
if (stop.server !== "terminated" && stop.server !== "killed") {
|
|
3414
|
+
throw new Error(`instance-stop-${stop.server}`);
|
|
3415
|
+
}
|
|
3416
|
+
const portReleased = await waitForPortRelease(target.port);
|
|
3417
|
+
const launch = launchOf(target);
|
|
3418
|
+
const child = spawn(launch.execPath, launch.argv, {
|
|
3419
|
+
cwd: launch.cwd,
|
|
3420
|
+
env: launch.env,
|
|
3421
|
+
detached: true,
|
|
3422
|
+
stdio: "ignore"
|
|
3423
|
+
});
|
|
3424
|
+
child.on("error", (err) => {
|
|
3425
|
+
console.log(`[instances] Relance du pid ${pid} impossible :`, err.message);
|
|
3426
|
+
});
|
|
3427
|
+
child.unref();
|
|
3428
|
+
if (typeof child.pid !== "number") throw new Error("instance-restart-failed");
|
|
3429
|
+
return { stop, pid: child.pid, portReleased };
|
|
3430
|
+
}
|
|
3431
|
+
var RELAUNCHER = `
|
|
3432
|
+
const p = JSON.parse(process.env.RUNEYA_RELAUNCH_PAYLOAD);
|
|
3433
|
+
const deadline = Date.now() + p.timeoutMs;
|
|
3434
|
+
const held = async () => {
|
|
3435
|
+
try {
|
|
3436
|
+
const res = await fetch('http://127.0.0.1:' + p.port + '/api/trpc/health.check', {
|
|
3437
|
+
signal: AbortSignal.timeout(500),
|
|
3438
|
+
});
|
|
3439
|
+
return res.ok;
|
|
3440
|
+
} catch { return false; }
|
|
3441
|
+
};
|
|
3442
|
+
(async () => {
|
|
3443
|
+
while (Date.now() < deadline && await held()) {
|
|
3444
|
+
await new Promise((r) => setTimeout(r, ${POLL_MS}));
|
|
3445
|
+
}
|
|
3446
|
+
require('node:child_process')
|
|
3447
|
+
.spawn(p.execPath, p.argv, { cwd: p.cwd, env: p.env, detached: true, stdio: 'ignore' })
|
|
3448
|
+
.unref();
|
|
3449
|
+
})();
|
|
3450
|
+
`;
|
|
3451
|
+
var SELF_RESTART_DELAY_MS = 250;
|
|
3452
|
+
function spawnRelauncher(record) {
|
|
3453
|
+
const blocker = restartBlockerFor(record);
|
|
3454
|
+
if (blocker) throw new Error(`instance-not-restartable:${blocker}`);
|
|
3455
|
+
const launch = launchOf(record);
|
|
3456
|
+
const relauncher = spawn(process.execPath, ["-e", RELAUNCHER], {
|
|
3457
|
+
cwd: launch.cwd,
|
|
3458
|
+
env: {
|
|
3459
|
+
...launch.env,
|
|
3460
|
+
RUNEYA_RELAUNCH_PAYLOAD: JSON.stringify({ ...launch, port: record.port, timeoutMs: PORT_RELEASE_TIMEOUT_MS })
|
|
3461
|
+
},
|
|
3462
|
+
detached: true,
|
|
3463
|
+
stdio: "ignore"
|
|
3464
|
+
});
|
|
3465
|
+
relauncher.on("error", (err) => {
|
|
3466
|
+
console.log("[instances] Relanceur impossible \xE0 lancer :", err.message);
|
|
3467
|
+
});
|
|
3468
|
+
relauncher.unref();
|
|
3469
|
+
if (typeof relauncher.pid !== "number") throw new Error("instance-restart-failed");
|
|
3470
|
+
return relauncher.pid;
|
|
3471
|
+
}
|
|
3472
|
+
async function scheduleSelfRestart() {
|
|
3473
|
+
const record = published ?? selfRecord();
|
|
3474
|
+
const relauncherPid = spawnRelauncher(record);
|
|
3475
|
+
setTimeout(() => {
|
|
3476
|
+
console.log("[instances] Red\xE9marrage demand\xE9 : arr\xEAt de cette instance.");
|
|
3477
|
+
process.kill(process.pid, "SIGTERM");
|
|
3478
|
+
}, SELF_RESTART_DELAY_MS);
|
|
3479
|
+
return { relauncherPid, port: record.port };
|
|
3480
|
+
}
|
|
3277
3481
|
|
|
3278
3482
|
// ../server/src/services/agent-spawner.ts
|
|
3279
3483
|
var POSIX_SAFE_KEYS = [
|
|
@@ -3392,7 +3596,7 @@ var AgentSpawner = class {
|
|
|
3392
3596
|
console.log(`[agent-spawner] Spawning local agent on ${agentUrl}...`);
|
|
3393
3597
|
const isDev = process.env.NODE_ENV === "development";
|
|
3394
3598
|
this.agentDistPath = env.AGENT_BINARY_PATH || join6(dirname2(fileURLToPath(import.meta.url)), "..", "..", "agent", "dist", "index.js");
|
|
3395
|
-
this.agentProcess =
|
|
3599
|
+
this.agentProcess = spawn2("node", [this.agentDistPath], {
|
|
3396
3600
|
env: agentEnv,
|
|
3397
3601
|
stdio: ["ignore", "pipe", "pipe"]
|
|
3398
3602
|
});
|
|
@@ -3529,7 +3733,7 @@ var AgentSpawner = class {
|
|
|
3529
3733
|
}
|
|
3530
3734
|
const agentUrl = `http://${env.RUNEYA_AGENT_HOST}:${env.RUNEYA_AGENT_PORT}`;
|
|
3531
3735
|
const isDev = process.env.NODE_ENV === "development";
|
|
3532
|
-
this.agentProcess =
|
|
3736
|
+
this.agentProcess = spawn2("node", [this.agentDistPath], {
|
|
3533
3737
|
env: agentEnv,
|
|
3534
3738
|
stdio: ["ignore", "pipe", "pipe"]
|
|
3535
3739
|
});
|
|
@@ -3805,13 +4009,13 @@ var AgentWSBridge = class extends EventEmitter {
|
|
|
3805
4009
|
};
|
|
3806
4010
|
|
|
3807
4011
|
// ../server/src/services/agent-manager.ts
|
|
3808
|
-
var HealthMessageSchema =
|
|
3809
|
-
status:
|
|
3810
|
-
uptime:
|
|
3811
|
-
runnersAvailable:
|
|
3812
|
-
processCount:
|
|
3813
|
-
runningCount:
|
|
3814
|
-
lanIp:
|
|
4012
|
+
var HealthMessageSchema = z23.object({
|
|
4013
|
+
status: z23.string(),
|
|
4014
|
+
uptime: z23.number(),
|
|
4015
|
+
runnersAvailable: z23.array(z23.enum(["native", "docker"])),
|
|
4016
|
+
processCount: z23.number(),
|
|
4017
|
+
runningCount: z23.number(),
|
|
4018
|
+
lanIp: z23.string().optional()
|
|
3815
4019
|
});
|
|
3816
4020
|
var MIN_RECONNECT_DELAY = WS_RECONNECT_MIN;
|
|
3817
4021
|
var MAX_RECONNECT_DELAY = WS_RECONNECT_MAX;
|
|
@@ -4197,9 +4401,9 @@ var AgentManager = class extends EventEmitter2 {
|
|
|
4197
4401
|
if (spawns.length > 0) {
|
|
4198
4402
|
const summary = spawns.map((s) => `${s.spawnId} (${s.cli}, ${s.status}, buf:${s.bufferLength})`).join(", ");
|
|
4199
4403
|
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:
|
|
4404
|
+
for (const spawn3 of spawns) {
|
|
4405
|
+
if (spawn3.status !== "running") {
|
|
4406
|
+
this.agentMutation(agentId, "ai.ack", { spawnId: spawn3.spawnId }).catch(() => {
|
|
4203
4407
|
});
|
|
4204
4408
|
}
|
|
4205
4409
|
}
|
|
@@ -4369,8 +4573,10 @@ export {
|
|
|
4369
4573
|
unregisterInstance,
|
|
4370
4574
|
listInstances,
|
|
4371
4575
|
killInstance,
|
|
4576
|
+
restartInstance,
|
|
4577
|
+
scheduleSelfRestart,
|
|
4372
4578
|
agentSpawner,
|
|
4373
4579
|
traefikManager,
|
|
4374
4580
|
agentManager
|
|
4375
4581
|
};
|
|
4376
|
-
//# sourceMappingURL=chunk-
|
|
4582
|
+
//# sourceMappingURL=chunk-HPYBAUAH.js.map
|