@ykurilov/agent-chat-flows 0.57.0 → 0.59.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
@@ -1,5 +1,41 @@
1
1
  # @ykurilov/agent-chat-flows
2
2
 
3
+ ## 0.59.0
4
+
5
+ ### Minor Changes
6
+
7
+ - fc1f387: Поддельные служебные блоки в ответе модели вырезаются сами. Один список форматов: ядро (`CORE_SERVICE_BLOCKS` — сводка, шаги ответа, место на экране, служебные пометки), пакеты (память `<agent_memory>`, вложения `<attachment>`, навыки `<skill>` и их список, строки сценария) и приложение — `agent.serviceBlocks` (`{ tag }` или `{ name, line, match?, until? }`, ошибка — `TypeError` при создании службы). Блок с начала строки вырезается в потоке до экрана, записи и следующего шага; в прошлых ответах — только в запросе, байт в байт одинаково (кэш). Код, цитаты и упоминания посреди фразы не трогаются, пустым ответ не остаётся. Журнал: `[служебный блок вырезан] тег=… чат=… ответ=… модель=… провайдер=…`.
8
+
9
+ ### Как обновить приложение
10
+
11
+ Ничего делать не нужно. Своя вырезка служебных блоков в приложении больше не нужна — свои теги передайте в `agent.serviceBlocks`.
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [fc1f387]
16
+ - @ykurilov/agent-chat-core@0.59.0
17
+ - @ykurilov/agent-chat-react@0.59.0
18
+
19
+ ## 0.58.0
20
+
21
+ ### Patch Changes
22
+
23
+ - 760962e: Хранилища пакетов на PostgreSQL можно открывать одновременно на совсем пустой базе. Раньше пакеты разом создавали
24
+ схему `agent_chat`, проигравший падал на `CREATE SCHEMA IF NOT EXISTS`, и его хранилище не работало до перезапуска.
25
+ Теперь схема создаётся под общей блокировкой всех пакетов, она держится только на создании схемы. Миграции идут под
26
+ своей блокировкой пакета: разные пакеты друг друга не ждут, взаимной блокировки нет. Столкновение «такое уже есть»
27
+ повторяется само. Новое в core: `migratePostgresSchema({ connect, lockKey, migrate })` — для своих пакетов на той же
28
+ схеме.
29
+
30
+ ### Как обновить приложение
31
+
32
+ Ничего делать не нужно.
33
+ - Updated dependencies [332d90e]
34
+ - Updated dependencies [2ed600d]
35
+ - Updated dependencies [760962e]
36
+ - @ykurilov/agent-chat-core@0.58.0
37
+ - @ykurilov/agent-chat-react@0.58.0
38
+
3
39
  ## 0.57.0
4
40
 
5
41
  ### Minor Changes
package/dist/index.js CHANGED
@@ -116,6 +116,22 @@ import {
116
116
  pendingAdded
117
117
  } from "./chunk-DCTRMCGV.js";
118
118
 
119
+ // src/runtime/flow-service-blocks.ts
120
+ var FLOW_SERVICE_BLOCKS = [
121
+ // `transitionNotice`: «Сработало: тишина 3 ч → «Напоминание».»
122
+ { name: "flow_transition", line: "\u0421\u0440\u0430\u0431\u043E\u0442\u0430\u043B\u043E: ", match: /^Сработало: .+ → «[^»\n]*»\.$/ },
123
+ // Ответ `flow_exit`: «Переход: «А» → «Б». Состояние сменилось, …»
124
+ { name: "flow_switch", line: "\u041F\u0435\u0440\u0435\u0445\u043E\u0434: \xAB", match: /^Переход: «[^»\n]*» → «[^»\n]*»\. Состояние сменилось, продолжай по новой карточке\.$/ },
125
+ { name: "flow_say_exactly", line: "\u041F\u0435\u0440\u0432\u043E\u0435 \u0441\u043E\u043E\u0431\u0449\u0435\u043D\u0438\u0435 \u044D\u0442\u043E\u0433\u043E \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u044F \u2014 \u0441\u043A\u0430\u0436\u0438 \u0440\u043E\u0432\u043D\u043E \u044D\u0442\u043E: \xAB", match: /^Первое сообщение этого состояния — скажи ровно это: «.*»$/ },
126
+ // Карточка клиента кончается строкой «о чём спросить» (`questionLine`).
127
+ {
128
+ name: "flow_client_card",
129
+ line: "\u0427\u0442\u043E \u0438\u0437\u0432\u0435\u0441\u0442\u043D\u043E \u043E \u0447\u0435\u043B\u043E\u0432\u0435\u043A\u0435 (\u043A\u0430\u0440\u0442\u043E\u0447\u043A\u0430 \u043A\u043B\u0438\u0435\u043D\u0442\u0430):",
130
+ match: /^Что известно о человеке \(карточка клиента\):$/,
131
+ until: /^(?:Сейчас не спрашивай ничего о человеке между делом|Сначала узнай: «|Давно не уточняли: «|Можно спросить между делом: «)/
132
+ }
133
+ ];
134
+
119
135
  // src/runtime/agent-flow.ts
120
136
  import { createHash, randomUUID as randomUUID4 } from "crypto";
121
137
  import {
@@ -2811,6 +2827,7 @@ function buildAgentFlow(options, modules = {}) {
2811
2827
  knownFlow: (chatId) => known.get(chatId)
2812
2828
  }),
2813
2829
  stepContext: withStepTail(agent.stepContext, runtime),
2830
+ serviceBlocks: [...agent.serviceBlocks ?? [], ...FLOW_SERVICE_BLOCKS],
2814
2831
  ...agent.widgets && { widgets: withButtons(agent.widgets) },
2815
2832
  prepareTurn: async (context) => {
2816
2833
  const own = await agent.prepareTurn?.(context);
@@ -3177,6 +3194,7 @@ export {
3177
3194
  FLOW_GIVE_UP_EXIT,
3178
3195
  FLOW_OPS_BY_FIELD_TYPE,
3179
3196
  FLOW_PATH_LIMIT,
3197
+ FLOW_SERVICE_BLOCKS,
3180
3198
  FLOW_SIDE_TASK_TOOL,
3181
3199
  FLOW_STATE_KEY,
3182
3200
  FLOW_TIMER_SPANS,