@runeya/runeya 2.0.14 → 2.0.18

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 (237) hide show
  1. package/agent/index.js +259 -20
  2. package/agent/index.js.map +1 -1
  3. package/agent-manager-7IDZTNVZ-HVRWIXYW.js +8 -0
  4. package/{chunk-AJW7LDO5.js → chunk-AHOJAT74.js} +9 -3
  5. package/chunk-AHOJAT74.js.map +1 -0
  6. package/{dist-TI3HFRUW.js → dist-CJTJWMCR.js} +321 -92
  7. package/dist-CJTJWMCR.js.map +1 -0
  8. package/index.js +1 -1
  9. package/package.json +1 -1
  10. package/web/assets/{AddressBar.vue-B6BOLYmO.js → AddressBar.vue-BZnGu8vW.js} +1 -1
  11. package/web/assets/{AgentScalarChatInterface.vue-DKSmjtvV.js → AgentScalarChatInterface.vue-QkKS0oIt.js} +1 -1
  12. package/web/assets/{AgentTerminalPage-BZ6jaRAs.js → AgentTerminalPage-CfI3DoEO.js} +1 -1
  13. package/web/assets/AiChatPage-C_j-aspS.js +1 -0
  14. package/web/assets/{AppLayout-B7-y0tBI.css → AppLayout-Cf8sRK63.css} +1 -1
  15. package/web/assets/{AppLayout-DnMCPCO8.js → AppLayout-CgU4s6lb.js} +1 -1
  16. package/web/assets/{AuditPage-CTdEvLE-.js → AuditPage-C42BeKr5.js} +1 -1
  17. package/web/assets/{CodeInput.vue-Sp2dM8hl.js → CodeInput.vue-BGBOdacc.js} +1 -1
  18. package/web/assets/{Collection.vue-CdPjaC9d.js → Collection.vue-Vub9L9if.js} +1 -1
  19. package/web/assets/{CollectionAuthentication.vue-DMPykUah.js → CollectionAuthentication.vue-DMa9nYTH.js} +1 -1
  20. package/web/assets/CollectionCookies.vue-Dr_bErXS.js +1 -0
  21. package/web/assets/{CollectionEnvironment.vue-DKab6xJJ.js → CollectionEnvironment.vue-CcS_RH1F.js} +1 -1
  22. package/web/assets/{CollectionOverview.vue-DlODh8Vk.js → CollectionOverview.vue-Cm3m-3IA.js} +1 -1
  23. package/web/assets/CollectionScripts.vue-DwfCDW_N.js +1 -0
  24. package/web/assets/{CollectionServers.vue-Br-QackN.js → CollectionServers.vue-CDU7RCJI.js} +1 -1
  25. package/web/assets/{CollectionSettings.vue-Cm6NQbDm.js → CollectionSettings.vue-QApKyKpx.js} +1 -1
  26. package/web/assets/CollectionSync.vue-2mc6W9Vb.js +1 -0
  27. package/web/assets/{CommandActionInput.vue-CZ3-rqSL.js → CommandActionInput.vue-CSydiKjM.js} +1 -1
  28. package/web/assets/{Cookies.vue-Duz-a-ga.js → Cookies.vue-2UMujX_l.js} +1 -1
  29. package/web/assets/DashboardPage-CSkUCQHY.css +1 -0
  30. package/web/assets/DashboardPage-Dt5zSm2a.js +1 -0
  31. package/web/assets/{DataTable.vue-Dorr-r7J.js → DataTable.vue-BKb6QQRz.js} +1 -1
  32. package/web/assets/{DataTableCheckbox.vue-CATn-YYp.js → DataTableCheckbox.vue-DC2n-xeZ.js} +1 -1
  33. package/web/assets/{DataTableHeader.vue-C3SUSaR8.js → DataTableHeader.vue-Cbolg5AE.js} +1 -1
  34. package/web/assets/{DataTableInput.vue-_06pwPUA.js → DataTableInput.vue-DoVPLXed.js} +1 -1
  35. package/web/assets/{DeleteSidebarListElement.vue-DoqRnMXx.js → DeleteSidebarListElement.vue-Br-Lvh7k.js} +1 -1
  36. package/web/assets/{EditSidebarListElement.vue-BqTw6Tho.js → EditSidebarListElement.vue-BVJ4wsTf.js} +1 -1
  37. package/web/assets/{EditorIcon-CbpIT0A1.js → EditorIcon-D3F3QHD_.js} +1 -1
  38. package/web/assets/{EmptyState.vue-Bur5L0a4.js → EmptyState.vue-DMCTVrXN.js} +1 -1
  39. package/web/assets/{Environment.vue-C50lH9cP.js → Environment.vue-CEBYjegx.js} +1 -1
  40. package/web/assets/{EnvironmentForm-BDfzXuHx.js → EnvironmentForm-D9pUNi_S.js} +1 -1
  41. package/web/assets/{EnvironmentFormPage-CLylRN6B.js → EnvironmentFormPage-BQwHvpiH.js} +1 -1
  42. package/web/assets/{EnvironmentListPage-DlUT6LnX.js → EnvironmentListPage-BEX6YTjm.js} +1 -1
  43. package/web/assets/{EnvironmentModal.vue-Dz5CArRX.js → EnvironmentModal.vue-Bipjnu_F.js} +1 -1
  44. package/web/assets/{EnvironmentSelector-DHoYUCTH.js → EnvironmentSelector-BsLO-o9W.js} +1 -1
  45. package/web/assets/{Form.vue-BzZCMgN1.js → Form.vue-CwujTuIH.js} +1 -1
  46. package/web/assets/{IconSelector.vue-BCmeqlrs.js → IconSelector.vue-xGa1snoB.js} +1 -1
  47. package/web/assets/KanbanBoardPage-CS0DFaYQ.js +2 -0
  48. package/web/assets/KanbanBoardPage-GHv836NO.css +1 -0
  49. package/web/assets/{KanbanListPage-BLdNz80q.js → KanbanListPage-BlycDa8i.js} +1 -1
  50. package/web/assets/{LaunchProjectPage-DjRA2D3h.js → LaunchProjectPage-CQPXVRR8.js} +1 -1
  51. package/web/assets/{LaunchServicesPage-CKaGcu3z.js → LaunchServicesPage-DIc47d5w.js} +1 -1
  52. package/web/assets/{LogViewer-CtX_6uFM.js → LogViewer-D-j9SP-8.js} +1 -1
  53. package/web/assets/{ProcessControls-BY-_9zo7.js → ProcessControls-D3MHr6vJ.js} +1 -1
  54. package/web/assets/{ProcessDetailPage-Bqis1qMA.js → ProcessDetailPage-DArVdn5O.js} +1 -1
  55. package/web/assets/{ProcessMetrics-DQybvwcA.js → ProcessMetrics-tRbudcTQ.js} +1 -1
  56. package/web/assets/{ProjectDetailPage-FBPonwd5.js → ProjectDetailPage-DQWbqmra.js} +1 -1
  57. package/web/assets/{ProjectListPage-xwlVXN8A.js → ProjectListPage-BArhG94f.js} +1 -1
  58. package/web/assets/{RandomJobTestPage-0pqne-FD.js → RandomJobTestPage-cx0kQXnf.js} +1 -1
  59. package/web/assets/{Request.vue-Db4XEPKt.js → Request.vue-B9DoYtI8.js} +1 -1
  60. package/web/assets/{RequestAuth.vue-CK1A6ySt.js → RequestAuth.vue-CqHxzl6g.js} +1 -1
  61. package/web/assets/{RequestRoot.vue-BLF0GGT5.js → RequestRoot.vue-C28ISMld.js} +1 -1
  62. package/web/assets/{ScalarAsciiArt.vue-BPdUsXWj.js → ScalarAsciiArt.vue-BYd0f-av.js} +1 -1
  63. package/web/assets/{ScalarIconEyeSlash.vue-BBDBShRO.js → ScalarIconEyeSlash.vue-Ct2ktTXq.js} +1 -1
  64. package/web/assets/{ScalarIconTrash.vue-Tpr15aNY.js → ScalarIconTrash.vue-DQO_gQ8s.js} +1 -1
  65. package/web/assets/{ScenarioEditorPage-DNuo-2Gi.js → ScenarioEditorPage-DP06DP64.js} +1 -1
  66. package/web/assets/{ServerVariablesForm.vue-XLQ145gw.js → ServerVariablesForm.vue-D11m7aiX.js} +1 -1
  67. package/web/assets/{ServiceControlsBar-CCTGcA1t.js → ServiceControlsBar-DMq83CtH.js} +1 -1
  68. package/web/assets/{ServiceDetailPage-BELECRic.css → ServiceDetailPage-BngfQIAo.css} +1 -1
  69. package/web/assets/ServiceDetailPage-Cn1MTG_u.js +2 -0
  70. package/web/assets/{ServiceFormPage-F3boRKs-.js → ServiceFormPage-CyIValC5.js} +1 -1
  71. package/web/assets/{Settings.vue-D_1yQu6i.js → Settings.vue-CCeUjK5z.js} +1 -1
  72. package/web/assets/{SettingsPage-CgJN_IL7.css → SettingsPage-BhGoaUHP.css} +1 -1
  73. package/web/assets/SettingsPage-LVnvVA93.js +225 -0
  74. package/web/assets/{SetupKeyPage-BcaSoLjU.js → SetupKeyPage-DOxR0hTs.js} +1 -1
  75. package/web/assets/{SetupPage-mCVAKLtm.js → SetupPage-DTQqk8IW.js} +1 -1
  76. package/web/assets/{Sidebar.vue-De4YlW0c.js → Sidebar.vue-BLpHEfAt.js} +1 -1
  77. package/web/assets/{SidebarButton.vue-CctYiTRp.js → SidebarButton.vue-CNMSjNtm.js} +1 -1
  78. package/web/assets/{SidebarListElement.vue-Cv7jUZIM.js → SidebarListElement.vue-DSsy6NQT.js} +1 -1
  79. package/web/assets/TiptapEditor-DzMKh7Iq.css +1 -0
  80. package/web/assets/TiptapEditor-TuQki585.js +181 -0
  81. package/web/assets/{UnlockPage-BSpzyZnd.js → UnlockPage-D4x8qq_i.js} +1 -1
  82. package/web/assets/{VariablesTable-Dn3IvplD.js → VariablesTable-BP8KuwPI.js} +1 -1
  83. package/web/assets/{ViewLayout.vue-fiagi8zc.js → ViewLayout.vue-Dui_p5J4.js} +1 -1
  84. package/web/assets/{ViewLayoutContent.vue-BehGrsED.js → ViewLayoutContent.vue-CZRQTJFb.js} +1 -1
  85. package/web/assets/{ViewLayoutSection.vue-D4icCgQI.js → ViewLayoutSection.vue-C87DZ2QU.js} +1 -1
  86. package/web/assets/WikiPage-BrgnqOvx.js +1 -0
  87. package/web/assets/WikiView-CMF4PzXp.css +1 -0
  88. package/web/assets/WikiView-Decl55xY.js +1 -0
  89. package/web/assets/{active-entities-CkBGjwu9.js → active-entities-DEkfqGrE.js} +1 -1
  90. package/web/assets/{api-reference-D1EfYtPj.js → api-reference-DP5iGzGP.js} +1 -1
  91. package/web/assets/{autocomplete-CjBHTJWh.js → autocomplete-DcAAfn0y.js} +1 -1
  92. package/web/assets/{card-CsmU2iiY.js → card-DyK4dvjg.js} +1 -1
  93. package/web/assets/{checkbox-B5XZqi1U.js → checkbox-Csn61_gJ.js} +1 -1
  94. package/web/assets/{chip-C4pSomPm.js → chip-DkjFl7f-.js} +1 -1
  95. package/web/assets/{column-CR3Hix4J.js → column-DyznW54C.js} +1 -1
  96. package/web/assets/{core-CtGUajLi.js → core-BXP8Yp-2.js} +1 -1
  97. package/web/assets/{cssMode-nuznbveH.js → cssMode-C9nCeku9.js} +1 -1
  98. package/web/assets/{dist--ZlcDulO.js → dist-DKLcX5kd.js} +1 -1
  99. package/web/assets/{dist-DH_zJr7W.js → dist-DM4_kDGf.js} +1 -1
  100. package/web/assets/{dist-WjGUyWSO.js → dist-DOfPSpzL.js} +1 -1
  101. package/web/assets/{dist-CXkMrHNP.js → dist-zqENM1-W.js} +1 -1
  102. package/web/assets/{divider-CnJlD7qO.js → divider-BJQexqne.js} +1 -1
  103. package/web/assets/{fieldset-D9zY6R6s.js → fieldset-BPm9DkKy.js} +1 -1
  104. package/web/assets/{freemarker2-Bw43sOne.js → freemarker2-BaJGEPal.js} +1 -1
  105. package/web/assets/{handlebars-C8qgW7u6.js → handlebars-BQFn9RdQ.js} +1 -1
  106. package/web/assets/{html-Dy9PKnkr.js → html-Cr5a-EYz.js} +1 -1
  107. package/web/assets/{htmlMode-o8EU0tqo.js → htmlMode-CC9GYLNa.js} +1 -1
  108. package/web/assets/{index-CIcE6DNv.js → index-CV_lCcKm.js} +5 -5
  109. package/web/assets/{javascript-CuRngcUR.js → javascript-mDqsZBlu.js} +1 -1
  110. package/web/assets/{jsonMode-CsUIxwQq.js → jsonMode-B54JAo3i.js} +1 -1
  111. package/web/assets/{keyboard-DhkINir5.js → keyboard-BALpgxzI.js} +1 -1
  112. package/web/assets/{lib-E9M4L9vE.js → lib-CbGVmNqI.js} +1 -1
  113. package/web/assets/{library-BXoSag-V.js → library-DL2YIihE.js} +1 -1
  114. package/web/assets/{liquid-CraMnqaK.js → liquid-DiGHjG_L.js} +1 -1
  115. package/web/assets/{mdx-DPSW5q1A.js → mdx-D6dV5_Hg.js} +1 -1
  116. package/web/assets/{mediaTypes-DDACekzr.js → mediaTypes-97PR9Ryv.js} +1 -1
  117. package/web/assets/{message-DKOCajc6.js → message-CkvY1zpy.js} +1 -1
  118. package/web/assets/{minus-CtlH9Syh.js → minus-Cz1A1nRX.js} +1 -1
  119. package/web/assets/{multiselect-sshNnjnF.js → multiselect-Cg_IvTVL.js} +1 -1
  120. package/web/assets/{password-Dv9g39jb.js → password-DnBPksM5.js} +1 -1
  121. package/web/assets/{plus-CG5Ui-l-.js → plus-DLza1kmt.js} +1 -1
  122. package/web/assets/{pretty-ms-D2BVTeMx.js → pretty-ms-CFs2lDEt.js} +1 -1
  123. package/web/assets/process.store-DOZqELYx.js +1 -0
  124. package/web/assets/{project.store-CVbXSH5d.js → project.store-1ZxiIOdG.js} +1 -1
  125. package/web/assets/{python-BLq8fVkV.js → python-CBOkbLwS.js} +1 -1
  126. package/web/assets/{radiobutton-Bz_ltBfM.js → radiobutton-Bzj_cgKU.js} +1 -1
  127. package/web/assets/{razor-CVrBU-Fk.js → razor-DbhB_XzZ.js} +1 -1
  128. package/web/assets/router-BXlVOZht.js +1 -0
  129. package/web/assets/{settings.store-vM-8jbAF.js → settings.store-Qq6Gc2CT.js} +1 -1
  130. package/web/assets/{store-CTKZgNiD.js → store-Cuguy-ft.js} +1 -1
  131. package/web/assets/{tabpanel-DaZzgdrv.js → tabpanel-BkIDALQ8.js} +1 -1
  132. package/web/assets/trpc-BFwMZelk.js +1 -0
  133. package/web/assets/{tsMode-DO5zEzzD.js → tsMode-B48YcNcc.js} +1 -1
  134. package/web/assets/{typescript-Do-K_3Jj.js → typescript-DNe7mq9Z.js} +1 -1
  135. package/web/assets/{urls-BlVUwVFM.js → urls-Bhy-NKbg.js} +1 -1
  136. package/web/assets/{use-tree-walker-xoEX554A.js → use-tree-walker-DGf54lqT.js} +1 -1
  137. package/web/assets/useAiChatDrawer-C-QgDgQO.js +1 -0
  138. package/web/assets/{useClipboard-B3J6cGK-.js → useClipboard-Ba0ZMSjV.js} +1 -1
  139. package/web/assets/{useLayout-DHrumlpr.js → useLayout-CmsWxVhO.js} +1 -1
  140. package/web/assets/{usePluginManager-BEbBxZnF.js → usePluginManager-DBLyufEz.js} +1 -1
  141. package/web/assets/{useSidebar-BCBwVF2x.js → useSidebar-BWKBo0y4.js} +1 -1
  142. package/web/assets/{vue-router-CuFIegGa.js → vue-router-By6H_4a-.js} +1 -1
  143. package/web/assets/{xml-BolCsFLY.js → xml-zVv61nBe.js} +1 -1
  144. package/web/assets/{yaml-5iZTkCV3.js → yaml-DJ0ncxUH.js} +1 -1
  145. package/web/index.html +1 -1
  146. package/agent-manager-3DHUF2DC-KN6O7WSA.js +0 -8
  147. package/chunk-AJW7LDO5.js.map +0 -1
  148. package/dist-TI3HFRUW.js.map +0 -1
  149. package/web/assets/AiChatPage-C1r42kX7.js +0 -1
  150. package/web/assets/CollectionCookies.vue-DqNgVtd-.js +0 -1
  151. package/web/assets/CollectionScripts.vue-B2gkfo4d.js +0 -1
  152. package/web/assets/CollectionSync.vue-bB7sdahP.js +0 -1
  153. package/web/assets/DashboardPage-gZJ4_s8T.css +0 -1
  154. package/web/assets/DashboardPage-hIc9wP_Q.js +0 -1
  155. package/web/assets/KanbanBoardPage-DoXgFMvo.js +0 -141
  156. package/web/assets/KanbanBoardPage-hqNojI5j.css +0 -1
  157. package/web/assets/ServiceDetailPage-UVg73scN.js +0 -2
  158. package/web/assets/SettingsPage-Cg78lQZF.js +0 -225
  159. package/web/assets/process.store-CutdTiYB.js +0 -1
  160. package/web/assets/router-CuxdGfLF.js +0 -1
  161. package/web/assets/trpc-BIjF6nTt.js +0 -1
  162. package/web/assets/useAiChatDrawer-BJugMTj0.js +0 -1
  163. /package/{agent-manager-3DHUF2DC-KN6O7WSA.js.map → agent-manager-7IDZTNVZ-HVRWIXYW.js.map} +0 -0
  164. /package/web/assets/{_plugin-vue_export-helper-C08BWUE4.js → _plugin-vue_export-helper-BVSTY9ge.js} +0 -0
  165. /package/web/assets/{abap-BMPR0rjj.js → abap-DktqfXDx.js} +0 -0
  166. /package/web/assets/{apex-DYC4uYYf.js → apex-C84w8VGC.js} +0 -0
  167. /package/web/assets/{azcli-GZlxEjpa.js → azcli-Cs5iRzPw.js} +0 -0
  168. /package/web/assets/{base64-VLYHbiMn.js → base64-CG47Jc3Y.js} +0 -0
  169. /package/web/assets/{bat-Cv8OxItG.js → bat-Bxztgnvx.js} +0 -0
  170. /package/web/assets/{bicep-CuCbE6Ue.js → bicep-EmTmx6Fy.js} +0 -0
  171. /package/web/assets/{cameligo-BEPX3585.js → cameligo-DZYk6cOD.js} +0 -0
  172. /package/web/assets/{clojure--6rbXIPY.js → clojure-QYeZgX63.js} +0 -0
  173. /package/web/assets/{coffee-ByvVcDGX.js → coffee-DP64XG_I.js} +0 -0
  174. /package/web/assets/{cpp-CECtPnZp.js → cpp-Dz6-l8vs.js} +0 -0
  175. /package/web/assets/{csharp-DyYyZ8UX.js → csharp-CcVGRY-t.js} +0 -0
  176. /package/web/assets/{csp-B9apvcI9.js → csp-Cqpt0M-R.js} +0 -0
  177. /package/web/assets/{css-CfdBNbB0.js → css-BEjT2o3U.js} +0 -0
  178. /package/web/assets/{cypher-BPqQq4XX.js → cypher-CFsKHT39.js} +0 -0
  179. /package/web/assets/{dart-BLToxiYU.js → dart-Dd8xW03D.js} +0 -0
  180. /package/web/assets/{dist-COg0nRYK.js → dist-BPIMeATj.js} +0 -0
  181. /package/web/assets/{dockerfile-CKo5jN7V.js → dockerfile-MHoTmcM0.js} +0 -0
  182. /package/web/assets/{ecl-qo8pi1Ty.js → ecl-DDOk3_u-.js} +0 -0
  183. /package/web/assets/{elixir-Dv1YAMPJ.js → elixir-BrvvYQkl.js} +0 -0
  184. /package/web/assets/{flow9-BKTKs1nN.js → flow9-Desf9xEz.js} +0 -0
  185. /package/web/assets/{fsharp-BPoxgmtD.js → fsharp-B8Icgpa6.js} +0 -0
  186. /package/web/assets/{go-DgJ-2ryf.js → go-Do5MIzaM.js} +0 -0
  187. /package/web/assets/{graphql-YTK8zpFe.js → graphql-CiG6oX7b.js} +0 -0
  188. /package/web/assets/{hcl-tYOvwaJ3.js → hcl-C-xKM4WW.js} +0 -0
  189. /package/web/assets/{ini-BTZ3lNbM.js → ini-DXIR0OjP.js} +0 -0
  190. /package/web/assets/{java-boRe0CIQ.js → java-Dy8EfEt9.js} +0 -0
  191. /package/web/assets/{julia-K6BtoWYX.js → julia-DkrFX1s_.js} +0 -0
  192. /package/web/assets/{kotlin-CglG00z4.js → kotlin-Dar7GDKm.js} +0 -0
  193. /package/web/assets/{less-DlnIYk4g.js → less-DzP6DgzU.js} +0 -0
  194. /package/web/assets/{lexon-D4aKXJ0J.js → lexon-DptP6qTd.js} +0 -0
  195. /package/web/assets/{lua-DeQCQ0IN.js → lua-CCVwtOWf.js} +0 -0
  196. /package/web/assets/{m3-yCjRJP_i.js → m3-DrEvvio5.js} +0 -0
  197. /package/web/assets/{markdown-C2IT79AR.js → markdown-ruxuCKkk.js} +0 -0
  198. /package/web/assets/{mips-BAnhwv_D.js → mips-BQqMOsEB.js} +0 -0
  199. /package/web/assets/{msdax-D1jHDTih.js → msdax-phO8WA3n.js} +0 -0
  200. /package/web/assets/{mysql-CTJU-jL7.js → mysql-CTdeo58Q.js} +0 -0
  201. /package/web/assets/{objective-c-CwxzUA28.js → objective-c-jhQ0iM6X.js} +0 -0
  202. /package/web/assets/{pascal-DpSQp86i.js → pascal-C8SkzMHp.js} +0 -0
  203. /package/web/assets/{pascaligo-C4F0Gc12.js → pascaligo-ArPaQLGJ.js} +0 -0
  204. /package/web/assets/{perl-87HvGh3u.js → perl-DdJtSHIR.js} +0 -0
  205. /package/web/assets/{pgsql-DUB3YVHd.js → pgsql-DzJ8nWb2.js} +0 -0
  206. /package/web/assets/{php-gpgbnwXh.js → php-CCjtAB9z.js} +0 -0
  207. /package/web/assets/{pla-9VH1h0qA.js → pla-BcEbmw3g.js} +0 -0
  208. /package/web/assets/{postiats-DYNil0RB.js → postiats-Fpcus-uJ.js} +0 -0
  209. /package/web/assets/{powerquery-Cyj_QMWN.js → powerquery-Cu-9g7NG.js} +0 -0
  210. /package/web/assets/{powershell-BxsWzjwy.js → powershell-DO2fUGfn.js} +0 -0
  211. /package/web/assets/{protobuf-CpB35fc2.js → protobuf-DQup7qRj.js} +0 -0
  212. /package/web/assets/{pug-CQ3BHXrf.js → pug-Duim2NdD.js} +0 -0
  213. /package/web/assets/{qsharp-hvdiA16n.js → qsharp-CytI7IVT.js} +0 -0
  214. /package/web/assets/{r-BcpSD-1e.js → r-DZINbLk_.js} +0 -0
  215. /package/web/assets/{redis-B2JGUU7L.js → redis-Bf0SVuM0.js} +0 -0
  216. /package/web/assets/{redshift-DtV7K8A1.js → redshift-oHIhn4rc.js} +0 -0
  217. /package/web/assets/{restructuredtext-avYcqBCA.js → restructuredtext-B3n-oeH1.js} +0 -0
  218. /package/web/assets/{ruby-B75_Tp8C.js → ruby-DXTCv0Dq.js} +0 -0
  219. /package/web/assets/{rust-CHon-ZXH.js → rust-BM9bjpGj.js} +0 -0
  220. /package/web/assets/{sb-iehvyQKY.js → sb-BU8bPS70.js} +0 -0
  221. /package/web/assets/{scala-LBw1ennX.js → scala-BP9uGS4X.js} +0 -0
  222. /package/web/assets/{scheme-BRK_sKgt.js → scheme-rmkEHrlu.js} +0 -0
  223. /package/web/assets/{scss-CzbUsG5V.js → scss-BtCDKYlG.js} +0 -0
  224. /package/web/assets/{shell-DdtWj1FH.js → shell-CG1BTV1P.js} +0 -0
  225. /package/web/assets/{solidity-CBYPsj6K.js → solidity-DAYsr878.js} +0 -0
  226. /package/web/assets/{sophia-BAmZLhFu.js → sophia-DLSOk_-J.js} +0 -0
  227. /package/web/assets/{sparql-DzxQz_25.js → sparql-C_sea8Qf.js} +0 -0
  228. /package/web/assets/{sql-CtZa8xg5.js → sql-zI2PRpPJ.js} +0 -0
  229. /package/web/assets/{st-3yAXYt2f.js → st-VM0k3m2K.js} +0 -0
  230. /package/web/assets/{swift-nwo4k0Qx.js → swift-DAxKPUqq.js} +0 -0
  231. /package/web/assets/{systemverilog-38mUSYaO.js → systemverilog-D3gk_LvQ.js} +0 -0
  232. /package/web/assets/{tcl-DfkL3MZ2.js → tcl-YQSEIPQI.js} +0 -0
  233. /package/web/assets/{twig-C2_DTvv-.js → twig-Bt5uw3P4.js} +0 -0
  234. /package/web/assets/{typespec-Dn7A_7aO.js → typespec-CF_qDuWb.js} +0 -0
  235. /package/web/assets/{vb-ByZEqbuQ.js → vb-DERgblZJ.js} +0 -0
  236. /package/web/assets/{w3c-keyname-CXRaQfIQ.js → w3c-keyname-B0Po4pAC.js} +0 -0
  237. /package/web/assets/{wgsl-BqCLRRs9.js → wgsl-BrfJ-tM_.js} +0 -0
package/agent/index.js CHANGED
@@ -920,7 +920,9 @@ var SettingsSchema = z5.object({
920
920
  mode: z5.enum(["local-simple", "cloud"]),
921
921
  cloudUrl: z5.string().url().max(2048).nullable().optional(),
922
922
  logParsers: z5.array(JSLogParserSchema).max(100).default([]),
923
- scenarios: z5.array(ScenarioSchema).max(100).default([])
923
+ scenarios: z5.array(ScenarioSchema).max(100).default([]),
924
+ /** Absolute path to the folder where the global wiki/docs markdown files live. Optional. */
925
+ globalDocsPath: z5.string().max(4096).optional()
924
926
  });
925
927
  var TraefikConfigSchema = z5.object({
926
928
  enabled: z5.boolean().default(false),
@@ -1106,6 +1108,8 @@ var ServiceConfigSchema = z7.object({
1106
1108
  // Metadata fields (migration from old Runeya)
1107
1109
  groups: z7.array(z7.string().max(200)).max(20).optional().default([]),
1108
1110
  description: z7.string().max(2e3).optional(),
1111
+ /** Path (relative to service.cwd or absolute) where the service's docs/wiki markdown files live. Optional — defaults to service.cwd. */
1112
+ docsPath: z7.string().max(4096).optional(),
1109
1113
  url: z7.string().max(2048).optional(),
1110
1114
  localUrls: z7.array(z7.object({
1111
1115
  url: z7.string().max(253).regex(/^([a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,}$/),
@@ -2048,8 +2052,8 @@ var FileLogSource = class extends EventEmitter2 {
2048
2052
  }
2049
2053
  }
2050
2054
  if (this.config.startFromEnd) {
2051
- const stat2 = await fsPromises.stat(this.config.path);
2052
- this.offset = stat2.size;
2055
+ const stat3 = await fsPromises.stat(this.config.path);
2056
+ this.offset = stat3.size;
2053
2057
  } else {
2054
2058
  this.offset = 0;
2055
2059
  }
@@ -2082,17 +2086,17 @@ var FileLogSource = class extends EventEmitter2 {
2082
2086
  return this.logBuffer.getByProcessId(processId);
2083
2087
  }
2084
2088
  async readNewLines(processId) {
2085
- let stat2;
2089
+ let stat3;
2086
2090
  try {
2087
- stat2 = await fsPromises.stat(this.config.path);
2091
+ stat3 = await fsPromises.stat(this.config.path);
2088
2092
  } catch {
2089
2093
  return;
2090
2094
  }
2091
- if (stat2.size < this.offset) {
2095
+ if (stat3.size < this.offset) {
2092
2096
  this.offset = 0;
2093
2097
  }
2094
- if (stat2.size === this.offset) return;
2095
- const length = stat2.size - this.offset;
2098
+ if (stat3.size === this.offset) return;
2099
+ const length = stat3.size - this.offset;
2096
2100
  const buf = Buffer.alloc(length);
2097
2101
  let fd = null;
2098
2102
  try {
@@ -2890,8 +2894,8 @@ var TraefikManager = class {
2890
2894
  const walk = async (dir, base) => {
2891
2895
  let entries;
2892
2896
  try {
2893
- const { readdir } = await import("fs/promises");
2894
- entries = await readdir(dir);
2897
+ const { readdir: readdir2 } = await import("fs/promises");
2898
+ entries = await readdir2(dir);
2895
2899
  } catch {
2896
2900
  return;
2897
2901
  }
@@ -2899,8 +2903,8 @@ var TraefikManager = class {
2899
2903
  const full = join2(dir, entry);
2900
2904
  const rel = join2(base, entry);
2901
2905
  try {
2902
- const { stat: stat2 } = await import("fs/promises");
2903
- const s = await stat2(full);
2906
+ const { stat: stat3 } = await import("fs/promises");
2907
+ const s = await stat3(full);
2904
2908
  if (s.isDirectory()) {
2905
2909
  await walk(full, rel);
2906
2910
  } else {
@@ -4361,7 +4365,7 @@ var terminalRouter = router({
4361
4365
  }
4362
4366
  const queue = [];
4363
4367
  let resolve = null;
4364
- let done = false;
4368
+ let done2 = false;
4365
4369
  const onData = (data) => {
4366
4370
  queue.push(data);
4367
4371
  if (resolve) {
@@ -4370,7 +4374,7 @@ var terminalRouter = router({
4370
4374
  }
4371
4375
  };
4372
4376
  const onExit = () => {
4373
- done = true;
4377
+ done2 = true;
4374
4378
  if (resolve) {
4375
4379
  resolve();
4376
4380
  resolve = null;
@@ -4379,7 +4383,7 @@ var terminalRouter = router({
4379
4383
  emitter.on("data", onData);
4380
4384
  emitter.on("exit", onExit);
4381
4385
  try {
4382
- while (!done || queue.length > 0) {
4386
+ while (!done2 || queue.length > 0) {
4383
4387
  if (queue.length > 0) {
4384
4388
  yield queue.shift();
4385
4389
  } else {
@@ -5026,7 +5030,7 @@ var AiSpawnManager = class {
5026
5030
  if (!entry) throw new Error(`AI spawn ${spawnId} not found`);
5027
5031
  let offset = fromOffset;
5028
5032
  let resolve = null;
5029
- let done = false;
5033
+ let done2 = false;
5030
5034
  const onChunk = () => {
5031
5035
  if (resolve) {
5032
5036
  resolve();
@@ -5034,7 +5038,7 @@ var AiSpawnManager = class {
5034
5038
  }
5035
5039
  };
5036
5040
  const onDone = () => {
5037
- done = true;
5041
+ done2 = true;
5038
5042
  if (resolve) {
5039
5043
  resolve();
5040
5044
  resolve = null;
@@ -5043,7 +5047,7 @@ var AiSpawnManager = class {
5043
5047
  entry.emitter.on("chunk", onChunk);
5044
5048
  entry.emitter.on("done", onDone);
5045
5049
  if (entry.status !== "running" && offset >= entry.buffer.length) {
5046
- done = true;
5050
+ done2 = true;
5047
5051
  }
5048
5052
  try {
5049
5053
  while (true) {
@@ -5054,7 +5058,7 @@ var AiSpawnManager = class {
5054
5058
  if (entry.status !== "running" && offset >= entry.buffer.length) {
5055
5059
  break;
5056
5060
  }
5057
- if (done && offset >= entry.buffer.length) break;
5061
+ if (done2 && offset >= entry.buffer.length) break;
5058
5062
  await new Promise((r) => {
5059
5063
  resolve = r;
5060
5064
  });
@@ -5682,6 +5686,209 @@ var aiRouter = router({
5682
5686
  })
5683
5687
  });
5684
5688
 
5689
+ // src/trpc/routers/wiki.ts
5690
+ import { z as z26 } from "zod";
5691
+ import { TRPCError as TRPCError6 } from "@trpc/server";
5692
+ import { readFile as readFile2, readdir, stat as stat2, realpath, writeFile as writeFile6, mkdir as mkdir6, rename as rename2, rm } from "fs/promises";
5693
+ import { dirname } from "path";
5694
+ import { resolve as resolvePath2, join as join5, relative, sep } from "path";
5695
+ var CWD_SCHEMA2 = z26.string().min(1).max(4096);
5696
+ var REL_PATH_SCHEMA = z26.string().min(1).max(512).regex(/^[A-Za-z0-9_./-]+$/).refine((p) => !p.includes("..") && !p.startsWith("/"), {
5697
+ message: "Path must be a relative path without traversal"
5698
+ });
5699
+ var MAX_FILES = 500;
5700
+ var MAX_DEPTH = 8;
5701
+ var MAX_FILE_BYTES = 2e6;
5702
+ var IGNORED_DIRS = /* @__PURE__ */ new Set([
5703
+ "node_modules",
5704
+ ".git",
5705
+ "dist",
5706
+ "build",
5707
+ ".next",
5708
+ ".turbo",
5709
+ ".cache",
5710
+ "coverage",
5711
+ ".yarn",
5712
+ ".pnpm-store",
5713
+ "target",
5714
+ "out"
5715
+ ]);
5716
+ var RepoEntrySchema = z26.lazy(() => z26.union([
5717
+ z26.object({ type: z26.literal("file"), name: z26.string(), path: z26.string() }),
5718
+ z26.object({ type: z26.literal("dir"), name: z26.string(), path: z26.string(), children: z26.array(RepoEntrySchema) })
5719
+ ]));
5720
+ async function walkMarkdown(root, dir, depth, counter) {
5721
+ if (depth > MAX_DEPTH || counter.n >= MAX_FILES) return [];
5722
+ let entries;
5723
+ try {
5724
+ entries = await readdir(dir, { withFileTypes: true });
5725
+ } catch {
5726
+ return [];
5727
+ }
5728
+ const out = [];
5729
+ for (const e of entries) {
5730
+ if (counter.n >= MAX_FILES) break;
5731
+ if (e.name.startsWith(".") && e.name !== ".") continue;
5732
+ const abs = join5(dir, e.name);
5733
+ const rel = relative(root, abs).split(sep).join("/");
5734
+ if (e.isDirectory()) {
5735
+ if (IGNORED_DIRS.has(e.name)) continue;
5736
+ const children = await walkMarkdown(root, abs, depth + 1, counter);
5737
+ out.push({ type: "dir", name: e.name, path: rel, children });
5738
+ } else if (e.isFile() && /\.(md|markdown)$/i.test(e.name)) {
5739
+ counter.n += 1;
5740
+ out.push({ type: "file", name: e.name, path: rel });
5741
+ }
5742
+ }
5743
+ out.sort((a, b) => {
5744
+ if (a.type !== b.type) return a.type === "dir" ? -1 : 1;
5745
+ return a.name.localeCompare(b.name);
5746
+ });
5747
+ return out;
5748
+ }
5749
+ async function resolveSafePath(root, relPath, requireExist) {
5750
+ if (relPath.includes("..") || relPath.startsWith("/")) {
5751
+ throw new TRPCError6({ code: "BAD_REQUEST", message: "Chemin invalide" });
5752
+ }
5753
+ const target = resolvePath2(root, relPath);
5754
+ if (requireExist) {
5755
+ let real;
5756
+ try {
5757
+ real = await realpath(target);
5758
+ } catch {
5759
+ throw new TRPCError6({ code: "NOT_FOUND", message: "Chemin introuvable" });
5760
+ }
5761
+ if (real !== root && !(real + sep).startsWith(root + sep)) {
5762
+ throw new TRPCError6({ code: "FORBIDDEN", message: "Hors du dossier autoris\xE9" });
5763
+ }
5764
+ return real;
5765
+ }
5766
+ const parent = dirname(target);
5767
+ let realParent;
5768
+ try {
5769
+ realParent = await realpath(parent);
5770
+ } catch {
5771
+ realParent = parent;
5772
+ }
5773
+ if (realParent !== root && !(realParent + sep).startsWith(root + sep)) {
5774
+ throw new TRPCError6({ code: "FORBIDDEN", message: "Hors du dossier autoris\xE9" });
5775
+ }
5776
+ return resolvePath2(realParent, target.slice(parent.length).replace(/^[\\/]+/, ""));
5777
+ }
5778
+ async function resolveRoot(cwd) {
5779
+ const expanded = expandEnvVar(cwd);
5780
+ const abs = resolvePath2(expanded);
5781
+ try {
5782
+ return await realpath(abs);
5783
+ } catch {
5784
+ throw new TRPCError6({ code: "NOT_FOUND", message: `Dossier introuvable: ${abs}` });
5785
+ }
5786
+ }
5787
+ var wikiRouter = router({
5788
+ listRepoMarkdown: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2 })).query(async ({ input }) => {
5789
+ const root = await resolveRoot(input.cwd);
5790
+ const counter = { n: 0 };
5791
+ const entries = await walkMarkdown(root, root, 0, counter);
5792
+ return { root, entries, truncated: counter.n >= MAX_FILES };
5793
+ }),
5794
+ readRepoMarkdown: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).query(async ({ input }) => {
5795
+ if (!/\.(md|markdown)$/i.test(input.path)) {
5796
+ throw new TRPCError6({ code: "BAD_REQUEST", message: "Seuls les .md sont autoris\xE9s" });
5797
+ }
5798
+ const root = await resolveRoot(input.cwd);
5799
+ const target = resolvePath2(root, input.path);
5800
+ let realTarget;
5801
+ try {
5802
+ realTarget = await realpath(target);
5803
+ } catch {
5804
+ throw new TRPCError6({ code: "NOT_FOUND", message: "Fichier introuvable" });
5805
+ }
5806
+ const realTargetWithSep = realTarget + sep;
5807
+ if (realTarget !== root && !realTargetWithSep.startsWith(root + sep)) {
5808
+ throw new TRPCError6({ code: "FORBIDDEN", message: "Hors du dossier du service" });
5809
+ }
5810
+ const s = await stat2(realTarget);
5811
+ if (!s.isFile()) {
5812
+ throw new TRPCError6({ code: "BAD_REQUEST", message: "Pas un fichier" });
5813
+ }
5814
+ if (s.size > MAX_FILE_BYTES) {
5815
+ throw new TRPCError6({ code: "PAYLOAD_TOO_LARGE", message: "Fichier trop volumineux" });
5816
+ }
5817
+ const content = await readFile2(realTarget, "utf-8");
5818
+ return { path: input.path, content };
5819
+ }),
5820
+ writeMarkdown: protectedProcedure.input(z26.object({
5821
+ cwd: CWD_SCHEMA2,
5822
+ path: REL_PATH_SCHEMA,
5823
+ content: z26.string().max(5e6)
5824
+ })).mutation(async ({ input }) => {
5825
+ if (!/\.(md|markdown)$/i.test(input.path)) {
5826
+ throw new TRPCError6({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
5827
+ }
5828
+ const root = await resolveRoot(input.cwd);
5829
+ const target = await resolveSafePath(root, input.path, false);
5830
+ await mkdir6(dirname(target), { recursive: true });
5831
+ await writeFile6(target, input.content, "utf-8");
5832
+ return { path: input.path, ok: true };
5833
+ }),
5834
+ createFile: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
5835
+ if (!/\.(md|markdown)$/i.test(input.path)) {
5836
+ throw new TRPCError6({ code: "BAD_REQUEST", message: "Seuls les .md/.markdown sont autoris\xE9s" });
5837
+ }
5838
+ const root = await resolveRoot(input.cwd);
5839
+ const target = await resolveSafePath(root, input.path, false);
5840
+ try {
5841
+ await stat2(target);
5842
+ throw new TRPCError6({ code: "CONFLICT", message: "Fichier d\xE9j\xE0 existant" });
5843
+ } catch (err) {
5844
+ if (err instanceof TRPCError6) throw err;
5845
+ }
5846
+ await mkdir6(dirname(target), { recursive: true });
5847
+ await writeFile6(target, "", "utf-8");
5848
+ return { path: input.path, ok: true };
5849
+ }),
5850
+ createDir: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
5851
+ const root = await resolveRoot(input.cwd);
5852
+ const target = await resolveSafePath(root, input.path, false);
5853
+ await mkdir6(target, { recursive: true });
5854
+ return { path: input.path, ok: true };
5855
+ }),
5856
+ renamePath: protectedProcedure.input(z26.object({
5857
+ cwd: CWD_SCHEMA2,
5858
+ fromPath: REL_PATH_SCHEMA,
5859
+ toPath: REL_PATH_SCHEMA
5860
+ })).mutation(async ({ input }) => {
5861
+ const root = await resolveRoot(input.cwd);
5862
+ const from = await resolveSafePath(root, input.fromPath, true);
5863
+ const to = await resolveSafePath(root, input.toPath, false);
5864
+ try {
5865
+ await stat2(to);
5866
+ throw new TRPCError6({ code: "CONFLICT", message: "La cible existe d\xE9j\xE0" });
5867
+ } catch (err) {
5868
+ if (err instanceof TRPCError6) throw err;
5869
+ }
5870
+ await mkdir6(dirname(to), { recursive: true });
5871
+ await rename2(from, to);
5872
+ return { fromPath: input.fromPath, toPath: input.toPath, ok: true };
5873
+ }),
5874
+ ensureRoot: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2 })).mutation(async ({ input }) => {
5875
+ const expanded = expandEnvVar(input.cwd);
5876
+ const abs = resolvePath2(expanded);
5877
+ await mkdir6(abs, { recursive: true });
5878
+ const root = await realpath(abs);
5879
+ return { root, ok: true };
5880
+ }),
5881
+ deletePath: protectedProcedure.input(z26.object({ cwd: CWD_SCHEMA2, path: REL_PATH_SCHEMA })).mutation(async ({ input }) => {
5882
+ const root = await resolveRoot(input.cwd);
5883
+ const target = await resolveSafePath(root, input.path, true);
5884
+ if (target === root) {
5885
+ throw new TRPCError6({ code: "FORBIDDEN", message: "Impossible de supprimer la racine" });
5886
+ }
5887
+ await rm(target, { recursive: true, force: true });
5888
+ return { path: input.path, ok: true };
5889
+ })
5890
+ });
5891
+
5685
5892
  // src/trpc/router.ts
5686
5893
  var appRouter = router({
5687
5894
  process: processRouter,
@@ -5689,14 +5896,46 @@ var appRouter = router({
5689
5896
  config: configRouter,
5690
5897
  terminal: terminalRouter,
5691
5898
  git: gitRouter,
5692
- ai: aiRouter
5899
+ ai: aiRouter,
5900
+ wiki: wikiRouter
5693
5901
  });
5694
5902
 
5903
+ // src/utils/ensure-pty-helper.ts
5904
+ import { createRequire as createRequire2 } from "module";
5905
+ import { chmodSync, existsSync as existsSync3, statSync } from "fs";
5906
+ import { dirname as dirname2, join as join6 } from "path";
5907
+ var done = false;
5908
+ function ensurePtyHelperExecutable() {
5909
+ if (done) return;
5910
+ done = true;
5911
+ if (process.platform === "win32") return;
5912
+ try {
5913
+ const require2 = createRequire2(import.meta.url);
5914
+ const ptyDir = dirname2(require2.resolve("node-pty/package.json"));
5915
+ const candidates = [
5916
+ "build/Release",
5917
+ "build/Debug",
5918
+ `prebuilds/${process.platform}-${process.arch}`
5919
+ ];
5920
+ for (const sub of candidates) {
5921
+ const helper = join6(ptyDir, sub, "spawn-helper");
5922
+ if (!existsSync3(helper)) continue;
5923
+ const mode = statSync(helper).mode;
5924
+ if ((mode & 73) !== 73) {
5925
+ chmodSync(helper, mode | 73);
5926
+ console.log(`[agent] made node-pty spawn-helper executable: ${helper}`);
5927
+ }
5928
+ }
5929
+ } catch {
5930
+ }
5931
+ }
5932
+
5695
5933
  // src/create-agent.ts
5696
5934
  function createAgent(opts) {
5697
5935
  const passphraseHex = opts?.passphraseHex ?? crypto2.randomBytes(32).toString("hex");
5698
5936
  const healthWsIntervalMs = opts?.healthWsIntervalMs ?? env.HEALTH_WS_INTERVAL;
5699
5937
  setPassphrase(passphraseHex);
5938
+ ensurePtyHelperExecutable();
5700
5939
  const app = express();
5701
5940
  const server = createServer(app);
5702
5941
  app.use(cors({ origin: "http://localhost:4000" }));