@hed-hog/core 0.0.387 → 0.0.390

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 (535) hide show
  1. package/README.md +12 -11
  2. package/dist/access-log/access-log.interceptor.d.ts.map +1 -1
  3. package/dist/access-log/access-log.interceptor.js +4 -2
  4. package/dist/access-log/access-log.interceptor.js.map +1 -1
  5. package/dist/ai/ai-attachment.fragments.d.ts +23 -0
  6. package/dist/ai/ai-attachment.fragments.d.ts.map +1 -0
  7. package/dist/ai/ai-attachment.fragments.js +34 -0
  8. package/dist/ai/ai-attachment.fragments.js.map +1 -0
  9. package/dist/ai/ai.controller.d.ts +7 -16
  10. package/dist/ai/ai.controller.d.ts.map +1 -1
  11. package/dist/ai/ai.prompts.d.ts +16 -0
  12. package/dist/ai/ai.prompts.d.ts.map +1 -0
  13. package/dist/ai/ai.prompts.js +37 -0
  14. package/dist/ai/ai.prompts.js.map +1 -0
  15. package/dist/ai/ai.service.d.ts +63 -12
  16. package/dist/ai/ai.service.d.ts.map +1 -1
  17. package/dist/ai/ai.service.js +215 -88
  18. package/dist/ai/ai.service.js.map +1 -1
  19. package/dist/ai/dto/chat.dto.d.ts +4 -1
  20. package/dist/ai/dto/chat.dto.d.ts.map +1 -1
  21. package/dist/ai/dto/chat.dto.js +23 -1
  22. package/dist/ai/dto/chat.dto.js.map +1 -1
  23. package/dist/ai/dto/create-agent.dto.d.ts +1 -1
  24. package/dist/ai/dto/create-agent.dto.d.ts.map +1 -1
  25. package/dist/ai/dto/create-agent.dto.js +1 -1
  26. package/dist/ai/dto/create-agent.dto.js.map +1 -1
  27. package/dist/ai/dto/update-agent.dto.d.ts +1 -1
  28. package/dist/ai/dto/update-agent.dto.d.ts.map +1 -1
  29. package/dist/ai/dto/update-agent.dto.js +1 -1
  30. package/dist/ai/dto/update-agent.dto.js.map +1 -1
  31. package/dist/ai-instruction/ai-instruction.controller.d.ts +61 -7
  32. package/dist/ai-instruction/ai-instruction.controller.d.ts.map +1 -1
  33. package/dist/ai-instruction/ai-instruction.controller.js +63 -20
  34. package/dist/ai-instruction/ai-instruction.controller.js.map +1 -1
  35. package/dist/ai-instruction/ai-instruction.module.d.ts.map +1 -1
  36. package/dist/ai-instruction/ai-instruction.module.js +13 -2
  37. package/dist/ai-instruction/ai-instruction.module.js.map +1 -1
  38. package/dist/ai-instruction/ai-instruction.service.d.ts +131 -6
  39. package/dist/ai-instruction/ai-instruction.service.d.ts.map +1 -1
  40. package/dist/ai-instruction/ai-instruction.service.js +533 -60
  41. package/dist/ai-instruction/ai-instruction.service.js.map +1 -1
  42. package/dist/ai-instruction/ai-prompt-builder.service.d.ts +8 -0
  43. package/dist/ai-instruction/ai-prompt-builder.service.d.ts.map +1 -1
  44. package/dist/ai-instruction/ai-prompt-builder.service.js +10 -1
  45. package/dist/ai-instruction/ai-prompt-builder.service.js.map +1 -1
  46. package/dist/ai-instruction/ai-prompt-registry.d.ts +45 -0
  47. package/dist/ai-instruction/ai-prompt-registry.d.ts.map +1 -0
  48. package/dist/ai-instruction/ai-prompt-registry.js +49 -0
  49. package/dist/ai-instruction/ai-prompt-registry.js.map +1 -0
  50. package/dist/ai-instruction/ai-prompt-resolver.service.d.ts +89 -0
  51. package/dist/ai-instruction/ai-prompt-resolver.service.d.ts.map +1 -0
  52. package/dist/ai-instruction/ai-prompt-resolver.service.js +222 -0
  53. package/dist/ai-instruction/ai-prompt-resolver.service.js.map +1 -0
  54. package/dist/ai-instruction/ai-prompt-template.util.d.ts +70 -0
  55. package/dist/ai-instruction/ai-prompt-template.util.d.ts.map +1 -0
  56. package/dist/ai-instruction/ai-prompt-template.util.js +154 -0
  57. package/dist/ai-instruction/ai-prompt-template.util.js.map +1 -0
  58. package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts +5 -0
  59. package/dist/ai-instruction/dto/create-ai-instruction.dto.d.ts.map +1 -1
  60. package/dist/ai-instruction/dto/create-ai-instruction.dto.js +27 -1
  61. package/dist/ai-instruction/dto/create-ai-instruction.dto.js.map +1 -1
  62. package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts +14 -0
  63. package/dist/ai-instruction/dto/preview-ai-instruction.dto.d.ts.map +1 -0
  64. package/dist/ai-instruction/dto/preview-ai-instruction.dto.js +42 -0
  65. package/dist/ai-instruction/dto/preview-ai-instruction.dto.js.map +1 -0
  66. package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts +11 -0
  67. package/dist/ai-instruction/dto/update-ai-instruction.dto.d.ts.map +1 -1
  68. package/dist/ai-instruction/dto/update-ai-instruction.dto.js +34 -0
  69. package/dist/ai-instruction/dto/update-ai-instruction.dto.js.map +1 -1
  70. package/dist/ai-instruction/types/ai-instruction.types.d.ts +13 -1
  71. package/dist/ai-instruction/types/ai-instruction.types.d.ts.map +1 -1
  72. package/dist/ai-instruction/types/ai-instruction.types.js +10 -0
  73. package/dist/ai-instruction/types/ai-instruction.types.js.map +1 -1
  74. package/dist/auth/auth.controller.d.ts +24 -9
  75. package/dist/auth/auth.controller.d.ts.map +1 -1
  76. package/dist/auth/auth.controller.js +49 -21
  77. package/dist/auth/auth.controller.js.map +1 -1
  78. package/dist/auth/auth.service.d.ts +33 -8
  79. package/dist/auth/auth.service.d.ts.map +1 -1
  80. package/dist/auth/auth.service.js +78 -29
  81. package/dist/auth/auth.service.js.map +1 -1
  82. package/dist/captcha/captcha.module.d.ts +3 -0
  83. package/dist/captcha/captcha.module.d.ts.map +1 -0
  84. package/dist/captcha/captcha.module.js +23 -0
  85. package/dist/captcha/captcha.module.js.map +1 -0
  86. package/dist/captcha/captcha.service.d.ts +38 -0
  87. package/dist/captcha/captcha.service.d.ts.map +1 -0
  88. package/dist/captcha/captcha.service.js +144 -0
  89. package/dist/captcha/captcha.service.js.map +1 -0
  90. package/dist/challenge/challenge.service.d.ts +16 -7
  91. package/dist/challenge/challenge.service.d.ts.map +1 -1
  92. package/dist/challenge/challenge.service.js +64 -16
  93. package/dist/challenge/challenge.service.js.map +1 -1
  94. package/dist/core.module.d.ts +3 -1
  95. package/dist/core.module.d.ts.map +1 -1
  96. package/dist/core.module.js +29 -2
  97. package/dist/core.module.js.map +1 -1
  98. package/dist/dashboard/dashboard/dashboard.controller.d.ts +15 -15
  99. package/dist/dashboard/dashboard/dashboard.service.d.ts +15 -15
  100. package/dist/dashboard/dashboard-component/dashboard-component.controller.d.ts +6 -6
  101. package/dist/dashboard/dashboard-component/dashboard-component.service.d.ts +6 -6
  102. package/dist/dashboard/dashboard-component-role/dashboard-component-role.controller.d.ts +20 -20
  103. package/dist/dashboard/dashboard-component-role/dashboard-component-role.service.d.ts +20 -20
  104. package/dist/dashboard/dashboard-core/dashboard-core.controller.d.ts +1 -1
  105. package/dist/dashboard/dashboard-core/dashboard-core.service.d.ts +1 -1
  106. package/dist/dashboard/dashboard-role/dashboard-role.controller.d.ts +13 -13
  107. package/dist/dashboard/dashboard-role/dashboard-role.service.d.ts +13 -13
  108. package/dist/file/file.service.d.ts +6 -0
  109. package/dist/file/file.service.d.ts.map +1 -1
  110. package/dist/file/file.service.js +44 -4
  111. package/dist/file/file.service.js.map +1 -1
  112. package/dist/incident/incident-notifier.service.d.ts +36 -0
  113. package/dist/incident/incident-notifier.service.d.ts.map +1 -0
  114. package/dist/incident/incident-notifier.service.js +208 -0
  115. package/dist/incident/incident-notifier.service.js.map +1 -0
  116. package/dist/incident/incident.controller.d.ts +23 -0
  117. package/dist/incident/incident.controller.d.ts.map +1 -0
  118. package/dist/incident/incident.controller.js +75 -0
  119. package/dist/incident/incident.controller.js.map +1 -0
  120. package/dist/incident/incident.module.d.ts +7 -0
  121. package/dist/incident/incident.module.d.ts.map +1 -0
  122. package/dist/incident/incident.module.js +32 -0
  123. package/dist/incident/incident.module.js.map +1 -0
  124. package/dist/incident/incident.service.d.ts +72 -0
  125. package/dist/incident/incident.service.d.ts.map +1 -0
  126. package/dist/incident/incident.service.js +184 -0
  127. package/dist/incident/incident.service.js.map +1 -0
  128. package/dist/index.d.ts +26 -0
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +30 -0
  131. package/dist/index.js.map +1 -1
  132. package/dist/integration-profile/dto/test.dto.d.ts +13 -0
  133. package/dist/integration-profile/dto/test.dto.d.ts.map +1 -0
  134. package/dist/integration-profile/dto/test.dto.js +26 -0
  135. package/dist/integration-profile/dto/test.dto.js.map +1 -0
  136. package/dist/integration-profile/integration-profile.controller.d.ts +12 -1
  137. package/dist/integration-profile/integration-profile.controller.d.ts.map +1 -1
  138. package/dist/integration-profile/integration-profile.controller.js +9 -1
  139. package/dist/integration-profile/integration-profile.controller.js.map +1 -1
  140. package/dist/integration-profile/integration-profile.module.d.ts +6 -1
  141. package/dist/integration-profile/integration-profile.module.d.ts.map +1 -1
  142. package/dist/integration-profile/integration-profile.module.js +26 -3
  143. package/dist/integration-profile/integration-profile.module.js.map +1 -1
  144. package/dist/integration-profile/integration-profile.secrets.d.ts.map +1 -1
  145. package/dist/integration-profile/integration-profile.secrets.js +9 -1
  146. package/dist/integration-profile/integration-profile.secrets.js.map +1 -1
  147. package/dist/integration-profile/integration-profile.service.d.ts +26 -7
  148. package/dist/integration-profile/integration-profile.service.d.ts.map +1 -1
  149. package/dist/integration-profile/integration-profile.service.js +94 -91
  150. package/dist/integration-profile/integration-profile.service.js.map +1 -1
  151. package/dist/integration-profile/integration-profile.utils.d.ts +13 -1
  152. package/dist/integration-profile/integration-profile.utils.d.ts.map +1 -1
  153. package/dist/integration-profile/integration-profile.utils.js +20 -5
  154. package/dist/integration-profile/integration-profile.utils.js.map +1 -1
  155. package/dist/integration-profile/testers/ai.testers.d.ts +3 -0
  156. package/dist/integration-profile/testers/ai.testers.d.ts.map +1 -0
  157. package/dist/integration-profile/testers/ai.testers.js +125 -0
  158. package/dist/integration-profile/testers/ai.testers.js.map +1 -0
  159. package/dist/integration-profile/testers/captcha.testers.d.ts +3 -0
  160. package/dist/integration-profile/testers/captcha.testers.d.ts.map +1 -0
  161. package/dist/integration-profile/testers/captcha.testers.js +121 -0
  162. package/dist/integration-profile/testers/captcha.testers.js.map +1 -0
  163. package/dist/integration-profile/testers/email.testers.d.ts +3 -0
  164. package/dist/integration-profile/testers/email.testers.d.ts.map +1 -0
  165. package/dist/integration-profile/testers/email.testers.js +128 -0
  166. package/dist/integration-profile/testers/email.testers.js.map +1 -0
  167. package/dist/integration-profile/testers/http-probe.d.ts +57 -0
  168. package/dist/integration-profile/testers/http-probe.d.ts.map +1 -0
  169. package/dist/integration-profile/testers/http-probe.js +140 -0
  170. package/dist/integration-profile/testers/http-probe.js.map +1 -0
  171. package/dist/integration-profile/testers/index.d.ts +12 -0
  172. package/dist/integration-profile/testers/index.d.ts.map +1 -0
  173. package/dist/integration-profile/testers/index.js +45 -0
  174. package/dist/integration-profile/testers/index.js.map +1 -0
  175. package/dist/integration-profile/testers/infrastructure.testers.d.ts +3 -0
  176. package/dist/integration-profile/testers/infrastructure.testers.d.ts.map +1 -0
  177. package/dist/integration-profile/testers/infrastructure.testers.js +105 -0
  178. package/dist/integration-profile/testers/infrastructure.testers.js.map +1 -0
  179. package/dist/integration-profile/testers/integration-tester.registry.d.ts +17 -0
  180. package/dist/integration-profile/testers/integration-tester.registry.d.ts.map +1 -0
  181. package/dist/integration-profile/testers/integration-tester.registry.js +52 -0
  182. package/dist/integration-profile/testers/integration-tester.registry.js.map +1 -0
  183. package/dist/integration-profile/testers/integration-tester.types.d.ts +55 -0
  184. package/dist/integration-profile/testers/integration-tester.types.d.ts.map +1 -0
  185. package/dist/integration-profile/testers/integration-tester.types.js +16 -0
  186. package/dist/integration-profile/testers/integration-tester.types.js.map +1 -0
  187. package/dist/integration-profile/testers/messaging.testers.d.ts +3 -0
  188. package/dist/integration-profile/testers/messaging.testers.d.ts.map +1 -0
  189. package/dist/integration-profile/testers/messaging.testers.js +70 -0
  190. package/dist/integration-profile/testers/messaging.testers.js.map +1 -0
  191. package/dist/integration-profile/testers/oauth.testers.d.ts +3 -0
  192. package/dist/integration-profile/testers/oauth.testers.d.ts.map +1 -0
  193. package/dist/integration-profile/testers/oauth.testers.js +285 -0
  194. package/dist/integration-profile/testers/oauth.testers.js.map +1 -0
  195. package/dist/integration-profile/testers/payment.testers.d.ts +3 -0
  196. package/dist/integration-profile/testers/payment.testers.d.ts.map +1 -0
  197. package/dist/integration-profile/testers/payment.testers.js +169 -0
  198. package/dist/integration-profile/testers/payment.testers.js.map +1 -0
  199. package/dist/integration-profile/testers/storage.testers.d.ts +3 -0
  200. package/dist/integration-profile/testers/storage.testers.d.ts.map +1 -0
  201. package/dist/integration-profile/testers/storage.testers.js +208 -0
  202. package/dist/integration-profile/testers/storage.testers.js.map +1 -0
  203. package/dist/language/en.json +4 -2
  204. package/dist/language/pt.json +4 -2
  205. package/dist/leaked-password/leaked-password.controller.d.ts +24 -0
  206. package/dist/leaked-password/leaked-password.controller.d.ts.map +1 -0
  207. package/dist/leaked-password/leaked-password.controller.js +78 -0
  208. package/dist/leaked-password/leaked-password.controller.js.map +1 -0
  209. package/dist/leaked-password/leaked-password.module.d.ts +8 -0
  210. package/dist/leaked-password/leaked-password.module.d.ts.map +1 -0
  211. package/dist/leaked-password/leaked-password.module.js +31 -0
  212. package/dist/leaked-password/leaked-password.module.js.map +1 -0
  213. package/dist/leaked-password/leaked-password.service.d.ts +64 -0
  214. package/dist/leaked-password/leaked-password.service.d.ts.map +1 -0
  215. package/dist/leaked-password/leaked-password.service.js +218 -0
  216. package/dist/leaked-password/leaked-password.service.js.map +1 -0
  217. package/dist/locale/locale.controller.d.ts +1 -1
  218. package/dist/locale/locale.service.d.ts +1 -1
  219. package/dist/mail/dto/preview.dto.d.ts +18 -0
  220. package/dist/mail/dto/preview.dto.d.ts.map +1 -0
  221. package/dist/mail/dto/preview.dto.js +66 -0
  222. package/dist/mail/dto/preview.dto.js.map +1 -0
  223. package/dist/mail/dto/send.dto.d.ts +7 -0
  224. package/dist/mail/dto/send.dto.d.ts.map +1 -1
  225. package/dist/mail/dto/send.dto.js +10 -0
  226. package/dist/mail/dto/send.dto.js.map +1 -1
  227. package/dist/mail/mail.controller.d.ts +4 -0
  228. package/dist/mail/mail.controller.d.ts.map +1 -1
  229. package/dist/mail/mail.controller.js +16 -2
  230. package/dist/mail/mail.controller.js.map +1 -1
  231. package/dist/mail/mail.service.d.ts +23 -2
  232. package/dist/mail/mail.service.d.ts.map +1 -1
  233. package/dist/mail/mail.service.js +102 -13
  234. package/dist/mail/mail.service.js.map +1 -1
  235. package/dist/mail-layout/dto/update.dto.d.ts +17 -0
  236. package/dist/mail-layout/dto/update.dto.d.ts.map +1 -0
  237. package/dist/mail-layout/dto/update.dto.js +27 -0
  238. package/dist/mail-layout/dto/update.dto.js.map +1 -0
  239. package/dist/mail-layout/mail-layout.controller.d.ts +15 -0
  240. package/dist/mail-layout/mail-layout.controller.d.ts.map +1 -0
  241. package/dist/mail-layout/mail-layout.controller.js +71 -0
  242. package/dist/mail-layout/mail-layout.controller.js.map +1 -0
  243. package/dist/mail-layout/mail-layout.module.d.ts +3 -0
  244. package/dist/mail-layout/mail-layout.module.d.ts.map +1 -0
  245. package/dist/mail-layout/mail-layout.module.js +35 -0
  246. package/dist/mail-layout/mail-layout.module.js.map +1 -0
  247. package/dist/mail-layout/mail-layout.service.d.ts +27 -0
  248. package/dist/mail-layout/mail-layout.service.d.ts.map +1 -0
  249. package/dist/mail-layout/mail-layout.service.js +80 -0
  250. package/dist/mail-layout/mail-layout.service.js.map +1 -0
  251. package/dist/mcp-chat/mcp-chat.controller.d.ts +2 -2
  252. package/dist/mcp-chat/mcp-chat.service.d.ts +24 -2
  253. package/dist/mcp-chat/mcp-chat.service.d.ts.map +1 -1
  254. package/dist/mcp-chat/mcp-chat.service.js +80 -24
  255. package/dist/mcp-chat/mcp-chat.service.js.map +1 -1
  256. package/dist/menu/menu.controller.d.ts +3 -3
  257. package/dist/menu/menu.service.d.ts +3 -3
  258. package/dist/notification/notification.controller.d.ts +12 -12
  259. package/dist/notification/notification.service.d.ts +12 -12
  260. package/dist/oauth/oauth-token-broker.service.d.ts +72 -0
  261. package/dist/oauth/oauth-token-broker.service.d.ts.map +1 -0
  262. package/dist/oauth/oauth-token-broker.service.js +258 -0
  263. package/dist/oauth/oauth-token-broker.service.js.map +1 -0
  264. package/dist/oauth/oauth.module.d.ts.map +1 -1
  265. package/dist/oauth/oauth.module.js +3 -1
  266. package/dist/oauth/oauth.module.js.map +1 -1
  267. package/dist/oauth/oauth.service.d.ts +2 -0
  268. package/dist/oauth/oauth.service.d.ts.map +1 -1
  269. package/dist/oauth/oauth.service.js +6 -3
  270. package/dist/oauth/oauth.service.js.map +1 -1
  271. package/dist/pdf/pdf.service.d.ts +8 -0
  272. package/dist/pdf/pdf.service.d.ts.map +1 -1
  273. package/dist/pdf/pdf.service.js +52 -0
  274. package/dist/pdf/pdf.service.js.map +1 -1
  275. package/dist/presence/presence.controller.d.ts +16 -0
  276. package/dist/presence/presence.controller.d.ts.map +1 -0
  277. package/dist/presence/presence.controller.js +60 -0
  278. package/dist/presence/presence.controller.js.map +1 -0
  279. package/dist/presence/presence.listener.d.ts +29 -0
  280. package/dist/presence/presence.listener.d.ts.map +1 -0
  281. package/dist/presence/presence.listener.js +82 -0
  282. package/dist/presence/presence.listener.js.map +1 -0
  283. package/dist/presence/presence.module.d.ts +3 -0
  284. package/dist/presence/presence.module.d.ts.map +1 -0
  285. package/dist/presence/presence.module.js +32 -0
  286. package/dist/presence/presence.module.js.map +1 -0
  287. package/dist/presence/presence.service.d.ts +42 -0
  288. package/dist/presence/presence.service.d.ts.map +1 -0
  289. package/dist/presence/presence.service.js +147 -0
  290. package/dist/presence/presence.service.js.map +1 -0
  291. package/dist/profile/dto/delete-account.dto.d.ts +8 -0
  292. package/dist/profile/dto/delete-account.dto.d.ts.map +1 -0
  293. package/dist/profile/dto/delete-account.dto.js +22 -0
  294. package/dist/profile/dto/delete-account.dto.js.map +1 -0
  295. package/dist/profile/events/profile-account-deleted.event.d.ts +12 -0
  296. package/dist/profile/events/profile-account-deleted.event.d.ts.map +1 -0
  297. package/dist/profile/events/profile-account-deleted.event.js +17 -0
  298. package/dist/profile/events/profile-account-deleted.event.js.map +1 -0
  299. package/dist/profile/profile.controller.d.ts +21 -15
  300. package/dist/profile/profile.controller.d.ts.map +1 -1
  301. package/dist/profile/profile.controller.js +75 -46
  302. package/dist/profile/profile.controller.js.map +1 -1
  303. package/dist/profile/profile.service.d.ts +30 -18
  304. package/dist/profile/profile.service.d.ts.map +1 -1
  305. package/dist/profile/profile.service.js +113 -37
  306. package/dist/profile/profile.service.js.map +1 -1
  307. package/dist/realtime/realtime.gateway.d.ts +48 -0
  308. package/dist/realtime/realtime.gateway.d.ts.map +1 -0
  309. package/dist/realtime/realtime.gateway.js +156 -0
  310. package/dist/realtime/realtime.gateway.js.map +1 -0
  311. package/dist/realtime/realtime.module.d.ts +8 -0
  312. package/dist/realtime/realtime.module.d.ts.map +1 -0
  313. package/dist/realtime/realtime.module.js +29 -0
  314. package/dist/realtime/realtime.module.js.map +1 -0
  315. package/dist/realtime/realtime.service.d.ts +51 -0
  316. package/dist/realtime/realtime.service.d.ts.map +1 -0
  317. package/dist/realtime/realtime.service.js +177 -0
  318. package/dist/realtime/realtime.service.js.map +1 -0
  319. package/dist/redis/redis-pubsub.d.ts +27 -0
  320. package/dist/redis/redis-pubsub.d.ts.map +1 -0
  321. package/dist/redis/redis-pubsub.js +140 -0
  322. package/dist/redis/redis-pubsub.js.map +1 -0
  323. package/dist/role/role.controller.d.ts +3 -3
  324. package/dist/role/role.service.d.ts +3 -3
  325. package/dist/setting/dto/create.dto.d.ts.map +1 -1
  326. package/dist/setting/dto/create.dto.js +9 -2
  327. package/dist/setting/dto/create.dto.js.map +1 -1
  328. package/dist/setting/setting.controller.d.ts +5 -5
  329. package/dist/setting/setting.service.d.ts +8 -5
  330. package/dist/setting/setting.service.d.ts.map +1 -1
  331. package/dist/setting/setting.service.js +25 -1
  332. package/dist/setting/setting.service.js.map +1 -1
  333. package/dist/user/dto/create-with-email-and-password.dto.d.ts +2 -0
  334. package/dist/user/dto/create-with-email-and-password.dto.d.ts.map +1 -1
  335. package/dist/user/dto/create-with-email-and-password.dto.js +5 -0
  336. package/dist/user/dto/create-with-email-and-password.dto.js.map +1 -1
  337. package/dist/user/dto/query-user-mail-list.dto.d.ts +5 -0
  338. package/dist/user/dto/query-user-mail-list.dto.d.ts.map +1 -0
  339. package/dist/user/dto/query-user-mail-list.dto.js +25 -0
  340. package/dist/user/dto/query-user-mail-list.dto.js.map +1 -0
  341. package/dist/user/user-credential.util.d.ts +19 -0
  342. package/dist/user/user-credential.util.d.ts.map +1 -0
  343. package/dist/user/user-credential.util.js +32 -0
  344. package/dist/user/user-credential.util.js.map +1 -0
  345. package/dist/user/user.controller.d.ts +17 -5
  346. package/dist/user/user.controller.d.ts.map +1 -1
  347. package/dist/user/user.controller.js +18 -3
  348. package/dist/user/user.controller.js.map +1 -1
  349. package/dist/user/user.service.d.ts +28 -6
  350. package/dist/user/user.service.d.ts.map +1 -1
  351. package/dist/user/user.service.js +204 -13
  352. package/dist/user/user.service.js.map +1 -1
  353. package/dist/validators/is-strong-password-with-settings.validator.d.ts.map +1 -1
  354. package/dist/validators/is-strong-password-with-settings.validator.js +11 -0
  355. package/dist/validators/is-strong-password-with-settings.validator.js.map +1 -1
  356. package/dist/validators/service-locator.d.ts +9 -0
  357. package/dist/validators/service-locator.d.ts.map +1 -1
  358. package/dist/validators/service-locator.js +12 -0
  359. package/dist/validators/service-locator.js.map +1 -1
  360. package/dist/whatsapp-sender/whatsapp-sender.module.d.ts +3 -0
  361. package/dist/whatsapp-sender/whatsapp-sender.module.d.ts.map +1 -0
  362. package/dist/whatsapp-sender/whatsapp-sender.module.js +23 -0
  363. package/dist/whatsapp-sender/whatsapp-sender.module.js.map +1 -0
  364. package/dist/whatsapp-sender/whatsapp-sender.service.d.ts +50 -0
  365. package/dist/whatsapp-sender/whatsapp-sender.service.d.ts.map +1 -0
  366. package/dist/whatsapp-sender/whatsapp-sender.service.js +224 -0
  367. package/dist/whatsapp-sender/whatsapp-sender.service.js.map +1 -0
  368. package/hedhog/data/integration_provider.yaml +16 -0
  369. package/hedhog/data/mail.yaml +88 -61
  370. package/hedhog/data/mail_layout.yaml +188 -0
  371. package/hedhog/data/menu.yaml +67 -3
  372. package/hedhog/data/route.yaml +135 -0
  373. package/hedhog/data/setting_group.yaml +139 -1
  374. package/hedhog/frontend/app/account/components/mfa-setup-dialog.tsx.ejs +36 -0
  375. package/hedhog/frontend/app/account/components/two-factor-auth.tsx.ejs +2 -0
  376. package/hedhog/frontend/app/account/hooks/use-mfa-setup.ts.ejs +10 -7
  377. package/hedhog/frontend/app/ai_agent/page.tsx.ejs +7 -4
  378. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-form.tsx.ejs +580 -0
  379. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-preview.tsx.ejs +150 -0
  380. package/hedhog/frontend/app/ai_instruction/_components/ai-instruction-versions.tsx.ejs +199 -0
  381. package/hedhog/frontend/app/ai_instruction/_components/prompt-diff.tsx.ejs +63 -0
  382. package/hedhog/frontend/app/ai_instruction/_lib/line-diff.spec.ts.ejs +59 -0
  383. package/hedhog/frontend/app/ai_instruction/_lib/line-diff.ts.ejs +72 -0
  384. package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.spec.ts.ejs +170 -0
  385. package/hedhog/frontend/app/ai_instruction/_lib/prompt-template.ts.ejs +167 -0
  386. package/hedhog/frontend/app/ai_instruction/_lib/types.ts.ejs +99 -0
  387. package/hedhog/frontend/app/ai_instruction/page.tsx.ejs +422 -0
  388. package/hedhog/frontend/app/configurations/[slug]/components/setting-field.tsx.ejs +51 -4
  389. package/hedhog/frontend/app/incidents/page.tsx.ejs +400 -0
  390. package/hedhog/frontend/app/integration/profiles/page.tsx.ejs +153 -84
  391. package/hedhog/frontend/app/mail/layout/page.tsx.ejs +344 -0
  392. package/hedhog/frontend/app/mail/template/page.tsx.ejs +155 -121
  393. package/hedhog/frontend/app/mcp_chat/page.tsx.ejs +129 -17
  394. package/hedhog/frontend/app/pages/_components/page-delete-dialog.tsx.ejs +343 -0
  395. package/hedhog/frontend/app/pages/_components/page-detail-sheet.tsx.ejs +438 -0
  396. package/hedhog/frontend/app/pages/_components/page-wizard-sheet.tsx.ejs +1009 -0
  397. package/hedhog/frontend/app/pages/_components/system-page-types.ts.ejs +56 -0
  398. package/hedhog/frontend/app/pages/_components/use-system-pages.ts.ejs +171 -0
  399. package/hedhog/frontend/app/pages/page.tsx.ejs +514 -0
  400. package/hedhog/frontend/app/users/page.tsx.ejs +119 -13
  401. package/hedhog/frontend/app/users/user-activity-timeline.tsx.ejs +231 -0
  402. package/hedhog/frontend/app/users/user-mails.tsx.ejs +399 -0
  403. package/hedhog/frontend/app/users/user-sheet.tsx.ejs +60 -75
  404. package/hedhog/frontend/messages/en.json +499 -3
  405. package/hedhog/frontend/messages/pt.json +499 -3
  406. package/hedhog/table/ai_agent.yaml +1 -0
  407. package/hedhog/table/ai_instruction.yaml +15 -0
  408. package/hedhog/table/leaked_password.yaml +18 -0
  409. package/hedhog/table/mail_layout.yaml +35 -0
  410. package/hedhog/table/mail_var.yaml +4 -0
  411. package/hedhog/table/setting.yaml +1 -0
  412. package/hedhog/table/system_incident.yaml +59 -0
  413. package/hedhog/table/user_presence.yaml +36 -0
  414. package/package.json +8 -4
  415. package/src/access-log/access-log.interceptor.ts +4 -2
  416. package/src/ai/ai-attachment.fragments.spec.ts +319 -0
  417. package/src/ai/ai-attachment.fragments.ts +35 -0
  418. package/src/ai/ai.prompts.ts +38 -0
  419. package/src/ai/ai.service.spec.ts +280 -0
  420. package/src/ai/ai.service.ts +338 -82
  421. package/src/ai/dto/chat.dto.ts +33 -3
  422. package/src/ai/dto/create-agent.dto.ts +2 -2
  423. package/src/ai/dto/update-agent.dto.ts +2 -2
  424. package/src/ai-instruction/ai-instruction.controller.ts +40 -9
  425. package/src/ai-instruction/ai-instruction.module.ts +13 -2
  426. package/src/ai-instruction/ai-instruction.service.spec.ts +658 -0
  427. package/src/ai-instruction/ai-instruction.service.ts +661 -62
  428. package/src/ai-instruction/ai-prompt-builder.service.ts +10 -1
  429. package/src/ai-instruction/ai-prompt-registry.ts +87 -0
  430. package/src/ai-instruction/ai-prompt-resolver.service.spec.ts +375 -0
  431. package/src/ai-instruction/ai-prompt-resolver.service.ts +295 -0
  432. package/src/ai-instruction/ai-prompt-template.util.spec.ts +162 -0
  433. package/src/ai-instruction/ai-prompt-template.util.ts +199 -0
  434. package/src/ai-instruction/dto/create-ai-instruction.dto.ts +39 -3
  435. package/src/ai-instruction/dto/preview-ai-instruction.dto.ts +26 -0
  436. package/src/ai-instruction/dto/update-ai-instruction.dto.ts +42 -1
  437. package/src/ai-instruction/types/ai-instruction.types.ts +24 -1
  438. package/src/auth/auth.controller.ts +31 -5
  439. package/src/auth/auth.service.spec.ts +3 -1
  440. package/src/auth/auth.service.ts +101 -36
  441. package/src/captcha/captcha.module.ts +10 -0
  442. package/src/captcha/captcha.service.spec.ts +210 -0
  443. package/src/captcha/captcha.service.ts +191 -0
  444. package/src/challenge/challenge.service.spec.ts +39 -4
  445. package/src/challenge/challenge.service.ts +72 -17
  446. package/src/core.module.ts +27 -1
  447. package/src/file/file.service.spec.ts +105 -0
  448. package/src/file/file.service.ts +60 -3
  449. package/src/incident/incident-notifier.service.spec.ts +205 -0
  450. package/src/incident/incident-notifier.service.ts +241 -0
  451. package/src/incident/incident.controller.ts +38 -0
  452. package/src/incident/incident.module.ts +19 -0
  453. package/src/incident/incident.service.spec.ts +150 -0
  454. package/src/incident/incident.service.ts +209 -0
  455. package/src/index.ts +37 -0
  456. package/src/integration-profile/dto/test.dto.ts +19 -0
  457. package/src/integration-profile/integration-profile.controller.ts +10 -1
  458. package/src/integration-profile/integration-profile.module.spec.ts +51 -0
  459. package/src/integration-profile/integration-profile.module.ts +23 -4
  460. package/src/integration-profile/integration-profile.secrets.ts +9 -1
  461. package/src/integration-profile/integration-profile.service.spec.ts +279 -0
  462. package/src/integration-profile/integration-profile.service.ts +120 -124
  463. package/src/integration-profile/integration-profile.utils.spec.ts +22 -0
  464. package/src/integration-profile/integration-profile.utils.ts +40 -3
  465. package/src/integration-profile/testers/ai.testers.ts +165 -0
  466. package/src/integration-profile/testers/captcha.testers.spec.ts +92 -0
  467. package/src/integration-profile/testers/captcha.testers.ts +139 -0
  468. package/src/integration-profile/testers/email.testers.ts +161 -0
  469. package/src/integration-profile/testers/http-probe.spec.ts +153 -0
  470. package/src/integration-profile/testers/http-probe.ts +171 -0
  471. package/src/integration-profile/testers/index.ts +30 -0
  472. package/src/integration-profile/testers/infrastructure.testers.ts +122 -0
  473. package/src/integration-profile/testers/integration-tester.registry.spec.ts +75 -0
  474. package/src/integration-profile/testers/integration-tester.registry.ts +43 -0
  475. package/src/integration-profile/testers/integration-tester.types.ts +61 -0
  476. package/src/integration-profile/testers/messaging.testers.ts +102 -0
  477. package/src/integration-profile/testers/oauth.testers.spec.ts +220 -0
  478. package/src/integration-profile/testers/oauth.testers.ts +305 -0
  479. package/src/integration-profile/testers/payment.testers.ts +185 -0
  480. package/src/integration-profile/testers/remaining.testers.spec.ts +401 -0
  481. package/src/integration-profile/testers/storage.testers.spec.ts +185 -0
  482. package/src/integration-profile/testers/storage.testers.ts +226 -0
  483. package/src/integration-profile/testers/tester-coverage.spec.ts +58 -0
  484. package/src/language/en.json +4 -2
  485. package/src/language/pt.json +4 -2
  486. package/src/leaked-password/README.md +83 -0
  487. package/src/leaked-password/leaked-password.controller.ts +52 -0
  488. package/src/leaked-password/leaked-password.module.ts +18 -0
  489. package/src/leaked-password/leaked-password.service.ts +242 -0
  490. package/src/leaked-password/seed/build-seed-sql.mjs +180 -0
  491. package/src/leaked-password/seed/common-passwords.txt +335 -0
  492. package/src/mail/dto/preview.dto.ts +50 -0
  493. package/src/mail/dto/send.dto.ts +14 -1
  494. package/src/mail/mail-template.spec.ts +197 -0
  495. package/src/mail/mail.controller.ts +9 -2
  496. package/src/mail/mail.service.spec.ts +116 -1
  497. package/src/mail/mail.service.ts +118 -12
  498. package/src/mail-layout/dto/update.dto.ts +19 -0
  499. package/src/mail-layout/mail-layout.controller.ts +47 -0
  500. package/src/mail-layout/mail-layout.module.ts +22 -0
  501. package/src/mail-layout/mail-layout.service.ts +94 -0
  502. package/src/mcp-chat/mcp-chat.service.spec.ts +236 -0
  503. package/src/mcp-chat/mcp-chat.service.ts +122 -26
  504. package/src/oauth/oauth-token-broker.service.spec.ts +172 -0
  505. package/src/oauth/oauth-token-broker.service.ts +363 -0
  506. package/src/oauth/oauth.module.ts +3 -1
  507. package/src/oauth/oauth.service.ts +8 -2
  508. package/src/pdf/pdf.service.ts +75 -0
  509. package/src/presence/presence.controller.ts +29 -0
  510. package/src/presence/presence.listener.ts +53 -0
  511. package/src/presence/presence.module.ts +19 -0
  512. package/src/presence/presence.service.spec.ts +97 -0
  513. package/src/presence/presence.service.ts +160 -0
  514. package/src/profile/dto/delete-account.dto.ts +11 -0
  515. package/src/profile/events/profile-account-deleted.event.ts +13 -0
  516. package/src/profile/profile.controller.ts +46 -34
  517. package/src/profile/profile.service.ts +138 -38
  518. package/src/realtime/realtime.gateway.ts +138 -0
  519. package/src/realtime/realtime.module.ts +16 -0
  520. package/src/realtime/realtime.service.spec.ts +50 -0
  521. package/src/realtime/realtime.service.ts +187 -0
  522. package/src/redis/redis-pubsub.ts +179 -0
  523. package/src/setting/dto/create.dto.ts +13 -2
  524. package/src/setting/setting.service.spec.ts +56 -0
  525. package/src/setting/setting.service.ts +29 -1
  526. package/src/user/dto/create-with-email-and-password.dto.ts +6 -1
  527. package/src/user/dto/query-user-mail-list.dto.ts +10 -0
  528. package/src/user/user-credential.util.ts +35 -0
  529. package/src/user/user.controller.ts +17 -2
  530. package/src/user/user.service.spec.ts +153 -0
  531. package/src/user/user.service.ts +255 -12
  532. package/src/validators/is-strong-password-with-settings.validator.ts +12 -0
  533. package/src/validators/service-locator.ts +15 -0
  534. package/src/whatsapp-sender/whatsapp-sender.module.ts +10 -0
  535. package/src/whatsapp-sender/whatsapp-sender.service.ts +313 -0
@@ -255,6 +255,7 @@
255
255
  "tabIdentifiers": "Identificadores",
256
256
  "tabMfa": "MFA",
257
257
  "tabSessions": "Sessões",
258
+ "tabEmails": "E-mails",
258
259
  "tabLogs": "Logs",
259
260
  "cardLastLoginDescription": "Último login",
260
261
  "cardLastLoginTitle": "Nunca",
@@ -265,6 +266,9 @@
265
266
  "cardMfaMethods": "Métodos MFA",
266
267
  "cardUserId": "ID do Usuário",
267
268
  "recentActivityTitle": "Atividades Recentes",
269
+ "activityToday": "Hoje",
270
+ "activityYesterday": "Ontem",
271
+ "activityEventsCount": "{count, plural, one {# evento} other {# eventos}}",
268
272
  "buttonDeleteUser": "Excluir Usuário",
269
273
  "dialogDeleteUserTitle": "Confirmação de Exclusão de Usuário",
270
274
  "dialogDeleteUserDescription": "Tem certeza de que deseja excluir este usuário? Esta ação não pode ser desfeita.",
@@ -354,6 +358,7 @@
354
358
  "passwordLastChangedAbsolute": "Última atualização registrada: {absoluteLabel}",
355
359
  "passwordLastChangedUnavailable": "Ainda não foi possível identificar quando esta senha foi atualizada pela última vez.",
356
360
  "passwordResetNotice": "Após essa redefinição, o usuário será obrigado a alterar a senha no próximo login.",
361
+ "passwordResetSelfNotice": "Você não pode redefinir sua própria senha por aqui — isso exigiria a troca imediata e você não teria a senha gerada para fazer isso. Use as configurações da sua conta (Minha Conta > Senha) para trocar sua senha.",
357
362
  "buttonResetPassword": "Redefinir senha",
358
363
  "passwordResetDialogTitle": "Redefinir senha do usuário",
359
364
  "passwordResetDialogDescription": "Uma senha forte é gerada por padrão. Você pode editar antes de confirmar.",
@@ -373,7 +378,13 @@
373
378
  "viewModeCards": "Cards",
374
379
  "columnName": "Nome",
375
380
  "columnEmail": "E-mail",
376
- "columnStatus": "Status"
381
+ "columnStatus": "Status",
382
+ "columnPasswordReset": "Senha",
383
+ "columnLastLogin": "Último login",
384
+ "passwordResetPending": "Reset pendente",
385
+ "passwordResetNone": "Em dia",
386
+ "neverLoggedIn": "Nunca acessou",
387
+ "filterOptionPasswordReset": "Reset de senha pendente"
377
388
  },
378
389
  "RolePage": {
379
390
  "title": "Gerenciamento de Cargos",
@@ -617,7 +628,9 @@
617
628
  "importConflictTitle": "Templates já existem",
618
629
  "importConflictDescription": "Os seguintes templates já existem no banco de dados. Deseja sobrescrevê-los?",
619
630
  "conflictingSlugs": "Slugs conflitantes",
620
- "overwrite": "Sobrescrever"
631
+ "overwrite": "Sobrescrever",
632
+ "fullDocumentWarningTitle": "Documento HTML completo",
633
+ "fullDocumentWarningDesc": "Este corpo é um documento HTML completo, então o layout base não será aplicado a ele."
621
634
  },
622
635
  "MailProfilePage": {
623
636
  "breadcrumbHome": "Início",
@@ -737,6 +750,26 @@
737
750
  "showPassword": "Mostrar senha",
738
751
  "loginWith": "Entrar com"
739
752
  },
753
+ "ResetPasswordPage": {
754
+ "title": "Redefinir senha",
755
+ "newPasswordLabel": "Nova senha",
756
+ "newPasswordPlaceholder": "Digite sua nova senha",
757
+ "confirmPasswordLabel": "Confirmar nova senha",
758
+ "confirmPasswordPlaceholder": "Confirme sua nova senha",
759
+ "newPasswordMinLength": "A senha precisa ter pelo menos {minLength} caracteres",
760
+ "newPasswordMinSymbols": "A senha precisa ter pelo menos {minSymbols} símbolos especiais",
761
+ "newPasswordMinUppercase": "A senha precisa ter pelo menos {minUppercase} letras maiúsculas",
762
+ "newPasswordMinNumbers": "A senha precisa ter pelo menos {minNumbers} números",
763
+ "confirmPasswordRequired": "Confirme sua nova senha",
764
+ "passwordsDontMatch": "As senhas não conferem",
765
+ "missingTokenTitle": "Link inválido",
766
+ "missingToken": "Este link de redefinição de senha é inválido ou está ausente. Solicite um novo.",
767
+ "errorTitle": "Falha ao redefinir",
768
+ "successTitle": "Senha atualizada",
769
+ "successDescription": "Sua senha foi redefinida com sucesso. Redirecionando...",
770
+ "submitButton": "Redefinir senha",
771
+ "submitButtonLoading": "Redefinindo..."
772
+ },
740
773
  "ForgotPage": {
741
774
  "title": "Esqueci minha Senha",
742
775
  "emailLabel": "E-mail",
@@ -996,6 +1029,36 @@
996
1029
  "revokeAllSuccess": "Sessões revogadas com sucesso!",
997
1030
  "revokeAllFailure": "Falha ao revogar sessões"
998
1031
  },
1032
+ "UserMails": {
1033
+ "title": "E-mails enviados",
1034
+ "searchPlaceholder": "Buscar por assunto...",
1035
+ "filterByStatus": "Status",
1036
+ "statusAll": "Todos os status",
1037
+ "statusReceived": "Recebido",
1038
+ "statusRead": "Lido",
1039
+ "statusError": "Erro",
1040
+ "statusUntracked": "Não rastreado",
1041
+ "status_received": "Recebido",
1042
+ "status_read": "Lido",
1043
+ "status_error": "Erro",
1044
+ "kpiTotal": "Total enviados",
1045
+ "kpiRead": "Lidos",
1046
+ "kpiError": "Com erro",
1047
+ "emptyTitle": "Nenhum e-mail enviado",
1048
+ "emptyDescription": "O sistema ainda não enviou nenhum e-mail para este usuário.",
1049
+ "detailsTitle": "Detalhes do e-mail",
1050
+ "detailsDescription": "Conteúdo e status de entrega do e-mail enviado.",
1051
+ "subject": "Assunto",
1052
+ "from": "De",
1053
+ "to": "Para",
1054
+ "cc": "Cc",
1055
+ "bcc": "Cco",
1056
+ "body": "Corpo",
1057
+ "delivery": "Entrega",
1058
+ "createdAt": "Enviado em",
1059
+ "readAt": "Lido em",
1060
+ "errorMessage": "Erro"
1061
+ },
999
1062
  "UserChangeLog": {
1000
1063
  "title": "Histórico de Alterações",
1001
1064
  "byActor": "por",
@@ -1106,6 +1169,8 @@
1106
1169
  "descriptionRemove": "Digite seu código de verificação para confirmar a remoção",
1107
1170
  "descriptionSetup": "Siga as instruções para configurar a autenticação de dois fatores",
1108
1171
  "scanQrCode": "Escaneie este código QR com seu aplicativo autenticador",
1172
+ "manualCodeHint": "Não consegue escanear? Digite este código no aplicativo autenticador:",
1173
+ "manualCodeCopy": "Copiar código",
1109
1174
  "methodNameLabel": "Nome do Método",
1110
1175
  "methodNamePlaceholder": "ex: {methodLabel} {example}",
1111
1176
  "securityKeyNameLabel": "Nome da Chave de Segurança",
@@ -1361,7 +1426,14 @@
1361
1426
  "selectInfraProfile": "Selecione o perfil de infraestrutura",
1362
1427
  "infraProfileEmptyState": "Nenhum perfil de infraestrutura encontrado. Crie um perfil DigitalOcean ou Kubernetes primeiro.",
1363
1428
  "selectK8sInfraProfile": "Selecione o perfil Kubernetes",
1364
- "k8sInfraProfileEmptyState": "Nenhum perfil de infraestrutura Kubernetes encontrado. Crie um primeiro."
1429
+ "k8sInfraProfileEmptyState": "Nenhum perfil de infraestrutura Kubernetes encontrado. Crie um primeiro.",
1430
+ "openLink": "Abrir",
1431
+ "settingOptions": {
1432
+ "commerce-android-checkout-mode": {
1433
+ "web": "Checkout no site",
1434
+ "play_billing": "Google Play Billing (compra no app)"
1435
+ }
1436
+ }
1365
1437
  },
1366
1438
  "AddWidgetDialog": {
1367
1439
  "title": "Selecionar Componentes do Dashboard",
@@ -2448,15 +2520,30 @@
2448
2520
  "tableSlug": "Slug",
2449
2521
  "tableProvider": "Provedor",
2450
2522
  "tableStatus": "Status",
2523
+ "tableValidation": "Validação",
2451
2524
  "tableUses": "Usos",
2452
2525
  "tableUpdated": "Atualizado",
2453
2526
  "tableActions": "Ações",
2454
2527
  "statusActive": "Ativo",
2455
2528
  "statusInactive": "Inativo",
2529
+ "validationOk": "Validado",
2530
+ "validationError": "Falhou",
2531
+ "validationNever": "Nunca testado",
2532
+ "validationTooltipAt": "Último teste em {date}",
2456
2533
  "noProfilesFound": "Nenhum perfil encontrado",
2457
2534
  "noProfilesHint": "Crie um novo perfil para armazenar credenciais de conexão.",
2458
2535
  "createProfile": "Criar Perfil",
2459
2536
  "saveChanges": "Salvar Alterações",
2537
+ "testConnection": "Testar conexão",
2538
+ "testing": "Testando...",
2539
+ "testConnectionRunning": "Testando conexão...",
2540
+ "testConnectionSuccess": "Conexão validada com sucesso.",
2541
+ "testConnectionOkWithInfo": "Conexão validada: {info}",
2542
+ "testConnectionWarning": "Credenciais válidas, mas: {warning}",
2543
+ "testConnectionError": "Falha ao testar a conexão.",
2544
+ "testConnectionErrorFallback": "Não foi possível validar as credenciais.",
2545
+ "testConnectionNotPersisted": "Salve o perfil para registrar o resultado.",
2546
+ "loadingProfile": "Carregando perfil...",
2460
2547
  "cancel": "Cancelar",
2461
2548
  "delete": "Excluir",
2462
2549
  "deleteConfirmTitle": "Confirmar Exclusão",
@@ -2476,6 +2563,7 @@
2476
2563
  "fieldFromEmail": "E-mail de Envio",
2477
2564
  "fieldFromName": "Nome de Envio",
2478
2565
  "fieldReplyTo": "E-mail de Resposta",
2566
+ "fieldReplyToName": "Nome de Resposta",
2479
2567
  "fieldClientId": "Client ID",
2480
2568
  "fieldClientSecret": "Client Secret",
2481
2569
  "fieldRefreshToken": "Refresh Token",
@@ -2509,6 +2597,49 @@
2509
2597
  "whatsappWebhookStep2": "Clique em \"Verificar e salvar\".",
2510
2598
  "whatsappWebhookStep3": "Assine o campo \"messages\".",
2511
2599
  "whatsappWebhookStep4": "Envie uma mensagem de teste e confirme que ela chega.",
2600
+ "microsoftWebhookSectionTitle": "Webhook do Microsoft Graph",
2601
+ "microsoftWebhookDescription": "URL única que recebe todos os eventos do Microsoft Graph (reuniões/chamadas encerradas, gravações, transcrições, presença, mensagens e usuários do Entra). Registrada automaticamente na lista de webhooks.",
2602
+ "microsoftWebhookUrlLabel": "URL do webhook (notificationUrl)",
2603
+ "microsoftWebhookLoading": "Gerando URL…",
2604
+ "microsoftWebhookUnavailable": "URL indisponível — verifique a configuração de URL base da API (setting api-url, precisa ser HTTPS público).",
2605
+ "microsoftWebhookSaveFirst": "Salve o perfil para gerar a URL do webhook.",
2606
+ "microsoftSyncButton": "Sincronizar assinaturas",
2607
+ "microsoftSyncing": "Sincronizando…",
2608
+ "microsoftSyncResult": "Assinaturas sincronizadas: {created} criadas, {reused} mantidas, {failed} com falha.",
2609
+ "microsoftSyncError": "Falha ao sincronizar as assinaturas.",
2610
+ "microsoftStepsTitle": "No portal do Azure (Microsoft Entra ID → Registros de aplicativo):",
2611
+ "microsoftStep1": "Registre um aplicativo (ou use o existente) e copie o ID do aplicativo (client_id) e o ID do locatário (tenant_id) para os campos acima.",
2612
+ "microsoftStep2": "Em \"Certificados e segredos\", crie um Client secret e cole no campo acima.",
2613
+ "microsoftStep3": "Em \"Autenticação\", adicione o URI de redirecionamento do OAuth (aba de callbacks) para o login funcionar.",
2614
+ "microsoftStep4": "Em \"Permissões de API\", conceda as permissões abaixo e clique em \"Conceder consentimento do administrador\".",
2615
+ "microsoftStep5": "Salve o perfil, copie a URL do webhook acima e clique em \"Sincronizar assinaturas\".",
2616
+ "microsoftPermissionsTitle": "Permissões do Microsoft Graph",
2617
+ "microsoftPermissionsApplication": "Aplicativo (consentimento do admin)",
2618
+ "microsoftPermissionsDelegated": "Delegadas (por usuário)",
2619
+ "microsoftProtectedSuffix": "(API protegida — exige pedido aprovado à Microsoft)",
2620
+ "microsoftNotes": "Reuniões/transcrições em modo app-only exigem uma Application Access Policy criada via PowerShell (New-CsApplicationAccessPolicy). As subscriptions de mensagens de chat org-wide só funcionam após a Microsoft aprovar o acesso à API protegida.",
2621
+ "paymentWebhookSectionTitle": "Webhook do gateway de pagamento",
2622
+ "paymentWebhookDescription": "Cadastre esta URL no seu provedor de pagamento para que ele notifique o HedHog sobre pagamentos, estornos e mudanças de assinatura.",
2623
+ "paymentWebhookUrlLabel": "URL do Webhook",
2624
+ "paymentWebhookLoading": "Gerando URL…",
2625
+ "paymentWebhookUnavailable": "URL indisponível — verifique a configuração da URL base da API.",
2626
+ "paymentWebhookSaveFirst": "Salve o perfil para gerar a URL do webhook.",
2627
+ "paymentWebhookBaseUrlMissing": "URL indisponível — configure uma URL pública HTTPS da API (setting api-url) para o webhook poder ser cadastrado no gateway.",
2628
+ "paymentWebhookStepsTitle": "No painel do seu provedor de pagamento:",
2629
+ "paymentStripeStep1": "Abra Desenvolvedores → Webhooks e clique em \"Adicionar endpoint\".",
2630
+ "paymentStripeStep2": "Cole a URL do Webhook acima como URL do endpoint.",
2631
+ "paymentStripeStep3": "Selecione os eventos a enviar (payment_intent, charge, checkout.session, invoice, customer.subscription).",
2632
+ "paymentStripeStep4": "Copie o \"Signing secret\" do endpoint e cole no campo Webhook Secret acima.",
2633
+ "paymentMercadoPagoStep1": "Abra Suas integrações → sua aplicação → Webhooks / Notificações.",
2634
+ "paymentMercadoPagoStep2": "Cole a URL do Webhook acima e selecione os eventos de pagamento e assinatura.",
2635
+ "paymentMercadoPagoStep3": "Salve para gerar a chave secreta usada na validação de assinatura.",
2636
+ "paymentMercadoPagoStep4": "Copie essa chave secreta e cole no campo Webhook Secret acima.",
2637
+ "paymentGooglePlayStep1": "No Google Play Console, abra a configuração de Monetização e defina o tópico Pub/Sub para as notificações em tempo real (RTDN).",
2638
+ "paymentGooglePlayStep2": "Crie uma subscription push do Pub/Sub apontando para a URL do Webhook acima.",
2639
+ "paymentGooglePlayStep3": "Conceda à service account de publicação do Play permissão para publicar no tópico.",
2640
+ "paymentGooglePlayStep4": "Envie uma notificação de teste e confirme que ela chega.",
2641
+ "paymentWebhookSecretRequiredNote": "Em modo produção, configure o Webhook Secret do provedor — sem ele, os webhooks de produção são rejeitados (requisições sem assinatura não são processadas).",
2642
+ "paymentGooglePlayNote": "O RTDN do Google Play é autenticado pelo Pub/Sub (push OIDC); não há webhook secret para configurar. O estado da assinatura é sempre reconsultado na Play Developer API.",
2512
2643
  "fieldBasePath": "Caminho Base",
2513
2644
  "fieldBucket": "Bucket",
2514
2645
  "fieldProjectId": "Project ID",
@@ -2519,6 +2650,7 @@
2519
2650
  "fieldContainer": "Container",
2520
2651
  "fieldEndpoint": "URL do Endpoint",
2521
2652
  "fieldApiKey": "Chave de API",
2653
+ "fieldModel": "Modelo",
2522
2654
  "fieldOrganization": "ID da Organização",
2523
2655
  "fieldRedirectUri": "URI de Redirecionamento",
2524
2656
  "fieldTenantId": "Tenant ID",
@@ -2536,6 +2668,13 @@
2536
2668
  "fieldHmacKey": "Chave HMAC",
2537
2669
  "fieldScoreThreshold": "Limiar de Pontuação",
2538
2670
  "fieldApiUrl": "URL da API",
2671
+ "fieldPackageName": "Nome do Pacote Android",
2672
+ "fieldServiceAccountJson": "JSON da Conta de Serviço",
2673
+ "fieldServiceAccountPrivateKey": "Chave Privada da Conta de Serviço (PEM)",
2674
+ "fieldClientEmail": "E-mail da Conta de Serviço",
2675
+ "fieldSessionToken": "Session Token (STS)",
2676
+ "fieldRoleArn": "ARN da Role",
2677
+ "fieldExternalId": "External ID",
2539
2678
  "callbackUrlsSectionTitle": "URLs de Callback",
2540
2679
  "callbackUrlsDescription": "Registre estas URLs nas configurações do seu aplicativo OAuth.",
2541
2680
  "addCallbackUrl": "Adicionar URL",
@@ -2591,5 +2730,362 @@
2591
2730
  "fieldMaxRetries": "Máximo de tentativas",
2592
2731
  "fileStored": "Arquivo armazenado e cifrado. Clique para substituir.",
2593
2732
  "fileSelected": "Novo arquivo selecionado. Será cifrado ao salvar."
2733
+ },
2734
+ "SystemPagesPage": {
2735
+ "title": "Páginas",
2736
+ "description": "Catálogo das páginas do painel, com menu, permissões e endpoints de cada uma.",
2737
+ "breadcrumbHome": "Início",
2738
+ "breadcrumbManagement": "Gerenciamento",
2739
+ "newPage": "Nova página",
2740
+ "statsTotal": "Páginas",
2741
+ "statsLibraries": "Bibliotecas",
2742
+ "statsResidue": "Possível resíduo",
2743
+ "statsWithoutI18n": "Sem tradução",
2744
+ "searchPlaceholder": "Buscar por rota, arquivo ou biblioteca",
2745
+ "filterByLibrary": "Biblioteca",
2746
+ "allLibraries": "Todas as bibliotecas",
2747
+ "filterByMenuStatus": "Vínculo com menu",
2748
+ "allMenuStatuses": "Todos os vínculos",
2749
+ "menuStatusLinked": "Com menu",
2750
+ "menuStatusOrphan": "Sem menu",
2751
+ "menuStatusResidue": "Possível resíduo",
2752
+ "viewMode": "Visualização",
2753
+ "viewModeTable": "Tabela",
2754
+ "viewModeCards": "Cards",
2755
+ "emptyStateTitle": "Nenhuma página encontrada",
2756
+ "emptyStateDescription": "Ajuste a busca ou os filtros para ver outras páginas.",
2757
+ "emptyStateLoading": "Carregando menus e permissões...",
2758
+ "columnRoute": "Rota",
2759
+ "columnLibrary": "Biblioteca",
2760
+ "columnTemplate": "Template",
2761
+ "columnMenu": "Menu",
2762
+ "columnRoles": "Cargos",
2763
+ "columnReferences": "Referências",
2764
+ "columnEndpoints": "Endpoints",
2765
+ "orphanBadge": "Sem menu",
2766
+ "residueBadge": "Resíduo",
2767
+ "cardEndpoints": "{count} endpoints",
2768
+ "cardLoc": "{count} linhas",
2769
+ "template_list-kpi": "Lista com KPIs",
2770
+ "template_list-simple": "Lista simples",
2771
+ "template_detail-form": "Detalhe / formulário",
2772
+ "template_dashboard": "Dashboard",
2773
+ "template_custom": "Personalizada",
2774
+ "tabOverview": "Visão geral",
2775
+ "tabMenu": "Menu",
2776
+ "tabPermissions": "Permissões",
2777
+ "tabFiles": "Arquivos",
2778
+ "fieldRoute": "Rota",
2779
+ "fieldLibrary": "Biblioteca",
2780
+ "fieldTemplate": "Template",
2781
+ "fieldLoc": "Linhas",
2782
+ "fieldFile": "Arquivo",
2783
+ "fieldNamespaces": "Namespaces de tradução",
2784
+ "noNamespaces": "Nenhum namespace detectado",
2785
+ "fieldFeatures": "Componentes detectados",
2786
+ "fieldReferencedBy": "Referenciada por",
2787
+ "noReferences": "Nenhum arquivo do código navega para esta página",
2788
+ "feature_pageHeader": "PageHeader",
2789
+ "feature_kpis": "KPIs",
2790
+ "feature_searchBar": "Busca",
2791
+ "feature_pagination": "Paginação",
2792
+ "feature_viewModeToggle": "Tabela/cards",
2793
+ "feature_formSheet": "Sheet de formulário",
2794
+ "feature_dataTable": "Tabela de dados",
2795
+ "feature_widgets": "Widgets",
2796
+ "menuName": "Nome do menu",
2797
+ "menuSlug": "Slug",
2798
+ "menuUrl": "URL",
2799
+ "menuIcon": "Ícone",
2800
+ "menuParent": "Menu pai",
2801
+ "menuRoot": "Menu raiz",
2802
+ "menuOrder": "Ordem",
2803
+ "openMenuManager": "Abrir gerenciador de menus",
2804
+ "orphanTitle": "Página sem menu vinculado",
2805
+ "orphanDescription": "Nenhum menu aponta para {route}. A página existe no código, mas só é acessível por link direto.",
2806
+ "menuRolesTitle": "Cargos com acesso ao menu",
2807
+ "menuRolesDescription": "Cargos que enxergam este item no menu lateral.",
2808
+ "noRoles": "Nenhum cargo",
2809
+ "endpointsTitle": "Endpoints consumidos",
2810
+ "endpointsDescription": "Inferidos do código da página e dos seus componentes; confira antes de usar como fonte de verdade.",
2811
+ "noEndpoints": "Nenhum endpoint detectado",
2812
+ "columnMethod": "Método",
2813
+ "columnEndpoint": "Endpoint",
2814
+ "columnEndpointRoles": "Cargos",
2815
+ "endpointNotRegistered": "Não cadastrado em rotas",
2816
+ "noComponents": "Sem componentes próprios",
2817
+ "filesHint": "Caminhos relativos à raiz do monorepo.",
2818
+ "deletePage": "Excluir página",
2819
+ "deleteHintResidue": "Sem menu e sem referências no código — provável resíduo.",
2820
+ "deleteHintReferenced": "{count} arquivo(s) navegam para esta página.",
2821
+ "deleteTitle": "Excluir página",
2822
+ "deleteConfirmLabel": "Digite a rota exata para confirmar",
2823
+ "deleteConfirm": "Excluir do disco",
2824
+ "deleteClose": "Fechar",
2825
+ "deletePreviewLoading": "Calculando o que será apagado...",
2826
+ "deletePreviewError": "Não foi possível calcular a exclusão.",
2827
+ "deleteError": "Não foi possível excluir a página.",
2828
+ "deleteMenuError": "Arquivos removidos, mas o menu não saiu do banco.",
2829
+ "deleteSuccess": "Página excluída.",
2830
+ "deleteReferencedTitle": "Esta página é referenciada no código",
2831
+ "deleteReferencedDescription": "{count} arquivo(s) navegam para esta rota e podem quebrar. Revise antes de excluir.",
2832
+ "deleteMenuChildrenTitle": "Menu com submenus",
2833
+ "deleteMenuChildrenDescription": "O menu tem itens filhos e não será removido do banco — apenas os arquivos serão apagados. Ajuste o menu manualmente em Menus.",
2834
+ "deleteCategory_page": "Arquivos da página",
2835
+ "deleteCategory_mirror": "Espelho da biblioteca",
2836
+ "deleteCategory_i18n": "Traduções",
2837
+ "deleteCategory_menu": "Menu (YAML)",
2838
+ "deleteCategory_migration": "Migration",
2839
+ "deleteAction_delete": "apagar",
2840
+ "deleteAction_rewrite": "alterar",
2841
+ "deleteAction_create": "criar",
2842
+ "deleteDoneTitle": "Página excluída",
2843
+ "deleteDoneDescription": "Os arquivos foram removidos. O git é a rede de segurança: git checkout / git clean desfaz tudo.",
2844
+ "deleteDoneSteps": "Próximos passos"
2845
+ },
2846
+ "PageWizard": {
2847
+ "title": "Nova página",
2848
+ "description": "Gera a página, as traduções, o menu e o CRUD da biblioteca seguindo o padrão do repositório. Disponível apenas em desenvolvimento.",
2849
+ "steps": {
2850
+ "target": "Alvo",
2851
+ "template": "Template",
2852
+ "columns": "Modelo de dados",
2853
+ "backend": "Backend",
2854
+ "menu": "Menu e cargos",
2855
+ "review": "Revisão"
2856
+ },
2857
+ "fieldLibrary": "Biblioteca",
2858
+ "fieldLibraryPlaceholder": "Selecione a biblioteca",
2859
+ "fieldEntity": "Entidade",
2860
+ "fieldEntityHint": "snake_case no singular. Também é o nome da tabela.",
2861
+ "fieldRoute": "Rota da página",
2862
+ "fieldApiBasePath": "Prefixo da API",
2863
+ "fieldLabelPt": "Título (pt)",
2864
+ "fieldLabelEn": "Título (en)",
2865
+ "fieldDescriptionPt": "Descrição (pt)",
2866
+ "fieldDescriptionEn": "Descrição (en)",
2867
+ "template_list-kpi": "Lista com KPIs",
2868
+ "template_list-simple": "Lista simples",
2869
+ "template_detail-form": "Detalhe / formulário",
2870
+ "template_dashboard": "Dashboard",
2871
+ "templateHint_list-kpi": "PageHeader, KPIs, busca com filtros, tabela/cards, paginação e sheet de formulário.",
2872
+ "templateHint_list-simple": "Mesma listagem, sem a linha de KPIs. Para cadastros auxiliares.",
2873
+ "templateHint_detail-form": "Formulário único, estilo configurações: carrega em GET e salva em PATCH.",
2874
+ "templateHint_dashboard": "Painel com KPIs e área para widgets, sem listagem paginada.",
2875
+ "columnsHint": "Textos exibidos ao usuário devem usar locale_varchar/locale_text para gerar a tabela de traduções.",
2876
+ "columnName": "Coluna",
2877
+ "columnLabelPt": "Rótulo (pt)",
2878
+ "columnLabelEn": "Rótulo (en)",
2879
+ "columnEnumValues": "Valores separados por vírgula",
2880
+ "columnReferences": "Tabela referenciada",
2881
+ "columnNullable": "Aceita nulo",
2882
+ "columnInList": "Na listagem",
2883
+ "columnInFilters": "Como filtro",
2884
+ "addColumn": "Adicionar coluna",
2885
+ "generateBackend": "Gerar backend",
2886
+ "generateBackendHint": "Cria table YAML, migration, DTO, service, controller e módulo NestJS.",
2887
+ "menuParent": "Menu pai",
2888
+ "menuRoot": "Menu raiz",
2889
+ "menuIcon": "Ícone",
2890
+ "menuOrder": "Ordem",
2891
+ "rolesTitle": "Cargos com acesso",
2892
+ "rolesHint": "O cargo admin é sempre incluído.",
2893
+ "issuesTitle": "Corrija antes de gerar",
2894
+ "conflictsTitle": "Arquivos já existentes",
2895
+ "overwrite": "Sobrescrever os arquivos existentes",
2896
+ "previewLoading": "Gerando pré-visualização...",
2897
+ "previewError": "Não foi possível gerar a pré-visualização.",
2898
+ "applyError": "Não foi possível gravar os arquivos.",
2899
+ "applySuccess": "{count} arquivos gravados.",
2900
+ "action_create": "criar",
2901
+ "action_merge": "acrescentar",
2902
+ "action_patch": "alterar",
2903
+ "action_manual": "manual",
2904
+ "back": "Voltar",
2905
+ "next": "Avançar",
2906
+ "refreshPreview": "Atualizar preview",
2907
+ "generate": "Gerar arquivos",
2908
+ "close": "Fechar",
2909
+ "doneTitle": "Arquivos gerados",
2910
+ "doneDescription": "{count} arquivos foram gravados no repositório.",
2911
+ "doneFiles": "Arquivos",
2912
+ "doneSteps": "Próximos passos",
2913
+ "doneStepsHint": "O wizard não executa comandos. Revise a migration gerada antes de aplicá-la."
2914
+ },
2915
+ "Incidents": {
2916
+ "breadcrumbHome": "Início",
2917
+ "breadcrumbTitle": "Incidentes",
2918
+ "title": "Incidentes",
2919
+ "description": "Falhas que, sem este registro, sumiriam silenciosamente no sistema.",
2920
+ "kpiOpen": "Em aberto",
2921
+ "kpiCritical": "Críticos",
2922
+ "kpiOccurrences": "Ocorrências",
2923
+ "kpiResolved": "Resolvidos",
2924
+ "searchPlaceholder": "Buscar por mensagem, código ou origem",
2925
+ "filterByStatus": "Situação",
2926
+ "statusOpen": "Em aberto",
2927
+ "statusResolved": "Resolvidos",
2928
+ "statusAll": "Todos",
2929
+ "filterBySeverity": "Severidade",
2930
+ "severityAll": "Todas as severidades",
2931
+ "severityCritical": "Crítico",
2932
+ "severityError": "Erro",
2933
+ "severityWarning": "Alerta",
2934
+ "severity_critical": "Crítico",
2935
+ "severity_error": "Erro",
2936
+ "severity_warning": "Alerta",
2937
+ "filterBySource": "Origem",
2938
+ "sourceAll": "Todas as origens",
2939
+ "columnSeverity": "Severidade",
2940
+ "columnSource": "Origem",
2941
+ "columnMessage": "Mensagem",
2942
+ "columnOccurrences": "Ocorrências",
2943
+ "columnLastSeen": "Visto por último",
2944
+ "firstSeen": "Primeira ocorrência",
2945
+ "context": "Contexto",
2946
+ "resolve": "Marcar como resolvido",
2947
+ "reopen": "Reabrir",
2948
+ "emptyTitle": "Nenhum incidente em aberto",
2949
+ "emptyDescription": "Nada falhou em silêncio neste período."
2950
+ },
2951
+ "AiInstructionPage": {
2952
+ "breadcrumbDashboard": "Painel",
2953
+ "breadcrumbManagement": "Gerenciamento",
2954
+ "breadcrumbCurrent": "Prompts de IA",
2955
+ "title": "Prompts de IA",
2956
+ "description": "Veja e edite todos os prompts que o sistema envia aos modelos de IA, agrupados por módulo. Cada prompt mantém uma cópia canônica no código: se o prompt do banco estiver ausente, vazio ou inválido, essa cópia é usada e o fluxo continua funcionando.",
2957
+ "searchPlaceholder": "Buscar por slug ou nome...",
2958
+ "loading": "Carregando...",
2959
+ "empty": "Nenhum prompt encontrado",
2960
+ "emptyDescription": "Ajuste os filtros ou limpe a busca para ver os prompts cadastrados.",
2961
+ "edit": "Editar",
2962
+ "cancel": "Cancelar",
2963
+ "save": "Salvar",
2964
+ "saving": "Salvando...",
2965
+ "saveSuccess": "Prompt salvo.",
2966
+ "saveError": "Não foi possível salvar o prompt.",
2967
+ "filterLayer": "Camada",
2968
+ "filterModule": "Módulo",
2969
+ "filterStatus": "Situação",
2970
+ "filterAllLayers": "Todas as camadas",
2971
+ "filterAllModules": "Todos os módulos",
2972
+ "filterAllStatuses": "Todas as situações",
2973
+ "filterActive": "Ativos",
2974
+ "filterInactive": "Inativos",
2975
+ "layer_task": "Tarefa",
2976
+ "layer_system": "Sistema",
2977
+ "layer_product": "Produto",
2978
+ "layer_module": "Módulo",
2979
+ "layer_agent": "Agente",
2980
+ "layer_tool": "Ferramenta",
2981
+ "layer_output": "Saída",
2982
+ "columnName": "Nome",
2983
+ "columnLayer": "Camada",
2984
+ "columnModule": "Módulo",
2985
+ "columnParams": "Parâmetros",
2986
+ "columnState": "Estado",
2987
+ "columnUpdatedAt": "Atualizado",
2988
+ "badgeDefault": "Padrão",
2989
+ "badgeCustomized": "Customizado",
2990
+ "badgeLocked": "Bloqueado",
2991
+ "badgeInactive": "Inativo",
2992
+ "tabContent": "Conteúdo",
2993
+ "tabVariables": "Variáveis",
2994
+ "tabPreview": "Pré-visualização",
2995
+ "tabHistory": "Histórico",
2996
+ "fieldSlug": "Slug",
2997
+ "fieldName": "Nome",
2998
+ "fieldLocale": "Idioma",
2999
+ "fieldIsActive": "Ativo",
3000
+ "fieldContent": "Conteúdo do prompt",
3001
+ "fieldChangeNote": "Nota da alteração",
3002
+ "fieldModel": "Modelo",
3003
+ "fieldTemperature": "Temperatura",
3004
+ "fieldMaxTokens": "Máximo de tokens",
3005
+ "slugImmutable": "O slug não pode ser alterado: é por ele que o código resolve o prompt.",
3006
+ "copySlug": "Copiar slug",
3007
+ "slugCopied": "Slug copiado.",
3008
+ "isActiveHint": "Quando inativo, o fluxo usa a cópia que está no código.",
3009
+ "changeNotePlaceholder": "O que mudou e por quê",
3010
+ "charCountWithTokens": "{chars} caracteres · ~{tokens} tokens",
3011
+ "restoreDefault": "Restaurar padrão",
3012
+ "restoreDefaultApplied": "Conteúdo padrão aplicado. Salve para confirmar.",
3013
+ "inheritPlaceholder": "herdar",
3014
+ "modelParamsTitle": "Parâmetros do modelo",
3015
+ "modelParamsHint": "Deixe vazio para manter o que o perfil de integração ou o código já usam.",
3016
+ "unbalancedBlocksError": "Bloco de template não fechado: {blocks}. Isso descartaria o resto do prompt.",
3017
+ "missingRequiredError": "Variáveis obrigatórias ausentes do conteúdo: {variables}.",
3018
+ "missingPhrasesWarning": "Frases de segurança removidas: {phrases}.",
3019
+ "allPhrasesMissingWarning": "Todas as frases de segurança foram removidas. Em execução este prompt será ignorado e a cópia do código será usada no lugar.",
3020
+ "lockedTitle": "Prompt sensível de segurança",
3021
+ "lockedDescription": "Este prompt é a defesa contra prompt injection na correção automática. Alterá-lo pode permitir manipulação de notas.",
3022
+ "unlockEditing": "Desbloquear edição",
3023
+ "unlockDialogTitle": "Desbloquear edição",
3024
+ "unlockDialogDescription": "Digite o slug do prompt para confirmar que você revisou o impacto de segurança desta alteração.",
3025
+ "variablesEmpty": "Este prompt não recebe variáveis.",
3026
+ "variablesFromCode": "Variáveis declaradas no código. O prompt precisa continuar usando as obrigatórias.",
3027
+ "columnVariable": "Variável",
3028
+ "columnVariableType": "Tipo",
3029
+ "columnVariableRequired": "Obrigatória",
3030
+ "columnVariableDescription": "Descrição",
3031
+ "variableRequired": "Obrigatória",
3032
+ "variableConditional": "Condicional",
3033
+ "previewNoVariables": "Este prompt não recebe variáveis; renderize para ver o texto final.",
3034
+ "previewRender": "Renderizar",
3035
+ "previewRendering": "Renderizando...",
3036
+ "previewError": "Não foi possível renderizar a pré-visualização.",
3037
+ "versionsEmpty": "Nenhuma versão registrada ainda.",
3038
+ "versionsSelectHint": "Selecione uma versão para comparar com o conteúdo atual.",
3039
+ "versionCurrent": "atual",
3040
+ "columnVersionDate": "Data",
3041
+ "columnVersionAuthor": "Autor",
3042
+ "columnVersionNote": "Nota",
3043
+ "columnVersionSize": "Caracteres",
3044
+ "restoreVersion": "Restaurar",
3045
+ "restoring": "Restaurando...",
3046
+ "restoreSuccess": "Versão {version} restaurada como uma nova versão.",
3047
+ "restoreError": "Não foi possível restaurar a versão.",
3048
+ "restoreDialogTitle": "Restaurar versão",
3049
+ "restoreDialogDescription": "O conteúdo da versão {version} passa a ser uma nova versão em cima da atual. Nada é apagado.",
3050
+ "diffCurrentLabel": "atual",
3051
+ "diffVersionLabel": "versão {version}",
3052
+ "diffIdentical": "Esta versão é idêntica ao conteúdo atual."
3053
+ },
3054
+ "HtmlCodeEditor": {
3055
+ "zoomIn": "Aumentar fonte",
3056
+ "zoomOut": "Diminuir fonte",
3057
+ "resetZoom": "Resetar zoom"
3058
+ },
3059
+ "HtmlContentEditor": {
3060
+ "tabPreview": "Visualizar",
3061
+ "tabEditor": "Editor",
3062
+ "tabCode": "HTML",
3063
+ "previewTitle": "Pré-visualização do HTML",
3064
+ "noContent": "Sem conteúdo para visualizar",
3065
+ "complexHtmlWarningTitle": "HTML complexo detectado",
3066
+ "complexHtmlWarningDesc": "Este conteúdo tem tags style, head ou script que o editor visual remove. Use a aba HTML para editá-lo."
3067
+ },
3068
+ "MailLayoutPage": {
3069
+ "breadcrumbHome": "Início",
3070
+ "breadcrumbMail": "Templates de E-mail",
3071
+ "breadcrumbTitle": "Layout base",
3072
+ "title": "Layout base",
3073
+ "description": "Wrapper, cabeçalho e rodapé aplicados a todo e-mail enviado pelo sistema",
3074
+ "save": "Salvar layout",
3075
+ "saving": "Salvando...",
3076
+ "localeLabel": "Idioma",
3077
+ "tabHeader": "Cabeçalho",
3078
+ "tabFooter": "Rodapé",
3079
+ "tabWrapper": "Wrapper",
3080
+ "headerHelp": "Fragmento exibido acima do conteúdo da mensagem. Traduzido por idioma.",
3081
+ "footerHelp": "Fragmento exibido abaixo do conteúdo da mensagem. Traduzido por idioma.",
3082
+ "wrapperHelp": "Documento HTML completo com a estrutura e o CSS. É compartilhado por todos os idiomas, por isso é editado apenas como HTML puro.",
3083
+ "tokensHelp": "Tokens disponíveis:",
3084
+ "sampleSubject": "Assunto de exemplo",
3085
+ "sampleBody": "Olá,<br>Este é um corpo de exemplo usado apenas para visualizar o layout base.<br>Atenciosamente.",
3086
+ "loadError": "Falha ao carregar o layout base",
3087
+ "saveSuccess": "Layout base salvo",
3088
+ "saveError": "Falha ao salvar o layout base",
3089
+ "missingContentTokenError": "O wrapper precisa conter o token {{{content}}}, senão todos os e-mails seriam enviados vazios."
2594
3090
  }
2595
3091
  }
@@ -6,6 +6,7 @@ columns:
6
6
  enum:
7
7
  - openai
8
8
  - gemini
9
+ - deepseek
9
10
  default: openai
10
11
  - name: model
11
12
  isNullable: true
@@ -10,6 +10,7 @@ columns:
10
10
  - agent
11
11
  - tool
12
12
  - output
13
+ - task
13
14
  default: system
14
15
  - name: name
15
16
  length: 200
@@ -29,6 +30,20 @@ columns:
29
30
  - name: version
30
31
  type: int
31
32
  default: 1
33
+ - name: model
34
+ length: 100
35
+ isNullable: true
36
+ - name: temperature
37
+ type: decimal
38
+ precision: 4
39
+ scale: 2
40
+ isNullable: true
41
+ - name: max_tokens
42
+ type: int
43
+ isNullable: true
44
+ - name: is_locked
45
+ type: boolean
46
+ default: false
32
47
  - type: created_at
33
48
  - type: updated_at
34
49
  indices: