@deepagents/context 4.2.1 → 4.3.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 (66) hide show
  1. package/README.md +7 -7
  2. package/dist/browser.d.ts +2 -0
  3. package/dist/browser.d.ts.map +1 -1
  4. package/dist/browser.js +29 -26
  5. package/dist/browser.js.map +4 -4
  6. package/dist/index.d.ts +1 -9
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +4263 -4249
  9. package/dist/index.js.map +4 -4
  10. package/dist/lib/agent.d.ts +13 -7
  11. package/dist/lib/agent.d.ts.map +1 -1
  12. package/dist/lib/engine.d.ts +1 -1
  13. package/dist/lib/engine.d.ts.map +1 -1
  14. package/dist/lib/fragments/message/user.d.ts +2 -213
  15. package/dist/lib/fragments/message/user.d.ts.map +1 -1
  16. package/dist/lib/fragments/reminders/index.d.ts +3 -0
  17. package/dist/lib/fragments/reminders/index.d.ts.map +1 -0
  18. package/dist/lib/{save/reminder-eval.d.ts → fragments/reminders/src/evaluate.d.ts} +2 -2
  19. package/dist/lib/fragments/reminders/src/evaluate.d.ts.map +1 -0
  20. package/dist/lib/fragments/reminders/src/index.d.ts +5 -0
  21. package/dist/lib/fragments/reminders/src/index.d.ts.map +1 -0
  22. package/dist/lib/fragments/reminders/src/predicates/classifier.d.ts.map +1 -0
  23. package/dist/lib/fragments/reminders/{combinators.d.ts → src/predicates/combinators.d.ts} +1 -1
  24. package/dist/lib/fragments/reminders/src/predicates/combinators.d.ts.map +1 -0
  25. package/dist/lib/fragments/reminders/{content-predicates.d.ts → src/predicates/content.d.ts} +2 -2
  26. package/dist/lib/fragments/reminders/src/predicates/content.d.ts.map +1 -0
  27. package/dist/lib/fragments/reminders/src/predicates/index.d.ts +9 -0
  28. package/dist/lib/fragments/reminders/src/predicates/index.d.ts.map +1 -0
  29. package/dist/lib/fragments/reminders/{message-predicates.d.ts → src/predicates/message.d.ts} +3 -7
  30. package/dist/lib/fragments/reminders/src/predicates/message.d.ts.map +1 -0
  31. package/dist/lib/fragments/reminders/{once.d.ts → src/predicates/once.d.ts} +1 -1
  32. package/dist/lib/fragments/reminders/src/predicates/once.d.ts.map +1 -0
  33. package/dist/lib/fragments/reminders/{tool-predicates.d.ts → src/predicates/tool.d.ts} +2 -3
  34. package/dist/lib/fragments/reminders/src/predicates/tool.d.ts.map +1 -0
  35. package/dist/lib/fragments/reminders/{turn-predicates.d.ts → src/predicates/turn.d.ts} +2 -2
  36. package/dist/lib/fragments/reminders/src/predicates/turn.d.ts.map +1 -0
  37. package/dist/lib/fragments/reminders/src/predicates/usage.d.ts +3 -0
  38. package/dist/lib/fragments/reminders/src/predicates/usage.d.ts.map +1 -0
  39. package/dist/lib/fragments/reminders/src/reminders.d.ts +114 -0
  40. package/dist/lib/fragments/reminders/src/reminders.d.ts.map +1 -0
  41. package/dist/lib/fragments/reminders/src/types.d.ts +114 -0
  42. package/dist/lib/fragments/reminders/src/types.d.ts.map +1 -0
  43. package/dist/lib/fragments/reminders/temporal/elapsed.d.ts +1 -1
  44. package/dist/lib/fragments/reminders/temporal/elapsed.d.ts.map +1 -1
  45. package/dist/lib/fragments/reminders/temporal/predicates.d.ts +1 -1
  46. package/dist/lib/fragments/reminders/temporal/predicates.d.ts.map +1 -1
  47. package/dist/lib/fragments/reminders/temporal/reminder.d.ts.map +1 -1
  48. package/dist/lib/skills/skill-reminder.d.ts +1 -1
  49. package/dist/lib/skills/skill-reminder.d.ts.map +1 -1
  50. package/dist/lib/title.d.ts.map +1 -1
  51. package/dist/spec/test/global-setup.d.ts +4 -0
  52. package/dist/spec/test/global-setup.d.ts.map +1 -0
  53. package/dist/spec/test/helpers/sqlite-container.d.ts +19 -0
  54. package/dist/spec/test/helpers/sqlite-container.d.ts.map +1 -0
  55. package/package.json +2 -2
  56. package/dist/lib/fragments/reminders/classifier.d.ts.map +0 -1
  57. package/dist/lib/fragments/reminders/combinators.d.ts.map +0 -1
  58. package/dist/lib/fragments/reminders/content-predicates.d.ts.map +0 -1
  59. package/dist/lib/fragments/reminders/message-predicates.d.ts.map +0 -1
  60. package/dist/lib/fragments/reminders/once.d.ts.map +0 -1
  61. package/dist/lib/fragments/reminders/tool-predicates.d.ts.map +0 -1
  62. package/dist/lib/fragments/reminders/turn-predicates.d.ts.map +0 -1
  63. package/dist/lib/fragments/reminders/usage-predicates.d.ts +0 -3
  64. package/dist/lib/fragments/reminders/usage-predicates.d.ts.map +0 -1
  65. package/dist/lib/save/reminder-eval.d.ts.map +0 -1
  66. /package/dist/lib/fragments/reminders/{classifier.d.ts → src/predicates/classifier.d.ts} +0 -0
@@ -1,9 +1,15 @@
1
+ import type { JSONObject } from '@ai-sdk/provider';
1
2
  import { type FlexibleSchema, type GenerateTextResult, type InferSchema, Output, type StreamTextResult, type StreamTextTransform, type Tool, type ToolChoice, type ToolSet, generateText } from 'ai';
2
3
  import { type ContextEngine } from '../index.ts';
3
4
  import { type AdvisorResult, type AgentModel, type AsAdvisorOptions } from './advisor.ts';
4
5
  import { type Guardrail } from './guardrail.ts';
5
6
  import type { AgentSandbox } from './sandbox/types.ts';
6
- export type OutputExtractorFn = (output: GenerateTextResult<ToolSet, any>) => string | Promise<string>;
7
+ /** Input schema shape accepted by the tool `asTool()` produces. */
8
+ export interface SubagentToolInput {
9
+ input: string;
10
+ output?: string;
11
+ }
12
+ export type OutputExtractorFn<T = string> = (output: GenerateTextResult<ToolSet, any>) => T | Promise<T>;
7
13
  export interface CreateAgent<CIn, COut = CIn> {
8
14
  name: string;
9
15
  sandbox: AgentSandbox;
@@ -56,13 +62,13 @@ declare class Agent<CIn, COut = CIn> {
56
62
  transform?: StreamTextTransform<ToolSet> | StreamTextTransform<ToolSet>[];
57
63
  maxRetries?: number;
58
64
  }): Promise<StreamTextResult<ToolSet, never>>;
59
- asTool(props?: {
65
+ asTool<T = string>(props?: {
60
66
  toolDescription?: string;
61
- outputExtractor?: OutputExtractorFn;
62
- }): Tool<{
63
- input: string;
64
- output?: string | undefined;
65
- }, string | import("ai").TypedToolResult<ToolSet>[]>;
67
+ outputExtractor?: OutputExtractorFn<T>;
68
+ /** Not sent to the model; surfaces on tool call/result and UI message parts */
69
+ metadata?: JSONObject;
70
+ toModelOutput?: Tool<SubagentToolInput, T | string>['toModelOutput'];
71
+ }): Tool<SubagentToolInput, string | T>;
66
72
  asAdvisor(options?: AsAdvisorOptions): AdvisorResult;
67
73
  clone(overrides?: Partial<CreateAgent<CIn, COut>>): Agent<CIn, COut>;
68
74
  }
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
@@ -443,7 +443,7 @@ export declare class ContextEngine {
443
443
  consolidate(): void;
444
444
  /**
445
445
  * Create an isolated child context with the same system-prompt fragments
446
- * but a fresh in-memory store and no message history.
446
+ * and resolver chain, but a fresh in-memory store and no message history.
447
447
  *
448
448
  * Useful for one-shot agent invocations (e.g., `asTool()`) that need
449
449
  * the parent's context fragments without sharing conversation state.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"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"}
@@ -1,188 +1,5 @@
1
- import { type LanguageModelUsage, type UIMessage } from 'ai';
2
- import { type ContextFragment, type MessageFragment } from '../../fragments.ts';
3
- import type { StoredChatData } from '../../store/store.ts';
4
- export interface ReminderContext {
5
- content: string;
6
- turn?: number;
7
- lastMessageAt?: number;
8
- lastMessage?: UIMessage;
9
- currentMessage?: UIMessage;
10
- chat?: StoredChatData;
11
- usage?: LanguageModelUsage;
12
- branch?: string;
13
- elapsed?: number;
14
- messageCount?: number;
15
- lastAssistantMessage?: UIMessage;
16
- }
17
- export interface ReminderResolution {
18
- text: string;
19
- metadata?: Record<string, unknown>;
20
- }
21
- export type SyncReminderText = string | ((ctx: ReminderContext) => string | ReminderResolution);
22
- export type ReminderText = string | ((ctx: ReminderContext) => string | ReminderResolution | Promise<string | ReminderResolution>);
23
- export interface WhenContext {
24
- turn: number;
25
- content: string;
26
- lastMessageAt?: number;
27
- lastMessage?: UIMessage;
28
- currentMessage: UIMessage;
29
- chat: StoredChatData;
30
- usage?: LanguageModelUsage;
31
- branch: string;
32
- elapsed?: number;
33
- messageCount: number;
34
- lastAssistantMessage?: UIMessage;
35
- lastAssistantMessages?: UIMessage[];
36
- /**
37
- * The tool call whose result is being wrapped, populated only during
38
- * `target: 'tool-output'` evaluation — the live call in flight, which the
39
- * finalized message chain cannot yet contain (`lastAssistantMessage` holds
40
- * prior, already-completed calls). Read it directly in a predicate to gate on
41
- * the executing tool's name/input/result. Undefined for `user` / `steer`.
42
- */
43
- executingTool?: {
44
- name: string;
45
- input: unknown;
46
- output: unknown;
47
- };
48
- /**
49
- * Ids that a fire-once latch has already fired for in this conversation
50
- * (persisted synth onceIds ∪ this stream's fires). Populated only during
51
- * steer evaluation; `once(id)` reads it to suppress a second fire.
52
- */
53
- firedOnceIds?: ReadonlySet<string>;
54
- /**
55
- * Per-evaluation buffer that `once(id)` appends to when consulted and not yet
56
- * fired. The engine commits these ids — to the session and the synth — only
57
- * if the whole reminder fires. One fresh collector per config evaluation.
58
- */
59
- onceCollector?: Set<string>;
60
- }
61
- /**
62
- * The engine-level slice of `WhenContext` — everything that does not depend on a
63
- * specific carrier message. Callers add `content`/`currentMessage`/the
64
- * last-assistant fields once they have located the message being evaluated.
65
- */
66
- export type BaseWhenCtx = Omit<WhenContext, 'content' | 'currentMessage' | 'lastAssistantMessage' | 'lastAssistantMessages'>;
67
- export type WhenPredicate = (ctx: WhenContext) => boolean | Promise<boolean>;
68
- export type ReminderTarget = 'user' | 'tool-output' | 'steer';
69
- export interface SyntheticSteerMetadata {
70
- source: 'steer-reminder';
71
- firedAt: number;
72
- onceIds?: string[];
73
- }
74
- export interface ReminderOptions {
75
- /**
76
- * Predicate gating when the reminder fires. Optional for `target: 'user'`
77
- * (omit ⇒ always fires; pair with `once(id)` for one-time); required for
78
- * `steer` / `tool-output`, where a trigger-less reminder is meaningless.
79
- */
80
- when?: WhenPredicate;
81
- asPart?: boolean;
82
- target?: ReminderTarget;
83
- }
84
- export interface ConditionalReminder {
85
- text: ReminderText;
86
- when: WhenPredicate;
87
- asPart: boolean;
88
- target: ReminderTarget;
89
- }
90
- export declare function isConditionalReminder(fragment: ContextFragment): fragment is ContextFragment & {
91
- metadata: {
92
- reminder: ConditionalReminder;
93
- };
94
- };
95
- export interface UserReminderMetadata {
96
- id: string;
97
- text: string;
98
- target: ReminderTarget;
99
- partIndex: number;
100
- start: number;
101
- end: number;
102
- mode: 'inline' | 'part';
103
- }
104
- export type ReminderRange = {
105
- partIndex: number;
106
- start: number;
107
- end: number;
108
- };
109
- export declare function getReminderRanges(metadata: Record<string, unknown> | undefined): ReminderRange[];
110
- /**
111
- * Once-ids latched by `once()`-gated reminders folded into this user message.
112
- * Persisted so a fresh engine re-reads them (the durable suppression record for
113
- * user-target `once()`, mirroring synthetic steer messages).
114
- */
115
- export declare function getReminderOnceIds(message: UIMessage): string[];
116
- export declare function stripTextByRanges(text: string, ranges: Array<{
117
- start: number;
118
- end: number;
119
- }>): string;
120
- /**
121
- * Strip reminder content from a message using reminder metadata ranges.
122
- *
123
- * - Inline reminders are removed from text parts.
124
- * - Part reminders are removed as whole parts when their full text is stripped.
125
- * - `metadata.reminders` is removed from the returned message.
126
- */
127
- export declare function stripReminders(message: UIMessage): UIMessage;
128
- export declare function isRecord(value: unknown): value is Record<string, unknown>;
129
- export declare function applyInlineReminder(message: UIMessage, value: string): UserReminderMetadata;
130
- export declare function applyPartReminder(message: UIMessage, value: string): UserReminderMetadata;
131
- export declare function resolveReminder(item: {
132
- text: SyncReminderText;
133
- metadata?: Record<string, unknown>;
134
- }, ctx: ReminderContext): ReminderResolution | null;
135
- export declare function resolveReminderAsync(item: {
136
- text: ReminderText;
137
- metadata?: Record<string, unknown>;
138
- }, ctx: ReminderContext): Promise<ReminderResolution | null>;
139
- export declare function mergeMessageMetadata(message: UIMessage, addedMetadata: Record<string, unknown>): void;
140
- export declare function applyReminderToMessage(message: UIMessage, item: {
141
- text: SyncReminderText;
142
- asPart: boolean;
143
- metadata?: Record<string, unknown>;
144
- }, ctx: ReminderContext): UserReminderMetadata | null;
145
- /**
146
- * Wrap a tool's raw `execute()` result with fired reminder texts.
147
- *
148
- * Applied at the tool-execution boundary — before the AI SDK hands the result
149
- * back to the model — so the wrapped value flows identically into the next
150
- * model step and the persisted chain. The envelope shape is uniform regardless
151
- * of the output type, which lets `stripReminders` undo it structurally without
152
- * metadata bookkeeping.
153
- */
154
- export declare function applyRemindersToToolOutput(output: unknown, texts: string[]): unknown;
155
- /**
156
- * Project a tool-output reminder envelope to its model-facing form: run the
157
- * wrapped tool's own projection over the inner `result` (so a tool's host-only
158
- * `meta` channel is still stripped), then re-attach the `systemReminder`. The
159
- * envelope's own host-only `meta` marker is dropped. Returns null for anything
160
- * that is not one of our envelopes, so the caller can project the raw output.
161
- */
162
- export declare function toToolReminderModelOutput(output: unknown, projectResult: (result: unknown) => unknown): {
163
- type: 'json';
164
- value: unknown;
165
- } | null;
166
- export declare function mergeReminderMetadata(message: UIMessage, addedReminders: UserReminderMetadata[]): void;
167
- /**
168
- * Create a reminder fragment, set on the engine via `engine.set()`. The engine
169
- * folds it into the model's view when its `when` fires: `user` reminders bake a
170
- * `<system-reminder>` into the last user message at save; `steer` injects mid-
171
- * loop; `tool-output` wraps the tool result. Text may be a string, a `(ctx) =>
172
- * string` factory (self-gates by returning `''`), or a context fragment.
173
- *
174
- * For `target: 'user'`, `when` is optional — omit it for an always-on
175
- * instruction, or pass `once(id)` for a one-time reminder. `steer` and
176
- * `tool-output` require a `when` trigger.
177
- *
178
- * @example
179
- * ```ts
180
- * engine.set(reminder('Keep responses concise')); // user, always
181
- * engine.set(reminder('Welcome!', { when: once('welcome') })); // user, one-time
182
- * engine.set(reminder('RECAP', { when: everyNTurns(3), target: 'steer' }));
183
- * ```
184
- */
185
- export declare function reminder(textOrFragment: ReminderText | ContextFragment, options?: ReminderOptions): ContextFragment;
1
+ import { type UIMessage } from 'ai';
2
+ import { type MessageFragment } from '../../fragments.ts';
186
3
  /**
187
4
  * Create a user message fragment. Message fragments are separated from regular
188
5
  * fragments during resolve(). Reminders are NOT attached here — declare them
@@ -192,32 +9,4 @@ export declare function reminder(textOrFragment: ReminderText | ContextFragment,
192
9
  export declare function user(content: string | (UIMessage & {
193
10
  role: 'user';
194
11
  })): MessageFragment;
195
- /**
196
- * Bake resolved user reminders into a message in place: append each as a
197
- * `<system-reminder>` (inline or as its own part) and record the ranges in
198
- * `metadata.reminders` so `stripReminders` can reverse it. The save fold is the
199
- * only caller — user reminders are declared on the engine, not on `user()`.
200
- */
201
- export declare function applyUserRemindersToMessage(message: UIMessage, reminders: Array<{
202
- text: SyncReminderText;
203
- asPart: boolean;
204
- metadata?: Record<string, unknown>;
205
- }>): void;
206
- /**
207
- * Build the hidden synthetic user message injected mid-loop for steer reminders.
208
- *
209
- * Multiple reminder texts that fire at the same step boundary are folded into a
210
- * single user message (one `<system-reminder>` text part each) so the model
211
- * never sees two consecutive user messages — which providers like Anthropic
212
- * reject. The `metadata.synthetic` marker lets the chain summary, title
213
- * generation, and `stripReminders` treat these as non-conversational.
214
- */
215
- export declare function synthesizeSteerUserMessage(text: string | string[], firedAt: number, onceIds?: string[]): UIMessage & {
216
- role: 'user';
217
- };
218
- export declare function isSyntheticSteerMessage(message: UIMessage): message is UIMessage & {
219
- metadata: {
220
- synthetic: SyntheticSteerMetadata;
221
- };
222
- };
223
12
  //# sourceMappingURL=user.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/message/user.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,IAAI,CAAC;AAEhD,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D;;;;;GAKG;AACH,wBAAgB,IAAI,CAClB,OAAO,EAAE,MAAM,GAAG,CAAC,SAAS,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,GAC/C,eAAe,CAwBjB"}
@@ -0,0 +1,3 @@
1
+ export * from './src/index.ts';
2
+ export * from './temporal/index.ts';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/lib/fragments/reminders/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ConditionalReminder, type ReminderResolution, type WhenContext } from '../fragments/message/user.ts';
1
+ import { type ConditionalReminder, type ReminderResolution, type WhenContext } from './types.ts';
2
2
  export interface FiredReminder {
3
3
  config: ConditionalReminder;
4
4
  resolved: ReminderResolution;
@@ -16,4 +16,4 @@ export interface FiredReminder {
16
16
  * save or an in-flight assistant turn.
17
17
  */
18
18
  export declare function evaluateFiredReminders(configs: ConditionalReminder[], whenCtx: WhenContext): Promise<FiredReminder[]>;
19
- //# sourceMappingURL=reminder-eval.d.ts.map
19
+ //# sourceMappingURL=evaluate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../../../../src/lib/fragments/reminders/src/evaluate.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,kFAAkF;IAClF,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,EAAE,EAC9B,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,EAAE,CAAC,CAiD1B"}
@@ -0,0 +1,5 @@
1
+ export * from './reminders.ts';
2
+ export type { BaseWhenCtx, ConditionalReminder, ReminderContext, ReminderFragment, ReminderOptions, ReminderRange, ReminderResolution, ReminderTarget, ReminderText, SyncReminderText, SyntheticSteerMetadata, UserReminderMetadata, WhenContext, WhenPredicate, } from './types.ts';
3
+ export * from './evaluate.ts';
4
+ export * from './predicates/index.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/fragments/reminders/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,oBAAoB,EACpB,WAAW,EACX,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classifier.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/classifier.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC;CACzE;AAED,qBAAa,cAAc,CACzB,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAC/C,YAAW,WAAW,CAAC,CAAC,CAAC;;gBAIb,KAAK,EAAE,CAAC,EAAE;IAOtB,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE;CAexE"}
@@ -1,4 +1,4 @@
1
- import type { WhenContext, WhenPredicate } from '../message/user.ts';
1
+ import type { WhenContext, WhenPredicate } from '../types.ts';
2
2
  export type AsyncWhenPredicate = (ctx: WhenContext) => Promise<boolean>;
3
3
  export declare function and(...predicates: WhenPredicate[]): AsyncWhenPredicate;
4
4
  export declare function or(...predicates: WhenPredicate[]): AsyncWhenPredicate;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"combinators.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/combinators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,WAAW,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAExE,wBAAgB,GAAG,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAOtE;AAED,wBAAgB,EAAE,CAAC,GAAG,UAAU,EAAE,aAAa,EAAE,GAAG,kBAAkB,CAOrE;AAED,wBAAgB,GAAG,CAAC,SAAS,EAAE,aAAa,GAAG,kBAAkB,CAEhE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,aAAa,GACvB,kBAAkB,CAWpB;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAC1B,CAAC,EAAE,MAAM,EACT,SAAS,EAAE,aAAa,GACvB,kBAAkB,CAapB"}
@@ -1,4 +1,4 @@
1
- import { type WhenPredicate } from '../message/user.ts';
1
+ import type { WhenPredicate } from '../types.ts';
2
2
  import { type ClassifierOptions, type IClassifier } from './classifier.ts';
3
3
  export interface ContentMatchesOptions {
4
4
  threshold?: number;
@@ -7,4 +7,4 @@ export declare function contentMatches(topics: string[], options?: ContentMatche
7
7
  export declare function classifies<T>(classifier: IClassifier<T>, options?: ClassifierOptions): WhenPredicate;
8
8
  export declare function contentIncludes(keywords: string[]): WhenPredicate;
9
9
  export declare function contentPattern(pattern: RegExp): WhenPredicate;
10
- //# sourceMappingURL=content-predicates.d.ts.map
10
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/content.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,CAAC,EAAE,qBAAqB,GAC9B,aAAa,CAMf;AAED,wBAAgB,UAAU,CAAC,CAAC,EAC1B,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,iBAAiB,GAC1B,aAAa,CAEf;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,aAAa,CAMjE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAK7D"}
@@ -0,0 +1,9 @@
1
+ export * from './classifier.ts';
2
+ export * from './combinators.ts';
3
+ export * from './content.ts';
4
+ export * from './message.ts';
5
+ export * from './once.ts';
6
+ export * from './tool.ts';
7
+ export * from './turn.ts';
8
+ export * from './usage.ts';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC"}
@@ -1,10 +1,6 @@
1
- import { type WhenPredicate } from '../message/user.ts';
2
- export type CountSpec = {
3
- gte?: number;
4
- lte?: number;
5
- eq?: number;
6
- };
1
+ import type { CountSpec, WhenPredicate } from '../types.ts';
2
+ export type { CountSpec } from '../types.ts';
7
3
  export declare function assertCountSpec(spec: CountSpec): void;
8
4
  export declare function checkCount(count: number, spec: CountSpec): boolean;
9
5
  export declare function lastAssistantLength(spec: CountSpec): WhenPredicate;
10
- //# sourceMappingURL=message-predicates.d.ts.map
6
+ //# sourceMappingURL=message.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/message.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5D,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI,CASrD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAKlE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,aAAa,CAOlE"}
@@ -1,4 +1,4 @@
1
- import type { WhenPredicate } from '../message/user.ts';
1
+ import type { WhenPredicate } from '../types.ts';
2
2
  /**
3
3
  * Durable fire-once latch, composed into a steer reminder's `when`.
4
4
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"once.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/once.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,CAkB9C"}
@@ -1,6 +1,5 @@
1
1
  import { type ToolUIPart } from 'ai';
2
- import { type WhenPredicate } from '../message/user.ts';
3
- import { type CountSpec } from './message-predicates.ts';
2
+ import type { CountSpec, WhenPredicate } from '../types.ts';
4
3
  export type ToolNameSpec = string | ((name: string) => boolean);
5
4
  export interface ToolCallOptions {
6
5
  name?: ToolNameSpec;
@@ -14,4 +13,4 @@ export declare function toolCalled(name: ToolNameSpec): WhenPredicate;
14
13
  export declare function toolFailed(name: ToolNameSpec): WhenPredicate;
15
14
  export declare function anyToolCalled(): WhenPredicate;
16
15
  export declare function toolCallCount(name: ToolNameSpec, spec: CountSpec): WhenPredicate;
17
- //# sourceMappingURL=tool-predicates.d.ts.map
16
+ //# sourceMappingURL=tool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAsC,MAAM,IAAI,CAAC;AAEzE,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;AAEhE,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,KAAK,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IACpC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACtC,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACvC;AAqBD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,aAAa,CAkChE;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAE5D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,aAAa,CAE5D;AAED,wBAAgB,aAAa,IAAI,aAAa,CAK7C;AAED,wBAAgB,aAAa,CAC3B,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,SAAS,GACd,aAAa,CASf"}
@@ -1,6 +1,6 @@
1
- import type { WhenPredicate } from '../message/user.ts';
1
+ import type { WhenPredicate } from '../types.ts';
2
2
  export declare function everyNTurns(n: number): WhenPredicate;
3
3
  export declare function first(): WhenPredicate;
4
4
  export declare function firstN(n: number): WhenPredicate;
5
5
  export declare function afterTurn(n: number): WhenPredicate;
6
- //# sourceMappingURL=turn-predicates.d.ts.map
6
+ //# sourceMappingURL=turn.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/turn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAEpD;AAED,wBAAgB,KAAK,IAAI,aAAa,CAErC;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAE/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,aAAa,CAElD"}
@@ -0,0 +1,3 @@
1
+ import type { WhenPredicate } from '../types.ts';
2
+ export declare function usageExceeds(totalTokens: number): WhenPredicate;
3
+ //# sourceMappingURL=usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../../../../../src/lib/fragments/reminders/src/predicates/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAE/D"}
@@ -0,0 +1,114 @@
1
+ import { type UIMessage } from 'ai';
2
+ import { type ContextFragment } from '../../../fragments.ts';
3
+ import type { ConditionalReminder, ReminderContext, ReminderOptions, ReminderRange, ReminderResolution, ReminderText, SyncReminderText, SyntheticSteerMetadata, UserReminderMetadata } from './types.ts';
4
+ export declare function isConditionalReminder(fragment: ContextFragment): fragment is ContextFragment & {
5
+ metadata: {
6
+ reminder: ConditionalReminder;
7
+ };
8
+ };
9
+ export declare function getReminderRanges(metadata: Record<string, unknown> | undefined): ReminderRange[];
10
+ /**
11
+ * Once-ids latched by `once()`-gated reminders folded into this user message.
12
+ * Persisted so a fresh engine re-reads them (the durable suppression record for
13
+ * user-target `once()`, mirroring synthetic steer messages).
14
+ */
15
+ export declare function getReminderOnceIds(message: UIMessage): string[];
16
+ export declare function stripTextByRanges(text: string, ranges: Array<{
17
+ start: number;
18
+ end: number;
19
+ }>): string;
20
+ /**
21
+ * Strip reminder content from a message using reminder metadata ranges.
22
+ *
23
+ * - Inline reminders are removed from text parts.
24
+ * - Part reminders are removed as whole parts when their full text is stripped.
25
+ * - `metadata.reminders` is removed from the returned message.
26
+ */
27
+ export declare function stripReminders(message: UIMessage): UIMessage;
28
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
29
+ export declare function applyInlineReminder(message: UIMessage, value: string): UserReminderMetadata;
30
+ export declare function applyPartReminder(message: UIMessage, value: string): UserReminderMetadata;
31
+ export declare function resolveReminder(item: {
32
+ text: SyncReminderText;
33
+ metadata?: Record<string, unknown>;
34
+ }, ctx: ReminderContext): ReminderResolution | null;
35
+ export declare function resolveReminderAsync(item: {
36
+ text: ReminderText;
37
+ metadata?: Record<string, unknown>;
38
+ }, ctx: ReminderContext): Promise<ReminderResolution | null>;
39
+ export declare function mergeMessageMetadata(message: UIMessage, addedMetadata: Record<string, unknown>): void;
40
+ export declare function applyReminderToMessage(message: UIMessage, item: {
41
+ text: SyncReminderText;
42
+ asPart: boolean;
43
+ metadata?: Record<string, unknown>;
44
+ }, ctx: ReminderContext): UserReminderMetadata | null;
45
+ /**
46
+ * Wrap a tool's raw `execute()` result with fired reminder texts.
47
+ *
48
+ * Applied at the tool-execution boundary — before the AI SDK hands the result
49
+ * back to the model — so the wrapped value flows identically into the next
50
+ * model step and the persisted chain. The envelope shape is uniform regardless
51
+ * of the output type, which lets `stripReminders` undo it structurally without
52
+ * metadata bookkeeping.
53
+ */
54
+ export declare function applyRemindersToToolOutput(output: unknown, texts: string[]): unknown;
55
+ /**
56
+ * Project a tool-output reminder envelope to its model-facing form: run the
57
+ * wrapped tool's own projection over the inner `result` (so a tool's host-only
58
+ * `meta` channel is still stripped), then re-attach the `systemReminder`. The
59
+ * envelope's own host-only `meta` marker is dropped. Returns null for anything
60
+ * that is not one of our envelopes, so the caller can project the raw output.
61
+ */
62
+ export declare function toToolReminderModelOutput(output: unknown, projectResult: (result: unknown) => unknown): {
63
+ type: 'json';
64
+ value: unknown;
65
+ } | null;
66
+ export declare function mergeReminderMetadata(message: UIMessage, addedReminders: UserReminderMetadata[]): void;
67
+ /**
68
+ * Create a reminder fragment, set on the engine via `engine.set()`. The engine
69
+ * folds it into the model's view when its `when` fires: `user` reminders bake a
70
+ * `<system-reminder>` into the last user message at save; `steer` injects mid-
71
+ * loop; `tool-output` wraps the tool result. Text may be a string, a `(ctx) =>
72
+ * string` factory (self-gates by returning `''`), or a context fragment.
73
+ *
74
+ * For `target: 'user'`, `when` is optional — omit it for an always-on
75
+ * instruction, or pass `once(id)` for a one-time reminder. `steer` and
76
+ * `tool-output` require a `when` trigger.
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * engine.set(reminder('Keep responses concise')); // user, always
81
+ * engine.set(reminder('Welcome!', { when: once('welcome') })); // user, one-time
82
+ * engine.set(reminder('RECAP', { when: everyNTurns(3), target: 'steer' }));
83
+ * ```
84
+ */
85
+ export declare function reminder(textOrFragment: ReminderText | ContextFragment, options?: ReminderOptions): ContextFragment;
86
+ /**
87
+ * Bake resolved user reminders into a message in place: append each as a
88
+ * `<system-reminder>` (inline or as its own part) and record the ranges in
89
+ * `metadata.reminders` so `stripReminders` can reverse it. The save fold is the
90
+ * only caller — user reminders are declared on the engine, not on `user()`.
91
+ */
92
+ export declare function applyUserRemindersToMessage(message: UIMessage, reminders: Array<{
93
+ text: SyncReminderText;
94
+ asPart: boolean;
95
+ metadata?: Record<string, unknown>;
96
+ }>): void;
97
+ /**
98
+ * Build the hidden synthetic user message injected mid-loop for steer reminders.
99
+ *
100
+ * Multiple reminder texts that fire at the same step boundary are folded into a
101
+ * single user message (one `<system-reminder>` text part each) so the model
102
+ * never sees two consecutive user messages — which providers like Anthropic
103
+ * reject. The `metadata.synthetic` marker lets the chain summary, title
104
+ * generation, and `stripReminders` treat these as non-conversational.
105
+ */
106
+ export declare function synthesizeSteerUserMessage(text: string | string[], firedAt: number, onceIds?: string[]): UIMessage & {
107
+ role: 'user';
108
+ };
109
+ export declare function isSyntheticSteerMessage(message: UIMessage): message is UIMessage & {
110
+ metadata: {
111
+ synthetic: SyntheticSteerMetadata;
112
+ };
113
+ };
114
+ //# sourceMappingURL=reminders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reminders.d.ts","sourceRoot":"","sources":["../../../../../src/lib/fragments/reminders/src/reminders.ts"],"names":[],"mappings":"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"}