@ykurilov/agent-chat-core 0.80.0 → 0.80.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
@@ -186,7 +186,7 @@ import {
186
186
  withoutFileParts,
187
187
  withoutGlueFragments,
188
188
  withoutResetSteps
189
- } from "./chunk-Z44ZAFZC.js";
189
+ } from "./chunk-PORXDIWX.js";
190
190
  import {
191
191
  APP_EVENT_DATA_MAX_BYTES,
192
192
  APP_EVENT_TYPE_MAX_LENGTH,
@@ -13,7 +13,7 @@ import {
13
13
  extendCatalog,
14
14
  newStoredMessage,
15
15
  standardCatalog
16
- } from "./chunk-Z44ZAFZC.js";
16
+ } from "./chunk-PORXDIWX.js";
17
17
  import "./chunk-CVRDB3NM.js";
18
18
 
19
19
  // src/storage/storage-contract.ts
@@ -5,7 +5,7 @@ import type { ModelCatalog, ProviderOptionsByProvider, ReasoningRequest } from "
5
5
  import type { ModelSilenceLimits } from "../provider-errors/model-silence.js";
6
6
  import type { ModelCallObservation } from "./observe-model-calls.js";
7
7
  import type { ModeNotes } from "./mode-notes.js";
8
- import type { FrozenContextData } from "../frozen-context/context-blocks.js";
8
+ import type { FrozenContextProjection } from "../frozen-context/frozen-context-messages.js";
9
9
  import type { ServiceBlockFormat } from "./forged-blocks.js";
10
10
  export interface ModelRequest {
11
11
  model: LanguageModel;
@@ -67,15 +67,9 @@ export declare function buildModelRequest(input: {
67
67
  /**
68
68
  * Застывшие блоки хода (память, дата, блоки приложения, место): текстом в вопрос перед каждым ответом, у которого они
69
69
  * есть, после пометок режима и канала (`withFrozenContext`). `current` — блоки ответа, которого в истории ещё нет.
70
- * Нет — блоков в запросе нет: запросы сжатия и помощников идут без них.
70
+ * Нет — блоков в запросе нет. Сжатие включает сохранённые блоки тем же механизмом, без чтения источников.
71
71
  */
72
- frozenContext?: {
73
- current?: {
74
- answerId: string;
75
- data: FrozenContextData;
76
- };
77
- group: boolean;
78
- };
72
+ frozenContext?: FrozenContextProjection;
79
73
  /**
80
74
  * Сообщения после истории только в этом запросе (служебная пометка попытки): в историю не пишутся. Метка кэша конца —
81
75
  * на последнем сообщении истории, хвост без метки: его не будет в следующих запросах, записывать его в кэш незачем,
@@ -30,6 +30,10 @@ export interface CompactionRunInput {
30
30
  switchableTools?: ReadonlySet<string>;
31
31
  /** Что сжимаем: история до границы включительно (со сводкой прежней записи, если она есть). */
32
32
  history: readonly AgentChatMessage[];
33
+ /** Полная эффективная ветка: только для выбора app anchor, сообщения за границей в пересказ не идут. */
34
+ contextHistory?: readonly AgentChatMessage[];
35
+ /** Только пересказ шагов внутри текущего ответа: не сохраняется как общая сводка чата. */
36
+ transient?: true;
33
37
  /** Вложения проходят тот же путь, что в обычном ходе: сводка видит текст файлов. */
34
38
  attachments?: MessageAttachments;
35
39
  /** Служебные форматы хода: поддельные блоки в прошлых ответах вырезаются так же, как в ходе (кэш хода). */
@@ -0,0 +1,10 @@
1
+ import type { AgentChatMessage } from "../conversation/types.js";
2
+ declare const SUMMARY: unique symbol;
3
+ type SummaryPart = {
4
+ type: "text";
5
+ text: string;
6
+ [SUMMARY]: true;
7
+ };
8
+ export declare const summaryPart: (text: string) => SummaryPart;
9
+ export declare const isSummaryPart: (part: AgentChatMessage["parts"][number]) => boolean;
10
+ export {};
@@ -17,13 +17,19 @@ export declare function frozenContextBase(history: readonly AgentChatMessage[]):
17
17
  * `current` — блоки ответа, которого в истории ещё нет (первый запрос хода): в конец последнего сообщения человека.
18
18
  * В групповом ходе личные блоки не показываются ни из этого хода, ни из прошлых.
19
19
  */
20
- export declare function withFrozenContext(history: readonly AgentChatMessage[], options: {
20
+ export declare function withFrozenContext(history: readonly AgentChatMessage[], options: FrozenContextProjection): AgentChatMessage[];
21
+ /** Внутренняя проекция общего сборщика; не настройка агента и не данные модели. */
22
+ export interface FrozenContextProjection {
21
23
  current?: {
22
24
  answerId: string;
23
25
  data: FrozenContextData;
24
26
  };
25
27
  group: boolean;
26
- }): AgentChatMessage[];
28
+ /** При сжатии префикса anchor ищется в полной эффективной ветке; её текст сюда не переносится. */
29
+ anchorHistory?: readonly AgentChatMessage[];
30
+ /** Допустимые ключи блоков в проекции; нет — прежний набор. Текст переписки не фильтруется. */
31
+ includeKey?: (key: string) => boolean;
32
+ }
27
33
  /**
28
34
  * Заметка продолжения последней, а перед ней — решения подтверждения, по которым инструмент ещё не выполнен: AI SDK
29
35
  * выполняет одобренные вызовы, только если запрос кончается ответом инструмента. Тогда заметка отдаётся отдельно —
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ykurilov/agent-chat-core",
3
- "version": "0.80.0",
3
+ "version": "0.80.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,