@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.
- package/README.md +7 -7
- package/dist/browser.d.ts +2 -0
- package/dist/browser.d.ts.map +1 -1
- package/dist/browser.js +29 -26
- package/dist/browser.js.map +4 -4
- package/dist/index.d.ts +1 -9
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4263 -4249
- package/dist/index.js.map +4 -4
- package/dist/lib/agent.d.ts +13 -7
- package/dist/lib/agent.d.ts.map +1 -1
- package/dist/lib/engine.d.ts +1 -1
- package/dist/lib/engine.d.ts.map +1 -1
- package/dist/lib/fragments/message/user.d.ts +2 -213
- package/dist/lib/fragments/message/user.d.ts.map +1 -1
- package/dist/lib/fragments/reminders/index.d.ts +3 -0
- package/dist/lib/fragments/reminders/index.d.ts.map +1 -0
- package/dist/lib/{save/reminder-eval.d.ts → fragments/reminders/src/evaluate.d.ts} +2 -2
- package/dist/lib/fragments/reminders/src/evaluate.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/src/index.d.ts +5 -0
- package/dist/lib/fragments/reminders/src/index.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/src/predicates/classifier.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/{combinators.d.ts → src/predicates/combinators.d.ts} +1 -1
- package/dist/lib/fragments/reminders/src/predicates/combinators.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/{content-predicates.d.ts → src/predicates/content.d.ts} +2 -2
- package/dist/lib/fragments/reminders/src/predicates/content.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/src/predicates/index.d.ts +9 -0
- package/dist/lib/fragments/reminders/src/predicates/index.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/{message-predicates.d.ts → src/predicates/message.d.ts} +3 -7
- package/dist/lib/fragments/reminders/src/predicates/message.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/{once.d.ts → src/predicates/once.d.ts} +1 -1
- package/dist/lib/fragments/reminders/src/predicates/once.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/{tool-predicates.d.ts → src/predicates/tool.d.ts} +2 -3
- package/dist/lib/fragments/reminders/src/predicates/tool.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/{turn-predicates.d.ts → src/predicates/turn.d.ts} +2 -2
- package/dist/lib/fragments/reminders/src/predicates/turn.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/src/predicates/usage.d.ts +3 -0
- package/dist/lib/fragments/reminders/src/predicates/usage.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/src/reminders.d.ts +114 -0
- package/dist/lib/fragments/reminders/src/reminders.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/src/types.d.ts +114 -0
- package/dist/lib/fragments/reminders/src/types.d.ts.map +1 -0
- package/dist/lib/fragments/reminders/temporal/elapsed.d.ts +1 -1
- package/dist/lib/fragments/reminders/temporal/elapsed.d.ts.map +1 -1
- package/dist/lib/fragments/reminders/temporal/predicates.d.ts +1 -1
- package/dist/lib/fragments/reminders/temporal/predicates.d.ts.map +1 -1
- package/dist/lib/fragments/reminders/temporal/reminder.d.ts.map +1 -1
- package/dist/lib/skills/skill-reminder.d.ts +1 -1
- package/dist/lib/skills/skill-reminder.d.ts.map +1 -1
- package/dist/lib/title.d.ts.map +1 -1
- package/dist/spec/test/global-setup.d.ts +4 -0
- package/dist/spec/test/global-setup.d.ts.map +1 -0
- package/dist/spec/test/helpers/sqlite-container.d.ts +19 -0
- package/dist/spec/test/helpers/sqlite-container.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/lib/fragments/reminders/classifier.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/combinators.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/content-predicates.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/message-predicates.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/once.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/tool-predicates.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/turn-predicates.d.ts.map +0 -1
- package/dist/lib/fragments/reminders/usage-predicates.d.ts +0 -3
- package/dist/lib/fragments/reminders/usage-predicates.d.ts.map +0 -1
- package/dist/lib/save/reminder-eval.d.ts.map +0 -1
- /package/dist/lib/fragments/reminders/{classifier.d.ts → src/predicates/classifier.d.ts} +0 -0
package/dist/lib/agent.d.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}, string |
|
|
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
|
}
|
package/dist/lib/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,MAAM,EACN,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,OAAO,EAMZ,YAAY,EAKb,MAAM,IAAI,CAAC;AAIZ,OAAO,EAAE,KAAK,aAAa,EAAe,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAMtB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/lib/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/engine.d.ts
CHANGED
|
@@ -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.
|
package/dist/lib/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/lib/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,kBAAkB,EAEvB,KAAK,mBAAmB,EACxB,KAAK,IAAI,EACT,KAAK,SAAS,EAIf,MAAM,IAAI,CAAC;AAGZ,OAAO,EACL,KAAK,cAAc,EAGpB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,eAAe,EAKrB,MAAM,gBAAgB,CAAC;
|
|
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
|
|
2
|
-
import { type
|
|
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":"AAAA,OAAO,
|
|
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 @@
|
|
|
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 '
|
|
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=
|
|
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 '../
|
|
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"}
|
package/dist/lib/fragments/reminders/{content-predicates.d.ts → src/predicates/content.d.ts}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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"}
|
package/dist/lib/fragments/reminders/{message-predicates.d.ts → src/predicates/message.d.ts}
RENAMED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
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
|
|
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"}
|
|
@@ -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 {
|
|
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
|
|
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 '../
|
|
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
|
|
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 @@
|
|
|
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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"}
|