MCPcopy Create free account
hub / github.com/tiann/hapi / enqueue

Method enqueue

cli/src/claude/utils/OutgoingMessageQueue.ts:32–60  ·  view source on GitHub ↗

* Add message to queue

(logMessage: any, options?: {
        delay?: number,
        toolCallIds?: string[]
    })

Source from the content-addressed store, hash-verified

30 * Add message to queue
31 */
32 enqueue(logMessage: any, options?: {
33 delay?: number,
34 toolCallIds?: string[]
35 }) {
36 this.lock.inLock(async () => {
37 const item: QueueItem = {
38 id: this.nextId++,
39 logMessage,
40 delayed: !!options?.delay,
41 delayMs: options?.delay || 0,
42 toolCallIds: options?.toolCallIds,
43 released: !options?.delay, // Not delayed = already released
44 sent: false
45 };
46
47 this.queue.push(item);
48
49 // If delayed, set timer to release it
50 if (item.delayed) {
51 const timer = setTimeout(() => {
52 this.releaseItem(item.id);
53 }, item.delayMs);
54 this.delayTimers.set(item.id, timer);
55 }
56 });
57
58 // Try to process queue
59 this.scheduleProcessing();
60 }
61
62 /**
63 * Release specific item by ID

Callers 1

Calls 4

releaseItemMethod · 0.95
scheduleProcessingMethod · 0.95
inLockMethod · 0.80
pushMethod · 0.45

Tested by

no test coverage detected