@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.
Files changed (118) hide show
  1. package/.env.example +9 -10
  2. package/README.md +8 -4
  3. package/config-examples/runtime.json +34 -8
  4. package/config-examples/tool-policy.json +12 -2
  5. package/container/agent-runner/package-lock.json +2 -2
  6. package/container/agent-runner/package.json +1 -1
  7. package/container/agent-runner/src/agent-config.ts +19 -3
  8. package/container/agent-runner/src/container-protocol.ts +11 -0
  9. package/container/agent-runner/src/context-overflow-recovery.ts +39 -0
  10. package/container/agent-runner/src/index.ts +603 -165
  11. package/container/agent-runner/src/openrouter-input.ts +159 -0
  12. package/container/agent-runner/src/system-prompt.ts +13 -3
  13. package/container/agent-runner/src/tool-loop-policy.ts +741 -0
  14. package/container/agent-runner/src/tools.ts +211 -8
  15. package/dist/agent-context.d.ts +1 -0
  16. package/dist/agent-context.d.ts.map +1 -1
  17. package/dist/agent-context.js +21 -9
  18. package/dist/agent-context.js.map +1 -1
  19. package/dist/agent-execution.d.ts +2 -0
  20. package/dist/agent-execution.d.ts.map +1 -1
  21. package/dist/agent-execution.js +164 -15
  22. package/dist/agent-execution.js.map +1 -1
  23. package/dist/agent-semaphore.d.ts +24 -1
  24. package/dist/agent-semaphore.d.ts.map +1 -1
  25. package/dist/agent-semaphore.js +109 -20
  26. package/dist/agent-semaphore.js.map +1 -1
  27. package/dist/cli.js +3 -11
  28. package/dist/cli.js.map +1 -1
  29. package/dist/config.d.ts +2 -0
  30. package/dist/config.d.ts.map +1 -1
  31. package/dist/config.js +2 -0
  32. package/dist/config.js.map +1 -1
  33. package/dist/container-protocol.d.ts +22 -0
  34. package/dist/container-protocol.d.ts.map +1 -1
  35. package/dist/container-protocol.js.map +1 -1
  36. package/dist/container-runner.d.ts +7 -0
  37. package/dist/container-runner.d.ts.map +1 -1
  38. package/dist/container-runner.js +417 -143
  39. package/dist/container-runner.js.map +1 -1
  40. package/dist/db.d.ts.map +1 -1
  41. package/dist/db.js +46 -12
  42. package/dist/db.js.map +1 -1
  43. package/dist/error-messages.d.ts.map +1 -1
  44. package/dist/error-messages.js +18 -4
  45. package/dist/error-messages.js.map +1 -1
  46. package/dist/failover-policy.d.ts +41 -0
  47. package/dist/failover-policy.d.ts.map +1 -0
  48. package/dist/failover-policy.js +261 -0
  49. package/dist/failover-policy.js.map +1 -0
  50. package/dist/index.js +1 -0
  51. package/dist/index.js.map +1 -1
  52. package/dist/ipc-dispatcher.d.ts.map +1 -1
  53. package/dist/ipc-dispatcher.js +27 -43
  54. package/dist/ipc-dispatcher.js.map +1 -1
  55. package/dist/mcp-config.d.ts +22 -0
  56. package/dist/mcp-config.d.ts.map +1 -0
  57. package/dist/mcp-config.js +94 -0
  58. package/dist/mcp-config.js.map +1 -0
  59. package/dist/memory-backend.d.ts +27 -0
  60. package/dist/memory-backend.d.ts.map +1 -0
  61. package/dist/memory-backend.js +112 -0
  62. package/dist/memory-backend.js.map +1 -0
  63. package/dist/memory-recall.d.ts.map +1 -1
  64. package/dist/memory-recall.js +135 -22
  65. package/dist/memory-recall.js.map +1 -1
  66. package/dist/memory-store.d.ts +1 -0
  67. package/dist/memory-store.d.ts.map +1 -1
  68. package/dist/memory-store.js +55 -7
  69. package/dist/memory-store.js.map +1 -1
  70. package/dist/message-pipeline.d.ts +24 -0
  71. package/dist/message-pipeline.d.ts.map +1 -1
  72. package/dist/message-pipeline.js +131 -27
  73. package/dist/message-pipeline.js.map +1 -1
  74. package/dist/metrics.d.ts +1 -0
  75. package/dist/metrics.d.ts.map +1 -1
  76. package/dist/metrics.js +9 -0
  77. package/dist/metrics.js.map +1 -1
  78. package/dist/providers/discord/discord-provider.d.ts.map +1 -1
  79. package/dist/providers/discord/discord-provider.js +72 -4
  80. package/dist/providers/discord/discord-provider.js.map +1 -1
  81. package/dist/providers/telegram/telegram-provider.d.ts.map +1 -1
  82. package/dist/providers/telegram/telegram-provider.js +65 -3
  83. package/dist/providers/telegram/telegram-provider.js.map +1 -1
  84. package/dist/recall-policy.d.ts +12 -0
  85. package/dist/recall-policy.d.ts.map +1 -0
  86. package/dist/recall-policy.js +89 -0
  87. package/dist/recall-policy.js.map +1 -0
  88. package/dist/runtime-config.d.ts +33 -0
  89. package/dist/runtime-config.d.ts.map +1 -1
  90. package/dist/runtime-config.js +109 -9
  91. package/dist/runtime-config.js.map +1 -1
  92. package/dist/streaming.d.ts.map +1 -1
  93. package/dist/streaming.js +125 -33
  94. package/dist/streaming.js.map +1 -1
  95. package/dist/task-scheduler.d.ts.map +1 -1
  96. package/dist/task-scheduler.js +4 -2
  97. package/dist/task-scheduler.js.map +1 -1
  98. package/dist/tool-policy.d.ts.map +1 -1
  99. package/dist/tool-policy.js +26 -4
  100. package/dist/tool-policy.js.map +1 -1
  101. package/dist/trace-writer.d.ts +12 -0
  102. package/dist/trace-writer.d.ts.map +1 -1
  103. package/dist/trace-writer.js.map +1 -1
  104. package/dist/turn-hygiene.d.ts +14 -0
  105. package/dist/turn-hygiene.d.ts.map +1 -0
  106. package/dist/turn-hygiene.js +214 -0
  107. package/dist/turn-hygiene.js.map +1 -0
  108. package/dist/webhook.d.ts.map +1 -1
  109. package/dist/webhook.js +1 -0
  110. package/dist/webhook.js.map +1 -1
  111. package/package.json +15 -1
  112. package/scripts/benchmark-baseline.js +365 -0
  113. package/scripts/benchmark-harness.js +1413 -0
  114. package/scripts/benchmark-scenarios.js +301 -0
  115. package/scripts/canary-suite.js +123 -0
  116. package/scripts/generate-controlled-traces.js +230 -0
  117. package/scripts/release-slo-check.js +214 -0
  118. package/scripts/run-live-canary.js +339 -0
@@ -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, BATCH_WINDOW_MS, MAX_BATCH_SIZE, } from './config.js';
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(MESSAGE_QUEUE_RETRY_MAX_MS, MESSAGE_QUEUE_RETRY_BASE_MS * Math.pow(2, exp));
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 (INTERRUPT_ON_NEW_MESSAGE) {
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, BATCH_WINDOW_MS, MAX_BATCH_SIZE);
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 < MESSAGE_QUEUE_MAX_RETRIES) {
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: MESSAGE_QUEUE_MAX_RETRIES,
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 prompt = `<messages>\n${lines.join('\n')}\n</messages>`;
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 = missedMessages.length - 1; idx >= 0; idx -= 1) {
303
- const raw = missedMessages[idx].attachments_json;
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({ group: group.name, messageCount: missedMessages.length }, 'Processing message');
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 = missedMessages.map(entry => entry.content).join('\n');
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 streamingConfig = runtime.host.streaming;
369
- const streaming = streamingConfig.enabled
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 (streamingConfig.enabled) {
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: loadRuntimeConfig().agent.reasoning.effort,
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 = missedMessages.some(m => {
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
- await sendMessageForQueue(msg.chatId, "I used some tools but wasn't able to produce a final response. Could you try rephrasing or ask me to continue?", { threadId: msg.threadId, replyToMessageId: resolvedReplyTo });
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
- await sendMessageForQueue(msg.chatId, "I wasn't able to come up with a response. Could you try rephrasing?", { threadId: msg.threadId, replyToMessageId: resolvedReplyTo });
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;
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../src/metrics.ts"],"names":[],"mappings":"AAiGA,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,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"}
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);
@@ -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":"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"}
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 (!content && attachments.length === 0)
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 || `[${attachments.map(a => a.type).join(', ')}]`;
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: attachments.length > 0 ? attachments : undefined,
596
+ attachments: dedupedAttachments.length > 0 ? dedupedAttachments : undefined,
529
597
  rawProviderData: {
530
598
  referencedMessage,
531
599
  chatName,