@ykurilov/agent-chat-react 0.64.0 → 0.65.1

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/dist/index.js CHANGED
@@ -27,7 +27,7 @@ import {
27
27
  voiceAnswerIds,
28
28
  voiceErrorText,
29
29
  withoutResetSteps
30
- } from "./chunk-OAQ7TGUB.js";
30
+ } from "./chunk-JLGBVDAR.js";
31
31
 
32
32
  // src/chat-list/chat-workspace.tsx
33
33
  import { useCallback, useEffect, useRef, useState } from "react";
package/dist/panel.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  useChatList,
7
7
  useChatListView,
8
8
  useWorkspaceListSync
9
- } from "./chunk-OAQ7TGUB.js";
9
+ } from "./chunk-JLGBVDAR.js";
10
10
 
11
11
  // src/agent-panel/agent-panel-provider.tsx
12
12
  import { useCallback as useCallback2, useMemo, useRef, useState, useSyncExternalStore as useSyncExternalStore2 } from "react";
@@ -3,6 +3,12 @@ import type { ComponentType } from "react";
3
3
  import type { AppEventViews } from "./app-events.js";
4
4
  import type { AgentVideoView, CustomWidgetProps, DiagramColors, GeneratedImagesView } from "./skin-contract.js";
5
5
  import type { StepPhrases, WorkView } from "./work-view/step-phrases.js";
6
+ import type { AppNotice } from "./notices/agent-notices.js";
7
+ /**
8
+ * Строки служебных пометок приложения (`kind: "app"`): имя пометки → текст серой строки перед ответом агента
9
+ * («Агент написал первым — человек молчал 1 ч 7 мин»). `null` или `undefined` — эту пометку не показывать.
10
+ */
11
+ export type NoticeLines = Record<string, (notice: AppNotice) => string | null | undefined>;
6
12
  /** Рисовальщик схем (пакет `@ykurilov/agent-chat-diagrams`, `diagramsClient`): тот же договор, что в пакете схем. */
7
13
  export interface DiagramsClient {
8
14
  render(source: string, colors: DiagramColors): Promise<{
@@ -77,4 +83,10 @@ export interface AgentChatExtensions {
77
83
  * Нет фразы — `title` инструмента, иначе общая из `labels.workView`. Таблицу держите постоянной.
78
84
  */
79
85
  stepPhrases?: StepPhrases;
86
+ /**
87
+ * Служебные пометки приложения на экране (с 0.65): имя пометки → текст строки. Нужны и право чата `appNotices`
88
+ * (по умолчанию выключено: клиент в боевом чате их не видит), и `ServiceLine` у скина (версия 27). Нет — пометок
89
+ * не видно. Готовые строки сценариев — `flowNoticeLines()` из `@ykurilov/agent-chat-flows/react`. Таблицу держите постоянной.
90
+ */
91
+ noticeLines?: NoticeLines;
80
92
  }
@@ -2,7 +2,8 @@ export { AgentChat } from "./agent-chat.js";
2
2
  export { STEP_RESET_PART_TYPE, withoutResetSteps } from "./step-reset.js";
3
3
  export type { AttachmentsController, AttachmentsPlugin, ComposerAttachmentItem, ComposerAttachments, MessageAttachmentItem, MessageAttachmentsView, } from "./attachments-contract.js";
4
4
  export type { AgentChatProps } from "./agent-chat.js";
5
- export type { AgentChatExtensions, CustomWidgets, DiagramsClient, ImagesClient, VideosClient } from "./agent-chat-extensions.js";
5
+ export type { AgentChatExtensions, NoticeLines, CustomWidgets, DiagramsClient, ImagesClient, VideosClient } from "./agent-chat-extensions.js";
6
+ export type { AppNotice } from "./notices/agent-notices.js";
6
7
  export type { MediaViewerItem } from "./media-viewer/media-viewer-types.js";
7
8
  export type { MessageAction, MessageActionContext, MessageActionTarget } from "./message-actions.js";
8
9
  export type { ComposerActions, ComposerHelper } from "./composer-actions.js";
@@ -16,8 +16,18 @@ export interface AgentNotice {
16
16
  };
17
17
  }
18
18
  export declare const AGENT_NOTICE_PART_TYPE = "data-agent-notice";
19
- /** Служебные сообщения из сообщения человека, кроме реплик сотрудника; пусто — это обычное сообщение или реплика. */
19
+ export declare const isAgentNoticePart: (part: {
20
+ type: string;
21
+ }) => boolean;
22
+ /** Служебные сообщения из сообщения человека, кроме реплик сотрудника и пометок приложения; пусто — это обычное сообщение, реплика или пометка. */
20
23
  export declare function agentNoticesOf(message: AgentChatMessage): AgentNotice[];
24
+ /** Пометка приложения (`kind: "app"`, право чата `appNotices`): имя события и его данные, без текста для модели. */
25
+ export interface AppNotice {
26
+ name: string;
27
+ data: unknown;
28
+ }
29
+ /** Пометки приложения из сообщения; пусто — их нет (или право `appNotices` выключено и сервер их не прислал). */
30
+ export declare function appNoticesOf(message: AgentChatMessage): AppNotice[];
21
31
  /** Реплика живого сотрудника человеку (служебное сообщение вида `staff`, с 0.53). */
22
32
  export interface StaffReply {
23
33
  text: string;
@@ -382,7 +382,10 @@ export interface StaffMessageView {
382
382
  staffName?: string;
383
383
  }
384
384
  /**
385
- * Договор скина, версия 26 (в версии 26 добавились только необязательные `GeneratedImagesView.wide` и `caption` у готовой
385
+ * Договор скина, версия 27 (в версии 27 добавилось только необязательное `ServiceLine` — служебная строка пометки
386
+ * приложения, право чата `appNotices` и `noticeLines`, docs/skin-v27.md; скин версии 26 работает без правок: пометок
387
+ * не видно).
388
+ * Версия 26 (в версии 26 добавились только необязательные `GeneratedImagesView.wide` и `caption` у готовой
386
389
  * картинки — библиотека картинок, docs/image-library.md; скин версии 25 работает без правок: картинка библиотеки
387
390
  * рисуется плиткой сетки ближайшей обычной пропорции (1:1, 3:2, 2:3, 16:9, 9:16) без подписи, подпись остаётся в `alt`;
388
391
  * docs/skin-v26.md).
@@ -670,6 +673,14 @@ export interface ChatSkin {
670
673
  TaskCard?: ComponentType<TaskCardView>;
671
674
  /** Версия 17. Служебное сообщение: результат задачи, подтверждение, «агент написал первым». Нет — обычное сообщение. */
672
675
  AgentNoticeView?: ComponentType<AgentNoticeViewProps>;
676
+ /**
677
+ * Версия 27. Служебная строка без пузыря — пометка приложения перед ответом агента («Агент написал первым — человек
678
+ * молчал 1 ч 7 мин»): тихий мелкий текст по центру, как «История сжата». `text` — готовая строка, без разметки.
679
+ * Нет — пометок не видно.
680
+ */
681
+ ServiceLine?: ComponentType<{
682
+ text: string;
683
+ }>;
673
684
  /** Версия 25. Реплика живого сотрудника. Нет — ответом агента с подписью «Сотрудник Ольга» (`labels.notices.staffSaid`). */
674
685
  StaffMessage?: ComponentType<StaffMessageView>;
675
686
  /** Версия 23. Простой вид работы агента: живая строка и свёрнутые шаги. Нет — то же строкой `ToolCallRow`. */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ykurilov/agent-chat-react",
3
- "version": "0.64.0",
3
+ "version": "0.65.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,