@runeya/runeya 2.0.9 → 2.0.10

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.
Files changed (249) hide show
  1. package/agent/index.js +159 -44
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-A4E5CXFT-6PJDFN7J.js +8 -0
  4. package/{chunk-BSPKMRKW.js → chunk-DODGBBTE.js} +27 -11
  5. package/chunk-DODGBBTE.js.map +1 -0
  6. package/{dist-PSPHMTZN.js → dist-HZBWBT6S.js} +37 -14
  7. package/dist-HZBWBT6S.js.map +1 -0
  8. package/index.js +2 -1
  9. package/index.js.map +1 -1
  10. package/package.json +1 -1
  11. package/web/assets/{AddressBar.vue-BOHUxRhN.js → AddressBar.vue-D_8vQPIF.js} +1 -1
  12. package/web/assets/{AgentScalarChatInterface.vue-Cxxiyyj8.js → AgentScalarChatInterface.vue-Be-LbA03.js} +1 -1
  13. package/web/assets/{AgentTerminalPage-D-T5emEl.js → AgentTerminalPage-BZmmd1H1.js} +1 -1
  14. package/web/assets/AiChatPage-kTk6yC6d.js +1 -0
  15. package/web/assets/AppLayout-CDtyYNWp.css +1 -0
  16. package/web/assets/AppLayout-jbNML_m4.js +1 -0
  17. package/web/assets/{AuditPage-DZiwogoY.js → AuditPage-S4kDjrZ5.js} +1 -1
  18. package/web/assets/{CodeInput.vue-8aNMYCYM.js → CodeInput.vue-nIhSM0FX.js} +1 -1
  19. package/web/assets/{Collection.vue-N8zZa4pa.js → Collection.vue-CkwnxBu4.js} +1 -1
  20. package/web/assets/{CollectionAuthentication.vue-cJOxjafo.js → CollectionAuthentication.vue-CiZinGpr.js} +1 -1
  21. package/web/assets/CollectionCookies.vue-BLEJqAhX.js +1 -0
  22. package/web/assets/{CollectionEnvironment.vue-DWPTZ8qx.js → CollectionEnvironment.vue-3bWtuG1B.js} +1 -1
  23. package/web/assets/{CollectionOverview.vue-1Qf130d5.js → CollectionOverview.vue-BheZFfD3.js} +1 -1
  24. package/web/assets/CollectionScripts.vue-CsY6tWxk.js +1 -0
  25. package/web/assets/{CollectionServers.vue-h7E03W0v.js → CollectionServers.vue-Ja8mYDaK.js} +1 -1
  26. package/web/assets/{CollectionSettings.vue-CFrOwl7U.js → CollectionSettings.vue-DOB9JUg8.js} +1 -1
  27. package/web/assets/CollectionSync.vue-B-uKwdTU.js +1 -0
  28. package/web/assets/{CommandActionInput.vue-L7AcEf6T.js → CommandActionInput.vue-BBijVqe7.js} +1 -1
  29. package/web/assets/{Cookies.vue-_P19OjMm.js → Cookies.vue-DgVzSolJ.js} +1 -1
  30. package/web/assets/{DashboardPage-BUDWnuJT.js → DashboardPage-BwZPpURp.js} +1 -1
  31. package/web/assets/{DataTable.vue-DYVeGQPP.js → DataTable.vue-DXTWz2Vi.js} +1 -1
  32. package/web/assets/{DataTableCheckbox.vue-n2xCTJj1.js → DataTableCheckbox.vue-BA5yHmxd.js} +1 -1
  33. package/web/assets/{DataTableHeader.vue-ByesjY2f.js → DataTableHeader.vue-U2le7KBO.js} +1 -1
  34. package/web/assets/{DataTableInput.vue-uPpuKzrX.js → DataTableInput.vue-DpeNUUXc.js} +1 -1
  35. package/web/assets/{DeleteSidebarListElement.vue-CBIb58rU.js → DeleteSidebarListElement.vue-C2SV2geU.js} +1 -1
  36. package/web/assets/{EditSidebarListElement.vue-DqTVSZtI.js → EditSidebarListElement.vue-DvvYjTMO.js} +1 -1
  37. package/web/assets/{EditorIcon-B70ii4EM.js → EditorIcon-BPEaZrXC.js} +1 -1
  38. package/web/assets/{EmptyState.vue-CcnWPtfW.js → EmptyState.vue-Be8_w2rR.js} +1 -1
  39. package/web/assets/{Environment.vue-Cgx06nkH.js → Environment.vue-D0PdeVIp.js} +1 -1
  40. package/web/assets/{EnvironmentForm-iBZzqZKd.js → EnvironmentForm-Dm3dFrSU.js} +2 -2
  41. package/web/assets/{EnvironmentFormPage-YVxAAreT.js → EnvironmentFormPage-ByVELlly.js} +1 -1
  42. package/web/assets/{EnvironmentListPage-CHYDJ_c-.js → EnvironmentListPage-DvaTK4NF.js} +1 -1
  43. package/web/assets/{EnvironmentModal.vue-BJNYZuPC.js → EnvironmentModal.vue-Bssf0U5X.js} +1 -1
  44. package/web/assets/{EnvironmentSelector-BZn_taec.js → EnvironmentSelector-4kpQpg5e.js} +1 -1
  45. package/web/assets/{Form.vue-NLXFw40d.js → Form.vue-Dv4a31zh.js} +1 -1
  46. package/web/assets/{IconSelector.vue-Ykh6DAln.js → IconSelector.vue-BsYvff6K.js} +1 -1
  47. package/web/assets/KanbanBoardPage-7rLK-ucb.js +141 -0
  48. package/web/assets/{KanbanListPage-DMNSYO_o.js → KanbanListPage-Dn35VrDc.js} +1 -1
  49. package/web/assets/{LaunchProjectPage-DSyBuhky.js → LaunchProjectPage-Byemtd9C.js} +1 -1
  50. package/web/assets/{LaunchServicesPage-CiGkiqwE.js → LaunchServicesPage-CHiV6T5Y.js} +1 -1
  51. package/web/assets/{LogViewer-DBVkaZnm.js → LogViewer-KtrKiUZw.js} +1 -1
  52. package/web/assets/{ProcessControls-Cya4eb3d.js → ProcessControls-DfFxf6jZ.js} +1 -1
  53. package/web/assets/ProcessDetailPage-BOI85Xo7.js +1 -0
  54. package/web/assets/ProcessDetailPage-CzGUsQM9.css +1 -0
  55. package/web/assets/ProcessMetrics-CLa8mdh2.js +51 -0
  56. package/web/assets/{ProjectDetailPage-a1lTAjKP.js → ProjectDetailPage-CTEt0DSq.js} +1 -1
  57. package/web/assets/{ProjectListPage-Dewqu8Dm.js → ProjectListPage-BrTIxp9K.js} +1 -1
  58. package/web/assets/{RandomJobTestPage-E6mevkqw.js → RandomJobTestPage-D2OB5pqD.js} +1 -1
  59. package/web/assets/{Request.vue-DQPTi6ur.js → Request.vue-DHQd9eyp.js} +1 -1
  60. package/web/assets/{RequestAuth.vue-DV5nNO3f.js → RequestAuth.vue-CEVOgzEk.js} +1 -1
  61. package/web/assets/{RequestRoot.vue-DKlASKU5.js → RequestRoot.vue-BEtC7IEP.js} +1 -1
  62. package/web/assets/{ScalarAsciiArt.vue-mk9jZSKh.js → ScalarAsciiArt.vue-CyYmv9BB.js} +1 -1
  63. package/web/assets/{ScalarIconEyeSlash.vue-DWKhR_BX.js → ScalarIconEyeSlash.vue-qR90sHHe.js} +1 -1
  64. package/web/assets/{ScalarIconTrash.vue-CtSwrO5S.js → ScalarIconTrash.vue-Ll6Zw6_W.js} +1 -1
  65. package/web/assets/{ScenarioEditorPage-DogHTbNU.js → ScenarioEditorPage-xCx9aW1X.js} +1 -1
  66. package/web/assets/{ServerVariablesForm.vue-DYmWiAuz.js → ServerVariablesForm.vue-D9sjD4AT.js} +1 -1
  67. package/web/assets/{ServiceControlsBar-B8Sm6p9E.js → ServiceControlsBar-DKYIgScL.js} +1 -1
  68. package/web/assets/ServiceDetailPage-B5qBCc9A.js +2 -0
  69. package/web/assets/ServiceDetailPage-znbWajpt.css +1 -0
  70. package/web/assets/ServiceFormPage-BNpWmyj_.js +1 -0
  71. package/web/assets/{Settings.vue-buoYkM3l.js → Settings.vue-DWPIjz57.js} +1 -1
  72. package/web/assets/SettingsPage-C5lWJT0Z.js +225 -0
  73. package/web/assets/SettingsPage-CgJN_IL7.css +1 -0
  74. package/web/assets/{SetupKeyPage-BdSpJPDR.js → SetupKeyPage-BiqO4PQr.js} +1 -1
  75. package/web/assets/{SetupPage-BsWaVllB.js → SetupPage-FEUuQSQ2.js} +1 -1
  76. package/web/assets/{Sidebar.vue-DntMEn5m.js → Sidebar.vue-DVHNacfA.js} +1 -1
  77. package/web/assets/{SidebarButton.vue-DTin2zI2.js → SidebarButton.vue-C4QDgSym.js} +1 -1
  78. package/web/assets/{SidebarListElement.vue-zlfRLuE5.js → SidebarListElement.vue-Ch1aI_Bz.js} +1 -1
  79. package/web/assets/{UnlockPage-CmwRV1XA.js → UnlockPage-Dhg0hoP-.js} +1 -1
  80. package/web/assets/VariablesTable-DFJHJ9DF.js +1 -0
  81. package/web/assets/{ViewLayout.vue-C7w_U_o6.js → ViewLayout.vue-svdAMKVP.js} +1 -1
  82. package/web/assets/{ViewLayoutContent.vue-CAXM5eIo.js → ViewLayoutContent.vue-CAixUN8B.js} +1 -1
  83. package/web/assets/{ViewLayoutSection.vue-BzJIsja7.js → ViewLayoutSection.vue-C9VAyihF.js} +1 -1
  84. package/web/assets/{active-entities-C2TbBQeI.js → active-entities-Dpd4ny38.js} +1 -1
  85. package/web/assets/{api-reference-BJkGMKQj.js → api-reference-C9jD1TQ9.js} +1 -1
  86. package/web/assets/autocomplete-Do-EC8XW.js +422 -0
  87. package/web/assets/{card-D5_gGGD-.js → card-CeTOcGyS.js} +1 -1
  88. package/web/assets/{checkbox-C0sXsL9e.js → checkbox-C2hHZbMO.js} +1 -1
  89. package/web/assets/{chip-rnk9_cKV.js → chip-CD3EONN7.js} +1 -1
  90. package/web/assets/{column-ChvIrUdH.js → column-xfOef4Rh.js} +1 -1
  91. package/web/assets/{core-wYvkV3-A.js → core-Dq8cnTTd.js} +1 -1
  92. package/web/assets/{cssMode-DdlczEni.js → cssMode-BzsFOrHs.js} +1 -1
  93. package/web/assets/{dist-DeOvPbza.js → dist-BmCpMB7W.js} +1 -1
  94. package/web/assets/{dist-ZJ37S89a.js → dist-CQoPOD_o.js} +20 -20
  95. package/web/assets/{dist-DBBhfLmf.js → dist-CiBpb7F_.js} +3 -3
  96. package/web/assets/{dist-BHh6fQzR.js → dist-US_vG96F.js} +1 -1
  97. package/web/assets/{divider-D6L7p-FU.js → divider-C7F2jaMI.js} +1 -1
  98. package/web/assets/{editor.store-CWtgIxvE.js → editor.store-Dzhoqquh.js} +1 -1
  99. package/web/assets/{fieldset-CiwzR0un.js → fieldset-kJDAoVaz.js} +1 -1
  100. package/web/assets/{freemarker2-_wLEdPSz.js → freemarker2-qyf3DfQl.js} +1 -1
  101. package/web/assets/{handlebars-66zKrSAk.js → handlebars-Dt_j38Ok.js} +1 -1
  102. package/web/assets/{html-oM24gnvF.js → html-BM6JBSDe.js} +1 -1
  103. package/web/assets/{htmlMode-D65_fKu-.js → htmlMode-BWrj-eTf.js} +1 -1
  104. package/web/assets/index-DXutsd9M.css +1 -0
  105. package/web/assets/{index-D5xJxOo2.js → index-Dviyssba.js} +229 -229
  106. package/web/assets/{javascript-D-njx6Yh.js → javascript-Nwj2LVeE.js} +1 -1
  107. package/web/assets/{jsonMode-bqHogKpM.js → jsonMode-xQ2R28Fq.js} +1 -1
  108. package/web/assets/{keyboard-BzTLpobK.js → keyboard-CidI6qyD.js} +1 -1
  109. package/web/assets/{lib-CPo2W-Kx.js → lib-Bpt_o5V9.js} +4 -4
  110. package/web/assets/{library-DmdL5Pgv.js → library-CcEqwrWR.js} +1 -1
  111. package/web/assets/{liquid-BDL70fhI.js → liquid-CNc1r-Ln.js} +1 -1
  112. package/web/assets/{mdx-Bo_N_Jd-.js → mdx-D5yTipSh.js} +1 -1
  113. package/web/assets/{mediaTypes-Cnm-r_sv.js → mediaTypes-pLZCmXiT.js} +1 -1
  114. package/web/assets/{message-gtjFpAbc.js → message-B6M86BRU.js} +1 -1
  115. package/web/assets/{minus-C5Lsl7Wp.js → minus-wesZvWq4.js} +1 -1
  116. package/web/assets/{multiselect-BlmCsiSW.js → multiselect-CHEmtEFg.js} +1 -1
  117. package/web/assets/{password-RYOg4soC.js → password-ISam7EYg.js} +1 -1
  118. package/web/assets/{plus-C52I3-BN.js → plus-BBMmFC_c.js} +1 -1
  119. package/web/assets/{pretty-ms-BBvjfSt1.js → pretty-ms-Bj2IaA2r.js} +1 -1
  120. package/web/assets/process.store-cvjJzD3H.js +1 -0
  121. package/web/assets/{project.store-emr8mjg8.js → project.store-C94-7i6c.js} +1 -1
  122. package/web/assets/{python-D1UXSNgK.js → python-BOLsEvIQ.js} +1 -1
  123. package/web/assets/{radiobutton-B0t-WlKP.js → radiobutton-DwoOAEAF.js} +1 -1
  124. package/web/assets/{razor-Bd4GOtMe.js → razor-JsBDv4HY.js} +1 -1
  125. package/web/assets/router-BgHCboHx.js +1 -0
  126. package/web/assets/{settings.store-CDr0Mia7.js → settings.store-BGScNTnu.js} +1 -1
  127. package/web/assets/{store-CZKREOuj.js → store-a88gBDkh.js} +1 -1
  128. package/web/assets/{tabpanel-geoVG-sX.js → tabpanel-DBInUEl5.js} +1 -1
  129. package/web/assets/{tag-Dv5CaUPa.js → tag-CQlI4fJK.js} +1 -1
  130. package/web/assets/trpc-CgAubgRH.js +1 -0
  131. package/web/assets/{tsMode-BkM4CkKr.js → tsMode-C7uad5vV.js} +1 -1
  132. package/web/assets/{typescript-CUKl0qxN.js → typescript-C2IozRX9.js} +1 -1
  133. package/web/assets/{urls-BqL-MrG5.js → urls-BuNgEu0U.js} +1 -1
  134. package/web/assets/{use-tree-walker-E64HILpa.js → use-tree-walker-CJHEPXgB.js} +1 -1
  135. package/web/assets/useAiChatDrawer-D6TRHaNu.js +1 -0
  136. package/web/assets/{useClipboard-Bep2crMO.js → useClipboard-DtO-z5Ls.js} +1 -1
  137. package/web/assets/{useLayout-F9XKAPPL.js → useLayout-D-FCdkqa.js} +1 -1
  138. package/web/assets/{usePluginManager-yL67GqCi.js → usePluginManager-CPTBi3rk.js} +1 -1
  139. package/web/assets/{useSidebar-DVRRagIa.js → useSidebar-BoK12gD1.js} +1 -1
  140. package/web/assets/{vue-router-uE6ClrN-.js → vue-router-DSROI5EH.js} +1 -1
  141. package/web/assets/{xml-DMOW2yTg.js → xml-DtJwg-5S.js} +1 -1
  142. package/web/assets/{yaml-D2q3K0ZL.js → yaml-sPGHMYDm.js} +1 -1
  143. package/web/index.html +2 -2
  144. package/agent-manager-UP3PJ35X-LO6B3XKF.js +0 -8
  145. package/chunk-BSPKMRKW.js.map +0 -1
  146. package/dist-PSPHMTZN.js.map +0 -1
  147. package/web/assets/AgentPage-BTWkJvqr.css +0 -1
  148. package/web/assets/AgentPage-DFHxsu-9.js +0 -2
  149. package/web/assets/AiChatPage-C81mFvv5.js +0 -1
  150. package/web/assets/ApiDocsPage-CMGvcGEJ.js +0 -5
  151. package/web/assets/ApiDocsPage-D2Z0wqGZ.css +0 -1
  152. package/web/assets/AppLayout-D10vX1fo.js +0 -1
  153. package/web/assets/AppLayout-sngalCCj.css +0 -1
  154. package/web/assets/CollectionCookies.vue-DrFQqbwv.js +0 -1
  155. package/web/assets/CollectionScripts.vue-DhcFFz80.js +0 -1
  156. package/web/assets/CollectionSync.vue-PV_tIrJS.js +0 -1
  157. package/web/assets/KanbanBoardPage-gtXv0ZhK.js +0 -141
  158. package/web/assets/ProcessDetailPage-8ypC6zkc.js +0 -1
  159. package/web/assets/ProcessDetailPage-B0qGKtvQ.css +0 -1
  160. package/web/assets/ProcessMetrics-CxRgbaUS.js +0 -1
  161. package/web/assets/ServiceDetailPage-BriHTCpT.css +0 -1
  162. package/web/assets/ServiceDetailPage-DpWLccOg.js +0 -2
  163. package/web/assets/ServiceFormPage-DQbOgtB3.js +0 -1
  164. package/web/assets/SettingsPage-CCjZq5jP.js +0 -508
  165. package/web/assets/SettingsPage-vGhb_tlY.css +0 -1
  166. package/web/assets/VariablesTable-C8lxLV1V.js +0 -1
  167. package/web/assets/autocomplete-CxPmwkcZ.js +0 -308
  168. package/web/assets/index-Pqvy10Qz.css +0 -1
  169. package/web/assets/process.store-3BOses3z.js +0 -1
  170. package/web/assets/router-DHhyM3YQ.js +0 -1
  171. package/web/assets/toggleswitch-DNzwv4Lc.js +0 -115
  172. package/web/assets/trpc-B-vyi6vd.js +0 -1
  173. package/web/assets/useAiChatDrawer-uS6dsG6x.js +0 -1
  174. /package/{agent-manager-UP3PJ35X-LO6B3XKF.js.map → agent-manager-A4E5CXFT-6PJDFN7J.js.map} +0 -0
  175. /package/web/assets/{_plugin-vue_export-helper-C7ztIXtE.js → _plugin-vue_export-helper-BVSTY9ge.js} +0 -0
  176. /package/web/assets/{abap-C4tHUUCU.js → abap-BF8nUS5p.js} +0 -0
  177. /package/web/assets/{apex-6cG6aG-w.js → apex-Bbj_Fak2.js} +0 -0
  178. /package/web/assets/{azcli-51BngrSU.js → azcli-B8w3JS7J.js} +0 -0
  179. /package/web/assets/{base64-uZi92-DX.js → base64-CG47Jc3Y.js} +0 -0
  180. /package/web/assets/{bat-BDcdVSIt.js → bat-CaNuqacB.js} +0 -0
  181. /package/web/assets/{bicep-Cg0BCcky.js → bicep-DAvnLugW.js} +0 -0
  182. /package/web/assets/{cameligo-C3ekVui9.js → cameligo-BlI8LCmP.js} +0 -0
  183. /package/web/assets/{clojure-Ci5xNgh_.js → clojure-CxxhrBQl.js} +0 -0
  184. /package/web/assets/{coffee-xsRz4GKy.js → coffee-SkbnTBhO.js} +0 -0
  185. /package/web/assets/{cpp-B2gW4e23.js → cpp-Dm2HJxj0.js} +0 -0
  186. /package/web/assets/{csharp-SRujvHqy.js → csharp-BOGHPGcq.js} +0 -0
  187. /package/web/assets/{csp-Cr-ll6gP.js → csp-CMA_7tOs.js} +0 -0
  188. /package/web/assets/{css-BYTJZCno.js → css-DU8LSGcn.js} +0 -0
  189. /package/web/assets/{cypher-AmQ0R_D3.js → cypher-BZPsEDmT.js} +0 -0
  190. /package/web/assets/{dart-Du01a0J5.js → dart-C1tIJhFk.js} +0 -0
  191. /package/web/assets/{dist-DkaYBczY.js → dist-BPIMeATj.js} +0 -0
  192. /package/web/assets/{dockerfile-Dtlk9wqf.js → dockerfile-z4dmGi5q.js} +0 -0
  193. /package/web/assets/{ecl-CpmVnLkK.js → ecl-Rv9JwhOI.js} +0 -0
  194. /package/web/assets/{elixir-B3MVAC8k.js → elixir-DL6xFSed.js} +0 -0
  195. /package/web/assets/{flow9-Chkly0RN.js → flow9-DFZ52-2d.js} +0 -0
  196. /package/web/assets/{fsharp-CZvMkppk.js → fsharp-RvVOB9Dm.js} +0 -0
  197. /package/web/assets/{go-dT2iT7lt.js → go-B2USMDMv.js} +0 -0
  198. /package/web/assets/{graphql-DmObWyBD.js → graphql-CsHpCYeJ.js} +0 -0
  199. /package/web/assets/{hcl-D1x5Oyp4.js → hcl-CK021J-J.js} +0 -0
  200. /package/web/assets/{ini-Bg2o1S3s.js → ini-v1EoSUxR.js} +0 -0
  201. /package/web/assets/{java-XviKSSn5.js → java-CUXpSPxY.js} +0 -0
  202. /package/web/assets/{julia-DfTIwUGh.js → julia-DwKveiZg.js} +0 -0
  203. /package/web/assets/{kotlin-CNaIBh9d.js → kotlin-SsG_4ZBt.js} +0 -0
  204. /package/web/assets/{less-D7o76tXd.js → less-BviquM8A.js} +0 -0
  205. /package/web/assets/{lexon-Dd374QjV.js → lexon-C8G_qWst.js} +0 -0
  206. /package/web/assets/{lua-DZKuiFbY.js → lua-xqYje_o5.js} +0 -0
  207. /package/web/assets/{m3-CbwRx9Bb.js → m3-B5PetinG.js} +0 -0
  208. /package/web/assets/{markdown-DwLB5Rib.js → markdown-BksexNux.js} +0 -0
  209. /package/web/assets/{mips-DLbIq1yM.js → mips-DKSTezUQ.js} +0 -0
  210. /package/web/assets/{msdax-D4IjoZ6m.js → msdax-SeFNE86e.js} +0 -0
  211. /package/web/assets/{mysql-DQL_jy6H.js → mysql-5TQWJDdB.js} +0 -0
  212. /package/web/assets/{objective-c-D74wM5bv.js → objective-c-DeaYl08g.js} +0 -0
  213. /package/web/assets/{pascal-5tRlZk4O.js → pascal-CGBtIfZg.js} +0 -0
  214. /package/web/assets/{pascaligo-CAE4rAEt.js → pascaligo-B85wuk0w.js} +0 -0
  215. /package/web/assets/{perl-DREAbuQT.js → perl-Bl61zsEQ.js} +0 -0
  216. /package/web/assets/{pgsql-DASKdyAW.js → pgsql-KgXv5Cq7.js} +0 -0
  217. /package/web/assets/{php-C37ZWqoO.js → php-KRRf0kxu.js} +0 -0
  218. /package/web/assets/{pla-v5u9R8i1.js → pla-CFpO6lSz.js} +0 -0
  219. /package/web/assets/{postiats-Szt5m-7G.js → postiats-B0jQ-DXO.js} +0 -0
  220. /package/web/assets/{powerquery-BzVrUSu3.js → powerquery-T9Ge5xUx.js} +0 -0
  221. /package/web/assets/{powershell-BdbPbX_X.js → powershell-rmYjKoE4.js} +0 -0
  222. /package/web/assets/{protobuf-qqDa50tu.js → protobuf-B--9ME3E.js} +0 -0
  223. /package/web/assets/{pug-Cu20UQ5w.js → pug-y0-ppnAV.js} +0 -0
  224. /package/web/assets/{qsharp-DcbHL5X7.js → qsharp-DobgOAC8.js} +0 -0
  225. /package/web/assets/{r-Bvig6Flk.js → r-BHQZIThn.js} +0 -0
  226. /package/web/assets/{redis-BxHDcW3-.js → redis-DMHMVIni.js} +0 -0
  227. /package/web/assets/{redshift-B8dvlzjH.js → redshift-ilRjY5HF.js} +0 -0
  228. /package/web/assets/{restructuredtext-npodtAFM.js → restructuredtext-jr4YYJbv.js} +0 -0
  229. /package/web/assets/{ruby-DiofbcJD.js → ruby-D-h_0NIs.js} +0 -0
  230. /package/web/assets/{rust-BjYid3-m.js → rust-VxeTSQU2.js} +0 -0
  231. /package/web/assets/{sb-CzcPAP71.js → sb-BlhKufrP.js} +0 -0
  232. /package/web/assets/{scala-Ci4wFrYi.js → scala-IAk6nSCU.js} +0 -0
  233. /package/web/assets/{scheme-D3iWhvP7.js → scheme-Dggdm5LS.js} +0 -0
  234. /package/web/assets/{scss-DdlqDgmu.js → scss-Bzj9Cp1q.js} +0 -0
  235. /package/web/assets/{shell-Bawb9gbH.js → shell-CSwYJdGJ.js} +0 -0
  236. /package/web/assets/{solidity-Z2Sq8PBC.js → solidity-DnWqIXnk.js} +0 -0
  237. /package/web/assets/{sophia--yD-H1Ow.js → sophia-ClaYC_5N.js} +0 -0
  238. /package/web/assets/{sparql-0vv3-wLi.js → sparql-CfjIZAcz.js} +0 -0
  239. /package/web/assets/{sql-0gdWKhmJ.js → sql-DxdJ7snd.js} +0 -0
  240. /package/web/assets/{st-rE-x-DTZ.js → st-DJgQE1uj.js} +0 -0
  241. /package/web/assets/{swift-CSKeG8Ne.js → swift-5cz3wIvv.js} +0 -0
  242. /package/web/assets/{systemverilog-CblNM3Im.js → systemverilog-C8-7QuIt.js} +0 -0
  243. /package/web/assets/{tcl-BYnzj-GZ.js → tcl-C99u42o5.js} +0 -0
  244. /package/web/assets/{twig-DiGWiEtp.js → twig-Cv9kOcBK.js} +0 -0
  245. /package/web/assets/{typespec-a6xMcpXw.js → typespec-DF1s-ehc.js} +0 -0
  246. /package/web/assets/{uuid-B9GFVXPm.js → uuid-6HQMUkhT.js} +0 -0
  247. /package/web/assets/{vb---51HVMC.js → vb-4mpz9ITX.js} +0 -0
  248. /package/web/assets/{w3c-keyname-DDCGDLuI.js → w3c-keyname-emj7Fjc1.js} +0 -0
  249. /package/web/assets/{wgsl-2A8z4pT5.js → wgsl-xExw6Z08.js} +0 -0
package/agent/index.js CHANGED
@@ -397,6 +397,7 @@ var DockerRunner = class {
397
397
  );
398
398
  return {
399
399
  pid: void 0,
400
+ containerName,
400
401
  stdout,
401
402
  stderr,
402
403
  exitPromise,
@@ -526,6 +527,7 @@ var DockerRunner = class {
526
527
  })();
527
528
  return {
528
529
  pid: void 0,
530
+ containerName,
529
531
  stdout,
530
532
  stderr,
531
533
  exitPromise,
@@ -572,6 +574,7 @@ var DockerRunner = class {
572
574
  );
573
575
  return {
574
576
  pid: void 0,
577
+ containerName,
575
578
  stdout,
576
579
  stderr,
577
580
  exitPromise,
@@ -902,7 +905,13 @@ var NotificationPreferencesSchema = z5.object({
902
905
  ai_conversation_error: z5.boolean().default(true),
903
906
  service_error_log: z5.boolean().default(true),
904
907
  service_status_changed: z5.boolean().default(true),
905
- service_health_changed: z5.boolean().default(true)
908
+ service_health_changed: z5.boolean().default(true),
909
+ /** Service IDs excluded from error-log notifications */
910
+ service_error_log_excluded: z5.array(z5.string().max(100)).max(500).default([]),
911
+ /** Service IDs excluded from status-change notifications */
912
+ service_status_changed_excluded: z5.array(z5.string().max(100)).max(500).default([]),
913
+ /** Service IDs excluded from health-change notifications */
914
+ service_health_changed_excluded: z5.array(z5.string().max(100)).max(500).default([])
906
915
  });
907
916
  var SettingsSchema = z5.object({
908
917
  mode: z5.enum(["local-simple", "cloud"]),
@@ -931,7 +940,10 @@ var SettingsPrivateSchema = z5.object({
931
940
  ai_conversation_error: true,
932
941
  service_error_log: true,
933
942
  service_status_changed: true,
934
- service_health_changed: true
943
+ service_health_changed: true,
944
+ service_error_log_excluded: [],
945
+ service_status_changed_excluded: [],
946
+ service_health_changed_excluded: []
935
947
  })),
936
948
  traefikConfig: TraefikConfigSchema.optional()
937
949
  });
@@ -948,9 +960,6 @@ var safePath = z6.string().min(1).max(4096).refine(
948
960
  ).refine(
949
961
  (p) => !/(^|[/\\])\.\.([/\\]|$)/.test(p),
950
962
  { message: "path must not contain path-traversal sequences (..)" }
951
- ).refine(
952
- (p) => p.startsWith("/") || /^[A-Za-z]:[/\\]/.test(p),
953
- { message: "path must be absolute" }
954
963
  );
955
964
  var ConsoleLogSourceSchema = z6.object({
956
965
  type: z6.literal("console")
@@ -959,7 +968,8 @@ var FileLogSourceSchema = z6.object({
959
968
  type: z6.literal("file"),
960
969
  path: safePath,
961
970
  encoding: z6.string().max(32).default("utf-8"),
962
- startFromEnd: z6.boolean().default(true)
971
+ startFromEnd: z6.boolean().default(true),
972
+ createIfNotExists: z6.boolean().default(false)
963
973
  });
964
974
  var MongoLogSourceSchema = z6.object({
965
975
  type: z6.literal("mongo"),
@@ -2010,6 +2020,21 @@ var FileLogSource = class extends EventEmitter2 {
2010
2020
  this.emitSystemLog(processId, `[FileLogSource] Permission denied: ${this.config.path}`, "error");
2011
2021
  return;
2012
2022
  }
2023
+ if (nodeErr.code === "ENOENT" && this.config.createIfNotExists) {
2024
+ try {
2025
+ await fsPromises.mkdir(
2026
+ (await import("path")).dirname(this.config.path),
2027
+ { recursive: true }
2028
+ );
2029
+ await fsPromises.writeFile(this.config.path, "", { flag: "a" });
2030
+ this.emitSystemLog(processId, `[FileLogSource] File created: ${this.config.path}`, "info");
2031
+ break;
2032
+ } catch (createErr) {
2033
+ const ce = createErr;
2034
+ this.emitSystemLog(processId, `[FileLogSource] Failed to create file: ${ce.message}`, "error");
2035
+ return;
2036
+ }
2037
+ }
2013
2038
  attempts++;
2014
2039
  if (attempts >= RETRY_ATTEMPTS) {
2015
2040
  this.emitSystemLog(processId, `[FileLogSource] File not found after ${RETRY_ATTEMPTS} retries: ${this.config.path}`, "error");
@@ -2475,7 +2500,47 @@ function createLogSource(config, logBuffer, logParser) {
2475
2500
 
2476
2501
  // src/services/metrics-collector.ts
2477
2502
  import pidusage from "pidusage";
2503
+ import { execFile } from "child_process";
2478
2504
  import { EventEmitter as EventEmitter5 } from "events";
2505
+ async function getDockerStats(containerName) {
2506
+ return new Promise((resolve) => {
2507
+ execFile(
2508
+ "docker",
2509
+ ["stats", "--no-stream", "--format", "{{json .}}", containerName],
2510
+ { timeout: 5e3 },
2511
+ (err, stdout) => {
2512
+ if (err || !stdout.trim()) {
2513
+ resolve(null);
2514
+ return;
2515
+ }
2516
+ try {
2517
+ const data = JSON.parse(stdout.trim());
2518
+ const cpu = parseFloat(data.CPUPerc.replace("%", ""));
2519
+ const memStr = data.MemUsage.split("/")[0].trim();
2520
+ const memory = parseMemBytes(memStr);
2521
+ resolve({ cpu: isNaN(cpu) ? 0 : cpu, memory });
2522
+ } catch {
2523
+ resolve(null);
2524
+ }
2525
+ }
2526
+ );
2527
+ });
2528
+ }
2529
+ function parseMemBytes(str) {
2530
+ const m = str.match(/^([\d.]+)\s*(B|kB|MB|MiB|GiB|GB)$/i);
2531
+ if (!m) return 0;
2532
+ const val = parseFloat(m[1]);
2533
+ const unit = m[2].toLowerCase();
2534
+ const multipliers = {
2535
+ b: 1,
2536
+ kb: 1e3,
2537
+ mb: 1e6,
2538
+ mib: 1024 * 1024,
2539
+ gib: 1024 ** 3,
2540
+ gb: 1e9
2541
+ };
2542
+ return Math.round(val * (multipliers[unit] ?? 1));
2543
+ }
2479
2544
  var MetricsCollector = class extends EventEmitter5 {
2480
2545
  intervals = /* @__PURE__ */ new Map();
2481
2546
  intervalMs;
@@ -2483,7 +2548,7 @@ var MetricsCollector = class extends EventEmitter5 {
2483
2548
  super();
2484
2549
  this.intervalMs = intervalMs;
2485
2550
  }
2486
- /** Start collecting metrics for a process */
2551
+ /** Start collecting metrics for a native process (by PID). */
2487
2552
  startCollecting(processId, pid) {
2488
2553
  this.stopCollecting(processId);
2489
2554
  const interval = setInterval(async () => {
@@ -2502,6 +2567,25 @@ var MetricsCollector = class extends EventEmitter5 {
2502
2567
  }, this.intervalMs);
2503
2568
  this.intervals.set(processId, interval);
2504
2569
  }
2570
+ /** Start collecting metrics for a Docker container (by container name). */
2571
+ startCollectingDocker(processId, containerName) {
2572
+ this.stopCollecting(processId);
2573
+ const interval = setInterval(async () => {
2574
+ const stats = await getDockerStats(containerName);
2575
+ if (!stats) {
2576
+ this.stopCollecting(processId);
2577
+ return;
2578
+ }
2579
+ const metrics = {
2580
+ processId,
2581
+ cpu: stats.cpu,
2582
+ memory: stats.memory,
2583
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
2584
+ };
2585
+ this.emit("metrics", metrics);
2586
+ }, this.intervalMs);
2587
+ this.intervals.set(processId, interval);
2588
+ }
2505
2589
  /** Stop collecting metrics for a process */
2506
2590
  stopCollecting(processId) {
2507
2591
  const interval = this.intervals.get(processId);
@@ -2510,23 +2594,31 @@ var MetricsCollector = class extends EventEmitter5 {
2510
2594
  this.intervals.delete(processId);
2511
2595
  }
2512
2596
  }
2513
- /** Get current metrics for a process (one-shot, uses first active PID) */
2597
+ /** Get current metrics for a process (one-shot, uses first active PID or container name). */
2514
2598
  async getMetrics(processId) {
2515
2599
  const proc = processStore.get(processId);
2516
2600
  if (!proc) return null;
2517
2601
  const activePid = proc.commandProcesses.find((cp) => cp.pid !== null)?.pid;
2518
- if (!activePid) return null;
2519
- try {
2520
- const stats = await pidusage(activePid);
2521
- return {
2522
- processId,
2523
- cpu: stats.cpu,
2524
- memory: stats.memory,
2525
- timestamp: (/* @__PURE__ */ new Date()).toISOString()
2526
- };
2527
- } catch {
2528
- return null;
2602
+ if (activePid) {
2603
+ try {
2604
+ const stats = await pidusage(activePid);
2605
+ return {
2606
+ processId,
2607
+ cpu: stats.cpu,
2608
+ memory: stats.memory,
2609
+ timestamp: (/* @__PURE__ */ new Date()).toISOString()
2610
+ };
2611
+ } catch {
2612
+ }
2613
+ }
2614
+ const containerName = proc.commandProcesses.find((cp) => cp.containerName)?.containerName;
2615
+ if (containerName) {
2616
+ const stats = await getDockerStats(containerName);
2617
+ if (stats) {
2618
+ return { processId, ...stats, timestamp: (/* @__PURE__ */ new Date()).toISOString() };
2619
+ }
2529
2620
  }
2621
+ return null;
2530
2622
  }
2531
2623
  /** Stop all collection intervals */
2532
2624
  stopAll() {
@@ -2548,8 +2640,8 @@ import { homedir as homedir4 } from "os";
2548
2640
  import { z as z20 } from "zod";
2549
2641
 
2550
2642
  // src/services/traefik-manager.ts
2551
- import { spawn, execFile } from "child_process";
2552
- import { mkdir as mkdir2, writeFile as writeFile2, rename, chmod, access as access2, readFile } from "fs/promises";
2643
+ import { spawn, execFile as execFile2 } from "child_process";
2644
+ import { mkdir as mkdir3, writeFile as writeFile3, rename, chmod, access as access2, readFile } from "fs/promises";
2553
2645
  import { X509Certificate } from "crypto";
2554
2646
  import { join as join2 } from "path";
2555
2647
  import { homedir as homedir3, platform } from "os";
@@ -2575,7 +2667,7 @@ var TraefikManager = class {
2575
2667
  }
2576
2668
  async atomicWrite(filePath, content) {
2577
2669
  const tmpPath = filePath + ".tmp";
2578
- await writeFile2(tmpPath, content, "utf-8");
2670
+ await writeFile3(tmpPath, content, "utf-8");
2579
2671
  await rename(tmpPath, filePath);
2580
2672
  }
2581
2673
  async applyConfig(config) {
@@ -2584,7 +2676,7 @@ var TraefikManager = class {
2584
2676
  await this.stop();
2585
2677
  return;
2586
2678
  }
2587
- await mkdir2(this.dynamicDir, { recursive: true });
2679
+ await mkdir3(this.dynamicDir, { recursive: true });
2588
2680
  await this.writeStaticConfig(config);
2589
2681
  await this.regenerateDynamic();
2590
2682
  await this.stop();
@@ -2629,7 +2721,7 @@ var TraefikManager = class {
2629
2721
  await this.atomicWrite(this.staticConfigPath, yaml);
2630
2722
  }
2631
2723
  async regenerateDynamic() {
2632
- await mkdir2(this.dynamicDir, { recursive: true });
2724
+ await mkdir3(this.dynamicDir, { recursive: true });
2633
2725
  const processes = processStore.getAll();
2634
2726
  const entries = processes.flatMap(
2635
2727
  (p) => (p.serviceConfig.localUrls ?? []).map((lu) => ({ url: lu.url, port: lu.port }))
@@ -2714,7 +2806,7 @@ var TraefikManager = class {
2714
2806
  }
2715
2807
  async ensureAcmeJson() {
2716
2808
  try {
2717
- await writeFile2(this.acmeStorePath, "{}", { flag: "wx" });
2809
+ await writeFile3(this.acmeStorePath, "{}", { flag: "wx" });
2718
2810
  } catch (err) {
2719
2811
  if (err.code !== "EEXIST") throw err;
2720
2812
  }
@@ -2779,7 +2871,7 @@ var TraefikManager = class {
2779
2871
  this.debounceTimer = null;
2780
2872
  }
2781
2873
  await new Promise((resolve) => {
2782
- execFile("docker", ["rm", "-f", "runeya-traefik"], { timeout: 1e4 }, () => resolve());
2874
+ execFile2("docker", ["rm", "-f", "runeya-traefik"], { timeout: 1e4 }, () => resolve());
2783
2875
  });
2784
2876
  await new Promise((resolve) => setTimeout(resolve, 500));
2785
2877
  }
@@ -2821,7 +2913,7 @@ var TraefikManager = class {
2821
2913
  }
2822
2914
  async getLogs(lines = 100) {
2823
2915
  return new Promise((resolve) => {
2824
- execFile("docker", ["logs", "--tail", String(lines), "runeya-traefik"], { timeout: 1e4 }, (err, stdout, stderr) => {
2916
+ execFile2("docker", ["logs", "--tail", String(lines), "runeya-traefik"], { timeout: 1e4 }, (err, stdout, stderr) => {
2825
2917
  if (err) {
2826
2918
  resolve("");
2827
2919
  return;
@@ -2840,7 +2932,7 @@ var TraefikManager = class {
2840
2932
  }
2841
2933
  async forceRenewCert() {
2842
2934
  if (!this.config?.enabled) throw new Error("Traefik non activ\xE9");
2843
- await writeFile2(this.acmeStorePath, "{}", "utf-8");
2935
+ await writeFile3(this.acmeStorePath, "{}", "utf-8");
2844
2936
  await chmod(this.acmeStorePath, 384);
2845
2937
  await this.stop();
2846
2938
  await this.spawnTraefik(this.config);
@@ -2872,7 +2964,7 @@ var TraefikManager = class {
2872
2964
  let dockerAvailable = false;
2873
2965
  try {
2874
2966
  await new Promise((resolve, reject) => {
2875
- execFile("docker", ["info", "--format", "{{.ServerVersion}}"], { timeout: 5e3 }, (err) => {
2967
+ execFile2("docker", ["info", "--format", "{{.ServerVersion}}"], { timeout: 5e3 }, (err) => {
2876
2968
  if (err) reject(err);
2877
2969
  else resolve();
2878
2970
  });
@@ -2892,7 +2984,7 @@ var TraefikManager = class {
2892
2984
  if (dockerAvailable) {
2893
2985
  try {
2894
2986
  const output = await new Promise((resolve, reject) => {
2895
- execFile("docker", ["inspect", "--format", "{{.State.Running}}", "runeya-traefik"], { timeout: 5e3 }, (err, stdout) => {
2987
+ execFile2("docker", ["inspect", "--format", "{{.State.Running}}", "runeya-traefik"], { timeout: 5e3 }, (err, stdout) => {
2896
2988
  if (err) reject(err);
2897
2989
  else resolve(stdout.trim());
2898
2990
  });
@@ -3390,6 +3482,7 @@ var ProcessManager = class extends EventEmitter7 {
3390
3482
  commandId: cmd.id,
3391
3483
  runnerProcess,
3392
3484
  pid: null,
3485
+ containerName: runnerProcess.containerName ?? null,
3393
3486
  exitCode: null
3394
3487
  };
3395
3488
  proc.commandProcesses = [...proc.commandProcesses, cmdProcess];
@@ -3475,6 +3568,7 @@ var ProcessManager = class extends EventEmitter7 {
3475
3568
  commandId: cmd.id,
3476
3569
  runnerProcess,
3477
3570
  pid: runnerProcess.pid ?? null,
3571
+ containerName: runnerProcess.containerName ?? null,
3478
3572
  exitCode: null
3479
3573
  };
3480
3574
  proc.commandProcesses = [...proc.commandProcesses, cmdProcess];
@@ -3489,6 +3583,8 @@ var ProcessManager = class extends EventEmitter7 {
3489
3583
  this.consoleLogSource.attach(processId, runnerProcess.stdout, runnerProcess.stderr, runnerProcess.pid ?? null);
3490
3584
  if (runnerProcess.pid) {
3491
3585
  this.metricsCollector.startCollecting(processId, runnerProcess.pid);
3586
+ } else if (runnerProcess.containerName) {
3587
+ this.metricsCollector.startCollectingDocker(processId, runnerProcess.containerName);
3492
3588
  }
3493
3589
  runnerProcess.exitPromise.then(({ exitCode, signal, error }) => {
3494
3590
  const current = processStore.get(processId);
@@ -3650,9 +3746,26 @@ var ProcessManager = class extends EventEmitter7 {
3650
3746
  const proc = this.activeShortcuts.get(key);
3651
3747
  if (proc) proc.kill("SIGTERM");
3652
3748
  }
3653
- cancelAdHocCommand(processId) {
3654
- const proc = this.activeAdHocCommands.get(processId);
3655
- if (proc) proc.kill("SIGTERM");
3749
+ cancelAdHocCommand(processId, commandId) {
3750
+ const targets = [];
3751
+ if (commandId) {
3752
+ const key = `${processId}:${commandId}`;
3753
+ const proc = this.activeAdHocCommands.get(key);
3754
+ if (proc) targets.push(proc);
3755
+ } else {
3756
+ for (const [key, proc] of this.activeAdHocCommands) {
3757
+ if (key.startsWith(`${processId}:`)) targets.push(proc);
3758
+ }
3759
+ }
3760
+ for (const proc of targets) {
3761
+ proc.kill("SIGTERM");
3762
+ void Promise.race([
3763
+ proc.exitPromise,
3764
+ new Promise((resolve) => setTimeout(resolve, 3e3))
3765
+ ]).then((result) => {
3766
+ if (result === void 0) proc.kill("SIGKILL");
3767
+ });
3768
+ }
3656
3769
  }
3657
3770
  /** Execute a shortcut command and stream its output as logs for the given process */
3658
3771
  async executeShortcut(processId, shortcut) {
@@ -3692,7 +3805,7 @@ var ProcessManager = class extends EventEmitter7 {
3692
3805
  return { exitCode };
3693
3806
  }
3694
3807
  /** Execute an ad-hoc command and stream its output as logs for the given process */
3695
- async executeAdHocCommand(processId, command, cwd) {
3808
+ async executeAdHocCommand(processId, command, cwd, commandId) {
3696
3809
  const proc = processStore.get(processId);
3697
3810
  if (!proc) throw new Error(`Process ${processId} not found`);
3698
3811
  const jsParsers = proc.serviceConfig.resolvedLogParsers ?? [];
@@ -3712,10 +3825,11 @@ var ProcessManager = class extends EventEmitter7 {
3712
3825
  this.consoleLogSource.addSystemLog(processId, `Failed to start: ${err instanceof Error ? err.message : String(err)}`, "error", { id: randomUUID3(), type: "command-fail", header: command, state: "self" });
3713
3826
  return { exitCode: 1 };
3714
3827
  }
3715
- this.activeAdHocCommands.set(processId, runnerProcess);
3828
+ const cmdKey = `${processId}:${commandId ?? randomUUID3()}`;
3829
+ this.activeAdHocCommands.set(cmdKey, runnerProcess);
3716
3830
  this.consoleLogSource.attach(processId, runnerProcess.stdout, runnerProcess.stderr, runnerProcess.pid ?? null);
3717
3831
  const { exitCode, signal, error } = await runnerProcess.exitPromise;
3718
- this.activeAdHocCommands.delete(processId);
3832
+ this.activeAdHocCommands.delete(cmdKey);
3719
3833
  if (signal) {
3720
3834
  this.consoleLogSource.addSystemLog(processId, `command cancelled`, "info");
3721
3835
  } else if (exitCode !== 0) {
@@ -3967,17 +4081,18 @@ var processRouter = router({
3967
4081
  return { success: true };
3968
4082
  }),
3969
4083
  /** Cancel a running ad-hoc command */
3970
- cancelAdHocCommand: protectedProcedure.input(z22.object({ id: z22.string().max(128) })).mutation(({ input }) => {
3971
- processManager.cancelAdHocCommand(input.id);
4084
+ cancelAdHocCommand: protectedProcedure.input(z22.object({ id: z22.string().max(128), commandId: z22.string().max(128).optional() })).mutation(({ input }) => {
4085
+ processManager.cancelAdHocCommand(input.id, input.commandId);
3972
4086
  return { success: true };
3973
4087
  }),
3974
4088
  /** Execute an ad-hoc command and stream output into the process log */
3975
4089
  executeAdHocCommand: protectedProcedure.input(z22.object({
3976
4090
  id: z22.string().max(128),
3977
4091
  command: z22.string().min(1).max(4096),
3978
- cwd: z22.string().max(4096).optional()
4092
+ cwd: z22.string().max(4096).optional(),
4093
+ commandId: z22.string().max(128).optional()
3979
4094
  })).mutation(async ({ input }) => {
3980
- const result = await processManager.executeAdHocCommand(input.id, input.command, input.cwd);
4095
+ const result = await processManager.executeAdHocCommand(input.id, input.command, input.cwd, input.commandId);
3981
4096
  return result;
3982
4097
  }),
3983
4098
  /** List active log source types for a process */
@@ -4113,9 +4228,9 @@ var processRouter = router({
4113
4228
 
4114
4229
  // src/trpc/routers/health.ts
4115
4230
  import { networkInterfaces as networkInterfaces2 } from "os";
4116
- import { execFile as execFile2 } from "child_process";
4231
+ import { execFile as execFile3 } from "child_process";
4117
4232
  import { promisify } from "util";
4118
- var execFileAsync = promisify(execFile2);
4233
+ var execFileAsync = promisify(execFile3);
4119
4234
  var startedAt = Date.now();
4120
4235
  function getLanIp2() {
4121
4236
  const nets = networkInterfaces2();
@@ -4280,12 +4395,12 @@ var terminalRouter = router({
4280
4395
  // src/trpc/routers/git.ts
4281
4396
  import { z as z24 } from "zod";
4282
4397
  import { TRPCError as TRPCError4 } from "@trpc/server";
4283
- import { execFile as execFile3, spawn as spawn3 } from "child_process";
4398
+ import { execFile as execFile4, spawn as spawn3 } from "child_process";
4284
4399
  import { promisify as promisify2 } from "util";
4285
4400
  import { existsSync, watch as fsWatch } from "fs";
4286
4401
  import { promises as fsPromises2 } from "fs";
4287
4402
  import { join as join4, resolve as resolvePath } from "path";
4288
- var execFileAsync2 = promisify2(execFile3);
4403
+ var execFileAsync2 = promisify2(execFile4);
4289
4404
  var GIT_TIMEOUT = 15e3;
4290
4405
  var DIFF_MAX_BYTES = 512 * 1024;
4291
4406
  var CWD_SCHEMA = z24.string().min(1).max(4096);