crewly 1.20.133 → 1.20.134
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.
- package/dist/backend/backend/src/constants.d.ts +82 -0
- package/dist/backend/backend/src/constants.d.ts.map +1 -1
- package/dist/backend/backend/src/constants.js +87 -0
- package/dist/backend/backend/src/constants.js.map +1 -1
- package/dist/backend/backend/src/controllers/bundle/bundle.controller.d.ts +44 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.controller.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.controller.js +122 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.controller.js.map +1 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.routes.d.ts +25 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.routes.d.ts.map +1 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.routes.js +33 -0
- package/dist/backend/backend/src/controllers/bundle/bundle.routes.js.map +1 -0
- package/dist/backend/backend/src/index.d.ts.map +1 -1
- package/dist/backend/backend/src/index.js +14 -0
- package/dist/backend/backend/src/index.js.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.d.ts.map +1 -1
- package/dist/backend/backend/src/routes/api.routes.js +4 -0
- package/dist/backend/backend/src/routes/api.routes.js.map +1 -1
- package/dist/backend/backend/src/services/bundle/bundle-apply.factory.d.ts +62 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.factory.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.factory.js +173 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.factory.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.service.d.ts +359 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.service.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.service.js +888 -0
- package/dist/backend/backend/src/services/bundle/bundle-apply.service.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-catalog.d.ts +167 -0
- package/dist/backend/backend/src/services/bundle/bundle-catalog.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-catalog.js +248 -0
- package/dist/backend/backend/src/services/bundle/bundle-catalog.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-connectors.d.ts +43 -0
- package/dist/backend/backend/src/services/bundle/bundle-connectors.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-connectors.js +57 -0
- package/dist/backend/backend/src/services/bundle/bundle-connectors.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-deps.d.ts +37 -0
- package/dist/backend/backend/src/services/bundle/bundle-deps.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-deps.js +60 -0
- package/dist/backend/backend/src/services/bundle/bundle-deps.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-manifest.d.ts +93 -0
- package/dist/backend/backend/src/services/bundle/bundle-manifest.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-manifest.js +532 -0
- package/dist/backend/backend/src/services/bundle/bundle-manifest.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-placeholders.d.ts +100 -0
- package/dist/backend/backend/src/services/bundle/bundle-placeholders.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-placeholders.js +183 -0
- package/dist/backend/backend/src/services/bundle/bundle-placeholders.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-runtime.d.ts +36 -0
- package/dist/backend/backend/src/services/bundle/bundle-runtime.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-runtime.js +38 -0
- package/dist/backend/backend/src/services/bundle/bundle-runtime.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-skill-installer.d.ts +105 -0
- package/dist/backend/backend/src/services/bundle/bundle-skill-installer.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-skill-installer.js +144 -0
- package/dist/backend/backend/src/services/bundle/bundle-skill-installer.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-state.store.d.ts +48 -0
- package/dist/backend/backend/src/services/bundle/bundle-state.store.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-state.store.js +90 -0
- package/dist/backend/backend/src/services/bundle/bundle-state.store.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-team.builder.d.ts +81 -0
- package/dist/backend/backend/src/services/bundle/bundle-team.builder.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-team.builder.js +172 -0
- package/dist/backend/backend/src/services/bundle/bundle-team.builder.js.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-time.d.ts +59 -0
- package/dist/backend/backend/src/services/bundle/bundle-time.d.ts.map +1 -0
- package/dist/backend/backend/src/services/bundle/bundle-time.js +98 -0
- package/dist/backend/backend/src/services/bundle/bundle-time.js.map +1 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js +5 -0
- package/dist/backend/backend/src/services/cloud/mobile-api-relay.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js +1 -1
- package/dist/backend/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/backend/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/core/teams-backup.service.js +4 -2
- package/dist/backend/backend/src/services/core/teams-backup.service.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.factory.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.factory.js +2 -0
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.factory.js.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.d.ts +14 -2
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.js +37 -1
- package/dist/backend/backend/src/services/onboarding/onboarding-checklist.service.js.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts +21 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js +85 -0
- package/dist/backend/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/template/template.service.js +5 -2
- package/dist/backend/backend/src/services/template/template.service.js.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.d.ts.map +1 -1
- package/dist/backend/backend/src/services/workflow/cron-task.service.js +4 -2
- package/dist/backend/backend/src/services/workflow/cron-task.service.js.map +1 -1
- package/dist/backend/backend/src/types/solution-bundle.types.d.ts +367 -0
- package/dist/backend/backend/src/types/solution-bundle.types.d.ts.map +1 -0
- package/dist/backend/backend/src/types/solution-bundle.types.js +17 -0
- package/dist/backend/backend/src/types/solution-bundle.types.js.map +1 -0
- package/dist/backend/backend/src/types/team-template.types.d.ts +8 -0
- package/dist/backend/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/backend/backend/src/types/team-template.types.js.map +1 -1
- package/dist/backend/build-info.json +2 -2
- package/dist/cli/backend/src/constants.d.ts +82 -0
- package/dist/cli/backend/src/constants.d.ts.map +1 -1
- package/dist/cli/backend/src/constants.js +87 -0
- package/dist/cli/backend/src/constants.js.map +1 -1
- package/dist/cli/backend/src/services/bundle/bundle-apply.service.d.ts +359 -0
- package/dist/cli/backend/src/services/bundle/bundle-apply.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-apply.service.js +888 -0
- package/dist/cli/backend/src/services/bundle/bundle-apply.service.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-catalog.d.ts +167 -0
- package/dist/cli/backend/src/services/bundle/bundle-catalog.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-catalog.js +248 -0
- package/dist/cli/backend/src/services/bundle/bundle-catalog.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-deps.d.ts +37 -0
- package/dist/cli/backend/src/services/bundle/bundle-deps.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-deps.js +60 -0
- package/dist/cli/backend/src/services/bundle/bundle-deps.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-manifest.d.ts +93 -0
- package/dist/cli/backend/src/services/bundle/bundle-manifest.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-manifest.js +532 -0
- package/dist/cli/backend/src/services/bundle/bundle-manifest.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-placeholders.d.ts +100 -0
- package/dist/cli/backend/src/services/bundle/bundle-placeholders.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-placeholders.js +183 -0
- package/dist/cli/backend/src/services/bundle/bundle-placeholders.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-runtime.d.ts +36 -0
- package/dist/cli/backend/src/services/bundle/bundle-runtime.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-runtime.js +38 -0
- package/dist/cli/backend/src/services/bundle/bundle-runtime.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-skill-installer.d.ts +105 -0
- package/dist/cli/backend/src/services/bundle/bundle-skill-installer.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-skill-installer.js +144 -0
- package/dist/cli/backend/src/services/bundle/bundle-skill-installer.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-state.store.d.ts +48 -0
- package/dist/cli/backend/src/services/bundle/bundle-state.store.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-state.store.js +90 -0
- package/dist/cli/backend/src/services/bundle/bundle-state.store.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-team.builder.d.ts +81 -0
- package/dist/cli/backend/src/services/bundle/bundle-team.builder.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-team.builder.js +172 -0
- package/dist/cli/backend/src/services/bundle/bundle-team.builder.js.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-time.d.ts +59 -0
- package/dist/cli/backend/src/services/bundle/bundle-time.d.ts.map +1 -0
- package/dist/cli/backend/src/services/bundle/bundle-time.js +98 -0
- package/dist/cli/backend/src/services/bundle/bundle-time.js.map +1 -0
- package/dist/cli/backend/src/services/core/storage.service.js +1 -1
- package/dist/cli/backend/src/services/core/storage.service.js.map +1 -1
- package/dist/cli/backend/src/services/core/teams-backup.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/core/teams-backup.service.js +4 -2
- package/dist/cli/backend/src/services/core/teams-backup.service.js.map +1 -1
- package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts +72 -0
- package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js +389 -0
- package/dist/cli/backend/src/services/marketplace/marketplace-installer.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/index.d.ts +15 -0
- package/dist/cli/backend/src/services/messaging/index.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/index.js +20 -0
- package/dist/cli/backend/src/services/messaging/index.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts +224 -0
- package/dist/cli/backend/src/services/messaging/queue-processor.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js +969 -0
- package/dist/cli/backend/src/services/messaging/queue-processor.service.js.map +1 -0
- package/dist/cli/backend/src/services/messaging/response-router.service.d.ts +110 -0
- package/dist/cli/backend/src/services/messaging/response-router.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/messaging/response-router.service.js +268 -0
- package/dist/cli/backend/src/services/messaging/response-router.service.js.map +1 -0
- package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.d.ts +14 -2
- package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.js +37 -1
- package/dist/cli/backend/src/services/onboarding/onboarding-checklist.service.js.map +1 -1
- package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.d.ts +133 -0
- package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.d.ts.map +1 -0
- package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.js +232 -0
- package/dist/cli/backend/src/services/orchestrator/commitment-approval-guard.js.map +1 -0
- package/dist/cli/backend/src/services/skill/skill-catalog.service.d.ts +277 -0
- package/dist/cli/backend/src/services/skill/skill-catalog.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill/skill-catalog.service.js +708 -0
- package/dist/cli/backend/src/services/skill/skill-catalog.service.js.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.d.ts +243 -0
- package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.js +439 -0
- package/dist/cli/backend/src/services/skill-setup/skill-install-job.service.js.map +1 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts +21 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js +85 -0
- package/dist/cli/backend/src/services/slack/slack-team-channel.service.js.map +1 -1
- package/dist/cli/backend/src/services/template/template.service.d.ts.map +1 -1
- package/dist/cli/backend/src/services/template/template.service.js +5 -2
- package/dist/cli/backend/src/services/template/template.service.js.map +1 -1
- package/dist/cli/backend/src/services/workflow/cron-task.service.d.ts +316 -0
- package/dist/cli/backend/src/services/workflow/cron-task.service.d.ts.map +1 -0
- package/dist/cli/backend/src/services/workflow/cron-task.service.js +1043 -0
- package/dist/cli/backend/src/services/workflow/cron-task.service.js.map +1 -0
- package/dist/cli/backend/src/types/cron-task.types.d.ts +95 -0
- package/dist/cli/backend/src/types/cron-task.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/cron-task.types.js +10 -0
- package/dist/cli/backend/src/types/cron-task.types.js.map +1 -0
- package/dist/cli/backend/src/types/solution-bundle.types.d.ts +367 -0
- package/dist/cli/backend/src/types/solution-bundle.types.d.ts.map +1 -0
- package/dist/cli/backend/src/types/solution-bundle.types.js +17 -0
- package/dist/cli/backend/src/types/solution-bundle.types.js.map +1 -0
- package/dist/cli/backend/src/types/team-template.types.d.ts +8 -0
- package/dist/cli/backend/src/types/team-template.types.d.ts.map +1 -1
- package/dist/cli/backend/src/types/team-template.types.js.map +1 -1
- package/dist/cli/cli/src/commands/deploy-bundle.d.ts +160 -0
- package/dist/cli/cli/src/commands/deploy-bundle.d.ts.map +1 -0
- package/dist/cli/cli/src/commands/deploy-bundle.js +386 -0
- package/dist/cli/cli/src/commands/deploy-bundle.js.map +1 -0
- package/dist/cli/cli/src/commands/onboard.d.ts +32 -1
- package/dist/cli/cli/src/commands/onboard.d.ts.map +1 -1
- package/dist/cli/cli/src/commands/onboard.js +80 -3
- package/dist/cli/cli/src/commands/onboard.js.map +1 -1
- package/dist/cli/cli/src/constants.d.ts +5 -0
- package/dist/cli/cli/src/constants.d.ts.map +1 -1
- package/dist/cli/cli/src/constants.js +5 -0
- package/dist/cli/cli/src/constants.js.map +1 -1
- package/dist/cli/cli/src/index.js +15 -0
- package/dist/cli/cli/src/index.js.map +1 -1
- package/frontend/dist/assets/{index-e6c403b6.js → index-97bb17d4.js} +274 -274
- package/frontend/dist/index.html +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Queue Processor Service
|
|
3
|
+
*
|
|
4
|
+
* Processes messages from the queue one-at-a-time. Dequeues the next message,
|
|
5
|
+
* delivers it to the orchestrator via AgentRegistrationService using a
|
|
6
|
+
* fire-and-forget pattern. Responses are handled asynchronously by the
|
|
7
|
+
* orchestrator through reply-* skills (reply-slack, reply-chat, reply-gchat).
|
|
8
|
+
*
|
|
9
|
+
* #239: Force-delivered user messages (Slack/web chat) are tracked in a
|
|
10
|
+
* pending-ack list. When the agent returns to prompt, the PTY output is
|
|
11
|
+
* checked for evidence the message was processed. If not found, the message
|
|
12
|
+
* is re-delivered to prevent silent loss.
|
|
13
|
+
*
|
|
14
|
+
* @module services/messaging/queue-processor
|
|
15
|
+
*/
|
|
16
|
+
import { EventEmitter } from 'events';
|
|
17
|
+
import { MessageQueueService } from './message-queue.service.js';
|
|
18
|
+
import { ResponseRouterService } from './response-router.service.js';
|
|
19
|
+
import { AgentRegistrationService } from '../agent/agent-registration.service.js';
|
|
20
|
+
import { type RuntimeType } from '../../constants.js';
|
|
21
|
+
import type { ThreadStatusQueueService } from './thread-status-queue.service.js';
|
|
22
|
+
/**
|
|
23
|
+
* Entry in the pending-ack list for force-delivered user messages.
|
|
24
|
+
* Tracks all information needed to verify or redeliver the message.
|
|
25
|
+
*/
|
|
26
|
+
export interface PendingAckEntry {
|
|
27
|
+
/** Unique message ID */
|
|
28
|
+
messageId: string;
|
|
29
|
+
/** Conversation ID used as a fingerprint to detect processing in PTY output */
|
|
30
|
+
conversationId: string;
|
|
31
|
+
/** The formatted delivery content (for redelivery) */
|
|
32
|
+
deliveryContent: string;
|
|
33
|
+
/** Target session the message was delivered to */
|
|
34
|
+
targetSession: string;
|
|
35
|
+
/** Runtime type of the target agent */
|
|
36
|
+
runtimeType: RuntimeType;
|
|
37
|
+
/** Timestamp when force-delivered */
|
|
38
|
+
deliveredAt: number;
|
|
39
|
+
/** Number of redelivery attempts so far */
|
|
40
|
+
retryCount: number;
|
|
41
|
+
/** The original queued message (for markCompleted / markFailed / routeResponse) */
|
|
42
|
+
originalMessage: import('../../types/messaging.types.js').QueuedMessage;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Keep only the JSON-safe scalar fields of a message's source metadata
|
|
46
|
+
* (channelId, threadTs, userId, …). Callbacks such as `slackResolve` cannot
|
|
47
|
+
* outlive the process and are dropped.
|
|
48
|
+
*
|
|
49
|
+
* @param metadata - Source metadata of a queued message
|
|
50
|
+
* @returns Scalar fields, or undefined when there are none
|
|
51
|
+
*/
|
|
52
|
+
export declare function serializableSourceMetadata(metadata: Record<string, unknown> | undefined): Record<string, string | number | boolean> | undefined;
|
|
53
|
+
export declare class QueueProcessorService extends EventEmitter {
|
|
54
|
+
private logger;
|
|
55
|
+
private queueService;
|
|
56
|
+
private responseRouter;
|
|
57
|
+
private agentRegistrationService;
|
|
58
|
+
private running;
|
|
59
|
+
private processing;
|
|
60
|
+
private processNextTimeout;
|
|
61
|
+
/** Set to true when an early-return path has already scheduled the next run. */
|
|
62
|
+
private nextAlreadyScheduled;
|
|
63
|
+
/**
|
|
64
|
+
* Tracks message IDs that were successfully delivered to an agent.
|
|
65
|
+
* Prevents duplicate delivery when the queue requeues a message that
|
|
66
|
+
* the agent has already received and started processing.
|
|
67
|
+
* Entries are purged after DEDUP_TTL_MS to prevent memory leaks.
|
|
68
|
+
*/
|
|
69
|
+
private deliveredMessageIds;
|
|
70
|
+
/** Timer for periodic cleanup of stale dedup entries */
|
|
71
|
+
private dedupCleanupTimer;
|
|
72
|
+
/** Timer for periodic cleanup of stale pending-ack entries */
|
|
73
|
+
private pendingAckCleanupTimer;
|
|
74
|
+
/**
|
|
75
|
+
* #239: Tracks force-delivered user messages awaiting acknowledgment.
|
|
76
|
+
* When a user message is force-delivered (agent not at prompt), it is
|
|
77
|
+
* added here instead of being marked completed. On the next successful
|
|
78
|
+
* waitForAgentReady (agent returns to prompt), the PTY output is checked
|
|
79
|
+
* for evidence that each pending message was actually processed.
|
|
80
|
+
*/
|
|
81
|
+
private pendingAckMessages;
|
|
82
|
+
/** Thread status queue for tracking message lifecycle across restarts */
|
|
83
|
+
private threadStatusQueue;
|
|
84
|
+
/**
|
|
85
|
+
* Optional Task Pool routing callback. When set, task-assignment messages
|
|
86
|
+
* (content starting with "[TASK]") are routed through the Task Pool before
|
|
87
|
+
* delivery, allowing the Reconciler to manage assignment lifecycle.
|
|
88
|
+
*/
|
|
89
|
+
private taskPoolRouter;
|
|
90
|
+
constructor(queueService: MessageQueueService, responseRouter: ResponseRouterService, agentRegistrationService: AgentRegistrationService);
|
|
91
|
+
/**
|
|
92
|
+
* Set the thread status queue service for tracking message delivery lifecycle.
|
|
93
|
+
*
|
|
94
|
+
* @param service - The ThreadStatusQueueService instance
|
|
95
|
+
*/
|
|
96
|
+
setThreadStatusQueue(service: ThreadStatusQueueService): void;
|
|
97
|
+
/**
|
|
98
|
+
* Set the Task Pool routing callback.
|
|
99
|
+
* When provided, messages with "[TASK]" prefix are offered to the Task Pool
|
|
100
|
+
* before standard delivery. If the callback returns true, the message is
|
|
101
|
+
* considered routed and delivery is skipped.
|
|
102
|
+
*
|
|
103
|
+
* @param router - Async callback that returns true if the message was routed to the pool
|
|
104
|
+
*/
|
|
105
|
+
setTaskPoolRouter(router: (messageContent: string, targetSession: string) => Promise<boolean>): void;
|
|
106
|
+
/**
|
|
107
|
+
* Start the processor. Listens to queue 'enqueued' events and
|
|
108
|
+
* triggers processing.
|
|
109
|
+
*/
|
|
110
|
+
start(): void;
|
|
111
|
+
/**
|
|
112
|
+
* Stop the processor. Clears timers and removes listeners.
|
|
113
|
+
*/
|
|
114
|
+
stop(): void;
|
|
115
|
+
/**
|
|
116
|
+
* Check if the processor is currently running.
|
|
117
|
+
*
|
|
118
|
+
* @returns True if running
|
|
119
|
+
*/
|
|
120
|
+
isRunning(): boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Check if a message is currently being processed.
|
|
123
|
+
*
|
|
124
|
+
* @returns True if processing
|
|
125
|
+
*/
|
|
126
|
+
isProcessingMessage(): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Handler for queue 'enqueued' events. Triggers processing if idle.
|
|
129
|
+
*/
|
|
130
|
+
private onMessageEnqueued;
|
|
131
|
+
/**
|
|
132
|
+
* Schedule the next message processing after a delay.
|
|
133
|
+
*
|
|
134
|
+
* @param delayMs - Delay in milliseconds before processing
|
|
135
|
+
*/
|
|
136
|
+
private scheduleProcessNext;
|
|
137
|
+
/**
|
|
138
|
+
* Process the next message in the queue.
|
|
139
|
+
* This is the core processing loop.
|
|
140
|
+
*/
|
|
141
|
+
private processNext;
|
|
142
|
+
/**
|
|
143
|
+
* Schedule processing of the next message if there are pending messages.
|
|
144
|
+
* Uses INTER_MESSAGE_DELAY to avoid overwhelming the orchestrator.
|
|
145
|
+
*
|
|
146
|
+
* #218: Skip the inter-message delay when a user message is pending.
|
|
147
|
+
* This ensures user messages (from Slack, web chat, etc.) are never
|
|
148
|
+
* blocked behind the 500ms cooldown after system event delivery.
|
|
149
|
+
*/
|
|
150
|
+
private scheduleNextIfPending;
|
|
151
|
+
/**
|
|
152
|
+
* Start periodic cleanup of stale entries in the delivered message dedup set.
|
|
153
|
+
* Runs every DEDUP_TTL_MS and removes entries older than DEDUP_TTL_MS.
|
|
154
|
+
*/
|
|
155
|
+
private startDedupCleanup;
|
|
156
|
+
/**
|
|
157
|
+
* Stop the periodic dedup cleanup timer.
|
|
158
|
+
*/
|
|
159
|
+
private stopDedupCleanup;
|
|
160
|
+
/**
|
|
161
|
+
* Remove entries from the dedup set that are older than DEDUP_TTL_MS.
|
|
162
|
+
*/
|
|
163
|
+
private purgeStaleDedup;
|
|
164
|
+
/**
|
|
165
|
+
* Get the number of tracked delivered message IDs (for testing).
|
|
166
|
+
*
|
|
167
|
+
* @returns Number of entries in the dedup set
|
|
168
|
+
*/
|
|
169
|
+
getDeliveredMessageCount(): number;
|
|
170
|
+
/**
|
|
171
|
+
* Get the number of messages awaiting acknowledgment (for testing).
|
|
172
|
+
*
|
|
173
|
+
* @returns Number of entries in the pending-ack list
|
|
174
|
+
*/
|
|
175
|
+
getPendingAckCount(): number;
|
|
176
|
+
/**
|
|
177
|
+
* Start periodic cleanup of stale pending-ack entries.
|
|
178
|
+
* Runs at PENDING_ACK_TTL_MS intervals and fails entries that have exceeded
|
|
179
|
+
* the TTL — prevents memory leaks if an agent crashes and never returns to prompt.
|
|
180
|
+
*/
|
|
181
|
+
private startPendingAckCleanup;
|
|
182
|
+
/**
|
|
183
|
+
* Stop the periodic pending-ack cleanup timer.
|
|
184
|
+
*/
|
|
185
|
+
private stopPendingAckCleanup;
|
|
186
|
+
/**
|
|
187
|
+
* Remove pending-ack entries that have exceeded the TTL.
|
|
188
|
+
* Marks them as failed and routes error to the source so the user is notified.
|
|
189
|
+
*/
|
|
190
|
+
private purgeExpiredPendingAcks;
|
|
191
|
+
/**
|
|
192
|
+
* Check if a pending-ack message's fingerprint appears in PTY output.
|
|
193
|
+
*
|
|
194
|
+
* Matches the full [CHAT:conversationId:fingerprint] or [GCHAT:conversationId:fingerprint]
|
|
195
|
+
* prefix. The fingerprint (last 8 chars of messageId) distinguishes between different
|
|
196
|
+
* messages in the same conversation/thread, preventing false-positive ack confirmations
|
|
197
|
+
* when a user sends multiple messages in quick succession.
|
|
198
|
+
*
|
|
199
|
+
* Falls back to conversationId-only matching for messages delivered before the
|
|
200
|
+
* fingerprint format was introduced (backward compat).
|
|
201
|
+
*
|
|
202
|
+
* @param output - Captured PTY output string
|
|
203
|
+
* @param conversationId - The conversation ID to search for
|
|
204
|
+
* @param messageId - The unique message ID (last 8 chars used as fingerprint)
|
|
205
|
+
* @returns true if the message fingerprint was found
|
|
206
|
+
*/
|
|
207
|
+
private isPendingAckInOutput;
|
|
208
|
+
/**
|
|
209
|
+
* #239: Flush pending-ack messages by verifying them against PTY output.
|
|
210
|
+
*
|
|
211
|
+
* Called when the agent returns to prompt (waitForAgentReady succeeds).
|
|
212
|
+
* For each pending-ack entry:
|
|
213
|
+
* - Captures the agent's recent PTY output
|
|
214
|
+
* - Checks if the conversationId or CHAT prefix appears in the output
|
|
215
|
+
* - If found → message was processed, mark completed
|
|
216
|
+
* - If not found → message was swallowed, redeliver
|
|
217
|
+
* - If max retries exceeded → mark failed
|
|
218
|
+
*
|
|
219
|
+
* @param sessionName - The agent session to check
|
|
220
|
+
* @param runtimeType - Runtime type for redelivery
|
|
221
|
+
*/
|
|
222
|
+
private flushPendingAcks;
|
|
223
|
+
}
|
|
224
|
+
//# sourceMappingURL=queue-processor.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue-processor.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/messaging/queue-processor.service.ts"],"names":[],"mappings":"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"}
|