@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
@@ -1,5 +1,6 @@
1
1
  -- 001-init-schema.sql
2
- -- Full DDL for all 14 tables + trigger
2
+ -- Complete schema for Overlord v1.1
3
+ -- Consolidated from migrations 001-013
3
4
 
4
5
  -- Tasks
5
6
  CREATE TABLE tasks (
@@ -8,9 +9,8 @@ CREATE TABLE tasks (
8
9
  fingerprint TEXT,
9
10
  status TEXT NOT NULL DEFAULT 'QUEUED',
10
11
  project_key TEXT NOT NULL REFERENCES projects(key),
11
- machine_id TEXT REFERENCES machines(id),
12
+ worker_id TEXT REFERENCES workers(id),
12
13
  developer_id INTEGER REFERENCES developers(id),
13
- app TEXT,
14
14
  branch TEXT,
15
15
  mr_url TEXT,
16
16
  mr_number INTEGER,
@@ -56,8 +56,8 @@ CREATE TABLE worker_tokens (
56
56
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
57
57
  );
58
58
 
59
- -- Machines
60
- CREATE TABLE machines (
59
+ -- Workers (renamed from machines in v1.0)
60
+ CREATE TABLE workers (
61
61
  id TEXT PRIMARY KEY,
62
62
  name TEXT NOT NULL UNIQUE,
63
63
  host TEXT NOT NULL,
@@ -78,6 +78,10 @@ CREATE TABLE machines (
78
78
  protocol_version TEXT NOT NULL,
79
79
  last_heartbeat TEXT,
80
80
  status TEXT NOT NULL DEFAULT 'online',
81
+ worker_version TEXT,
82
+ cpu_model TEXT,
83
+ decommissioned_at TEXT,
84
+ decommissioned_by INTEGER REFERENCES developers(id),
81
85
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
82
86
  );
83
87
 
@@ -107,7 +111,6 @@ CREATE TABLE agent_sessions (
107
111
  pty_owner TEXT NOT NULL DEFAULT 'pipeline',
108
112
  owner_revision INTEGER NOT NULL DEFAULT 0,
109
113
  exit_code INTEGER,
110
- output_lines INTEGER NOT NULL DEFAULT 0,
111
114
  revision INTEGER NOT NULL DEFAULT 0,
112
115
  started_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
113
116
  finished_at TEXT
@@ -117,13 +120,12 @@ CREATE TABLE agent_sessions (
117
120
  CREATE TABLE workspaces (
118
121
  id INTEGER PRIMARY KEY AUTOINCREMENT,
119
122
  task_id INTEGER NOT NULL UNIQUE REFERENCES tasks(id),
120
- machine_id TEXT NOT NULL REFERENCES machines(id),
123
+ worker_id TEXT NOT NULL REFERENCES workers(id),
121
124
  project_key TEXT NOT NULL REFERENCES projects(key),
122
125
  developer_id INTEGER NOT NULL REFERENCES developers(id),
123
126
  path TEXT NOT NULL,
124
127
  branch TEXT,
125
- status TEXT NOT NULL DEFAULT 'active',
126
- expires_at TEXT
128
+ status TEXT NOT NULL DEFAULT 'active'
127
129
  );
128
130
 
129
131
  -- Projects
@@ -146,6 +148,9 @@ CREATE TABLE projects (
146
148
  pipeline TEXT,
147
149
  pty_output_filter INTEGER NOT NULL DEFAULT 0,
148
150
  is_default INTEGER NOT NULL DEFAULT 0,
151
+ ssh_url TEXT,
152
+ default_reviewers TEXT DEFAULT NULL,
153
+ git_token_encrypted TEXT DEFAULT NULL,
149
154
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
150
155
  );
151
156
 
@@ -219,8 +224,67 @@ CREATE TABLE developer_tokens (
219
224
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now'))
220
225
  );
221
226
 
227
+ -- Settings (key-value)
228
+ CREATE TABLE settings (
229
+ key TEXT PRIMARY KEY,
230
+ value TEXT NOT NULL
231
+ );
232
+
222
233
  -- Trigger: auto-update tasks.updated_at
223
234
  CREATE TRIGGER trg_tasks_updated_at AFTER UPDATE ON tasks
224
235
  BEGIN
225
236
  UPDATE tasks SET updated_at = strftime('%Y-%m-%dT%H:%M:%SZ', 'now') WHERE id = NEW.id;
226
237
  END;
238
+
239
+ -- =============================================================================
240
+ -- Indexes
241
+ -- =============================================================================
242
+
243
+ -- Tasks
244
+ CREATE INDEX idx_tasks_status_created ON tasks(status, created_at DESC);
245
+ CREATE INDEX idx_tasks_worker_developer ON tasks(worker_id, developer_id);
246
+ CREATE INDEX idx_tasks_project ON tasks(project_key);
247
+ CREATE UNIQUE INDEX idx_tasks_active_fingerprint ON tasks(fingerprint)
248
+ WHERE fingerprint IS NOT NULL AND status IN ('QUEUED', 'ASSIGNED', 'RUNNING', 'SUSPENDED');
249
+ CREATE INDEX idx_tasks_developer_id ON tasks(developer_id);
250
+ CREATE INDEX idx_tasks_created_by ON tasks(created_by);
251
+ CREATE INDEX idx_tasks_worker_status ON tasks(worker_id, status);
252
+ CREATE INDEX idx_tasks_created_by_status ON tasks(created_by, status);
253
+ CREATE INDEX idx_tasks_project_status ON tasks(project_key, status);
254
+
255
+ -- Task logs
256
+ CREATE INDEX idx_task_logs_task_id ON task_logs(task_id, timestamp DESC);
257
+
258
+ -- Agent sessions
259
+ CREATE INDEX idx_agent_sessions_task ON agent_sessions(task_id, status);
260
+
261
+ -- Workspaces
262
+ CREATE INDEX idx_workspaces_task_id ON workspaces(task_id);
263
+ CREATE INDEX idx_workspaces_project ON workspaces(project_key);
264
+ CREATE INDEX idx_workspaces_worker ON workspaces(worker_id);
265
+
266
+ -- Project members
267
+ CREATE INDEX idx_project_members_dev ON project_members(developer_id);
268
+ CREATE INDEX idx_project_members_project ON project_members(project_key);
269
+
270
+ -- Audit logs
271
+ CREATE INDEX idx_audit_logs_user_time ON audit_logs(user_id, created_at DESC);
272
+ CREATE INDEX idx_audit_logs_action ON audit_logs(action, created_at DESC);
273
+
274
+ -- Notifications
275
+ CREATE INDEX idx_notifications_dev_unread ON notifications(developer_id, is_read, created_at DESC);
276
+
277
+ -- Worker tokens
278
+ CREATE INDEX idx_worker_tokens_token_hash ON worker_tokens(token_hash);
279
+
280
+ -- Developer tokens
281
+ CREATE INDEX idx_developer_tokens_dev ON developer_tokens(developer_id);
282
+ CREATE INDEX idx_developer_tokens_token_hash ON developer_tokens(token_hash);
283
+
284
+ -- Workers
285
+ CREATE INDEX idx_workers_token_id ON workers(token_id);
286
+ CREATE INDEX idx_workers_status ON workers(status);
287
+
288
+ -- Chat bindings
289
+ CREATE INDEX idx_chat_bindings_platform_chat_id ON chat_bindings(platform_chat_id);
290
+ CREATE INDEX idx_chat_bindings_bot_instance_id ON chat_bindings(bot_instance_id);
@@ -1,5 +1,5 @@
1
1
  import type { Request } from 'express';
2
- import type { Command, DeveloperPublic, Platform, StageConfirmMode, StageChoiceOption } from '@overlordai/protocol';
2
+ import type { Command, DeveloperPublic, Platform } from '@overlordai/protocol';
3
3
  /**
4
4
  * Unified message content — adapters convert this into platform-specific format.
5
5
  */
@@ -17,9 +17,6 @@ export interface AdapterMessage {
17
17
  url?: string;
18
18
  value?: string;
19
19
  }>;
20
- confirmMode?: StageConfirmMode;
21
- choices?: StageChoiceOption[];
22
- prompt?: string;
23
20
  };
24
21
  }
25
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.interface.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACR,gBAAgB,EAChB,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjE,WAAW,CAAC,EAAE,gBAAgB,CAAC;QAC/B,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;QAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,gFAAgF;IAChF,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAErD,iEAAiE;IACjE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtE,uDAAuD;IACvD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,uFAAuF;IACvF,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CACnE;AAED,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,eAA6B,CAAC"}
1
+ {"version":3,"file":"adapter.interface.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,KAAK,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACT,MAAM,sBAAsB,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE;QACL,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAClE,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAE5B,gFAAgF;IAChF,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IAErD,iEAAiE;IACjE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEtE,uDAAuD;IACvD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE,uFAAuF;IACvF,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CACnE;AAED,mDAAmD;AACnD,eAAO,MAAM,gBAAgB,eAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.interface.js","sourceRoot":"","sources":["../../src/adapters/adapter.interface.ts"],"names":[],"mappings":";;;AA4CA,mDAAmD;AACtC,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"adapter.interface.js","sourceRoot":"","sources":["../../src/adapters/adapter.interface.ts"],"names":[],"mappings":";;;AAuCA,mDAAmD;AACtC,QAAA,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.module.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAU,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAgBzC,qBA6Ba,aAAc,YAAW,YAAY;IAGpC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAE5B,SAAS,EAAE,SAAS;IAEjD,YAAY,IAAI,IAAI;CAgBrB"}
1
+ {"version":3,"file":"adapter.module.d.ts","sourceRoot":"","sources":["../../src/adapters/adapter.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,YAAY,EAAU,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAiBzC,qBA6Ba,aAAc,YAAW,YAAY;IAGpC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAE5B,SAAS,EAAE,SAAS;IAEjD,YAAY,IAAI,IAAI;CAgBrB"}
@@ -14,8 +14,6 @@ exports.AdapterModule = void 0;
14
14
  const common_1 = require("@nestjs/common");
15
15
  const core_1 = require("@nestjs/core");
16
16
  const dispatcher_module_1 = require("../dispatcher/dispatcher.module");
17
- const bot_repository_1 = require("../database/repositories/bot.repository");
18
- const developer_repository_1 = require("../database/repositories/developer.repository");
19
17
  const crypto_service_1 = require("../common/crypto.service");
20
18
  const adapter_interface_1 = require("./adapter.interface");
21
19
  const adapter_registry_1 = require("./adapter.registry");
@@ -24,6 +22,9 @@ const lark_controller_1 = require("./lark/lark.controller");
24
22
  const lark_message_parser_1 = require("./lark/lark-message.parser");
25
23
  const lark_card_builder_1 = require("./lark/lark-card.builder");
26
24
  const slack_adapter_1 = require("./slack/slack.adapter");
25
+ const slack_controller_1 = require("./slack/slack.controller");
26
+ const slack_message_parser_1 = require("./slack/slack-message.parser");
27
+ const slack_block_builder_1 = require("./slack/slack-block.builder");
27
28
  let AdapterModule = AdapterModule_1 = class AdapterModule {
28
29
  moduleRef;
29
30
  logger = new common_1.Logger(AdapterModule_1.name);
@@ -52,15 +53,15 @@ exports.AdapterModule = AdapterModule;
52
53
  exports.AdapterModule = AdapterModule = AdapterModule_1 = __decorate([
53
54
  (0, common_1.Module)({
54
55
  imports: [dispatcher_module_1.DispatcherModule],
55
- controllers: [lark_controller_1.LarkController],
56
+ controllers: [lark_controller_1.LarkController, slack_controller_1.SlackController],
56
57
  providers: [
57
58
  // Shared dependencies (RedisService is @Global, no need to re-provide)
58
- bot_repository_1.BotRepository,
59
- developer_repository_1.DeveloperRepository,
60
59
  crypto_service_1.CryptoService,
61
- // Parser & Card Builder
60
+ // Parser & Card/Block Builder
62
61
  lark_message_parser_1.LarkMessageParser,
63
62
  lark_card_builder_1.LarkCardBuilder,
63
+ slack_message_parser_1.SlackMessageParser,
64
+ slack_block_builder_1.SlackBlockBuilder,
64
65
  // Adapters
65
66
  lark_adapter_1.LarkAdapter,
66
67
  slack_adapter_1.SlackAdapter,
@@ -73,7 +74,7 @@ exports.AdapterModule = AdapterModule = AdapterModule_1 = __decorate([
73
74
  // Registry
74
75
  adapter_registry_1.AdapterRegistry,
75
76
  ],
76
- exports: [adapter_registry_1.AdapterRegistry, lark_adapter_1.LarkAdapter, lark_card_builder_1.LarkCardBuilder],
77
+ exports: [adapter_registry_1.AdapterRegistry, lark_adapter_1.LarkAdapter, lark_card_builder_1.LarkCardBuilder, slack_adapter_1.SlackAdapter, slack_block_builder_1.SlackBlockBuilder],
77
78
  }),
78
79
  __metadata("design:paramtypes", [core_1.ModuleRef])
79
80
  ], AdapterModule);
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.module.js","sourceRoot":"","sources":["../../src/adapters/adapter.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmE;AACnE,uCAAyC;AACzC,uEAAmE;AACnE,4EAAwE;AACxE,wFAAoF;AACpF,6DAAyD;AAEzD,2DAAuD;AACvD,yDAAqD;AAErD,sDAAkD;AAClD,4DAAwD;AACxD,oEAA+D;AAC/D,gEAA2D;AAE3D,yDAAqD;AA+B9C,IAAM,aAAa,qBAAnB,MAAM,aAAa;IAGK;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,eAAa,CAAC,IAAI,CAAC,CAAC;IAEzD,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAErD,YAAY;QACV,+DAA+D;QAC/D,qEAAqE;QACrE,kEAAkE;QAClE,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,IAAI,QAAQ,EAAE,kBAAkB,EAAE,CAAC;gBACjC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF,CAAA;AArBY,sCAAa;wBAAb,aAAa;IA7BzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,oCAAgB,CAAC;QAC3B,WAAW,EAAE,CAAC,gCAAc,CAAC;QAC7B,SAAS,EAAE;YACT,uEAAuE;YACvE,8BAAa;YACb,0CAAmB;YACnB,8BAAa;YAEb,wBAAwB;YACxB,uCAAiB;YACjB,mCAAe;YAEf,WAAW;YACX,0BAAW;YACX,4BAAY;YAEZ,+CAA+C;YAC/C;gBACE,OAAO,EAAE,oCAAgB;gBACzB,UAAU,EAAE,CAAC,IAAiB,EAAE,KAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;gBACrE,MAAM,EAAE,CAAC,0BAAW,EAAE,4BAAY,CAAC;aACpC;YAED,WAAW;YACX,kCAAe;SAChB;QACD,OAAO,EAAE,CAAC,kCAAe,EAAE,0BAAW,EAAE,mCAAe,CAAC;KACzD,CAAC;qCAIwC,gBAAS;GAHtC,aAAa,CAqBzB"}
1
+ {"version":3,"file":"adapter.module.js","sourceRoot":"","sources":["../../src/adapters/adapter.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmE;AACnE,uCAAyC;AACzC,uEAAmE;AACnE,6DAAyD;AAEzD,2DAAuD;AACvD,yDAAqD;AAErD,sDAAkD;AAClD,4DAAwD;AACxD,oEAA+D;AAC/D,gEAA2D;AAE3D,yDAAqD;AACrD,+DAA2D;AAC3D,uEAAkE;AAClE,qEAAgE;AA+BzD,IAAM,aAAa,qBAAnB,MAAM,aAAa;IAGK;IAFZ,MAAM,GAAG,IAAI,eAAM,CAAC,eAAa,CAAC,IAAI,CAAC,CAAC;IAEzD,YAA6B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAErD,YAAY;QACV,+DAA+D;QAC/D,qEAAqE;QACrE,kEAAkE;QAClE,IAAI,CAAC;YACH,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,mCAAmC,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7E,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,kCAAe,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;YACxE,IAAI,QAAQ,EAAE,kBAAkB,EAAE,CAAC;gBACjC,QAAQ,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACtC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;CACF,CAAA;AArBY,sCAAa;wBAAb,aAAa;IA7BzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,oCAAgB,CAAC;QAC3B,WAAW,EAAE,CAAC,gCAAc,EAAE,kCAAe,CAAC;QAC9C,SAAS,EAAE;YACT,uEAAuE;YACvE,8BAAa;YAEb,8BAA8B;YAC9B,uCAAiB;YACjB,mCAAe;YACf,yCAAkB;YAClB,uCAAiB;YAEjB,WAAW;YACX,0BAAW;YACX,4BAAY;YAEZ,+CAA+C;YAC/C;gBACE,OAAO,EAAE,oCAAgB;gBACzB,UAAU,EAAE,CAAC,IAAiB,EAAE,KAAmB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;gBACrE,MAAM,EAAE,CAAC,0BAAW,EAAE,4BAAY,CAAC;aACpC;YAED,WAAW;YACX,kCAAe;SAChB;QACD,OAAO,EAAE,CAAC,kCAAe,EAAE,0BAAW,EAAE,mCAAe,EAAE,4BAAY,EAAE,uCAAiB,CAAC;KAC1F,CAAC;qCAIwC,gBAAS;GAHtC,aAAa,CAqBzB"}
@@ -1,4 +1,4 @@
1
- import type { Task, StageChoiceOption } from '@overlordai/protocol';
1
+ import type { Task } from '@overlordai/protocol';
2
2
  import type { AdapterMessage } from '../adapter.interface';
3
3
  /**
4
4
  * Builds Lark Interactive Message Cards for task notifications.
@@ -7,10 +7,6 @@ import type { AdapterMessage } from '../adapter.interface';
7
7
  * which LarkAdapter converts into Lark-native card JSON.
8
8
  */
9
9
  export declare class LarkCardBuilder {
10
- /**
11
- * Truncate a description to a maximum length.
12
- */
13
- private truncate;
14
10
  /**
15
11
  * Build a task status notification card.
16
12
  */
@@ -19,26 +15,6 @@ export declare class LarkCardBuilder {
19
15
  * Build a dedup confirmation card — shown when a similar task already exists.
20
16
  */
21
17
  buildDedupConfirmCard(existingTaskId: number, description: string, confirmKey: string): AdapterMessage;
22
- /**
23
- * Build an interactive stage card — confirm mode.
24
- * Displays prompt + "Continue" / "Cancel" buttons.
25
- */
26
- buildConfirmStageCard(taskId: number, stageIndex: number, prompt: string): AdapterMessage;
27
- /**
28
- * Build an interactive stage card — choice mode.
29
- * Displays prompt + one button per choice option.
30
- */
31
- buildChoiceStageCard(taskId: number, stageIndex: number, prompt: string, choices: StageChoiceOption[]): AdapterMessage;
32
- /**
33
- * Build an interactive stage card — input mode.
34
- * Displays prompt + instruction to reply to the message.
35
- */
36
- buildInputStageCard(taskId: number, stageIndex: number, prompt: string): AdapterMessage;
37
- /**
38
- * Build an "already selected" card to replace an interactive card after a
39
- * button has been clicked (card action callback response).
40
- */
41
- buildSelectedCard(taskId: number, selectedLabel: string): AdapterMessage;
42
18
  /**
43
19
  * Convert an AdapterMessage into a Lark Interactive Message Card JSON
44
20
  * (the `content` field for Lark's send message API).
@@ -1 +1 @@
1
- {"version":3,"file":"lark-card.builder.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark-card.builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAoB,MAAM,sBAAsB,CAAC;AAEtF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAkB3D;;;;;GAKG;AACH,qBACa,eAAe;IAC1B;;OAEG;IACH,OAAO,CAAC,QAAQ;IAKhB;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc;IAqCzC;;OAEG;IACH,qBAAqB,CACnB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,cAAc;IAuBjB;;;OAGG;IACH,qBAAqB,CACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,cAAc;IAyBjB;;;OAGG;IACH,oBAAoB,CAClB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,EAAE,GAC3B,cAAc;IAsBjB;;;OAGG;IACH,mBAAmB,CACjB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,GACb,cAAc;IAwBjB;;;OAGG;IACH,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,cAAc;IAiBjB;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;CA8D5C"}
1
+ {"version":3,"file":"lark-card.builder.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark-card.builder.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAEjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAe3D;;;;;GAKG;AACH,qBACa,eAAe;IAC1B;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc;IAqCzC;;OAEG;IACH,qBAAqB,CACnB,cAAc,EAAE,MAAM,EACtB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,cAAc;IA2BjB;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,MAAM;CA8D5C"}
@@ -9,6 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.LarkCardBuilder = void 0;
10
10
  const common_1 = require("@nestjs/common");
11
11
  const protocol_1 = require("@overlordai/protocol");
12
+ const config_1 = require("../../common/config");
13
+ const string_utils_1 = require("../../common/string-utils");
12
14
  /** Status color mapping for Lark card templates. */
13
15
  const STATUS_COLORS = {
14
16
  [protocol_1.TaskStatus.QUEUED]: 'grey',
@@ -19,10 +21,6 @@ const STATUS_COLORS = {
19
21
  [protocol_1.TaskStatus.FAILED]: 'red',
20
22
  [protocol_1.TaskStatus.CANCELLED]: 'grey',
21
23
  };
22
- /** Base URL for web detail links (configurable via env). */
23
- function getWebBaseUrl() {
24
- return process.env.OVERLORD_WEB_URL || 'http://localhost:3000';
25
- }
26
24
  /**
27
25
  * Builds Lark Interactive Message Cards for task notifications.
28
26
  *
@@ -30,23 +28,15 @@ function getWebBaseUrl() {
30
28
  * which LarkAdapter converts into Lark-native card JSON.
31
29
  */
32
30
  let LarkCardBuilder = class LarkCardBuilder {
33
- /**
34
- * Truncate a description to a maximum length.
35
- */
36
- truncate(text, maxLength = 50) {
37
- if (text.length <= maxLength)
38
- return text;
39
- return text.slice(0, maxLength) + '...';
40
- }
41
31
  /**
42
32
  * Build a task status notification card.
43
33
  */
44
34
  buildTaskCard(task) {
45
35
  const color = STATUS_COLORS[task.status] ?? 'grey';
46
- const webUrl = `${getWebBaseUrl()}/tasks/${task.id}`;
36
+ const webUrl = `${(0, config_1.getWebUrl)()}/tasks/${task.id}`;
47
37
  const fields = [
48
38
  { label: 'Task', value: `#${task.id}` },
49
- { label: 'Description', value: this.truncate(task.description) },
39
+ { label: 'Description', value: (0, string_utils_1.truncate)(task.description, 50) },
50
40
  { label: 'Status', value: `[${color}] ${task.status}` },
51
41
  { label: 'Project', value: task.projectKey },
52
42
  ];
@@ -57,7 +47,7 @@ let LarkCardBuilder = class LarkCardBuilder {
57
47
  fields.push({ label: 'MR/PR', value: task.mrUrl });
58
48
  }
59
49
  if (task.errorMessage) {
60
- fields.push({ label: 'Error', value: this.truncate(task.errorMessage, 100) });
50
+ fields.push({ label: 'Error', value: (0, string_utils_1.truncate)(task.errorMessage, 100) });
61
51
  }
62
52
  const actions = [
63
53
  { label: 'View Details', url: webUrl },
@@ -81,7 +71,7 @@ let LarkCardBuilder = class LarkCardBuilder {
81
71
  title: 'Duplicate Task Detected',
82
72
  fields: [
83
73
  { label: 'Existing Task', value: `#${existingTaskId}` },
84
- { label: 'Description', value: this.truncate(description) },
74
+ { label: 'Description', value: (0, string_utils_1.truncate)(description, 50) },
85
75
  ],
86
76
  actions: [
87
77
  {
@@ -96,100 +86,6 @@ let LarkCardBuilder = class LarkCardBuilder {
96
86
  },
97
87
  };
98
88
  }
99
- /**
100
- * Build an interactive stage card — confirm mode.
101
- * Displays prompt + "Continue" / "Cancel" buttons.
102
- */
103
- buildConfirmStageCard(taskId, stageIndex, prompt) {
104
- return {
105
- type: 'card',
106
- card: {
107
- title: `Task #${taskId} — Confirmation Required`,
108
- fields: [
109
- { label: 'Task', value: `#${taskId}` },
110
- { label: 'Prompt', value: prompt },
111
- ],
112
- actions: [
113
- {
114
- label: 'Continue',
115
- value: JSON.stringify({ taskId, stageIndex, result: 'confirm' }),
116
- },
117
- {
118
- label: 'Cancel',
119
- value: JSON.stringify({ taskId, stageIndex, result: 'cancel' }),
120
- },
121
- ],
122
- confirmMode: 'confirm',
123
- prompt,
124
- },
125
- };
126
- }
127
- /**
128
- * Build an interactive stage card — choice mode.
129
- * Displays prompt + one button per choice option.
130
- */
131
- buildChoiceStageCard(taskId, stageIndex, prompt, choices) {
132
- const actions = choices.map((choice) => ({
133
- label: choice.label,
134
- value: JSON.stringify({ taskId, stageIndex, result: choice.value }),
135
- }));
136
- return {
137
- type: 'card',
138
- card: {
139
- title: `Task #${taskId} — Choose an Option`,
140
- fields: [
141
- { label: 'Task', value: `#${taskId}` },
142
- { label: 'Prompt', value: prompt },
143
- ],
144
- actions,
145
- confirmMode: 'choice',
146
- choices,
147
- prompt,
148
- },
149
- };
150
- }
151
- /**
152
- * Build an interactive stage card — input mode.
153
- * Displays prompt + instruction to reply to the message.
154
- */
155
- buildInputStageCard(taskId, stageIndex, prompt) {
156
- const webUrl = `${getWebBaseUrl()}/tasks/${taskId}`;
157
- return {
158
- type: 'card',
159
- card: {
160
- title: `Task #${taskId} — Input Required`,
161
- fields: [
162
- { label: 'Task', value: `#${taskId}` },
163
- { label: 'Prompt', value: prompt },
164
- {
165
- label: 'Instructions',
166
- value: 'Please reply to this message with your input.',
167
- },
168
- ],
169
- actions: [
170
- { label: 'Enter via Web', url: webUrl },
171
- ],
172
- confirmMode: 'input',
173
- prompt,
174
- },
175
- };
176
- }
177
- /**
178
- * Build an "already selected" card to replace an interactive card after a
179
- * button has been clicked (card action callback response).
180
- */
181
- buildSelectedCard(taskId, selectedLabel) {
182
- return {
183
- type: 'card',
184
- card: {
185
- title: `Task #${taskId} — Selection Confirmed`,
186
- fields: [
187
- { label: 'Task', value: `#${taskId}` },
188
- { label: 'Selected', value: selectedLabel },
189
- ],
190
- },
191
- };
192
- }
193
89
  // ---------------------------------------------------------------------------
194
90
  // Lark-native card JSON converters
195
91
  // ---------------------------------------------------------------------------
@@ -1 +1 @@
1
- {"version":3,"file":"lark-card.builder.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark-card.builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lark-card.builder.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark-card.builder.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface ParsedCommand {
7
7
  args: {
8
8
  description?: string;
9
9
  project?: string;
10
- machine?: string;
10
+ worker?: string;
11
11
  taskId?: number;
12
12
  };
13
13
  }
@@ -23,8 +23,8 @@ export interface ParsedCommand {
23
23
  * @bot workspace #42
24
24
  * @bot logs #42
25
25
  * @bot confirm #42
26
- * @bot drain machine-name
27
- * @bot undrain machine-name
26
+ * @bot drain worker-name
27
+ * @bot undrain worker-name
28
28
  */
29
29
  export declare class LarkMessageParser {
30
30
  /**
@@ -37,7 +37,7 @@ export declare class LarkMessageParser {
37
37
  private parseWithOptionalTaskId;
38
38
  private parseWithRequiredTaskId;
39
39
  private parseList;
40
- private parseMachineCommand;
40
+ private parseWorkerCommand;
41
41
  /**
42
42
  * Extract a task ID from tokens. Recognises `#42` or bare `42`.
43
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lark-message.parser.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark-message.parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,iBAAiB;IAC5B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IA0DlC,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAejB"}
1
+ {"version":3,"file":"lark-message.parser.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark-message.parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,GAAG,MAAM,CAAC;IAC3B,IAAI,EAAE;QACJ,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;;;;;;;;;;;GAcG;AACH,qBACa,iBAAiB;IAC5B;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa;IAgElC,OAAO,CAAC,YAAY;IA6CpB,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,uBAAuB;IAW/B,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,kBAAkB;IAY1B;;OAEG;IACH,OAAO,CAAC,aAAa;IAUrB;;;OAGG;IACH,OAAO,CAAC,QAAQ;CAejB"}
@@ -21,8 +21,8 @@ const protocol_1 = require("@overlordai/protocol");
21
21
  * @bot workspace #42
22
22
  * @bot logs #42
23
23
  * @bot confirm #42
24
- * @bot drain machine-name
25
- * @bot undrain machine-name
24
+ * @bot drain worker-name
25
+ * @bot undrain worker-name
26
26
  */
27
27
  let LarkMessageParser = class LarkMessageParser {
28
28
  /**
@@ -63,9 +63,13 @@ let LarkMessageParser = class LarkMessageParser {
63
63
  case 'confirm':
64
64
  return this.parseWithRequiredTaskId(protocol_1.CommandType.CONFIRM, tokens.slice(1));
65
65
  case 'drain':
66
- return this.parseMachineCommand(protocol_1.CommandType.DRAIN, tokens.slice(1));
66
+ return this.parseWorkerCommand(protocol_1.CommandType.DRAIN, tokens.slice(1));
67
67
  case 'undrain':
68
- return this.parseMachineCommand(protocol_1.CommandType.UNDRAIN, tokens.slice(1));
68
+ return this.parseWorkerCommand(protocol_1.CommandType.UNDRAIN, tokens.slice(1));
69
+ case 'bind':
70
+ return { type: protocol_1.CommandType.BIND, args: {} };
71
+ case 'info':
72
+ return { type: protocol_1.CommandType.INFO, args: {} };
69
73
  default:
70
74
  return { type: 'help', args: {} };
71
75
  }
@@ -76,19 +80,21 @@ let LarkMessageParser = class LarkMessageParser {
76
80
  parseDevelop(tokens) {
77
81
  let description;
78
82
  let project;
79
- let machine;
83
+ let worker;
80
84
  let i = 0;
81
85
  while (i < tokens.length) {
82
86
  const token = tokens[i];
83
87
  if (token === '--project' || token === '-p') {
84
88
  i++;
85
- project = tokens[i];
89
+ if (i < tokens.length)
90
+ project = tokens[i];
86
91
  i++;
87
92
  continue;
88
93
  }
89
94
  if (token === '--on') {
90
95
  i++;
91
- machine = tokens[i];
96
+ if (i < tokens.length)
97
+ worker = tokens[i];
92
98
  i++;
93
99
  continue;
94
100
  }
@@ -106,7 +112,7 @@ let LarkMessageParser = class LarkMessageParser {
106
112
  args: {
107
113
  description: description.trim(),
108
114
  ...(project ? { project } : {}),
109
- ...(machine ? { machine } : {}),
115
+ ...(worker ? { worker } : {}),
110
116
  },
111
117
  };
112
118
  }
@@ -131,7 +137,8 @@ let LarkMessageParser = class LarkMessageParser {
131
137
  const token = tokens[i];
132
138
  if (token === '--project' || token === '-p') {
133
139
  i++;
134
- project = tokens[i];
140
+ if (i < tokens.length)
141
+ project = tokens[i];
135
142
  i++;
136
143
  continue;
137
144
  }
@@ -142,12 +149,12 @@ let LarkMessageParser = class LarkMessageParser {
142
149
  args: project ? { project } : {},
143
150
  };
144
151
  }
145
- parseMachineCommand(type, tokens) {
146
- const machineName = tokens[0];
147
- if (!machineName) {
152
+ parseWorkerCommand(type, tokens) {
153
+ const workerName = tokens[0];
154
+ if (!workerName) {
148
155
  return { type: 'help', args: {} };
149
156
  }
150
- return { type, args: { machine: machineName } };
157
+ return { type, args: { worker: workerName } };
151
158
  }
152
159
  // ---------------------------------------------------------------------------
153
160
  // Helpers
@@ -1 +1 @@
1
- {"version":3,"file":"lark-message.parser.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark-message.parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lark-message.parser.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark-message.parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lark-signature.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark-signature.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAOT"}
1
+ {"version":3,"file":"lark-signature.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark-signature.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAChB,OAAO,CAcT"}
@@ -47,6 +47,12 @@ const crypto = __importStar(require("node:crypto"));
47
47
  * sha256(timestamp + nonce + app_secret + rawBody)
48
48
  */
49
49
  function verifyLarkSignature(timestamp, nonce, body, secret, signature) {
50
+ // Reject stale requests (older than 5 minutes) to prevent replay attacks
51
+ const nowSeconds = Math.floor(Date.now() / 1000);
52
+ const tsSeconds = parseInt(timestamp, 10);
53
+ if (isNaN(tsSeconds) || Math.abs(nowSeconds - tsSeconds) > 300) {
54
+ return false;
55
+ }
50
56
  const content = timestamp + nonce + secret + body;
51
57
  const hash = crypto.createHash('sha256').update(content).digest('hex');
52
58
  const hashBuf = Buffer.from(hash, 'utf-8');