@runeya/runeya 2.0.101 → 2.0.102
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 +170 -161
- package/agent/index.js.map +1 -1
- package/{chat-RWOZHXBX.js → chat-OXRRBDB3.js} +4 -3
- package/{node-B4T3JMM3.js → chunk-B7MABGQN.js} +51 -4
- package/chunk-B7MABGQN.js.map +1 -0
- package/{chunk-SP3IC2TR.js → chunk-BDVQB5RK.js} +22 -206
- package/chunk-BDVQB5RK.js.map +1 -0
- package/{chunk-TNBMCKQX.js → chunk-PSTMO7EE.js} +211 -10
- package/chunk-PSTMO7EE.js.map +1 -0
- package/{companion-QNW7XA6X.js → companion-JQGNL4U7.js} +4 -2
- package/index.js +2 -2
- package/node-ILM6MV56.js +21 -0
- package/node-ILM6MV56.js.map +1 -0
- package/package.json +1 -1
- package/{src-PF23DMAB.js → src-HZ2XO6TV.js} +15 -9
- package/src-HZ2XO6TV.js.map +1 -0
- package/web/assets/{AgentScalarChatInterface.vue-CpCuXAXu.js → AgentScalarChatInterface.vue-CxmPaQaj.js} +1 -1
- package/web/assets/{AgentTerminalPage-D8nMHtlG.js → AgentTerminalPage-Bbx4zyQY.js} +1 -1
- package/web/assets/AiChatPage-GPPQggxZ.js +1 -0
- package/web/assets/{AppLayout-Dq-1shm9.js → AppLayout-BuwGeA1p.js} +1 -1
- package/web/assets/{AuditPage-BjeeYf1P.js → AuditPage-CDsJsoKA.js} +1 -1
- package/web/assets/{CloudAccountPage-BWcXUmZ3.js → CloudAccountPage-BCP8icYZ.js} +1 -1
- package/web/assets/CloudAccountPage-DzpS3_gc.js +1 -0
- package/web/assets/{CloudMessagingPage-CN-Hkvzf.js → CloudMessagingPage-01hLQzZ5.js} +1 -1
- package/web/assets/{DashboardPage-30yBzA9Y.js → DashboardPage-CKo-sf8A.js} +1 -1
- package/web/assets/{DirectoryPickerDialog-BsYJrTG4.js → DirectoryPickerDialog-B1tSWoOM.js} +1 -1
- package/web/assets/{EditorIcon-BXS2-yX1.js → EditorIcon-C9XKLhc7.js} +1 -1
- package/web/assets/{EnvironmentForm--y9zfCDt.js → EnvironmentForm-bS48MK8k.js} +1 -1
- package/web/assets/{EnvironmentFormPage-BETc1RGi.js → EnvironmentFormPage-9yxN-uI3.js} +1 -1
- package/web/assets/{EnvironmentListPage-CC0Sj1bx.js → EnvironmentListPage-BbfptXAU.js} +1 -1
- package/web/assets/{KanbanBoardPage-BdM0Op1M.js → KanbanBoardPage-BWkqTc1a.js} +3 -3
- package/web/assets/{KanbanListPage-DM7RJqhx.js → KanbanListPage-GxI1nlON.js} +1 -1
- package/web/assets/{LaunchProjectPage-DXqYYycZ.js → LaunchProjectPage-DKMoGXIC.js} +1 -1
- package/web/assets/{LaunchServicesPage-DCgwv5Pt.js → LaunchServicesPage-6dfxPQMB.js} +1 -1
- package/web/assets/{LogViewer-CFSU-CNC.js → LogViewer-DAzGy_T2.js} +1 -1
- package/web/assets/{OrgKeyPrompt-DQGyKSjb.js → OrgKeyPrompt-CQ087D4g.js} +1 -1
- package/web/assets/{ProcessControls-98bxX4aW.js → ProcessControls-D8uc4x7M.js} +1 -1
- package/web/assets/{ProcessDetailPage-Bb_3RScY.js → ProcessDetailPage-BPxLPGeh.js} +1 -1
- package/web/assets/{ProcessMetrics-fCxhXJgd.js → ProcessMetrics-CBPR5ozp.js} +1 -1
- package/web/assets/{ProjectDetailPage-BNmbecE0.js → ProjectDetailPage-CnZ_CpVU.js} +1 -1
- package/web/assets/{ProjectListPage-v0JqfkPz.js → ProjectListPage-D8Svc5e3.js} +1 -1
- package/web/assets/{RandomJobTestPage-D8q-EREO.js → RandomJobTestPage-BdEiEnSi.js} +1 -1
- package/web/assets/{ScenarioEditorPage-D3EuMMBn.js → ScenarioEditorPage-COrL715B.js} +1 -1
- package/web/assets/{SendToChatDialog-D-x5Pn3F.js → SendToChatDialog-D8YB5RM6.js} +1 -1
- package/web/assets/{ServiceControlsBar-7zKkkVxM.js → ServiceControlsBar-BKwvqgHw.js} +1 -1
- package/web/assets/{ServiceDetailPage-jzYoqD5E.js → ServiceDetailPage-BmPRfQN6.js} +1 -1
- package/web/assets/{ServiceFormPage-DjvOpPyE.js → ServiceFormPage-rVvnwWkb.js} +1 -1
- package/web/assets/{SettingsPage-DKCbzYvF.js → SettingsPage-DmQB6t1_.js} +4 -4
- package/web/assets/{UnlockPage-Cb43bz4p.js → UnlockPage-BgVF3XMO.js} +1 -1
- package/web/assets/{VariablesTable-C3syeLAl.js → VariablesTable-D4_sssPN.js} +1 -1
- package/web/assets/{VaultMigrationPage-Cp-au3d7.js → VaultMigrationPage-BRZJnfVg.js} +1 -1
- package/web/assets/{VersionBadge-CXX3tlKI.js → VersionBadge-Df7iJWvF.js} +1 -1
- package/web/assets/WikiPage-UkaH8BqR.js +1 -0
- package/web/assets/{WikiView-ClZwZbal.js → WikiView-BQqP4b9A.js} +1 -1
- package/web/assets/{add-scalar-classes-D3kr5_fn.js → add-scalar-classes-B9WxxjAm.js} +3 -3
- package/web/assets/{autocomplete-AALxfd-8.js → autocomplete-CtIxw1IN.js} +1 -1
- package/web/assets/{basic-shape-diamond.svg-C4c3Deqh.js → basic-shape-diamond.svg-BErisM9Y.js} +1 -1
- package/web/assets/{basic-shape-hexagon.svg-DrH21BpW.js → basic-shape-hexagon.svg-yC7RoYpa.js} +1 -1
- package/web/assets/{basic-shape-primary-circle-ellipse-round.svg-DqIU3Cmf.js → basic-shape-primary-circle-ellipse-round.svg-DRmanUIO.js} +1 -1
- package/web/assets/{basic-shape-primary-square-rectangle.svg-B3gDug6x.js → basic-shape-primary-square-rectangle.svg-DxuoouSj.js} +1 -1
- package/web/assets/{basic-shape-shield.svg-DdNJhKim.js → basic-shape-shield.svg-Cy_Frn-W.js} +1 -1
- package/web/assets/{browser-IqQiUipW.js → browser-Dj3qxJqB.js} +1 -1
- package/web/assets/{browser-DlwaOVwW.js → browser-h0mxWbci.js} +1 -1
- package/web/assets/{card-q6s0jc6V.js → card-nJdNoKgd.js} +1 -1
- package/web/assets/{checkbox-BP6nucdt.js → checkbox-CTw-YDe_.js} +1 -1
- package/web/assets/{chip-zQCMXVbm.js → chip-DwSSTlaC.js} +1 -1
- package/web/assets/{client-BC-o8Mr9.js → client-DYNnTrNm.js} +1 -1
- package/web/assets/{cloud-chat.store-387arRb5.js → cloud-chat.store-_qILavCL.js} +1 -1
- package/web/assets/{cloud-session-yejC3TfS.js → cloud-session-Ml5g5J1-.js} +1 -1
- package/web/assets/{column-ClizzdF5.js → column-Bc4-F_tF.js} +1 -1
- package/web/assets/{computer-device-desktop-monitor.svg-D28gfKH3.js → computer-device-desktop-monitor.svg-TLZAKrIM.js} +1 -1
- package/web/assets/{computer-device-desktop.svg-BierhytR.js → computer-device-desktop.svg-YRcL_Qxn.js} +1 -1
- package/web/assets/{computer-device-laptop.svg-Buh46ofO.js → computer-device-laptop.svg-CZUEbqra.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung-back.svg-DWgP259U.js → computer-device-mobile-phone-android-samsung-back.svg-CcsmeFGb.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-android-samsung.svg-BlulLqG-.js → computer-device-mobile-phone-android-samsung.svg-CXjVvTBT.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x-back.svg-CwAgL_XU.js → computer-device-mobile-phone-iphone-x-back.svg-BQQXUoZZ.js} +1 -1
- package/web/assets/{computer-device-mobile-phone-iphone-x.svg-CGZk25hI.js → computer-device-mobile-phone-iphone-x.svg-CG8VbAP-.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet-touch.svg-BW41ZuCA.js → computer-device-mobile-tablet-touch.svg-DDMUt0S4.js} +1 -1
- package/web/assets/{computer-device-mobile-tablet.svg-BXG04cxV.js → computer-device-mobile-tablet.svg-CBXtF47n.js} +1 -1
- package/web/assets/{computer-device-network-ethernet-cat6.svg-BKUwbZI3.js → computer-device-network-ethernet-cat6.svg-ObjUhwds.js} +1 -1
- package/web/assets/{computer-device-network-lan-www.svg-o3B9PLqQ.js → computer-device-network-lan-www.svg-NGYEGuba.js} +1 -1
- package/web/assets/{computer-device-network-wifi-connection.svg-CWz616VA.js → computer-device-network-wifi-connection.svg-CSnNdKGm.js} +1 -1
- package/web/assets/{computer-device-network-wifi-router.svg-C_Uxv8x_.js → computer-device-network-wifi-router.svg-CG7iHt_n.js} +1 -1
- package/web/assets/{cssMode-trDHQWjr.js → cssMode-Bclh_xI1.js} +1 -1
- package/web/assets/{divider-ER7evOrG.js → divider-Bb31-CFf.js} +1 -1
- package/web/assets/{docx-preview-DaBMrB0t.js → docx-preview-seOy1U3d.js} +1 -1
- package/web/assets/{ecology-science-erlenmeyer-flask.svg-TilKtHh2.js → ecology-science-erlenmeyer-flask.svg-B8emvJ_p.js} +1 -1
- package/web/assets/{fieldset-BK4Kpi7y.js → fieldset-Czp1Leik.js} +1 -1
- package/web/assets/{freemarker2-CPBy2gHY.js → freemarker2-D87vjb6-.js} +1 -1
- package/web/assets/{handlebars-sFv_MRko.js → handlebars-CjY4u0vA.js} +1 -1
- package/web/assets/{html-CvDf5B_n.js → html-C5pOjLe-.js} +1 -1
- package/web/assets/{htmlMode-CKhs4g6W.js → htmlMode-CunB4Bjm.js} +1 -1
- package/web/assets/{image-flash-lightning.svg-CkgasY6E.js → image-flash-lightning.svg-7dRFt_k5.js} +1 -1
- package/web/assets/{image-picture-flower.svg-Csk-7jkE.js → image-picture-flower.svg-ATG6mf9B.js} +1 -1
- package/web/assets/{index-CdghDQiK.js → index-BMuqGGPP.js} +35 -35
- package/web/assets/{index-BmdsyJ54.css → index-DWQLzWm4.css} +1 -1
- package/web/assets/{interface-alert-exclamation-diamond.svg-rH1JAriw.js → interface-alert-exclamation-diamond.svg-DuAtIVtT.js} +1 -1
- package/web/assets/{interface-alert-exclamation-triangle-warning.svg-BuZLBc2z.js → interface-alert-exclamation-triangle-warning.svg-Bg9-FBLP.js} +1 -1
- package/web/assets/{interface-alert-information-circle.svg-D6i0hGVN.js → interface-alert-information-circle.svg-C5etvhA3.js} +1 -1
- package/web/assets/{interface-award-crown.svg-7Wu9-VKO.js → interface-award-crown.svg-zuAFLs7y.js} +1 -1
- package/web/assets/{interface-bookmark.svg-CkLVcfT6.js → interface-bookmark-tag.svg-C3EKMHOq.js} +1 -1
- package/web/assets/{interface-bookmark-tag.svg-CPiMqQ77.js → interface-bookmark.svg-CfBz0NE3.js} +1 -1
- package/web/assets/{interface-calendar-date-one.svg-CFSXAk1b.js → interface-calendar-date-one.svg-DGYz2Prk.js} +1 -1
- package/web/assets/{interface-content-book-open-pages.svg-CC4c9Opt.js → interface-content-book-open-pages.svg-DGiJpxy1.js} +1 -1
- package/web/assets/{interface-content-book-page.svg-DxpVNOOq.js → interface-content-book-page.svg-DydK46P0.js} +1 -1
- package/web/assets/{interface-content-file.svg-CTaWk4im.js → interface-content-file.svg-D0pUOvAN.js} +1 -1
- package/web/assets/{interface-content-folder.svg-uVUoz9w-.js → interface-content-folder.svg-DiJ3Pfaa.js} +1 -1
- package/web/assets/interface-content-folder.svg-bb6GV0G0.js +1 -0
- package/web/assets/{interface-copy-clipboard.svg-BZIxAN3r.js → interface-copy-clipboard.svg-Dl3aROYy.js} +1 -1
- package/web/assets/{interface-edit-attachment.svg-DDzPxeNm.js → interface-edit-attachment.svg-UmDFMIt5.js} +1 -1
- package/web/assets/{interface-edit-binocular.svg-CZsgbA--.js → interface-edit-binocular.svg-Bp_8Pfer.js} +1 -1
- package/web/assets/{interface-edit-magic-wand.svg-qmz7k4l6.js → interface-edit-magic-wand.svg-B2A8V7mt.js} +1 -1
- package/web/assets/{interface-edit-tool-paint-roller.svg-DWE25KT2.js → interface-edit-tool-paint-roller.svg-DKjdsVsS.js} +1 -1
- package/web/assets/{interface-edit-tool-pencil.svg-DpK1C2tO.js → interface-edit-tool-pencil.svg-DuUybI4h.js} +1 -1
- package/web/assets/{interface-favorite-award.svg-CLHMWnh1.js → interface-favorite-award.svg-DHeTFQv8.js} +1 -1
- package/web/assets/{interface-favorite-flag.svg-CHGIAa-e.js → interface-favorite-flag.svg-kKzUSQkq.js} +1 -1
- package/web/assets/{interface-favorite-heart.svg-ymL9Qidy.js → interface-favorite-heart.svg-CqMgA2mm.js} +1 -1
- package/web/assets/{interface-favorite-star.svg-C4JDKdUr.js → interface-favorite-star.svg-CuLj8HV6.js} +1 -1
- package/web/assets/{interface-favorite-stars-sparkles.svg-DRixMNWJ.js → interface-favorite-stars-sparkles.svg-lFQTnGOR.js} +1 -1
- package/web/assets/{interface-hierarchy-flowchart.svg-DozpERYh.js → interface-hierarchy-flowchart.svg-CBbliSZq.js} +1 -1
- package/web/assets/{interface-home-house.svg-DpUEVY7I.js → interface-home-house.svg-BoFlxzre.js} +1 -1
- package/web/assets/{interface-hyperlink.svg-BI9P67ny.js → interface-hyperlink.svg-DcKs1Vcm.js} +1 -1
- package/web/assets/{interface-lighting-brightness.svg-B6WWS4kG.js → interface-lighting-brightness.svg-BSNKEyEg.js} +1 -1
- package/web/assets/{interface-lock-closed.svg-BBQ9XM_j.js → interface-lock-closed.svg-DSP-B9Ze.js} +1 -1
- package/web/assets/{interface-lock-open-unlock.svg-GkTO8GmV.js → interface-lock-open-unlock.svg-Bzg-oBHY.js} +1 -1
- package/web/assets/{interface-login-key.svg--v2ZJH3Q.js → interface-login-key.svg-DG61Q1lR.js} +1 -1
- package/web/assets/{interface-search.svg-CidqkApV.js → interface-search.svg-CODjdPxd.js} +1 -1
- package/web/assets/{interface-setting-cog.svg-DVZePAV3.js → interface-setting-cog.svg-CgiaBO1E.js} +1 -1
- package/web/assets/{interface-share-megaphone-bullhorn.svg-BFn_RMqc.js → interface-share-megaphone-bullhorn.svg-DM0PsgtH.js} +1 -1
- package/web/assets/{interface-share-rocket.svg-BvWSz0s2.js → interface-share-rocket.svg-B0geTs35.js} +1 -1
- package/web/assets/{interface-share-satellite.svg-tqNCB74Z.js → interface-share-satellite.svg-v9Q6QwAp.js} +1 -1
- package/web/assets/{interface-share-space-ship.svg-BmB824fS.js → interface-share-space-ship.svg-CLdqgzgZ.js} +1 -1
- package/web/assets/{interface-share.svg-CBZLrrF9.js → interface-share.svg-Cx3VhLuj.js} +1 -1
- package/web/assets/{interface-signal-square.svg-C088p9NZ.js → interface-signal-square.svg-By_pQLw8.js} +1 -1
- package/web/assets/{interface-time-clock-circle.svg-DubKvXWQ.js → interface-time-clock-circle.svg-Co3P-TM3.js} +1 -1
- package/web/assets/{interface-time-hour-glass.svg-6GComyAL.js → interface-time-hour-glass.svg-BYSOzVeD.js} +1 -1
- package/web/assets/{interface-users-multiple.svg-ja6OEhK_.js → interface-users-multiple.svg-moFZaev3.js} +1 -1
- package/web/assets/{interface-weather-moon.svg-BnfLL03K.js → interface-weather-moon.svg-DhyTNivv.js} +1 -1
- package/web/assets/{javascript-DMRS72rt.js → javascript-B1fZNcy6.js} +1 -1
- package/web/assets/{jsonMode--8QdTWx_.js → jsonMode-BxZ6OjkS.js} +1 -1
- package/web/assets/{liquid-OaGt-c-G.js → liquid-B58z0z3s.js} +1 -1
- package/web/assets/{lspLanguageFeatures-B6AaNVcR.js → lspLanguageFeatures-VksJLqpV.js} +1 -1
- package/web/assets/{mail-chat-bubble-square.svg-D0WUmEWq.js → mail-chat-bubble-square.svg-DU4TDENX.js} +1 -1
- package/web/assets/{mail-send-email-paper-airplane.svg--9oR8FgG.js → mail-send-email-paper-airplane.svg-jk90Puk3.js} +1 -1
- package/web/assets/{mail-send-envelope.svg-D7zYusS0.js → mail-send-envelope.svg-CrEPc3pm.js} +1 -1
- package/web/assets/{mdx-ChDcRRYd.js → mdx-l-DSKi30.js} +1 -1
- package/web/assets/{minus-lcNwQ3xr.js → minus-CjETE6Jb.js} +1 -1
- package/web/assets/{modal-TVJrDDCj.js → modal-D2-cZ2mf.js} +1 -1
- package/web/assets/modal-DmgVDXcS.js +1 -0
- package/web/assets/{money-cashier-receipt.svg-DzX-iwUT.js → money-cashier-receipt.svg-veUsiwvj.js} +1 -1
- package/web/assets/{money-currency-dollar-pay.svg-BFX_YTDc.js → money-currency-dollar-pay.svg-C5PNkn4j.js} +1 -1
- package/web/assets/{money-graph-arrow-increase.svg-C16MfYnR.js → money-graph-arrow-increase.svg-BkCcnTWU.js} +1 -1
- package/web/assets/{money-graph-bar-chart-increase.svg-BGG0yv-f.js → money-graph-bar-chart-increase.svg-BDiFSuKt.js} +1 -1
- package/web/assets/{multiselect-DcAoSG6S.js → multiselect-CDBfo7-0.js} +1 -1
- package/web/assets/{nature-ecology-leaf.svg-DiIaC6NX.js → nature-ecology-leaf.svg-CHyv9oDB.js} +1 -1
- package/web/assets/{password-BZlCIV8S.js → password-BYosjMhB.js} +1 -1
- package/web/assets/{phone-telephone.svg-udmmRh0q.js → phone-telephone.svg-Ce1dgyK9.js} +1 -1
- package/web/assets/{plus-CwmVHUki.js → plus-CVoE_j-e.js} +1 -1
- package/web/assets/process.store-BsCJ-VuI.js +1 -0
- package/web/assets/{programming-bug.svg-xc1RtL3c.js → programming-bug.svg-D87My2Ok.js} +1 -1
- package/web/assets/{programming-cloud.svg-axQALbJB.js → programming-cloud.svg-jUe8apKw.js} +1 -1
- package/web/assets/{programming-computer-database-server.svg-BVTqxH42.js → programming-computer-database-server.svg-D4etrIBX.js} +1 -1
- package/web/assets/{programming-computer-database.svg-B-CECn7V.js → programming-computer-database.svg-BtfkmLTx.js} +1 -1
- package/web/assets/{programming-module-four-layout.svg-icO9mDmE.js → programming-module-four-layout.svg-BkzsDKDq.js} +1 -1
- package/web/assets/{programming-module-three.svg-D2zllUcw.js → programming-module-three.svg-CpzTvjGS.js} +1 -1
- package/web/assets/{programming-module.svg-gs4eO8gC.js → programming-module.svg-wyvB3tSR.js} +1 -1
- package/web/assets/{programming-script-code.svg-BGMrS9je.js → programming-script-code.svg-Dek4khNq.js} +1 -1
- package/web/assets/{python-C1ZGhTnT.js → python-IeHrvMxp.js} +1 -1
- package/web/assets/{razor-Dxwwpjwp.js → razor-CMgDmoNn.js} +1 -1
- package/web/assets/router-KIdzwvCZ.js +1 -0
- package/web/assets/settings-scope-D8l1sq9K.js +1 -0
- package/web/assets/{settings.store-Da4jL17l.js → settings.store-VVqF8QkO.js} +1 -1
- package/web/assets/{shopping-cart.svg-DajW_J8z.js → shopping-cart.svg-DeBhxyDX.js} +1 -1
- package/web/assets/{shopping-gift-present.svg-yAHWXZYl.js → shopping-gift-present.svg-Bt0oKBk9.js} +1 -1
- package/web/assets/{shopping-shipping-box-parcel-package.svg-BmpCCkbe.js → shopping-shipping-box-parcel-package.svg-BEQNmjMi.js} +1 -1
- package/web/assets/{src-CabNenEM.js → src-C3dPv05m.js} +1 -1
- package/web/assets/{src-C-5koINO.js → src-CJFQ3yWc.js} +1 -1
- package/web/assets/{src-LFVDgykP.js → src-Cgn_TWXn.js} +3 -3
- package/web/assets/{tabpanel-D8XwziwN.js → tabpanel-B8oBjoSG.js} +1 -1
- package/web/assets/{tag-new-circle.svg-BHHc5iei.js → tag-new-circle.svg-B1i0Y1yt.js} +1 -1
- package/web/assets/{toggleswitch-CJCNFliH.js → toggleswitch-CcQEgLiT.js} +1 -1
- package/web/assets/{travel-map-earth-globe.svg-CHj70cli.js → travel-map-earth-globe.svg-CB5sqhKh.js} +1 -1
- package/web/assets/trpc-B1bTQz_t.js +1 -0
- package/web/assets/{tsMode-DHXchBsw.js → tsMode-DoUs-yH0.js} +1 -1
- package/web/assets/{typescript-BVTudzDT.js → typescript-fw9OMJ0N.js} +1 -1
- package/web/assets/useAiChatDrawer-BpR9XWop.js +1 -0
- package/web/assets/{useCloudOrg-BN-OgVim.js → useCloudOrg-CRpEZ-iE.js} +1 -1
- package/web/assets/{useProjectCatalog-sUfCxDEh.js → useProjectCatalog-mk8A95KQ.js} +1 -1
- package/web/assets/{useProjectCloudOrg-D1GcLai_.js → useProjectCloudOrg-CKgvcUWI.js} +1 -1
- package/web/assets/{xml-5T1ybYUZ.js → xml-Df6_yGan.js} +1 -1
- package/web/assets/{yaml-w_H4D4RN.js → yaml-LMvM57fn.js} +1 -1
- package/web/index.html +2 -2
- package/chunk-SP3IC2TR.js.map +0 -1
- package/chunk-TNBMCKQX.js.map +0 -1
- package/node-B4T3JMM3.js.map +0 -1
- package/src-PF23DMAB.js.map +0 -1
- package/web/assets/AiChatPage-C1FbL-Tb.js +0 -1
- package/web/assets/CloudAccountPage-CsNnjZQN.js +0 -1
- package/web/assets/WikiPage-D1at3ltm.js +0 -1
- package/web/assets/interface-content-folder.svg-BYgaYshM.js +0 -1
- package/web/assets/modal-4qFfZ_TY.js +0 -1
- package/web/assets/process.store-C8qfdRYx.js +0 -1
- package/web/assets/router-HZS_HREn.js +0 -1
- package/web/assets/settings-scope-DUmfNusx.js +0 -1
- package/web/assets/trpc-BeVJWlZK.js +0 -1
- package/web/assets/useAiChatDrawer-CFqm3BZi.js +0 -1
- /package/{chat-RWOZHXBX.js.map → chat-OXRRBDB3.js.map} +0 -0
- /package/{companion-QNW7XA6X.js.map → companion-JQGNL4U7.js.map} +0 -0
package/agent/index.js
CHANGED
|
@@ -4753,10 +4753,150 @@ var processRouter = router({
|
|
|
4753
4753
|
});
|
|
4754
4754
|
|
|
4755
4755
|
// src/trpc/routers/health.ts
|
|
4756
|
-
import { networkInterfaces as networkInterfaces2, homedir as
|
|
4756
|
+
import { networkInterfaces as networkInterfaces2, homedir as homedir7, platform as platform3 } from "os";
|
|
4757
|
+
|
|
4758
|
+
// ../../packages/shared/src/node/node-path.ts
|
|
4759
|
+
import { dirname, delimiter } from "path";
|
|
4760
|
+
function ensureNodeBinOnPath(environment = process.env) {
|
|
4761
|
+
appendToPath(dirname(process.execPath), environment);
|
|
4762
|
+
}
|
|
4763
|
+
function appendToPath(dir, environment = process.env) {
|
|
4764
|
+
if (!dir) return;
|
|
4765
|
+
const current = environment["PATH"] ?? "";
|
|
4766
|
+
const entries = current.split(delimiter).filter(Boolean);
|
|
4767
|
+
if (entries.includes(dir)) return;
|
|
4768
|
+
environment["PATH"] = entries.length > 0 ? `${current}${delimiter}${dir}` : dir;
|
|
4769
|
+
}
|
|
4770
|
+
|
|
4771
|
+
// ../../packages/shared/src/node/user-path.ts
|
|
4757
4772
|
import { execFile as execFile3 } from "child_process";
|
|
4758
4773
|
import { promisify } from "util";
|
|
4774
|
+
import { homedir as homedir6 } from "os";
|
|
4775
|
+
import { existsSync, statSync } from "fs";
|
|
4776
|
+
import { join as join4, delimiter as delimiter2 } from "path";
|
|
4759
4777
|
var execFileAsync = promisify(execFile3);
|
|
4778
|
+
var MARKER = "__RUNEYA_PATH__";
|
|
4779
|
+
var SHELL_TIMEOUT_MS = 3e3;
|
|
4780
|
+
function commonUserBins(home) {
|
|
4781
|
+
return [
|
|
4782
|
+
join4(home, ".local", "bin"),
|
|
4783
|
+
join4(home, "bin"),
|
|
4784
|
+
join4(home, ".npm-global", "bin"),
|
|
4785
|
+
join4(home, ".bun", "bin"),
|
|
4786
|
+
join4(home, ".cargo", "bin"),
|
|
4787
|
+
"/opt/homebrew/bin",
|
|
4788
|
+
"/usr/local/bin"
|
|
4789
|
+
];
|
|
4790
|
+
}
|
|
4791
|
+
async function readLoginShellPath() {
|
|
4792
|
+
if (process.platform === "win32") return null;
|
|
4793
|
+
const shell = process.env["SHELL"];
|
|
4794
|
+
if (!shell || !existsSync(shell)) return null;
|
|
4795
|
+
try {
|
|
4796
|
+
const { stdout } = await execFileAsync(shell, ["-l", "-i", "-c", `echo "${MARKER}$PATH"`], {
|
|
4797
|
+
timeout: SHELL_TIMEOUT_MS,
|
|
4798
|
+
shell: false,
|
|
4799
|
+
encoding: "utf8",
|
|
4800
|
+
maxBuffer: 1024 * 1024,
|
|
4801
|
+
env: { ...process.env, TERM: "dumb" }
|
|
4802
|
+
});
|
|
4803
|
+
const line = stdout.split("\n").find((l) => l.includes(MARKER));
|
|
4804
|
+
if (!line) return null;
|
|
4805
|
+
const value = line.slice(line.indexOf(MARKER) + MARKER.length).trim();
|
|
4806
|
+
return value.length > 0 ? value : null;
|
|
4807
|
+
} catch {
|
|
4808
|
+
return null;
|
|
4809
|
+
}
|
|
4810
|
+
}
|
|
4811
|
+
async function ensureUserBinsOnPath(environment = process.env, home = homedir6()) {
|
|
4812
|
+
const shellPath = await readLoginShellPath();
|
|
4813
|
+
if (shellPath) {
|
|
4814
|
+
for (const entry of shellPath.split(delimiter2).filter(Boolean)) {
|
|
4815
|
+
appendToPath(entry, environment);
|
|
4816
|
+
}
|
|
4817
|
+
}
|
|
4818
|
+
for (const dir of commonUserBins(home)) {
|
|
4819
|
+
if (isDirectory(dir)) appendToPath(dir, environment);
|
|
4820
|
+
}
|
|
4821
|
+
}
|
|
4822
|
+
function isDirectory(path3) {
|
|
4823
|
+
try {
|
|
4824
|
+
return statSync(path3).isDirectory();
|
|
4825
|
+
} catch {
|
|
4826
|
+
return false;
|
|
4827
|
+
}
|
|
4828
|
+
}
|
|
4829
|
+
|
|
4830
|
+
// ../../packages/shared/src/node/log-timestamps.ts
|
|
4831
|
+
function isDecorative(args) {
|
|
4832
|
+
if (args.length === 0) return true;
|
|
4833
|
+
const first = args[0];
|
|
4834
|
+
if (typeof first !== "string") return false;
|
|
4835
|
+
const trimmed = first.trim();
|
|
4836
|
+
return trimmed === "" || /^[┌│└├┬┴┼─┐┘┤]/.test(trimmed);
|
|
4837
|
+
}
|
|
4838
|
+
var LEVELS = ["log", "info", "warn", "error", "debug"];
|
|
4839
|
+
function formatElapsed(startedAt2, now) {
|
|
4840
|
+
const seconds = (now - startedAt2) / 1e3;
|
|
4841
|
+
return `+${seconds.toFixed(3)}s`.padStart(10);
|
|
4842
|
+
}
|
|
4843
|
+
function stampConsole(startedAt2 = Date.now()) {
|
|
4844
|
+
const target = console;
|
|
4845
|
+
if (target.__runeyaStamped) return () => {
|
|
4846
|
+
};
|
|
4847
|
+
target.__runeyaStamped = true;
|
|
4848
|
+
const originals = LEVELS.map((level) => {
|
|
4849
|
+
const original = console[level].bind(console);
|
|
4850
|
+
console[level] = (...args) => isDecorative(args) ? original(...args) : original(formatElapsed(startedAt2, Date.now()), ...args);
|
|
4851
|
+
return [level, original];
|
|
4852
|
+
});
|
|
4853
|
+
return () => {
|
|
4854
|
+
for (const [level, original] of originals) console[level] = original;
|
|
4855
|
+
target.__runeyaStamped = false;
|
|
4856
|
+
};
|
|
4857
|
+
}
|
|
4858
|
+
|
|
4859
|
+
// ../../packages/shared/src/node/cli-invocation.ts
|
|
4860
|
+
import { execFile as execFile4, execFileSync } from "child_process";
|
|
4861
|
+
import { existsSync as existsSync2, readFileSync } from "fs";
|
|
4862
|
+
import { dirname as dirname2, resolve as resolvePath } from "path";
|
|
4863
|
+
function resolveCliInvocation(cli, args = []) {
|
|
4864
|
+
if (process.platform !== "win32") return { command: cli, args };
|
|
4865
|
+
if (/\.exe$/i.test(cli)) return { command: cli, args };
|
|
4866
|
+
let shim = cli;
|
|
4867
|
+
if (!cli.includes("\\") && !cli.includes("/")) {
|
|
4868
|
+
let found = [];
|
|
4869
|
+
try {
|
|
4870
|
+
found = execFileSync("where", [cli], { encoding: "utf-8", timeout: 5e3, windowsHide: true }).split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
|
|
4871
|
+
} catch {
|
|
4872
|
+
}
|
|
4873
|
+
const exe = found.find((f) => /\.exe$/i.test(f));
|
|
4874
|
+
if (exe) return { command: exe, args };
|
|
4875
|
+
shim = found.find((f) => /\.cmd$/i.test(f)) ?? found[0] ?? cli;
|
|
4876
|
+
}
|
|
4877
|
+
if (/\.exe$/i.test(shim)) return { command: shim, args };
|
|
4878
|
+
if (/\.cmd$/i.test(shim) && existsSync2(shim)) {
|
|
4879
|
+
try {
|
|
4880
|
+
const content = readFileSync(shim, "utf-8");
|
|
4881
|
+
const m = content.match(/%~?dp0%?\\?([^"\s]+\.js)/i);
|
|
4882
|
+
if (m?.[1]) {
|
|
4883
|
+
const entry = resolvePath(dirname2(shim), m[1].replace(/^\\+/, ""));
|
|
4884
|
+
if (existsSync2(entry)) return { command: process.execPath, args: [entry, ...args] };
|
|
4885
|
+
}
|
|
4886
|
+
} catch {
|
|
4887
|
+
}
|
|
4888
|
+
}
|
|
4889
|
+
const comspec = process.env["ComSpec"] || process.env["COMSPEC"] || "cmd.exe";
|
|
4890
|
+
return { command: comspec, args: ["/d", "/s", "/c", shim, ...args] };
|
|
4891
|
+
}
|
|
4892
|
+
async function isCliAvailable(cli, timeoutMs = 5e3) {
|
|
4893
|
+
const { command, args } = resolveCliInvocation(cli, ["--version"]);
|
|
4894
|
+
return new Promise((resolve2) => {
|
|
4895
|
+
execFile4(command, args, { timeout: timeoutMs, windowsHide: true }, (err) => resolve2(!err));
|
|
4896
|
+
});
|
|
4897
|
+
}
|
|
4898
|
+
|
|
4899
|
+
// src/trpc/routers/health.ts
|
|
4760
4900
|
var startedAt = Date.now();
|
|
4761
4901
|
function getLanIp2() {
|
|
4762
4902
|
const nets = networkInterfaces2();
|
|
@@ -4784,7 +4924,7 @@ async function getHealthData() {
|
|
|
4784
4924
|
// service ne démarre. La résolution, elle, reste faite ici au lancement :
|
|
4785
4925
|
// ce statut n'est qu'un cliché, et l'agent reste l'autorité sur sa machine.
|
|
4786
4926
|
os: platform3(),
|
|
4787
|
-
home:
|
|
4927
|
+
home: homedir7(),
|
|
4788
4928
|
cwd: process.cwd()
|
|
4789
4929
|
};
|
|
4790
4930
|
}
|
|
@@ -4794,8 +4934,8 @@ var healthRouter = router({
|
|
|
4794
4934
|
/** Check which AI CLIs are available on this agent */
|
|
4795
4935
|
checkCli: protectedProcedure.query(async () => {
|
|
4796
4936
|
const [claudeOk, codexOk] = await Promise.all([
|
|
4797
|
-
|
|
4798
|
-
|
|
4937
|
+
isCliAvailable("claude"),
|
|
4938
|
+
isCliAvailable("codex")
|
|
4799
4939
|
]);
|
|
4800
4940
|
return { claudeAvailable: claudeOk, codexAvailable: codexOk };
|
|
4801
4941
|
})
|
|
@@ -4981,16 +5121,16 @@ var terminalRouter = router({
|
|
|
4981
5121
|
// src/trpc/routers/git.ts
|
|
4982
5122
|
import { z as z26 } from "zod";
|
|
4983
5123
|
import { TRPCError as TRPCError4 } from "@trpc/server";
|
|
4984
|
-
import { execFile as
|
|
5124
|
+
import { execFile as execFile6, spawn as spawn3 } from "child_process";
|
|
4985
5125
|
import { promisify as promisify3 } from "util";
|
|
4986
|
-
import { existsSync, watch as fsWatch } from "fs";
|
|
5126
|
+
import { existsSync as existsSync3, watch as fsWatch } from "fs";
|
|
4987
5127
|
import { promises as fsPromises2 } from "fs";
|
|
4988
|
-
import { join as
|
|
5128
|
+
import { join as join5, resolve as resolvePath2 } from "path";
|
|
4989
5129
|
|
|
4990
5130
|
// src/utils/git-remote.ts
|
|
4991
|
-
import { execFile as
|
|
5131
|
+
import { execFile as execFile5 } from "child_process";
|
|
4992
5132
|
import { promisify as promisify2 } from "util";
|
|
4993
|
-
var execFileAsync2 = promisify2(
|
|
5133
|
+
var execFileAsync2 = promisify2(execFile5);
|
|
4994
5134
|
function parseGitRemote(url) {
|
|
4995
5135
|
const trimmed = url.trim();
|
|
4996
5136
|
if (!trimmed) return null;
|
|
@@ -5044,7 +5184,7 @@ async function sameGitRemote(a, b, resolveHost = resolveSshHost) {
|
|
|
5044
5184
|
}
|
|
5045
5185
|
|
|
5046
5186
|
// src/trpc/routers/git.ts
|
|
5047
|
-
var execFileAsync3 = promisify3(
|
|
5187
|
+
var execFileAsync3 = promisify3(execFile6);
|
|
5048
5188
|
var GIT_TIMEOUT = 15e3;
|
|
5049
5189
|
var DIFF_MAX_BYTES = 512 * 1024;
|
|
5050
5190
|
var CWD_SCHEMA = z26.string().min(1).max(4096);
|
|
@@ -5111,7 +5251,7 @@ async function assertGitRepo(cwd) {
|
|
|
5111
5251
|
}
|
|
5112
5252
|
function assertCwdExists(cwd) {
|
|
5113
5253
|
const resolved = expandEnvVar(cwd);
|
|
5114
|
-
if (!
|
|
5254
|
+
if (!existsSync3(resolved)) {
|
|
5115
5255
|
console.error("[git] assertCwdExists: directory does not exist: %s (resolved=%s, process.cwd=%s)", cwd, resolved, process.cwd());
|
|
5116
5256
|
throw new TRPCError4({ code: "BAD_REQUEST", message: `Working directory does not exist: ${resolved}` });
|
|
5117
5257
|
}
|
|
@@ -5180,8 +5320,8 @@ var gitRouter = router({
|
|
|
5180
5320
|
if (unresolvedVars.length > 0) {
|
|
5181
5321
|
return { exists: false, actualRemote: null, remoteMatches: false, unreachable: false, resolvedCwd, unresolvedVars };
|
|
5182
5322
|
}
|
|
5183
|
-
const absoluteCwd =
|
|
5184
|
-
const exists =
|
|
5323
|
+
const absoluteCwd = resolvePath2(resolvedCwd);
|
|
5324
|
+
const exists = existsSync3(absoluteCwd);
|
|
5185
5325
|
if (!exists || !input.remote) {
|
|
5186
5326
|
return { exists, actualRemote: null, remoteMatches: false, unreachable: false, resolvedCwd: absoluteCwd, unresolvedVars: [] };
|
|
5187
5327
|
}
|
|
@@ -5199,8 +5339,8 @@ var gitRouter = router({
|
|
|
5199
5339
|
remote: z26.string().min(1).max(2048),
|
|
5200
5340
|
cwd: CWD_SCHEMA
|
|
5201
5341
|
})).mutation(async ({ input }) => {
|
|
5202
|
-
const absoluteCwd =
|
|
5203
|
-
if (
|
|
5342
|
+
const absoluteCwd = resolvePath2(expandEnvVar(input.cwd));
|
|
5343
|
+
if (existsSync3(absoluteCwd)) {
|
|
5204
5344
|
const entries = await fsPromises2.readdir(absoluteCwd);
|
|
5205
5345
|
if (entries.length > 0) {
|
|
5206
5346
|
throw new TRPCError4({ code: "BAD_REQUEST", message: "Working directory already exists and is not empty" });
|
|
@@ -5227,7 +5367,7 @@ var gitRouter = router({
|
|
|
5227
5367
|
const cwd = assertCwdExists(input.cwd);
|
|
5228
5368
|
await assertGitRepo(cwd);
|
|
5229
5369
|
const gitDir = (await git(["rev-parse", "--git-dir"], cwd, true)).trim();
|
|
5230
|
-
const absGitDir =
|
|
5370
|
+
const absGitDir = resolvePath2(cwd, gitDir);
|
|
5231
5371
|
const queue = [];
|
|
5232
5372
|
let resolve2 = null;
|
|
5233
5373
|
let debounceTimer = null;
|
|
@@ -5379,7 +5519,7 @@ var gitRouter = router({
|
|
|
5379
5519
|
}
|
|
5380
5520
|
}
|
|
5381
5521
|
if (input.untracked && input.path) {
|
|
5382
|
-
const modified2 = await readFileSafe(
|
|
5522
|
+
const modified2 = await readFileSafe(join5(cwd, input.path));
|
|
5383
5523
|
return { diff: "", original: "", modified: modified2 };
|
|
5384
5524
|
}
|
|
5385
5525
|
const args = input.staged ? ["diff", "--staged"] : ["diff"];
|
|
@@ -5405,7 +5545,7 @@ var gitRouter = router({
|
|
|
5405
5545
|
} catch {
|
|
5406
5546
|
original = "";
|
|
5407
5547
|
}
|
|
5408
|
-
modified = await readFileSafe(
|
|
5548
|
+
modified = await readFileSafe(join5(cwd, input.path));
|
|
5409
5549
|
}
|
|
5410
5550
|
}
|
|
5411
5551
|
return {
|
|
@@ -5540,17 +5680,15 @@ import { z as z27 } from "zod";
|
|
|
5540
5680
|
import { TRPCError as TRPCError5 } from "@trpc/server";
|
|
5541
5681
|
|
|
5542
5682
|
// src/services/ai-spawn-manager.ts
|
|
5543
|
-
import { spawn as spawn4
|
|
5683
|
+
import { spawn as spawn4 } from "child_process";
|
|
5544
5684
|
import { EventEmitter as EventEmitter9 } from "events";
|
|
5545
5685
|
import { randomUUID as randomUUID5 } from "crypto";
|
|
5546
|
-
import { existsSync as existsSync3, readFileSync } from "fs";
|
|
5547
|
-
import { dirname, resolve as resolvePath2 } from "path";
|
|
5548
5686
|
import * as pty2 from "@lydell/node-pty";
|
|
5549
5687
|
|
|
5550
5688
|
// ../../packages/mcp-server/src/launch.ts
|
|
5551
5689
|
import { fileURLToPath } from "url";
|
|
5552
5690
|
import { createRequire } from "module";
|
|
5553
|
-
import { existsSync as
|
|
5691
|
+
import { existsSync as existsSync4 } from "fs";
|
|
5554
5692
|
function resolveMcpServerPath() {
|
|
5555
5693
|
try {
|
|
5556
5694
|
const req = createRequire(import.meta.url);
|
|
@@ -5568,7 +5706,7 @@ function resolveMcpServerPath() {
|
|
|
5568
5706
|
];
|
|
5569
5707
|
for (const c of candidates) {
|
|
5570
5708
|
const p = fileURLToPath(c);
|
|
5571
|
-
if (
|
|
5709
|
+
if (existsSync4(p)) return p;
|
|
5572
5710
|
}
|
|
5573
5711
|
throw new Error("Could not locate @runeya/packages-mcp-server (built dist not found)");
|
|
5574
5712
|
}
|
|
@@ -5612,35 +5750,6 @@ function tomlString(value) {
|
|
|
5612
5750
|
}
|
|
5613
5751
|
|
|
5614
5752
|
// src/services/ai-spawn-manager.ts
|
|
5615
|
-
function resolveCliInvocation(cli, args) {
|
|
5616
|
-
if (process.platform !== "win32") return { command: cli, args };
|
|
5617
|
-
if (/\.exe$/i.test(cli)) return { command: cli, args };
|
|
5618
|
-
let shim = cli;
|
|
5619
|
-
if (!cli.includes("\\") && !cli.includes("/")) {
|
|
5620
|
-
let found = [];
|
|
5621
|
-
try {
|
|
5622
|
-
found = execFileSync("where", [cli], { encoding: "utf-8" }).split(/\r?\n/).map((l) => l.trim()).filter(Boolean);
|
|
5623
|
-
} catch {
|
|
5624
|
-
}
|
|
5625
|
-
const exe = found.find((f) => /\.exe$/i.test(f));
|
|
5626
|
-
if (exe) return { command: exe, args };
|
|
5627
|
-
shim = found.find((f) => /\.cmd$/i.test(f)) ?? found[0] ?? cli;
|
|
5628
|
-
}
|
|
5629
|
-
if (/\.exe$/i.test(shim)) return { command: shim, args };
|
|
5630
|
-
if (/\.cmd$/i.test(shim) && existsSync3(shim)) {
|
|
5631
|
-
try {
|
|
5632
|
-
const content = readFileSync(shim, "utf-8");
|
|
5633
|
-
const m = content.match(/%~?dp0%\\?([^"\s]+\.js)/i);
|
|
5634
|
-
if (m?.[1]) {
|
|
5635
|
-
const entry = resolvePath2(dirname(shim), m[1].replace(/^\\+/, ""));
|
|
5636
|
-
if (existsSync3(entry)) return { command: process.execPath, args: [entry, ...args] };
|
|
5637
|
-
}
|
|
5638
|
-
} catch {
|
|
5639
|
-
}
|
|
5640
|
-
}
|
|
5641
|
-
const comspec = process.env.ComSpec || process.env.COMSPEC || "cmd.exe";
|
|
5642
|
-
return { command: comspec, args: ["/d", "/s", "/c", shim, ...args] };
|
|
5643
|
-
}
|
|
5644
5753
|
var MAX_BUFFER_LINES = 1e5;
|
|
5645
5754
|
var MAX_CONCURRENT_SPAWNS = 100;
|
|
5646
5755
|
var CLEANUP_INTERVAL_MS = 6e4;
|
|
@@ -6011,7 +6120,8 @@ var CodexAppServerManager = class extends EventEmitter10 {
|
|
|
6011
6120
|
}
|
|
6012
6121
|
async doConnect() {
|
|
6013
6122
|
const env2 = { ...process.env, ...this.extraEnv };
|
|
6014
|
-
|
|
6123
|
+
const invocation = resolveCliInvocation("codex", [...resolveMcpArgs(env2), "app-server"]);
|
|
6124
|
+
this.proc = spawn6(invocation.command, invocation.args, {
|
|
6015
6125
|
windowsHide: true,
|
|
6016
6126
|
stdio: ["pipe", "pipe", "pipe"],
|
|
6017
6127
|
env: env2
|
|
@@ -6425,8 +6535,8 @@ var aiRouter = router({
|
|
|
6425
6535
|
import { z as z28 } from "zod";
|
|
6426
6536
|
import { TRPCError as TRPCError6 } from "@trpc/server";
|
|
6427
6537
|
import { readFile as readFile2, readdir, stat as stat2, realpath, writeFile as writeFile6, mkdir as mkdir6, rename as rename2, rm } from "fs/promises";
|
|
6428
|
-
import { dirname as
|
|
6429
|
-
import { resolve as resolvePath3, join as
|
|
6538
|
+
import { dirname as dirname3 } from "path";
|
|
6539
|
+
import { resolve as resolvePath3, join as join6, relative, sep } from "path";
|
|
6430
6540
|
var CWD_SCHEMA2 = z28.string().min(1).max(4096);
|
|
6431
6541
|
var REL_PATH_SCHEMA = z28.string().min(1).max(512).regex(/^[A-Za-z0-9_./-]+$/).refine((p) => !p.includes("..") && !p.startsWith("/"), {
|
|
6432
6542
|
message: "Path must be a relative path without traversal"
|
|
@@ -6464,7 +6574,7 @@ async function walkMarkdown(root, dir, depth, counter) {
|
|
|
6464
6574
|
for (const e of entries) {
|
|
6465
6575
|
if (counter.n >= MAX_FILES) break;
|
|
6466
6576
|
if (e.name.startsWith(".") && e.name !== ".") continue;
|
|
6467
|
-
const abs =
|
|
6577
|
+
const abs = join6(dir, e.name);
|
|
6468
6578
|
const rel = relative(root, abs).split(sep).join("/");
|
|
6469
6579
|
if (e.isDirectory()) {
|
|
6470
6580
|
if (IGNORED_DIRS.has(e.name)) continue;
|
|
@@ -6498,7 +6608,7 @@ async function resolveSafePath(root, relPath, requireExist) {
|
|
|
6498
6608
|
}
|
|
6499
6609
|
return real;
|
|
6500
6610
|
}
|
|
6501
|
-
const parent =
|
|
6611
|
+
const parent = dirname3(target);
|
|
6502
6612
|
let realParent;
|
|
6503
6613
|
try {
|
|
6504
6614
|
realParent = await realpath(parent);
|
|
@@ -6562,7 +6672,7 @@ var wikiRouter = router({
|
|
|
6562
6672
|
}
|
|
6563
6673
|
const root = await resolveRoot(input.cwd);
|
|
6564
6674
|
const target = await resolveSafePath(root, input.path, false);
|
|
6565
|
-
await mkdir6(
|
|
6675
|
+
await mkdir6(dirname3(target), { recursive: true });
|
|
6566
6676
|
await writeFile6(target, input.content, "utf-8");
|
|
6567
6677
|
return { path: input.path, ok: true };
|
|
6568
6678
|
}),
|
|
@@ -6578,7 +6688,7 @@ var wikiRouter = router({
|
|
|
6578
6688
|
} catch (err) {
|
|
6579
6689
|
if (err instanceof TRPCError6) throw err;
|
|
6580
6690
|
}
|
|
6581
|
-
await mkdir6(
|
|
6691
|
+
await mkdir6(dirname3(target), { recursive: true });
|
|
6582
6692
|
await writeFile6(target, "", "utf-8");
|
|
6583
6693
|
return { path: input.path, ok: true };
|
|
6584
6694
|
}),
|
|
@@ -6602,7 +6712,7 @@ var wikiRouter = router({
|
|
|
6602
6712
|
} catch (err) {
|
|
6603
6713
|
if (err instanceof TRPCError6) throw err;
|
|
6604
6714
|
}
|
|
6605
|
-
await mkdir6(
|
|
6715
|
+
await mkdir6(dirname3(to), { recursive: true });
|
|
6606
6716
|
await rename2(from, to);
|
|
6607
6717
|
return { fromPath: input.fromPath, toPath: input.toPath, ok: true };
|
|
6608
6718
|
}),
|
|
@@ -6737,107 +6847,6 @@ function createAgent(opts) {
|
|
|
6737
6847
|
return { app, server, trpcWss, healthWss, passphraseHex, shutdown };
|
|
6738
6848
|
}
|
|
6739
6849
|
|
|
6740
|
-
// ../../packages/shared/src/node/node-path.ts
|
|
6741
|
-
import { dirname as dirname3, delimiter } from "path";
|
|
6742
|
-
function ensureNodeBinOnPath(environment = process.env) {
|
|
6743
|
-
appendToPath(dirname3(process.execPath), environment);
|
|
6744
|
-
}
|
|
6745
|
-
function appendToPath(dir, environment = process.env) {
|
|
6746
|
-
if (!dir) return;
|
|
6747
|
-
const current = environment["PATH"] ?? "";
|
|
6748
|
-
const entries = current.split(delimiter).filter(Boolean);
|
|
6749
|
-
if (entries.includes(dir)) return;
|
|
6750
|
-
environment["PATH"] = entries.length > 0 ? `${current}${delimiter}${dir}` : dir;
|
|
6751
|
-
}
|
|
6752
|
-
|
|
6753
|
-
// ../../packages/shared/src/node/user-path.ts
|
|
6754
|
-
import { execFile as execFile6 } from "child_process";
|
|
6755
|
-
import { promisify as promisify4 } from "util";
|
|
6756
|
-
import { homedir as homedir7 } from "os";
|
|
6757
|
-
import { existsSync as existsSync4, statSync } from "fs";
|
|
6758
|
-
import { join as join6, delimiter as delimiter2 } from "path";
|
|
6759
|
-
var execFileAsync4 = promisify4(execFile6);
|
|
6760
|
-
var MARKER = "__RUNEYA_PATH__";
|
|
6761
|
-
var SHELL_TIMEOUT_MS = 3e3;
|
|
6762
|
-
function commonUserBins(home) {
|
|
6763
|
-
return [
|
|
6764
|
-
join6(home, ".local", "bin"),
|
|
6765
|
-
join6(home, "bin"),
|
|
6766
|
-
join6(home, ".npm-global", "bin"),
|
|
6767
|
-
join6(home, ".bun", "bin"),
|
|
6768
|
-
join6(home, ".cargo", "bin"),
|
|
6769
|
-
"/opt/homebrew/bin",
|
|
6770
|
-
"/usr/local/bin"
|
|
6771
|
-
];
|
|
6772
|
-
}
|
|
6773
|
-
async function readLoginShellPath() {
|
|
6774
|
-
if (process.platform === "win32") return null;
|
|
6775
|
-
const shell = process.env["SHELL"];
|
|
6776
|
-
if (!shell || !existsSync4(shell)) return null;
|
|
6777
|
-
try {
|
|
6778
|
-
const { stdout } = await execFileAsync4(shell, ["-l", "-i", "-c", `echo "${MARKER}$PATH"`], {
|
|
6779
|
-
timeout: SHELL_TIMEOUT_MS,
|
|
6780
|
-
shell: false,
|
|
6781
|
-
encoding: "utf8",
|
|
6782
|
-
maxBuffer: 1024 * 1024,
|
|
6783
|
-
env: { ...process.env, TERM: "dumb" }
|
|
6784
|
-
});
|
|
6785
|
-
const line = stdout.split("\n").find((l) => l.includes(MARKER));
|
|
6786
|
-
if (!line) return null;
|
|
6787
|
-
const value = line.slice(line.indexOf(MARKER) + MARKER.length).trim();
|
|
6788
|
-
return value.length > 0 ? value : null;
|
|
6789
|
-
} catch {
|
|
6790
|
-
return null;
|
|
6791
|
-
}
|
|
6792
|
-
}
|
|
6793
|
-
async function ensureUserBinsOnPath(environment = process.env, home = homedir7()) {
|
|
6794
|
-
const shellPath = await readLoginShellPath();
|
|
6795
|
-
if (shellPath) {
|
|
6796
|
-
for (const entry of shellPath.split(delimiter2).filter(Boolean)) {
|
|
6797
|
-
appendToPath(entry, environment);
|
|
6798
|
-
}
|
|
6799
|
-
}
|
|
6800
|
-
for (const dir of commonUserBins(home)) {
|
|
6801
|
-
if (isDirectory(dir)) appendToPath(dir, environment);
|
|
6802
|
-
}
|
|
6803
|
-
}
|
|
6804
|
-
function isDirectory(path3) {
|
|
6805
|
-
try {
|
|
6806
|
-
return statSync(path3).isDirectory();
|
|
6807
|
-
} catch {
|
|
6808
|
-
return false;
|
|
6809
|
-
}
|
|
6810
|
-
}
|
|
6811
|
-
|
|
6812
|
-
// ../../packages/shared/src/node/log-timestamps.ts
|
|
6813
|
-
function isDecorative(args) {
|
|
6814
|
-
if (args.length === 0) return true;
|
|
6815
|
-
const first = args[0];
|
|
6816
|
-
if (typeof first !== "string") return false;
|
|
6817
|
-
const trimmed = first.trim();
|
|
6818
|
-
return trimmed === "" || /^[┌│└├┬┴┼─┐┘┤]/.test(trimmed);
|
|
6819
|
-
}
|
|
6820
|
-
var LEVELS = ["log", "info", "warn", "error", "debug"];
|
|
6821
|
-
function formatElapsed(startedAt2, now) {
|
|
6822
|
-
const seconds = (now - startedAt2) / 1e3;
|
|
6823
|
-
return `+${seconds.toFixed(3)}s`.padStart(10);
|
|
6824
|
-
}
|
|
6825
|
-
function stampConsole(startedAt2 = Date.now()) {
|
|
6826
|
-
const target = console;
|
|
6827
|
-
if (target.__runeyaStamped) return () => {
|
|
6828
|
-
};
|
|
6829
|
-
target.__runeyaStamped = true;
|
|
6830
|
-
const originals = LEVELS.map((level) => {
|
|
6831
|
-
const original = console[level].bind(console);
|
|
6832
|
-
console[level] = (...args) => isDecorative(args) ? original(...args) : original(formatElapsed(startedAt2, Date.now()), ...args);
|
|
6833
|
-
return [level, original];
|
|
6834
|
-
});
|
|
6835
|
-
return () => {
|
|
6836
|
-
for (const [level, original] of originals) console[level] = original;
|
|
6837
|
-
target.__runeyaStamped = false;
|
|
6838
|
-
};
|
|
6839
|
-
}
|
|
6840
|
-
|
|
6841
6850
|
// src/index.ts
|
|
6842
6851
|
function listenWithRetry(server, port, host, maxRetries = 20, delay = 500) {
|
|
6843
6852
|
return new Promise((resolve2, reject) => {
|