diff --git a/CHANGELOG.md b/CHANGELOG.md index 972ca7781..6fbe03541 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -64,13 +64,17 @@ Status: unreleased. - Config: apply config.env before ${VAR} substitution. (#1813) Thanks @spanishflu-est1918. - Slack: clear ack reaction after streamed replies. (#2044) Thanks @fancyboi999. - macOS: keep custom SSH usernames in remote target. (#2046) Thanks @algal. +- CLI: use Node's module compile cache for faster startup. (#2808) Thanks @pi0. ### Breaking - **BREAKING:** Gateway auth mode "none" is removed; gateway now requires token/password (Tailscale Serve identity still allowed). ### Fixes +- Agents: prevent retries on oversized image errors and surface size limits. (#2871) Thanks @Suksham-sharma. +- Agents: inherit provider baseUrl/api for inline models. (#2740) Thanks @lploc94. - Memory Search: keep auto provider model defaults and only include remote when configured. (#2576) Thanks @papago2355. - macOS: auto-scroll to bottom when sending a new message while scrolled up. (#2471) Thanks @kennyklee. +- Web UI: auto-expand the chat compose textarea while typing (with sensible max height). (#2950) Thanks @shivamraut101. - Gateway: suppress AbortError and transient network errors in unhandled rejections. (#2451) Thanks @Glucksberg. - TTS: keep /tts status replies on text-only commands and avoid duplicate block-stream audio. (#2451) Thanks @Glucksberg. - Security: pin npm overrides to keep tar@7.5.4 for install toolchains. diff --git a/README.md b/README.md index e19a98a66..7e884be33 100644 --- a/README.md +++ b/README.md @@ -479,35 +479,36 @@ Thanks to all clawtributors:

steipete plum-dawg bohdanpodvirnyi iHildy jaydenfyi joaohlisboa mneves75 MatthieuBizien MaudeBot Glucksberg - rahthakor vrknetha radek-paclt Tobias Bischoff joshp123 czekaj mukhtharcm sebslight maxsumrall xadenryan - rodrigouroz juanpablodlc hsrvc magimetal zerone0x meaningfool tyler6204 vignesh07 patelhiren NicholasSpisak + rahthakor vrknetha radek-paclt Tobias Bischoff joshp123 vignesh07 czekaj mukhtharcm sebslight maxsumrall + xadenryan rodrigouroz juanpablodlc hsrvc magimetal zerone0x meaningfool tyler6204 patelhiren NicholasSpisak jonisjongithub abhisekbasu1 jamesgroat claude JustYannicc Hyaxia dantelex SocialNerd42069 daveonkels google-labs-jules[bot] - lc0rp mousberg mteam88 hirefrank joeynyc orlyjamie dbhurley Mariano Belinky Eng. Juan Combetto TSavo - julianengel bradleypriest benithors rohannagpal timolins f-trycua benostein nachx639 pvoo sreekaransrinath - gupsammy cristip73 stefangalescu nachoiacovino Vasanth Rao Naik Sabavat petter-b cpojer scald gumadeiras andranik-sahakyan - davidguttman thewilloftheshadow sleontenko denysvitali shakkernerd sircrumpet peschee rafaelreis-r dominicnunez ratulsarna - lutr0 danielz1z AdeboyeDN Alg0rix emanuelst KristijanJovanovski rdev rhuanssauro joshrad-dev kiranjd - osolmaz adityashaw2 CashWilliams sheeek artuskg Takhoffman onutc pauloportella neooriginal manuelhettich - minghinmatthewlam myfunc travisirby buddyh connorshea kyleok mcinteerj dependabot[bot] John-Rood obviyus - timkrase uos-status gerardward2007 roshanasingh4 tosh-hamburg azade-c JonUleis bjesuiter cheeeee robbyczgw-cla - dlauer Josh Phillips YuriNachos pookNast Whoaa512 chriseidhof ngutman ysqander aj47 superman32432432 - Yurii Chukhlib grp06 antons austinm911 blacksmith-sh[bot] damoahdominic dan-dr HeimdallStrategy imfing jalehman - jarvis-medmatic kkarimi mahmoudashraf93 pkrmf RandyVentures Ryan Lisse dougvk erikpr1994 Ghost jonasjancarik - Keith the Silly Goose L36 Server Marc mitschabaude-bot mkbehr neist sibbl chrisrodz Friederike Seiler gabriel-trigo - iamadig Jonathan D. Rhyne (DJ-D) Joshua Mitchell Kit koala73 manmal ogulcancelik pasogott petradonka rubyrunsstuff - siddhantjain suminhthanh svkozak VACInc wes-davis zats 24601 adam91holt ameno- Chris Taylor - dguido Django Navarro evalexpr henrino3 humanwritten larlyssa odysseus0 oswalpalash pcty-nextgen-service-account rmorse - Syhids Aaron Konyer aaronveklabs andreabadesso Andrii cash-echo-bot Clawd ClawdFx EnzeD erik-agens - Evizero fcatuhe itsjaydesu ivancasco ivanrvpereira jayhickey jeffersonwarrior jeffersonwarrior jverdi longmaba - mickahouan mjrussell odnxe p6l-richard philipp-spiess Pocket Clawd robaxelsen Sash Catanzarite T5-AndyML travisp - VAC william arzt zknicker abhaymundhara alejandro maza Alex-Alaniz alexstyl andrewting19 anpoirier arthyn - Asleep123 bolismauro chenyuan99 Clawdbot Maintainers conhecendoia dasilva333 David-Marsh-Photo Developer Dimitrios Ploutarchos Drake Thomsen - fal3 Felix Krause foeken ganghyun kim grrowl gtsifrikas HazAT hrdwdmrbl hugobarauna Jamie Openshaw - Jane Jarvis Jefferson Nunn kentaro Kevin Lin kitze Kiwitwitter levifig Lloyd loukotal - louzhixian martinpucik Matt mini mertcicekci0 Miles mrdbstn MSch Mustafa Tag Eldeen ndraiman nexty5870 - Noctivoro ppamment prathamdby ptn1411 reeltimeapps RLTCmpe Rolf Fredheim Rony Kelner Samrat Jha senoldogann - Seredeep sergical shiv19 shiyuanhai siraht snopoke Suksham-sharma techboss testingabc321 The Admiral - thesash Ubuntu voidserf Vultr-Clawd Admin Wimmie wolfred wstock yazinsai ymat19 Zach Knickerbocker - 0xJonHoldsCrypto aaronn Alphonse-arianee atalovesyou Azade carlulsoe ddyo Erik hougangdev latitudeki5223 - Manuel Maly Mourad Boustani odrobnik pcty-nextgen-ios-builder Quentin Randy Torres rhjoh ronak-guliani William Stock + lc0rp mousberg adam91holt hougangdev gumadeiras mteam88 hirefrank joeynyc orlyjamie dbhurley + Mariano Belinky Eng. Juan Combetto TSavo julianengel bradleypriest benithors rohannagpal timolins f-trycua benostein + nachx639 shakkernerd pvoo sreekaransrinath gupsammy cristip73 stefangalescu nachoiacovino Vasanth Rao Naik Sabavat petter-b + cpojer scald thewilloftheshadow andranik-sahakyan davidguttman sleontenko denysvitali sircrumpet peschee rafaelreis-r + dominicnunez ratulsarna lutr0 danielz1z AdeboyeDN Alg0rix papago2355 emanuelst KristijanJovanovski rdev + rhuanssauro joshrad-dev kiranjd osolmaz adityashaw2 CashWilliams sheeek artuskg Takhoffman onutc + pauloportella neooriginal manuelhettich minghinmatthewlam myfunc travisirby buddyh connorshea kyleok obviyus + mcinteerj dependabot[bot] John-Rood timkrase uos-status gerardward2007 roshanasingh4 tosh-hamburg azade-c dlauer + JonUleis bjesuiter cheeeee robbyczgw-cla Josh Phillips YuriNachos pookNast Whoaa512 chriseidhof ngutman + ysqander aj47 kennyklee superman32432432 Yurii Chukhlib grp06 antons austinm911 blacksmith-sh[bot] damoahdominic + dan-dr HeimdallStrategy imfing jalehman jarvis-medmatic kkarimi mahmoudashraf93 pkrmf RandyVentures Ryan Lisse + dougvk erikpr1994 fal3 Ghost jonasjancarik Keith the Silly Goose L36 Server Marc mitschabaude-bot mkbehr + neist sibbl chrisrodz Friederike Seiler gabriel-trigo iamadig Jonathan D. Rhyne (DJ-D) Joshua Mitchell Kit koala73 + manmal ogulcancelik pasogott petradonka rubyrunsstuff siddhantjain suminhthanh svkozak VACInc wes-davis + zats 24601 ameno- Chris Taylor dguido Django Navarro evalexpr henrino3 humanwritten larlyssa + odysseus0 oswalpalash pcty-nextgen-service-account rmorse Syhids Aaron Konyer aaronveklabs andreabadesso Andrii cash-echo-bot + Clawd ClawdFx EnzeD erik-agens Evizero fcatuhe itsjaydesu ivancasco ivanrvpereira jayhickey + jeffersonwarrior jeffersonwarrior jverdi longmaba mickahouan mjrussell odnxe p6l-richard philipp-spiess Pocket Clawd + robaxelsen Sash Catanzarite T5-AndyML travisp VAC william arzt zknicker 0oAstro abhaymundhara alejandro maza + Alex-Alaniz alexstyl andrewting19 anpoirier arthyn Asleep123 bolismauro chenyuan99 Clawdbot Maintainers conhecendoia + dasilva333 David-Marsh-Photo Developer Dimitrios Ploutarchos Drake Thomsen Felix Krause foeken ganghyun kim grrowl gtsifrikas + HazAT hrdwdmrbl hugobarauna Jamie Openshaw Jane Jarvis Jefferson Nunn jogi47 kentaro Kevin Lin + kitze Kiwitwitter levifig Lloyd longjos loukotal louzhixian martinpucik Matt mini mertcicekci0 + Miles mrdbstn MSch Mustafa Tag Eldeen ndraiman nexty5870 Noctivoro ppamment prathamdby ptn1411 + reeltimeapps RLTCmpe Rolf Fredheim Rony Kelner Samrat Jha senoldogann Seredeep sergical shiv19 shiyuanhai + siraht snopoke Suksham-sharma techboss testingabc321 The Admiral thesash Ubuntu voidserf Vultr-Clawd Admin + Wimmie wolfred wstock yazinsai YiWang24 ymat19 Zach Knickerbocker 0xJonHoldsCrypto aaronn Alphonse-arianee + atalovesyou Azade carlulsoe ddyo Erik latitudeki5223 Manuel Maly Mourad Boustani odrobnik pcty-nextgen-ios-builder + Quentin Randy Torres rhjoh ronak-guliani William Stock

diff --git a/clawdbot-2026-01-27.log b/clawdbot-2026-01-27.log deleted file mode 100644 index b322c9909..000000000 --- a/clawdbot-2026-01-27.log +++ /dev/null @@ -1,88 +0,0 @@ -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=exec toolCallId=toolu_01ABvFAHSPxy2qorw3kJymm9","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:31.264Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:31.264Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=process toolCallId=toolu_01RWGLqhzLVxvSqrDdwBiPeE","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:35.645Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:35.645Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=process toolCallId=toolu_01RWGLqhzLVxvSqrDdwBiPeE","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:35.647Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:35.647Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=process toolCallId=toolu_01V56BA7uA5Bk5ezPcvUxndH","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:40.171Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:40.173Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=process toolCallId=toolu_01V56BA7uA5Bk5ezPcvUxndH","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:40.177Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:40.178Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=exec toolCallId=toolu_01W78WRUZ3cpbU8JLKw8Wjh2","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:45.819Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:45.820Z"} -{"0":"[tools] exec failed: gh not found\n\nCommand exited with code 1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"clawdbot","date":"2026-01-27T18:14:45.823Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/console.js:187:32","fileName":"console.js","fileNameWithLine":"console.js:187","fileColumn":"32","fileLine":"187","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/console.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/console.js:187","method":"console.error"}},"time":"2026-01-27T18:14:45.823Z"} -{"0":"[tools] exec failed: gh not found\n\nCommand exited with code 1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"clawdbot","date":"2026-01-27T18:14:45.824Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logger.js:47:17","fileName":"logger.js","fileNameWithLine":"logger.js:47","fileColumn":"17","fileLine":"47","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logger.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logger.js:47","method":"logError"}},"time":"2026-01-27T18:14:45.824Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=exec toolCallId=toolu_01W78WRUZ3cpbU8JLKw8Wjh2","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:45.825Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:45.826Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=exec toolCallId=toolu_01NgdcwcKb3EqeQzir6pv4ik","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:14:50.400Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:14:50.401Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a tool=exec toolCallId=toolu_01NgdcwcKb3EqeQzir6pv4ik","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:00.423Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:00.424Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run agent end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.372Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.373Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run prompt end: runId=0f9a9294-1be3-4897-8480-6941fa5c918a sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac durationMs=64221","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.378Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.379Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"session state: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac sessionKey=unknown prev=processing new=idle reason=\"run_completed\" queueDepth=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.379Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.380Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"run cleared: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac totalActive=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.381Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.381Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run done: runId=0f9a9294-1be3-4897-8480-6941fa5c918a sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac durationMs=64258 aborted=false","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.396Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.396Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane task done: lane=main durationMs=64262 active=0 queued=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.399Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.400Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane task done: lane=session:agent:main:main durationMs=64267 active=0 queued=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:06.400Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:06.400Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane enqueue: lane=session:agent:main:main queueSize=1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.507Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.510Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane dequeue: lane=session:agent:main:main waitMs=22 queueSize=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.512Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.515Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane enqueue: lane=main queueSize=1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.516Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.520Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane dequeue: lane=main waitMs=5 queueSize=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.521Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.525Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac provider=anthropic model=claude-sonnet-4-20250514 thinking=low messageChannel=telegram","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.527Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.528Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"session state: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac sessionKey=unknown prev=idle new=processing reason=\"run_started\" queueDepth=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.568Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.568Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"run registered: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac totalActive=1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.568Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.569Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run prompt start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.569Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.569Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run agent start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:31.573Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:31.573Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_013owH6LL6iAptQbMoeMdvmo","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:38.594Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:38.595Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_013owH6LL6iAptQbMoeMdvmo","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:38.605Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:38.605Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01NsnqQqajHbMQ6ct3MZwGMD","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:43.562Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:43.563Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01NsnqQqajHbMQ6ct3MZwGMD","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:43.684Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:43.685Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01S13NTjo4WPXwRn12iZiU1H","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:50.141Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:50.141Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01S13NTjo4WPXwRn12iZiU1H","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:50.166Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:50.167Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_018nDFSMN1Xd2Q6dYAAdH6WJ","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:54.948Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:54.949Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_018nDFSMN1Xd2Q6dYAAdH6WJ","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:15:54.968Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:15:54.969Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_01CuWysDqcCKutJjiQ2psVDy","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:00.189Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:00.190Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_01CuWysDqcCKutJjiQ2psVDy","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:00.196Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:00.197Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01Eh8xXBgAEgePYyKZbC11fz","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:07.488Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:07.489Z"} -{"0":"[tools] exec failed: error validating token: HTTP 401: Bad credentials (https://api.github.com/)\nTry authenticating with: gh auth login\n\nCommand exited with code 1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"clawdbot","date":"2026-01-27T18:16:08.403Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/console.js:187:32","fileName":"console.js","fileNameWithLine":"console.js:187","fileColumn":"32","fileLine":"187","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/console.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/console.js:187","method":"console.error"}},"time":"2026-01-27T18:16:08.404Z"} -{"0":"[tools] exec failed: error validating token: HTTP 401: Bad credentials (https://api.github.com/)\nTry authenticating with: gh auth login\n\nCommand exited with code 1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"clawdbot","date":"2026-01-27T18:16:08.406Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logger.js:47:17","fileName":"logger.js","fileNameWithLine":"logger.js:47","fileColumn":"17","fileLine":"47","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logger.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logger.js:47","method":"logError"}},"time":"2026-01-27T18:16:08.406Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01Eh8xXBgAEgePYyKZbC11fz","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:08.412Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:08.412Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_019KwfrHpsdRzcGv2NtcTDxc","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:14.712Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:14.713Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_019KwfrHpsdRzcGv2NtcTDxc","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:24.739Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:24.740Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_015YVFpAkM9kDy3UQwWnPFpH","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:30.150Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:30.151Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_015YVFpAkM9kDy3UQwWnPFpH","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:30.160Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:30.161Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_01D9MN1HSUBLJgWh5yFKpU1N","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:38.339Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:38.340Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=process toolCallId=toolu_01D9MN1HSUBLJgWh5yFKpU1N","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:38.346Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:38.347Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01DG4DcWXaNTHfa1bzvuHkeg","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:45.743Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:45.744Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 tool=exec toolCallId=toolu_01DG4DcWXaNTHfa1bzvuHkeg","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:45.766Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:45.766Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run agent end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.357Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.357Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run prompt end: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac durationMs=78790","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.359Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.360Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"session state: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac sessionKey=unknown prev=processing new=idle reason=\"run_completed\" queueDepth=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.361Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.361Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"run cleared: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac totalActive=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.363Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.363Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run done: runId=24db8b02-29b7-4aa8-89dc-3c8d4dfe2299 sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac durationMs=78850 aborted=false","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.376Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.376Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane task done: lane=main durationMs=78854 active=0 queued=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.379Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.379Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane task done: lane=session:agent:main:main durationMs=78865 active=0 queued=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:16:50.380Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:16:50.380Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane enqueue: lane=session:agent:main:main queueSize=1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.593Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.596Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane dequeue: lane=session:agent:main:main waitMs=23 queueSize=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.598Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.599Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane enqueue: lane=main queueSize=1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.600Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.601Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"lane dequeue: lane=main waitMs=2 queueSize=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.602Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.604Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac provider=anthropic model=claude-sonnet-4-20250514 thinking=low messageChannel=telegram","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.606Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.607Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"session state: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac sessionKey=unknown prev=idle new=processing reason=\"run_started\" queueDepth=0","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.636Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.637Z"} -{"0":"{\"subsystem\":\"diagnostic\"}","1":"run registered: sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac totalActive=1","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"diagnostic\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.637Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.637Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run prompt start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 sessionId=5aa98bb1-c30c-4999-9d8a-ca3759b570ac","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.638Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.638Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run agent start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:38.641Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:38.642Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01M3auXfxxjuruCayApqWWbb","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:47.740Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:47.741Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01M3auXfxxjuruCayApqWWbb","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:47.785Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:47.786Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01SzWB3psudeXCe6UHAkNujV","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:52.306Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:52.308Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01SzWB3psudeXCe6UHAkNujV","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:52.374Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:52.375Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01KUa6PcWAhC5pguBqZheF4P","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:56.977Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:56.978Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01KUa6PcWAhC5pguBqZheF4P","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:17:57.037Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:17:57.037Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_018m48KASbUrd6TPybszdCSQ","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:02.566Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:02.567Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_018m48KASbUrd6TPybszdCSQ","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:02.625Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:02.627Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=read toolCallId=toolu_01MpiSBbHrxsLN1nR7fxq6gD","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:07.939Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:07.940Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=read toolCallId=toolu_01MpiSBbHrxsLN1nR7fxq6gD","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:07.947Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:07.948Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01D3X6LVt7Te7DxHt2kU2h2Q","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:12.794Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:12.795Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01D3X6LVt7Te7DxHt2kU2h2Q","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:12.814Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:12.815Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=read toolCallId=toolu_01Du1KUqgqETi8LuAQrastxx","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:18.162Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:18.163Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=read toolCallId=toolu_01Du1KUqgqETi8LuAQrastxx","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:18.171Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:18.171Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01JZciDdKu1fvdibZL9FXzDX","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:24.787Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:24.788Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01JZciDdKu1fvdibZL9FXzDX","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:24.808Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:24.808Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01T5WFmSeCnchAwFBVsMNzCu","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:29.196Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:29.196Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_01T5WFmSeCnchAwFBVsMNzCu","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:29.216Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:29.217Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=edit toolCallId=toolu_01VZHWRMtbxWmBvvLRGbzTZL","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:42.682Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:42.683Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=edit toolCallId=toolu_01VZHWRMtbxWmBvvLRGbzTZL","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:42.696Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:42.696Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=edit toolCallId=toolu_01GAK8pbPZpYLkh2CcJWhLYu","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:49.436Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:49.437Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool end: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=edit toolCallId=toolu_01GAK8pbPZpYLkh2CcJWhLYu","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:49.448Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:49.449Z"} -{"0":"{\"subsystem\":\"agent/embedded\"}","1":"embedded run tool start: runId=e82778a1-ad99-4e25-945c-2e7be70c3d96 tool=exec toolCallId=toolu_019F1KimkBzJ1VCnYzmgYDM4","_meta":{"runtime":"node","runtimeVersion":"22.22.0","hostname":"unknown","name":"{\"subsystem\":\"agent/embedded\"}","parentNames":["clawdbot"],"date":"2026-01-27T18:18:53.947Z","logLevelId":2,"logLevelName":"DEBUG","path":{"fullFilePath":"file:///opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161:16","fileName":"subsystem.js","fileNameWithLine":"subsystem.js:161","fileColumn":"16","fileLine":"161","filePath":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js","filePathWithLine":"opt/homebrew/lib/node_modules/clawdbot/dist/logging/subsystem.js:161","method":"logToFile"}},"time":"2026-01-27T18:18:53.948Z"} diff --git a/docs/cli/acp.md b/docs/cli/acp.md index da2de00b3..a7cb0e1d6 100644 --- a/docs/cli/acp.md +++ b/docs/cli/acp.md @@ -42,7 +42,7 @@ moltbot acp client moltbot acp client --server-args --url wss://gateway-host:18789 --token # Override the server command (default: moltbot) -moltbot acp client --server "node" --server-args dist/entry.js acp --url ws://127.0.0.1:19001 +moltbot acp client --server "node" --server-args moltbot.mjs acp --url ws://127.0.0.1:19001 ``` ## How to use this diff --git a/docs/debug/node-issue.md b/docs/debug/node-issue.md index c71b903f3..a549ad51b 100644 --- a/docs/debug/node-issue.md +++ b/docs/debug/node-issue.md @@ -55,9 +55,9 @@ node --import tsx scripts/repro/tsx-name-repro.ts - Use Node + tsc watch, then run compiled output: ```bash pnpm exec tsc --watch --preserveWatchOutput - node --watch dist/entry.js status + node --watch moltbot.mjs status ``` -- Confirmed locally: `pnpm exec tsc -p tsconfig.json` + `node dist/entry.js status` works on Node 25. +- Confirmed locally: `pnpm exec tsc -p tsconfig.json` + `node moltbot.mjs status` works on Node 25. - Disable esbuild keepNames in the TS loader if possible (prevents `__name` helper insertion); tsx does not currently expose this. - Test Node LTS (22/24) with `tsx` to see if the issue is Node 25–specific. diff --git a/docs/install/updating.md b/docs/install/updating.md index 634abfe99..12303cb2a 100644 --- a/docs/install/updating.md +++ b/docs/install/updating.md @@ -125,7 +125,7 @@ moltbot health ``` Notes: -- `pnpm build` matters when you run the packaged `moltbot` binary ([`dist/entry.js`](https://github.com/moltbot/moltbot/blob/main/dist/entry.js)) or use Node to run `dist/`. +- `pnpm build` matters when you run the packaged `moltbot` binary ([`moltbot.mjs`](https://github.com/moltbot/moltbot/blob/main/moltbot.mjs)) or use Node to run `dist/`. - If you run from a repo checkout without a global install, use `pnpm moltbot ...` for CLI commands. - If you run directly from TypeScript (`pnpm moltbot ...`), a rebuild is usually unnecessary, but **config migrations still apply** → run doctor. - Switching between global and git installs is easy: install the other flavor, then run `moltbot doctor` so the gateway service entrypoint is rewritten to the current install. diff --git a/docs/reference/RELEASING.md b/docs/reference/RELEASING.md index 68d1c0223..fb7e0a828 100644 --- a/docs/reference/RELEASING.md +++ b/docs/reference/RELEASING.md @@ -20,7 +20,7 @@ When the operator says “release”, immediately do this preflight (no extra qu - [ ] Bump `package.json` version (e.g., `2026.1.26`). - [ ] Run `pnpm plugins:sync` to align extension package versions + changelogs. - [ ] Update CLI/version strings: [`src/cli/program.ts`](https://github.com/moltbot/moltbot/blob/main/src/cli/program.ts) and the Baileys user agent in [`src/provider-web.ts`](https://github.com/moltbot/moltbot/blob/main/src/provider-web.ts). -- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`dist/entry.js`](https://github.com/moltbot/moltbot/blob/main/dist/entry.js) for `moltbot`. +- [ ] Confirm package metadata (name, description, repository, keywords, license) and `bin` map points to [`moltbot.mjs`](https://github.com/moltbot/moltbot/blob/main/moltbot.mjs) for `moltbot`. - [ ] If dependencies changed, run `pnpm install` so `pnpm-lock.yaml` is current. 2) **Build & artifacts** diff --git a/docs/start/getting-started.md b/docs/start/getting-started.md index 8ba2ea3f3..239b29966 100644 --- a/docs/start/getting-started.md +++ b/docs/start/getting-started.md @@ -180,7 +180,7 @@ If you don’t have a global install yet, run the onboarding step via `pnpm molt Gateway (from this repo): ```bash -node dist/entry.js gateway --port 18789 --verbose +node moltbot.mjs gateway --port 18789 --verbose ``` ## 7) Verify end-to-end diff --git a/moltbot.mjs b/moltbot.mjs new file mode 100755 index 000000000..78992f94a --- /dev/null +++ b/moltbot.mjs @@ -0,0 +1,14 @@ +#!/usr/bin/env node + +import module from "node:module"; + +// https://nodejs.org/api/module.html#module-compile-cache +if (module.enableCompileCache && !process.env.NODE_DISABLE_COMPILE_CACHE) { + try { + module.enableCompileCache(); + } catch { + // Ignore errors + } +} + +await import("./dist/entry.js"); diff --git a/package.json b/package.json index e1f1a8df7..b3d043659 100644 --- a/package.json +++ b/package.json @@ -8,11 +8,11 @@ ".": "./dist/index.js", "./plugin-sdk": "./dist/plugin-sdk/index.js", "./plugin-sdk/*": "./dist/plugin-sdk/*", - "./cli-entry": "./dist/entry.js" + "./cli-entry": "./moltbot.mjs" }, "bin": { - "moltbot": "dist/entry.js", - "clawdbot": "dist/entry.js" + "moltbot": "./moltbot.mjs", + "clawdbot": "./moltbot.mjs" }, "files": [ "dist/acp/**", @@ -56,6 +56,7 @@ "docs/**", "extensions/**", "assets/**", + "moltbot.mjs", "skills/**", "patches/**", "README.md", diff --git a/scripts/e2e/doctor-install-switch-docker.sh b/scripts/e2e/doctor-install-switch-docker.sh index 7c5e96a84..d5be4fa86 100755 --- a/scripts/e2e/doctor-install-switch-docker.sh +++ b/scripts/e2e/doctor-install-switch-docker.sh @@ -81,8 +81,8 @@ LOGINCTL npm install -g --prefix /tmp/npm-prefix "/app/$pkg_tgz" npm_bin="/tmp/npm-prefix/bin/moltbot" - npm_entry="/tmp/npm-prefix/lib/node_modules/moltbot/dist/entry.js" - git_entry="/app/dist/entry.js" + npm_entry="/tmp/npm-prefix/lib/node_modules/moltbot/moltbot.mjs" + git_entry="/app/moltbot.mjs" assert_entrypoint() { local unit_path="$1" diff --git a/scripts/restart-mac.sh b/scripts/restart-mac.sh index 6dc81bb4e..b9bf1ab86 100755 --- a/scripts/restart-mac.sh +++ b/scripts/restart-mac.sh @@ -96,8 +96,8 @@ for arg in "$@"; do log " CLAWDBOT_GATEWAY_WAIT_SECONDS=0 Wait time before gateway port check (unsigned only)" log "" log "Unsigned recovery:" - log " node dist/entry.js daemon install --force --runtime node" - log " node dist/entry.js daemon restart" + log " node moltbot.mjs daemon install --force --runtime node" + log " node moltbot.mjs daemon restart" log "" log "Reset unsigned overrides:" log " rm ~/.clawdbot/disable-launchagent" @@ -217,8 +217,8 @@ fi # When unsigned, ensure the gateway LaunchAgent targets the repo CLI (before the app launches). # This reduces noisy "could not connect" errors during app startup. if [ "$NO_SIGN" -eq 1 ] && [ "$ATTACH_ONLY" -ne 1 ]; then - run_step "install gateway launch agent (unsigned)" bash -lc "cd '${ROOT_DIR}' && node dist/entry.js daemon install --force --runtime node" - run_step "restart gateway daemon (unsigned)" bash -lc "cd '${ROOT_DIR}' && node dist/entry.js daemon restart" + run_step "install gateway launch agent (unsigned)" bash -lc "cd '${ROOT_DIR}' && node moltbot.mjs daemon install --force --runtime node" + run_step "restart gateway daemon (unsigned)" bash -lc "cd '${ROOT_DIR}' && node moltbot.mjs daemon restart" if [[ "${GATEWAY_WAIT_SECONDS}" -gt 0 ]]; then run_step "wait for gateway (unsigned)" sleep "${GATEWAY_WAIT_SECONDS}" fi diff --git a/scripts/run-node.mjs b/scripts/run-node.mjs index 0748a5991..b26f996a6 100644 --- a/scripts/run-node.mjs +++ b/scripts/run-node.mjs @@ -86,7 +86,7 @@ const logRunner = (message) => { }; const runNode = () => { - const nodeProcess = spawn(process.execPath, ["dist/entry.js", ...args], { + const nodeProcess = spawn(process.execPath, ["moltbot.mjs", ...args], { cwd, env, stdio: "inherit", @@ -95,7 +95,6 @@ const runNode = () => { nodeProcess.on("exit", (exitCode, exitSignal) => { if (exitSignal) { process.exit(1); - return; } process.exit(exitCode ?? 1); }); @@ -128,11 +127,9 @@ if (!shouldBuild()) { build.on("exit", (code, signal) => { if (signal) { process.exit(1); - return; } if (code !== 0 && code !== null) { process.exit(code); - return; } writeBuildStamp(); runNode(); diff --git a/scripts/watch-node.mjs b/scripts/watch-node.mjs index 7ed210853..982a8c773 100644 --- a/scripts/watch-node.mjs +++ b/scripts/watch-node.mjs @@ -29,7 +29,7 @@ const compilerProcess = spawn("pnpm", ["exec", compiler, ...watchArgs], { stdio: "inherit", }); -const nodeProcess = spawn(process.execPath, ["--watch", "dist/entry.js", ...args], { +const nodeProcess = spawn(process.execPath, ["--watch", "moltbot.mjs", ...args], { cwd, env, stdio: "inherit", diff --git a/src/agents/pi-embedded-helpers.classifyfailoverreason.test.ts b/src/agents/pi-embedded-helpers.classifyfailoverreason.test.ts index bb449a6e4..749a52414 100644 --- a/src/agents/pi-embedded-helpers.classifyfailoverreason.test.ts +++ b/src/agents/pi-embedded-helpers.classifyfailoverreason.test.ts @@ -31,6 +31,7 @@ describe("classifyFailoverReason", () => { "messages.84.content.1.image.source.base64.data: At least one of the image dimensions exceed max allowed size for many-image requests: 2000 pixels", ), ).toBeNull(); + expect(classifyFailoverReason("image exceeds 5 MB maximum")).toBeNull(); }); it("classifies OpenAI usage limit errors as rate_limit", () => { expect(classifyFailoverReason("You have hit your ChatGPT usage limit (plus plan)")).toBe( diff --git a/src/agents/pi-embedded-helpers.image-size-error.test.ts b/src/agents/pi-embedded-helpers.image-size-error.test.ts new file mode 100644 index 000000000..75b165d8d --- /dev/null +++ b/src/agents/pi-embedded-helpers.image-size-error.test.ts @@ -0,0 +1,14 @@ +import { describe, expect, it } from "vitest"; + +import { parseImageSizeError } from "./pi-embedded-helpers.js"; + +describe("parseImageSizeError", () => { + it("parses max MB values from error text", () => { + expect(parseImageSizeError("image exceeds 5 MB maximum")?.maxMb).toBe(5); + expect(parseImageSizeError("Image exceeds 5.5 MB limit")?.maxMb).toBe(5.5); + }); + + it("returns null for unrelated errors", () => { + expect(parseImageSizeError("context overflow")).toBeNull(); + }); +}); diff --git a/src/agents/pi-embedded-helpers.ts b/src/agents/pi-embedded-helpers.ts index 6f6bb474f..88443756f 100644 --- a/src/agents/pi-embedded-helpers.ts +++ b/src/agents/pi-embedded-helpers.ts @@ -23,12 +23,14 @@ export { isFailoverAssistantError, isFailoverErrorMessage, isImageDimensionErrorMessage, + isImageSizeError, isOverloadedErrorMessage, isRawApiErrorPayload, isRateLimitAssistantError, isRateLimitErrorMessage, isTimeoutErrorMessage, parseImageDimensionError, + parseImageSizeError, } from "./pi-embedded-helpers/errors.js"; export { isGoogleModelApi, sanitizeGoogleTurnOrdering } from "./pi-embedded-helpers/google.js"; diff --git a/src/agents/pi-embedded-helpers/errors.ts b/src/agents/pi-embedded-helpers/errors.ts index 3403de38f..4756ce607 100644 --- a/src/agents/pi-embedded-helpers/errors.ts +++ b/src/agents/pi-embedded-helpers/errors.ts @@ -418,6 +418,7 @@ const ERROR_PATTERNS = { const IMAGE_DIMENSION_ERROR_RE = /image dimensions exceed max allowed size for many-image requests:\s*(\d+)\s*pixels/i; const IMAGE_DIMENSION_PATH_RE = /messages\.(\d+)\.content\.(\d+)\.image/i; +const IMAGE_SIZE_ERROR_RE = /image exceeds\s*(\d+(?:\.\d+)?)\s*mb/i; function matchesErrorPatterns(raw: string, patterns: readonly ErrorPattern[]): boolean { if (!raw) return false; @@ -484,6 +485,25 @@ export function isImageDimensionErrorMessage(raw: string): boolean { return Boolean(parseImageDimensionError(raw)); } +export function parseImageSizeError(raw: string): { + maxMb?: number; + raw: string; +} | null { + if (!raw) return null; + const lower = raw.toLowerCase(); + if (!lower.includes("image exceeds") || !lower.includes("mb")) return null; + const match = raw.match(IMAGE_SIZE_ERROR_RE); + return { + maxMb: match?.[1] ? Number.parseFloat(match[1]) : undefined, + raw, + }; +} + +export function isImageSizeError(errorMessage?: string): boolean { + if (!errorMessage) return false; + return Boolean(parseImageSizeError(errorMessage)); +} + export function isCloudCodeAssistFormatError(raw: string): boolean { return !isImageDimensionErrorMessage(raw) && matchesErrorPatterns(raw, ERROR_PATTERNS.format); } @@ -495,6 +515,7 @@ export function isAuthAssistantError(msg: AssistantMessage | undefined): boolean export function classifyFailoverReason(raw: string): FailoverReason | null { if (isImageDimensionErrorMessage(raw)) return null; + if (isImageSizeError(raw)) return null; if (isRateLimitErrorMessage(raw)) return "rate_limit"; if (isOverloadedErrorMessage(raw)) return "rate_limit"; if (isCloudCodeAssistFormatError(raw)) return "format"; diff --git a/src/agents/pi-embedded-runner/model.test.ts b/src/agents/pi-embedded-runner/model.test.ts index b59735623..cdcb5fe8e 100644 --- a/src/agents/pi-embedded-runner/model.test.ts +++ b/src/agents/pi-embedded-runner/model.test.ts @@ -1,6 +1,12 @@ -import { describe, expect, it } from "vitest"; +import { describe, expect, it, vi } from "vitest"; -import { buildInlineProviderModels } from "./model.js"; +vi.mock("@mariozechner/pi-coding-agent", () => ({ + discoverAuthStorage: vi.fn(() => ({ mocked: true })), + discoverModels: vi.fn(() => ({ find: vi.fn(() => null) })), +})); + +import type { MoltbotConfig } from "../../config/config.js"; +import { buildInlineProviderModels, resolveModel } from "./model.js"; const makeModel = (id: string) => ({ id, @@ -15,15 +21,110 @@ const makeModel = (id: string) => ({ describe("buildInlineProviderModels", () => { it("attaches provider ids to inline models", () => { const providers = { - " alpha ": { models: [makeModel("alpha-model")] }, - beta: { models: [makeModel("beta-model")] }, + " alpha ": { baseUrl: "http://alpha.local", models: [makeModel("alpha-model")] }, + beta: { baseUrl: "http://beta.local", models: [makeModel("beta-model")] }, }; const result = buildInlineProviderModels(providers); expect(result).toEqual([ - { ...makeModel("alpha-model"), provider: "alpha" }, - { ...makeModel("beta-model"), provider: "beta" }, + { + ...makeModel("alpha-model"), + provider: "alpha", + baseUrl: "http://alpha.local", + api: undefined, + }, + { + ...makeModel("beta-model"), + provider: "beta", + baseUrl: "http://beta.local", + api: undefined, + }, ]); }); + + it("inherits baseUrl from provider when model does not specify it", () => { + const providers = { + custom: { + baseUrl: "http://localhost:8000", + models: [makeModel("custom-model")], + }, + }; + + const result = buildInlineProviderModels(providers); + + expect(result).toHaveLength(1); + expect(result[0].baseUrl).toBe("http://localhost:8000"); + }); + + it("inherits api from provider when model does not specify it", () => { + const providers = { + custom: { + baseUrl: "http://localhost:8000", + api: "anthropic-messages", + models: [makeModel("custom-model")], + }, + }; + + const result = buildInlineProviderModels(providers); + + expect(result).toHaveLength(1); + expect(result[0].api).toBe("anthropic-messages"); + }); + + it("model-level api takes precedence over provider-level api", () => { + const providers = { + custom: { + baseUrl: "http://localhost:8000", + api: "openai-responses", + models: [{ ...makeModel("custom-model"), api: "anthropic-messages" as const }], + }, + }; + + const result = buildInlineProviderModels(providers); + + expect(result).toHaveLength(1); + expect(result[0].api).toBe("anthropic-messages"); + }); + + it("inherits both baseUrl and api from provider config", () => { + const providers = { + custom: { + baseUrl: "http://localhost:10000", + api: "anthropic-messages", + models: [makeModel("claude-opus-4.5")], + }, + }; + + const result = buildInlineProviderModels(providers); + + expect(result).toHaveLength(1); + expect(result[0]).toMatchObject({ + provider: "custom", + baseUrl: "http://localhost:10000", + api: "anthropic-messages", + name: "claude-opus-4.5", + }); + }); +}); + +describe("resolveModel", () => { + it("includes provider baseUrl in fallback model", () => { + const cfg = { + models: { + providers: { + custom: { + baseUrl: "http://localhost:9000", + models: [], + }, + }, + }, + } as MoltbotConfig; + + const result = resolveModel("custom", "missing-model", "/tmp/agent", cfg); + + expect(result.model?.baseUrl).toBe("http://localhost:9000"); + expect(result.model?.provider).toBe("custom"); + expect(result.model?.id).toBe("missing-model"); + }); }); diff --git a/src/agents/pi-embedded-runner/model.ts b/src/agents/pi-embedded-runner/model.ts index 1d7201ea9..1792e6706 100644 --- a/src/agents/pi-embedded-runner/model.ts +++ b/src/agents/pi-embedded-runner/model.ts @@ -8,15 +8,25 @@ import { DEFAULT_CONTEXT_TOKENS } from "../defaults.js"; import { normalizeModelCompat } from "../model-compat.js"; import { normalizeProviderId } from "../model-selection.js"; -type InlineModelEntry = ModelDefinitionConfig & { provider: string }; +type InlineModelEntry = ModelDefinitionConfig & { provider: string; baseUrl?: string }; +type InlineProviderConfig = { + baseUrl?: string; + api?: ModelDefinitionConfig["api"]; + models?: ModelDefinitionConfig[]; +}; export function buildInlineProviderModels( - providers: Record, + providers: Record, ): InlineModelEntry[] { return Object.entries(providers).flatMap(([providerId, entry]) => { const trimmed = providerId.trim(); if (!trimmed) return []; - return (entry?.models ?? []).map((model) => ({ ...model, provider: trimmed })); + return (entry?.models ?? []).map((model) => ({ + ...model, + provider: trimmed, + baseUrl: entry?.baseUrl, + api: model.api ?? entry?.api, + })); }); } @@ -72,6 +82,7 @@ export function resolveModel( name: modelId, api: providerCfg?.api ?? "openai-responses", provider, + baseUrl: providerCfg?.baseUrl, reasoning: false, input: ["text"], cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 }, diff --git a/src/agents/pi-embedded-runner/run.ts b/src/agents/pi-embedded-runner/run.ts index 69eb1514a..870453f38 100644 --- a/src/agents/pi-embedded-runner/run.ts +++ b/src/agents/pi-embedded-runner/run.ts @@ -34,6 +34,7 @@ import { isContextOverflowError, isFailoverAssistantError, isFailoverErrorMessage, + parseImageSizeError, parseImageDimensionError, isRateLimitAssistantError, isTimeoutErrorMessage, @@ -440,6 +441,34 @@ export async function runEmbeddedPiAgent( }, }; } + // Handle image size errors with a user-friendly message (no retry needed) + const imageSizeError = parseImageSizeError(errorText); + if (imageSizeError) { + const maxMb = imageSizeError.maxMb; + const maxMbLabel = + typeof maxMb === "number" && Number.isFinite(maxMb) ? `${maxMb}` : null; + const maxBytesHint = maxMbLabel ? ` (max ${maxMbLabel}MB)` : ""; + return { + payloads: [ + { + text: + `Image too large for the model${maxBytesHint}. ` + + "Please compress or resize the image and try again.", + isError: true, + }, + ], + meta: { + durationMs: Date.now() - started, + agentMeta: { + sessionId: sessionIdUsed, + provider, + model: model.id, + }, + systemPromptReport: attempt.systemPromptReport, + error: { kind: "image_size", message: errorText }, + }, + }; + } const promptFailoverReason = classifyFailoverReason(errorText); if (promptFailoverReason && promptFailoverReason !== "timeout" && lastProfileId) { await markAuthProfileFailure({ diff --git a/src/agents/pi-embedded-runner/types.ts b/src/agents/pi-embedded-runner/types.ts index 4be395bce..27ccfa64e 100644 --- a/src/agents/pi-embedded-runner/types.ts +++ b/src/agents/pi-embedded-runner/types.ts @@ -20,7 +20,7 @@ export type EmbeddedPiRunMeta = { aborted?: boolean; systemPromptReport?: SessionSystemPromptReport; error?: { - kind: "context_overflow" | "compaction_failure" | "role_ordering"; + kind: "context_overflow" | "compaction_failure" | "role_ordering" | "image_size"; message: string; }; /** Stop reason for the agent run (e.g., "completed", "tool_calls"). */ diff --git a/src/canvas-host/a2ui/.bundle.hash b/src/canvas-host/a2ui/.bundle.hash deleted file mode 100644 index 98d7e8ccf..000000000 --- a/src/canvas-host/a2ui/.bundle.hash +++ /dev/null @@ -1 +0,0 @@ -178acae008ecf5b85a4043c22b651c715278eb921b6b138f61234cd1d4853515 diff --git a/src/infra/gateway-lock.ts b/src/infra/gateway-lock.ts index a3c4d1290..aa65e7d81 100644 --- a/src/infra/gateway-lock.ts +++ b/src/infra/gateway-lock.ts @@ -72,6 +72,7 @@ function isGatewayArgv(args: string[]): boolean { "dist/index.js", "dist/index.mjs", "dist/entry.js", + "moltbot.mjs", "dist/entry.mjs", "scripts/run-node.mjs", "src/index.ts", diff --git a/ui/src/styles/chat/layout.css b/ui/src/styles/chat/layout.css index e11fedb71..589b0b62d 100644 --- a/ui/src/styles/chat/layout.css +++ b/ui/src/styles/chat/layout.css @@ -250,7 +250,8 @@ max-height: 150px; padding: 9px 12px; border-radius: 8px; - resize: vertical; + overflow-y: auto; + resize: none; white-space: pre-wrap; font-family: var(--font-body); font-size: 14px; diff --git a/ui/src/ui/views/chat.ts b/ui/src/ui/views/chat.ts index a9b4da572..f5fb6e80b 100644 --- a/ui/src/ui/views/chat.ts +++ b/ui/src/ui/views/chat.ts @@ -1,4 +1,5 @@ import { html, nothing } from "lit"; +import { ref } from "lit/directives/ref.js"; import { repeat } from "lit/directives/repeat.js"; import type { SessionsListResult } from "../types"; import type { ChatAttachment, ChatQueueItem } from "../ui-types"; @@ -71,6 +72,11 @@ export type ChatProps = { const COMPACTION_TOAST_DURATION_MS = 5000; +function adjustTextareaHeight(el: HTMLTextAreaElement) { + el.style.height = "auto"; + el.style.height = `${el.scrollHeight}px`; +} + function renderCompactionIndicator(status: CompactionIndicatorStatus | null | undefined) { if (!status) return nothing; @@ -327,6 +333,7 @@ export function renderChat(props: ChatProps) {