crewly 1.2.0 → 1.2.3

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 (91) hide show
  1. package/config/constants.ts +5 -0
  2. package/config/roles/architect/prompt.md +7 -5
  3. package/config/roles/backend-developer/prompt.md +8 -4
  4. package/config/roles/content-strategist/prompt.md +12 -4
  5. package/config/roles/designer/prompt.md +8 -4
  6. package/config/roles/developer/prompt.md +7 -4
  7. package/config/roles/frontend-developer/prompt.md +8 -4
  8. package/config/roles/fullstack-dev/prompt.md +8 -4
  9. package/config/roles/generalist/prompt.md +7 -4
  10. package/config/roles/ops/prompt.md +7 -4
  11. package/config/roles/orchestrator/prompt.md +22 -1
  12. package/config/roles/product-manager/prompt.md +8 -4
  13. package/config/roles/qa/prompt.md +8 -4
  14. package/config/roles/qa-engineer/prompt.md +8 -4
  15. package/config/roles/sales/prompt.md +8 -4
  16. package/config/roles/support/prompt.md +8 -4
  17. package/config/roles/tpm/prompt.md +8 -4
  18. package/config/skills/orchestrator/delegate-task/execute.sh +7 -5
  19. package/config/skills/orchestrator/delegate-task/instructions.md +22 -17
  20. package/config/templates/agent-claude-md.md +10 -5
  21. package/dist/backend/backend/src/constants.d.ts +18 -63
  22. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  23. package/dist/backend/backend/src/constants.js +17 -68
  24. package/dist/backend/backend/src/constants.js.map +1 -1
  25. package/dist/backend/backend/src/controllers/chat/chat.controller.d.ts.map +1 -1
  26. package/dist/backend/backend/src/controllers/chat/chat.controller.js +39 -0
  27. package/dist/backend/backend/src/controllers/chat/chat.controller.js.map +1 -1
  28. package/dist/backend/backend/src/index.d.ts.map +1 -1
  29. package/dist/backend/backend/src/index.js +1 -0
  30. package/dist/backend/backend/src/index.js.map +1 -1
  31. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts +2 -13
  32. package/dist/backend/backend/src/services/agent/agent-registration.service.d.ts.map +1 -1
  33. package/dist/backend/backend/src/services/agent/agent-registration.service.js +105 -130
  34. package/dist/backend/backend/src/services/agent/agent-registration.service.js.map +1 -1
  35. package/dist/backend/backend/src/services/agent/gemini-runtime.service.d.ts +1 -1
  36. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js +8 -8
  37. package/dist/backend/backend/src/services/agent/gemini-runtime.service.js.map +1 -1
  38. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts +30 -27
  39. package/dist/backend/backend/src/services/event-bus/event-bus.service.d.ts.map +1 -1
  40. package/dist/backend/backend/src/services/event-bus/event-bus.service.js +128 -53
  41. package/dist/backend/backend/src/services/event-bus/event-bus.service.js.map +1 -1
  42. package/dist/backend/backend/src/services/messaging/message-queue.service.js +1 -1
  43. package/dist/backend/backend/src/services/messaging/message-queue.service.js.map +1 -1
  44. package/dist/backend/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -1
  45. package/dist/backend/backend/src/services/messaging/queue-processor.service.js +47 -10
  46. package/dist/backend/backend/src/services/messaging/queue-processor.service.js.map +1 -1
  47. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts +35 -3
  48. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.d.ts.map +1 -1
  49. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js +123 -25
  50. package/dist/backend/backend/src/services/monitoring/activity-monitor.service.js.map +1 -1
  51. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts +6 -0
  52. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.d.ts.map +1 -1
  53. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js +25 -3
  54. package/dist/backend/backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.js.map +1 -1
  55. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js +1 -1
  56. package/dist/backend/backend/src/services/session/pty/pty-session-backend.js.map +1 -1
  57. package/dist/backend/backend/src/services/session/session-command-helper.d.ts.map +1 -1
  58. package/dist/backend/backend/src/services/session/session-command-helper.js +29 -2
  59. package/dist/backend/backend/src/services/session/session-command-helper.js.map +1 -1
  60. package/dist/backend/backend/src/utils/terminal-output.utils.d.ts +2 -1
  61. package/dist/backend/backend/src/utils/terminal-output.utils.d.ts.map +1 -1
  62. package/dist/backend/backend/src/utils/terminal-output.utils.js +2 -28
  63. package/dist/backend/backend/src/utils/terminal-output.utils.js.map +1 -1
  64. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts +183 -0
  65. package/dist/backend/backend/src/utils/terminal-string-ops.d.ts.map +1 -0
  66. package/dist/backend/backend/src/utils/terminal-string-ops.js +717 -0
  67. package/dist/backend/backend/src/utils/terminal-string-ops.js.map +1 -0
  68. package/dist/backend/backend/src/websocket/terminal.gateway.d.ts.map +1 -1
  69. package/dist/backend/backend/src/websocket/terminal.gateway.js +22 -27
  70. package/dist/backend/backend/src/websocket/terminal.gateway.js.map +1 -1
  71. package/dist/backend/config/constants.d.ts +5 -0
  72. package/dist/backend/config/constants.d.ts.map +1 -1
  73. package/dist/backend/config/constants.js +5 -0
  74. package/dist/backend/config/constants.js.map +1 -1
  75. package/dist/cli/backend/src/constants.d.ts +18 -63
  76. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  77. package/dist/cli/backend/src/constants.js +17 -68
  78. package/dist/cli/backend/src/constants.js.map +1 -1
  79. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts +2 -1
  80. package/dist/cli/backend/src/utils/terminal-output.utils.d.ts.map +1 -1
  81. package/dist/cli/backend/src/utils/terminal-output.utils.js +2 -28
  82. package/dist/cli/backend/src/utils/terminal-output.utils.js.map +1 -1
  83. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts +183 -0
  84. package/dist/cli/backend/src/utils/terminal-string-ops.d.ts.map +1 -0
  85. package/dist/cli/backend/src/utils/terminal-string-ops.js +717 -0
  86. package/dist/cli/backend/src/utils/terminal-string-ops.js.map +1 -0
  87. package/dist/cli/config/constants.d.ts +5 -0
  88. package/dist/cli/config/constants.d.ts.map +1 -1
  89. package/dist/cli/config/constants.js +5 -0
  90. package/dist/cli/config/constants.js.map +1 -1
  91. package/package.json +2 -1
@@ -175,11 +175,15 @@ export class QueueProcessorService extends EventEmitter {
175
175
  }
176
176
  const runtimeType = storedRuntimeType || RUNTIME_TYPES.CLAUDE_CODE;
177
177
  // Determine if this is a user message (Slack/web chat) vs system event.
178
- // User messages get shorter timeouts and force-delivery to reduce delay.
179
- const isUserMessage = message.source === MESSAGE_SOURCES.SLACK || message.source === MESSAGE_SOURCES.WEB_CHAT;
178
+ // User messages and system events get shorter timeouts and force-delivery
179
+ // to reduce delay. System events are fire-and-forget so force-delivery is
180
+ // lower risk — prevents the 5×120s=10min retry loop that blocks notifications.
181
+ const isUserMessage = message.source === MESSAGE_SOURCES.SLACK || message.source === MESSAGE_SOURCES.WEB_CHAT || message.source === MESSAGE_SOURCES.WHATSAPP;
180
182
  const readyTimeout = isUserMessage
181
183
  ? EVENT_DELIVERY_CONSTANTS.USER_MESSAGE_TIMEOUT
182
- : EVENT_DELIVERY_CONSTANTS.AGENT_READY_TIMEOUT;
184
+ : isSystemEvent
185
+ ? EVENT_DELIVERY_CONSTANTS.SYSTEM_EVENT_TIMEOUT
186
+ : EVENT_DELIVERY_CONSTANTS.AGENT_READY_TIMEOUT;
183
187
  // Wait for orchestrator to be at prompt before attempting delivery.
184
188
  // After processing a previous message the orchestrator may still be busy
185
189
  // (managing agents, running commands) before returning to the input prompt.
@@ -193,18 +197,25 @@ export class QueueProcessorService extends EventEmitter {
193
197
  return;
194
198
  }
195
199
  if (!isReady) {
196
- // For user messages: force-deliver immediately instead of re-queuing
197
- // to avoid the 120s × 5 retry loop that causes ~6 min delays
198
- if (isUserMessage && EVENT_DELIVERY_CONSTANTS.USER_MESSAGE_FORCE_DELIVER) {
199
- this.logger.warn('Agent not ready but force-delivering user message to reduce delay', {
200
+ // For user messages and system events: force-deliver immediately instead
201
+ // of re-queuing to avoid the retry loop that causes multi-minute delays.
202
+ // System events are fire-and-forget (no response expected), so force-delivery
203
+ // is lower risk. The orchestrator will process input when it returns to prompt.
204
+ const shouldForceDeliver = (isUserMessage && EVENT_DELIVERY_CONSTANTS.USER_MESSAGE_FORCE_DELIVER) ||
205
+ (isSystemEvent && EVENT_DELIVERY_CONSTANTS.SYSTEM_EVENT_FORCE_DELIVER);
206
+ if (shouldForceDeliver) {
207
+ this.logger.warn('Agent not ready but force-delivering message to reduce delay', {
200
208
  messageId: message.id,
201
209
  source: message.source,
202
210
  timeoutMs: readyTimeout,
211
+ isUserMessage,
212
+ isSystemEvent,
203
213
  });
204
214
  // Fall through to delivery below — the message will be sent even though
205
215
  // the orchestrator may not be at prompt. This is acceptable because:
206
- // 1. The user expects a timely response
207
- // 2. The orchestrator will process the input when it returns to prompt
216
+ // 1. The user expects a timely response (user messages)
217
+ // 2. System events are fire-and-forget notifications
218
+ // 3. The orchestrator will process the input when it returns to prompt
208
219
  }
209
220
  else {
210
221
  const currentRetries = message.retryCount || 0;
@@ -280,6 +291,26 @@ export class QueueProcessorService extends EventEmitter {
280
291
  message.deliveredAt = new Date().toISOString();
281
292
  if (!deliveryResult.success) {
282
293
  const errorMsg = deliveryResult.error || 'Failed to deliver message to orchestrator';
294
+ // If agent is busy (actively processing), re-queue instead of permanently failing.
295
+ // This allows the message to be retried once the agent returns to prompt.
296
+ const isAgentBusy = errorMsg.includes('[AGENT_BUSY]');
297
+ const currentRetries = message.retryCount || 0;
298
+ if (isAgentBusy && currentRetries < MESSAGE_QUEUE_CONSTANTS.MAX_REQUEUE_RETRIES) {
299
+ this.logger.info('Agent busy, re-queuing message for later delivery', {
300
+ messageId: message.id,
301
+ retryCount: currentRetries + 1,
302
+ maxRetries: MESSAGE_QUEUE_CONSTANTS.MAX_REQUEUE_RETRIES,
303
+ });
304
+ this.queueService.requeue(message);
305
+ // Also re-queue any batched system event messages
306
+ for (const batchedMsg of batchedMessages) {
307
+ this.queueService.requeue(batchedMsg);
308
+ }
309
+ this.scheduleProcessNext(EVENT_DELIVERY_CONSTANTS.AGENT_READY_POLL_INTERVAL);
310
+ this.nextAlreadyScheduled = true;
311
+ clearInterval(keepaliveInterval);
312
+ return;
313
+ }
283
314
  this.logger.warn('Message delivery failed', {
284
315
  messageId: message.id,
285
316
  error: errorMsg,
@@ -330,7 +361,13 @@ export class QueueProcessorService extends EventEmitter {
330
361
  // Wait for orchestrator to finish all post-response work before next message.
331
362
  // The orchestrator may continue managing agents or running commands after
332
363
  // emitting its chat response.
333
- await this.agentRegistrationService.waitForAgentReady(ORCHESTRATOR_SESSION_NAME, EVENT_DELIVERY_CONSTANTS.AGENT_READY_TIMEOUT, runtimeType);
364
+ // Skip for system events: they're fire-and-forget with no response expected.
365
+ // The next processNext() iteration already calls waitForAgentReady before
366
+ // delivery, so we don't need to block here. Skipping this avoids the 120s
367
+ // wait that prevents user [CHAT] messages from being processed promptly.
368
+ if (!isSystemEvent) {
369
+ await this.agentRegistrationService.waitForAgentReady(ORCHESTRATOR_SESSION_NAME, EVENT_DELIVERY_CONSTANTS.AGENT_READY_TIMEOUT, runtimeType);
370
+ }
334
371
  }
335
372
  catch (error) {
336
373
  const errorMsg = error instanceof Error ? error.message : String(error);
@@ -1 +1 @@
1
- {"version":3,"file":"queue-processor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queue-processor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type WorkingStatus } from '../../constants.js';
2
+ import type { EventBusService } from '../event-bus/event-bus.service.js';
2
3
  /**
3
4
  * Team Working Status File Structure
4
5
  * Tracks ONLY workingStatus (idle vs in_progress) based on terminal activity
@@ -55,16 +56,47 @@ export declare class ActivityMonitorService {
55
56
  private lastCleanup;
56
57
  private crewlyHome;
57
58
  private teamWorkingStatusFile;
59
+ private eventBusService;
60
+ /** Tracks when each session entered in_progress (epoch ms) */
61
+ private busyTransitionTimestamps;
62
+ /** Tracks which sessions have had their agent:busy event emitted */
63
+ private busyEventEmitted;
58
64
  private constructor();
59
65
  /**
60
66
  * Get the session backend, lazily initializing if needed.
61
67
  */
62
68
  private getBackend;
69
+ static getInstance(): ActivityMonitorService;
63
70
  /**
64
- * Get the session backend synchronously (may return null if not initialized).
71
+ * Inject the EventBusService for direct event publishing on status transitions.
72
+ *
73
+ * @param service - The EventBusService instance
65
74
  */
66
- private get sessionBackend();
67
- static getInstance(): ActivityMonitorService;
75
+ setEventBusService(service: EventBusService): void;
76
+ /**
77
+ * Build an AgentEvent for a working status transition.
78
+ *
79
+ * @param type - The event type ('agent:busy' or 'agent:idle')
80
+ * @param timestamp - ISO timestamp for the event
81
+ * @param identity - Agent identity fields (team/member/session)
82
+ * @param previousValue - The previous working status
83
+ * @param newValue - The new working status
84
+ * @returns A fully-formed AgentEvent
85
+ */
86
+ private buildAgentEvent;
87
+ /**
88
+ * Handle duration-gated event emission for a session status transition.
89
+ * Suppresses spurious idle→busy→idle cycles by requiring a minimum
90
+ * busy duration (MIN_BUSY_DURATION_MS) before emitting events.
91
+ *
92
+ * @param key - Unique key for tracking (e.g. 'orchestrator' or session name)
93
+ * @param newStatus - The new working status
94
+ * @param previousStatus - The previous working status
95
+ * @param statusChanged - Whether the status actually changed this poll
96
+ * @param identity - Agent identity fields for building the event
97
+ * @param now - ISO timestamp for the event
98
+ */
99
+ private handleDurationGatedEmission;
68
100
  startPolling(): void;
69
101
  stopPolling(): void;
70
102
  private performActivityCheck;
@@ -1 +1 @@
1
- {"version":3,"file":"activity-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/activity-monitor.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAA8F,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIpJ;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,aAAa,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,aAAa,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,oBAAoB;IACpB,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAO;IACvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAC/C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IAEtC,OAAO;IAQP;;OAEG;YACW,UAAU;IAUxB;;OAEG;IACH,OAAO,KAAK,cAAc,GAKzB;WAEa,WAAW,IAAI,sBAAsB;IAO5C,YAAY,IAAI,IAAI;IAiBpB,WAAW,IAAI,IAAI;YAQZ,oBAAoB;IAoBlC;;;;;;;;OAQG;YACW,4BAA4B;IAoP1C;;OAEG;YACW,yBAAyB;IA+BvC;;OAEG;YACW,yBAAyB;IAiBvC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAiB1C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiC9B;;OAEG;YACW,iBAAiB;IAmBxB,SAAS,IAAI,OAAO;IAIpB,kBAAkB,IAAI,MAAM;IAInC;;;OAGG;IACU,oBAAoB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAInE;;OAEG;IACU,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;CAiB5F"}
1
+ {"version":3,"file":"activity-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/activity-monitor.service.ts"],"names":[],"mappings":"AAQA,OAAO,EAAqF,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAG3I,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAGzE;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,kCAAkC;IAClC,YAAY,EAAE;QACZ,WAAW,EAAE,MAAM,CAAC;QACpB,aAAa,EAAE,aAAa,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,0DAA0D;IAC1D,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE;QAC1B,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,aAAa,CAAC;QAC7B,iBAAiB,EAAE,MAAM,CAAC;QAC1B,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,oBAAoB;IACpB,QAAQ,EAAE;QACR,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;;;;;;;;;;;;;GAcG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAyB;IAChD,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,qBAAqB,CAAwB;IACrD,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAU;IAC3C,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAO;IACvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAQ;IAC/C,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,eAAe,CAAgC;IACvD,8DAA8D;IAC9D,OAAO,CAAC,wBAAwB,CAAkC;IAClE,oEAAoE;IACpE,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO;IAQP;;OAEG;YACW,UAAU;WAUV,WAAW,IAAI,sBAAsB;IAOnD;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI;IAIlD;;;;;;;;;OASG;IACH,OAAO,CAAC,eAAe;IAsBvB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,2BAA2B;IAwC5B,YAAY,IAAI,IAAI;IAiBpB,WAAW,IAAI,IAAI;YAQZ,oBAAoB;IAoBlC;;;;;;;;OAQG;YACW,4BAA4B;IA2Q1C;;OAEG;YACW,yBAAyB;IA+BvC;;OAEG;YACW,yBAAyB;IAiBvC;;OAEG;IACH,OAAO,CAAC,kCAAkC;IAiB1C;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAiC9B;;OAEG;YACW,iBAAiB;IAuBxB,SAAS,IAAI,OAAO;IAIpB,kBAAkB,IAAI,MAAM;IAInC;;;OAGG;IACU,oBAAoB,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAInE;;OAEG;IACU,0BAA0B,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;CAiB5F"}
@@ -6,7 +6,8 @@ import { writeFile, readFile, rename, unlink } from 'fs/promises';
6
6
  import { join } from 'path';
7
7
  import { homedir } from 'os';
8
8
  import { existsSync } from 'fs';
9
- import { CREWLY_CONSTANTS, CONTINUATION_CONSTANTS, AGENT_IDENTITY_CONSTANTS } from '../../constants.js';
9
+ import { CREWLY_CONSTANTS, CONTINUATION_CONSTANTS, AGENT_IDENTITY_CONSTANTS, PTY_CONSTANTS } from '../../constants.js';
10
+ import { stripAnsiCodes } from '../../utils/terminal-output.utils.js';
10
11
  import { PtyActivityTrackerService } from '../agent/pty-activity-tracker.service.js';
11
12
  /**
12
13
  * Activity Monitor Service - NEW ARCHITECTURE
@@ -37,6 +38,11 @@ export class ActivityMonitorService {
37
38
  lastCleanup = Date.now();
38
39
  crewlyHome;
39
40
  teamWorkingStatusFile;
41
+ eventBusService = null;
42
+ /** Tracks when each session entered in_progress (epoch ms) */
43
+ busyTransitionTimestamps = new Map();
44
+ /** Tracks which sessions have had their agent:busy event emitted */
45
+ busyEventEmitted = new Set();
40
46
  constructor() {
41
47
  this.logger = LoggerService.getInstance().createComponentLogger('ActivityMonitor');
42
48
  this.storageService = StorageService.getInstance();
@@ -56,21 +62,89 @@ export class ActivityMonitorService {
56
62
  }
57
63
  return this._sessionBackend;
58
64
  }
59
- /**
60
- * Get the session backend synchronously (may return null if not initialized).
61
- */
62
- get sessionBackend() {
63
- if (!this._sessionBackend) {
64
- this._sessionBackend = getSessionBackendSync();
65
- }
66
- return this._sessionBackend;
67
- }
68
65
  static getInstance() {
69
66
  if (!ActivityMonitorService.instance) {
70
67
  ActivityMonitorService.instance = new ActivityMonitorService();
71
68
  }
72
69
  return ActivityMonitorService.instance;
73
70
  }
71
+ /**
72
+ * Inject the EventBusService for direct event publishing on status transitions.
73
+ *
74
+ * @param service - The EventBusService instance
75
+ */
76
+ setEventBusService(service) {
77
+ this.eventBusService = service;
78
+ }
79
+ /**
80
+ * Build an AgentEvent for a working status transition.
81
+ *
82
+ * @param type - The event type ('agent:busy' or 'agent:idle')
83
+ * @param timestamp - ISO timestamp for the event
84
+ * @param identity - Agent identity fields (team/member/session)
85
+ * @param previousValue - The previous working status
86
+ * @param newValue - The new working status
87
+ * @returns A fully-formed AgentEvent
88
+ */
89
+ buildAgentEvent(type, timestamp, identity, previousValue, newValue) {
90
+ return {
91
+ id: crypto.randomUUID(),
92
+ type,
93
+ timestamp,
94
+ teamId: identity.teamId,
95
+ teamName: identity.teamName,
96
+ memberId: identity.memberId,
97
+ memberName: identity.memberName,
98
+ sessionName: identity.sessionName,
99
+ previousValue,
100
+ newValue,
101
+ changedField: 'workingStatus',
102
+ };
103
+ }
104
+ /**
105
+ * Handle duration-gated event emission for a session status transition.
106
+ * Suppresses spurious idle→busy→idle cycles by requiring a minimum
107
+ * busy duration (MIN_BUSY_DURATION_MS) before emitting events.
108
+ *
109
+ * @param key - Unique key for tracking (e.g. 'orchestrator' or session name)
110
+ * @param newStatus - The new working status
111
+ * @param previousStatus - The previous working status
112
+ * @param statusChanged - Whether the status actually changed this poll
113
+ * @param identity - Agent identity fields for building the event
114
+ * @param now - ISO timestamp for the event
115
+ */
116
+ handleDurationGatedEmission(key, newStatus, previousStatus, statusChanged, identity, now) {
117
+ if (statusChanged && newStatus === 'in_progress') {
118
+ if (!this.busyTransitionTimestamps.has(key)) {
119
+ this.busyTransitionTimestamps.set(key, Date.now());
120
+ }
121
+ }
122
+ if (statusChanged) {
123
+ const busyStart = this.busyTransitionTimestamps.get(key);
124
+ const elapsed = busyStart != null ? Date.now() - busyStart : 0;
125
+ if (newStatus === 'in_progress') {
126
+ if (elapsed >= PTY_CONSTANTS.MIN_BUSY_DURATION_MS && !this.busyEventEmitted.has(key) && this.eventBusService) {
127
+ this.busyEventEmitted.add(key);
128
+ this.eventBusService.publish(this.buildAgentEvent('agent:busy', now, identity, previousStatus, newStatus));
129
+ }
130
+ }
131
+ else {
132
+ if (elapsed >= PTY_CONSTANTS.MIN_BUSY_DURATION_MS && this.busyEventEmitted.has(key) && this.eventBusService) {
133
+ this.eventBusService.publish(this.buildAgentEvent('agent:idle', now, identity, previousStatus, newStatus));
134
+ }
135
+ this.busyTransitionTimestamps.delete(key);
136
+ this.busyEventEmitted.delete(key);
137
+ }
138
+ }
139
+ else if (newStatus === 'in_progress' && this.busyTransitionTimestamps.has(key) && !this.busyEventEmitted.has(key)) {
140
+ // Still in_progress across polls — check if deferred busy event can now be emitted
141
+ const busyStart = this.busyTransitionTimestamps.get(key);
142
+ if (Date.now() - busyStart >= PTY_CONSTANTS.MIN_BUSY_DURATION_MS && this.eventBusService) {
143
+ this.busyEventEmitted.add(key);
144
+ this.eventBusService.publish(this.buildAgentEvent('agent:busy', now, identity, 'idle', 'in_progress'));
145
+ }
146
+ }
147
+ }
74
148
  startPolling() {
75
149
  if (this.intervalId) {
76
150
  this.logger.warn('Activity monitoring already running');
@@ -214,7 +288,10 @@ export class ActivityMonitorService {
214
288
  PtyActivityTrackerService.getInstance().recordActivity(CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME);
215
289
  }
216
290
  const newWorkingStatus = outputChanged ? 'in_progress' : 'idle';
217
- if (workingStatusData.orchestrator.workingStatus !== newWorkingStatus) {
291
+ const orchKey = 'orchestrator';
292
+ const previousStatus = workingStatusData.orchestrator.workingStatus;
293
+ const statusChanged = previousStatus !== newWorkingStatus;
294
+ if (statusChanged) {
218
295
  workingStatusData.orchestrator.workingStatus = newWorkingStatus;
219
296
  workingStatusData.orchestrator.lastActivityCheck = now;
220
297
  workingStatusData.orchestrator.updatedAt = now;
@@ -225,6 +302,13 @@ export class ActivityMonitorService {
225
302
  outputChanged
226
303
  });
227
304
  }
305
+ this.handleDurationGatedEmission(orchKey, newWorkingStatus, previousStatus, statusChanged, {
306
+ teamId: 'orchestrator',
307
+ teamName: 'Orchestrator',
308
+ memberId: AGENT_IDENTITY_CONSTANTS.ORCHESTRATOR.ID,
309
+ memberName: 'Orchestrator',
310
+ sessionName: CREWLY_CONSTANTS.SESSIONS.ORCHESTRATOR_NAME,
311
+ }, now);
228
312
  this.lastTerminalOutputs.set('orchestrator', orchestratorOutput);
229
313
  }
230
314
  else {
@@ -267,6 +351,8 @@ export class ActivityMonitorService {
267
351
  hasChanges = true;
268
352
  }
269
353
  this.lastTerminalOutputs.delete(memberKey);
354
+ this.busyTransitionTimestamps.delete(memberKey);
355
+ this.busyEventEmitted.delete(memberKey);
270
356
  continue;
271
357
  }
272
358
  // Get terminal output and check for activity
@@ -286,19 +372,30 @@ export class ActivityMonitorService {
286
372
  };
287
373
  hasChanges = true;
288
374
  }
289
- else if (workingStatusData.teamMembers[memberKey].workingStatus !== newWorkingStatus) {
290
- workingStatusData.teamMembers[memberKey].workingStatus = newWorkingStatus;
291
- workingStatusData.teamMembers[memberKey].lastActivityCheck = now;
292
- workingStatusData.teamMembers[memberKey].updatedAt = now;
293
- hasChanges = true;
294
- this.logger.info('Team member working status updated', {
375
+ else {
376
+ const previousMemberStatus = workingStatusData.teamMembers[memberKey].workingStatus;
377
+ const memberStatusChanged = previousMemberStatus !== newWorkingStatus;
378
+ if (memberStatusChanged) {
379
+ workingStatusData.teamMembers[memberKey].workingStatus = newWorkingStatus;
380
+ workingStatusData.teamMembers[memberKey].lastActivityCheck = now;
381
+ workingStatusData.teamMembers[memberKey].updatedAt = now;
382
+ hasChanges = true;
383
+ this.logger.info('Team member working status updated', {
384
+ teamId: team.id,
385
+ memberId: member.id,
386
+ memberName: member.name,
387
+ sessionName: member.sessionName,
388
+ newWorkingStatus,
389
+ outputChanged
390
+ });
391
+ }
392
+ this.handleDurationGatedEmission(memberKey, newWorkingStatus, previousMemberStatus, memberStatusChanged, {
295
393
  teamId: team.id,
394
+ teamName: team.name,
296
395
  memberId: member.id,
297
396
  memberName: member.name,
298
397
  sessionName: member.sessionName,
299
- newWorkingStatus,
300
- outputChanged
301
- });
398
+ }, now);
302
399
  }
303
400
  this.lastTerminalOutputs.set(member.sessionName, currentOutput);
304
401
  }
@@ -320,8 +417,6 @@ export class ActivityMonitorService {
320
417
  await this.saveTeamWorkingStatusFile(workingStatusData);
321
418
  this.logger.debug('Updated teamWorkingStatus.json with activity changes');
322
419
  }
323
- // Perform periodic cleanup
324
- this.performPeriodicCleanup();
325
420
  }
326
421
  catch (error) {
327
422
  this.logger.error('Error during activity check', {
@@ -441,10 +536,13 @@ export class ActivityMonitorService {
441
536
  Promise.resolve(backend.captureOutput(sessionName, 5)), // 5 lines only
442
537
  new Promise((_, reject) => setTimeout(() => reject(new Error('Capture timeout')), 500))
443
538
  ]);
539
+ // Strip ANSI escape codes so TUI re-renders (spinners, cursor
540
+ // repositioning) don't register as meaningful output changes.
541
+ const cleaned = stripAnsiCodes(output).trim();
444
542
  // Limit output size to prevent memory issues
445
- return output.length > this.MAX_OUTPUT_SIZE
446
- ? output.substring(output.length - this.MAX_OUTPUT_SIZE)
447
- : output;
543
+ return cleaned.length > this.MAX_OUTPUT_SIZE
544
+ ? cleaned.substring(cleaned.length - this.MAX_OUTPUT_SIZE)
545
+ : cleaned;
448
546
  }
449
547
  catch (error) {
450
548
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"activity-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/activity-monitor.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-monitor.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/monitoring/activity-monitor.service.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,8 @@ export interface HeartbeatMonitorState {
33
33
  autoRestartCount: number;
34
34
  /** Timestamp when the service started monitoring */
35
35
  startedAt: number | null;
36
+ /** Timestamp when the orchestrator was first seen in_progress (null if idle) */
37
+ inProgressSince: number | null;
36
38
  }
37
39
  /**
38
40
  * Monitors the orchestrator's heartbeat and takes progressive action
@@ -65,6 +67,10 @@ export declare class OrchestratorHeartbeatMonitorService {
65
67
  private autoRestartCount;
66
68
  /** When monitoring started */
67
69
  private startedAt;
70
+ /** When the orchestrator was first seen with recent activity but no idle period.
71
+ * Used to detect stuck in_progress state where spinner animation prevents
72
+ * idle detection from ever exceeding the heartbeat threshold. */
73
+ private inProgressSince;
68
74
  /** Session backend for writing to orchestrator PTY */
69
75
  private sessionBackend;
70
76
  /** Optional callback used to suppress idle heartbeats when no work is pending. */
@@ -1 +1 @@
1
- {"version":3,"file":"orchestrator-heartbeat-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mCAAmC;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoD;IAC3E,OAAO,CAAC,MAAM,CAAkB;IAEhC,4BAA4B;IAC5B,OAAO,CAAC,UAAU,CAA+C;IAEjE,kEAAkE;IAClE,OAAO,CAAC,sBAAsB,CAAuB;IAErD,0CAA0C;IAC1C,OAAO,CAAC,qBAAqB,CAAK;IAElC,0CAA0C;IAC1C,OAAO,CAAC,gBAAgB,CAAK;IAE7B,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAuB;IAExC,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAgC;IACtD,kFAAkF;IAClF,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,mCAAmC;IAOzD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAO5B;;;;OAIG;IACH,eAAe,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI;IAKtF;;;OAGG;IACH,KAAK,IAAI,IAAI;IA0Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IASZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,QAAQ,IAAI,qBAAqB;IAUjC;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAiFnC;;;OAGG;YACW,oBAAoB;IA2ClC;;OAEG;YACW,kBAAkB;CAmBhC"}
1
+ {"version":3,"file":"orchestrator-heartbeat-monitor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/orchestrator/orchestrator-heartbeat-monitor.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,+CAA+C;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,wEAAwE;IACxE,qBAAqB,EAAE,MAAM,CAAC;IAC9B,wDAAwD;IACxD,gBAAgB,EAAE,MAAM,CAAC;IACzB,oDAAoD;IACpD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gFAAgF;IAChF,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,mCAAmC;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAoD;IAC3E,OAAO,CAAC,MAAM,CAAkB;IAEhC,4BAA4B;IAC5B,OAAO,CAAC,UAAU,CAA+C;IAEjE,kEAAkE;IAClE,OAAO,CAAC,sBAAsB,CAAuB;IAErD,0CAA0C;IAC1C,OAAO,CAAC,qBAAqB,CAAK;IAElC,0CAA0C;IAC1C,OAAO,CAAC,gBAAgB,CAAK;IAE7B,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAuB;IAExC;;sEAEkE;IAClE,OAAO,CAAC,eAAe,CAAuB;IAE9C,sDAAsD;IACtD,OAAO,CAAC,cAAc,CAAgC;IACtD,kFAAkF;IAClF,OAAO,CAAC,cAAc,CAAgC;IAEtD,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,WAAW,IAAI,mCAAmC;IAOzD;;OAEG;IACH,MAAM,CAAC,aAAa,IAAI,IAAI;IAO5B;;;;OAIG;IACH,eAAe,CAAC,cAAc,EAAE,eAAe,EAAE,cAAc,CAAC,EAAE,MAAM,OAAO,GAAG,IAAI;IAKtF;;;OAGG;IACH,KAAK,IAAI,IAAI;IA2Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IAUZ;;;;OAIG;IACH,SAAS,IAAI,OAAO;IAIpB;;;;OAIG;IACH,QAAQ,IAAI,qBAAqB;IAWjC;;;;;;;;;OASG;IACG,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoGnC;;;OAGG;YACW,oBAAoB;IA2ClC;;OAEG;YACW,kBAAkB;CAmBhC"}
@@ -54,6 +54,10 @@ export class OrchestratorHeartbeatMonitorService {
54
54
  autoRestartCount = 0;
55
55
  /** When monitoring started */
56
56
  startedAt = null;
57
+ /** When the orchestrator was first seen with recent activity but no idle period.
58
+ * Used to detect stuck in_progress state where spinner animation prevents
59
+ * idle detection from ever exceeding the heartbeat threshold. */
60
+ inProgressSince = null;
57
61
  /** Session backend for writing to orchestrator PTY */
58
62
  sessionBackend = null;
59
63
  /** Optional callback used to suppress idle heartbeats when no work is pending. */
@@ -102,6 +106,7 @@ export class OrchestratorHeartbeatMonitorService {
102
106
  this.startedAt = Date.now();
103
107
  this.heartbeatRequestSentAt = null;
104
108
  this.heartbeatRequestCount = 0;
109
+ this.inProgressSince = null;
105
110
  this.logger.info('Starting orchestrator heartbeat monitor', {
106
111
  checkIntervalMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.CHECK_INTERVAL_MS,
107
112
  heartbeatRequestThresholdMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.HEARTBEAT_REQUEST_THRESHOLD_MS,
@@ -126,6 +131,7 @@ export class OrchestratorHeartbeatMonitorService {
126
131
  this.logger.info('Orchestrator heartbeat monitor stopped');
127
132
  }
128
133
  this.heartbeatRequestSentAt = null;
134
+ this.inProgressSince = null;
129
135
  }
130
136
  /**
131
137
  * Check if the monitor is currently running.
@@ -147,6 +153,7 @@ export class OrchestratorHeartbeatMonitorService {
147
153
  heartbeatRequestCount: this.heartbeatRequestCount,
148
154
  autoRestartCount: this.autoRestartCount,
149
155
  startedAt: this.startedAt,
156
+ inProgressSince: this.inProgressSince,
150
157
  };
151
158
  }
152
159
  /**
@@ -196,8 +203,26 @@ export class OrchestratorHeartbeatMonitorService {
196
203
  this.logger.info('Orchestrator responded to heartbeat request, clearing pending state');
197
204
  this.heartbeatRequestSentAt = null;
198
205
  }
206
+ // Track continuous in_progress duration. Spinner animation counts as
207
+ // "activity" so idleTime stays low, but the orchestrator may be stuck
208
+ // in a processing loop without making real progress.
209
+ if (this.inProgressSince === null) {
210
+ this.inProgressSince = Date.now();
211
+ }
212
+ else if (ORCHESTRATOR_HEARTBEAT_CONSTANTS.IN_PROGRESS_TIMEOUT_MS &&
213
+ Date.now() - this.inProgressSince > ORCHESTRATOR_HEARTBEAT_CONSTANTS.IN_PROGRESS_TIMEOUT_MS) {
214
+ const stuckDurationMs = Date.now() - this.inProgressSince;
215
+ this.logger.warn('Orchestrator stuck in_progress for extended period, sending heartbeat', {
216
+ stuckDurationMs,
217
+ thresholdMs: ORCHESTRATOR_HEARTBEAT_CONSTANTS.IN_PROGRESS_TIMEOUT_MS,
218
+ });
219
+ this.inProgressSince = null;
220
+ await this.sendHeartbeatRequest();
221
+ }
199
222
  return;
200
223
  }
224
+ // Orchestrator is idle — reset in_progress tracker
225
+ this.inProgressSince = null;
201
226
  // If we already sent a heartbeat request, check if it's time to restart
202
227
  if (this.heartbeatRequestSentAt !== null) {
203
228
  const timeSinceRequest = Date.now() - this.heartbeatRequestSentAt;
@@ -216,9 +241,6 @@ export class OrchestratorHeartbeatMonitorService {
216
241
  // work, skip synthetic heartbeat pings to avoid idle token burn.
217
242
  const pendingWork = this.hasPendingWork ? this.hasPendingWork() : true;
218
243
  if (!pendingWork) {
219
- if (this.heartbeatRequestSentAt !== null) {
220
- this.heartbeatRequestSentAt = null;
221
- }
222
244
  this.logger.debug('Skipping heartbeat request: no pending orchestrator work');
223
245
  return;
224
246
  }