crewly 1.6.5 → 1.7.0

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 (267) hide show
  1. package/config/roles/auditor/prompt.md +24 -0
  2. package/config/roles/developer/prompt.md +2 -1
  3. package/config/roles/orchestrator/prompt.md +74 -2
  4. package/config/roles/team-leader/prompt.md +6 -0
  5. package/config/skills/agent/core/create-request/SKILL.md +1 -1
  6. package/config/skills/agent/core/create-request/execute.sh +29 -2
  7. package/config/skills/agent/core/create-request/execute.test.sh +168 -0
  8. package/config/skills/agent/core/report-status/SKILL.md +8 -1
  9. package/config/skills/agent/core/report-status/execute.sh +23 -1
  10. package/config/skills/orchestrator/heartbeat/execute.sh +48 -6
  11. package/config/sops/common/mid-flight-milestone-surface.md +128 -0
  12. package/config/sops/common/owner-facing-communication.md +46 -2
  13. package/config/sops/developer/git-workflow.md +33 -0
  14. package/dist/backend/backend/src/constants.d.ts +12 -0
  15. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  16. package/dist/backend/backend/src/constants.js +12 -0
  17. package/dist/backend/backend/src/constants.js.map +1 -1
  18. package/dist/backend/backend/src/controllers/browser/browser.controller.js +2 -2
  19. package/dist/backend/backend/src/controllers/browser/browser.controller.js.map +1 -1
  20. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  21. package/dist/backend/backend/src/controllers/chat/chat.controller.js +6 -0
  22. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  23. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts +73 -0
  24. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.d.ts.map +1 -1
  25. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js +128 -0
  26. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.controller.js.map +1 -1
  27. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts +3 -0
  28. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.d.ts.map +1 -1
  29. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js +8 -0
  30. package/dist/backend/backend/src/controllers/chat-v2/chat-v2.routes.js.map +1 -1
  31. package/dist/backend/backend/src/controllers/session/session.controller.d.ts.map +1 -1
  32. package/dist/backend/backend/src/controllers/session/session.controller.js +50 -8
  33. package/dist/backend/backend/src/controllers/session/session.controller.js.map +1 -1
  34. package/dist/backend/backend/src/controllers/slack/slack.controller.d.ts.map +1 -1
  35. package/dist/backend/backend/src/controllers/slack/slack.controller.js +215 -94
  36. package/dist/backend/backend/src/controllers/slack/slack.controller.js.map +1 -1
  37. package/dist/backend/backend/src/index.d.ts +1 -0
  38. package/dist/backend/backend/src/index.d.ts.map +1 -1
  39. package/dist/backend/backend/src/index.js +185 -36
  40. package/dist/backend/backend/src/index.js.map +1 -1
  41. package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
  42. package/dist/backend/backend/src/routes/api.routes.js +11 -1
  43. package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
  44. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +42 -0
  45. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  46. package/dist/backend/backend/src/services/agent/agent-registration.service.js +218 -6
  47. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  48. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts +61 -1
  49. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.d.ts.map +1 -1
  50. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js +117 -9
  51. package/dist/backend/backend/src/services/agent/crewly-agent/agent-runner.service.js.map +1 -1
  52. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts +33 -0
  53. package/dist/backend/backend/src/services/agent/idle-detection.service.d.ts.map +1 -1
  54. package/dist/backend/backend/src/services/agent/idle-detection.service.js +108 -4
  55. package/dist/backend/backend/src/services/agent/idle-detection.service.js.map +1 -1
  56. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts +1 -1
  57. package/dist/backend/backend/src/services/browser/browser-proxy.service.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/browser/browser-proxy.service.js +40 -2
  59. package/dist/backend/backend/src/services/browser/browser-proxy.service.js.map +1 -1
  60. package/dist/backend/backend/src/services/chat/chat.service.d.ts +48 -331
  61. package/dist/backend/backend/src/services/chat/chat.service.d.ts.map +1 -1
  62. package/dist/backend/backend/src/services/chat/chat.service.js +261 -712
  63. package/dist/backend/backend/src/services/chat/chat.service.js.map +1 -1
  64. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts +82 -1
  65. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.d.ts.map +1 -1
  66. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js +120 -2
  67. package/dist/backend/backend/src/services/chat-v2/chat-v2.dispatcher.service.js.map +1 -1
  68. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts +114 -0
  69. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.d.ts.map +1 -0
  70. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js +182 -0
  71. package/dist/backend/backend/src/services/chat-v2/chat-v2.providers.js.map +1 -0
  72. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts +188 -0
  73. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.d.ts.map +1 -0
  74. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js +434 -0
  75. package/dist/backend/backend/src/services/chat-v2/chat-v2.relay-adapter.service.js.map +1 -0
  76. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts +401 -5
  77. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.d.ts.map +1 -1
  78. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js +619 -3
  79. package/dist/backend/backend/src/services/chat-v2/chat-v2.service.js.map +1 -1
  80. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts +93 -0
  81. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.d.ts.map +1 -0
  82. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js +138 -0
  83. package/dist/backend/backend/src/services/chat-v2/legacy-dto.utils.js.map +1 -0
  84. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts +46 -0
  85. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.d.ts.map +1 -1
  86. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js +75 -0
  87. package/dist/backend/backend/src/services/chat-v2/sqlite/channel.store.js.map +1 -1
  88. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts +10 -2
  89. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.d.ts.map +1 -1
  90. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js +178 -10
  91. package/dist/backend/backend/src/services/chat-v2/sqlite/chat-db.js.map +1 -1
  92. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts +37 -0
  93. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.d.ts.map +1 -1
  94. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js +71 -0
  95. package/dist/backend/backend/src/services/chat-v2/sqlite/message.store.js.map +1 -1
  96. package/dist/backend/backend/src/services/chat-v2/types.d.ts +33 -1
  97. package/dist/backend/backend/src/services/chat-v2/types.d.ts.map +1 -1
  98. package/dist/backend/backend/src/services/chat-v2/types.js +1 -1
  99. package/dist/backend/backend/src/services/chat-v2/types.js.map +1 -1
  100. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts +22 -0
  101. package/dist/backend/backend/src/services/cloud/cloud-sync.service.d.ts.map +1 -1
  102. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js +71 -1
  103. package/dist/backend/backend/src/services/cloud/cloud-sync.service.js.map +1 -1
  104. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts +102 -1
  105. package/dist/backend/backend/src/services/cloud/cloud-sync.types.d.ts.map +1 -1
  106. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js +61 -0
  107. package/dist/backend/backend/src/services/cloud/cloud-sync.types.js.map +1 -1
  108. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts +21 -3
  109. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.d.ts.map +1 -1
  110. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js +47 -13
  111. package/dist/backend/backend/src/services/cloud/device-auto-discovery.service.js.map +1 -1
  112. package/dist/backend/backend/src/services/core/system-health.util.d.ts +25 -4
  113. package/dist/backend/backend/src/services/core/system-health.util.d.ts.map +1 -1
  114. package/dist/backend/backend/src/services/core/system-health.util.js +30 -5
  115. package/dist/backend/backend/src/services/core/system-health.util.js.map +1 -1
  116. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +22 -11
  118. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  119. package/dist/backend/backend/src/services/memory/memory.service.d.ts.map +1 -1
  120. package/dist/backend/backend/src/services/memory/memory.service.js +35 -3
  121. package/dist/backend/backend/src/services/memory/memory.service.js.map +1 -1
  122. package/dist/backend/backend/src/services/messaging/message-replay.service.d.ts +2 -4
  123. package/dist/backend/backend/src/services/messaging/message-replay.service.d.ts.map +1 -1
  124. package/dist/backend/backend/src/services/messaging/message-replay.service.js +22 -12
  125. package/dist/backend/backend/src/services/messaging/message-replay.service.js.map +1 -1
  126. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +25 -5
  128. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  129. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.d.ts.map +1 -1
  130. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js +13 -3
  131. package/dist/backend/backend/src/services/monitoring/system-resource-alert.service.js.map +1 -1
  132. package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.d.ts +99 -0
  133. package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.d.ts.map +1 -0
  134. package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.js +225 -0
  135. package/dist/backend/backend/src/services/notification/milestone-notification.subscriber.js.map +1 -0
  136. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts +39 -18
  137. package/dist/backend/backend/src/services/reconciler/reconcile-rules.d.ts.map +1 -1
  138. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js +60 -32
  139. package/dist/backend/backend/src/services/reconciler/reconcile-rules.js.map +1 -1
  140. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts +134 -0
  141. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.d.ts.map +1 -1
  142. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js +416 -13
  143. package/dist/backend/backend/src/services/reconciler/reconciler-data-provider.js.map +1 -1
  144. package/dist/backend/backend/src/services/reconciler/reconciler.service.d.ts.map +1 -1
  145. package/dist/backend/backend/src/services/reconciler/reconciler.service.js +73 -7
  146. package/dist/backend/backend/src/services/reconciler/reconciler.service.js.map +1 -1
  147. package/dist/backend/backend/src/services/session/session-handoff.service.d.ts.map +1 -1
  148. package/dist/backend/backend/src/services/session/session-handoff.service.js +30 -4
  149. package/dist/backend/backend/src/services/session/session-handoff.service.js.map +1 -1
  150. package/dist/backend/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  151. package/dist/backend/backend/src/services/skill/skill-executor.service.js +13 -1
  152. package/dist/backend/backend/src/services/skill/skill-executor.service.js.map +1 -1
  153. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.d.ts.map +1 -1
  154. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js +9 -6
  155. package/dist/backend/backend/src/services/slack/notify-reconciliation.service.js.map +1 -1
  156. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +21 -2
  157. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +120 -46
  159. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  160. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  161. package/dist/backend/backend/src/services/slack/slack.service.js +49 -0
  162. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  163. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts +33 -2
  164. package/dist/backend/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  165. package/dist/backend/backend/src/services/task-pool/task-pool.service.js +160 -8
  166. package/dist/backend/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  167. package/dist/backend/backend/src/services/v3/cascade-request-status.d.ts.map +1 -1
  168. package/dist/backend/backend/src/services/v3/cascade-request-status.js +55 -2
  169. package/dist/backend/backend/src/services/v3/cascade-request-status.js.map +1 -1
  170. package/dist/backend/backend/src/services/v3/mission-executor.service.d.ts.map +1 -1
  171. package/dist/backend/backend/src/services/v3/mission-executor.service.js +9 -1
  172. package/dist/backend/backend/src/services/v3/mission-executor.service.js.map +1 -1
  173. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.d.ts.map +1 -1
  174. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js +28 -3
  175. package/dist/backend/backend/src/services/v3/request-decompose.subscriber.js.map +1 -1
  176. package/dist/backend/backend/src/services/v3/request-sla.subscriber.d.ts.map +1 -1
  177. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js +5 -2
  178. package/dist/backend/backend/src/services/v3/request-sla.subscriber.js.map +1 -1
  179. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.d.ts.map +1 -1
  180. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js +57 -15
  181. package/dist/backend/backend/src/services/v3/request-status-update.subscriber.js.map +1 -1
  182. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts +39 -0
  183. package/dist/backend/backend/src/services/v3/trigger-engine.service.d.ts.map +1 -1
  184. package/dist/backend/backend/src/services/v3/trigger-engine.service.js +81 -0
  185. package/dist/backend/backend/src/services/v3/trigger-engine.service.js.map +1 -1
  186. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts +17 -1
  187. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.d.ts.map +1 -1
  188. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js +22 -3
  189. package/dist/backend/backend/src/services/v3/workitem-dispatch.subscriber.js.map +1 -1
  190. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +1 -1
  191. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -1
  192. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +26 -10
  193. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -1
  194. package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
  195. package/dist/backend/backend/src/services/workflow/cron-task.service.js +68 -5
  196. package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
  197. package/dist/backend/backend/src/services/workflow/team-identifier-resolver.d.ts +44 -0
  198. package/dist/backend/backend/src/services/workflow/team-identifier-resolver.d.ts.map +1 -0
  199. package/dist/backend/backend/src/services/workflow/team-identifier-resolver.js +57 -0
  200. package/dist/backend/backend/src/services/workflow/team-identifier-resolver.js.map +1 -0
  201. package/dist/backend/backend/src/types/credential.types.d.ts +17 -1
  202. package/dist/backend/backend/src/types/credential.types.d.ts.map +1 -1
  203. package/dist/backend/backend/src/types/credential.types.js +15 -5
  204. package/dist/backend/backend/src/types/credential.types.js.map +1 -1
  205. package/dist/backend/backend/src/types/cron-task.types.d.ts +17 -0
  206. package/dist/backend/backend/src/types/cron-task.types.d.ts.map +1 -1
  207. package/dist/backend/backend/src/types/event-bus.types.d.ts +1 -1
  208. package/dist/backend/backend/src/types/event-bus.types.d.ts.map +1 -1
  209. package/dist/backend/backend/src/types/event-bus.types.js +12 -0
  210. package/dist/backend/backend/src/types/event-bus.types.js.map +1 -1
  211. package/dist/backend/backend/src/types/intent-task.types.d.ts +10 -13
  212. package/dist/backend/backend/src/types/intent-task.types.d.ts.map +1 -1
  213. package/dist/backend/backend/src/types/intent-task.types.js +4 -1
  214. package/dist/backend/backend/src/types/intent-task.types.js.map +1 -1
  215. package/dist/backend/backend/src/types/v2/work-item.types.d.ts +23 -0
  216. package/dist/backend/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  217. package/dist/backend/backend/src/types/v2/work-item.types.js.map +1 -1
  218. package/dist/backend/backend/src/utils/team.utils.d.ts +3 -1
  219. package/dist/backend/backend/src/utils/team.utils.d.ts.map +1 -1
  220. package/dist/backend/backend/src/utils/team.utils.js +26 -5
  221. package/dist/backend/backend/src/utils/team.utils.js.map +1 -1
  222. package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts +23 -0
  223. package/dist/backend/backend/src/websocket/chat-v2.gateway.d.ts.map +1 -1
  224. package/dist/backend/backend/src/websocket/chat-v2.gateway.js +56 -7
  225. package/dist/backend/backend/src/websocket/chat-v2.gateway.js.map +1 -1
  226. package/dist/backend/backend/src/websocket/chat.gateway.d.ts +19 -4
  227. package/dist/backend/backend/src/websocket/chat.gateway.d.ts.map +1 -1
  228. package/dist/backend/backend/src/websocket/chat.gateway.js +78 -63
  229. package/dist/backend/backend/src/websocket/chat.gateway.js.map +1 -1
  230. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  231. package/dist/backend/backend/src/websocket/terminal.gateway.js +10 -2
  232. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  233. package/dist/cli/backend/src/constants.d.ts +12 -0
  234. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  235. package/dist/cli/backend/src/constants.js +12 -0
  236. package/dist/cli/backend/src/constants.js.map +1 -1
  237. package/dist/cli/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  238. package/dist/cli/backend/src/services/event-bus/event-bus.service.js +22 -11
  239. package/dist/cli/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  240. package/dist/cli/backend/src/services/memory/memory.service.d.ts.map +1 -1
  241. package/dist/cli/backend/src/services/memory/memory.service.js +35 -3
  242. package/dist/cli/backend/src/services/memory/memory.service.js.map +1 -1
  243. package/dist/cli/backend/src/services/skill/skill-executor.service.d.ts.map +1 -1
  244. package/dist/cli/backend/src/services/skill/skill-executor.service.js +13 -1
  245. package/dist/cli/backend/src/services/skill/skill-executor.service.js.map +1 -1
  246. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts +33 -2
  247. package/dist/cli/backend/src/services/task-pool/task-pool.service.d.ts.map +1 -1
  248. package/dist/cli/backend/src/services/task-pool/task-pool.service.js +160 -8
  249. package/dist/cli/backend/src/services/task-pool/task-pool.service.js.map +1 -1
  250. package/dist/cli/backend/src/types/credential.types.d.ts +17 -1
  251. package/dist/cli/backend/src/types/credential.types.d.ts.map +1 -1
  252. package/dist/cli/backend/src/types/credential.types.js +15 -5
  253. package/dist/cli/backend/src/types/credential.types.js.map +1 -1
  254. package/dist/cli/backend/src/types/event-bus.types.d.ts +1 -1
  255. package/dist/cli/backend/src/types/event-bus.types.d.ts.map +1 -1
  256. package/dist/cli/backend/src/types/event-bus.types.js +12 -0
  257. package/dist/cli/backend/src/types/event-bus.types.js.map +1 -1
  258. package/dist/cli/backend/src/types/v2/work-item.types.d.ts +23 -0
  259. package/dist/cli/backend/src/types/v2/work-item.types.d.ts.map +1 -1
  260. package/dist/cli/backend/src/types/v2/work-item.types.js.map +1 -1
  261. package/dist/cli/cli/src/commands/start.js +73 -12
  262. package/dist/cli/cli/src/commands/start.js.map +1 -1
  263. package/frontend/dist/assets/index-b279da34.js +4926 -0
  264. package/frontend/dist/assets/{index-b7e59b2b.css → index-c07e04c0.css} +2 -2
  265. package/frontend/dist/index.html +2 -2
  266. package/package.json +1 -1
  267. package/frontend/dist/assets/index-698305f3.js +0 -5228
@@ -1 +1 @@
1
- {"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAK3F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACN,gBAAgB,EAMhB,WAAW,EAOX,MAAM,oBAAoB,CAAC;AAmC5B,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aACnB,QAAQ,EAAE,OAAO;gBAAjB,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAc/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAQzF;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAA6B;IAGhD,OAAO,CAAC,oBAAoB,CAA4G;IAGxI,OAAO,CAAC,4BAA4B,CAAsC;IAG1E,OAAO,CAAC,yBAAyB,CAA+C;IAGhF,OAAO,CAAC,kBAAkB,CAAkC;IAI5D,OAAO,CAAC,kBAAkB,CAKpB;IAKN,OAAO,CAAC,oBAAoB,CAAoC;IAIhE,OAAO,CAAC,mBAAmB,CAAuD;IAIlF,OAAO,CAAC,iBAAiB,CAAgD;IAEzE,0EAA0E;IAC1E,OAAO,CAAC,gBAAgB,CAA+E;IAEvG,qFAAqF;IACrF,OAAO,CAAC,eAAe,CAAmK;IAK1L,OAAO,CAAC,MAAM,KAAK,wBAAwB,GAE1C;gBAGA,kBAAkB,EAAE,OAAO,EAAE,+CAA+C;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,cAAc;IAmB/B;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE;QAAE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAIpG;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,GAAG,OAAO,gCAAgC,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;IAItL;;;;;OAKG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IASpD;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;OASG;YACW,yBAAyB;IA+BvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;IAsCpC;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;YACW,mBAAmB;IA2DjC;;;;;;OAMG;YACW,iBAAiB;IAgB/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI/E;;;;;;;;OAQG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKtD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;YACW,qBAAqB;IAkBnC;;;OAGG;YACW,oBAAoB;IAUlC;;;OAGG;IACG,+BAA+B,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,MAAoD,EAC7D,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,WAAuC,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACjC,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkFF;;;OAGG;YACW,qBAAqB;IA8CnC;;;OAGG;YACW,mBAAmB;IAuKjC;;;;;;;;;;;OAWG;YACW,uBAAuB;IA0CrC;;;;;;;;;;;;OAYG;YACW,0BAA0B;IA4CxC;;;;OAIG;YACW,2BAA2B;IA2CzC;;;OAGG;YACW,iBAAiB;IA+O/B;;;;;;;;;OASG;YACW,oBAAoB;IA0DlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAqDlC;;OAEG;YACW,sBAAsB;IAwYpC;;;;;;;;;;;OAWG;YACW,eAAe;IAsC7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,sBAAsB;IAiCpC;;;;OAIG;YACW,mCAAmC;IAgJjD;;OAEG;YACW,uBAAuB;IA8BrC;;OAEG;YACW,yBAAyB;IA0BvC;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpC,GAAG,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkDF;;;;OAIG;YACW,uBAAuB;IAgkBrC;;;;;OAKG;IACG,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAkB,GACtB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuFF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IA6NF;;;;;;;;;;;OAWG;IACG,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAqD,EAChE,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,OAAO,CAAC;IAsGnB;;;;;;;;;OASG;YACW,oBAAoB;IA0yBlC;;;;;;;;;;OAUG;YACW,sBAAsB;IAmDpC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;;;;;;OAOG;YACW,sBAAsB;IA2BpC;;;;;;;;;;OAUG;IACH,yBAAyB,IAAI,IAAI;IAsBjC;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAQhC;;;;;;;;OAQG;YACW,oBAAoB;IAqKlC;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/C;;;;;;;OAOG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAuB5D;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;;;OASG;YACW,qBAAqB;IA+BnC;;;;;OAKG;IACG,cAAc,CACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAyCF;;;;;;OAMG;IACG,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,MAAa,GACpB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACN,KAAK,EAAE;gBACN,WAAW,EAAE,MAAM,CAAC;gBACpB,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,OAAO,CAAC;gBACjB,MAAM,EAAE,CAAC,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC/F,CAAC;YACF,SAAS,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuCF;;;;;;;;;;;;;OAaG;YACW,kBAAkB;IAuKhC;;;;;;;;;OASG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAW3E"}
1
+ {"version":3,"file":"agent-registration.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/agent/agent-registration.service.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,yBAAyB,EAAE,MAAM,gDAAgD,CAAC;AAK3F,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,EACN,gBAAgB,EAMhB,WAAW,EAOX,MAAM,oBAAoB,CAAC;AAoC5B,MAAM,WAAW,kBAAkB;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;aACnB,QAAQ,EAAE,OAAO;gBAAjB,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM;CAc/D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,CAQzF;AAED;;;;;;;;;GASG;AACH,qBAAa,wBAAwB;IACpC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAS;IAG5B,OAAO,CAAC,WAAW,CAA6B;IAGhD,OAAO,CAAC,oBAAoB,CAA4G;IAGxI,OAAO,CAAC,4BAA4B,CAAsC;IAG1E,OAAO,CAAC,yBAAyB,CAA+C;IAGhF,OAAO,CAAC,kBAAkB,CAAkC;IAI5D,OAAO,CAAC,kBAAkB,CAKpB;IAKN,OAAO,CAAC,oBAAoB,CAAoC;IAIhE,OAAO,CAAC,mBAAmB,CAAuD;IAIlF,OAAO,CAAC,iBAAiB,CAAgD;IAEzE,0EAA0E;IAC1E,OAAO,CAAC,gBAAgB,CAA+E;IAEvG,qFAAqF;IACrF,OAAO,CAAC,eAAe,CAAmK;IAK1L,OAAO,CAAC,MAAM,KAAK,wBAAwB,GAE1C;gBAGA,kBAAkB,EAAE,OAAO,EAAE,+CAA+C;IAC5E,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,cAAc,EAAE,cAAc;IAmB/B;;;;OAIG;IACH,mBAAmB,CAAC,SAAS,EAAE;QAAE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,GAAG,IAAI;IAIpG;;;;OAIG;IACH,kBAAkB,CAAC,QAAQ,EAAE;QAAE,SAAS,CAAC,KAAK,EAAE,OAAO,gCAAgC,EAAE,uBAAuB,GAAG,OAAO,gCAAgC,EAAE,iBAAiB,CAAA;KAAE,GAAG,IAAI;IAItL;;;;;OAKG;IACH,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IASpD;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAW5B;;;;;;;;;OASG;YACW,yBAAyB;IA+BvC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,4BAA4B;IAgDpC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,OAAO,CAAC,6BAA6B;IA+IrC;;OAEG;IACH,OAAO,CAAC,eAAe;IAwBvB;;;;;;;;;OASG;YACW,mBAAmB;IA2DjC;;;;;;OAMG;YACW,iBAAiB;IAgB/B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAI5B;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,yBAAyB,GAAG,SAAS;IAI/E;;;;;;;;OAQG;IACH,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKtD;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;OAGG;YACW,qBAAqB;IAkBnC;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAKrC;IAEH;;;OAGG;YACW,oBAAoB;IAclC;;;OAGG;IACG,+BAA+B,CACpC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,EACZ,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,MAAoD,EAC7D,QAAQ,CAAC,EAAE,MAAM,EACjB,WAAW,GAAE,WAAuC,EACpD,YAAY,CAAC,EAAE,MAAM,EAAE,EACvB,wBAAwB,CAAC,EAAE,MAAM,EAAE,GACjC,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkFF;;;OAGG;YACW,qBAAqB;IA8CnC;;;OAGG;YACW,mBAAmB;IAuKjC;;;;;;;;;;;OAWG;YACW,uBAAuB;IA0CrC;;;;;;;;;;;;OAYG;YACW,0BAA0B;IA4CxC;;;;OAIG;YACW,2BAA2B;IA2CzC;;;OAGG;YACW,iBAAiB;IA+O/B;;;;;;;;;OASG;YACW,oBAAoB;IA0DlC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,0BAA0B;IAqDlC;;OAEG;YACW,sBAAsB;IAiZpC;;;;;;;;;;;OAWG;YACW,eAAe;IAsC7B;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB;IAQ7B;;OAEG;YACW,mBAAmB;IA8BjC;;OAEG;YACW,sBAAsB;IAiCpC;;;;OAIG;YACW,mCAAmC;IAgJjD;;OAEG;YACW,uBAAuB;IA8BrC;;OAEG;YACW,yBAAyB;IA0BvC;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAChC,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,WAAW,CAAC;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB;;;;WAIG;QACH,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB;;;;;WAKG;QACH,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAC;KACpC,GAAG,OAAO,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAkDF;;;;OAIG;YACW,uBAAuB;IAgkBrC;;;;;OAKG;IACG,qBAAqB,CAC1B,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAkB,GACtB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuFF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACG,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAiPF;;;;;;;;;;;OAWG;IACG,iBAAiB,CACtB,WAAW,EAAE,MAAM,EACnB,SAAS,GAAE,MAAqD,EAChE,WAAW,CAAC,EAAE,WAAW,GACvB,OAAO,CAAC,OAAO,CAAC;IAsGnB;;;;;;;;;OASG;YACW,oBAAoB;IA0yBlC;;;;;;;;;;OAUG;YACW,sBAAsB;IAmDpC;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,sBAAsB;IAyD9B;;;;;;;OAOG;YACW,sBAAsB;IA2BpC;;;;;;;;;;OAUG;IACH,yBAAyB,IAAI,IAAI;IAsBjC;;OAEG;IACH,wBAAwB,IAAI,IAAI;IAQhC;;;;;;;;OAQG;YACW,oBAAoB;IAqKlC;;;;;OAKG;IACH,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/C;;;;;;;OAOG;IACH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAuB5D;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAkDxB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,mBAAmB;IA0B3B;;;;;;;;;OASG;YACW,qBAAqB;IA+BnC;;;;;OAKG;IACG,cAAc,CACnB,WAAW,EAAE,MAAM,EACnB,GAAG,EAAE,MAAM,GACT,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAyCF;;;;;;OAMG;IACG,gBAAgB,CACrB,WAAW,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,GAAE,MAAa,GACpB,OAAO,CAAC;QACV,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACN,KAAK,EAAE;gBACN,WAAW,EAAE,MAAM,CAAC;gBACpB,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,OAAO,EAAE,OAAO,CAAC;gBACjB,MAAM,EAAE,CAAC,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC,MAAM,OAAO,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC/F,CAAC;YACF,SAAS,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAuCF;;;;;;;;;;;;;OAaG;YACW,kBAAkB;IAuKhC;;;;;;;;;OASG;IACG,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAW3E"}
@@ -23,6 +23,7 @@ import { PromptAssemblyService } from '../ai/prompt-modules/prompt-assembly.serv
23
23
  import { stripAnsiCodes } from '../../utils/terminal-output.utils.js';
24
24
  import { isPromptLine, containsSpinnerOrWorkingIndicator, containsProcessingIndicator, containsBusyStatusBar, containsRewindMode, extractChatPrefix, stripTuiLineBorders, matchTuiPromptLine, } from '../../utils/terminal-string-ops.js';
25
25
  import { PtyActivityTrackerService } from './pty-activity-tracker.service.js';
26
+ import { synthesizeSlackConversationId } from '../chat-v2/legacy-dto.utils.js';
26
27
  /**
27
28
  * Error thrown when an agent role cannot be resolved to a valid value.
28
29
  *
@@ -247,7 +248,10 @@ export class AgentRegistrationService {
247
248
  * @param conversationId - Chat conversation to route the response to
248
249
  */
249
250
  routeInProcessResponseToChat(sessionName, text, conversationId) {
250
- // Lazy import to avoid circular dependencies at module load time
251
+ // LEGACY PATH chatGateway.processNotifyMessage ChatService
252
+ // (JSON files in ~/.crewly/chat/). Kept until Phase 5 data
253
+ // migration retires the JSON store; until then the legacy file
254
+ // is what the frontend chat-v1 readers consume.
251
255
  import('../../websocket/chat.gateway.js')
252
256
  .then(({ getChatGateway }) => {
253
257
  const chatGateway = getChatGateway();
@@ -261,7 +265,7 @@ export class AgentRegistrationService {
261
265
  })
262
266
  .then((chatMessage) => {
263
267
  if (chatMessage) {
264
- this.logger.debug('Routed in-process agent response to chat', {
268
+ this.logger.debug('Routed in-process agent response to chat (legacy)', {
265
269
  sessionName, conversationId,
266
270
  messageId: typeof chatMessage === 'object' ? chatMessage.id : undefined,
267
271
  });
@@ -273,6 +277,167 @@ export class AgentRegistrationService {
273
277
  error: err instanceof Error ? err.message : String(err),
274
278
  });
275
279
  });
280
+ // Phase 6β of unified-chat-message-store spec: the explicit
281
+ // chat-v2 recordTurn call that lived here during Phases 2-3
282
+ // was removed because `ChatService` is now a thin façade over
283
+ // `ChatV2Service` — the `processNotifyMessage` call above
284
+ // already writes through to chat-v2 internally. Keeping both
285
+ // paths would produce duplicate rows.
286
+ }
287
+ /**
288
+ * Auto-route an in-process agent's text response back to Slack.
289
+ *
290
+ * Mirrors the post-send side effects of POST /slack/send so that the
291
+ * Slack reply, thread-status bookkeeping, and V3 SLA cascade all stay in
292
+ * sync. Used as a finish-event hook for the in-process Crewly Agent
293
+ * runtime when:
294
+ * 1. The inbound message carried a `[SLACK:channelId:threadTs]` marker
295
+ * 2. The agent produced text output (`result.text` non-empty)
296
+ * 3. The agent did NOT explicitly call the `reply_slack` tool
297
+ *
298
+ * Without this hook, AI SDK agents that finish with `toolCalls=0,
299
+ * finishReason=stop` would drop their reply on the floor — unlike the
300
+ * claude-code PTY path, the in-process runtime has no stdout stream the
301
+ * SlackBridge can tail.
302
+ *
303
+ * Best-effort: a Slack-not-connected condition or a downstream
304
+ * bookkeeping failure is logged and swallowed; never throws. The chat
305
+ * route (`routeInProcessResponseToChat`) handles persistence to the chat
306
+ * service separately.
307
+ *
308
+ * @param sessionName - Agent session that produced the response
309
+ * @param text - Response text from the agent
310
+ * @param slackContext - Slack channel + thread metadata captured from the
311
+ * inbound `[SLACK:channelId:threadTs]` marker
312
+ */
313
+ routeInProcessResponseToSlack(sessionName, text, slackContext) {
314
+ // Lazy import to avoid module-load circular dependency between
315
+ // agent-registration ↔ slack ↔ messaging ↔ v3.
316
+ import('../slack/slack.service.js')
317
+ .then(async ({ getSlackService }) => {
318
+ const slack = getSlackService();
319
+ if (!slack.isConnected()) {
320
+ this.logger.warn('Slack not connected — cannot auto-route in-process agent response', {
321
+ sessionName,
322
+ channelId: slackContext.channelId,
323
+ threadTs: slackContext.threadTs,
324
+ textLength: text.length,
325
+ });
326
+ return;
327
+ }
328
+ // Auto-prefix with the agent display name (mirrors reply_slack tool
329
+ // behavior) so the message is attributable in the Slack thread.
330
+ // Skip if the text already starts with `[` — the agent supplied its
331
+ // own prefix.
332
+ let cleanText = text;
333
+ if (sessionName && !cleanText.startsWith('[')) {
334
+ const parts = sessionName.split('-');
335
+ const namePart = parts.length >= 3 ? parts[2] : parts[parts.length - 1];
336
+ if (namePart) {
337
+ const capitalized = namePart.charAt(0).toUpperCase() + namePart.slice(1);
338
+ cleanText = `[${capitalized}] ${cleanText}`;
339
+ }
340
+ }
341
+ await slack.sendMessage({
342
+ channelId: slackContext.channelId,
343
+ text: cleanText,
344
+ threadTs: slackContext.threadTs,
345
+ });
346
+ this.logger.info('Auto-routed in-process agent response to Slack', {
347
+ sessionName,
348
+ channelId: slackContext.channelId,
349
+ threadTs: slackContext.threadTs,
350
+ textLength: cleanText.length,
351
+ });
352
+ // Mirror /slack/send bookkeeping #3 — record `agent.action`
353
+ // with actionType='send_slack' so the auditor view and any
354
+ // V3 downstream analysis see the auto-routed reply. Without
355
+ // this entry the in-process auto-route is invisible in the
356
+ // behavior log (only `/slack/send`-originated replies show
357
+ // up). Follow-up #9 from PR #543 review.
358
+ try {
359
+ const { getAgentBehaviorLogService } = await import('../observability/agent-behavior-log.singleton.js');
360
+ getAgentBehaviorLogService()?.record({
361
+ type: 'agent.action',
362
+ agent: sessionName,
363
+ actionType: 'send_slack',
364
+ details: {
365
+ channelId: slackContext.channelId,
366
+ threadTs: slackContext.threadTs ?? null,
367
+ textLength: cleanText.length,
368
+ source: 'in_process_auto_route',
369
+ },
370
+ });
371
+ }
372
+ catch (err) {
373
+ this.logger.debug('Failed to record send_slack agent.action (non-fatal)', {
374
+ sessionName,
375
+ error: err instanceof Error ? err.message : String(err),
376
+ });
377
+ }
378
+ // Mirror /slack/send bookkeeping #1 — mark thread as
379
+ // replied_completed so the recovery loop on the next restart
380
+ // does not re-enqueue this inbound message. Without this, every
381
+ // backend restart would cause orc to re-reply.
382
+ //
383
+ // Race-protection: build the thread-status entry on the fly if
384
+ // it isn't tracked yet. The Slack listener's `trackInbound` is
385
+ // what normally populates the entry, but in a startup-race
386
+ // scenario the agent finish event can land before the listener
387
+ // has persisted the inbound. Without this fallback,
388
+ // `markReplied` short-circuits and the recovery loop on the
389
+ // next boot still re-fires the inbound (the exact bug
390
+ // /slack/send already guards against — keep parity).
391
+ if (slackContext.threadTs) {
392
+ try {
393
+ const { ThreadStatusQueueService } = await import('../messaging/thread-status-queue.service.js');
394
+ const tsq = ThreadStatusQueueService.getInstance();
395
+ const threadKey = `${slackContext.channelId}:${slackContext.threadTs}`;
396
+ if (!tsq.get(threadKey)) {
397
+ tsq.trackInbound({
398
+ threadKey,
399
+ conversationId: synthesizeSlackConversationId(slackContext.channelId, slackContext.threadTs),
400
+ source: 'slack',
401
+ messagePreview: '[in-process auto-route — no inbound recorded]',
402
+ });
403
+ }
404
+ tsq.markReplied(threadKey, 'replied_completed');
405
+ }
406
+ catch (err) {
407
+ this.logger.debug('Failed to update thread-status after auto-route (non-fatal)', {
408
+ sessionName,
409
+ error: err instanceof Error ? err.message : String(err),
410
+ });
411
+ }
412
+ }
413
+ // Mirror /slack/send bookkeeping #2 — fire the V3 SLA cascade so
414
+ // the matching Request transitions out of `queued`. Without
415
+ // this, requests whose acknowledgement came via this auto-route
416
+ // would never reach a terminal state.
417
+ if (slackContext.threadTs) {
418
+ try {
419
+ const { getRequestSlaSubscriber } = await import('../v3/request-sla.subscriber.js');
420
+ const sub = getRequestSlaSubscriber();
421
+ if (sub) {
422
+ await sub.markResolvedByThread(slackContext.threadTs);
423
+ }
424
+ }
425
+ catch (err) {
426
+ this.logger.debug('Failed to fire SLA cascade after auto-route (non-fatal)', {
427
+ sessionName,
428
+ error: err instanceof Error ? err.message : String(err),
429
+ });
430
+ }
431
+ }
432
+ })
433
+ .catch((err) => {
434
+ this.logger.warn('Failed to auto-route in-process agent response to Slack', {
435
+ sessionName,
436
+ channelId: slackContext.channelId,
437
+ threadTs: slackContext.threadTs,
438
+ error: err instanceof Error ? err.message : String(err),
439
+ });
440
+ });
276
441
  }
277
442
  /**
278
443
  * Find the project root by looking for package.json
@@ -441,6 +606,26 @@ export class AgentRegistrationService {
441
606
  return false;
442
607
  }
443
608
  }
609
+ /**
610
+ * Role aliases — common synonyms users naturally type in team configs
611
+ * mapped to the canonical directory name under `config/roles/`. Without
612
+ * these, a team-config role like `"tech-lead"` would fall through to a
613
+ * non-existent directory and trigger the ENOENT fallback path on every
614
+ * agent registration (Steve 2026-05-15 dogfood: CE team config used
615
+ * `role: "tech-lead"` while the canonical directory is `team-leader`,
616
+ * producing a steady drip of "Could not load prompt from config" warns
617
+ * for every member-start with no actionable resolution short of editing
618
+ * user data).
619
+ *
620
+ * Keep keys lowercased + dash-normalized (matches the post-normalization
621
+ * shape used by `getPromptFileForRole`).
622
+ */
623
+ static ROLE_DIR_ALIASES = new Map([
624
+ ['tech-lead', 'team-leader'],
625
+ ['techlead', 'team-leader'],
626
+ ['tl', 'team-leader'],
627
+ ['team-lead', 'team-leader'],
628
+ ]);
444
629
  /**
445
630
  * Get prompt file path for a specific role
446
631
  * Uses the unified config/roles/{role}/prompt.md structure
@@ -451,7 +636,10 @@ export class AgentRegistrationService {
451
636
  // and trigger the silent fallback path that left agents with empty prompts (Bug #1).
452
637
  validateAgentRole(role, 'getPromptFileForRole');
453
638
  // Normalize role name to directory name format
454
- const roleName = role.toLowerCase().replace(/\s+/g, '-');
639
+ const normalized = role.toLowerCase().replace(/\s+/g, '-');
640
+ // Resolve aliases (e.g. tech-lead → team-leader). Falls through for
641
+ // any role that already matches its directory name.
642
+ const roleName = AgentRegistrationService.ROLE_DIR_ALIASES.get(normalized) ?? normalized;
455
643
  return path.join(process.cwd(), 'config', 'roles', roleName, 'prompt.md');
456
644
  }
457
645
  /**
@@ -1492,11 +1680,20 @@ export class AgentRegistrationService {
1492
1680
  catch (error) {
1493
1681
  // Fallback to inline prompt if file doesn't exist
1494
1682
  const attemptedPath = await this.getPromptFileForRole(role);
1495
- this.logger.error('Could not load prompt from config, using fallback', {
1683
+ // Distinguish "role prompt simply absent" (team-config uses a
1684
+ // custom role string, fallback covers it) from genuine read
1685
+ // failures (permission denied, corrupt file). ENOENT is a
1686
+ // common case — e.g. CE team config currently uses
1687
+ // `role: "tech-lead"` while the filesystem canonical is
1688
+ // `team-leader`. The fallback inline prompt is functionally
1689
+ // sufficient; ERROR-level noise just buries real issues.
1690
+ const msg = error instanceof Error ? error.message : String(error);
1691
+ const isMissingFile = /ENOENT/.test(msg);
1692
+ this.logger[isMissingFile ? 'warn' : 'error']('Could not load prompt from config, using fallback', {
1496
1693
  role,
1497
1694
  promptPath: attemptedPath,
1498
- error: error instanceof Error ? error.message : String(error),
1499
- stack: error instanceof Error ? error.stack : undefined,
1695
+ error: msg,
1696
+ ...(isMissingFile ? {} : { stack: error instanceof Error ? error.stack : undefined }),
1500
1697
  });
1501
1698
  const memberIdJson = memberId ? `,"teamMemberId":"${memberId}"` : '';
1502
1699
  const skillsPath = path.join(this.projectRoot, 'config', 'skills', 'agent');
@@ -2497,6 +2694,21 @@ Loop until done, blocked, or explicitly reassigned:
2497
2694
  sessionName, conversationId: incomingConversationId,
2498
2695
  });
2499
2696
  }
2697
+ // Auto-route to Slack when the message originated from Slack and the
2698
+ // agent finished with text-only output (toolCalls=0, finishReason=stop)
2699
+ // without explicitly invoking the reply_slack tool. Without this hook,
2700
+ // the in-process AI SDK runtime drops Slack replies silently — unlike
2701
+ // claude-code PTY where TerminalGateway tails stdout into SlackBridge,
2702
+ // the in-process runtime has no stream the bridge can listen to.
2703
+ //
2704
+ // Skipped when the agent already called reply_slack (which posts via
2705
+ // /slack/send) to prevent double-posting on the same thread.
2706
+ if (slackMetadata?.channelId && result.text && !agentAlreadyReplied) {
2707
+ this.routeInProcessResponseToSlack(sessionName, result.text, {
2708
+ channelId: slackMetadata.channelId,
2709
+ threadTs: slackMetadata.threadTs,
2710
+ });
2711
+ }
2500
2712
  })
2501
2713
  .catch(async (agentError) => {
2502
2714
  const errMsg = agentError instanceof Error ? agentError.message : String(agentError);