@runeya/runeya 2.0.107 → 2.0.109
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.map +1 -1
- package/agent-manager-APY7SZ75.js +9 -0
- package/{chat-O7ZXCCKV.js → chat-L42DO6ND.js} +7 -7
- package/{chunk-QRMG6GMX.js → chunk-6T7R2JZR.js} +24 -1
- package/{chunk-QRMG6GMX.js.map → chunk-6T7R2JZR.js.map} +1 -1
- package/{chunk-ZDHLWTHW.js → chunk-77UQ2UKW.js} +3 -3
- package/{chunk-JNI4CXJ7.js → chunk-HJZPLRNL.js} +111 -68
- package/chunk-HJZPLRNL.js.map +1 -0
- package/{chunk-ELI2TELD.js → chunk-OGCEFBSS.js} +3 -3
- package/{chunk-TE57T5GO.js → chunk-OSKZYKSN.js} +7 -7
- package/{chunk-J3NAI636.js → chunk-ZFELQG4B.js} +12 -16
- package/chunk-ZFELQG4B.js.map +1 -0
- package/{companion-NZU7FNID.js → companion-7EFYZNCO.js} +5 -5
- package/{desktop-launcher-N7WRF3LC.js → desktop-launcher-Q6J2LSVP.js} +2 -2
- package/index.js +4 -4
- package/package.json +1 -1
- package/settings-manager-MQBUCUIO.js +9 -0
- package/{src-MILB2SQA.js → src-SH5RPUNH.js} +187 -28
- package/src-SH5RPUNH.js.map +1 -0
- package/{vault-resolver-V7KH4FTC.js → vault-resolver-57Q2DVOR.js} +4 -4
- package/web/assets/AgentScalarChatInterface.vue-qaU3nHHm.js +13 -0
- package/web/assets/AgentTerminalPage-Bg4pvmQC.js +1 -0
- package/web/assets/AiChatPage-Bj_UMaA8.js +1 -0
- package/web/assets/{AppLayout-DK0hjOjl.css → AppLayout-6LmWDDMH.css} +1 -1
- package/web/assets/AppLayout-CCY6mnwP.js +1 -0
- package/web/assets/AuditPage-Cp6yZONE.js +1 -0
- package/web/assets/CloudAccountPage-BSxAXLF7.js +1 -0
- package/web/assets/CloudAccountPage-CfMY69pk.css +1 -0
- package/web/assets/CloudAccountPage-DTzGJFGT.js +1 -0
- package/web/assets/CloudMessagingPage-B1cPSVn3.js +2 -0
- package/web/assets/CloudMessagingPage-BRwxGiH2.css +1 -0
- package/web/assets/DashboardPage-DTegXvtf.css +1 -0
- package/web/assets/DashboardPage-DaG08KC3.js +164 -0
- package/web/assets/DirectoryPickerDialog-DRZg3i24.js +1 -0
- package/web/assets/{EditorIcon-DAVCsZGN.js → EditorIcon-CUl1IPtA.js} +2 -2
- package/web/assets/EnvironmentForm-C2IKkQwL.js +108 -0
- package/web/assets/EnvironmentFormPage-XxSXk54d.js +1 -0
- package/web/assets/EnvironmentListPage-CNJCuT_t.js +1 -0
- package/web/assets/KanbanBoardPage-CDJ9tEGG.js +4 -0
- package/web/assets/KanbanBoardPage-CoTX8nB6.css +1 -0
- package/web/assets/KanbanListPage-BSm19l6D.js +1 -0
- package/web/assets/LaunchProjectPage-1zl3ZGiA.js +1 -0
- package/web/assets/LaunchServicesPage-C7Y-scEf.js +1 -0
- package/web/assets/LogViewer-CTDxuo3U.js +3 -0
- package/web/assets/OrgKeyPrompt-_ASAKfDv.js +1 -0
- package/web/assets/{ProcessControls-BnlYc5oo.js → ProcessControls-ahxc7B1z.js} +1 -1
- package/web/assets/ProcessDetailPage-CSWHQP1r.js +1 -0
- package/web/assets/{ProcessMetrics-3iA0I20o.js → ProcessMetrics-B_nBUqkV.js} +2 -2
- package/web/assets/{RandomJobTestPage-BO3b4l7T.js → RandomJobTestPage-ChumhCVE.js} +1 -1
- package/web/assets/ScenarioEditorPage-BA0-Th_S.js +14 -0
- package/web/assets/SendToChatDialog-BTqvASzi.js +1 -0
- package/web/assets/ServiceControlsBar-B6fc6BtP.js +1 -0
- package/web/assets/ServiceDetailPage-BWki4F8y.js +2 -0
- package/web/assets/ServiceFormPage-A_tMtPha.js +1 -0
- package/web/assets/SettingsPage-CYrhRc9t.js +2063 -0
- package/web/assets/UnlockPage-CMPppHPb.js +1 -0
- package/web/assets/{VariablesTable-DNNf7eCt.css → VariablesTable-BZb7hcBh.css} +1 -1
- package/web/assets/VariablesTable-D3HwVHm7.js +1 -0
- package/web/assets/VaultMigrationPage-CAkYThy0.js +1 -0
- package/web/assets/VersionBadge-JMYsYI__.js +1 -0
- package/web/assets/WikiPage-DMQsnN55.js +1 -0
- package/web/assets/WikiView-DT1brFpI.js +1 -0
- package/web/assets/add-scalar-classes-DqlxobXk.js +387 -0
- package/web/assets/{autocomplete-CsyixLlY.js → autocomplete-DW0fiLh0.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-BbOA3Gz6.js → basic-shape-diamond.svg-CSlrccn0.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-DdJgnvDo.js → basic-shape-hexagon.svg-D546ruDT.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-Bg3fLGGT.js → basic-shape-primary-circle-ellipse-round.svg-C1wzRQtf.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-CESoq0fN.js → basic-shape-primary-square-rectangle.svg-CWGZhIsr.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-ElM9Zp2x.js → basic-shape-shield.svg-NhM_gs9v.js} +1 -1
- package/web/assets/{browser-CwiIrBV5.js → browser-CgZhj2lb.js} +1 -1
- package/web/assets/{browser-MtZH8oRn.js → browser-D3zm8rqv.js} +1 -1
- package/web/assets/{card-D8i3Wb9E.js → card-B7q35Vau.js} +2 -2
- package/web/assets/{checkbox-DfhW4jIw.js → checkbox-D53PfEW8.js} +3 -3
- package/web/assets/{chip-jxWVyF6O.js → chip-DIIyqeB6.js} +2 -2
- package/web/assets/client-DH-rHV-I.js +24 -0
- package/web/assets/cloud-chat.store-wcKYueBH.js +1 -0
- package/web/assets/cloud-client-BvZabjfE.js +1 -0
- package/web/assets/cloud-session-68W_giD8.js +2 -0
- package/web/assets/cloud-session-Cr1sJAeh.js +1 -0
- package/web/assets/column-CipMB2ts.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-DJbi1v8s.js → computer-device-desktop-monitor.svg-CU1TH87U.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-DJtxrGiU.js → computer-device-desktop.svg-GjG-mCjt.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-BxPl4SOy.js → computer-device-laptop.svg-bOXxoV3N.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-DZyVWDjs.js → computer-device-mobile-phone-android-samsung-back.svg-BKAQtXBw.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-CY2rayd7.js → computer-device-mobile-phone-android-samsung.svg-DuEgqDs0.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-wB3dvTWI.js → computer-device-mobile-phone-iphone-x-back.svg-47gd3jF9.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-DlRKY5sj.js → computer-device-mobile-phone-iphone-x.svg-CjTyt_7H.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-DfslXQQZ.js → computer-device-mobile-tablet-touch.svg-DhUxcqM-.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-CcURGna7.js → computer-device-mobile-tablet.svg-CrDFKzVZ.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-Dp-TzO2e.js → computer-device-network-ethernet-cat6.svg-Camx7ESr.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-BPpSMigg.js → computer-device-network-lan-www.svg-BCTngCj3.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-CYQyIbfa.js → computer-device-network-wifi-connection.svg-gr2ZwIyG.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-DSAd7WFk.js → computer-device-network-wifi-router.svg-BTTVOR89.js} +1 -1
- package/web/assets/{cssMode-COezfEv9.js → cssMode-6O-nyPw0.js} +1 -1
- package/web/assets/{divider-DUL-UFyL.js → divider-CvjX700b.js} +2 -2
- package/web/assets/{docx-preview-BF14ztI2.js → docx-preview-WFENW7jt.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-ETcpyMYz.js → ecology-science-erlenmeyer-flask.svg-vxfYRuIi.js} +1 -1
- package/web/assets/{fieldset-CSn4dPXR.js → fieldset-BqupPuqR.js} +2 -2
- package/web/assets/{freemarker2-CqLlcxHC.js → freemarker2-Ci9lamz_.js} +1 -1
- package/web/assets/{handlebars-Cp1TiX9f.js → handlebars-D3EPIxYN.js} +1 -1
- package/web/assets/{html-BzArqvCu.js → html-DL-vDMyX.js} +1 -1
- package/web/assets/{htmlMode-CIRVb85i.js → htmlMode-C2w5defM.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-CSTusJ5t.js → image-flash-lightning.svg-HRrh8pka.js} +1 -1
- package/web/assets/{image-picture-flower.svg-Cg9aaOhh.js → image-picture-flower.svg-C079ghaG.js} +1 -1
- package/web/assets/{index-Q9nkGIct.js → index-Cm1wg36J.js} +6 -6
- package/web/assets/{interface-alert-exclamation-diamond.svg-JL4lYLy1.js → interface-alert-exclamation-diamond.svg-Bcc8Weh5.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-kvz8dLNC.js → interface-alert-exclamation-triangle-warning.svg-Bh98-iij.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-DRqP_pYe.js → interface-alert-information-circle.svg-SoWkrsZO.js} +1 -1
- package/web/assets/{interface-award-crown.svg-CX4w4INE.js → interface-award-crown.svg-CgbNBSQL.js} +1 -1
- package/web/assets/{interface-bookmark.svg-Bx06-XmV.js → interface-bookmark-tag.svg-DtlpNX0d.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-D5LiJMAo.js → interface-bookmark.svg-CXJKp9-6.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-D28mjrW2.js → interface-calendar-date-one.svg-Ba_ke387.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-DvkccrQv.js → interface-content-book-open-pages.svg-DPUEnf2K.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-Co_Rf29J.js → interface-content-book-page.svg-dsCMof_u.js} +1 -1
- package/web/assets/{interface-content-file.svg-CLqtAgLt.js → interface-content-file.svg-CsPPGADI.js} +1 -1
- package/web/assets/{interface-content-folder.svg-C9dHyqkp.js → interface-content-folder.svg-BTc1SZRb.js} +1 -1
- package/web/assets/interface-content-folder.svg-WIfxYmSH.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-DmF1P-Po.js → interface-copy-clipboard.svg-C0dUHWMR.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-BD_k5qE4.js → interface-edit-attachment.svg-DkC6-wuV.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-BzKsCrsk.js → interface-edit-binocular.svg-C4XPxcBj.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-CJkxoH8r.js → interface-edit-magic-wand.svg-BSWsgFZj.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-CgXiF7qe.js → interface-edit-tool-paint-roller.svg-bUo5fKn1.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-CeWHirTd.js → interface-edit-tool-pencil.svg-BOwTG4ej.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-B9Vd9Hf6.js → interface-favorite-award.svg-BxBrHBnL.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-BRp3aMEx.js → interface-favorite-flag.svg-CyqfpD6l.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-B2zeO1q2.js → interface-favorite-heart.svg-COpeCJ2V.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-vkH4UOle.js → interface-favorite-star.svg-C-NeEbqH.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-CPTglDfo.js → interface-favorite-stars-sparkles.svg-Dl4L3va4.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-D_WG90fj.js → interface-hierarchy-flowchart.svg-QDCEhPT4.js} +1 -1
- package/web/assets/{interface-home-house.svg-BUYqjZPI.js → interface-home-house.svg-BxJXntjc.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-DU6gyhSU.js → interface-hyperlink.svg-BTxw0q4O.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-BMX-UMmG.js → interface-lighting-brightness.svg-CNUnsUrn.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-fm6gJnaL.js → interface-lock-closed.svg-BgURW8Cd.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-D0IkCqrd.js → interface-lock-open-unlock.svg-DJVvMx6T.js} +1 -1
- package/web/assets/{interface-login-key.svg-BjXwMM_4.js → interface-login-key.svg-DKU1ANGA.js} +1 -1
- package/web/assets/{interface-search.svg-Ce8_4eqn.js → interface-search.svg-DWd7U6M4.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-BCQ9oWrI.js → interface-setting-cog.svg-Cv1liH-N.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-IraxN-RR.js → interface-share-megaphone-bullhorn.svg-DiGwsYbN.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-NzwY-7pd.js → interface-share-rocket.svg-BD9Kr2Tb.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-CN8f5zE5.js → interface-share-satellite.svg-ioA9f-1F.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-BMm5tIIq.js → interface-share-space-ship.svg-g0JuuD8T.js} +1 -1
- package/web/assets/{interface-share.svg-5RMe9Dry.js → interface-share.svg-Vcds0wQD.js} +1 -1
- package/web/assets/{interface-signal-square.svg-C-RuIJu1.js → interface-signal-square.svg-F9RmwOj2.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-B3CNKtVN.js → interface-time-clock-circle.svg-VH9h0rJO.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-o3F09IxK.js → interface-time-hour-glass.svg-Brg8fk3D.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-Cmqji5Ln.js → interface-users-multiple.svg-C3dClqT0.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-CGM-ZS56.js → interface-weather-moon.svg-C3vbc--A.js} +1 -1
- package/web/assets/{javascript-qSezXPr1.js → javascript-7DyMJQOL.js} +1 -1
- package/web/assets/{jsonMode-BvjmRSYr.js → jsonMode-BSNjflOp.js} +1 -1
- package/web/assets/{liquid-CH1qgG2G.js → liquid-3gNUTU6Z.js} +1 -1
- package/web/assets/{lspLanguageFeatures-CtBsCddT.js → lspLanguageFeatures-DNW-cjCh.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-DvStF3KW.js → mail-chat-bubble-square.svg-H-59s7eK.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-CwTkfLk9.js → mail-send-email-paper-airplane.svg-BvNADULx.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-Dkh_5t2W.js → mail-send-envelope.svg-BK0wDcVf.js} +1 -1
- package/web/assets/{mdx-BqogtCJ-.js → mdx-B8qSZaPu.js} +1 -1
- package/web/assets/{minus-B2dZQvCq.js → minus-BHL1pXRJ.js} +2 -2
- package/web/assets/modal-C9--SUJG.js +5 -0
- package/web/assets/modal-C_DXoFdI.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-zKWFfD0k.js → money-cashier-receipt.svg-BF4sG5JK.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-D5lfefuk.js → money-currency-dollar-pay.svg-Cs1ZjXPc.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-Bd2mW0uZ.js → money-graph-arrow-increase.svg-oTmFMKdo.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-DegjdGbk.js → money-graph-bar-chart-increase.svg-DpxzHhkO.js} +1 -1
- package/web/assets/multiselect-DEd1a7qa.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-BbmZ_3cd.js → nature-ecology-leaf.svg-CRRVoplk.js} +1 -1
- package/web/assets/{password-D1YX3MCu.js → password-B33cxUy5.js} +4 -4
- package/web/assets/{phone-telephone.svg-B6UL6Fhu.js → phone-telephone.svg-CYZpfd7d.js} +1 -1
- package/web/assets/{plus-BmifHgiX.js → plus-3dK18ius.js} +6 -6
- package/web/assets/process.store-BP2Yx0AK.js +1 -0
- package/web/assets/{programming-bug.svg-Dhr7h5Lm.js → programming-bug.svg-Bblmkarj.js} +1 -1
- package/web/assets/{programming-cloud.svg-DIse9DrB.js → programming-cloud.svg-DIOGUGeq.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-BlKvXZnN.js → programming-computer-database-server.svg-BqysJvkY.js} +1 -1
- package/web/assets/{programming-computer-database.svg-Du4GGdek.js → programming-computer-database.svg-BDU_3Gvh.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-TcO3xW7h.js → programming-module-four-layout.svg-CS1CpcqV.js} +1 -1
- package/web/assets/{programming-module-three.svg-6UNuJszx.js → programming-module-three.svg-Dg7IA-LD.js} +1 -1
- package/web/assets/{programming-module.svg-BFkOw80L.js → programming-module.svg-BpyHS8dA.js} +1 -1
- package/web/assets/{programming-script-code.svg-CPNpYr6l.js → programming-script-code.svg-C7cvlhiY.js} +1 -1
- package/web/assets/project-launch.store-DTqJyGiE.js +1 -0
- package/web/assets/project.store-BYavTjQR.js +1 -0
- package/web/assets/{python-W_UHovJ1.js → python-BUceWa2n.js} +1 -1
- package/web/assets/{razor-BQiPtbwG.js → razor-D5DfJBZK.js} +1 -1
- package/web/assets/router-Da2qrUmJ.js +1 -0
- package/web/assets/settings-scope-DNgjXrG7.js +1 -0
- package/web/assets/{settings.store-DqnPoZDR.js → settings.store-YVk5HeIJ.js} +1 -1
- package/web/assets/{shopping-cart.svg-Bux9YEU6.js → shopping-cart.svg-CD7AmRRj.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-_h-yzC6c.js → shopping-gift-present.svg-BrDshW56.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BdhGUAKV.js → shopping-shipping-box-parcel-package.svg-DTQKQ4lh.js} +1 -1
- package/web/assets/src-4WNjC7ZT.js +572 -0
- package/web/assets/{src-BL1Lafqz.js → src-BhnteF94.js} +33 -33
- package/web/assets/src-Bsnnsed7.js +1 -0
- package/web/assets/src-Dq9wfPM5.css +1 -0
- package/web/assets/tabpanel-2aAgCtis.js +150 -0
- package/web/assets/{tag-new-circle.svg-CPl83AFc.js → tag-new-circle.svg-D7E7WEcq.js} +1 -1
- package/web/assets/theme-Vor3l0vc.js +1 -0
- package/web/assets/{toggleswitch-CqZ2j960.js → toggleswitch-Dr6MF0VL.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-mdZXLqAH.js → travel-map-earth-globe.svg-CjflVjBB.js} +1 -1
- package/web/assets/trpc-DebjUoP4.js +1 -0
- package/web/assets/{tsMode-BTrmDRFt.js → tsMode-FsuSDXuj.js} +5 -5
- package/web/assets/{typescript-B5jdwmxa.js → typescript-DgH1p2T8.js} +1 -1
- package/web/assets/useAiChatDrawer-C6ovLKaw.js +1 -0
- package/web/assets/useCloudOrg-DJ4hR2Ta.js +1 -0
- package/web/assets/useProjectCatalog-CPeVWCNl.js +1 -0
- package/web/assets/useProjectCloudOrg-BCMidyRD.js +1 -0
- package/web/assets/{xml-vcJlRCph.js → xml-fu6eSvQE.js} +1 -1
- package/web/assets/{yaml-CfcdnZ_c.js → yaml-GHvnVG3H.js} +1 -1
- package/web/index.html +1 -1
- package/agent-manager-2RWV2SXZ.js +0 -9
- package/chunk-J3NAI636.js.map +0 -1
- package/chunk-JNI4CXJ7.js.map +0 -1
- package/settings-manager-Q4PZ3UD5.js +0 -9
- package/src-MILB2SQA.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-CvSuHoWx.js +0 -13
- package/web/assets/AgentTerminalPage-DM7AvnyQ.js +0 -1
- package/web/assets/AiChatPage-DuXpncYG.js +0 -1
- package/web/assets/AppLayout-DimGQa7G.js +0 -1
- package/web/assets/AuditPage-B_0kBq_9.js +0 -1
- package/web/assets/CloudAccountPage-BJK2BN44.js +0 -1
- package/web/assets/CloudAccountPage-Bxa_0f6m.css +0 -1
- package/web/assets/CloudAccountPage-HGWX4TH4.js +0 -1
- package/web/assets/CloudMessagingPage-CWv16kIi.js +0 -2
- package/web/assets/CloudMessagingPage-Dl7hHYeb.css +0 -1
- package/web/assets/DashboardPage-CspSBpVO.css +0 -1
- package/web/assets/DashboardPage-D7uW5Gte.js +0 -164
- package/web/assets/DirectoryPickerDialog-FsJTp3yS.js +0 -1
- package/web/assets/EnvironmentForm-DNUk-CLn.js +0 -108
- package/web/assets/EnvironmentFormPage-AeYFkQiH.js +0 -1
- package/web/assets/EnvironmentListPage-zo_QJeYZ.js +0 -1
- package/web/assets/KanbanBoardPage-CXSqV6Qh.js +0 -4
- package/web/assets/KanbanBoardPage-hU10A0U8.css +0 -1
- package/web/assets/KanbanListPage-DZBXXH0r.js +0 -1
- package/web/assets/LaunchProjectPage-D_Ivnho3.js +0 -1
- package/web/assets/LaunchServicesPage-BTXi6jNU.js +0 -1
- package/web/assets/LogViewer-Bqe-albM.js +0 -3
- package/web/assets/OrgKeyPrompt-D05OEwQM.js +0 -1
- package/web/assets/ProcessDetailPage-CsbqvXk8.js +0 -1
- package/web/assets/ScenarioEditorPage-CHX44wHI.js +0 -14
- package/web/assets/SendToChatDialog-8ToadFnr.js +0 -1
- package/web/assets/ServiceControlsBar-OVSGVoGc.js +0 -1
- package/web/assets/ServiceDetailPage-DpqDQl76.js +0 -2
- package/web/assets/ServiceFormPage-COlkaDyA.js +0 -1
- package/web/assets/SettingsPage-YOKL8o_O.js +0 -2063
- package/web/assets/UnlockPage-B75f6TuX.js +0 -1
- package/web/assets/VariablesTable-siiUpJXY.js +0 -1
- package/web/assets/VaultMigrationPage-DcYkoGTq.js +0 -1
- package/web/assets/VersionBadge-BH9S4OPH.js +0 -1
- package/web/assets/WikiPage-CxBVPs9x.js +0 -1
- package/web/assets/WikiView-DnQhoJpH.js +0 -1
- package/web/assets/add-scalar-classes-B2maka72.js +0 -387
- package/web/assets/client-BgGTZAbs.js +0 -24
- package/web/assets/cloud-chat.store-DnjVk4Ss.js +0 -1
- package/web/assets/cloud-client-CJH_Ql5a.js +0 -1
- package/web/assets/cloud-session-DWaO5I68.js +0 -2
- package/web/assets/column-DucGv9T0.js +0 -907
- package/web/assets/interface-content-folder.svg-kYcgQcTJ.js +0 -1
- package/web/assets/modal-B6NeZlOc.js +0 -1
- package/web/assets/modal-BkbDSZxh.js +0 -5
- package/web/assets/multiselect-DeUaJiPX.js +0 -251
- package/web/assets/process.store-BucXc8GP.js +0 -1
- package/web/assets/project-launch.store-Xo3pwupQ.js +0 -1
- package/web/assets/project.store-Bdp-Dw-w.js +0 -1
- package/web/assets/router-DZShz0-l.js +0 -1
- package/web/assets/settings-scope-vqQX-GF1.js +0 -1
- package/web/assets/src-BsHOvodv.js +0 -1
- package/web/assets/src-cvMrX61Z.js +0 -572
- package/web/assets/src-dpFgucNZ.css +0 -1
- package/web/assets/tabpanel-B7UUtaKJ.js +0 -150
- package/web/assets/theme-CuU9r36Y.js +0 -1
- package/web/assets/trpc-i_kC7f4I.js +0 -1
- package/web/assets/useAiChatDrawer-ChqgY66m.js +0 -1
- package/web/assets/useCloudOrg-Dq8l_9Ry.js +0 -1
- package/web/assets/useProjectCatalog-BE9Yy2SC.js +0 -1
- package/web/assets/useProjectCloudOrg-DAj0XB8D.js +0 -1
- /package/{agent-manager-2RWV2SXZ.js.map → agent-manager-APY7SZ75.js.map} +0 -0
- /package/{chat-O7ZXCCKV.js.map → chat-L42DO6ND.js.map} +0 -0
- /package/{chunk-ZDHLWTHW.js.map → chunk-77UQ2UKW.js.map} +0 -0
- /package/{chunk-ELI2TELD.js.map → chunk-OGCEFBSS.js.map} +0 -0
- /package/{chunk-TE57T5GO.js.map → chunk-OSKZYKSN.js.map} +0 -0
- /package/{companion-NZU7FNID.js.map → companion-7EFYZNCO.js.map} +0 -0
- /package/{desktop-launcher-N7WRF3LC.js.map → desktop-launcher-Q6J2LSVP.js.map} +0 -0
- /package/{settings-manager-Q4PZ3UD5.js.map → settings-manager-MQBUCUIO.js.map} +0 -0
- /package/{vault-resolver-V7KH4FTC.js.map → vault-resolver-57Q2DVOR.js.map} +0 -0
- /package/web/assets/{abap-cDlgWO6H.js → abap-B8g_2xYy.js} +0 -0
- /package/web/assets/{apex-DxzSGotK.js → apex-Bm8w4T5A.js} +0 -0
- /package/web/assets/{azcli-CUNfZLtQ.js → azcli-BqdUW6F8.js} +0 -0
- /package/web/assets/{bat-C-oKGifY.js → bat-Bngf0lQU.js} +0 -0
- /package/web/assets/{bicep-C4xTl9QV.js → bicep-DzO554JS.js} +0 -0
- /package/web/assets/{browser-CE5P0iHW.js → browser-BJX5ZrVN.js} +0 -0
- /package/web/assets/{cameligo-COpO1ZvP.js → cameligo-Bcy3ohdb.js} +0 -0
- /package/web/assets/{clojure-D8gp5eAN.js → clojure-CZbiqkDV.js} +0 -0
- /package/web/assets/{coffee-De9HMN-q.js → coffee-CDuhyV-7.js} +0 -0
- /package/web/assets/{cpp-C4pJyeKy.js → cpp-BklV8f4x.js} +0 -0
- /package/web/assets/{csharp-B4wLqqiU.js → csharp-BelR_XiC.js} +0 -0
- /package/web/assets/{csp-Do0Gg4qE.js → csp-DUjeBS2K.js} +0 -0
- /package/web/assets/{css-BLq1nXK0.js → css-CvbYbEko.js} +0 -0
- /package/web/assets/{cypher-CDQzi0TV.js → cypher-Dwrbk-SP.js} +0 -0
- /package/web/assets/{dart-bTPYn7bY.js → dart-BW1E5h9O.js} +0 -0
- /package/web/assets/{dockerfile-yM7ZnQpo.js → dockerfile-B41ilpF9.js} +0 -0
- /package/web/assets/{ecl-BgTpp_c4.js → ecl-BZE6Vxna.js} +0 -0
- /package/web/assets/{elixir-DO7wJ1ib.js → elixir-CtYg0bLh.js} +0 -0
- /package/web/assets/{flow9-B2Ko_py3.js → flow9-Sgvy48_I.js} +0 -0
- /package/web/assets/{fsharp-DNdx3wKW.js → fsharp-BzAfXfKg.js} +0 -0
- /package/web/assets/{go-D7LajbkE.js → go-D7oonABu.js} +0 -0
- /package/web/assets/{graphql-BCQSwUPo.js → graphql-BEN-qkl0.js} +0 -0
- /package/web/assets/{hcl-DR3uNUXT.js → hcl-CE0OhwCq.js} +0 -0
- /package/web/assets/{ini-zkzQPitL.js → ini-CCLtcvjA.js} +0 -0
- /package/web/assets/{java-YFwuCa4S.js → java-Bao8w_gp.js} +0 -0
- /package/web/assets/{julia-WWwv4jLR.js → julia-Dr0hFYrl.js} +0 -0
- /package/web/assets/{kotlin-FwlJkapy.js → kotlin-Cbfu8lcM.js} +0 -0
- /package/web/assets/{less-CyhHW1nH.js → less-BU4gEpXr.js} +0 -0
- /package/web/assets/{lexon-BScN_v1c.js → lexon-GpBGGdTS.js} +0 -0
- /package/web/assets/{lua-eWb9GpZJ.js → lua-DIPKk37y.js} +0 -0
- /package/web/assets/{m3-C4NDU793.js → m3-CSOypKGf.js} +0 -0
- /package/web/assets/{markdown-DWWpXAtL.js → markdown-VDqAgkyM.js} +0 -0
- /package/web/assets/{mips-BpJKGw00.js → mips-BJWI6dX7.js} +0 -0
- /package/web/assets/{msdax-BiuvyZwP.js → msdax-BLpuE5Dc.js} +0 -0
- /package/web/assets/{mysql-DJW9Aa9q.js → mysql-ZsxiEUoY.js} +0 -0
- /package/web/assets/{objective-c-YouNnWOW.js → objective-c-DcQa1iPc.js} +0 -0
- /package/web/assets/{pascal-jQsRnBre.js → pascal-u-hmXdyn.js} +0 -0
- /package/web/assets/{pascaligo-DZI84_dt.js → pascaligo-DqbP-1C6.js} +0 -0
- /package/web/assets/{perl-D9TKt-s6.js → perl-CUeQpRkH.js} +0 -0
- /package/web/assets/{pgsql-DXgI6ehC.js → pgsql-CQ7FhAFN.js} +0 -0
- /package/web/assets/{php-Cgqd4wfW.js → php-BEf_fu3E.js} +0 -0
- /package/web/assets/{pla-DRDkvVUU.js → pla-CXNNbT0w.js} +0 -0
- /package/web/assets/{postiats-BOLeCCau.js → postiats-CIXLZwPb.js} +0 -0
- /package/web/assets/{powerquery-DCDtPNBU.js → powerquery-DnGPASFA.js} +0 -0
- /package/web/assets/{powershell-WnZ4e5ia.js → powershell-1Y1kqIZS.js} +0 -0
- /package/web/assets/{protobuf-C9Dg-C9o.js → protobuf-Cfo9haoG.js} +0 -0
- /package/web/assets/{pug-Dr8RhWun.js → pug-BujEZqmy.js} +0 -0
- /package/web/assets/{qsharp-DukGWvWZ.js → qsharp-BL9AqNGD.js} +0 -0
- /package/web/assets/{r-BC41pTgC.js → r-D0dhpGOM.js} +0 -0
- /package/web/assets/{redis-D-gYIUku.js → redis-BMLwD7W9.js} +0 -0
- /package/web/assets/{redshift-r0XbF8XS.js → redshift-CkHh73og.js} +0 -0
- /package/web/assets/{restructuredtext-DsJDS7Eu.js → restructuredtext-DZ-LF65W.js} +0 -0
- /package/web/assets/{ruby-JPrm3ODz.js → ruby-UzPHTzc9.js} +0 -0
- /package/web/assets/{rust-C8IjEXni.js → rust-ja9NGnXZ.js} +0 -0
- /package/web/assets/{sb-D8vNiFl9.js → sb-BNdOJbMY.js} +0 -0
- /package/web/assets/{scala-DThahuqf.js → scala-LlhkyN6l.js} +0 -0
- /package/web/assets/{scheme-CvEQUYYf.js → scheme-BAj99YIn.js} +0 -0
- /package/web/assets/{scss-C6obpl8K.js → scss-chS-xxB3.js} +0 -0
- /package/web/assets/{shared-sse-Bpqv2-GI.js → shared-sse-_VzlL_VX.js} +0 -0
- /package/web/assets/{shell-BnVmd31t.js → shell-CcH7eYIc.js} +0 -0
- /package/web/assets/{solidity-Bo6zEybc.js → solidity-cVvnqX-K.js} +0 -0
- /package/web/assets/{sophia-DuB3Px8n.js → sophia-BBT-EdFw.js} +0 -0
- /package/web/assets/{sparql-CW9HqMW2.js → sparql-DGEqOrB6.js} +0 -0
- /package/web/assets/{sql-CPCPCQON.js → sql-CcTErTxM.js} +0 -0
- /package/web/assets/{st-AxC3n-1-.js → st-Bjw-B4mN.js} +0 -0
- /package/web/assets/{swift-CgZOS_MZ.js → swift-Bid-7bBd.js} +0 -0
- /package/web/assets/{systemverilog-DYR-yx39.js → systemverilog-CXju7Nd-.js} +0 -0
- /package/web/assets/{tcl-4hAvWv0d.js → tcl-D-Dw7JFz.js} +0 -0
- /package/web/assets/{twig-Cf_07aFW.js → twig-BIPbzEWT.js} +0 -0
- /package/web/assets/{typespec-2tXj8s11.js → typespec-UJSutGCV.js} +0 -0
- /package/web/assets/{vb-DLpM4f4s.js → vb-oyG_LJw0.js} +0 -0
- /package/web/assets/{w3c-keyname-CIiluUot.js → w3c-keyname-DtJs0qQm.js} +0 -0
- /package/web/assets/{wgsl-BcECae_z.js → wgsl-DXZ6ljB6.js} +0 -0
|
@@ -12,6 +12,8 @@ import {
|
|
|
12
12
|
OPENAI_COMPAT_BASE_URLS,
|
|
13
13
|
OptionalProviderIdSchema,
|
|
14
14
|
accountForOrg,
|
|
15
|
+
accountForOrgOrThrow,
|
|
16
|
+
accountForOrgScope,
|
|
15
17
|
apiKeyStore,
|
|
16
18
|
appVersion,
|
|
17
19
|
applyPersistedLanMode,
|
|
@@ -58,9 +60,10 @@ import {
|
|
|
58
60
|
serviceRouter,
|
|
59
61
|
setLanMode,
|
|
60
62
|
shutdownCodexAppServer,
|
|
63
|
+
soleAccountScope,
|
|
61
64
|
startCliSession,
|
|
62
65
|
vaultOfProject
|
|
63
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-HJZPLRNL.js";
|
|
64
67
|
import {
|
|
65
68
|
resolveCliInvocation,
|
|
66
69
|
whichCommand
|
|
@@ -83,7 +86,7 @@ import {
|
|
|
83
86
|
stopClaudeTranscriptWatcher,
|
|
84
87
|
stopCodexTranscriptWatcher,
|
|
85
88
|
verifyJwt
|
|
86
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-OSKZYKSN.js";
|
|
87
90
|
import "./chunk-MD3VW4HQ.js";
|
|
88
91
|
import {
|
|
89
92
|
agentManager,
|
|
@@ -122,10 +125,10 @@ import {
|
|
|
122
125
|
stableEncryptValue,
|
|
123
126
|
traefikManager,
|
|
124
127
|
unregisterInstance
|
|
125
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-OGCEFBSS.js";
|
|
126
129
|
import {
|
|
127
130
|
settingsManager
|
|
128
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-77UQ2UKW.js";
|
|
129
132
|
import {
|
|
130
133
|
AGENT_LONG_FETCH_TIMEOUT,
|
|
131
134
|
AGENT_STOP_FETCH_TIMEOUT,
|
|
@@ -149,15 +152,17 @@ import {
|
|
|
149
152
|
UpdateEnvironmentSchema,
|
|
150
153
|
VariableOverrideSchema,
|
|
151
154
|
VariableSchema,
|
|
155
|
+
ambiguousServiceSlugs,
|
|
156
|
+
crossServiceSlugsIn,
|
|
152
157
|
deriveLauncherIdentity,
|
|
153
158
|
getCollection,
|
|
154
159
|
nativeParsers,
|
|
155
160
|
primaryServiceLink,
|
|
156
161
|
readEntity,
|
|
162
|
+
serviceSlug,
|
|
157
163
|
writeEntity
|
|
158
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-6T7R2JZR.js";
|
|
159
165
|
import {
|
|
160
|
-
adoptUnstampedOrgs,
|
|
161
166
|
env,
|
|
162
167
|
forgetOrgLogo,
|
|
163
168
|
keyRoot,
|
|
@@ -174,10 +179,11 @@ import {
|
|
|
174
179
|
readOrgLogo,
|
|
175
180
|
readOrgLogos,
|
|
176
181
|
readOrgNames,
|
|
182
|
+
rememberOrgAccount,
|
|
177
183
|
rememberOrgLogo,
|
|
178
184
|
rememberOrgName,
|
|
179
185
|
stampOrgCloud
|
|
180
|
-
} from "./chunk-
|
|
186
|
+
} from "./chunk-ZFELQG4B.js";
|
|
181
187
|
|
|
182
188
|
// ../server/src/create-server.ts
|
|
183
189
|
import express from "express";
|
|
@@ -764,6 +770,54 @@ async function sealUnopenedOrgVaults() {
|
|
|
764
770
|
return sealed;
|
|
765
771
|
}
|
|
766
772
|
|
|
773
|
+
// ../server/src/services/service-graph.ts
|
|
774
|
+
function addKey(buckets, from, target, key) {
|
|
775
|
+
const id = `${from}\0${target}`;
|
|
776
|
+
const bucket = buckets.get(id) ?? { from, target, keys: /* @__PURE__ */ new Set() };
|
|
777
|
+
bucket.keys.add(key);
|
|
778
|
+
buckets.set(id, bucket);
|
|
779
|
+
}
|
|
780
|
+
function buildServiceGraph(input) {
|
|
781
|
+
const ambiguous = ambiguousServiceSlugs(input.services.map((s) => s.name));
|
|
782
|
+
const nodes = input.services.map((service) => {
|
|
783
|
+
const slug = serviceSlug(service.name);
|
|
784
|
+
return {
|
|
785
|
+
id: service.id,
|
|
786
|
+
name: service.name,
|
|
787
|
+
slug,
|
|
788
|
+
ambiguousSlug: ambiguous.has(slug)
|
|
789
|
+
};
|
|
790
|
+
});
|
|
791
|
+
const bySlug = /* @__PURE__ */ new Map();
|
|
792
|
+
for (const node of nodes) {
|
|
793
|
+
if (node.slug && !node.ambiguousSlug) bySlug.set(node.slug, node.id);
|
|
794
|
+
}
|
|
795
|
+
const edgeBuckets = /* @__PURE__ */ new Map();
|
|
796
|
+
const danglingBuckets = /* @__PURE__ */ new Map();
|
|
797
|
+
for (const service of input.services) {
|
|
798
|
+
const env2 = input.envByServiceId[service.id] ?? {};
|
|
799
|
+
for (const [key, value] of Object.entries(env2)) {
|
|
800
|
+
for (const slug of crossServiceSlugsIn(value)) {
|
|
801
|
+
const target = bySlug.get(slug);
|
|
802
|
+
if (target === service.id) continue;
|
|
803
|
+
if (target) addKey(edgeBuckets, service.id, target, key);
|
|
804
|
+
else addKey(danglingBuckets, service.id, slug, key);
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
}
|
|
808
|
+
const edges = [...edgeBuckets.values()].map((b) => ({
|
|
809
|
+
from: b.from,
|
|
810
|
+
to: b.target,
|
|
811
|
+
keys: [...b.keys].sort()
|
|
812
|
+
}));
|
|
813
|
+
const dangling = [...danglingBuckets.values()].map((b) => ({
|
|
814
|
+
from: b.from,
|
|
815
|
+
slug: b.target,
|
|
816
|
+
keys: [...b.keys].sort()
|
|
817
|
+
}));
|
|
818
|
+
return { nodes, edges, dangling };
|
|
819
|
+
}
|
|
820
|
+
|
|
767
821
|
// ../server/src/trpc/routers/project.ts
|
|
768
822
|
async function assertReadable(orgId) {
|
|
769
823
|
if (!orgId) return;
|
|
@@ -1018,6 +1072,55 @@ var projectRouter = router({
|
|
|
1018
1072
|
setCurrentProject(input ? { id: input.id, orgId: input.orgId } : null);
|
|
1019
1073
|
return { ok: true };
|
|
1020
1074
|
}),
|
|
1075
|
+
/**
|
|
1076
|
+
* Le graphe des dépendances du projet : qui a besoin de qui.
|
|
1077
|
+
*
|
|
1078
|
+
* Les arêtes ne sont pas déclarées, elles se lisent — une variable de A qui
|
|
1079
|
+
* cite `{{services.<slug-de-B>.PORT}}` EST la dépendance, celle-là même que
|
|
1080
|
+
* l'interpolation résout au déploiement. Rien à tenir à jour à côté, donc
|
|
1081
|
+
* rien qui puisse mentir.
|
|
1082
|
+
*
|
|
1083
|
+
* Seules les CLÉS des variables sortent d'ici. Les valeurs résolues portent
|
|
1084
|
+
* des secrets déchiffrés : elles servent à détecter la référence, et
|
|
1085
|
+
* s'arrêtent là.
|
|
1086
|
+
*/
|
|
1087
|
+
graph: protectedProcedure.input(z4.object({
|
|
1088
|
+
id: z4.string().min(1).max(128),
|
|
1089
|
+
orgId: z4.string().max(128).nullable().optional()
|
|
1090
|
+
})).query(async ({ ctx, input }) => {
|
|
1091
|
+
const project = await projectStore.get(input);
|
|
1092
|
+
if (!project) {
|
|
1093
|
+
throw new TRPCError2({ code: "NOT_FOUND", message: `Project ${input.id} not found` });
|
|
1094
|
+
}
|
|
1095
|
+
await assertReadable(project.orgId);
|
|
1096
|
+
const allowed = getAllowedServiceIds(ctx);
|
|
1097
|
+
const services = (await Promise.all(project.serviceIds.map((sid) => serviceStore.get(sid)))).filter((s) => s !== null);
|
|
1098
|
+
const envByServiceId = {};
|
|
1099
|
+
if (project.activeEnvironmentId) {
|
|
1100
|
+
const activeEnvironmentId = project.activeEnvironmentId;
|
|
1101
|
+
await Promise.all(services.map(async (service) => {
|
|
1102
|
+
try {
|
|
1103
|
+
const resolved = await environmentResolver.resolveForService({
|
|
1104
|
+
serviceId: service.id,
|
|
1105
|
+
activeEnvironmentId
|
|
1106
|
+
});
|
|
1107
|
+
envByServiceId[service.id] = resolved.env;
|
|
1108
|
+
} catch (err) {
|
|
1109
|
+
console.error("[project-router] Failed to resolve variables for graph, service", service.id + ":", err.message);
|
|
1110
|
+
}
|
|
1111
|
+
}));
|
|
1112
|
+
}
|
|
1113
|
+
const graph = buildServiceGraph({
|
|
1114
|
+
services: services.map((s) => ({ id: s.id, name: s.name })),
|
|
1115
|
+
envByServiceId
|
|
1116
|
+
});
|
|
1117
|
+
if (allowed === null) return graph;
|
|
1118
|
+
return {
|
|
1119
|
+
nodes: graph.nodes.filter((n) => allowed.has(n.id)),
|
|
1120
|
+
edges: graph.edges.filter((e) => allowed.has(e.from) && allowed.has(e.to)),
|
|
1121
|
+
dangling: graph.dangling.filter((d) => allowed.has(d.from))
|
|
1122
|
+
};
|
|
1123
|
+
}),
|
|
1021
1124
|
localPaths: protectedProcedure.query(async () => {
|
|
1022
1125
|
return projectPathStore.all();
|
|
1023
1126
|
}),
|
|
@@ -5812,8 +5915,9 @@ var kanbanRouter = router({
|
|
|
5812
5915
|
downloadAttachment: protectedProcedure.input(z19.object({
|
|
5813
5916
|
attachmentId: z19.string().max(128),
|
|
5814
5917
|
// La pièce jointe appartient à une organisation : la nommer dit sous quel
|
|
5815
|
-
// compte la demander.
|
|
5816
|
-
//
|
|
5918
|
+
// compte la demander. C'est le SEUL appel qui tolère de ne pas l'avoir —
|
|
5919
|
+
// un agent n'a qu'un identifiant de fichier — et il échoue alors en le
|
|
5920
|
+
// disant dès que ce poste a plusieurs comptes.
|
|
5817
5921
|
orgId: z19.string().max(128).optional()
|
|
5818
5922
|
})).mutation(async ({ input }) => {
|
|
5819
5923
|
const id = input.attachmentId;
|
|
@@ -5822,7 +5926,7 @@ var kanbanRouter = router({
|
|
|
5822
5926
|
}
|
|
5823
5927
|
const res = await cloudFetch2(`/api/kanban/file/${id}`, {
|
|
5824
5928
|
timeoutMs: 12e4,
|
|
5825
|
-
|
|
5929
|
+
accountId: input.orgId ? await accountForOrgScope(input.orgId) : await soleAccountScope()
|
|
5826
5930
|
});
|
|
5827
5931
|
if (res.status === 404) {
|
|
5828
5932
|
throw new TRPCError16({ code: "NOT_FOUND", message: `Attachment ${id} not found` });
|
|
@@ -6320,7 +6424,7 @@ async function reconcileOrgCanary(orgId) {
|
|
|
6320
6424
|
const res = await cloudFetch("/api/auth/organization/canary", {
|
|
6321
6425
|
method: "POST",
|
|
6322
6426
|
body: { organizationId: orgId, canary: local },
|
|
6323
|
-
orgId
|
|
6427
|
+
accountId: await accountForOrgOrThrow(orgId)
|
|
6324
6428
|
});
|
|
6325
6429
|
if (!res.ok) {
|
|
6326
6430
|
throw new CanaryUnavailableError("Could not reach the organization on the cloud.");
|
|
@@ -7456,6 +7560,8 @@ var cloudSyncRouter = router({
|
|
|
7456
7560
|
cloudUrl: input.cloudUrl,
|
|
7457
7561
|
...await accountScope(input.orgId)
|
|
7458
7562
|
});
|
|
7563
|
+
} else if (input.accountId) {
|
|
7564
|
+
await stampOrgCloud(input.orgId, input.cloudUrl, void 0, input.accountId);
|
|
7459
7565
|
}
|
|
7460
7566
|
try {
|
|
7461
7567
|
const pulled = await cloudSyncBridge.followProject(input.orgId, input.projectId);
|
|
@@ -7508,6 +7614,8 @@ var cloudSyncRouter = router({
|
|
|
7508
7614
|
cloudUrl: input.cloudUrl,
|
|
7509
7615
|
...await accountScope(input.orgId)
|
|
7510
7616
|
});
|
|
7617
|
+
} else if (input.accountId) {
|
|
7618
|
+
await stampOrgCloud(input.orgId, input.cloudUrl, void 0, input.accountId);
|
|
7511
7619
|
}
|
|
7512
7620
|
await projectStore.moveToOrg(input.projectId, input.orgId);
|
|
7513
7621
|
await projectPathStore.relocate(
|
|
@@ -7539,7 +7647,7 @@ var cloudSyncRouter = router({
|
|
|
7539
7647
|
})).query(async ({ input }) => {
|
|
7540
7648
|
const res = await cloudFetch2(
|
|
7541
7649
|
`/api/auth/organization/canary?organizationId=${encodeURIComponent(input.orgId)}`,
|
|
7542
|
-
{ method: "GET",
|
|
7650
|
+
{ method: "GET", accountId: await accountForOrgScope(input.orgId) }
|
|
7543
7651
|
);
|
|
7544
7652
|
if (!res.ok) {
|
|
7545
7653
|
throw new TRPCError19({ code: "BAD_GATEWAY", message: await cloudMessage(res) || `CANARY_READ_FAILED (${res.status})` });
|
|
@@ -7562,7 +7670,7 @@ var cloudSyncRouter = router({
|
|
|
7562
7670
|
if (!key) return { status: "unknown" };
|
|
7563
7671
|
const res = await cloudFetch2(
|
|
7564
7672
|
`/api/auth/organization/canary?organizationId=${encodeURIComponent(input.orgId)}`,
|
|
7565
|
-
{ method: "GET",
|
|
7673
|
+
{ method: "GET", accountId: await accountForOrgScope(input.orgId) }
|
|
7566
7674
|
);
|
|
7567
7675
|
if (!res.ok) return { status: "unknown" };
|
|
7568
7676
|
const { canary } = await res.json();
|
|
@@ -7617,7 +7725,7 @@ var cloudSyncRouter = router({
|
|
|
7617
7725
|
const res = await cloudFetch2("/api/auth/organization/canary/reset", {
|
|
7618
7726
|
method: "POST",
|
|
7619
7727
|
body: { organizationId: input.orgId, canary },
|
|
7620
|
-
|
|
7728
|
+
accountId: await accountForOrgScope(input.orgId)
|
|
7621
7729
|
});
|
|
7622
7730
|
if (!res.ok) {
|
|
7623
7731
|
const detail = await cloudMessage(res);
|
|
@@ -7665,7 +7773,9 @@ var cloudSyncRouter = router({
|
|
|
7665
7773
|
res = await cloudFetch2("/api/auth/project/delete", {
|
|
7666
7774
|
method: "POST",
|
|
7667
7775
|
body: { organizationId: input.orgId, projectId: input.projectId },
|
|
7668
|
-
|
|
7776
|
+
// Dans le `try` : ne rien avoir à quoi rattacher l'organisation doit
|
|
7777
|
+
// ressortir comme CLOUD_NOT_LINKED, pas comme une erreur interne.
|
|
7778
|
+
accountId: await accountForOrgScope(input.orgId)
|
|
7669
7779
|
});
|
|
7670
7780
|
} catch (err) {
|
|
7671
7781
|
if (err instanceof TRPCError19 && err.code === "PRECONDITION_FAILED") {
|
|
@@ -7702,6 +7812,35 @@ var cloudSyncRouter = router({
|
|
|
7702
7812
|
* afficher. Le nom est donc recopié dans le tampon du coffre au passage, là
|
|
7703
7813
|
* où il est déjà lu au démarrage suivant.
|
|
7704
7814
|
*/
|
|
7815
|
+
/**
|
|
7816
|
+
* Retenir à quel compte appartient chaque organisation.
|
|
7817
|
+
*
|
|
7818
|
+
* Poussé par l'interface avec ce que le cloud vient de répondre : une
|
|
7819
|
+
* organisation appartient au compte qui la LISTE. Le poste ne peut pas le
|
|
7820
|
+
* déduire — il l'a tenté, et il a rangé sous un compte les organisations
|
|
7821
|
+
* d'un autre. Même forme que `rememberOrgNames`, et pour la même raison :
|
|
7822
|
+
* ce que seul le cloud sait, on le recopie quand il le dit.
|
|
7823
|
+
*/
|
|
7824
|
+
rememberOrgAccounts: protectedProcedure.input(z23.object({
|
|
7825
|
+
orgs: z23.array(z23.object({
|
|
7826
|
+
orgId: z23.string().min(1).max(128),
|
|
7827
|
+
accountId: z23.string().min(1).max(64)
|
|
7828
|
+
})).max(200)
|
|
7829
|
+
})).mutation(async ({ input }) => {
|
|
7830
|
+
const candidates = /* @__PURE__ */ new Map();
|
|
7831
|
+
for (const { orgId, accountId } of input.orgs) {
|
|
7832
|
+
candidates.set(orgId, [...candidates.get(orgId) ?? [], accountId]);
|
|
7833
|
+
}
|
|
7834
|
+
const current2 = await readOrgAccounts();
|
|
7835
|
+
let remembered = 0;
|
|
7836
|
+
for (const [orgId, accountIds] of candidates) {
|
|
7837
|
+
const kept = current2[orgId];
|
|
7838
|
+
if (kept && accountIds.includes(kept)) continue;
|
|
7839
|
+
await rememberOrgAccount(orgId, accountIds[0]);
|
|
7840
|
+
remembered++;
|
|
7841
|
+
}
|
|
7842
|
+
return { remembered };
|
|
7843
|
+
}),
|
|
7705
7844
|
rememberOrgNames: protectedProcedure.input(z23.object({
|
|
7706
7845
|
orgs: z23.array(z23.object({
|
|
7707
7846
|
orgId: z23.string().min(1).max(128),
|
|
@@ -9626,13 +9765,6 @@ async function createLocalServer() {
|
|
|
9626
9765
|
res.status(502).send("The cloud did not say who this session belongs to.");
|
|
9627
9766
|
return;
|
|
9628
9767
|
}
|
|
9629
|
-
const before = await cloudSessionStore.list();
|
|
9630
|
-
if (before.length === 1 && before[0].userId !== identity.userId) {
|
|
9631
|
-
const adopted = await adoptUnstampedOrgs(before[0].id);
|
|
9632
|
-
if (adopted.length > 0) {
|
|
9633
|
-
console.log(`[cloud] ${adopted.length} organisation(s) rattach\xE9e(s) au compte ${before[0].email || before[0].id}`);
|
|
9634
|
-
}
|
|
9635
|
-
}
|
|
9636
9768
|
await cloudSessionStore.add(getCloudApiUrl(), sessionToken, identity);
|
|
9637
9769
|
void cloudSyncBridge.resumeAll();
|
|
9638
9770
|
res.redirect(`${returnTo}?cloud=linked`);
|
|
@@ -9660,7 +9792,7 @@ async function createLocalServer() {
|
|
|
9660
9792
|
res.status(401).end();
|
|
9661
9793
|
return;
|
|
9662
9794
|
}
|
|
9663
|
-
const streamBase = await
|
|
9795
|
+
const streamBase = await orgCloudUrl(organizationId);
|
|
9664
9796
|
const upstreamAbort = new AbortController();
|
|
9665
9797
|
req.on("close", () => upstreamAbort.abort());
|
|
9666
9798
|
try {
|
|
@@ -9720,7 +9852,7 @@ async function createLocalServer() {
|
|
|
9720
9852
|
res.status(401).end();
|
|
9721
9853
|
return;
|
|
9722
9854
|
}
|
|
9723
|
-
const streamBase = await
|
|
9855
|
+
const streamBase = await orgCloudUrl(organizationId);
|
|
9724
9856
|
const upstreamQuery = new URLSearchParams({ organizationId });
|
|
9725
9857
|
if (typeof req.query["name"] === "string") upstreamQuery.set("name", req.query["name"]);
|
|
9726
9858
|
try {
|
|
@@ -9761,7 +9893,7 @@ async function createLocalServer() {
|
|
|
9761
9893
|
}
|
|
9762
9894
|
try {
|
|
9763
9895
|
const upstream = await fetch(
|
|
9764
|
-
`${(await cloudSessionStore.getCloudUrl(fileAccountId ?? void 0) ?? getCloudApiUrl()
|
|
9896
|
+
`${fileOrgId ? await orgCloudUrl(fileOrgId) : await cloudSessionStore.getCloudUrl(fileAccountId ?? void 0) ?? getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
|
|
9765
9897
|
{
|
|
9766
9898
|
method: "DELETE",
|
|
9767
9899
|
headers: { Authorization: `Bearer ${token}`, [APP_VERSION_HEADER]: appVersion },
|
|
@@ -9790,7 +9922,7 @@ async function createLocalServer() {
|
|
|
9790
9922
|
}
|
|
9791
9923
|
try {
|
|
9792
9924
|
const upstream = await fetch(
|
|
9793
|
-
`${(await cloudSessionStore.getCloudUrl(fileAccountId ?? void 0) ?? getCloudApiUrl()
|
|
9925
|
+
`${fileOrgId ? await orgCloudUrl(fileOrgId) : await cloudSessionStore.getCloudUrl(fileAccountId ?? void 0) ?? getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
|
|
9794
9926
|
{
|
|
9795
9927
|
headers: { Authorization: `Bearer ${token}`, [APP_VERSION_HEADER]: appVersion },
|
|
9796
9928
|
signal: AbortSignal.timeout(3e5)
|
|
@@ -9810,6 +9942,33 @@ async function createLocalServer() {
|
|
|
9810
9942
|
res.status(502).end();
|
|
9811
9943
|
}
|
|
9812
9944
|
});
|
|
9945
|
+
app.get("/api/cloud/avatar/:userId", async (req, res) => {
|
|
9946
|
+
const userId = req.params.userId;
|
|
9947
|
+
if (!/^[A-Za-z0-9._-]{1,128}$/.test(userId)) {
|
|
9948
|
+
res.status(400).end();
|
|
9949
|
+
return;
|
|
9950
|
+
}
|
|
9951
|
+
const orgId = typeof req.query["organizationId"] === "string" ? req.query["organizationId"] : "";
|
|
9952
|
+
const accountId = typeof req.query["accountId"] === "string" ? req.query["accountId"] : "";
|
|
9953
|
+
try {
|
|
9954
|
+
const base = orgId ? await orgCloudUrl(orgId) : await cloudSessionStore.getCloudUrl(accountId || void 0) ?? getCloudApiUrl();
|
|
9955
|
+
const upstream = await fetch(`${base}/api/avatar/${encodeURIComponent(userId)}`, {
|
|
9956
|
+
headers: { [APP_VERSION_HEADER]: appVersion },
|
|
9957
|
+
signal: AbortSignal.timeout(15e3)
|
|
9958
|
+
});
|
|
9959
|
+
if (!upstream.ok) {
|
|
9960
|
+
res.status(upstream.status).end();
|
|
9961
|
+
return;
|
|
9962
|
+
}
|
|
9963
|
+
res.set("Content-Type", upstream.headers.get("content-type") ?? "application/octet-stream");
|
|
9964
|
+
res.set("X-Content-Type-Options", "nosniff");
|
|
9965
|
+
res.set("Content-Security-Policy", "default-src 'none'; sandbox");
|
|
9966
|
+
res.set("Cache-Control", "public, max-age=300");
|
|
9967
|
+
res.send(Buffer.from(await upstream.arrayBuffer()));
|
|
9968
|
+
} catch {
|
|
9969
|
+
res.status(502).end();
|
|
9970
|
+
}
|
|
9971
|
+
});
|
|
9813
9972
|
proxyCloudStream("/api/cloud/chat/stream", "/api/chat/stream");
|
|
9814
9973
|
proxyCloudStream("/api/cloud/kanban/stream", "/api/kanban/stream");
|
|
9815
9974
|
app.post("/api/unlock", authLimiter, csrfMiddleware, express.json({ limit: "10kb" }), async (req, res) => {
|
|
@@ -10190,7 +10349,7 @@ async function createLocalServer() {
|
|
|
10190
10349
|
]);
|
|
10191
10350
|
console.log("[server] Shutdown complete");
|
|
10192
10351
|
};
|
|
10193
|
-
const { initCompanion } = await import("./companion-
|
|
10352
|
+
const { initCompanion } = await import("./companion-7EFYZNCO.js");
|
|
10194
10353
|
initCompanion();
|
|
10195
10354
|
return { app, server, wss, shutdown };
|
|
10196
10355
|
}
|
|
@@ -10637,4 +10796,4 @@ export {
|
|
|
10637
10796
|
startProcess,
|
|
10638
10797
|
stopProcess
|
|
10639
10798
|
};
|
|
10640
|
-
//# sourceMappingURL=src-
|
|
10799
|
+
//# sourceMappingURL=src-SH5RPUNH.js.map
|