@fastpaca/cria 1.4.0 → 1.5.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.
Files changed (116) hide show
  1. package/README.md +25 -22
  2. package/dist/dsl/builder.d.ts +243 -0
  3. package/dist/dsl/builder.d.ts.map +1 -0
  4. package/dist/dsl/builder.js +458 -0
  5. package/dist/dsl/builder.js.map +1 -0
  6. package/dist/dsl/index.d.ts +71 -0
  7. package/dist/dsl/index.d.ts.map +1 -0
  8. package/dist/dsl/index.js +82 -0
  9. package/dist/dsl/index.js.map +1 -0
  10. package/dist/dsl/strategies.d.ts +29 -0
  11. package/dist/dsl/strategies.d.ts.map +1 -0
  12. package/dist/dsl/strategies.js +62 -0
  13. package/dist/dsl/strategies.js.map +1 -0
  14. package/dist/dsl/summary.d.ts +50 -0
  15. package/dist/dsl/summary.d.ts.map +1 -0
  16. package/dist/dsl/summary.js +56 -0
  17. package/dist/dsl/summary.js.map +1 -0
  18. package/dist/dsl/templating.d.ts +31 -0
  19. package/dist/dsl/templating.d.ts.map +1 -0
  20. package/dist/dsl/templating.js +83 -0
  21. package/dist/dsl/templating.js.map +1 -0
  22. package/dist/{components → dsl}/vector-search.d.ts +11 -34
  23. package/dist/dsl/vector-search.d.ts.map +1 -0
  24. package/dist/{components → dsl}/vector-search.js +12 -34
  25. package/dist/dsl/vector-search.js.map +1 -0
  26. package/dist/eval/index.d.ts +13 -2
  27. package/dist/eval/index.d.ts.map +1 -1
  28. package/dist/eval/judge.d.ts +6 -5
  29. package/dist/eval/judge.d.ts.map +1 -1
  30. package/dist/eval/judge.js +18 -5
  31. package/dist/eval/judge.js.map +1 -1
  32. package/dist/index.d.ts +5 -9
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +3 -6
  35. package/dist/index.js.map +1 -1
  36. package/dist/instrumentation/otel.js +5 -14
  37. package/dist/instrumentation/otel.js.map +1 -1
  38. package/dist/providers/ai-sdk.d.ts +29 -0
  39. package/dist/providers/ai-sdk.d.ts.map +1 -0
  40. package/dist/providers/ai-sdk.js +104 -0
  41. package/dist/providers/ai-sdk.js.map +1 -0
  42. package/dist/providers/anthropic.d.ts +30 -0
  43. package/dist/providers/anthropic.d.ts.map +1 -0
  44. package/dist/providers/anthropic.js +160 -0
  45. package/dist/providers/anthropic.js.map +1 -0
  46. package/dist/providers/openai.d.ts +37 -0
  47. package/dist/providers/openai.d.ts.map +1 -0
  48. package/dist/providers/openai.js +164 -0
  49. package/dist/providers/openai.js.map +1 -0
  50. package/dist/render.d.ts +24 -22
  51. package/dist/render.d.ts.map +1 -1
  52. package/dist/render.js +191 -63
  53. package/dist/render.js.map +1 -1
  54. package/dist/testing/plaintext.d.ts +28 -0
  55. package/dist/testing/plaintext.d.ts.map +1 -0
  56. package/dist/testing/plaintext.js +71 -0
  57. package/dist/testing/plaintext.js.map +1 -0
  58. package/dist/types.d.ts +204 -163
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/types.js +37 -100
  61. package/dist/types.js.map +1 -1
  62. package/package.json +7 -33
  63. package/dist/components/index.d.ts +0 -147
  64. package/dist/components/index.d.ts.map +0 -1
  65. package/dist/components/index.js +0 -181
  66. package/dist/components/index.js.map +0 -1
  67. package/dist/components/summary.d.ts +0 -89
  68. package/dist/components/summary.d.ts.map +0 -1
  69. package/dist/components/summary.js +0 -118
  70. package/dist/components/summary.js.map +0 -1
  71. package/dist/components/vector-search.d.ts.map +0 -1
  72. package/dist/components/vector-search.js.map +0 -1
  73. package/dist/dsl.d.ts +0 -233
  74. package/dist/dsl.d.ts.map +0 -1
  75. package/dist/dsl.js +0 -428
  76. package/dist/dsl.js.map +0 -1
  77. package/dist/integrations/ai-sdk.d.ts +0 -22
  78. package/dist/integrations/ai-sdk.d.ts.map +0 -1
  79. package/dist/integrations/ai-sdk.js +0 -172
  80. package/dist/integrations/ai-sdk.js.map +0 -1
  81. package/dist/integrations/anthropic.d.ts +0 -50
  82. package/dist/integrations/anthropic.d.ts.map +0 -1
  83. package/dist/integrations/anthropic.js +0 -220
  84. package/dist/integrations/anthropic.js.map +0 -1
  85. package/dist/integrations/openai.d.ts +0 -48
  86. package/dist/integrations/openai.d.ts.map +0 -1
  87. package/dist/integrations/openai.js +0 -265
  88. package/dist/integrations/openai.js.map +0 -1
  89. package/dist/jsx/index.d.ts +0 -6
  90. package/dist/jsx/index.d.ts.map +0 -1
  91. package/dist/jsx/index.js +0 -7
  92. package/dist/jsx/index.js.map +0 -1
  93. package/dist/jsx/jsx-dev-runtime.d.ts +0 -2
  94. package/dist/jsx/jsx-dev-runtime.d.ts.map +0 -1
  95. package/dist/jsx/jsx-dev-runtime.js +0 -3
  96. package/dist/jsx/jsx-dev-runtime.js.map +0 -1
  97. package/dist/jsx/jsx-runtime.d.ts +0 -40
  98. package/dist/jsx/jsx-runtime.d.ts.map +0 -1
  99. package/dist/jsx/jsx-runtime.js +0 -40
  100. package/dist/jsx/jsx-runtime.js.map +0 -1
  101. package/dist/renderers/markdown.d.ts +0 -3
  102. package/dist/renderers/markdown.d.ts.map +0 -1
  103. package/dist/renderers/markdown.js +0 -43
  104. package/dist/renderers/markdown.js.map +0 -1
  105. package/dist/renderers/shared.d.ts +0 -82
  106. package/dist/renderers/shared.d.ts.map +0 -1
  107. package/dist/renderers/shared.js +0 -156
  108. package/dist/renderers/shared.js.map +0 -1
  109. package/dist/snapshot.d.ts +0 -47
  110. package/dist/snapshot.d.ts.map +0 -1
  111. package/dist/snapshot.js +0 -144
  112. package/dist/snapshot.js.map +0 -1
  113. package/dist/tokenizers.d.ts +0 -14
  114. package/dist/tokenizers.d.ts.map +0 -1
  115. package/dist/tokenizers.js +0 -45
  116. package/dist/tokenizers.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.d.ts","sourceRoot":"","sources":["../../src/dsl/strategies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,QAAQ,EACT,MAAM,UAAU,CAAC;AAElB;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,SAAS,cAAc,EACxD,QAAQ,EAAE,aAAa,CAAC,OAAO,CAAC,EAChC,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7D,WAAW,CAAC,OAAO,CAAC,CAStB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,SAAS,cAAc,EAC1D,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,EAClC,EAAE,CAAC,EAAE,MAAM,GACV,iBAAiB,CAAC,OAAO,CAAC,CAQ5B;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,OAAO,GAAG,KAAK,GACpB,QAAQ,CAsBV;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,QAAQ,CAE7C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,SAAS,cAAc,EAC3D,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,SAAS,MAAM,EAAE,EACxB,SAAS,SAAS,GACjB,UAAU,CAAC,OAAO,CAAC,CAIrB"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Strategy factories and component helpers for the DSL module.
3
+ */
4
+ /**
5
+ * Create a scope node with optional priority, strategy, and id.
6
+ */
7
+ export function createScope(children, opts) {
8
+ // Thin helper that preserves tool IO types without coercion.
9
+ return {
10
+ kind: "scope",
11
+ priority: opts?.priority ?? 0,
12
+ children,
13
+ ...(opts?.strategy && { strategy: opts.strategy }),
14
+ ...(opts?.id && { id: opts.id }),
15
+ };
16
+ }
17
+ /**
18
+ * Create a message node with role and children.
19
+ */
20
+ export function createMessage(role, children, id) {
21
+ // Message nodes only carry already-normalized parts; no conversion happens here.
22
+ return {
23
+ kind: "message",
24
+ role,
25
+ children,
26
+ ...(id && { id }),
27
+ };
28
+ }
29
+ /**
30
+ * Create a truncate strategy that removes children from one end.
31
+ */
32
+ export function createTruncateStrategy(budget, from) {
33
+ return (input) => {
34
+ const { children: currentChildren } = input.target;
35
+ if (currentChildren.length === 0) {
36
+ return null;
37
+ }
38
+ const dropCount = Math.max(1, Math.floor(input.totalTokens / budget));
39
+ const nextChildren = from === "start"
40
+ ? currentChildren.slice(dropCount)
41
+ : currentChildren.slice(0, Math.max(0, currentChildren.length - dropCount));
42
+ if (nextChildren.length === 0) {
43
+ return null;
44
+ }
45
+ return { ...input.target, children: nextChildren };
46
+ };
47
+ }
48
+ /**
49
+ * Create an omit strategy that removes the entire scope.
50
+ */
51
+ export function createOmitStrategy() {
52
+ return () => null;
53
+ }
54
+ /**
55
+ * Format examples into a text prompt part.
56
+ */
57
+ export function formatExamples(title, items, separator = "\n\n") {
58
+ const body = items.length === 0 ? "" : items.join(separator);
59
+ const text = title ? `${title}\n${body}` : body;
60
+ return { type: "text", text };
61
+ }
62
+ //# sourceMappingURL=strategies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategies.js","sourceRoot":"","sources":["../../src/dsl/strategies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,QAAgC,EAChC,IAA8D;IAE9D,6DAA6D;IAC7D,OAAO;QACL,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,CAAC;QAC7B,QAAQ;QACR,GAAG,CAAC,IAAI,EAAE,QAAQ,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClD,GAAG,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;KACjC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,IAAgB,EAChB,QAAkC,EAClC,EAAW;IAEX,iFAAiF;IACjF,OAAO;QACL,IAAI,EAAE,SAAS;QACf,IAAI;QACJ,QAAQ;QACR,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAc,EACd,IAAqB;IAErB,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QACnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAC;QACtE,MAAM,YAAY,GAChB,IAAI,KAAK,OAAO;YACd,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;YAClC,CAAC,CAAC,eAAe,CAAC,KAAK,CACnB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,CAAC,CAChD,CAAC;QAER,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAa,EACb,KAAwB,EACxB,SAAS,GAAG,MAAM;IAElB,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IAChD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Summary strategy for progressively summarizing conversation history.
3
+ */
4
+ import type { KVMemory } from "../memory";
5
+ import type { MaybePromise, ModelProvider, PromptRole, PromptScope, ProviderToolIO, ScopeChildren } from "../types";
6
+ /**
7
+ * Stored summary data persisted across renders.
8
+ */
9
+ export interface StoredSummary {
10
+ /** The summary text content */
11
+ content: string;
12
+ }
13
+ /**
14
+ * Context passed to the summarizer function.
15
+ */
16
+ export interface SummarizerContext {
17
+ /** The subtree being summarized */
18
+ target: PromptScope<ProviderToolIO>;
19
+ /** Previous summary to build upon (null if first summary) */
20
+ existingSummary: string | null;
21
+ /** Provider in scope, if any */
22
+ provider?: ModelProvider<unknown, ProviderToolIO>;
23
+ }
24
+ /**
25
+ * Function that generates summaries.
26
+ */
27
+ export type Summarizer = (ctx: SummarizerContext) => MaybePromise<string>;
28
+ interface SummaryProps<TToolIO extends ProviderToolIO = ProviderToolIO> {
29
+ /** Unique identifier for this summary in the store */
30
+ id: string;
31
+ /** Storage adapter for persisting summaries */
32
+ store: KVMemory<StoredSummary>;
33
+ /**
34
+ * Function that generates summaries.
35
+ * If omitted, uses the ModelProvider from render options with a default prompt.
36
+ */
37
+ summarize?: Summarizer;
38
+ /** Priority for this scope (higher number = reduced first). Default: 0 */
39
+ priority?: number;
40
+ /** Role for the summary message. Default: "system" */
41
+ role?: PromptRole;
42
+ /** Content to potentially summarize */
43
+ children?: ScopeChildren<TToolIO>;
44
+ }
45
+ /**
46
+ * A scope that summarizes its content when the prompt needs to shrink.
47
+ */
48
+ export declare function Summary<TToolIO extends ProviderToolIO>({ id, store, summarize, priority, role, children, }: SummaryProps<TToolIO>): PromptScope<TToolIO>;
49
+ export {};
50
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/dsl/summary.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,aAAa,EAEd,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,MAAM,EAAE,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,6DAA6D;IAC7D,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,gCAAgC;IAChC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,iBAAiB,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC;AAgC1E,UAAU,YAAY,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc;IACpE,sDAAsD;IACtD,EAAE,EAAE,MAAM,CAAC;IACX,+CAA+C;IAC/C,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC/B;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,uCAAuC;IACvC,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,SAAS,cAAc,EAAE,EACtD,EAAE,EACF,KAAK,EACL,SAAS,EACT,QAAY,EACZ,IAAe,EACf,QAAa,GACd,EAAE,YAAY,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAqC9C"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Summary strategy for progressively summarizing conversation history.
3
+ */
4
+ import { render } from "../render";
5
+ import { PromptBuilder } from "./builder";
6
+ import { createScope } from "./strategies";
7
+ /**
8
+ * Default summarizer that uses a ModelProvider.
9
+ * This is used when no custom summarize function is provided.
10
+ */
11
+ async function defaultSummarizer(ctx, provider) {
12
+ const summaryPrompt = await PromptBuilder.create()
13
+ .system("You are a conversation summarizer. Create a concise summary that captures the key points and context needed to continue the conversation. Be brief but preserve essential information.")
14
+ .when(ctx.existingSummary !== null, (p) => p.assistant(`Current summary:\n${ctx.existingSummary}`))
15
+ .merge(ctx.target.children)
16
+ .when(ctx.existingSummary !== null, (p) => p.user("Update the summary based on the previous summary and the conversation above."))
17
+ .when(ctx.existingSummary === null, (p) => p.user("Summarize the conversation above."))
18
+ .build();
19
+ const rendered = await render(summaryPrompt, { provider });
20
+ return provider.completion(rendered);
21
+ }
22
+ /**
23
+ * A scope that summarizes its content when the prompt needs to shrink.
24
+ */
25
+ export function Summary({ id, store, summarize, priority = 0, role = "system", children = [], }) {
26
+ return createScope(children, {
27
+ priority,
28
+ strategy: async (input) => {
29
+ const { target, context } = input;
30
+ const existingEntry = await store.get(id);
31
+ const summarizerContext = {
32
+ target,
33
+ existingSummary: existingEntry?.data.content ?? null,
34
+ ...(context.provider ? { provider: context.provider } : {}),
35
+ };
36
+ let newSummary;
37
+ if (summarize) {
38
+ newSummary = await summarize(summarizerContext);
39
+ }
40
+ else if (context.provider) {
41
+ newSummary = await defaultSummarizer(summarizerContext, context.provider);
42
+ }
43
+ else {
44
+ throw new Error(`Summary "${id}" requires either a 'summarize' function or a provider. Pass a provider to render(), bind one with cria.prompt(provider) or cria.prompt().provider(provider), or wrap the summary in cria.prompt().providerScope(provider, (p) => p.summary(...)).`);
45
+ }
46
+ await store.set(id, {
47
+ content: newSummary,
48
+ });
49
+ const tree = await PromptBuilder.create()
50
+ .message(role, newSummary)
51
+ .build();
52
+ return { ...tree, priority: target.priority };
53
+ },
54
+ });
55
+ }
56
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/dsl/summary.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAUnC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AA2B3C;;;GAGG;AACH,KAAK,UAAU,iBAAiB,CAC9B,GAAsB,EACtB,QAAgD;IAEhD,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;SAC/C,MAAM,CACL,wLAAwL,CACzL;SACA,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,SAAS,CAAC,qBAAqB,GAAG,CAAC,eAAe,EAAE,CAAC,CACxD;SACA,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC;SAC1B,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,CACJ,8EAA8E,CAC/E,CACF;SACA,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CACxC,CAAC,CAAC,IAAI,CAAC,mCAAmC,CAAC,CAC5C;SACA,KAAK,EAAE,CAAC;IAEX,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC3D,OAAO,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAoBD;;GAEG;AACH,MAAM,UAAU,OAAO,CAAiC,EACtD,EAAE,EACF,KAAK,EACL,SAAS,EACT,QAAQ,GAAG,CAAC,EACZ,IAAI,GAAG,QAAQ,EACf,QAAQ,GAAG,EAAE,GACS;IACtB,OAAO,WAAW,CAAC,QAAQ,EAAE;QAC3B,QAAQ;QACR,QAAQ,EAAE,KAAK,EAAE,KAAoB,EAAE,EAAE;YACvC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;YAClC,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAE1C,MAAM,iBAAiB,GAAsB;gBAC3C,MAAM;gBACN,eAAe,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;gBACpD,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aAC5D,CAAC;YAEF,IAAI,UAAkB,CAAC;YACvB,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,GAAG,MAAM,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAClD,CAAC;iBAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBAC5B,UAAU,GAAG,MAAM,iBAAiB,CAClC,iBAAiB,EACjB,OAAO,CAAC,QAAQ,CACjB,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,YAAY,EAAE,oPAAoP,CACnQ,CAAC;YACJ,CAAC;YAED,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE;gBAClB,OAAO,EAAE,UAAU;aACpB,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,MAAM,EAAE;iBACtC,OAAO,CAAC,IAAI,EAAE,UAAU,CAAC;iBACzB,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Template literal utilities for building prompt content.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import type { PromptPart, ProviderToolIO } from "../types";
7
+ /**
8
+ * Text input types for message builders.
9
+ * These accept raw text and pre-built PromptParts, so tool parts can pass through
10
+ * without conversion while keeping provider-bound tool IO types intact.
11
+ */
12
+ export type TextValue<TToolIO extends ProviderToolIO = ProviderToolIO> = PromptPart<TToolIO> | boolean | number | string | null | undefined;
13
+ export type TextInput<TToolIO extends ProviderToolIO = ProviderToolIO> = TextValue<TToolIO> | readonly TextInput<TToolIO>[];
14
+ /**
15
+ * Tagged template literal function for building prompt children with automatic indentation normalization.
16
+ *
17
+ * Interpolates values into template strings and normalizes indentation by stripping
18
+ * common leading whitespace. Useful for writing multi-line prompt content with clean formatting.
19
+ *
20
+ * @param strings - Template string segments
21
+ * @param values - Interpolated values (strings, numbers, booleans, PromptParts, arrays, etc.)
22
+ * @returns Array of message parts
23
+ *
24
+ * This function allows you to use prompt parts naturally inside template strings.
25
+ */
26
+ export declare function c(strings: TemplateStringsArray, ...values: readonly TextInput[]): readonly PromptPart[];
27
+ export declare function c<TToolIO extends ProviderToolIO>(strings: TemplateStringsArray, ...values: readonly TextInput<TToolIO>[]): readonly PromptPart<TToolIO>[];
28
+ export declare function textPart<TToolIO extends ProviderToolIO = ProviderToolIO>(value: string): PromptPart<TToolIO>;
29
+ export declare function isPromptPart<TToolIO extends ProviderToolIO = ProviderToolIO>(value: unknown): value is PromptPart<TToolIO>;
30
+ export declare function normalizeTextInput<TToolIO extends ProviderToolIO>(content?: TextInput<TToolIO>): PromptPart<TToolIO>[];
31
+ //# sourceMappingURL=templating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templating.d.ts","sourceRoot":"","sources":["../../src/dsl/templating.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACjE,UAAU,CAAC,OAAO,CAAC,GACnB,OAAO,GACP,MAAM,GACN,MAAM,GACN,IAAI,GACJ,SAAS,CAAC;AACd,MAAM,MAAM,SAAS,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACjE,SAAS,CAAC,OAAO,CAAC,GAClB,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;AAIlC;;;;;;;;;;;GAWG;AACH,wBAAgB,CAAC,CACf,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,SAAS,SAAS,EAAE,GAC9B,SAAS,UAAU,EAAE,CAAC;AACzB,wBAAgB,CAAC,CAAC,OAAO,SAAS,cAAc,EAC9C,OAAO,EAAE,oBAAoB,EAC7B,GAAG,MAAM,EAAE,SAAS,SAAS,CAAC,OAAO,CAAC,EAAE,GACvC,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;AAyBlC,wBAAgB,QAAQ,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,EACtE,KAAK,EAAE,MAAM,GACZ,UAAU,CAAC,OAAO,CAAC,CAErB;AAED,wBAAgB,YAAY,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,EAC1E,KAAK,EAAE,OAAO,GACb,KAAK,IAAI,UAAU,CAAC,OAAO,CAAC,CAE9B;AAGD,wBAAgB,kBAAkB,CAAC,OAAO,SAAS,cAAc,EAC/D,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,GAC3B,UAAU,CAAC,OAAO,CAAC,EAAE,CA0BvB"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Template literal utilities for building prompt content.
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ const TEMPLATE_INDENT_RE = /^[ \t]*/;
7
+ export function c(strings, ...values) {
8
+ const normalizedStrings = normalizeTemplateStrings(strings);
9
+ const children = [];
10
+ for (let index = 0; index < normalizedStrings.length; index += 1) {
11
+ const segment = normalizedStrings[index];
12
+ if (segment !== undefined && segment.length > 0) {
13
+ children.push({ type: "text", text: segment });
14
+ }
15
+ if (index < values.length) {
16
+ const normalized = normalizeTextInput(values[index]);
17
+ if (normalized.length > 0) {
18
+ children.push(...normalized);
19
+ }
20
+ }
21
+ }
22
+ return children;
23
+ }
24
+ export function textPart(value) {
25
+ return { type: "text", text: value };
26
+ }
27
+ export function isPromptPart(value) {
28
+ return typeof value === "object" && value !== null && "type" in value;
29
+ }
30
+ // Normalize text-like inputs into prompt parts while preserving existing parts.
31
+ export function normalizeTextInput(content) {
32
+ if (content === null || content === undefined) {
33
+ return [];
34
+ }
35
+ if (Array.isArray(content)) {
36
+ const flattened = [];
37
+ for (const item of content) {
38
+ flattened.push(...normalizeTextInput(item));
39
+ }
40
+ return flattened;
41
+ }
42
+ if (typeof content === "string") {
43
+ return [textPart(content)];
44
+ }
45
+ if (typeof content === "number" || typeof content === "boolean") {
46
+ return [textPart(String(content))];
47
+ }
48
+ if (isPromptPart(content)) {
49
+ return [content];
50
+ }
51
+ throw new Error("Message content must be text or message parts.");
52
+ }
53
+ function normalizeTemplateStrings(strings) {
54
+ if (strings.length === 0) {
55
+ return strings;
56
+ }
57
+ const normalized = [...strings];
58
+ if (normalized[0]?.startsWith("\n")) {
59
+ normalized[0] = normalized[0].slice(1);
60
+ }
61
+ const lastIndex = normalized.length - 1;
62
+ if (normalized[lastIndex]?.endsWith("\n")) {
63
+ normalized[lastIndex] = normalized[lastIndex].slice(0, -1);
64
+ }
65
+ const lines = normalized.flatMap((segment) => segment.split("\n"));
66
+ const indents = lines
67
+ .filter((line) => line.trim().length > 0)
68
+ .map((line) => line.match(TEMPLATE_INDENT_RE)?.[0].length ?? 0);
69
+ const minIndent = indents.length > 0 ? Math.min(...indents) : 0;
70
+ if (minIndent === 0) {
71
+ return normalized;
72
+ }
73
+ return normalized.map((segment) => segment
74
+ .split("\n")
75
+ .map((line) => {
76
+ if (line.trim().length === 0) {
77
+ return "";
78
+ }
79
+ return line.slice(Math.min(minIndent, line.length));
80
+ })
81
+ .join("\n"));
82
+ }
83
+ //# sourceMappingURL=templating.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templating.js","sourceRoot":"","sources":["../../src/dsl/templating.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
+ /**
2
+ * VectorSearch async component for RAG-style retrieval.
3
+ */
1
4
  import type { VectorMemory, VectorSearchResult } from "../memory";
2
- import type { PromptChildren, PromptElement } from "../types";
5
+ import type { PromptPart, PromptRole, PromptScope, ProviderToolIO } from "../types";
3
6
  /** Simple message shape for query extraction. */
4
7
  interface Message {
5
8
  role: string;
@@ -12,7 +15,7 @@ interface Message {
12
15
  */
13
16
  export type ResultFormatter<T = unknown> = (results: VectorSearchResult<T>[]) => string;
14
17
  type QueryExtractor = (messages: Message[]) => string | null | undefined;
15
- interface VectorSearchProps<T = unknown> {
18
+ interface VectorSearchProps<T = unknown, TToolIO extends ProviderToolIO = ProviderToolIO> {
16
19
  /** Vector memory store to search */
17
20
  store: VectorMemory<T>;
18
21
  /**
@@ -32,44 +35,18 @@ interface VectorSearchProps<T = unknown> {
32
35
  threshold?: number;
33
36
  /** Custom formatter for search results. Default: numbered list format */
34
37
  formatResults?: ResultFormatter<T>;
35
- /** Priority for this region (higher number = reduced first). Default: 0 */
38
+ /** Priority for this scope (higher number = reduced first). Default: 0 */
36
39
  priority?: number;
37
40
  /** Stable identifier for caching/debugging */
38
41
  id?: string;
42
+ /** Role for the emitted message. Default: "user" */
43
+ role?: PromptRole;
39
44
  /** Query text provided as children (preferred over `query` when present). */
40
- children?: PromptChildren;
45
+ children?: readonly PromptPart<TToolIO>[];
41
46
  }
42
47
  /**
43
- * Renders vector search results into the prompt.
44
- *
45
- * The query is resolved at render time. No pre-fetching needed. Query sources, in
46
- * order of precedence:
47
- * 1) Children text: `<VectorSearch store={store}>find docs about RAG</VectorSearch>`
48
- * 2) `query` prop: `<VectorSearch store={store} query="find docs about RAG" />`
49
- * 3) Messages: `<VectorSearch store={store} messages={messages} />`
50
- * - Defaults to the last user message, or use `extractQuery` to customize.
51
- *
52
- * @example
53
- * ```tsx
54
- * <VectorSearch store={store} limit={5}>
55
- * my query: {topic}
56
- * </VectorSearch>
57
- * ```
58
- *
59
- * @example Using messages as the query source
60
- * ```tsx
61
- * <VectorSearch store={store} messages={messages} />
62
- * ```
63
- *
64
- * @example Custom extractor
65
- * ```tsx
66
- * <VectorSearch
67
- * store={store}
68
- * messages={messages}
69
- * extractQuery={(msgs) => msgs.at(-1)?.content}
70
- * />
71
- * ```
48
+ * Renders vector search results into a scoped message.
72
49
  */
73
- export declare function VectorSearch<T = unknown>({ store, query, messages, extractQuery, limit, threshold, formatResults, priority, id, children, }: VectorSearchProps<T>): Promise<PromptElement>;
50
+ export declare function VectorSearch<T = unknown, TToolIO extends ProviderToolIO = ProviderToolIO>({ store, query, messages, extractQuery, limit, threshold, formatResults, priority, id, role, children, }: VectorSearchProps<T, TToolIO>): Promise<PromptScope<TToolIO>>;
74
51
  export {};
75
52
  //# sourceMappingURL=vector-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-search.d.ts","sourceRoot":"","sources":["../../src/dsl/vector-search.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,YAAY,EAEZ,kBAAkB,EACnB,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACf,MAAM,UAAU,CAAC;AAGlB,iDAAiD;AACjD,UAAU,OAAO;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,CACzC,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,KAC7B,MAAM,CAAC;AAsBZ,KAAK,cAAc,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;AAEzE,UAAU,iBAAiB,CACzB,CAAC,GAAG,OAAO,EACX,OAAO,SAAS,cAAc,GAAG,cAAc;IAE/C,oCAAoC;IACpC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IACvB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,iFAAiF;IACjF,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yEAAyE;IACzE,aAAa,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;IACnC,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;CAC3C;AA4DD;;GAEG;AACH,wBAAsB,YAAY,CAChC,CAAC,GAAG,OAAO,EACX,OAAO,SAAS,cAAc,GAAG,cAAc,EAC/C,EACA,KAAK,EACL,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,KAAS,EACT,SAAS,EACT,aAAgC,EAChC,QAAY,EACZ,EAAE,EACF,IAAa,EACb,QAAQ,GACT,EAAE,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CA8B/D"}
@@ -1,3 +1,7 @@
1
+ /**
2
+ * VectorSearch async component for RAG-style retrieval.
3
+ */
4
+ import { PromptBuilder } from "./builder";
1
5
  /**
2
6
  * Default formatter that renders results as a numbered list.
3
7
  * Returns a placeholder string when no results are found so prompts can degrade gracefully.
@@ -21,10 +25,10 @@ function queryFromChildren(children) {
21
25
  }
22
26
  let buffer = "";
23
27
  for (const child of children) {
24
- if (typeof child !== "string") {
25
- throw new Error("VectorSearch children must be plain text. Wrap complex content in a formatter before passing it as a query.");
28
+ if (child.type !== "text") {
29
+ throw new Error("VectorSearch children must be text parts. Use a formatter to build complex queries.");
26
30
  }
27
- buffer += child;
31
+ buffer += child.text;
28
32
  }
29
33
  const trimmed = buffer.trim();
30
34
  return trimmed === "" ? null : trimmed;
@@ -55,37 +59,9 @@ function deriveQuery(props) {
55
59
  return null;
56
60
  }
57
61
  /**
58
- * Renders vector search results into the prompt.
59
- *
60
- * The query is resolved at render time. No pre-fetching needed. Query sources, in
61
- * order of precedence:
62
- * 1) Children text: `<VectorSearch store={store}>find docs about RAG</VectorSearch>`
63
- * 2) `query` prop: `<VectorSearch store={store} query="find docs about RAG" />`
64
- * 3) Messages: `<VectorSearch store={store} messages={messages} />`
65
- * - Defaults to the last user message, or use `extractQuery` to customize.
66
- *
67
- * @example
68
- * ```tsx
69
- * <VectorSearch store={store} limit={5}>
70
- * my query: {topic}
71
- * </VectorSearch>
72
- * ```
73
- *
74
- * @example Using messages as the query source
75
- * ```tsx
76
- * <VectorSearch store={store} messages={messages} />
77
- * ```
78
- *
79
- * @example Custom extractor
80
- * ```tsx
81
- * <VectorSearch
82
- * store={store}
83
- * messages={messages}
84
- * extractQuery={(msgs) => msgs.at(-1)?.content}
85
- * />
86
- * ```
62
+ * Renders vector search results into a scoped message.
87
63
  */
88
- export async function VectorSearch({ store, query, messages, extractQuery, limit = 5, threshold, formatResults = defaultFormatter, priority = 0, id, children, }) {
64
+ export async function VectorSearch({ store, query, messages, extractQuery, limit = 5, threshold, formatResults = defaultFormatter, priority = 0, id, role = "user", children, }) {
89
65
  const finalQuery = deriveQuery({
90
66
  query,
91
67
  messages,
@@ -101,9 +77,11 @@ export async function VectorSearch({ store, query, messages, extractQuery, limit
101
77
  };
102
78
  const results = await store.search(finalQuery, searchOptions);
103
79
  const content = formatResults(results);
80
+ // Use the DSL to build the result scope
81
+ const tree = await PromptBuilder.create().message(role, content).build();
104
82
  return {
83
+ ...tree,
105
84
  priority,
106
- children: [content],
107
85
  ...(id && { id }),
108
86
  };
109
87
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vector-search.js","sourceRoot":"","sources":["../../src/dsl/vector-search.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,19 @@ export type { EvalResult, Judge, JudgeConfig, Judgment } from "./judge";
31
31
  export { createJudge } from "./judge";
32
32
  export declare const cria: {
33
33
  readonly judge: typeof createJudge;
34
- readonly prompt: () => import("..").PromptBuilder;
34
+ readonly prompt: {
35
+ (): import("..").PromptBuilder<unknown>;
36
+ <TProvider extends import("..").ModelProvider<unknown, import("..").ProviderToolIO>>(provider: TProvider): import("..").PromptBuilder<TProvider>;
37
+ };
35
38
  readonly c: typeof import("..").c;
36
- readonly merge: (...builders: import("..").PromptBuilder[]) => import("..").PromptBuilder;
39
+ readonly merge: (...builders: import("..").PromptBuilder[]) => import("..").PromptBuilder<unknown>;
40
+ readonly message: <TToolIO extends import("..").ProviderToolIO>(role: import("..").PromptRole, content: import("..").TextInput<TToolIO>) => import("..").PromptMessageNode<TToolIO>;
41
+ readonly scope: <TToolIO extends import("..").ProviderToolIO>(children: import("..").ScopeChildren<TToolIO>, opts?: {
42
+ priority?: number;
43
+ id?: string;
44
+ }) => import("..").PromptScope<TToolIO>;
45
+ readonly user: (content: import("..").TextInput) => import("..").PromptMessageNode<import("..").ProviderToolIO>;
46
+ readonly system: (content: import("..").TextInput) => import("..").PromptMessageNode<import("..").ProviderToolIO>;
47
+ readonly assistant: (content: import("..").TextInput) => import("..").PromptMessageNode<import("..").ProviderToolIO>;
37
48
  };
38
49
  //# sourceMappingURL=index.d.ts.map
@@ -1 +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"}
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;;;;;;;;;;gBACgZ,CAAC;UAAY,CAAC;;;;;CAD/W,CAAC"}
@@ -1,8 +1,9 @@
1
- import type { ModelProvider, PromptChildren, PromptElement } from "../types";
1
+ import type { TextInput } from "../dsl";
2
+ import type { ModelProvider, PromptTree, ProviderToolIO } from "../types";
2
3
  export declare const DEFAULT_THRESHOLD = 0.8;
3
4
  export interface JudgeConfig {
4
- target: ModelProvider<unknown>;
5
- evaluator: ModelProvider<unknown>;
5
+ target: ModelProvider<unknown, ProviderToolIO>;
6
+ evaluator: ModelProvider<unknown, ProviderToolIO>;
6
7
  threshold?: number;
7
8
  }
8
9
  export interface EvalResult {
@@ -12,8 +13,8 @@ export interface EvalResult {
12
13
  response: string;
13
14
  }
14
15
  export interface Judgment {
15
- toPass(criterion: PromptChildren): Promise<void>;
16
+ toPass(criterion: TextInput): Promise<void>;
16
17
  }
17
- export type Judge = (prompt: PromptElement) => Judgment;
18
+ export type Judge = (prompt: PromptTree) => Judgment;
18
19
  export declare function createJudge(config: JudgeConfig): Judge;
19
20
  //# sourceMappingURL=judge.d.ts.map
@@ -1 +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"}
1
+ {"version":3,"file":"judge.d.ts","sourceRoot":"","sources":["../../src/eval/judge.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAIxC,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1E,eAAO,MAAM,iBAAiB,MAAM,CAAC;AAErC,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAC/C,SAAS,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;IAClD,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,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7C;AAED,MAAM,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,UAAU,KAAK,QAAQ,CAAC;AAmBrD,wBAAgB,WAAW,CAAC,MAAM,EAAE,WAAW,GAAG,KAAK,CAgDtD"}
@@ -1,28 +1,41 @@
1
1
  import { z } from "zod";
2
- import { c, cria } from "../dsl";
2
+ import { cria } from "../dsl";
3
+ import { normalizeTextInput } from "../dsl/templating";
3
4
  import { render } from "../render";
4
5
  export const DEFAULT_THRESHOLD = 0.8;
5
6
  const EvalResultSchema = z.object({
6
7
  score: z.number().min(0).max(1),
7
8
  reasoning: z.string(),
8
9
  });
10
+ const formatCriterion = (criterion) => {
11
+ const parts = normalizeTextInput(criterion);
12
+ let text = "";
13
+ for (const part of parts) {
14
+ if (part.type === "tool-call" || part.type === "tool-result") {
15
+ throw new Error("Judge criteria cannot include tool calls or results.");
16
+ }
17
+ text += part.text;
18
+ }
19
+ return text;
20
+ };
9
21
  export function createJudge(config) {
10
22
  const { target, evaluator, threshold = DEFAULT_THRESHOLD } = config;
11
23
  return (prompt) => {
12
24
  const evaluate = async (criterion) => {
13
- const response = await target.completion(await render(prompt, { renderer: target.renderer }));
25
+ const response = await target.completion(await render(prompt, { provider: target }));
26
+ const criteriaText = formatCriterion(criterion);
14
27
  const evalPrompt = await cria
15
28
  .prompt()
16
- .system(c `You are an evaluator.
29
+ .system(`You are an evaluator.
17
30
  Score the response from 0 to 1 based on ALL criteria below.
18
31
 
19
- Criteria: ${criterion}
32
+ Criteria: ${criteriaText}
20
33
 
21
34
  Return JSON: { "score": <0-1>, "reasoning": "<brief explanation>" }
22
35
  `)
23
36
  .user(response)
24
37
  .build();
25
- const result = await evaluator.object(await render(evalPrompt, { renderer: evaluator.renderer }), EvalResultSchema);
38
+ const result = await evaluator.object(await render(evalPrompt, { provider: evaluator }), EvalResultSchema);
26
39
  return {
27
40
  response,
28
41
  score: result.score,
@@ -1 +1 @@
1
- {"version":3,"file":"judge.js","sourceRoot":"","sources":["../../src/eval/judge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAqBrC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB,EAAE,GAAG,MAAM,CAAC;IAEpE,OAAO,CAAC,MAAqB,EAAY,EAAE;QACzC,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAyB,EAAuB,EAAE;YACxE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CACtC,MAAM,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CACpD,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,IAAI;iBAC1B,MAAM,EAAE;iBACR,MAAM,CAAC,CAAC,CAAA;;;sBAGK,SAAS;;;SAGtB,CAAC;iBACD,IAAI,CAAC,QAAQ,CAAC;iBACd,KAAK,EAAE,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CACnC,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,EAC1D,gBAAgB,CACjB,CAAC;YAEF,OAAO;gBACL,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;aAClC,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,KAAK,CAAC,MAAM,CAAC,SAAS;gBACpB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CACb,wCAAwC;wBACtC,UAAU,MAAM,CAAC,KAAK,gBAAgB,SAAS,KAAK;wBACpD,cAAc,MAAM,CAAC,SAAS,MAAM;wBACpC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAClC,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"judge.js","sourceRoot":"","sources":["../../src/eval/judge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAC;AAqBrC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;CACtB,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,CAAC,SAAoB,EAAU,EAAE;IACvD,MAAM,KAAK,GAAG,kBAAkB,CAAiB,SAAS,CAAC,CAAC;IAC5D,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;YAC7D,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC;IACpB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,MAAmB;IAC7C,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,iBAAiB,EAAE,GAAG,MAAM,CAAC;IAEpE,OAAO,CAAC,MAAkB,EAAY,EAAE;QACtC,MAAM,QAAQ,GAAG,KAAK,EAAE,SAAoB,EAAuB,EAAE;YACnE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,UAAU,CACtC,MAAM,MAAM,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAC3C,CAAC;YACF,MAAM,YAAY,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,MAAM,IAAI;iBAC1B,MAAM,EAAE;iBACR,MAAM,CAAC;;;sBAGM,YAAY;;;SAGzB,CAAC;iBACD,IAAI,CAAC,QAAQ,CAAC;iBACd,KAAK,EAAE,CAAC;YAEX,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,CACnC,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EACjD,gBAAgB,CACjB,CAAC;YAEF,OAAO;gBACL,QAAQ;gBACR,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,MAAM,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS;aAClC,CAAC;QACJ,CAAC,CAAC;QAEF,OAAO;YACL,KAAK,CAAC,MAAM,CAAC,SAAS;gBACpB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACnB,MAAM,IAAI,KAAK,CACb,wCAAwC;wBACtC,UAAU,MAAM,CAAC,KAAK,gBAAgB,SAAS,KAAK;wBACpD,cAAc,MAAM,CAAC,SAAS,MAAM;wBACpC,cAAc,MAAM,CAAC,QAAQ,EAAE,CAClC,CAAC;gBACJ,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -6,26 +6,22 @@
6
6
  * import { cria } from "@fastpaca/cria";
7
7
  *
8
8
  * const result = await cria
9
- * .prompt()
9
+ * .prompt(provider)
10
10
  * .system("You are a helpful assistant.")
11
11
  * .truncate(conversationHistory, { budget: 20000, from: "start", priority: 2 })
12
12
  * .omit(optionalContext, { priority: 3 })
13
- * .render({ tokenizer, budget: 128000 });
13
+ * .render({ budget: 128000 });
14
14
  * ```
15
15
  *
16
16
  * @packageDocumentation
17
17
  */
18
- export type { ResultFormatter, StoredSummary, Summarizer, SummarizerContext, } from "./components";
19
- export { CodeBlock, Examples, Last, Message, Omit, Reasoning, Region, Separator, Summary, ToolCall, ToolResult, Truncate, VectorSearch, } from "./components";
20
- export type { BuilderChild, Prompt, ScopeContent, TextInput } from "./dsl";
18
+ export type { BuilderChild, Prompt, ResultFormatter, ScopeContent, StoredSummary, Summarizer, SummarizerContext, TextInput, } from "./dsl";
21
19
  export { BuilderBase, c, cria, MessageBuilder, merge, PromptBuilder, prompt, } from "./dsl";
22
20
  export { createOtelRenderHooks } from "./instrumentation/otel";
23
21
  export type { KVMemory, MemoryEntry, VectorMemory, VectorSearchOptions, VectorSearchResult, } from "./memory";
24
22
  export { InMemoryStore } from "./memory";
25
23
  export type { FitCompleteEvent, FitErrorEvent, FitIterationEvent, FitStartEvent, RenderHooks, RenderOptions, StrategyAppliedEvent, } from "./render";
26
24
  export { render } from "./render";
27
- export { markdownRenderer } from "./renderers/markdown";
28
- export { createSnapshot, createSnapshotHooks, diffSnapshots, type Snapshot, type SnapshotChild, type SnapshotDiff, type SnapshotElement, } from "./snapshot";
29
- export type { CriaContext, JsonValue, MaybePromise, ModelProvider, PromptChild, PromptChildren, PromptElement, PromptKind, PromptNodeKind, PromptRenderer, PromptRole, Strategy, StrategyInput, StrategyResult, Tokenizer, } from "./types";
30
- export { FitError, JsonValueSchema, PromptChildrenSchema, PromptChildSchema, PromptElementSchema, PromptKindSchema, PromptRoleSchema, } from "./types";
25
+ export type { CriaContext, MaybePromise, MessageChildren, PromptLayout, PromptMessage, PromptMessageNode, PromptNode, PromptPart, PromptRole, PromptScope, PromptTree, ProviderToolIO, ReasoningPart, ScopeChildren, Strategy, StrategyInput, StrategyResult, TextPart, ToolCallPart, ToolIOForProvider, ToolResultPart, } from "./types";
26
+ export { FitError, ModelProvider, PromptRenderer } from "./types";
31
27
  //# sourceMappingURL=index.d.ts.map