@fastpaca/cria 1.7.2 → 1.7.4
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 +86 -20
- package/dist/cria.d.ts +49 -0
- package/dist/cria.d.ts.map +1 -0
- package/dist/cria.js +49 -0
- package/dist/cria.js.map +1 -0
- package/dist/dsl/builder.d.ts +34 -44
- package/dist/dsl/builder.d.ts.map +1 -1
- package/dist/dsl/builder.js +122 -159
- package/dist/dsl/builder.js.map +1 -1
- package/dist/dsl/index.d.ts +2 -43
- package/dist/dsl/index.d.ts.map +1 -1
- package/dist/dsl/index.js +7 -51
- package/dist/dsl/index.js.map +1 -1
- package/dist/eval/index.d.ts +3 -1
- package/dist/eval/index.d.ts.map +1 -1
- package/dist/eval/index.js +1 -1
- package/dist/eval/index.js.map +1 -1
- package/dist/eval/judge.d.ts +1 -1
- package/dist/eval/judge.d.ts.map +1 -1
- package/dist/eval/judge.js +1 -1
- package/dist/eval/judge.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/memory/chroma/index.d.ts +6 -6
- package/dist/memory/chroma/index.js +6 -6
- package/dist/memory/index.d.ts +4 -0
- package/dist/memory/index.d.ts.map +1 -1
- package/dist/memory/index.js +2 -0
- package/dist/memory/index.js.map +1 -1
- package/dist/memory/key-value.d.ts +8 -3
- package/dist/memory/key-value.d.ts.map +1 -1
- package/dist/memory/key-value.js +8 -3
- package/dist/memory/key-value.js.map +1 -1
- package/dist/memory/qdrant/index.d.ts +6 -6
- package/dist/memory/qdrant/index.js +6 -6
- package/dist/memory/summarizer.d.ts +53 -0
- package/dist/memory/summarizer.d.ts.map +1 -0
- package/dist/memory/summarizer.js +114 -0
- package/dist/memory/summarizer.js.map +1 -0
- package/dist/memory/vector-db.d.ts +30 -0
- package/dist/memory/vector-db.d.ts.map +1 -0
- package/dist/memory/vector-db.js +85 -0
- package/dist/memory/vector-db.js.map +1 -0
- package/package.json +1 -1
- package/dist/dsl/summary.d.ts +0 -51
- package/dist/dsl/summary.d.ts.map +0 -1
- package/dist/dsl/summary.js +0 -56
- package/dist/dsl/summary.js.map +0 -1
- package/dist/dsl/vector-search.d.ts +0 -19
- package/dist/dsl/vector-search.d.ts.map +0 -1
- package/dist/dsl/vector-search.js +0 -36
- package/dist/dsl/vector-search.js.map +0 -1
package/README.md
CHANGED
|
@@ -29,13 +29,22 @@ const client = new OpenAI();
|
|
|
29
29
|
const model = "gpt-5-nano";
|
|
30
30
|
const provider = createProvider(client, model);
|
|
31
31
|
|
|
32
|
+
const summarizer = cria.summarizer({
|
|
33
|
+
id: "history",
|
|
34
|
+
store: memory,
|
|
35
|
+
provider,
|
|
36
|
+
});
|
|
37
|
+
const vectors = cria.vectordb(store);
|
|
38
|
+
const summary = summarizer.plugin({ history: conversation });
|
|
39
|
+
const retrieval = vectors.plugin({ query, limit: 8 });
|
|
40
|
+
|
|
32
41
|
const messages = await cria
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
42
|
+
.prompt(provider)
|
|
43
|
+
.system("You are a research assistant.")
|
|
44
|
+
.use(summary)
|
|
45
|
+
.use(retrieval)
|
|
46
|
+
.user(query)
|
|
47
|
+
.render({ budget: 128_000 });
|
|
39
48
|
|
|
40
49
|
const response = await client.chat.completions.create({ model, messages });
|
|
41
50
|
```
|
|
@@ -93,10 +102,13 @@ const response = await client.chat.completions.create({ model, messages });
|
|
|
93
102
|
<summary><strong>RAG with vector search</strong></summary>
|
|
94
103
|
|
|
95
104
|
```ts
|
|
105
|
+
const vectors = cria.vectordb(qdrant);
|
|
106
|
+
const retrieval = vectors.plugin({ query, limit: 10 });
|
|
107
|
+
|
|
96
108
|
const messages = await cria
|
|
97
109
|
.prompt(provider)
|
|
98
110
|
.system("You are a research assistant.")
|
|
99
|
-
.
|
|
111
|
+
.use(retrieval)
|
|
100
112
|
.user(query)
|
|
101
113
|
.render({ budget: 128_000 });
|
|
102
114
|
```
|
|
@@ -107,10 +119,18 @@ const messages = await cria
|
|
|
107
119
|
<summary><strong>Summarize long conversation history</strong></summary>
|
|
108
120
|
|
|
109
121
|
```ts
|
|
122
|
+
const summarizer = cria.summarizer({
|
|
123
|
+
id: "conv",
|
|
124
|
+
store: redis,
|
|
125
|
+
priority: 2,
|
|
126
|
+
provider,
|
|
127
|
+
});
|
|
128
|
+
const summary = summarizer.plugin({ history: conversation });
|
|
129
|
+
|
|
110
130
|
const messages = await cria
|
|
111
131
|
.prompt(provider)
|
|
112
132
|
.system("You are a helpful assistant.")
|
|
113
|
-
.summary
|
|
133
|
+
.use(summary)
|
|
114
134
|
.last(conversation, { n: 20 })
|
|
115
135
|
.user(query)
|
|
116
136
|
.render({ budget: 128_000 });
|
|
@@ -122,15 +142,25 @@ const messages = await cria
|
|
|
122
142
|
<summary><strong>Token budgeting and compaction</strong></summary>
|
|
123
143
|
|
|
124
144
|
```ts
|
|
145
|
+
const summarizer = cria.summarizer({
|
|
146
|
+
id: "conv",
|
|
147
|
+
store: redis,
|
|
148
|
+
priority: 2,
|
|
149
|
+
provider,
|
|
150
|
+
});
|
|
151
|
+
const summary = summarizer.plugin({ history: conversation });
|
|
152
|
+
const vectors = cria.vectordb(qdrant);
|
|
153
|
+
const retrieval = vectors.plugin({ query, limit: 10 });
|
|
154
|
+
|
|
125
155
|
const messages = await cria
|
|
126
156
|
.prompt(provider)
|
|
127
157
|
.system(SYSTEM_PROMPT)
|
|
128
158
|
// Dropped first when budget is tight
|
|
129
159
|
.omit(examples, { priority: 3 })
|
|
130
160
|
// Summaries are run ad-hoc once we hit budget limits
|
|
131
|
-
.summary
|
|
161
|
+
.use(summary)
|
|
132
162
|
// Sacred, need to retain but limit to only 10 entries
|
|
133
|
-
.
|
|
163
|
+
.use(retrieval)
|
|
134
164
|
.user(query)
|
|
135
165
|
// 128k token budget, once we hit the budget strategies
|
|
136
166
|
// will run based on priority & usage (e.g. summaries will
|
|
@@ -261,18 +291,26 @@ const { text } = await generateText({ model, messages });
|
|
|
261
291
|
<summary><strong>Redis (conversation summaries)</strong></summary>
|
|
262
292
|
|
|
263
293
|
```ts
|
|
294
|
+
import { cria, type StoredSummary } from "@fastpaca/cria";
|
|
264
295
|
import { RedisStore } from "@fastpaca/cria/memory/redis";
|
|
265
|
-
import type { StoredSummary } from "@fastpaca/cria";
|
|
266
296
|
|
|
267
297
|
const store = new RedisStore<StoredSummary>({
|
|
268
298
|
host: "localhost",
|
|
269
299
|
port: 6379,
|
|
270
300
|
});
|
|
271
301
|
|
|
302
|
+
const summarizer = cria.summarizer({
|
|
303
|
+
id: "conv-123",
|
|
304
|
+
store,
|
|
305
|
+
priority: 2,
|
|
306
|
+
provider,
|
|
307
|
+
});
|
|
308
|
+
const summary = summarizer.plugin({ history: conversation });
|
|
309
|
+
|
|
272
310
|
const messages = await cria
|
|
273
311
|
.prompt(provider)
|
|
274
312
|
.system("You are a helpful assistant.")
|
|
275
|
-
.summary
|
|
313
|
+
.use(summary)
|
|
276
314
|
.last(conversation, { n: 20 })
|
|
277
315
|
.user(query)
|
|
278
316
|
.render({ budget: 128_000 });
|
|
@@ -284,17 +322,25 @@ const messages = await cria
|
|
|
284
322
|
<summary><strong>Postgres (conversation summaries)</strong></summary>
|
|
285
323
|
|
|
286
324
|
```ts
|
|
325
|
+
import { cria, type StoredSummary } from "@fastpaca/cria";
|
|
287
326
|
import { PostgresStore } from "@fastpaca/cria/memory/postgres";
|
|
288
|
-
import type { StoredSummary } from "@fastpaca/cria";
|
|
289
327
|
|
|
290
328
|
const store = new PostgresStore<StoredSummary>({
|
|
291
329
|
connectionString: "postgres://user:pass@localhost/mydb",
|
|
292
330
|
});
|
|
293
331
|
|
|
332
|
+
const summarizer = cria.summarizer({
|
|
333
|
+
id: "conv-123",
|
|
334
|
+
store,
|
|
335
|
+
priority: 2,
|
|
336
|
+
provider,
|
|
337
|
+
});
|
|
338
|
+
const summary = summarizer.plugin({ history: conversation });
|
|
339
|
+
|
|
294
340
|
const messages = await cria
|
|
295
341
|
.prompt(provider)
|
|
296
342
|
.system("You are a helpful assistant.")
|
|
297
|
-
.summary
|
|
343
|
+
.use(summary)
|
|
298
344
|
.last(conversation, { n: 20 })
|
|
299
345
|
.user(query)
|
|
300
346
|
.render({ budget: 128_000 });
|
|
@@ -306,17 +352,25 @@ const messages = await cria
|
|
|
306
352
|
<summary><strong>SQLite (conversation summaries)</strong></summary>
|
|
307
353
|
|
|
308
354
|
```ts
|
|
355
|
+
import { cria, type StoredSummary } from "@fastpaca/cria";
|
|
309
356
|
import { SqliteStore } from "@fastpaca/cria/memory/sqlite";
|
|
310
|
-
import type { StoredSummary } from "@fastpaca/cria";
|
|
311
357
|
|
|
312
358
|
const store = new SqliteStore<StoredSummary>({
|
|
313
359
|
filename: "cria.sqlite",
|
|
314
360
|
});
|
|
315
361
|
|
|
362
|
+
const summarizer = cria.summarizer({
|
|
363
|
+
id: "conv-123",
|
|
364
|
+
store,
|
|
365
|
+
priority: 2,
|
|
366
|
+
provider,
|
|
367
|
+
});
|
|
368
|
+
const summary = summarizer.plugin({ history: conversation });
|
|
369
|
+
|
|
316
370
|
const messages = await cria
|
|
317
371
|
.prompt(provider)
|
|
318
372
|
.system("You are a helpful assistant.")
|
|
319
|
-
.summary
|
|
373
|
+
.use(summary)
|
|
320
374
|
.last(conversation, { n: 20 })
|
|
321
375
|
.user(query)
|
|
322
376
|
.render({ budget: 128_000 });
|
|
@@ -329,19 +383,23 @@ const messages = await cria
|
|
|
329
383
|
|
|
330
384
|
```ts
|
|
331
385
|
import { z } from "zod";
|
|
386
|
+
import { cria } from "@fastpaca/cria";
|
|
332
387
|
import { SqliteVectorStore } from "@fastpaca/cria/memory/sqlite-vector";
|
|
333
388
|
|
|
334
|
-
const store = new SqliteVectorStore({
|
|
389
|
+
const store = new SqliteVectorStore<string>({
|
|
335
390
|
filename: "cria.sqlite",
|
|
336
391
|
dimensions: 1536,
|
|
337
392
|
embed: async (text) => await getEmbedding(text),
|
|
338
393
|
schema: z.string(),
|
|
339
394
|
});
|
|
340
395
|
|
|
396
|
+
const vectors = cria.vectordb(store);
|
|
397
|
+
const retrieval = vectors.plugin({ query, limit: 10 });
|
|
398
|
+
|
|
341
399
|
const messages = await cria
|
|
342
400
|
.prompt(provider)
|
|
343
401
|
.system("You are a research assistant.")
|
|
344
|
-
.
|
|
402
|
+
.use(retrieval)
|
|
345
403
|
.user(query)
|
|
346
404
|
.render({ budget: 128_000 });
|
|
347
405
|
```
|
|
@@ -353,6 +411,7 @@ const messages = await cria
|
|
|
353
411
|
|
|
354
412
|
```ts
|
|
355
413
|
import { ChromaClient } from "chromadb";
|
|
414
|
+
import { cria } from "@fastpaca/cria";
|
|
356
415
|
import { ChromaStore } from "@fastpaca/cria/memory/chroma";
|
|
357
416
|
|
|
358
417
|
const client = new ChromaClient({ path: "http://localhost:8000" });
|
|
@@ -363,10 +422,13 @@ const store = new ChromaStore({
|
|
|
363
422
|
embed: async (text) => await getEmbedding(text),
|
|
364
423
|
});
|
|
365
424
|
|
|
425
|
+
const vectors = cria.vectordb(store);
|
|
426
|
+
const retrieval = vectors.plugin({ query, limit: 10 });
|
|
427
|
+
|
|
366
428
|
const messages = await cria
|
|
367
429
|
.prompt(provider)
|
|
368
430
|
.system("You are a research assistant.")
|
|
369
|
-
.
|
|
431
|
+
.use(retrieval)
|
|
370
432
|
.user(query)
|
|
371
433
|
.render({ budget: 128_000 });
|
|
372
434
|
```
|
|
@@ -378,6 +440,7 @@ const messages = await cria
|
|
|
378
440
|
|
|
379
441
|
```ts
|
|
380
442
|
import { QdrantClient } from "@qdrant/js-client-rest";
|
|
443
|
+
import { cria } from "@fastpaca/cria";
|
|
381
444
|
import { QdrantStore } from "@fastpaca/cria/memory/qdrant";
|
|
382
445
|
|
|
383
446
|
const client = new QdrantClient({ url: "http://localhost:6333" });
|
|
@@ -388,10 +451,13 @@ const store = new QdrantStore({
|
|
|
388
451
|
embed: async (text) => await getEmbedding(text),
|
|
389
452
|
});
|
|
390
453
|
|
|
454
|
+
const vectors = cria.vectordb(store);
|
|
455
|
+
const retrieval = vectors.plugin({ query, limit: 10 });
|
|
456
|
+
|
|
391
457
|
const messages = await cria
|
|
392
458
|
.prompt(provider)
|
|
393
459
|
.system("You are a research assistant.")
|
|
394
|
-
.
|
|
460
|
+
.use(retrieval)
|
|
395
461
|
.user(query)
|
|
396
462
|
.render({ budget: 128_000 });
|
|
397
463
|
```
|
package/dist/cria.d.ts
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { input, inputLayout } from "./dsl";
|
|
2
|
+
import { type TextInput, c as templateC } from "./dsl/templating";
|
|
3
|
+
import type { PromptMessageNode, PromptRole, PromptScope, ProviderToolIO, ScopeChildren } from "./types";
|
|
4
|
+
/** Create a standalone message node */
|
|
5
|
+
declare function message<TToolIO extends ProviderToolIO>(role: PromptRole, content: TextInput<TToolIO>): PromptMessageNode<TToolIO>;
|
|
6
|
+
/** Create a standalone scope node */
|
|
7
|
+
declare function scope<TToolIO extends ProviderToolIO>(children: ScopeChildren<TToolIO>, opts?: {
|
|
8
|
+
priority?: number;
|
|
9
|
+
id?: string;
|
|
10
|
+
}): PromptScope<TToolIO>;
|
|
11
|
+
/**
|
|
12
|
+
* Namespace for building prompts as code.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* import { cria } from "@fastpaca/cria";
|
|
17
|
+
*
|
|
18
|
+
* // Full prompt builder
|
|
19
|
+
* const prompt = cria
|
|
20
|
+
* .prompt()
|
|
21
|
+
* .system("You are helpful.")
|
|
22
|
+
* .user("Hello!")
|
|
23
|
+
* .build();
|
|
24
|
+
*
|
|
25
|
+
* // Standalone nodes
|
|
26
|
+
* const msg = cria.user("Hello!");
|
|
27
|
+
* const root = cria.scope([msg]);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const cria: {
|
|
31
|
+
readonly prompt: {
|
|
32
|
+
(): import("./dsl").PromptBuilder<unknown, "unpinned">;
|
|
33
|
+
<TProvider extends import("./provider").ModelProvider<unknown, ProviderToolIO>>(provider: TProvider): import("./dsl").PromptBuilder<TProvider, "unpinned">;
|
|
34
|
+
};
|
|
35
|
+
readonly c: typeof templateC;
|
|
36
|
+
readonly merge: (...builders: import("./dsl").PromptBuilder<unknown, "unpinned" | "pinned">[]) => import("./dsl").PromptBuilder<unknown, "unpinned" | "pinned">;
|
|
37
|
+
readonly message: typeof message;
|
|
38
|
+
readonly scope: typeof scope;
|
|
39
|
+
readonly user: (content: TextInput) => PromptMessageNode<ProviderToolIO>;
|
|
40
|
+
readonly system: (content: TextInput) => PromptMessageNode<ProviderToolIO>;
|
|
41
|
+
readonly developer: (content: TextInput) => PromptMessageNode<ProviderToolIO>;
|
|
42
|
+
readonly assistant: (content: TextInput) => PromptMessageNode<ProviderToolIO>;
|
|
43
|
+
readonly input: typeof input;
|
|
44
|
+
readonly inputLayout: typeof inputLayout;
|
|
45
|
+
readonly summarizer: (config: import("./memory/summarizer").SummarizerConfig) => import("./memory/summarizer").Summarizer;
|
|
46
|
+
readonly vectordb: <T>(store: import("./memory").VectorMemory<T>) => import("./memory").VectorDB<T>;
|
|
47
|
+
};
|
|
48
|
+
export {};
|
|
49
|
+
//# sourceMappingURL=cria.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cria.d.ts","sourceRoot":"","sources":["../src/cria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAiB,MAAM,OAAO,CAAC;AAE1D,OAAO,EAEL,KAAK,SAAS,EACd,CAAC,IAAI,SAAS,EACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EACV,iBAAiB,EACjB,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAEjB,uCAAuC;AACvC,iBAAS,OAAO,CAAC,OAAO,SAAS,cAAc,EAC7C,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,SAAS,CAAC,OAAO,CAAC,GAC1B,iBAAiB,CAAC,OAAO,CAAC,CAE5B;AAED,qCAAqC;AACrC,iBAAS,KAAK,CAAC,OAAO,SAAS,cAAc,EAC3C,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,WAAW,CAAC,OAAO,CAAC,CAEtB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,eAAO,MAAM,IAAI;;;;;;;;;6BAOC,SAAS;+BACP,SAAS;kCACN,SAAS;kCACT,SAAS;;;;;CAKtB,CAAC"}
|
package/dist/cria.js
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { input, inputLayout, merge, prompt } from "./dsl";
|
|
2
|
+
import { createMessage, createScope } from "./dsl/strategies";
|
|
3
|
+
import { normalizeTextInput, c as templateC, } from "./dsl/templating";
|
|
4
|
+
import { summarizer } from "./memory/summarizer";
|
|
5
|
+
import { vectordb } from "./memory/vector-db";
|
|
6
|
+
/** Create a standalone message node */
|
|
7
|
+
function message(role, content) {
|
|
8
|
+
return createMessage(role, normalizeTextInput(content));
|
|
9
|
+
}
|
|
10
|
+
/** Create a standalone scope node */
|
|
11
|
+
function scope(children, opts) {
|
|
12
|
+
return createScope(children, opts);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Namespace for building prompts as code.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import { cria } from "@fastpaca/cria";
|
|
20
|
+
*
|
|
21
|
+
* // Full prompt builder
|
|
22
|
+
* const prompt = cria
|
|
23
|
+
* .prompt()
|
|
24
|
+
* .system("You are helpful.")
|
|
25
|
+
* .user("Hello!")
|
|
26
|
+
* .build();
|
|
27
|
+
*
|
|
28
|
+
* // Standalone nodes
|
|
29
|
+
* const msg = cria.user("Hello!");
|
|
30
|
+
* const root = cria.scope([msg]);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export const cria = {
|
|
34
|
+
prompt,
|
|
35
|
+
c: templateC,
|
|
36
|
+
merge,
|
|
37
|
+
// Standalone node creators
|
|
38
|
+
message,
|
|
39
|
+
scope,
|
|
40
|
+
user: (content) => message("user", content),
|
|
41
|
+
system: (content) => message("system", content),
|
|
42
|
+
developer: (content) => message("developer", content),
|
|
43
|
+
assistant: (content) => message("assistant", content),
|
|
44
|
+
input,
|
|
45
|
+
inputLayout,
|
|
46
|
+
summarizer,
|
|
47
|
+
vectordb,
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=cria.js.map
|
package/dist/cria.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cria.js","sourceRoot":"","sources":["../src/cria.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EACL,kBAAkB,EAElB,CAAC,IAAI,SAAS,GACf,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAS9C,uCAAuC;AACvC,SAAS,OAAO,CACd,IAAgB,EAChB,OAA2B;IAE3B,OAAO,aAAa,CAAC,IAAI,EAAE,kBAAkB,CAAU,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,qCAAqC;AACrC,SAAS,KAAK,CACZ,QAAgC,EAChC,IAAyC;IAEzC,OAAO,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM;IACN,CAAC,EAAE,SAAS;IACZ,KAAK;IACL,2BAA2B;IAC3B,OAAO;IACP,KAAK;IACL,IAAI,EAAE,CAAC,OAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,MAAM,EAAE,CAAC,OAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC1D,SAAS,EAAE,CAAC,OAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;IAChE,SAAS,EAAE,CAAC,OAAkB,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC;IAChE,KAAK;IACL,WAAW;IACX,UAAU;IACV,QAAQ;CACA,CAAC"}
|
package/dist/dsl/builder.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fluent builders for constructing prompts.
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
5
|
-
import type { InputLayout, ModelProvider, PromptInput } from "../provider";
|
|
4
|
+
import type { InputLayout, MessageCodec, ModelProvider, PromptInput } from "../provider";
|
|
6
5
|
import type { RenderOptions } from "../render";
|
|
7
6
|
import type { CriaContext, PromptLayout, PromptNode, PromptPart, PromptRole, PromptTree, ProviderToolIO, ToolIOForProvider, ToolResultPart } from "../types";
|
|
8
|
-
import type { StoredSummary, Summarizer } from "./summary";
|
|
9
7
|
import { type TextInput } from "./templating";
|
|
10
8
|
type PinState = "unpinned" | "pinned";
|
|
11
9
|
/**
|
|
@@ -37,11 +35,21 @@ interface CachePinOptions {
|
|
|
37
35
|
priority?: number;
|
|
38
36
|
}
|
|
39
37
|
export type ScopeContent<P = unknown> = PromptNodeFor<P> | PromptBuilder<P, PinState> | AnyPromptBuilder | InputFor<P> | InputLayoutFor<P> | Promise<PromptNodeFor<P>> | readonly ScopeContent<P>[];
|
|
38
|
+
export interface PromptPlugin<P = unknown> {
|
|
39
|
+
render(): ScopeContent<P> | Promise<ScopeContent<P>>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Message-level children (text + parts).
|
|
43
|
+
*/
|
|
44
|
+
type MessageChildValue<P> = PromptPartFor<P> | string | number | boolean | readonly MessageChildValue<P>[];
|
|
45
|
+
type MessageChild<P> = MessageChildValue<P> | Promise<MessageChildValue<P>>;
|
|
40
46
|
/**
|
|
41
|
-
*
|
|
42
|
-
*
|
|
47
|
+
* Prompt-level children (scopes + messages).
|
|
48
|
+
* Includes promises and node fragments (async components like plugins).
|
|
43
49
|
*/
|
|
44
|
-
|
|
50
|
+
type ScopeChildValue<P> = PromptNodeFor<P> | PromptBuilder<P, PinState> | AnyPromptBuilder | readonly PromptNodeFor<P>[];
|
|
51
|
+
type ScopeChild<P> = ScopeChildValue<P> | Promise<PromptNodeFor<P> | readonly PromptNodeFor<P>[]>;
|
|
52
|
+
export type BuilderChild<P = unknown> = ScopeChild<P>;
|
|
45
53
|
type BoundProvider = ModelProvider<unknown, ProviderToolIO>;
|
|
46
54
|
type RenderedForProvider<P> = P extends ModelProvider<infer TOutput, infer _TToolIO> ? TOutput : unknown;
|
|
47
55
|
/**
|
|
@@ -54,31 +62,23 @@ type RenderOptionsWithoutProvider<TRendered, TToolIO extends ProviderToolIO> = O
|
|
|
54
62
|
/**
|
|
55
63
|
* Shared fluent API for prompt-level and message-level builders.
|
|
56
64
|
*/
|
|
57
|
-
export declare abstract class BuilderBase<TBuilder extends BuilderBase<TBuilder, P>, P> {
|
|
58
|
-
readonly children:
|
|
65
|
+
export declare abstract class BuilderBase<TBuilder extends BuilderBase<TBuilder, P, TChild>, P, TChild> {
|
|
66
|
+
readonly children: TChild[];
|
|
59
67
|
readonly context: CriaContext | undefined;
|
|
60
|
-
protected constructor(children?:
|
|
61
|
-
protected abstract create(children:
|
|
68
|
+
protected constructor(children?: TChild[], context?: CriaContext | undefined);
|
|
69
|
+
protected abstract create(children: TChild[], context: CriaContext | undefined): TBuilder;
|
|
62
70
|
/**
|
|
63
71
|
* Merge another builder's contents into this one (zod-like merge).
|
|
64
72
|
* Contexts must be compatible (either identical or undefined).
|
|
65
73
|
*/
|
|
66
74
|
merge(...builders: TBuilder[]): TBuilder;
|
|
67
|
-
protected addChild(child:
|
|
68
|
-
protected addChildren(children: readonly
|
|
75
|
+
protected addChild(child: TChild): TBuilder;
|
|
76
|
+
protected addChildren(children: readonly TChild[]): TBuilder;
|
|
69
77
|
}
|
|
70
|
-
export declare class MessageBuilder<P = unknown> extends BuilderBase<MessageBuilder<P>, P
|
|
71
|
-
constructor(children?:
|
|
72
|
-
protected create(children:
|
|
78
|
+
export declare class MessageBuilder<P = unknown> extends BuilderBase<MessageBuilder<P>, P, MessageChild<P>> {
|
|
79
|
+
constructor(children?: MessageChild<P>[], context?: CriaContext | undefined);
|
|
80
|
+
protected create(children: MessageChild<P>[], context: CriaContext | undefined): MessageBuilder<P>;
|
|
73
81
|
append(content: TextInputFor<P>): MessageBuilder<P>;
|
|
74
|
-
/**
|
|
75
|
-
* Add vector search results as message content (async, resolved at render time).
|
|
76
|
-
*/
|
|
77
|
-
vectorSearch<T = unknown>(opts: {
|
|
78
|
-
store: VectorMemory<T>;
|
|
79
|
-
query: string;
|
|
80
|
-
limit: number;
|
|
81
|
-
}): MessageBuilder<P>;
|
|
82
82
|
/**
|
|
83
83
|
* Add a formatted list of examples.
|
|
84
84
|
*/
|
|
@@ -98,7 +98,7 @@ export declare class MessageBuilder<P = unknown> extends BuilderBase<MessageBuil
|
|
|
98
98
|
* - `prefix(pinnedBuilder)` adopts the pinned prefix when it is the first content.
|
|
99
99
|
* - Merging a pinned builder after unpinned content throws.
|
|
100
100
|
*/
|
|
101
|
-
export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpinned"> extends BuilderBase<PromptBuilder<P, TPinned>, P
|
|
101
|
+
export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpinned"> extends BuilderBase<PromptBuilder<P, TPinned>, P, ScopeChild<P>> {
|
|
102
102
|
private readonly boundProvider;
|
|
103
103
|
private readonly pinState;
|
|
104
104
|
private constructor();
|
|
@@ -107,7 +107,7 @@ export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpi
|
|
|
107
107
|
*/
|
|
108
108
|
static create(): PromptBuilder<unknown, "unpinned">;
|
|
109
109
|
static create<TProvider extends BoundProvider>(provider: TProvider): PromptBuilder<TProvider, "unpinned">;
|
|
110
|
-
protected create(children:
|
|
110
|
+
protected create(children: ScopeChild<P>[], context: CriaContext | undefined): PromptBuilder<P, TPinned>;
|
|
111
111
|
private createUnpinned;
|
|
112
112
|
private clonePinState;
|
|
113
113
|
/**
|
|
@@ -148,17 +148,19 @@ export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpi
|
|
|
148
148
|
id?: string;
|
|
149
149
|
}): PromptBuilder<P, TPinned>;
|
|
150
150
|
/**
|
|
151
|
-
* Create a provider scope for AI-powered operations like
|
|
151
|
+
* Create a provider scope for AI-powered operations like summaries.
|
|
152
152
|
*
|
|
153
153
|
* @example
|
|
154
154
|
* ```typescript
|
|
155
|
+
* import { cria } from "@fastpaca/cria";
|
|
155
156
|
* import { createProvider } from "@fastpaca/cria/ai-sdk";
|
|
156
157
|
* import { openai } from "@ai-sdk/openai";
|
|
157
158
|
*
|
|
158
159
|
* const provider = createProvider(openai("gpt-4o"));
|
|
160
|
+
* const summarizer = cria.summarizer({ id: "conv", store, provider });
|
|
159
161
|
* cria.prompt()
|
|
160
162
|
* .providerScope(provider, (p) =>
|
|
161
|
-
* p.
|
|
163
|
+
* p.use(summarizer.plugin({ history: content }))
|
|
162
164
|
* )
|
|
163
165
|
* ```
|
|
164
166
|
*/
|
|
@@ -171,23 +173,6 @@ export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpi
|
|
|
171
173
|
* Add a PromptLayout input.
|
|
172
174
|
*/
|
|
173
175
|
inputLayout(content: PromptLayout<ToolIOFor<P>>): PromptBuilder<P, TPinned>;
|
|
174
|
-
/**
|
|
175
|
-
* Add vector search results (async, resolved at render time).
|
|
176
|
-
*/
|
|
177
|
-
vectorSearch<T = unknown>(opts: {
|
|
178
|
-
store: VectorMemory<T>;
|
|
179
|
-
query: string;
|
|
180
|
-
limit: number;
|
|
181
|
-
}): PromptBuilder<P, TPinned>;
|
|
182
|
-
/**
|
|
183
|
-
* Add content that will be summarized when over budget.
|
|
184
|
-
*/
|
|
185
|
-
summary(content: ScopeContent<P>, opts: {
|
|
186
|
-
id: string;
|
|
187
|
-
store: KVMemory<StoredSummary>;
|
|
188
|
-
summarize?: Summarizer;
|
|
189
|
-
priority?: number;
|
|
190
|
-
}): PromptBuilder<P, TPinned>;
|
|
191
176
|
/**
|
|
192
177
|
* Mark the current builder contents as cache-pinned.
|
|
193
178
|
*
|
|
@@ -228,6 +213,10 @@ export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpi
|
|
|
228
213
|
* ```
|
|
229
214
|
*/
|
|
230
215
|
merge(this: PromptBuilder<P, "unpinned">, ...items: (PromptBuilder<P, "unpinned"> | PromptBuilder<unknown, "unpinned"> | PromptNodeFor<P> | readonly PromptNodeFor<P>[])[]): PromptBuilder<P, "unpinned">;
|
|
216
|
+
/**
|
|
217
|
+
* Insert a prompt plugin at the current position.
|
|
218
|
+
*/
|
|
219
|
+
use(plugin: PromptPlugin<P>): PromptBuilder<P, TPinned>;
|
|
231
220
|
/**
|
|
232
221
|
* Conditionally apply a transformation to the builder.
|
|
233
222
|
*
|
|
@@ -299,5 +288,6 @@ export declare class PromptBuilder<P = unknown, TPinned extends PinState = "unpi
|
|
|
299
288
|
* Prompt type alias for external use.
|
|
300
289
|
*/
|
|
301
290
|
export type Prompt<P = unknown> = PromptBuilder<P, PinState>;
|
|
291
|
+
export declare function resolveScopeContent<P>(content: ScopeContent<P>, codec: MessageCodec<unknown, ProviderToolIO> | null | undefined): Promise<PromptNodeFor<P>[]>;
|
|
302
292
|
export {};
|
|
303
293
|
//# sourceMappingURL=builder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/dsl/builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/dsl/builder.ts"],"names":[],"mappings":"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"}
|