@fastpaca/cria 1.6.0 → 1.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/README.md +291 -79
  2. package/dist/dsl/builder.d.ts +69 -41
  3. package/dist/dsl/builder.d.ts.map +1 -1
  4. package/dist/dsl/builder.js +122 -43
  5. package/dist/dsl/builder.js.map +1 -1
  6. package/dist/dsl/index.d.ts +4 -5
  7. package/dist/dsl/index.d.ts.map +1 -1
  8. package/dist/dsl/index.js.map +1 -1
  9. package/dist/dsl/strategies.d.ts +2 -1
  10. package/dist/dsl/strategies.d.ts.map +1 -1
  11. package/dist/dsl/strategies.js +5 -4
  12. package/dist/dsl/strategies.js.map +1 -1
  13. package/dist/dsl/vector-search.d.ts +8 -41
  14. package/dist/dsl/vector-search.d.ts.map +1 -1
  15. package/dist/dsl/vector-search.js +10 -62
  16. package/dist/dsl/vector-search.js.map +1 -1
  17. package/dist/eval/index.d.ts +3 -3
  18. package/dist/eval/index.d.ts.map +1 -1
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/instrumentation/otel.d.ts.map +1 -1
  23. package/dist/instrumentation/otel.js +124 -11
  24. package/dist/instrumentation/otel.js.map +1 -1
  25. package/dist/memory/chroma/index.d.ts +0 -2
  26. package/dist/memory/chroma/index.d.ts.map +1 -1
  27. package/dist/memory/chroma/index.js +2 -15
  28. package/dist/memory/chroma/index.js.map +1 -1
  29. package/dist/memory/postgres.d.ts.map +1 -1
  30. package/dist/memory/postgres.js +1 -16
  31. package/dist/memory/postgres.js.map +1 -1
  32. package/dist/memory/qdrant/index.d.ts +0 -1
  33. package/dist/memory/qdrant/index.d.ts.map +1 -1
  34. package/dist/memory/qdrant/index.js +16 -25
  35. package/dist/memory/qdrant/index.js.map +1 -1
  36. package/dist/memory/redis.d.ts.map +1 -1
  37. package/dist/memory/redis.js +3 -28
  38. package/dist/memory/redis.js.map +1 -1
  39. package/dist/memory/sqlite.d.ts +77 -0
  40. package/dist/memory/sqlite.d.ts.map +1 -0
  41. package/dist/memory/sqlite.js +98 -0
  42. package/dist/memory/sqlite.js.map +1 -0
  43. package/dist/provider.d.ts +16 -3
  44. package/dist/provider.d.ts.map +1 -1
  45. package/dist/provider.js +4 -4
  46. package/dist/provider.js.map +1 -1
  47. package/dist/providers/anthropic.d.ts +6 -4
  48. package/dist/providers/anthropic.d.ts.map +1 -1
  49. package/dist/providers/anthropic.js +152 -26
  50. package/dist/providers/anthropic.js.map +1 -1
  51. package/dist/providers/openai.d.ts +36 -21
  52. package/dist/providers/openai.d.ts.map +1 -1
  53. package/dist/providers/openai.js +56 -27
  54. package/dist/providers/openai.js.map +1 -1
  55. package/dist/render.d.ts.map +1 -1
  56. package/dist/render.js +53 -8
  57. package/dist/render.js.map +1 -1
  58. package/dist/types.d.ts +38 -0
  59. package/dist/types.d.ts.map +1 -1
  60. package/dist/types.js.map +1 -1
  61. package/package.json +12 -1
  62. package/dist/testing/plaintext.d.ts +0 -29
  63. package/dist/testing/plaintext.d.ts.map +0 -1
  64. package/dist/testing/plaintext.js +0 -106
  65. package/dist/testing/plaintext.js.map +0 -1
package/dist/render.js CHANGED
@@ -1,11 +1,9 @@
1
1
  import { FitError, } from "./types";
2
+ const renderWithContext = (provider, layout, context) => {
3
+ const codec = provider.codec;
4
+ return codec.render(layout, context);
5
+ };
2
6
  export async function render(element, options) {
3
- // Data flow: PromptTree -> PromptLayout (flatten) -> provider.codec -> provider.countTokens.
4
- // The fit loop just re-renders and re-counts until we land under budget.
5
- /*
6
- * Rendering is budget-agnostic; fitting owns the budget and simply calls
7
- * rendering to get total tokens. Keep that separation explicit here.
8
- */
9
7
  const resolvedElement = element instanceof Promise ? await element : element;
10
8
  const provider = resolveProvider(resolvedElement, options.provider);
11
9
  if (options.budget === undefined || options.budget === null) {
@@ -19,8 +17,10 @@ export async function render(element, options) {
19
17
  }
20
18
  function renderOutput(root, provider) {
21
19
  // Prompt tree composition is resolved before rendering; codecs only see layout.
22
- const layout = layoutPrompt(root);
23
- return provider.codec.render(layout);
20
+ const { layout, cacheDescriptor } = layoutPromptWithCache(root);
21
+ const context = { cache: cacheDescriptor };
22
+ const rendered = renderWithContext(provider, layout, context);
23
+ return rendered;
24
24
  }
25
25
  function renderAndCount(root, provider) {
26
26
  // Tree -> layout -> codec output, then provider-owned token counting.
@@ -50,6 +50,51 @@ function layoutPrompt(root) {
50
50
  walk(root);
51
51
  return messages;
52
52
  }
53
+ function layoutPromptWithCache(root) {
54
+ const firstChild = root.children[0];
55
+ const layout = [];
56
+ let pinnedPrefixMessageCount = 0;
57
+ const walk = (node, countPinned) => {
58
+ if (node.kind === "message") {
59
+ layout.push(buildMessage(node));
60
+ if (countPinned) {
61
+ pinnedPrefixMessageCount += 1;
62
+ }
63
+ return;
64
+ }
65
+ for (const child of node.children) {
66
+ walk(child, countPinned);
67
+ }
68
+ };
69
+ if (firstChild && firstChild.kind === "scope" && firstChild.cache) {
70
+ walk(firstChild, true);
71
+ for (const child of root.children.slice(1)) {
72
+ walk(child, false);
73
+ }
74
+ }
75
+ else {
76
+ for (const child of root.children) {
77
+ walk(child, false);
78
+ }
79
+ }
80
+ if (!firstChild || firstChild.kind !== "scope" || !firstChild.cache) {
81
+ return {
82
+ layout,
83
+ cacheDescriptor: {
84
+ pinnedPrefixMessageCount: 0,
85
+ },
86
+ };
87
+ }
88
+ const cache = firstChild.cache;
89
+ const cacheDescriptor = {
90
+ pinIdInPrefix: cache.id,
91
+ pinVersionInPrefix: cache.version,
92
+ pinnedPrefixMessageCount,
93
+ ...(cache.scopeKey ? { scopeKey: cache.scopeKey } : {}),
94
+ ...(cache.ttlSeconds !== undefined ? { ttlSeconds: cache.ttlSeconds } : {}),
95
+ };
96
+ return { layout, cacheDescriptor };
97
+ }
53
98
  function buildMessage(node) {
54
99
  if (node.role === "tool") {
55
100
  return buildToolMessage(node.children);
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -74,6 +74,24 @@ export interface CriaContext {
74
74
  provider?: ModelProvider<unknown, ProviderToolIO> | undefined;
75
75
  }
76
76
  export type MaybePromise<T> = T | Promise<T>;
77
+ /**
78
+ * Provider cache hint for prompt prefix pinning.
79
+ *
80
+ * Cache pinning is a hint that a region is stable across runs and should be
81
+ * considered for provider-side prompt/KV caching when it appears in the
82
+ * contiguous prompt prefix.
83
+ */
84
+ export interface CacheHint {
85
+ mode: "pin";
86
+ /** Stable identifier for the pinned region. */
87
+ id: string;
88
+ /** Human-managed version for the pinned prefix. */
89
+ version: string;
90
+ /** Optional grouping key (for example, tenant + policy version). */
91
+ scopeKey?: string | undefined;
92
+ /** Optional TTL hint in seconds. Providers may ignore this. */
93
+ ttlSeconds?: number | undefined;
94
+ }
77
95
  /**
78
96
  * Content parts that appear as leaf nodes in message nodes.
79
97
  *
@@ -125,6 +143,7 @@ export interface PromptScope<TToolIO extends ProviderToolIO = ProviderToolIO> {
125
143
  strategy?: Strategy | undefined;
126
144
  id?: string | undefined;
127
145
  context?: CriaContext | undefined;
146
+ cache?: CacheHint | undefined;
128
147
  children: readonly PromptNode<TToolIO>[];
129
148
  }
130
149
  /**
@@ -205,6 +224,25 @@ export interface ToolMessage<TToolIO extends ProviderToolIO = ProviderToolIO> {
205
224
  export type PromptMessage<TToolIO extends ProviderToolIO = ProviderToolIO> = SystemMessage | DeveloperMessage | UserMessage | AssistantMessage<TToolIO> | ToolMessage<TToolIO>;
206
225
  /** Flat, role-shaped message list used by codecs and token counting. */
207
226
  export type PromptLayout<TToolIO extends ProviderToolIO = ProviderToolIO> = readonly PromptMessage<TToolIO>[];
227
+ /**
228
+ * Provider-agnostic descriptor of the pinned prompt prefix.
229
+ *
230
+ * This is computed after fitting so providers can translate the descriptor into
231
+ * their native caching features (for example, cache control blocks or prompt
232
+ * cache keys).
233
+ */
234
+ export interface CacheDescriptor {
235
+ /** Pin id for the contiguous pinned prefix, if any. */
236
+ pinIdInPrefix?: string | undefined;
237
+ /** Pin version for the contiguous pinned prefix, if any. */
238
+ pinVersionInPrefix?: string | undefined;
239
+ /** Number of pinned messages in the contiguous prefix. */
240
+ pinnedPrefixMessageCount: number;
241
+ /** Optional shared scope key for the pinned prefix. */
242
+ scopeKey?: string | undefined;
243
+ /** Optional TTL hint in seconds. Providers may ignore this. */
244
+ ttlSeconds?: number | undefined;
245
+ }
208
246
  /**
209
247
  * Result of applying a strategy to a scope.
210
248
  *
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;GAMG;AACH,UAAU,aAAa;IACrB,SAAS,EAAE,KAAK,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC;CACrB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,CAAC,CAAC,IAC7B,CAAC,SAAS,aAAa,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,GAAG,OAAO,GAAG,aAAa,CAAC;AAG5E,KAAK,aAAa,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1E,KAAK,gBAAgB,CAAC,OAAO,SAAS,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC;AAEhF;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,aAAa,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,SAAS,CAAC;CAC/D;AAGD,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAE7C;;;;;GAKG;AACH,MAAM,WAAW,YAAY,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc;IAC3E,IAAI,EAAE,WAAW,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc,CAC7B,OAAO,SAAS,cAAc,GAAG,cAAc;IAE/C,IAAI,EAAE,aAAa,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAClE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACnC,YAAY,CAAC,OAAO,CAAC,GACrB,cAAc,CAAC,OAAO,CAAC,CAAC;AAE5B,8DAA8D;AAC9D,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACvE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC,CAAC;AACtD,yDAAyD;AACzD,MAAM,MAAM,QAAQ,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAAI,OAAO,CAC7E,UAAU,CAAC,OAAO,CAAC,EACnB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CACjB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAChC,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IAClC,QAAQ,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB,CAChC,OAAO,SAAS,cAAc,GAAG,cAAc;IAE/C,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,UAAU,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;CAC1C;AAED;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IAClE,WAAW,CAAC,OAAO,CAAC,GACpB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,MAAM,UAAU,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACpE,WAAW,CAAC,OAAO,CAAC,CAAC;AAEvB,mEAAmE;AACnE,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACvE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;AACjC,qEAAqE;AACrE,MAAM,MAAM,eAAe,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACzE,SAAS,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;AAEjC,oEAAoE;AACpE,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,uEAAuE;AACvE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,kEAAkE;AAClE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAC/B,OAAO,SAAS,cAAc,GAAG,cAAc;IAE/C,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,SAAS,YAAY,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,CAAC;CAC1D;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,aAAa,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACrE,aAAa,GACb,gBAAgB,GAChB,WAAW,GACX,gBAAgB,CAAC,OAAO,CAAC,GACzB,WAAW,CAAC,OAAO,CAAC,CAAC;AAEzB,wEAAwE;AACxE,MAAM,MAAM,YAAY,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACtE,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;AAEpC;;;;GAIG;AACH,MAAM,MAAM,cAAc,CAAC,OAAO,SAAS,cAAc,GAAG,cAAc,IACxE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE9B;;;;;;;GAOG;AACH,MAAM,WAAW,aAAa,CAC5B,OAAO,SAAS,cAAc,GAAG,cAAc;IAE/C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,SAAS,cAAc,EACpD,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,KAC1B,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;gBAER,MAAM,EAAE;QAClB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;KACrB;CAYF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAkRH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,WAAW,CAAS;IAEpB,YAAY,MAMX;QACC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC1E,KAAK,CACH,sBAAsB,WAAW,0BAA0B,MAAM,OAAO,YAAY,gBAAgB,QAAQ,eAAe,SAAS,GAAG,CACxI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA0TH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACjC,YAAY,CAAS;IACrB,QAAQ,CAAS;IACjB,SAAS,CAAS;IAClB,MAAM,CAAS;IACf,WAAW,CAAS;IAEpB,YAAY,MAMX;QACC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC;QAC1E,KAAK,CACH,sBAAsB,WAAW,0BAA0B,MAAM,OAAO,YAAY,gBAAgB,QAAQ,eAAe,SAAS,GAAG,CACxI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fastpaca/cria",
3
- "version": "1.6.0",
3
+ "version": "1.7.1",
4
4
  "description": "Lightweight, fast, and tiny LLM Context & Memory layout renderer to enforce token budgets in long running agents.",
5
5
  "license": "MIT",
6
6
  "author": "seb@fastpaca.com",
@@ -41,6 +41,10 @@
41
41
  "types": "./dist/memory/postgres.d.ts",
42
42
  "import": "./dist/memory/postgres.js"
43
43
  },
44
+ "./memory/sqlite": {
45
+ "types": "./dist/memory/sqlite.d.ts",
46
+ "import": "./dist/memory/sqlite.js"
47
+ },
44
48
  "./memory/chroma": {
45
49
  "types": "./dist/memory/chroma/index.d.ts",
46
50
  "import": "./dist/memory/chroma/index.js"
@@ -58,6 +62,7 @@
58
62
  "@anthropic-ai/sdk": "^0.20.0",
59
63
  "@qdrant/js-client-rest": "^1.0.0",
60
64
  "ai": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0",
65
+ "better-sqlite3": "^12.0.0",
61
66
  "chromadb": "^1.0.0 || ^2.0.0 || ^3.0.0",
62
67
  "ioredis": "^5.0.0",
63
68
  "openai": "^4.0.0 || ^5.0.0 || ^6.0.0",
@@ -73,6 +78,9 @@
73
78
  "ai": {
74
79
  "optional": true
75
80
  },
81
+ "better-sqlite3": {
82
+ "optional": true
83
+ },
76
84
  "chromadb": {
77
85
  "optional": true
78
86
  },
@@ -97,6 +105,7 @@
97
105
  "build": "tsc",
98
106
  "check": "ultracite check",
99
107
  "fix": "ultracite fix",
108
+ "lint": "ultracite check",
100
109
  "test": "vitest run",
101
110
  "test:watch": "vitest",
102
111
  "prepare": "husky"
@@ -108,9 +117,11 @@
108
117
  "@qdrant/js-client-rest": "^1.16.2",
109
118
  "@semantic-release/changelog": "^6.0.3",
110
119
  "@semantic-release/git": "^10.0.1",
120
+ "@types/better-sqlite3": "^7.6.9",
111
121
  "@types/node": "^25.0.10",
112
122
  "@types/pg": "^8.16.0",
113
123
  "ai": "^6.0.45",
124
+ "better-sqlite3": "^12.0.0",
114
125
  "chromadb": "^3.2.2",
115
126
  "husky": "^9.1.7",
116
127
  "ioredis": "^5.9.2",
@@ -1,29 +0,0 @@
1
- import type { z } from "zod";
2
- import { MessageCodec, ModelProvider } from "../provider";
3
- import type { PromptLayout } from "../types";
4
- export interface PlainTextCodecOptions {
5
- joinMessagesWith?: string;
6
- includeRolePrefix?: boolean;
7
- }
8
- interface PlainTextToolIO {
9
- callInput: string;
10
- resultOutput: string;
11
- }
12
- export declare class PlainTextCodec extends MessageCodec<string, PlainTextToolIO> {
13
- private readonly joinMessagesWith;
14
- private readonly includeRolePrefix;
15
- constructor(options?: PlainTextCodecOptions);
16
- render(layout: PromptLayout<PlainTextToolIO>): string;
17
- parse(rendered: string): PromptLayout<PlainTextToolIO>;
18
- }
19
- export declare function createPlainTextCodec(options?: PlainTextCodecOptions): MessageCodec<string, PlainTextToolIO>;
20
- export declare function createTestProvider(options?: PlainTextCodecOptions): ModelProvider<string, PlainTextToolIO>;
21
- export declare class PlainTextProvider extends ModelProvider<string, PlainTextToolIO> {
22
- readonly codec: MessageCodec<string, PlainTextToolIO>;
23
- constructor(codec: MessageCodec<string, PlainTextToolIO>);
24
- countTokens(rendered: string): number;
25
- completion(rendered: string): string;
26
- object<T>(rendered: string, schema: z.ZodType<T>): T;
27
- }
28
- export {};
29
- //# sourceMappingURL=plaintext.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plaintext.d.ts","sourceRoot":"","sources":["../../src/testing/plaintext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAiB,MAAM,UAAU,CAAC;AAK5D,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,UAAU,eAAe;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,qBAAa,cAAe,SAAQ,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC;IACvE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAS;IAC1C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAU;gBAEhC,OAAO,GAAE,qBAA0B;IAMtC,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,eAAe,CAAC,GAAG,MAAM;IAQrD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC,eAAe,CAAC;CAuChE;AA6CD,wBAAgB,oBAAoB,CAClC,OAAO,GAAE,qBAA0B,GAClC,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAEvC;AAED,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,qBAA0B,GAClC,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,CAExC;AAED,qBAAa,iBAAkB,SAAQ,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;gBAE1C,KAAK,EAAE,YAAY,CAAC,MAAM,EAAE,eAAe,CAAC;IAKxD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIrC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAIpC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;CAGrD"}
@@ -1,106 +0,0 @@
1
- import { getEncoding } from "js-tiktoken";
2
- import { MessageCodec, ModelProvider } from "../provider";
3
- const encoder = getEncoding("cl100k_base");
4
- const countText = (text) => encoder.encode(text).length;
5
- const ROLE_PREFIX_RE = /^(system|developer|user|assistant|tool):\s*/;
6
- export class PlainTextCodec extends MessageCodec {
7
- joinMessagesWith;
8
- includeRolePrefix;
9
- constructor(options = {}) {
10
- super();
11
- this.joinMessagesWith = options.joinMessagesWith ?? "";
12
- this.includeRolePrefix = options.includeRolePrefix ?? false;
13
- }
14
- render(layout) {
15
- const messages = layout.map((message) => formatPlaintextMessage(message, this.includeRolePrefix));
16
- return messages.join(this.joinMessagesWith);
17
- }
18
- parse(rendered) {
19
- if (!rendered) {
20
- return [];
21
- }
22
- const segments = this.joinMessagesWith
23
- ? rendered.split(this.joinMessagesWith)
24
- : [rendered];
25
- return segments
26
- .filter((segment) => segment.length > 0)
27
- .map((segment) => {
28
- if (this.includeRolePrefix) {
29
- const match = segment.match(ROLE_PREFIX_RE);
30
- if (match) {
31
- const role = match[1];
32
- const text = segment.slice(match[0].length);
33
- if (role === "tool") {
34
- return {
35
- role: "tool",
36
- toolCallId: "tool",
37
- toolName: "tool",
38
- output: text,
39
- };
40
- }
41
- if (role === "system" ||
42
- role === "developer" ||
43
- role === "user" ||
44
- role === "assistant") {
45
- return { role, text };
46
- }
47
- }
48
- }
49
- return { role: "assistant", text: segment };
50
- });
51
- }
52
- }
53
- function formatPlaintextMessage(message, includeRolePrefix) {
54
- const content = renderPlaintextContent(message);
55
- if (includeRolePrefix) {
56
- return `${message.role}: ${content}`;
57
- }
58
- return content;
59
- }
60
- function renderPlaintextContent(message) {
61
- if (message.role === "tool") {
62
- return `[tool-result:${message.toolName}]${message.output}`;
63
- }
64
- if (message.role === "assistant") {
65
- return renderAssistantContent(message);
66
- }
67
- return message.text;
68
- }
69
- function renderAssistantContent(message) {
70
- let content = "";
71
- if (message.text) {
72
- content += message.text;
73
- }
74
- if (message.reasoning) {
75
- content += message.reasoning;
76
- }
77
- if (message.toolCalls) {
78
- for (const call of message.toolCalls) {
79
- content += `[tool-call:${call.toolName}]${call.input}`;
80
- }
81
- }
82
- return content;
83
- }
84
- export function createPlainTextCodec(options = {}) {
85
- return new PlainTextCodec(options);
86
- }
87
- export function createTestProvider(options = {}) {
88
- return new PlainTextProvider(createPlainTextCodec(options));
89
- }
90
- export class PlainTextProvider extends ModelProvider {
91
- codec;
92
- constructor(codec) {
93
- super();
94
- this.codec = codec;
95
- }
96
- countTokens(rendered) {
97
- return countText(rendered);
98
- }
99
- completion(rendered) {
100
- return rendered;
101
- }
102
- object(rendered, schema) {
103
- return schema.parse(JSON.parse(rendered));
104
- }
105
- }
106
- //# sourceMappingURL=plaintext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plaintext.js","sourceRoot":"","sources":["../../src/testing/plaintext.ts"],"names":[],"mappings":"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"}