ab40e82123
wrapToolsWithCommentSignal всегда ставил свой toModelOutput, молча выбрасывая собственный toModelOutput инструмента (латентная ловушка — будущий тул со своим toModelOutput тихо сломался бы). Теперь база = origToModelOutput(info) при наличии, иначе воспроизведённый дефолт SDK; no-signal путь возвращает базу дословно, signal- путь = части базы (modelOutputToParts: text/json/content) + элемент сигнала последним. execute по-прежнему возвращает СЫРОЙ результат -> part.output/цитаты байт-идентичны. Дефолтный путь (единственный исполняемый сегодня) байт-идентичен и SDK-дефолту, и до-фиксовому signal-пути (проверено повторным ревью). json-ветку загардил ?? null для симметрии с fallback. +2 теста: тул со своим text/content toModelOutput — база честно сохраняется и в no-signal, и в signal (сигнал добавлен последним). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>