@runeya/runeya 2.0.106 → 2.0.108
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-manager-EI7SXPN5.js +9 -0
- package/{chat-N6XONNVG.js → chat-WMT34BXJ.js} +6 -6
- package/{chunk-YQISK6BL.js → chunk-4SJCPFGK.js} +401 -72
- package/chunk-4SJCPFGK.js.map +1 -0
- package/{chunk-5GYBAMHV.js → chunk-D2PF2FYU.js} +2 -2
- package/{chunk-CQCCVPTX.js → chunk-DS66SEYH.js} +29 -7
- package/chunk-DS66SEYH.js.map +1 -0
- package/{chunk-NPORVPEO.js → chunk-RIITTBK3.js} +2 -2
- package/{chunk-LTLOVQJQ.js → chunk-ZFELQG4B.js} +49 -3
- package/chunk-ZFELQG4B.js.map +1 -0
- package/{companion-7AFRBUQI.js → companion-EPINTIC7.js} +4 -4
- package/index.js +3 -3
- package/package.json +1 -1
- package/settings-manager-YSH7ZCLP.js +9 -0
- package/{src-US4EBM64.js → src-LONZKLMU.js} +174 -42
- package/src-LONZKLMU.js.map +1 -0
- package/{vault-resolver-JR7TCITD.js → vault-resolver-57Q2DVOR.js} +8 -2
- package/web/assets/AgentScalarChatInterface.vue-CElmj8LJ.js +13 -0
- package/web/assets/AgentTerminalPage-hk46uwat.js +1 -0
- package/web/assets/AiChatPage-wCWG0TXA.js +1 -0
- package/web/assets/{AppLayout-EhZfYcsl.css → AppLayout-6LmWDDMH.css} +1 -1
- package/web/assets/AppLayout-CHxGU2pw.js +1 -0
- package/web/assets/AuditPage-CSRVCGZi.js +1 -0
- package/web/assets/CloudAccountPage-CfMY69pk.css +1 -0
- package/web/assets/CloudAccountPage-DjQdxy2v.js +1 -0
- package/web/assets/CloudAccountPage-UnmpE1jD.js +1 -0
- package/web/assets/CloudMessagingPage-BRwxGiH2.css +1 -0
- package/web/assets/CloudMessagingPage-jh1AWzKj.js +2 -0
- package/web/assets/DashboardPage-CiihNr9b.js +164 -0
- package/web/assets/DirectoryPickerDialog-Dy1zyHux.js +1 -0
- package/web/assets/{EditorIcon-BWhMJTSH.js → EditorIcon-DvX4OCO1.js} +2 -2
- package/web/assets/EnvironmentForm-D2JDn5Zc.js +108 -0
- package/web/assets/EnvironmentFormPage-BPDo_AMy.js +1 -0
- package/web/assets/EnvironmentListPage-BFT6nMkR.js +1 -0
- package/web/assets/KanbanBoardPage-6vbnqxkk.js +4 -0
- package/web/assets/KanbanBoardPage-CoTX8nB6.css +1 -0
- package/web/assets/KanbanListPage-BBLCnzN8.js +1 -0
- package/web/assets/LaunchProjectPage-BHLH3peH.css +1 -0
- package/web/assets/LaunchProjectPage-Cznkvcvm.js +1 -0
- package/web/assets/LaunchServicesPage-DwkYQefD.js +1 -0
- package/web/assets/LogViewer-x7JfZfN8.js +3 -0
- package/web/assets/OrgKeyPrompt-DPWfDcID.js +1 -0
- package/web/assets/{ProcessControls-B6blcC2b.js → ProcessControls-DPOmEvIy.js} +1 -1
- package/web/assets/ProcessDetailPage-BDsM9dnQ.js +1 -0
- package/web/assets/{ProcessMetrics-luXa72sd.js → ProcessMetrics-C2YI8_M5.js} +2 -2
- package/web/assets/{RandomJobTestPage-uuy7by63.js → RandomJobTestPage-DGA72-VM.js} +1 -1
- package/web/assets/ScenarioEditorPage-B4zEfHEz.js +14 -0
- package/web/assets/SendToChatDialog-8RfesH1F.js +1 -0
- package/web/assets/ServiceControlsBar-DLHgd13V.js +1 -0
- package/web/assets/ServiceDetailPage-na_wgdlZ.js +2 -0
- package/web/assets/ServiceFormPage-Cn_FPvKf.js +1 -0
- package/web/assets/{SettingsPage-CrzdGJlG.css → SettingsPage-B7yKfXK2.css} +1 -1
- package/web/assets/SettingsPage-QBOlzawK.js +2063 -0
- package/web/assets/UnlockPage-A75PjxBe.js +1 -0
- package/web/assets/VariablesTable-D8Oh3-1C.js +1 -0
- package/web/assets/VaultMigrationPage-DA9H-AhS.js +1 -0
- package/web/assets/VersionBadge-DNDzBQcJ.js +1 -0
- package/web/assets/WikiPage-DdY1dy8w.js +1 -0
- package/web/assets/WikiView-Td2Ice0P.js +1 -0
- package/web/assets/add-scalar-classes-D0W5Egzt.js +387 -0
- package/web/assets/{autocomplete-COj-K1Nc.js → autocomplete-DXp2_8rJ.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-Dw9kJc3l.js → basic-shape-diamond.svg-CUsdhYKG.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-DeTUNvAm.js → basic-shape-hexagon.svg-BPfS9EDA.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-CZe21n5k.js → basic-shape-primary-circle-ellipse-round.svg-C0Y2bkJl.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-DIvBb7uH.js → basic-shape-primary-square-rectangle.svg-1LwihH2B.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-D2Ttq4yx.js → basic-shape-shield.svg-DGe2vG6Z.js} +1 -1
- package/web/assets/{browser-BtPtEa-Z.js → browser-CQu9nsVO.js} +1 -1
- package/web/assets/{browser-8qE0e05E.js → browser-QoavDMKL.js} +1 -1
- package/web/assets/{card-pbrPkbmk.js → card-zbAp8JZP.js} +2 -2
- package/web/assets/{checkbox-g16PaQaN.js → checkbox-BKV4svPN.js} +3 -3
- package/web/assets/{chip-B1jaR69s.js → chip-DA83o4Kg.js} +2 -2
- package/web/assets/client-Cb_xJW-8.js +24 -0
- package/web/assets/cloud-chat.store-BA5nPaX6.js +1 -0
- package/web/assets/cloud-client-C_MUljS_.js +1 -0
- package/web/assets/cloud-session-BRyDsLxd.js +1 -0
- package/web/assets/cloud-session-DqTwnX4d.js +2 -0
- package/web/assets/column-BVUPaQkA.js +907 -0
- package/web/assets/{computer-device-desktop-monitor.svg-BpU1vmqL.js → computer-device-desktop-monitor.svg-CAldNRkh.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-CofWATKj.js → computer-device-desktop.svg-DwVKMGyS.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-Bk0WdntU.js → computer-device-laptop.svg-fyjI7tSV.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-4jDLeTUE.js → computer-device-mobile-phone-android-samsung-back.svg-CNHunNo4.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-BtDfk53W.js → computer-device-mobile-phone-android-samsung.svg-WhhpuflD.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-mrfLt2LS.js → computer-device-mobile-phone-iphone-x-back.svg-RveI1E1x.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-D3hLzA-f.js → computer-device-mobile-phone-iphone-x.svg-Cyjp0aan.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-URFOvX2G.js → computer-device-mobile-tablet-touch.svg-u88Qx92m.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-CIdkHAYo.js → computer-device-mobile-tablet.svg-Dzdz4e4O.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BEC9unNd.js → computer-device-network-ethernet-cat6.svg-BW1j1BkJ.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-C_WEyWn-.js → computer-device-network-lan-www.svg-CxNGv37e.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-D2xhIyf7.js → computer-device-network-wifi-connection.svg-Ck3nAZv3.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-DwIQxKAQ.js → computer-device-network-wifi-router.svg-gWXKoMXh.js} +1 -1
- package/web/assets/{cssMode-YcxdUWNT.js → cssMode-D8Jyxeqc.js} +1 -1
- package/web/assets/{divider-C95jkWZ7.js → divider-D-Mvqkj1.js} +2 -2
- package/web/assets/{docx-preview-B1K7Js_Q.js → docx-preview-DxSIfBtK.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-DOmkHECy.js → ecology-science-erlenmeyer-flask.svg-psfHQe5z.js} +1 -1
- package/web/assets/{fieldset-DEPqiZWe.js → fieldset-oHSSpvVY.js} +2 -2
- package/web/assets/{freemarker2-Bzhvjbz4.js → freemarker2-DlJBY4WY.js} +1 -1
- package/web/assets/{handlebars-CymxzXg4.js → handlebars-DTEXdr2O.js} +1 -1
- package/web/assets/{html-CouVDmTR.js → html-eYBbc2Bx.js} +1 -1
- package/web/assets/{htmlMode-Be-vsCic.js → htmlMode-B4O_yjGK.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-CTaPLIBa.js → image-flash-lightning.svg-r_oTLRoo.js} +1 -1
- package/web/assets/{image-picture-flower.svg-BkIdyuJf.js → image-picture-flower.svg-8nv9asUS.js} +1 -1
- package/web/assets/{index-DkeyMLje.js → index-B9x3uCZ9.js} +6 -6
- package/web/assets/{interface-alert-exclamation-diamond.svg-LE6wXJfb.js → interface-alert-exclamation-diamond.svg-A5K0l-78.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-DnJUBUVG.js → interface-alert-exclamation-triangle-warning.svg-Dq66i82G.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-BBESAf3A.js → interface-alert-information-circle.svg-B4ROZIk0.js} +1 -1
- package/web/assets/{interface-award-crown.svg-A9FnpbJ_.js → interface-award-crown.svg-DRnv1a4n.js} +1 -1
- package/web/assets/{interface-bookmark.svg-BMCuN1KQ.js → interface-bookmark-tag.svg-Dwwi4iOX.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-CONBx7yi.js → interface-bookmark.svg-CopCSuT2.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-BsHBSc-o.js → interface-calendar-date-one.svg-BxkYYC67.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-BsndNDne.js → interface-content-book-open-pages.svg-BJozsCHP.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-D9O4ldas.js → interface-content-book-page.svg-CbWXY0Yb.js} +1 -1
- package/web/assets/{interface-content-file.svg-3hZDtYrB.js → interface-content-file.svg-Ck3RuXRm.js} +1 -1
- package/web/assets/{interface-content-folder.svg-D2PGz4rg.js → interface-content-folder.svg-LK0HJ4yQ.js} +1 -1
- package/web/assets/interface-content-folder.svg-pxt6DqMZ.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-DDENzgQo.js → interface-copy-clipboard.svg-vkTPN1aA.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-D2cQZV5Q.js → interface-edit-attachment.svg-CjCh5Lb1.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-DrIFa0gk.js → interface-edit-binocular.svg-Dos2P4t_.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-AnGByEQd.js → interface-edit-magic-wand.svg-fxAohPEI.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-KNrFMeco.js → interface-edit-tool-paint-roller.svg-JLIYavUO.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-DF9u9WDQ.js → interface-edit-tool-pencil.svg-Tkm527sw.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-mkb9vXWE.js → interface-favorite-award.svg-O-HQC6xP.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-BDIYdX-W.js → interface-favorite-flag.svg-DWSuqI-W.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-DtIvO6z9.js → interface-favorite-heart.svg-3md2synz.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-CEv2Io1P.js → interface-favorite-star.svg-MnNO7Wk6.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-D0SoJbJE.js → interface-favorite-stars-sparkles.svg-WKCS18Oo.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-B-kMOZH8.js → interface-hierarchy-flowchart.svg-KnHJ7War.js} +1 -1
- package/web/assets/{interface-home-house.svg-FOYUzOig.js → interface-home-house.svg-2bdYCM0o.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BaPGYtZM.js → interface-hyperlink.svg-dTQQRFwy.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-ddMiifOe.js → interface-lighting-brightness.svg-CwI2OM6O.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-WGGCrOPW.js → interface-lock-closed.svg-BcnsrWQP.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-BHdzRkd9.js → interface-lock-open-unlock.svg-Du_CfbnO.js} +1 -1
- package/web/assets/{interface-login-key.svg-C-CaH8gN.js → interface-login-key.svg-C3Hh7Lxb.js} +1 -1
- package/web/assets/{interface-search.svg-BWvztnST.js → interface-search.svg-DRez-w7-.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-BiiP7i7e.js → interface-setting-cog.svg-BbO7fWvj.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-BaNwYllj.js → interface-share-megaphone-bullhorn.svg-BbNIqS3V.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-DpVzHxi1.js → interface-share-rocket.svg-NYzb39WL.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-DVMadDln.js → interface-share-satellite.svg-BVbcZIy6.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-B1a7LlLT.js → interface-share-space-ship.svg-BFY5IO9d.js} +1 -1
- package/web/assets/{interface-share.svg-BknNtx4U.js → interface-share.svg-BTd9ID7k.js} +1 -1
- package/web/assets/{interface-signal-square.svg-DTf1mlii.js → interface-signal-square.svg-MjEdhTXk.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-DT6LHPex.js → interface-time-clock-circle.svg-ChSylXjE.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-CNCTqw_R.js → interface-time-hour-glass.svg-BZQl9M_C.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-DuMlS4pH.js → interface-users-multiple.svg-BmvFtDD2.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-BfOraF6E.js → interface-weather-moon.svg-CU_uP2aE.js} +1 -1
- package/web/assets/{javascript-CSbYcb4a.js → javascript-CzJXS_Bo.js} +1 -1
- package/web/assets/{jsonMode-BfABTJ_P.js → jsonMode-ClLnazHL.js} +1 -1
- package/web/assets/{liquid-D8zk2iFJ.js → liquid-k8yO1VdQ.js} +1 -1
- package/web/assets/{lspLanguageFeatures-CDjcX5cq.js → lspLanguageFeatures-BdUk3xiz.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-B57LhJ7L.js → mail-chat-bubble-square.svg-UruTYt7K.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-Zh4WfmfD.js → mail-send-email-paper-airplane.svg-CQ8gOMxm.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-B3JTaotd.js → mail-send-envelope.svg-B8XF7xYz.js} +1 -1
- package/web/assets/{mdx-Rt1S5V6O.js → mdx-Dpg5Mbqd.js} +1 -1
- package/web/assets/{minus-h_LYd9EK.js → minus-CM-56m8R.js} +2 -2
- package/web/assets/modal-DD3RK2dR.js +5 -0
- package/web/assets/modal-DXywOsPE.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-BYcjjmII.js → money-cashier-receipt.svg-BGvvrVYh.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-D_eoPfYw.js → money-currency-dollar-pay.svg-oPVgaUnC.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-BVafbTUR.js → money-graph-arrow-increase.svg-DbW43WXz.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-DFCnoSVq.js → money-graph-bar-chart-increase.svg-BecdDdvJ.js} +1 -1
- package/web/assets/multiselect-Bk3EZIJC.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-DI19KkR3.js → nature-ecology-leaf.svg-CZxwEqo2.js} +1 -1
- package/web/assets/{password-BQyr-83Q.js → password-CJ4ckRGW.js} +4 -4
- package/web/assets/{phone-telephone.svg-si7GWPbw.js → phone-telephone.svg-U4WTbEXR.js} +1 -1
- package/web/assets/{plus-yTeMgVZF.js → plus-DvnsNNSA.js} +6 -6
- package/web/assets/process.store-utLBiVI8.js +1 -0
- package/web/assets/{programming-bug.svg-C8_FsRk_.js → programming-bug.svg-D-ueh13g.js} +1 -1
- package/web/assets/{programming-cloud.svg-Djjnh8pM.js → programming-cloud.svg-DW3eNYjS.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-Cw72ZkUG.js → programming-computer-database-server.svg-bBeXwbmi.js} +1 -1
- package/web/assets/{programming-computer-database.svg-C0Z7_RVR.js → programming-computer-database.svg-DP1oJ-Xb.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-BvERcUAT.js → programming-module-four-layout.svg-BCRfiu3A.js} +1 -1
- package/web/assets/{programming-module-three.svg-BkoUon6u.js → programming-module-three.svg-Cb8y-suF.js} +1 -1
- package/web/assets/{programming-module.svg-CK1yw5W-.js → programming-module.svg-CCF23Kn-.js} +1 -1
- package/web/assets/{programming-script-code.svg-BhU73hpj.js → programming-script-code.svg-D7zugBoU.js} +1 -1
- package/web/assets/project-launch.store-D0bLcuPZ.js +1 -0
- package/web/assets/project.store-BcKEFAKW.js +1 -0
- package/web/assets/{python-CSf8HAN9.js → python-C2Xee937.js} +1 -1
- package/web/assets/{razor-BKjp9q-U.js → razor-DP11amFn.js} +1 -1
- package/web/assets/router-BhS8cxIJ.js +1 -0
- package/web/assets/settings-scope-KsJCT82K.js +1 -0
- package/web/assets/{settings.store-BBoXO9_c.js → settings.store-FxdXT3wT.js} +1 -1
- package/web/assets/{shopping-cart.svg-CgRtQ4k-.js → shopping-cart.svg-DWikcMT4.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-XdAdBUaO.js → shopping-gift-present.svg-4RQmBLlg.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BaFPv3xL.js → shopping-shipping-box-parcel-package.svg-D1lBxinA.js} +1 -1
- package/web/assets/src-BQn5mgNu.js +1 -0
- package/web/assets/src-Dq9wfPM5.css +1 -0
- package/web/assets/{src-DeCIcklm.js → src-Dwvd5kd0.js} +33 -33
- package/web/assets/src-vE4VZ3D3.js +572 -0
- package/web/assets/tabpanel-ep3FBKze.js +150 -0
- package/web/assets/{tag-new-circle.svg-BwxdYwp4.js → tag-new-circle.svg-C1MFrgC6.js} +1 -1
- package/web/assets/theme-DAUZuThi.js +1 -0
- package/web/assets/{toggleswitch-DKXm3drm.js → toggleswitch-6H_VuZ4L.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-B3QIUens.js → travel-map-earth-globe.svg-tCJZglOg.js} +1 -1
- package/web/assets/trpc-DZ27KTOo.js +1 -0
- package/web/assets/{tsMode-KbYg0Qfw.js → tsMode-9MCfBuVI.js} +5 -5
- package/web/assets/{typescript-UzU12abv.js → typescript-BPNkI37D.js} +1 -1
- package/web/assets/useAiChatDrawer-tSsNrRPY.js +1 -0
- package/web/assets/useCloudOrg-kMh7h7gI.js +1 -0
- package/web/assets/useProjectCatalog-BkL5z9lS.js +1 -0
- package/web/assets/useProjectCloudOrg-qr_xZto1.js +1 -0
- package/web/assets/{xml-CkgxvNFc.js → xml-CsWY9129.js} +1 -1
- package/web/assets/{yaml-Cjr4aAq9.js → yaml-CUnJQoDT.js} +1 -1
- package/web/index.html +1 -1
- package/agent-manager-4XJUIZKL.js +0 -9
- package/chunk-CQCCVPTX.js.map +0 -1
- package/chunk-LTLOVQJQ.js.map +0 -1
- package/chunk-YQISK6BL.js.map +0 -1
- package/settings-manager-Y4GNAXOH.js +0 -9
- package/src-US4EBM64.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-BXv2YF_7.js +0 -13
- package/web/assets/AgentTerminalPage-HbM44kg8.js +0 -1
- package/web/assets/AiChatPage-BTsALiaV.js +0 -1
- package/web/assets/AppLayout-DJ1dZUtQ.js +0 -1
- package/web/assets/AuditPage-CF53LMHt.js +0 -1
- package/web/assets/CloudAccountPage-BttYjaR8.js +0 -1
- package/web/assets/CloudAccountPage-Dou70Ljn.js +0 -1
- package/web/assets/CloudAccountPage-g6lFVpsX.css +0 -1
- package/web/assets/CloudMessagingPage-D15sTToL.js +0 -2
- package/web/assets/CloudMessagingPage-Dl7hHYeb.css +0 -1
- package/web/assets/DashboardPage-inYgcB3J.js +0 -164
- package/web/assets/DirectoryPickerDialog-DDWbon2r.js +0 -1
- package/web/assets/EnvironmentForm-DG_9AXml.js +0 -108
- package/web/assets/EnvironmentFormPage-DYmI2BfZ.js +0 -1
- package/web/assets/EnvironmentListPage-D2l91HzS.js +0 -1
- package/web/assets/KanbanBoardPage-BOVq3zOt.css +0 -1
- package/web/assets/KanbanBoardPage-BPH1ywhH.js +0 -4
- package/web/assets/KanbanListPage-Bj9-EbPv.js +0 -1
- package/web/assets/LaunchProjectPage-CHpVVYBa.css +0 -1
- package/web/assets/LaunchProjectPage-ObKhBvlS.js +0 -1
- package/web/assets/LaunchServicesPage-CAdAAyfG.js +0 -1
- package/web/assets/LogViewer-QRpqcjXC.js +0 -3
- package/web/assets/OrgKeyPrompt-uMjz7Y5A.js +0 -1
- package/web/assets/ProcessDetailPage-Bi5vk4ah.js +0 -1
- package/web/assets/ScenarioEditorPage-oyhLaoVE.js +0 -14
- package/web/assets/SendToChatDialog-BnZEu35Q.js +0 -1
- package/web/assets/ServiceControlsBar-Dp3r57J4.js +0 -1
- package/web/assets/ServiceDetailPage-DBm79vOL.js +0 -2
- package/web/assets/ServiceFormPage-BGWjKCUH.js +0 -1
- package/web/assets/SettingsPage-BIVmZT7t.js +0 -2063
- package/web/assets/UnlockPage-DYRFhdrT.js +0 -1
- package/web/assets/VariablesTable-Cbc_RlnE.js +0 -1
- package/web/assets/VaultMigrationPage-GlJyIJAw.js +0 -1
- package/web/assets/VersionBadge-CSX89ryT.js +0 -1
- package/web/assets/WikiPage-DAPhZkpS.js +0 -1
- package/web/assets/WikiView-DyU4eNEh.js +0 -1
- package/web/assets/add-scalar-classes-CxpzHvBM.js +0 -387
- package/web/assets/client-DZg134cQ.js +0 -24
- package/web/assets/cloud-chat.store-D899jVQ4.js +0 -1
- package/web/assets/cloud-session-DSjPbs8C.js +0 -1
- package/web/assets/column-Pmg7Ma5f.js +0 -907
- package/web/assets/interface-content-folder.svg-GTysMuP_.js +0 -1
- package/web/assets/modal--Ilf4bg_.js +0 -5
- package/web/assets/modal-Wk0CWaUJ.js +0 -1
- package/web/assets/multiselect-DlGWFLJR.js +0 -251
- package/web/assets/process.store-CvrK-4rR.js +0 -1
- package/web/assets/project-launch.store-D5cyKKyw.js +0 -1
- package/web/assets/project.store-OwPRdjA0.js +0 -1
- package/web/assets/router-DuWVvMLT.js +0 -1
- package/web/assets/settings-scope-D7NFCXjg.js +0 -1
- package/web/assets/src-CRQ32_Qg.js +0 -1
- package/web/assets/src-S24lFUYb.js +0 -572
- package/web/assets/src-dpFgucNZ.css +0 -1
- package/web/assets/tabpanel-DbMhKzgJ.js +0 -150
- package/web/assets/theme-pRVEu5SJ.js +0 -1
- package/web/assets/trpc-Cf_8kWCl.js +0 -1
- package/web/assets/useAiChatDrawer-DCVhP5N0.js +0 -1
- package/web/assets/useCloudOrg-CXvwb5Fo.js +0 -1
- package/web/assets/useProjectCatalog-Bth_aDP4.js +0 -1
- package/web/assets/useProjectCloudOrg-MUCjKP3P.js +0 -1
- /package/{agent-manager-4XJUIZKL.js.map → agent-manager-EI7SXPN5.js.map} +0 -0
- /package/{chat-N6XONNVG.js.map → chat-WMT34BXJ.js.map} +0 -0
- /package/{chunk-5GYBAMHV.js.map → chunk-D2PF2FYU.js.map} +0 -0
- /package/{chunk-NPORVPEO.js.map → chunk-RIITTBK3.js.map} +0 -0
- /package/{companion-7AFRBUQI.js.map → companion-EPINTIC7.js.map} +0 -0
- /package/{settings-manager-Y4GNAXOH.js.map → settings-manager-YSH7ZCLP.js.map} +0 -0
- /package/{vault-resolver-JR7TCITD.js.map → vault-resolver-57Q2DVOR.js.map} +0 -0
- /package/web/assets/{abap-DIWaXxy4.js → abap-B8g_2xYy.js} +0 -0
- /package/web/assets/{apex-D4-KnjW_.js → apex-Bm8w4T5A.js} +0 -0
- /package/web/assets/{azcli-IfDsRCLo.js → azcli-BqdUW6F8.js} +0 -0
- /package/web/assets/{bat-DWkIEnW3.js → bat-Bngf0lQU.js} +0 -0
- /package/web/assets/{bicep-CsOqEKmZ.js → bicep-DzO554JS.js} +0 -0
- /package/web/assets/{browser-BRPZK8RN.js → browser-BJX5ZrVN.js} +0 -0
- /package/web/assets/{cameligo-CVJihesZ.js → cameligo-Bcy3ohdb.js} +0 -0
- /package/web/assets/{clojure-CPXjbAsV.js → clojure-CZbiqkDV.js} +0 -0
- /package/web/assets/{coffee-Dk6AGUBs.js → coffee-CDuhyV-7.js} +0 -0
- /package/web/assets/{cpp-D8TcNCkN.js → cpp-BklV8f4x.js} +0 -0
- /package/web/assets/{csharp-B_ijQZWm.js → csharp-BelR_XiC.js} +0 -0
- /package/web/assets/{csp-CT_qVlF1.js → csp-DUjeBS2K.js} +0 -0
- /package/web/assets/{css-BNKulUcx.js → css-CvbYbEko.js} +0 -0
- /package/web/assets/{cypher-BZUAEEC-.js → cypher-Dwrbk-SP.js} +0 -0
- /package/web/assets/{dart-H8Ri9IID.js → dart-BW1E5h9O.js} +0 -0
- /package/web/assets/{dockerfile-BibtL7_E.js → dockerfile-B41ilpF9.js} +0 -0
- /package/web/assets/{ecl-Cq6OzwoI.js → ecl-BZE6Vxna.js} +0 -0
- /package/web/assets/{elixir-DEzZo1Bn.js → elixir-CtYg0bLh.js} +0 -0
- /package/web/assets/{flow9-CJjg7TJH.js → flow9-Sgvy48_I.js} +0 -0
- /package/web/assets/{fsharp-vGx-8LrK.js → fsharp-BzAfXfKg.js} +0 -0
- /package/web/assets/{go-CHEkyua-.js → go-D7oonABu.js} +0 -0
- /package/web/assets/{graphql--iPbFyYe.js → graphql-BEN-qkl0.js} +0 -0
- /package/web/assets/{hcl-C8EkclQS.js → hcl-CE0OhwCq.js} +0 -0
- /package/web/assets/{ini-DkuTJDAH.js → ini-CCLtcvjA.js} +0 -0
- /package/web/assets/{java-DzuDjs1c.js → java-Bao8w_gp.js} +0 -0
- /package/web/assets/{julia-BUS80tf_.js → julia-Dr0hFYrl.js} +0 -0
- /package/web/assets/{kotlin-s0eIc-h2.js → kotlin-Cbfu8lcM.js} +0 -0
- /package/web/assets/{less-o5f3n-o_.js → less-BU4gEpXr.js} +0 -0
- /package/web/assets/{lexon-AgKBNlrf.js → lexon-GpBGGdTS.js} +0 -0
- /package/web/assets/{lua-DUTvSobZ.js → lua-DIPKk37y.js} +0 -0
- /package/web/assets/{m3-DoULJRPc.js → m3-CSOypKGf.js} +0 -0
- /package/web/assets/{markdown-f9-EhcTi.js → markdown-VDqAgkyM.js} +0 -0
- /package/web/assets/{mips-aCd_43tp.js → mips-BJWI6dX7.js} +0 -0
- /package/web/assets/{msdax-cwHq3sFu.js → msdax-BLpuE5Dc.js} +0 -0
- /package/web/assets/{mysql-ITCpZRvB.js → mysql-ZsxiEUoY.js} +0 -0
- /package/web/assets/{objective-c-BjU-4cpP.js → objective-c-DcQa1iPc.js} +0 -0
- /package/web/assets/{pascal-Dmt8LI08.js → pascal-u-hmXdyn.js} +0 -0
- /package/web/assets/{pascaligo-DrXjRBef.js → pascaligo-DqbP-1C6.js} +0 -0
- /package/web/assets/{perl-BbJKyW-Z.js → perl-CUeQpRkH.js} +0 -0
- /package/web/assets/{pgsql-CLT36ygM.js → pgsql-CQ7FhAFN.js} +0 -0
- /package/web/assets/{php-BIcyBKEQ.js → php-BEf_fu3E.js} +0 -0
- /package/web/assets/{pla-sVewnHw1.js → pla-CXNNbT0w.js} +0 -0
- /package/web/assets/{postiats-D9DrURSm.js → postiats-CIXLZwPb.js} +0 -0
- /package/web/assets/{powerquery-BEjdKhpn.js → powerquery-DnGPASFA.js} +0 -0
- /package/web/assets/{powershell-BynZyJK1.js → powershell-1Y1kqIZS.js} +0 -0
- /package/web/assets/{process-DIamAPAU.js → process-Cf4Ob2V-.js} +0 -0
- /package/web/assets/{protobuf-BQ34Qnv5.js → protobuf-Cfo9haoG.js} +0 -0
- /package/web/assets/{pug--jmF9o7P.js → pug-BujEZqmy.js} +0 -0
- /package/web/assets/{qsharp-BDe4Axn9.js → qsharp-BL9AqNGD.js} +0 -0
- /package/web/assets/{r-DpjaSKX3.js → r-D0dhpGOM.js} +0 -0
- /package/web/assets/{redis-C_Q-xUDt.js → redis-BMLwD7W9.js} +0 -0
- /package/web/assets/{redshift-CHNShrpo.js → redshift-CkHh73og.js} +0 -0
- /package/web/assets/{restructuredtext-CVN0W1xR.js → restructuredtext-DZ-LF65W.js} +0 -0
- /package/web/assets/{ruby-CaKcv4f1.js → ruby-UzPHTzc9.js} +0 -0
- /package/web/assets/{rust-CbqMT_Ew.js → rust-ja9NGnXZ.js} +0 -0
- /package/web/assets/{sb-DIdUmAXV.js → sb-BNdOJbMY.js} +0 -0
- /package/web/assets/{scala-DVyALEcz.js → scala-LlhkyN6l.js} +0 -0
- /package/web/assets/{scheme-Cox4VpHa.js → scheme-BAj99YIn.js} +0 -0
- /package/web/assets/{scss-MW_l4ZY_.js → scss-chS-xxB3.js} +0 -0
- /package/web/assets/{shared-sse-BjXwPkLo.js → shared-sse-_VzlL_VX.js} +0 -0
- /package/web/assets/{shell-CP5qAt5e.js → shell-CcH7eYIc.js} +0 -0
- /package/web/assets/{solidity-1ctHOHIb.js → solidity-cVvnqX-K.js} +0 -0
- /package/web/assets/{sophia-DRAqvk2I.js → sophia-BBT-EdFw.js} +0 -0
- /package/web/assets/{sparql-8_9Nt5xp.js → sparql-DGEqOrB6.js} +0 -0
- /package/web/assets/{sql-owsrW4c3.js → sql-CcTErTxM.js} +0 -0
- /package/web/assets/{st-BDgXslxD.js → st-Bjw-B4mN.js} +0 -0
- /package/web/assets/{swift-TE6gFxno.js → swift-Bid-7bBd.js} +0 -0
- /package/web/assets/{systemverilog-DVGMenxt.js → systemverilog-CXju7Nd-.js} +0 -0
- /package/web/assets/{tcl-D6NP8_oR.js → tcl-D-Dw7JFz.js} +0 -0
- /package/web/assets/{twig-CVnYtCc5.js → twig-BIPbzEWT.js} +0 -0
- /package/web/assets/{typespec-BkD2qKRU.js → typespec-UJSutGCV.js} +0 -0
- /package/web/assets/{uuid-u4W9vzU3.js → uuid--pMuF47W.js} +0 -0
- /package/web/assets/{vb--Oo_cy-E.js → vb-oyG_LJw0.js} +0 -0
- /package/web/assets/{w3c-keyname-Dfw8VxXe.js → w3c-keyname-DtJs0qQm.js} +0 -0
- /package/web/assets/{wgsl-CrnkJFcw.js → wgsl-DXZ6ljB6.js} +0 -0
|
@@ -11,6 +11,9 @@ import {
|
|
|
11
11
|
NameSchema,
|
|
12
12
|
OPENAI_COMPAT_BASE_URLS,
|
|
13
13
|
OptionalProviderIdSchema,
|
|
14
|
+
accountForOrg,
|
|
15
|
+
accountForOrgOrThrow,
|
|
16
|
+
accountForOrgScope,
|
|
14
17
|
apiKeyStore,
|
|
15
18
|
appVersion,
|
|
16
19
|
applyPersistedLanMode,
|
|
@@ -40,6 +43,7 @@ import {
|
|
|
40
43
|
orgCloudUrl,
|
|
41
44
|
protectedProcedure,
|
|
42
45
|
publicProcedure,
|
|
46
|
+
readCloudIdentity,
|
|
43
47
|
registerHttpServer,
|
|
44
48
|
requireEnvAction,
|
|
45
49
|
requireLoopbackOrToken,
|
|
@@ -56,9 +60,10 @@ import {
|
|
|
56
60
|
serviceRouter,
|
|
57
61
|
setLanMode,
|
|
58
62
|
shutdownCodexAppServer,
|
|
63
|
+
soleAccountScope,
|
|
59
64
|
startCliSession,
|
|
60
65
|
vaultOfProject
|
|
61
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-4SJCPFGK.js";
|
|
62
67
|
import {
|
|
63
68
|
resolveCliInvocation,
|
|
64
69
|
whichCommand
|
|
@@ -81,7 +86,7 @@ import {
|
|
|
81
86
|
stopClaudeTranscriptWatcher,
|
|
82
87
|
stopCodexTranscriptWatcher,
|
|
83
88
|
verifyJwt
|
|
84
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-DS66SEYH.js";
|
|
85
90
|
import "./chunk-MD3VW4HQ.js";
|
|
86
91
|
import {
|
|
87
92
|
agentManager,
|
|
@@ -120,10 +125,10 @@ import {
|
|
|
120
125
|
stableEncryptValue,
|
|
121
126
|
traefikManager,
|
|
122
127
|
unregisterInstance
|
|
123
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-RIITTBK3.js";
|
|
124
129
|
import {
|
|
125
130
|
settingsManager
|
|
126
|
-
} from "./chunk-
|
|
131
|
+
} from "./chunk-D2PF2FYU.js";
|
|
127
132
|
import {
|
|
128
133
|
AGENT_LONG_FETCH_TIMEOUT,
|
|
129
134
|
AGENT_STOP_FETCH_TIMEOUT,
|
|
@@ -166,14 +171,16 @@ import {
|
|
|
166
171
|
machineRoot,
|
|
167
172
|
orgVaultRoot,
|
|
168
173
|
projectVaultRoot,
|
|
174
|
+
readOrgAccounts,
|
|
169
175
|
readOrgClouds,
|
|
170
176
|
readOrgLogo,
|
|
171
177
|
readOrgLogos,
|
|
172
178
|
readOrgNames,
|
|
179
|
+
rememberOrgAccount,
|
|
173
180
|
rememberOrgLogo,
|
|
174
181
|
rememberOrgName,
|
|
175
182
|
stampOrgCloud
|
|
176
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-ZFELQG4B.js";
|
|
177
184
|
|
|
178
185
|
// ../server/src/create-server.ts
|
|
179
186
|
import express from "express";
|
|
@@ -1638,6 +1645,10 @@ var setupRouter = router({
|
|
|
1638
1645
|
const names = await readOrgNames();
|
|
1639
1646
|
const clouds = await readOrgClouds();
|
|
1640
1647
|
const currentCloud = getCloudApiUrl();
|
|
1648
|
+
const ownCloudUrls = /* @__PURE__ */ new Set([
|
|
1649
|
+
currentCloud,
|
|
1650
|
+
...(await cloudSessionStore.list()).map((a) => a.cloudUrl.replace(/\/+$/, ""))
|
|
1651
|
+
]);
|
|
1641
1652
|
const [unreadableConversations, unreadableSecrets] = await Promise.all([
|
|
1642
1653
|
conversationStore.unreadableByVault(),
|
|
1643
1654
|
environmentStore.unreadableByVault()
|
|
@@ -1650,7 +1661,7 @@ var setupRouter = router({
|
|
|
1650
1661
|
orgs: await Promise.all(orgs.map(async (orgId) => {
|
|
1651
1662
|
const name = names[orgId] ?? null;
|
|
1652
1663
|
const cloudUrl = clouds[orgId] ?? currentCloud;
|
|
1653
|
-
const foreign = cloudUrl
|
|
1664
|
+
const foreign = !ownCloudUrls.has(cloudUrl.replace(/\/+$/, ""));
|
|
1654
1665
|
const unreadable = {
|
|
1655
1666
|
apiKeys: await apiKeyStore.unreadableCount(orgId),
|
|
1656
1667
|
conversations: unreadableConversations.get(orgId) ?? 0,
|
|
@@ -5801,12 +5812,22 @@ var kanbanRouter = router({
|
|
|
5801
5812
|
* agent can open it with its own file tools. The bytes never go through the
|
|
5802
5813
|
* prompt: the card context lists the attachments, this returns a path.
|
|
5803
5814
|
*/
|
|
5804
|
-
downloadAttachment: protectedProcedure.input(z19.object({
|
|
5815
|
+
downloadAttachment: protectedProcedure.input(z19.object({
|
|
5816
|
+
attachmentId: z19.string().max(128),
|
|
5817
|
+
// La pièce jointe appartient à une organisation : la nommer dit sous quel
|
|
5818
|
+
// compte la demander. C'est le SEUL appel qui tolère de ne pas l'avoir —
|
|
5819
|
+
// un agent n'a qu'un identifiant de fichier — et il échoue alors en le
|
|
5820
|
+
// disant dès que ce poste a plusieurs comptes.
|
|
5821
|
+
orgId: z19.string().max(128).optional()
|
|
5822
|
+
})).mutation(async ({ input }) => {
|
|
5805
5823
|
const id = input.attachmentId;
|
|
5806
5824
|
if (!ATTACHMENT_ID_REGEX.test(id)) {
|
|
5807
5825
|
throw new TRPCError16({ code: "BAD_REQUEST", message: "Invalid attachment id" });
|
|
5808
5826
|
}
|
|
5809
|
-
const res = await cloudFetch2(`/api/kanban/file/${id}`, {
|
|
5827
|
+
const res = await cloudFetch2(`/api/kanban/file/${id}`, {
|
|
5828
|
+
timeoutMs: 12e4,
|
|
5829
|
+
accountId: input.orgId ? await accountForOrgScope(input.orgId) : await soleAccountScope()
|
|
5830
|
+
});
|
|
5810
5831
|
if (res.status === 404) {
|
|
5811
5832
|
throw new TRPCError16({ code: "NOT_FOUND", message: `Attachment ${id} not found` });
|
|
5812
5833
|
}
|
|
@@ -6244,16 +6265,29 @@ async function isMaterialized(root) {
|
|
|
6244
6265
|
return access(join9(root, "project.json")).then(() => true, () => false);
|
|
6245
6266
|
}
|
|
6246
6267
|
async function orgsToSync() {
|
|
6247
|
-
const
|
|
6248
|
-
|
|
6249
|
-
|
|
6268
|
+
const [stamps, stampedAccounts, accounts] = await Promise.all([
|
|
6269
|
+
readOrgClouds(),
|
|
6270
|
+
readOrgAccounts(),
|
|
6271
|
+
cloudSessionStore.list()
|
|
6272
|
+
]);
|
|
6273
|
+
const known = /* @__PURE__ */ new Set([
|
|
6274
|
+
getCloudApiUrl(),
|
|
6275
|
+
...accounts.map((a) => a.cloudUrl.replace(/\/+$/, ""))
|
|
6276
|
+
]);
|
|
6277
|
+
const fallback = accounts.length <= 1 ? accounts[0]?.cloudUrl.replace(/\/+$/, "") ?? getCloudApiUrl() : null;
|
|
6278
|
+
const targets = /* @__PURE__ */ new Map();
|
|
6250
6279
|
for (const vault of await listCloudVaults()) {
|
|
6251
|
-
if (
|
|
6252
|
-
const stamped = stamps[vault.orgId];
|
|
6253
|
-
if (stamped
|
|
6254
|
-
|
|
6280
|
+
if (targets.has(vault.orgId)) continue;
|
|
6281
|
+
const stamped = stamps[vault.orgId]?.replace(/\/+$/, "");
|
|
6282
|
+
if (stamped ? !known.has(stamped) : fallback === null) continue;
|
|
6283
|
+
const cloudUrl = stamped ?? fallback;
|
|
6284
|
+
if (!cloudUrl) continue;
|
|
6285
|
+
const accountId = stampedAccounts[vault.orgId] ?? (accounts.length === 1 ? accounts[0].id : void 0);
|
|
6286
|
+
if (await isMaterialized(vault.root)) {
|
|
6287
|
+
targets.set(vault.orgId, { orgId: vault.orgId, cloudUrl, ...accountId ? { accountId } : {} });
|
|
6288
|
+
}
|
|
6255
6289
|
}
|
|
6256
|
-
return Array.from(
|
|
6290
|
+
return Array.from(targets.values());
|
|
6257
6291
|
}
|
|
6258
6292
|
|
|
6259
6293
|
// ../server/src/services/org-canary.ts
|
|
@@ -6289,7 +6323,8 @@ async function reconcileOrgCanary(orgId) {
|
|
|
6289
6323
|
if (!local) throw new CanaryUnavailableError("This machine has no key canary yet.");
|
|
6290
6324
|
const res = await cloudFetch("/api/auth/organization/canary", {
|
|
6291
6325
|
method: "POST",
|
|
6292
|
-
body: { organizationId: orgId, canary: local }
|
|
6326
|
+
body: { organizationId: orgId, canary: local },
|
|
6327
|
+
accountId: await accountForOrgOrThrow(orgId)
|
|
6293
6328
|
});
|
|
6294
6329
|
if (!res.ok) {
|
|
6295
6330
|
throw new CanaryUnavailableError("Could not reach the organization on the cloud.");
|
|
@@ -6514,7 +6549,7 @@ var OrgSyncConnection = class {
|
|
|
6514
6549
|
* treat as terminal exactly like a rejection from the cloud.
|
|
6515
6550
|
*/
|
|
6516
6551
|
async authHeader() {
|
|
6517
|
-
const token = await cloudSessionStore.getToken();
|
|
6552
|
+
const token = await cloudSessionStore.getToken(this.link.accountId);
|
|
6518
6553
|
if (!token) throw new SyncAuthError(401);
|
|
6519
6554
|
return `Bearer ${token}`;
|
|
6520
6555
|
}
|
|
@@ -7362,6 +7397,10 @@ async function cloudMessage(res) {
|
|
|
7362
7397
|
return "";
|
|
7363
7398
|
}
|
|
7364
7399
|
}
|
|
7400
|
+
async function accountScope(orgId) {
|
|
7401
|
+
const accountId = await accountForOrg(orgId);
|
|
7402
|
+
return accountId ? { accountId } : {};
|
|
7403
|
+
}
|
|
7365
7404
|
async function assertOrgReadable(orgId) {
|
|
7366
7405
|
try {
|
|
7367
7406
|
await assertOrgVaultReadable(orgId);
|
|
@@ -7404,15 +7443,25 @@ var cloudSyncRouter = router({
|
|
|
7404
7443
|
z23.object({
|
|
7405
7444
|
orgId: z23.string().min(1).max(128),
|
|
7406
7445
|
cloudUrl: z23.string().url().max(2048),
|
|
7407
|
-
projectId: z23.string().min(1).max(128)
|
|
7446
|
+
projectId: z23.string().min(1).max(128),
|
|
7447
|
+
// Le compte sous lequel cette organisation a été listée. Tamponné avec
|
|
7448
|
+
// elle : c'est ce qui permettra à tout appel ultérieur de retrouver le
|
|
7449
|
+
// bon token sans qu'on ait à le lui redire.
|
|
7450
|
+
accountId: z23.string().max(64).optional()
|
|
7408
7451
|
})
|
|
7409
7452
|
).mutation(async ({ input }) => {
|
|
7410
7453
|
await assertOrgReadable(input.orgId);
|
|
7411
7454
|
const connected = cloudSyncBridge.states().some((s) => s.orgId === input.orgId);
|
|
7412
7455
|
if (!connected) {
|
|
7413
7456
|
await assertOrgKey(input.orgId);
|
|
7414
|
-
await stampOrgCloud(input.orgId, input.cloudUrl);
|
|
7415
|
-
await cloudSyncBridge.connect({
|
|
7457
|
+
await stampOrgCloud(input.orgId, input.cloudUrl, void 0, input.accountId);
|
|
7458
|
+
await cloudSyncBridge.connect({
|
|
7459
|
+
orgId: input.orgId,
|
|
7460
|
+
cloudUrl: input.cloudUrl,
|
|
7461
|
+
...await accountScope(input.orgId)
|
|
7462
|
+
});
|
|
7463
|
+
} else if (input.accountId) {
|
|
7464
|
+
await stampOrgCloud(input.orgId, input.cloudUrl, void 0, input.accountId);
|
|
7416
7465
|
}
|
|
7417
7466
|
try {
|
|
7418
7467
|
const pulled = await cloudSyncBridge.followProject(input.orgId, input.projectId);
|
|
@@ -7441,7 +7490,11 @@ var cloudSyncRouter = router({
|
|
|
7441
7490
|
z23.object({
|
|
7442
7491
|
orgId: z23.string().min(1).max(128),
|
|
7443
7492
|
cloudUrl: z23.string().url().max(2048),
|
|
7444
|
-
projectId: z23.string().min(1).max(128)
|
|
7493
|
+
projectId: z23.string().min(1).max(128),
|
|
7494
|
+
// Le compte sous lequel cette organisation a été listée. Tamponné avec
|
|
7495
|
+
// elle : c'est ce qui permettra à tout appel ultérieur de retrouver le
|
|
7496
|
+
// bon token sans qu'on ait à le lui redire.
|
|
7497
|
+
accountId: z23.string().max(64).optional()
|
|
7445
7498
|
})
|
|
7446
7499
|
).mutation(async ({ input }) => {
|
|
7447
7500
|
const local = await projectStore.get({ id: input.projectId, orgId: null });
|
|
@@ -7455,8 +7508,14 @@ var cloudSyncRouter = router({
|
|
|
7455
7508
|
const connected = cloudSyncBridge.states().some((s) => s.orgId === input.orgId);
|
|
7456
7509
|
if (!connected) {
|
|
7457
7510
|
await assertOrgKey(input.orgId);
|
|
7458
|
-
await stampOrgCloud(input.orgId, input.cloudUrl);
|
|
7459
|
-
await cloudSyncBridge.connect({
|
|
7511
|
+
await stampOrgCloud(input.orgId, input.cloudUrl, void 0, input.accountId);
|
|
7512
|
+
await cloudSyncBridge.connect({
|
|
7513
|
+
orgId: input.orgId,
|
|
7514
|
+
cloudUrl: input.cloudUrl,
|
|
7515
|
+
...await accountScope(input.orgId)
|
|
7516
|
+
});
|
|
7517
|
+
} else if (input.accountId) {
|
|
7518
|
+
await stampOrgCloud(input.orgId, input.cloudUrl, void 0, input.accountId);
|
|
7460
7519
|
}
|
|
7461
7520
|
await projectStore.moveToOrg(input.projectId, input.orgId);
|
|
7462
7521
|
await projectPathStore.relocate(
|
|
@@ -7488,7 +7547,7 @@ var cloudSyncRouter = router({
|
|
|
7488
7547
|
})).query(async ({ input }) => {
|
|
7489
7548
|
const res = await cloudFetch2(
|
|
7490
7549
|
`/api/auth/organization/canary?organizationId=${encodeURIComponent(input.orgId)}`,
|
|
7491
|
-
{ method: "GET" }
|
|
7550
|
+
{ method: "GET", accountId: await accountForOrgScope(input.orgId) }
|
|
7492
7551
|
);
|
|
7493
7552
|
if (!res.ok) {
|
|
7494
7553
|
throw new TRPCError19({ code: "BAD_GATEWAY", message: await cloudMessage(res) || `CANARY_READ_FAILED (${res.status})` });
|
|
@@ -7511,7 +7570,7 @@ var cloudSyncRouter = router({
|
|
|
7511
7570
|
if (!key) return { status: "unknown" };
|
|
7512
7571
|
const res = await cloudFetch2(
|
|
7513
7572
|
`/api/auth/organization/canary?organizationId=${encodeURIComponent(input.orgId)}`,
|
|
7514
|
-
{ method: "GET" }
|
|
7573
|
+
{ method: "GET", accountId: await accountForOrgScope(input.orgId) }
|
|
7515
7574
|
);
|
|
7516
7575
|
if (!res.ok) return { status: "unknown" };
|
|
7517
7576
|
const { canary } = await res.json();
|
|
@@ -7565,7 +7624,8 @@ var cloudSyncRouter = router({
|
|
|
7565
7624
|
}
|
|
7566
7625
|
const res = await cloudFetch2("/api/auth/organization/canary/reset", {
|
|
7567
7626
|
method: "POST",
|
|
7568
|
-
body: { organizationId: input.orgId, canary }
|
|
7627
|
+
body: { organizationId: input.orgId, canary },
|
|
7628
|
+
accountId: await accountForOrgScope(input.orgId)
|
|
7569
7629
|
});
|
|
7570
7630
|
if (!res.ok) {
|
|
7571
7631
|
const detail = await cloudMessage(res);
|
|
@@ -7575,7 +7635,7 @@ var cloudSyncRouter = router({
|
|
|
7575
7635
|
});
|
|
7576
7636
|
}
|
|
7577
7637
|
const cloudUrl = (await orgsToSync()).find((l) => l.orgId === input.orgId)?.cloudUrl ?? getCloudApiUrl();
|
|
7578
|
-
await cloudSyncBridge.connect({ orgId: input.orgId, cloudUrl });
|
|
7638
|
+
await cloudSyncBridge.connect({ orgId: input.orgId, cloudUrl, ...await accountScope(input.orgId) });
|
|
7579
7639
|
return { state: syncState(input.orgId) };
|
|
7580
7640
|
}),
|
|
7581
7641
|
/**
|
|
@@ -7612,7 +7672,10 @@ var cloudSyncRouter = router({
|
|
|
7612
7672
|
try {
|
|
7613
7673
|
res = await cloudFetch2("/api/auth/project/delete", {
|
|
7614
7674
|
method: "POST",
|
|
7615
|
-
body: { organizationId: input.orgId, projectId: input.projectId }
|
|
7675
|
+
body: { organizationId: input.orgId, projectId: input.projectId },
|
|
7676
|
+
// Dans le `try` : ne rien avoir à quoi rattacher l'organisation doit
|
|
7677
|
+
// ressortir comme CLOUD_NOT_LINKED, pas comme une erreur interne.
|
|
7678
|
+
accountId: await accountForOrgScope(input.orgId)
|
|
7616
7679
|
});
|
|
7617
7680
|
} catch (err) {
|
|
7618
7681
|
if (err instanceof TRPCError19 && err.code === "PRECONDITION_FAILED") {
|
|
@@ -7649,6 +7712,35 @@ var cloudSyncRouter = router({
|
|
|
7649
7712
|
* afficher. Le nom est donc recopié dans le tampon du coffre au passage, là
|
|
7650
7713
|
* où il est déjà lu au démarrage suivant.
|
|
7651
7714
|
*/
|
|
7715
|
+
/**
|
|
7716
|
+
* Retenir à quel compte appartient chaque organisation.
|
|
7717
|
+
*
|
|
7718
|
+
* Poussé par l'interface avec ce que le cloud vient de répondre : une
|
|
7719
|
+
* organisation appartient au compte qui la LISTE. Le poste ne peut pas le
|
|
7720
|
+
* déduire — il l'a tenté, et il a rangé sous un compte les organisations
|
|
7721
|
+
* d'un autre. Même forme que `rememberOrgNames`, et pour la même raison :
|
|
7722
|
+
* ce que seul le cloud sait, on le recopie quand il le dit.
|
|
7723
|
+
*/
|
|
7724
|
+
rememberOrgAccounts: protectedProcedure.input(z23.object({
|
|
7725
|
+
orgs: z23.array(z23.object({
|
|
7726
|
+
orgId: z23.string().min(1).max(128),
|
|
7727
|
+
accountId: z23.string().min(1).max(64)
|
|
7728
|
+
})).max(200)
|
|
7729
|
+
})).mutation(async ({ input }) => {
|
|
7730
|
+
const candidates = /* @__PURE__ */ new Map();
|
|
7731
|
+
for (const { orgId, accountId } of input.orgs) {
|
|
7732
|
+
candidates.set(orgId, [...candidates.get(orgId) ?? [], accountId]);
|
|
7733
|
+
}
|
|
7734
|
+
const current2 = await readOrgAccounts();
|
|
7735
|
+
let remembered = 0;
|
|
7736
|
+
for (const [orgId, accountIds] of candidates) {
|
|
7737
|
+
const kept = current2[orgId];
|
|
7738
|
+
if (kept && accountIds.includes(kept)) continue;
|
|
7739
|
+
await rememberOrgAccount(orgId, accountIds[0]);
|
|
7740
|
+
remembered++;
|
|
7741
|
+
}
|
|
7742
|
+
return { remembered };
|
|
7743
|
+
}),
|
|
7652
7744
|
rememberOrgNames: protectedProcedure.input(z23.object({
|
|
7653
7745
|
orgs: z23.array(z23.object({
|
|
7654
7746
|
orgId: z23.string().min(1).max(128),
|
|
@@ -9568,7 +9660,12 @@ async function createLocalServer() {
|
|
|
9568
9660
|
res.status(502).send("The cloud did not return a session token.");
|
|
9569
9661
|
return;
|
|
9570
9662
|
}
|
|
9571
|
-
await
|
|
9663
|
+
const identity = await readCloudIdentity(getCloudApiUrl(), sessionToken);
|
|
9664
|
+
if (!identity) {
|
|
9665
|
+
res.status(502).send("The cloud did not say who this session belongs to.");
|
|
9666
|
+
return;
|
|
9667
|
+
}
|
|
9668
|
+
await cloudSessionStore.add(getCloudApiUrl(), sessionToken, identity);
|
|
9572
9669
|
void cloudSyncBridge.resumeAll();
|
|
9573
9670
|
res.redirect(`${returnTo}?cloud=linked`);
|
|
9574
9671
|
} catch {
|
|
@@ -9589,16 +9686,18 @@ async function createLocalServer() {
|
|
|
9589
9686
|
res.status(400).end();
|
|
9590
9687
|
return;
|
|
9591
9688
|
}
|
|
9592
|
-
const
|
|
9593
|
-
|
|
9689
|
+
const accountId = await accountForOrg(organizationId);
|
|
9690
|
+
const token = accountId ? await cloudSessionStore.getToken(accountId) : null;
|
|
9691
|
+
if (!accountId || !token) {
|
|
9594
9692
|
res.status(401).end();
|
|
9595
9693
|
return;
|
|
9596
9694
|
}
|
|
9695
|
+
const streamBase = await orgCloudUrl(organizationId);
|
|
9597
9696
|
const upstreamAbort = new AbortController();
|
|
9598
9697
|
req.on("close", () => upstreamAbort.abort());
|
|
9599
9698
|
try {
|
|
9600
9699
|
const upstream = await fetch(
|
|
9601
|
-
`${
|
|
9700
|
+
`${streamBase.replace(/\/+$/, "")}${upstreamPath}?organizationId=${encodeURIComponent(organizationId)}`,
|
|
9602
9701
|
{
|
|
9603
9702
|
headers: {
|
|
9604
9703
|
Authorization: `Bearer ${token}`,
|
|
@@ -9647,16 +9746,18 @@ async function createLocalServer() {
|
|
|
9647
9746
|
res.status(400).end();
|
|
9648
9747
|
return;
|
|
9649
9748
|
}
|
|
9650
|
-
const
|
|
9651
|
-
|
|
9749
|
+
const accountId = await accountForOrg(organizationId);
|
|
9750
|
+
const token = accountId ? await cloudSessionStore.getToken(accountId) : null;
|
|
9751
|
+
if (!accountId || !token) {
|
|
9652
9752
|
res.status(401).end();
|
|
9653
9753
|
return;
|
|
9654
9754
|
}
|
|
9755
|
+
const streamBase = await orgCloudUrl(organizationId);
|
|
9655
9756
|
const upstreamQuery = new URLSearchParams({ organizationId });
|
|
9656
9757
|
if (typeof req.query["name"] === "string") upstreamQuery.set("name", req.query["name"]);
|
|
9657
9758
|
try {
|
|
9658
9759
|
const upstream = await fetch(
|
|
9659
|
-
`${
|
|
9760
|
+
`${streamBase.replace(/\/+$/, "")}/api/kanban/image?${upstreamQuery.toString()}`,
|
|
9660
9761
|
{
|
|
9661
9762
|
method: "POST",
|
|
9662
9763
|
headers: {
|
|
@@ -9683,14 +9784,16 @@ async function createLocalServer() {
|
|
|
9683
9784
|
res.status(401).end();
|
|
9684
9785
|
return;
|
|
9685
9786
|
}
|
|
9686
|
-
const
|
|
9787
|
+
const fileOrgId = typeof req.query["organizationId"] === "string" ? req.query["organizationId"] : "";
|
|
9788
|
+
const fileAccountId = fileOrgId ? await accountForOrg(fileOrgId) : null;
|
|
9789
|
+
const token = await cloudSessionStore.getToken(fileAccountId ?? void 0);
|
|
9687
9790
|
if (!token) {
|
|
9688
9791
|
res.status(401).end();
|
|
9689
9792
|
return;
|
|
9690
9793
|
}
|
|
9691
9794
|
try {
|
|
9692
9795
|
const upstream = await fetch(
|
|
9693
|
-
`${getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
|
|
9796
|
+
`${fileOrgId ? await orgCloudUrl(fileOrgId) : await cloudSessionStore.getCloudUrl(fileAccountId ?? void 0) ?? getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
|
|
9694
9797
|
{
|
|
9695
9798
|
method: "DELETE",
|
|
9696
9799
|
headers: { Authorization: `Bearer ${token}`, [APP_VERSION_HEADER]: appVersion },
|
|
@@ -9710,14 +9813,16 @@ async function createLocalServer() {
|
|
|
9710
9813
|
res.status(401).end();
|
|
9711
9814
|
return;
|
|
9712
9815
|
}
|
|
9713
|
-
const
|
|
9816
|
+
const fileOrgId = typeof req.query["organizationId"] === "string" ? req.query["organizationId"] : "";
|
|
9817
|
+
const fileAccountId = fileOrgId ? await accountForOrg(fileOrgId) : null;
|
|
9818
|
+
const token = await cloudSessionStore.getToken(fileAccountId ?? void 0);
|
|
9714
9819
|
if (!token) {
|
|
9715
9820
|
res.status(401).end();
|
|
9716
9821
|
return;
|
|
9717
9822
|
}
|
|
9718
9823
|
try {
|
|
9719
9824
|
const upstream = await fetch(
|
|
9720
|
-
`${getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
|
|
9825
|
+
`${fileOrgId ? await orgCloudUrl(fileOrgId) : await cloudSessionStore.getCloudUrl(fileAccountId ?? void 0) ?? getCloudApiUrl()}/api/kanban/file/${encodeURIComponent(req.params.id)}`,
|
|
9721
9826
|
{
|
|
9722
9827
|
headers: { Authorization: `Bearer ${token}`, [APP_VERSION_HEADER]: appVersion },
|
|
9723
9828
|
signal: AbortSignal.timeout(3e5)
|
|
@@ -9737,6 +9842,33 @@ async function createLocalServer() {
|
|
|
9737
9842
|
res.status(502).end();
|
|
9738
9843
|
}
|
|
9739
9844
|
});
|
|
9845
|
+
app.get("/api/cloud/avatar/:userId", async (req, res) => {
|
|
9846
|
+
const userId = req.params.userId;
|
|
9847
|
+
if (!/^[A-Za-z0-9._-]{1,128}$/.test(userId)) {
|
|
9848
|
+
res.status(400).end();
|
|
9849
|
+
return;
|
|
9850
|
+
}
|
|
9851
|
+
const orgId = typeof req.query["organizationId"] === "string" ? req.query["organizationId"] : "";
|
|
9852
|
+
const accountId = typeof req.query["accountId"] === "string" ? req.query["accountId"] : "";
|
|
9853
|
+
try {
|
|
9854
|
+
const base = orgId ? await orgCloudUrl(orgId) : await cloudSessionStore.getCloudUrl(accountId || void 0) ?? getCloudApiUrl();
|
|
9855
|
+
const upstream = await fetch(`${base}/api/avatar/${encodeURIComponent(userId)}`, {
|
|
9856
|
+
headers: { [APP_VERSION_HEADER]: appVersion },
|
|
9857
|
+
signal: AbortSignal.timeout(15e3)
|
|
9858
|
+
});
|
|
9859
|
+
if (!upstream.ok) {
|
|
9860
|
+
res.status(upstream.status).end();
|
|
9861
|
+
return;
|
|
9862
|
+
}
|
|
9863
|
+
res.set("Content-Type", upstream.headers.get("content-type") ?? "application/octet-stream");
|
|
9864
|
+
res.set("X-Content-Type-Options", "nosniff");
|
|
9865
|
+
res.set("Content-Security-Policy", "default-src 'none'; sandbox");
|
|
9866
|
+
res.set("Cache-Control", "public, max-age=300");
|
|
9867
|
+
res.send(Buffer.from(await upstream.arrayBuffer()));
|
|
9868
|
+
} catch {
|
|
9869
|
+
res.status(502).end();
|
|
9870
|
+
}
|
|
9871
|
+
});
|
|
9740
9872
|
proxyCloudStream("/api/cloud/chat/stream", "/api/chat/stream");
|
|
9741
9873
|
proxyCloudStream("/api/cloud/kanban/stream", "/api/kanban/stream");
|
|
9742
9874
|
app.post("/api/unlock", authLimiter, csrfMiddleware, express.json({ limit: "10kb" }), async (req, res) => {
|
|
@@ -10117,7 +10249,7 @@ async function createLocalServer() {
|
|
|
10117
10249
|
]);
|
|
10118
10250
|
console.log("[server] Shutdown complete");
|
|
10119
10251
|
};
|
|
10120
|
-
const { initCompanion } = await import("./companion-
|
|
10252
|
+
const { initCompanion } = await import("./companion-EPINTIC7.js");
|
|
10121
10253
|
initCompanion();
|
|
10122
10254
|
return { app, server, wss, shutdown };
|
|
10123
10255
|
}
|
|
@@ -10564,4 +10696,4 @@ export {
|
|
|
10564
10696
|
startProcess,
|
|
10565
10697
|
stopProcess
|
|
10566
10698
|
};
|
|
10567
|
-
//# sourceMappingURL=src-
|
|
10699
|
+
//# sourceMappingURL=src-LONZKLMU.js.map
|