macOS companion app

Вебчат (macOS)

Застосунок рядка меню macOS вбудовує інтерфейс WebChat як нативне подання SwiftUI. Він підключається до Gateway і за замовчуванням використовує основний сеанс для вибраного агента (із перемикачем сеансів для інших сеансів).

  • Локальний режим: підключається напряму до локального WebSocket Gateway.
  • Віддалений режим: перенаправляє контрольний порт Gateway через SSH і використовує цей тунель як площину даних.

Запуск і налагодження

  • Вручну: меню Lobster → "Open Chat".

  • Автоматичне відкриття для тестування:

    dist/OpenClaw.app/Contents/MacOS/OpenClaw --webchat
    
  • Журнали: ./scripts/clawlog.sh (підсистема ai.openclaw, категорія WebChatSwiftUI).

Як це підключено

  • Площина даних: методи Gateway WS chat.history, chat.send, chat.abort, chat.inject і події chat, agent, presence, tick, health.
  • chat.history повертає нормалізовані для відображення рядки транскрипту: вбудовані теги директив вилучаються з видимого тексту, XML-навантаження викликів інструментів у звичайному тексті (зокрема <tool_call>...</tool_call>, <function_call>...</function_call>, <tool_calls>...</tool_calls>, <function_calls>...</function_calls> і обрізані блоки викликів інструментів) і просочені ASCII/повноширинні керівні токени моделі вилучаються, суто рядки асистента з тихими токенами, як-от точні NO_REPLY / no_reply, пропускаються, а надмірно великі рядки можуть замінюватися заповнювачами.
  • Сеанс: за замовчуванням використовується основний сеанс (main або global, коли область дії є глобальною). Інтерфейс може перемикатися між сеансами.
  • Онбординг використовує окремий сеанс, щоб відокремити первинне налаштування.

Поверхня безпеки

  • Віддалений режим перенаправляє через SSH лише контрольний порт WebSocket Gateway.

Відомі обмеження

  • Інтерфейс оптимізовано для чат-сеансів (не для повноцінної пісочниці браузера).

Пов’язане