@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.
- package/config-examples/runtime.json +2 -1
- package/container/agent-runner/src/index.ts +29 -6
- package/container/agent-runner/src/openrouter-input.ts +310 -17
- package/dist/agent-context.d.ts.map +1 -1
- package/dist/agent-context.js +44 -8
- package/dist/agent-context.js.map +1 -1
- package/dist/runtime-config.d.ts +1 -0
- package/dist/runtime-config.d.ts.map +1 -1
- package/dist/runtime-config.js +3 -1
- package/dist/runtime-config.js.map +1 -1
- package/package.json +3 -1
- package/scripts/preflight-prod-chat.js +304 -0
|
@@ -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
|
|
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(
|
|
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
|
-
|
|
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:
|
|
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 =
|
|
71
|
-
|
|
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
|
|
83
|
-
|
|
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;
|
|
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"}
|
package/dist/agent-context.js
CHANGED
|
@@ -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
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"agent-context.js","sourceRoot":"","sources":["../src/agent-context.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime-config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE;YACT,cAAc,EAAE,MAAM,CAAC;YACvB,cAAc,EAAE,MAAM,CAAC;YACvB,eAAe,EAAE,MAAM,CAAC;YACxB,cAAc,EAAE,MAAM,CAAC;YACvB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,GAAG,EAAE;YACH,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,SAAS,EAAE;YACT,KAAK,EAAE,MAAM,CAAC;YACd,SAAS,EAAE,MAAM,CAAC;YAClB,cAAc,EAAE,MAAM,CAAC;YACvB,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;YAC7B,UAAU,EAAE,OAAO,CAAC;YACpB,YAAY,EAAE,MAAM,CAAC;YACrB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,IAAI,EAAE,MAAM,CAAC;YACb,YAAY,EAAE,OAAO,CAAC;YACtB,SAAS,EAAE,MAAM,CAAC;YAClB,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,EAAE,MAAM,CAAC;YACf,UAAU,EAAE,MAAM,CAAC;YACnB,yBAAyB,EAAE,MAAM,CAAC;YAClC,MAAM,EAAE;gBACN,iBAAiB,EAAE,MAAM,CAAC;gBAC1B,qBAAqB,EAAE,MAAM,CAAC;gBAC9B,aAAa,EAAE,MAAM,CAAC;aACvB,CAAC;SACH,CAAC;QACF,WAAW,EAAE;YACX,SAAS,EAAE,MAAM,CAAC;YAClB,cAAc,EAAE,MAAM,CAAC;YACvB,SAAS,EAAE,OAAO,CAAC;YACnB,gBAAgB,EAAE,MAAM,CAAC;YACzB,yBAAyB,EAAE,MAAM,CAAC;SACnC,CAAC;QACF,cAAc,EAAE,MAAM,CAAC;QACvB,KAAK,EAAE;YACL,GAAG,EAAE,MAAM,CAAC;YACZ,UAAU,EAAE,MAAM,CAAC;YACnB,aAAa,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,WAAW,EAAE;YACX,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,YAAY,EAAE;YACZ,aAAa,EAAE,MAAM,CAAC;YACtB,YAAY,EAAE,MAAM,CAAC;YACrB,gBAAgB,EAAE,MAAM,CAAC;YACzB,UAAU,EAAE,MAAM,CAAC;YACnB,WAAW,EAAE,MAAM,CAAC;YACpB,UAAU,EAAE,MAAM,CAAC;YACnB,qBAAqB,EAAE,OAAO,CAAC;YAC/B,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,OAAO,EAAE;YACP,IAAI,EAAE,MAAM,CAAC;YACb,OAAO,EAAE,OAAO,CAAC;SAClB,CAAC;QACF,SAAS,EAAE;YACT,OAAO,EAAE,OAAO,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;QACF,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,MAAM,CAAC;gBACnB,SAAS,EAAE,MAAM,CAAC;gBAClB,QAAQ,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime-config.d.ts","sourceRoot":"","sources":["../src/runtime-config.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime-config.js
CHANGED
|
@@ -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":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,UAAU,EACV,WAAW,EACX,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAyV5C,SAAS,wBAAwB;IAC/B,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;AACnD,CAAC;AAED,MAAM,4BAA4B,GAAG,OAAO,CAAC;AAC7C,MAAM,mCAAmC,GAAG,IAAI,CAAC,GAAG,CAAC,4BAA4B,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;AAErG,MAAM,cAAc,GAAkB;IACpC,IAAI,EAAE;QACJ,QAAQ,EAAE,MAAM;QAChB,YAAY,EAAE,sBAAsB;QACpC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;QAC5E,IAAI,EAAE,WAAW;QACjB,SAAS,EAAE;YACT,cAAc,EAAE,MAAM;YACtB,cAAc,EAAE,CAAC;YACjB,eAAe,EAAE,MAAM;YACvB,cAAc,EAAE,SAAS;YACzB,aAAa,EAAE,OAAO;SACvB;QACD,GAAG,EAAE;YACH,cAAc,EAAE,KAAK;SACtB;QACD,SAAS,EAAE;YACT,KAAK,EAAE,sBAAsB;YAC7B,SAAS,EAAE,4BAA4B;YACvC,cAAc,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI;YAChC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,GAAG;YACjB,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,EAAE;YACR,YAAY,EAAE,KAAK;YACnB,SAAS,EAAE,KAAK;YAChB,MAAM,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5E,MAAM,EAAE,OAAO,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE;YAC5E,UAAU,EAAE,EAAE;YACd,yBAAyB,EAAE,KAAK;YAChC,MAAM,EAAE;gBACN,iBAAiB,EAAE,MAAM;gBACzB,qBAAqB,EAAE,MAAM;gBAC7B,aAAa,EAAE,MAAM;aACtB;SACF;QACD,WAAW,EAAE;YACX,SAAS,EAAE,CAAC;YACZ,cAAc,EAAE,CAAC;YACjB,SAAS,EAAE,IAAI;YACf,gBAAgB,EAAE,MAAM;YACxB,yBAAyB,EAAE,CAAC;SAC7B;QACD,cAAc,EAAE,WAAW;QAC3B,KAAK,EAAE;YACL,GAAG,EAAE,UAAU;YACf,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,EAAE;SAClB;QACD,WAAW,EAAE;YACX,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;SAC/B;QACD,YAAY,EAAE;YACZ,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,OAAO;YACzB,UAAU,EAAE,CAAC;YACb,WAAW,EAAE,KAAK;YAClB,UAAU,EAAE,MAAM;YAClB,qBAAqB,EAAE,IAAI;YAC3B,cAAc,EAAE,MAAM;SACvB;QACD,OAAO,EAAE;YACP,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,IAAI;SACd;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI;SACX;QACD,MAAM,EAAE;YACN,MAAM,EAAE;gBACN,UAAU,EAAE,CAAC;gBACb,SAAS,EAAE,IAAI;gBACf,QAAQ,EAAE,IAAI;aACf;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,+BAA+B;gBACtC,UAAU,EAAE,yBAAyB;gBACrC,SAAS,EAAE,CAAC;gBACZ,QAAQ,EAAE,EAAE;gBACZ,aAAa,EAAE,EAAE;gBACjB,aAAa,EAAE,IAAI;gBACnB,MAAM,EAAE,GAAG;gBACX,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,IAAI;gBAChB,eAAe,EAAE,OAAO;gBACxB,aAAa,EAAE,GAAG;gBAClB,iBAAiB,EAAE,8BAA8B;gBACjD,iBAAiB,EAAE,uCAAuC;gBAC1D,kBAAkB,EAAE,SAAS;aAC9B;YACD,WAAW,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,wBAAwB,EAAE,GAAG;gBAC7B,aAAa,EAAE,IAAI;gBACnB,kBAAkB,EAAE,CAAC;gBACrB,cAAc,EAAE,IAAI;aACrB;YACD,sBAAsB,EAAE,OAAO;YAC/B,OAAO,EAAE;gBACP,QAAQ,EAAE,SAAS;gBACnB,UAAU,EAAE,EAAE;aACf;SACF;QACD,KAAK,EAAE;YACL,aAAa,EAAE;gBACb,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,yBAAyB;gBAChC,OAAO,EAAE,8BAA8B;gBACvC,QAAQ,EAAE,EAAE;gBACZ,cAAc,EAAE,GAAG;aACpB;YACD,GAAG,EAAE;gBACH,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,UAAU;gBACjB,OAAO,EAAE,EAAE;gBACX,YAAY,EAAE,kBAAkB;aACjC;SACF;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;YACb,gBAAgB,EAAE,mCAAmC;YACrD,WAAW,EAAE,CAAC;YACd,gBAAgB,EAAE,IAAI;SACvB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,CAAC;YACd,gBAAgB,EAAE,IAAI;SACvB;QACD,QAAQ,EAAE;YACR,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,MAAM;YACjB,UAAU,EAAE,MAAM;YAClB,UAAU,EAAE,CAAC;YACb,QAAQ,EAAE,EAAE;SACb;QACD,SAAS,EAAE;YACT,OAAO,EAAE,KAAK;YACd,UAAU,EAAE,SAAS;YACrB,WAAW,EAAE,MAAM;SACpB;QACD,OAAO,EAAE;YACP,KAAK,EAAE,sBAAsB;YAC7B,SAAS,EAAE,EAAE;YACb,aAAa,EAAE,EAAE;YACjB,eAAe,EAAE,CAAC;YAClB,YAAY,EAAE,GAAG;YACjB,WAAW,EAAE,GAAG;YAChB,gBAAgB,EAAE,CAAC;YACnB,eAAe,EAAE,IAAI;YACrB,YAAY,EAAE;gBACZ,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,CAAC;gBACb,mBAAmB,EAAE,MAAM;gBAC3B,mBAAmB,EAAE,OAAO;gBAC5B,yBAAyB,EAAE,OAAO;aACnC;SACF;QACD,SAAS,EAAE;YACT,OAAO,EAAE,IAAI;YACb,oBAAoB,EAAE,GAAG;YACzB,cAAc,EAAE,GAAG;YACnB,aAAa,EAAE,IAAI;SACpB;QACD,OAAO,EAAE;YACP,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,EAAE;SACV;QACD,WAAW,EAAE;YACX,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,iBAAiB;SACxB;QACD,aAAa,EAAE;YACb,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;SACpB;KACF;IACD,KAAK,EAAE;QACL,aAAa,EAAE,MAAM;QACrB,UAAU,EAAE;YACV,SAAS,EAAE,OAAO;YAClB,KAAK,EAAE,IAAI;YACX,OAAO,EAAE,uCAAuC;YAChD,QAAQ,EAAE,SAAS;SACpB;QACD,WAAW,EAAE;YACX,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,QAAQ,EAAE,CAAC;YACX,UAAU,EAAE,GAAG;SAChB;QACD,OAAO,EAAE;YACP,gBAAgB,EAAE,OAAO;YACzB,uBAAuB,EAAE,OAAO;YAChC,mBAAmB,EAAE,CAAC,EAAE,wDAAwD;YAChF,0BAA0B,EAAE,EAAE;YAC9B,eAAe,EAAE,IAAI;YACrB,sBAAsB,EAAE,IAAI;YAC5B,WAAW,EAAE,GAAG;YAChB,uBAAuB,EAAE,IAAI;YAC7B,eAAe,EAAE,EAAE;YACnB,cAAc,EAAE;gBACd,gBAAgB,EAAE,KAAK;gBACvB,iBAAiB,EAAE,KAAK;gBACxB,iBAAiB,EAAE,KAAK;gBACxB,iBAAiB,EAAE,EAAE;aACtB;SACF;QACD,MAAM,EAAE;YACN,UAAU,EAAE,CAAC;YACb,SAAS,EAAE,IAAI;YACf,UAAU,EAAE;gBACV,OAAO,EAAE,IAAI;gBACb,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,CAAC;gBACd,eAAe,EAAE,IAAI;aACtB;YACD,WAAW,EAAE,IAAI;YACjB,gBAAgB,EAAE,KAAK;SACxB;QACD,MAAM,EAAE;YACN,OAAO,EAAE,wBAAwB;YACjC,MAAM,EAAE,wBAAwB;SACjC;QACD,KAAK,EAAE;YACL,YAAY,EAAE,GAAG;YACjB,gBAAgB,EAAE,OAAO;YACzB,UAAU,EAAE,IAAI;YAChB,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE;gBACf,uBAAuB,EAAE,CAAC;gBAC1B,wBAAwB,EAAE,GAAG;gBAC7B,0BAA0B,EAAE,CAAC;gBAC7B,sBAAsB,EAAE,CAAC;gBACzB,4BAA4B,EAAE,CAAC;gBAC/B,wBAAwB,EAAE,IAAI;aAC/B;YACD,QAAQ,EAAE;gBACR,YAAY,EAAE,IAAI;gBAClB,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;gBACrC,QAAQ,EAAE,OAAO;gBACjB,SAAS,EAAE,MAAM;aAClB;YACD,SAAS,EAAE;gBACT,SAAS,EAAE,MAAM;aAClB;YACD,IAAI,EAAE;gBACJ,SAAS,EAAE,OAAO;gBAClB,gBAAgB,EAAE,OAAO;aAC1B;YACD,gBAAgB,EAAE,SAAS;YAC3B,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,QAAQ,EAAE,OAAO;gBACjB,aAAa,EAAE,MAAM;aACtB;YACD,QAAQ,EAAE;gBACR,OAAO,EAAE,IAAI;gBACb,aAAa,EAAE,MAAM;gBACrB,WAAW,EAAE,EAAE;gBACf,aAAa,EAAE,KAAK;gBACpB,aAAa,EAAE,KAAK;aACrB;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,MAAM;gBAChB,eAAe,EAAE,GAAG;gBACpB,KAAK,EAAE,CAAC,UAAU,CAAC;aACpB;SACF;QACD,GAAG,EAAE;YACH,gBAAgB,EAAE,MAAM;YACxB,aAAa,EAAE,GAAG;SACnB;QACD,aAAa,EAAE;YACb,aAAa,EAAE,IAAI;YACnB,gBAAgB,EAAE,CAAC;YACnB,gBAAgB,EAAE,CAAC;SACpB;QACD,GAAG,EAAE;YACH,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE,EAAE;YACX,YAAY,EAAE,kBAAkB;YAChC,QAAQ,EAAE,UAAU;YACpB,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,OAAO;SACrB;QACD,OAAO,EAAE;YACP,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,SAAS;YACzB,gBAAgB,EAAE,SAAS;SAC5B;QACD,OAAO,EAAE;YACP,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,MAAM;YACjB,iBAAiB,EAAE,EAAE;SACtB;QACD,GAAG,EAAE;YACH,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,EAAE;YACX,mBAAmB,EAAE,MAAM;SAC5B;QACD,SAAS,EAAE;YACT,MAAM,EAAE,QAAQ;SACjB;QACD,MAAM,EAAE;YACN,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,EAAE;YACb,eAAe,EAAE,IAAI;YACrB,cAAc,EAAE,IAAI;SACrB;KACF;IACD,KAAK,EAAE;QACL,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,EAAE;QACX,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,IAAI;KACvB;CACF,CAAC;AAEF,SAAS,QAAQ,CAAC,KAAa,EAAE,GAAW,EAAE,KAAa;IACzD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,GAAG,EAAE,CAAC;QACxE,OAAO,CAAC,IAAI,CAAC,oBAAoB,KAAK,MAAM,KAAK,4BAA4B,GAAG,EAAE,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAqB;IAClD,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC;IAEtB,YAAY;IACZ,CAAC,CAAC,SAAS,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,+BAA+B,CAAC,CAAC;IACzG,CAAC,CAAC,SAAS,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACtG,CAAC,CAAC,SAAS,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,eAAe,EAAE,GAAG,EAAE,gCAAgC,CAAC,CAAC;IAC3G,CAAC,CAAC,SAAS,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;IAEtG,YAAY;IACZ,CAAC,CAAC,SAAS,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,0BAA0B,CAAC,CAAC;IAC1F,CAAC,CAAC,SAAS,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,EAAE,6BAA6B,CAAC,CAAC;IACjG,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;QACtE,OAAO,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,SAAS,CAAC,IAAI,sCAAsC,CAAC,CAAC;QAChH,CAAC,CAAC,SAAS,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC9B,CAAC;IACD,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,yCAAyC,CAAC,CAAC;IACvI,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,6CAA6C,CAAC,CAAC;IAEnJ,cAAc;IACd,CAAC,CAAC,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,4BAA4B,CAAC,CAAC;IAC7F,CAAC,CAAC,WAAW,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,IAAI,EAAE,mCAAmC,CAAC,CAAC;IACrH,CAAC,CAAC,WAAW,CAAC,yBAAyB,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,yBAAyB,EAAE,CAAC,EAAE,4CAA4C,CAAC,CAAC;IAE7I,cAAc;IACd,CAAC,CAAC,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,6BAA6B,CAAC,CAAC;IAErG,gBAAgB;IAChB,CAAC,CAAC,YAAY,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC,EAAE,iCAAiC,CAAC,CAAC;IAC5G,CAAC,CAAC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACnG,CAAC,CAAC,YAAY,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,EAAE,kCAAkC,CAAC,CAAC;IAElH,UAAU;IACV,CAAC,CAAC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACnG,CAAC,CAAC,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAC1F,CAAC,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;IACtG,CAAC,CAAC,OAAO,CAAC,eAAe,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACnG,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;IAC3H,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,EAAE,+CAA+C,CAAC,CAAC;IACtJ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC,EAAE,+CAA+C,CAAC,CAAC;IACtJ,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,yBAAyB,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,yBAAyB,EAAE,CAAC,EAAE,qDAAqD,CAAC,CAAC;IAExK,YAAY;IACZ,CAAC,CAAC,SAAS,CAAC,oBAAoB,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,EAAE,qCAAqC,CAAC,CAAC;IACzH,CAAC,CAAC,SAAS,CAAC,cAAc,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,GAAG,EAAE,+BAA+B,CAAC,CAAC;IACxG,CAAC,CAAC,SAAS,CAAC,aAAa,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,aAAa,EAAE,GAAG,EAAE,8BAA8B,CAAC,CAAC;IAErG,gBAAgB;IAChB,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjD,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,uCAAuC,CAAC,CAAC;QACnI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IACxC,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;QACpD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,GAAG,EAAE,CAAC;IACnC,CAAC;IAED,UAAU;IACV,CAAC,CAAC,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,mBAAmB,CAAC,CAAC;IACrE,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,0FAA0F,CAAC,CAAC;IAC3G,CAAC;IAED,QAAQ;IACR,MAAM,CAAC,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC5F,MAAM,CAAC,KAAK,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;IAEvG,cAAc;IACd,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;QAC3E,CAAC,CAAC,YAAY,GAAG,sBAAsB,CAAC;IAC1C,CAAC;IAED,YAAY;IACZ,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACpH,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,EAAE,yBAAyB,CAAC,CAAC;IACzG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,wCAAwC,CAAC,CAAC;QAC1H,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,UAAU,CAAC;IACzC,CAAC;IACD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,2BAA2B,CAAC,CAAC;IAC9G,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,EAAE,8BAA8B,CAAC,CAAC;IAC1H,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,EAAE,gCAAgC,CAAC,CAAC;IAChI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,uBAAuB,GAAG,QAAQ,CACnE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,uBAAuB,EAC1D,CAAC,EACD,qDAAqD,CACtD,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,wBAAwB,GAAG,QAAQ,CACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,wBAAwB,EAC3D,CAAC,EACD,sDAAsD,CACvD,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,0BAA0B,GAAG,QAAQ,CACtE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,0BAA0B,EAC7D,CAAC,EACD,wDAAwD,CACzD,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,sBAAsB,GAAG,QAAQ,CAClE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,sBAAsB,EACzD,CAAC,EACD,oDAAoD,CACrD,CAAC;IACF,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,4BAA4B,GAAG,QAAQ,CACxE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC,4BAA4B,EAC/D,CAAC,EACD,0DAA0D,CAC3D,CAAC;AACJ,CAAC;AAED,IAAI,YAAY,GAAyB,IAAI,CAAC;AAC9C,IAAI,UAAU,GAAkB,IAAI,CAAC;AACrC,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,SAAS,WAAW,CAAI,KAAQ;IAC9B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAM,CAAC;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,0BAA0B,CAAC,KAAc;IAChD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC/B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3C,OAAO,OAAO,QAAQ,CAAC,gBAAgB,KAAK,QAAQ,CAAC;AACvD,CAAC;AAED,SAAS,aAAa,CAAI,IAAO,EAAE,SAAkB,EAAE,UAAU,GAAG,EAAE;IACpE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAA4B,CAAC;IAC5D,MAAM,OAAO,GAAG,IAA+B,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YACtD,SAAS;QACX,CAAC;QACD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACpB,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,OAAO,OAAO,EAAE,CAAC;YAC7D,OAAO,CAAC,IAAI,CAAC,oBAAoB,QAAQ,cAAc,OAAO,OAAO,SAAS,OAAO,KAAK,kBAAkB,CAAC,CAAC;YAC9G,SAAS;QACX,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,OAAO,OAAO,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,CAAC,GAAG,KAAgB,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,MAAW,CAAC;AACrB,CAAC;AAED,SAAS,QAAQ,CAAC,QAAgB;IAChC,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE;YAAE,OAAO,IAAI,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB;IAClC,OAAO,wBAAwB,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,+BAA+B,CAAC,UAAkB;IACzD,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;IAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QAAE,OAAO;IAClE,YAAY,GAAG,IAAI,CAAC;IACpB,WAAW,GAAG,IAAI,CAAC;AACrB,CAAC;AAED,SAAS,0BAA0B,CAAC,MAA+B;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;QAAE,OAAO;IACjC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACjE,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,IAAI,aAAa,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC;QACxF,OAAO,OAAO,CAAC,QAAQ,CAAC;IAC1B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,UAAU,GAAG,wBAAwB,EAAE;IAC/E,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QAAE,OAAO,EAAE,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAiC,EACjC,UAAU,GAAG,wBAAwB,EAAE;IAEvC,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzC,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACvC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,GAAG,UAAU,MAAM,CAAC;IACpC,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnC,+BAA+B,CAAC,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,OAA2D,EAC3D,UAAU,GAAG,wBAAwB,EAAE;IAEvC,MAAM,KAAK,GAAG,yBAAyB,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;IACnC,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,0BAA0B,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,CAAC;IACrD,IAAI,YAAY,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/C,kDAAkD;QAClD,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,wBAAwB,EAAE,CAAC;YAC9C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YACrC,IAAI,WAAW,KAAK,IAAI,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBACzD,OAAO,YAAY,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wCAAwC;YACxC,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC;IACD,MAAM,QAAQ,GAAG,yBAAyB,EAAE,CAAC;IAC7C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IAChG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,EAAE,OAAO,CAAC,CAAC;IACtG,CAAC;IACD,wEAAwE;IACxE,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAI,QAAoC,CAAC,IAAI,CAAC;QACxD,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,IAAI,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;YACrH,CAAC;YACD,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,aAAa,CAAE,IAAI,CAAC,OAAmC,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACrG,OAAO,CAAC,IAAI,CAAC,8FAA8F,CAAC,CAAC;YAC/G,CAAC;QACH,CAAC;IACH,CAAC;IACD,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAC9B,YAAY,GAAG,MAAM,CAAC;IACtB,UAAU,GAAG,WAAW,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CAAC,wBAAwB,EAAE,CAAC,CAAC;QACrD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,WAAW,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
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.
|
|
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();
|