@ykurilov/agent-chat-core 0.55.0 → 0.57.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +2 -0
  3. package/dist/access.js +2 -2
  4. package/dist/{chunk-PWW3R3VL.js → chunk-BS2HDKZB.js} +586 -41
  5. package/dist/chunk-BS2HDKZB.js.map +1 -0
  6. package/dist/{chunk-SNPF4BPB.js → chunk-FBULM4V6.js} +2 -2
  7. package/dist/{chunk-PWGI6NH6.js → chunk-FOAIG4DY.js} +1 -1
  8. package/dist/chunk-FOAIG4DY.js.map +1 -0
  9. package/dist/index.js +31 -3
  10. package/dist/index.js.map +1 -1
  11. package/dist/storage-contract.js +89 -7
  12. package/dist/storage-contract.js.map +1 -1
  13. package/dist/types/agent-run/agent-viewer.d.ts +60 -0
  14. package/dist/types/agent-run/garbled-tail.d.ts +69 -0
  15. package/dist/types/agent-run/reply-checks.d.ts +3 -1
  16. package/dist/types/agent-run/run-agent-turn.d.ts +8 -0
  17. package/dist/types/agent-run/staff-replies.d.ts +7 -0
  18. package/dist/types/bursts/message-bursts.d.ts +12 -0
  19. package/dist/types/chat-events/chat-events.d.ts +7 -0
  20. package/dist/types/chat-service.d.ts +29 -0
  21. package/dist/types/compaction/compaction-service.d.ts +3 -0
  22. package/dist/types/conversation/types.d.ts +3 -1
  23. package/dist/types/frozen-context/context-blocks.d.ts +3 -0
  24. package/dist/types/frozen-context/turn-context.d.ts +3 -0
  25. package/dist/types/index.d.ts +4 -2
  26. package/dist/types/storage/chat-storage.d.ts +47 -0
  27. package/dist/types/storage/storage-contract.d.ts +5 -0
  28. package/dist/types/turn-hooks/turn-gate.d.ts +2 -0
  29. package/dist/types/turn-hooks/turn-hooks.d.ts +7 -0
  30. package/package.json +1 -1
  31. package/dist/chunk-PWGI6NH6.js.map +0 -1
  32. package/dist/chunk-PWW3R3VL.js.map +0 -1
  33. /package/dist/{chunk-SNPF4BPB.js.map → chunk-FBULM4V6.js.map} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # @ykurilov/agent-chat-core
2
2
 
3
+ ## 0.57.0
4
+
5
+ ### Minor Changes
6
+
7
+ - ade99cc: Окно тишины `sendBurstMessage` ждётся по часам службы (`now`): `service.tickBursts()` сверяет ждущие пачки с подменёнными
8
+ часами — в тестах без настоящих пауз. Новый флаг `answerAfterRestart`: ждущая пачка записана в хранилище (новые
9
+ необязательные методы `savePendingBurst`, `takeAbandonedBursts`, `renewPendingBurst`, `removePendingBurst`; таблица `pending_bursts`,
10
+ миграции SQLite 0018 и PostgreSQL 0017) и после перезапуска получает ответ без повтора вызова — событием `turn-started`
11
+ с `unattended: true`. Отвечает по-прежнему одна копия.
12
+ - 86afa20: Ответ, сорвавшийся в кашу (строка с ролью после законченного ответа или повторный `</think>` плюс ещё один признак), обрезается: при сохранении, в потоке (вызовы после срыва не запускаются, выполненные остаются в записи) и перед отправкой модели (только в запросе). Строка в журнал `[хвост обрезан]`.
13
+
14
+ ### Patch Changes
15
+
16
+ - 624c10c: Реплика сотрудника (`appendStaffMessage`) в запросе модели идёт в одном сообщении с соседними словами человека: пометки
17
+ «ход оборвался до первых слов» рядом с ней больше нет. Запрос зависит только от истории — кэш цел.
18
+
19
+ ## 0.56.0
20
+
21
+ ### Minor Changes
22
+
23
+ - 24c313e: Новый пакет `@ykurilov/agent-chat-mcp`: серверы MCP, которые подключает админ приложения.
24
+
25
+ - `createMcpServers({ store, secretKey, isAdmin, proxy?, spending?, limits?, syncIntervalMs? })` → `mcp.tools(model, appTools?)`
26
+ для `agent.tools` (первым; при одинаковом имени побеждает инструмент приложения), `mcp.admin`, `mcp.reload()`, `mcp.sync()`, `mcp.close()`. «Только админы» — по `model.viewer.isAdmin`;
27
+ `isAdmin` (может быть асинхронной) — для экрана. Правка доходит до всех копий сервера по отметке версии в хранилище. Только удалённые серверы (Streamable HTTP, SSE). Инструменты — из
28
+ сохранённого снимка списка: запрос к модели стабилен, упавший сервер не ломает начало запроса. Соединение — на
29
+ проверенный адрес DNS; заголовки прокси — только на `proxy.origin`.
30
+ - `createMcpAdminHandler({ mcp, resolveUser, allowedOrigins })` — адреса `/api/mcp`, не админу 404.
31
+ - Хранилища: `createMemoryMcpStore`, `/sqlite` `createSqliteMcpStore`, `/postgres` `createPostgresMcpStore`; миграции сами.
32
+ - `/react`: `McpAdmin`, `useMcpAdmin`, договор скина `McpSkin` v1 (с формой правки `McpServerCardView.edit`), надписи ru/en. Скин Тандема: `./mcp` → `tandemMcpSkin`.
33
+ - Ядро: штатный вид расхода `mcp_tool`; `agent.viewer` — права человека раз в начале хода, полем `viewer` в
34
+ `contextBlocks` и `AgentToolsModel`. Песочница: права тестового чата — по владельцу чата. web-tools: наружу `dnsHostResolver`.
35
+
3
36
  ## 0.55.0
4
37
 
5
38
  ### Minor Changes
package/README.md CHANGED
@@ -117,6 +117,8 @@ import type { ChatStorage } from "@ykurilov/agent-chat-core";
117
117
  сотрудника в конец ветки. Модель видит её словами сотрудника («Живой сотрудник «Ольга» ответил человеку вместо тебя…»),
118
118
  экран — сообщением сотрудника (`StaffMessage` скина). Проверки ответа агента её текст знают, а `person_link_view`
119
119
  ссылкой человека её не считает. Ход сама не начинает; `wakeAgent: true` — агент отвечает сразу. Занятый чат — `busy`, пустой текст — `TypeError`.
120
+ В запросе модели реплика идёт в одном сообщении с соседними словами человека (через пустую строку), поэтому пометки
121
+ «ход оборвался» рядом с ней нет (с 0.57).
120
122
 
121
123
  ## Надёжность хода
122
124
 
package/dist/access.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  accessRefusedResponse,
3
3
  allowedUser
4
- } from "./chunk-SNPF4BPB.js";
5
- import "./chunk-PWGI6NH6.js";
4
+ } from "./chunk-FBULM4V6.js";
5
+ import "./chunk-FOAIG4DY.js";
6
6
  export {
7
7
  accessRefusedResponse,
8
8
  allowedUser