@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
@@ -1 +1 @@
1
- {"version":3,"file":"lark-signature.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark-signature.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kDAaC;AA1BD,oDAAsC;AAEtC;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,SAAiB,EACjB,KAAa,EACb,IAAY,EACZ,MAAc,EACd,SAAiB;IAEjB,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"lark-signature.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark-signature.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,kDAoBC;AAjCD,oDAAsC;AAEtC;;;;;;;;;;GAUG;AACH,SAAgB,mBAAmB,CACjC,SAAiB,EACjB,KAAa,EACb,IAAY,EACZ,MAAc,EACd,SAAiB;IAEjB,yEAAyE;IACzE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC1C,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,GAAG,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC/C,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC"}
@@ -1,12 +1,11 @@
1
- import type { Request } from 'express';
2
1
  import type { Command, DeveloperPublic } from '@overlordai/protocol';
3
- import { Platform } from '@overlordai/protocol';
2
+ import type { Request } from 'express';
4
3
  import type { IMessageAdapter, AdapterMessage } from '../adapter.interface';
5
4
  import { AdapterRegistry } from '../adapter.registry';
6
5
  import { BotRepository } from '../../database/repositories/bot.repository';
7
6
  import { DeveloperRepository } from '../../database/repositories/developer.repository';
8
7
  import { RedisService } from '../../redis/redis.service';
9
- import { DispatcherService } from '../../dispatcher/dispatcher.service';
8
+ import { TaskLifecycleService } from '../../dispatcher/task-lifecycle.service';
10
9
  import { CryptoService } from '../../common/crypto.service';
11
10
  import { LarkMessageParser } from './lark-message.parser';
12
11
  import { LarkCardBuilder } from './lark-card.builder';
@@ -20,22 +19,24 @@ export declare class LarkAdapter implements IMessageAdapter {
20
19
  private readonly redis;
21
20
  private readonly parser;
22
21
  private readonly cardBuilder;
23
- private readonly dispatcher;
22
+ private readonly taskLifecycleService;
24
23
  private readonly registry;
25
24
  private readonly cryptoService;
26
- readonly platform = Platform.LARK;
25
+ readonly platform: "lark";
27
26
  private readonly logger;
28
27
  /** Cache of Lark API clients by app_id. */
28
+ private static readonly CLIENT_TTL_MS;
29
29
  private readonly clients;
30
- constructor(botRepo: BotRepository, developerRepo: DeveloperRepository, redis: RedisService, parser: LarkMessageParser, cardBuilder: LarkCardBuilder, dispatcher: DispatcherService, registry: AdapterRegistry, cryptoService: CryptoService);
30
+ /** In-memory cache of chatId appId for binding-free replies. */
31
+ private readonly chatAppIds;
32
+ private static readonly CHAT_CACHE_MAX;
33
+ constructor(botRepo: BotRepository, developerRepo: DeveloperRepository, redis: RedisService, parser: LarkMessageParser, cardBuilder: LarkCardBuilder, taskLifecycleService: TaskLifecycleService, registry: AdapterRegistry, cryptoService: CryptoService);
31
34
  handleWebhook(req: Request): Promise<Command | null>;
32
35
  private handleMessage;
33
36
  private handleCardAction;
34
- private handleInputReply;
35
- sendMessage(chatId: string, content: AdapterMessage, stageIndex?: number): Promise<string>;
37
+ sendMessage(chatId: string, content: AdapterMessage): Promise<string>;
36
38
  updateMessage(msgId: string, content: AdapterMessage, appId?: string): Promise<void>;
37
39
  resolveUser(platformUid: string): Promise<DeveloperPublic | null>;
38
- storeInputMsgMapping(msgId: string, taskId: number, stageIndex: number): Promise<void>;
39
40
  /**
40
41
  * Extract the command text from a message, stripping the @bot mention.
41
42
  * Returns null if the message does not contain a @bot mention.
@@ -49,6 +50,10 @@ export declare class LarkAdapter implements IMessageAdapter {
49
50
  * Resolve an app_id from a bot instance ID (for chat binding lookups).
50
51
  */
51
52
  private resolveAppIdFromBinding;
53
+ /**
54
+ * Cache chatId → appId for binding-free replies (LRU eviction).
55
+ */
56
+ private rememberChatAppId;
52
57
  /**
53
58
  * Find any available Lark client for operations that don't have a specific app_id context.
54
59
  */
@@ -1 +1 @@
1
- {"version":3,"file":"lark.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAe,MAAM,sBAAsB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAoDtD;;;GAGG;AACH,qBACa,WAAY,YAAW,eAAe;IAQ/C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAE3B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAfhC,QAAQ,CAAC,QAAQ,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,2CAA2C;IAC3C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkC;gBAGvC,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,mBAAmB,EAClC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,iBAAiB,EAE7B,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,aAAa;IAOzC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YA4E5C,aAAa;YA6Gb,gBAAgB;YAwEhB,gBAAgB;IAoFxB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4E1F,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCpF,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAYjE,oBAAoB,CACxB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAkBzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAK/B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;YACW,eAAe;IA0B7B;;OAEG;YACW,eAAe;CAiB9B"}
1
+ {"version":3,"file":"lark.adapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGrE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG5D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAmDtD;;;GAGG;AACH,qBACa,WAAY,YAAW,eAAe;IAa/C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IAErC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,aAAa;IApBhC,QAAQ,CAAC,QAAQ,SAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAgC;IAEvD,2CAA2C;IAC3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAkB;IACvD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiE;IAEzF,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA6B;IACxD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAS;gBAG5B,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,mBAAmB,EAClC,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE,iBAAiB,EACzB,WAAW,EAAE,eAAe,EAC5B,oBAAoB,EAAE,oBAAoB,EAE1C,QAAQ,EAAE,eAAe,EACzB,aAAa,EAAE,aAAa;IAOzC,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;YA6C5C,aAAa;YAyJb,gBAAgB;IA+CxB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAqDrE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCpF,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IAQvE;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAsBzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAK/B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAM5B;;OAEG;YACW,eAAe;IA0B7B;;OAEG;YACW,eAAe;CAmB9B"}
@@ -47,42 +47,48 @@ var __param = (this && this.__param) || function (paramIndex, decorator) {
47
47
  var LarkAdapter_1;
48
48
  Object.defineProperty(exports, "__esModule", { value: true });
49
49
  exports.LarkAdapter = void 0;
50
+ const crypto = __importStar(require("node:crypto"));
51
+ const protocol_1 = require("@overlordai/protocol");
50
52
  const common_1 = require("@nestjs/common");
51
53
  const lark = __importStar(require("@larksuiteoapi/node-sdk"));
52
- const protocol_1 = require("@overlordai/protocol");
53
54
  const adapter_registry_1 = require("../adapter.registry");
54
55
  const bot_repository_1 = require("../../database/repositories/bot.repository");
55
56
  const developer_repository_1 = require("../../database/repositories/developer.repository");
56
57
  const redis_service_1 = require("../../redis/redis.service");
57
- const dispatcher_service_1 = require("../../dispatcher/dispatcher.service");
58
+ const task_lifecycle_service_1 = require("../../dispatcher/task-lifecycle.service");
58
59
  const crypto_service_1 = require("../../common/crypto.service");
60
+ const config_1 = require("../../common/config");
59
61
  const lark_message_parser_1 = require("./lark-message.parser");
60
62
  const lark_card_builder_1 = require("./lark-card.builder");
61
- const lark_signature_1 = require("./lark-signature");
62
63
  /**
63
64
  * Lark Adapter — handles Lark webhooks, sends/updates messages,
64
65
  * resolves users. Supports multiple bots via app_id routing.
65
66
  */
66
- let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
67
+ let LarkAdapter = class LarkAdapter {
68
+ static { LarkAdapter_1 = this; }
67
69
  botRepo;
68
70
  developerRepo;
69
71
  redis;
70
72
  parser;
71
73
  cardBuilder;
72
- dispatcher;
74
+ taskLifecycleService;
73
75
  registry;
74
76
  cryptoService;
75
77
  platform = protocol_1.Platform.LARK;
76
78
  logger = new common_1.Logger(LarkAdapter_1.name);
77
79
  /** Cache of Lark API clients by app_id. */
80
+ static CLIENT_TTL_MS = 60 * 60 * 1000; // 1 hour
78
81
  clients = new Map();
79
- constructor(botRepo, developerRepo, redis, parser, cardBuilder, dispatcher, registry, cryptoService) {
82
+ /** In-memory cache of chatId appId for binding-free replies. */
83
+ chatAppIds = new Map();
84
+ static CHAT_CACHE_MAX = 1_000;
85
+ constructor(botRepo, developerRepo, redis, parser, cardBuilder, taskLifecycleService, registry, cryptoService) {
80
86
  this.botRepo = botRepo;
81
87
  this.developerRepo = developerRepo;
82
88
  this.redis = redis;
83
89
  this.parser = parser;
84
90
  this.cardBuilder = cardBuilder;
85
- this.dispatcher = dispatcher;
91
+ this.taskLifecycleService = taskLifecycleService;
86
92
  this.registry = registry;
87
93
  this.cryptoService = cryptoService;
88
94
  }
@@ -103,7 +109,6 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
103
109
  }
104
110
  const appId = header.app_id;
105
111
  const eventType = header.event_type;
106
- const eventId = header.event_id;
107
112
  // 2. Look up bot instance by app_id
108
113
  const botInstance = this.botRepo.findByAppId('lark', appId);
109
114
  if (!botInstance) {
@@ -112,35 +117,7 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
112
117
  }
113
118
  // Register this app_id in the adapter registry
114
119
  this.registry.registerAppId(appId, this);
115
- // 3. Verify signature — mandatory when webhookToken is configured
116
- const timestamp = req.headers['x-lark-request-timestamp'] ?? '';
117
- const nonce = req.headers['x-lark-request-nonce'] ?? '';
118
- const signature = req.headers['x-lark-signature'] ?? '';
119
- // NOTE: JSON.stringify(req.body) may not match the original raw bytes sent by Lark
120
- // (e.g. key ordering, whitespace). For accurate signature verification, configure
121
- // NestJS to preserve the raw body (e.g. rawBody middleware or @RawBody() decorator)
122
- // and use req.rawBody here instead.
123
- const rawBody = req.rawBody
124
- ?? (typeof req.body === 'string' ? req.body : JSON.stringify(req.body));
125
- // Decrypt appSecret — stored AES-encrypted in DB
126
- const decryptedSecret = this.cryptoService.decryptAes(botInstance.appSecret);
127
- if (botInstance.webhookToken) {
128
- // When webhookToken is configured, signature verification is mandatory
129
- if (!signature) {
130
- this.logger.warn(`Missing signature for app_id: ${appId} (webhookToken configured, signature required)`);
131
- return null;
132
- }
133
- if (!(0, lark_signature_1.verifyLarkSignature)(timestamp, nonce, rawBody, decryptedSecret, signature)) {
134
- this.logger.warn(`Invalid signature for app_id: ${appId}`);
135
- return null;
136
- }
137
- }
138
- else if (signature && !(0, lark_signature_1.verifyLarkSignature)(timestamp, nonce, rawBody, decryptedSecret, signature)) {
139
- // When webhookToken is not configured, still verify if a signature is present
140
- this.logger.warn(`Invalid signature for app_id: ${appId}`);
141
- return null;
142
- }
143
- // 4. Route by event type (event dedup is handled by the dispatcher's handleCommand)
120
+ // Route by event type
144
121
  if (eventType === 'card.action.trigger') {
145
122
  return this.handleCardAction(body, appId);
146
123
  }
@@ -160,6 +137,8 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
160
137
  this.logger.warn('Message event missing message field');
161
138
  return null;
162
139
  }
140
+ // Cache chatId → appId for binding-free replies
141
+ this.rememberChatAppId(message.chat_id, appId);
163
142
  // Only handle text messages
164
143
  if (message.message_type !== 'text') {
165
144
  this.logger.debug(`Skipping non-text message type: ${message.message_type}`);
@@ -185,10 +164,6 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
185
164
  const senderUid = event?.sender?.sender_id?.open_id ??
186
165
  event?.sender?.sender_id?.user_id ??
187
166
  '';
188
- // Check if this is a reply to an input-mode notification (parent_id handling)
189
- if (message.parent_id) {
190
- return this.handleInputReply(message, commandText, appId, senderUid || undefined);
191
- }
192
167
  // Parse the command
193
168
  const parsed = this.parser.parse(commandText);
194
169
  if (parsed.type === 'help') {
@@ -200,10 +175,49 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
200
175
  this.logger.warn('Message event missing sender ID');
201
176
  return null;
202
177
  }
178
+ // Allow bind command from unlinked users
179
+ if (parsed.type === protocol_1.CommandType.BIND) {
180
+ // In group chats, don't send bind link (visible to all — security risk)
181
+ if (message.chat_type !== 'p2p') {
182
+ await this.sendTextMessage(message.chat_id, 'For security, please send "bind" to me in a direct message.', appId);
183
+ return null;
184
+ }
185
+ // Check if already linked
186
+ const existingDev = this.developerRepo.findByPlatformUid(protocol_1.Platform.LARK, senderUid);
187
+ if (existingDev) {
188
+ await this.sendTextMessage(message.chat_id, `Your Lark account is already linked to: ${existingDev.name}`, appId);
189
+ return null;
190
+ }
191
+ const token = crypto.randomBytes(16).toString('hex');
192
+ const data = JSON.stringify({
193
+ platform: protocol_1.Platform.LARK,
194
+ platformUid: senderUid,
195
+ });
196
+ await this.redis.setex(`bind_token:${token}`, 600, data);
197
+ const baseUrl = (0, config_1.getWebUrl)();
198
+ const bindUrl = `${baseUrl}/bind?token=${token}`;
199
+ await this.sendTextMessage(message.chat_id, `Click to link your account:\n${bindUrl}`, appId);
200
+ return null;
201
+ }
202
+ if (parsed.type === protocol_1.CommandType.INFO) {
203
+ const linkedDev = this.developerRepo.findByPlatformUid(protocol_1.Platform.LARK, senderUid);
204
+ const chatBinding = this.botRepo.findBindingByChatId(message.chat_id);
205
+ const lines = [
206
+ `Chat ID: ${message.chat_id}`,
207
+ `Chat Type: ${message.chat_type ?? 'unknown'}`,
208
+ `Your Platform UID: ${senderUid}`,
209
+ `Account: ${linkedDev ? `${linkedDev.name} (linked)` : 'not linked — send "bind" to link'}`,
210
+ ];
211
+ if (chatBinding?.projectKey) {
212
+ lines.push(`Bound Project: ${chatBinding.projectKey}`);
213
+ }
214
+ await this.sendTextMessage(message.chat_id, lines.join('\n'), appId);
215
+ return null;
216
+ }
203
217
  const developer = await this.resolveUser(senderUid);
204
218
  if (!developer) {
205
219
  this.logger.warn(`Cannot resolve user for platform UID: ${senderUid}`);
206
- await this.sendTextMessage(message.chat_id, 'Sorry, your Lark account is not linked to an Overlord developer account.', appId);
220
+ await this.sendTextMessage(message.chat_id, 'Your Lark account is not linked. Send "bind" to get a link to connect your account.', appId);
207
221
  return null;
208
222
  }
209
223
  // Resolve default project from chat binding if not specified
@@ -211,8 +225,7 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
211
225
  if (!parsed.args.project && chatBinding?.projectKey) {
212
226
  parsed.args.project = chatBinding.projectKey;
213
227
  }
214
- // Build Command
215
- const command = {
228
+ return {
216
229
  type: parsed.type,
217
230
  args: parsed.args,
218
231
  platform: protocol_1.Platform.LARK,
@@ -232,7 +245,6 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
232
245
  },
233
246
  eventId: body.header?.event_id ?? '',
234
247
  };
235
- return command;
236
248
  }
237
249
  // ---------------------------------------------------------------------------
238
250
  // Handle card.action.trigger (interactive stage button callback)
@@ -244,108 +256,33 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
244
256
  return null;
245
257
  }
246
258
  const value = action.value;
247
- // Handle stage confirm actions
248
- if (value.taskId !== undefined && value.stageIndex !== undefined && value.result !== undefined) {
249
- // Authorization: resolve the Lark sender and verify they own the task or are an admin
250
- const senderOpenId = body.event?.sender?.sender_id?.open_id ?? '';
251
- if (!senderOpenId) {
252
- this.logger.warn(`Card action for task #${value.taskId} has no sender open_id — rejecting`);
253
- return null;
254
- }
255
- const developer = await this.resolveUser(senderOpenId);
259
+ if (value.action && value.confirmKey) {
260
+ const senderUid = body.event?.sender?.sender_id?.open_id ??
261
+ body.event?.sender?.sender_id?.user_id ??
262
+ '';
263
+ const developer = senderUid ? await this.resolveUser(senderUid) : null;
256
264
  if (!developer) {
257
- this.logger.warn(`Card action for task #${value.taskId} from unknown Lark user ${senderOpenId} — rejecting`);
258
- return null;
259
- }
260
- const task = this.dispatcher.getTask(value.taskId);
261
- if (!task) {
262
- this.logger.warn(`Card action references non-existent task #${value.taskId}`);
263
- return null;
264
- }
265
- const isOwner = task.createdBy === developer.id || task.developerId === developer.id;
266
- const isAdmin = developer.role === 'admin';
267
- if (!isOwner && !isAdmin) {
268
- this.logger.warn(`Card action for task #${value.taskId} rejected: developer ${developer.id} (${developer.name}) is neither the task owner nor an admin`);
265
+ this.logger.warn(`Card action from unknown Lark user ${senderUid}`);
269
266
  return null;
270
267
  }
271
268
  try {
272
- await this.dispatcher.confirmStage(value.taskId, value.stageIndex, value.result);
273
- this.logger.log(`Stage confirm forwarded: task #${value.taskId}, stage ${value.stageIndex}, result=${value.result} by developer ${developer.id}`);
269
+ await this.taskLifecycleService.confirmByKey(value.confirmKey, value.action === 'confirm', developer.id);
274
270
  }
275
271
  catch (err) {
276
- this.logger.error(`Failed to confirm stage for task #${value.taskId}: ${err instanceof Error ? err.message : String(err)}`);
272
+ this.logger.error(`Failed to handle confirm action: ${(0, protocol_1.getErrorMessage)(err)}`);
277
273
  }
278
- // Card action callbacks don't produce a Command for the dispatcher pipeline
279
- return null;
280
274
  }
281
- this.logger.debug(`Unhandled card action value: ${JSON.stringify(value)}`);
282
- return null;
283
- }
284
- // ---------------------------------------------------------------------------
285
- // Handle input-mode reply messages
286
- // ---------------------------------------------------------------------------
287
- async handleInputReply(message, text, _appId, senderOpenId) {
288
- const parentId = message.parent_id;
289
- if (!parentId)
290
- return null;
291
- // Look up if parent_id corresponds to an input-mode notification
292
- const inputKey = `input_msg:${parentId}`;
293
- const raw = await this.redis.get(inputKey);
294
- if (!raw) {
295
- // Not a reply to an input-mode message — ignore
296
- return null;
297
- }
298
- let inputData;
299
- try {
300
- inputData = JSON.parse(raw);
301
- }
302
- catch {
303
- return null;
304
- }
305
- // Authorization: verify the sender owns the task or is an admin
306
- if (!senderOpenId) {
307
- this.logger.warn(`Input reply for task #${inputData.taskId} has no sender — rejecting`);
308
- return null;
309
- }
310
- const developer = await this.resolveUser(senderOpenId);
311
- if (!developer) {
312
- this.logger.warn(`Input reply for task #${inputData.taskId} from unknown Lark user ${senderOpenId} — rejecting`);
313
- return null;
314
- }
315
- const task = this.dispatcher.getTask(inputData.taskId);
316
- if (!task) {
317
- this.logger.warn(`Input reply references non-existent task #${inputData.taskId}`);
318
- return null;
319
- }
320
- const isOwner = task.createdBy === developer.id || task.developerId === developer.id;
321
- const isAdmin = developer.role === 'admin';
322
- if (!isOwner && !isAdmin) {
323
- this.logger.warn(`Input reply for task #${inputData.taskId} rejected: developer ${developer.id} (${developer.name}) is neither the task owner nor an admin`);
324
- return null;
325
- }
326
- const replyText = text.trim();
327
- if (!replyText) {
328
- this.logger.debug('Empty reply to input-mode message, ignoring');
329
- return null;
330
- }
331
- try {
332
- await this.dispatcher.confirmStage(inputData.taskId, inputData.stageIndex, replyText);
333
- this.logger.log(`Input reply forwarded: task #${inputData.taskId}, stage ${inputData.stageIndex} by developer ${developer.id}`);
334
- }
335
- catch (err) {
336
- this.logger.error(`Failed to forward input reply for task #${inputData.taskId}: ${err instanceof Error ? err.message : String(err)}`);
337
- }
338
- // Clean up the mapping
339
- await this.redis.del(inputKey);
340
275
  return null;
341
276
  }
342
277
  // ---------------------------------------------------------------------------
343
278
  // sendMessage
344
279
  // ---------------------------------------------------------------------------
345
- async sendMessage(chatId, content, stageIndex) {
346
- // Determine the app_id from the chat binding
280
+ async sendMessage(chatId, content) {
281
+ // Determine the app_id from the chat binding, falling back to in-memory cache
347
282
  const binding = this.botRepo.findBindingByChatId(chatId);
348
- const appId = binding ? this.resolveAppIdFromBinding(binding.botInstanceId) : null;
283
+ const appId = binding
284
+ ? this.resolveAppIdFromBinding(binding.botInstanceId)
285
+ : this.chatAppIds.get(chatId) ?? null;
349
286
  if (!appId) {
350
287
  this.logger.warn(`No bot bound to chat: ${chatId}`);
351
288
  return '';
@@ -375,31 +312,10 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
375
312
  },
376
313
  params: { receive_id_type: 'chat_id' },
377
314
  });
378
- const msgId = resp?.data?.message_id ?? '';
379
- // If this is an input-mode card, store the mapping for reply detection
380
- if (content.card?.confirmMode === 'input' && msgId) {
381
- const taskIdMatch = content.card.fields.find((f) => f.label === 'Task');
382
- const taskIdStr = taskIdMatch?.value.replace('#', '') ?? '';
383
- const taskId = parseInt(taskIdStr, 10);
384
- if (!isNaN(taskId)) {
385
- // Use the stageIndex parameter if provided, otherwise try to extract from card fields
386
- let resolvedStageIndex = stageIndex ?? 0;
387
- if (stageIndex === undefined) {
388
- const stageField = content.card.fields.find((f) => f.label === 'Stage');
389
- if (stageField) {
390
- const parsed = parseInt(stageField.value, 10);
391
- if (!isNaN(parsed))
392
- resolvedStageIndex = parsed;
393
- }
394
- }
395
- await this.redis.setex(`input_msg:${msgId}`, 1800, // 30 minutes TTL
396
- JSON.stringify({ taskId, stageIndex: resolvedStageIndex }));
397
- }
398
- }
399
- return msgId;
315
+ return resp?.data?.message_id ?? '';
400
316
  }
401
317
  catch (err) {
402
- this.logger.error(`Failed to send message to chat ${chatId}: ${err instanceof Error ? err.message : String(err)}`);
318
+ this.logger.error(`Failed to send message to chat ${chatId}: ${(0, protocol_1.getErrorMessage)(err)}`);
403
319
  return '';
404
320
  }
405
321
  }
@@ -432,25 +348,14 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
432
348
  });
433
349
  }
434
350
  catch (err) {
435
- this.logger.error(`Failed to update message ${msgId}: ${err instanceof Error ? err.message : String(err)}`);
351
+ this.logger.error(`Failed to update message ${msgId}: ${(0, protocol_1.getErrorMessage)(err)}`);
436
352
  }
437
353
  }
438
354
  // ---------------------------------------------------------------------------
439
355
  // resolveUser
440
356
  // ---------------------------------------------------------------------------
441
357
  async resolveUser(platformUid) {
442
- const dev = this.developerRepo.findByPlatformUid('lark', platformUid);
443
- if (!dev)
444
- return null;
445
- // Strip sensitive fields — resolveUser results are used for authorization
446
- // checks only (id, name, role) and must never leak passwordHash/totpSecret.
447
- return developer_repository_1.DeveloperRepository.stripSecrets(dev);
448
- }
449
- // ---------------------------------------------------------------------------
450
- // Public helper: Store input message mapping for reply detection
451
- // ---------------------------------------------------------------------------
452
- async storeInputMsgMapping(msgId, taskId, stageIndex) {
453
- await this.redis.setex(`input_msg:${msgId}`, 1800, JSON.stringify({ taskId, stageIndex }));
358
+ return this.developerRepo.resolveByPlatformUid(protocol_1.Platform.LARK, platformUid);
454
359
  }
455
360
  // ---------------------------------------------------------------------------
456
361
  // Internal helpers
@@ -481,8 +386,12 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
481
386
  */
482
387
  getOrCreateClient(appId) {
483
388
  const existing = this.clients.get(appId);
389
+ if (existing && Date.now() - existing.createdAt < LarkAdapter_1.CLIENT_TTL_MS) {
390
+ return existing.client;
391
+ }
392
+ // Stale or missing — (re)create
484
393
  if (existing)
485
- return existing;
394
+ this.clients.delete(appId);
486
395
  const botInstance = this.botRepo.findByAppId('lark', appId);
487
396
  if (!botInstance)
488
397
  return null;
@@ -492,7 +401,7 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
492
401
  appSecret: decryptedSecret,
493
402
  appType: lark.AppType.SelfBuild,
494
403
  });
495
- this.clients.set(appId, client);
404
+ this.clients.set(appId, { client, createdAt: Date.now() });
496
405
  return client;
497
406
  }
498
407
  /**
@@ -502,13 +411,24 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
502
411
  const bot = this.botRepo.findById(botInstanceId);
503
412
  return bot?.appId ?? null;
504
413
  }
414
+ /**
415
+ * Cache chatId → appId for binding-free replies (LRU eviction).
416
+ */
417
+ rememberChatAppId(chatId, appId) {
418
+ this.chatAppIds.set(chatId, appId);
419
+ if (this.chatAppIds.size > LarkAdapter_1.CHAT_CACHE_MAX) {
420
+ const firstKey = this.chatAppIds.keys().next().value;
421
+ if (firstKey)
422
+ this.chatAppIds.delete(firstKey);
423
+ }
424
+ }
505
425
  /**
506
426
  * Find any available Lark client for operations that don't have a specific app_id context.
507
427
  */
508
428
  findClientForMessage() {
509
429
  // Return the first available client
510
430
  const first = this.clients.values().next();
511
- return first.done ? null : first.value;
431
+ return first.done ? null : first.value.client;
512
432
  }
513
433
  /**
514
434
  * Send a plain text message (internal helper).
@@ -529,7 +449,7 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
529
449
  return resp?.data?.message_id ?? '';
530
450
  }
531
451
  catch (err) {
532
- this.logger.error(`Failed to send text message: ${err instanceof Error ? err.message : String(err)}`);
452
+ this.logger.error(`Failed to send text message: ${(0, protocol_1.getErrorMessage)(err)}`);
533
453
  return '';
534
454
  }
535
455
  }
@@ -539,7 +459,7 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
539
459
  async sendHelpMessage(chatId, appId) {
540
460
  const helpText = [
541
461
  'Available commands:',
542
- ' develop "description" [--project key] [--on machine]',
462
+ ' develop "description" [--project key] [--on worker]',
543
463
  ' progress [#taskId]',
544
464
  ' cancel #taskId',
545
465
  ' retry #taskId',
@@ -547,8 +467,10 @@ let LarkAdapter = LarkAdapter_1 = class LarkAdapter {
547
467
  ' workspace #taskId',
548
468
  ' logs #taskId',
549
469
  ' confirm #taskId',
550
- ' drain machine-name',
551
- ' undrain machine-name',
470
+ ' drain worker-name',
471
+ ' undrain worker-name',
472
+ ' bind — link your Lark account to Overlord',
473
+ ' info — show chat and user info for this channel',
552
474
  ].join('\n');
553
475
  await this.sendTextMessage(chatId, helpText, appId);
554
476
  }
@@ -562,7 +484,7 @@ exports.LarkAdapter = LarkAdapter = LarkAdapter_1 = __decorate([
562
484
  redis_service_1.RedisService,
563
485
  lark_message_parser_1.LarkMessageParser,
564
486
  lark_card_builder_1.LarkCardBuilder,
565
- dispatcher_service_1.DispatcherService,
487
+ task_lifecycle_service_1.TaskLifecycleService,
566
488
  adapter_registry_1.AdapterRegistry,
567
489
  crypto_service_1.CryptoService])
568
490
  ], LarkAdapter);
@@ -1 +1 @@
1
- {"version":3,"file":"lark.adapter.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark.adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lark.adapter.js","sourceRoot":"","sources":["../../../src/adapters/lark/lark.adapter.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,8 @@ import type { Request, Response } from 'express';
2
2
  import { LarkAdapter } from './lark.adapter';
3
3
  import { DispatcherService } from '../../dispatcher/dispatcher.service';
4
4
  import { LarkCardBuilder } from './lark-card.builder';
5
+ import { BotRepository } from '../../database/repositories/bot.repository';
6
+ import { CryptoService } from '../../common/crypto.service';
5
7
  /**
6
8
  * POST /webhook/lark
7
9
  *
@@ -14,8 +16,15 @@ export declare class LarkController {
14
16
  private readonly larkAdapter;
15
17
  private readonly dispatcher;
16
18
  private readonly cardBuilder;
19
+ private readonly botRepo;
20
+ private readonly cryptoService;
17
21
  private readonly logger;
18
- constructor(larkAdapter: LarkAdapter, dispatcher: DispatcherService, cardBuilder: LarkCardBuilder);
22
+ constructor(larkAdapter: LarkAdapter, dispatcher: DispatcherService, cardBuilder: LarkCardBuilder, botRepo: BotRepository, cryptoService: CryptoService);
23
+ /**
24
+ * Verify the Lark webhook request signature.
25
+ * Returns true if the signature is valid, false otherwise.
26
+ */
27
+ private verifyRequest;
19
28
  handleWebhook(req: Request, res: Response): Promise<void>;
20
29
  }
21
30
  //# sourceMappingURL=lark.controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"lark.controller.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark.controller.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD;;;;;;;GAOG;AACH,qBACa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAL9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAGvC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,eAAe;IAIzC,aAAa,CACV,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;CAoFjB"}
1
+ {"version":3,"file":"lark.controller.d.ts","sourceRoot":"","sources":["../../../src/adapters/lark/lark.controller.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAW5D;;;;;;;GAOG;AACH,qBACa,cAAc;IAIvB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAPhC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAGvC,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,iBAAiB,EAC7B,WAAW,EAAE,eAAe,EAC5B,OAAO,EAAE,aAAa,EACtB,aAAa,EAAE,aAAa;IAG/C;;;OAGG;IACH,OAAO,CAAC,aAAa;IAuBf,aAAa,CACV,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;CA0EjB"}