@fastpaca/cria 1.0.1 → 1.1.3
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 +54 -44
- package/dist/ai-sdk/index.d.ts +29 -4
- package/dist/ai-sdk/index.d.ts.map +1 -1
- package/dist/ai-sdk/index.js +97 -25
- package/dist/ai-sdk/index.js.map +1 -1
- package/dist/anthropic/index.d.ts +31 -3
- package/dist/anthropic/index.d.ts.map +1 -1
- package/dist/anthropic/index.js +44 -1
- package/dist/anthropic/index.js.map +1 -1
- package/dist/components/index.d.ts +8 -9
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +7 -10
- package/dist/components/index.js.map +1 -1
- package/dist/components/summary.d.ts +2 -3
- package/dist/components/summary.d.ts.map +1 -1
- package/dist/components/summary.js +2 -2
- package/dist/components/summary.js.map +1 -1
- package/dist/components/vector-search.js +2 -2
- package/dist/components/vector-search.js.map +1 -1
- package/dist/dsl.d.ts +201 -0
- package/dist/dsl.d.ts.map +1 -0
- package/dist/dsl.js +320 -0
- package/dist/dsl.js.map +1 -0
- package/dist/index.d.ts +10 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -16
- package/dist/index.js.map +1 -1
- package/dist/jsx/index.d.ts +6 -0
- package/dist/jsx/index.d.ts.map +1 -0
- package/dist/jsx/index.js +7 -0
- package/dist/jsx/index.js.map +1 -0
- package/dist/jsx/jsx-dev-runtime.d.ts.map +1 -0
- package/dist/jsx/jsx-dev-runtime.js +3 -0
- package/dist/jsx/jsx-dev-runtime.js.map +1 -0
- package/dist/{jsx-runtime.d.ts → jsx/jsx-runtime.d.ts} +1 -1
- package/dist/jsx/jsx-runtime.d.ts.map +1 -0
- package/dist/{jsx-runtime.js → jsx/jsx-runtime.js} +2 -5
- package/dist/jsx/jsx-runtime.js.map +1 -0
- package/dist/memory/postgres.d.ts.map +1 -1
- package/dist/memory/postgres.js +16 -1
- package/dist/memory/postgres.js.map +1 -1
- package/dist/memory/redis.d.ts.map +1 -1
- package/dist/memory/redis.js +30 -3
- package/dist/memory/redis.js.map +1 -1
- package/dist/openai/index.d.ts +30 -3
- package/dist/openai/index.d.ts.map +1 -1
- package/dist/openai/index.js +47 -1
- package/dist/openai/index.js.map +1 -1
- package/dist/render.js +16 -4
- package/dist/render.js.map +1 -1
- package/dist/snapshot.d.ts.map +1 -1
- package/dist/snapshot.js +9 -5
- package/dist/snapshot.js.map +1 -1
- package/dist/types.d.ts +10 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +7 -2
- package/dist/types.js.map +1 -1
- package/package.json +27 -6
- package/dist/ai-sdk/index.test.d.ts +0 -2
- package/dist/ai-sdk/index.test.d.ts.map +0 -1
- package/dist/ai-sdk/index.test.js +0 -101
- package/dist/ai-sdk/index.test.js.map +0 -1
- package/dist/anthropic/index.test.d.ts +0 -2
- package/dist/anthropic/index.test.d.ts.map +0 -1
- package/dist/anthropic/index.test.js +0 -115
- package/dist/anthropic/index.test.js.map +0 -1
- package/dist/components/additional.test.d.ts +0 -2
- package/dist/components/additional.test.d.ts.map +0 -1
- package/dist/components/additional.test.js +0 -31
- package/dist/components/additional.test.js.map +0 -1
- package/dist/components/summary.test.d.ts +0 -2
- package/dist/components/summary.test.d.ts.map +0 -1
- package/dist/components/summary.test.js +0 -101
- package/dist/components/summary.test.js.map +0 -1
- package/dist/components/vector-search.test.d.ts +0 -2
- package/dist/components/vector-search.test.d.ts.map +0 -1
- package/dist/components/vector-search.test.js +0 -113
- package/dist/components/vector-search.test.js.map +0 -1
- package/dist/instrumentation/otel.test.d.ts +0 -2
- package/dist/instrumentation/otel.test.d.ts.map +0 -1
- package/dist/instrumentation/otel.test.js +0 -116
- package/dist/instrumentation/otel.test.js.map +0 -1
- package/dist/jsx-dev-runtime.d.ts.map +0 -1
- package/dist/jsx-dev-runtime.js +0 -2
- package/dist/jsx-dev-runtime.js.map +0 -1
- package/dist/jsx-runtime.d.ts.map +0 -1
- package/dist/jsx-runtime.js.map +0 -1
- package/dist/openai/index.test.d.ts +0 -2
- package/dist/openai/index.test.d.ts.map +0 -1
- package/dist/openai/index.test.js +0 -204
- package/dist/openai/index.test.js.map +0 -1
- package/dist/providers/index.d.ts +0 -2
- package/dist/providers/index.d.ts.map +0 -1
- package/dist/providers/index.js +0 -2
- package/dist/providers/index.js.map +0 -1
- package/dist/providers/types.d.ts +0 -2
- package/dist/providers/types.d.ts.map +0 -1
- package/dist/providers/types.js +0 -2
- package/dist/providers/types.js.map +0 -1
- package/dist/render.test.d.ts +0 -2
- package/dist/render.test.d.ts.map +0 -1
- package/dist/render.test.js +0 -167
- package/dist/render.test.js.map +0 -1
- package/dist/snapshot.test.d.ts +0 -2
- package/dist/snapshot.test.d.ts.map +0 -1
- package/dist/snapshot.test.js +0 -68
- package/dist/snapshot.test.js.map +0 -1
- /package/dist/{jsx-dev-runtime.d.ts → jsx/jsx-dev-runtime.d.ts} +0 -0
package/dist/dsl.js
ADDED
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent DSL for building prompts without JSX.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { cria } from "@fastpaca/cria";
|
|
7
|
+
*
|
|
8
|
+
* const prompt = await cria
|
|
9
|
+
* .prompt()
|
|
10
|
+
* .system("You are a helpful assistant.")
|
|
11
|
+
* .user("What is the capital of France?")
|
|
12
|
+
* .render({tokenizer, budget: 4000, renderer});
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @packageDocumentation
|
|
16
|
+
*/
|
|
17
|
+
import { Examples, Message, Omit, Region, Summary, Truncate, VectorSearch, } from "./components";
|
|
18
|
+
import { render as renderPrompt } from "./render";
|
|
19
|
+
/**
|
|
20
|
+
* Fluent builder for constructing prompt trees without JSX.
|
|
21
|
+
*
|
|
22
|
+
* Every method returns a new immutable builder instance.
|
|
23
|
+
* Call `.build()` to get the final `PromptElement`.
|
|
24
|
+
*/
|
|
25
|
+
export class PromptBuilder {
|
|
26
|
+
children;
|
|
27
|
+
context;
|
|
28
|
+
constructor(children = [], context = undefined) {
|
|
29
|
+
this.children = children;
|
|
30
|
+
this.context = context;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Create a new empty prompt builder.
|
|
34
|
+
*/
|
|
35
|
+
static create() {
|
|
36
|
+
return new PromptBuilder();
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Add a system message.
|
|
40
|
+
*/
|
|
41
|
+
system(text, opts) {
|
|
42
|
+
const priority = opts?.priority;
|
|
43
|
+
return this.addChild(Message({
|
|
44
|
+
messageRole: "system",
|
|
45
|
+
children: [text],
|
|
46
|
+
...(priority !== undefined ? { priority } : {}),
|
|
47
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Add a user message.
|
|
52
|
+
*/
|
|
53
|
+
user(text, opts) {
|
|
54
|
+
const priority = opts?.priority;
|
|
55
|
+
return this.addChild(Message({
|
|
56
|
+
messageRole: "user",
|
|
57
|
+
children: [text],
|
|
58
|
+
...(priority !== undefined ? { priority } : {}),
|
|
59
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
60
|
+
}));
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Add an assistant message.
|
|
64
|
+
*/
|
|
65
|
+
assistant(text, opts) {
|
|
66
|
+
const priority = opts?.priority;
|
|
67
|
+
return this.addChild(Message({
|
|
68
|
+
messageRole: "assistant",
|
|
69
|
+
children: [text],
|
|
70
|
+
...(priority !== undefined ? { priority } : {}),
|
|
71
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
72
|
+
}));
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Add a message with a custom role.
|
|
76
|
+
*/
|
|
77
|
+
message(role, text, opts) {
|
|
78
|
+
const priority = opts?.priority;
|
|
79
|
+
return this.addChild(Message({
|
|
80
|
+
messageRole: role,
|
|
81
|
+
children: [text],
|
|
82
|
+
...(priority !== undefined ? { priority } : {}),
|
|
83
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Add content that will be truncated when over budget.
|
|
88
|
+
*/
|
|
89
|
+
truncate(content, opts) {
|
|
90
|
+
const node = (async () => {
|
|
91
|
+
const children = await normalizeChild(content);
|
|
92
|
+
const props = {
|
|
93
|
+
children,
|
|
94
|
+
budget: opts.budget,
|
|
95
|
+
...(opts.from ? { from: opts.from } : {}),
|
|
96
|
+
...(opts.priority !== undefined ? { priority: opts.priority } : {}),
|
|
97
|
+
...(opts.id ? { id: opts.id } : {}),
|
|
98
|
+
};
|
|
99
|
+
return Truncate({
|
|
100
|
+
...props,
|
|
101
|
+
});
|
|
102
|
+
})();
|
|
103
|
+
return this.addChild(node);
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Add content that will be entirely removed when over budget.
|
|
107
|
+
*/
|
|
108
|
+
omit(content, opts) {
|
|
109
|
+
const node = (async () => {
|
|
110
|
+
const children = await normalizeChild(content);
|
|
111
|
+
const props = {
|
|
112
|
+
children,
|
|
113
|
+
...(opts?.priority !== undefined ? { priority: opts.priority } : {}),
|
|
114
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
115
|
+
};
|
|
116
|
+
return Omit(props);
|
|
117
|
+
})();
|
|
118
|
+
return this.addChild(node);
|
|
119
|
+
}
|
|
120
|
+
region(nameOrFn, maybeFn) {
|
|
121
|
+
if (typeof nameOrFn === "string") {
|
|
122
|
+
if (!maybeFn) {
|
|
123
|
+
throw new Error("region() requires a callback function");
|
|
124
|
+
}
|
|
125
|
+
return this.section(nameOrFn, maybeFn);
|
|
126
|
+
}
|
|
127
|
+
return this.section(nameOrFn);
|
|
128
|
+
}
|
|
129
|
+
section(nameOrFn, maybeFn) {
|
|
130
|
+
const name = typeof nameOrFn === "string" ? nameOrFn : undefined;
|
|
131
|
+
const fn = typeof nameOrFn === "string" ? maybeFn : nameOrFn;
|
|
132
|
+
if (!fn) {
|
|
133
|
+
const received = typeof nameOrFn === "string" ? typeof maybeFn : typeof nameOrFn;
|
|
134
|
+
throw new Error(`section() requires a callback function (e.g. cria.prompt().section("name", (s) => ...)). Received: ${received}`);
|
|
135
|
+
}
|
|
136
|
+
const inner = fn(new PromptBuilder([], this.context));
|
|
137
|
+
const element = (async () => {
|
|
138
|
+
const built = await inner.build();
|
|
139
|
+
return {
|
|
140
|
+
...built,
|
|
141
|
+
...(name ? { id: name } : {}),
|
|
142
|
+
};
|
|
143
|
+
})();
|
|
144
|
+
return this.addChild(element);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Merge another builder's contents into this one (zod-like merge).
|
|
148
|
+
* Contexts must be compatible (either identical or undefined).
|
|
149
|
+
*/
|
|
150
|
+
merge(...builders) {
|
|
151
|
+
const sources = [this, ...builders];
|
|
152
|
+
let nextContext = this.context;
|
|
153
|
+
const totalChildren = sources.reduce((sum, builder) => sum + builder.children.length, 0);
|
|
154
|
+
const mergedChildren = new Array(totalChildren);
|
|
155
|
+
let writeIndex = 0;
|
|
156
|
+
for (const builder of sources) {
|
|
157
|
+
if (builder.context && nextContext && builder.context !== nextContext) {
|
|
158
|
+
throw new Error("Cannot merge builders with different contexts/providers");
|
|
159
|
+
}
|
|
160
|
+
if (!nextContext) {
|
|
161
|
+
nextContext = builder.context;
|
|
162
|
+
}
|
|
163
|
+
for (const child of builder.children) {
|
|
164
|
+
mergedChildren[writeIndex] = child;
|
|
165
|
+
writeIndex += 1;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
mergedChildren.length = writeIndex;
|
|
169
|
+
return new PromptBuilder(mergedChildren, nextContext);
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Create a provider scope for AI-powered operations like Summary.
|
|
173
|
+
*
|
|
174
|
+
* @example
|
|
175
|
+
* ```typescript
|
|
176
|
+
* import { Provider } from "@fastpaca/cria/ai-sdk";
|
|
177
|
+
*
|
|
178
|
+
* const provider = new Provider(openai("gpt-4o"));
|
|
179
|
+
* .provider(provider, (p) =>
|
|
180
|
+
* p.summary(content, { id: "conv", store })
|
|
181
|
+
* )
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
provider(modelProvider, fn) {
|
|
185
|
+
const context = { provider: modelProvider };
|
|
186
|
+
const inner = fn(new PromptBuilder([], context));
|
|
187
|
+
const element = (async () => {
|
|
188
|
+
const built = await inner.build();
|
|
189
|
+
return {
|
|
190
|
+
priority: 0,
|
|
191
|
+
children: built.children,
|
|
192
|
+
context,
|
|
193
|
+
};
|
|
194
|
+
})();
|
|
195
|
+
return this.addChild(element);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Add vector search results (async, resolved at render time).
|
|
199
|
+
*/
|
|
200
|
+
vectorSearch(opts) {
|
|
201
|
+
const props = {
|
|
202
|
+
store: opts.store,
|
|
203
|
+
query: opts.query,
|
|
204
|
+
...(opts.limit !== undefined ? { limit: opts.limit } : {}),
|
|
205
|
+
...(opts.threshold !== undefined ? { threshold: opts.threshold } : {}),
|
|
206
|
+
...(opts.formatter ? { formatResults: opts.formatter } : {}),
|
|
207
|
+
...(opts.priority !== undefined ? { priority: opts.priority } : {}),
|
|
208
|
+
...(opts.id !== undefined ? { id: opts.id } : {}),
|
|
209
|
+
};
|
|
210
|
+
const asyncElement = VectorSearch(props);
|
|
211
|
+
return this.addChild(asyncElement);
|
|
212
|
+
}
|
|
213
|
+
/**
|
|
214
|
+
* Add content that will be summarized when over budget.
|
|
215
|
+
*/
|
|
216
|
+
summary(content, opts) {
|
|
217
|
+
const element = (async () => {
|
|
218
|
+
const children = await normalizeChild(content);
|
|
219
|
+
const props = {
|
|
220
|
+
id: opts.id,
|
|
221
|
+
store: opts.store,
|
|
222
|
+
children,
|
|
223
|
+
...(opts.summarize ? { summarize: opts.summarize } : {}),
|
|
224
|
+
...(opts.priority !== undefined ? { priority: opts.priority } : {}),
|
|
225
|
+
};
|
|
226
|
+
return Summary(props);
|
|
227
|
+
})();
|
|
228
|
+
return this.addChild(element);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Add a formatted list of examples.
|
|
232
|
+
*/
|
|
233
|
+
examples(title, items, opts) {
|
|
234
|
+
return this.addChild(Examples({
|
|
235
|
+
title,
|
|
236
|
+
children: items,
|
|
237
|
+
...(opts?.priority !== undefined ? { priority: opts.priority } : {}),
|
|
238
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
239
|
+
}));
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Add a raw PromptElement (escape hatch for advanced usage).
|
|
243
|
+
*/
|
|
244
|
+
raw(element) {
|
|
245
|
+
return this.addChild(element);
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Build the final PromptElement tree.
|
|
249
|
+
*/
|
|
250
|
+
async build() {
|
|
251
|
+
return Region({
|
|
252
|
+
priority: 0,
|
|
253
|
+
children: await normalizeChildren(this.children),
|
|
254
|
+
...(this.context && { context: this.context }),
|
|
255
|
+
});
|
|
256
|
+
}
|
|
257
|
+
/**
|
|
258
|
+
* Render the prompt directly using the provided options.
|
|
259
|
+
* Equivalent to `render(await builder.build(), options)`.
|
|
260
|
+
*/
|
|
261
|
+
async render(options) {
|
|
262
|
+
const element = await this.build();
|
|
263
|
+
return (await renderPrompt(element, options));
|
|
264
|
+
}
|
|
265
|
+
addChild(child) {
|
|
266
|
+
return new PromptBuilder([...this.children, child], this.context);
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Namespace for building prompts without JSX.
|
|
271
|
+
*
|
|
272
|
+
* @example
|
|
273
|
+
* ```typescript
|
|
274
|
+
* import { cria } from "@fastpaca/cria";
|
|
275
|
+
*
|
|
276
|
+
* const prompt = cria
|
|
277
|
+
* .prompt()
|
|
278
|
+
* .system("You are helpful.")
|
|
279
|
+
* .user("Hello!")
|
|
280
|
+
* .build();
|
|
281
|
+
* ```
|
|
282
|
+
*/
|
|
283
|
+
export const cria = {
|
|
284
|
+
prompt: () => PromptBuilder.create(),
|
|
285
|
+
merge: (...builders) => {
|
|
286
|
+
const [first, ...rest] = builders;
|
|
287
|
+
if (!first) {
|
|
288
|
+
return PromptBuilder.create();
|
|
289
|
+
}
|
|
290
|
+
return first.merge(...rest);
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
/**
|
|
294
|
+
* Standalone function to create a new prompt builder.
|
|
295
|
+
*/
|
|
296
|
+
export const prompt = () => PromptBuilder.create();
|
|
297
|
+
/**
|
|
298
|
+
* Merge multiple builders into one (zod-like merge).
|
|
299
|
+
*/
|
|
300
|
+
export const merge = (...builders) => cria.merge(...builders);
|
|
301
|
+
// Utility to recursively build and expand / resolve children
|
|
302
|
+
async function normalizeChild(child) {
|
|
303
|
+
if (typeof child === "string") {
|
|
304
|
+
return [child];
|
|
305
|
+
}
|
|
306
|
+
if (child instanceof Promise) {
|
|
307
|
+
const resolved = await child;
|
|
308
|
+
return [resolved];
|
|
309
|
+
}
|
|
310
|
+
if (child instanceof PromptBuilder) {
|
|
311
|
+
const built = await child.build();
|
|
312
|
+
return [built];
|
|
313
|
+
}
|
|
314
|
+
return [child];
|
|
315
|
+
}
|
|
316
|
+
async function normalizeChildren(children) {
|
|
317
|
+
const normalized = await Promise.all(children.map((child) => normalizeChild(child)));
|
|
318
|
+
return normalized.flat();
|
|
319
|
+
}
|
|
320
|
+
//# sourceMappingURL=dsl.js.map
|
package/dist/dsl.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../src/dsl.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,29 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cria -
|
|
2
|
+
* Cria - fluent DSL for prompt composition.
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
5
|
-
* ```
|
|
6
|
-
* import {
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { cria } from "@fastpaca/cria";
|
|
7
7
|
*
|
|
8
|
-
* const
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* <Omit priority={3}>
|
|
15
|
-
* {optionalContext}
|
|
16
|
-
* </Omit>
|
|
17
|
-
* </Region>
|
|
18
|
-
* );
|
|
19
|
-
*
|
|
20
|
-
* const result = await render(prompt, { tokenizer, budget: 128000 });
|
|
8
|
+
* const result = await cria
|
|
9
|
+
* .prompt()
|
|
10
|
+
* .system("You are a helpful assistant.")
|
|
11
|
+
* .truncate(conversationHistory, { budget: 20000, from: "start", priority: 2 })
|
|
12
|
+
* .omit(optionalContext, { priority: 3 })
|
|
13
|
+
* .render({ tokenizer, budget: 128000 });
|
|
21
14
|
* ```
|
|
22
15
|
*
|
|
23
16
|
* @packageDocumentation
|
|
24
17
|
*/
|
|
25
18
|
export type { ResultFormatter, StoredSummary, Summarizer, SummarizerContext, } from "./components";
|
|
26
19
|
export { CodeBlock, Examples, Last, Message, Omit, Reasoning, Region, Separator, Summary, ToolCall, ToolResult, Truncate, VectorSearch, } from "./components";
|
|
20
|
+
export { cria, merge, PromptBuilder, prompt } from "./dsl";
|
|
27
21
|
export { createOtelRenderHooks } from "./instrumentation/otel";
|
|
28
22
|
export type { KVMemory, MemoryEntry, VectorMemory, VectorSearchOptions, VectorSearchResult, } from "./memory";
|
|
29
23
|
export { InMemoryStore } from "./memory";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,YAAY,EACV,eAAe,EACf,aAAa,EACb,UAAU,EACV,iBAAiB,GAClB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,aAAa,EACb,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,KAAK,QAAQ,EACb,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,aAAa,EACb,cAAc,EACd,SAAS,GACV,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,28 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Cria -
|
|
2
|
+
* Cria - fluent DSL for prompt composition.
|
|
3
3
|
*
|
|
4
4
|
* @example
|
|
5
|
-
* ```
|
|
6
|
-
* import {
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { cria } from "@fastpaca/cria";
|
|
7
7
|
*
|
|
8
|
-
* const
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* <Omit priority={3}>
|
|
15
|
-
* {optionalContext}
|
|
16
|
-
* </Omit>
|
|
17
|
-
* </Region>
|
|
18
|
-
* );
|
|
19
|
-
*
|
|
20
|
-
* const result = await render(prompt, { tokenizer, budget: 128000 });
|
|
8
|
+
* const result = await cria
|
|
9
|
+
* .prompt()
|
|
10
|
+
* .system("You are a helpful assistant.")
|
|
11
|
+
* .truncate(conversationHistory, { budget: 20000, from: "start", priority: 2 })
|
|
12
|
+
* .omit(optionalContext, { priority: 3 })
|
|
13
|
+
* .render({ tokenizer, budget: 128000 });
|
|
21
14
|
* ```
|
|
22
15
|
*
|
|
23
16
|
* @packageDocumentation
|
|
24
17
|
*/
|
|
25
18
|
export { CodeBlock, Examples, Last, Message, Omit, Reasoning, Region, Separator, Summary, ToolCall, ToolResult, Truncate, VectorSearch, } from "./components";
|
|
19
|
+
// DSL
|
|
20
|
+
export { cria, merge, PromptBuilder, prompt } from "./dsl";
|
|
26
21
|
export { createOtelRenderHooks } from "./instrumentation/otel";
|
|
27
22
|
// LLM Memory
|
|
28
23
|
export { InMemoryStore } from "./memory";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAQH,OAAO,EACL,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,SAAS,EACT,MAAM,EACN,SAAS,EACT,OAAO,EACP,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,YAAY,GACb,MAAM,cAAc,CAAC;AACtB,MAAM;AACN,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAQ/D,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAUzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,GAKd,MAAM,YAAY,CAAC;AAqBpB,OAAO,EACL,QAAQ,EACR,eAAe,EACf,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional JSX surface. Prefer the fluent DSL from `@fastpaca/cria` as the default.
|
|
3
|
+
*/
|
|
4
|
+
// biome-ignore lint/performance/noBarrelFile: JSX entrypoint intentionally re-exports components
|
|
5
|
+
export * from "../components";
|
|
6
|
+
export { Fragment, jsx, jsxs } from "./jsx-runtime";
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,iGAAiG;AACjG,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-dev-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx/jsx-dev-runtime.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-dev-runtime.js","sourceRoot":"","sources":["../../src/jsx/jsx-dev-runtime.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAAE,QAAQ,EAAY,GAAG,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MaybePromise, PromptChildren, PromptElement } from "
|
|
1
|
+
import type { MaybePromise, PromptChildren, PromptElement } from "../types";
|
|
2
2
|
type ComponentFn = (props: Props) => MaybePromise<PromptElement>;
|
|
3
3
|
/**
|
|
4
4
|
* JSX child input type (pre-normalization).
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.d.ts","sourceRoot":"","sources":["../../src/jsx/jsx-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE5E,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,YAAY,CAAC,aAAa,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,KAAK,GACb,aAAa,GACb,OAAO,CAAC,aAAa,CAAC,GACtB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,GACT,SAAS,KAAK,EAAE,CAAC;AAErB,KAAK,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAA;CAAE,CAAC;AAmC5D,eAAO,MAAM,QAAQ,eAA8B,CAAC;AAGpD,wBAAsB,GAAG,CACvB,IAAI,EAAE,WAAW,GAAG,OAAO,QAAQ,EACnC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,aAAa,CAAC,CASxB;AAGD,wBAAsB,IAAI,CACxB,IAAI,EAAE,WAAW,GAAG,OAAO,QAAQ,EACnC,KAAK,EAAE,KAAK,GACX,OAAO,CAAC,aAAa,CAAC,CAExB;AAGD,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,OAAO,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAE3C,KAAK,wBAAwB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS;QAC/C,QAAQ,CAAC,EAAE,cAAc,CAAC;KAC3B,GACG,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG;QAAE,QAAQ,CAAC,EAAE,KAAK,CAAA;KAAE,GAC1C,CAAC,CAAC;IACN,UAAU,iBAAiB;QACzB,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAAC;KACtB;IACD,UAAU,wBAAwB;QAChC,QAAQ,EAAE,OAAO,CAAC;KACnB;CACF"}
|
|
@@ -13,11 +13,8 @@ async function normalizeChildren(children) {
|
|
|
13
13
|
return [String(children)];
|
|
14
14
|
}
|
|
15
15
|
if (isChildrenArray(children)) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
result.push(...(await normalizeChildren(child)));
|
|
19
|
-
}
|
|
20
|
-
return result;
|
|
16
|
+
const normalized = await Promise.all(children.map((child) => normalizeChildren(child)));
|
|
17
|
+
return normalized.flat();
|
|
21
18
|
}
|
|
22
19
|
// It's a PromptElement (or a promise for one)
|
|
23
20
|
return [await children];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx-runtime.js","sourceRoot":"","sources":["../../src/jsx/jsx-runtime.ts"],"names":[],"mappings":"AA+BA,gFAAgF;AAChF,KAAK,UAAU,iBAAiB,CAC9B,QAA2B;IAE3B,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,SAAS,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5B,CAAC;IAED,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9B,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG,CAClC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAClD,CAAC;QACF,OAAO,UAAU,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED,8CAA8C;IAC9C,OAAO,CAAC,MAAM,QAAQ,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,eAAe,CAAC,KAAY;IACnC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,wDAAwD;AACxD,MAAM,CAAC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;AAEpD,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,IAAmC,EACnC,KAAY;IAEZ,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEzD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtB,8DAA8D;QAC9D,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,MAAM,IAAI,CAAC,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,IAAmC,EACnC,KAAY;IAEZ,OAAO,MAAM,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/memory/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../src/memory/postgres.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAErC,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAwBzD;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,UAAU;IACtD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAaD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,qBAAa,aAAa,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAC5B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAU;IAC1C,OAAO,CAAC,YAAY,CAAS;gBAEjB,OAAO,GAAE,oBAAyB;YAShC,WAAW;IAkBnB,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAsBhD,GAAG,CACP,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;IAyBV,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW3C;;;OAGG;IACG,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAG3B;AAGD,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/memory/postgres.js
CHANGED
|
@@ -1,4 +1,18 @@
|
|
|
1
1
|
import { Pool } from "pg";
|
|
2
|
+
const IDENTIFIER_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
|
|
3
|
+
const sanitizeIdentifier = (identifier) => {
|
|
4
|
+
const parts = identifier.split(".");
|
|
5
|
+
if (parts.length === 0) {
|
|
6
|
+
throw new Error("Table name must not be empty");
|
|
7
|
+
}
|
|
8
|
+
const sanitized = parts.map((part) => {
|
|
9
|
+
if (!IDENTIFIER_PATTERN.test(part)) {
|
|
10
|
+
throw new Error("Invalid table name: use letters, numbers, and underscores (optionally schema.table)");
|
|
11
|
+
}
|
|
12
|
+
return `"${part}"`;
|
|
13
|
+
});
|
|
14
|
+
return sanitized.join(".");
|
|
15
|
+
};
|
|
2
16
|
/**
|
|
3
17
|
* Postgres-backed implementation of KVMemory.
|
|
4
18
|
*
|
|
@@ -41,8 +55,9 @@ export class PostgresStore {
|
|
|
41
55
|
tableCreated = false;
|
|
42
56
|
constructor(options = {}) {
|
|
43
57
|
const { tableName, autoCreateTable, ...poolConfig } = options;
|
|
58
|
+
const sanitizedTableName = sanitizeIdentifier(tableName ?? "cria_kv_store");
|
|
59
|
+
this.tableName = sanitizedTableName;
|
|
44
60
|
this.pool = new Pool(poolConfig);
|
|
45
|
-
this.tableName = tableName ?? "cria_kv_store";
|
|
46
61
|
this.autoCreateTable = autoCreateTable ?? true;
|
|
47
62
|
}
|
|
48
63
|
async ensureTable() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/memory/postgres.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../src/memory/postgres.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/memory/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"redis.d.ts","sourceRoot":"","sources":["../../src/memory/redis.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAsDD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,qBAAa,UAAU,CAAC,CAAC,GAAG,OAAO,CAAE,YAAW,QAAQ,CAAC,CAAC,CAAC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAS;gBAEzB,OAAO,GAAE,iBAAsB;IAW3C,OAAO,CAAC,WAAW;IAIb,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAkBhD,GAAG,CACP,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,CAAC,EACP,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,IAAI,CAAC;IA6BV,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAGlC;AAGD,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/memory/redis.js
CHANGED
|
@@ -1,4 +1,30 @@
|
|
|
1
1
|
import Redis from "ioredis";
|
|
2
|
+
const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
3
|
+
const parseStoredEntry = (raw, key) => {
|
|
4
|
+
let parsed;
|
|
5
|
+
try {
|
|
6
|
+
parsed = JSON.parse(raw);
|
|
7
|
+
}
|
|
8
|
+
catch (error) {
|
|
9
|
+
throw new Error(`RedisStore: invalid JSON stored for key "${key}": ${String(error)}`);
|
|
10
|
+
}
|
|
11
|
+
if (!isRecord(parsed)) {
|
|
12
|
+
throw new Error(`RedisStore: stored value for key "${key}" is not an object`);
|
|
13
|
+
}
|
|
14
|
+
const { data, createdAt, updatedAt, metadata } = parsed;
|
|
15
|
+
if (typeof createdAt !== "number" || typeof updatedAt !== "number") {
|
|
16
|
+
throw new Error(`RedisStore: stored value for key "${key}" is missing createdAt/updatedAt timestamps`);
|
|
17
|
+
}
|
|
18
|
+
if (metadata !== undefined && !isRecord(metadata)) {
|
|
19
|
+
throw new Error(`RedisStore: stored metadata for key "${key}" must be an object if present`);
|
|
20
|
+
}
|
|
21
|
+
return {
|
|
22
|
+
data: data,
|
|
23
|
+
createdAt,
|
|
24
|
+
updatedAt,
|
|
25
|
+
...(metadata ? { metadata } : {}),
|
|
26
|
+
};
|
|
27
|
+
};
|
|
2
28
|
/**
|
|
3
29
|
* Redis-backed implementation of KVMemory.
|
|
4
30
|
*
|
|
@@ -49,11 +75,12 @@ export class RedisStore {
|
|
|
49
75
|
return `${this.prefix}${key}`;
|
|
50
76
|
}
|
|
51
77
|
async get(key) {
|
|
52
|
-
const
|
|
78
|
+
const prefixedKey = this.prefixedKey(key);
|
|
79
|
+
const raw = await this.client.get(prefixedKey);
|
|
53
80
|
if (raw === null) {
|
|
54
81
|
return null;
|
|
55
82
|
}
|
|
56
|
-
const stored =
|
|
83
|
+
const stored = parseStoredEntry(raw, prefixedKey);
|
|
57
84
|
return {
|
|
58
85
|
data: stored.data,
|
|
59
86
|
createdAt: stored.createdAt,
|
|
@@ -68,7 +95,7 @@ export class RedisStore {
|
|
|
68
95
|
const existingRaw = await this.client.get(prefixedKey);
|
|
69
96
|
let createdAt = now;
|
|
70
97
|
if (existingRaw !== null) {
|
|
71
|
-
const existing =
|
|
98
|
+
const existing = parseStoredEntry(existingRaw, prefixedKey);
|
|
72
99
|
createdAt = existing.createdAt;
|
|
73
100
|
}
|
|
74
101
|
const entry = {
|
package/dist/memory/redis.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/memory/redis.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,SAAS,CAAC;AAiC5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,MAAM,OAAO,UAAU;IACJ,MAAM,CAAQ;IACd,MAAM,CAAS;IACf,UAAU,CAAU;IAErC,YAAY,UAA6B,EAAE;QACzC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,CAAC;QAE3D,IAAI,CAAC,MAAM,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,SAAS,IAAI,UAAU,CAAC;QAEtC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,GAAW;QAC7B,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"redis.js","sourceRoot":"","sources":["../../src/memory/redis.ts"],"names":[],"mappings":"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"}
|