@ykurilov/agent-chat-skin-oduvanchik 0.76.0 → 0.78.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -6,6 +6,29 @@
6
6
  - Обновление приложения: обновить пакеты SDK одной версией после выпуска, пересобрать и убрать временные подмены значков. API и CSS-импорты прежние, миграций нет.
7
7
 
8
8
 
9
+ ## 0.78.0
10
+
11
+ ### Minor Changes
12
+
13
+ - 8edae2e: Добавлен официальный скин редактора сценариев Одуванчик: `/flows` с `oduvanchikFlowEditorSkin` и отдельный `/flows/styles.css`. Полный договор FlowEditorSkin v1, включая общие переходы, дни, условия, проверку, JSON, перенос версий и рамку тестового чата. Элементы управления из опубликованного ds-react, значки Phosphor. Явный Тандем сохраняется.
14
+
15
+ ### Как обновить приложение
16
+
17
+ Обновите используемые пакеты SDK одной версией. В клиентском модуле редактора замените импорт `tandemFlowEditorSkin` из `@ykurilov/agent-chat-skin-tandem/flows` на `oduvanchikFlowEditorSkin` из `@ykurilov/agent-chat-skin-oduvanchik/flows` и значение `skin`. `FlowEditor`/`FlowTestChat` остаются из `@ykurilov/agent-chat-flows/react`, метки и все свойства прежние. Для чата внутри `testChat.renderChat` используйте `AgentChat` из `/chat` скина Одуванчика. Подключите `/flows/styles.css` после базового `/styles.css` скина, в том числе на странице только с редактором; сохраните Tailwind `@source` на dist скина. Приложению с редактором нужен пакет flows (optional peer); обычному `/chat` он не нужен. Проверьте общие переходы, сохранение, readOnly, тестовый чат и обе темы. JSON, runtime, судья и подтверждения не меняются; миграций данных нет.
18
+
19
+ ### Patch Changes
20
+
21
+ - @ykurilov/agent-chat-flows@0.78.0
22
+ - @ykurilov/agent-chat-react@0.78.0
23
+ - @ykurilov/agent-chat-sandbox@0.78.0
24
+
25
+ ## 0.77.0
26
+
27
+ ### Patch Changes
28
+
29
+ - @ykurilov/agent-chat-sandbox@0.77.0
30
+ - @ykurilov/agent-chat-react@0.77.0
31
+
9
32
  ## 0.76.0
10
33
 
11
34
  ### Patch Changes
package/README.md CHANGED
@@ -50,6 +50,45 @@ import { tandemSkin } from "@ykurilov/agent-chat-skin-tandem";
50
50
 
51
51
  Для нового чата экспортируется `OduvanchikWelcome` с большой сферой: приложение передаёт `title`, `description`, `suggestions: [{ label, category? }]` и `onPick`. Это дополнительная композиция, SDK не вставляет её автоматически в пустую ленту. Сфера отдельно - `OduvanchikSphere`.
52
52
 
53
+ ## Редактор сценария
54
+
55
+ С 0.78.0 вход `@ykurilov/agent-chat-skin-oduvanchik/flows` экспортирует `oduvanchikFlowEditorSkin` и тип `OduvanchikFlowEditorSkin`. Это полный договор `FlowEditorSkin` v1, включая все дополнительные части. Подключите `@ykurilov/agent-chat-flows` той же версии SDK: это optional peer, который не требуется обычному `/chat` или корневому скину.
56
+
57
+ ```tsx
58
+ "use client";
59
+ import { FlowTestChat, FlowLabelsProvider, russianFlowLabels } from "@ykurilov/agent-chat-flows/react";
60
+ import type { FlowTestChatProps } from "@ykurilov/agent-chat-flows/react";
61
+ import { oduvanchikFlowEditorSkin } from "@ykurilov/agent-chat-skin-oduvanchik/flows";
62
+ import { AgentChat } from "@ykurilov/agent-chat-skin-oduvanchik/chat";
63
+
64
+ export function ScenarioEditor(props: Omit<FlowTestChatProps, "skin">) {
65
+ return <FlowLabelsProvider labels={russianFlowLabels}>
66
+ <FlowTestChat {...props} skin={oduvanchikFlowEditorSkin}
67
+ header="compact" inspector="collapsible" minimap="collapsed" fullscreen
68
+ testChat={{ ...props.testChat,
69
+ renderChat: (chatId, { noticeLines }) =>
70
+ <AgentChat api="/api/chat" chatId={chatId} noticeLines={noticeLines} />,
71
+ }} />
72
+ </FlowLabelsProvider>;
73
+ }
74
+ ```
75
+
76
+ Приложение передаёт прежние `value`, `savedValue`, `onChange`, `onSave`, `catalog`, `checks`, `testChat` и `advanceSteps`; высота задаётся контейнером. `readOnly={locked}` оставляет просмотр и тестовый чат, блокируя правки. `FlowEditor` без тестового чата принимает тот же скин. В Next App Router импортируйте UI из клиентского модуля с `"use client"`; не передавайте объект скина из Server Component. Node SSR и разрешение типов этого входа проверяются отдельно от Next SSR; одна успешная сборка Next не доказывает рендер всех вкладок.
77
+
78
+ CSS страницы с редактором **и** чатом (Tailwind CSS 4):
79
+
80
+ ```css
81
+ @import "tailwindcss";
82
+ @import "@ykurilov/agent-chat-skin-oduvanchik/styles.css";
83
+ @import "@ykurilov/agent-chat-skin-oduvanchik/flows/styles.css";
84
+ @source "../node_modules/@ykurilov/agent-chat-skin-oduvanchik/dist";
85
+ @source "../node_modules/@tandem/ui/dist";
86
+ ```
87
+
88
+ Базовый `/styles.css` подключает DS один раз, `/flows/styles.css` добавляет оформление редактора. Этот же порядок используется на странице только с редактором. Не добавляйте отдельно токены, DS CSS или палитру Тандема. Компоненты редактора используют DS напрямую, без примитивов Тандема. Его оформление ограничено `.oduvanchik-flow`, не переписывает `--surface`, `--action` и другие переменные Тандема. Явный Тандем сохраняет прежние скин и CSS.
89
+
90
+ При переходе с Тандема меняются импорт и значение `skin`; формат JSON, runtime, guard подтверждений, адреса сервера и сохранённые настройки доски прежние. Общие переходы редактируются в отдельном разделе, без глобального узла на холсте. Пример с настоящим тестовым чатом и моделью-заглушкой: `apps/demo/skin-gallery/oduvanchik-flows.tsx`.
91
+
53
92
  ## Что оформлено
54
93
 
55
94
  Лента и ответ без пузыря; сообщение человека на серой поверхности; действия под ответом; карточка шагов v28 со значками, раскрытием и неизвестным видом шага; раздумья с заголовком; карточка подтверждения с полосой акцента; поле ввода с чёрной отправкой, остановкой, файлами, вставкой/перетаскиванием и выбором модели. Поле сохраняет черновик при появлении меню, вложений и голоса. Enter отправляет, Shift+Enter переносит строку; Enter при IME-композиции не отправляет.
@@ -58,7 +97,7 @@ import { tandemSkin } from "@ykurilov/agent-chat-skin-tandem";
58
97
 
59
98
  ## Что пока осталось базовым
60
99
 
61
- Сложные виджеты, просмотр медиа, редакторы памяти и диалоговый голосовой режим используют нейтральные примитивы `@tandem/ui` с переменными «Одуванчика». Это не полная замена примитивов на `ds-react`. Песочница экспортируется из `/sandbox`. Отдельные расширения `flows`, `messengers`, `skills`, `mcp`, `client-card` здесь не экспортируются; для их административных экранов пока остаётся скин Тандема.
100
+ Сложные виджеты, просмотр медиа, редакторы памяти и диалоговый голосовой режим используют нейтральные примитивы `@tandem/ui` с переменными «Одуванчика». Это не полная замена примитивов на `ds-react`. Песочница экспортируется из `/sandbox`. Отдельные расширения `messengers`, `skills`, `mcp`, `client-card` здесь не экспортируются; для их административных экранов пока остаётся скин Тандема.
62
101
 
63
102
  Все значки внутри официального скина, включая копирование кода, уведомления, выбранный голос, стрелки меню и закрытие диалогов, - Phosphor regular. Внутренние `primitives` адаптированы из `@ykurilov/tandem-ui@0.7.0` (MIT, [лицензия](TANDEM_NOTICES.md)): Markdown сохраняет `react-markdown`/`remark-gfm`, меню и диалоги - Radix, клавиатуру, фокус и порталы. Свойств подмены значков в исходных компонентах нет. Адаптеры поддерживаются здесь; сторонний пакет Тандема не изменяется. Транзитивная зависимость `lucide-react` остаётся у `@tandem/ui`, но компоненты Одуванчика её значки не рисуют. Приложение не импортирует эти внутренние компоненты и не подменяет значки CSS-правилами.
64
103
 
@@ -69,7 +108,7 @@ import { tandemSkin } from "@ykurilov/agent-chat-skin-tandem";
69
108
 
70
109
  После выпуска обновить `@ykurilov/agent-chat-*` одной версией и пересобрать приложение с прежними `oduvanchikSkin` и CSS. Дополнительных зависимостей и настроек от приложения не требуется: Markdown и Radix устанавливаются зависимостями скина. Удалить временные переопределения значков в приложении, если они были добавлены. Договор скина и данные не меняются. Проверочная витрина `/oduvanchik-icons.html` показывает реальные компоненты скина с Markdown, уведомлениями, голосовым меню и подтверждением удаления памяти.
71
110
 
72
- Сфера и переменные подключены из опубликованных `@ykurilov/ds-react@^0.2.0` и `@ykurilov/ds-tokens@^0.2.0`. Эти пакеты, Phosphor и CSS входят в зависимости скина; приложение предоставляет React и React DOM 19. Локальных копий сферы/токенов нет.
111
+ Сфера и переменные подключены из опубликованных `@ykurilov/ds-react@^0.3.0` и `@ykurilov/ds-tokens@^0.2.0`. Эти пакеты, Phosphor и CSS входят в зависимости скина; приложение предоставляет React и React DOM 19. Локальных копий сферы/токенов нет.
73
112
 
74
113
  ## Три вида поля
75
114