@overlordai/server 1.0.53 → 1.0.55

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 (533) hide show
  1. package/database/migrations/001-init-schema.sql +73 -9
  2. package/dist/adapters/adapter.interface.d.ts +1 -4
  3. package/dist/adapters/adapter.interface.d.ts.map +1 -1
  4. package/dist/adapters/adapter.interface.js.map +1 -1
  5. package/dist/adapters/adapter.module.d.ts.map +1 -1
  6. package/dist/adapters/adapter.module.js +8 -7
  7. package/dist/adapters/adapter.module.js.map +1 -1
  8. package/dist/adapters/lark/lark-card.builder.d.ts +1 -25
  9. package/dist/adapters/lark/lark-card.builder.d.ts.map +1 -1
  10. package/dist/adapters/lark/lark-card.builder.js +6 -110
  11. package/dist/adapters/lark/lark-card.builder.js.map +1 -1
  12. package/dist/adapters/lark/lark-message.parser.d.ts +4 -4
  13. package/dist/adapters/lark/lark-message.parser.d.ts.map +1 -1
  14. package/dist/adapters/lark/lark-message.parser.js +20 -13
  15. package/dist/adapters/lark/lark-message.parser.js.map +1 -1
  16. package/dist/adapters/lark/lark-signature.d.ts.map +1 -1
  17. package/dist/adapters/lark/lark-signature.js +6 -0
  18. package/dist/adapters/lark/lark-signature.js.map +1 -1
  19. package/dist/adapters/lark/lark.adapter.d.ts +14 -9
  20. package/dist/adapters/lark/lark.adapter.d.ts.map +1 -1
  21. package/dist/adapters/lark/lark.adapter.js +99 -177
  22. package/dist/adapters/lark/lark.adapter.js.map +1 -1
  23. package/dist/adapters/lark/lark.controller.d.ts +10 -1
  24. package/dist/adapters/lark/lark.controller.d.ts.map +1 -1
  25. package/dist/adapters/lark/lark.controller.js +48 -14
  26. package/dist/adapters/lark/lark.controller.js.map +1 -1
  27. package/dist/adapters/slack/slack-block.builder.d.ts +8 -0
  28. package/dist/adapters/slack/slack-block.builder.d.ts.map +1 -0
  29. package/dist/adapters/slack/slack-block.builder.js +117 -0
  30. package/dist/adapters/slack/slack-block.builder.js.map +1 -0
  31. package/dist/adapters/slack/slack-message.parser.d.ts +15 -0
  32. package/dist/adapters/slack/slack-message.parser.d.ts.map +1 -0
  33. package/dist/adapters/slack/slack-message.parser.js +158 -0
  34. package/dist/adapters/slack/slack-message.parser.js.map +1 -0
  35. package/dist/adapters/slack/slack-signature.d.ts +7 -0
  36. package/dist/adapters/slack/slack-signature.d.ts.map +1 -0
  37. package/dist/adapters/slack/slack-signature.js +59 -0
  38. package/dist/adapters/slack/slack-signature.js.map +1 -0
  39. package/dist/adapters/slack/slack.adapter.d.ts +67 -13
  40. package/dist/adapters/slack/slack.adapter.d.ts.map +1 -1
  41. package/dist/adapters/slack/slack.adapter.js +468 -19
  42. package/dist/adapters/slack/slack.adapter.js.map +1 -1
  43. package/dist/adapters/slack/slack.controller.d.ts +20 -0
  44. package/dist/adapters/slack/slack.controller.d.ts.map +1 -0
  45. package/dist/adapters/slack/slack.controller.js +257 -0
  46. package/dist/adapters/slack/slack.controller.js.map +1 -0
  47. package/dist/app.module.d.ts.map +1 -1
  48. package/dist/app.module.js +4 -0
  49. package/dist/app.module.js.map +1 -1
  50. package/dist/auth/auth.controller.d.ts.map +1 -1
  51. package/dist/auth/auth.controller.js +1 -0
  52. package/dist/auth/auth.controller.js.map +1 -1
  53. package/dist/auth/auth.module.d.ts.map +1 -1
  54. package/dist/auth/auth.module.js +4 -5
  55. package/dist/auth/auth.module.js.map +1 -1
  56. package/dist/auth/auth.service.d.ts +9 -2
  57. package/dist/auth/auth.service.d.ts.map +1 -1
  58. package/dist/auth/auth.service.js +50 -79
  59. package/dist/auth/auth.service.js.map +1 -1
  60. package/dist/auth/authenticated-request.d.ts +10 -0
  61. package/dist/auth/authenticated-request.d.ts.map +1 -0
  62. package/dist/auth/authenticated-request.js +3 -0
  63. package/dist/auth/authenticated-request.js.map +1 -0
  64. package/dist/auth/extract-user.middleware.d.ts.map +1 -1
  65. package/dist/auth/extract-user.middleware.js +2 -1
  66. package/dist/auth/extract-user.middleware.js.map +1 -1
  67. package/dist/auth/guards/jwt-auth.guard.d.ts.map +1 -1
  68. package/dist/auth/guards/jwt-auth.guard.js +5 -2
  69. package/dist/auth/guards/jwt-auth.guard.js.map +1 -1
  70. package/dist/auth/guards/project-role.guard.d.ts.map +1 -1
  71. package/dist/auth/guards/project-role.guard.js +6 -8
  72. package/dist/auth/guards/project-role.guard.js.map +1 -1
  73. package/dist/auth/jwt.strategy.d.ts +6 -3
  74. package/dist/auth/jwt.strategy.d.ts.map +1 -1
  75. package/dist/auth/jwt.strategy.js +15 -5
  76. package/dist/auth/jwt.strategy.js.map +1 -1
  77. package/dist/common/command-parser.d.ts +29 -0
  78. package/dist/common/command-parser.d.ts.map +1 -0
  79. package/dist/common/command-parser.js +133 -0
  80. package/dist/common/command-parser.js.map +1 -0
  81. package/dist/common/config.d.ts +17 -0
  82. package/dist/common/config.d.ts.map +1 -0
  83. package/dist/common/config.js +47 -0
  84. package/dist/common/config.js.map +1 -0
  85. package/dist/common/crypto.service.d.ts +4 -1
  86. package/dist/common/crypto.service.d.ts.map +1 -1
  87. package/dist/common/crypto.service.js +14 -7
  88. package/dist/common/crypto.service.js.map +1 -1
  89. package/dist/common/error-filter.d.ts +1 -0
  90. package/dist/common/error-filter.d.ts.map +1 -1
  91. package/dist/common/error-filter.js +6 -2
  92. package/dist/common/error-filter.js.map +1 -1
  93. package/dist/common/git-utils.d.ts +9 -0
  94. package/dist/common/git-utils.d.ts.map +1 -0
  95. package/dist/common/git-utils.js +41 -0
  96. package/dist/common/git-utils.js.map +1 -0
  97. package/dist/common/health.controller.d.ts.map +1 -1
  98. package/dist/common/health.controller.js +3 -5
  99. package/dist/common/health.controller.js.map +1 -1
  100. package/dist/common/machine-utils.d.ts +32 -0
  101. package/dist/common/machine-utils.d.ts.map +1 -0
  102. package/dist/common/machine-utils.js +12 -0
  103. package/dist/common/machine-utils.js.map +1 -0
  104. package/dist/common/pagination.d.ts +12 -5
  105. package/dist/common/pagination.d.ts.map +1 -1
  106. package/dist/common/pagination.js +27 -17
  107. package/dist/common/pagination.js.map +1 -1
  108. package/dist/common/project-validation.d.ts +7 -0
  109. package/dist/common/project-validation.d.ts.map +1 -0
  110. package/dist/common/project-validation.js +86 -0
  111. package/dist/common/project-validation.js.map +1 -0
  112. package/dist/common/rate-limit.guard.d.ts +4 -3
  113. package/dist/common/rate-limit.guard.d.ts.map +1 -1
  114. package/dist/common/rate-limit.guard.js +14 -5
  115. package/dist/common/rate-limit.guard.js.map +1 -1
  116. package/dist/common/sql-utils.d.ts +6 -0
  117. package/dist/common/sql-utils.d.ts.map +1 -0
  118. package/dist/common/sql-utils.js +11 -0
  119. package/dist/common/sql-utils.js.map +1 -0
  120. package/dist/common/string-utils.d.ts +6 -0
  121. package/dist/common/string-utils.d.ts.map +1 -0
  122. package/dist/common/string-utils.js +15 -0
  123. package/dist/common/string-utils.js.map +1 -0
  124. package/dist/common/worker-utils.d.ts +31 -0
  125. package/dist/common/worker-utils.d.ts.map +1 -0
  126. package/dist/common/worker-utils.js +12 -0
  127. package/dist/common/worker-utils.js.map +1 -0
  128. package/dist/database/base.repository.d.ts +56 -0
  129. package/dist/database/base.repository.d.ts.map +1 -0
  130. package/dist/database/base.repository.js +82 -0
  131. package/dist/database/base.repository.js.map +1 -0
  132. package/dist/database/database.service.d.ts.map +1 -1
  133. package/dist/database/database.service.js +9 -1
  134. package/dist/database/database.service.js.map +1 -1
  135. package/dist/database/migration-runner.d.ts.map +1 -1
  136. package/dist/database/migration-runner.js +2 -1
  137. package/dist/database/migration-runner.js.map +1 -1
  138. package/dist/database/repositories/audit-log.repository.d.ts.map +1 -1
  139. package/dist/database/repositories/audit-log.repository.js +16 -18
  140. package/dist/database/repositories/audit-log.repository.js.map +1 -1
  141. package/dist/database/repositories/bot.repository.d.ts +18 -32
  142. package/dist/database/repositories/bot.repository.d.ts.map +1 -1
  143. package/dist/database/repositories/bot.repository.js +42 -21
  144. package/dist/database/repositories/bot.repository.js.map +1 -1
  145. package/dist/database/repositories/developer-token.repository.d.ts +7 -17
  146. package/dist/database/repositories/developer-token.repository.d.ts.map +1 -1
  147. package/dist/database/repositories/developer-token.repository.js +24 -15
  148. package/dist/database/repositories/developer-token.repository.js.map +1 -1
  149. package/dist/database/repositories/developer.repository.d.ts +5 -1
  150. package/dist/database/repositories/developer.repository.d.ts.map +1 -1
  151. package/dist/database/repositories/developer.repository.js +60 -49
  152. package/dist/database/repositories/developer.repository.js.map +1 -1
  153. package/dist/database/repositories/machine.repository.d.ts.map +1 -1
  154. package/dist/database/repositories/machine.repository.js +2 -7
  155. package/dist/database/repositories/machine.repository.js.map +1 -1
  156. package/dist/database/repositories/notification.repository.d.ts +1 -0
  157. package/dist/database/repositories/notification.repository.d.ts.map +1 -1
  158. package/dist/database/repositories/notification.repository.js +25 -20
  159. package/dist/database/repositories/notification.repository.js.map +1 -1
  160. package/dist/database/repositories/project-member.repository.d.ts +7 -16
  161. package/dist/database/repositories/project-member.repository.d.ts.map +1 -1
  162. package/dist/database/repositories/project-member.repository.js +34 -24
  163. package/dist/database/repositories/project-member.repository.js.map +1 -1
  164. package/dist/database/repositories/project.repository.d.ts +2 -1
  165. package/dist/database/repositories/project.repository.d.ts.map +1 -1
  166. package/dist/database/repositories/project.repository.js +70 -71
  167. package/dist/database/repositories/project.repository.js.map +1 -1
  168. package/dist/database/repositories/session.repository.d.ts.map +1 -1
  169. package/dist/database/repositories/session.repository.js +22 -25
  170. package/dist/database/repositories/session.repository.js.map +1 -1
  171. package/dist/database/repositories/task.repository.d.ts +31 -7
  172. package/dist/database/repositories/task.repository.d.ts.map +1 -1
  173. package/dist/database/repositories/task.repository.js +134 -86
  174. package/dist/database/repositories/task.repository.js.map +1 -1
  175. package/dist/database/repositories/worker-token.repository.d.ts.map +1 -1
  176. package/dist/database/repositories/worker-token.repository.js +18 -16
  177. package/dist/database/repositories/worker-token.repository.js.map +1 -1
  178. package/dist/database/repositories/worker.repository.d.ts +50 -0
  179. package/dist/database/repositories/worker.repository.d.ts.map +1 -0
  180. package/dist/database/repositories/worker.repository.js +215 -0
  181. package/dist/database/repositories/worker.repository.js.map +1 -0
  182. package/dist/database/repositories/workspace.repository.d.ts +3 -2
  183. package/dist/database/repositories/workspace.repository.d.ts.map +1 -1
  184. package/dist/database/repositories/workspace.repository.js +29 -21
  185. package/dist/database/repositories/workspace.repository.js.map +1 -1
  186. package/dist/database/repository.module.d.ts +3 -0
  187. package/dist/database/repository.module.d.ts.map +1 -0
  188. package/dist/database/repository.module.js +45 -0
  189. package/dist/database/repository.module.js.map +1 -0
  190. package/dist/dispatcher/capability.service.d.ts +19 -14
  191. package/dist/dispatcher/capability.service.d.ts.map +1 -1
  192. package/dist/dispatcher/capability.service.js +77 -69
  193. package/dist/dispatcher/capability.service.js.map +1 -1
  194. package/dist/dispatcher/cleanup.service.d.ts +1 -1
  195. package/dist/dispatcher/cleanup.service.d.ts.map +1 -1
  196. package/dist/dispatcher/cleanup.service.js +13 -13
  197. package/dist/dispatcher/cleanup.service.js.map +1 -1
  198. package/dist/dispatcher/dedup.service.d.ts +17 -3
  199. package/dist/dispatcher/dedup.service.d.ts.map +1 -1
  200. package/dist/dispatcher/dedup.service.js +76 -82
  201. package/dist/dispatcher/dedup.service.js.map +1 -1
  202. package/dist/dispatcher/dispatcher.module.d.ts.map +1 -1
  203. package/dist/dispatcher/dispatcher.module.js +11 -18
  204. package/dist/dispatcher/dispatcher.module.js.map +1 -1
  205. package/dist/dispatcher/dispatcher.service.d.ts +14 -116
  206. package/dist/dispatcher/dispatcher.service.d.ts.map +1 -1
  207. package/dist/dispatcher/dispatcher.service.js +62 -940
  208. package/dist/dispatcher/dispatcher.service.js.map +1 -1
  209. package/dist/dispatcher/dispatcher.types.d.ts +33 -0
  210. package/dist/dispatcher/dispatcher.types.d.ts.map +1 -0
  211. package/dist/dispatcher/dispatcher.types.js +3 -0
  212. package/dist/dispatcher/dispatcher.types.js.map +1 -0
  213. package/dist/dispatcher/heartbeat.service.d.ts +17 -10
  214. package/dist/dispatcher/heartbeat.service.d.ts.map +1 -1
  215. package/dist/dispatcher/heartbeat.service.js +47 -51
  216. package/dist/dispatcher/heartbeat.service.js.map +1 -1
  217. package/dist/dispatcher/pty-relay.service.d.ts.map +1 -1
  218. package/dist/dispatcher/pty-relay.service.js +7 -15
  219. package/dist/dispatcher/pty-relay.service.js.map +1 -1
  220. package/dist/dispatcher/reconciler.d.ts +18 -8
  221. package/dist/dispatcher/reconciler.d.ts.map +1 -1
  222. package/dist/dispatcher/reconciler.js +219 -130
  223. package/dist/dispatcher/reconciler.js.map +1 -1
  224. package/dist/dispatcher/scheduler.service.d.ts +15 -9
  225. package/dist/dispatcher/scheduler.service.d.ts.map +1 -1
  226. package/dist/dispatcher/scheduler.service.js +95 -53
  227. package/dist/dispatcher/scheduler.service.js.map +1 -1
  228. package/dist/dispatcher/state-machine.d.ts.map +1 -1
  229. package/dist/dispatcher/state-machine.js +1 -5
  230. package/dist/dispatcher/state-machine.js.map +1 -1
  231. package/dist/dispatcher/task-creation.service.d.ts +30 -0
  232. package/dist/dispatcher/task-creation.service.d.ts.map +1 -0
  233. package/dist/dispatcher/task-creation.service.js +242 -0
  234. package/dist/dispatcher/task-creation.service.js.map +1 -0
  235. package/dist/dispatcher/task-lifecycle.service.d.ts +63 -0
  236. package/dist/dispatcher/task-lifecycle.service.d.ts.map +1 -0
  237. package/dist/dispatcher/task-lifecycle.service.js +584 -0
  238. package/dist/dispatcher/task-lifecycle.service.js.map +1 -0
  239. package/dist/dispatcher/task-log-batcher.d.ts.map +1 -1
  240. package/dist/dispatcher/task-log-batcher.js +4 -11
  241. package/dist/dispatcher/task-log-batcher.js.map +1 -1
  242. package/dist/dispatcher/worker-auth.service.d.ts +29 -0
  243. package/dist/dispatcher/worker-auth.service.d.ts.map +1 -0
  244. package/dist/dispatcher/worker-auth.service.js +296 -0
  245. package/dist/dispatcher/worker-auth.service.js.map +1 -0
  246. package/dist/dispatcher/worker-connection.manager.d.ts +15 -15
  247. package/dist/dispatcher/worker-connection.manager.d.ts.map +1 -1
  248. package/dist/dispatcher/worker-connection.manager.js +35 -43
  249. package/dist/dispatcher/worker-connection.manager.js.map +1 -1
  250. package/dist/dispatcher/worker-selector.d.ts +18 -0
  251. package/dist/dispatcher/worker-selector.d.ts.map +1 -0
  252. package/dist/dispatcher/worker-selector.js +150 -0
  253. package/dist/dispatcher/worker-selector.js.map +1 -0
  254. package/dist/events/event-types.d.ts +31 -0
  255. package/dist/events/event-types.d.ts.map +1 -0
  256. package/dist/events/event-types.js +16 -0
  257. package/dist/events/event-types.js.map +1 -0
  258. package/dist/events/events.module.d.ts +7 -0
  259. package/dist/events/events.module.d.ts.map +1 -0
  260. package/dist/events/events.module.js +26 -0
  261. package/dist/events/events.module.js.map +1 -0
  262. package/dist/main.js +22 -0
  263. package/dist/main.js.map +1 -1
  264. package/dist/notifier/debouncer.d.ts +1 -1
  265. package/dist/notifier/debouncer.d.ts.map +1 -1
  266. package/dist/notifier/debouncer.js +2 -1
  267. package/dist/notifier/debouncer.js.map +1 -1
  268. package/dist/notifier/notification-consumer.d.ts +1 -1
  269. package/dist/notifier/notification-consumer.d.ts.map +1 -1
  270. package/dist/notifier/notification-consumer.js +5 -5
  271. package/dist/notifier/notification-consumer.js.map +1 -1
  272. package/dist/notifier/notifier.module.d.ts.map +1 -1
  273. package/dist/notifier/notifier.module.js +0 -6
  274. package/dist/notifier/notifier.module.js.map +1 -1
  275. package/dist/notifier/notifier.service.d.ts +1 -1
  276. package/dist/notifier/notifier.service.d.ts.map +1 -1
  277. package/dist/notifier/notifier.service.js +7 -9
  278. package/dist/notifier/notifier.service.js.map +1 -1
  279. package/dist/notifier/template.service.d.ts +1 -1
  280. package/dist/notifier/template.service.d.ts.map +1 -1
  281. package/dist/notifier/template.service.js +6 -10
  282. package/dist/notifier/template.service.js.map +1 -1
  283. package/dist/redis/redis.service.d.ts.map +1 -1
  284. package/dist/redis/redis.service.js +2 -2
  285. package/dist/redis/redis.service.js.map +1 -1
  286. package/dist/web/admin/admin-audit.controller.d.ts.map +1 -1
  287. package/dist/web/admin/admin-audit.controller.js +2 -1
  288. package/dist/web/admin/admin-audit.controller.js.map +1 -1
  289. package/dist/web/admin/admin-bot.controller.d.ts +11 -48
  290. package/dist/web/admin/admin-bot.controller.d.ts.map +1 -1
  291. package/dist/web/admin/admin-bot.controller.js +50 -18
  292. package/dist/web/admin/admin-bot.controller.js.map +1 -1
  293. package/dist/web/admin/admin-developer.controller.d.ts +14 -27
  294. package/dist/web/admin/admin-developer.controller.d.ts.map +1 -1
  295. package/dist/web/admin/admin-developer.controller.js +62 -28
  296. package/dist/web/admin/admin-developer.controller.js.map +1 -1
  297. package/dist/web/admin/admin-machine.controller.d.ts +1 -8
  298. package/dist/web/admin/admin-machine.controller.d.ts.map +1 -1
  299. package/dist/web/admin/admin-machine.controller.js +3 -6
  300. package/dist/web/admin/admin-machine.controller.js.map +1 -1
  301. package/dist/web/admin/admin-project.controller.d.ts +9 -30
  302. package/dist/web/admin/admin-project.controller.d.ts.map +1 -1
  303. package/dist/web/admin/admin-project.controller.js +15 -60
  304. package/dist/web/admin/admin-project.controller.js.map +1 -1
  305. package/dist/web/admin/admin-settings.controller.d.ts +7 -10
  306. package/dist/web/admin/admin-settings.controller.d.ts.map +1 -1
  307. package/dist/web/admin/admin-settings.controller.js +14 -6
  308. package/dist/web/admin/admin-settings.controller.js.map +1 -1
  309. package/dist/web/admin/admin-token.controller.d.ts +6 -13
  310. package/dist/web/admin/admin-token.controller.d.ts.map +1 -1
  311. package/dist/web/admin/admin-token.controller.js +15 -27
  312. package/dist/web/admin/admin-token.controller.js.map +1 -1
  313. package/dist/web/admin/admin-worker.controller.d.ts +26 -0
  314. package/dist/web/admin/admin-worker.controller.d.ts.map +1 -0
  315. package/dist/web/admin/admin-worker.controller.js +184 -0
  316. package/dist/web/admin/admin-worker.controller.js.map +1 -0
  317. package/dist/web/dashboard.controller.d.ts +6 -12
  318. package/dist/web/dashboard.controller.d.ts.map +1 -1
  319. package/dist/web/dashboard.controller.js +30 -18
  320. package/dist/web/dashboard.controller.js.map +1 -1
  321. package/dist/web/dashboard.service.d.ts +21 -12
  322. package/dist/web/dashboard.service.d.ts.map +1 -1
  323. package/dist/web/dashboard.service.js +169 -119
  324. package/dist/web/dashboard.service.js.map +1 -1
  325. package/dist/web/event.gateway.d.ts +32 -0
  326. package/dist/web/event.gateway.d.ts.map +1 -0
  327. package/dist/web/event.gateway.js +168 -0
  328. package/dist/web/event.gateway.js.map +1 -0
  329. package/dist/web/frame-handlers/frame-handler.interface.d.ts +24 -0
  330. package/dist/web/frame-handlers/frame-handler.interface.d.ts.map +1 -0
  331. package/dist/web/frame-handlers/frame-handler.interface.js +3 -0
  332. package/dist/web/frame-handlers/frame-handler.interface.js.map +1 -0
  333. package/dist/web/frame-handlers/frame-handler.registry.d.ts +16 -0
  334. package/dist/web/frame-handlers/frame-handler.registry.d.ts.map +1 -0
  335. package/dist/web/frame-handlers/frame-handler.registry.js +39 -0
  336. package/dist/web/frame-handlers/frame-handler.registry.js.map +1 -0
  337. package/dist/web/frame-handlers/heartbeat.handler.d.ts +13 -0
  338. package/dist/web/frame-handlers/heartbeat.handler.d.ts.map +1 -0
  339. package/dist/web/frame-handlers/heartbeat.handler.js +35 -0
  340. package/dist/web/frame-handlers/heartbeat.handler.js.map +1 -0
  341. package/dist/web/frame-handlers/index.d.ts +7 -0
  342. package/dist/web/frame-handlers/index.d.ts.map +1 -0
  343. package/dist/web/frame-handlers/index.js +14 -0
  344. package/dist/web/frame-handlers/index.js.map +1 -0
  345. package/dist/web/frame-handlers/progress.handler.d.ts +25 -0
  346. package/dist/web/frame-handlers/progress.handler.d.ts.map +1 -0
  347. package/dist/web/frame-handlers/progress.handler.js +69 -0
  348. package/dist/web/frame-handlers/progress.handler.js.map +1 -0
  349. package/dist/web/frame-handlers/stage-confirm.handler.d.ts +15 -0
  350. package/dist/web/frame-handlers/stage-confirm.handler.d.ts.map +1 -0
  351. package/dist/web/frame-handlers/stage-confirm.handler.js +39 -0
  352. package/dist/web/frame-handlers/stage-confirm.handler.js.map +1 -0
  353. package/dist/web/frame-handlers/tunnel.handler.d.ts +10 -0
  354. package/dist/web/frame-handlers/tunnel.handler.d.ts.map +1 -0
  355. package/dist/web/frame-handlers/tunnel.handler.js +31 -0
  356. package/dist/web/frame-handlers/tunnel.handler.js.map +1 -0
  357. package/dist/web/interaction.service.d.ts +0 -4
  358. package/dist/web/interaction.service.d.ts.map +1 -1
  359. package/dist/web/interaction.service.js +0 -10
  360. package/dist/web/interaction.service.js.map +1 -1
  361. package/dist/web/machine.controller.d.ts +1 -8
  362. package/dist/web/machine.controller.d.ts.map +1 -1
  363. package/dist/web/machine.controller.js +6 -9
  364. package/dist/web/machine.controller.js.map +1 -1
  365. package/dist/web/notification.controller.d.ts +1 -8
  366. package/dist/web/notification.controller.d.ts.map +1 -1
  367. package/dist/web/notification.controller.js +3 -2
  368. package/dist/web/notification.controller.js.map +1 -1
  369. package/dist/web/profile.controller.d.ts +19 -10
  370. package/dist/web/profile.controller.d.ts.map +1 -1
  371. package/dist/web/profile.controller.js +100 -13
  372. package/dist/web/profile.controller.js.map +1 -1
  373. package/dist/web/project-member.service.d.ts +16 -0
  374. package/dist/web/project-member.service.d.ts.map +1 -0
  375. package/dist/web/project-member.service.js +90 -0
  376. package/dist/web/project-member.service.js.map +1 -0
  377. package/dist/web/project.controller.d.ts +43 -26
  378. package/dist/web/project.controller.d.ts.map +1 -1
  379. package/dist/web/project.controller.js +73 -46
  380. package/dist/web/project.controller.js.map +1 -1
  381. package/dist/web/pty.gateway.d.ts +9 -3
  382. package/dist/web/pty.gateway.d.ts.map +1 -1
  383. package/dist/web/pty.gateway.js +46 -18
  384. package/dist/web/pty.gateway.js.map +1 -1
  385. package/dist/web/search.service.d.ts +9 -2
  386. package/dist/web/search.service.d.ts.map +1 -1
  387. package/dist/web/search.service.js +53 -26
  388. package/dist/web/search.service.js.map +1 -1
  389. package/dist/web/task.controller.d.ts +15 -24
  390. package/dist/web/task.controller.d.ts.map +1 -1
  391. package/dist/web/task.controller.js +70 -53
  392. package/dist/web/task.controller.js.map +1 -1
  393. package/dist/web/tunnel.service.d.ts +74 -0
  394. package/dist/web/tunnel.service.d.ts.map +1 -0
  395. package/dist/web/tunnel.service.js +250 -0
  396. package/dist/web/tunnel.service.js.map +1 -0
  397. package/dist/web/web-event.service.d.ts +25 -0
  398. package/dist/web/web-event.service.d.ts.map +1 -0
  399. package/dist/web/web-event.service.js +116 -0
  400. package/dist/web/web-event.service.js.map +1 -0
  401. package/dist/web/web.module.d.ts.map +1 -1
  402. package/dist/web/web.module.js +13 -28
  403. package/dist/web/web.module.js.map +1 -1
  404. package/dist/web/worker-channel.gateway.d.ts +10 -18
  405. package/dist/web/worker-channel.gateway.d.ts.map +1 -1
  406. package/dist/web/worker-channel.gateway.js +70 -144
  407. package/dist/web/worker-channel.gateway.js.map +1 -1
  408. package/dist/web/worker-web.controller.d.ts +15 -0
  409. package/dist/web/worker-web.controller.d.ts.map +1 -0
  410. package/dist/web/worker-web.controller.js +143 -0
  411. package/dist/web/worker-web.controller.js.map +1 -0
  412. package/dist/web/worker.controller.d.ts +3 -3
  413. package/dist/web/worker.controller.d.ts.map +1 -1
  414. package/dist/web/worker.controller.js +8 -8
  415. package/dist/web/worker.controller.js.map +1 -1
  416. package/dist/web/workspace.controller.d.ts +8 -33
  417. package/dist/web/workspace.controller.d.ts.map +1 -1
  418. package/dist/web/workspace.controller.js +93 -205
  419. package/dist/web/workspace.controller.js.map +1 -1
  420. package/package.json +10 -2
  421. package/public/apple-touch-icon-120x120.png +0 -0
  422. package/public/apple-touch-icon-152x152.png +0 -0
  423. package/public/apple-touch-icon-180x180.png +0 -0
  424. package/public/assets/AccessTokensPage-DPQB2fbi.js +1 -0
  425. package/public/assets/AdminPage-BqVelYNu.js +1 -0
  426. package/public/assets/ApiReferencePage-CiGvbLxL.js +1 -0
  427. package/public/assets/AuditLogPage-DSo4jVYm.js +6 -0
  428. package/public/assets/BindPlatformPage-CTqzpOmt.js +1 -0
  429. package/public/assets/BotManage-CIR0rrK7.js +6 -0
  430. package/public/assets/CliReferencePage-C8GmlwUz.js +14 -0
  431. package/public/assets/DeveloperManage-r6y2AoB4.js +16 -0
  432. package/public/assets/EditProjectPage-7WCsNltj.js +2 -0
  433. package/public/assets/{EmptyState-CvmhFgWJ.js → EmptyState-D3foEiul.js} +1 -1
  434. package/public/assets/HomePage-D4yv4orb.js +1 -0
  435. package/public/assets/InfoRow-DhdTYoY9.js +1 -0
  436. package/public/assets/LandingPage-CqS0E2eC.js +43 -0
  437. package/public/assets/LoginPage-DDXkdcz_.js +1 -0
  438. package/public/assets/MetricBar-DMMHfS0A.js +1 -0
  439. package/public/assets/{NotFoundPage-BuiAS4g4.js → NotFoundPage-D5x5BrlX.js} +1 -1
  440. package/public/assets/OnboardingGuide-D8RyPcEd.js +1 -0
  441. package/public/assets/PipelineEditorPage-y2-Q8ofQ.js +3 -0
  442. package/public/assets/ProfilePage-DN7usHOi.js +1 -0
  443. package/public/assets/ProjectDetailPage-DJexg49z.js +7 -0
  444. package/public/assets/ProjectListPage-Bz7I2D0H.js +6 -0
  445. package/public/assets/QuickAuth-Dr0Q50ld.js +1 -0
  446. package/public/assets/{RemoveMemberConfirmDialog-DS9z6jQT.js → RemoveMemberConfirmDialog-BCrue0AP.js} +2 -2
  447. package/public/assets/Select-BnV8yZlD.js +6 -0
  448. package/public/assets/SettingsPage-HaUCcsgl.js +6 -0
  449. package/public/assets/{Skeleton-CcVqz28_.js → Skeleton-DUgWc2LJ.js} +1 -1
  450. package/public/assets/SkillPage-BInwZTQh.js +1 -0
  451. package/public/assets/TaskDetailPage-CfwEj1hy.js +31 -0
  452. package/public/assets/TaskListPage-Dh59ldSZ.js +1 -0
  453. package/public/assets/TaskStatusBadge-DuOoGIwE.js +1 -0
  454. package/public/assets/TerminalHomePage-BwXJjr-a.js +16 -0
  455. package/public/assets/TokenManage-B0Cpv6SO.js +1 -0
  456. package/public/assets/TotpSetupPage-MSCCURj9.js +9 -0
  457. package/public/assets/WorkerDetailPage-R2veIzKo.js +1 -0
  458. package/public/assets/WorkerListPage-CserMjGO.js +6 -0
  459. package/public/assets/WorkerSetupGuidePage-SqO2lzVa.js +11 -0
  460. package/public/assets/{arrow-left-CVKez32c.js → arrow-left-DklRsENx.js} +1 -1
  461. package/public/assets/{arrow-right-g7hTftEi.js → arrow-right-MDrzFe3K.js} +1 -1
  462. package/public/assets/{bot-DYvBcsZn.js → bot-DPaziJPf.js} +1 -1
  463. package/public/assets/{chevron-right-COxU2yxz.js → chevron-right-CqyufMDW.js} +1 -1
  464. package/public/assets/{copy-BGttVgA1.js → copy-BUH7P2Hf.js} +1 -1
  465. package/public/assets/date-BdNtiQTP.js +1 -0
  466. package/public/assets/{external-link-DXlCfUjE.js → external-link-ChPgQ7N_.js} +1 -1
  467. package/public/assets/index-BS0Fbx5V.css +1 -0
  468. package/public/assets/index-vL7aQJNr.js +225 -0
  469. package/public/assets/{key-3eDVdGih.js → key-CxvwwHnW.js} +1 -1
  470. package/public/assets/{loader-circle-DPm92ETj.js → loader-circle-DS5g1-Od.js} +1 -1
  471. package/public/assets/password-CHk45-jw.js +1 -0
  472. package/public/assets/{pencil-Bs3PwH2W.js → pencil-B6spIBcw.js} +1 -1
  473. package/public/assets/{plus-d-PLzbVX.js → plus-Bnd1Vz2Y.js} +1 -1
  474. package/public/assets/{rotate-ccw-Cus8CABi.js → rotate-ccw-CgcLAXNR.js} +1 -1
  475. package/public/assets/{scroll-text-CV3wlIy2.js → scroll-text-CecZ0Fk5.js} +1 -1
  476. package/public/assets/{settings-Ccijf48b.js → settings-C1uOD3PZ.js} +1 -1
  477. package/public/assets/status-colors-BPEUp90-.js +1 -0
  478. package/public/assets/string-B39tzdVK.js +1 -0
  479. package/public/assets/task-constants-BbFyCyKk.js +14 -0
  480. package/public/assets/task.store-BE6fEPu4.js +1 -0
  481. package/public/assets/{trash-2-bRJ-xwtq.js → trash-2-A2FsT1yG.js} +1 -1
  482. package/public/assets/useFetch-vGZMAvGi.js +1 -0
  483. package/public/assets/{users-LNQqKSEN.js → users-CEdRS_A3.js} +1 -1
  484. package/public/assets/wifi-D60NkK6F.js +6 -0
  485. package/public/assets/zap-DXw1NrWz.js +6 -0
  486. package/public/icon-192x192.png +0 -0
  487. package/public/icon-512x512.png +0 -0
  488. package/public/icon-maskable-192x192.png +0 -0
  489. package/public/icon-maskable-512x512.png +0 -0
  490. package/public/index.html +21 -4
  491. package/public/manifest.webmanifest +1 -0
  492. package/public/og-image.png +0 -0
  493. package/public/registerSW.js +1 -0
  494. package/public/sw.js +1 -0
  495. package/public/workbox-6e9b121d.js +1 -0
  496. package/database/migrations/002-add-indexes.sql +0 -17
  497. package/database/migrations/003-add-settings-table.sql +0 -4
  498. package/database/migrations/004-add-developer-id-index.sql +0 -5
  499. package/database/migrations/005-add-worker-version.sql +0 -2
  500. package/database/migrations/006-add-decommission-fields.sql +0 -2
  501. package/database/migrations/007-add-ssh-url.sql +0 -1
  502. package/public/assets/AccessTokensPage-Cb5hGBfN.js +0 -1
  503. package/public/assets/AdminPage-C7Xytkfo.js +0 -1
  504. package/public/assets/ApiReferencePage-DLGVc4xN.js +0 -1
  505. package/public/assets/AuditLogPage-BgqsUJ7x.js +0 -6
  506. package/public/assets/BotManage-Ds9DYQZA.js +0 -6
  507. package/public/assets/CliReferencePage-WXinn_69.js +0 -8
  508. package/public/assets/DeveloperManage-saSq3Hfx.js +0 -16
  509. package/public/assets/EditProjectPage-C4xWYLTo.js +0 -2
  510. package/public/assets/HomePage-y20pQ52r.js +0 -1
  511. package/public/assets/LandingPage-CB5BBbdI.js +0 -36
  512. package/public/assets/LoginPage-DLljhJkQ.js +0 -1
  513. package/public/assets/MachineDetailPage-CPm9tfdp.js +0 -1
  514. package/public/assets/MachineListPage-D-nhVz-m.js +0 -6
  515. package/public/assets/PipelineEditorPage-B9GgqAju.js +0 -3
  516. package/public/assets/ProfilePage-DASpeJq6.js +0 -1
  517. package/public/assets/ProjectDetailPage-DWZyNwTV.js +0 -7
  518. package/public/assets/ProjectListPage-BUMX3Dxa.js +0 -6
  519. package/public/assets/QuickAuth-B9mvq7ht.js +0 -1
  520. package/public/assets/Select-A7PXobk_.js +0 -6
  521. package/public/assets/SettingsPage-WGzxUbGp.js +0 -6
  522. package/public/assets/SkillPage-BIt2kF3W.js +0 -1
  523. package/public/assets/TaskDetailPage-CePyNfp6.js +0 -44
  524. package/public/assets/TaskListPage-MO4_PSve.js +0 -1
  525. package/public/assets/TaskStatusBadge-QtQUDscM.js +0 -1
  526. package/public/assets/TokenManage-Sf0RGymw.js +0 -1
  527. package/public/assets/TotpSetupPage-D-rbEYLf.js +0 -9
  528. package/public/assets/WorkerSetupGuidePage-D6Fv1MQo.js +0 -16
  529. package/public/assets/index-CDBuOPx4.js +0 -212
  530. package/public/assets/index-CQojj7Zu.css +0 -1
  531. package/public/assets/protocol-C5uQmiiB.js +0 -1
  532. package/public/assets/task.store-CvjSr507.js +0 -1
  533. /package/public/assets/{TaskDetailPage-Beg8tuEN.css → task-constants-Beg8tuEN.css} +0 -0
@@ -16,7 +16,7 @@ export interface NotificationContent {
16
16
  };
17
17
  }
18
18
  export declare class TemplateService {
19
- private readonly webBaseUrl;
19
+ private get webBaseUrl();
20
20
  /**
21
21
  * Build a task notification (created, running, stage changed, completed, etc.).
22
22
  */
@@ -1 +1 @@
1
- {"version":3,"file":"template.service.d.ts","sourceRoot":"","sources":["../../src/notifier/template.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAmCjD,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAED,qBACa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAC2B;IAEtD;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,GACA,mBAAmB;IAyDtB;;OAEG;IACH,6BAA6B,CAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GACZ,mBAAmB;IA0BtB;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB;IAyBtB,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,WAAW;CAkDpB"}
1
+ {"version":3,"file":"template.service.d.ts","sourceRoot":"","sources":["../../src/notifier/template.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AA+BjD,MAAM,WAAW,mBAAmB;IAClC,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClD,CAAC;CACH;AAED,qBACa,eAAe;IAC1B,OAAO,KAAK,UAAU,GAAkC;IAExD;;OAEG;IACH,qBAAqB,CACnB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,GACA,mBAAmB;IAyDtB;;OAEG;IACH,6BAA6B,CAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,GACZ,mBAAmB;IA0BtB;;OAEG;IACH,eAAe,CACb,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,EACrB,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB;IAyBtB,OAAO,CAAC,UAAU;IAgClB,OAAO,CAAC,WAAW;CAkDpB"}
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.TemplateService = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const protocol_1 = require("@overlordai/protocol");
12
+ const config_1 = require("../common/config");
13
+ const string_utils_1 = require("../common/string-utils");
12
14
  /** Status display configuration: emoji + color label. */
13
15
  const STATUS_DISPLAY = {
14
16
  [protocol_1.TaskStatus.QUEUED]: { emoji: '🕐', label: 'Queued', color: 'grey' },
@@ -31,14 +33,8 @@ const STATUS_DISPLAY = {
31
33
  color: 'grey',
32
34
  },
33
35
  };
34
- /** Truncate a string to `maxLen` characters, appending "..." if truncated. */
35
- function truncate(text, maxLen) {
36
- if (text.length <= maxLen)
37
- return text;
38
- return text.slice(0, maxLen) + '...';
39
- }
40
36
  let TemplateService = class TemplateService {
41
- webBaseUrl = process.env.WEB_BASE_URL || 'http://localhost:3000';
37
+ get webBaseUrl() { return (0, config_1.getWebUrl)(); }
42
38
  /**
43
39
  * Build a task notification (created, running, stage changed, completed, etc.).
44
40
  */
@@ -48,7 +44,7 @@ let TemplateService = class TemplateService {
48
44
  label: task.status,
49
45
  color: 'grey',
50
46
  };
51
- const desc = truncate(task.description, 50);
47
+ const desc = (0, string_utils_1.truncate)(task.description, 50);
52
48
  const webLink = `${this.webBaseUrl}/tasks/${task.id}`;
53
49
  const title = this.buildTitle(eventType, task, statusInfo);
54
50
  const fields = this.buildFields(task, statusInfo, extra);
@@ -92,7 +88,7 @@ let TemplateService = class TemplateService {
92
88
  */
93
89
  buildStageConfirmNotification(task, stage) {
94
90
  const webLink = `${this.webBaseUrl}/tasks/${task.id}`;
95
- const desc = truncate(task.description, 50);
91
+ const desc = (0, string_utils_1.truncate)(task.description, 50);
96
92
  const title = `⚠️ Stage Confirmation Required — Task #${task.id}`;
97
93
  const fields = [
98
94
  { label: 'Task', value: `#${task.id}: ${desc}` },
@@ -162,7 +158,7 @@ let TemplateService = class TemplateService {
162
158
  }
163
159
  }
164
160
  buildFields(task, statusInfo, extra) {
165
- const desc = truncate(task.description, 50);
161
+ const desc = (0, string_utils_1.truncate)(task.description, 50);
166
162
  const fields = [
167
163
  { label: 'Task', value: `#${task.id}: ${desc}` },
168
164
  { label: 'Status', value: `${statusInfo.emoji} ${statusInfo.label}` },
@@ -1 +1 @@
1
- {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/notifier/template.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"template.service.js","sourceRoot":"","sources":["../../src/notifier/template.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../src/redis/redis.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,qBACa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;;IAU/B,4CAA4C;IAC5C,SAAS,IAAI,KAAK;IAIZ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI3C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
1
+ {"version":3,"file":"redis.service.d.ts","sourceRoot":"","sources":["../../src/redis/redis.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,MAAM,SAAS,CAAC;AAG5B,qBACa,YAAa,YAAW,eAAe;IAClD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;;IAS/B,4CAA4C;IAC5C,SAAS,IAAI,KAAK;IAIZ,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIxC,GAAG,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjE,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI3C,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrD,MAAM,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3B,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvC"}
@@ -15,11 +15,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.RedisService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const ioredis_1 = __importDefault(require("ioredis"));
18
+ const config_1 = require("../common/config");
18
19
  let RedisService = class RedisService {
19
20
  client;
20
21
  constructor() {
21
- const url = process.env.REDIS_URL || 'redis://localhost:6379';
22
- this.client = new ioredis_1.default(url, {
22
+ this.client = new ioredis_1.default((0, config_1.getRedisUrl)(), {
23
23
  maxRetriesPerRequest: null, // required for BullMQ compatibility
24
24
  enableReadyCheck: true,
25
25
  });
@@ -1 +1 @@
1
- {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../src/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA6D;AAC7D,sDAA4B;AAGrB,IAAM,YAAY,GAAlB,MAAM,YAAY;IACN,MAAM,CAAQ;IAE/B;QACE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,wBAAwB,CAAC;QAC9D,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAK,CAAC,GAAG,EAAE;YAC3B,oBAAoB,EAAE,IAAI,EAAE,oCAAoC;YAChE,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,IAAc;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAe,EAAE,KAAa;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,KAAa;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,IAAc;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAzDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;;GACA,YAAY,CAyDxB"}
1
+ {"version":3,"file":"redis.service.js","sourceRoot":"","sources":["../../src/redis/redis.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA6D;AAC7D,sDAA4B;AAC5B,6CAA+C;AAGxC,IAAM,YAAY,GAAlB,MAAM,YAAY;IACN,MAAM,CAAQ;IAE/B;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,iBAAK,CAAC,IAAA,oBAAW,GAAE,EAAE;YACrC,oBAAoB,EAAE,IAAI,EAAE,oCAAoC;YAChE,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,4CAA4C;IAC5C,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAG,IAAc;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,OAAe,EAAE,KAAa;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,GAAW,EAAE,KAAa;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW,EAAE,OAAe;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAG,IAAc;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;YAC1E,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;IAC1B,CAAC;CACF,CAAA;AAxDY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;;GACA,YAAY,CAwDxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"admin-audit.controller.d.ts","sourceRoot":"","sources":["../../../src/web/admin/admin-audit.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAEtF,qBAGa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,kBAAkB;IAG7D,aAAa,CACK,KAAK,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM;CASnC"}
1
+ {"version":3,"file":"admin-audit.controller.d.ts","sourceRoot":"","sources":["../../../src/web/admin/admin-audit.controller.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AAGtF,qBAGa,oBAAoB;IACnB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,kBAAkB;IAG7D,aAAa,CACK,KAAK,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,MAAM;CASnC"}
@@ -19,6 +19,7 @@ const jwt_auth_guard_1 = require("../../auth/guards/jwt-auth.guard");
19
19
  const roles_guard_1 = require("../../auth/guards/roles.guard");
20
20
  const roles_decorator_1 = require("../../auth/decorators/roles.decorator");
21
21
  const audit_log_repository_1 = require("../../database/repositories/audit-log.repository");
22
+ const pagination_1 = require("../../common/pagination");
22
23
  let AdminAuditController = class AdminAuditController {
23
24
  auditLogRepo;
24
25
  constructor(auditLogRepo) {
@@ -26,7 +27,7 @@ let AdminAuditController = class AdminAuditController {
26
27
  }
27
28
  listAuditLogs(limit, cursor, userId, action) {
28
29
  return this.auditLogRepo.listPaginated({
29
- limit: limit ? parseInt(limit, 10) : undefined,
30
+ limit: (0, pagination_1.clampLimit)(limit),
30
31
  cursor: cursor || undefined,
31
32
  userId: userId ? parseInt(userId, 10) : undefined,
32
33
  action: action || undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"admin-audit.controller.js","sourceRoot":"","sources":["../../../src/web/admin/admin-audit.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,mDAAqD;AACrD,qEAAgE;AAChE,+DAA2D;AAC3D,2EAA8D;AAC9D,2FAAsF;AAK/E,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACF;IAA7B,YAA6B,YAAgC;QAAhC,iBAAY,GAAZ,YAAY,CAAoB;IAAG,CAAC;IAGjE,aAAa,CACK,KAAc,EACb,MAAe,EACf,MAAe,EACf,MAAe;QAEhC,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACrC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YAC9C,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACjD,MAAM,EAAE,MAAM,IAAI,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjBY,oDAAoB;AAI/B;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;yDAQjB;+BAhBU,oBAAoB;IAHhC,IAAA,mBAAU,EAAC,sBAAsB,CAAC;IAClC,IAAA,kBAAS,EAAC,6BAAY,EAAE,wBAAU,CAAC;IACnC,IAAA,uBAAK,EAAC,wBAAa,CAAC,KAAK,CAAC;qCAEkB,yCAAkB;GADlD,oBAAoB,CAiBhC"}
1
+ {"version":3,"file":"admin-audit.controller.js","sourceRoot":"","sources":["../../../src/web/admin/admin-audit.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAKwB;AACxB,mDAAqD;AACrD,qEAAgE;AAChE,+DAA2D;AAC3D,2EAA8D;AAC9D,2FAAsF;AACtF,wDAAqD;AAK9C,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IACF;IAA7B,YAA6B,YAAgC;QAAhC,iBAAY,GAAZ,YAAY,CAAoB;IAAG,CAAC;IAGjE,aAAa,CACK,KAAc,EACb,MAAe,EACf,MAAe,EACf,MAAe;QAEhC,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;YACrC,KAAK,EAAE,IAAA,uBAAU,EAAC,KAAK,CAAC;YACxB,MAAM,EAAE,MAAM,IAAI,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;YACjD,MAAM,EAAE,MAAM,IAAI,SAAS;SAC5B,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjBY,oDAAoB;AAI/B;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;IACf,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;yDAQjB;+BAhBU,oBAAoB;IAHhC,IAAA,mBAAU,EAAC,sBAAsB,CAAC;IAClC,IAAA,kBAAS,EAAC,6BAAY,EAAE,wBAAU,CAAC;IACnC,IAAA,uBAAK,EAAC,wBAAa,CAAC,KAAK,CAAC;qCAEkB,yCAAkB;GADlD,oBAAoB,CAiBhC"}
@@ -1,71 +1,35 @@
1
1
  import { BotRepository } from '../../database/repositories/bot.repository';
2
2
  import { AuditLogRepository } from '../../database/repositories/audit-log.repository';
3
3
  import { CryptoService } from '../../common/crypto.service';
4
- interface AuthenticatedRequest {
5
- user: {
6
- sub: number;
7
- name: string;
8
- role: string;
9
- };
10
- }
4
+ import type { AuthenticatedRequest } from '../../auth/authenticated-request';
11
5
  export declare class AdminBotController {
12
6
  private readonly botRepo;
13
7
  private readonly auditLogRepo;
14
8
  private readonly cryptoService;
15
9
  constructor(botRepo: BotRepository, auditLogRepo: AuditLogRepository, cryptoService: CryptoService);
16
- listBots(): {
17
- id: number;
18
- platform: string;
19
- appId: string;
20
- name: string;
21
- status: string;
22
- createdAt: string;
23
- }[];
10
+ listBots(): Omit<import("../../database/repositories/bot.repository").BotInstance, "appSecret">[];
24
11
  createBot(body: {
25
12
  platform: string;
26
13
  appId: string;
27
14
  appSecret: string;
28
15
  webhookToken?: string;
29
16
  name: string;
30
- }, req: AuthenticatedRequest): {
31
- id: number;
32
- platform: string;
33
- appId: string;
34
- name: string;
35
- status: string;
36
- createdAt: string;
37
- };
38
- listAllBindings(): ({
39
- id: number;
40
- botInstanceId: number;
41
- platformChatId: string;
42
- projectKey: string | null;
43
- chatName: string | null;
44
- createdAt: string;
45
- } & {
17
+ }, req: AuthenticatedRequest): Omit<import("../../database/repositories/bot.repository").BotInstance, "appSecret">;
18
+ updateBot(id: number, body: {
19
+ name?: string;
20
+ appSecret?: string;
21
+ webhookToken?: string;
22
+ }, req: AuthenticatedRequest): Omit<import("../../database/repositories/bot.repository").BotInstance, "appSecret">;
23
+ listAllBindings(): (import("../../database/repositories/bot.repository").ChatBinding & {
46
24
  botName: string;
47
25
  platform: string;
48
26
  })[];
49
- listBindings(id: number): {
50
- id: number;
51
- botInstanceId: number;
52
- platformChatId: string;
53
- projectKey: string | null;
54
- chatName: string | null;
55
- createdAt: string;
56
- }[];
27
+ listBindings(id: number): import("../../database/repositories/bot.repository").ChatBinding[];
57
28
  createBinding(id: number, body: {
58
29
  platformChatId: string;
59
30
  projectKey?: string;
60
31
  chatName?: string;
61
- }, req: AuthenticatedRequest): {
62
- id: number;
63
- botInstanceId: number;
64
- platformChatId: string;
65
- projectKey: string | null;
66
- chatName: string | null;
67
- createdAt: string;
68
- };
32
+ }, req: AuthenticatedRequest): import("../../database/repositories/bot.repository").ChatBinding;
69
33
  deleteBot(id: number, req: AuthenticatedRequest): {
70
34
  success: boolean;
71
35
  };
@@ -75,5 +39,4 @@ export declare class AdminBotController {
75
39
  success: boolean;
76
40
  };
77
41
  }
78
- export {};
79
42
  //# sourceMappingURL=admin-bot.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-bot.controller.d.ts","sourceRoot":"","sources":["../../../src/web/admin/admin-bot.controller.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,qBAGa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,aAAa;IAI/C,QAAQ;;;;;;;;IAcR,SAAS,CAEP,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,EACM,GAAG,EAAE,oBAAoB;;;;;;;;IA+BlC,eAAe;;;;;;;;;;;IAKf,YAAY,CAA4B,EAAE,EAAE,MAAM;;;;;;;;IASlD,aAAa,CACgB,EAAE,EAAE,MAAM,EAErC,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACjE,GAAG,EAAE,oBAAoB;;;;;;;;IAyBlC,SAAS,CACoB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;IAoBlC,aAAa,CACgB,EAAE,EAAE,MAAM,EAC7B,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,EACjC,GAAG,EAAE,oBAAoB;;;CAqBnC"}
1
+ {"version":3,"file":"admin-bot.controller.d.ts","sourceRoot":"","sources":["../../../src/web/admin/admin-bot.controller.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,qBAGa,kBAAkB;IAE3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,OAAO,EAAE,aAAa,EACtB,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,aAAa;IAI/C,QAAQ;IAMR,SAAS,CAEP,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,EAAE,MAAM,CAAC;KACd,EACM,GAAG,EAAE,oBAAoB;IA2ClC,SAAS,CACoB,EAAE,EAAE,MAAM,EAErC,IAAI,EAAE;QACJ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,EACM,GAAG,EAAE,oBAAoB;IA0BlC,eAAe;;;;IAKf,YAAY,CAA4B,EAAE,EAAE,MAAM;IASlD,aAAa,CACgB,EAAE,EAAE,MAAM,EAErC,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EACjE,GAAG,EAAE,oBAAoB;IAyBlC,SAAS,CACoB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;IAoBlC,aAAa,CACgB,EAAE,EAAE,MAAM,EAC7B,IAAI,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,EACjC,GAAG,EAAE,oBAAoB;;;CAqBnC"}
@@ -32,17 +32,25 @@ let AdminBotController = class AdminBotController {
32
32
  }
33
33
  listBots() {
34
34
  const bots = this.botRepo.findAll();
35
- // Strip appSecret from response
36
- return bots.map((b) => ({
37
- id: b.id,
38
- platform: b.platform,
39
- appId: b.appId,
40
- name: b.name,
41
- status: b.status,
42
- createdAt: b.createdAt,
43
- }));
35
+ return bots.map(bot_repository_1.BotRepository.stripSecrets);
44
36
  }
45
37
  createBot(body, req) {
38
+ // Validate platform
39
+ const validPlatforms = Object.values(protocol_1.Platform);
40
+ if (!validPlatforms.includes(body.platform)) {
41
+ throw new common_1.BadRequestException(`Invalid platform. Must be one of: ${validPlatforms.join(', ')}`);
42
+ }
43
+ // Validate appId
44
+ if (!body.appId || typeof body.appId !== 'string' || body.appId.trim().length === 0) {
45
+ throw new common_1.BadRequestException('appId must be a non-empty string');
46
+ }
47
+ if (body.appId.length > 200) {
48
+ throw new common_1.BadRequestException('appId must be at most 200 characters');
49
+ }
50
+ // Validate appSecret
51
+ if (!body.appSecret || typeof body.appSecret !== 'string' || body.appSecret.trim().length === 0) {
52
+ throw new common_1.BadRequestException('appSecret must be a non-empty string');
53
+ }
46
54
  // Encrypt appSecret before storage
47
55
  const encryptedSecret = this.cryptoService.encryptAes(body.appSecret);
48
56
  const bot = this.botRepo.create({
@@ -58,14 +66,29 @@ let AdminBotController = class AdminBotController {
58
66
  resource: `bot:${bot.id}`,
59
67
  detail: `Created bot '${bot.name}' for platform '${bot.platform}'`,
60
68
  });
61
- return {
62
- id: bot.id,
63
- platform: bot.platform,
64
- appId: bot.appId,
65
- name: bot.name,
66
- status: bot.status,
67
- createdAt: bot.createdAt,
68
- };
69
+ return bot_repository_1.BotRepository.stripSecrets(bot);
70
+ }
71
+ updateBot(id, body, req) {
72
+ const bot = this.botRepo.findById(id);
73
+ if (!bot) {
74
+ throw new common_1.NotFoundException(`Bot #${id} not found`);
75
+ }
76
+ const updates = {};
77
+ if (body.name !== undefined)
78
+ updates.name = body.name;
79
+ if (body.appSecret)
80
+ updates.appSecret = this.cryptoService.encryptAes(body.appSecret);
81
+ if (body.webhookToken !== undefined)
82
+ updates.webhookToken = body.webhookToken;
83
+ this.botRepo.update(id, updates);
84
+ this.auditLogRepo.create({
85
+ userId: req.user.sub,
86
+ action: 'bot_update',
87
+ resource: `bot:${id}`,
88
+ detail: `Updated bot '${bot.name}'`,
89
+ });
90
+ const updated = this.botRepo.findById(id);
91
+ return bot_repository_1.BotRepository.stripSecrets(updated);
69
92
  }
70
93
  listAllBindings() {
71
94
  return this.botRepo.findAllBindings();
@@ -115,7 +138,7 @@ let AdminBotController = class AdminBotController {
115
138
  if (!bot) {
116
139
  throw new common_1.NotFoundException(`Bot #${id} not found`);
117
140
  }
118
- const deleted = this.botRepo.deleteBinding(body.platformChatId);
141
+ const deleted = this.botRepo.deleteBinding(id, body.platformChatId);
119
142
  if (!deleted) {
120
143
  throw new common_1.NotFoundException('Binding not found');
121
144
  }
@@ -143,6 +166,15 @@ __decorate([
143
166
  __metadata("design:paramtypes", [Object, Object]),
144
167
  __metadata("design:returntype", void 0)
145
168
  ], AdminBotController.prototype, "createBot", null);
169
+ __decorate([
170
+ (0, common_1.Put)(':id'),
171
+ __param(0, (0, common_1.Param)('id', common_1.ParseIntPipe)),
172
+ __param(1, (0, common_1.Body)()),
173
+ __param(2, (0, common_1.Req)()),
174
+ __metadata("design:type", Function),
175
+ __metadata("design:paramtypes", [Number, Object, Object]),
176
+ __metadata("design:returntype", void 0)
177
+ ], AdminBotController.prototype, "updateBot", null);
146
178
  __decorate([
147
179
  (0, common_1.Get)('all-bindings'),
148
180
  __metadata("design:type", Function),
@@ -1 +1 @@
1
- {"version":3,"file":"admin-bot.controller.js","sourceRoot":"","sources":["../../../src/web/admin/admin-bot.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"admin-bot.controller.js","sourceRoot":"","sources":["../../../src/web/admin/admin-bot.controller.ts"],"names":[],"mappings":"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"}
@@ -1,52 +1,39 @@
1
- import { DeveloperRole } from '@overlordai/protocol';
1
+ import { DeveloperRole, DeveloperStatus } from '@overlordai/protocol';
2
2
  import type { CreateDeveloperRequest } from '@overlordai/protocol';
3
3
  import { DeveloperRepository } from '../../database/repositories/developer.repository';
4
4
  import { AuditLogRepository } from '../../database/repositories/audit-log.repository';
5
5
  import { CryptoService } from '../../common/crypto.service';
6
- interface AuthenticatedRequest {
7
- user: {
8
- sub: number;
9
- name: string;
10
- role: string;
11
- };
12
- }
6
+ import type { AuthenticatedRequest } from '../../auth/authenticated-request';
13
7
  export declare class AdminDeveloperController {
14
8
  private readonly developerRepo;
15
9
  private readonly auditLogRepo;
16
10
  private readonly cryptoService;
17
11
  constructor(developerRepo: DeveloperRepository, auditLogRepo: AuditLogRepository, cryptoService: CryptoService);
18
- listDevelopers(): {
19
- id: number;
20
- name: string;
21
- gitName: string;
22
- gitEmail: string;
23
- role: DeveloperRole;
24
- status: string;
12
+ listDevelopers(q?: string): {
25
13
  totpEnabled: boolean;
26
- createdAt: string;
27
- }[];
28
- createDeveloper(body: CreateDeveloperRequest, req: AuthenticatedRequest): Promise<{
29
14
  id: number;
15
+ status: DeveloperStatus;
16
+ createdAt: string;
30
17
  name: string;
18
+ role: DeveloperRole;
31
19
  gitName: string;
32
20
  gitEmail: string;
33
- role: DeveloperRole;
34
- status: string;
35
- createdAt: string;
36
- }>;
21
+ platformUids: Record<string, string>;
22
+ }[];
23
+ createDeveloper(body: CreateDeveloperRequest, req: AuthenticatedRequest): Promise<import("@overlordai/protocol").DeveloperPublic>;
37
24
  updateDeveloper(id: number, body: Record<string, unknown>, req: AuthenticatedRequest): {
25
+ totpEnabled: boolean;
38
26
  id: number;
27
+ status: DeveloperStatus;
28
+ createdAt: string;
39
29
  name: string;
30
+ role: DeveloperRole;
40
31
  gitName: string;
41
32
  gitEmail: string;
42
- role: DeveloperRole;
43
- status: string;
44
- totpEnabled: boolean;
45
- createdAt: string;
33
+ platformUids: Record<string, string>;
46
34
  };
47
35
  resetTotp(id: number, req: AuthenticatedRequest): {
48
36
  success: boolean;
49
37
  };
50
38
  }
51
- export {};
52
39
  //# sourceMappingURL=admin-developer.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"admin-developer.controller.d.ts","sourceRoot":"","sources":["../../../src/web/admin/admin-developer.controller.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAInE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,qBAGa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,aAAa,EAAE,mBAAmB,EAClC,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,aAAa;IAI/C,cAAc;;;;;;;;;;IAgBR,eAAe,CACX,IAAI,EAAE,sBAAsB,EAC7B,GAAG,EAAE,oBAAoB;;;;;;;;;IA8BlC,eAAe,CACc,EAAE,EAAE,MAAM,EAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,oBAAoB;;;;;;;;;;IAmClC,SAAS,CACoB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;CAsBnC"}
1
+ {"version":3,"file":"admin-developer.controller.d.ts","sourceRoot":"","sources":["../../../src/web/admin/admin-developer.controller.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAInE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACtF,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7E,qBAGa,wBAAwB;IAEjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAFb,aAAa,EAAE,mBAAmB,EAClC,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,aAAa;IAI/C,cAAc,CAAa,CAAC,CAAC,EAAE,MAAM;;;;;;;;;;;IAW/B,eAAe,CACX,IAAI,EAAE,sBAAsB,EAC7B,GAAG,EAAE,oBAAoB;IA+BlC,eAAe,CACc,EAAE,EAAE,MAAM,EAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,EAAE,oBAAoB;;;;;;;;;;;IAkFlC,SAAS,CACoB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;CAsBnC"}
@@ -14,6 +14,7 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.AdminDeveloperController = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
+ const validation_1 = require("@overlordai/validation");
17
18
  const protocol_1 = require("@overlordai/protocol");
18
19
  const jwt_auth_guard_1 = require("../../auth/guards/jwt-auth.guard");
19
20
  const roles_guard_1 = require("../../auth/guards/roles.guard");
@@ -30,21 +31,23 @@ let AdminDeveloperController = class AdminDeveloperController {
30
31
  this.auditLogRepo = auditLogRepo;
31
32
  this.cryptoService = cryptoService;
32
33
  }
33
- listDevelopers() {
34
- const developers = this.developerRepo.findAll();
35
- // Strip sensitive fields
34
+ listDevelopers(q) {
35
+ const developers = q
36
+ ? this.developerRepo.findBySearch(q)
37
+ : this.developerRepo.findAll();
36
38
  return developers.map((d) => ({
37
- id: d.id,
38
- name: d.name,
39
- gitName: d.gitName,
40
- gitEmail: d.gitEmail,
41
- role: d.role,
42
- status: d.status,
39
+ ...developer_repository_1.DeveloperRepository.stripSecrets(d),
43
40
  totpEnabled: !!d.totpSecret,
44
- createdAt: d.createdAt,
45
41
  }));
46
42
  }
47
43
  async createDeveloper(body, req) {
44
+ if (!body.password || (0, validation_1.validatePassword)(body.password) !== null) {
45
+ throw new common_1.BadRequestException('Password must be 10–20 characters with a letter, digit, and special character');
46
+ }
47
+ const validRoles = [protocol_1.DeveloperRole.DEVELOPER, protocol_1.DeveloperRole.LEAD, protocol_1.DeveloperRole.ADMIN];
48
+ if (body.role && !validRoles.includes(body.role)) {
49
+ throw new common_1.BadRequestException(`role must be one of: ${validRoles.join(', ')}`);
50
+ }
48
51
  const passwordHash = await this.cryptoService.hashPassword(body.password);
49
52
  const developer = this.developerRepo.create({
50
53
  name: body.name,
@@ -59,27 +62,63 @@ let AdminDeveloperController = class AdminDeveloperController {
59
62
  resource: `developer:${developer.id}`,
60
63
  detail: `Created developer '${developer.name}' with role '${developer.role}'`,
61
64
  });
62
- return {
63
- id: developer.id,
64
- name: developer.name,
65
- gitName: developer.gitName,
66
- gitEmail: developer.gitEmail,
67
- role: developer.role,
68
- status: developer.status,
69
- createdAt: developer.createdAt,
70
- };
65
+ return developer_repository_1.DeveloperRepository.stripSecrets(developer);
71
66
  }
72
67
  updateDeveloper(id, body, req) {
73
68
  const developer = this.developerRepo.findById(id);
74
69
  if (!developer) {
75
70
  throw new common_1.NotFoundException(`Developer #${id} not found`);
76
71
  }
77
- const allowed = ['name', 'role', 'status', 'gitName', 'gitEmail'];
72
+ const allowed = ['name', 'role', 'status', 'gitName', 'gitEmail', 'platformUids'];
78
73
  const sanitized = {};
79
74
  for (const key of allowed) {
80
75
  if (key in body)
81
76
  sanitized[key] = body[key];
82
77
  }
78
+ // Validate role and status against allowed values
79
+ if ('role' in sanitized && !Object.values(protocol_1.DeveloperRole).includes(sanitized.role)) {
80
+ throw new common_1.BadRequestException(`Invalid role. Must be one of: ${Object.values(protocol_1.DeveloperRole).join(', ')}`);
81
+ }
82
+ if ('status' in sanitized && !Object.values(protocol_1.DeveloperStatus).includes(sanitized.status)) {
83
+ throw new common_1.BadRequestException(`Invalid status. Must be one of: ${Object.values(protocol_1.DeveloperStatus).join(', ')}`);
84
+ }
85
+ if ('platformUids' in sanitized) {
86
+ const uids = sanitized.platformUids;
87
+ if (typeof uids !== 'object' || uids === null || Array.isArray(uids)) {
88
+ throw new common_1.BadRequestException('platformUids must be an object');
89
+ }
90
+ for (const [key, val] of Object.entries(uids)) {
91
+ if (typeof val !== 'string') {
92
+ throw new common_1.BadRequestException(`platformUids.${key} must be a string`);
93
+ }
94
+ // Skip conflict check for empty values (unset operations)
95
+ if (!val)
96
+ continue;
97
+ // Check for conflicts — same platformUid must not be linked to another developer
98
+ const existing = this.developerRepo.findByPlatformUid(key, val);
99
+ if (existing && existing.id !== id) {
100
+ throw new common_1.ConflictException(`${key} account "${val}" is already linked to developer: ${existing.name}`);
101
+ }
102
+ }
103
+ }
104
+ // Prevent the last admin from demoting themselves or deactivating
105
+ if (id === req.user.sub) {
106
+ const needsAdminCheck = ('role' in sanitized && sanitized.role !== protocol_1.DeveloperRole.ADMIN) ||
107
+ ('status' in sanitized && sanitized.status !== protocol_1.DeveloperStatus.ACTIVE);
108
+ if (needsAdminCheck) {
109
+ const activeAdminCount = this.developerRepo.countActiveAdmins();
110
+ if (activeAdminCount <= 1) {
111
+ throw new common_1.BadRequestException('Cannot change: you are the last active admin');
112
+ }
113
+ }
114
+ }
115
+ // Merge platformUids with existing values instead of replacing
116
+ if ('platformUids' in sanitized) {
117
+ const existing = developer.platformUids ?? {};
118
+ const merged = { ...existing, ...sanitized.platformUids };
119
+ // Remove entries with empty string values (allows unsetting)
120
+ sanitized.platformUids = Object.fromEntries(Object.entries(merged).filter(([, v]) => v !== ''));
121
+ }
83
122
  this.developerRepo.update(id, sanitized);
84
123
  this.auditLogRepo.create({
85
124
  userId: req.user.sub,
@@ -89,14 +128,8 @@ let AdminDeveloperController = class AdminDeveloperController {
89
128
  });
90
129
  const updated = this.developerRepo.findById(id);
91
130
  return {
92
- id: updated.id,
93
- name: updated.name,
94
- gitName: updated.gitName,
95
- gitEmail: updated.gitEmail,
96
- role: updated.role,
97
- status: updated.status,
131
+ ...developer_repository_1.DeveloperRepository.stripSecrets(updated),
98
132
  totpEnabled: !!updated.totpSecret,
99
- createdAt: updated.createdAt,
100
133
  };
101
134
  }
102
135
  resetTotp(id, req) {
@@ -120,8 +153,9 @@ let AdminDeveloperController = class AdminDeveloperController {
120
153
  exports.AdminDeveloperController = AdminDeveloperController;
121
154
  __decorate([
122
155
  (0, common_1.Get)(),
156
+ __param(0, (0, common_1.Query)('q')),
123
157
  __metadata("design:type", Function),
124
- __metadata("design:paramtypes", []),
158
+ __metadata("design:paramtypes", [String]),
125
159
  __metadata("design:returntype", void 0)
126
160
  ], AdminDeveloperController.prototype, "listDevelopers", null);
127
161
  __decorate([