@overlordai/server 1.0.52 → 1.0.54

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 +56 -22
  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-BOXPalWI.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-griwga5q.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-I3k9sPON.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-0JE10nwo.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-C-OTbm1J.js → arrow-left-DklRsENx.js} +1 -1
  461. package/public/assets/{arrow-right-B5aaHrGs.js → arrow-right-MDrzFe3K.js} +1 -1
  462. package/public/assets/{bot-KMbKzBkt.js → bot-DPaziJPf.js} +1 -1
  463. package/public/assets/{chevron-right-CVPdQ-cP.js → chevron-right-CqyufMDW.js} +1 -1
  464. package/public/assets/{copy-Dd1cNNWz.js → copy-BUH7P2Hf.js} +1 -1
  465. package/public/assets/date-BdNtiQTP.js +1 -0
  466. package/public/assets/{external-link-F-d1_j4T.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-CT_RkMPI.js → key-CxvwwHnW.js} +1 -1
  470. package/public/assets/{loader-circle-BnJr5Xpn.js → loader-circle-DS5g1-Od.js} +1 -1
  471. package/public/assets/password-CHk45-jw.js +1 -0
  472. package/public/assets/{pencil-Srq1Z7Yh.js → pencil-B6spIBcw.js} +1 -1
  473. package/public/assets/{plus-Ry_MQV9O.js → plus-Bnd1Vz2Y.js} +1 -1
  474. package/public/assets/{rotate-ccw-B1ZO6xeO.js → rotate-ccw-CgcLAXNR.js} +1 -1
  475. package/public/assets/{scroll-text-CP6Z7Xff.js → scroll-text-CecZ0Fk5.js} +1 -1
  476. package/public/assets/{settings-Ac7uhvR0.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-DWv3OoER.js → trash-2-A2FsT1yG.js} +1 -1
  482. package/public/assets/useFetch-vGZMAvGi.js +1 -0
  483. package/public/assets/{users-BsM5ZXj8.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-DypSjrzB.js +0 -1
  503. package/public/assets/AdminPage-BY1ub8Ur.js +0 -1
  504. package/public/assets/ApiReferencePage-X0c9Bj31.js +0 -1
  505. package/public/assets/AuditLogPage-B0bBeD2B.js +0 -6
  506. package/public/assets/BotManage-D7UIzmUX.js +0 -6
  507. package/public/assets/CliReferencePage-DAqUe3dC.js +0 -8
  508. package/public/assets/DeveloperManage-Df4qgJ4d.js +0 -16
  509. package/public/assets/EditProjectPage-B05CUiFx.js +0 -2
  510. package/public/assets/HomePage-YM1Wcq5V.js +0 -1
  511. package/public/assets/LandingPage-Dn64_5F4.js +0 -36
  512. package/public/assets/LoginPage-CcBF1jm-.js +0 -1
  513. package/public/assets/MachineDetailPage-BHzHO-jG.js +0 -1
  514. package/public/assets/MachineListPage-sTx1mDtP.js +0 -6
  515. package/public/assets/PipelineEditorPage-CZQJn5Qd.js +0 -3
  516. package/public/assets/ProfilePage-CM-HnNqC.js +0 -1
  517. package/public/assets/ProjectDetailPage-d59hpM1f.js +0 -7
  518. package/public/assets/ProjectListPage-j4xLknRG.js +0 -6
  519. package/public/assets/QuickAuth-vbGZYKLu.js +0 -1
  520. package/public/assets/Select-CmUwVfWJ.js +0 -6
  521. package/public/assets/SettingsPage-CDTheJqk.js +0 -6
  522. package/public/assets/SkillPage-ClOtPiNe.js +0 -1
  523. package/public/assets/TaskDetailPage-CG8zmgwV.js +0 -44
  524. package/public/assets/TaskListPage-BUjNGBKm.js +0 -1
  525. package/public/assets/TaskStatusBadge-C8TEMiVe.js +0 -1
  526. package/public/assets/TokenManage-U3YbhV_d.js +0 -1
  527. package/public/assets/TotpSetupPage-BlRM2OEF.js +0 -9
  528. package/public/assets/WorkerSetupGuidePage-BUTz9NXE.js +0 -16
  529. package/public/assets/index-CQojj7Zu.css +0 -1
  530. package/public/assets/index-DJxZmj6O.js +0 -212
  531. package/public/assets/protocol-C5uQmiiB.js +0 -1
  532. package/public/assets/task.store-DSX--5cK.js +0 -1
  533. /package/public/assets/{TaskDetailPage-Beg8tuEN.css → task-constants-Beg8tuEN.css} +0 -0
@@ -42,16 +42,6 @@ let InteractionService = InteractionService_1 = class InteractionService {
42
42
  // directly to the web client through the PTY channel.
43
43
  return 'granted';
44
44
  }
45
- /**
46
- * Release a takeover by clearing the writer role for a task.
47
- */
48
- async releaseTakeover(taskId) {
49
- const currentWriter = this.ptyRelayService.getWriterConnectionId(taskId);
50
- if (currentWriter) {
51
- // Force takeover with no new writer effectively releases the writer
52
- this.logger.log(`Releasing takeover for task ${taskId}`);
53
- }
54
- }
55
45
  /**
56
46
  * Write stdin to a PTY session via the relay service.
57
47
  * Enforces writer check and rate limiting through PtyRelayService.
@@ -1 +1 @@
1
- {"version":3,"file":"interaction.service.js","sourceRoot":"","sources":["../../src/web/interaction.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,uDAAmD;AACnD,uEAAkE;AAClE,uFAAkF;AAG3E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAIV;IACA;IACA;IALF,MAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAE9D,YACmB,WAAwB,EACxB,eAAgC,EAChC,uBAAgD;QAFhD,gBAAW,GAAX,WAAW,CAAa;QACxB,oBAAe,GAAf,eAAe,CAAiB;QAChC,4BAAuB,GAAvB,uBAAuB,CAAyB;IAChE,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,SAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxD,MAAM,EACN,SAAS,EACT,SAAS,CACV,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oCAAoC,MAAM,aAAa,SAAS,EAAE,CACnE,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,wEAAwE;QACxE,sEAAsE;QACtE,sDAAsD;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,MAAc;QAClC,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACzE,IAAI,aAAa,EAAE,CAAC;YAClB,oEAAoE;YACpE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,UAAU,CACR,MAAc,EACd,IAAY,EACZ,YAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CACnD,MAAM,EACN,IAAI,EACJ,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,mCAAmC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc,EAAE,GAAqB;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAc;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,MAAc,EAAE,eAAuB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAC/C,MAAM,EACN,eAAe,CAChB,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,2BAA2B,MAAM,kBAAkB,eAAe,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA1GY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAKqB,0BAAW;QACP,mCAAe;QACP,mDAAuB;GANxD,kBAAkB,CA0G9B"}
1
+ {"version":3,"file":"interaction.service.js","sourceRoot":"","sources":["../../src/web/interaction.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AAEpD,uDAAmD;AACnD,uEAAkE;AAClE,uFAAkF;AAG3E,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;IAIV;IACA;IACA;IALF,MAAM,GAAG,IAAI,eAAM,CAAC,oBAAkB,CAAC,IAAI,CAAC,CAAC;IAE9D,YACmB,WAAwB,EACxB,eAAgC,EAChC,uBAAgD;QAFhD,gBAAW,GAAX,WAAW,CAAa;QACxB,oBAAe,GAAf,eAAe,CAAiB;QAChC,4BAAuB,GAAvB,uBAAuB,CAAyB;IAChE,CAAC;IAEJ;;;;OAIG;IACH,KAAK,CAAC,eAAe,CACnB,MAAc,EACd,SAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACxD,MAAM,EACN,SAAS,EACT,SAAS,CACV,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,oCAAoC,MAAM,aAAa,SAAS,EAAE,CACnE,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,8DAA8D;QAC9D,wEAAwE;QACxE,sEAAsE;QACtE,sDAAsD;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;OAGG;IACH,UAAU,CACR,MAAc,EACd,IAAY,EACZ,YAAoB;QAEpB,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CACnD,MAAM,EACN,IAAI,EACJ,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,mCAAmC;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACpE,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBAC9B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;YACjD,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QACvD,CAAC;QAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAc,EAAE,GAAqB;QACjD,OAAO,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,MAAc;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,MAAc,EAAE,eAAuB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,aAAa,CAC/C,MAAM,EACN,eAAe,CAChB,CAAC;QACF,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,GAAG,CACb,2BAA2B,MAAM,kBAAkB,eAAe,EAAE,CACrE,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAA;AA/FY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAKqB,0BAAW;QACP,mCAAe;QACP,mDAAuB;GANxD,kBAAkB,CA+F9B"}
@@ -1,13 +1,7 @@
1
1
  import { MachineStatus } from '@overlordai/protocol';
2
2
  import { MachineRepository } from '../database/repositories/machine.repository';
3
3
  import { TaskRepository } from '../database/repositories/task.repository';
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 MachineController {
12
6
  private readonly machineRepo;
13
7
  private readonly taskRepo;
@@ -118,5 +112,4 @@ export declare class MachineController {
118
112
  decommissionedBy: number | null;
119
113
  };
120
114
  }
121
- export {};
122
115
  //# sourceMappingURL=machine.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"machine.controller.d.ts","sourceRoot":"","sources":["../../src/web/machine.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAKpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAE1E,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAOD,qBAEa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,cAAc;IAI3C,YAAY,CAAkB,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IAU7C,UAAU,CAAc,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IASlC,eAAe,CAAc,EAAE,EAAE,MAAM,EAAS,GAAG,EAAE,oBAAoB;IAczE,YAAY,CAAc,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IAcpC,cAAc,CAAc,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;CAWvC"}
1
+ {"version":3,"file":"machine.controller.d.ts","sourceRoot":"","sources":["../../src/web/machine.controller.ts"],"names":[],"mappings":"AAWA,OAAO,EAAiB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC1E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,qBAEa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADR,WAAW,EAAE,iBAAiB,EAC9B,QAAQ,EAAE,cAAc;IAI3C,YAAY,CAAkB,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IAU7C,UAAU,CAAc,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IASlC,eAAe,CAAc,EAAE,EAAE,MAAM,EAAS,GAAG,EAAE,oBAAoB;IAczE,YAAY,CAAc,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;IAcpC,cAAc,CAAc,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;CAWvC"}
@@ -20,10 +20,7 @@ const roles_guard_1 = require("../auth/guards/roles.guard");
20
20
  const roles_decorator_1 = require("../auth/decorators/roles.decorator");
21
21
  const machine_repository_1 = require("../database/repositories/machine.repository");
22
22
  const task_repository_1 = require("../database/repositories/task.repository");
23
- function stripMachineSecrets(machine) {
24
- const { recoverySecretHash, ...safe } = machine;
25
- return safe;
26
- }
23
+ const machine_utils_1 = require("../common/machine-utils");
27
24
  let MachineController = class MachineController {
28
25
  machineRepo;
29
26
  taskRepo;
@@ -35,16 +32,16 @@ let MachineController = class MachineController {
35
32
  // findAll() excludes decommissioned by default
36
33
  const machines = this.machineRepo.findAll();
37
34
  if (status) {
38
- return machines.filter((m) => m.status === status).map(stripMachineSecrets);
35
+ return machines.filter((m) => m.status === status).map(machine_utils_1.stripMachineSecrets);
39
36
  }
40
- return machines.map(stripMachineSecrets);
37
+ return machines.map(machine_utils_1.stripMachineSecrets);
41
38
  }
42
39
  getMachine(id) {
43
40
  const machine = this.machineRepo.findById(id);
44
41
  if (!machine) {
45
42
  throw new common_1.NotFoundException(`Machine '${id}' not found`);
46
43
  }
47
- return stripMachineSecrets(machine);
44
+ return (0, machine_utils_1.stripMachineSecrets)(machine);
48
45
  }
49
46
  getMachineTasks(id, req) {
50
47
  const machine = this.machineRepo.findById(id);
@@ -66,7 +63,7 @@ let MachineController = class MachineController {
66
63
  throw new common_1.BadRequestException('Cannot drain a decommissioned machine');
67
64
  }
68
65
  this.machineRepo.updateStatus(id, protocol_1.MachineStatus.DRAINING);
69
- return stripMachineSecrets(this.machineRepo.findById(id));
66
+ return (0, machine_utils_1.stripMachineSecrets)(this.machineRepo.findById(id));
70
67
  }
71
68
  undrainMachine(id) {
72
69
  const machine = this.machineRepo.findById(id);
@@ -77,7 +74,7 @@ let MachineController = class MachineController {
77
74
  throw new common_1.BadRequestException('Cannot undrain a decommissioned machine');
78
75
  }
79
76
  this.machineRepo.updateStatus(id, protocol_1.MachineStatus.ONLINE);
80
- return stripMachineSecrets(this.machineRepo.findById(id));
77
+ return (0, machine_utils_1.stripMachineSecrets)(this.machineRepo.findById(id));
81
78
  }
82
79
  };
83
80
  exports.MachineController = MachineController;
@@ -1 +1 @@
1
- {"version":3,"file":"machine.controller.js","sourceRoot":"","sources":["../../src/web/machine.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machine.controller.js","sourceRoot":"","sources":["../../src/web/machine.controller.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,5 @@
1
1
  import { NotificationRepository } from '../database/repositories/notification.repository';
2
- interface AuthenticatedRequest {
3
- user: {
4
- sub: number;
5
- name: string;
6
- role: string;
7
- };
8
- }
2
+ import type { AuthenticatedRequest } from '../auth/authenticated-request';
9
3
  export declare class NotificationController {
10
4
  private readonly notificationRepo;
11
5
  constructor(notificationRepo: NotificationRepository);
@@ -18,5 +12,4 @@ export declare class NotificationController {
18
12
  count: number;
19
13
  };
20
14
  }
21
- export {};
22
15
  //# sourceMappingURL=notification.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.controller.d.ts","sourceRoot":"","sources":["../../src/web/notification.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAE1F,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,qBAEa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,sBAAsB;IAI3D,iBAAiB,CACR,GAAG,EAAE,oBAAoB,EAChB,KAAK,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM;IAWlC,UAAU,CACmB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;IAUlC,WAAW,CAAQ,GAAG,EAAE,oBAAoB;;;;CAI7C"}
1
+ {"version":3,"file":"notification.controller.d.ts","sourceRoot":"","sources":["../../src/web/notification.controller.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAG1E,qBAEa,sBAAsB;IAE/B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,sBAAsB;IAI3D,iBAAiB,CACR,GAAG,EAAE,oBAAoB,EAChB,KAAK,CAAC,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM;IAWlC,UAAU,CACmB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;IAUlC,WAAW,CAAQ,GAAG,EAAE,oBAAoB;;;;CAI7C"}
@@ -16,19 +16,20 @@ exports.NotificationController = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const jwt_auth_guard_1 = require("../auth/guards/jwt-auth.guard");
18
18
  const notification_repository_1 = require("../database/repositories/notification.repository");
19
+ const pagination_1 = require("../common/pagination");
19
20
  let NotificationController = class NotificationController {
20
21
  notificationRepo;
21
22
  constructor(notificationRepo) {
22
23
  this.notificationRepo = notificationRepo;
23
24
  }
24
25
  listNotifications(req, limit, cursor) {
25
- const parsedLimit = Math.min(Math.max(limit ? parseInt(limit, 10) || 20 : 20, 1), 100);
26
+ const parsedLimit = (0, pagination_1.clampLimit)(limit);
26
27
  return this.notificationRepo.findByDeveloper(req.user.sub, parsedLimit, cursor || undefined);
27
28
  }
28
29
  markAsRead(id, req) {
29
30
  const updated = this.notificationRepo.markAsRead(id, req.user.sub);
30
31
  if (!updated) {
31
- throw new common_1.NotFoundException(`Notification #${id} not found`);
32
+ throw new common_1.NotFoundException(`Notification #${id} not found or not yours`);
32
33
  }
33
34
  return { success: true };
34
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"notification.controller.js","sourceRoot":"","sources":["../../src/web/notification.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,kEAA6D;AAC7D,8FAA0F;AAQnF,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEd;IADnB,YACmB,gBAAwC;QAAxC,qBAAgB,GAAhB,gBAAgB,CAAwB;IACxD,CAAC;IAGJ,iBAAiB,CACR,GAAyB,EAChB,KAAc,EACb,MAAe;QAEhC,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACvF,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,EACZ,WAAW,EACX,MAAM,IAAI,SAAS,CACpB,CAAC;IACJ,CAAC;IAGD,UAAU,CACmB,EAAU,EAC9B,GAAyB;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAGD,WAAW,CAAQ,GAAyB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;CACF,CAAA;AApCY,wDAAsB;AAMjC;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;+DAQjB;AAGD;IADC,IAAA,aAAI,EAAC,UAAU,CAAC;IAEd,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IACzB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;wDAOP;AAGD;IADC,IAAA,aAAI,EAAC,UAAU,CAAC;IACJ,WAAA,IAAA,YAAG,GAAE,CAAA;;;;yDAGjB;iCAnCU,sBAAsB;IAFlC,IAAA,mBAAU,EAAC,uBAAuB,CAAC;IACnC,IAAA,kBAAS,EAAC,6BAAY,CAAC;qCAGe,gDAAsB;GAFhD,sBAAsB,CAoClC"}
1
+ {"version":3,"file":"notification.controller.js","sourceRoot":"","sources":["../../src/web/notification.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,kEAA6D;AAC7D,8FAA0F;AAE1F,qDAAkD;AAI3C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAEd;IADnB,YACmB,gBAAwC;QAAxC,qBAAgB,GAAhB,gBAAgB,CAAwB;IACxD,CAAC;IAGJ,iBAAiB,CACR,GAAyB,EAChB,KAAc,EACb,MAAe;QAEhC,MAAM,WAAW,GAAG,IAAA,uBAAU,EAAC,KAAK,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAC1C,GAAG,CAAC,IAAI,CAAC,GAAG,EACZ,WAAW,EACX,MAAM,IAAI,SAAS,CACpB,CAAC;IACJ,CAAC;IAGD,UAAU,CACmB,EAAU,EAC9B,GAAyB;QAEhC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,0BAAiB,CAAC,iBAAiB,EAAE,yBAAyB,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAGD,WAAW,CAAQ,GAAyB;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAClC,CAAC;CACF,CAAA;AApCY,wDAAsB;AAMjC;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,cAAK,EAAC,OAAO,CAAC,CAAA;IACd,WAAA,IAAA,cAAK,EAAC,QAAQ,CAAC,CAAA;;;;+DAQjB;AAGD;IADC,IAAA,aAAI,EAAC,UAAU,CAAC;IAEd,WAAA,IAAA,cAAK,EAAC,IAAI,EAAE,qBAAY,CAAC,CAAA;IACzB,WAAA,IAAA,YAAG,GAAE,CAAA;;;;wDAOP;AAGD;IADC,IAAA,aAAI,EAAC,UAAU,CAAC;IACJ,WAAA,IAAA,YAAG,GAAE,CAAA;;;;yDAGjB;iCAnCU,sBAAsB;IAFlC,IAAA,mBAAU,EAAC,uBAAuB,CAAC;IACnC,IAAA,kBAAS,EAAC,6BAAY,CAAC;qCAGe,gDAAsB;GAFhD,sBAAsB,CAoClC"}
@@ -1,35 +1,38 @@
1
1
  import { DeveloperRepository } from '../database/repositories/developer.repository';
2
2
  import { DeveloperTokenRepository } from '../database/repositories/developer-token.repository';
3
+ import { AuditLogRepository } from '../database/repositories/audit-log.repository';
3
4
  import { CryptoService } from '../common/crypto.service';
4
5
  import { RedisService } from '../redis/redis.service';
5
- interface AuthenticatedRequest {
6
- user: {
7
- sub: number;
8
- name: string;
9
- role: string;
10
- };
11
- }
6
+ import type { AuthenticatedRequest } from '../auth/authenticated-request';
12
7
  export declare class ProfileController {
13
8
  private readonly developerRepo;
14
9
  private readonly developerTokenRepo;
10
+ private readonly auditLogRepo;
15
11
  private readonly cryptoService;
16
12
  private readonly redis;
17
- constructor(developerRepo: DeveloperRepository, developerTokenRepo: DeveloperTokenRepository, cryptoService: CryptoService, redis: RedisService);
13
+ constructor(developerRepo: DeveloperRepository, developerTokenRepo: DeveloperTokenRepository, auditLogRepo: AuditLogRepository, cryptoService: CryptoService, redis: RedisService);
18
14
  getProfile(req: AuthenticatedRequest): {
19
15
  id: number;
20
16
  name: string;
21
17
  gitName: string;
22
18
  gitEmail: string;
23
19
  role: import("@overlordai/protocol").DeveloperRole;
24
- status: string;
20
+ status: import("@overlordai/protocol").DeveloperStatus;
25
21
  totpEnabled: boolean;
22
+ platformUids: Record<string, string>;
26
23
  createdAt: string;
27
24
  };
28
25
  updateProfile(req: AuthenticatedRequest, body: {
29
26
  gitName?: string;
30
27
  gitEmail?: string;
28
+ }): {
29
+ success: boolean;
30
+ };
31
+ bindPlatform(req: AuthenticatedRequest, body: {
32
+ token: string;
31
33
  }): Promise<{
32
34
  success: boolean;
35
+ platform: string;
33
36
  }>;
34
37
  updatePassword(req: AuthenticatedRequest, body: {
35
38
  currentPassword: string;
@@ -45,6 +48,13 @@ export declare class ProfileController {
45
48
  }): Promise<{
46
49
  success: boolean;
47
50
  }>;
51
+ regenerateTotp(req: AuthenticatedRequest, body: {
52
+ code: string;
53
+ }): {
54
+ success: boolean;
55
+ secret: string;
56
+ otpauthUri: string;
57
+ };
48
58
  listTokens(req: AuthenticatedRequest): {
49
59
  id: number;
50
60
  label: string;
@@ -66,5 +76,4 @@ export declare class ProfileController {
66
76
  success: boolean;
67
77
  };
68
78
  }
69
- export {};
70
79
  //# sourceMappingURL=profile.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"profile.controller.d.ts","sourceRoot":"","sources":["../../src/web/profile.controller.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,IAAI,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD;AAED,qBAEa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAHL,aAAa,EAAE,mBAAmB,EAClC,kBAAkB,EAAE,wBAAwB,EAC5C,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,YAAY;IAItC,UAAU,CAAQ,GAAG,EAAE,oBAAoB;;;;;;;;;;IAmBrC,aAAa,CACV,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;;;IAejD,cAAc,CACX,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;;;IA+B1D,SAAS,CAAQ,GAAG,EAAE,oBAAoB;;;IAc1C,UAAU,CACP,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;IAsBhC,UAAU,CAAQ,GAAG,EAAE,oBAAoB;;;;;;;;IAcrC,WAAW,CACR,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;IAmCrD,WAAW,CACkB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;CAUnC"}
1
+ {"version":3,"file":"profile.controller.d.ts","sourceRoot":"","sources":["../../src/web/profile.controller.ts"],"names":[],"mappings":"AAiBA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,qDAAqD,CAAC;AAC/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AACnF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,qBAEa,iBAAiB;IAE1B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAJL,aAAa,EAAE,mBAAmB,EAClC,kBAAkB,EAAE,wBAAwB,EAC5C,YAAY,EAAE,kBAAkB,EAChC,aAAa,EAAE,aAAa,EAC5B,KAAK,EAAE,YAAY;IAItC,UAAU,CAAQ,GAAG,EAAE,oBAAoB;;;;;;;;;;;IAoB3C,aAAa,CACJ,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;;;IAiBjD,YAAY,CACT,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE;;;;IA2D3B,cAAc,CACX,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE;;;IAsC1D,SAAS,CAAQ,GAAG,EAAE,oBAAoB;;;IAc1C,UAAU,CACP,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;IAuBhC,cAAc,CACL,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;;;;;IA0BhC,UAAU,CAAQ,GAAG,EAAE,oBAAoB;;;;;;;;IAOrC,WAAW,CACR,GAAG,EAAE,oBAAoB,EACxB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;IAmCrD,WAAW,CACkB,EAAE,EAAE,MAAM,EAC9B,GAAG,EAAE,oBAAoB;;;CAUnC"}
@@ -52,17 +52,21 @@ const jwt_auth_guard_1 = require("../auth/guards/jwt-auth.guard");
52
52
  const allow_totp_setup_decorator_1 = require("../auth/decorators/allow-totp-setup.decorator");
53
53
  const developer_repository_1 = require("../database/repositories/developer.repository");
54
54
  const developer_token_repository_1 = require("../database/repositories/developer-token.repository");
55
+ const audit_log_repository_1 = require("../database/repositories/audit-log.repository");
55
56
  const crypto_service_1 = require("../common/crypto.service");
57
+ const protocol_1 = require("@overlordai/protocol");
56
58
  const rate_limit_guard_1 = require("../common/rate-limit.guard");
57
59
  const redis_service_1 = require("../redis/redis.service");
58
60
  let ProfileController = class ProfileController {
59
61
  developerRepo;
60
62
  developerTokenRepo;
63
+ auditLogRepo;
61
64
  cryptoService;
62
65
  redis;
63
- constructor(developerRepo, developerTokenRepo, cryptoService, redis) {
66
+ constructor(developerRepo, developerTokenRepo, auditLogRepo, cryptoService, redis) {
64
67
  this.developerRepo = developerRepo;
65
68
  this.developerTokenRepo = developerTokenRepo;
69
+ this.auditLogRepo = auditLogRepo;
66
70
  this.cryptoService = cryptoService;
67
71
  this.redis = redis;
68
72
  }
@@ -80,10 +84,11 @@ let ProfileController = class ProfileController {
80
84
  role: developer.role,
81
85
  status: developer.status,
82
86
  totpEnabled: !!developer.totpSecret,
87
+ platformUids: developer.platformUids,
83
88
  createdAt: developer.createdAt,
84
89
  };
85
90
  }
86
- async updateProfile(req, body) {
91
+ updateProfile(req, body) {
87
92
  const data = {};
88
93
  if (body.gitName !== undefined)
89
94
  data.gitName = body.gitName;
@@ -95,6 +100,52 @@ let ProfileController = class ProfileController {
95
100
  this.developerRepo.update(req.user.sub, data);
96
101
  return { success: true };
97
102
  }
103
+ async bindPlatform(req, body) {
104
+ if (!body.token) {
105
+ throw new common_1.BadRequestException('Token is required');
106
+ }
107
+ // Consume token atomically
108
+ const raw = await this.redis.getdel(`bind_token:${body.token}`);
109
+ if (!raw) {
110
+ throw new common_1.BadRequestException('Invalid or expired bind token');
111
+ }
112
+ let platform;
113
+ let platformUid;
114
+ try {
115
+ const parsed = JSON.parse(raw);
116
+ platform = parsed.platform;
117
+ platformUid = parsed.platformUid;
118
+ }
119
+ catch {
120
+ throw new common_1.BadRequestException('Invalid bind token data');
121
+ }
122
+ if (!platform || typeof platform !== 'string' || !platformUid || typeof platformUid !== 'string') {
123
+ throw new common_1.BadRequestException('Invalid bind token data');
124
+ }
125
+ const validPlatforms = Object.values(protocol_1.Platform);
126
+ if (!validPlatforms.includes(platform)) {
127
+ throw new common_1.BadRequestException('Invalid platform in bind token');
128
+ }
129
+ // Check if this platformUid is already linked to another developer
130
+ const existing = this.developerRepo.findByPlatformUid(platform, platformUid);
131
+ if (existing && existing.id !== req.user.sub) {
132
+ throw new common_1.ConflictException(`This ${platform} account is already linked to developer: ${existing.name}`);
133
+ }
134
+ // Merge with existing platformUids
135
+ const developer = this.developerRepo.findById(req.user.sub);
136
+ if (!developer) {
137
+ throw new common_1.NotFoundException('Developer not found');
138
+ }
139
+ const updatedUids = { ...developer.platformUids, [platform]: platformUid };
140
+ this.developerRepo.update(req.user.sub, { platformUids: updatedUids });
141
+ this.auditLogRepo.create({
142
+ userId: req.user.sub,
143
+ action: 'platform_bind',
144
+ resource: `developer:${req.user.sub}`,
145
+ detail: `Linked ${platform} account`,
146
+ });
147
+ return { success: true, platform };
148
+ }
98
149
  async updatePassword(req, body) {
99
150
  const developer = this.developerRepo.findById(req.user.sub);
100
151
  if (!developer) {
@@ -112,6 +163,11 @@ let ProfileController = class ProfileController {
112
163
  }
113
164
  const newHash = await this.cryptoService.hashPassword(body.newPassword);
114
165
  this.developerRepo.update(req.user.sub, { passwordHash: newHash });
166
+ this.auditLogRepo.create({
167
+ userId: req.user.sub,
168
+ action: 'password_changed',
169
+ resource: `developer:${req.user.sub}`,
170
+ });
115
171
  return { success: true };
116
172
  }
117
173
  async setupTotp(req) {
@@ -135,17 +191,27 @@ let ProfileController = class ProfileController {
135
191
  await this.redis.del(`totp_setup:${req.user.sub}`);
136
192
  return { success: true };
137
193
  }
194
+ regenerateTotp(req, body) {
195
+ const developer = this.developerRepo.findById(req.user.sub);
196
+ if (!developer) {
197
+ throw new common_1.NotFoundException('Developer not found');
198
+ }
199
+ if (!developer.totpSecret) {
200
+ throw new common_1.BadRequestException('TOTP is not enabled');
201
+ }
202
+ const valid = this.cryptoService.verifyTotp(developer.totpSecret, body.code);
203
+ if (!valid) {
204
+ throw new common_1.BadRequestException('Invalid TOTP code');
205
+ }
206
+ const newSecret = this.cryptoService.generateTotpSecret();
207
+ this.developerRepo.update(req.user.sub, { totpSecret: newSecret });
208
+ const issuer = 'Overlord';
209
+ const accountName = developer.name;
210
+ const otpauthUri = `otpauth://totp/${issuer}:${encodeURIComponent(accountName)}?secret=${newSecret}&issuer=${issuer}`;
211
+ return { success: true, secret: newSecret, otpauthUri };
212
+ }
138
213
  listTokens(req) {
139
- const tokens = this.developerTokenRepo.findByDeveloper(req.user.sub);
140
- // Strip token_hash from response
141
- return tokens.map((t) => ({
142
- id: t.id,
143
- label: t.label,
144
- status: t.status,
145
- lastUsedAt: t.lastUsedAt,
146
- expiresAt: t.expiresAt,
147
- createdAt: t.createdAt,
148
- }));
214
+ return this.developerTokenRepo.findByDeveloper(req.user.sub).map(({ tokenHash, developerId, revokedAt, ...rest }) => rest);
149
215
  }
150
216
  async createToken(req, body) {
151
217
  // Validate expiresAt is a parseable date if provided
@@ -199,10 +265,21 @@ __decorate([
199
265
  __param(1, (0, common_1.Body)()),
200
266
  __metadata("design:type", Function),
201
267
  __metadata("design:paramtypes", [Object, Object]),
202
- __metadata("design:returntype", Promise)
268
+ __metadata("design:returntype", void 0)
203
269
  ], ProfileController.prototype, "updateProfile", null);
270
+ __decorate([
271
+ (0, common_1.Post)('bind-platform'),
272
+ (0, allow_totp_setup_decorator_1.AllowTotpSetup)(),
273
+ (0, rate_limit_guard_1.RateLimit)({ limit: 10, windowMs: 300_000 }),
274
+ __param(0, (0, common_1.Req)()),
275
+ __param(1, (0, common_1.Body)()),
276
+ __metadata("design:type", Function),
277
+ __metadata("design:paramtypes", [Object, Object]),
278
+ __metadata("design:returntype", Promise)
279
+ ], ProfileController.prototype, "bindPlatform", null);
204
280
  __decorate([
205
281
  (0, common_1.Put)('password'),
282
+ (0, rate_limit_guard_1.RateLimit)({ limit: 5, windowMs: 300_000 }),
206
283
  __param(0, (0, common_1.Req)()),
207
284
  __param(1, (0, common_1.Body)()),
208
285
  __metadata("design:type", Function),
@@ -228,6 +305,15 @@ __decorate([
228
305
  __metadata("design:paramtypes", [Object, Object]),
229
306
  __metadata("design:returntype", Promise)
230
307
  ], ProfileController.prototype, "verifyTotp", null);
308
+ __decorate([
309
+ (0, common_1.Post)('totp/regenerate'),
310
+ (0, rate_limit_guard_1.RateLimit)({ limit: 3, windowMs: 300_000 }),
311
+ __param(0, (0, common_1.Req)()),
312
+ __param(1, (0, common_1.Body)()),
313
+ __metadata("design:type", Function),
314
+ __metadata("design:paramtypes", [Object, Object]),
315
+ __metadata("design:returntype", void 0)
316
+ ], ProfileController.prototype, "regenerateTotp", null);
231
317
  __decorate([
232
318
  (0, common_1.Get)('tokens'),
233
319
  __param(0, (0, common_1.Req)()),
@@ -256,6 +342,7 @@ exports.ProfileController = ProfileController = __decorate([
256
342
  (0, common_1.UseGuards)(jwt_auth_guard_1.JwtAuthGuard),
257
343
  __metadata("design:paramtypes", [developer_repository_1.DeveloperRepository,
258
344
  developer_token_repository_1.DeveloperTokenRepository,
345
+ audit_log_repository_1.AuditLogRepository,
259
346
  crypto_service_1.CryptoService,
260
347
  redis_service_1.RedisService])
261
348
  ], ProfileController);
@@ -1 +1 @@
1
- {"version":3,"file":"profile.controller.js","sourceRoot":"","sources":["../../src/web/profile.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"profile.controller.js","sourceRoot":"","sources":["../../src/web/profile.controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import { ProjectRepository } from '../database/repositories/project.repository';
2
+ import { ProjectMemberRepository } from '../database/repositories/project-member.repository';
3
+ import { AuditLogRepository } from '../database/repositories/audit-log.repository';
4
+ export declare class ProjectMemberService {
5
+ private readonly projectRepo;
6
+ private readonly projectMemberRepo;
7
+ private readonly auditLogRepo;
8
+ constructor(projectRepo: ProjectRepository, projectMemberRepo: ProjectMemberRepository, auditLogRepo: AuditLogRepository);
9
+ private requireProject;
10
+ listMembers(projectKey: string): import("../database/repositories/project-member.repository").ProjectMember[];
11
+ addMember(projectKey: string, developerId: number, role: string | undefined, actorId: number): import("../database/repositories/project-member.repository").ProjectMember;
12
+ removeMember(projectKey: string, developerId: string, actorId: number): {
13
+ success: boolean;
14
+ };
15
+ }
16
+ //# sourceMappingURL=project-member.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-member.service.d.ts","sourceRoot":"","sources":["../../src/web/project-member.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAE,MAAM,oDAAoD,CAAC;AAC7F,OAAO,EAAE,kBAAkB,EAAE,MAAM,+CAA+C,CAAC;AAEnF,qBACa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAFZ,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,uBAAuB,EAC1C,YAAY,EAAE,kBAAkB;IAGnD,OAAO,CAAC,cAAc;IAMtB,WAAW,CAAC,UAAU,EAAE,MAAM;IAK9B,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM;IAiC5F,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;CAsBtE"}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ProjectMemberService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const protocol_1 = require("@overlordai/protocol");
15
+ const project_repository_1 = require("../database/repositories/project.repository");
16
+ const project_member_repository_1 = require("../database/repositories/project-member.repository");
17
+ const audit_log_repository_1 = require("../database/repositories/audit-log.repository");
18
+ let ProjectMemberService = class ProjectMemberService {
19
+ projectRepo;
20
+ projectMemberRepo;
21
+ auditLogRepo;
22
+ constructor(projectRepo, projectMemberRepo, auditLogRepo) {
23
+ this.projectRepo = projectRepo;
24
+ this.projectMemberRepo = projectMemberRepo;
25
+ this.auditLogRepo = auditLogRepo;
26
+ }
27
+ requireProject(key) {
28
+ const project = this.projectRepo.findByKey(key);
29
+ if (!project)
30
+ throw new common_1.NotFoundException(`Project '${key}' not found`);
31
+ return project;
32
+ }
33
+ listMembers(projectKey) {
34
+ this.requireProject(projectKey);
35
+ return this.projectMemberRepo.findByProject(projectKey);
36
+ }
37
+ addMember(projectKey, developerId, role, actorId) {
38
+ if (typeof developerId !== 'number' || !Number.isInteger(developerId) || developerId < 1) {
39
+ throw new common_1.BadRequestException('developerId must be a positive integer');
40
+ }
41
+ const validRoles = [protocol_1.ProjectRole.MEMBER, protocol_1.ProjectRole.MAINTAINER];
42
+ const resolvedRole = role ?? protocol_1.ProjectRole.MEMBER;
43
+ if (!validRoles.includes(resolvedRole)) {
44
+ throw new common_1.BadRequestException(`role must be one of: ${validRoles.join(', ')}`);
45
+ }
46
+ this.requireProject(projectKey);
47
+ const existing = this.projectMemberRepo.findByProjectAndDeveloper(projectKey, developerId);
48
+ if (existing) {
49
+ throw new common_1.ConflictException('Developer is already a member of this project');
50
+ }
51
+ const member = this.projectMemberRepo.create({
52
+ projectKey,
53
+ developerId,
54
+ role: resolvedRole,
55
+ });
56
+ this.auditLogRepo.create({
57
+ userId: actorId,
58
+ action: 'project_member_add',
59
+ resource: `project:${projectKey}`,
60
+ detail: `Added developer #${developerId} as ${resolvedRole}`,
61
+ });
62
+ return member;
63
+ }
64
+ removeMember(projectKey, developerId, actorId) {
65
+ this.requireProject(projectKey);
66
+ const devId = parseInt(developerId, 10);
67
+ if (!developerId || isNaN(devId) || devId < 1) {
68
+ throw new common_1.BadRequestException('developerId query parameter is required and must be a number');
69
+ }
70
+ const deleted = this.projectMemberRepo.delete(projectKey, devId);
71
+ if (!deleted) {
72
+ throw new common_1.NotFoundException('Member not found');
73
+ }
74
+ this.auditLogRepo.create({
75
+ userId: actorId,
76
+ action: 'project_member_remove',
77
+ resource: `project:${projectKey}`,
78
+ detail: `Removed developer #${devId} from project`,
79
+ });
80
+ return { success: true };
81
+ }
82
+ };
83
+ exports.ProjectMemberService = ProjectMemberService;
84
+ exports.ProjectMemberService = ProjectMemberService = __decorate([
85
+ (0, common_1.Injectable)(),
86
+ __metadata("design:paramtypes", [project_repository_1.ProjectRepository,
87
+ project_member_repository_1.ProjectMemberRepository,
88
+ audit_log_repository_1.AuditLogRepository])
89
+ ], ProjectMemberService);
90
+ //# sourceMappingURL=project-member.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-member.service.js","sourceRoot":"","sources":["../../src/web/project-member.service.ts"],"names":[],"mappings":"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"}