@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
@@ -12,19 +12,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkerTokenRepository = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const database_service_1 = require("../database.service");
15
- function mapRow(row) {
16
- return {
17
- id: row.id,
18
- tokenHash: row.token_hash,
19
- label: row.label,
20
- createdBy: row.created_by,
21
- status: row.status,
22
- purpose: row.purpose,
23
- usedAt: row.used_at,
24
- expiresAt: row.expires_at,
25
- revokedAt: row.revoked_at,
26
- createdAt: row.created_at,
27
- };
15
+ const base_repository_1 = require("../base.repository");
16
+ const COLUMN_SCHEMA = {
17
+ id: { column: 'id', type: 'number' },
18
+ tokenHash: { column: 'token_hash', type: 'string' },
19
+ label: { column: 'label', type: 'string' },
20
+ createdBy: { column: 'created_by', type: 'number' },
21
+ status: { column: 'status', type: 'string' },
22
+ purpose: { column: 'purpose', type: 'string' },
23
+ usedAt: { column: 'used_at', type: 'string', nullable: true },
24
+ expiresAt: { column: 'expires_at', type: 'string', nullable: true },
25
+ revokedAt: { column: 'revoked_at', type: 'string', nullable: true },
26
+ createdAt: { column: 'created_at', type: 'string' },
27
+ };
28
+ function mapWorkerTokenRow(row) {
29
+ return (0, base_repository_1.mapRow)(row, COLUMN_SCHEMA);
28
30
  }
29
31
  let WorkerTokenRepository = class WorkerTokenRepository {
30
32
  database;
@@ -36,21 +38,21 @@ let WorkerTokenRepository = class WorkerTokenRepository {
36
38
  .getDb()
37
39
  .prepare('SELECT * FROM worker_tokens WHERE id = ?')
38
40
  .get(id);
39
- return row ? mapRow(row) : null;
41
+ return row ? mapWorkerTokenRow(row) : null;
40
42
  }
41
43
  findActiveUnused(id) {
42
44
  const row = this.database
43
45
  .getDb()
44
46
  .prepare("SELECT * FROM worker_tokens WHERE id = ? AND status = 'active' AND used_at IS NULL")
45
47
  .get(id);
46
- return row ? mapRow(row) : null;
48
+ return row ? mapWorkerTokenRow(row) : null;
47
49
  }
48
50
  findAll() {
49
51
  const rows = this.database
50
52
  .getDb()
51
53
  .prepare('SELECT * FROM worker_tokens ORDER BY created_at DESC')
52
54
  .all();
53
- return rows.map(mapRow);
55
+ return rows.map(mapWorkerTokenRow);
54
56
  }
55
57
  create(data) {
56
58
  const result = this.database
@@ -1 +1 @@
1
- {"version":3,"file":"worker-token.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/worker-token.repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-token.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/worker-token.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { Worker } from '@overlordai/protocol';
2
+ import { WorkerStatus } from '@overlordai/protocol';
3
+ import { DatabaseService } from '../database.service';
4
+ export declare class WorkerRepository {
5
+ private readonly db;
6
+ constructor(db: DatabaseService);
7
+ /** Strip recoverySecretHash from a Worker before returning in API responses. */
8
+ static stripSecrets(worker: Worker): Omit<Worker, 'recoverySecretHash'>;
9
+ findById(id: string): Worker | null;
10
+ findByIds(ids: string[]): Map<string, Worker>;
11
+ findByTokenId(tokenId: number): Worker | null;
12
+ findByName(name: string): Worker | null;
13
+ updateName(id: string, name: string): void;
14
+ findAll(includeDecommissioned?: boolean): Worker[];
15
+ findOnline(): Worker[];
16
+ findByStatuses(statuses: string[]): Worker[];
17
+ create(data: {
18
+ id: string;
19
+ name: string;
20
+ host: string;
21
+ port: number;
22
+ tokenId: number;
23
+ os?: string;
24
+ cpuModel?: string;
25
+ cpuCores?: number;
26
+ memoryGb?: number;
27
+ capabilities?: string[];
28
+ tags?: string[];
29
+ protocolVersion: string;
30
+ }): Worker;
31
+ updateStatus(id: string, status: WorkerStatus): boolean;
32
+ updateHeartbeatBatch(updates: Array<{
33
+ id: string;
34
+ cpuUsage: number;
35
+ memoryUsage: number;
36
+ diskUsage: number;
37
+ activeSlots: number;
38
+ maxSlots: number | null;
39
+ capabilities: string[];
40
+ workerVersion: string | null;
41
+ cpuModel: string | null;
42
+ lastHeartbeat: string;
43
+ }>): void;
44
+ updateTokenId(id: string, tokenId: number): boolean;
45
+ updateRecoverySecretHash(id: string, hash: string): boolean;
46
+ updateActiveSlots(id: string, activeSlots: number): boolean;
47
+ countActiveSlots(id: string): number;
48
+ decommission(id: string, decommissionedBy: number): boolean;
49
+ }
50
+ //# sourceMappingURL=worker.repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.repository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/worker.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAiB,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkCtD,qBACa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,eAAe;IAEhD,gFAAgF;IAChF,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAKvE,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQnC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAe7C,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQ7C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQvC,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAO1C,OAAO,CAAC,qBAAqB,UAAQ,GAAG,MAAM,EAAE;IAShD,UAAU,IAAI,MAAM,EAAE;IAQtB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAS5C,MAAM,CAAC,IAAI,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;QACxB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,eAAe,EAAE,MAAM,CAAC;KACzB,GAAG,MAAM;IAwBV,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,OAAO;IAQvD,oBAAoB,CAClB,OAAO,EAAE,KAAK,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;KACvB,CAAC,GACD,IAAI;IA2BP,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO;IAQnD,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAQ3D,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAQ3D,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAWpC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,OAAO;CAc5D"}
@@ -0,0 +1,215 @@
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.WorkerRepository = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const protocol_1 = require("@overlordai/protocol");
15
+ const database_service_1 = require("../database.service");
16
+ const base_repository_1 = require("../base.repository");
17
+ const COLUMN_SCHEMA = {
18
+ id: { column: 'id', type: 'string' },
19
+ name: { column: 'name', type: 'string' },
20
+ host: { column: 'host', type: 'string' },
21
+ port: { column: 'port', type: 'number' },
22
+ tokenId: { column: 'token_id', type: 'number' },
23
+ os: { column: 'os', type: 'string', nullable: true },
24
+ cpuModel: { column: 'cpu_model', type: 'string', nullable: true },
25
+ cpuCores: { column: 'cpu_cores', type: 'number', nullable: true },
26
+ memoryGb: { column: 'memory_gb', type: 'number', nullable: true },
27
+ maxSlots: { column: 'max_slots', type: 'number' },
28
+ activeSlots: { column: 'active_slots', type: 'number' },
29
+ cpuUsage: { column: 'cpu_usage', type: 'number' },
30
+ memoryUsage: { column: 'memory_usage', type: 'number' },
31
+ diskUsage: { column: 'disk_usage', type: 'number' },
32
+ loadThreshold: { column: 'load_threshold', type: 'number' },
33
+ tags: { column: 'tags', type: 'json_array' },
34
+ capabilities: { column: 'capabilities', type: 'json_array' },
35
+ recoverySecretHash: { column: 'recovery_secret_hash', type: 'string', nullable: true },
36
+ protocolVersion: { column: 'protocol_version', type: 'string' },
37
+ workerVersion: { column: 'worker_version', type: 'string', nullable: true },
38
+ lastHeartbeat: { column: 'last_heartbeat', type: 'string', nullable: true },
39
+ status: { column: 'status', type: 'string' },
40
+ decommissionedAt: { column: 'decommissioned_at', type: 'string', nullable: true },
41
+ decommissionedBy: { column: 'decommissioned_by', type: 'number', nullable: true },
42
+ };
43
+ function mapWorkerRow(row) {
44
+ return (0, base_repository_1.mapRow)(row, COLUMN_SCHEMA);
45
+ }
46
+ let WorkerRepository = class WorkerRepository {
47
+ db;
48
+ constructor(db) {
49
+ this.db = db;
50
+ }
51
+ /** Strip recoverySecretHash from a Worker before returning in API responses. */
52
+ static stripSecrets(worker) {
53
+ const { recoverySecretHash, ...safe } = worker;
54
+ return safe;
55
+ }
56
+ findById(id) {
57
+ const row = this.db
58
+ .getDb()
59
+ .prepare('SELECT * FROM workers WHERE id = ?')
60
+ .get(id);
61
+ return row ? mapWorkerRow(row) : null;
62
+ }
63
+ findByIds(ids) {
64
+ if (ids.length === 0)
65
+ return new Map();
66
+ const placeholders = ids.map(() => '?').join(',');
67
+ const rows = this.db
68
+ .getDb()
69
+ .prepare(`SELECT * FROM workers WHERE id IN (${placeholders})`)
70
+ .all(...ids);
71
+ const map = new Map();
72
+ for (const row of rows) {
73
+ const worker = mapWorkerRow(row);
74
+ map.set(worker.id, worker);
75
+ }
76
+ return map;
77
+ }
78
+ findByTokenId(tokenId) {
79
+ const row = this.db
80
+ .getDb()
81
+ .prepare('SELECT * FROM workers WHERE token_id = ?')
82
+ .get(tokenId);
83
+ return row ? mapWorkerRow(row) : null;
84
+ }
85
+ findByName(name) {
86
+ const row = this.db
87
+ .getDb()
88
+ .prepare('SELECT * FROM workers WHERE name = ?')
89
+ .get(name);
90
+ return row ? mapWorkerRow(row) : null;
91
+ }
92
+ updateName(id, name) {
93
+ this.db
94
+ .getDb()
95
+ .prepare('UPDATE workers SET name = ? WHERE id = ?')
96
+ .run(name, id);
97
+ }
98
+ findAll(includeDecommissioned = false) {
99
+ const sql = includeDecommissioned
100
+ ? 'SELECT * FROM workers ORDER BY name'
101
+ : 'SELECT * FROM workers WHERE status != ? ORDER BY name';
102
+ const params = includeDecommissioned ? [] : [protocol_1.WorkerStatus.DECOMMISSIONED];
103
+ const rows = this.db.getDb().prepare(sql).all(...params);
104
+ return rows.map(mapWorkerRow);
105
+ }
106
+ findOnline() {
107
+ const rows = this.db
108
+ .getDb()
109
+ .prepare('SELECT * FROM workers WHERE status = ? ORDER BY name')
110
+ .all(protocol_1.WorkerStatus.ONLINE);
111
+ return rows.map(mapWorkerRow);
112
+ }
113
+ findByStatuses(statuses) {
114
+ const placeholders = statuses.map(() => '?').join(',');
115
+ const rows = this.db
116
+ .getDb()
117
+ .prepare(`SELECT * FROM workers WHERE status IN (${placeholders}) ORDER BY name`)
118
+ .all(...statuses);
119
+ return rows.map(mapWorkerRow);
120
+ }
121
+ create(data) {
122
+ const stmt = this.db.getDb().prepare(`
123
+ INSERT INTO workers (
124
+ id, name, host, port, token_id, os, cpu_model, cpu_cores, memory_gb,
125
+ capabilities, tags, protocol_version
126
+ ) VALUES (
127
+ @id, @name, @host, @port, @tokenId, @os, @cpuModel, @cpuCores, @memoryGb,
128
+ @capabilities, @tags, @protocolVersion
129
+ )
130
+ `);
131
+ stmt.run({
132
+ ...data,
133
+ os: data.os ?? null,
134
+ cpuModel: data.cpuModel ?? null,
135
+ cpuCores: data.cpuCores ?? null,
136
+ memoryGb: data.memoryGb ?? null,
137
+ capabilities: JSON.stringify(data.capabilities ?? []),
138
+ tags: JSON.stringify(data.tags ?? []),
139
+ });
140
+ return this.findById(data.id);
141
+ }
142
+ updateStatus(id, status) {
143
+ const result = this.db
144
+ .getDb()
145
+ .prepare('UPDATE workers SET status = ? WHERE id = ?')
146
+ .run(status, id);
147
+ return result.changes > 0;
148
+ }
149
+ updateHeartbeatBatch(updates) {
150
+ const stmt = this.db.getDb().prepare(`
151
+ UPDATE workers
152
+ SET cpu_usage = @cpuUsage,
153
+ memory_usage = @memoryUsage,
154
+ disk_usage = @diskUsage,
155
+ active_slots = @activeSlots,
156
+ max_slots = COALESCE(@maxSlots, max_slots),
157
+ capabilities = @capabilities,
158
+ worker_version = @workerVersion,
159
+ cpu_model = @cpuModel,
160
+ last_heartbeat = @lastHeartbeat
161
+ WHERE id = @id
162
+ `);
163
+ const runBatch = this.db.getDb().transaction(() => {
164
+ for (const update of updates) {
165
+ stmt.run({
166
+ ...update,
167
+ capabilities: JSON.stringify(update.capabilities),
168
+ });
169
+ }
170
+ });
171
+ runBatch();
172
+ }
173
+ updateTokenId(id, tokenId) {
174
+ const result = this.db
175
+ .getDb()
176
+ .prepare('UPDATE workers SET token_id = ? WHERE id = ?')
177
+ .run(tokenId, id);
178
+ return result.changes > 0;
179
+ }
180
+ updateRecoverySecretHash(id, hash) {
181
+ const result = this.db
182
+ .getDb()
183
+ .prepare('UPDATE workers SET recovery_secret_hash = ? WHERE id = ?')
184
+ .run(hash, id);
185
+ return result.changes > 0;
186
+ }
187
+ updateActiveSlots(id, activeSlots) {
188
+ const result = this.db
189
+ .getDb()
190
+ .prepare('UPDATE workers SET active_slots = ? WHERE id = ?')
191
+ .run(activeSlots, id);
192
+ return result.changes > 0;
193
+ }
194
+ countActiveSlots(id) {
195
+ const placeholders = protocol_1.SLOT_STATUSES.map(() => '?').join(',');
196
+ const row = this.db
197
+ .getDb()
198
+ .prepare(`SELECT COUNT(*) AS cnt FROM tasks WHERE worker_id = ? AND status IN (${placeholders})`)
199
+ .get(id, ...protocol_1.SLOT_STATUSES);
200
+ return row.cnt;
201
+ }
202
+ decommission(id, decommissionedBy) {
203
+ const result = this.db
204
+ .getDb()
205
+ .prepare('UPDATE workers SET status = ?, decommissioned_at = ?, decommissioned_by = ? WHERE id = ?')
206
+ .run(protocol_1.WorkerStatus.DECOMMISSIONED, new Date().toISOString(), decommissionedBy, id);
207
+ return result.changes > 0;
208
+ }
209
+ };
210
+ exports.WorkerRepository = WorkerRepository;
211
+ exports.WorkerRepository = WorkerRepository = __decorate([
212
+ (0, common_1.Injectable)(),
213
+ __metadata("design:paramtypes", [database_service_1.DatabaseService])
214
+ ], WorkerRepository);
215
+ //# sourceMappingURL=worker.repository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/worker.repository.ts"],"names":[],"mappings":"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"}
@@ -4,10 +4,10 @@ export declare class WorkspaceRepository {
4
4
  private readonly database;
5
5
  constructor(database: DatabaseService);
6
6
  findByTaskId(taskId: number): Workspace | null;
7
- findByMachineId(machineId: string): Workspace[];
7
+ findByWorkerId(workerId: string): Workspace[];
8
8
  create(data: {
9
9
  taskId: number;
10
- machineId: string;
10
+ workerId: string;
11
11
  projectKey: string;
12
12
  developerId: number;
13
13
  path: string;
@@ -15,5 +15,6 @@ export declare class WorkspaceRepository {
15
15
  }): Workspace;
16
16
  findActiveForTerminalTasks(): Workspace[];
17
17
  updateStatus(id: number, status: string): boolean;
18
+ markForCleanup(taskId: number): boolean;
18
19
  }
19
20
  //# sourceMappingURL=workspace.repository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.repository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/workspace.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA4BtD,qBACa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEtD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ9C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE;IAQ/C,MAAM,CAAC,IAAI,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,SAAS;IAuBb,0BAA0B,IAAI,SAAS,EAAE;IAazC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;CAOlD"}
1
+ {"version":3,"file":"workspace.repository.d.ts","sourceRoot":"","sources":["../../../src/database/repositories/workspace.repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAkBtD,qBACa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,eAAe;IAEtD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAQ9C,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE;IAQ7C,MAAM,CAAC,IAAI,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,SAAS;IAuBb,0BAA0B,IAAI,SAAS,EAAE;IAazC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO;IAQjD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CASxC"}
@@ -12,18 +12,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.WorkspaceRepository = void 0;
13
13
  const common_1 = require("@nestjs/common");
14
14
  const database_service_1 = require("../database.service");
15
- function mapRow(row) {
16
- return {
17
- id: row.id,
18
- taskId: row.task_id,
19
- machineId: row.machine_id,
20
- projectKey: row.project_key,
21
- developerId: row.developer_id,
22
- path: row.path,
23
- branch: row.branch,
24
- status: row.status,
25
- expiresAt: row.expires_at,
26
- };
15
+ const base_repository_1 = require("../base.repository");
16
+ const COLUMN_SCHEMA = {
17
+ id: { column: 'id', type: 'number' },
18
+ taskId: { column: 'task_id', type: 'number' },
19
+ workerId: { column: 'worker_id', type: 'string' },
20
+ projectKey: { column: 'project_key', type: 'string' },
21
+ developerId: { column: 'developer_id', type: 'number' },
22
+ path: { column: 'path', type: 'string' },
23
+ branch: { column: 'branch', type: 'string', nullable: true },
24
+ status: { column: 'status', type: 'string' },
25
+ };
26
+ function mapWorkspaceRow(row) {
27
+ return (0, base_repository_1.mapRow)(row, COLUMN_SCHEMA);
27
28
  }
28
29
  let WorkspaceRepository = class WorkspaceRepository {
29
30
  database;
@@ -35,26 +36,26 @@ let WorkspaceRepository = class WorkspaceRepository {
35
36
  .getDb()
36
37
  .prepare('SELECT * FROM workspaces WHERE task_id = ?')
37
38
  .get(taskId);
38
- return row ? mapRow(row) : null;
39
+ return row ? mapWorkspaceRow(row) : null;
39
40
  }
40
- findByMachineId(machineId) {
41
+ findByWorkerId(workerId) {
41
42
  const rows = this.database
42
43
  .getDb()
43
- .prepare('SELECT * FROM workspaces WHERE machine_id = ?')
44
- .all(machineId);
45
- return rows.map(mapRow);
44
+ .prepare('SELECT * FROM workspaces WHERE worker_id = ?')
45
+ .all(workerId);
46
+ return rows.map(mapWorkspaceRow);
46
47
  }
47
48
  create(data) {
48
49
  const result = this.database
49
50
  .getDb()
50
- .prepare(`INSERT INTO workspaces (task_id, machine_id, project_key, developer_id, path, branch)
51
+ .prepare(`INSERT INTO workspaces (task_id, worker_id, project_key, developer_id, path, branch)
51
52
  VALUES (?, ?, ?, ?, ?, ?)`)
52
- .run(data.taskId, data.machineId, data.projectKey, data.developerId, data.path, data.branch ?? null);
53
+ .run(data.taskId, data.workerId, data.projectKey, data.developerId, data.path, data.branch ?? null);
53
54
  const row = this.database
54
55
  .getDb()
55
56
  .prepare('SELECT * FROM workspaces WHERE id = ?')
56
57
  .get(Number(result.lastInsertRowid));
57
- return mapRow(row);
58
+ return mapWorkspaceRow(row);
58
59
  }
59
60
  findActiveForTerminalTasks() {
60
61
  const rows = this.database
@@ -64,7 +65,7 @@ let WorkspaceRepository = class WorkspaceRepository {
64
65
  WHERE w.status = 'active'
65
66
  AND t.status IN ('COMPLETED', 'FAILED', 'CANCELLED')`)
66
67
  .all();
67
- return rows.map(mapRow);
68
+ return rows.map(mapWorkspaceRow);
68
69
  }
69
70
  updateStatus(id, status) {
70
71
  const result = this.database
@@ -73,6 +74,13 @@ let WorkspaceRepository = class WorkspaceRepository {
73
74
  .run(status, id);
74
75
  return result.changes > 0;
75
76
  }
77
+ markForCleanup(taskId) {
78
+ const result = this.database
79
+ .getDb()
80
+ .prepare(`UPDATE workspaces SET status = 'needs_cleanup' WHERE task_id = ? AND status = 'active'`)
81
+ .run(taskId);
82
+ return result.changes > 0;
83
+ }
76
84
  };
77
85
  exports.WorkspaceRepository = WorkspaceRepository;
78
86
  exports.WorkspaceRepository = WorkspaceRepository = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/workspace.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,0DAAsD;AActD,SAAS,MAAM,CAAC,GAAiB;IAC/B,OAAO;QACL,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,MAAM,EAAE,GAAG,CAAC,OAAO;QACnB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,UAAU,EAAE,GAAG,CAAC,WAAW;QAC3B,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,SAAS,EAAE,GAAG,CAAC,UAAU;KAC1B,CAAC;AACJ,CAAC;AAGM,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IACD;IAA7B,YAA6B,QAAyB;QAAzB,aAAQ,GAAR,QAAQ,CAAiB;IAAG,CAAC;IAE1D,YAAY,CAAC,MAAc;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ;aACtB,KAAK,EAAE;aACP,OAAO,CAAC,4CAA4C,CAAC;aACrD,GAAG,CAAC,MAAM,CAA6B,CAAC;QAC3C,OAAO,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClC,CAAC;IAED,eAAe,CAAC,SAAiB;QAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;aACvB,KAAK,EAAE;aACP,OAAO,CAAC,+CAA+C,CAAC;aACxD,GAAG,CAAC,SAAS,CAAmB,CAAC;QACpC,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,IAON;QACC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;aACzB,KAAK,EAAE;aACP,OAAO,CACN;mCAC2B,CAC5B;aACA,GAAG,CACF,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,SAAS,EACd,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,IAAI,EACT,IAAI,CAAC,MAAM,IAAI,IAAI,CACpB,CAAC;QAEJ,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ;aACtB,KAAK,EAAE;aACP,OAAO,CAAC,uCAAuC,CAAC;aAChD,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAiB,CAAC;QACvD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,0BAA0B;QACxB,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ;aACvB,KAAK,EAAE;aACP,OAAO,CACN;;;gEAGwD,CACzD;aACA,GAAG,EAAoB,CAAC;QAC3B,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,YAAY,CAAC,EAAU,EAAE,MAAc;QACrC,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ;aACzB,KAAK,EAAE;aACP,OAAO,CAAC,+CAA+C,CAAC;aACxD,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF,CAAA;AArEY,kDAAmB;8BAAnB,mBAAmB;IAD/B,IAAA,mBAAU,GAAE;qCAE4B,kCAAe;GAD3C,mBAAmB,CAqE/B"}
1
+ {"version":3,"file":"workspace.repository.js","sourceRoot":"","sources":["../../../src/database/repositories/workspace.repository.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare class RepositoryModule {
2
+ }
3
+ //# sourceMappingURL=repository.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.module.d.ts","sourceRoot":"","sources":["../../src/database/repository.module.ts"],"names":[],"mappings":"AA2BA,qBAKa,gBAAgB;CAAG"}
@@ -0,0 +1,45 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.RepositoryModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const task_repository_1 = require("./repositories/task.repository");
12
+ const worker_repository_1 = require("./repositories/worker.repository");
13
+ const project_repository_1 = require("./repositories/project.repository");
14
+ const project_member_repository_1 = require("./repositories/project-member.repository");
15
+ const developer_repository_1 = require("./repositories/developer.repository");
16
+ const developer_token_repository_1 = require("./repositories/developer-token.repository");
17
+ const worker_token_repository_1 = require("./repositories/worker-token.repository");
18
+ const audit_log_repository_1 = require("./repositories/audit-log.repository");
19
+ const notification_repository_1 = require("./repositories/notification.repository");
20
+ const workspace_repository_1 = require("./repositories/workspace.repository");
21
+ const bot_repository_1 = require("./repositories/bot.repository");
22
+ const repositories = [
23
+ task_repository_1.TaskRepository,
24
+ worker_repository_1.WorkerRepository,
25
+ project_repository_1.ProjectRepository,
26
+ project_member_repository_1.ProjectMemberRepository,
27
+ developer_repository_1.DeveloperRepository,
28
+ developer_token_repository_1.DeveloperTokenRepository,
29
+ worker_token_repository_1.WorkerTokenRepository,
30
+ audit_log_repository_1.AuditLogRepository,
31
+ notification_repository_1.NotificationRepository,
32
+ workspace_repository_1.WorkspaceRepository,
33
+ bot_repository_1.BotRepository,
34
+ ];
35
+ let RepositoryModule = class RepositoryModule {
36
+ };
37
+ exports.RepositoryModule = RepositoryModule;
38
+ exports.RepositoryModule = RepositoryModule = __decorate([
39
+ (0, common_1.Global)(),
40
+ (0, common_1.Module)({
41
+ providers: repositories,
42
+ exports: repositories,
43
+ })
44
+ ], RepositoryModule);
45
+ //# sourceMappingURL=repository.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repository.module.js","sourceRoot":"","sources":["../../src/database/repository.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,oEAAgE;AAChE,wEAAoE;AACpE,0EAAsE;AACtE,wFAAmF;AACnF,8EAA0E;AAC1E,0FAAqF;AACrF,oFAA+E;AAC/E,8EAAyE;AACzE,oFAAgF;AAChF,8EAA0E;AAC1E,kEAA8D;AAE9D,MAAM,YAAY,GAAG;IACnB,gCAAc;IACd,oCAAgB;IAChB,sCAAiB;IACjB,mDAAuB;IACvB,0CAAmB;IACnB,qDAAwB;IACxB,+CAAqB;IACrB,yCAAkB;IAClB,gDAAsB;IACtB,0CAAmB;IACnB,8BAAa;CACd,CAAC;AAOK,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;CAAG,CAAA;AAAnB,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,YAAY;QACvB,OAAO,EAAE,YAAY;KACtB,CAAC;GACW,gBAAgB,CAAG"}
@@ -7,43 +7,48 @@ interface FailureRecord {
7
7
  }
8
8
  export declare class CapabilityService {
9
9
  private readonly logger;
10
- /** machineId -> agentType -> failure record */
10
+ /** workerId -> agentType -> failure record */
11
11
  private readonly failureRecords;
12
- /** machineId -> Set of degraded agent types */
12
+ /** workerId -> Set of degraded agent types */
13
13
  private readonly degraded;
14
- /** Timers for auto-recovery, keyed by `${machineId}:${agentType}` */
14
+ /** Timers for auto-recovery, keyed by `${workerId}:${agentType}` */
15
15
  private readonly recoveryTimers;
16
16
  /**
17
- * Record a failure for a specific agent type on a machine.
17
+ * Record a failure for a specific agent type on a worker.
18
18
  * After DEGRADATION_THRESHOLD consecutive failures the capability is marked
19
- * as degraded and the machine will no longer be considered capable for that
19
+ * as degraded and the worker will no longer be considered capable for that
20
20
  * agent type until it is restored (automatically or manually).
21
21
  */
22
- recordFailure(machineId: string, agentType: string, reason: string, failureType?: FailureType): void;
22
+ recordFailure(workerId: string, agentType: string, reason: string, failureType?: FailureType): void;
23
23
  /**
24
- * Record a successful execution of an agent type on a machine.
24
+ * Record a successful execution of an agent type on a worker.
25
25
  * Resets the failure counter and restores the capability if it was degraded.
26
26
  */
27
- recordSuccess(machineId: string, agentType: string): void;
27
+ recordSuccess(workerId: string, agentType: string): void;
28
28
  /**
29
- * Check whether a machine is capable of running a specific agent type.
29
+ * Check whether a worker is capable of running a specific agent type.
30
30
  * Returns false if the capability has been degraded due to repeated failures.
31
31
  */
32
- isCapable(machineId: string, agentType: string): boolean;
32
+ isCapable(workerId: string, agentType: string): boolean;
33
33
  /**
34
- * Get the failure record for a machine + capability, if any.
34
+ * Get the failure record for a worker + capability, if any.
35
35
  */
36
- getFailureRecord(machineId: string, agentType: string): FailureRecord | undefined;
36
+ getFailureRecord(workerId: string, agentType: string): FailureRecord | undefined;
37
37
  /**
38
- * Manually restore a degraded capability for a machine (admin action).
38
+ * Manually restore a degraded capability for a worker (admin action).
39
39
  * Resets both the failure count and the degraded flag.
40
40
  */
41
- restoreCapability(machineId: string, agentType: string): void;
41
+ restoreCapability(workerId: string, agentType: string): void;
42
42
  /**
43
43
  * Schedule automatic recovery for a degraded capability based on its failure type.
44
44
  * binary_missing failures are permanent and will not auto-recover.
45
45
  */
46
+ private clearCapabilityState;
46
47
  private scheduleRecovery;
48
+ /**
49
+ * Clear all capability state for a worker (call when worker is deleted/decommissioned).
50
+ */
51
+ clearWorker(workerId: string): void;
47
52
  private cancelRecoveryTimer;
48
53
  }
49
54
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"capability.service.d.ts","sourceRoot":"","sources":["../../src/dispatcher/capability.service.ts"],"names":[],"mappings":"AAKA,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC;AAUvF,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiD;IAEhF,+CAA+C;IAC/C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAEpE;;;;;OAKG;IACH,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,WAAuB,GACnC,IAAI;IAoCP;;;OAGG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAuBzD;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAQxD;;OAEG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIjF;;;OAGG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAwB7D;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAkCxB,OAAO,CAAC,mBAAmB;CAQ5B"}
1
+ {"version":3,"file":"capability.service.d.ts","sourceRoot":"","sources":["../../src/dispatcher/capability.service.ts"],"names":[],"mappings":"AAKA,wDAAwD;AACxD,MAAM,MAAM,WAAW,GAAG,gBAAgB,GAAG,cAAc,GAAG,YAAY,GAAG,SAAS,CAAC;AAUvF,UAAU,aAAa;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBACa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsC;IAE7D,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiD;IAEhF,8CAA8C;IAC9C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkC;IAE3D,oEAAoE;IACpE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAqC;IAEpE;;;;;OAKG;IACH,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,WAAW,GAAE,WAAuB,GACnC,IAAI;IAoCP;;;OAGG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IASxD;;;OAGG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;IAQvD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIhF;;;OAGG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5D;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,gBAAgB;IAkCxB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAcnC,OAAO,CAAC,mBAAmB;CAQ5B"}