064c34b25a
- console.log/warn/error/info/debug are now a real Rune interpreter builtin: a seeded global that formats its args (strings verbatim, objects/arrays as JSON, space-joined) and appends a line to a per-run LogCollector. It is not a tool call (spends no tool-call budget), returns undefined, and any other member throws. Formatting is charged to maxOperations and total captured output is bounded by maxAuditBytes so a logging loop can't exhaust memory. - The collector is shared by reference with parallel interpreter forks (like the operation budget) and lives in execute()'s outer scope, so logs are surfaced on every ExecuteResult path — success, thrown error, and timeout. - ExecuteResult (and its schema) gain a logs field; code mode appends captured logs to the model-facing output as a trailing '[level] message' section on both the success and error paths (withLogs). Logs go to the model only. - Documents console in rune.md; drops the now-satisfied 'not done yet' entry.