@fastpaca/cria 1.2.0 → 1.4.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 +29 -7
- package/dist/components/summary.d.ts +12 -13
- package/dist/components/summary.d.ts.map +1 -1
- package/dist/components/summary.js +26 -26
- package/dist/components/summary.js.map +1 -1
- package/dist/components/vector-search.d.ts +8 -3
- package/dist/components/vector-search.d.ts.map +1 -1
- package/dist/components/vector-search.js.map +1 -1
- package/dist/dsl.d.ts +117 -85
- package/dist/dsl.d.ts.map +1 -1
- package/dist/dsl.js +232 -124
- package/dist/dsl.js.map +1 -1
- package/dist/eval/index.d.ts +38 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +34 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/judge.d.ts +19 -0
- package/dist/eval/judge.d.ts.map +1 -0
- package/dist/eval/judge.js +46 -0
- package/dist/eval/judge.js.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/integrations/ai-sdk.d.ts +22 -0
- package/dist/integrations/ai-sdk.d.ts.map +1 -0
- package/dist/integrations/ai-sdk.js +172 -0
- package/dist/integrations/ai-sdk.js.map +1 -0
- package/dist/integrations/anthropic.d.ts +50 -0
- package/dist/integrations/anthropic.d.ts.map +1 -0
- package/dist/{anthropic/index.js → integrations/anthropic.js} +28 -89
- package/dist/integrations/anthropic.js.map +1 -0
- package/dist/{openai/index.d.ts → integrations/openai.d.ts} +8 -33
- package/dist/integrations/openai.d.ts.map +1 -0
- package/dist/{openai/index.js → integrations/openai.js} +20 -61
- package/dist/integrations/openai.js.map +1 -0
- package/dist/render.js +1 -1
- package/dist/render.js.map +1 -1
- package/dist/types.d.ts +17 -30
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +11 -7
- package/dist/ai-sdk/index.d.ts +0 -68
- package/dist/ai-sdk/index.d.ts.map +0 -1
- package/dist/ai-sdk/index.js +0 -375
- package/dist/ai-sdk/index.js.map +0 -1
- package/dist/anthropic/index.d.ts +0 -102
- package/dist/anthropic/index.d.ts.map +0 -1
- package/dist/anthropic/index.js.map +0 -1
- package/dist/openai/index.d.ts.map +0 -1
- package/dist/openai/index.js.map +0 -1
package/dist/dsl.js
CHANGED
|
@@ -16,79 +16,35 @@
|
|
|
16
16
|
*/
|
|
17
17
|
import { Examples, Message, Omit, Region, Summary, Truncate, VectorSearch, } from "./components";
|
|
18
18
|
import { render as renderPrompt } from "./render";
|
|
19
|
+
const TEMPLATE_INDENT_RE = /^[ \t]*/;
|
|
19
20
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
* Every method returns a new immutable builder instance.
|
|
23
|
-
* Call `.build()` to get the final `PromptElement`.
|
|
21
|
+
* Shared fluent API for prompt-level and message-level builders.
|
|
22
|
+
* Keeps component helpers available inside nested scopes.
|
|
24
23
|
*/
|
|
25
|
-
export class
|
|
24
|
+
export class BuilderBase {
|
|
26
25
|
children;
|
|
27
26
|
context;
|
|
28
27
|
constructor(children = [], context = undefined) {
|
|
29
28
|
this.children = children;
|
|
30
29
|
this.context = context;
|
|
31
30
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
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 } : {}),
|
|
31
|
+
scope(fn, opts) {
|
|
32
|
+
if (typeof fn !== "function") {
|
|
33
|
+
throw new Error(`scope() requires a callback function. Received: ${typeof fn}`);
|
|
34
|
+
}
|
|
35
|
+
const inner = fn(this.create([], this.context));
|
|
36
|
+
const element = createPromptElement(() => inner.buildChildren(), (children) => Region({
|
|
37
|
+
priority: 0,
|
|
38
|
+
children,
|
|
83
39
|
...(opts?.id ? { id: opts.id } : {}),
|
|
84
40
|
}));
|
|
41
|
+
return this.addChild(element);
|
|
85
42
|
}
|
|
86
43
|
/**
|
|
87
44
|
* Add content that will be truncated when over budget.
|
|
88
45
|
*/
|
|
89
46
|
truncate(content, opts) {
|
|
90
|
-
const node = (
|
|
91
|
-
const children = await normalizeChild(content);
|
|
47
|
+
const node = createPromptElement(() => resolveBuilderChildren(content), (children) => {
|
|
92
48
|
const props = {
|
|
93
49
|
children,
|
|
94
50
|
budget: opts.budget,
|
|
@@ -99,50 +55,23 @@ export class PromptBuilder {
|
|
|
99
55
|
return Truncate({
|
|
100
56
|
...props,
|
|
101
57
|
});
|
|
102
|
-
})
|
|
58
|
+
});
|
|
103
59
|
return this.addChild(node);
|
|
104
60
|
}
|
|
105
61
|
/**
|
|
106
62
|
* Add content that will be entirely removed when over budget.
|
|
107
63
|
*/
|
|
108
64
|
omit(content, opts) {
|
|
109
|
-
const node = (
|
|
110
|
-
const children = await normalizeChild(content);
|
|
65
|
+
const node = createPromptElement(() => resolveBuilderChildren(content), (children) => {
|
|
111
66
|
const props = {
|
|
112
67
|
children,
|
|
113
68
|
...(opts?.priority !== undefined ? { priority: opts.priority } : {}),
|
|
114
69
|
...(opts?.id ? { id: opts.id } : {}),
|
|
115
70
|
};
|
|
116
71
|
return Omit(props);
|
|
117
|
-
})
|
|
72
|
+
});
|
|
118
73
|
return this.addChild(node);
|
|
119
74
|
}
|
|
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
75
|
/**
|
|
147
76
|
* Merge another builder's contents into this one (zod-like merge).
|
|
148
77
|
* Contexts must be compatible (either identical or undefined).
|
|
@@ -166,32 +95,31 @@ export class PromptBuilder {
|
|
|
166
95
|
}
|
|
167
96
|
}
|
|
168
97
|
mergedChildren.length = writeIndex;
|
|
169
|
-
return
|
|
98
|
+
return this.create(mergedChildren, nextContext);
|
|
170
99
|
}
|
|
171
100
|
/**
|
|
172
101
|
* Create a provider scope for AI-powered operations like Summary.
|
|
173
102
|
*
|
|
174
103
|
* @example
|
|
175
104
|
* ```typescript
|
|
176
|
-
* import {
|
|
105
|
+
* import { createProvider } from "@fastpaca/cria/ai-sdk";
|
|
106
|
+
* import { openai } from "@ai-sdk/openai";
|
|
177
107
|
*
|
|
178
|
-
* const provider =
|
|
179
|
-
* .
|
|
180
|
-
*
|
|
181
|
-
* )
|
|
108
|
+
* const provider = createProvider(openai("gpt-4o"));
|
|
109
|
+
* cria.prompt()
|
|
110
|
+
* .provider(provider, (p) =>
|
|
111
|
+
* p.summary(content, { id: "conv", store })
|
|
112
|
+
* )
|
|
182
113
|
* ```
|
|
183
114
|
*/
|
|
184
115
|
provider(modelProvider, fn) {
|
|
185
116
|
const context = { provider: modelProvider };
|
|
186
|
-
const inner = fn(
|
|
187
|
-
const element = (
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
context,
|
|
193
|
-
};
|
|
194
|
-
})();
|
|
117
|
+
const inner = fn(this.create([], context));
|
|
118
|
+
const element = createPromptElement(() => inner.buildChildren(), (children) => ({
|
|
119
|
+
priority: 0,
|
|
120
|
+
children,
|
|
121
|
+
context,
|
|
122
|
+
}));
|
|
195
123
|
return this.addChild(element);
|
|
196
124
|
}
|
|
197
125
|
/**
|
|
@@ -214,8 +142,7 @@ export class PromptBuilder {
|
|
|
214
142
|
* Add content that will be summarized when over budget.
|
|
215
143
|
*/
|
|
216
144
|
summary(content, opts) {
|
|
217
|
-
const element = (
|
|
218
|
-
const children = await normalizeChild(content);
|
|
145
|
+
const element = createPromptElement(() => resolveBuilderChildren(content), (children) => {
|
|
219
146
|
const props = {
|
|
220
147
|
id: opts.id,
|
|
221
148
|
store: opts.store,
|
|
@@ -224,7 +151,7 @@ export class PromptBuilder {
|
|
|
224
151
|
...(opts.priority !== undefined ? { priority: opts.priority } : {}),
|
|
225
152
|
};
|
|
226
153
|
return Summary(props);
|
|
227
|
-
})
|
|
154
|
+
});
|
|
228
155
|
return this.addChild(element);
|
|
229
156
|
}
|
|
230
157
|
/**
|
|
@@ -244,13 +171,82 @@ export class PromptBuilder {
|
|
|
244
171
|
raw(element) {
|
|
245
172
|
return this.addChild(element);
|
|
246
173
|
}
|
|
174
|
+
async buildChildren() {
|
|
175
|
+
return await resolveBuilderChildren(this.children);
|
|
176
|
+
}
|
|
177
|
+
addChild(child) {
|
|
178
|
+
return this.create([...this.children, child], this.context);
|
|
179
|
+
}
|
|
180
|
+
addChildren(children) {
|
|
181
|
+
return this.create([...this.children, ...children], this.context);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
export class MessageBuilder extends BuilderBase {
|
|
185
|
+
constructor(children = [], context = undefined) {
|
|
186
|
+
super(children, context);
|
|
187
|
+
}
|
|
188
|
+
create(children, context) {
|
|
189
|
+
return new MessageBuilder(children, context);
|
|
190
|
+
}
|
|
191
|
+
append(content) {
|
|
192
|
+
if (content instanceof PromptBuilder || content instanceof Promise) {
|
|
193
|
+
return this.addChild(content);
|
|
194
|
+
}
|
|
195
|
+
const normalized = normalizeTextInput(content);
|
|
196
|
+
return this.addChildren(normalized);
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Fluent builder for constructing prompt trees without JSX.
|
|
201
|
+
*
|
|
202
|
+
* Every method returns a new immutable builder instance; large chains will copy
|
|
203
|
+
* child arrays, so keep prompts reasonably sized.
|
|
204
|
+
* Call `.build()` to get the final `PromptElement`.
|
|
205
|
+
*/
|
|
206
|
+
export class PromptBuilder extends BuilderBase {
|
|
207
|
+
constructor(children = [], context = undefined) {
|
|
208
|
+
super(children, context);
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Create a new empty prompt builder.
|
|
212
|
+
*/
|
|
213
|
+
static create() {
|
|
214
|
+
return new PromptBuilder();
|
|
215
|
+
}
|
|
216
|
+
create(children, context) {
|
|
217
|
+
return new PromptBuilder(children, context);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Add a system message.
|
|
221
|
+
*/
|
|
222
|
+
system(content, opts) {
|
|
223
|
+
return this.addMessage("system", content, opts);
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Add a user message.
|
|
227
|
+
*/
|
|
228
|
+
user(content, opts) {
|
|
229
|
+
return this.addMessage("user", content, opts);
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Add an assistant message.
|
|
233
|
+
*/
|
|
234
|
+
assistant(content, opts) {
|
|
235
|
+
return this.addMessage("assistant", content, opts);
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Add a message with a custom role.
|
|
239
|
+
*/
|
|
240
|
+
message(role, content, opts) {
|
|
241
|
+
return this.addMessage(role, content, opts);
|
|
242
|
+
}
|
|
247
243
|
/**
|
|
248
244
|
* Build the final PromptElement tree.
|
|
249
245
|
*/
|
|
250
246
|
async build() {
|
|
251
247
|
return Region({
|
|
252
248
|
priority: 0,
|
|
253
|
-
children: await
|
|
249
|
+
children: await this.buildChildren(),
|
|
254
250
|
...(this.context && { context: this.context }),
|
|
255
251
|
});
|
|
256
252
|
}
|
|
@@ -262,12 +258,21 @@ export class PromptBuilder {
|
|
|
262
258
|
const element = await this.build();
|
|
263
259
|
return (await renderPrompt(element, options));
|
|
264
260
|
}
|
|
265
|
-
|
|
266
|
-
|
|
261
|
+
addMessage(role, content, opts) {
|
|
262
|
+
const priority = opts?.priority;
|
|
263
|
+
const element = createPromptElement(() => typeof content === "function"
|
|
264
|
+
? content(new MessageBuilder([], this.context)).buildChildren()
|
|
265
|
+
: normalizeTextInput(content), (children) => Message({
|
|
266
|
+
messageRole: role,
|
|
267
|
+
children,
|
|
268
|
+
...(priority !== undefined ? { priority } : {}),
|
|
269
|
+
...(opts?.id ? { id: opts.id } : {}),
|
|
270
|
+
}));
|
|
271
|
+
return this.addChild(element);
|
|
267
272
|
}
|
|
268
273
|
}
|
|
269
274
|
/**
|
|
270
|
-
* Namespace for building prompts
|
|
275
|
+
* Namespace for building prompts as code.
|
|
271
276
|
*
|
|
272
277
|
* @example
|
|
273
278
|
* ```typescript
|
|
@@ -282,6 +287,7 @@ export class PromptBuilder {
|
|
|
282
287
|
*/
|
|
283
288
|
export const cria = {
|
|
284
289
|
prompt: () => PromptBuilder.create(),
|
|
290
|
+
c,
|
|
285
291
|
merge: (...builders) => {
|
|
286
292
|
const [first, ...rest] = builders;
|
|
287
293
|
if (!first) {
|
|
@@ -298,23 +304,125 @@ export const prompt = () => PromptBuilder.create();
|
|
|
298
304
|
* Merge multiple builders into one (zod-like merge).
|
|
299
305
|
*/
|
|
300
306
|
export const merge = (...builders) => cria.merge(...builders);
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
307
|
+
/**
|
|
308
|
+
* Tagged template literal function for building prompt children with automatic indentation normalization.
|
|
309
|
+
*
|
|
310
|
+
* Interpolates values into template strings and normalizes indentation by stripping
|
|
311
|
+
* common leading whitespace. Useful for writing multi-line prompt content with clean formatting.
|
|
312
|
+
*
|
|
313
|
+
* @param strings - Template string segments
|
|
314
|
+
* @param values - Interpolated values (strings, numbers, booleans, PromptElements, arrays, etc.)
|
|
315
|
+
* @returns Array of prompt children (strings and PromptElements)
|
|
316
|
+
*
|
|
317
|
+
* @example
|
|
318
|
+
* ```typescript
|
|
319
|
+
* import { c } from "@fastpaca/cria";
|
|
320
|
+
*
|
|
321
|
+
* const children = c`
|
|
322
|
+
* System: You are a helpful assistant.
|
|
323
|
+
* User: ${userMessage}
|
|
324
|
+
* Assistant: ${assistantResponse}
|
|
325
|
+
* `;
|
|
326
|
+
* ```
|
|
327
|
+
*
|
|
328
|
+
* @example
|
|
329
|
+
* ```typescript
|
|
330
|
+
* const name = "Alice";
|
|
331
|
+
* const age = 30;
|
|
332
|
+
* const children = c`Name: ${name}, Age: ${age}`;
|
|
333
|
+
* ```
|
|
334
|
+
*/
|
|
335
|
+
export function c(strings, ...values) {
|
|
336
|
+
const normalizedStrings = normalizeTemplateStrings(strings);
|
|
337
|
+
const children = [];
|
|
338
|
+
for (let index = 0; index < normalizedStrings.length; index += 1) {
|
|
339
|
+
const segment = normalizedStrings[index];
|
|
340
|
+
if (segment !== undefined && segment.length > 0) {
|
|
341
|
+
children.push(segment);
|
|
342
|
+
}
|
|
343
|
+
if (index < values.length) {
|
|
344
|
+
const normalized = normalizeTextInput(values[index]);
|
|
345
|
+
if (normalized.length > 0) {
|
|
346
|
+
children.push(...normalized);
|
|
347
|
+
}
|
|
348
|
+
}
|
|
305
349
|
}
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
350
|
+
return children;
|
|
351
|
+
}
|
|
352
|
+
function createPromptElement(buildChildren, buildElement) {
|
|
353
|
+
const result = buildChildren();
|
|
354
|
+
if (result instanceof Promise) {
|
|
355
|
+
return result.then((children) => buildElement(children));
|
|
356
|
+
}
|
|
357
|
+
return Promise.resolve(buildElement(result));
|
|
358
|
+
}
|
|
359
|
+
// Normalize text-like inputs into prompt children.
|
|
360
|
+
function normalizeTextInput(content) {
|
|
361
|
+
if (content === null || content === undefined) {
|
|
362
|
+
return [];
|
|
363
|
+
}
|
|
364
|
+
if (Array.isArray(content)) {
|
|
365
|
+
const flattened = [];
|
|
366
|
+
for (const item of content) {
|
|
367
|
+
flattened.push(...normalizeTextInput(item));
|
|
368
|
+
}
|
|
369
|
+
return flattened;
|
|
309
370
|
}
|
|
310
|
-
if (
|
|
311
|
-
|
|
312
|
-
return [built];
|
|
371
|
+
if (typeof content === "string") {
|
|
372
|
+
return [content];
|
|
313
373
|
}
|
|
314
|
-
|
|
374
|
+
if (typeof content === "number" || typeof content === "boolean") {
|
|
375
|
+
return [String(content)];
|
|
376
|
+
}
|
|
377
|
+
// At this point, content must be PromptElement (PromptChild minus string/number/boolean)
|
|
378
|
+
return [content];
|
|
315
379
|
}
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
380
|
+
function normalizeTemplateStrings(strings) {
|
|
381
|
+
if (strings.length === 0) {
|
|
382
|
+
return strings;
|
|
383
|
+
}
|
|
384
|
+
const normalized = [...strings];
|
|
385
|
+
if (normalized[0]?.startsWith("\n")) {
|
|
386
|
+
normalized[0] = normalized[0].slice(1);
|
|
387
|
+
}
|
|
388
|
+
const lastIndex = normalized.length - 1;
|
|
389
|
+
if (normalized[lastIndex]?.endsWith("\n")) {
|
|
390
|
+
normalized[lastIndex] = normalized[lastIndex].slice(0, -1);
|
|
391
|
+
}
|
|
392
|
+
const lines = normalized.flatMap((segment) => segment.split("\n"));
|
|
393
|
+
const indents = lines
|
|
394
|
+
.filter((line) => line.trim().length > 0)
|
|
395
|
+
.map((line) => line.match(TEMPLATE_INDENT_RE)?.[0].length ?? 0);
|
|
396
|
+
const minIndent = indents.length > 0 ? Math.min(...indents) : 0;
|
|
397
|
+
if (minIndent === 0) {
|
|
398
|
+
return normalized;
|
|
399
|
+
}
|
|
400
|
+
return normalized.map((segment) => segment
|
|
401
|
+
.split("\n")
|
|
402
|
+
.map((line) => {
|
|
403
|
+
if (line.trim().length === 0) {
|
|
404
|
+
return "";
|
|
405
|
+
}
|
|
406
|
+
return line.slice(Math.min(minIndent, line.length));
|
|
407
|
+
})
|
|
408
|
+
.join("\n"));
|
|
409
|
+
}
|
|
410
|
+
// Utility to recursively build and expand / resolve children
|
|
411
|
+
async function resolveBuilderChildren(children) {
|
|
412
|
+
const list = Array.isArray(children) ? children : [children];
|
|
413
|
+
const resolved = await Promise.all(list.map(async (child) => {
|
|
414
|
+
if (typeof child === "string") {
|
|
415
|
+
return [child];
|
|
416
|
+
}
|
|
417
|
+
if (child instanceof Promise) {
|
|
418
|
+
const value = await child;
|
|
419
|
+
return [value];
|
|
420
|
+
}
|
|
421
|
+
if (child instanceof PromptBuilder) {
|
|
422
|
+
return [await child.build()];
|
|
423
|
+
}
|
|
424
|
+
return [child];
|
|
425
|
+
}));
|
|
426
|
+
return resolved.flat();
|
|
319
427
|
}
|
|
320
428
|
//# sourceMappingURL=dsl.js.map
|
package/dist/dsl.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../src/dsl.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dsl.js","sourceRoot":"","sources":["../src/dsl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EACL,QAAQ,EACR,OAAO,EACP,IAAI,EACJ,MAAM,EACN,OAAO,EACP,QAAQ,EACR,YAAY,GACb,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAsClD,MAAM,kBAAkB,GAAG,SAAS,CAAC;AAErC;;;GAGG;AACH,MAAM,OAAgB,WAAW;IACZ,QAAQ,CAAiB;IACzB,OAAO,CAA0B;IAEpD,YACE,WAA2B,EAAE,EAC7B,UAAmC,SAAS;QAE5C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAOD,KAAK,CAAC,EAAmC,EAAE,IAAsB;QAC/D,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,mDAAmD,OAAO,EAAE,EAAE,CAC/D,CAAC;QACJ,CAAC;QAED,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,mBAAmB,CACjC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAC3B,CAAC,QAAQ,EAAE,EAAE,CACX,MAAM,CAAC;YACL,QAAQ,EAAE,CAAC;YACX,QAAQ;YACR,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC,CAAC,CACL,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,OAA+C,EAC/C,IAKC;QAED,MAAM,IAAI,GAAG,mBAAmB,CAC9B,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,EACrC,CAAC,QAAQ,EAAE,EAAE;YACX,MAAM,KAAK,GAAmC;gBAC5C,QAAQ;gBACR,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACzC,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpC,CAAC;YACF,OAAO,QAAQ,CAAC;gBACd,GAAG,KAAK;aACT,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,IAAI,CACF,OAA+C,EAC/C,IAAyC;QAEzC,MAAM,IAAI,GAAG,mBAAmB,CAC9B,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,EACrC,CAAC,QAAQ,EAAE,EAAE;YACX,MAAM,KAAK,GAA+B;gBACxC,QAAQ;gBACR,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrC,CAAC;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,GAAG,QAAoB;QAC3B,MAAM,OAAO,GAA4B,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7D,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,GAAG,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAC/C,CAAC,CACF,CAAC;QACF,MAAM,cAAc,GAAG,IAAI,KAAK,CAAe,aAAa,CAAC,CAAC;QAC9D,IAAI,UAAU,GAAG,CAAC,CAAC;QAEnB,KAAK,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;YAC9B,IAAI,OAAO,CAAC,OAAO,IAAI,WAAW,IAAI,OAAO,CAAC,OAAO,KAAK,WAAW,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CACb,yDAAyD,CAC1D,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;YAChC,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACrC,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;gBACnC,UAAU,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,cAAc,CAAC,MAAM,GAAG,UAAU,CAAC;QAEnC,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CACN,aAAqC,EACrC,EAAmC;QAEnC,MAAM,OAAO,GAAgB,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,mBAAmB,CACjC,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,EAC3B,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACb,QAAQ,EAAE,CAAC;YACX,QAAQ;YACR,OAAO;SACR,CAAC,CACH,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,YAAY,CAAc,IAQzB;QACC,MAAM,KAAK,GAA0C;YACnD,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1D,GAAG,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC5D,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,GAAG,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClD,CAAC;QACF,MAAM,YAAY,GAAG,YAAY,CAAI,KAAK,CAAC,CAAC;QAC5C,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,OAAO,CACL,OAA+C,EAC/C,IAKC;QAED,MAAM,OAAO,GAAG,mBAAmB,CACjC,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,EACrC,CAAC,QAAQ,EAAE,EAAE;YACX,MAAM,KAAK,GAAkC;gBAC3C,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,QAAQ;gBACR,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxD,GAAG,CAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACpE,CAAC;YACF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,QAAQ,CACN,KAAa,EACb,KAAiC,EACjC,IAAyC;QAEzC,OAAO,IAAI,CAAC,QAAQ,CAClB,QAAQ,CAAC;YACP,KAAK;YACL,QAAQ,EAAE,KAAK;YACf,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC,CAAC,CACH,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAA+C;QACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;IAES,QAAQ,CAAC,KAAmB;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAES,WAAW,CAAC,QAAiC;QACrD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACpE,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,WAA2B;IAC7D,YACE,WAA2B,EAAE,EAC7B,UAAmC,SAAS;QAE5C,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IAES,MAAM,CACd,QAAwB,EACxB,OAAgC;QAEhC,OAAO,IAAI,cAAc,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,CAAC,OAAqB;QAC1B,IAAI,OAAO,YAAY,aAAa,IAAI,OAAO,YAAY,OAAO,EAAE,CAAC;YACnE,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QACD,MAAM,UAAU,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,aAAc,SAAQ,WAA0B;IAC3D,YACE,WAA2B,EAAE,EAC7B,UAAmC,SAAS;QAE5C,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,aAAa,EAAE,CAAC;IAC7B,CAAC;IAES,MAAM,CACd,QAAwB,EACxB,OAAgC;QAEhC,OAAO,IAAI,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,OAAkE,EAClE,IAAyC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,IAAI,CACF,OAAkE,EAClE,IAAyC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACH,SAAS,CACP,OAAkE,EAClE,IAAyC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,OAAO,CACL,IAAgB,EAChB,OAAkE,EAClE,IAAyC;QAEzC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,OAAO,MAAM,CAAC;YACZ,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,MAAM,IAAI,CAAC,aAAa,EAAE;YACpC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;SAC/C,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,OAAiB;QAEjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAA2B,CAAC;IAC1E,CAAC;IAEO,UAAU,CAChB,IAAgB,EAChB,OAAkE,EAClE,IAAyC;QAEzC,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,CAAC;QAChC,MAAM,OAAO,GAAG,mBAAmB,CACjC,GAAG,EAAE,CACH,OAAO,OAAO,KAAK,UAAU;YAC3B,CAAC,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,EAAE;YAC/D,CAAC,CAAC,kBAAkB,CAAC,OAAO,CAAC,EACjC,CAAC,QAAQ,EAAE,EAAE,CACX,OAAO,CAAC;YACN,WAAW,EAAE,IAAI;YACjB,QAAQ;YACR,GAAG,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrC,CAAC,CACL,CAAC;QAEF,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;CACF;AAID;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE;IACpC,CAAC;IACD,KAAK,EAAE,CAAC,GAAG,QAAyB,EAAE,EAAE;QACtC,MAAM,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,QAAQ,CAAC;QAClC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,aAAa,CAAC,MAAM,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9B,CAAC;CACO,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAG,QAAyB,EAAiB,EAAE,CACnE,IAAI,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;AAE1B;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,CAAC,CACf,OAA6B,EAC7B,GAAG,MAA4B;IAE/B,MAAM,iBAAiB,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAmB,EAAE,CAAC;IAEpC,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,iBAAiB,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACzC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;QAED,IAAI,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1B,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,mBAAmB,CAC1B,aAA6D,EAC7D,YAAyD;IAEzD,MAAM,MAAM,GAAG,aAAa,EAAE,CAAC;IAC/B,IAAI,MAAM,YAAY,OAAO,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,OAAO,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,mDAAmD;AACnD,SAAS,kBAAkB,CAAC,OAAmB;IAC7C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAmB,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;QAChE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3B,CAAC;IAED,yFAAyF;IACzF,OAAO,CAAC,OAAsB,CAAC,CAAC;AAClC,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAA0B;IAE1B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC;IAChC,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzC,CAAC;IACD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IACxC,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,KAAK;SAClB,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;SACxC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;QACpB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAChC,OAAO;SACJ,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,CAAC,CAAC;SACD,IAAI,CAAC,IAAI,CAAC,CACd,CAAC;AACJ,CAAC;AAED,6DAA6D;AAC7D,KAAK,UAAU,sBAAsB,CACnC,QAAgD;IAEhD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,GAAG,CAChC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC;YAC1B,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC;QACD,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt evaluation utilities for testing Cria prompts with LLM-as-a-judge.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { c, cria } from "@fastpaca/cria";
|
|
7
|
+
* import { createProvider } from "@fastpaca/cria/ai-sdk";
|
|
8
|
+
* import { createJudge } from "@fastpaca/cria/eval";
|
|
9
|
+
* import { openai } from "@ai-sdk/openai";
|
|
10
|
+
*
|
|
11
|
+
* // Create a configured judge
|
|
12
|
+
* const judge = createJudge({
|
|
13
|
+
* target: createProvider(openai("gpt-4o")),
|
|
14
|
+
* evaluator: createProvider(openai("gpt-4o-mini")),
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* // Build the prompt to test
|
|
18
|
+
* const prompt = await cria.prompt()
|
|
19
|
+
* .system("You are a helpful customer support agent.")
|
|
20
|
+
* .user("How do I update my payment method?")
|
|
21
|
+
* .build();
|
|
22
|
+
*
|
|
23
|
+
* // Assert with simple criterion description
|
|
24
|
+
* await judge(prompt).toPass(c`Helpfulness in addressing the user's question`);
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import { createJudge } from "./judge";
|
|
30
|
+
export type { EvalResult, Judge, JudgeConfig, Judgment } from "./judge";
|
|
31
|
+
export { createJudge } from "./judge";
|
|
32
|
+
export declare const cria: {
|
|
33
|
+
readonly judge: typeof createJudge;
|
|
34
|
+
readonly prompt: () => import("..").PromptBuilder;
|
|
35
|
+
readonly c: typeof import("..").c;
|
|
36
|
+
readonly merge: (...builders: import("..").PromptBuilder[]) => import("..").PromptBuilder;
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,YAAY,EAAE,UAAU,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,eAAO,MAAM,IAAI;;;;;CAA+C,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt evaluation utilities for testing Cria prompts with LLM-as-a-judge.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```typescript
|
|
6
|
+
* import { c, cria } from "@fastpaca/cria";
|
|
7
|
+
* import { createProvider } from "@fastpaca/cria/ai-sdk";
|
|
8
|
+
* import { createJudge } from "@fastpaca/cria/eval";
|
|
9
|
+
* import { openai } from "@ai-sdk/openai";
|
|
10
|
+
*
|
|
11
|
+
* // Create a configured judge
|
|
12
|
+
* const judge = createJudge({
|
|
13
|
+
* target: createProvider(openai("gpt-4o")),
|
|
14
|
+
* evaluator: createProvider(openai("gpt-4o-mini")),
|
|
15
|
+
* });
|
|
16
|
+
*
|
|
17
|
+
* // Build the prompt to test
|
|
18
|
+
* const prompt = await cria.prompt()
|
|
19
|
+
* .system("You are a helpful customer support agent.")
|
|
20
|
+
* .user("How do I update my payment method?")
|
|
21
|
+
* .build();
|
|
22
|
+
*
|
|
23
|
+
* // Assert with simple criterion description
|
|
24
|
+
* await judge(prompt).toPass(c`Helpfulness in addressing the user's question`);
|
|
25
|
+
* ```
|
|
26
|
+
*
|
|
27
|
+
* @packageDocumentation
|
|
28
|
+
*/
|
|
29
|
+
import { cria as baseCria } from "../dsl";
|
|
30
|
+
import { createJudge } from "./judge";
|
|
31
|
+
// biome-ignore lint/performance/noBarrelFile: Intentional package entrypoint
|
|
32
|
+
export { createJudge } from "./judge";
|
|
33
|
+
export const cria = { ...baseCria, judge: createJudge };
|
|
34
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/eval/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,IAAI,IAAI,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGtC,6EAA6E;AAC7E,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAW,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { ModelProvider, PromptChildren, PromptElement } from "../types";
|
|
2
|
+
export declare const DEFAULT_THRESHOLD = 0.8;
|
|
3
|
+
export interface JudgeConfig {
|
|
4
|
+
target: ModelProvider<unknown>;
|
|
5
|
+
evaluator: ModelProvider<unknown>;
|
|
6
|
+
threshold?: number;
|
|
7
|
+
}
|
|
8
|
+
export interface EvalResult {
|
|
9
|
+
score: number;
|
|
10
|
+
reasoning: string;
|
|
11
|
+
passed: boolean;
|
|
12
|
+
response: string;
|
|
13
|
+
}
|
|
14
|
+
export interface Judgment {
|
|
15
|
+
toPass(criterion: PromptChildren): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export type Judge = (prompt: PromptElement) => Judgment;
|
|
18
|
+
export declare function createJudge(config: JudgeConfig): Judge;
|
|
19
|
+
//# sourceMappingURL=judge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../../src/eval/judge.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7E,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,CAAC,SAAS,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClD;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,aAAa,KAAK,QAAQ,CAAC;AAOxD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CA+CtD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { c, cria } from "../dsl";
|
|
3
|
+
import { render } from "../render";
|
|
4
|
+
export const DEFAULT_THRESHOLD = 0.8;
|
|
5
|
+
const EvalResultSchema = z.object({
|
|
6
|
+
score: z.number().min(0).max(1),
|
|
7
|
+
reasoning: z.string(),
|
|
8
|
+
});
|
|
9
|
+
export function createJudge(config) {
|
|
10
|
+
const { target, evaluator, threshold = DEFAULT_THRESHOLD } = config;
|
|
11
|
+
return (prompt) => {
|
|
12
|
+
const evaluate = async (criterion) => {
|
|
13
|
+
const response = await target.completion(await render(prompt, { renderer: target.renderer }));
|
|
14
|
+
const evalPrompt = await cria
|
|
15
|
+
.prompt()
|
|
16
|
+
.system(c `You are an evaluator.
|
|
17
|
+
Score the response from 0 to 1 based on ALL criteria below.
|
|
18
|
+
|
|
19
|
+
Criteria: ${criterion}
|
|
20
|
+
|
|
21
|
+
Return JSON: { "score": <0-1>, "reasoning": "<brief explanation>" }
|
|
22
|
+
`)
|
|
23
|
+
.user(response)
|
|
24
|
+
.build();
|
|
25
|
+
const result = await evaluator.object(await render(evalPrompt, { renderer: evaluator.renderer }), EvalResultSchema);
|
|
26
|
+
return {
|
|
27
|
+
response,
|
|
28
|
+
score: result.score,
|
|
29
|
+
reasoning: result.reasoning,
|
|
30
|
+
passed: result.score >= threshold,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
return {
|
|
34
|
+
async toPass(criterion) {
|
|
35
|
+
const result = await evaluate(criterion);
|
|
36
|
+
if (!result.passed) {
|
|
37
|
+
throw new Error("Expected prompt to pass criterion.\n\n" +
|
|
38
|
+
`Score: ${result.score} (threshold: ${threshold})\n` +
|
|
39
|
+
`Reasoning: ${result.reasoning}\n\n` +
|
|
40
|
+
`Response:\n${result.response}`);
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=judge.js.map
|