@runeya/runeya 2.0.135 → 2.0.137
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 +11 -3
- package/agent/index.js.map +1 -1
- package/{agent-manager-TUFAFC6U.js → agent-manager-FUU72VGH.js} +3 -3
- package/{chat-IQBWQCTK.js → chat-C26CBAZX.js} +5 -5
- package/{chunk-GISLEYNE.js → chunk-FJLMXLMK.js} +4 -4
- package/{chunk-7JAJSV4L.js → chunk-J4GLFY7G.js} +2 -2
- package/{chunk-4RMM2OUU.js → chunk-NURPXHLB.js} +13 -4
- package/chunk-NURPXHLB.js.map +1 -0
- package/{chunk-M3UUGW5Z.js → chunk-P65BO7WZ.js} +70 -399
- package/chunk-P65BO7WZ.js.map +1 -0
- package/{companion-YQ7CGW7W.js → companion-Q67RAO3N.js} +4 -4
- package/index.js +4 -4
- package/{node-JU7A5NDT.js → node-4UUJN2WG.js} +4 -2
- package/package.json +1 -1
- package/{src-NMMPS4ZF.js → src-7O3GCEIB.js} +7 -7
- package/{src-NMMPS4ZF.js.map → src-7O3GCEIB.js.map} +1 -1
- package/web/assets/AgentScalarChatInterface.vue-BGGkpyp3.js +13 -0
- package/web/assets/AgentTerminalPage-B8gLray2.js +1 -0
- package/web/assets/AiChatPage-BKITsyMx.js +1 -0
- package/web/assets/AppLayout-B72S4nTi.css +1 -0
- package/web/assets/AppLayout-BYw7v2sp.js +1 -0
- package/web/assets/AuditPage-nHTwzyia.js +1 -0
- package/web/assets/CloudAccountPage-DuaZz2j4.js +1 -0
- package/web/assets/CloudAccountPage-XHxI-ixD.js +1 -0
- package/web/assets/CloudMessagingPage-B2N5K-Xs.js +2 -0
- package/web/assets/DashboardPage-VoWJeWh_.js +1 -0
- package/web/assets/DirectoryPickerDialog-B5SuJOhv.js +1 -0
- package/web/assets/{EditorIcon-Bhdvfd12.js → EditorIcon-DXYoMZnL.js} +2 -2
- package/web/assets/{EnvironmentForm-qEODCXoN.js → EnvironmentForm-D3pZuxVn.js} +2 -2
- package/web/assets/EnvironmentFormPage-BIXbPTN5.js +1 -0
- package/web/assets/EnvironmentListPage-CHa-Ni3w.js +1 -0
- package/web/assets/KanbanBoardPage-B46zbE2H.css +1 -0
- package/web/assets/KanbanBoardPage-BFTNpm8P.js +4 -0
- package/web/assets/KanbanListPage-CYuIrKXH.js +1 -0
- package/web/assets/LaunchProjectPage-jy-R3Fiw.js +1 -0
- package/web/assets/LaunchServicesPage-DX7nyo36.js +1 -0
- package/web/assets/LaunchShell-BHfseuPM.js +1 -0
- package/web/assets/LogViewer-C-pHXudR.js +3 -0
- package/web/assets/OrgKeyPrompt-OPnK5oPm.js +1 -0
- package/web/assets/OrgLogo-Cxa49Tl3.js +1 -0
- package/web/assets/{ProcessControls-DM8lfeiV.js → ProcessControls-DXDyR6XX.js} +1 -1
- package/web/assets/ProcessDetailPage-DNKTwgPW.js +1 -0
- package/web/assets/ProcessMetrics-CdQc_8Z0.js +168 -0
- package/web/assets/RandomJobTestPage-BE8HkgSb.js +2 -0
- package/web/assets/ScenarioEditorPage-COC03w7b.css +1 -0
- package/web/assets/ScenarioEditorPage-Coo6ExzZ.js +14 -0
- package/web/assets/SendToChatDialog-ClXerpCU.js +1 -0
- package/web/assets/ServiceControlsBar-C7HrPjQI.js +1 -0
- package/web/assets/{ServiceDetailPage-cQNK1uWq.css → ServiceDetailPage-BhFOqSte.css} +1 -1
- package/web/assets/ServiceDetailPage-Cxuy0Yix.js +2 -0
- package/web/assets/ServiceFormPage-CCOu1h8v.js +1 -0
- package/web/assets/{SettingsPage-CDugr781.css → SettingsPage-DA7lVKfg.css} +1 -1
- package/web/assets/SettingsPage-Dt1ViDQe.js +2063 -0
- package/web/assets/UnlockPage-C5iEOAKH.js +1 -0
- package/web/assets/VaultMigrationPage-CwRWvFY7.js +1 -0
- package/web/assets/VersionBadge-Bqb72GXf.js +1 -0
- package/web/assets/WikiPage-Bl1jDKKp.js +1 -0
- package/web/assets/WikiView-58u6vU3q.js +1 -0
- package/web/assets/WikiView-BqO5AEaY.css +1 -0
- package/web/assets/add-scalar-classes-CT5KQbzH.js +387 -0
- package/web/assets/{autocomplete-ChFfCprn.js → autocomplete-DobAPPYJ.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-DMXCGOOi.js → basic-shape-diamond.svg-FbeAPLc-.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-CYIcPMdS.js → basic-shape-hexagon.svg-CtwcdpTe.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-Cwmrd1Ez.js → basic-shape-primary-circle-ellipse-round.svg-DsSs3S2_.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-C6jxeZnm.js → basic-shape-primary-square-rectangle.svg-CNe1RNx8.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-DbCz35E5.js → basic-shape-shield.svg-DwZMLfah.js} +1 -1
- package/web/assets/{browser-CIvjpXha.js → browser-DsZ9HxVm.js} +1 -1
- package/web/assets/{browser-Dqcl_H7_.js → browser-Dz1gvldT.js} +1 -1
- package/web/assets/card-46tM5yU0.js +32 -0
- package/web/assets/{checkbox-D2Iuu4UI.js → checkbox-DPknldTJ.js} +3 -3
- package/web/assets/chevronup-D2Lr2GiV.js +151 -0
- package/web/assets/{chip-C6j_aNV_.js → chip-Caiakd-N.js} +2 -2
- package/web/assets/client-KL5c1Dog.js +24 -0
- package/web/assets/cloud-chat.store-Belo5SKd.js +1 -0
- package/web/assets/cloud-client-Cqa2Udt8.js +1 -0
- package/web/assets/cloud-session-56bUtkSL.js +2 -0
- package/web/assets/cloud-session-Dqm0C6H5.js +1 -0
- package/web/assets/column-DQ53_qc6.js +763 -0
- package/web/assets/{composables-CSWX_0A0.js → composables-CHyZa9ag.js} +1 -1
- package/web/assets/{computer-device-desktop-monitor.svg-B2C-kd0i.js → computer-device-desktop-monitor.svg-CwiGN14T.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-3yHh_J9J.js → computer-device-desktop.svg-BC2VdXDZ.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-DFT8iA2v.js → computer-device-laptop.svg-BOp8AKN6.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CMmFiUFT.js → computer-device-mobile-phone-android-samsung-back.svg-CmbpPX1u.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-zfLcL76y.js → computer-device-mobile-phone-android-samsung.svg-_WGKWVtZ.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-avbsjvM5.js → computer-device-mobile-phone-iphone-x-back.svg-DmLh97KG.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-d5iGTMZf.js → computer-device-mobile-phone-iphone-x.svg-C7-5mdyV.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-Bs2yfb4a.js → computer-device-mobile-tablet-touch.svg-DiUaSnhU.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-C4zqv1Np.js → computer-device-mobile-tablet.svg-B6nfbYm_.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BNu3-DX-.js → computer-device-network-ethernet-cat6.svg-DwtVKy79.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-DKWvhIUS.js → computer-device-network-lan-www.svg-vQKfG3Xz.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-BeVB4uVk.js → computer-device-network-wifi-connection.svg-DhHaOUge.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-ByESRUy1.js → computer-device-network-wifi-router.svg-1dQS4k4J.js} +1 -1
- package/web/assets/{cssMode-CYkE5lQ9.js → cssMode-CdQL22W5.js} +1 -1
- package/web/assets/{divider-CA3yAI2V.js → divider-DhYR4BAO.js} +2 -2
- package/web/assets/{docx-preview-DWhG4PqM.js → docx-preview-D-jP_CCs.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-D-XnpZzI.js → ecology-science-erlenmeyer-flask.svg-D76wQVA2.js} +1 -1
- package/web/assets/{fieldset-B8HuDLeH.js → fieldset-BtOjs_Hh.js} +2 -2
- package/web/assets/{freemarker2-D4-v7trZ.js → freemarker2-BADW9vhy.js} +1 -1
- package/web/assets/{handlebars-DjpO5k1R.js → handlebars-CwWQD_C8.js} +1 -1
- package/web/assets/{html-DFrFD9Vs.js → html-y87CEbe3.js} +1 -1
- package/web/assets/{htmlMode-DOefWnsd.js → htmlMode-CVagtvVh.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-D3j4zBSy.js → image-flash-lightning.svg-OvpKi3a3.js} +1 -1
- package/web/assets/{image-picture-flower.svg-DQwZxx5i.js → image-picture-flower.svg-DLOePozT.js} +1 -1
- package/web/assets/index-CKOtBNaZ.css +1 -0
- package/web/assets/{index-C0stqCbw.js → index-CcIrffU_.js} +363 -583
- package/web/assets/{interface-alert-exclamation-diamond.svg-Wi3odtkW.js → interface-alert-exclamation-diamond.svg-4Vk7SoQ1.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-CReCCTTv.js → interface-alert-exclamation-triangle-warning.svg-BLAvc4am.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-CcYDlXW6.js → interface-alert-information-circle.svg-CaAXpDAI.js} +1 -1
- package/web/assets/{interface-award-crown.svg-nShV1eoE.js → interface-award-crown.svg-CW7XG0wx.js} +1 -1
- package/web/assets/{interface-bookmark.svg-C7rl6oRl.js → interface-bookmark-tag.svg-DPWVVeZU.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-Bcxcf9m_.js → interface-bookmark.svg-BpLEuOv2.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-Dr1oFk40.js → interface-calendar-date-one.svg-DbBgvI4W.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-5k2_6iyY.js → interface-content-book-open-pages.svg-BbsuvPZM.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-CVq67m2W.js → interface-content-book-page.svg-DbRPz1j8.js} +1 -1
- package/web/assets/{interface-content-file.svg-BTGOcunz.js → interface-content-file.svg-OJPKABxS.js} +1 -1
- package/web/assets/{interface-content-folder.svg-c7jw0JHU.js → interface-content-folder.svg-3D_5OE_-.js} +1 -1
- package/web/assets/interface-content-folder.svg-8mYqkDao.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-CDxFW9t5.js → interface-copy-clipboard.svg-DqthVh9J.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-ALzerCj2.js → interface-edit-attachment.svg-BAPCnZ0B.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-B8ugIA3a.js → interface-edit-binocular.svg-BoV39ouF.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-DUS1BcE7.js → interface-edit-magic-wand.svg-Cz36nKVn.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-B2yecsyu.js → interface-edit-tool-paint-roller.svg-DZUQotD5.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-CXrPC_TT.js → interface-edit-tool-pencil.svg-DBf1Y9Tj.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-Cp_oIcCh.js → interface-favorite-award.svg-B93sRjxf.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-B36MDZwI.js → interface-favorite-flag.svg-DKHuT11J.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-CTV6u1U4.js → interface-favorite-heart.svg-Bw5FZQ7d.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-OdL5QrWJ.js → interface-favorite-star.svg-CgLbct_b.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-BqWJOXGz.js → interface-favorite-stars-sparkles.svg-B7cYS4ef.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-CuSQQZNq.js → interface-hierarchy-flowchart.svg-zwuaRdWq.js} +1 -1
- package/web/assets/{interface-home-house.svg-C3MlUubV.js → interface-home-house.svg-B85yMFCe.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BYd5gh77.js → interface-hyperlink.svg-US6b-Svn.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-Dg3GdUm9.js → interface-lighting-brightness.svg-mZWkhb7f.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-DwBww-yp.js → interface-lock-closed.svg-9oHuNwuY.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-BPSHjpM5.js → interface-lock-open-unlock.svg-DBetdJny.js} +1 -1
- package/web/assets/{interface-login-key.svg-CAKOhBJY.js → interface-login-key.svg-BZnZTYd1.js} +1 -1
- package/web/assets/{interface-search.svg-C-J35EwT.js → interface-search.svg-CMXAOoam.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-CPTM4JUK.js → interface-setting-cog.svg-CKckatt7.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-De8kepxS.js → interface-share-megaphone-bullhorn.svg-DH7kVqN-.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-Drx2GamR.js → interface-share-rocket.svg-BNXcMugi.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CpcvwNrN.js → interface-share-satellite.svg-Bb8t607w.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-C1rwdvlT.js → interface-share-space-ship.svg-Dk4rbLtF.js} +1 -1
- package/web/assets/{interface-share.svg-CgYmRRi3.js → interface-share.svg-CtX8dq5i.js} +1 -1
- package/web/assets/{interface-signal-square.svg-D18HXtaZ.js → interface-signal-square.svg-DmUIlYTd.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-CnJh3zUx.js → interface-time-clock-circle.svg-D2ZNaXT3.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-CJ43-28R.js → interface-time-hour-glass.svg-Ddo-8hHe.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-DUoZG3ny.js → interface-users-multiple.svg-Jh7S0sT4.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-C6iv_sYC.js → interface-weather-moon.svg-DbdQFgL2.js} +1 -1
- package/web/assets/{javascript-C9ITR2y1.js → javascript-BVGFyXBk.js} +1 -1
- package/web/assets/{jsonMode-CVg8GDEH.js → jsonMode-vnFlxYl9.js} +2 -2
- package/web/assets/{liquid-QQuSH6xu.js → liquid-DieKMEvN.js} +1 -1
- package/web/assets/{lspLanguageFeatures-Dw4848W6.js → lspLanguageFeatures-DoeI-8Y7.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-BazJ_62-.js → mail-chat-bubble-square.svg-CApdU2ea.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-B-Dxyqfp.js → mail-send-email-paper-airplane.svg-jjZ0KB32.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-C8b7sbKN.js → mail-send-envelope.svg-B6Tsoh-8.js} +1 -1
- package/web/assets/{mdx-DAF1FZmF.js → mdx-BCkszXid.js} +1 -1
- package/web/assets/{minus-CSyILGbg.js → minus-DfLQX3s2.js} +2 -2
- package/web/assets/modal-CCco27Sn.js +5 -0
- package/web/assets/modal-D4J85_wC.js +1 -0
- package/web/assets/{money-cashier-receipt.svg--Lc3cf7X.js → money-cashier-receipt.svg-DM-I8Snr.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-Dj5mJsZo.js → money-currency-dollar-pay.svg-CkDRewrV.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-BxDK2s6g.js → money-graph-arrow-increase.svg-BT4KLHWz.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-DGZaFMZM.js → money-graph-bar-chart-increase.svg-EvyIJ3Uu.js} +1 -1
- package/web/assets/{multiselect-Dn8j6BKj.js → multiselect-BmjidXlj.js} +3 -3
- package/web/assets/{nature-ecology-leaf.svg-CWHdLRYI.js → nature-ecology-leaf.svg-uZBwXdg9.js} +1 -1
- package/web/assets/{password-BHZmKoIG.js → password-D1R5w1qL.js} +4 -4
- package/web/assets/{phone-telephone.svg-DsOG1joc.js → phone-telephone.svg-BSvOskIB.js} +1 -1
- package/web/assets/{plus-fHFXXVKA.js → plus-CNGSRnxy.js} +6 -6
- package/web/assets/process.store-p1LqnpY2.js +1 -0
- package/web/assets/{programming-bug.svg-QYUdmLY5.js → programming-bug.svg-CLnGs4K-.js} +1 -1
- package/web/assets/{programming-cloud.svg-C6znZJ-C.js → programming-cloud.svg-CxBovXBR.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-3XQZgkj3.js → programming-computer-database-server.svg-C1JmOyio.js} +1 -1
- package/web/assets/{programming-computer-database.svg-6OF1JaA-.js → programming-computer-database.svg-BRjyOzP4.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-DN7C2xQ3.js → programming-module-four-layout.svg-Blwzw6Qz.js} +1 -1
- package/web/assets/{programming-module-three.svg-8zjQz2zh.js → programming-module-three.svg-6bkrmWsU.js} +1 -1
- package/web/assets/{programming-module.svg-BQpaVQTI.js → programming-module.svg-CBS9xKxX.js} +1 -1
- package/web/assets/{programming-script-code.svg-C5U07Bnn.js → programming-script-code.svg-BVhyoAD3.js} +1 -1
- package/web/assets/project-launch.store-BBYtCcv8.js +1 -0
- package/web/assets/project.store-D_2v7amt.js +1 -0
- package/web/assets/{python-CIZTrsB5.js → python-CiPYtj_d.js} +1 -1
- package/web/assets/{radiobutton-DiazMmAi.js → radiobutton--KWBHcDP.js} +3 -2
- package/web/assets/{razor-BN7EghYh.js → razor-CSoWGP30.js} +1 -1
- package/web/assets/router-CRKT3825.js +1 -0
- package/web/assets/{selectbutton-BLjfO8t-.js → selectbutton-C0NL5n4w.js} +4 -4
- package/web/assets/settings-scope-DblmUa3N.js +1 -0
- package/web/assets/{settings.store-BfxfuLM2.js → settings.store-DKTQyerJ.js} +1 -1
- package/web/assets/{shopping-cart.svg-qy6s5BGQ.js → shopping-cart.svg-C-8NG_Po.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-C9HdpVxJ.js → shopping-gift-present.svg-Bp6q5VzJ.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-CMFuFIDh.js → shopping-shipping-box-parcel-package.svg-DeWaEIwm.js} +1 -1
- package/web/assets/{src-DzTHX0Uv.js → src-BHR3l7pa.js} +17 -17
- package/web/assets/{src-CkT0Buv_.css → src-BN5gTC76.css} +1 -1
- package/web/assets/src-BRLkogf3.js +1 -0
- package/web/assets/{tag-new-circle.svg-CfhsqJra.js → tag-new-circle.svg-CTljXsqE.js} +1 -1
- package/web/assets/theme-BZzt_Sgl.js +1 -0
- package/web/assets/{toggleswitch-CjP0YQIo.js → toggleswitch-d41l5g27.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-DoZqANqT.js → travel-map-earth-globe.svg-BUkcntCp.js} +1 -1
- package/web/assets/trpc-Db0Atu8A.js +1 -0
- package/web/assets/{tsMode-tM0mPX0S.js → tsMode-B2c-rCAa.js} +4 -4
- package/web/assets/{typescript-BEUIW-V_.js → typescript-CmW4u_GQ.js} +1 -1
- package/web/assets/useAiChatDrawer-0QJJVXul.js +1 -0
- package/web/assets/useCloudOrg-E4l-99WA.js +1 -0
- package/web/assets/useEnvVarAutocomplete-BDqUWoGr.js +102 -0
- package/web/assets/{useProjectCatalog-BdouNxux.js → useProjectCatalog-Cxt-hL1H.js} +1 -1
- package/web/assets/{useProjectCloudOrg-BHkyD0dP.js → useProjectCloudOrg-CwLTQLIO.js} +1 -1
- package/web/assets/useServiceUrlHost-VIA3uP5-.js +1 -0
- package/web/assets/{xml-dZzMKM-n.js → xml-BxMqu3hT.js} +1 -1
- package/web/assets/{yaml-Bm1gOrCp.js → yaml-Djx7E3R1.js} +1 -1
- package/web/index.html +2 -2
- package/chunk-4RMM2OUU.js.map +0 -1
- package/chunk-M3UUGW5Z.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-DMB64kMa.js +0 -13
- package/web/assets/AgentTerminalPage-RN_RhpdH.js +0 -1
- package/web/assets/AiChatPage-9ko8n9o-.js +0 -1
- package/web/assets/AppLayout-C_tqGN1Z.js +0 -1
- package/web/assets/AppLayout-Db2KGjwQ.css +0 -1
- package/web/assets/AuditPage-CiOsIB_G.js +0 -1
- package/web/assets/CloudAccountPage-BPQs7Ukh.js +0 -1
- package/web/assets/CloudAccountPage-vlELc9s4.js +0 -1
- package/web/assets/CloudMessagingPage-CXVBG7G_.js +0 -2
- package/web/assets/DashboardPage-DaN6l4Aq.js +0 -1
- package/web/assets/DirectoryPickerDialog-DMAE3RCc.js +0 -1
- package/web/assets/EnvironmentFormPage-CsdoKvWm.js +0 -1
- package/web/assets/EnvironmentListPage-DNvRlujy.js +0 -1
- package/web/assets/KanbanBoardPage-BvJB1vAN.js +0 -4
- package/web/assets/KanbanBoardPage-acfjgSse.css +0 -1
- package/web/assets/KanbanListPage-BXS70nXB.js +0 -1
- package/web/assets/LaunchProjectPage-qh5FY_Hp.js +0 -1
- package/web/assets/LaunchServicesPage-cRa4PpoA.js +0 -1
- package/web/assets/LaunchShell-Xp_uKnnV.js +0 -1
- package/web/assets/LogViewer-DEa33rcG.js +0 -3
- package/web/assets/OrgKeyPrompt-DjAzt1_e.js +0 -1
- package/web/assets/OrgLogo-B90FSNG_.js +0 -1
- package/web/assets/ProcessDetailPage-CWOy22x2.js +0 -1
- package/web/assets/ProcessMetrics-C2I4giT-.js +0 -51
- package/web/assets/RandomJobTestPage-DwHtCAFt.js +0 -2
- package/web/assets/ScenarioEditorPage-CsqHIJjY.js +0 -14
- package/web/assets/ScenarioEditorPage-GmFIXPDj.css +0 -1
- package/web/assets/SendToChatDialog-CKm3Uyu8.js +0 -1
- package/web/assets/ServiceControlsBar-Cqr7rrv_.js +0 -1
- package/web/assets/ServiceDetailPage-CcBr0uNs.js +0 -2
- package/web/assets/ServiceFormPage-CzSFKd5J.js +0 -1
- package/web/assets/SettingsPage-BXY3tCv6.js +0 -2063
- package/web/assets/UnlockPage-Dz_ZeUOS.js +0 -1
- package/web/assets/VaultMigrationPage-ac8mXUny.js +0 -1
- package/web/assets/VersionBadge-DkNYiMGe.js +0 -1
- package/web/assets/WikiPage-ZAFnZhOV.js +0 -1
- package/web/assets/WikiView-CaUVD3f1.css +0 -1
- package/web/assets/WikiView-DEv8qkPA.js +0 -1
- package/web/assets/add-scalar-classes-DsQIWkxF.js +0 -387
- package/web/assets/card-BFnzVWOY.js +0 -32
- package/web/assets/client-DI09uuoY.js +0 -24
- package/web/assets/cloud-chat.store-DiiPfn2Z.js +0 -1
- package/web/assets/cloud-client-CvBR_p1A.js +0 -1
- package/web/assets/cloud-session-B__x9RFv.js +0 -2
- package/web/assets/cloud-session-CL_GKNrJ.js +0 -1
- package/web/assets/column-CrgQlR1x.js +0 -763
- package/web/assets/index-rUoTy8xc.css +0 -1
- package/web/assets/interface-content-folder.svg-Vn-2b_F8.js +0 -1
- package/web/assets/modal-BmOMX0EL.js +0 -5
- package/web/assets/modal-X_BQCOfK.js +0 -1
- package/web/assets/process.store-C0m4Wixd.js +0 -1
- package/web/assets/project-launch.store-GKs5Jjsm.js +0 -1
- package/web/assets/project.store-C_os4Nr_.js +0 -1
- package/web/assets/router-29Kkqv0z.js +0 -1
- package/web/assets/settings-scope-nt8KoQ24.js +0 -1
- package/web/assets/src-BFi137TM.js +0 -1
- package/web/assets/tabpanel-D9tIljjF.js +0 -150
- package/web/assets/theme-To2Yx9kx.js +0 -1
- package/web/assets/trpc-DiE7rC1k.js +0 -1
- package/web/assets/useAiChatDrawer-DorHkhHZ.js +0 -1
- package/web/assets/useCloudOrg-ieBKFf0P.js +0 -1
- package/web/assets/useEnvVarAutocomplete-Dqk4Xmzl.js +0 -1
- package/web/assets/useServiceUrlHost-D3DylMsX.js +0 -1
- /package/{agent-manager-TUFAFC6U.js.map → agent-manager-FUU72VGH.js.map} +0 -0
- /package/{chat-IQBWQCTK.js.map → chat-C26CBAZX.js.map} +0 -0
- /package/{chunk-GISLEYNE.js.map → chunk-FJLMXLMK.js.map} +0 -0
- /package/{chunk-7JAJSV4L.js.map → chunk-J4GLFY7G.js.map} +0 -0
- /package/{companion-YQ7CGW7W.js.map → companion-Q67RAO3N.js.map} +0 -0
- /package/{node-JU7A5NDT.js.map → node-4UUJN2WG.js.map} +0 -0
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
agentManager
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-J4GLFY7G.js";
|
|
4
4
|
import "./chunk-BDQOBEZ3.js";
|
|
5
5
|
import "./chunk-5EMEJNVU.js";
|
|
6
6
|
import "./chunk-ZFELQG4B.js";
|
|
7
|
-
import "./chunk-
|
|
7
|
+
import "./chunk-NURPXHLB.js";
|
|
8
8
|
export {
|
|
9
9
|
agentManager
|
|
10
10
|
};
|
|
11
|
-
//# sourceMappingURL=agent-manager-
|
|
11
|
+
//# sourceMappingURL=agent-manager-FUU72VGH.js.map
|
|
@@ -3,19 +3,19 @@ import {
|
|
|
3
3
|
startClaudeCodeSession,
|
|
4
4
|
startCliSession,
|
|
5
5
|
startCodexSession
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-P65BO7WZ.js";
|
|
7
7
|
import "./chunk-I7JHF5FE.js";
|
|
8
|
-
import "./chunk-
|
|
8
|
+
import "./chunk-FJLMXLMK.js";
|
|
9
9
|
import "./chunk-MD3VW4HQ.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-J4GLFY7G.js";
|
|
11
11
|
import "./chunk-BDQOBEZ3.js";
|
|
12
12
|
import "./chunk-5EMEJNVU.js";
|
|
13
13
|
import "./chunk-ZFELQG4B.js";
|
|
14
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-NURPXHLB.js";
|
|
15
15
|
export {
|
|
16
16
|
chatRouter,
|
|
17
17
|
startClaudeCodeSession,
|
|
18
18
|
startCliSession,
|
|
19
19
|
startCodexSession
|
|
20
20
|
};
|
|
21
|
-
//# sourceMappingURL=chat-
|
|
21
|
+
//# sourceMappingURL=chat-C26CBAZX.js.map
|
|
@@ -23,7 +23,7 @@ import {
|
|
|
23
23
|
serviceStore,
|
|
24
24
|
setProjectServices,
|
|
25
25
|
setProjectVault
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-J4GLFY7G.js";
|
|
27
27
|
import {
|
|
28
28
|
atomicWriteSecure,
|
|
29
29
|
fingerprintFiles,
|
|
@@ -2037,7 +2037,7 @@ async function runCompanionForTurn(conversationId) {
|
|
|
2037
2037
|
if (!hasNew) {
|
|
2038
2038
|
return skip(conversationId, "nothingNew", `rien de neuf \xE0 relire (${messageCount} messages)`);
|
|
2039
2039
|
}
|
|
2040
|
-
const { startCliSession } = await import("./chat-
|
|
2040
|
+
const { startCliSession } = await import("./chat-C26CBAZX.js");
|
|
2041
2041
|
const companionConv = await ensureCompanionConversation(conv);
|
|
2042
2042
|
const isFirstTurn = (companionConv.messages?.length ?? 0) === 0;
|
|
2043
2043
|
const exchange = formatExchange(conv.messages, from);
|
|
@@ -2152,7 +2152,7 @@ async function deliverToMainConversation(conv, message) {
|
|
|
2152
2152
|
async function attemptDelivery(conv, message) {
|
|
2153
2153
|
if (await writeToLivePty(conv.id, message)) return "pty";
|
|
2154
2154
|
try {
|
|
2155
|
-
const { startCliSession } = await import("./chat-
|
|
2155
|
+
const { startCliSession } = await import("./chat-C26CBAZX.js");
|
|
2156
2156
|
await startCliSession(conv.runner, conv.id, message, { jwt: await signJwt() });
|
|
2157
2157
|
return "headless";
|
|
2158
2158
|
} catch (err) {
|
|
@@ -2317,4 +2317,4 @@ export {
|
|
|
2317
2317
|
runCompanionNow,
|
|
2318
2318
|
initCompanion
|
|
2319
2319
|
};
|
|
2320
|
-
//# sourceMappingURL=chunk-
|
|
2320
|
+
//# sourceMappingURL=chunk-FJLMXLMK.js.map
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
decryptValueWith,
|
|
35
35
|
encryptValueWith
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-NURPXHLB.js";
|
|
37
37
|
|
|
38
38
|
// ../server/src/services/agent-manager.ts
|
|
39
39
|
import { EventEmitter as EventEmitter2 } from "events";
|
|
@@ -3112,4 +3112,4 @@ export {
|
|
|
3112
3112
|
traefikManager,
|
|
3113
3113
|
agentManager
|
|
3114
3114
|
};
|
|
3115
|
-
//# sourceMappingURL=chunk-
|
|
3115
|
+
//# sourceMappingURL=chunk-J4GLFY7G.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// ../../packages/shared/src/node/node-path.ts
|
|
2
2
|
import { dirname, delimiter } from "path";
|
|
3
3
|
function ensureNodeBinOnPath(environment = process.env) {
|
|
4
|
-
|
|
4
|
+
prependToPath(dirname(process.execPath), environment);
|
|
5
5
|
}
|
|
6
6
|
function appendToPath(dir, environment = process.env) {
|
|
7
7
|
if (!dir) return;
|
|
@@ -10,6 +10,13 @@ function appendToPath(dir, environment = process.env) {
|
|
|
10
10
|
if (entries.includes(dir)) return;
|
|
11
11
|
environment["PATH"] = entries.length > 0 ? `${current}${delimiter}${dir}` : dir;
|
|
12
12
|
}
|
|
13
|
+
function prependToPath(dir, environment = process.env) {
|
|
14
|
+
if (!dir) return;
|
|
15
|
+
const current = environment["PATH"] ?? "";
|
|
16
|
+
const entries = current.split(delimiter).filter(Boolean);
|
|
17
|
+
if (entries.includes(dir)) return;
|
|
18
|
+
environment["PATH"] = entries.length > 0 ? `${dir}${delimiter}${current}` : dir;
|
|
19
|
+
}
|
|
13
20
|
|
|
14
21
|
// ../../packages/shared/src/node/user-path.ts
|
|
15
22
|
import { execFile } from "child_process";
|
|
@@ -54,8 +61,9 @@ async function readLoginShellPath() {
|
|
|
54
61
|
async function ensureUserBinsOnPath(environment = process.env, home = homedir()) {
|
|
55
62
|
const shellPath = await readLoginShellPath();
|
|
56
63
|
if (shellPath) {
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
const entries = shellPath.split(delimiter2).filter(Boolean);
|
|
65
|
+
for (let i = entries.length - 1; i >= 0; i--) {
|
|
66
|
+
prependToPath(entries[i], environment);
|
|
59
67
|
}
|
|
60
68
|
}
|
|
61
69
|
for (const dir of commonUserBins(home)) {
|
|
@@ -170,6 +178,7 @@ function decryptValueWith(key, encrypted) {
|
|
|
170
178
|
export {
|
|
171
179
|
ensureNodeBinOnPath,
|
|
172
180
|
appendToPath,
|
|
181
|
+
prependToPath,
|
|
173
182
|
readLoginShellPath,
|
|
174
183
|
ensureUserBinsOnPath,
|
|
175
184
|
stampConsole,
|
|
@@ -179,4 +188,4 @@ export {
|
|
|
179
188
|
encryptValueWith,
|
|
180
189
|
decryptValueWith
|
|
181
190
|
};
|
|
182
|
-
//# sourceMappingURL=chunk-
|
|
191
|
+
//# sourceMappingURL=chunk-NURPXHLB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../packages/shared/src/node/node-path.ts","../../../packages/shared/src/node/user-path.ts","../../../packages/shared/src/node/log-timestamps.ts","../../../packages/shared/src/node/cli-invocation.ts","../../../packages/shared/src/node/aes-gcm.ts"],"sourcesContent":["import { dirname, delimiter } from 'node:path';\n\n/**\n * Garantit que le répertoire du binaire Node est dans le `PATH` des services.\n *\n * Un raccourci de bureau n'hérite pas du `PATH` d'un shell de connexion : il\n * reçoit celui de la session graphique, où les gestionnaires de version (n, nvm,\n * fnm, volta, brew) ne figurent pas. Node, lui, est lancé par chemin absolu et\n * démarre très bien — mais `npm`, `npx`, `yarn` et `corepack`, qui vivent à côté\n * de lui, deviennent introuvables. Un service échoue alors sur un message qui ne\n * dit rien de sa cause : « cannot find package manager binary ».\n *\n * Le répertoire est ajouté EN TÊTE. Être présent dans le `PATH` ne suffit pas :\n * un poste où `/usr/bin/node` est un Node système ancien le résoudrait avant le\n * nôtre, et le service démarrerait sur la mauvaise version sans rien signaler.\n */\nexport function ensureNodeBinOnPath(environment: NodeJS.ProcessEnv = process.env): void {\n prependToPath(dirname(process.execPath), environment);\n}\n\n/**\n * Ajoute un répertoire en queue du `PATH`, sans doublon ni séparateur vide.\n */\nexport function appendToPath(dir: string, environment: NodeJS.ProcessEnv = process.env): void {\n if (!dir) return;\n const current = environment['PATH'] ?? '';\n const entries = current.split(delimiter).filter(Boolean);\n if (entries.includes(dir)) return;\n environment['PATH'] = entries.length > 0 ? `${current}${delimiter}${dir}` : dir;\n}\n\n/**\n * Ajoute un répertoire en TÊTE du `PATH`, sans doublon ni séparateur vide.\n *\n * Réservé à ce dont on connaît la provenance — le Node qui nous exécute, le\n * `PATH` du shell de connexion de l'utilisateur — par opposition aux\n * emplacements devinés, qui restent en queue.\n *\n * Un répertoire déjà présent n'est PAS déplacé : on complète un `PATH`, on ne\n * réordonne pas les choix que la machine a déjà faits pour ses propres\n * répertoires.\n */\nexport function prependToPath(dir: string, environment: NodeJS.ProcessEnv = process.env): void {\n if (!dir) return;\n const current = environment['PATH'] ?? '';\n const entries = current.split(delimiter).filter(Boolean);\n if (entries.includes(dir)) return;\n environment['PATH'] = entries.length > 0 ? `${dir}${delimiter}${current}` : dir;\n}\n","import { execFile } from 'node:child_process';\nimport { promisify } from 'node:util';\nimport { homedir } from 'node:os';\nimport { existsSync, statSync } from 'node:fs';\nimport { join, delimiter } from 'node:path';\nimport { appendToPath, prependToPath } from './node-path.js';\n\nconst execFileAsync = promisify(execFile);\n\n/**\n * Marqueur : un `.zshrc` interactif écrit volontiers sur stdout (bannières,\n * gestionnaires de version, `motd`). Sans balise, on ne sait pas quelle ligne\n * est le `PATH`.\n */\nconst MARKER = '__RUNEYA_PATH__';\n\n/** Le profil de l'utilisateur peut être long à charger — mais pas éternel. */\nconst SHELL_TIMEOUT_MS = 3000;\n\n/**\n * Emplacements où un CLI utilisateur s'installe sans passer par le système.\n * Filet de sécurité quand le shell de connexion n'a rien donné : on ne devine\n * pas les gestionnaires de version (chemins versionnés), seulement le banal.\n */\nfunction commonUserBins(home: string): string[] {\n return [\n join(home, '.local', 'bin'),\n join(home, 'bin'),\n join(home, '.npm-global', 'bin'),\n join(home, '.bun', 'bin'),\n join(home, '.cargo', 'bin'),\n '/opt/homebrew/bin',\n '/usr/local/bin',\n ];\n}\n\n/**\n * Demande son `PATH` au shell de connexion de l'utilisateur.\n *\n * Un raccourci de bureau reçoit le `PATH` de la session graphique, pas celui du\n * shell : `~/.local/bin`, nvm, fnm, volta, mise, asdf… n'y figurent pas. Le CLI\n * installé par l'utilisateur devient alors introuvable, et l'agent le déclare\n * simplement « non disponible ».\n *\n * Renvoie `null` en cas d'échec (Windows, pas de `SHELL`, timeout, profil qui\n * plante) : l'absence de réponse ne doit jamais empêcher l'agent de démarrer.\n */\nexport async function readLoginShellPath(): Promise<string | null> {\n if (process.platform === 'win32') return null;\n\n const shell = process.env['SHELL'];\n if (!shell || !existsSync(shell)) return null;\n\n try {\n // `-l -i` : le `PATH` d'un utilisateur vit aussi bien dans le profil de\n // connexion que dans le fichier interactif (`.zshrc`, `.bashrc`).\n // `shell: false` : le shell EST le programme lancé, pas l'interpréteur.\n const { stdout } = await execFileAsync(shell, ['-l', '-i', '-c', `echo \"${MARKER}$PATH\"`], {\n timeout: SHELL_TIMEOUT_MS,\n shell: false,\n encoding: 'utf8',\n maxBuffer: 1024 * 1024,\n env: { ...process.env, TERM: 'dumb' },\n });\n\n const line = stdout.split('\\n').find(l => l.includes(MARKER));\n if (!line) return null;\n\n const value = line.slice(line.indexOf(MARKER) + MARKER.length).trim();\n return value.length > 0 ? value : null;\n } catch {\n return null;\n }\n}\n\n/**\n * Complète le `PATH` de l'agent avec ce que le shell de connexion connaît, puis\n * avec les emplacements utilisateur usuels qui existent réellement sur disque.\n *\n * Le `PATH` du shell passe EN TÊTE, comme pour Node. Le mettre en queue\n * revenait à ne rien faire là où ça comptait : sur un poste portant un Node\n * système en `/usr/bin`, celui-ci l'emportait sur la version choisie par\n * l'utilisateur (nvm, fnm, volta…), et le service démarrait sur la mauvaise\n * sans qu'aucun message ne le dise. Ce que l'utilisateur a choisi pour son\n * shell est ce qu'il attend de ses services.\n *\n * Les emplacements usuels, eux, restent EN QUEUE : ce sont des devinettes, pas\n * une préférence exprimée. Un répertoire déjà présent n'est jamais déplacé.\n */\nexport async function ensureUserBinsOnPath(\n environment: NodeJS.ProcessEnv = process.env,\n home: string = homedir(),\n): Promise<void> {\n const shellPath = await readLoginShellPath();\n if (shellPath) {\n // Parcours à l'envers : chaque entrée passe devant la précédente, donc\n // remonter la liste de la fin vers le début restitue son ordre d'origine.\n const entries = shellPath.split(delimiter).filter(Boolean);\n for (let i = entries.length - 1; i >= 0; i--) {\n prependToPath(entries[i]!, environment);\n }\n }\n\n for (const dir of commonUserBins(home)) {\n if (isDirectory(dir)) appendToPath(dir, environment);\n }\n}\n\nfunction isDirectory(path: string): boolean {\n try {\n return statSync(path).isDirectory();\n } catch {\n return false;\n }\n}\n","/**\n * Horodate ce que le process écrit sur la console, en temps écoulé depuis son\n * démarrage.\n *\n * Les 300 et quelques appels à `console.log` du serveur, de l'agent et du CLI\n * n'ont pas à être réécrits : on enveloppe `console` une fois, au démarrage, et\n * tout ce qui passe par lui est daté — jusqu'aux bibliothèques tierces.\n *\n * Le delta plutôt que l'heure : ces journaux servent surtout à comprendre ce qui\n * prend du temps au sein d'un même lancement, et « +1.204s » se lit sans\n * soustraction mentale. L'heure absolue reste disponible dans le journal\n * d'audit, qui, lui, sert à recouper avec le cloud.\n */\n\n/**\n * Une ligne qui ne dit rien à dater : une ligne vide, ou un morceau d'encadré.\n *\n * La bannière de démarrage est dessinée ligne à ligne ; un horodatage devant\n * chacune casse l'alignement des colonnes et n'apprend rien — elles sont toutes\n * écrites dans la même milliseconde.\n */\nfunction isDecorative(args: unknown[]): boolean {\n if (args.length === 0) return true;\n const first = args[0];\n if (typeof first !== 'string') return false;\n const trimmed = first.trim();\n return trimmed === '' || /^[┌│└├┬┴┼─┐┘┤]/.test(trimmed);\n}\n\nconst LEVELS = ['log', 'info', 'warn', 'error', 'debug'] as const;\n\n/** Le temps écoulé, cadré pour que les lignes s'alignent en colonne. */\nfunction formatElapsed(startedAt: number, now: number): string {\n const seconds = (now - startedAt) / 1000;\n return `+${seconds.toFixed(3)}s`.padStart(10);\n}\n\n/**\n * Enveloppe `console`. Rend une fonction qui remet l'original en place — les\n * tests en ont besoin, et un mode dont la sortie est lue par un script aussi.\n *\n * Appelé deux fois, le second appel ne fait rien : sans cette garde, deux\n * horodatages se cumuleraient sur chaque ligne.\n */\nexport function stampConsole(startedAt: number = Date.now()): () => void {\n const target = console as unknown as Record<string, unknown> & { __runeyaStamped?: boolean };\n if (target.__runeyaStamped) return () => {};\n target.__runeyaStamped = true;\n\n const originals = LEVELS.map((level) => {\n const original = console[level].bind(console);\n console[level] = (...args: unknown[]) => (\n isDecorative(args)\n ? original(...args)\n : original(formatElapsed(startedAt, Date.now()), ...args)\n );\n return [level, original] as const;\n });\n\n return () => {\n for (const [level, original] of originals) console[level] = original;\n target.__runeyaStamped = false;\n };\n}\n","import { execFile, execFileSync } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { dirname, resolve as resolvePath } from 'node:path';\n\nexport interface CliInvocation {\n command: string;\n args: string[];\n}\n\n/**\n * Comment lancer un CLI global (`claude`, `codex`) sur la plateforme courante.\n *\n * Windows : un CLI installé globalement par npm n'est pas un `.exe` mais un\n * shim `claude.cmd`. Ni `child_process.spawn(..., { shell: false })` ni\n * `pty.spawn()` ne savent le lancer — node-pty échoue sur « File not found:\n * claude ». Passer par `cmd.exe /c` fonctionnerait mais abîme les arguments\n * (le prompt système contient guillemets, retours à la ligne et `%`), donc on\n * résout le point d'entrée JS visé par le shim et on le lance avec le `node`\n * courant.\n *\n * Sur POSIX la commande est rendue telle quelle : rien ne change pour Linux\n * ni macOS.\n */\nexport function resolveCliInvocation(cli: string, args: string[] = []): CliInvocation {\n if (process.platform !== 'win32') return { command: cli, args };\n if (/\\.exe$/i.test(cli)) return { command: cli, args };\n\n // 1. Localiser le shim sur le PATH (sauf si un chemin explicite est donné).\n let shim = cli;\n if (!cli.includes('\\\\') && !cli.includes('/')) {\n let found: string[] = [];\n try {\n // Borné : un `where` qui ne rend pas la main figerait le process appelant,\n // puisque la résolution est synchrone.\n found = execFileSync('where', [cli], { encoding: 'utf-8', timeout: 5_000, windowsHide: true })\n .split(/\\r?\\n/).map((l) => l.trim()).filter(Boolean);\n } catch { /* absent du PATH — laisser le spawn échouer avec son propre message */ }\n const exe = found.find((f) => /\\.exe$/i.test(f));\n if (exe) return { command: exe, args };\n shim = found.find((f) => /\\.cmd$/i.test(f)) ?? found[0] ?? cli;\n }\n if (/\\.exe$/i.test(shim)) return { command: shim, args };\n\n // 2. Extraire le point d'entrée `.js` du shim npm et le lancer avec node.\n if (/\\.cmd$/i.test(shim) && existsSync(shim)) {\n try {\n const content = readFileSync(shim, 'utf-8');\n // Les shims npm écrivent « %~dp0\\...\\cli.js » ; certains outils écrivent\n // « %~dp0%\\...\\cli.js ». Les deux formes mènent au même point d'entrée.\n const m = content.match(/%~?dp0%?\\\\?([^\"\\s]+\\.js)/i);\n if (m?.[1]) {\n const entry = resolvePath(dirname(shim), m[1].replace(/^\\\\+/, ''));\n if (existsSync(entry)) return { command: process.execPath, args: [entry, ...args] };\n }\n } catch { /* on retombe sur l'interpréteur de commandes */ }\n }\n\n // 3. Dernier recours : confier à l'interpréteur de commandes.\n const comspec = process.env['ComSpec'] || process.env['COMSPEC'] || 'cmd.exe';\n return { command: comspec, args: ['/d', '/s', '/c', shim, ...args] };\n}\n\n/**\n * La commande qui dit où vit un exécutable, selon la plateforme.\n *\n * `which` n'existe pas sur Windows ; une détection qui l'appelle y répond\n * toujours « absent », quel que soit l'outil installé.\n */\nexport function whichCommand(): string {\n return process.platform === 'win32' ? 'where' : 'which';\n}\n\n/**\n * `<cli> --version` répond-il ?\n *\n * Le même contrôle vivait côté serveur et côté agent, et les deux lançaient\n * `execFile('claude', …, { shell: false })` : sur Windows, un shim `.cmd` n'est\n * pas lançable ainsi, et la détection répondait « absent » pour un CLI\n * parfaitement installé — l'interface désactivait alors le runner.\n */\nexport async function isCliAvailable(cli: string, timeoutMs = 5_000): Promise<boolean> {\n const { command, args } = resolveCliInvocation(cli, ['--version']);\n return new Promise((resolve) => {\n execFile(command, args, { timeout: timeoutMs, windowsHide: true }, (err) => resolve(!err));\n });\n}\n","import { randomBytes, createCipheriv, createDecipheriv } from 'node:crypto';\n\nconst ALGORITHM = 'aes-256-gcm';\n\n/**\n * Encrypt under a caller-supplied key.\n *\n * The no-key forms in the server read the process keyring, which is the right default\n * everywhere except migration: converting a vault means holding two keys at\n * once, and neither of them is \"the\" current one.\n */\nexport function encryptValueWith(key: Buffer, plaintext: string): string {\n const iv = randomBytes(16);\n const cipher = createCipheriv(ALGORITHM, key, iv);\n let enc = cipher.update(plaintext, 'utf-8', 'hex');\n enc += cipher.final('hex');\n const authTag = cipher.getAuthTag().toString('hex');\n return `${iv.toString('hex')}:${authTag}:${enc}`;\n}\n\n/** Decrypt under a caller-supplied key. Throws when the key does not open it. */\nexport function decryptValueWith(key: Buffer, encrypted: string): string {\n const parts = encrypted.split(':');\n if (parts.length !== 3) throw new Error('Invalid encrypted value format — expected iv:authTag:ciphertext');\n const [ivHex, authTagHex, ciphertext] = parts;\n if (!/^[0-9a-f]+$/i.test(ivHex) || !/^[0-9a-f]+$/i.test(authTagHex) || (ciphertext !== '' && !/^[0-9a-f]+$/i.test(ciphertext))) {\n throw new Error('Invalid hex in encrypted value — possible data corruption');\n }\n const decipher = createDecipheriv(ALGORITHM, key, Buffer.from(ivHex, 'hex'), { authTagLength: 16 });\n decipher.setAuthTag(Buffer.from(authTagHex, 'hex'));\n let dec = decipher.update(ciphertext, 'hex', 'utf-8');\n dec += decipher.final('utf-8');\n return dec;\n}\n"],"mappings":"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","names":["delimiter","delimiter","execFile","existsSync","dirname"]}
|