@deepagents/context 0.28.0 → 0.29.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/browser.js +75 -45
- package/dist/browser.js.map +3 -3
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +224 -82
- package/dist/index.js.map +4 -4
- package/dist/lib/chat.d.ts +1 -1
- package/dist/lib/chat.d.ts.map +1 -1
- package/dist/lib/engine.d.ts.map +1 -1
- package/dist/lib/fragments/message/user.d.ts +59 -22
- package/dist/lib/fragments/message/user.d.ts.map +1 -1
- package/dist/lib/fragments/reasoning.d.ts +17 -0
- package/dist/lib/fragments/reasoning.d.ts.map +1 -0
- package/package.json +4 -4
- package/dist/example-error-recovery.d.ts +0 -2
- package/dist/example-error-recovery.d.ts.map +0 -1
package/dist/browser.js
CHANGED
|
@@ -901,6 +901,33 @@ async function estimate(modelId, renderer, ...fragments) {
|
|
|
901
901
|
|
|
902
902
|
// packages/context/src/lib/fragments/message/user.ts
|
|
903
903
|
import { generateId as generateId2, isTextUIPart } from "ai";
|
|
904
|
+
function everyNTurns(n) {
|
|
905
|
+
return (turn) => turn % n === 0;
|
|
906
|
+
}
|
|
907
|
+
function once() {
|
|
908
|
+
return (turn) => turn === 1;
|
|
909
|
+
}
|
|
910
|
+
function firstN(n) {
|
|
911
|
+
return (turn) => turn <= n;
|
|
912
|
+
}
|
|
913
|
+
function afterTurn(n) {
|
|
914
|
+
return (turn) => turn > n;
|
|
915
|
+
}
|
|
916
|
+
function and(...predicates) {
|
|
917
|
+
return (turn) => predicates.every((p) => p(turn));
|
|
918
|
+
}
|
|
919
|
+
function or(...predicates) {
|
|
920
|
+
return (turn) => predicates.some((p) => p(turn));
|
|
921
|
+
}
|
|
922
|
+
function not(predicate) {
|
|
923
|
+
return (turn) => !predicate(turn);
|
|
924
|
+
}
|
|
925
|
+
function isConditionalReminder(fragment2) {
|
|
926
|
+
return fragment2.name === "reminder" && !!fragment2.metadata?.reminder;
|
|
927
|
+
}
|
|
928
|
+
function getConditionalReminder(fragment2) {
|
|
929
|
+
return fragment2.metadata.reminder;
|
|
930
|
+
}
|
|
904
931
|
var SYSTEM_REMINDER_OPEN_TAG = "<system-reminder>";
|
|
905
932
|
var SYSTEM_REMINDER_CLOSE_TAG = "</system-reminder>";
|
|
906
933
|
function getReminderRanges(metadata) {
|
|
@@ -1035,66 +1062,61 @@ function applyPartReminder(message2, value) {
|
|
|
1035
1062
|
mode: "part"
|
|
1036
1063
|
};
|
|
1037
1064
|
}
|
|
1038
|
-
function
|
|
1039
|
-
return
|
|
1065
|
+
function resolveReminderText(item, ctx) {
|
|
1066
|
+
return typeof item.text === "function" ? item.text(ctx) : item.text;
|
|
1040
1067
|
}
|
|
1041
|
-
function
|
|
1042
|
-
|
|
1043
|
-
if (
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
return
|
|
1068
|
+
function applyReminderToMessage(message2, item, ctx) {
|
|
1069
|
+
const resolvedText = resolveReminderText(item, ctx);
|
|
1070
|
+
if (resolvedText.trim().length === 0) {
|
|
1071
|
+
return null;
|
|
1072
|
+
}
|
|
1073
|
+
return item.asPart ? applyPartReminder(message2, resolvedText) : applyInlineReminder(message2, resolvedText);
|
|
1074
|
+
}
|
|
1075
|
+
function mergeReminderMetadata(message2, addedReminders) {
|
|
1076
|
+
if (addedReminders.length === 0) return;
|
|
1077
|
+
const metadata = isRecord(message2.metadata) ? { ...message2.metadata } : {};
|
|
1078
|
+
const existing = Array.isArray(metadata.reminders) ? metadata.reminders : [];
|
|
1079
|
+
metadata.reminders = [...existing, ...addedReminders];
|
|
1080
|
+
message2.metadata = metadata;
|
|
1050
1081
|
}
|
|
1051
1082
|
function reminder(text, options) {
|
|
1052
1083
|
if (typeof text === "string") {
|
|
1053
1084
|
assertReminderText(text);
|
|
1054
1085
|
}
|
|
1086
|
+
if (options && "when" in options && options.when) {
|
|
1087
|
+
return {
|
|
1088
|
+
name: "reminder",
|
|
1089
|
+
metadata: {
|
|
1090
|
+
reminder: {
|
|
1091
|
+
text,
|
|
1092
|
+
when: options.when,
|
|
1093
|
+
asPart: options.asPart ?? false
|
|
1094
|
+
}
|
|
1095
|
+
}
|
|
1096
|
+
};
|
|
1097
|
+
}
|
|
1055
1098
|
return {
|
|
1056
1099
|
text,
|
|
1057
|
-
asPart: options?.asPart ?? false
|
|
1058
|
-
...options?.everyNTurns !== void 0 && {
|
|
1059
|
-
everyNTurns: options.everyNTurns
|
|
1060
|
-
},
|
|
1061
|
-
...options?.once !== void 0 && { once: options.once },
|
|
1062
|
-
...options?.firstN !== void 0 && { firstN: options.firstN },
|
|
1063
|
-
...options?.afterTurn !== void 0 && { afterTurn: options.afterTurn },
|
|
1064
|
-
...options?.when !== void 0 && { when: options.when }
|
|
1100
|
+
asPart: options?.asPart ?? false
|
|
1065
1101
|
};
|
|
1066
1102
|
}
|
|
1067
|
-
function resolveReminderText(item, ctx) {
|
|
1068
|
-
return typeof item.text === "function" ? item.text(ctx) : item.text;
|
|
1069
|
-
}
|
|
1070
1103
|
function user(content, ...reminders) {
|
|
1071
1104
|
const message2 = typeof content === "string" ? {
|
|
1072
1105
|
id: generateId2(),
|
|
1073
1106
|
role: "user",
|
|
1074
1107
|
parts: [{ type: "text", text: content }]
|
|
1075
1108
|
} : { ...content, role: "user", parts: [...content.parts] };
|
|
1076
|
-
|
|
1077
|
-
const scheduledReminders = reminders.filter((r) => hasSchedule(r));
|
|
1078
|
-
if (immediateReminders.length > 0) {
|
|
1079
|
-
const addedReminders = [];
|
|
1109
|
+
if (reminders.length > 0) {
|
|
1080
1110
|
const plainText = extractPlainText(message2);
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
}
|
|
1086
|
-
addedReminders.push(
|
|
1087
|
-
item.asPart ? applyPartReminder(message2, resolvedText) : applyInlineReminder(message2, resolvedText)
|
|
1088
|
-
);
|
|
1089
|
-
}
|
|
1090
|
-
if (addedReminders.length > 0) {
|
|
1091
|
-
const metadata = isRecord(message2.metadata) ? { ...message2.metadata } : {};
|
|
1092
|
-
const existingReminders = Array.isArray(metadata.reminders) ? metadata.reminders : [];
|
|
1093
|
-
metadata.reminders = [...existingReminders, ...addedReminders];
|
|
1094
|
-
message2.metadata = metadata;
|
|
1111
|
+
const addedReminders = [];
|
|
1112
|
+
for (const item of reminders) {
|
|
1113
|
+
const meta = applyReminderToMessage(message2, item, {
|
|
1114
|
+
content: plainText
|
|
1115
|
+
});
|
|
1116
|
+
if (meta) addedReminders.push(meta);
|
|
1095
1117
|
}
|
|
1118
|
+
mergeReminderMetadata(message2, addedReminders);
|
|
1096
1119
|
}
|
|
1097
|
-
const fragmentMetadata = scheduledReminders.length > 0 ? { scheduledReminders } : void 0;
|
|
1098
1120
|
return {
|
|
1099
1121
|
id: message2.id,
|
|
1100
1122
|
name: "user",
|
|
@@ -1107,8 +1129,7 @@ function user(content, ...reminders) {
|
|
|
1107
1129
|
encode() {
|
|
1108
1130
|
return message2;
|
|
1109
1131
|
}
|
|
1110
|
-
}
|
|
1111
|
-
metadata: fragmentMetadata
|
|
1132
|
+
}
|
|
1112
1133
|
};
|
|
1113
1134
|
}
|
|
1114
1135
|
|
|
@@ -2174,35 +2195,45 @@ export {
|
|
|
2174
2195
|
TomlRenderer,
|
|
2175
2196
|
ToonRenderer,
|
|
2176
2197
|
XmlRenderer,
|
|
2198
|
+
afterTurn,
|
|
2177
2199
|
alias,
|
|
2178
2200
|
analogy,
|
|
2201
|
+
and,
|
|
2179
2202
|
applyInlineReminder,
|
|
2180
2203
|
applyPartReminder,
|
|
2204
|
+
applyReminderToMessage,
|
|
2181
2205
|
assistant,
|
|
2182
2206
|
assistantText,
|
|
2183
2207
|
clarification,
|
|
2184
2208
|
correction,
|
|
2185
2209
|
defaultTokenizer,
|
|
2186
2210
|
estimate,
|
|
2211
|
+
everyNTurns,
|
|
2187
2212
|
example,
|
|
2188
2213
|
explain,
|
|
2189
2214
|
fail,
|
|
2215
|
+
firstN,
|
|
2190
2216
|
fragment,
|
|
2191
2217
|
fromFragment,
|
|
2218
|
+
getConditionalReminder,
|
|
2192
2219
|
getFragmentData,
|
|
2193
2220
|
getModelsRegistry,
|
|
2194
2221
|
getReminderRanges,
|
|
2195
2222
|
glossary,
|
|
2196
2223
|
guardrail,
|
|
2197
|
-
hasSchedule,
|
|
2198
2224
|
hint,
|
|
2199
2225
|
identity,
|
|
2226
|
+
isConditionalReminder,
|
|
2200
2227
|
isFragment,
|
|
2201
2228
|
isFragmentObject,
|
|
2202
2229
|
isLazyFragment,
|
|
2203
2230
|
isMessageFragment,
|
|
2204
2231
|
lastAssistantMessage,
|
|
2232
|
+
mergeReminderMetadata,
|
|
2205
2233
|
message,
|
|
2234
|
+
not,
|
|
2235
|
+
once,
|
|
2236
|
+
or,
|
|
2206
2237
|
pass,
|
|
2207
2238
|
persistedWriter,
|
|
2208
2239
|
persona,
|
|
@@ -2215,7 +2246,6 @@ export {
|
|
|
2215
2246
|
resolveReminderText,
|
|
2216
2247
|
role,
|
|
2217
2248
|
runGuardrailChain,
|
|
2218
|
-
shouldIncludeReminder,
|
|
2219
2249
|
soul,
|
|
2220
2250
|
stop,
|
|
2221
2251
|
stripReminders,
|