crewly 1.1.2 → 1.2.1

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 (242) hide show
  1. package/README.md +6 -6
  2. package/config/constants.ts +5 -0
  3. package/config/roles/ops/prompt.md +140 -0
  4. package/config/roles/ops/role.json +13 -0
  5. package/config/skills/agent/browse-stealth/execute.sh +84 -0
  6. package/config/skills/agent/browse-stealth/instructions.md +108 -0
  7. package/config/skills/agent/browse-stealth/launch-chrome-cdp.sh +141 -0
  8. package/config/skills/agent/browse-stealth/skill.json +20 -0
  9. package/config/skills/agent/browse-stealth/stealth-browse.py +330 -0
  10. package/config/skills/agent/competitor-content-tracker/execute.sh +232 -0
  11. package/config/skills/agent/competitor-content-tracker/instructions.md +210 -0
  12. package/config/skills/agent/competitor-content-tracker/skill.json +22 -0
  13. package/config/skills/agent/content-calendar/execute.sh +294 -0
  14. package/config/skills/agent/content-calendar/instructions.md +122 -0
  15. package/config/skills/agent/content-calendar/skill.json +22 -0
  16. package/config/skills/agent/content-repurposer/execute.sh +194 -0
  17. package/config/skills/agent/content-repurposer/instructions.md +69 -0
  18. package/config/skills/agent/content-repurposer/skill.json +22 -0
  19. package/config/skills/agent/content-writer/execute.sh +311 -0
  20. package/config/skills/agent/content-writer/instructions.md +124 -0
  21. package/config/skills/agent/content-writer/skill.json +22 -0
  22. package/config/skills/agent/core/generate-pdf/execute.sh +88 -0
  23. package/config/skills/agent/core/generate-pdf/instructions.md +46 -0
  24. package/config/skills/agent/core/generate-pdf/skill.json +20 -0
  25. package/config/skills/agent/core/report-status/execute.sh +6 -0
  26. package/config/skills/agent/trend-monitor/execute.sh +211 -0
  27. package/config/skills/agent/trend-monitor/instructions.md +207 -0
  28. package/config/skills/agent/trend-monitor/skill.json +22 -0
  29. package/config/skills/agent/vnc-browser/execute.sh +261 -0
  30. package/config/skills/agent/vnc-browser/instructions.md +102 -0
  31. package/config/skills/agent/vnc-browser/skill.json +20 -0
  32. package/config/skills/orchestrator/delegate-task/execute.sh +65 -4
  33. package/config/skills/orchestrator/delegate-task/instructions.md +65 -0
  34. package/config/skills/orchestrator/delegate-task/skill.json +4 -4
  35. package/config/skills/orchestrator/reply-slack/execute.sh +2 -0
  36. package/config/skills/orchestrator/send-key/execute.sh +19 -6
  37. package/config/skills/orchestrator/send-key/instructions.md +44 -0
  38. package/config/skills/orchestrator/send-key/skill.json +20 -0
  39. package/config/skills/orchestrator/send-message/execute.sh +9 -1
  40. package/config/skills/registry.json +256 -0
  41. package/config/templates/code-review-team/README.md +176 -0
  42. package/config/templates/code-review-team/team-config.json +16 -0
  43. package/config/templates/code-review-team.json +62 -0
  44. package/config/templates/content-generation-team/README.md +128 -0
  45. package/config/templates/content-generation-team/team-config.json +21 -0
  46. package/config/templates/content-generation-team.json +67 -0
  47. package/config/templates/demo-team.json +22 -0
  48. package/config/templates/social-media-ops-team/README.md +145 -0
  49. package/config/templates/social-media-ops-team/team-config.json +21 -0
  50. package/config/templates/social-media-ops-team.json +67 -0
  51. package/dist/backend/backend/src/constants.d.ts +86 -6
  52. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  53. package/dist/backend/backend/src/constants.js +91 -6
  54. package/dist/backend/backend/src/constants.js.map +1 -1
  55. package/dist/backend/backend/src/controllers/index.d.ts.map +1 -1
  56. package/dist/backend/backend/src/controllers/index.js +2 -0
  57. package/dist/backend/backend/src/controllers/index.js.map +1 -1
  58. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts +8 -0
  59. package/dist/backend/backend/src/controllers/messaging/messenger.routes.d.ts.map +1 -1
  60. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js +110 -63
  61. package/dist/backend/backend/src/controllers/messaging/messenger.routes.js.map +1 -1
  62. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.d.ts.map +1 -1
  63. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js +31 -4
  64. package/dist/backend/backend/src/controllers/monitoring/terminal.controller.js.map +1 -1
  65. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts +8 -0
  66. package/dist/backend/backend/src/controllers/oauth/oauth.routes.d.ts.map +1 -1
  67. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js +127 -111
  68. package/dist/backend/backend/src/controllers/oauth/oauth.routes.js.map +1 -1
  69. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts +34 -0
  70. package/dist/backend/backend/src/controllers/task-management/task-management.controller.d.ts.map +1 -1
  71. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js +219 -2
  72. package/dist/backend/backend/src/controllers/task-management/task-management.controller.js.map +1 -1
  73. package/dist/backend/backend/src/controllers/user/user.routes.d.ts +7 -0
  74. package/dist/backend/backend/src/controllers/user/user.routes.d.ts.map +1 -1
  75. package/dist/backend/backend/src/controllers/user/user.routes.js +45 -38
  76. package/dist/backend/backend/src/controllers/user/user.routes.js.map +1 -1
  77. package/dist/backend/backend/src/controllers/whatsapp/index.d.ts +17 -0
  78. package/dist/backend/backend/src/controllers/whatsapp/index.d.ts.map +1 -0
  79. package/dist/backend/backend/src/controllers/whatsapp/index.js +18 -0
  80. package/dist/backend/backend/src/controllers/whatsapp/index.js.map +1 -0
  81. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts +12 -0
  82. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.d.ts.map +1 -0
  83. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js +185 -0
  84. package/dist/backend/backend/src/controllers/whatsapp/whatsapp.controller.js.map +1 -0
  85. package/dist/backend/backend/src/index.d.ts +5 -0
  86. package/dist/backend/backend/src/index.d.ts.map +1 -1
  87. package/dist/backend/backend/src/index.js +36 -0
  88. package/dist/backend/backend/src/index.js.map +1 -1
  89. package/dist/backend/backend/src/routes/modules/task-management.routes.d.ts.map +1 -1
  90. package/dist/backend/backend/src/routes/modules/task-management.routes.js +4 -0
  91. package/dist/backend/backend/src/routes/modules/task-management.routes.js.map +1 -1
  92. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js +1 -1
  93. package/dist/backend/backend/src/services/agent/agent-heartbeat.service.js.map +1 -1
  94. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +14 -3
  95. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  96. package/dist/backend/backend/src/services/agent/agent-registration.service.js +184 -30
  97. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  98. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts +4 -3
  99. package/dist/backend/backend/src/services/agent/claude-runtime.service.d.ts.map +1 -1
  100. package/dist/backend/backend/src/services/agent/claude-runtime.service.js +29 -4
  101. package/dist/backend/backend/src/services/agent/claude-runtime.service.js.map +1 -1
  102. package/dist/backend/backend/src/services/agent/context-window-monitor.service.d.ts.map +1 -1
  103. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js +11 -0
  104. package/dist/backend/backend/src/services/agent/context-window-monitor.service.js.map +1 -1
  105. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts +32 -2
  106. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.d.ts.map +1 -1
  107. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js +69 -8
  108. package/dist/backend/backend/src/services/agent/runtime-agent.service.abstract.js.map +1 -1
  109. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +30 -20
  110. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  111. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +128 -22
  112. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  113. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  114. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js +14 -2
  115. package/dist/backend/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  116. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -1
  117. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js +11 -2
  118. package/dist/backend/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -1
  119. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts +18 -0
  120. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.d.ts.map +1 -1
  121. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js +28 -4
  122. package/dist/backend/backend/src/services/messaging/adapters/discord-messenger.adapter.js.map +1 -1
  123. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js +2 -2
  124. package/dist/backend/backend/src/services/messaging/adapters/slack-messenger.adapter.js.map +1 -1
  125. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts +18 -0
  126. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.d.ts.map +1 -1
  127. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js +26 -4
  128. package/dist/backend/backend/src/services/messaging/adapters/telegram-messenger.adapter.js.map +1 -1
  129. package/dist/backend/backend/src/services/messaging/message-queue.service.js +1 -1
  130. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  131. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts +28 -2
  132. package/dist/backend/backend/src/services/messaging/messenger-adapter.interface.d.ts.map +1 -1
  133. package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts +33 -2
  134. package/dist/backend/backend/src/services/messaging/messenger-registry.service.d.ts.map +1 -1
  135. package/dist/backend/backend/src/services/messaging/messenger-registry.service.js +33 -0
  136. package/dist/backend/backend/src/services/messaging/messenger-registry.service.js.map +1 -1
  137. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  138. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +47 -10
  139. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  140. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +8 -0
  141. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  142. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +49 -2
  143. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  144. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +6 -0
  145. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  146. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +25 -0
  147. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  148. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.d.ts.map +1 -1
  149. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js +4 -3
  150. package/dist/backend/backend/src/services/orchestrator/orchestrator-restart.service.js.map +1 -1
  151. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts +27 -0
  152. package/dist/backend/backend/src/services/project/task-tracking.service.d.ts.map +1 -1
  153. package/dist/backend/backend/src/services/project/task-tracking.service.js +54 -0
  154. package/dist/backend/backend/src/services/project/task-tracking.service.js.map +1 -1
  155. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  156. package/dist/backend/backend/src/services/session/session-command-helper.js +16 -1
  157. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  158. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts +36 -6
  159. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.d.ts.map +1 -1
  160. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js +238 -36
  161. package/dist/backend/backend/src/services/slack/slack-orchestrator-bridge.js.map +1 -1
  162. package/dist/backend/backend/src/services/slack/slack.service.d.ts.map +1 -1
  163. package/dist/backend/backend/src/services/slack/slack.service.js +6 -4
  164. package/dist/backend/backend/src/services/slack/slack.service.js.map +1 -1
  165. package/dist/backend/backend/src/services/user/user-identity.service.d.ts +44 -0
  166. package/dist/backend/backend/src/services/user/user-identity.service.d.ts.map +1 -1
  167. package/dist/backend/backend/src/services/user/user-identity.service.js +75 -8
  168. package/dist/backend/backend/src/services/user/user-identity.service.js.map +1 -1
  169. package/dist/backend/backend/src/services/whatsapp/index.d.ts +11 -0
  170. package/dist/backend/backend/src/services/whatsapp/index.d.ts.map +1 -0
  171. package/dist/backend/backend/src/services/whatsapp/index.js +11 -0
  172. package/dist/backend/backend/src/services/whatsapp/index.js.map +1 -0
  173. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts +66 -0
  174. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.d.ts.map +1 -0
  175. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js +96 -0
  176. package/dist/backend/backend/src/services/whatsapp/whatsapp-initializer.js.map +1 -0
  177. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts +109 -0
  178. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.d.ts.map +1 -0
  179. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js +234 -0
  180. package/dist/backend/backend/src/services/whatsapp/whatsapp-orchestrator-bridge.js.map +1 -0
  181. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts +127 -0
  182. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.d.ts.map +1 -0
  183. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js +347 -0
  184. package/dist/backend/backend/src/services/whatsapp/whatsapp.service.js.map +1 -0
  185. package/dist/backend/backend/src/services/workflow/scheduler.service.d.ts.map +1 -1
  186. package/dist/backend/backend/src/services/workflow/scheduler.service.js +4 -0
  187. package/dist/backend/backend/src/services/workflow/scheduler.service.js.map +1 -1
  188. package/dist/backend/backend/src/types/index.d.ts +1 -0
  189. package/dist/backend/backend/src/types/index.d.ts.map +1 -1
  190. package/dist/backend/backend/src/types/index.js.map +1 -1
  191. package/dist/backend/backend/src/types/slack.types.d.ts +24 -0
  192. package/dist/backend/backend/src/types/slack.types.d.ts.map +1 -1
  193. package/dist/backend/backend/src/types/slack.types.js.map +1 -1
  194. package/dist/backend/backend/src/types/task-tracking.types.d.ts +4 -0
  195. package/dist/backend/backend/src/types/task-tracking.types.d.ts.map +1 -1
  196. package/dist/backend/backend/src/types/task-tracking.types.js.map +1 -1
  197. package/dist/backend/backend/src/types/whatsapp.types.d.ts +84 -0
  198. package/dist/backend/backend/src/types/whatsapp.types.d.ts.map +1 -0
  199. package/dist/backend/backend/src/types/whatsapp.types.js +33 -0
  200. package/dist/backend/backend/src/types/whatsapp.types.js.map +1 -0
  201. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts +11 -0
  202. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  203. package/dist/backend/backend/src/websocket/terminal.gateway.js +35 -1
  204. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  205. package/dist/backend/config/constants.d.ts +5 -0
  206. package/dist/backend/config/constants.d.ts.map +1 -1
  207. package/dist/backend/config/constants.js +5 -0
  208. package/dist/backend/config/constants.js.map +1 -1
  209. package/dist/cli/backend/src/constants.d.ts +86 -6
  210. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  211. package/dist/cli/backend/src/constants.js +91 -6
  212. package/dist/cli/backend/src/constants.js.map +1 -1
  213. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.d.ts.map +1 -1
  214. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js +14 -2
  215. package/dist/cli/backend/src/services/knowledge/knowledge-search.service.js.map +1 -1
  216. package/dist/cli/backend/src/types/index.d.ts +1 -0
  217. package/dist/cli/backend/src/types/index.d.ts.map +1 -1
  218. package/dist/cli/backend/src/types/index.js.map +1 -1
  219. package/dist/cli/cli/src/commands/publish.d.ts.map +1 -1
  220. package/dist/cli/cli/src/commands/publish.js +17 -15
  221. package/dist/cli/cli/src/commands/publish.js.map +1 -1
  222. package/dist/cli/cli/src/index.js +2 -2
  223. package/dist/cli/cli/src/index.js.map +1 -1
  224. package/dist/cli/cli/src/utils/gh-submit.d.ts +46 -0
  225. package/dist/cli/cli/src/utils/gh-submit.d.ts.map +1 -0
  226. package/dist/cli/cli/src/utils/gh-submit.js +167 -0
  227. package/dist/cli/cli/src/utils/gh-submit.js.map +1 -0
  228. package/dist/cli/cli/src/utils/marketplace.d.ts.map +1 -1
  229. package/dist/cli/cli/src/utils/marketplace.js +13 -5
  230. package/dist/cli/cli/src/utils/marketplace.js.map +1 -1
  231. package/dist/cli/cli/src/utils/templates.d.ts +3 -2
  232. package/dist/cli/cli/src/utils/templates.d.ts.map +1 -1
  233. package/dist/cli/cli/src/utils/templates.js +5 -4
  234. package/dist/cli/cli/src/utils/templates.js.map +1 -1
  235. package/dist/cli/config/constants.d.ts +5 -0
  236. package/dist/cli/config/constants.d.ts.map +1 -1
  237. package/dist/cli/config/constants.js +5 -0
  238. package/dist/cli/config/constants.js.map +1 -1
  239. package/frontend/dist/assets/{index-45eeea99.js → index-a23214ae.js} +241 -241
  240. package/frontend/dist/assets/{index-6972eeee.css → index-c407fe13.css} +1 -1
  241. package/frontend/dist/index.html +2 -2
  242. package/package.json +4 -1
@@ -12,26 +12,6 @@ import { EventEmitter } from 'events';
12
12
  import { LoggerService } from '../core/logger.service.js';
13
13
  import { EVENT_BUS_CONSTANTS } from '../../constants.js';
14
14
  import { isValidCreateSubscriptionInput } from '../../types/event-bus.types.js';
15
- /**
16
- * EventBusService manages event subscriptions and publishes agent lifecycle
17
- * events. When an event matches a subscription, a notification message is
18
- * enqueued into the MessageQueueService for delivery to the subscriber.
19
- *
20
- * @example
21
- * ```typescript
22
- * const eventBus = new EventBusService();
23
- * eventBus.setMessageQueueService(queueService);
24
- *
25
- * eventBus.subscribe({
26
- * eventType: 'agent:idle',
27
- * filter: { sessionName: 'agent-joe' },
28
- * subscriberSession: 'crewly-orc',
29
- * oneShot: true,
30
- * });
31
- *
32
- * eventBus.publish(agentIdleEvent);
33
- * ```
34
- */
35
15
  export class EventBusService extends EventEmitter {
36
16
  logger;
37
17
  subscriptions = new Map();
@@ -39,6 +19,21 @@ export class EventBusService extends EventEmitter {
39
19
  slackThreadStore = null;
40
20
  cleanupInterval = null;
41
21
  deliveryCount = 0;
22
+ /**
23
+ * Buffered notifications pending delivery after debounce window.
24
+ * Key: `${subscriberSession}:${event.sessionName}` for per-agent dedup.
25
+ * When the same agent fires multiple events within the debounce window,
26
+ * only the latest event is kept (deduplication by overwrite).
27
+ */
28
+ pendingNotifications = new Map();
29
+ /** Debounce timer for batching event notifications */
30
+ batchTimer = null;
31
+ /**
32
+ * Dedup guard for publish(): ignores duplicate events for the same
33
+ * (type, sessionName) within EVENT_DEBOUNCE_WINDOW_MS (5s).
34
+ * Key: `${eventType}:${sessionName}`, value: timestamp (ms).
35
+ */
36
+ recentPublishMap = new Map();
42
37
  constructor() {
43
38
  super();
44
39
  this.logger = LoggerService.getInstance().createComponentLogger('EventBus');
@@ -124,6 +119,29 @@ export class EventBusService extends EventEmitter {
124
119
  * @param event - The agent lifecycle event to publish
125
120
  */
126
121
  publish(event) {
122
+ // Dedup: ignore duplicate events for the same (type, sessionName) within
123
+ // the debounce window. This prevents redundant notifications when both
124
+ // the file watcher and ActivityMonitor detect the same status transition.
125
+ const dedupKey = `${event.type}:${event.sessionName}`;
126
+ const nowMs = Date.now();
127
+ const lastPublished = this.recentPublishMap.get(dedupKey);
128
+ if (lastPublished && nowMs - lastPublished < EVENT_BUS_CONSTANTS.EVENT_DEBOUNCE_WINDOW_MS) {
129
+ this.logger.debug('Duplicate event suppressed within debounce window', {
130
+ type: event.type,
131
+ sessionName: event.sessionName,
132
+ msSinceLast: nowMs - lastPublished,
133
+ });
134
+ return;
135
+ }
136
+ this.recentPublishMap.set(dedupKey, nowMs);
137
+ // Clean up old entries periodically (keep map small)
138
+ if (this.recentPublishMap.size > 100) {
139
+ for (const [key, ts] of this.recentPublishMap) {
140
+ if (nowMs - ts > EVENT_BUS_CONSTANTS.EVENT_DEBOUNCE_WINDOW_MS) {
141
+ this.recentPublishMap.delete(key);
142
+ }
143
+ }
144
+ }
127
145
  this.logger.info('Event published', {
128
146
  eventId: event.id,
129
147
  type: event.type,
@@ -143,9 +161,10 @@ export class EventBusService extends EventEmitter {
143
161
  if (!this.matchesSubscription(event, sub)) {
144
162
  continue;
145
163
  }
146
- // Format and deliver notification
164
+ // Format notification and buffer for debounced delivery.
165
+ // Dedup: same agent + same subscriber = keep only latest event.
147
166
  const message = this.formatNotification(event, sub);
148
- this.deliverNotification(sub, message);
167
+ this.bufferNotification(sub, message, event);
149
168
  this.deliveryCount++;
150
169
  this.emit('event_delivered', {
151
170
  subscriptionId: sub.id,
@@ -202,9 +221,96 @@ export class EventBusService extends EventEmitter {
202
221
  clearInterval(this.cleanupInterval);
203
222
  this.cleanupInterval = null;
204
223
  }
224
+ // Flush any pending notifications before shutdown
225
+ if (this.batchTimer) {
226
+ clearTimeout(this.batchTimer);
227
+ this.batchTimer = null;
228
+ }
229
+ if (this.pendingNotifications.size > 0) {
230
+ this.flushNotifications();
231
+ }
205
232
  this.subscriptions.clear();
233
+ this.recentPublishMap.clear();
206
234
  this.logger.info('EventBusService cleaned up');
207
235
  }
236
+ /**
237
+ * Buffer a notification for debounced delivery with per-agent deduplication.
238
+ * If the same agent already has a pending notification for this subscriber,
239
+ * it is overwritten with the latest event (only final state matters).
240
+ *
241
+ * @param sub - The subscription whose subscriber should receive the message
242
+ * @param message - The formatted notification message
243
+ * @param event - The original agent event
244
+ */
245
+ bufferNotification(sub, message, event) {
246
+ // Dedup key: same subscriber + same agent = keep only the latest event.
247
+ // If agent-joe transitions idle→active→idle in 5 seconds, the orchestrator
248
+ // only receives the final "idle" notification, not all three.
249
+ const dedupKey = `${sub.subscriberSession}:${event.sessionName}`;
250
+ this.pendingNotifications.set(dedupKey, {
251
+ message,
252
+ event,
253
+ updatedAt: Date.now(),
254
+ });
255
+ // Reset debounce timer — wait for EVENT_DEBOUNCE_WINDOW_MS of quiet time
256
+ // before flushing all buffered notifications as one batch.
257
+ if (this.batchTimer) {
258
+ clearTimeout(this.batchTimer);
259
+ }
260
+ this.batchTimer = setTimeout(() => {
261
+ this.flushNotifications();
262
+ }, EVENT_BUS_CONSTANTS.EVENT_DEBOUNCE_WINDOW_MS);
263
+ }
264
+ /**
265
+ * Flush all buffered notifications as a single combined message.
266
+ * Groups by subscriber session and delivers one enqueue per subscriber.
267
+ */
268
+ flushNotifications() {
269
+ this.batchTimer = null;
270
+ if (this.pendingNotifications.size === 0) {
271
+ return;
272
+ }
273
+ if (!this.messageQueueService) {
274
+ this.logger.warn('MessageQueueService not set, discarding buffered notifications', {
275
+ count: this.pendingNotifications.size,
276
+ });
277
+ this.pendingNotifications.clear();
278
+ return;
279
+ }
280
+ // Group messages by subscriber session
281
+ const bySubscriber = new Map();
282
+ for (const [, entry] of this.pendingNotifications) {
283
+ // Extract subscriber from the dedup key isn't possible cleanly,
284
+ // so we just collect all messages (all go to orchestrator in practice)
285
+ const subscriber = 'system'; // All event notifications use conversationId 'system'
286
+ const existing = bySubscriber.get(subscriber) ?? [];
287
+ existing.push(entry.message);
288
+ bySubscriber.set(subscriber, existing);
289
+ }
290
+ const totalCount = this.pendingNotifications.size;
291
+ // Deliver one combined message per subscriber
292
+ for (const [, messages] of bySubscriber) {
293
+ const combinedContent = messages.join('\n');
294
+ try {
295
+ this.messageQueueService.enqueue({
296
+ content: combinedContent,
297
+ conversationId: 'system',
298
+ source: 'system_event',
299
+ });
300
+ }
301
+ catch (error) {
302
+ this.logger.error('Failed to enqueue batched event notifications', {
303
+ error: error instanceof Error ? error.message : String(error),
304
+ messageCount: messages.length,
305
+ });
306
+ }
307
+ }
308
+ this.logger.info('Flushed batched event notifications', {
309
+ dedupedCount: totalCount,
310
+ originalEvents: '(deduplicated)',
311
+ });
312
+ this.pendingNotifications.clear();
313
+ }
208
314
  /**
209
315
  * Check if an event matches a subscription's type and filter criteria.
210
316
  *
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/event-bus/event-bus.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/event-bus/event-bus.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-search.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/knowledge-search.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,wBAAwB,EACxB,cAAc,EACf,MAAM,gCAAgC,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACzF;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IACnE;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAsC9F;AAyBD;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,uBAAuB;IACrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAM1B;;;;;OAKG;YACW,KAAK;IAsCnB;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CA+B9F;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO;IAaP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,sBAAsB;IAO5C;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;;;;;;OASG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,GAAE,MAA6B,GACnC,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAavC"}
1
+ {"version":3,"file":"knowledge-search.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/knowledge-search.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EACV,wBAAwB,EACxB,cAAc,EACf,MAAM,gCAAgC,CAAC;AAMxC;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,mCAAmC;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;CACzF;AAED;;;;;GAKG;AACH,qBAAa,qBAAsB,YAAW,uBAAuB;IACnE;;;;;;OAMG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CAsC9F;AAyBD;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,uBAAuB;IACrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC;;;;OAIG;gBACS,MAAM,EAAE,MAAM;IAM1B;;;;;OAKG;YACW,KAAK;IA+CnB;;;;;;;OAOG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;CA+B9F;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0B;IACnD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IAEzC,OAAO;IAaP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,sBAAsB;IAO5C;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAI5B;;;;;;;;;OASG;IACG,MAAM,CACV,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,cAAc,EACrB,WAAW,CAAC,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,GAAE,MAA6B,GACnC,OAAO,CAAC,wBAAwB,EAAE,CAAC;CAavC"}
@@ -123,8 +123,17 @@ export class GeminiEmbeddingStrategy {
123
123
  signal: controller.signal,
124
124
  });
125
125
  if (!response.ok) {
126
+ let responseBody = '';
127
+ try {
128
+ responseBody = (await response.text()).slice(0, 200);
129
+ }
130
+ catch { /* ignore */ }
126
131
  this.logger.warn('Gemini embedding API returned non-OK status', {
127
132
  status: response.status,
133
+ statusText: response.statusText,
134
+ model: EMBEDDING_CONSTANTS.GEMINI_MODEL,
135
+ textLength: text.length,
136
+ responseBody,
128
137
  });
129
138
  return null;
130
139
  }
@@ -138,6 +147,9 @@ export class GeminiEmbeddingStrategy {
138
147
  catch (error) {
139
148
  this.logger.warn('Gemini embedding API call failed', {
140
149
  error: error instanceof Error ? error.message : String(error),
150
+ model: EMBEDDING_CONSTANTS.GEMINI_MODEL,
151
+ textLength: text.length,
152
+ isTimeout: error instanceof Error && error.name === 'AbortError',
141
153
  });
142
154
  return null;
143
155
  }
@@ -153,7 +165,7 @@ export class GeminiEmbeddingStrategy {
153
165
  async search(query, documents) {
154
166
  const queryEmbedding = await this.embed(query);
155
167
  if (!queryEmbedding) {
156
- this.logger.info('Falling back to keyword search due to embedding failure');
168
+ this.logger.debug('Falling back to keyword search due to embedding failure');
157
169
  return this.fallback.search(query, documents);
158
170
  }
159
171
  const scored = [];
@@ -169,7 +181,7 @@ export class GeminiEmbeddingStrategy {
169
181
  }
170
182
  }
171
183
  if (scored.length === 0) {
172
- this.logger.info('No embedding results, falling back to keyword search');
184
+ this.logger.debug('No embedding results, falling back to keyword search');
173
185
  return this.fallback.search(query, documents);
174
186
  }
175
187
  return scored.sort((a, b) => b.score - a.score);
@@ -1 +1 @@
1
- {"version":3,"file":"knowledge-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/knowledge-search.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"knowledge-search.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/knowledge/knowledge-search.service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/marketplace-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,EACL,eAAe,EACf,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAgF1C;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA+B5F;AA+ID;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAoD3F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BtD"}
1
+ {"version":3,"file":"marketplace-installer.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/marketplace-installer.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,OAAO,EACL,eAAe,EACf,0BAA0B,EAE3B,MAAM,kCAAkC,CAAC;AAgF1C;;;;;;;;;;;;GAYG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CA+B5F;AAwJD;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAEnF;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAoD3F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CA0BtD"}
@@ -141,7 +141,11 @@ export async function installItem(item) {
141
141
  */
142
142
  async function installFromGitHub(item, installPath, sourcePath) {
143
143
  const baseUrl = MARKETPLACE_CONSTANTS.PUBLIC_CDN_BASE;
144
- const filesToDownload = ['skill.json', 'execute.sh', 'instructions.md'];
144
+ // Use custom file list from metadata if available, otherwise default 3 files
145
+ const metadataFiles = item.metadata?.files;
146
+ const filesToDownload = metadataFiles && Array.isArray(metadataFiles) && metadataFiles.length > 0
147
+ ? metadataFiles
148
+ : ['skill.json', 'execute.sh', 'instructions.md'];
145
149
  await mkdir(installPath, { recursive: true });
146
150
  // Download all files in parallel
147
151
  const results = await Promise.allSettled(filesToDownload.map(async (file) => {
@@ -157,7 +161,12 @@ async function installFromGitHub(item, installPath, sourcePath) {
157
161
  for (let i = 0; i < filesToDownload.length; i++) {
158
162
  const file = filesToDownload[i];
159
163
  const result = results[i];
160
- const isOptional = file === 'instructions.md';
164
+ // skill.json is always required. execute.sh is required only when using
165
+ // the default file list (non-MCP skills). When metadata.files is provided
166
+ // (MCP skills), only skill.json is mandatory — other files are optional.
167
+ const isOptional = metadataFiles
168
+ ? file !== 'skill.json'
169
+ : file !== 'skill.json' && file !== 'execute.sh';
161
170
  if (result.status === 'rejected') {
162
171
  if (!isOptional) {
163
172
  return { success: false, message: `Failed to download ${file}: ${result.reason}` };
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace-installer.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/marketplace-installer.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"marketplace-installer.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/marketplace/marketplace-installer.service.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,31 @@
1
1
  import { MessengerAdapter, MessengerPlatform } from '../messenger-adapter.interface.js';
2
+ /**
3
+ * Messenger adapter for Discord using the Bot API.
4
+ */
2
5
  export declare class DiscordMessengerAdapter implements MessengerAdapter {
3
6
  readonly platform: MessengerPlatform;
4
7
  private token;
8
+ /**
9
+ * Initialize the adapter by validating the bot token against Discord API.
10
+ *
11
+ * @param config - Must contain a `token` string property
12
+ * @throws Error if token is missing or validation fails
13
+ */
5
14
  initialize(config: Record<string, unknown>): Promise<void>;
15
+ /**
16
+ * Send a text message to a Discord channel.
17
+ *
18
+ * @param channel - Discord channel ID (numeric string)
19
+ * @param text - Message content
20
+ * @throws Error if adapter is not initialized or send fails
21
+ */
6
22
  sendMessage(channel: string, text: string): Promise<void>;
23
+ /** Get the current connection status. */
7
24
  getStatus(): {
8
25
  connected: boolean;
9
26
  platform: MessengerPlatform;
10
27
  };
28
+ /** Disconnect by clearing the stored token. */
11
29
  disconnect(): Promise<void>;
12
30
  }
13
31
  //# sourceMappingURL=discord-messenger.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"discord-messenger.adapter.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/discord-messenger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAExF,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAa;IACjD,OAAO,CAAC,KAAK,CAAuB;IAE9B,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1D,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB/D,SAAS;;;;IAOH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
1
+ {"version":3,"file":"discord-messenger.adapter.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/discord-messenger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAKxF;;GAEG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAC9D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAa;IACjD,OAAO,CAAC,KAAK,CAAuB;IAEpC;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBhE;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB/D,yCAAyC;IACzC,SAAS,IAAI;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE;IAOhE,+CAA+C;IACzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
@@ -1,24 +1,45 @@
1
+ /** Timeout for external Discord API calls (ms). */
2
+ const FETCH_TIMEOUT_MS = 15_000;
3
+ /**
4
+ * Messenger adapter for Discord using the Bot API.
5
+ */
1
6
  export class DiscordMessengerAdapter {
2
7
  platform = 'discord';
3
8
  token = null;
9
+ /**
10
+ * Initialize the adapter by validating the bot token against Discord API.
11
+ *
12
+ * @param config - Must contain a `token` string property
13
+ * @throws Error if token is missing or validation fails
14
+ */
4
15
  async initialize(config) {
5
- const token = String(config.token || '');
6
- if (!token) {
16
+ if (typeof config.token !== 'string' || !config.token) {
7
17
  throw new Error('Discord token is required');
8
18
  }
9
19
  const resp = await fetch('https://discord.com/api/v10/users/@me', {
10
- headers: { Authorization: `Bot ${token}` },
20
+ headers: { Authorization: `Bot ${config.token}` },
21
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
11
22
  });
12
23
  if (!resp.ok) {
13
24
  const details = await resp.text();
14
25
  throw new Error(`Discord validation failed: ${details}`);
15
26
  }
16
- this.token = token;
27
+ this.token = config.token;
17
28
  }
29
+ /**
30
+ * Send a text message to a Discord channel.
31
+ *
32
+ * @param channel - Discord channel ID (numeric string)
33
+ * @param text - Message content
34
+ * @throws Error if adapter is not initialized or send fails
35
+ */
18
36
  async sendMessage(channel, text) {
19
37
  if (!this.token) {
20
38
  throw new Error('Discord adapter is not initialized');
21
39
  }
40
+ if (!/^\d+$/.test(channel)) {
41
+ throw new Error('Invalid Discord channel ID');
42
+ }
22
43
  const resp = await fetch(`https://discord.com/api/v10/channels/${channel}/messages`, {
23
44
  method: 'POST',
24
45
  headers: {
@@ -26,18 +47,21 @@ export class DiscordMessengerAdapter {
26
47
  'Content-Type': 'application/json',
27
48
  },
28
49
  body: JSON.stringify({ content: text }),
50
+ signal: AbortSignal.timeout(FETCH_TIMEOUT_MS),
29
51
  });
30
52
  if (!resp.ok) {
31
53
  const details = await resp.text();
32
54
  throw new Error(`Discord send failed: ${details}`);
33
55
  }
34
56
  }
57
+ /** Get the current connection status. */
35
58
  getStatus() {
36
59
  return {
37
60
  connected: Boolean(this.token),
38
61
  platform: this.platform,
39
62
  };
40
63
  }
64
+ /** Disconnect by clearing the stored token. */
41
65
  async disconnect() {
42
66
  this.token = null;
43
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"discord-messenger.adapter.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/discord-messenger.adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IACzB,QAAQ,GAAsB,SAAS,CAAC;IACzC,KAAK,GAAkB,IAAI,CAAC;IAEpC,KAAK,CAAC,UAAU,CAAC,MAA+B;QAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YAChE,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,KAAK,EAAE,EAAE;SAC3C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY;QAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,wCAAwC,OAAO,WAAW,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;SACxC,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,SAAS;QACP,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
1
+ {"version":3,"file":"discord-messenger.adapter.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/discord-messenger.adapter.ts"],"names":[],"mappings":"AAEA,mDAAmD;AACnD,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACzB,QAAQ,GAAsB,SAAS,CAAC;IACzC,KAAK,GAAkB,IAAI,CAAC;IAEpC;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAA+B;QAC9C,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,uCAAuC,EAAE;YAChE,OAAO,EAAE,EAAE,aAAa,EAAE,OAAO,MAAM,CAAC,KAAK,EAAE,EAAE;YACjD,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY;QAC7C,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,wCAAwC,OAAO,WAAW,EAAE;YACnF,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,aAAa,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE;gBAClC,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACvC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;SAC9C,CAAC,CAAC;QAEH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,SAAS;QACP,OAAO;YACL,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;CACF"}
@@ -9,14 +9,14 @@ export class SlackMessengerAdapter {
9
9
  if (!slack.isConnected()) {
10
10
  throw new Error('Slack is not connected');
11
11
  }
12
- await slack.sendMessage({ channelId: channel, text, threadTs: options?.threadTs });
12
+ await slack.sendMessage({ channelId: channel, text, threadTs: options?.threadId });
13
13
  }
14
14
  getStatus() {
15
15
  const slack = getSlackService();
16
16
  return {
17
17
  connected: slack.isConnected(),
18
18
  platform: this.platform,
19
- details: slack.getStatus(),
19
+ details: Object.fromEntries(Object.entries(slack.getStatus())),
20
20
  };
21
21
  }
22
22
  async disconnect() {
@@ -1 +1 @@
1
- {"version":3,"file":"slack-messenger.adapter.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/slack-messenger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,MAAM,OAAO,qBAAqB;IACvB,QAAQ,GAAsB,OAAO,CAAC;IAE/C,KAAK,CAAC,UAAU,CAAC,OAAgC;QAC/C,gEAAgE;IAClE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY,EAAE,OAAqB;QACpE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,KAAK,CAAC,SAAS,EAAwC;SACjE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF"}
1
+ {"version":3,"file":"slack-messenger.adapter.js","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/slack-messenger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAG/D,MAAM,OAAO,qBAAqB;IACvB,QAAQ,GAAsB,OAAO,CAAC;IAE/C,KAAK,CAAC,UAAU,CAAC,OAAgC;QAC/C,gEAAgE;IAClE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,IAAY,EAAE,OAAqB;QACpE,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC5C,CAAC;QACD,MAAM,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,SAAS;QACP,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,WAAW,EAAE;YAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;SAC/D,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,KAAK,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -1,13 +1,31 @@
1
1
  import { MessengerAdapter, MessengerPlatform } from '../messenger-adapter.interface.js';
2
+ /**
3
+ * Messenger adapter for Telegram using the Bot API.
4
+ */
2
5
  export declare class TelegramMessengerAdapter implements MessengerAdapter {
3
6
  readonly platform: MessengerPlatform;
4
7
  private token;
8
+ /**
9
+ * Initialize the adapter by validating the bot token against Telegram API.
10
+ *
11
+ * @param config - Must contain a `token` string property
12
+ * @throws Error if token is missing or validation fails
13
+ */
5
14
  initialize(config: Record<string, unknown>): Promise<void>;
15
+ /**
16
+ * Send a text message to a Telegram chat.
17
+ *
18
+ * @param channel - Telegram chat ID
19
+ * @param text - Message content
20
+ * @throws Error if adapter is not initialized or send fails
21
+ */
6
22
  sendMessage(channel: string, text: string): Promise<void>;
23
+ /** Get the current connection status. */
7
24
  getStatus(): {
8
25
  connected: boolean;
9
26
  platform: MessengerPlatform;
10
27
  };
28
+ /** Disconnect by clearing the stored token. */
11
29
  disconnect(): Promise<void>;
12
30
  }
13
31
  //# sourceMappingURL=telegram-messenger.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"telegram-messenger.adapter.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/telegram-messenger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAExF,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAc;IAClD,OAAO,CAAC,KAAK,CAAuB;IAE9B,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB1D,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB/D,SAAS;;;;IAOH,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}
1
+ {"version":3,"file":"telegram-messenger.adapter.d.ts","sourceRoot":"","sources":["../../../../../../../backend/src/services/messaging/adapters/telegram-messenger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAKxF;;GAEG;AACH,qBAAa,wBAAyB,YAAW,gBAAgB;IAC/D,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAc;IAClD,OAAO,CAAC,KAAK,CAAuB;IAEpC;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBhE;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/D,yCAAyC;IACzC,SAAS,IAAI;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,iBAAiB,CAAA;KAAE;IAOhE,+CAA+C;IACzC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC"}