@dotsetlabs/dotclaw 2.6.1 → 2.6.2

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.
@@ -25,7 +25,8 @@
25
25
  },
26
26
  "memory": {
27
27
  "recall": {
28
- "minScore": 0.35
28
+ "minScore": 0.35,
29
+ "timeoutMs": 15000
29
30
  },
30
31
  "embeddings": {
31
32
  "enabled": true
@@ -6,7 +6,7 @@
6
6
  import fs from 'fs';
7
7
  import path from 'path';
8
8
  import { fileURLToPath } from 'url';
9
- import { OpenRouter } from '@openrouter/sdk';
9
+ import { OpenRouter, type ResolvedCallModelInput } from '@openrouter/sdk';
10
10
  import { createTools, discoverMcpTools, ToolCallRecord, type ToolResultRecord } from './tools.js';
11
11
  import { createIpcHandlers } from './ipc.js';
12
12
  import { loadAgentConfig } from './agent-config.js';
@@ -53,6 +53,7 @@ import {
53
53
  injectImagesIntoContextInput,
54
54
  loadImageAttachmentsForInput,
55
55
  messagesToOpenRouterInput,
56
+ sanitizeConversationInputForResponses,
56
57
  } from './openrouter-input.js';
57
58
  import {
58
59
  extractFunctionCallsForReplay,
@@ -60,6 +61,7 @@ import {
60
61
  } from './openrouter-followup.js';
61
62
 
62
63
  type OpenRouterResult = ReturnType<OpenRouter['callModel']>;
64
+ type OpenRouterResolvedInputArray = Extract<NonNullable<ResolvedCallModelInput['input']>, unknown[]>;
63
65
 
64
66
 
65
67
  const SESSION_ROOT = '/workspace/session';
@@ -1212,6 +1214,21 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1212
1214
  }
1213
1215
  };
1214
1216
 
1217
+ const sanitizeConversationInput = (
1218
+ items: unknown[],
1219
+ label: string
1220
+ ): OpenRouterResolvedInputArray => {
1221
+ const sanitized = sanitizeConversationInputForResponses(items);
1222
+ if (sanitized.rewrittenCount > 0 || sanitized.droppedCount > 0) {
1223
+ log(`Sanitized OpenRouter input (${label}): rewritten=${sanitized.rewrittenCount}, dropped=${sanitized.droppedCount}`);
1224
+ }
1225
+ if (sanitized.items.length === 0) {
1226
+ log(`Sanitized OpenRouter input (${label}) produced empty payload; inserting fallback message`);
1227
+ return [{ role: 'user', content: '[No usable conversation context available.]' }] as OpenRouterResolvedInputArray;
1228
+ }
1229
+ return sanitized.items as OpenRouterResolvedInputArray;
1230
+ };
1231
+
1215
1232
  try {
1216
1233
  const { instructions: resolvedInstructions, instructionsTokens: resolvedInstructionTokens, contextMessages } = buildContext();
1217
1234
  // Apply 1.3x safety margin to account for token estimation inaccuracy.
@@ -1233,12 +1250,13 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1233
1250
  }
1234
1251
  }
1235
1252
 
1236
- const contextInput = messagesToOpenRouterInput(contextMessages);
1253
+ const rawContextInput = messagesToOpenRouterInput(contextMessages);
1237
1254
 
1238
1255
  // Inject vision content into the last user message if images are present.
1239
1256
  // Uses OpenRouter Responses API content part types (input_text/input_image).
1240
1257
  const imageContent = loadImageAttachmentsForInput(input.attachments, { log });
1241
- injectImagesIntoContextInput(contextInput, imageContent);
1258
+ injectImagesIntoContextInput(rawContextInput, imageContent);
1259
+ const contextInput: OpenRouterResolvedInputArray = sanitizeConversationInput(rawContextInput, 'context');
1242
1260
 
1243
1261
  let lastError: unknown = null;
1244
1262
  for (let attempt = 0; attempt < modelChain.length; attempt++) {
@@ -1261,11 +1279,11 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1261
1279
  // We use schema-only tools (no execute functions) so the SDK returns tool calls
1262
1280
  // without auto-executing, then run the loop ourselves with full context.
1263
1281
 
1264
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1265
- let conversationInput: any[] = [...contextInput];
1282
+ let conversationInput: OpenRouterResolvedInputArray = sanitizeConversationInput([...contextInput], 'initial_conversation');
1266
1283
  let step = 0;
1267
1284
 
1268
1285
  // Initial call — uses streaming for real-time delivery
1286
+ conversationInput = sanitizeConversationInput(conversationInput, `initial_call:${currentModel}`);
1269
1287
  const initialResult = openrouter.callModel({
1270
1288
  model: currentModel,
1271
1289
  instructions: resolvedInstructions,
@@ -1424,6 +1442,7 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1424
1442
  }
1425
1443
  conversationInput = [...conversationInput, { role: 'user', content: nudgePrompt }];
1426
1444
  try {
1445
+ conversationInput = sanitizeConversationInput(conversationInput, `tool_nudge:${toolRequirementNudgeAttempt}`);
1427
1446
  const nudgeResult = openrouter.callModel({
1428
1447
  model: currentModel,
1429
1448
  instructions: resolvedInstructions,
@@ -1635,6 +1654,7 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1635
1654
  }
1636
1655
 
1637
1656
  // Follow-up call with complete context — model sees the full conversation
1657
+ conversationInput = sanitizeConversationInput(conversationInput, `tool_followup:${step}`);
1638
1658
  const followupResult = openrouter.callModel({
1639
1659
  model: currentModel,
1640
1660
  instructions: resolvedInstructions,
@@ -1672,6 +1692,7 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1672
1692
  if (cleared > 0) {
1673
1693
  log(`Hard-cleared ${cleared} tool results, retrying`);
1674
1694
  try {
1695
+ conversationInput = sanitizeConversationInput(conversationInput, `tool_followup_retry:${step}`);
1675
1696
  const retryResult = openrouter.callModel({
1676
1697
  model: currentModel,
1677
1698
  instructions: resolvedInstructions,
@@ -1737,6 +1758,7 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1737
1758
  });
1738
1759
  conversationInput = [...conversationInput, { role: 'user', content: continuationPrompt }];
1739
1760
  try {
1761
+ conversationInput = sanitizeConversationInput(conversationInput, `forced_synthesis:${synthesisReason}`);
1740
1762
  const synthesisResult = openrouter.callModel({
1741
1763
  model: currentModel,
1742
1764
  instructions: resolvedInstructions,
@@ -1841,10 +1863,11 @@ export async function runAgentOnce(input: ContainerInput): Promise<ContainerOutp
1841
1863
  keepRecentCount: Math.max(1, toKeep.length)
1842
1864
  }).retryInput;
1843
1865
  try {
1866
+ const sanitizedCompactedInput = sanitizeConversationInput(compactedInput, 'context_overflow_retry');
1844
1867
  const retryResult = openrouter.callModel({
1845
1868
  model: currentModel,
1846
1869
  instructions: minInstructions,
1847
- input: compactedInput,
1870
+ input: sanitizedCompactedInput,
1848
1871
  tools: schemaTools,
1849
1872
  maxOutputTokens: effectiveMaxOutputTokens,
1850
1873
  temperature: config.temperature,
@@ -25,6 +25,40 @@ export interface OpenRouterInputMessage {
25
25
  content: string | OpenRouterUserContentPart[];
26
26
  }
27
27
 
28
+ export interface OpenRouterFunctionCallItem {
29
+ type: 'function_call';
30
+ id: string;
31
+ callId: string;
32
+ name: string;
33
+ arguments: string;
34
+ }
35
+
36
+ export interface OpenRouterFunctionCallOutputItem {
37
+ type: 'function_call_output';
38
+ callId: string;
39
+ output: string;
40
+ }
41
+
42
+ export type OpenRouterConversationItem =
43
+ | string
44
+ | OpenRouterInputMessage
45
+ | OpenRouterFunctionCallItem
46
+ | OpenRouterFunctionCallOutputItem;
47
+
48
+ export interface SanitizedConversationInput {
49
+ items: OpenRouterConversationItem[];
50
+ rewrittenCount: number;
51
+ droppedCount: number;
52
+ }
53
+
54
+ type UnknownRecord = Record<string, unknown>;
55
+
56
+ function asNonEmptyString(value: unknown): string | null {
57
+ if (typeof value !== 'string') return null;
58
+ const trimmed = value.trim();
59
+ return trimmed ? trimmed : null;
60
+ }
61
+
28
62
  function inferImageMimeFromName(fileName?: string): string | null {
29
63
  if (!fileName || typeof fileName !== 'string') return null;
30
64
  const extension = path.extname(fileName).toLowerCase();
@@ -54,33 +88,63 @@ function jsonStringifySafe(value: unknown): string {
54
88
  }
55
89
  }
56
90
 
91
+ function collectTextField(record: Record<string, unknown>): string | null {
92
+ if (typeof record.text === 'string' && record.text.trim()) return record.text;
93
+ if (typeof record.content === 'string' && record.content.trim()) return record.content;
94
+ if (typeof record.output === 'string' && record.output.trim()) return record.output;
95
+ if (typeof record.refusal === 'string' && record.refusal.trim()) return record.refusal;
96
+ if (typeof record.input_text === 'string' && record.input_text.trim()) return record.input_text;
97
+ return null;
98
+ }
99
+
100
+ function collectTextFragments(value: unknown, fragments: string[], depth = 0): void {
101
+ if (depth > 8 || value == null) return;
102
+
103
+ if (typeof value === 'string') {
104
+ if (value.trim()) fragments.push(value);
105
+ return;
106
+ }
107
+
108
+ if (Array.isArray(value)) {
109
+ for (const item of value) {
110
+ collectTextFragments(item, fragments, depth + 1);
111
+ }
112
+ return;
113
+ }
114
+
115
+ if (typeof value !== 'object') return;
116
+
117
+ const record = value as Record<string, unknown>;
118
+ const textField = collectTextField(record);
119
+ if (textField && textField.trim()) {
120
+ fragments.push(textField);
121
+ }
122
+ if (Array.isArray(record.content)) {
123
+ collectTextFragments(record.content, fragments, depth + 1);
124
+ }
125
+ if (Array.isArray(record.parts)) {
126
+ collectTextFragments(record.parts, fragments, depth + 1);
127
+ }
128
+ if (Array.isArray(record.items)) {
129
+ collectTextFragments(record.items, fragments, depth + 1);
130
+ }
131
+ }
132
+
57
133
  export function coerceInputContentToText(content: unknown): string {
58
134
  if (typeof content === 'string') return content;
59
135
  if (content == null) return '';
60
136
 
61
- const collectFromRecord = (record: Record<string, unknown>): string | null => {
62
- if (typeof record.text === 'string' && record.text.trim()) return record.text;
63
- if (typeof record.content === 'string' && record.content.trim()) return record.content;
64
- if (typeof record.output === 'string' && record.output.trim()) return record.output;
65
- if (typeof record.refusal === 'string' && record.refusal.trim()) return record.refusal;
66
- return null;
67
- };
68
-
69
137
  if (Array.isArray(content)) {
70
- const parts = content
71
- .map((part) => {
72
- if (!part || typeof part !== 'object') return null;
73
- const record = part as Record<string, unknown>;
74
- return collectFromRecord(record);
75
- })
76
- .filter((part): part is string => typeof part === 'string');
138
+ const parts: string[] = [];
139
+ collectTextFragments(content, parts);
77
140
  if (parts.length > 0) return parts.join('\n');
78
141
  return jsonStringifySafe(content);
79
142
  }
80
143
 
81
144
  if (typeof content === 'object') {
82
- const extracted = collectFromRecord(content as Record<string, unknown>);
83
- if (extracted) return extracted;
145
+ const parts: string[] = [];
146
+ collectTextFragments(content, parts);
147
+ if (parts.length > 0) return parts.join('\n');
84
148
  return jsonStringifySafe(content);
85
149
  }
86
150
 
@@ -96,6 +160,235 @@ export function messagesToOpenRouterInput(
96
160
  }));
97
161
  }
98
162
 
163
+ function normalizeImageUrl(record: UnknownRecord): string | null {
164
+ const direct = asNonEmptyString(record.imageUrl)
165
+ || asNonEmptyString(record.url)
166
+ || asNonEmptyString(record.image_url);
167
+ if (direct) return direct;
168
+
169
+ const nested = record.image_url;
170
+ if (nested && typeof nested === 'object') {
171
+ const nestedRecord = nested as UnknownRecord;
172
+ const nestedUrl = asNonEmptyString(nestedRecord.url)
173
+ || asNonEmptyString(nestedRecord.imageUrl);
174
+ if (nestedUrl) return nestedUrl;
175
+ }
176
+ return null;
177
+ }
178
+
179
+ function normalizeInputImagePart(record: UnknownRecord): OpenRouterInputImagePart | null {
180
+ const imageUrl = normalizeImageUrl(record);
181
+ if (!imageUrl) return null;
182
+ return {
183
+ type: 'input_image',
184
+ detail: 'auto',
185
+ imageUrl
186
+ };
187
+ }
188
+
189
+ function collectUserContentParts(content: unknown, parts: OpenRouterUserContentPart[], depth = 0): void {
190
+ if (depth > 8 || content == null) return;
191
+
192
+ if (Array.isArray(content)) {
193
+ for (const item of content) {
194
+ collectUserContentParts(item, parts, depth + 1);
195
+ }
196
+ return;
197
+ }
198
+
199
+ if (typeof content === 'string') {
200
+ if (content.trim()) {
201
+ parts.push({ type: 'input_text', text: content });
202
+ }
203
+ return;
204
+ }
205
+
206
+ if (typeof content !== 'object') {
207
+ const primitive = String(content);
208
+ if (primitive.trim()) {
209
+ parts.push({ type: 'input_text', text: primitive });
210
+ }
211
+ return;
212
+ }
213
+
214
+ const record = content as UnknownRecord;
215
+ const type = asNonEmptyString(record.type);
216
+ const imagePart = normalizeInputImagePart(record);
217
+ if (type === 'input_image' || type === 'image_url') {
218
+ if (imagePart) parts.push(imagePart);
219
+ return;
220
+ }
221
+
222
+ if (imagePart && (record.imageUrl != null || record.image_url != null || record.url != null)) {
223
+ parts.push(imagePart);
224
+ return;
225
+ }
226
+
227
+ const textPart = collectTextField(record);
228
+ if (textPart && textPart.trim()) {
229
+ parts.push({ type: 'input_text', text: textPart });
230
+ return;
231
+ }
232
+
233
+ if (Array.isArray(record.content)) {
234
+ collectUserContentParts(record.content, parts, depth + 1);
235
+ return;
236
+ }
237
+ if (Array.isArray(record.parts)) {
238
+ collectUserContentParts(record.parts, parts, depth + 1);
239
+ return;
240
+ }
241
+ if (Array.isArray(record.items)) {
242
+ collectUserContentParts(record.items, parts, depth + 1);
243
+ }
244
+ }
245
+
246
+ function normalizeUserContent(content: unknown): string | OpenRouterUserContentPart[] {
247
+ const parts: OpenRouterUserContentPart[] = [];
248
+ collectUserContentParts(content, parts);
249
+ const hasImage = parts.some((part) => part.type === 'input_image');
250
+ if (!hasImage) {
251
+ return coerceInputContentToText(content);
252
+ }
253
+
254
+ const normalizedParts = parts.filter((part) => {
255
+ if (part.type === 'input_text') return !!part.text.trim();
256
+ return !!part.imageUrl.trim();
257
+ });
258
+ const hasText = normalizedParts.some((part) => part.type === 'input_text');
259
+ if (!hasText) {
260
+ let fallbackText = coerceInputContentToText(content).trim();
261
+ if (!fallbackText || fallbackText.length > 300 || fallbackText.startsWith('{') || fallbackText.startsWith('[')) {
262
+ fallbackText = '[Image attachment]';
263
+ }
264
+ normalizedParts.unshift({ type: 'input_text', text: fallbackText });
265
+ }
266
+ return normalizedParts;
267
+ }
268
+
269
+ function normalizeRoleMessage(record: UnknownRecord): OpenRouterInputMessage | null {
270
+ const role = record.role === 'user' || record.role === 'assistant'
271
+ ? record.role
272
+ : null;
273
+ if (!role) return null;
274
+
275
+ if (role === 'assistant') {
276
+ return {
277
+ role,
278
+ content: coerceInputContentToText(record.content)
279
+ };
280
+ }
281
+
282
+ return {
283
+ role,
284
+ content: normalizeUserContent(record.content)
285
+ };
286
+ }
287
+
288
+ function normalizeFunctionCall(record: UnknownRecord): OpenRouterFunctionCallItem | null {
289
+ const callId = asNonEmptyString(record.callId) || asNonEmptyString(record.id);
290
+ const name = asNonEmptyString(record.name);
291
+ if (!callId || !name) return null;
292
+
293
+ const rawArguments = record.arguments;
294
+ let argumentsText = '{}';
295
+ if (typeof rawArguments === 'string') {
296
+ argumentsText = rawArguments.trim() ? rawArguments : '{}';
297
+ } else if (rawArguments != null) {
298
+ argumentsText = jsonStringifySafe(rawArguments);
299
+ }
300
+
301
+ return {
302
+ type: 'function_call',
303
+ id: asNonEmptyString(record.id) || callId,
304
+ callId,
305
+ name,
306
+ arguments: argumentsText
307
+ };
308
+ }
309
+
310
+ function normalizeFunctionCallOutput(record: UnknownRecord): OpenRouterFunctionCallOutputItem | null {
311
+ const callId = asNonEmptyString(record.callId);
312
+ if (!callId) return null;
313
+ const rawOutput = record.output;
314
+ const output = typeof rawOutput === 'string'
315
+ ? rawOutput
316
+ : (rawOutput == null ? '' : jsonStringifySafe(rawOutput));
317
+ return {
318
+ type: 'function_call_output',
319
+ callId,
320
+ output
321
+ };
322
+ }
323
+
324
+ function normalizeConversationItem(
325
+ item: unknown
326
+ ): { item: OpenRouterConversationItem; rewritten: boolean } | null {
327
+ if (typeof item === 'string') {
328
+ return { item, rewritten: false };
329
+ }
330
+
331
+ if (Array.isArray(item)) {
332
+ const text = coerceInputContentToText(item);
333
+ if (!text.trim()) return null;
334
+ return { item: { role: 'user', content: text }, rewritten: true };
335
+ }
336
+
337
+ if (!item || typeof item !== 'object') {
338
+ const text = String(item ?? '');
339
+ if (!text.trim()) return null;
340
+ return { item: { role: 'user', content: text }, rewritten: true };
341
+ }
342
+
343
+ const record = item as UnknownRecord;
344
+ const type = asNonEmptyString(record.type);
345
+ if (type === 'function_call') {
346
+ const normalizedCall = normalizeFunctionCall(record);
347
+ if (!normalizedCall) return null;
348
+ return { item: normalizedCall, rewritten: true };
349
+ }
350
+ if (type === 'function_call_output') {
351
+ const normalizedOutput = normalizeFunctionCallOutput(record);
352
+ if (!normalizedOutput) return null;
353
+ return { item: normalizedOutput, rewritten: true };
354
+ }
355
+
356
+ const roleMessage = normalizeRoleMessage(record);
357
+ if (roleMessage) {
358
+ const rewritten = typeof record.content !== 'string' || record.role !== roleMessage.role;
359
+ return { item: roleMessage, rewritten };
360
+ }
361
+
362
+ const fallback = coerceInputContentToText(record).trim();
363
+ if (!fallback) return null;
364
+ return {
365
+ item: { role: 'user', content: fallback },
366
+ rewritten: true
367
+ };
368
+ }
369
+
370
+ export function sanitizeConversationInputForResponses(input: unknown[]): SanitizedConversationInput {
371
+ const items: OpenRouterConversationItem[] = [];
372
+ let rewrittenCount = 0;
373
+ let droppedCount = 0;
374
+
375
+ for (const item of input) {
376
+ const normalized = normalizeConversationItem(item);
377
+ if (!normalized) {
378
+ droppedCount += 1;
379
+ continue;
380
+ }
381
+ if (normalized.rewritten) rewrittenCount += 1;
382
+ items.push(normalized.item);
383
+ }
384
+
385
+ return {
386
+ items,
387
+ rewrittenCount,
388
+ droppedCount
389
+ };
390
+ }
391
+
99
392
  export function loadImageAttachmentsForInput(
100
393
  attachments?: ContainerInput['attachments'],
101
394
  options?: { log?: (message: string) => void }
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+C,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAgB,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAwB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxJ,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9G,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3H,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACpD,YAAY,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACjD,aAAa,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACzD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH,CAAC;AA4BF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAiB3F;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CA4GxB"}
1
+ {"version":3,"file":"agent-context.d.ts","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+C,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAgB,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAwB,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAKxJ,MAAM,MAAM,YAAY,GAAG;IACzB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5E,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,eAAe,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC,CAAC;IAC9G,aAAa,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE;YAAE,cAAc,CAAC,EAAE,MAAM,CAAC;YAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAAC,WAAW,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,CAAC;IAC3H,aAAa,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;IACpD,YAAY,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;IACjD,aAAa,EAAE,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IACzD,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE;QACP,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;CACH,CAAC;AAqDF,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,UAAU,CAiB3F;AAED,wBAAsB,iBAAiB,CAAC,MAAM,EAAE;IAC9C,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,YAAY,CAAC,CA4HxB"}
@@ -6,6 +6,7 @@ import { getToolReliability } from './db.js';
6
6
  import { resolveModel, loadModelRegistry, getTokenEstimateConfig, getModelPricing, getModelCapabilities } from './model-registry.js';
7
7
  import { loadRuntimeConfig } from './runtime-config.js';
8
8
  import { optimizeRecallQuery, resolveRecallBudget, shouldRunMemoryRecall } from './recall-policy.js';
9
+ import { logger } from './logger.js';
9
10
  /**
10
11
  * Calculate dynamic memory token budget based on model capabilities
11
12
  * Reserves 15% of available context for memories (min 800, max 4000)
@@ -21,6 +22,28 @@ function calculateMemoryBudget(modelCapabilities, maxOutputTokens, configuredMax
21
22
  // Clamp between 800 and 4000, and also respect configured max
22
23
  return Math.min(Math.max(800, Math.min(4000, calculatedBudget)), configuredMax);
23
24
  }
25
+ function withTimeout(task, timeoutMs, timeoutMessage) {
26
+ return new Promise((resolve, reject) => {
27
+ let settled = false;
28
+ const timer = setTimeout(() => {
29
+ settled = true;
30
+ reject(new Error(timeoutMessage));
31
+ }, Math.max(1, timeoutMs));
32
+ task.then((result) => {
33
+ if (settled)
34
+ return;
35
+ settled = true;
36
+ clearTimeout(timer);
37
+ resolve(result);
38
+ }, (err) => {
39
+ if (settled)
40
+ return;
41
+ settled = true;
42
+ clearTimeout(timer);
43
+ reject(err);
44
+ });
45
+ });
46
+ }
24
47
  export function applyToolAllowOverride(policy, toolAllow) {
25
48
  if (!Array.isArray(toolAllow) || toolAllow.length === 0)
26
49
  return policy;
@@ -50,6 +73,7 @@ export async function buildAgentContext(params) {
50
73
  });
51
74
  const tokenEstimate = getTokenEstimateConfig(resolvedModel.override);
52
75
  const modelPricing = getModelPricing(modelRegistry, resolvedModel.model);
76
+ const recallTimeoutMs = Math.max(100, Math.floor(runtime.host.memory.recall.timeoutMs || 15_000));
53
77
  // Get model capabilities (auto-detected from OpenRouter or defaults)
54
78
  const modelCapabilities = await getModelCapabilities(resolvedModel.model);
55
79
  // Calculate dynamic memory budget based on model context window
@@ -68,14 +92,26 @@ export async function buildAgentContext(params) {
68
92
  && shouldRunMemoryRecall(optimizedRecallQuery);
69
93
  if (recallEnabled) {
70
94
  const recallStart = Date.now();
71
- memoryRecall = await memoryBackend.buildRecall({
72
- groupFolder: params.groupFolder,
73
- userId: params.userId ?? null,
74
- query: optimizedRecallQuery,
75
- maxResults: recallBudget.maxResults,
76
- maxTokens: Math.min(dynamicMemoryBudget, recallBudget.maxTokens),
77
- minScore: runtime.host.memory.recall.minScore
78
- });
95
+ try {
96
+ memoryRecall = await withTimeout(memoryBackend.buildRecall({
97
+ groupFolder: params.groupFolder,
98
+ userId: params.userId ?? null,
99
+ query: optimizedRecallQuery,
100
+ maxResults: recallBudget.maxResults,
101
+ maxTokens: Math.min(dynamicMemoryBudget, recallBudget.maxTokens),
102
+ minScore: runtime.host.memory.recall.minScore
103
+ }), recallTimeoutMs, `Memory recall timed out after ${recallTimeoutMs}ms`);
104
+ }
105
+ catch (err) {
106
+ logger.warn({
107
+ groupFolder: params.groupFolder,
108
+ userId: params.userId ?? undefined,
109
+ recallTimeoutMs,
110
+ queryChars: optimizedRecallQuery.length,
111
+ error: err instanceof Error ? err.message : String(err)
112
+ }, 'Memory recall failed; continuing without recall');
113
+ memoryRecall = [];
114
+ }
79
115
  memoryRecallMs = Date.now() - recallStart;
80
116
  }
81
117
  const userProfile = memoryBackend.buildUserProfile({
@@ -1 +1 @@
1
- {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,8BAA8B,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAc,MAAM,kBAAkB,CAAC;AAC3F,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,eAAe,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAC;AACxJ,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAsBrG;;;GAGG;AACH,SAAS,qBAAqB,CAC5B,iBAAoC,EACpC,eAAuB,EACvB,aAAqB;IAErB,MAAM,aAAa,GAAG,iBAAiB,CAAC,cAAc,CAAC;IACvD,MAAM,aAAa,GAAG,iBAAiB,CAAC,qBAAqB,IAAI,eAAe,CAAC;IAEjF,gDAAgD;IAChD,MAAM,eAAe,GAAG,aAAa,GAAG,aAAa,CAAC;IAEtD,2BAA2B;IAC3B,MAAM,WAAW,GAAG,IAAI,CAAC;IACzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,WAAW,CAAC,CAAC;IAEnE,8DAA8D;IAC9D,OAAO,IAAI,CAAC,GAAG,CACb,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,EAC/C,aAAa,CACd,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAkB,EAAE,SAAoB;IAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAClC,SAAS;SACN,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SACxB,MAAM,CAAC,OAAO,CAAC,CACnB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAE1E,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QACrF,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACxC,CAAC;IAED,wEAAwE;IACxE,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,MAUvC;IACC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;IACpC,MAAM,aAAa,GAAG,MAAM,oBAAoB,EAAE,CAAC;IACnD,wFAAwF;IACxF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC;IAC7E,MAAM,aAAa,GAAG,iBAAiB,CAAC,YAAY,CAAC,CAAC;IACtD,MAAM,aAAa,GAAG,YAAY,CAAC;QACjC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,YAAY;QACZ,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,sBAAsB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;IAEzE,qEAAqE;IACrE,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE1E,gEAAgE;IAChE,MAAM,mBAAmB,GAAG,qBAAqB,CAC/C,iBAAiB,EACjB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,EACrC,MAAM,CAAC,eAAe,CACvB,CAAC;IAEF,IAAI,YAAY,GAAa,EAAE,CAAC;IAChC,IAAI,cAAkC,CAAC;IACvC,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAG,mBAAmB,CAAC;QACvC,KAAK,EAAE,oBAAoB;QAC3B,UAAU,EAAE,MAAM,CAAC,gBAAgB;QACnC,SAAS,EAAE,MAAM,CAAC,eAAe;KAClC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,KAAK,KAAK;WAC/C,YAAY,CAAC,UAAU,GAAG,CAAC;WAC3B,YAAY,CAAC,SAAS,GAAG,CAAC;WAC1B,qBAAqB,CAAC,oBAAoB,CAAC,CAAC;IACjD,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC/B,YAAY,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC;YAC7C,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;YAC7B,KAAK,EAAE,oBAAoB;YAC3B,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,SAAS,CAAC;YAChE,QAAQ,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ;SAC9C,CAAC,CAAC;QACH,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC;IAC5C,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,CAAC,gBAAgB,CAAC;QACjD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;KAC9B,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC;QACzC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;KAC9B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,8BAA8B,CAAC;QACpD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;KAC9B,CAAuC,CAAC;IAEzC,MAAM,cAAc,GAAG,sBAAsB,CAAC;QAC5C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;KAC9B,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;QAC1C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI;QAC7B,UAAU,EAAE,cAAc;KAC3B,CAAC,CAAC;IACH,IAAI,UAAU,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;QAC5D,CAAC,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC1D,CAAC,CAAC,kBAAkB,CAAC;IAEvB,UAAU,GAAG,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAElE,MAAM,eAAe,GAAG,kBAAkB,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SACxF,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,GAAG,CAAC,SAAS;QACnB,YAAY,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1D,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,eAAe,EAAE,GAAG,CAAC,eAAe;KACrC,CAAC,CAAC,CAAC;IAEN,OAAO;QACL,YAAY;QACZ,qBAAqB,EAAE,aAAa;QACpC,WAAW;QACX,WAAW;QACX,cAAc;QACd,UAAU;QACV,eAAe;QACf,aAAa;QACb,aAAa;QACb,YAAY;QACZ,aAAa;QACb,iBAAiB;QACjB,mBAAmB;QACnB,OAAO,EAAE;YACP,gBAAgB,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACxC,gBAAgB,EAAE,cAAc;SACjC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"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"}
@@ -75,6 +75,7 @@ export type RuntimeConfig = {
75
75
  maxResults: number;
76
76
  maxTokens: number;
77
77
  minScore: number;
78
+ timeoutMs: number;
78
79
  };
79
80
  embeddings: {
80
81
  enabled: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,8 @@ const DEFAULT_CONFIG = {
84
84
  recall: {
85
85
  maxResults: 8,
86
86
  maxTokens: 1000,
87
- minScore: 0.35
87
+ minScore: 0.35,
88
+ timeoutMs: 15_000
88
89
  },
89
90
  embeddings: {
90
91
  enabled: true,
@@ -388,6 +389,7 @@ function validateRuntimeConfig(config) {
388
389
  if (typeof h.memory.recall.minScore === 'number') {
389
390
  h.memory.recall.minScore = Math.min(1, Math.max(0, h.memory.recall.minScore));
390
391
  }
392
+ h.memory.recall.timeoutMs = clampMin(h.memory.recall.timeoutMs, 100, 'host.memory.recall.timeoutMs');
391
393
  if (h.memory.backend.strategy !== 'builtin' && h.memory.backend.strategy !== 'module') {
392
394
  console.warn(`[runtime-config] host.memory.backend.strategy = "${h.memory.backend.strategy}" is invalid, defaulting to "builtin"`);
393
395
  h.memory.backend.strategy = 'builtin';
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-config.js","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dotsetlabs/dotclaw",
3
- "version": "2.6.1",
3
+ "version": "2.6.2",
4
4
  "description": "Personal OpenRouter-based assistant. Lightweight, secure, customizable.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -40,6 +40,7 @@
40
40
  "scripts/canary-suite.js",
41
41
  "scripts/run-live-canary.js",
42
42
  "scripts/release-slo-check.js",
43
+ "scripts/preflight-prod-chat.js",
43
44
  "scripts/install.sh",
44
45
  "config-examples",
45
46
  "launchd",
@@ -67,6 +68,7 @@
67
68
  "bench:traffic": "node scripts/generate-controlled-traces.js",
68
69
  "canary": "node scripts/canary-suite.js",
69
70
  "canary:live": "node scripts/run-live-canary.js",
71
+ "preflight:prod-chat": "node scripts/preflight-prod-chat.js",
70
72
  "release:slo": "node scripts/release-slo-check.js",
71
73
  "lint": "eslint . --max-warnings=0",
72
74
  "test": "npm run build && node --test test/**/*.test.js && npm run test:agent-runner",
@@ -0,0 +1,304 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from 'node:fs';
4
+ import os from 'node:os';
5
+ import path from 'node:path';
6
+ import process from 'node:process';
7
+ import Database from 'better-sqlite3';
8
+
9
+ function usage() {
10
+ console.log([
11
+ 'Usage:',
12
+ ' node scripts/preflight-prod-chat.js --chat <chat_jid> [options]',
13
+ '',
14
+ 'Options:',
15
+ ' --chat <jid> Required (example: discord:1469421941294108713)',
16
+ ' --dotclaw-home <path> Defaults to DOTCLAW_HOME or ~/.dotclaw',
17
+ ' --start-iso <iso8601> Defaults to script start time',
18
+ ' --timeout-sec <n> Defaults to 180',
19
+ ' --poll-ms <n> Defaults to 1000',
20
+ ' --require-completed <n> Defaults to 1',
21
+ ' --max-processing-age-sec <n> Defaults to 120',
22
+ ' --allow-failed Don\'t fail on failed queue rows',
23
+ ' --allow-error-traces Don\'t fail when trace rows contain error_code',
24
+ ' --no-require-success-trace Don\'t require at least one successful trace row',
25
+ ' --no-require-trace Don\'t require at least one trace row',
26
+ ' --help Show this help'
27
+ ].join('\n'));
28
+ }
29
+
30
+ function parseArgs(argv) {
31
+ const parsed = {
32
+ chat: '',
33
+ dotclawHome: process.env.DOTCLAW_HOME || path.join(os.homedir(), '.dotclaw'),
34
+ startIso: new Date().toISOString(),
35
+ timeoutSec: 180,
36
+ pollMs: 1000,
37
+ requireCompleted: 1,
38
+ maxProcessingAgeSec: 120,
39
+ allowFailed: false,
40
+ allowErrorTraces: false,
41
+ requireSuccessfulTrace: true,
42
+ requireTrace: true
43
+ };
44
+
45
+ for (let i = 0; i < argv.length; i += 1) {
46
+ const arg = argv[i];
47
+ if (arg === '--help' || arg === '-h') {
48
+ parsed.help = true;
49
+ continue;
50
+ }
51
+ if (arg === '--allow-failed') {
52
+ parsed.allowFailed = true;
53
+ continue;
54
+ }
55
+ if (arg === '--allow-error-traces') {
56
+ parsed.allowErrorTraces = true;
57
+ continue;
58
+ }
59
+ if (arg === '--no-require-success-trace') {
60
+ parsed.requireSuccessfulTrace = false;
61
+ continue;
62
+ }
63
+ if (arg === '--no-require-trace') {
64
+ parsed.requireTrace = false;
65
+ continue;
66
+ }
67
+ const next = argv[i + 1];
68
+ if (!next || next.startsWith('--')) {
69
+ throw new Error(`Missing value for ${arg}`);
70
+ }
71
+ if (arg === '--chat') parsed.chat = next;
72
+ else if (arg === '--dotclaw-home') parsed.dotclawHome = next;
73
+ else if (arg === '--start-iso') parsed.startIso = next;
74
+ else if (arg === '--timeout-sec') parsed.timeoutSec = Number(next);
75
+ else if (arg === '--poll-ms') parsed.pollMs = Number(next);
76
+ else if (arg === '--require-completed') parsed.requireCompleted = Number(next);
77
+ else if (arg === '--max-processing-age-sec') parsed.maxProcessingAgeSec = Number(next);
78
+ else throw new Error(`Unknown argument: ${arg}`);
79
+ i += 1;
80
+ }
81
+
82
+ return parsed;
83
+ }
84
+
85
+ function clampInt(value, fallback, min) {
86
+ if (!Number.isFinite(value)) return fallback;
87
+ return Math.max(min, Math.floor(value));
88
+ }
89
+
90
+ function parseIsoOrNow(value) {
91
+ const ts = Date.parse(value);
92
+ if (!Number.isFinite(ts)) return new Date().toISOString();
93
+ return new Date(ts).toISOString();
94
+ }
95
+
96
+ function listTraceFiles(traceDir, startIso) {
97
+ if (!fs.existsSync(traceDir)) return [];
98
+ const startDate = startIso.slice(0, 10);
99
+ return fs.readdirSync(traceDir)
100
+ .filter((name) => /^trace-\d{4}-\d{2}-\d{2}\.jsonl$/.test(name))
101
+ .filter((name) => {
102
+ const datePart = name.slice(6, 16);
103
+ return datePart >= startDate;
104
+ })
105
+ .sort()
106
+ .map((name) => path.join(traceDir, name));
107
+ }
108
+
109
+ function summarizeTraceRows({ traceDir, chatJid, startIso }) {
110
+ const startMs = Date.parse(startIso);
111
+ const stats = {
112
+ total: 0,
113
+ success: 0,
114
+ error: 0,
115
+ latestError: ''
116
+ };
117
+ for (const filePath of listTraceFiles(traceDir, startIso)) {
118
+ let content = '';
119
+ try {
120
+ content = fs.readFileSync(filePath, 'utf-8');
121
+ } catch {
122
+ continue;
123
+ }
124
+ for (const line of content.split('\n')) {
125
+ if (!line.trim()) continue;
126
+ try {
127
+ const row = JSON.parse(line);
128
+ if (row?.chat_id !== chatJid) continue;
129
+ const ts = Date.parse(String(row.timestamp || ''));
130
+ if (!Number.isFinite(ts) || ts < startMs) continue;
131
+ stats.total += 1;
132
+ const errorCode = typeof row.error_code === 'string' ? row.error_code.trim() : '';
133
+ if (errorCode) {
134
+ stats.error += 1;
135
+ stats.latestError = errorCode;
136
+ continue;
137
+ }
138
+ if (typeof row.output_text === 'string' && row.output_text.trim()) {
139
+ stats.success += 1;
140
+ }
141
+ } catch {
142
+ // ignore malformed trace rows
143
+ }
144
+ }
145
+ }
146
+ return stats;
147
+ }
148
+
149
+ function getQueueRows(db, chatJid, startIso) {
150
+ return db.prepare(`
151
+ SELECT id, message_id, status, created_at, started_at, completed_at, error
152
+ FROM message_queue
153
+ WHERE chat_jid = ?
154
+ AND created_at >= ?
155
+ ORDER BY id DESC
156
+ LIMIT 200
157
+ `).all(chatJid, startIso);
158
+ }
159
+
160
+ function summarizeRows(rows, nowMs, maxProcessingAgeSec) {
161
+ const counts = {
162
+ pending: 0,
163
+ processing: 0,
164
+ completed: 0,
165
+ failed: 0
166
+ };
167
+ const staleProcessing = [];
168
+ for (const row of rows) {
169
+ const status = String(row.status || '');
170
+ if (status === 'pending' || status === 'processing' || status === 'completed' || status === 'failed') {
171
+ counts[status] += 1;
172
+ }
173
+ if (status === 'processing') {
174
+ const startedMs = Date.parse(String(row.started_at || row.created_at || ''));
175
+ if (Number.isFinite(startedMs)) {
176
+ const ageSec = (nowMs - startedMs) / 1000;
177
+ if (ageSec > maxProcessingAgeSec) {
178
+ staleProcessing.push({ id: row.id, ageSec, messageId: row.message_id });
179
+ }
180
+ }
181
+ }
182
+ }
183
+ return { counts, staleProcessing };
184
+ }
185
+
186
+ function sleep(ms) {
187
+ return new Promise((resolve) => setTimeout(resolve, ms));
188
+ }
189
+
190
+ async function main() {
191
+ let args;
192
+ try {
193
+ args = parseArgs(process.argv.slice(2));
194
+ } catch (err) {
195
+ console.error(`Argument error: ${err instanceof Error ? err.message : String(err)}`);
196
+ usage();
197
+ process.exit(2);
198
+ }
199
+
200
+ if (args.help) {
201
+ usage();
202
+ process.exit(0);
203
+ }
204
+
205
+ if (!args.chat || !String(args.chat).trim()) {
206
+ console.error('Missing required argument: --chat <chat_jid>');
207
+ usage();
208
+ process.exit(2);
209
+ }
210
+
211
+ const chatJid = String(args.chat).trim();
212
+ const dotclawHome = path.resolve(String(args.dotclawHome || '.'));
213
+ const startIso = parseIsoOrNow(String(args.startIso || ''));
214
+ const timeoutSec = clampInt(args.timeoutSec, 180, 1);
215
+ const pollMs = clampInt(args.pollMs, 1000, 50);
216
+ const requireCompleted = clampInt(args.requireCompleted, 1, 1);
217
+ const maxProcessingAgeSec = clampInt(args.maxProcessingAgeSec, 120, 1);
218
+ const allowFailed = !!args.allowFailed;
219
+ const allowErrorTraces = !!args.allowErrorTraces;
220
+ const requireSuccessfulTrace = !!args.requireSuccessfulTrace;
221
+ const requireTrace = !!args.requireTrace;
222
+
223
+ const dbPath = path.join(dotclawHome, 'data', 'store', 'messages.db');
224
+ const traceDir = path.join(dotclawHome, 'traces');
225
+ if (!fs.existsSync(dbPath)) {
226
+ console.error(`messages.db not found: ${dbPath}`);
227
+ process.exit(2);
228
+ }
229
+
230
+ const db = new Database(dbPath, { readonly: true, fileMustExist: true });
231
+ const startedAt = Date.now();
232
+ const deadline = startedAt + (timeoutSec * 1000);
233
+ let lastSignature = '';
234
+
235
+ console.log(`[preflight] chat=${chatJid}`);
236
+ console.log(`[preflight] dotclawHome=${dotclawHome}`);
237
+ console.log(`[preflight] startIso=${startIso}`);
238
+ console.log(`[preflight] timeoutSec=${timeoutSec}, pollMs=${pollMs}, requireCompleted=${requireCompleted}, maxProcessingAgeSec=${maxProcessingAgeSec}, requireTrace=${requireTrace}, requireSuccessfulTrace=${requireSuccessfulTrace}, allowFailed=${allowFailed}, allowErrorTraces=${allowErrorTraces}`);
239
+
240
+ try {
241
+ while (Date.now() <= deadline) {
242
+ const nowMs = Date.now();
243
+ const rows = getQueueRows(db, chatJid, startIso);
244
+ const { counts, staleProcessing } = summarizeRows(rows, nowMs, maxProcessingAgeSec);
245
+ const traceStats = (requireTrace || !allowErrorTraces)
246
+ ? summarizeTraceRows({ traceDir, chatJid, startIso })
247
+ : { total: 0, success: 0, error: 0, latestError: '' };
248
+
249
+ const signature = `${counts.pending}/${counts.processing}/${counts.completed}/${counts.failed}|stale:${staleProcessing.length}|trace:${traceStats.total}/${traceStats.success}/${traceStats.error}`;
250
+ if (signature !== lastSignature) {
251
+ const traceSummary = requireTrace
252
+ ? ` traces(total/success/error)=${traceStats.total}/${traceStats.success}/${traceStats.error}`
253
+ : '';
254
+ console.log(`[preflight] queue pending=${counts.pending} processing=${counts.processing} completed=${counts.completed} failed=${counts.failed} staleProcessing=${staleProcessing.length}${traceSummary}`);
255
+ if (rows[0]) {
256
+ const latest = rows[0];
257
+ console.log(`[preflight] latest id=${latest.id} status=${latest.status} message_id=${latest.message_id || 'n/a'} error=${latest.error || 'none'}`);
258
+ }
259
+ lastSignature = signature;
260
+ }
261
+
262
+ if (!allowFailed && counts.failed > 0) {
263
+ console.error('[preflight] FAIL: detected failed queue rows.');
264
+ process.exit(1);
265
+ }
266
+ if (staleProcessing.length > 0) {
267
+ console.error('[preflight] FAIL: detected stale processing rows.');
268
+ for (const row of staleProcessing.slice(0, 5)) {
269
+ console.error(`[preflight] stale id=${row.id} message_id=${row.messageId || 'n/a'} ageSec=${Math.floor(row.ageSec)}`);
270
+ }
271
+ process.exit(1);
272
+ }
273
+
274
+ if (!allowErrorTraces && traceStats.error > 0) {
275
+ console.error('[preflight] FAIL: detected trace rows with error_code.');
276
+ if (traceStats.latestError) {
277
+ console.error(`[preflight] latest trace error: ${traceStats.latestError}`);
278
+ }
279
+ process.exit(1);
280
+ }
281
+
282
+ const completedEnough = counts.completed >= requireCompleted;
283
+ const traceEnough = !requireTrace || traceStats.total > 0;
284
+ const successTraceEnough = !requireTrace || !requireSuccessfulTrace || traceStats.success > 0;
285
+ if (completedEnough && traceEnough) {
286
+ if (!successTraceEnough) {
287
+ await sleep(pollMs);
288
+ continue;
289
+ }
290
+ console.log('[preflight] PASS: gate conditions satisfied.');
291
+ process.exit(0);
292
+ }
293
+
294
+ await sleep(pollMs);
295
+ }
296
+ } finally {
297
+ db.close();
298
+ }
299
+
300
+ console.error('[preflight] FAIL: timed out waiting for pass conditions.');
301
+ process.exit(1);
302
+ }
303
+
304
+ void main();