@runeya/runeya 2.0.77 → 2.0.79
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 +56 -3
- package/agent/index.js.map +1 -1
- package/agent-manager-KM7SFKVR.js +7 -0
- package/{chunk-WDM637TW.js → chunk-T3TDCZUY.js} +57 -4
- package/chunk-T3TDCZUY.js.map +1 -0
- package/index.js +1 -1
- package/mcp-server/index.js +85 -2
- package/mcp-server/index.js.map +1 -1
- package/package.json +1 -1
- package/{src-WON4SLMI.js → src-6PAM4JRF.js} +249 -75
- package/src-6PAM4JRF.js.map +1 -0
- package/web/assets/{AgentScalarChatInterface.vue-BKtO8e-V.js → AgentScalarChatInterface.vue-Cjx4rHX2.js} +3 -3
- package/web/assets/AgentTerminalPage-EZkJENnM.js +1 -0
- package/web/assets/AiChatPage-bW3RWF13.js +1 -0
- package/web/assets/AppLayout-61eh74HD.js +1 -0
- package/web/assets/{AppLayout-Dvr7plrF.css → AppLayout-DNaAILBs.css} +1 -1
- package/web/assets/AuditPage-IEQ-7llQ.js +1 -0
- package/web/assets/CloudAccountPage-DxS1F0vT.js +1 -0
- package/web/assets/CloudAccountPage-UjgYp_cm.js +1 -0
- package/web/assets/CloudMessagingPage-DyPt88Nh.js +2 -0
- package/web/assets/DashboardPage-s40sRkjs.js +1 -0
- package/web/assets/DirectoryPickerDialog-Czkp1Q7J.js +1 -0
- package/web/assets/{EditorIcon-BY3-sVPA.js → EditorIcon-EQ5sr6h1.js} +2 -2
- package/web/assets/EnvironmentForm-BDvSKtV3.js +108 -0
- package/web/assets/EnvironmentFormPage-BIiHAeAe.js +1 -0
- package/web/assets/EnvironmentListPage-D7YCKAry.js +1 -0
- package/web/assets/KanbanBoardPage-BSVcjsFH.js +4 -0
- package/web/assets/KanbanBoardPage-DKdXK4Qx.css +1 -0
- package/web/assets/KanbanListPage-Ckorylra.js +1 -0
- package/web/assets/LaunchProjectPage-BuDrO-dr.js +1 -0
- package/web/assets/LaunchProjectPage-CCtlg5Kz.css +1 -0
- package/web/assets/LaunchServicesPage-NtGLfvlv.js +1 -0
- package/web/assets/LaunchServicesPage-PMkfsl54.css +1 -0
- package/web/assets/LogViewer-0gHkNfoF.js +3 -0
- package/web/assets/OrgKeyPrompt-ChdmIeDS.js +1 -0
- package/web/assets/{ProcessControls-CSZGFSpk.js → ProcessControls-DtYIwxFh.js} +1 -1
- package/web/assets/ProcessDetailPage-C4CBtxzN.js +1 -0
- package/web/assets/{ProcessMetrics-CbaSXK63.js → ProcessMetrics-CBxoD3mq.js} +2 -2
- package/web/assets/ProjectDetailPage-Ch3w5gaP.js +1 -0
- package/web/assets/ProjectListPage-DxVckdPq.js +1 -0
- package/web/assets/RandomJobTestPage-BOnJfdfV.js +2 -0
- package/web/assets/ScenarioEditorPage-SXqdd0-1.js +14 -0
- package/web/assets/SendToChatDialog-N2AU0GS0.js +1 -0
- package/web/assets/ServiceControlsBar-CkF9T-Cl.js +1 -0
- package/web/assets/ServiceDetailPage-CvqE9h6I.js +2 -0
- package/web/assets/ServiceFormPage-CshXzwrR.js +1 -0
- package/web/assets/SettingsPage-BI7yykWy.js +2063 -0
- package/web/assets/UnlockPage-CpysPhlT.css +1 -0
- package/web/assets/UnlockPage-rUr_VIJo.js +1 -0
- package/web/assets/VariablesTable-uemjJh3C.js +1 -0
- package/web/assets/VaultMigrationPage-CIngneiY.css +1 -0
- package/web/assets/VaultMigrationPage-DFZfLyT2.js +1 -0
- package/web/assets/VersionBadge-BiRPinCw.js +1 -0
- package/web/assets/WikiPage-Cu4-7u2f.js +1 -0
- package/web/assets/WikiView-BY7QtPKf.js +1 -0
- package/web/assets/add-scalar-classes-BvRx5gFW.js +387 -0
- package/web/assets/auth-errors-BIRt7ulx.js +1 -0
- package/web/assets/autocomplete-Dx4-R-Qa.js +308 -0
- package/web/assets/{basic-shape-diamond.svg-e2mztVJl.js → basic-shape-diamond.svg-D9HQNu6x.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-BabvvzO8.js → basic-shape-hexagon.svg-BLkvD1jK.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-qX_EIwRC.js → basic-shape-primary-circle-ellipse-round.svg-Bsfgrw0z.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-BC_lPlNz.js → basic-shape-primary-square-rectangle.svg-Cl_SRAdr.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-Cs-Q1jtG.js → basic-shape-shield.svg-Br_5PIve.js} +1 -1
- package/web/assets/{browser-TQOmEABX.js → browser-BuzduiU6.js} +1 -1
- package/web/assets/{browser-Dny5CSfR.js → browser-DuenoSNG.js} +1 -1
- package/web/assets/card-CxqAMieZ.js +32 -0
- package/web/assets/{checkbox-DPfaZ5M_.js → checkbox-DR0TgZHz.js} +3 -3
- package/web/assets/{chip-DsGV0_Iw.js → chip-Beh-yjqy.js} +2 -2
- package/web/assets/{client-DVldvprj.js → client-BpBAdgho.js} +1 -1
- package/web/assets/cloud-chat.store-DF1OJFcw.js +1 -0
- package/web/assets/cloud-session-2NC0j9sm.js +1 -0
- package/web/assets/column-NdoVyBai.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-CmAS9W1F.js → computer-device-desktop-monitor.svg-C7xIBZiz.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-ByQvPTu0.js → computer-device-desktop.svg-m15jSfTu.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-Be3DJfJS.js → computer-device-laptop.svg-DuGGRxCr.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-Bg4HriyB.js → computer-device-mobile-phone-android-samsung-back.svg-tNcHABvV.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-Cbs1ZC8K.js → computer-device-mobile-phone-android-samsung.svg-DqomXsCT.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-SrmNqd-k.js → computer-device-mobile-phone-iphone-x-back.svg-BQYLAqvU.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-CRbRsx9O.js → computer-device-mobile-phone-iphone-x.svg-BTqfvYmE.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-CYxQ_G-f.js → computer-device-mobile-tablet-touch.svg-BWwfMvTI.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-8Y2qx2nG.js → computer-device-mobile-tablet.svg-9-cDdNh0.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-DuMVeY9S.js → computer-device-network-ethernet-cat6.svg-dec4c9f7.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-CMl88oMx.js → computer-device-network-lan-www.svg-CfxdVlX6.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-BLKrhbzD.js → computer-device-network-wifi-connection.svg-Aq3c3kpj.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-DegDkOS9.js → computer-device-network-wifi-router.svg-D30KniBG.js} +1 -1
- package/web/assets/{cssMode-BXMOCv71.js → cssMode-Bx7OM1AF.js} +1 -1
- package/web/assets/{divider-C9G7_D2G.js → divider-e8srWIpS.js} +2 -2
- package/web/assets/{docx-preview-DavEWOCt.js → docx-preview-trPKCLuS.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-DmbDAbFP.js → ecology-science-erlenmeyer-flask.svg-CRh6aGQD.js} +1 -1
- package/web/assets/{fieldset-oJKjCI7s.js → fieldset-0TLkhgk1.js} +2 -2
- package/web/assets/{freemarker2-B8tfMW3C.js → freemarker2-CjlsJILS.js} +1 -1
- package/web/assets/{handlebars-CePhsdSW.js → handlebars-hKjqU20X.js} +1 -1
- package/web/assets/{html-571VCOQ9.js → html-1lRHqbTC.js} +1 -1
- package/web/assets/{htmlMode-CVxsAwkf.js → htmlMode-KrX4AuJb.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-AnW8MOVQ.js → image-flash-lightning.svg-awIm9H7j.js} +1 -1
- package/web/assets/{image-picture-flower.svg-FiFJUYlQ.js → image-picture-flower.svg-0ej02v71.js} +1 -1
- package/web/assets/{index-BGhTRiUv.js → index-CyTp_MK4.js} +673 -358
- package/web/assets/index-Cz0azMVO.css +1 -0
- package/web/assets/{interface-alert-exclamation-diamond.svg-oGZV7xVw.js → interface-alert-exclamation-diamond.svg-CghieGSb.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-DAVdspM_.js → interface-alert-exclamation-triangle-warning.svg-CwlouhWg.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-D18QJNgs.js → interface-alert-information-circle.svg-CFjDz1cs.js} +1 -1
- package/web/assets/{interface-award-crown.svg-CA1wQid9.js → interface-award-crown.svg-CC_YNTlQ.js} +1 -1
- package/web/assets/{interface-bookmark.svg-C9irM7Rx.js → interface-bookmark-tag.svg-DzKVQx1D.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-B7cb2okO.js → interface-bookmark.svg-BoMtyTYl.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-DE5gBV6v.js → interface-calendar-date-one.svg-DwPLZLNp.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-BFz7YanP.js → interface-content-book-open-pages.svg-BRNhpR0b.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-XsbyPJwv.js → interface-content-book-page.svg-D6f84ENa.js} +1 -1
- package/web/assets/{interface-content-file.svg-D6q2wWLi.js → interface-content-file.svg-BxSwWskY.js} +1 -1
- package/web/assets/{interface-content-folder.svg-CHkU4LKW.js → interface-content-folder.svg-D9vDlA-7.js} +1 -1
- package/web/assets/interface-content-folder.svg-DA-TRWg5.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-DBtOk_bA.js → interface-copy-clipboard.svg-CLWuiWQR.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-Dz3-OOve.js → interface-edit-attachment.svg-DkE6Zp16.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-ByBP8ehM.js → interface-edit-binocular.svg-CsnS4sfu.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-DfcOCpiG.js → interface-edit-magic-wand.svg-D7fNjVU0.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-CRGZNjWp.js → interface-edit-tool-paint-roller.svg-BNGqMsSE.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-zsOWLIqc.js → interface-edit-tool-pencil.svg-DGj85i4b.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-DLVKZn5N.js → interface-favorite-award.svg-DYJQG2z5.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-C5YPye-o.js → interface-favorite-flag.svg-z_VpsLBz.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-XX875VH2.js → interface-favorite-heart.svg-C-RVoQp_.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-CwodnhEd.js → interface-favorite-star.svg-D1XyCk_H.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-CaHoULcK.js → interface-favorite-stars-sparkles.svg-CpbpNxr4.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-Dw0Hiig6.js → interface-hierarchy-flowchart.svg-DhRkNwJk.js} +1 -1
- package/web/assets/{interface-home-house.svg-Dr6ONbPr.js → interface-home-house.svg-CIKaitr0.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-DPlIj_h5.js → interface-hyperlink.svg-CPv8WDpv.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-lTDIWcG1.js → interface-lighting-brightness.svg-Ds9dNkBb.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-DbLIOlp2.js → interface-lock-closed.svg-CH0keiMQ.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-AtzqURqy.js → interface-lock-open-unlock.svg-sM2ipMSY.js} +1 -1
- package/web/assets/{interface-login-key.svg-m-Fs6HY3.js → interface-login-key.svg-w20Bufjr.js} +1 -1
- package/web/assets/{interface-search.svg-DFUBMy6X.js → interface-search.svg-CG8DZ4bz.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-DZ0_Nd7i.js → interface-setting-cog.svg-DvY1eW4l.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-YrYkQDPm.js → interface-share-megaphone-bullhorn.svg-BL0sxQKM.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-DRDHefw2.js → interface-share-rocket.svg-BbDtgcMw.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CVNiRXqB.js → interface-share-satellite.svg-hj8wdj8n.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-CpgNADXr.js → interface-share-space-ship.svg-DwezJA6M.js} +1 -1
- package/web/assets/{interface-share.svg-Djd0yOl3.js → interface-share.svg-BDakrqyS.js} +1 -1
- package/web/assets/{interface-signal-square.svg-zPFYxRs3.js → interface-signal-square.svg-Bd85bHcQ.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-D0MsoIC_.js → interface-time-clock-circle.svg-BFPYG2_y.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-CfqSkT16.js → interface-time-hour-glass.svg-XEEhGJNc.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-C_Tspx5q.js → interface-users-multiple.svg-DlDS4pFQ.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-ChEcMLSN.js → interface-weather-moon.svg-qamRI73e.js} +1 -1
- package/web/assets/{javascript-pUCsYoU8.js → javascript-BMcm76Iy.js} +1 -1
- package/web/assets/{jsonMode-C0uzq8yR.js → jsonMode-CFeh3q-t.js} +2 -2
- package/web/assets/{liquid-C5Ev6uFa.js → liquid-BbZ7m_Gg.js} +1 -1
- package/web/assets/{lspLanguageFeatures-DYaT_fqo.js → lspLanguageFeatures-D6fqdMqo.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-CuZEWYk3.js → mail-chat-bubble-square.svg-lTDk1-cI.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-CENY8qyv.js → mail-send-email-paper-airplane.svg-DHTPOPNN.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-B0p8Ko-e.js → mail-send-envelope.svg-DrKev7cA.js} +1 -1
- package/web/assets/{mdx-DKUSX-0M.js → mdx-BFTLCqIq.js} +1 -1
- package/web/assets/{minus-Cn4do0vQ.js → minus-BQIxFtXx.js} +2 -2
- package/web/assets/modal-CRtjbIPi.js +1 -0
- package/web/assets/modal-CU4p0zoB.js +5 -0
- package/web/assets/{money-cashier-receipt.svg-D6MTv6ic.js → money-cashier-receipt.svg-DrMInbv1.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-C0CT_Umg.js → money-currency-dollar-pay.svg-D3qWQTD7.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-B1pQ-RCg.js → money-graph-arrow-increase.svg-BNMlMSSu.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-Df0BEyR6.js → money-graph-bar-chart-increase.svg-C4ZbxWQ0.js} +1 -1
- package/web/assets/multiselect-b0l1ZyGV.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-B7IiKgr5.js → nature-ecology-leaf.svg-Bc4U3t3c.js} +1 -1
- package/web/assets/{password-UNoAlO0Z.js → password-zUKcXhNa.js} +4 -4
- package/web/assets/{phone-telephone.svg-CULSkJvU.js → phone-telephone.svg-Op0vC0uZ.js} +1 -1
- package/web/assets/{plus-CCNhU8WS.js → plus-NzhFUR3J.js} +6 -6
- package/web/assets/process.store-DaN2Fpm8.js +1 -0
- package/web/assets/{programming-bug.svg-BkAWg-zz.js → programming-bug.svg-BPBc7yJC.js} +1 -1
- package/web/assets/{programming-cloud.svg-CElVVYxR.js → programming-cloud.svg-Cj4iIxN0.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-DTOugM3g.js → programming-computer-database-server.svg-B6JDyOUE.js} +1 -1
- package/web/assets/{programming-computer-database.svg-BEtc2j2j.js → programming-computer-database.svg-MXlEDVjR.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-CfMkXMQV.js → programming-module-four-layout.svg-CTOezzR9.js} +1 -1
- package/web/assets/{programming-module-three.svg-BEGzxEbd.js → programming-module-three.svg-Ds0SxfuW.js} +1 -1
- package/web/assets/{programming-module.svg-WcMyqgA5.js → programming-module.svg-dtxYxE76.js} +1 -1
- package/web/assets/{programming-script-code.svg-BlKU_DbS.js → programming-script-code.svg-BfE32sHE.js} +1 -1
- package/web/assets/{python-CX7nl3fS.js → python-DdxzkbZ6.js} +1 -1
- package/web/assets/{razor-1qMzYaOc.js → razor-BaPQKfzN.js} +1 -1
- package/web/assets/router-BzZYIGu6.js +1 -0
- package/web/assets/settings-scope-BCvTkdxE.js +1 -0
- package/web/assets/settings.store-ChTd1UeA.js +1 -0
- package/web/assets/{shopping-cart.svg-DVuGrIwZ.js → shopping-cart.svg-B0oB45_X.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-D6-559VB.js → shopping-gift-present.svg-Dg_UKNrW.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BCqjCO2V.js → shopping-shipping-box-parcel-package.svg-DsoPC6GT.js} +1 -1
- package/web/assets/{src-DXup2ujI.js → src-BCGduELr.js} +26 -26
- package/web/assets/{src-Bhd-KJy_.css → src-BsM0Obsp.css} +1 -1
- package/web/assets/src-_iQSlqGE.js +1 -0
- package/web/assets/{tabpanel-c1kswNhr.js → tabpanel-BH5ZsTUr.js} +3 -3
- package/web/assets/{tag-new-circle.svg-DJekwjr2.js → tag-new-circle.svg-Bt8lUfCb.js} +1 -1
- package/web/assets/{toggleswitch-CyIjsk3N.js → toggleswitch-C5kmCEN7.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-CgYzLmEQ.js → travel-map-earth-globe.svg-vJ1Kg6FY.js} +1 -1
- package/web/assets/trpc-EkL9tT-u.js +1 -0
- package/web/assets/{tsMode-Dwc3vyi8.js → tsMode-BsBJyGKK.js} +6 -6
- package/web/assets/{typescript-B4Szu53E.js → typescript-eGcJYUd4.js} +1 -1
- package/web/assets/useAiChatDrawer-DWlbD-_B.js +1 -0
- package/web/assets/useCloudOrg-BUsAdgoq.js +572 -0
- package/web/assets/useCloudOrg-Drl2_37-.css +1 -0
- package/web/assets/{useProjectCatalog-Chvnlk7w.js → useProjectCatalog-FfB9tOOm.js} +1 -1
- package/web/assets/{xml-Cmwfj5No.js → xml-DKM3cWQE.js} +1 -1
- package/web/assets/{yaml-BwAEhb0d.js → yaml-D0z-VNdc.js} +1 -1
- package/web/index.html +2 -2
- package/agent-manager-JUVAVUIQ.js +0 -7
- package/chunk-WDM637TW.js.map +0 -1
- package/src-WON4SLMI.js.map +0 -1
- package/web/assets/AgentTerminalPage-2fGeLuFz.js +0 -1
- package/web/assets/AiChatPage-su8lBLuu.js +0 -1
- package/web/assets/AppLayout-CVBdnnXe.js +0 -1
- package/web/assets/AuditPage-ggADH3yd.js +0 -1
- package/web/assets/CloudAccountPage-DeF7HGaQ.js +0 -1
- package/web/assets/CloudAccountPage-eLXfNifH.js +0 -1
- package/web/assets/CloudMessagingPage-B_5g7iun.js +0 -2
- package/web/assets/DashboardPage-Cl-oihCh.js +0 -1
- package/web/assets/DirectoryPickerDialog-BmC5PT-P.js +0 -1
- package/web/assets/EnvironmentForm-BvSPE7Fj.js +0 -108
- package/web/assets/EnvironmentFormPage-CjLt1Yvf.js +0 -1
- package/web/assets/EnvironmentListPage-BX-pV6r7.js +0 -1
- package/web/assets/KanbanBoardPage-2muX0OfU.js +0 -4
- package/web/assets/KanbanBoardPage-CCl8dmwn.css +0 -1
- package/web/assets/KanbanListPage-Bd55W-g7.js +0 -1
- package/web/assets/LaunchProjectPage-BrmWhutG.css +0 -1
- package/web/assets/LaunchProjectPage-T_i4rXCK.js +0 -1
- package/web/assets/LaunchServicesPage-BTOQlL77.js +0 -1
- package/web/assets/LaunchServicesPage-CMxUWoNQ.css +0 -1
- package/web/assets/LogViewer-CuFkYXkA.js +0 -3
- package/web/assets/OrgKeyPrompt-D-cJKqc2.js +0 -1
- package/web/assets/ProcessDetailPage-B2cRaSa8.js +0 -1
- package/web/assets/ProjectDetailPage-CU5MwlKB.js +0 -1
- package/web/assets/ProjectListPage-CxPnsbfh.js +0 -1
- package/web/assets/RandomJobTestPage-CYvyOioJ.js +0 -2
- package/web/assets/ScenarioEditorPage-BZtO-_y9.js +0 -14
- package/web/assets/SendToChatDialog-Da6SFoej.js +0 -1
- package/web/assets/ServiceControlsBar-DBUmRI7E.js +0 -1
- package/web/assets/ServiceDetailPage-C0OzNuXc.js +0 -2
- package/web/assets/ServiceFormPage-BMmeE5tj.js +0 -1
- package/web/assets/SettingsPage-Cns9aESc.js +0 -2063
- package/web/assets/UnlockPage-BPW506si.js +0 -1
- package/web/assets/UnlockPage-BkqsC0ML.css +0 -1
- package/web/assets/VariablesTable-CRWySand.js +0 -1
- package/web/assets/VaultMigrationPage-B20L2W_w.css +0 -1
- package/web/assets/VaultMigrationPage-B6ZfLdDp.js +0 -1
- package/web/assets/VersionBadge-BySMTsnj.js +0 -1
- package/web/assets/WikiPage-CASqiu3r.js +0 -1
- package/web/assets/WikiView-DmspOj63.js +0 -1
- package/web/assets/add-scalar-classes-BDawSOVN.js +0 -387
- package/web/assets/auth-errors-D_n5Naj5.js +0 -1
- package/web/assets/autocomplete-BxToX__C.js +0 -308
- package/web/assets/card-C3_Lhxh1.js +0 -32
- package/web/assets/cloud-chat.store-HRiNlTnA.js +0 -1
- package/web/assets/cloud-session-byVQfdAX.js +0 -1
- package/web/assets/column-0QpSlAL6.js +0 -907
- package/web/assets/index-B___lI4D.css +0 -1
- package/web/assets/interface-content-folder.svg-Dnf4fgjM.js +0 -1
- package/web/assets/message-BfLHvehS.js +0 -316
- package/web/assets/modal-CveVDU3j.js +0 -5
- package/web/assets/modal-DxPwpeSc.js +0 -1
- package/web/assets/multiselect-CJ4zRD9O.js +0 -251
- package/web/assets/process.store-xpYTF7jB.js +0 -1
- package/web/assets/router-BGicJbXI.js +0 -1
- package/web/assets/settings-scope-S5iFQlQN.js +0 -1
- package/web/assets/settings.store-D0HZbmo_.js +0 -1
- package/web/assets/src-wtcksrJO.js +0 -1
- package/web/assets/trpc-BFxMUfYl.js +0 -1
- package/web/assets/useAiChatDrawer-BJrQ-k2R.js +0 -1
- package/web/assets/useCloudOrg-Basge1Jc.js +0 -97
- package/web/assets/useCloudOrg-CJNAt-cW.css +0 -1
- /package/{agent-manager-JUVAVUIQ.js.map → agent-manager-KM7SFKVR.js.map} +0 -0
- /package/web/assets/{abap-BvxTqXT2.js → abap-Q7FyqTce.js} +0 -0
- /package/web/assets/{apex-CIPCCkBr.js → apex-DBNDq2a_.js} +0 -0
- /package/web/assets/{azcli-Rs0NIwkA.js → azcli-BHW8ozYN.js} +0 -0
- /package/web/assets/{bat-BxAhM6gR.js → bat-BL-_3Nfo.js} +0 -0
- /package/web/assets/{bicep-oV_ehPcG.js → bicep-DR2vgumW.js} +0 -0
- /package/web/assets/{browser-DNbnH79q.js → browser-BOSK4iqQ.js} +0 -0
- /package/web/assets/{cameligo-CJLaUyQs.js → cameligo-BCjoEAZU.js} +0 -0
- /package/web/assets/{clojure-CjvMureh.js → clojure-zw1Irdul.js} +0 -0
- /package/web/assets/{coffee-motWC5XQ.js → coffee-BdEjkiiW.js} +0 -0
- /package/web/assets/{cpp-DiWIfYNM.js → cpp-DKUlBIAG.js} +0 -0
- /package/web/assets/{csharp-GBlGBeai.js → csharp-BsNC4zVq.js} +0 -0
- /package/web/assets/{csp-tSyK5eO1.js → csp-X4Chv5_9.js} +0 -0
- /package/web/assets/{css-BkFK9HG_.js → css-Dh0Dlycs.js} +0 -0
- /package/web/assets/{cypher-Bcp8PXr2.js → cypher-BL_DRjGX.js} +0 -0
- /package/web/assets/{dart-uz9Rxe0M.js → dart-DaM4j487.js} +0 -0
- /package/web/assets/{dockerfile-iJizx3Zp.js → dockerfile-Df5WJXAt.js} +0 -0
- /package/web/assets/{ecl-BalaS36Z.js → ecl-BjUo3uTs.js} +0 -0
- /package/web/assets/{elixir-D6CLrLGy.js → elixir-DrLHYSxt.js} +0 -0
- /package/web/assets/{flow9-CFt3-vVY.js → flow9-DKiuX7rg.js} +0 -0
- /package/web/assets/{fsharp-DGa7raxa.js → fsharp-CAN78557.js} +0 -0
- /package/web/assets/{go-wlqInk4z.js → go-DGjr9vA5.js} +0 -0
- /package/web/assets/{graphql-CP1guigM.js → graphql-CcoU3Cj2.js} +0 -0
- /package/web/assets/{hcl-CK0UkKD0.js → hcl-udfyCcTm.js} +0 -0
- /package/web/assets/{ini-Ch56nrUj.js → ini-BVbXatjh.js} +0 -0
- /package/web/assets/{java-C9_WIayl.js → java-Drpmh61g.js} +0 -0
- /package/web/assets/{julia-Can2_mhR.js → julia-asFGk-ZV.js} +0 -0
- /package/web/assets/{kotlin-DUvGf_BX.js → kotlin-HmkKz1TT.js} +0 -0
- /package/web/assets/{less-DoTbG-rc.js → less-C5i2m2Dn.js} +0 -0
- /package/web/assets/{lexon-BFMO2_kL.js → lexon-B3Xh2kL6.js} +0 -0
- /package/web/assets/{lua-CC-QtBo7.js → lua-DnOtgOOu.js} +0 -0
- /package/web/assets/{m3-C51MyH5Q.js → m3-Brj4HNKq.js} +0 -0
- /package/web/assets/{markdown-CDwLHhgZ.js → markdown-C3-4Ntpz.js} +0 -0
- /package/web/assets/{mips-YuxZtPGU.js → mips-vFQKPHzn.js} +0 -0
- /package/web/assets/{msdax-CJjWhmte.js → msdax-D5MYLS2R.js} +0 -0
- /package/web/assets/{mysql-B1riwLaD.js → mysql-CRQHhUON.js} +0 -0
- /package/web/assets/{objective-c-drXT-gmc.js → objective-c-8cZEp0HR.js} +0 -0
- /package/web/assets/{pascal-KUYgrN-Z.js → pascal-BPn_2jro.js} +0 -0
- /package/web/assets/{pascaligo-DQmQJP-r.js → pascaligo-L7QnU_8B.js} +0 -0
- /package/web/assets/{perl-09XLBmCS.js → perl-B9zSPnp3.js} +0 -0
- /package/web/assets/{pgsql-BFj9IFFu.js → pgsql-DiRJukCJ.js} +0 -0
- /package/web/assets/{php-UnC5BqwY.js → php-Dv4g8Lhr.js} +0 -0
- /package/web/assets/{pla-BFuYrPHG.js → pla-CKAoz6vp.js} +0 -0
- /package/web/assets/{postiats-n4ft3jnO.js → postiats-B_PYgUTS.js} +0 -0
- /package/web/assets/{powerquery-D-s-oFSc.js → powerquery-CAagSyo-.js} +0 -0
- /package/web/assets/{powershell-CTboTf93.js → powershell-Cj9BzLhS.js} +0 -0
- /package/web/assets/{protobuf-Dt62GuJP.js → protobuf-DTRY4FFo.js} +0 -0
- /package/web/assets/{pug-CEFWkUzw.js → pug-qADGmCS8.js} +0 -0
- /package/web/assets/{qsharp-B0DUmgPZ.js → qsharp-xkZT0ZOm.js} +0 -0
- /package/web/assets/{r-BVnF0c4T.js → r-C7wfNC2Z.js} +0 -0
- /package/web/assets/{redis-DLl3KQXi.js → redis-BoccK80D.js} +0 -0
- /package/web/assets/{redshift-cif1I7h1.js → redshift-EL8PjTts.js} +0 -0
- /package/web/assets/{restructuredtext-PNfql36m.js → restructuredtext-CA6rgR7C.js} +0 -0
- /package/web/assets/{ruby-j3jxDjUN.js → ruby-BymrInur.js} +0 -0
- /package/web/assets/{rust-BaIO-mAt.js → rust-BTbPL-fg.js} +0 -0
- /package/web/assets/{sb-D8XNVNUQ.js → sb-BTkOICcb.js} +0 -0
- /package/web/assets/{scala-DiK9Ps90.js → scala-CzaUHeQF.js} +0 -0
- /package/web/assets/{scheme-DPKqXHmF.js → scheme-DZe2DRuY.js} +0 -0
- /package/web/assets/{scss-DpMwfP2H.js → scss-D5oFt9cg.js} +0 -0
- /package/web/assets/{shell-Dw9mKVg2.js → shell-DCkIF5jZ.js} +0 -0
- /package/web/assets/{solidity-DTxo-7fe.js → solidity-CfOO4gXi.js} +0 -0
- /package/web/assets/{sophia-BjA3Q87y.js → sophia-0-sROOHR.js} +0 -0
- /package/web/assets/{sparql-q1EpMUqb.js → sparql-Dzzr9hol.js} +0 -0
- /package/web/assets/{sql-CjcQ4wIr.js → sql-DbXHiHh_.js} +0 -0
- /package/web/assets/{st-AuOpxVl7.js → st-DEaYV8xH.js} +0 -0
- /package/web/assets/{swift-BUWnv6f7.js → swift-BQItveav.js} +0 -0
- /package/web/assets/{systemverilog-FhXn-3OZ.js → systemverilog-nE6YfGlx.js} +0 -0
- /package/web/assets/{tcl-B0lqcTtS.js → tcl-Do7Q0SM0.js} +0 -0
- /package/web/assets/{twig-B0OeGPVa.js → twig-B2CLZN2j.js} +0 -0
- /package/web/assets/{typespec-Bmh6VX11.js → typespec-r9R1AgVi.js} +0 -0
- /package/web/assets/{uuid-FpfcaBnR.js → uuid-Q0SWZmaT.js} +0 -0
- /package/web/assets/{vb-bmgX6veu.js → vb-DGnD02qr.js} +0 -0
- /package/web/assets/{w3c-keyname-2TLn3EjF.js → w3c-keyname-9KQ-4XZl.js} +0 -0
- /package/web/assets/{wgsl-FflLnFqI.js → wgsl-C2fD4koY.js} +0 -0
|
@@ -110,7 +110,7 @@ import {
|
|
|
110
110
|
wasRead,
|
|
111
111
|
withDeprecatedAliases,
|
|
112
112
|
writeEntity
|
|
113
|
-
} from "./chunk-
|
|
113
|
+
} from "./chunk-T3TDCZUY.js";
|
|
114
114
|
|
|
115
115
|
// ../server/src/create-server.ts
|
|
116
116
|
import express from "express";
|
|
@@ -5634,6 +5634,24 @@ import { promisify as promisify3 } from "util";
|
|
|
5634
5634
|
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
5635
5635
|
|
|
5636
5636
|
// ../../packages/ai-capabilities/src/capabilities.ts
|
|
5637
|
+
function toList(raw) {
|
|
5638
|
+
if (!raw) return [];
|
|
5639
|
+
const text = raw.trim();
|
|
5640
|
+
if (text.startsWith("[")) {
|
|
5641
|
+
try {
|
|
5642
|
+
const parsed = JSON.parse(text);
|
|
5643
|
+
if (Array.isArray(parsed)) return parsed.map((v) => String(v).trim()).filter(Boolean);
|
|
5644
|
+
} catch {
|
|
5645
|
+
}
|
|
5646
|
+
}
|
|
5647
|
+
return text.split(",").map((v) => v.trim().replace(/^["'[]+|["'\]]+$/g, "")).filter(Boolean);
|
|
5648
|
+
}
|
|
5649
|
+
function clearable(raw, parse2, key) {
|
|
5650
|
+
if (raw === void 0) return {};
|
|
5651
|
+
const text = String(raw).trim();
|
|
5652
|
+
if (!text || text === "null") return { [key]: null };
|
|
5653
|
+
return { [key]: parse2(text) };
|
|
5654
|
+
}
|
|
5637
5655
|
var RUNEYA_CAPABILITIES = [
|
|
5638
5656
|
{
|
|
5639
5657
|
name: "list_services",
|
|
@@ -5757,11 +5775,11 @@ var RUNEYA_CAPABILITIES = [
|
|
|
5757
5775
|
},
|
|
5758
5776
|
{
|
|
5759
5777
|
name: "kanban_search_cards",
|
|
5760
|
-
description: "Search kanban cards by free text, matched against their title and
|
|
5778
|
+
description: "Search kanban cards by free text, matched against their title, body and comments (accent- and case-insensitive). Archived cards are included. Searches every board of the organization unless boardId narrows it down.",
|
|
5761
5779
|
route: "kanban.searchCards",
|
|
5762
5780
|
method: "GET",
|
|
5763
5781
|
params: [
|
|
5764
|
-
{ name: "query", description: "Text to look for in card titles and
|
|
5782
|
+
{ name: "query", description: "Text to look for in card titles, bodies and comments", required: true },
|
|
5765
5783
|
{ name: "boardId", description: "Restrict the search to this board. Omit to search all boards.", required: false },
|
|
5766
5784
|
{ name: "limit", description: "Maximum number of cards to return (1-100). Default: 25.", required: false },
|
|
5767
5785
|
{ name: "organizationId", description: "Which organization to search. Optional: needed only when the account belongs to several and the error message asks for it.", required: false }
|
|
@@ -5847,6 +5865,71 @@ var RUNEYA_CAPABILITIES = [
|
|
|
5847
5865
|
{ name: "content", description: "Card content in markdown", required: false }
|
|
5848
5866
|
],
|
|
5849
5867
|
buildInput: (p) => ({ boardId: p.boardId, column: p.column, title: p.title, content: p.content })
|
|
5868
|
+
},
|
|
5869
|
+
{
|
|
5870
|
+
name: "kanban_get_card",
|
|
5871
|
+
description: "Read one kanban card by id, including archived ones. Cheaper than fetching the whole board, and the only way to read a card that has been archived.",
|
|
5872
|
+
route: "kanban.getCard",
|
|
5873
|
+
method: "GET",
|
|
5874
|
+
params: [
|
|
5875
|
+
{ name: "boardId", description: "The kanban board ID", required: true },
|
|
5876
|
+
{ name: "cardId", description: "The card ID", required: true }
|
|
5877
|
+
],
|
|
5878
|
+
buildInput: (p) => ({ boardId: p.boardId, cardId: p.cardId })
|
|
5879
|
+
},
|
|
5880
|
+
{
|
|
5881
|
+
name: "kanban_update_card",
|
|
5882
|
+
description: "Update an existing kanban card. Only the fields you pass are changed; passing null to priority, color or deadline clears it. Prefer this over creating a second card when something needs correcting.",
|
|
5883
|
+
route: "kanban.updateCard",
|
|
5884
|
+
method: "POST",
|
|
5885
|
+
params: [
|
|
5886
|
+
{ name: "boardId", description: "The kanban board ID", required: true },
|
|
5887
|
+
{ name: "cardId", description: "The card ID", required: true },
|
|
5888
|
+
{ name: "title", description: "New title", required: false },
|
|
5889
|
+
{ name: "content", description: "New card content, in markdown", required: false },
|
|
5890
|
+
{ name: "priority", description: "Priority from 1 to 10, or null to clear it", required: false },
|
|
5891
|
+
{ name: "color", description: "Card colour, or null to clear it", required: false },
|
|
5892
|
+
{ name: "groups", description: "Labels, as a list of strings. Replaces the current ones.", required: false },
|
|
5893
|
+
{ name: "deadline", description: "Due date as YYYY-MM-DD, or null to clear it", required: false },
|
|
5894
|
+
{ name: "assignees", description: "User ids to assign, as a list. Replaces the current ones; use kanban_list_members to find the ids.", required: false }
|
|
5895
|
+
],
|
|
5896
|
+
buildInput: (p) => ({
|
|
5897
|
+
boardId: p.boardId,
|
|
5898
|
+
cardId: p.cardId,
|
|
5899
|
+
...p.title !== void 0 ? { title: p.title } : {},
|
|
5900
|
+
...p.content !== void 0 ? { content: p.content } : {},
|
|
5901
|
+
// Tout arrive en chaîne : un modèle n'écrit pas des nombres, des listes
|
|
5902
|
+
// ni des `null` typés. `clearable` distingue « efface » de « ne touche
|
|
5903
|
+
// pas » — sans quoi vider une couleur serait impossible à exprimer, et
|
|
5904
|
+
// changer un titre risquerait de vider le reste.
|
|
5905
|
+
...clearable(p.priority, (v) => Number(v), "priority"),
|
|
5906
|
+
...clearable(p.color, (v) => v, "color"),
|
|
5907
|
+
...clearable(p.deadline, (v) => v, "deadline"),
|
|
5908
|
+
...p.groups !== void 0 ? { groups: toList(p.groups) } : {},
|
|
5909
|
+
...p.assignees !== void 0 ? { assignees: toList(p.assignees) } : {}
|
|
5910
|
+
})
|
|
5911
|
+
},
|
|
5912
|
+
{
|
|
5913
|
+
name: "kanban_set_card_archived",
|
|
5914
|
+
description: "Archive a kanban card (it leaves the board but is not deleted) or bring it back. An unarchived card returns to the column it left.",
|
|
5915
|
+
route: "kanban.setCardArchived",
|
|
5916
|
+
method: "POST",
|
|
5917
|
+
params: [
|
|
5918
|
+
{ name: "boardId", description: "The kanban board ID", required: true },
|
|
5919
|
+
{ name: "cardId", description: "The card ID", required: true },
|
|
5920
|
+
{ name: "archived", description: "true to archive, false to bring the card back", required: true }
|
|
5921
|
+
],
|
|
5922
|
+
buildInput: (p) => ({ boardId: p.boardId, cardId: p.cardId, archived: p.archived === "true" })
|
|
5923
|
+
},
|
|
5924
|
+
{
|
|
5925
|
+
name: "kanban_list_members",
|
|
5926
|
+
description: "List the people of the organization who can be assigned to a card, with their ids. Needed before assigning anyone with kanban_update_card.",
|
|
5927
|
+
route: "kanban.listMembers",
|
|
5928
|
+
method: "GET",
|
|
5929
|
+
params: [
|
|
5930
|
+
{ name: "organizationId", description: "Which organization. Optional: needed only when the account belongs to several and the error message asks for it.", required: false }
|
|
5931
|
+
],
|
|
5932
|
+
buildInput: (p) => p.organizationId ? { organizationId: p.organizationId } : {}
|
|
5850
5933
|
}
|
|
5851
5934
|
];
|
|
5852
5935
|
|
|
@@ -7594,9 +7677,6 @@ async function resolveImagesToBase64(images, contextId) {
|
|
|
7594
7677
|
return results.filter((r) => r !== null);
|
|
7595
7678
|
}
|
|
7596
7679
|
|
|
7597
|
-
// ../server/src/services/kanban-commands.ts
|
|
7598
|
-
import { randomUUID as randomUUID6 } from "crypto";
|
|
7599
|
-
|
|
7600
7680
|
// ../server/src/trpc/routers/cloud-auth.ts
|
|
7601
7681
|
import { z as z16 } from "zod";
|
|
7602
7682
|
import { hostname } from "os";
|
|
@@ -7858,6 +7938,76 @@ var KanbanStore = class {
|
|
|
7858
7938
|
});
|
|
7859
7939
|
return { card: res.data?.card ?? null, unsupported: res.status === 404 };
|
|
7860
7940
|
}
|
|
7941
|
+
/** Une carte, par son identifiant — archivée comprise. */
|
|
7942
|
+
async card(boardId, cardId) {
|
|
7943
|
+
const res = await callCloud(
|
|
7944
|
+
`/kanban/card/get?boardId=${encodeURIComponent(boardId)}&cardId=${encodeURIComponent(cardId)}`
|
|
7945
|
+
);
|
|
7946
|
+
return res.data ?? null;
|
|
7947
|
+
}
|
|
7948
|
+
/**
|
|
7949
|
+
* Modifier une carte.
|
|
7950
|
+
*
|
|
7951
|
+
* L'absence d'un champ ne le touche pas ; `null` l'efface. C'est le contrat du
|
|
7952
|
+
* cloud, et le distinguer ici évite qu'un agent vide une couleur en voulant
|
|
7953
|
+
* simplement changer un titre.
|
|
7954
|
+
*/
|
|
7955
|
+
async updateCard(boardId, cardId, patch) {
|
|
7956
|
+
const res = await callCloud("/kanban/card/update", {
|
|
7957
|
+
method: "POST",
|
|
7958
|
+
body: { boardId, cardId, ...patch }
|
|
7959
|
+
});
|
|
7960
|
+
return res.data?.card ?? null;
|
|
7961
|
+
}
|
|
7962
|
+
/** Ranger une carte, ou la reprendre. */
|
|
7963
|
+
async setCardArchived(boardId, cardId, archived) {
|
|
7964
|
+
const res = await callCloud(`/kanban/card/${archived ? "archive" : "unarchive"}`, {
|
|
7965
|
+
method: "POST",
|
|
7966
|
+
body: { boardId, cardId }
|
|
7967
|
+
});
|
|
7968
|
+
return res.ok;
|
|
7969
|
+
}
|
|
7970
|
+
/**
|
|
7971
|
+
* Les membres de l'organisation — sans quoi assigner reviendrait à deviner
|
|
7972
|
+
* un identifiant.
|
|
7973
|
+
*/
|
|
7974
|
+
async members(organizationId) {
|
|
7975
|
+
const orgId = await resolveOrganizationId(organizationId);
|
|
7976
|
+
const res = must(
|
|
7977
|
+
await callCloud(
|
|
7978
|
+
`/organization/get-full-organization?organizationId=${encodeURIComponent(orgId)}`
|
|
7979
|
+
)
|
|
7980
|
+
);
|
|
7981
|
+
return (res.members ?? []).map((m) => ({
|
|
7982
|
+
id: m.userId,
|
|
7983
|
+
name: m.user?.name?.trim() || m.user?.email || m.userId,
|
|
7984
|
+
email: m.user?.email ?? ""
|
|
7985
|
+
}));
|
|
7986
|
+
}
|
|
7987
|
+
/**
|
|
7988
|
+
* Chercher des cartes — dans le cloud, pas ici.
|
|
7989
|
+
*
|
|
7990
|
+
* Cette recherche téléchargeait autrefois **tous les tableaux** de
|
|
7991
|
+
* l'organisation, entiers, pour filtrer ensuite en mémoire sur le titre et le
|
|
7992
|
+
* corps. Elle coûtait donc le poids du kanban complet à chaque appel, ne
|
|
7993
|
+
* voyait pas les commentaires — ils ne voyagent plus avec le tableau — et
|
|
7994
|
+
* ignorait les cartes rangées, absentes des colonnes.
|
|
7995
|
+
*
|
|
7996
|
+
* Le cloud fait la même recherche que ses propres écrans : titre, corps et
|
|
7997
|
+
* commentaires, sans casse ni accents.
|
|
7998
|
+
*/
|
|
7999
|
+
async searchCards(input) {
|
|
8000
|
+
const orgId = await resolveOrganizationId(input.organizationId);
|
|
8001
|
+
const query = new URLSearchParams({ organizationId: orgId, q: input.query });
|
|
8002
|
+
if (input.boardId) query.set("boardId", input.boardId);
|
|
8003
|
+
if (input.limit) query.set("limit", String(input.limit));
|
|
8004
|
+
const res = must(
|
|
8005
|
+
await callCloud(
|
|
8006
|
+
`/kanban/card/search?${query.toString()}`
|
|
8007
|
+
)
|
|
8008
|
+
);
|
|
8009
|
+
return { cards: res.cards ?? [], total: res.total ?? 0, truncated: Boolean(res.truncated) };
|
|
8010
|
+
}
|
|
7861
8011
|
/** Déplacer une carte, sans réécrire le tableau. */
|
|
7862
8012
|
async moveCard(boardId, cardId, toColumnId) {
|
|
7863
8013
|
const res = await callCloud("/kanban/card/move", {
|
|
@@ -7986,27 +8136,9 @@ async function addCardOrFallback(board, columnTitle, cardTitle, cardContent) {
|
|
|
7986
8136
|
markdown: cardContent
|
|
7987
8137
|
});
|
|
7988
8138
|
if (card) return;
|
|
7989
|
-
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
}
|
|
7993
|
-
console.warn("[kanban-commands] cloud sans /kanban/card/add \u2014 repli sur la sauvegarde du tableau");
|
|
7994
|
-
const col = board.columns.find((c) => c.title.toLowerCase() === columnTitle.toLowerCase());
|
|
7995
|
-
if (!col) return;
|
|
7996
|
-
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
7997
|
-
col.cards.push({
|
|
7998
|
-
id: randomUUID6(),
|
|
7999
|
-
title: cardTitle,
|
|
8000
|
-
markdown: cardContent ?? "",
|
|
8001
|
-
images: [],
|
|
8002
|
-
attachments: [],
|
|
8003
|
-
assignees: [],
|
|
8004
|
-
order: col.cards.reduce((max, c) => Math.max(max, c.order + 1), 0),
|
|
8005
|
-
history: [{ type: "created", timestamp: now, detail: `AI \u2014 In column "${col.title}"` }],
|
|
8006
|
-
createdAt: now,
|
|
8007
|
-
updatedAt: now
|
|
8008
|
-
});
|
|
8009
|
-
await kanbanStore.update({ id: board.id, columns: board.columns });
|
|
8139
|
+
console.warn(
|
|
8140
|
+
unsupported ? `[kanban-commands] cloud sans /kanban/card/add \u2014 carte \xAB ${cardTitle} \xBB non cr\xE9\xE9e` : `[kanban-commands] add_card failed: column="${columnTitle}"`
|
|
8141
|
+
);
|
|
8010
8142
|
}
|
|
8011
8143
|
function formatSize(bytes) {
|
|
8012
8144
|
if (bytes < 1024) return `${bytes} o`;
|
|
@@ -8232,7 +8364,7 @@ Ne jamais omettre ce tag. Il doit \xEAtre la toute derni\xE8re ligne de ta r\xE9
|
|
|
8232
8364
|
`.trim();
|
|
8233
8365
|
|
|
8234
8366
|
// ../server/src/services/ai-runners/claude-pty-runner.ts
|
|
8235
|
-
import { randomUUID as
|
|
8367
|
+
import { randomUUID as randomUUID6 } from "crypto";
|
|
8236
8368
|
|
|
8237
8369
|
// ../server/src/services/ai-runners/claude-pty-tail.ts
|
|
8238
8370
|
import { open } from "fs/promises";
|
|
@@ -8356,7 +8488,7 @@ function tailTranscript(opts) {
|
|
|
8356
8488
|
|
|
8357
8489
|
// ../server/src/services/ai-runners/claude-pty-runner.ts
|
|
8358
8490
|
async function getAgentManager() {
|
|
8359
|
-
const { agentManager: agentManager2 } = await import("./agent-manager-
|
|
8491
|
+
const { agentManager: agentManager2 } = await import("./agent-manager-KM7SFKVR.js");
|
|
8360
8492
|
return agentManager2;
|
|
8361
8493
|
}
|
|
8362
8494
|
function buildPtyArgs(params, sessionId, opts) {
|
|
@@ -8426,7 +8558,7 @@ function dispatchEntry(entry, state, cbs) {
|
|
|
8426
8558
|
async function runClaudeViaPty(params) {
|
|
8427
8559
|
const { agentId, signal, skipTokenInstructions } = params;
|
|
8428
8560
|
if (!agentId) throw new Error("runClaudeViaPty requires an agentId");
|
|
8429
|
-
const sessionId = params.sessionId && params.sessionId.length > 0 ? params.sessionId :
|
|
8561
|
+
const sessionId = params.sessionId && params.sessionId.length > 0 ? params.sessionId : randomUUID6();
|
|
8430
8562
|
const args = buildPtyArgs(params, sessionId, { excludeMcp: true });
|
|
8431
8563
|
const agentMgr = await getAgentManager();
|
|
8432
8564
|
const displayArgs = args.map((a) => {
|
|
@@ -9097,7 +9229,7 @@ async function shutdownCodexAppServer() {
|
|
|
9097
9229
|
}
|
|
9098
9230
|
}
|
|
9099
9231
|
async function getAgentManager2() {
|
|
9100
|
-
const { agentManager: agentManager2 } = await import("./agent-manager-
|
|
9232
|
+
const { agentManager: agentManager2 } = await import("./agent-manager-KM7SFKVR.js");
|
|
9101
9233
|
return agentManager2;
|
|
9102
9234
|
}
|
|
9103
9235
|
function parseRuneyaCurlCommand(command) {
|
|
@@ -11202,7 +11334,7 @@ Rules:
|
|
|
11202
11334
|
});
|
|
11203
11335
|
|
|
11204
11336
|
// ../server/src/trpc/routers/scenario.ts
|
|
11205
|
-
import { randomUUID as
|
|
11337
|
+
import { randomUUID as randomUUID8 } from "crypto";
|
|
11206
11338
|
import { TRPCError as TRPCError16 } from "@trpc/server";
|
|
11207
11339
|
import { z as z19 } from "zod";
|
|
11208
11340
|
|
|
@@ -11319,7 +11451,7 @@ async function* streamWithActiveProvider(opts) {
|
|
|
11319
11451
|
|
|
11320
11452
|
// ../server/src/services/scenario-runner.ts
|
|
11321
11453
|
import { mkdir as mkdir16 } from "fs/promises";
|
|
11322
|
-
import { randomUUID as
|
|
11454
|
+
import { randomUUID as randomUUID7 } from "crypto";
|
|
11323
11455
|
import { join as join19 } from "path";
|
|
11324
11456
|
|
|
11325
11457
|
// ../server/src/services/scenario-presets.ts
|
|
@@ -11661,7 +11793,7 @@ function applyHireDirectivesFromOutput(manager, scenario, output) {
|
|
|
11661
11793
|
}
|
|
11662
11794
|
const hired = [];
|
|
11663
11795
|
for (const payload of hireDirectives) {
|
|
11664
|
-
const id = `hire-${
|
|
11796
|
+
const id = `hire-${randomUUID7().slice(0, 8)}`;
|
|
11665
11797
|
const position = computeHirePosition(manager, scenario.nodes);
|
|
11666
11798
|
ensureGroupCanContainNode(scenario, manager.groupId ?? null, position);
|
|
11667
11799
|
const node = {
|
|
@@ -12829,7 +12961,7 @@ var scenarioRouter = router({
|
|
|
12829
12961
|
})).mutation(({ input }) => {
|
|
12830
12962
|
const now = Date.now();
|
|
12831
12963
|
return createOrBadRequest(async () => scenarioStore.create({
|
|
12832
|
-
id:
|
|
12964
|
+
id: randomUUID8(),
|
|
12833
12965
|
name: input.name,
|
|
12834
12966
|
icon: input.icon,
|
|
12835
12967
|
description: input.description,
|
|
@@ -12981,7 +13113,7 @@ var scenarioRouter = router({
|
|
|
12981
13113
|
});
|
|
12982
13114
|
|
|
12983
13115
|
// ../server/src/trpc/routers/debug.ts
|
|
12984
|
-
import { randomUUID as
|
|
13116
|
+
import { randomUUID as randomUUID9 } from "crypto";
|
|
12985
13117
|
import { TRPCError as TRPCError17 } from "@trpc/server";
|
|
12986
13118
|
import { z as z20 } from "zod";
|
|
12987
13119
|
var MAX_BUFFER3 = 300;
|
|
@@ -13044,7 +13176,7 @@ var debugRouter = router({
|
|
|
13044
13176
|
intervalMs: z20.number().int().min(100).max(5e3).optional(),
|
|
13045
13177
|
maxTicks: z20.number().int().min(1).max(1e4).optional()
|
|
13046
13178
|
}).optional()).mutation(({ input }) => {
|
|
13047
|
-
const jobId =
|
|
13179
|
+
const jobId = randomUUID9();
|
|
13048
13180
|
const intervalMs = input?.intervalMs ?? 400;
|
|
13049
13181
|
const maxTicks = input?.maxTicks ?? 500;
|
|
13050
13182
|
const job = {
|
|
@@ -13264,7 +13396,7 @@ var diagnosticsRouter = router({
|
|
|
13264
13396
|
import { z as z22 } from "zod";
|
|
13265
13397
|
|
|
13266
13398
|
// ../server/src/services/kanban-queue.ts
|
|
13267
|
-
import { randomUUID as
|
|
13399
|
+
import { randomUUID as randomUUID10 } from "crypto";
|
|
13268
13400
|
import { EventEmitter as EventEmitter5 } from "events";
|
|
13269
13401
|
var KanbanQueueService = class extends EventEmitter5 {
|
|
13270
13402
|
items = [];
|
|
@@ -13292,7 +13424,7 @@ var KanbanQueueService = class extends EventEmitter5 {
|
|
|
13292
13424
|
return { id: alreadyRunning.id, addedAt: alreadyRunning.startedAt, ...item };
|
|
13293
13425
|
}
|
|
13294
13426
|
const queueItem = {
|
|
13295
|
-
id:
|
|
13427
|
+
id: randomUUID10(),
|
|
13296
13428
|
...item,
|
|
13297
13429
|
addedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
13298
13430
|
};
|
|
@@ -13539,11 +13671,6 @@ function summarizeCard(card, boardId, columnTitle) {
|
|
|
13539
13671
|
updatedAt: card.updatedAt
|
|
13540
13672
|
};
|
|
13541
13673
|
}
|
|
13542
|
-
function boardCards(board) {
|
|
13543
|
-
return [...board.columns].sort((a, b) => a.order - b.order).flatMap(
|
|
13544
|
-
(col) => [...col.cards].sort((a, b) => a.order - b.order).map((card) => summarizeCard(card, board.id, col.title))
|
|
13545
|
-
);
|
|
13546
|
-
}
|
|
13547
13674
|
function boardCounts(board) {
|
|
13548
13675
|
const summary = board;
|
|
13549
13676
|
const columns = board.columns ?? [];
|
|
@@ -13553,9 +13680,6 @@ function boardCounts(board) {
|
|
|
13553
13680
|
columns: columns.map((c) => c.title)
|
|
13554
13681
|
};
|
|
13555
13682
|
}
|
|
13556
|
-
function normalize(value) {
|
|
13557
|
-
return value.normalize("NFD").replace(new RegExp("\\p{Diacritic}", "gu"), "").toLowerCase();
|
|
13558
|
-
}
|
|
13559
13683
|
var ATTACHMENT_ID_REGEX = /^[A-Za-z0-9_-]{1,128}$/;
|
|
13560
13684
|
function safeDecode(value) {
|
|
13561
13685
|
try {
|
|
@@ -13685,13 +13809,7 @@ var kanbanRouter = router({
|
|
|
13685
13809
|
limit: z23.number().int().min(1).max(100).optional(),
|
|
13686
13810
|
organizationId: z23.string().max(128).optional()
|
|
13687
13811
|
})).query(async ({ input }) => {
|
|
13688
|
-
|
|
13689
|
-
const ids = input.boardId ? [input.boardId] : (await kanbanStore.list(false, input.organizationId)).boards.map((b) => b.id);
|
|
13690
|
-
const boards = (await Promise.all(ids.map((id) => kanbanStore.get(id)))).filter((b) => b !== null);
|
|
13691
|
-
const matches = boards.flatMap((board) => boardCards(board).map((card) => ({ board: board.name, ...card }))).filter(
|
|
13692
|
-
(card) => normalize(String(card["title"] ?? "")).includes(needle) || normalize(String(card["markdown"] ?? "")).includes(needle)
|
|
13693
|
-
);
|
|
13694
|
-
return { total: matches.length, cards: matches.slice(0, input.limit ?? 25) };
|
|
13812
|
+
return kanbanStore.searchCards(input);
|
|
13695
13813
|
}),
|
|
13696
13814
|
/**
|
|
13697
13815
|
* Le fil de commentaires d'une carte, relu à la demande.
|
|
@@ -13770,7 +13888,7 @@ var kanbanRouter = router({
|
|
|
13770
13888
|
addComment: protectedProcedure.input(z23.object({
|
|
13771
13889
|
boardId: z23.string().max(128),
|
|
13772
13890
|
cardId: z23.string().max(128),
|
|
13773
|
-
comment: z23.string().max(
|
|
13891
|
+
comment: z23.string().max(1e5)
|
|
13774
13892
|
})).mutation(async ({ input }) => {
|
|
13775
13893
|
await executeKanbanCommands(input.boardId, input.cardId, [
|
|
13776
13894
|
{ type: "add_comment", comment: input.comment }
|
|
@@ -13788,6 +13906,62 @@ var kanbanRouter = router({
|
|
|
13788
13906
|
]);
|
|
13789
13907
|
return { ok: true };
|
|
13790
13908
|
}),
|
|
13909
|
+
/**
|
|
13910
|
+
* Lire une carte, seule.
|
|
13911
|
+
*
|
|
13912
|
+
* `getBoard` rapatrie le tableau entier pour n'en regarder qu'une ; et il ne
|
|
13913
|
+
* porte pas les cartes rangées. Une carte s'adresse par son identifiant.
|
|
13914
|
+
*/
|
|
13915
|
+
getCard: protectedProcedure.input(z23.object({ boardId: z23.string().max(128), cardId: z23.string().max(128) })).query(async ({ input }) => {
|
|
13916
|
+
const found = await kanbanStore.card(input.boardId, input.cardId);
|
|
13917
|
+
if (!found) throw new Error(`Carte ${input.cardId} introuvable sur le tableau ${input.boardId}.`);
|
|
13918
|
+
return { ...summarizeCard(found.card, input.boardId, ""), columnId: found.columnId };
|
|
13919
|
+
}),
|
|
13920
|
+
/**
|
|
13921
|
+
* Modifier une carte.
|
|
13922
|
+
*
|
|
13923
|
+
* Le manque le plus coûteux du kanban vu par un agent : sans lui, il ne
|
|
13924
|
+
* pouvait qu'ajouter. Face à une carte à corriger, il en créait une seconde.
|
|
13925
|
+
*
|
|
13926
|
+
* Un champ absent n'est pas touché ; `null` l'efface. La distinction compte —
|
|
13927
|
+
* changer un titre ne doit pas vider une couleur.
|
|
13928
|
+
*/
|
|
13929
|
+
updateCard: protectedProcedure.input(z23.object({
|
|
13930
|
+
boardId: z23.string().max(128),
|
|
13931
|
+
cardId: z23.string().max(128),
|
|
13932
|
+
title: z23.string().min(1).max(512).optional(),
|
|
13933
|
+
content: z23.string().max(1e5).optional(),
|
|
13934
|
+
priority: z23.number().int().min(1).max(10).nullable().optional(),
|
|
13935
|
+
color: z23.string().max(32).nullable().optional(),
|
|
13936
|
+
groups: z23.array(z23.string().min(1).max(60)).max(30).optional(),
|
|
13937
|
+
deadline: z23.string().regex(/^\d{4}-\d{2}-\d{2}$/).nullable().optional(),
|
|
13938
|
+
assignees: z23.array(z23.string().max(128)).max(50).optional()
|
|
13939
|
+
})).mutation(async ({ input }) => {
|
|
13940
|
+
const { boardId, cardId, content, ...rest } = input;
|
|
13941
|
+
const patch = { ...rest };
|
|
13942
|
+
if (content !== void 0) patch.markdown = content;
|
|
13943
|
+
if (!Object.keys(patch).length) throw new Error("Rien \xE0 modifier : pr\xE9cisez au moins un champ.");
|
|
13944
|
+
const card = await kanbanStore.updateCard(boardId, cardId, patch);
|
|
13945
|
+
if (!card) throw new Error(`La carte ${cardId} n'a pas pu \xEAtre modifi\xE9e.`);
|
|
13946
|
+
return summarizeCard(card, boardId, "");
|
|
13947
|
+
}),
|
|
13948
|
+
/** Ranger une carte, ou la reprendre. */
|
|
13949
|
+
setCardArchived: protectedProcedure.input(z23.object({
|
|
13950
|
+
boardId: z23.string().max(128),
|
|
13951
|
+
cardId: z23.string().max(128),
|
|
13952
|
+
archived: z23.boolean()
|
|
13953
|
+
})).mutation(async ({ input }) => {
|
|
13954
|
+
const ok = await kanbanStore.setCardArchived(input.boardId, input.cardId, input.archived);
|
|
13955
|
+
if (!ok) throw new Error(`La carte ${input.cardId} n'a pas pu \xEAtre ${input.archived ? "archiv\xE9e" : "reprise"}.`);
|
|
13956
|
+
return { ok: true };
|
|
13957
|
+
}),
|
|
13958
|
+
/**
|
|
13959
|
+
* Qui peut se voir assigner une carte.
|
|
13960
|
+
*
|
|
13961
|
+
* Sans cette liste, assigner revient à deviner un identifiant — et l'agent
|
|
13962
|
+
* n'a aucun moyen de le trouver.
|
|
13963
|
+
*/
|
|
13964
|
+
listMembers: protectedProcedure.input(z23.object({ organizationId: z23.string().max(128).optional() })).query(async ({ input }) => ({ members: await kanbanStore.members(input.organizationId) })),
|
|
13791
13965
|
/**
|
|
13792
13966
|
* Fetch one card attachment from the cloud and drop it on this machine, so an
|
|
13793
13967
|
* agent can open it with its own file tools. The bytes never go through the
|
|
@@ -14294,7 +14468,7 @@ async function reconcileOrgCanary(orgId) {
|
|
|
14294
14468
|
}
|
|
14295
14469
|
|
|
14296
14470
|
// ../server/src/services/cloud-sync-bridge.ts
|
|
14297
|
-
import { randomUUID as
|
|
14471
|
+
import { randomUUID as randomUUID11 } from "crypto";
|
|
14298
14472
|
import { mkdir as mkdir20, rm as rm5 } from "fs/promises";
|
|
14299
14473
|
import * as Y from "yjs";
|
|
14300
14474
|
|
|
@@ -14410,7 +14584,7 @@ var OrgSyncConnection = class {
|
|
|
14410
14584
|
services = getCollection(this.doc, "services");
|
|
14411
14585
|
environments = getCollection(this.doc, "environments");
|
|
14412
14586
|
logParsers = getCollection(this.doc, PARSERS);
|
|
14413
|
-
conn =
|
|
14587
|
+
conn = randomUUID11();
|
|
14414
14588
|
link;
|
|
14415
14589
|
stopped = false;
|
|
14416
14590
|
initializing = true;
|
|
@@ -15954,7 +16128,7 @@ async function migrateSettingsIntoVaults() {
|
|
|
15954
16128
|
// ../server/src/migrations/migrate-from-legacy.ts
|
|
15955
16129
|
import { createRequire as createRequire2 } from "module";
|
|
15956
16130
|
import { randomBytes as randomBytes6, createCipheriv as createCipheriv3, createDecipheriv as createDecipheriv3 } from "crypto";
|
|
15957
|
-
import { randomUUID as
|
|
16131
|
+
import { randomUUID as randomUUID12 } from "crypto";
|
|
15958
16132
|
import {
|
|
15959
16133
|
readFile as readFile21,
|
|
15960
16134
|
writeFile as writeFile20,
|
|
@@ -16164,11 +16338,11 @@ async function runLegacyMigration(dataDir) {
|
|
|
16164
16338
|
const data = await readEncrypted(join28(parsersDir, file));
|
|
16165
16339
|
if (data?.id) legacyParsers.push(data);
|
|
16166
16340
|
}
|
|
16167
|
-
const projectMonoId =
|
|
16341
|
+
const projectMonoId = randomUUID12();
|
|
16168
16342
|
const envIdMap = {};
|
|
16169
16343
|
const labelToKey = {};
|
|
16170
16344
|
for (const [name, legacyEnv] of Object.entries(legacyEnvs)) {
|
|
16171
|
-
envIdMap[name] =
|
|
16345
|
+
envIdMap[name] = randomUUID12();
|
|
16172
16346
|
if (legacyEnv?.label) labelToKey[legacyEnv.label] = name;
|
|
16173
16347
|
}
|
|
16174
16348
|
const runeEnvs = [];
|
|
@@ -16193,7 +16367,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16193
16367
|
if (hasInvalidInterpolation(value)) continue;
|
|
16194
16368
|
const cleaned = cleanVarKey(key);
|
|
16195
16369
|
if (inheritedVars[cleaned] === value) continue;
|
|
16196
|
-
const varId =
|
|
16370
|
+
const varId = randomUUID12();
|
|
16197
16371
|
variables[varId] = makeVariable(cleaned, value);
|
|
16198
16372
|
varIdLookup.set(`${envIdMap[name]}:${cleaned}`, varId);
|
|
16199
16373
|
}
|
|
@@ -16214,7 +16388,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16214
16388
|
const serviceIdMap = {};
|
|
16215
16389
|
const runeServices = [];
|
|
16216
16390
|
for (const [name, legacy] of Object.entries(legacyServices)) {
|
|
16217
|
-
const id =
|
|
16391
|
+
const id = randomUUID12();
|
|
16218
16392
|
serviceIdMap[name] = id;
|
|
16219
16393
|
const rootPath = legacy.rootPath || "";
|
|
16220
16394
|
const rootPathCwd = rootPath && rootPath !== "." ? rootPath : "";
|
|
@@ -16223,7 +16397,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16223
16397
|
const parts = [cmd.spawnCmd, ...cmd.spawnArgs || []].filter(Boolean);
|
|
16224
16398
|
if (!parts.length) continue;
|
|
16225
16399
|
commands.push({
|
|
16226
|
-
id: cmd.id ||
|
|
16400
|
+
id: cmd.id || randomUUID12(),
|
|
16227
16401
|
label: "Launch",
|
|
16228
16402
|
command: parts.join(" "),
|
|
16229
16403
|
cwd: cmd.spawnOptions?.cwd || "",
|
|
@@ -16284,7 +16458,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16284
16458
|
const legacyBootstrapCmds = container.bootstrap?.commands || [];
|
|
16285
16459
|
if (legacyBootstrapCmds.length > 0) {
|
|
16286
16460
|
dockerConfig.bootstrapCommands = legacyBootstrapCmds.filter((bs) => bs.cmd || bs.entrypoint).map((bs, idx) => ({
|
|
16287
|
-
id: bs.id ||
|
|
16461
|
+
id: bs.id || randomUUID12(),
|
|
16288
16462
|
label: bs.label || `Bootstrap ${idx + 1}`,
|
|
16289
16463
|
command: bs.cmd || "",
|
|
16290
16464
|
...bs.entrypoint ? { entrypoint: bs.entrypoint } : {},
|
|
@@ -16332,7 +16506,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16332
16506
|
cwd: serviceCwd,
|
|
16333
16507
|
runner: dockerConfig ? "docker" : "native",
|
|
16334
16508
|
shortcuts: (legacy.shortcuts || []).filter((s) => s.spawnCmd || s.label).map((s) => ({
|
|
16335
|
-
id: s.id ||
|
|
16509
|
+
id: s.id || randomUUID12(),
|
|
16336
16510
|
label: s.label || s.spawnCmd || "",
|
|
16337
16511
|
command: [s.spawnCmd, ...s.spawnArgs || []].filter(Boolean).join(" "),
|
|
16338
16512
|
...s.spawnOptions?.cwd ? { cwd: s.spawnOptions.cwd } : {}
|
|
@@ -16372,7 +16546,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16372
16546
|
);
|
|
16373
16547
|
if (!svcScopedEnv) {
|
|
16374
16548
|
svcScopedEnv = {
|
|
16375
|
-
id:
|
|
16549
|
+
id: randomUUID12(),
|
|
16376
16550
|
projectId: projectMonoId,
|
|
16377
16551
|
name: `${service?.name || name} (${globalEnv.name})`,
|
|
16378
16552
|
scope: "service",
|
|
@@ -16396,7 +16570,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16396
16570
|
const varPost = typeof varData === "object" ? String(varData.suffix ?? "") : "";
|
|
16397
16571
|
if (!varKey || existingKeys.has(cleanVarKey(varKey))) continue;
|
|
16398
16572
|
const cleaned = cleanVarKey(varKey);
|
|
16399
|
-
const varId =
|
|
16573
|
+
const varId = randomUUID12();
|
|
16400
16574
|
svcScopedEnv.variables[varId] = makeVariable(cleaned, varValue, varPre, varPost);
|
|
16401
16575
|
existingKeys.add(cleaned);
|
|
16402
16576
|
}
|
|
@@ -16416,7 +16590,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16416
16590
|
);
|
|
16417
16591
|
if (!svcScopedEnv) {
|
|
16418
16592
|
svcScopedEnv = {
|
|
16419
|
-
id:
|
|
16593
|
+
id: randomUUID12(),
|
|
16420
16594
|
projectId: projectMonoId,
|
|
16421
16595
|
name: `${service?.name || serviceName} (${globalEnv.name})`,
|
|
16422
16596
|
scope: "service",
|
|
@@ -16437,7 +16611,7 @@ async function runLegacyMigration(dataDir) {
|
|
|
16437
16611
|
const baseEntry = Object.entries(svcScopedEnv.variables).find(([, v]) => v.key === cleaned);
|
|
16438
16612
|
let varId = baseEntry?.[0];
|
|
16439
16613
|
if (!varId) {
|
|
16440
|
-
varId =
|
|
16614
|
+
varId = randomUUID12();
|
|
16441
16615
|
svcScopedEnv.variables[varId] = {
|
|
16442
16616
|
key: cleaned,
|
|
16443
16617
|
value: { value: "", pre: "", post: "", isSecret: false, injectIntoAi: false }
|
|
@@ -16467,13 +16641,13 @@ async function runLegacyMigration(dataDir) {
|
|
|
16467
16641
|
flatOverrides[varId] = makeVariable(cleaned, value);
|
|
16468
16642
|
}
|
|
16469
16643
|
} else {
|
|
16470
|
-
flatOverrides[
|
|
16644
|
+
flatOverrides[randomUUID12()] = makeVariable(cleaned, value);
|
|
16471
16645
|
}
|
|
16472
16646
|
} else {
|
|
16473
16647
|
const cleaned = cleanVarKey(key);
|
|
16474
16648
|
const existingVarId = Object.entries(env2.variables).find(([, v]) => v.key === cleaned)?.[0];
|
|
16475
16649
|
if (!existingVarId) {
|
|
16476
|
-
const varId =
|
|
16650
|
+
const varId = randomUUID12();
|
|
16477
16651
|
env2.variables[varId] = makeVariable(cleaned, value);
|
|
16478
16652
|
varIdLookup.set(`${envId}:${cleaned}`, varId);
|
|
16479
16653
|
}
|
|
@@ -16657,7 +16831,7 @@ async function runOverrideOnlyMigration(dataDir) {
|
|
|
16657
16831
|
if (isSameAsBase(value, baseVar)) continue;
|
|
16658
16832
|
flatOverrides[varId] = makeVariable(cleaned, value);
|
|
16659
16833
|
} else {
|
|
16660
|
-
flatOverrides[
|
|
16834
|
+
flatOverrides[randomUUID12()] = makeVariable(cleaned, value);
|
|
16661
16835
|
}
|
|
16662
16836
|
}
|
|
16663
16837
|
}
|
|
@@ -16694,7 +16868,7 @@ async function runOverrideOnlyMigration(dataDir) {
|
|
|
16694
16868
|
);
|
|
16695
16869
|
if (!svcScopedEnv) {
|
|
16696
16870
|
svcScopedEnv = {
|
|
16697
|
-
id:
|
|
16871
|
+
id: randomUUID12(),
|
|
16698
16872
|
projectId: globalEnv["projectId"],
|
|
16699
16873
|
name: `${service?.["name"] || serviceName} (${globalEnv["name"]})`,
|
|
16700
16874
|
scope: "service",
|
|
@@ -16716,7 +16890,7 @@ async function runOverrideOnlyMigration(dataDir) {
|
|
|
16716
16890
|
const baseEntry = Object.entries(svcScopedEnv["variables"]).find(([, v]) => v.key === cleaned);
|
|
16717
16891
|
let varId = baseEntry?.[0];
|
|
16718
16892
|
if (!varId) {
|
|
16719
|
-
varId =
|
|
16893
|
+
varId = randomUUID12();
|
|
16720
16894
|
svcScopedEnv["variables"][varId] = {
|
|
16721
16895
|
key: cleaned,
|
|
16722
16896
|
value: { value: "", pre: "", post: "", isSecret: false, injectIntoAi: false }
|
|
@@ -18033,4 +18207,4 @@ export {
|
|
|
18033
18207
|
pullEnv,
|
|
18034
18208
|
registerInstance
|
|
18035
18209
|
};
|
|
18036
|
-
//# sourceMappingURL=src-
|
|
18210
|
+
//# sourceMappingURL=src-6PAM4JRF.js.map
|