@dotsetlabs/dotclaw 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env.example +9 -10
- package/README.md +8 -4
- package/config-examples/runtime.json +34 -8
- package/config-examples/tool-policy.json +12 -2
- package/container/agent-runner/package-lock.json +2 -2
- package/container/agent-runner/package.json +1 -1
- package/container/agent-runner/src/agent-config.ts +19 -3
- package/container/agent-runner/src/container-protocol.ts +11 -0
- package/container/agent-runner/src/context-overflow-recovery.ts +39 -0
- package/container/agent-runner/src/index.ts +603 -165
- package/container/agent-runner/src/openrouter-input.ts +159 -0
- package/container/agent-runner/src/system-prompt.ts +13 -3
- package/container/agent-runner/src/tool-loop-policy.ts +741 -0
- package/container/agent-runner/src/tools.ts +211 -8
- package/dist/agent-context.d.ts +1 -0
- package/dist/agent-context.d.ts.map +1 -1
- package/dist/agent-context.js +21 -9
- package/dist/agent-context.js.map +1 -1
- package/dist/agent-execution.d.ts +2 -0
- package/dist/agent-execution.d.ts.map +1 -1
- package/dist/agent-execution.js +164 -15
- package/dist/agent-execution.js.map +1 -1
- package/dist/agent-semaphore.d.ts +24 -1
- package/dist/agent-semaphore.d.ts.map +1 -1
- package/dist/agent-semaphore.js +109 -20
- package/dist/agent-semaphore.js.map +1 -1
- package/dist/cli.js +3 -11
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/container-protocol.d.ts +22 -0
- package/dist/container-protocol.d.ts.map +1 -1
- package/dist/container-protocol.js.map +1 -1
- package/dist/container-runner.d.ts +7 -0
- package/dist/container-runner.d.ts.map +1 -1
- package/dist/container-runner.js +417 -143
- package/dist/container-runner.js.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +46 -12
- package/dist/db.js.map +1 -1
- package/dist/error-messages.d.ts.map +1 -1
- package/dist/error-messages.js +18 -4
- package/dist/error-messages.js.map +1 -1
- package/dist/failover-policy.d.ts +41 -0
- package/dist/failover-policy.d.ts.map +1 -0
- package/dist/failover-policy.js +261 -0
- package/dist/failover-policy.js.map +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/ipc-dispatcher.d.ts.map +1 -1
- package/dist/ipc-dispatcher.js +27 -43
- package/dist/ipc-dispatcher.js.map +1 -1
- package/dist/mcp-config.d.ts +22 -0
- package/dist/mcp-config.d.ts.map +1 -0
- package/dist/mcp-config.js +94 -0
- package/dist/mcp-config.js.map +1 -0
- package/dist/memory-backend.d.ts +27 -0
- package/dist/memory-backend.d.ts.map +1 -0
- package/dist/memory-backend.js +112 -0
- package/dist/memory-backend.js.map +1 -0
- package/dist/memory-recall.d.ts.map +1 -1
- package/dist/memory-recall.js +135 -22
- package/dist/memory-recall.js.map +1 -1
- package/dist/memory-store.d.ts +1 -0
- package/dist/memory-store.d.ts.map +1 -1
- package/dist/memory-store.js +55 -7
- package/dist/memory-store.js.map +1 -1
- package/dist/message-pipeline.d.ts +24 -0
- package/dist/message-pipeline.d.ts.map +1 -1
- package/dist/message-pipeline.js +131 -27
- package/dist/message-pipeline.js.map +1 -1
- package/dist/metrics.d.ts +1 -0
- package/dist/metrics.d.ts.map +1 -1
- package/dist/metrics.js +9 -0
- package/dist/metrics.js.map +1 -1
- package/dist/providers/discord/discord-provider.d.ts.map +1 -1
- package/dist/providers/discord/discord-provider.js +72 -4
- package/dist/providers/discord/discord-provider.js.map +1 -1
- package/dist/providers/telegram/telegram-provider.d.ts.map +1 -1
- package/dist/providers/telegram/telegram-provider.js +65 -3
- package/dist/providers/telegram/telegram-provider.js.map +1 -1
- package/dist/recall-policy.d.ts +12 -0
- package/dist/recall-policy.d.ts.map +1 -0
- package/dist/recall-policy.js +89 -0
- package/dist/recall-policy.js.map +1 -0
- package/dist/runtime-config.d.ts +33 -0
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +109 -9
- package/dist/runtime-config.js.map +1 -1
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +125 -33
- package/dist/streaming.js.map +1 -1
- package/dist/task-scheduler.d.ts.map +1 -1
- package/dist/task-scheduler.js +4 -2
- package/dist/task-scheduler.js.map +1 -1
- package/dist/tool-policy.d.ts.map +1 -1
- package/dist/tool-policy.js +26 -4
- package/dist/tool-policy.js.map +1 -1
- package/dist/trace-writer.d.ts +12 -0
- package/dist/trace-writer.d.ts.map +1 -1
- package/dist/trace-writer.js.map +1 -1
- package/dist/turn-hygiene.d.ts +14 -0
- package/dist/turn-hygiene.d.ts.map +1 -0
- package/dist/turn-hygiene.js +214 -0
- package/dist/turn-hygiene.js.map +1 -0
- package/dist/webhook.d.ts.map +1 -1
- package/dist/webhook.js +1 -0
- package/dist/webhook.js.map +1 -1
- package/package.json +15 -1
- package/scripts/benchmark-baseline.js +365 -0
- package/scripts/benchmark-harness.js +1413 -0
- package/scripts/benchmark-scenarios.js +301 -0
- package/scripts/canary-suite.js +123 -0
- package/scripts/generate-controlled-traces.js +230 -0
- package/scripts/release-slo-check.js +214 -0
- package/scripts/run-live-canary.js +339 -0
package/dist/message-pipeline.js
CHANGED
|
@@ -6,20 +6,39 @@ import { recordMessage, recordError, recordStageLatency } from './metrics.js';
|
|
|
6
6
|
import { synthesizeSpeechHost } from './transcription.js';
|
|
7
7
|
import { emitHook } from './hooks.js';
|
|
8
8
|
import { createTraceBase, executeAgentRun, recordAgentTelemetry, AgentExecutionError } from './agent-execution.js';
|
|
9
|
+
import { applyTurnHygiene } from './turn-hygiene.js';
|
|
9
10
|
import { logger } from './logger.js';
|
|
10
11
|
import { setLastMessageTime, setMessageQueueDepth } from './dashboard.js';
|
|
11
12
|
import { humanizeError, isTransientError } from './error-messages.js';
|
|
12
13
|
import { routeRequest } from './request-router.js';
|
|
13
|
-
import { GROUPS_DIR,
|
|
14
|
+
import { GROUPS_DIR, } from './config.js';
|
|
14
15
|
import { loadRuntimeConfig } from './runtime-config.js';
|
|
15
16
|
import { ProviderRegistry as ProviderRegistryClass } from './providers/registry.js';
|
|
16
17
|
import { StreamingDelivery, watchStreamChunks } from './streaming.js';
|
|
17
|
-
const runtime = loadRuntimeConfig();
|
|
18
|
-
const INTERRUPT_ON_NEW_MESSAGE = runtime.host.messageQueue.interruptOnNewMessage ?? true;
|
|
19
|
-
const MESSAGE_QUEUE_MAX_RETRIES = Math.max(1, runtime.host.messageQueue.maxRetries ?? 4);
|
|
20
|
-
const MESSAGE_QUEUE_RETRY_BASE_MS = Math.max(250, runtime.host.messageQueue.retryBaseMs ?? 3_000);
|
|
21
|
-
const MESSAGE_QUEUE_RETRY_MAX_MS = Math.max(MESSAGE_QUEUE_RETRY_BASE_MS, runtime.host.messageQueue.retryMaxMs ?? 60_000);
|
|
22
18
|
const MAX_DRAIN_ITERATIONS = 50;
|
|
19
|
+
export function resolveMessagePipelineRuntime() {
|
|
20
|
+
const runtime = loadRuntimeConfig();
|
|
21
|
+
const queue = runtime.host.messageQueue;
|
|
22
|
+
const retryBaseMs = Math.max(250, queue.retryBaseMs ?? 3_000);
|
|
23
|
+
return {
|
|
24
|
+
queue: {
|
|
25
|
+
interruptOnNewMessage: queue.interruptOnNewMessage ?? true,
|
|
26
|
+
maxRetries: Math.max(1, queue.maxRetries ?? 4),
|
|
27
|
+
retryBaseMs,
|
|
28
|
+
retryMaxMs: Math.max(retryBaseMs, queue.retryMaxMs ?? 60_000),
|
|
29
|
+
promptMaxChars: Math.max(2_000, queue.promptMaxChars ?? 24_000),
|
|
30
|
+
batchWindowMs: Math.max(0, queue.batchWindowMs ?? 2_000),
|
|
31
|
+
maxBatchSize: Math.max(1, queue.maxBatchSize ?? 50),
|
|
32
|
+
},
|
|
33
|
+
streaming: {
|
|
34
|
+
enabled: runtime.host.streaming.enabled,
|
|
35
|
+
chunkFlushIntervalMs: runtime.host.streaming.chunkFlushIntervalMs,
|
|
36
|
+
editIntervalMs: runtime.host.streaming.editIntervalMs,
|
|
37
|
+
maxEditLength: runtime.host.streaming.maxEditLength,
|
|
38
|
+
},
|
|
39
|
+
reasoningEffort: runtime.agent.reasoning.effort
|
|
40
|
+
};
|
|
41
|
+
}
|
|
23
42
|
const CANCEL_PHRASES = new Set([
|
|
24
43
|
'cancel', 'stop', 'abort', 'cancel request', 'stop request'
|
|
25
44
|
]);
|
|
@@ -46,12 +65,35 @@ function clampInputMessage(content, maxChars) {
|
|
|
46
65
|
return content;
|
|
47
66
|
return `${content.slice(0, maxChars)}\n\n[Message truncated for length]`;
|
|
48
67
|
}
|
|
49
|
-
function computeMessageQueueRetryDelayMs(attempt) {
|
|
68
|
+
function computeMessageQueueRetryDelayMs(attempt, runtime) {
|
|
50
69
|
const exp = Math.max(0, attempt - 1);
|
|
51
|
-
const base = Math.min(
|
|
70
|
+
const base = Math.min(runtime.queue.retryMaxMs, runtime.queue.retryBaseMs * Math.pow(2, exp));
|
|
52
71
|
const jitter = base * (0.8 + Math.random() * 0.4);
|
|
53
72
|
return Math.max(250, Math.round(jitter));
|
|
54
73
|
}
|
|
74
|
+
export function selectPromptLineIndicesWithinBudget(lines, maxChars) {
|
|
75
|
+
if (!Array.isArray(lines) || lines.length === 0) {
|
|
76
|
+
return { indices: [], omitted: 0 };
|
|
77
|
+
}
|
|
78
|
+
if (!Number.isFinite(maxChars) || maxChars <= 0) {
|
|
79
|
+
return { indices: lines.map((_, idx) => idx), omitted: 0 };
|
|
80
|
+
}
|
|
81
|
+
const keptDescending = [];
|
|
82
|
+
let usedChars = 0;
|
|
83
|
+
let omitted = 0;
|
|
84
|
+
for (let idx = lines.length - 1; idx >= 0; idx -= 1) {
|
|
85
|
+
const line = lines[idx] || '';
|
|
86
|
+
const candidateChars = line.length + 1;
|
|
87
|
+
if (keptDescending.length > 0 && usedChars + candidateChars > maxChars) {
|
|
88
|
+
omitted += 1;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
keptDescending.push(idx);
|
|
92
|
+
usedChars += candidateChars;
|
|
93
|
+
}
|
|
94
|
+
keptDescending.reverse();
|
|
95
|
+
return { indices: keptDescending, omitted };
|
|
96
|
+
}
|
|
55
97
|
class RetryableMessageProcessingError extends Error {
|
|
56
98
|
constructor(message) {
|
|
57
99
|
super(message);
|
|
@@ -128,6 +170,7 @@ export function createMessagePipeline(deps) {
|
|
|
128
170
|
return { success: true, messageId: result.messageId };
|
|
129
171
|
}
|
|
130
172
|
function enqueueMessage(msg) {
|
|
173
|
+
const runtime = resolveMessagePipelineRuntime();
|
|
131
174
|
if (isCancelMessage(msg.content)) {
|
|
132
175
|
const controller = activeRuns.get(msg.chatId);
|
|
133
176
|
if (controller) {
|
|
@@ -141,7 +184,7 @@ export function createMessagePipeline(deps) {
|
|
|
141
184
|
void provider.sendMessage(msg.chatId, "Nothing's running right now.", { threadId: msg.threadId });
|
|
142
185
|
return;
|
|
143
186
|
}
|
|
144
|
-
if (
|
|
187
|
+
if (runtime.queue.interruptOnNewMessage) {
|
|
145
188
|
const controller = activeRuns.get(msg.chatId);
|
|
146
189
|
if (controller) {
|
|
147
190
|
logger.info({ chatId: msg.chatId }, 'Interrupting active run for new message');
|
|
@@ -168,13 +211,14 @@ export function createMessagePipeline(deps) {
|
|
|
168
211
|
async function drainQueue(chatId) {
|
|
169
212
|
if (activeDrains.has(chatId))
|
|
170
213
|
return;
|
|
214
|
+
const runtime = resolveMessagePipelineRuntime();
|
|
171
215
|
activeDrains.add(chatId);
|
|
172
216
|
setMessageQueueDepth(getPendingMessageCount());
|
|
173
217
|
let reschedule = false;
|
|
174
218
|
try {
|
|
175
219
|
let iterations = 0;
|
|
176
220
|
while (iterations < MAX_DRAIN_ITERATIONS) {
|
|
177
|
-
const batch = claimBatchForChat(chatId,
|
|
221
|
+
const batch = claimBatchForChat(chatId, runtime.queue.batchWindowMs, runtime.queue.maxBatchSize);
|
|
178
222
|
if (batch.length === 0)
|
|
179
223
|
break;
|
|
180
224
|
iterations++;
|
|
@@ -202,13 +246,13 @@ export function createMessagePipeline(deps) {
|
|
|
202
246
|
return previousAttempts + 1;
|
|
203
247
|
}));
|
|
204
248
|
const isRetryable = err instanceof RetryableMessageProcessingError;
|
|
205
|
-
if (isRetryable && attempt <
|
|
249
|
+
if (isRetryable && attempt < runtime.queue.maxRetries) {
|
|
206
250
|
requeueQueuedMessages(batchIds, errMsg);
|
|
207
|
-
const delayMs = computeMessageQueueRetryDelayMs(attempt);
|
|
251
|
+
const delayMs = computeMessageQueueRetryDelayMs(attempt, runtime);
|
|
208
252
|
logger.warn({
|
|
209
253
|
chatId,
|
|
210
254
|
attempt,
|
|
211
|
-
maxRetries:
|
|
255
|
+
maxRetries: runtime.queue.maxRetries,
|
|
212
256
|
delayMs,
|
|
213
257
|
error: errMsg
|
|
214
258
|
}, 'Retryable batch failure; re-queued for retry');
|
|
@@ -236,6 +280,7 @@ export function createMessagePipeline(deps) {
|
|
|
236
280
|
}
|
|
237
281
|
}
|
|
238
282
|
async function processMessage(msg) {
|
|
283
|
+
const runtime = resolveMessagePipelineRuntime();
|
|
239
284
|
const registeredGroups = deps.registeredGroups();
|
|
240
285
|
const sessions = deps.sessions();
|
|
241
286
|
const group = registeredGroups[msg.chatId];
|
|
@@ -275,6 +320,36 @@ export function createMessagePipeline(deps) {
|
|
|
275
320
|
attachments_json: fallbackAttachments
|
|
276
321
|
}];
|
|
277
322
|
}
|
|
323
|
+
const hygiene = applyTurnHygiene(missedMessages);
|
|
324
|
+
missedMessages = hygiene.messages;
|
|
325
|
+
if (hygiene.stats.droppedMalformed > 0
|
|
326
|
+
|| hygiene.stats.droppedDuplicates > 0
|
|
327
|
+
|| hygiene.stats.droppedStalePartials > 0
|
|
328
|
+
|| hygiene.stats.normalizedToolEnvelopes > 0) {
|
|
329
|
+
logger.debug({
|
|
330
|
+
chatId: msg.chatId,
|
|
331
|
+
inputCount: hygiene.stats.inputCount,
|
|
332
|
+
outputCount: hygiene.stats.outputCount,
|
|
333
|
+
droppedMalformed: hygiene.stats.droppedMalformed,
|
|
334
|
+
droppedDuplicates: hygiene.stats.droppedDuplicates,
|
|
335
|
+
droppedStalePartials: hygiene.stats.droppedStalePartials,
|
|
336
|
+
normalizedToolEnvelopes: hygiene.stats.normalizedToolEnvelopes
|
|
337
|
+
}, 'Applied turn hygiene');
|
|
338
|
+
}
|
|
339
|
+
if (missedMessages.length === 0) {
|
|
340
|
+
const fallbackAttachments = msg.attachments && msg.attachments.length > 0
|
|
341
|
+
? JSON.stringify(msg.attachments)
|
|
342
|
+
: null;
|
|
343
|
+
missedMessages = [{
|
|
344
|
+
id: msg.messageId,
|
|
345
|
+
chat_jid: msg.chatId,
|
|
346
|
+
sender: msg.senderId,
|
|
347
|
+
sender_name: msg.senderName,
|
|
348
|
+
content: msg.content,
|
|
349
|
+
timestamp: msg.timestamp,
|
|
350
|
+
attachments_json: fallbackAttachments
|
|
351
|
+
}];
|
|
352
|
+
}
|
|
278
353
|
const inputMaxChars = deps.registry.getProviderForChat(msg.chatId).capabilities.maxMessageLength;
|
|
279
354
|
const lines = missedMessages.map(m => {
|
|
280
355
|
const escapeXml = (s) => s
|
|
@@ -296,11 +371,19 @@ export function createMessagePipeline(deps) {
|
|
|
296
371
|
: escapeXml(safeContent);
|
|
297
372
|
return `<message sender="${escapeXml(m.sender_name)}" sender_id="${escapeXml(m.sender)}" time="${m.timestamp}">${inner}</message>`;
|
|
298
373
|
});
|
|
299
|
-
const
|
|
374
|
+
const { indices: promptLineIndices, omitted: omittedPromptMessages } = selectPromptLineIndicesWithinBudget(lines, runtime.queue.promptMaxChars);
|
|
375
|
+
const selectedMessages = promptLineIndices.map(idx => missedMessages[idx]);
|
|
376
|
+
const selectedLines = promptLineIndices.map(idx => lines[idx]);
|
|
377
|
+
if (omittedPromptMessages > 0) {
|
|
378
|
+
selectedLines.unshift(`<message sender="system" sender_id="system" time="${msg.timestamp}">` +
|
|
379
|
+
`[${omittedPromptMessages} earlier message(s) omitted due to context budget. Focus on the most recent intent.]` +
|
|
380
|
+
`</message>`);
|
|
381
|
+
}
|
|
382
|
+
const prompt = `<messages>\n${selectedLines.join('\n')}\n</messages>`;
|
|
300
383
|
const replyToMessageId = msg.messageId;
|
|
301
384
|
const containerAttachments = (() => {
|
|
302
|
-
for (let idx =
|
|
303
|
-
const raw =
|
|
385
|
+
for (let idx = selectedMessages.length - 1; idx >= 0; idx -= 1) {
|
|
386
|
+
const raw = selectedMessages[idx].attachments_json;
|
|
304
387
|
if (!raw)
|
|
305
388
|
continue;
|
|
306
389
|
try {
|
|
@@ -350,24 +433,30 @@ export function createMessagePipeline(deps) {
|
|
|
350
433
|
inputText: prompt,
|
|
351
434
|
source: 'dotclaw'
|
|
352
435
|
});
|
|
353
|
-
logger.info({
|
|
436
|
+
logger.info({
|
|
437
|
+
group: group.name,
|
|
438
|
+
messageCount: missedMessages.length,
|
|
439
|
+
promptMessageCount: selectedMessages.length,
|
|
440
|
+
omittedPromptMessages
|
|
441
|
+
}, 'Processing message');
|
|
354
442
|
void emitHook('message:processing', {
|
|
355
443
|
chat_id: msg.chatId,
|
|
356
444
|
message_id: msg.messageId,
|
|
357
445
|
sender_id: msg.senderId,
|
|
358
446
|
group_folder: group.folder,
|
|
359
|
-
message_count: missedMessages.length
|
|
447
|
+
message_count: missedMessages.length,
|
|
448
|
+
prompt_message_count: selectedMessages.length,
|
|
449
|
+
omitted_prompt_messages: omittedPromptMessages
|
|
360
450
|
});
|
|
361
451
|
const provider = deps.registry.getProviderForChat(msg.chatId);
|
|
362
452
|
await provider.setTyping(msg.chatId);
|
|
363
|
-
const recallQuery =
|
|
453
|
+
const recallQuery = selectedMessages.map(entry => entry.content).join('\n');
|
|
364
454
|
let output = null;
|
|
365
455
|
let context = null;
|
|
366
456
|
let errorMessage = null;
|
|
367
457
|
// Set up streaming delivery
|
|
368
|
-
const
|
|
369
|
-
|
|
370
|
-
? new StreamingDelivery(provider, msg.chatId, streamingConfig, {
|
|
458
|
+
const streaming = runtime.streaming.enabled
|
|
459
|
+
? new StreamingDelivery(provider, msg.chatId, runtime.streaming, {
|
|
371
460
|
threadId: msg.threadId,
|
|
372
461
|
replyToMessageId,
|
|
373
462
|
})
|
|
@@ -378,7 +467,7 @@ export function createMessagePipeline(deps) {
|
|
|
378
467
|
activeRuns.set(msg.chatId, abortController);
|
|
379
468
|
// Prepare stream directory for IPC-based streaming
|
|
380
469
|
let streamDir;
|
|
381
|
-
if (
|
|
470
|
+
if (runtime.streaming.enabled) {
|
|
382
471
|
const { DATA_DIR } = await import('./config.js');
|
|
383
472
|
streamDir = path.join(DATA_DIR, 'ipc', group.folder, 'stream', traceBase.trace_id);
|
|
384
473
|
fs.mkdirSync(streamDir, { recursive: true });
|
|
@@ -398,9 +487,10 @@ export function createMessagePipeline(deps) {
|
|
|
398
487
|
onSessionUpdate: (sessionId) => { deps.setSession(group.folder, sessionId); },
|
|
399
488
|
availableGroups: deps.buildAvailableGroupsSnapshot(),
|
|
400
489
|
modelFallbacks: routing.fallbacks,
|
|
401
|
-
reasoningEffort:
|
|
490
|
+
reasoningEffort: runtime.reasoningEffort,
|
|
402
491
|
modelMaxOutputTokens: routing.maxOutputTokens || undefined,
|
|
403
492
|
maxToolSteps: routing.maxToolSteps,
|
|
493
|
+
lane: 'interactive',
|
|
404
494
|
attachments: containerAttachments,
|
|
405
495
|
abortSignal: abortController.signal,
|
|
406
496
|
streamDir,
|
|
@@ -589,7 +679,7 @@ export function createMessagePipeline(deps) {
|
|
|
589
679
|
// Skip sending; still record telemetry below
|
|
590
680
|
}
|
|
591
681
|
else if (output.result && output.result.trim()) {
|
|
592
|
-
const hasVoiceAttachment =
|
|
682
|
+
const hasVoiceAttachment = selectedMessages.some(m => {
|
|
593
683
|
if (!m.attachments_json)
|
|
594
684
|
return false;
|
|
595
685
|
try {
|
|
@@ -658,11 +748,25 @@ export function createMessagePipeline(deps) {
|
|
|
658
748
|
}
|
|
659
749
|
}
|
|
660
750
|
else if (output.tool_calls && output.tool_calls.length > 0) {
|
|
661
|
-
|
|
751
|
+
const fallbackText = "I used some tools but wasn't able to produce a final response. Could you try rephrasing or ask me to continue?";
|
|
752
|
+
output.result = fallbackText;
|
|
753
|
+
if (streaming) {
|
|
754
|
+
await streaming.finalize(fallbackText);
|
|
755
|
+
}
|
|
756
|
+
else {
|
|
757
|
+
await sendMessageForQueue(msg.chatId, fallbackText, { threadId: msg.threadId, replyToMessageId: resolvedReplyTo });
|
|
758
|
+
}
|
|
662
759
|
}
|
|
663
760
|
else {
|
|
664
761
|
logger.warn({ chatId: msg.chatId }, 'Agent returned empty/whitespace response');
|
|
665
|
-
|
|
762
|
+
const fallbackText = "I wasn't able to come up with a response. Could you try rephrasing?";
|
|
763
|
+
output.result = fallbackText;
|
|
764
|
+
if (streaming) {
|
|
765
|
+
await streaming.finalize(fallbackText);
|
|
766
|
+
}
|
|
767
|
+
else {
|
|
768
|
+
await sendMessageForQueue(msg.chatId, fallbackText, { threadId: msg.threadId, replyToMessageId: resolvedReplyTo });
|
|
769
|
+
}
|
|
666
770
|
}
|
|
667
771
|
if (context) {
|
|
668
772
|
recordAgentTelemetry({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-pipeline.js","sourceRoot":"","sources":["../src/message-pipeline.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"message-pipeline.js","sourceRoot":"","sources":["../src/message-pipeline.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ export declare function recordToolCall(tool: string, ok: boolean): void;
|
|
|
4
4
|
export declare function recordTaskRun(status: 'success' | 'error'): void;
|
|
5
5
|
export declare function recordLatency(ms: number): void;
|
|
6
6
|
export declare function recordStageLatency(stage: string, ms: number, source?: string): void;
|
|
7
|
+
export declare function recordFailover(outcome: 'attempt' | 'recovered' | 'exhausted', category: string): void;
|
|
7
8
|
export declare function recordTokenUsage(model: string, source: string, promptTokens: number, completionTokens: number): void;
|
|
8
9
|
export declare function recordCost(model: string, source: string, costUsd: number): void;
|
|
9
10
|
export declare function recordMemoryRecall(source: string, count: number): void;
|
package/dist/metrics.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAwGA,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,IAAI,CAE9D;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,IAAI,CAE/D;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,GAAE,MAAmB,GAAG,IAAI,CAG/F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAErG;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAGpH;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/E;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAEvE;AAID,wBAAgB,kBAAkB,IAAI,IAAI,CA2BzC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAKxC"}
|
package/dist/metrics.js
CHANGED
|
@@ -66,6 +66,11 @@ const stageLatency = new Histogram({
|
|
|
66
66
|
labelNames: ['stage', 'source'],
|
|
67
67
|
buckets: [10, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 30000, 60000]
|
|
68
68
|
});
|
|
69
|
+
const failoverTotal = new Counter({
|
|
70
|
+
name: 'dotclaw_failover_total',
|
|
71
|
+
help: 'Host-level failover events',
|
|
72
|
+
labelNames: ['outcome', 'category']
|
|
73
|
+
});
|
|
69
74
|
registry.registerMetric(messagesTotal);
|
|
70
75
|
registry.registerMetric(errorsTotal);
|
|
71
76
|
registry.registerMetric(toolCallsTotal);
|
|
@@ -78,6 +83,7 @@ registry.registerMetric(memoryUpsertTotal);
|
|
|
78
83
|
registry.registerMetric(memoryExtractTotal);
|
|
79
84
|
registry.registerMetric(responseLatency);
|
|
80
85
|
registry.registerMetric(stageLatency);
|
|
86
|
+
registry.registerMetric(failoverTotal);
|
|
81
87
|
export function recordMessage(source) {
|
|
82
88
|
messagesTotal.inc({ source });
|
|
83
89
|
}
|
|
@@ -99,6 +105,9 @@ export function recordStageLatency(stage, ms, source = 'telegram') {
|
|
|
99
105
|
return;
|
|
100
106
|
stageLatency.observe({ stage, source }, ms);
|
|
101
107
|
}
|
|
108
|
+
export function recordFailover(outcome, category) {
|
|
109
|
+
failoverTotal.inc({ outcome, category: category || 'unknown' });
|
|
110
|
+
}
|
|
102
111
|
export function recordTokenUsage(model, source, promptTokens, completionTokens) {
|
|
103
112
|
if (Number.isFinite(promptTokens))
|
|
104
113
|
tokensPromptTotal.inc({ model, source }, promptTokens);
|
package/dist/metrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"metrics.js","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discord-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/discord/discord-provider.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EAEf,UAAU,EACV,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,SAAS,EACV,MAAM,aAAa,CAAC;AAMrB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"discord-provider.d.ts","sourceRoot":"","sources":["../../../src/providers/discord/discord-provider.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,6 +31,34 @@ function getRetryAfterMs(err) {
|
|
|
31
31
|
}
|
|
32
32
|
return null;
|
|
33
33
|
}
|
|
34
|
+
function inferMimeTypeFromFilename(fileName) {
|
|
35
|
+
if (!fileName || typeof fileName !== 'string')
|
|
36
|
+
return null;
|
|
37
|
+
const lower = fileName.toLowerCase();
|
|
38
|
+
if (lower.endsWith('.jpg') || lower.endsWith('.jpeg'))
|
|
39
|
+
return 'image/jpeg';
|
|
40
|
+
if (lower.endsWith('.png'))
|
|
41
|
+
return 'image/png';
|
|
42
|
+
if (lower.endsWith('.gif'))
|
|
43
|
+
return 'image/gif';
|
|
44
|
+
if (lower.endsWith('.webp'))
|
|
45
|
+
return 'image/webp';
|
|
46
|
+
if (lower.endsWith('.mp4'))
|
|
47
|
+
return 'video/mp4';
|
|
48
|
+
if (lower.endsWith('.webm'))
|
|
49
|
+
return 'video/webm';
|
|
50
|
+
if (lower.endsWith('.mov'))
|
|
51
|
+
return 'video/quicktime';
|
|
52
|
+
if (lower.endsWith('.mp3'))
|
|
53
|
+
return 'audio/mpeg';
|
|
54
|
+
if (lower.endsWith('.wav'))
|
|
55
|
+
return 'audio/wav';
|
|
56
|
+
if (lower.endsWith('.ogg'))
|
|
57
|
+
return 'audio/ogg';
|
|
58
|
+
if (lower.endsWith('.m4a'))
|
|
59
|
+
return 'audio/mp4';
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
34
62
|
export class DiscordProvider {
|
|
35
63
|
name = 'discord';
|
|
36
64
|
capabilities = {
|
|
@@ -471,7 +499,9 @@ export class DiscordProvider {
|
|
|
471
499
|
if (message.attachments && message.attachments.size > 0) {
|
|
472
500
|
for (const [, attachment] of message.attachments) {
|
|
473
501
|
let type = 'document';
|
|
474
|
-
const contentType = attachment.contentType
|
|
502
|
+
const contentType = (attachment.contentType
|
|
503
|
+
|| inferMimeTypeFromFilename(attachment.name)
|
|
504
|
+
|| '').toLowerCase();
|
|
475
505
|
if (contentType.startsWith('image/'))
|
|
476
506
|
type = 'photo';
|
|
477
507
|
else if (contentType.startsWith('video/'))
|
|
@@ -492,7 +522,45 @@ export class DiscordProvider {
|
|
|
492
522
|
});
|
|
493
523
|
}
|
|
494
524
|
}
|
|
495
|
-
if (
|
|
525
|
+
if (message.stickers && message.stickers.size > 0) {
|
|
526
|
+
for (const [, sticker] of message.stickers) {
|
|
527
|
+
const providerFileRef = typeof sticker.url === 'string' ? sticker.url : '';
|
|
528
|
+
if (!providerFileRef)
|
|
529
|
+
continue;
|
|
530
|
+
const stickerFormat = typeof sticker.format === 'number'
|
|
531
|
+
? sticker.format
|
|
532
|
+
: (typeof sticker.formatType === 'number' ? sticker.formatType : null);
|
|
533
|
+
let type = 'document';
|
|
534
|
+
let mimeType;
|
|
535
|
+
let ext = 'dat';
|
|
536
|
+
if (stickerFormat === 1 || stickerFormat === 2) {
|
|
537
|
+
type = 'photo';
|
|
538
|
+
mimeType = 'image/png';
|
|
539
|
+
ext = 'png';
|
|
540
|
+
}
|
|
541
|
+
else if (stickerFormat === 4) {
|
|
542
|
+
type = 'photo';
|
|
543
|
+
mimeType = 'image/gif';
|
|
544
|
+
ext = 'gif';
|
|
545
|
+
}
|
|
546
|
+
else if (stickerFormat === 3) {
|
|
547
|
+
type = 'document';
|
|
548
|
+
mimeType = 'application/json';
|
|
549
|
+
ext = 'json';
|
|
550
|
+
}
|
|
551
|
+
const stickerName = typeof sticker.name === 'string' && sticker.name.trim()
|
|
552
|
+
? sticker.name.trim().replace(/[^a-zA-Z0-9._-]/g, '_')
|
|
553
|
+
: `sticker_${messageId}`;
|
|
554
|
+
attachments.push({
|
|
555
|
+
type,
|
|
556
|
+
providerFileRef,
|
|
557
|
+
fileName: `${stickerName}.${ext}`,
|
|
558
|
+
mimeType,
|
|
559
|
+
});
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
const dedupedAttachments = attachments.filter((attachment, index, all) => (all.findIndex(candidate => candidate.providerFileRef === attachment.providerFileRef) === index));
|
|
563
|
+
if (!content && dedupedAttachments.length === 0)
|
|
496
564
|
return;
|
|
497
565
|
const isDM = message.channel.type === this.channelTypeDM;
|
|
498
566
|
const isGroup = !isDM;
|
|
@@ -504,7 +572,7 @@ export class DiscordProvider {
|
|
|
504
572
|
const chatName = isDM
|
|
505
573
|
? (message.author.displayName || message.author.username || senderName)
|
|
506
574
|
: (message.guild?.name || senderName);
|
|
507
|
-
const storedContent = content || `[${
|
|
575
|
+
const storedContent = content || `[${dedupedAttachments.map(a => a.type).join(', ')}]`;
|
|
508
576
|
// Build referenced message info for isBotReplied
|
|
509
577
|
let referencedMessage;
|
|
510
578
|
if (message.reference && message.reference.messageId) {
|
|
@@ -525,7 +593,7 @@ export class DiscordProvider {
|
|
|
525
593
|
isGroup,
|
|
526
594
|
chatType,
|
|
527
595
|
threadId,
|
|
528
|
-
attachments:
|
|
596
|
+
attachments: dedupedAttachments.length > 0 ? dedupedAttachments : undefined,
|
|
529
597
|
rawProviderData: {
|
|
530
598
|
referencedMessage,
|
|
531
599
|
chatName,
|