@runeya/runeya 2.0.137 → 2.0.139
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 +36 -10
- package/agent/index.js.map +1 -1
- package/agent-manager-NAGIMH2T.js +11 -0
- package/chat-Q2UMYXQL.js +21 -0
- package/{chunk-ZFELQG4B.js → chunk-EV3TBM7E.js} +78 -5
- package/chunk-EV3TBM7E.js.map +1 -0
- package/{chunk-FJLMXLMK.js → chunk-GLIU3J47.js} +354 -128
- package/chunk-GLIU3J47.js.map +1 -0
- package/{chunk-BDQOBEZ3.js → chunk-GOMF7NWS.js} +2 -2
- package/{desktop-launcher-3COY6F6H.js → chunk-GWQV5KKU.js} +193 -13
- package/chunk-GWQV5KKU.js.map +1 -0
- package/{chunk-5EMEJNVU.js → chunk-LE6XQ3OV.js} +13 -1
- package/chunk-LE6XQ3OV.js.map +1 -0
- package/{chunk-J4GLFY7G.js → chunk-MSICJEZD.js} +5 -5
- package/{chunk-NURPXHLB.js → chunk-OZBSOSAS.js} +26 -12
- package/chunk-OZBSOSAS.js.map +1 -0
- package/{chunk-P65BO7WZ.js → chunk-WNCXZ6E7.js} +165 -125
- package/chunk-WNCXZ6E7.js.map +1 -0
- package/{chunk-I7JHF5FE.js → chunk-XHGJHYDC.js} +4 -4
- package/chunk-YSYLL57J.js +87 -0
- package/chunk-YSYLL57J.js.map +1 -0
- package/{companion-Q67RAO3N.js → companion-MGX62L4T.js} +9 -7
- package/desktop-installer-page-OJTOKP7V.js +598 -0
- package/desktop-installer-page-OJTOKP7V.js.map +1 -0
- package/desktop-launcher-HKXP4LRI.js +43 -0
- package/desktop-wizard-XIDDAG7L.js +15 -0
- package/index.js +30 -21
- package/index.js.map +1 -1
- package/mcp-server/index.js +49 -1
- package/mcp-server/index.js.map +1 -1
- package/{node-4UUJN2WG.js → node-RN4URNZ5.js} +4 -4
- package/package.json +1 -1
- package/settings-manager-BBNCDDQJ.js +10 -0
- package/settings-manager-BBNCDDQJ.js.map +1 -0
- package/{src-7O3GCEIB.js → src-KWLVQD36.js} +193 -92
- package/src-KWLVQD36.js.map +1 -0
- package/{vault-resolver-57Q2DVOR.js → vault-resolver-B5P2OUI5.js} +20 -2
- package/vault-resolver-B5P2OUI5.js.map +1 -0
- package/web/assets/AgentScalarChatInterface.vue-CqGVVIo8.js +13 -0
- package/web/assets/AgentTerminalPage-mVD1jsWC.js +1 -0
- package/web/assets/AiChatPage-J-JAXhoT.js +1 -0
- package/web/assets/AppLayout-6eKmu_TP.css +1 -0
- package/web/assets/AppLayout-CsUnvWA0.js +1 -0
- package/web/assets/AuditPage-gzMJbY4c.js +1 -0
- package/web/assets/CloudAccountPage-CIUmdyoI.js +1 -0
- package/web/assets/CloudAccountPage-Cm1ibhZY.js +1 -0
- package/web/assets/CloudAccountPage-eoNciq1Q.css +1 -0
- package/web/assets/CloudMessagingPage-EV4MwYrk.js +2 -0
- package/web/assets/DashboardPage-CrMccWRA.js +1 -0
- package/web/assets/DirectoryPickerDialog-Cnr4SkLc.js +1 -0
- package/web/assets/DirectoryPickerDialog-D1lQ83i5.css +1 -0
- package/web/assets/{EditorIcon-DXYoMZnL.js → EditorIcon-Dlr9ami0.js} +2 -2
- package/web/assets/{EnvironmentForm-D3pZuxVn.js → EnvironmentForm-NiG4dzT9.js} +2 -2
- package/web/assets/EnvironmentFormPage-TJzOWwS7.js +1 -0
- package/web/assets/EnvironmentListPage-oR335kl1.js +1 -0
- package/web/assets/KanbanBoardPage-Cta-iCIL.css +1 -0
- package/web/assets/KanbanBoardPage-Dol6K6rI.js +4 -0
- package/web/assets/KanbanListPage-C2yhMB2L.js +1 -0
- package/web/assets/{KanbanListPage-DxJFx6A6.css → KanbanListPage-CEJ9Vluh.css} +1 -1
- package/web/assets/LaunchProjectPage-BGIRMKdM.js +1 -0
- package/web/assets/LaunchProjectPage-CU2iF25_.css +1 -0
- package/web/assets/LaunchServicesPage-9aAno4Gc.css +1 -0
- package/web/assets/LaunchServicesPage-DqIG8ZDk.js +1 -0
- package/web/assets/LaunchShell-C7RrqA4k.js +1 -0
- package/web/assets/LaunchShell-CGtjrl6_.css +1 -0
- package/web/assets/LogViewer-BWtCyqa4.js +3 -0
- package/web/assets/OrgKeyPrompt-B343sYVi.css +1 -0
- package/web/assets/OrgKeyPrompt-IjlZPHOI.js +1 -0
- package/web/assets/OrgLogo-B0TayK5W.js +1 -0
- package/web/assets/ProcessControls-Bw28Duzs.js +1 -0
- package/web/assets/ProcessDetailPage-CVYQJ4aI.js +1 -0
- package/web/assets/{ProcessMetrics-CdQc_8Z0.js → ProcessMetrics-D0HzDnGO.js} +3 -3
- package/web/assets/ProjectCreateDialog-CLFPf8ds.js +1 -0
- package/web/assets/ProjectCreateDialog-UEIYMerY.css +1 -0
- package/web/assets/ProjectLocationGate-D68jdBcV.js +1 -0
- package/web/assets/ProjectPublishDialog-CDpS6xcQ.css +1 -0
- package/web/assets/ProjectPublishDialog-Cvvjeuyq.js +1 -0
- package/web/assets/RandomJobTestPage-CuUJfwwb.js +2 -0
- package/web/assets/ScenarioEditorPage-Ckq6XNl2.js +14 -0
- package/web/assets/SendToChatDialog-4a4_2amD.js +1 -0
- package/web/assets/ServiceControlsBar-OC7cDCM7.js +1 -0
- package/web/assets/ServiceDetailPage-BMlS1q4i.js +2 -0
- package/web/assets/ServiceFormPage-CozmJNy1.js +1 -0
- package/web/assets/{SettingsPage-DA7lVKfg.css → SettingsPage-CF548HPl.css} +1 -1
- package/web/assets/SettingsPage-CkJQwWCW.js +2063 -0
- package/web/assets/UnlockPage-94m6Ap-H.js +1 -0
- package/web/assets/VaultMigrationPage-Bj6KgIUi.js +1 -0
- package/web/assets/VersionBadge-DjTAz-tn.js +1 -0
- package/web/assets/WikiPage-n_vxXevo.js +1 -0
- package/web/assets/WikiView-lxEITfCa.js +1 -0
- package/web/assets/add-scalar-classes-lFkCrmFv.js +387 -0
- package/web/assets/{autocomplete-DobAPPYJ.js → autocomplete-bClqtFV-.js} +3 -3
- package/web/assets/{basic-shape-diamond.svg-FbeAPLc-.js → basic-shape-diamond.svg-DFdUK3gN.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-CtwcdpTe.js → basic-shape-hexagon.svg-BKiT9xxU.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-DsSs3S2_.js → basic-shape-primary-circle-ellipse-round.svg-tmXcRxRQ.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-CNe1RNx8.js → basic-shape-primary-square-rectangle.svg-C9duFSNc.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-DwZMLfah.js → basic-shape-shield.svg-CLzO94DF.js} +1 -1
- package/web/assets/{browser-Dz1gvldT.js → browser-BEDlGGfe.js} +1 -1
- package/web/assets/{browser-DsZ9HxVm.js → browser-CivlztYP.js} +1 -1
- package/web/assets/card-wcTFC8yG.js +32 -0
- package/web/assets/{checkbox-DPknldTJ.js → checkbox-TtO_mmrY.js} +2 -2
- package/web/assets/{chevronup-D2Lr2GiV.js → chevronup-Cd93cHVj.js} +4 -4
- package/web/assets/{chip-Caiakd-N.js → chip-omKmLLWH.js} +2 -2
- package/web/assets/client-BKIls6aD.js +24 -0
- package/web/assets/cloud-chat.store-Bskr_EXO.js +1 -0
- package/web/assets/cloud-client-rcfqjfUK.js +1 -0
- package/web/assets/cloud-session-CycNU7YV.js +1 -0
- package/web/assets/cloud-session-DiaAeCJI.js +2 -0
- package/web/assets/column-DgtEciO-.js +763 -0
- package/web/assets/composables-Ce8WccBy.js +1 -0
- package/web/assets/{computer-device-desktop-monitor.svg-CwiGN14T.js → computer-device-desktop-monitor.svg-D3YaocxY.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-BC2VdXDZ.js → computer-device-desktop.svg-lnn_cyCx.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-BOp8AKN6.js → computer-device-laptop.svg-9f5_Ipnq.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-CmbpPX1u.js → computer-device-mobile-phone-android-samsung-back.svg-DxHwZI5u.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-_WGKWVtZ.js → computer-device-mobile-phone-android-samsung.svg-CnYqoXt4.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-DmLh97KG.js → computer-device-mobile-phone-iphone-x-back.svg-D8JfsF_0.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-C7-5mdyV.js → computer-device-mobile-phone-iphone-x.svg-CUbRWc7v.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-DiUaSnhU.js → computer-device-mobile-tablet-touch.svg-CBX2kbI1.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-B6nfbYm_.js → computer-device-mobile-tablet.svg-CIn05KEg.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-DwtVKy79.js → computer-device-network-ethernet-cat6.svg-Dj0GRqXd.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-vQKfG3Xz.js → computer-device-network-lan-www.svg-D-G7js6t.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-DhHaOUge.js → computer-device-network-wifi-connection.svg-JnvMwBMA.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-1dQS4k4J.js → computer-device-network-wifi-router.svg--XxSrk_J.js} +1 -1
- package/web/assets/{cssMode-CdQL22W5.js → cssMode-C3gHbz_w.js} +1 -1
- package/web/assets/{divider-DhYR4BAO.js → divider-eMI33mv1.js} +2 -2
- package/web/assets/{docx-preview-D-jP_CCs.js → docx-preview-CTkzTOcl.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-D76wQVA2.js → ecology-science-erlenmeyer-flask.svg-DrHKX7bH.js} +1 -1
- package/web/assets/{fieldset-BtOjs_Hh.js → fieldset-CiIJH8Xe.js} +2 -2
- package/web/assets/{freemarker2-BADW9vhy.js → freemarker2-DWxB7Wcd.js} +1 -1
- package/web/assets/{handlebars-CwWQD_C8.js → handlebars-CWUdFsNH.js} +1 -1
- package/web/assets/{html-y87CEbe3.js → html-DhvF7iHg.js} +1 -1
- package/web/assets/{htmlMode-CVagtvVh.js → htmlMode-CIuDa6YW.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-OvpKi3a3.js → image-flash-lightning.svg-qFK_1eYx.js} +1 -1
- package/web/assets/{image-picture-flower.svg-DLOePozT.js → image-picture-flower.svg-qAmkHnOu.js} +1 -1
- package/web/assets/{index-CcIrffU_.js → index-CzSAFmCu.js} +363 -363
- package/web/assets/index-D0IPNhsg.css +1 -0
- package/web/assets/{interface-alert-exclamation-diamond.svg-4Vk7SoQ1.js → interface-alert-exclamation-diamond.svg-Dugh0ymo.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-BLAvc4am.js → interface-alert-exclamation-triangle-warning.svg-8neoRFVP.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-CaAXpDAI.js → interface-alert-information-circle.svg-DM9S7DBv.js} +1 -1
- package/web/assets/{interface-award-crown.svg-CW7XG0wx.js → interface-award-crown.svg--68HCcUG.js} +1 -1
- package/web/assets/{interface-bookmark.svg-BpLEuOv2.js → interface-bookmark-tag.svg-BESGrlZw.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-DPWVVeZU.js → interface-bookmark.svg-CVadIwuA.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-DbBgvI4W.js → interface-calendar-date-one.svg-D9XP9Dv_.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-BbsuvPZM.js → interface-content-book-open-pages.svg-DMI3yFmk.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-DbRPz1j8.js → interface-content-book-page.svg-BPxSHq3g.js} +1 -1
- package/web/assets/{interface-content-file.svg-OJPKABxS.js → interface-content-file.svg-D0Mbjb8x.js} +1 -1
- package/web/assets/interface-content-folder.svg-D3wbwhAD.js +1 -0
- package/web/assets/{interface-content-folder.svg-3D_5OE_-.js → interface-content-folder.svg-EUO1l7Mn.js} +1 -1
- package/web/assets/{interface-copy-clipboard.svg-DqthVh9J.js → interface-copy-clipboard.svg-DI-wp72J.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-BAPCnZ0B.js → interface-edit-attachment.svg-CrWbaWn_.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-BoV39ouF.js → interface-edit-binocular.svg-BzUDq1Il.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-Cz36nKVn.js → interface-edit-magic-wand.svg-DaAdEL5x.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-DZUQotD5.js → interface-edit-tool-paint-roller.svg-C972BXSM.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-DBf1Y9Tj.js → interface-edit-tool-pencil.svg-47QCYH9f.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-B93sRjxf.js → interface-favorite-award.svg-DROP-rzN.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-DKHuT11J.js → interface-favorite-flag.svg-B1gpMdkg.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-Bw5FZQ7d.js → interface-favorite-heart.svg-Dc0MMGJl.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-CgLbct_b.js → interface-favorite-star.svg-D6A5KWft.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-B7cYS4ef.js → interface-favorite-stars-sparkles.svg-CpEr4y41.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-zwuaRdWq.js → interface-hierarchy-flowchart.svg-DjvgRFcZ.js} +1 -1
- package/web/assets/{interface-home-house.svg-B85yMFCe.js → interface-home-house.svg-BMmVKlSc.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-US6b-Svn.js → interface-hyperlink.svg-BewFXeyZ.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-mZWkhb7f.js → interface-lighting-brightness.svg-B74_Fwt9.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-9oHuNwuY.js → interface-lock-closed.svg-B_kTyHSd.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-DBetdJny.js → interface-lock-open-unlock.svg-BpmOnQWL.js} +1 -1
- package/web/assets/{interface-login-key.svg-BZnZTYd1.js → interface-login-key.svg-CjYpI4bh.js} +1 -1
- package/web/assets/{interface-search.svg-CMXAOoam.js → interface-search.svg-FJmFWdB4.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-CKckatt7.js → interface-setting-cog.svg-CfzSne-G.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-DH7kVqN-.js → interface-share-megaphone-bullhorn.svg-CIIzDsMB.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-BNXcMugi.js → interface-share-rocket.svg-DqTBI7lO.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-Bb8t607w.js → interface-share-satellite.svg-nJfwIxpE.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-Dk4rbLtF.js → interface-share-space-ship.svg-hSmFC9Bt.js} +1 -1
- package/web/assets/{interface-share.svg-CtX8dq5i.js → interface-share.svg-DW5W5LS6.js} +1 -1
- package/web/assets/{interface-signal-square.svg-DmUIlYTd.js → interface-signal-square.svg-CxjWE1n9.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-D2ZNaXT3.js → interface-time-clock-circle.svg-OliTsm3U.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-Ddo-8hHe.js → interface-time-hour-glass.svg-Cq5G77ft.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-Jh7S0sT4.js → interface-users-multiple.svg-BZxMlLou.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-DbdQFgL2.js → interface-weather-moon.svg-lFXrwEyz.js} +1 -1
- package/web/assets/{javascript-BVGFyXBk.js → javascript-BVZ1omk1.js} +1 -1
- package/web/assets/{jsonMode-vnFlxYl9.js → jsonMode-CiBARvaV.js} +2 -2
- package/web/assets/{liquid-DieKMEvN.js → liquid-CUYREU3G.js} +1 -1
- package/web/assets/{lspLanguageFeatures-DoeI-8Y7.js → lspLanguageFeatures-BCfkeNgB.js} +3 -3
- package/web/assets/{mail-chat-bubble-square.svg-CApdU2ea.js → mail-chat-bubble-square.svg-DbOh-u2f.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg-jjZ0KB32.js → mail-send-email-paper-airplane.svg-Ci3654Ap.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-B6Tsoh-8.js → mail-send-envelope.svg-BUCSUoVb.js} +1 -1
- package/web/assets/{mdx-BCkszXid.js → mdx-GNBOgT3C.js} +1 -1
- package/web/assets/{minus-DfLQX3s2.js → minus-qBqqwoxz.js} +2 -2
- package/web/assets/modal-CsKPvO45.js +5 -0
- package/web/assets/modal-E9FRG--u.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-DM-I8Snr.js → money-cashier-receipt.svg-qOZhZZs2.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-CkDRewrV.js → money-currency-dollar-pay.svg-WYlopKIm.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-BT4KLHWz.js → money-graph-arrow-increase.svg-DAcyYWIw.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-EvyIJ3Uu.js → money-graph-bar-chart-increase.svg-Bcjxz1Kd.js} +1 -1
- package/web/assets/multiselect-DiGSzibm.js +251 -0
- package/web/assets/{nature-ecology-leaf.svg-uZBwXdg9.js → nature-ecology-leaf.svg-d0AKmyxH.js} +1 -1
- package/web/assets/{password-D1R5w1qL.js → password-BwMjgK0Q.js} +4 -4
- package/web/assets/{phone-telephone.svg-BSvOskIB.js → phone-telephone.svg-BzKK2wbN.js} +1 -1
- package/web/assets/{plus-CNGSRnxy.js → plus-D6Rlmwbp.js} +6 -6
- package/web/assets/process.store-I5VZVT0x.js +1 -0
- package/web/assets/{programming-bug.svg-CLnGs4K-.js → programming-bug.svg-BtSROvd5.js} +1 -1
- package/web/assets/{programming-cloud.svg-CxBovXBR.js → programming-cloud.svg-YDPFJdYt.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-C1JmOyio.js → programming-computer-database-server.svg-C_7cgE9Q.js} +1 -1
- package/web/assets/{programming-computer-database.svg-BRjyOzP4.js → programming-computer-database.svg-CLw76mik.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-Blwzw6Qz.js → programming-module-four-layout.svg-BsoC5ySI.js} +1 -1
- package/web/assets/{programming-module-three.svg-6bkrmWsU.js → programming-module-three.svg-CThoMoAk.js} +1 -1
- package/web/assets/{programming-module.svg-CBS9xKxX.js → programming-module.svg-BQ1YjjAj.js} +1 -1
- package/web/assets/{programming-script-code.svg-BVhyoAD3.js → programming-script-code.svg-BKT_wilO.js} +1 -1
- package/web/assets/project-launch.store-CBnJKGQe.js +1 -0
- package/web/assets/project.store-JIcOcKSg.js +1 -0
- package/web/assets/{python-CiPYtj_d.js → python-BXwGt-Ip.js} +1 -1
- package/web/assets/{radiobutton--KWBHcDP.js → radiobutton-D20sH1UN.js} +3 -3
- package/web/assets/{razor-CSoWGP30.js → razor-RXambmP2.js} +1 -1
- package/web/assets/router-BXj_oCbf.js +1 -0
- package/web/assets/{selectbutton-C0NL5n4w.js → selectbutton-rLcf19Xf.js} +4 -4
- package/web/assets/settings-scope-Cy_9OGE1.js +1 -0
- package/web/assets/settings.store-DrKeFdgW.js +1 -0
- package/web/assets/{shopping-cart.svg-C-8NG_Po.js → shopping-cart.svg-EjTn3XQF.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-Bp6q5VzJ.js → shopping-gift-present.svg-AQNlzazh.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-DeWaEIwm.js → shopping-shipping-box-parcel-package.svg-VB9n6UNi.js} +1 -1
- package/web/assets/src-ByEHJyfr.js +1 -0
- package/web/assets/{src-BHR3l7pa.js → src-CUwD1xPP.js} +35 -35
- package/web/assets/src-C_auNJtg.css +1 -0
- package/web/assets/{tag-new-circle.svg-CTljXsqE.js → tag-new-circle.svg-BllOd5JW.js} +1 -1
- package/web/assets/theme-DuAHBQRP.js +1 -0
- package/web/assets/{toggleswitch-d41l5g27.js → toggleswitch-C-88_GnB.js} +2 -2
- package/web/assets/{travel-map-earth-globe.svg-BUkcntCp.js → travel-map-earth-globe.svg-ChLDmmU9.js} +1 -1
- package/web/assets/trpc-BoKwANhj.js +1 -0
- package/web/assets/{tsMode-B2c-rCAa.js → tsMode-CIN3QIw8.js} +6 -6
- package/web/assets/{typescript-CmW4u_GQ.js → typescript-wXu_7Eym.js} +1 -1
- package/web/assets/useAiChatDrawer-Bs1Gxhn2.js +1 -0
- package/web/assets/{useCloudOrg-E4l-99WA.js → useCloudOrg-0AZ58M3V.js} +1 -1
- package/web/assets/useEnvVarAutocomplete-BXC_JUF7.js +102 -0
- package/web/assets/{useEnvVarAutocomplete-DsxEF6Ya.css → useEnvVarAutocomplete-dxAmKsn7.css} +1 -1
- package/web/assets/useProjectCloudOrg-UIfVePy9.js +1 -0
- package/web/assets/useServiceUrlHost-BXbIxPaT.js +1 -0
- package/web/assets/{xml-BxMqu3hT.js → xml-FTYGqn2R.js} +1 -1
- package/web/assets/{yaml-Djx7E3R1.js → yaml-DQEEK2dU.js} +1 -1
- package/web/index.html +2 -2
- package/agent-manager-FUU72VGH.js +0 -11
- package/chat-C26CBAZX.js +0 -21
- package/chunk-5EMEJNVU.js.map +0 -1
- package/chunk-FJLMXLMK.js.map +0 -1
- package/chunk-NURPXHLB.js.map +0 -1
- package/chunk-P65BO7WZ.js.map +0 -1
- package/chunk-ZFELQG4B.js.map +0 -1
- package/desktop-launcher-3COY6F6H.js.map +0 -1
- package/desktop-wizard-4CYANX2O.js +0 -209
- package/desktop-wizard-4CYANX2O.js.map +0 -1
- package/settings-manager-J4QBIU3T.js +0 -10
- package/src-7O3GCEIB.js.map +0 -1
- package/web/assets/AgentScalarChatInterface.vue-BGGkpyp3.js +0 -13
- package/web/assets/AgentTerminalPage-B8gLray2.js +0 -1
- package/web/assets/AiChatPage-BKITsyMx.js +0 -1
- package/web/assets/AppLayout-B72S4nTi.css +0 -1
- package/web/assets/AppLayout-BYw7v2sp.js +0 -1
- package/web/assets/AuditPage-nHTwzyia.js +0 -1
- package/web/assets/CloudAccountPage-DYOvfMjD.css +0 -1
- package/web/assets/CloudAccountPage-DuaZz2j4.js +0 -1
- package/web/assets/CloudAccountPage-XHxI-ixD.js +0 -1
- package/web/assets/CloudMessagingPage-B2N5K-Xs.js +0 -2
- package/web/assets/DashboardPage-VoWJeWh_.js +0 -1
- package/web/assets/DirectoryPickerDialog-B5SuJOhv.js +0 -1
- package/web/assets/DirectoryPickerDialog-Ctp1lYoS.css +0 -1
- package/web/assets/EnvironmentFormPage-BIXbPTN5.js +0 -1
- package/web/assets/EnvironmentListPage-CHa-Ni3w.js +0 -1
- package/web/assets/KanbanBoardPage-B46zbE2H.css +0 -1
- package/web/assets/KanbanBoardPage-BFTNpm8P.js +0 -4
- package/web/assets/KanbanListPage-CYuIrKXH.js +0 -1
- package/web/assets/LaunchProjectPage-9hhGBdOh.css +0 -1
- package/web/assets/LaunchProjectPage-jy-R3Fiw.js +0 -1
- package/web/assets/LaunchServicesPage-BMtm_8yP.css +0 -1
- package/web/assets/LaunchServicesPage-DX7nyo36.js +0 -1
- package/web/assets/LaunchShell-BHfseuPM.js +0 -1
- package/web/assets/LaunchShell-HenrOlHV.css +0 -1
- package/web/assets/LogViewer-C-pHXudR.js +0 -3
- package/web/assets/OrgKeyPrompt-CrHXZdKL.css +0 -1
- package/web/assets/OrgKeyPrompt-OPnK5oPm.js +0 -1
- package/web/assets/OrgLogo-Cxa49Tl3.js +0 -1
- package/web/assets/ProcessControls-DXDyR6XX.js +0 -1
- package/web/assets/ProcessDetailPage-DNKTwgPW.js +0 -1
- package/web/assets/RandomJobTestPage-BE8HkgSb.js +0 -2
- package/web/assets/ScenarioEditorPage-Coo6ExzZ.js +0 -14
- package/web/assets/SendToChatDialog-ClXerpCU.js +0 -1
- package/web/assets/ServiceControlsBar-C7HrPjQI.js +0 -1
- package/web/assets/ServiceDetailPage-Cxuy0Yix.js +0 -2
- package/web/assets/ServiceFormPage-CCOu1h8v.js +0 -1
- package/web/assets/SettingsPage-Dt1ViDQe.js +0 -2063
- package/web/assets/UnlockPage-C5iEOAKH.js +0 -1
- package/web/assets/VaultMigrationPage-CwRWvFY7.js +0 -1
- package/web/assets/VersionBadge-Bqb72GXf.js +0 -1
- package/web/assets/WikiPage-Bl1jDKKp.js +0 -1
- package/web/assets/WikiView-58u6vU3q.js +0 -1
- package/web/assets/add-scalar-classes-CT5KQbzH.js +0 -387
- package/web/assets/card-46tM5yU0.js +0 -32
- package/web/assets/client-KL5c1Dog.js +0 -24
- package/web/assets/cloud-chat.store-Belo5SKd.js +0 -1
- package/web/assets/cloud-client-Cqa2Udt8.js +0 -1
- package/web/assets/cloud-session-56bUtkSL.js +0 -2
- package/web/assets/cloud-session-Dqm0C6H5.js +0 -1
- package/web/assets/column-DQ53_qc6.js +0 -763
- package/web/assets/composables-CHyZa9ag.js +0 -1
- package/web/assets/index-CKOtBNaZ.css +0 -1
- package/web/assets/interface-content-folder.svg-8mYqkDao.js +0 -1
- package/web/assets/modal-CCco27Sn.js +0 -5
- package/web/assets/modal-D4J85_wC.js +0 -1
- package/web/assets/multiselect-BmjidXlj.js +0 -251
- package/web/assets/process.store-p1LqnpY2.js +0 -1
- package/web/assets/project-launch.store-BBYtCcv8.js +0 -1
- package/web/assets/project.store-D_2v7amt.js +0 -1
- package/web/assets/router-CRKT3825.js +0 -1
- package/web/assets/settings-scope-DblmUa3N.js +0 -1
- package/web/assets/settings.store-DKTQyerJ.js +0 -1
- package/web/assets/src-BN5gTC76.css +0 -1
- package/web/assets/src-BRLkogf3.js +0 -1
- package/web/assets/theme-BZzt_Sgl.js +0 -1
- package/web/assets/trpc-Db0Atu8A.js +0 -1
- package/web/assets/useAiChatDrawer-0QJJVXul.js +0 -1
- package/web/assets/useEnvVarAutocomplete-BDqUWoGr.js +0 -102
- package/web/assets/useProjectCatalog-Cxt-hL1H.js +0 -1
- package/web/assets/useProjectCloudOrg-CwLTQLIO.js +0 -1
- package/web/assets/useServiceUrlHost-VIA3uP5-.js +0 -1
- /package/{agent-manager-FUU72VGH.js.map → agent-manager-NAGIMH2T.js.map} +0 -0
- /package/{chat-C26CBAZX.js.map → chat-Q2UMYXQL.js.map} +0 -0
- /package/{chunk-BDQOBEZ3.js.map → chunk-GOMF7NWS.js.map} +0 -0
- /package/{chunk-J4GLFY7G.js.map → chunk-MSICJEZD.js.map} +0 -0
- /package/{chunk-I7JHF5FE.js.map → chunk-XHGJHYDC.js.map} +0 -0
- /package/{companion-Q67RAO3N.js.map → companion-MGX62L4T.js.map} +0 -0
- /package/{node-4UUJN2WG.js.map → desktop-launcher-HKXP4LRI.js.map} +0 -0
- /package/{settings-manager-J4QBIU3T.js.map → desktop-wizard-XIDDAG7L.js.map} +0 -0
- /package/{vault-resolver-57Q2DVOR.js.map → node-RN4URNZ5.js.map} +0 -0
- /package/web/assets/{abap-BwLGULgU.js → abap-CRsXUZTC.js} +0 -0
- /package/web/assets/{apex-BmwhxS2n.js → apex-CN6ZSzwM.js} +0 -0
- /package/web/assets/{azcli-7RvE_Zal.js → azcli-ULFzG1xV.js} +0 -0
- /package/web/assets/{bat-DRPmS6Na.js → bat-BVH8lwB4.js} +0 -0
- /package/web/assets/{bicep-BwfkS7ZV.js → bicep-B8jMqZ8i.js} +0 -0
- /package/web/assets/{browser-D3d3061H.js → browser-xa0YgePN.js} +0 -0
- /package/web/assets/{cameligo-BJ_mdC8E.js → cameligo-DuuRwBiE.js} +0 -0
- /package/web/assets/{clojure-CQKq7DWt.js → clojure-DUpiEmPZ.js} +0 -0
- /package/web/assets/{coffee-DJRj2iwd.js → coffee-BO4ou798.js} +0 -0
- /package/web/assets/{cpp-BC1yJTUW.js → cpp-CHOtY2DW.js} +0 -0
- /package/web/assets/{csharp-D6U2fAAT.js → csharp-D3t5O1XD.js} +0 -0
- /package/web/assets/{csp-B2Ue_UmV.js → csp-CJpJWgPE.js} +0 -0
- /package/web/assets/{css-CEzlcbMY.js → css-CAeYpQS5.js} +0 -0
- /package/web/assets/{cypher-D5Sg38Yj.js → cypher-D9-TC6ep.js} +0 -0
- /package/web/assets/{dart-BhjKRv6v.js → dart-CYoMdUUD.js} +0 -0
- /package/web/assets/{dockerfile-BnivEbtE.js → dockerfile-B2ffS5e2.js} +0 -0
- /package/web/assets/{ecl-TS1StLK1.js → ecl-BL_MLv5o.js} +0 -0
- /package/web/assets/{elixir-BX9ta6DO.js → elixir-DTTK5HpM.js} +0 -0
- /package/web/assets/{flow9-CoOB42ee.js → flow9-CnqIliGA.js} +0 -0
- /package/web/assets/{fsharp-DmQslDFn.js → fsharp-BtsygJkw.js} +0 -0
- /package/web/assets/{go-BbEGGooY.js → go-DksUoC0w.js} +0 -0
- /package/web/assets/{graphql-E24y5sn9.js → graphql-DCtJGb0Q.js} +0 -0
- /package/web/assets/{hcl-pBZphP8G.js → hcl-Vm6MaTNZ.js} +0 -0
- /package/web/assets/{ini-BSbRgr25.js → ini-DdyyiZLB.js} +0 -0
- /package/web/assets/{java-D8KvzsMp.js → java-D9tw0Sq3.js} +0 -0
- /package/web/assets/{julia-BDRytf15.js → julia-DsaDhMSi.js} +0 -0
- /package/web/assets/{kotlin-CNcQo-uP.js → kotlin-eMyqSg05.js} +0 -0
- /package/web/assets/{less-0HRV-2Rz.js → less-BTExquT2.js} +0 -0
- /package/web/assets/{lexon-DdJG3_pW.js → lexon-Btiu1CPR.js} +0 -0
- /package/web/assets/{lua-Blq8Mukj.js → lua-uIHSqSt_.js} +0 -0
- /package/web/assets/{m3-CXbmzr9W.js → m3-DtY-QwwW.js} +0 -0
- /package/web/assets/{markdown-DFIISzT8.js → markdown-DalwAnMR.js} +0 -0
- /package/web/assets/{mips-C2XSYglv.js → mips-BocGRfi2.js} +0 -0
- /package/web/assets/{msdax-D3Jl6oAY.js → msdax-CQFbyz50.js} +0 -0
- /package/web/assets/{mysql-mCqxt_Co.js → mysql-BM8uo0J8.js} +0 -0
- /package/web/assets/{objective-c-CUKLr4E9.js → objective-c-H3c5-SZb.js} +0 -0
- /package/web/assets/{pascal-BpqDI6Ur.js → pascal-BgiV8eY7.js} +0 -0
- /package/web/assets/{pascaligo-BVchPyL4.js → pascaligo-DT9ZcxD2.js} +0 -0
- /package/web/assets/{perl-Dgc9v23P.js → perl-B0U4-W-w.js} +0 -0
- /package/web/assets/{pgsql-Dk9IX1G_.js → pgsql-B6kZRXs9.js} +0 -0
- /package/web/assets/{php-XeFLn3yL.js → php-DG9vCwQM.js} +0 -0
- /package/web/assets/{pla-DQMfrdXZ.js → pla-B4Y4wk5I.js} +0 -0
- /package/web/assets/{postiats-DiKrdL3K.js → postiats-C_eWfeAP.js} +0 -0
- /package/web/assets/{powerquery-Cj9Q91Zv.js → powerquery-DfX2HFDF.js} +0 -0
- /package/web/assets/{powershell-DxLElnzU.js → powershell-Bxsmga8Z.js} +0 -0
- /package/web/assets/{protobuf-7vT2HdZD.js → protobuf-BjgmCR9H.js} +0 -0
- /package/web/assets/{pug-oi96TUbQ.js → pug-ryXuxA3i.js} +0 -0
- /package/web/assets/{qsharp-DNr9IwS2.js → qsharp-91Kv1jwy.js} +0 -0
- /package/web/assets/{r-C-REi_Zk.js → r-j6OkO-Lp.js} +0 -0
- /package/web/assets/{redis-BvOCrLoN.js → redis-B2Usw_gW.js} +0 -0
- /package/web/assets/{redshift-jNEw-REz.js → redshift-Bl5n-UlH.js} +0 -0
- /package/web/assets/{restructuredtext-B9ET-x7N.js → restructuredtext-IIWeXmeu.js} +0 -0
- /package/web/assets/{ruby-BIEBiJDZ.js → ruby-DQH1R4pC.js} +0 -0
- /package/web/assets/{rust-BnoIVewm.js → rust-BJi0001n.js} +0 -0
- /package/web/assets/{sb-Bwvy9clh.js → sb-C34JQX0H.js} +0 -0
- /package/web/assets/{scala-DPv5zS47.js → scala-BqHjuqsC.js} +0 -0
- /package/web/assets/{scheme-BQqNVxf_.js → scheme-DIfjDH23.js} +0 -0
- /package/web/assets/{scss-Ck1AFDEz.js → scss-MxgEDdb7.js} +0 -0
- /package/web/assets/{shell-C4IYs9Z7.js → shell-D_SMEq6l.js} +0 -0
- /package/web/assets/{solidity-D3bS77xq.js → solidity-CyBHDO6p.js} +0 -0
- /package/web/assets/{sophia-BSTVfueD.js → sophia-8_L-7Xrk.js} +0 -0
- /package/web/assets/{sparql-BGcXD7s2.js → sparql-CXxyP-1c.js} +0 -0
- /package/web/assets/{sql-CIsSgyam.js → sql-DNd4NFJw.js} +0 -0
- /package/web/assets/{st-dV1d_AXx.js → st-DPFJcK-4.js} +0 -0
- /package/web/assets/{swift-CK8gXWQn.js → swift-DE_LJ5Ub.js} +0 -0
- /package/web/assets/{systemverilog-B9tHBIJU.js → systemverilog-IgPgwLQ7.js} +0 -0
- /package/web/assets/{tcl-BgRT60RV.js → tcl-Cr-fmmH0.js} +0 -0
- /package/web/assets/{twig-CGkLO4Nl.js → twig-Dd_ODPfV.js} +0 -0
- /package/web/assets/{typespec-DMP9WuzC.js → typespec-CeK8X8vB.js} +0 -0
- /package/web/assets/{uuid-H0yY5A03.js → uuid-6HQMUkhT.js} +0 -0
- /package/web/assets/{vb-DfSbhl3d.js → vb-CyLVxxH6.js} +0 -0
- /package/web/assets/{wgsl-CaJmoLY5.js → wgsl-CmRFGM3r.js} +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
settingsManager
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-XHGJHYDC.js";
|
|
4
4
|
import {
|
|
5
5
|
COMPANION_SIGNATURE,
|
|
6
6
|
activeSessionRegistry,
|
|
@@ -23,14 +23,16 @@ import {
|
|
|
23
23
|
noteSpawnConversation,
|
|
24
24
|
observePtyChunk,
|
|
25
25
|
onCompanionThinkingChanged,
|
|
26
|
-
projectPathStore,
|
|
27
26
|
projectStore,
|
|
28
27
|
readClaudeTranscript,
|
|
29
28
|
resetRelaunches,
|
|
29
|
+
resolveAgentCwd,
|
|
30
|
+
resolveConversationCwd,
|
|
31
|
+
resolveWorkspaceCwd,
|
|
30
32
|
runCompanionNow,
|
|
31
33
|
syncConversationFromClaudeTranscript,
|
|
32
34
|
verifyJwt
|
|
33
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-GLIU3J47.js";
|
|
34
36
|
import {
|
|
35
37
|
StoreDiskCoordinator,
|
|
36
38
|
agentManager,
|
|
@@ -49,7 +51,7 @@ import {
|
|
|
49
51
|
recordLocalRemoval,
|
|
50
52
|
refsOfProjectId,
|
|
51
53
|
serviceStore
|
|
52
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-MSICJEZD.js";
|
|
53
55
|
import {
|
|
54
56
|
atomicWriteJsonSecure,
|
|
55
57
|
atomicWriteSecure,
|
|
@@ -60,7 +62,7 @@ import {
|
|
|
60
62
|
renameWithRetry,
|
|
61
63
|
resolveConversationRunDir,
|
|
62
64
|
wasRead
|
|
63
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-GOMF7NWS.js";
|
|
64
66
|
import {
|
|
65
67
|
AGENT_STOP_FETCH_TIMEOUT,
|
|
66
68
|
ApiKeysFileSchema,
|
|
@@ -90,23 +92,22 @@ import {
|
|
|
90
92
|
serviceUrlValues,
|
|
91
93
|
urlHostFor,
|
|
92
94
|
withDeprecatedAliases
|
|
93
|
-
} from "./chunk-
|
|
95
|
+
} from "./chunk-LE6XQ3OV.js";
|
|
94
96
|
import {
|
|
95
97
|
allVaultRoots,
|
|
96
98
|
env,
|
|
97
99
|
keyedFilePath,
|
|
98
100
|
legacyMachineFilePath,
|
|
99
101
|
listOrgVaults,
|
|
100
|
-
localVaultRoot,
|
|
101
102
|
machineFilePath,
|
|
102
103
|
machineRoot,
|
|
103
104
|
orgVaultRoot,
|
|
104
105
|
vaultIdOfRoot
|
|
105
|
-
} from "./chunk-
|
|
106
|
+
} from "./chunk-EV3TBM7E.js";
|
|
106
107
|
import {
|
|
107
108
|
isCliAvailable,
|
|
108
109
|
resolveCliInvocation
|
|
109
|
-
} from "./chunk-
|
|
110
|
+
} from "./chunk-OZBSOSAS.js";
|
|
110
111
|
|
|
111
112
|
// ../server/src/trpc/routers/chat.ts
|
|
112
113
|
import { z as z9 } from "zod";
|
|
@@ -583,68 +584,9 @@ var ShortString200Schema = z2.string().max(200);
|
|
|
583
584
|
var DescriptionSchema = z2.string().max(2e3);
|
|
584
585
|
var OptionalProviderIdSchema = Id128Schema.optional();
|
|
585
586
|
|
|
586
|
-
// ../server/src/services/workspace-cwd.ts
|
|
587
|
-
import { isAbsolute, join as join3, dirname } from "path";
|
|
588
|
-
async function projectRoot(ref) {
|
|
589
|
-
const project = await projectStore.get(ref);
|
|
590
|
-
if (!project?.orgId) return null;
|
|
591
|
-
return projectPathStore.get(project);
|
|
592
|
-
}
|
|
593
|
-
async function resolveWorkspaceCwd(target) {
|
|
594
|
-
const launchDir = localVaultRootParent();
|
|
595
|
-
if (target.serviceId) {
|
|
596
|
-
const service = await serviceStore.get(target.serviceId);
|
|
597
|
-
if (service) {
|
|
598
|
-
const raw = (target.override ?? service.cwd ?? "").trim();
|
|
599
|
-
const projects = await projectStore.list();
|
|
600
|
-
const owner = projects.find((p) => p.serviceIds.includes(service.id));
|
|
601
|
-
const root = owner ? await projectRoot(owner) : null;
|
|
602
|
-
return root ? anchor(root, raw) : raw || ".";
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
if (target.projectId) {
|
|
606
|
-
const root = await projectRoot({ id: target.projectId, orgId: target.orgId });
|
|
607
|
-
const raw = (target.override ?? "").trim();
|
|
608
|
-
return root ? anchor(root, raw) : raw || launchDir;
|
|
609
|
-
}
|
|
610
|
-
return anchor(launchDir, (target.override ?? "").trim());
|
|
611
|
-
}
|
|
612
|
-
function anchor(base, raw) {
|
|
613
|
-
if (!raw || raw === ".") return base;
|
|
614
|
-
if (raw.startsWith("~") || raw.startsWith("$") || isAbsolute(raw)) return raw;
|
|
615
|
-
return join3(base, raw);
|
|
616
|
-
}
|
|
617
|
-
function localVaultRootParent() {
|
|
618
|
-
return dirname(localVaultRoot());
|
|
619
|
-
}
|
|
620
|
-
async function resolveAgentCwd(target) {
|
|
621
|
-
if (target.serviceId) {
|
|
622
|
-
const service = await serviceStore.get(target.serviceId);
|
|
623
|
-
if (service) {
|
|
624
|
-
const projects = await projectStore.list();
|
|
625
|
-
const owner = projects.find((p) => p.serviceIds.includes(service.id));
|
|
626
|
-
const root = owner ? await projectRoot(owner) : null;
|
|
627
|
-
if (!root) return void 0;
|
|
628
|
-
return anchor(root, (target.override ?? service.cwd ?? "").trim());
|
|
629
|
-
}
|
|
630
|
-
}
|
|
631
|
-
if (target.projectId) {
|
|
632
|
-
const root = await projectRoot({ id: target.projectId, orgId: target.orgId });
|
|
633
|
-
if (!root) return void 0;
|
|
634
|
-
return anchor(root, (target.override ?? "").trim());
|
|
635
|
-
}
|
|
636
|
-
return void 0;
|
|
637
|
-
}
|
|
638
|
-
async function resolveConversationCwd(conversationId) {
|
|
639
|
-
const conv = await conversationStore.get(conversationId);
|
|
640
|
-
const ref = conv ? await conversationStore.projectRefOf(conv) : null;
|
|
641
|
-
if (!ref) return resolveAgentCwd({});
|
|
642
|
-
return resolveAgentCwd({ projectId: ref.id, orgId: ref.orgId });
|
|
643
|
-
}
|
|
644
|
-
|
|
645
587
|
// ../server/src/services/environment-overrides-store.ts
|
|
646
588
|
import { readFile as readFile2, writeFile, mkdir, chmod } from "fs/promises";
|
|
647
|
-
import { dirname
|
|
589
|
+
import { dirname, join as join3 } from "path";
|
|
648
590
|
var FILENAME = "environment-overrides.json";
|
|
649
591
|
var EnvironmentOverridesStore = class {
|
|
650
592
|
data = {};
|
|
@@ -688,7 +630,7 @@ var EnvironmentOverridesStore = class {
|
|
|
688
630
|
async rootFor(variableId) {
|
|
689
631
|
const root = await environmentStore.rootOfVariable(variableId);
|
|
690
632
|
if (root) return root;
|
|
691
|
-
return this.roots.get(variableId) ??
|
|
633
|
+
return this.roots.get(variableId) ?? dirname(await keyedFilePath(FILENAME));
|
|
692
634
|
}
|
|
693
635
|
/** Where earlier versions kept them: read once, rewritten to their vaults. */
|
|
694
636
|
getLegacyFilePath() {
|
|
@@ -700,7 +642,7 @@ var EnvironmentOverridesStore = class {
|
|
|
700
642
|
return [
|
|
701
643
|
this.getLegacyFilePath(),
|
|
702
644
|
await keyedFilePath(FILENAME),
|
|
703
|
-
...roots.map((root) =>
|
|
645
|
+
...roots.map((root) => join3(root, FILENAME))
|
|
704
646
|
];
|
|
705
647
|
}
|
|
706
648
|
/**
|
|
@@ -754,11 +696,11 @@ var EnvironmentOverridesStore = class {
|
|
|
754
696
|
parsed,
|
|
755
697
|
"environment-overrides",
|
|
756
698
|
(variableId) => unreadableSecrets.add(variableId),
|
|
757
|
-
vaultIdOfRoot(
|
|
699
|
+
vaultIdOfRoot(dirname(path))
|
|
758
700
|
);
|
|
759
701
|
for (const [id, override] of Object.entries(decrypted)) {
|
|
760
702
|
data[id] = { value: override.value };
|
|
761
|
-
roots.set(id,
|
|
703
|
+
roots.set(id, dirname(path));
|
|
762
704
|
}
|
|
763
705
|
}
|
|
764
706
|
return { data, diskEncryptedSlots, roots, unreadableSecrets };
|
|
@@ -794,7 +736,7 @@ var EnvironmentOverridesStore = class {
|
|
|
794
736
|
extractEncryptedVariableSlots(encrypted)
|
|
795
737
|
);
|
|
796
738
|
await mkdir(root, { recursive: true });
|
|
797
|
-
const path =
|
|
739
|
+
const path = join3(root, FILENAME);
|
|
798
740
|
const tmpPath = path + ".tmp";
|
|
799
741
|
await writeFile(tmpPath, JSON.stringify(encrypted, null, 2), "utf-8");
|
|
800
742
|
await renameWithRetry(tmpPath, path);
|
|
@@ -1696,10 +1638,12 @@ var RUNEYA_CAPABILITIES = [
|
|
|
1696
1638
|
method: "POST",
|
|
1697
1639
|
params: [
|
|
1698
1640
|
{ name: "attachmentId", description: "The attachment ID, as listed on the card", required: true },
|
|
1699
|
-
{ name: "
|
|
1641
|
+
{ name: "boardId", description: "The board the attachment comes from. Pass it whenever you know it: on a machine linked to several cloud accounts, it is what says which one holds the file.", required: false },
|
|
1642
|
+
{ name: "organizationId", description: "Which organization the attachment belongs to. Optional: needed only when neither the board id is known nor the machine has a single account.", required: false }
|
|
1700
1643
|
],
|
|
1701
1644
|
buildInput: (p) => ({
|
|
1702
1645
|
attachmentId: p.attachmentId,
|
|
1646
|
+
...p.boardId ? { boardId: p.boardId } : {},
|
|
1703
1647
|
...p.organizationId ? { orgId: p.organizationId } : {}
|
|
1704
1648
|
})
|
|
1705
1649
|
},
|
|
@@ -1796,6 +1740,40 @@ var RUNEYA_CAPABILITIES = [
|
|
|
1796
1740
|
...p.parentBoardId ? { parentBoardId: p.parentBoardId } : {}
|
|
1797
1741
|
})
|
|
1798
1742
|
},
|
|
1743
|
+
{
|
|
1744
|
+
name: "kanban_place_card",
|
|
1745
|
+
description: "Place an existing kanban card on another board of the same organization, without copying it \u2014 a reference. The card stays on its origin board; the target board gives it a column of its own. Editing, commenting, archiving or deleting the card from either board acts on the same card; moving it on the target board only moves the reference. Use it to show an issue from an issue list on a team kanban, for instance.",
|
|
1746
|
+
route: "kanban.placeCard",
|
|
1747
|
+
method: "POST",
|
|
1748
|
+
params: [
|
|
1749
|
+
{ name: "boardId", description: "The board to place the card on (not its own board)", required: true },
|
|
1750
|
+
{ name: "cardId", description: "The card to place", required: true },
|
|
1751
|
+
{ name: "column", description: "The column on that board: its ID or its title", required: true }
|
|
1752
|
+
],
|
|
1753
|
+
buildInput: (p) => ({ boardId: p.boardId, cardId: p.cardId, column: p.column })
|
|
1754
|
+
},
|
|
1755
|
+
{
|
|
1756
|
+
name: "kanban_remove_card_placement",
|
|
1757
|
+
description: "Remove a card from a board where it was placed as a reference. The card itself is untouched and stays on its origin board.",
|
|
1758
|
+
route: "kanban.unplaceCard",
|
|
1759
|
+
method: "POST",
|
|
1760
|
+
params: [
|
|
1761
|
+
{ name: "boardId", description: "The board the reference is on", required: true },
|
|
1762
|
+
{ name: "cardId", description: "The card to remove from that board", required: true }
|
|
1763
|
+
],
|
|
1764
|
+
buildInput: (p) => ({ boardId: p.boardId, cardId: p.cardId })
|
|
1765
|
+
},
|
|
1766
|
+
{
|
|
1767
|
+
name: "kanban_get_card_placements",
|
|
1768
|
+
description: "List where a kanban card is: its origin board (home: true), then every board it is placed on as a reference, with the column on each. kanban_get_board flags a referenced card with an `origin` field naming its origin board.",
|
|
1769
|
+
route: "kanban.getCardPlacements",
|
|
1770
|
+
method: "GET",
|
|
1771
|
+
params: [
|
|
1772
|
+
{ name: "boardId", description: "Any board the card is on", required: true },
|
|
1773
|
+
{ name: "cardId", description: "The card", required: true }
|
|
1774
|
+
],
|
|
1775
|
+
buildInput: (p) => ({ boardId: p.boardId, cardId: p.cardId })
|
|
1776
|
+
},
|
|
1799
1777
|
{
|
|
1800
1778
|
name: "kanban_add_card",
|
|
1801
1779
|
description: "Add a new card to a kanban column.",
|
|
@@ -2374,16 +2352,16 @@ async function runCapability(cap, baseUrl, params, authToken, fetchImpl = fetch)
|
|
|
2374
2352
|
}
|
|
2375
2353
|
|
|
2376
2354
|
// ../../packages/ai-capabilities/src/project-anchor.ts
|
|
2377
|
-
function applyProjectAnchor(cap, params,
|
|
2378
|
-
if (!
|
|
2355
|
+
function applyProjectAnchor(cap, params, anchor) {
|
|
2356
|
+
if (!anchor.projectId) return params;
|
|
2379
2357
|
const accepts = (name) => cap.params.some((p) => p.name === name);
|
|
2380
2358
|
if (!accepts("projectId") || params["projectId"]) return params;
|
|
2381
2359
|
return {
|
|
2382
2360
|
...params,
|
|
2383
|
-
projectId:
|
|
2361
|
+
projectId: anchor.projectId,
|
|
2384
2362
|
// L'organisation n'accompagne le projet que si la capability la comprend :
|
|
2385
2363
|
// ailleurs, ce serait un champ de trop, refusé par le schéma de la route.
|
|
2386
|
-
...
|
|
2364
|
+
...anchor.orgId && accepts("orgId") && !params["orgId"] ? { orgId: anchor.orgId } : {}
|
|
2387
2365
|
};
|
|
2388
2366
|
}
|
|
2389
2367
|
|
|
@@ -2572,7 +2550,7 @@ function normalizeToolName(raw) {
|
|
|
2572
2550
|
const match = KNOWN_TOOL_NAMES.find((t2) => raw.startsWith(t2));
|
|
2573
2551
|
return match ?? raw;
|
|
2574
2552
|
}
|
|
2575
|
-
async function executeTool(rawName, input, apiKey, authToken,
|
|
2553
|
+
async function executeTool(rawName, input, apiKey, authToken, anchor = {}) {
|
|
2576
2554
|
const name = normalizeToolName(rawName);
|
|
2577
2555
|
const cap = RUNEYA_CAPABILITIES.find((c) => c.name === name);
|
|
2578
2556
|
if (!cap) throw new Error(`Unknown tool: ${name}`);
|
|
@@ -2590,7 +2568,7 @@ async function executeTool(rawName, input, apiKey, authToken, anchor2 = {}) {
|
|
|
2590
2568
|
throw new Error(`No '${action}' permission for service ${serviceId}`);
|
|
2591
2569
|
}
|
|
2592
2570
|
}
|
|
2593
|
-
const params = applyProjectAnchor(cap, toRawParams(input, cap),
|
|
2571
|
+
const params = applyProjectAnchor(cap, toRawParams(input, cap), anchor);
|
|
2594
2572
|
const baseUrl = `http://localhost:${env.PORT}`;
|
|
2595
2573
|
return runCapability(cap, baseUrl, params, authToken);
|
|
2596
2574
|
}
|
|
@@ -2889,7 +2867,7 @@ function buildServerBuiltins(input) {
|
|
|
2889
2867
|
}
|
|
2890
2868
|
|
|
2891
2869
|
// ../server/src/trpc/routers/service.ts
|
|
2892
|
-
import { isAbsolute
|
|
2870
|
+
import { isAbsolute } from "path";
|
|
2893
2871
|
|
|
2894
2872
|
// ../server/src/services/attach-service.ts
|
|
2895
2873
|
async function attachServiceToProject(target, serviceId) {
|
|
@@ -2942,7 +2920,7 @@ async function resolveServiceVariables(service, opts = {}) {
|
|
|
2942
2920
|
const project = projects.find((p) => p.serviceIds.includes(service.id));
|
|
2943
2921
|
let resolvedService = service;
|
|
2944
2922
|
const anchored = await resolveWorkspaceCwd({ serviceId: service.id });
|
|
2945
|
-
if (anchored !== (service.cwd ?? "").trim() &&
|
|
2923
|
+
if (anchored !== (service.cwd ?? "").trim() && isAbsolute(anchored)) {
|
|
2946
2924
|
resolvedService = { ...resolvedService, resolvedCwd: anchored };
|
|
2947
2925
|
}
|
|
2948
2926
|
try {
|
|
@@ -3475,7 +3453,7 @@ var scenarioStore = new ScenarioStore();
|
|
|
3475
3453
|
|
|
3476
3454
|
// ../server/src/services/scenario-run-store.ts
|
|
3477
3455
|
import { mkdir as mkdir3, rm, readFile as readFile4 } from "fs/promises";
|
|
3478
|
-
import { join as
|
|
3456
|
+
import { join as join4 } from "path";
|
|
3479
3457
|
function sanitizeSlug(value) {
|
|
3480
3458
|
return value.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "").slice(0, 60) || "member";
|
|
3481
3459
|
}
|
|
@@ -3516,8 +3494,8 @@ var ScenarioRunStore = class _ScenarioRunStore {
|
|
|
3516
3494
|
"- Use read-only references from linked upstream files as context.",
|
|
3517
3495
|
""
|
|
3518
3496
|
].join("\n");
|
|
3519
|
-
await atomicWriteSecure(
|
|
3520
|
-
await atomicWriteSecure(
|
|
3497
|
+
await atomicWriteSecure(join4(dir, "README.md"), overview);
|
|
3498
|
+
await atomicWriteSecure(join4(dir, "USER_REQUEST.md"), `# User request
|
|
3521
3499
|
|
|
3522
3500
|
${userInput.trim() || "(empty)"}
|
|
3523
3501
|
`);
|
|
@@ -3543,7 +3521,7 @@ ${userInput.trim() || "(empty)"}
|
|
|
3543
3521
|
"- Waiting for assignment.",
|
|
3544
3522
|
""
|
|
3545
3523
|
].join("\n");
|
|
3546
|
-
await atomicWriteSecure(
|
|
3524
|
+
await atomicWriteSecure(join4(dir, fileName), content);
|
|
3547
3525
|
}
|
|
3548
3526
|
}
|
|
3549
3527
|
async deleteRunDir(conversationId) {
|
|
@@ -3611,18 +3589,18 @@ ${userInput.trim() || "(empty)"}
|
|
|
3611
3589
|
...Object.keys(runState.nodeAgentIds).length > 0 ? { nodeAgentIds: { ...runState.nodeAgentIds } } : {},
|
|
3612
3590
|
...Object.keys(runState.waitingInputs).length > 0 ? { waitingInputs: { ...runState.waitingInputs } } : {}
|
|
3613
3591
|
};
|
|
3614
|
-
await atomicWriteJsonSecure(
|
|
3592
|
+
await atomicWriteJsonSecure(join4(dir, "run-state.json"), data);
|
|
3615
3593
|
} catch {
|
|
3616
3594
|
}
|
|
3617
3595
|
}
|
|
3618
3596
|
async loadPersistedRunState(conversationId) {
|
|
3619
3597
|
const dir = this.getRunDir(conversationId);
|
|
3620
|
-
return readJsonFileSafe(
|
|
3598
|
+
return readJsonFileSafe(join4(dir, "run-state.json"));
|
|
3621
3599
|
}
|
|
3622
3600
|
async readUserRequest(conversationId) {
|
|
3623
3601
|
try {
|
|
3624
3602
|
const dir = this.getRunDir(conversationId);
|
|
3625
|
-
const content = await readFile4(
|
|
3603
|
+
const content = await readFile4(join4(dir, "USER_REQUEST.md"), "utf-8");
|
|
3626
3604
|
return content.replace(/^#\s*User request\s*\n+/, "").trim() || null;
|
|
3627
3605
|
} catch {
|
|
3628
3606
|
return null;
|
|
@@ -3631,7 +3609,7 @@ ${userInput.trim() || "(empty)"}
|
|
|
3631
3609
|
async readReadme(conversationId) {
|
|
3632
3610
|
try {
|
|
3633
3611
|
const dir = this.getRunDir(conversationId);
|
|
3634
|
-
return await readFile4(
|
|
3612
|
+
return await readFile4(join4(dir, "README.md"), "utf-8");
|
|
3635
3613
|
} catch {
|
|
3636
3614
|
return null;
|
|
3637
3615
|
}
|
|
@@ -3640,14 +3618,14 @@ ${userInput.trim() || "(empty)"}
|
|
|
3640
3618
|
const dir = this.getRunDir(conversationId);
|
|
3641
3619
|
await mkdir3(dir, { recursive: true });
|
|
3642
3620
|
await atomicWriteJsonSecure(
|
|
3643
|
-
|
|
3621
|
+
join4(dir, _ScenarioRunStore.SCENARIO_SNAPSHOT_FILE),
|
|
3644
3622
|
scenario,
|
|
3645
3623
|
true
|
|
3646
3624
|
);
|
|
3647
3625
|
}
|
|
3648
3626
|
async loadScenarioSnapshot(conversationId) {
|
|
3649
3627
|
const dir = this.getRunDir(conversationId);
|
|
3650
|
-
return readJsonFileSafe(
|
|
3628
|
+
return readJsonFileSafe(join4(dir, _ScenarioRunStore.SCENARIO_SNAPSHOT_FILE));
|
|
3651
3629
|
}
|
|
3652
3630
|
};
|
|
3653
3631
|
var scenarioRunStore = new ScenarioRunStore();
|
|
@@ -3704,7 +3682,7 @@ async function vaultOfProject(projectId) {
|
|
|
3704
3682
|
import { randomUUID as randomUUID3 } from "crypto";
|
|
3705
3683
|
import { mkdir as mkdir4, writeFile as writeFile2, readFile as readFile5, unlink as unlink2, readdir as readdir3 } from "fs/promises";
|
|
3706
3684
|
import { existsSync as existsSync2 } from "fs";
|
|
3707
|
-
import { join as
|
|
3685
|
+
import { join as join5, extname, resolve, sep } from "path";
|
|
3708
3686
|
var ALLOWED_MIME_TYPES = /* @__PURE__ */ new Set([
|
|
3709
3687
|
"image/png",
|
|
3710
3688
|
"image/jpeg",
|
|
@@ -3741,7 +3719,7 @@ var ImageStorageService = class {
|
|
|
3741
3719
|
const imageId = randomUUID3();
|
|
3742
3720
|
const safeExt = ext.replace(/[^a-z.]/g, "");
|
|
3743
3721
|
const fileName = `${imageId}${safeExt}`;
|
|
3744
|
-
const filePath =
|
|
3722
|
+
const filePath = join5(this.dir, fileName);
|
|
3745
3723
|
const resolvedPath = resolve(filePath);
|
|
3746
3724
|
const resolvedDir = resolve(this.dir);
|
|
3747
3725
|
if (resolvedPath !== resolvedDir && !resolvedPath.startsWith(resolvedDir + sep)) {
|
|
@@ -3767,7 +3745,7 @@ var ImageStorageService = class {
|
|
|
3767
3745
|
const files = await readdir3(this.dir);
|
|
3768
3746
|
const metaFile = files.find((f) => f.startsWith(imageId) && f.endsWith(".meta.json"));
|
|
3769
3747
|
if (!metaFile) return null;
|
|
3770
|
-
const raw = JSON.parse(await readFile5(
|
|
3748
|
+
const raw = JSON.parse(await readFile5(join5(this.dir, metaFile), "utf-8"));
|
|
3771
3749
|
if (expectedContextId !== void 0 && raw.contextId !== expectedContextId) return null;
|
|
3772
3750
|
if (!existsSync2(raw.filePath)) return null;
|
|
3773
3751
|
return { filePath: raw.filePath, mimeType: raw.mimeType, contextId: raw.contextId };
|
|
@@ -3793,7 +3771,7 @@ var ImageStorageService = class {
|
|
|
3793
3771
|
await Promise.all(
|
|
3794
3772
|
files.filter((f) => f.endsWith(".meta.json")).map(async (file) => {
|
|
3795
3773
|
try {
|
|
3796
|
-
const raw = JSON.parse(await readFile5(
|
|
3774
|
+
const raw = JSON.parse(await readFile5(join5(this.dir, file), "utf-8"));
|
|
3797
3775
|
if (raw.contextId === contextId) {
|
|
3798
3776
|
await unlink2(raw.filePath).catch(() => {
|
|
3799
3777
|
});
|
|
@@ -3823,7 +3801,7 @@ var ImageStorageService = class {
|
|
|
3823
3801
|
for (const file of files) {
|
|
3824
3802
|
if (!file.endsWith(".meta.json")) continue;
|
|
3825
3803
|
try {
|
|
3826
|
-
const raw = JSON.parse(await readFile5(
|
|
3804
|
+
const raw = JSON.parse(await readFile5(join5(this.dir, file), "utf-8"));
|
|
3827
3805
|
if (now - raw.createdAt > ttlMs) expired.push(raw);
|
|
3828
3806
|
} catch {
|
|
3829
3807
|
}
|
|
@@ -3893,7 +3871,7 @@ import { TRPCError as TRPCError3 } from "@trpc/server";
|
|
|
3893
3871
|
|
|
3894
3872
|
// ../server/src/services/cloud-session-store.ts
|
|
3895
3873
|
import { readFile as readFile6, writeFile as writeFile3, mkdir as mkdir5, chmod as chmod2, unlink as unlink3 } from "fs/promises";
|
|
3896
|
-
import { dirname as
|
|
3874
|
+
import { dirname as dirname2 } from "path";
|
|
3897
3875
|
import { randomBytes as randomBytes2, createHash, timingSafeEqual as timingSafeEqual2 } from "crypto";
|
|
3898
3876
|
var FILENAME2 = "cloud-session.json";
|
|
3899
3877
|
var STATE_TTL_MS = 5 * 60 * 1e3;
|
|
@@ -4000,7 +3978,7 @@ var CloudSessionStore = class {
|
|
|
4000
3978
|
}
|
|
4001
3979
|
async save() {
|
|
4002
3980
|
const filePath = await this.getFilePath();
|
|
4003
|
-
await mkdir5(
|
|
3981
|
+
await mkdir5(dirname2(filePath), { recursive: true });
|
|
4004
3982
|
const payload = { version: 2, accounts: this.accounts };
|
|
4005
3983
|
const tmpPath = filePath + ".tmp";
|
|
4006
3984
|
await writeFile3(tmpPath, JSON.stringify(payload, null, 2), "utf-8");
|
|
@@ -4142,7 +4120,7 @@ var cloudSessionStore = new CloudSessionStore();
|
|
|
4142
4120
|
// ../server/src/services/lan-mode.ts
|
|
4143
4121
|
import { networkInterfaces } from "os";
|
|
4144
4122
|
import { readFile as readFile7, writeFile as writeFile4, mkdir as mkdir6 } from "fs/promises";
|
|
4145
|
-
import { join as
|
|
4123
|
+
import { join as join6 } from "path";
|
|
4146
4124
|
import { z as z7 } from "zod";
|
|
4147
4125
|
var LOOPBACK2 = "127.0.0.1";
|
|
4148
4126
|
var ANY = "0.0.0.0";
|
|
@@ -4155,7 +4133,7 @@ function instanceKey() {
|
|
|
4155
4133
|
return env.DATA_DIR;
|
|
4156
4134
|
}
|
|
4157
4135
|
function networkFilePath() {
|
|
4158
|
-
return
|
|
4136
|
+
return join6(machineRoot(), NETWORK_FILE);
|
|
4159
4137
|
}
|
|
4160
4138
|
async function readFileState() {
|
|
4161
4139
|
try {
|
|
@@ -4273,12 +4251,12 @@ function getCloudApiUrl() {
|
|
|
4273
4251
|
return (env.CLOUD_URL ?? DEFAULT_CLOUD_API_URL).replace(/\/+$/, "");
|
|
4274
4252
|
}
|
|
4275
4253
|
async function orgCloudUrl(orgId) {
|
|
4276
|
-
const { readOrgClouds } = await import("./vault-resolver-
|
|
4254
|
+
const { readOrgClouds } = await import("./vault-resolver-B5P2OUI5.js");
|
|
4277
4255
|
const clouds = await readOrgClouds();
|
|
4278
4256
|
return (clouds[orgId] ?? getCloudApiUrl()).replace(/\/+$/, "");
|
|
4279
4257
|
}
|
|
4280
4258
|
async function accountForOrg(orgId) {
|
|
4281
|
-
const { readOrgAccounts, readOrgClouds } = await import("./vault-resolver-
|
|
4259
|
+
const { readOrgAccounts, readOrgClouds } = await import("./vault-resolver-B5P2OUI5.js");
|
|
4282
4260
|
const [stampedAccounts, stampedClouds, accounts] = await Promise.all([
|
|
4283
4261
|
readOrgAccounts(),
|
|
4284
4262
|
readOrgClouds(),
|
|
@@ -4293,6 +4271,19 @@ async function accountForOrg(orgId) {
|
|
|
4293
4271
|
function getCloudAppUrl() {
|
|
4294
4272
|
return (env.CLOUD_APP_URL ?? DEFAULT_CLOUD_APP_URL).replace(/\/+$/, "");
|
|
4295
4273
|
}
|
|
4274
|
+
function cloudAppUrlFor(viewerOrigin) {
|
|
4275
|
+
const base = getCloudAppUrl();
|
|
4276
|
+
try {
|
|
4277
|
+
const app = new URL(base);
|
|
4278
|
+
const viewer = new URL(viewerOrigin);
|
|
4279
|
+
const loopback = (h) => h === "localhost" || h === "127.0.0.1" || h === "[::1]";
|
|
4280
|
+
if (!loopback(app.hostname) || loopback(viewer.hostname)) return base;
|
|
4281
|
+
app.hostname = viewer.hostname;
|
|
4282
|
+
return app.toString().replace(/\/+$/, "");
|
|
4283
|
+
} catch {
|
|
4284
|
+
return base;
|
|
4285
|
+
}
|
|
4286
|
+
}
|
|
4296
4287
|
var CloudAmbiguousAccountError = class extends Error {
|
|
4297
4288
|
code = "CLOUD_AMBIGUOUS_ACCOUNT";
|
|
4298
4289
|
constructor() {
|
|
@@ -4445,7 +4436,7 @@ var cloudAuthRouter = router({
|
|
|
4445
4436
|
});
|
|
4446
4437
|
}
|
|
4447
4438
|
const state = cloudSessionStore.createState(input.returnTo);
|
|
4448
|
-
const url = `${
|
|
4439
|
+
const url = `${cloudAppUrlFor(input.returnTo)}/link-local?callback=${encodeURIComponent(callback)}&state=${encodeURIComponent(state)}`;
|
|
4449
4440
|
return { url };
|
|
4450
4441
|
}),
|
|
4451
4442
|
/**
|
|
@@ -4482,7 +4473,7 @@ var cloudAuthRouter = router({
|
|
|
4482
4473
|
* du projet ouvert, sous quel compte il se synchronise.
|
|
4483
4474
|
*/
|
|
4484
4475
|
accounts: protectedProcedure.query(async () => {
|
|
4485
|
-
const { readOrgAccounts } = await import("./vault-resolver-
|
|
4476
|
+
const { readOrgAccounts } = await import("./vault-resolver-B5P2OUI5.js");
|
|
4486
4477
|
return { accounts: await cloudSessionStore.list(), orgAccounts: await readOrgAccounts() };
|
|
4487
4478
|
}),
|
|
4488
4479
|
/** The cloud session (user + org), fetched with the stored token. */
|
|
@@ -4500,7 +4491,7 @@ var cloudAuthRouter = router({
|
|
|
4500
4491
|
const identity = await readCloudIdentity(account.cloudUrl, await cloudSessionStore.getToken(accountId) ?? "");
|
|
4501
4492
|
if (identity) {
|
|
4502
4493
|
const settled = await cloudSessionStore.describe(accountId, identity);
|
|
4503
|
-
const { renameOrgAccount } = await import("./vault-resolver-
|
|
4494
|
+
const { renameOrgAccount } = await import("./vault-resolver-B5P2OUI5.js");
|
|
4504
4495
|
await renameOrgAccount(accountId, settled);
|
|
4505
4496
|
}
|
|
4506
4497
|
}
|
|
@@ -4841,6 +4832,17 @@ var KanbanStore = class {
|
|
|
4841
4832
|
});
|
|
4842
4833
|
return res.ok;
|
|
4843
4834
|
}
|
|
4835
|
+
/**
|
|
4836
|
+
* Le compte cloud qui porte un tableau donné.
|
|
4837
|
+
*
|
|
4838
|
+
* Exposé pour les appels qui ne passent pas par ce magasin — le
|
|
4839
|
+
* téléchargement d'une pièce jointe tire les octets par `cloudFetch` — mais
|
|
4840
|
+
* qui relèvent du même tableau, et doivent donc en emprunter le compte au
|
|
4841
|
+
* lieu d'exiger un poste à compte unique.
|
|
4842
|
+
*/
|
|
4843
|
+
accountForBoard(boardId) {
|
|
4844
|
+
return accountOfBoard(boardId);
|
|
4845
|
+
}
|
|
4844
4846
|
/**
|
|
4845
4847
|
* Les membres de l'organisation — sans quoi assigner reviendrait à deviner
|
|
4846
4848
|
* un identifiant.
|
|
@@ -4927,6 +4929,33 @@ var KanbanStore = class {
|
|
|
4927
4929
|
});
|
|
4928
4930
|
return res.ok;
|
|
4929
4931
|
}
|
|
4932
|
+
/**
|
|
4933
|
+
* Les références : la même carte posée sur un autre tableau. La carte reste
|
|
4934
|
+
* chez elle ; `boardId` est le tableau où on la pose, ou d'où on la retire.
|
|
4935
|
+
*/
|
|
4936
|
+
async cardPlacements(boardId, cardId) {
|
|
4937
|
+
const res = await callCloud(
|
|
4938
|
+
`/kanban/card-placement/list?boardId=${encodeURIComponent(boardId)}&cardId=${encodeURIComponent(cardId)}`,
|
|
4939
|
+
await scopeOfBoard(boardId)
|
|
4940
|
+
);
|
|
4941
|
+
return res.data?.placements ?? [];
|
|
4942
|
+
}
|
|
4943
|
+
async placeCard(boardId, cardId, column) {
|
|
4944
|
+
const res = await callCloud("/kanban/card-placement/add", {
|
|
4945
|
+
method: "POST",
|
|
4946
|
+
body: { boardId, cardId, column },
|
|
4947
|
+
...await scopeOfBoard(boardId)
|
|
4948
|
+
});
|
|
4949
|
+
return { ok: res.ok, reason: res.reason };
|
|
4950
|
+
}
|
|
4951
|
+
async unplaceCard(boardId, cardId) {
|
|
4952
|
+
const res = await callCloud("/kanban/card-placement/remove", {
|
|
4953
|
+
method: "POST",
|
|
4954
|
+
body: { boardId, cardId },
|
|
4955
|
+
...await scopeOfBoard(boardId)
|
|
4956
|
+
});
|
|
4957
|
+
return res.ok;
|
|
4958
|
+
}
|
|
4930
4959
|
async create(input) {
|
|
4931
4960
|
const organizationId = await resolveOrganizationId();
|
|
4932
4961
|
if (!organizationId) return null;
|
|
@@ -5099,7 +5128,7 @@ function generateKanbanSystemPrompt(board, cardId, history, links) {
|
|
|
5099
5128
|
lines.push(`- \`${f.id}\` \u2014 ${f.name} (${f.contentType}, ${formatSize(f.size)})`);
|
|
5100
5129
|
}
|
|
5101
5130
|
lines.push("");
|
|
5102
|
-
lines.push(
|
|
5131
|
+
lines.push(`> Ces fichiers ne sont **pas** dans ce prompt. Appelle \`kanban_download_attachment(attachmentId, boardId: "${board.id}")\` pour en r\xE9cup\xE9rer un sur le disque, puis ouvre le chemin renvoy\xE9 avec tes outils de lecture de fichiers. Le \`boardId\` dit sous quel compte cloud le demander : passe-le toujours.`);
|
|
5103
5132
|
lines.push("");
|
|
5104
5133
|
}
|
|
5105
5134
|
}
|
|
@@ -5127,9 +5156,10 @@ function generateKanbanSystemPrompt(board, cardId, history, links) {
|
|
|
5127
5156
|
lines.push("- `kanban_move_card(boardId, cardId, targetColumn)` \u2014 D\xE9placer la carte vers une autre colonne");
|
|
5128
5157
|
lines.push("- `kanban_add_comment(boardId, cardId, comment)` \u2014 Ajouter un commentaire sur la carte");
|
|
5129
5158
|
lines.push("- `kanban_get_card_comments(boardId, cardId)` \u2014 **Relire** le fil de commentaires \xE0 jour");
|
|
5130
|
-
lines.push("- `kanban_download_attachment(attachmentId)` \u2014 T\xE9l\xE9charger une pi\xE8ce jointe et obtenir son chemin local");
|
|
5159
|
+
lines.push("- `kanban_download_attachment(attachmentId, boardId)` \u2014 T\xE9l\xE9charger une pi\xE8ce jointe et obtenir son chemin local");
|
|
5131
5160
|
lines.push("- `kanban_get_card_links(boardId)` \u2014 Lire la filiation des cartes du tableau (parent \u2194 sous-cartes)");
|
|
5132
5161
|
lines.push("- `kanban_set_card_parent(boardId, cardId, parentCardId?)` \u2014 Rattacher une carte \xE0 une carte parente, ou l'en d\xE9tacher");
|
|
5162
|
+
lines.push("- `kanban_place_card(boardId, cardId, column)` \u2014 Poser une carte existante sur un autre tableau, sans la copier (r\xE9f\xE9rence)");
|
|
5133
5163
|
lines.push("- `kanban_get_card_conversations(boardId, cardId)` \u2014 Lire les conversations de support (Intercom\u2026) li\xE9es \xE0 la carte \u2014 elles ne sont pas dans les commentaires");
|
|
5134
5164
|
lines.push("- `kanban_search_conversations(boardId, query)` puis `kanban_link_conversation(boardId, cardId, connectionId, externalId)` \u2014 Trouver une conversation de support et la lier \xE0 la carte (lecture seule chez le fournisseur)");
|
|
5135
5165
|
lines.push("");
|
|
@@ -5273,6 +5303,10 @@ function tailTranscript(opts) {
|
|
|
5273
5303
|
let pendingBuf = "";
|
|
5274
5304
|
let reading = false;
|
|
5275
5305
|
let queuedRead = false;
|
|
5306
|
+
let markReady;
|
|
5307
|
+
const ready = new Promise((resolve2) => {
|
|
5308
|
+
markReady = resolve2;
|
|
5309
|
+
});
|
|
5276
5310
|
const cleanup = async () => {
|
|
5277
5311
|
stopped = true;
|
|
5278
5312
|
if (watcher) {
|
|
@@ -5342,6 +5376,7 @@ function tailTranscript(opts) {
|
|
|
5342
5376
|
if (startAtEnd) {
|
|
5343
5377
|
offset = (await fh.stat()).size;
|
|
5344
5378
|
}
|
|
5379
|
+
markReady();
|
|
5345
5380
|
await readMore();
|
|
5346
5381
|
if (stopped) return;
|
|
5347
5382
|
watcher = watch(path, { persistent: false }, () => {
|
|
@@ -5364,19 +5399,21 @@ function tailTranscript(opts) {
|
|
|
5364
5399
|
} finally {
|
|
5365
5400
|
signal.removeEventListener("abort", onAbort);
|
|
5366
5401
|
await cleanup();
|
|
5402
|
+
markReady();
|
|
5367
5403
|
}
|
|
5368
5404
|
})();
|
|
5369
5405
|
return {
|
|
5370
5406
|
stop: () => {
|
|
5371
5407
|
void cleanup();
|
|
5372
5408
|
},
|
|
5373
|
-
whenDone
|
|
5409
|
+
whenDone,
|
|
5410
|
+
ready
|
|
5374
5411
|
};
|
|
5375
5412
|
}
|
|
5376
5413
|
|
|
5377
5414
|
// ../server/src/services/ai-runners/claude-pty-runner.ts
|
|
5378
5415
|
async function getAgentManager() {
|
|
5379
|
-
const { agentManager: agentManager2 } = await import("./agent-manager-
|
|
5416
|
+
const { agentManager: agentManager2 } = await import("./agent-manager-NAGIMH2T.js");
|
|
5380
5417
|
return agentManager2;
|
|
5381
5418
|
}
|
|
5382
5419
|
function buildPtyArgs(params, sessionId, opts) {
|
|
@@ -6070,7 +6107,7 @@ async function shutdownCodexAppServer() {
|
|
|
6070
6107
|
}
|
|
6071
6108
|
}
|
|
6072
6109
|
async function getAgentManager2() {
|
|
6073
|
-
const { agentManager: agentManager2 } = await import("./agent-manager-
|
|
6110
|
+
const { agentManager: agentManager2 } = await import("./agent-manager-NAGIMH2T.js");
|
|
6074
6111
|
return agentManager2;
|
|
6075
6112
|
}
|
|
6076
6113
|
function parseRuneyaCurlCommand(command) {
|
|
@@ -6535,7 +6572,7 @@ ${runeya_ai_vars}` : "";
|
|
|
6535
6572
|
|
|
6536
6573
|
${context}${envSection}`;
|
|
6537
6574
|
}
|
|
6538
|
-
async function* runAnthropic(client, model, system, initialMessages, apiKey, authToken, signal,
|
|
6575
|
+
async function* runAnthropic(client, model, system, initialMessages, apiKey, authToken, signal, anchor = {}) {
|
|
6539
6576
|
const messages = [...initialMessages];
|
|
6540
6577
|
const MAX_TOOL_ROUNDS = 10;
|
|
6541
6578
|
for (let round = 0; round < MAX_TOOL_ROUNDS; round++) {
|
|
@@ -6592,7 +6629,7 @@ async function* runAnthropic(client, model, system, initialMessages, apiKey, aut
|
|
|
6592
6629
|
let result;
|
|
6593
6630
|
let isError = false;
|
|
6594
6631
|
try {
|
|
6595
|
-
result = await executeTool(block.name, block.input, apiKey, authToken,
|
|
6632
|
+
result = await executeTool(block.name, block.input, apiKey, authToken, anchor);
|
|
6596
6633
|
} catch (err) {
|
|
6597
6634
|
result = err.message;
|
|
6598
6635
|
isError = true;
|
|
@@ -6609,7 +6646,7 @@ async function* runAnthropic(client, model, system, initialMessages, apiKey, aut
|
|
|
6609
6646
|
}
|
|
6610
6647
|
yield { type: "done", text: "" };
|
|
6611
6648
|
}
|
|
6612
|
-
async function* runOpenAI(client, model, initialMessages, apiKey, authToken, signal,
|
|
6649
|
+
async function* runOpenAI(client, model, initialMessages, apiKey, authToken, signal, anchor = {}) {
|
|
6613
6650
|
const messages = [...initialMessages];
|
|
6614
6651
|
const MAX_TOOL_ROUNDS = 10;
|
|
6615
6652
|
for (let round = 0; round < MAX_TOOL_ROUNDS; round++) {
|
|
@@ -6660,7 +6697,7 @@ async function* runOpenAI(client, model, initialMessages, apiKey, authToken, sig
|
|
|
6660
6697
|
let result;
|
|
6661
6698
|
let isError = false;
|
|
6662
6699
|
try {
|
|
6663
|
-
result = await executeTool(tc.name, input, apiKey, authToken,
|
|
6700
|
+
result = await executeTool(tc.name, input, apiKey, authToken, anchor);
|
|
6664
6701
|
} catch (err) {
|
|
6665
6702
|
result = err.message;
|
|
6666
6703
|
isError = true;
|
|
@@ -7014,7 +7051,9 @@ var chatRouter = router({
|
|
|
7014
7051
|
// The project the conversation is about: only the caller knows which
|
|
7015
7052
|
// one it is looking at.
|
|
7016
7053
|
projectId: Id128Schema.optional(),
|
|
7017
|
-
orgId: z9.string().max(128).nullable().optional()
|
|
7054
|
+
orgId: z9.string().max(128).nullable().optional(),
|
|
7055
|
+
// L'agent où la conversation travaille. Absent = agent par défaut.
|
|
7056
|
+
agentId: Id128Schema.optional()
|
|
7018
7057
|
})).mutation(async ({ input }) => {
|
|
7019
7058
|
let scenario = null;
|
|
7020
7059
|
if (input.scenarioId) {
|
|
@@ -7026,6 +7065,10 @@ var chatRouter = router({
|
|
|
7026
7065
|
}
|
|
7027
7066
|
const machineSettings = await settingsManager.getSettings();
|
|
7028
7067
|
const companionByDefault = machineSettings.companion?.enabledByDefault ?? false;
|
|
7068
|
+
const extra = {
|
|
7069
|
+
...input.agentId ? { agentId: input.agentId } : {},
|
|
7070
|
+
...companionByDefault ? { companionEnabled: true } : {}
|
|
7071
|
+
};
|
|
7029
7072
|
const conv = await conversationStore.create(
|
|
7030
7073
|
input.title,
|
|
7031
7074
|
input.isCli ?? false,
|
|
@@ -7037,7 +7080,7 @@ var chatRouter = router({
|
|
|
7037
7080
|
input.providerId,
|
|
7038
7081
|
input.projectId,
|
|
7039
7082
|
input.orgId,
|
|
7040
|
-
|
|
7083
|
+
Object.keys(extra).length > 0 ? extra : void 0
|
|
7041
7084
|
);
|
|
7042
7085
|
if (scenario) {
|
|
7043
7086
|
await scenarioRunStore.initializeConversationWorkspace(
|
|
@@ -7525,7 +7568,7 @@ ${input.prompt}` : input.prompt;
|
|
|
7525
7568
|
}
|
|
7526
7569
|
const conv = await conversationStore.get(input.conversationId);
|
|
7527
7570
|
const convRef = conv ? await conversationStore.projectRefOf(conv) : null;
|
|
7528
|
-
const
|
|
7571
|
+
const anchor = { projectId: convRef?.id, orgId: convRef?.orgId ?? void 0 };
|
|
7529
7572
|
const active = await getActiveProvider(conv?.providerId, convRef?.orgId ?? void 0);
|
|
7530
7573
|
if (!active) {
|
|
7531
7574
|
throw new TRPCError4({
|
|
@@ -7574,7 +7617,7 @@ ${input.prompt}` : input.prompt;
|
|
|
7574
7617
|
}
|
|
7575
7618
|
return { role: m.role, content: m.content };
|
|
7576
7619
|
});
|
|
7577
|
-
gen = runAnthropic(client, model, system, msgs, apiKey, authToken, apiSignal,
|
|
7620
|
+
gen = runAnthropic(client, model, system, msgs, apiKey, authToken, apiSignal, anchor);
|
|
7578
7621
|
} else if (provider.provider in OPENAI_COMPAT_BASE_URLS) {
|
|
7579
7622
|
const baseURL = OPENAI_COMPAT_BASE_URLS[provider.provider];
|
|
7580
7623
|
const client = new OpenAI2({ apiKey: plaintextKey || "ollama", baseURL });
|
|
@@ -7593,7 +7636,7 @@ ${input.prompt}` : input.prompt;
|
|
|
7593
7636
|
return { role: m.role, content: m.content };
|
|
7594
7637
|
})
|
|
7595
7638
|
];
|
|
7596
|
-
gen = runOpenAI(client, model, msgs, apiKey, authToken, apiSignal,
|
|
7639
|
+
gen = runOpenAI(client, model, msgs, apiKey, authToken, apiSignal, anchor);
|
|
7597
7640
|
} else {
|
|
7598
7641
|
activeSessionRegistry.pushEvent(input.conversationId, { type: "error", message: `Provider "${provider.provider}" is not supported.` });
|
|
7599
7642
|
activeSessionRegistry.pushEvent(input.conversationId, { type: "done", text: "" });
|
|
@@ -8061,9 +8104,6 @@ export {
|
|
|
8061
8104
|
isShareable,
|
|
8062
8105
|
logParserStore,
|
|
8063
8106
|
buildServerBuiltins,
|
|
8064
|
-
resolveWorkspaceCwd,
|
|
8065
|
-
resolveAgentCwd,
|
|
8066
|
-
resolveConversationCwd,
|
|
8067
8107
|
resolveEffectiveAgentId,
|
|
8068
8108
|
resolveServiceVariables,
|
|
8069
8109
|
serviceRouter,
|
|
@@ -8102,4 +8142,4 @@ export {
|
|
|
8102
8142
|
startCliSession,
|
|
8103
8143
|
chatRouter
|
|
8104
8144
|
};
|
|
8105
|
-
//# sourceMappingURL=chunk-
|
|
8145
|
+
//# sourceMappingURL=chunk-WNCXZ6E7.js.map
|