@hed-hog/core 0.0.349 → 0.0.351

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 (350) hide show
  1. package/dist/access-log/access-log.controller.d.ts +16 -0
  2. package/dist/access-log/access-log.controller.d.ts.map +1 -0
  3. package/dist/access-log/access-log.controller.js +44 -0
  4. package/dist/access-log/access-log.controller.js.map +1 -0
  5. package/dist/access-log/access-log.interceptor.d.ts +9 -0
  6. package/dist/access-log/access-log.interceptor.d.ts.map +1 -0
  7. package/dist/access-log/access-log.interceptor.js +46 -0
  8. package/dist/access-log/access-log.interceptor.js.map +1 -0
  9. package/dist/access-log/access-log.module.d.ts +3 -0
  10. package/dist/access-log/access-log.module.d.ts.map +1 -0
  11. package/dist/access-log/access-log.module.js +29 -0
  12. package/dist/access-log/access-log.module.js.map +1 -0
  13. package/dist/access-log/access-log.service.d.ts +47 -0
  14. package/dist/access-log/access-log.service.d.ts.map +1 -0
  15. package/dist/access-log/access-log.service.js +113 -0
  16. package/dist/access-log/access-log.service.js.map +1 -0
  17. package/dist/access-log/dto/query-access-log.dto.d.ts +8 -0
  18. package/dist/access-log/dto/query-access-log.dto.d.ts.map +1 -0
  19. package/dist/access-log/dto/query-access-log.dto.js +42 -0
  20. package/dist/access-log/dto/query-access-log.dto.js.map +1 -0
  21. package/dist/auth/auth.controller.d.ts +12 -12
  22. package/dist/auth/auth.service.d.ts +27 -27
  23. package/dist/auth/auth.service.d.ts.map +1 -1
  24. package/dist/auth/auth.service.js +0 -4
  25. package/dist/auth/auth.service.js.map +1 -1
  26. package/dist/challenge/challenge.service.d.ts +2 -2
  27. package/dist/challenge/challenge.service.d.ts.map +1 -1
  28. package/dist/challenge/challenge.service.js +0 -1
  29. package/dist/challenge/challenge.service.js.map +1 -1
  30. package/dist/core/system.module.d.ts.map +1 -1
  31. package/dist/core/system.module.js +1 -0
  32. package/dist/core/system.module.js.map +1 -1
  33. package/dist/core.module.d.ts.map +1 -1
  34. package/dist/core.module.js +15 -0
  35. package/dist/core.module.js.map +1 -1
  36. package/dist/dashboard/dashboard-user/dashboard-user.controller.d.ts +3 -3
  37. package/dist/dashboard/dashboard-user/dashboard-user.service.d.ts +3 -3
  38. package/dist/dashboard/dashboard.module.d.ts.map +1 -1
  39. package/dist/dashboard/dashboard.module.js +4 -1
  40. package/dist/dashboard/dashboard.module.js.map +1 -1
  41. package/dist/file/file.controller.js +0 -1
  42. package/dist/file/file.controller.js.map +1 -1
  43. package/dist/file/file.service.d.ts +65 -0
  44. package/dist/file/file.service.d.ts.map +1 -1
  45. package/dist/file/file.service.js +151 -3
  46. package/dist/file/file.service.js.map +1 -1
  47. package/dist/file/provider/abstract.provider.d.ts +8 -0
  48. package/dist/file/provider/abstract.provider.d.ts.map +1 -1
  49. package/dist/file/provider/abstract.provider.js.map +1 -1
  50. package/dist/file/provider/azure.provider.d.ts +4 -0
  51. package/dist/file/provider/azure.provider.d.ts.map +1 -1
  52. package/dist/file/provider/azure.provider.js +14 -0
  53. package/dist/file/provider/azure.provider.js.map +1 -1
  54. package/dist/file/provider/gcs.provider.d.ts +4 -0
  55. package/dist/file/provider/gcs.provider.d.ts.map +1 -1
  56. package/dist/file/provider/gcs.provider.js +14 -0
  57. package/dist/file/provider/gcs.provider.js.map +1 -1
  58. package/dist/file/provider/local.provider.d.ts +4 -0
  59. package/dist/file/provider/local.provider.d.ts.map +1 -1
  60. package/dist/file/provider/local.provider.js +19 -0
  61. package/dist/file/provider/local.provider.js.map +1 -1
  62. package/dist/file/provider/provider.factory.d.ts.map +1 -1
  63. package/dist/file/provider/provider.factory.js +3 -0
  64. package/dist/file/provider/provider.factory.js.map +1 -1
  65. package/dist/file/provider/s3.provider.d.ts +4 -0
  66. package/dist/file/provider/s3.provider.d.ts.map +1 -1
  67. package/dist/file/provider/s3.provider.js +17 -0
  68. package/dist/file/provider/s3.provider.js.map +1 -1
  69. package/dist/index.d.ts +3 -0
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +4 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/mcp/guards/mcp-auth.guard.d.ts +6 -1
  74. package/dist/mcp/guards/mcp-auth.guard.d.ts.map +1 -1
  75. package/dist/mcp/guards/mcp-auth.guard.js +29 -2
  76. package/dist/mcp/guards/mcp-auth.guard.js.map +1 -1
  77. package/dist/mcp/mcp-api-key.controller.d.ts +32 -0
  78. package/dist/mcp/mcp-api-key.controller.d.ts.map +1 -0
  79. package/dist/mcp/mcp-api-key.controller.js +64 -0
  80. package/dist/mcp/mcp-api-key.controller.js.map +1 -0
  81. package/dist/mcp/mcp-api-key.service.d.ts +27 -0
  82. package/dist/mcp/mcp-api-key.service.d.ts.map +1 -0
  83. package/dist/mcp/mcp-api-key.service.js +74 -0
  84. package/dist/mcp/mcp-api-key.service.js.map +1 -0
  85. package/dist/mcp/mcp-audit.service.d.ts +3 -1
  86. package/dist/mcp/mcp-audit.service.d.ts.map +1 -1
  87. package/dist/mcp/mcp-audit.service.js +14 -2
  88. package/dist/mcp/mcp-audit.service.js.map +1 -1
  89. package/dist/mcp/mcp-registry.service.d.ts +1 -2
  90. package/dist/mcp/mcp-registry.service.d.ts.map +1 -1
  91. package/dist/mcp/mcp-registry.service.js +6 -2
  92. package/dist/mcp/mcp-registry.service.js.map +1 -1
  93. package/dist/mcp/mcp.controller.d.ts +3 -1
  94. package/dist/mcp/mcp.controller.d.ts.map +1 -1
  95. package/dist/mcp/mcp.controller.js +10 -2
  96. package/dist/mcp/mcp.controller.js.map +1 -1
  97. package/dist/mcp/mcp.module.d.ts.map +1 -1
  98. package/dist/mcp/mcp.module.js +80 -1
  99. package/dist/mcp/mcp.module.js.map +1 -1
  100. package/dist/mcp/tools/core-ai.mcp-tools.d.ts +45 -0
  101. package/dist/mcp/tools/core-ai.mcp-tools.d.ts.map +1 -0
  102. package/dist/mcp/tools/core-ai.mcp-tools.js +214 -0
  103. package/dist/mcp/tools/core-ai.mcp-tools.js.map +1 -0
  104. package/dist/mcp/tools/core-dashboard-items.mcp-tools.d.ts +21 -0
  105. package/dist/mcp/tools/core-dashboard-items.mcp-tools.d.ts.map +1 -0
  106. package/dist/mcp/tools/core-dashboard-items.mcp-tools.js +89 -0
  107. package/dist/mcp/tools/core-dashboard-items.mcp-tools.js.map +1 -0
  108. package/dist/mcp/tools/core-dashboard.mcp-tools.d.ts +29 -0
  109. package/dist/mcp/tools/core-dashboard.mcp-tools.d.ts.map +1 -0
  110. package/dist/mcp/tools/core-dashboard.mcp-tools.js +149 -0
  111. package/dist/mcp/tools/core-dashboard.mcp-tools.js.map +1 -0
  112. package/dist/mcp/tools/core-event-webhooks.mcp-tools.d.ts +30 -0
  113. package/dist/mcp/tools/core-event-webhooks.mcp-tools.d.ts.map +1 -0
  114. package/dist/mcp/tools/core-event-webhooks.mcp-tools.js +185 -0
  115. package/dist/mcp/tools/core-event-webhooks.mcp-tools.js.map +1 -0
  116. package/dist/mcp/tools/core-files.mcp-tools.d.ts +26 -0
  117. package/dist/mcp/tools/core-files.mcp-tools.d.ts.map +1 -0
  118. package/dist/mcp/tools/core-files.mcp-tools.js +140 -0
  119. package/dist/mcp/tools/core-files.mcp-tools.js.map +1 -0
  120. package/dist/mcp/tools/core-integration-events.mcp-tools.d.ts +26 -0
  121. package/dist/mcp/tools/core-integration-events.mcp-tools.d.ts.map +1 -0
  122. package/dist/mcp/tools/core-integration-events.mcp-tools.js +168 -0
  123. package/dist/mcp/tools/core-integration-events.mcp-tools.js.map +1 -0
  124. package/dist/mcp/tools/core-mail-profile.mcp-tools.d.ts +32 -0
  125. package/dist/mcp/tools/core-mail-profile.mcp-tools.d.ts.map +1 -0
  126. package/dist/mcp/tools/core-mail-profile.mcp-tools.js +178 -0
  127. package/dist/mcp/tools/core-mail-profile.mcp-tools.js.map +1 -0
  128. package/dist/mcp/tools/core-mail-sent.mcp-tools.d.ts +14 -0
  129. package/dist/mcp/tools/core-mail-sent.mcp-tools.d.ts.map +1 -0
  130. package/dist/mcp/tools/core-mail-sent.mcp-tools.js +106 -0
  131. package/dist/mcp/tools/core-mail-sent.mcp-tools.js.map +1 -0
  132. package/dist/mcp/tools/core-mail.mcp-tools.d.ts +36 -0
  133. package/dist/mcp/tools/core-mail.mcp-tools.d.ts.map +1 -0
  134. package/dist/mcp/tools/core-mail.mcp-tools.js +184 -0
  135. package/dist/mcp/tools/core-mail.mcp-tools.js.map +1 -0
  136. package/dist/mcp/tools/core-mcp-chat.mcp-tools.d.ts +21 -0
  137. package/dist/mcp/tools/core-mcp-chat.mcp-tools.d.ts.map +1 -0
  138. package/dist/mcp/tools/core-mcp-chat.mcp-tools.js +118 -0
  139. package/dist/mcp/tools/core-mcp-chat.mcp-tools.js.map +1 -0
  140. package/dist/mcp/tools/core-menus.mcp-tools.d.ts +40 -0
  141. package/dist/mcp/tools/core-menus.mcp-tools.d.ts.map +1 -0
  142. package/dist/mcp/tools/core-menus.mcp-tools.js +268 -0
  143. package/dist/mcp/tools/core-menus.mcp-tools.js.map +1 -0
  144. package/dist/mcp/tools/core-notifications.mcp-tools.d.ts +31 -0
  145. package/dist/mcp/tools/core-notifications.mcp-tools.d.ts.map +1 -0
  146. package/dist/mcp/tools/core-notifications.mcp-tools.js +178 -0
  147. package/dist/mcp/tools/core-notifications.mcp-tools.js.map +1 -0
  148. package/dist/mcp/tools/core-profile.mcp-tools.d.ts +20 -0
  149. package/dist/mcp/tools/core-profile.mcp-tools.d.ts.map +1 -0
  150. package/dist/mcp/tools/core-profile.mcp-tools.js +111 -0
  151. package/dist/mcp/tools/core-profile.mcp-tools.js.map +1 -0
  152. package/dist/mcp/tools/core-roles.mcp-tools.d.ts +70 -0
  153. package/dist/mcp/tools/core-roles.mcp-tools.d.ts.map +1 -0
  154. package/dist/mcp/tools/core-roles.mcp-tools.js +355 -0
  155. package/dist/mcp/tools/core-roles.mcp-tools.js.map +1 -0
  156. package/dist/mcp/tools/core-routes.mcp-tools.d.ts +52 -0
  157. package/dist/mcp/tools/core-routes.mcp-tools.d.ts.map +1 -0
  158. package/dist/mcp/tools/core-routes.mcp-tools.js +254 -0
  159. package/dist/mcp/tools/core-routes.mcp-tools.js.map +1 -0
  160. package/dist/mcp/tools/core-screens.mcp-tools.d.ts +47 -0
  161. package/dist/mcp/tools/core-screens.mcp-tools.d.ts.map +1 -0
  162. package/dist/mcp/tools/core-screens.mcp-tools.js +250 -0
  163. package/dist/mcp/tools/core-screens.mcp-tools.js.map +1 -0
  164. package/dist/mcp/tools/core-sessions.mcp-tools.d.ts +20 -0
  165. package/dist/mcp/tools/core-sessions.mcp-tools.d.ts.map +1 -0
  166. package/dist/mcp/tools/core-sessions.mcp-tools.js +128 -0
  167. package/dist/mcp/tools/core-sessions.mcp-tools.js.map +1 -0
  168. package/dist/mcp/tools/core-settings.mcp-tools.d.ts +25 -0
  169. package/dist/mcp/tools/core-settings.mcp-tools.d.ts.map +1 -1
  170. package/dist/mcp/tools/core-settings.mcp-tools.js +138 -0
  171. package/dist/mcp/tools/core-settings.mcp-tools.js.map +1 -1
  172. package/dist/mcp/tools/core-system.mcp-tools.d.ts +8 -0
  173. package/dist/mcp/tools/core-system.mcp-tools.d.ts.map +1 -0
  174. package/dist/mcp/tools/core-system.mcp-tools.js +40 -0
  175. package/dist/mcp/tools/core-system.mcp-tools.js.map +1 -0
  176. package/dist/mcp/tools/core-webhooks.mcp-tools.d.ts +46 -0
  177. package/dist/mcp/tools/core-webhooks.mcp-tools.d.ts.map +1 -0
  178. package/dist/mcp/tools/core-webhooks.mcp-tools.js +266 -0
  179. package/dist/mcp/tools/core-webhooks.mcp-tools.js.map +1 -0
  180. package/dist/mcp-chat/mcp-chat.controller.d.ts +5 -1
  181. package/dist/mcp-chat/mcp-chat.controller.d.ts.map +1 -1
  182. package/dist/mcp-chat/mcp-chat.controller.js +46 -0
  183. package/dist/mcp-chat/mcp-chat.controller.js.map +1 -1
  184. package/dist/mcp-chat/mcp-chat.service.d.ts +31 -3
  185. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  186. package/dist/mcp-chat/mcp-chat.service.js +776 -38
  187. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  188. package/dist/notification/dto/create-notification.dto.d.ts +26 -0
  189. package/dist/notification/dto/create-notification.dto.d.ts.map +1 -0
  190. package/dist/notification/dto/create-notification.dto.js +86 -0
  191. package/dist/notification/dto/create-notification.dto.js.map +1 -0
  192. package/dist/notification/dto/update-progress.dto.d.ts +6 -0
  193. package/dist/notification/dto/update-progress.dto.d.ts.map +1 -0
  194. package/dist/notification/dto/update-progress.dto.js +33 -0
  195. package/dist/notification/dto/update-progress.dto.js.map +1 -0
  196. package/dist/notification/notification.controller.d.ts +112 -0
  197. package/dist/notification/notification.controller.d.ts.map +1 -0
  198. package/dist/notification/notification.controller.js +130 -0
  199. package/dist/notification/notification.controller.js.map +1 -0
  200. package/dist/notification/notification.module.d.ts +3 -0
  201. package/dist/notification/notification.module.d.ts.map +1 -0
  202. package/dist/notification/notification.module.js +29 -0
  203. package/dist/notification/notification.module.js.map +1 -0
  204. package/dist/notification/notification.service.d.ts +112 -0
  205. package/dist/notification/notification.service.d.ts.map +1 -0
  206. package/dist/notification/notification.service.js +269 -0
  207. package/dist/notification/notification.service.js.map +1 -0
  208. package/dist/pdf/pdf.service.js +1 -1
  209. package/dist/pdf/pdf.service.js.map +1 -1
  210. package/dist/profile/profile.controller.d.ts +4 -4
  211. package/dist/profile/profile.controller.js +0 -1
  212. package/dist/profile/profile.controller.js.map +1 -1
  213. package/dist/profile/profile.module.d.ts.map +1 -1
  214. package/dist/profile/profile.module.js +1 -0
  215. package/dist/profile/profile.module.js.map +1 -1
  216. package/dist/profile/profile.service.d.ts +4 -4
  217. package/dist/session/session.controller.d.ts +3 -3
  218. package/dist/session/session.service.d.ts +9 -9
  219. package/dist/setting/dto/update-setting-list.dto.d.ts +9 -0
  220. package/dist/setting/dto/update-setting-list.dto.d.ts.map +1 -0
  221. package/dist/setting/dto/update-setting-list.dto.js +44 -0
  222. package/dist/setting/dto/update-setting-list.dto.js.map +1 -0
  223. package/dist/setting/setting.controller.d.ts +20 -1
  224. package/dist/setting/setting.controller.d.ts.map +1 -1
  225. package/dist/setting/setting.controller.js +12 -0
  226. package/dist/setting/setting.controller.js.map +1 -1
  227. package/dist/setting/setting.service.d.ts +20 -1
  228. package/dist/setting/setting.service.d.ts.map +1 -1
  229. package/dist/setting/setting.service.js +80 -4
  230. package/dist/setting/setting.service.js.map +1 -1
  231. package/dist/task/task.service.d.ts +13 -0
  232. package/dist/task/task.service.d.ts.map +1 -1
  233. package/dist/task/task.service.js +85 -0
  234. package/dist/task/task.service.js.map +1 -1
  235. package/dist/token/token.service.d.ts.map +1 -1
  236. package/dist/token/token.service.js +0 -1
  237. package/dist/token/token.service.js.map +1 -1
  238. package/dist/user/user.controller.d.ts +11 -11
  239. package/dist/user/user.service.d.ts +27 -27
  240. package/dist/webhook-integration/dto/webhook-action.dto.d.ts +22 -0
  241. package/dist/webhook-integration/dto/webhook-action.dto.d.ts.map +1 -0
  242. package/dist/webhook-integration/dto/webhook-action.dto.js +120 -0
  243. package/dist/webhook-integration/dto/webhook-action.dto.js.map +1 -0
  244. package/dist/webhook-integration/webhook-integration.controller.d.ts +7 -5
  245. package/dist/webhook-integration/webhook-integration.controller.d.ts.map +1 -1
  246. package/dist/webhook-integration/webhook-integration.controller.js +18 -5
  247. package/dist/webhook-integration/webhook-integration.controller.js.map +1 -1
  248. package/dist/webhook-integration/webhook-integration.service.d.ts +18 -5
  249. package/dist/webhook-integration/webhook-integration.service.d.ts.map +1 -1
  250. package/dist/webhook-integration/webhook-integration.service.js +342 -59
  251. package/dist/webhook-integration/webhook-integration.service.js.map +1 -1
  252. package/dist/webhook-integration/webhook-utils.d.ts +1 -0
  253. package/dist/webhook-integration/webhook-utils.d.ts.map +1 -1
  254. package/dist/webhook-integration/webhook-utils.js +38 -0
  255. package/dist/webhook-integration/webhook-utils.js.map +1 -1
  256. package/hedhog/data/menu.yaml +63 -4
  257. package/hedhog/data/route.yaml +1437 -0
  258. package/hedhog/data/setting_group.yaml +112 -0
  259. package/hedhog/data/setting_subgroup.yaml +32 -0
  260. package/hedhog/frontend/app/access-log/page.tsx.ejs +772 -0
  261. package/hedhog/frontend/app/account/components/mcp-tokens.tsx.ejs +285 -0
  262. package/hedhog/frontend/app/account/layout.tsx.ejs +32 -55
  263. package/hedhog/frontend/app/account/mcp-tokens/page.tsx.ejs +5 -0
  264. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +10 -3
  265. package/hedhog/frontend/app/dashboard/dashboard-home-tabs.tsx.ejs +33 -13
  266. package/hedhog/frontend/app/dashboard/management/tabs/components-tab.tsx.ejs +12 -5
  267. package/hedhog/frontend/app/dashboard/management/tabs/dashboards-tab.tsx.ejs +12 -5
  268. package/hedhog/frontend/app/integrations-webhooks/page.tsx.ejs +3559 -1835
  269. package/hedhog/frontend/app/mcp_chat/chat-components.tsx.ejs +633 -0
  270. package/hedhog/frontend/app/mcp_chat/chat-types.ts.ejs +16 -0
  271. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +583 -384
  272. package/hedhog/frontend/app/menu/page.tsx.ejs +9 -3
  273. package/hedhog/frontend/app/roles/page.tsx.ejs +18 -6
  274. package/hedhog/frontend/app/routes/page.tsx.ejs +9 -3
  275. package/hedhog/frontend/app/setting-list/page.tsx.ejs +822 -0
  276. package/hedhog/frontend/app/users/page.tsx.ejs +445 -203
  277. package/hedhog/frontend/app/users/user-access-sheet.tsx.ejs +310 -304
  278. package/hedhog/frontend/app/users/user-sheet.tsx.ejs +41 -44
  279. package/hedhog/frontend/messages/en.json +343 -3
  280. package/hedhog/frontend/messages/pt.json +343 -3
  281. package/hedhog/table/access_log.yaml +31 -0
  282. package/hedhog/table/mcp_api_key.yaml +30 -0
  283. package/hedhog/table/notification.yaml +72 -0
  284. package/hedhog/table/webhook_action_log.yaml +49 -0
  285. package/package.json +5 -4
  286. package/src/access-log/access-log.controller.ts +29 -0
  287. package/src/access-log/access-log.interceptor.ts +38 -0
  288. package/src/access-log/access-log.module.ts +16 -0
  289. package/src/access-log/access-log.service.ts +129 -0
  290. package/src/access-log/dto/query-access-log.dto.ts +23 -0
  291. package/src/auth/auth.service.ts +0 -7
  292. package/src/challenge/challenge.service.ts +0 -2
  293. package/src/core/system.module.ts +1 -0
  294. package/src/core.module.ts +15 -0
  295. package/src/dashboard/dashboard.module.ts +4 -1
  296. package/src/file/file.controller.ts +14 -14
  297. package/src/file/file.service.ts +198 -4
  298. package/src/file/provider/abstract.provider.ts +10 -0
  299. package/src/file/provider/azure.provider.ts +24 -0
  300. package/src/file/provider/gcs.provider.ts +20 -0
  301. package/src/file/provider/local.provider.ts +30 -2
  302. package/src/file/provider/provider.factory.ts +3 -0
  303. package/src/file/provider/s3.provider.ts +22 -0
  304. package/src/index.ts +5 -0
  305. package/src/mcp/guards/mcp-auth.guard.ts +64 -32
  306. package/src/mcp/mcp-api-key.controller.ts +42 -0
  307. package/src/mcp/mcp-api-key.service.ts +66 -0
  308. package/src/mcp/mcp-audit.service.ts +47 -36
  309. package/src/mcp/mcp-registry.service.ts +75 -69
  310. package/src/mcp/mcp.controller.ts +40 -30
  311. package/src/mcp/mcp.module.ts +115 -36
  312. package/src/mcp/tools/core-ai.mcp-tools.ts +156 -0
  313. package/src/mcp/tools/core-dashboard-items.mcp-tools.ts +63 -0
  314. package/src/mcp/tools/core-dashboard.mcp-tools.ts +103 -0
  315. package/src/mcp/tools/core-event-webhooks.mcp-tools.ts +134 -0
  316. package/src/mcp/tools/core-files.mcp-tools.ts +105 -0
  317. package/src/mcp/tools/core-integration-events.mcp-tools.ts +118 -0
  318. package/src/mcp/tools/core-mail-profile.mcp-tools.ts +128 -0
  319. package/src/mcp/tools/core-mail-sent.mcp-tools.ts +76 -0
  320. package/src/mcp/tools/core-mail.mcp-tools.ts +130 -0
  321. package/src/mcp/tools/core-mcp-chat.mcp-tools.ts +81 -0
  322. package/src/mcp/tools/core-menus.mcp-tools.ts +197 -0
  323. package/src/mcp/tools/core-notifications.mcp-tools.ts +128 -0
  324. package/src/mcp/tools/core-profile.mcp-tools.ts +74 -0
  325. package/src/mcp/tools/core-roles.mcp-tools.ts +288 -0
  326. package/src/mcp/tools/core-routes.mcp-tools.ts +196 -0
  327. package/src/mcp/tools/core-screens.mcp-tools.ts +186 -0
  328. package/src/mcp/tools/core-sessions.mcp-tools.ts +97 -0
  329. package/src/mcp/tools/core-settings.mcp-tools.ts +171 -53
  330. package/src/mcp/tools/core-system.mcp-tools.ts +19 -0
  331. package/src/mcp/tools/core-webhooks.mcp-tools.ts +199 -0
  332. package/src/mcp-chat/mcp-chat.controller.ts +113 -60
  333. package/src/mcp-chat/mcp-chat.service.ts +1343 -332
  334. package/src/notification/dto/create-notification.dto.ts +71 -0
  335. package/src/notification/dto/update-progress.dto.ts +16 -0
  336. package/src/notification/notification.controller.ts +83 -0
  337. package/src/notification/notification.module.ts +16 -0
  338. package/src/notification/notification.service.ts +324 -0
  339. package/src/pdf/pdf.service.ts +1 -1
  340. package/src/profile/profile.controller.ts +1 -1
  341. package/src/profile/profile.module.ts +1 -0
  342. package/src/setting/dto/update-setting-list.dto.ts +32 -0
  343. package/src/setting/setting.controller.ts +9 -0
  344. package/src/setting/setting.service.ts +99 -11
  345. package/src/task/task.service.ts +103 -0
  346. package/src/token/token.service.ts +0 -2
  347. package/src/webhook-integration/dto/webhook-action.dto.ts +96 -0
  348. package/src/webhook-integration/webhook-integration.controller.ts +124 -103
  349. package/src/webhook-integration/webhook-integration.service.ts +1137 -735
  350. package/src/webhook-integration/webhook-utils.ts +136 -79
@@ -29,9 +29,9 @@ import {
29
29
  } from '@/components/ui/form';
30
30
  import { FormActions } from '@/components/ui/form-actions';
31
31
  import { Input } from '@/components/ui/input';
32
+ import { ResizableSheetContent } from '@/components/ui/resizable-sheet-content';
32
33
  import {
33
34
  Sheet,
34
- SheetContent,
35
35
  SheetDescription,
36
36
  SheetHeader,
37
37
  SheetTitle,
@@ -44,7 +44,7 @@ import { User, UserMfa } from '@hed-hog/api-types';
44
44
  import { useApp, useQuery } from '@hed-hog/next-app-provider';
45
45
  import { zodResolver } from '@hookform/resolvers/zod';
46
46
  import { Avatar, AvatarFallback, AvatarImage } from '@radix-ui/react-avatar';
47
- import { Tabs, TabsContent, TabsList, TabsTrigger } from '@radix-ui/react-tabs';
47
+ import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
48
48
  import { formatDistanceToNow } from 'date-fns';
49
49
  import { enUS, ptBR } from 'date-fns/locale';
50
50
  import {
@@ -246,7 +246,13 @@ function UserCreateSheet({
246
246
 
247
247
  return (
248
248
  <Sheet open={open} onOpenChange={onOpenChange}>
249
- <SheetContent className="w-full sm:max-w-lg overflow-y-auto gap-0">
249
+ <ResizableSheetContent
250
+ sheetId="core-users-create-sheet"
251
+ defaultWidth={560}
252
+ minWidth={420}
253
+ maxWidth={920}
254
+ className="w-full sm:max-w-lg overflow-y-auto gap-0"
255
+ >
250
256
  <SheetHeader>
251
257
  <SheetTitle>{t('dialogAddUserTitle')}</SheetTitle>
252
258
  <SheetDescription>{t('description')}</SheetDescription>
@@ -340,7 +346,7 @@ function UserCreateSheet({
340
346
  />
341
347
  </form>
342
348
  </Form>
343
- </SheetContent>
349
+ </ResizableSheetContent>
344
350
  </Sheet>
345
351
  );
346
352
  }
@@ -610,7 +616,13 @@ function UserEditSheet({
610
616
  if (isLoading || !editingUser) {
611
617
  return (
612
618
  <Sheet open={open} onOpenChange={handleClose}>
613
- <SheetContent className="w-full sm:max-w-4xl overflow-y-auto gap-0">
619
+ <ResizableSheetContent
620
+ sheetId="core-users-edit-sheet"
621
+ defaultWidth={960}
622
+ minWidth={700}
623
+ maxWidth={1400}
624
+ className="w-full sm:max-w-4xl overflow-y-auto gap-0"
625
+ >
614
626
  <SheetHeader>
615
627
  <SheetTitle>{t('titleEditUser')}</SheetTitle>
616
628
  <SheetDescription>{t('description')}</SheetDescription>
@@ -618,68 +630,53 @@ function UserEditSheet({
618
630
  <div className="flex items-center justify-center h-40">
619
631
  <div className="h-8 w-8 border-2 border-primary border-t-transparent rounded-full animate-spin" />
620
632
  </div>
621
- </SheetContent>
633
+ </ResizableSheetContent>
622
634
  </Sheet>
623
635
  );
624
636
  }
625
637
 
626
638
  return (
627
639
  <Sheet open={open} onOpenChange={handleClose}>
628
- <SheetContent className="w-full sm:max-w-4xl overflow-y-auto gap-0">
640
+ <ResizableSheetContent
641
+ sheetId="core-users-edit-sheet"
642
+ defaultWidth={960}
643
+ minWidth={700}
644
+ maxWidth={1400}
645
+ className="w-full sm:max-w-4xl overflow-y-auto gap-0"
646
+ >
629
647
  <SheetHeader>
630
648
  <SheetTitle>{t('titleEditUser')}</SheetTitle>
631
649
  <SheetDescription>{t('description')}</SheetDescription>
632
650
  </SheetHeader>
633
651
 
634
652
  <Tabs value={activeTab} onValueChange={setActiveTab}>
635
- <TabsList className="grid w-full grid-cols-7 bg-muted rounded-md text-muted-foreground text-sm">
636
- <TabsTrigger
637
- value="overview"
638
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
639
- >
640
- <UserCircle className="h-4 w-4 min-h-4 min-w-4" />
653
+ <TabsList className="overflow-x-auto">
654
+ <TabsTrigger value="overview">
655
+ <UserCircle className="h-4 w-4" />
641
656
  <span className="hidden md:inline">{t('tabOverview')}</span>
642
657
  </TabsTrigger>
643
- <TabsTrigger
644
- value="edit"
645
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
646
- >
647
- <Save className="h-4 w-4 min-h-4 min-w-4" />
658
+ <TabsTrigger value="edit">
659
+ <Save className="h-4 w-4" />
648
660
  <span className="hidden md:inline">{t('tabEdit')}</span>
649
661
  </TabsTrigger>
650
- <TabsTrigger
651
- value="credentials"
652
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
653
- >
654
- <Key className="h-4 w-4 min-h-4 min-w-4" />
662
+ <TabsTrigger value="credentials">
663
+ <Key className="h-4 w-4" />
655
664
  <span className="hidden md:inline">{t('tabCredentials')}</span>
656
665
  </TabsTrigger>
657
- <TabsTrigger
658
- value="identifiers"
659
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
660
- >
661
- <Fingerprint className="h-4 w-4 min-h-4 min-w-4" />
666
+ <TabsTrigger value="identifiers">
667
+ <Fingerprint className="h-4 w-4" />
662
668
  <span className="hidden md:inline">{t('tabIdentifiers')}</span>
663
669
  </TabsTrigger>
664
- <TabsTrigger
665
- value="permissions"
666
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
667
- >
668
- <ShieldCheck className="h-4 w-4 min-h-4 min-w-4" />
670
+ <TabsTrigger value="permissions">
671
+ <ShieldCheck className="h-4 w-4" />
669
672
  <span className="hidden md:inline">{t('tabPermissions')}</span>
670
673
  </TabsTrigger>
671
- <TabsTrigger
672
- value="mfa"
673
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
674
- >
675
- <Shield className="h-4 w-4 min-h-4 min-w-4" />
674
+ <TabsTrigger value="mfa">
675
+ <Shield className="h-4 w-4" />
676
676
  <span className="hidden md:inline">{t('tabMfa')}</span>
677
677
  </TabsTrigger>
678
- <TabsTrigger
679
- value="sessions"
680
- className="flex items-center justify-center gap-2 px-3 py-4 data-[state=active]:bg-card data-[state=active]:text-primary data-[state=active]:font-medium"
681
- >
682
- <Monitor className="h-4 w-4 min-h-4 min-w-4" />
678
+ <TabsTrigger value="sessions">
679
+ <Monitor className="h-4 w-4" />
683
680
  <span className="hidden md:inline">{t('tabSessions')}</span>
684
681
  </TabsTrigger>
685
682
  </TabsList>
@@ -1345,7 +1342,7 @@ function UserEditSheet({
1345
1342
  />
1346
1343
  </TabsContent>
1347
1344
  </Tabs>
1348
- </SheetContent>
1345
+ </ResizableSheetContent>
1349
1346
  </Sheet>
1350
1347
  );
1351
1348
  }
@@ -20,7 +20,15 @@
20
20
  },
21
21
  "SearchBar": {
22
22
  "searchPlaceholder": "Search...",
23
- "btnBuscar": "Search"
23
+ "btnBuscar": "Search",
24
+ "filterPlaceholder": "Filter"
25
+ },
26
+ "Sheet": {
27
+ "close": "Close"
28
+ },
29
+ "PageHeader": {
30
+ "openBreadcrumbLevels": "Open breadcrumb levels",
31
+ "openActionsMenu": "Open actions menu"
24
32
  },
25
33
  "EmailVerificationPage": {
26
34
  "title": "Email Verification",
@@ -67,6 +75,7 @@
67
75
  "tab2fa": "2FA",
68
76
  "tabAccounts": "Accounts",
69
77
  "tabSessions": "Sessions",
78
+ "tabMcpTokens": "MCP Tokens",
70
79
  "breadcrumbLabel": "Account",
71
80
  "home": "Home",
72
81
  "title": "Account",
@@ -125,6 +134,56 @@
125
134
  "timezoneUpdated": "Timezone updated successfully",
126
135
  "timezoneUpdateError": "Failed to update timezone"
127
136
  },
137
+ "SettingListPage": {
138
+ "breadcrumbs": {
139
+ "home": "Home",
140
+ "core": "Core"
141
+ },
142
+ "title": "Manage setting options",
143
+ "description": "Manage options for list-type settings (combobox and checkbox), organized by group and subgroup.",
144
+ "searchPlaceholder": "Search by name, slug, description or option...",
145
+ "loading": "Loading settings...",
146
+ "emptyTitle": "No list settings found",
147
+ "emptyDescriptionNoSettings": "The selected group has no list settings (combobox/checkbox) with options.",
148
+ "emptyDescriptionFiltered": "No setting matched the current filter.",
149
+ "itemCount": "{count, plural, one {# item} other {# items}}",
150
+ "emptyOptions": "No options configured.",
151
+ "optionPlaceholder": "Enter option value",
152
+ "optionsSavedSuccess": "Options updated successfully.",
153
+ "optionsSavedError": "Could not update options.",
154
+ "optionsClearedSuccess": "List cleared successfully.",
155
+ "optionsClearedError": "Could not clear the list.",
156
+ "actions": {
157
+ "editOptions": "Edit list",
158
+ "clearOptions": "Clear list",
159
+ "addOption": "Add option",
160
+ "removeOption": "Remove option",
161
+ "saveOptions": "Save options",
162
+ "saving": "Saving..."
163
+ },
164
+ "sheet": {
165
+ "title": "Edit list options",
166
+ "description": "Manage list items for \"{name}\".",
167
+ "descriptionFallback": "Manage items from the selected list."
168
+ },
169
+ "sections": {
170
+ "withoutSubgroup": "Without subgroup"
171
+ },
172
+ "kpis": {
173
+ "groups": "Groups",
174
+ "settingsTotal": "List settings",
175
+ "subgroups": "Subgroups",
176
+ "settingsWithOptions": "With options",
177
+ "totalOptions": "Total options",
178
+ "options": "Options"
179
+ },
180
+ "filters": {
181
+ "allGroups": "All",
182
+ "groupPlaceholder": "Group",
183
+ "subgroupPlaceholder": "Subgroup",
184
+ "allSubgroups": "All subgroups"
185
+ }
186
+ },
128
187
  "UserPage": {
129
188
  "errorName": "Name must be at least 2 characters",
130
189
  "errorEmail": "Invalid email address",
@@ -242,7 +301,13 @@
242
301
  "buttonCopyPassword": "Copy password",
243
302
  "passwordCopied": "Password copied to clipboard.",
244
303
  "passwordCopyError": "Unable to copy password.",
245
- "close": "Close"
304
+ "close": "Close",
305
+ "viewMode": "View",
306
+ "viewModeTable": "Table",
307
+ "viewModeCards": "Cards",
308
+ "columnName": "Name",
309
+ "columnEmail": "Email",
310
+ "columnStatus": "Status"
246
311
  },
247
312
  "RolePage": {
248
313
  "title": "Roles Management",
@@ -1752,15 +1817,144 @@
1752
1817
  "grantedByRole": "Granted by",
1753
1818
  "moreUsers": "+{count} more users"
1754
1819
  },
1820
+ "IntegrationsWebhooksPage": {
1821
+ "title": "Integrations & Webhooks",
1822
+ "description": "Manage event catalog entries, incoming webhooks, and outbound event webhooks.",
1823
+ "breadcrumbHome": "Dashboard",
1824
+ "breadcrumbManagement": "Management",
1825
+ "statsEvents": "Events",
1826
+ "statsIncoming": "Incoming webhooks",
1827
+ "statsEventWebhooks": "Event webhooks",
1828
+ "tabCatalog": "Catalog",
1829
+ "tabIncoming": "Incoming",
1830
+ "tabEventWebhooks": "Event -> Webhook",
1831
+ "newEvent": "New event",
1832
+ "newIncoming": "New incoming webhook",
1833
+ "newEventWebhook": "New event webhook",
1834
+ "searchEvents": "Search events...",
1835
+ "searchIncoming": "Search incoming webhooks...",
1836
+ "searchEventWebhooks": "Search event webhooks...",
1837
+ "emptyEvents": "No events found",
1838
+ "emptyEventsDescription": "Create your first event to start building the catalog.",
1839
+ "emptyIncoming": "No incoming webhooks found",
1840
+ "emptyIncomingDescription": "Create an incoming webhook to receive external calls.",
1841
+ "emptyEventWebhooks": "No event webhooks found",
1842
+ "emptyEventWebhooksDescription": "Create an event webhook to dispatch requests automatically.",
1843
+ "eventName": "Event",
1844
+ "name": "Name",
1845
+ "technicalName": "Technical name",
1846
+ "module": "Module",
1847
+ "provider": "Provider",
1848
+ "descriptionColumn": "Description",
1849
+ "status": "Status",
1850
+ "updatedAt": "Updated at",
1851
+ "actions": "Actions",
1852
+ "publicUrl": "Public URL",
1853
+ "security": "Security",
1854
+ "actionsCount": "Actions count",
1855
+ "events": "Events",
1856
+ "httpTarget": "HTTP target",
1857
+ "retry": "Retries",
1858
+ "eventFormDescription": "Define the event details that can trigger integrations.",
1859
+ "incomingFormDescription": "Configure the public endpoint and actions for the incoming webhook.",
1860
+ "eventWebhookFormDescription": "Configure HTTP delivery when selected events are fired.",
1861
+ "requireToken": "Require token",
1862
+ "requireTokenHelp": "When enabled, each request must include the secret token.",
1863
+ "token": "Token",
1864
+ "uuid": "UUID",
1865
+ "oneTimeTokenTitle": "Generated token",
1866
+ "oneTimeTokenDescription": "Copy it now. This token is shown only once.",
1867
+ "tokenConfiguredTitle": "Token configured",
1868
+ "tokenConfiguredDescription": "The current token is active. Generate a new one to rotate it.",
1869
+ "tokenWillBeCreatedDescription": "A token will be created when you save this webhook.",
1870
+ "regenerateToken": "Generate new token",
1871
+ "allowedIps": "Allowed IPs",
1872
+ "ipAddress": "IP address",
1873
+ "emptyAllowedIps": "No IPs configured. Any source can call this endpoint.",
1874
+ "addIp": "Add IP",
1875
+ "bodySchema": "Body schema",
1876
+ "regenerateUuid": "Regenerate UUID",
1877
+ "actionSection": "Webhook actions",
1878
+ "actionType": "Action type",
1879
+ "email": "Email",
1880
+ "whatsapp": "WhatsApp",
1881
+ "order": "Order",
1882
+ "mailProfile": "Mail profile",
1883
+ "mailTemplate": "Mail template",
1884
+ "select": "Select",
1885
+ "emailTo": "Email to",
1886
+ "emailCc": "Email cc",
1887
+ "whatsappTargetType": "WhatsApp target type",
1888
+ "phone": "Phone",
1889
+ "group": "Group",
1890
+ "whatsappTarget": "WhatsApp target",
1891
+ "whatsappInstance": "WhatsApp instance",
1892
+ "whatsappBaseUrl": "WhatsApp base URL",
1893
+ "whatsappToken": "WhatsApp token",
1894
+ "whatsappTemplate": "WhatsApp template",
1895
+ "addAction": "Add action",
1896
+ "incomingSheetTabSettings": "Settings",
1897
+ "incomingSheetTabLogs": "Logs",
1898
+ "emptyIncomingLogs": "No execution logs",
1899
+ "emptyIncomingLogsDescription": "Webhook call attempts will appear here with per-action results.",
1900
+ "incomingLogsLoading": "Loading logs...",
1901
+ "logStatusSuccess": "Success",
1902
+ "logStatusFailed": "Failed",
1903
+ "logDuration": "Duration",
1904
+ "logRemoteIp": "Remote IP",
1905
+ "logResponse": "Response",
1906
+ "method": "Method",
1907
+ "url": "URL",
1908
+ "timeout": "Timeout (ms)",
1909
+ "headers": "Headers",
1910
+ "query": "Query",
1911
+ "payload": "Payload",
1912
+ "active": "Active",
1913
+ "inactive": "Inactive",
1914
+ "save": "Save",
1915
+ "cancel": "Cancel",
1916
+ "delete": "Delete",
1917
+ "deleteTitle": "Confirm deletion",
1918
+ "deleteDescription": "Are you sure you want to delete \"{name}\"? This action cannot be undone.",
1919
+ "created": "Created successfully",
1920
+ "updated": "Updated successfully",
1921
+ "deleted": "Deleted successfully",
1922
+ "loadError": "Could not load the data.",
1923
+ "saveError": "Could not save. Please review the data and try again.",
1924
+ "deleteError": "Could not delete the item.",
1925
+ "tokenGenerated": "Token generated successfully",
1926
+ "uuidRegenerated": "UUID regenerated successfully",
1927
+ "editEvent": "Edit event",
1928
+ "editIncoming": "Edit incoming webhook",
1929
+ "editEventWebhook": "Edit event webhook",
1930
+ "logDate": "Date",
1931
+ "logDetailTitle": "Log details",
1932
+ "logError": "Error",
1933
+ "logPayload": "Received payload",
1934
+ "logRequest": "Request",
1935
+ "logOrderDesc": "Most recent first",
1936
+ "logOrderAsc": "Oldest first"
1937
+ },
1755
1938
  "McpChatPage": {
1756
1939
  "title": "MCP Chat",
1757
1940
  "description": "Chat with AI using MCP tools",
1758
1941
  "newConversation": "New Conversation",
1759
1942
  "conversations": "Conversations",
1943
+ "openConversations": "Open conversations",
1760
1944
  "placeholder": "Type your message... (Enter to send, Shift+Enter for new line)",
1761
1945
  "send": "Send",
1762
1946
  "sending": "Sending...",
1763
1947
  "noConversation": "Select or create a conversation",
1948
+ "loadMessagesError": "Failed to load messages",
1949
+ "createConversationError": "Failed to create conversation",
1950
+ "sendMessageError": "Failed to send message",
1951
+ "uploadFileError": "Failed to upload file",
1952
+ "deleteConversationSuccess": "Conversation deleted",
1953
+ "deleteConversationError": "Failed to delete conversation",
1954
+ "attachFile": "Attach file",
1955
+ "uploadingFile": "Uploading file...",
1956
+ "removeAttachment": "Remove attachment",
1957
+ "attachedFilesPrefix": "Attached files:",
1764
1958
  "toolCalled": "Tool called",
1765
1959
  "toolResult": "Tool result",
1766
1960
  "cancel": "Cancel",
@@ -1768,6 +1962,152 @@
1768
1962
  "emptyConversations": "No conversations yet",
1769
1963
  "breadcrumbDashboard": "Dashboard",
1770
1964
  "breadcrumbManagement": "Management",
1771
- "breadcrumbCurrent": "MCP Chat"
1965
+ "breadcrumbCurrent": "MCP Chat",
1966
+ "mcpDisabled": "MCP Server is disabled. Enable it in Settings → MCP."
1967
+ },
1968
+ "McpTokens": {
1969
+ "title": "MCP API Keys",
1970
+ "description": "Create and manage personal access tokens for MCP server authentication",
1971
+ "createToken": "Create Token",
1972
+ "createTokenTitle": "Create MCP API Key",
1973
+ "createTokenDescription": "Give your token a name to identify it later",
1974
+ "tokenNameLabel": "Token Name",
1975
+ "tokenNamePlaceholder": "e.g. Claude Desktop",
1976
+ "tokenCreatedTitle": "Token Created",
1977
+ "tokenCreatedWarning": "This token is shown only once. Copy it now and store it safely.",
1978
+ "tokenCreatedLabel": "Your new MCP API Key",
1979
+ "copyToken": "Copy",
1980
+ "tokenCopied": "Copied!",
1981
+ "closeDialog": "Close",
1982
+ "mcpUrlLabel": "MCP Server URL",
1983
+ "copyUrl": "Copy URL",
1984
+ "name": "Name",
1985
+ "tokenPrefix": "Token Prefix",
1986
+ "lastUsed": "Last Used",
1987
+ "createdAt": "Created At",
1988
+ "never": "Never",
1989
+ "noTokens": "No MCP API keys yet. Create one to connect external clients.",
1990
+ "revoke": "Revoke",
1991
+ "revokeTokenTitle": "Revoke API Key",
1992
+ "revokeTokenDescription": "This key will stop working immediately. This action cannot be undone.",
1993
+ "cancel": "Cancel",
1994
+ "revokeConfirm": "Revoke Key",
1995
+ "createSuccess": "API key created",
1996
+ "createFailure": "Failed to create API key",
1997
+ "revokeSuccess": "API key revoked",
1998
+ "revokeFailure": "Failed to revoke API key"
1999
+ },
2000
+ "McpFloatingChat": {
2001
+ "title": "MCP Chat",
2002
+ "openFullPage": "Open full view",
2003
+ "minimize": "Minimize",
2004
+ "openChat": "Open AI Chat (Ctrl+/)",
2005
+ "inputPlaceholder": "Ask anything...",
2006
+ "newConversation": "New conversation",
2007
+ "emptyState": "Start a conversation with the AI assistant.",
2008
+ "send": "Send",
2009
+ "sending": "Sending...",
2010
+ "attachFile": "Attach file",
2011
+ "uploadingFile": "Uploading...",
2012
+ "removeAttachment": "Remove attachment",
2013
+ "createConversationError": "Failed to start conversation",
2014
+ "sendMessageError": "Failed to send message",
2015
+ "uploadFileError": "Failed to upload file"
2016
+ },
2017
+ "Notification": {
2018
+ "title": "Notifications",
2019
+ "markAllRead": "Mark all as read",
2020
+ "empty": "No notifications",
2021
+ "justNow": "Just now",
2022
+ "minutesAgo": "{count}m ago",
2023
+ "hoursAgo": "{count}h ago",
2024
+ "daysAgo": "{count}d ago",
2025
+ "elapsed": "{time} elapsed",
2026
+ "inProgress": "In progress...",
2027
+ "completed": "Completed",
2028
+ "clearAll": "Clear all notifications",
2029
+ "failed": "Failed"
2030
+ },
2031
+ "FfmpegParamsEditor": {
2032
+ "resolution": "Resolution",
2033
+ "customResolution": "Custom",
2034
+ "width": "Width",
2035
+ "height": "Height",
2036
+ "videoCodec": "Video Codec",
2037
+ "encodingSpeed": "Encoding Speed",
2038
+ "quality": "Quality",
2039
+ "qualityBest": "Best (larger file)",
2040
+ "qualityWorst": "Worst (smaller file)",
2041
+ "qualityPerfect": "Lossless",
2042
+ "qualityVeryHigh": "Very High",
2043
+ "qualityHigh": "High",
2044
+ "qualityMedium": "Medium",
2045
+ "qualityLow": "Low",
2046
+ "qualityVeryLow": "Very Low",
2047
+ "audioCodec": "Audio Codec",
2048
+ "audioChannels": "Audio Channels",
2049
+ "mono": "Mono (1 channel)",
2050
+ "stereo": "Stereo (2 channels)",
2051
+ "webOptimized": "Optimize for web streaming",
2052
+ "webOptimizedDescription": "Enables fast start for progressive download (recommended for online video)",
2053
+ "keepAspectRatio": "Maintain aspect ratio",
2054
+ "keepAspectRatioDescription": "Adds letterboxing/pillarboxing to preserve original proportions",
2055
+ "deinterlace": "Deinterlace",
2056
+ "deinterlaceDescription": "Removes interlacing artifacts from broadcast or camera footage",
2057
+ "presets": {
2058
+ "ultrafast": "Ultra Fast (lowest quality)",
2059
+ "superfast": "Super Fast",
2060
+ "veryfast": "Very Fast",
2061
+ "faster": "Faster",
2062
+ "fast": "Fast",
2063
+ "medium": "Medium",
2064
+ "slow": "Slow",
2065
+ "slower": "Slower (recommended)",
2066
+ "veryslow": "Very Slow (best quality)"
2067
+ }
2068
+ },
2069
+ "AccessLog": {
2070
+ "breadcrumbHome": "Home",
2071
+ "breadcrumbTitle": "Access Logs",
2072
+ "title": "Access Logs",
2073
+ "description": "Real-time record of all HTTP and MCP access to the system",
2074
+ "totalLogs": "Total Logs",
2075
+ "httpRequests": "HTTP Requests",
2076
+ "mcpCalls": "MCP Calls",
2077
+ "uniqueUsers": "Unique Users",
2078
+ "searchPlaceholder": "Search by path or tool...",
2079
+ "userPickerPlaceholder": "All users",
2080
+ "userPickerSearch": "Search users...",
2081
+ "filterByType": "Type",
2082
+ "typeAll": "All",
2083
+ "typeHttp": "HTTP",
2084
+ "typeMcp": "MCP",
2085
+ "noLogsFound": "No logs found",
2086
+ "adjustSearch": "Try adjusting your filters or date range",
2087
+ "noLogsYet": "No access logs recorded yet",
2088
+ "viewDetails": "Details",
2089
+ "logDetails": "Log Details",
2090
+ "clearFilters": "Clear Filters",
2091
+ "user": "User",
2092
+ "ip": "IP",
2093
+ "browser": "Browser",
2094
+ "method": "Method",
2095
+ "path": "Path",
2096
+ "tool": "MCP Tool",
2097
+ "prompt": "Prompt / Input",
2098
+ "createdAt": "Date / Time",
2099
+ "anonymous": "Anonymous",
2100
+ "loadingLogs": "Loading logs...",
2101
+ "viewMode": "View",
2102
+ "viewModeTable": "Table",
2103
+ "viewModeCards": "Cards",
2104
+ "refreshList": "Refresh",
2105
+ "liveMode": "Live",
2106
+ "pauseUpdates": "Pause",
2107
+ "resumeUpdates": "Resume",
2108
+ "id": "ID",
2109
+ "actions": "Actions",
2110
+ "noUserAgent": "—",
2111
+ "detailsDescription": "Full details of this access log entry"
1772
2112
  }
1773
2113
  }