/workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-83- const sections: string[] = []; /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-84- /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-85- if (assistantName) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:86: sections.push(['# You are ' + assistantName, '', `Your name is **${assistantName}**. Use it when the channel asks who you are, when introducing yourself, and when signing any message that explicitly calls for a signature.`].join('\n')); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-87- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-88- /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:89: sections.push(buildDestinationsSection()); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-90- /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-91- return sections.join('\n\n'); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-92-} -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-106- if (all.length === 1) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-107- const d = all[0]; /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-108- const label = d.displayName && d.displayName !== d.name ? ` (${d.displayName})` : ''; /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:109: lines.push(`Your destination is \`${d.name}\`${label}.`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-110- } else { /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:111: lines.push('You can send messages to the following destinations:', ''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-112- for (const d of all) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-113- const label = d.displayName && d.displayName !== d.name ? ` (${d.displayName})` : ''; /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:114: lines.push(`- \`${d.name}\`${label}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-115- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-116- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:117: lines.push(''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:118: lines.push( /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-119- 'Wrap each delivered message in a `` block; include several blocks in one response to address several destinations. `` marks thinking you don\'t want sent.', /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-120- ); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:121: lines.push(''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:122: lines.push( /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-123- 'When replying to an incoming message, default to addressing the destination it came `from` (every inbound `` tag carries a `from="name"` attribute). Pick a different destination when the request asks for it (e.g., "tell Laura that…").', /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-124- ); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:125: lines.push(''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts:126: lines.push( /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-127- 'The `send_message` MCP tool is the same delivery, available mid-turn — handy for a quick acknowledgment ("on it") before a slow tool call. Each `send_message` call and each final-response `` block lands as its own message in the conversation, so they read as a sequence rather than as one combined reply.', /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-128- ); /workspace/extra/projects/nanoclaw/container/agent-runner/src/destinations.ts-129- return lines.join('\n'); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-139- const parts: string[] = []; /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-140- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-141- if (chatMessages.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:142: parts.push(formatChatMessages(chatMessages)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-143- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-144- if (taskMessages.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:145: parts.push(...taskMessages.map(formatTaskMessage)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-146- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-147- if (webhookMessages.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:148: parts.push(...webhookMessages.map(formatWebhookMessage)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-149- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-150- if (systemMessages.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:151: parts.push(...systemMessages.map(formatSystemMessage)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-152- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-153- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-154- return header + parts.join('\n\n'); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-202- const time = formatLocalTime(msg.timestamp, TIMEZONE); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-203- const parts: string[] = []; /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-204- if (content.scriptOutput) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:205: parts.push('Script output:', JSON.stringify(content.scriptOutput, null, 2), ''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-206- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:207: parts.push('Instructions:', content.prompt || ''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-208- return `${parts.join('\n')}`; /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-209-} /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-210- -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-275- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-276- const bodyParts: string[] = []; /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-277- if (typeof item.caption === 'string' && item.caption) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:278: bodyParts.push(`${escapeXml(item.caption)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-279- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-280- if (typeof item.title === 'string' && item.title) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:281: bodyParts.push(`${escapeXml(item.title)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-282- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-283- if (typeof item.body === 'string' && item.body) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:284: bodyParts.push(`${escapeXml(item.body)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-285- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-286- if (typeof item.linkedUrl === 'string' && item.linkedUrl) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:287: bodyParts.push(`${escapeXml(item.linkedUrl)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-288- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-289- if (Array.isArray(item.links) && item.links.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-290- const linkItems = (item.links as unknown[]) /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-291- .filter((u): u is string => typeof u === 'string') /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-292- .map((u) => `${escapeXml(u)}`) /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-293- .join(''); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:294: bodyParts.push(`${linkItems}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-295- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-296- if (typeof item.transcript === 'string' && item.transcript) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:297: bodyParts.push(`${escapeXml(item.transcript)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-298- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-299- if (typeof item.youtubeTranscript === 'string' && item.youtubeTranscript) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-300- const urlAttr = /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-301- typeof item.youtubeUrl === 'string' && item.youtubeUrl ? ` url="${escapeXml(item.youtubeUrl)}"` : ''; /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:302: bodyParts.push(`${escapeXml(item.youtubeTranscript)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-303- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-304- if (typeof item.ocr === 'string' && item.ocr) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:305: bodyParts.push(`${escapeXml(item.ocr)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-306- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-307- if (Array.isArray(item.relatedPosts) && item.relatedPosts.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-308- const related = item.relatedPosts -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-319- return `${escapeXml(post.caption || '')}`; /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-320- }) /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-321- .join('\n'); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:322: bodyParts.push(`${related}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-323- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-324- if (Array.isArray(item.toolMentions) && item.toolMentions.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:325: bodyParts.push(`${escapeXml(JSON.stringify(item.toolMentions))}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-326- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-327- if (typeof item.error === 'string' && item.error) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts:328: bodyParts.push(`${escapeXml(item.error)}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-329- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-330- /workspace/extra/projects/nanoclaw/container/agent-runner/src/formatter.ts-331- const attrText = attrs ? ` ${attrs}` : ''; -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts-156- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts-157- continue; /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts-158- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts:159: positional.push(a); /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts-160- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts-161- /workspace/extra/projects/nanoclaw/container/agent-runner/src/cli/ncl.ts-162- if (positional.length === 0) { -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-79- * /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-80- * 1. Poll messages_in for pending rows /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-81- * 2. Format into prompt, call provider.query() /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:82: * 3. While query active: continue polling, push new messages via provider.push() /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-83- * 4. On result: write messages_out /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-84- * 5. Mark messages completed /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-85- * 6. Loop -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-170- thread_id: routing.threadId, /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-171- content: JSON.stringify({ text: 'Session cleared.' }), /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-172- }); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:173: commandIds.push(msg.id); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-174- continue; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-175- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:176: normalMessages.push(msg); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-177- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-178- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-179- if (commandIds.length > 0) { -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-284- if (cmdInfo.category === 'passthrough' || cmdInfo.category === 'admin') { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-285- // Flush normal batch first /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-286- if (normalBatch.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:287: parts.push(formatMessages(normalBatch)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-288- normalBatch.length = 0; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-289- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-290- // Pass raw command text (no XML wrapping) — SDK handles it natively /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:291: parts.push(cmdInfo.text); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-292- continue; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-293- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-294- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:295: normalBatch.push(msg); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-296- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-297- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-298- if (normalBatch.length > 0) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:299: parts.push(formatMessages(normalBatch)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-300- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-301- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-302- return parts.join('\n\n'); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-355- if (pending.some((m) => isRunnerCommand(m))) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-356- log('Pending slash command — ending stream so outer loop can process'); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-357- endedForCommand = true; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:358: query.end(); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-359- return; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-360- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-361- -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-399- const prompt = formatMessages(keep); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-400- log(`Pushing ${keep.length} follow-up message(s) into active query`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-401- unwrappedNudged = false; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:402: query.push(prompt); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-403- markCompleted(keptIds); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-404- } catch (err) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-405- // Without this catch the rejection escapes the void IIFE and Node -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-473- unwrappedNudged = true; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-474- const destinations = getAllDestinations(); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-475- const names = destinations.map((d) => d.name).join(', '); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:476: query.push( /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-477- `Your response was not delivered — it was not wrapped in ... blocks. ` + /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-478- `All output must be wrapped: use for content to send, or for scratchpad. ` + /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-479- `Your destinations: ${names}. ` + -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-549- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-550- while ((match = MESSAGE_RE.exec(text)) !== null) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-551- if (match.index > lastIndex) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:552: scratchpadParts.push(text.slice(lastIndex, match.index)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-553- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-554- const toName = match[1]; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-555- const body = match[2].trim(); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-558- const dest = findByName(toName); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-559- if (!dest) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-560- log(`Unknown destination in , dropping block`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:561: scratchpadParts.push(`[dropped: unknown destination "${toName}"] ${body}`); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-562- continue; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-563- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-564- sendToDestination(dest, body, routing); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-565- sent++; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-566- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-567- if (lastIndex < text.length) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts:568: scratchpadParts.push(text.slice(lastIndex)); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-569- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-570- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.ts-571- const scratchpad = stripInternalTags(scratchpadParts.join('')); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-289- }); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-290- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-291- const events: Array<{ type: string }> = []; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts:292: setTimeout(() => query.end(), 50); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-293- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-294- for await (const event of query.events) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts:295: events.push(event); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-296- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-297- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-298- const typed = events.filter((e) => e.type !== 'activity'); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-311- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-312- const events: Array<{ type: string; text?: string }> = []; /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-313- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts:314: setTimeout(() => query.push('Second'), 30); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts:315: setTimeout(() => query.end(), 60); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-316- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-317- for await (const event of query.events) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts:318: events.push(event); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-319- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-320- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-321- const results = events.filter((e) => e.type === 'result'); -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-350- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-351- markProcessing(['m1']); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-352- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts:353: setTimeout(() => query.end(), 50); /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-354- /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-355- for await (const event of query.events) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/poll-loop.test.ts-356- if (event.type === 'result' && event.text) { -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts-60- for (const entry of fs.readdirSync(extraBase)) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts-61- const fullPath = path.join(extraBase, entry); /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts-62- if (fs.statSync(fullPath).isDirectory()) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts:63: additionalDirectories.push(fullPath); /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts-64- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts-65- } /workspace/extra/projects/nanoclaw/container/agent-runner/src/index.ts-66- if (additionalDirectories.length > 0) { -- /workspace/extra/projects/nanoclaw/container/agent-runner/src/scheduling/task-script.ts-82- /workspace/extra/projects/nanoclaw/container/agent-runner/src/scheduling/task-script.ts-83- for (const msg of messages) { /workspace/extra/projects/nanoclaw/container/agent-runner/src/scheduling/task-script.ts-84- if (msg.kind !== 'task') { /workspace/extra/projects/nanoclaw/container/agent-runner/src/scheduling/task-script.ts:85: keep.push(msg); /workspace/extra/projects/nanoclaw/container/agent-runner/src/scheduling/task-script.ts-86- continue; [Showing results with pagination = limit: 250]