# Анонс віджетів робочого простору (/docs/uk/posts/announcing-workspace-widgets)



# Анонс віджетів робочого простору [#анонс-віджетів-робочого-простору]

Сьогодні ми випускаємо **віджети робочого простору**: спосіб розмістити живі інтерактивні застосунки прямо на полотні робочого простору Robutler, поруч з вашими агентами й чатами.

<!-- more -->

## Що змінилося [#що-змінилося]

До сьогодні робочий простір був чудовим місцем, щоб говорити з агентами й закріплювати контент на потім. З віджетами він стає справжнім робочим столом, який ви складаєте з невеликих деталей:

* **Ядро Python**, яке працює у вашій вкладці, numpy і matplotlib уже встановлені. Побудуйте графік, і він з'явиться сусіднім віджетом на полотні, а не загубиться в панелі термінала.
* **Локальна командна оболонка**, підключена до демона на вашій власній машині.
* **Віджет SSH** для робочих серверів, до яких ви постійно повертаєтеся. Те саме керування ключами й хостами, як у старому терміналі, просто чистіше.
* **Вбудований браузер** для панелей, у яких ви живете.
* Редактор **CodeMirror** для швидких правок тексту й коду.
* **Наліпки**, **фігури** та **з'єднувачі**, щоб малювати плани на полотні (як у Figjam, але прямо поруч з вашим агентом).
* І кілька аркадних ігор (Snake, Tetris, Space Invaders), бо робочі простори мають бути веселими.

Запустіть будь-який з кнопки `+` → **Widget** → шукайте в каталозі.

## Що нового для тих, хто створює агентів [#що-нового-для-тих-хто-створює-агентів]

Віджети не лише для людей. Агенти можуть:

* **Створювати віджети на полотні** через набір інструментів `present.*`. `present.image`, `present.code`, `present.url`, `present.chart`, `present.note` і універсальний помічник `present.widget` дають агентам змогу публікувати візуальні матеріали поруч із розмовою.
* **Керувати ядрами Python** через `workspace_widgets_invoke(id, 'eval' | 'run', ...)`. Підпишіться на події `stdout` / `stderr` / `display`, і зображення matplotlib будуть надходити прямо на полотно в реальному часі.
* **Виконувати команди оболонки** у віджетах демона й SSH через той самий інструмент `workspace_widgets_invoke(id, 'run', ...)`. Кожна команда записує сповіщення `widget.agent_command` для аудиту, тож ви бачите точно, що було виконано.

Фабрика агентів знає про нову поверхню: вона може створювати віджети з кількох підказок у запиті, підключати `host.kv` для стану й видавати проєкції DSL для нативних застосунків Robutler на iOS та Android.

## Довіра за замовчуванням, ризик лише за згодою [#довіра-за-замовчуванням-ризик-лише-за-згодою]

Дозволяти агенту виконувати команди оболонки небезпечно, якщо перемикач завжди УВІМКНЕНО. Тому ми випускаємо протилежне значення за замовчуванням: кожен віджет демона й SSH починає з **Allow agents to run commands** у стані ВИМКНЕНО. Увімкніть його для окремого віджета, коли будете готові, і вимкніть, коли закінчите.

Для ядер Python за замовчуванням увімкнено, бо вони ізольовані у вашій вкладці: навіть агент, що поводиться зовсім дико, не вибереться з Pyodide. Перемикач усе одно є, якщо ви хочете закрити ядро для спільної сесії.

Кожна прийнята І відхилена команда агента записує рядок аудиту. Відкрийте потік сповіщень і знайдіть `widget.agent_command`, щоб побачити свою історію за тиждень.

## Віджети для різних платформ [#віджети-для-різних-платформ]

Віджети можуть за бажанням містити **проєкцію**: крихітне декларативне дерево, скомпільоване з функції JS. Проєкції забезпечують три речі:

. Легкий попередній вигляд, який показується на полотні без завантаження повного iframe (величезний виграш у швидкодії, коли закріплено десятки віджетів).
. Нативне відображення віджета у застосунках Robutler для iOS та Android, які виходять пізніше цього року. Застосунок періодично опитує проєкцію й показує її як справжню плитку віджета для iOS чи Android.
. Проєкцію для доку: закріпіть віджет у доку, і проєкція візьме на себе показ, тож ви бачите стан одним поглядом, не тримаючи повний iframe у пам'яті.

Якщо ви пишете віджет сьогодні, повертати проєкцію необов'язково, але бажано. Синтаксис DSL дивіться в [посібнику з SDK хоста](/guides/widgets/host-sdk/).

## Спробуйте [#спробуйте]

Відкрийте свій [робочий простір](/workspace), натисніть кнопку `+` і виберіть **Widget**. Або просто попросіть свого агента: «Покажи мені графік акцій NVDA» і дивіться, як завантажується ядро Python, з'являється зображення matplotlib, а агент підписує його поруч.

Не можемо дочекатися, щоб побачити, що ви створите.

Команда Robutler
