@modular-prompt/driver 0.13.1 → 0.13.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cache-controller.d.ts +4 -1
  2. package/dist/cache-controller.d.ts.map +1 -1
  3. package/dist/echo-driver.d.ts.map +1 -1
  4. package/dist/echo-driver.js +9 -39
  5. package/dist/echo-driver.js.map +1 -1
  6. package/dist/formatter/completion-formatter.d.ts.map +1 -1
  7. package/dist/formatter/completion-formatter.js +30 -24
  8. package/dist/formatter/completion-formatter.js.map +1 -1
  9. package/dist/formatter/converter.d.ts.map +1 -1
  10. package/dist/formatter/converter.js +18 -13
  11. package/dist/formatter/converter.js.map +1 -1
  12. package/dist/formatter/types.d.ts +7 -0
  13. package/dist/formatter/types.d.ts.map +1 -1
  14. package/dist/google-genai/google-genai-cache-controller.d.ts +1 -1
  15. package/dist/google-genai/google-genai-cache-controller.d.ts.map +1 -1
  16. package/dist/google-genai/google-genai-cache-controller.js +4 -4
  17. package/dist/google-genai/google-genai-cache-controller.js.map +1 -1
  18. package/dist/mlx-ml/mlx-cache-controller.d.ts +3 -4
  19. package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -1
  20. package/dist/mlx-ml/mlx-cache-controller.js +46 -22
  21. package/dist/mlx-ml/mlx-cache-controller.js.map +1 -1
  22. package/dist/mlx-ml/mlx-driver.js +4 -4
  23. package/dist/mlx-ml/mlx-driver.js.map +1 -1
  24. package/dist/mlx-ml/process/response-processor.js +1 -1
  25. package/dist/mlx-ml/process/response-processor.js.map +1 -1
  26. package/dist/mlx-ml/tool-call-parser/content-parsers.d.ts +9 -0
  27. package/dist/mlx-ml/tool-call-parser/content-parsers.d.ts.map +1 -0
  28. package/dist/mlx-ml/tool-call-parser/content-parsers.js +223 -0
  29. package/dist/mlx-ml/tool-call-parser/content-parsers.js.map +1 -0
  30. package/dist/mlx-ml/tool-call-parser/detector.d.ts +16 -0
  31. package/dist/mlx-ml/tool-call-parser/detector.d.ts.map +1 -0
  32. package/dist/mlx-ml/tool-call-parser/detector.js +58 -0
  33. package/dist/mlx-ml/tool-call-parser/detector.js.map +1 -0
  34. package/dist/mlx-ml/tool-call-parser/index.d.ts +7 -0
  35. package/dist/mlx-ml/tool-call-parser/index.d.ts.map +1 -0
  36. package/dist/mlx-ml/tool-call-parser/index.js +136 -0
  37. package/dist/mlx-ml/tool-call-parser/index.js.map +1 -0
  38. package/dist/mlx-ml/tool-call-parser/tool-formatter.d.ts +8 -0
  39. package/dist/mlx-ml/tool-call-parser/tool-formatter.d.ts.map +1 -0
  40. package/dist/mlx-ml/tool-call-parser/tool-formatter.js +88 -0
  41. package/dist/mlx-ml/tool-call-parser/tool-formatter.js.map +1 -0
  42. package/dist/mlx-ml/tool-call-parser/types.d.ts +18 -0
  43. package/dist/mlx-ml/tool-call-parser/types.d.ts.map +1 -0
  44. package/dist/mlx-ml/tool-call-parser/types.js +2 -0
  45. package/dist/mlx-ml/tool-call-parser/types.js.map +1 -0
  46. package/dist/mlx-ml/tool-call-parser/utils.d.ts +5 -0
  47. package/dist/mlx-ml/tool-call-parser/utils.d.ts.map +1 -0
  48. package/dist/mlx-ml/tool-call-parser/utils.js +77 -0
  49. package/dist/mlx-ml/tool-call-parser/utils.js.map +1 -0
  50. package/package.json +3 -1
  51. package/src/mlx-ml/python/utils/token_utils.py +8 -38
  52. package/dist/mlx-ml/tool-call-parser.d.ts +0 -30
  53. package/dist/mlx-ml/tool-call-parser.d.ts.map +0 -1
  54. package/dist/mlx-ml/tool-call-parser.js +0 -642
  55. package/dist/mlx-ml/tool-call-parser.js.map +0 -1
@@ -17,12 +17,15 @@ export interface CacheHandle {
17
17
  dataElementCount: number;
18
18
  tools: boolean;
19
19
  };
20
+ /** ref of the cache that was replaced by incremental prefill */
21
+ supersedes?: string;
20
22
  }
21
23
  export interface PromptCacheController {
22
24
  /** Record that a query was issued (regardless of cache usage) */
23
25
  recordQuery?(): void;
24
26
  prepare(params: CachePrepareParams): Promise<CacheHandle>;
25
- invalidate(handle: CacheHandle): Promise<void>;
27
+ /** Hint that this cache entry is no longer needed. Actual deletion timing is implementation-defined. */
28
+ release(ref: string): void;
26
29
  close(): Promise<void>;
27
30
  }
28
31
  //# sourceMappingURL=cache-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cache-controller.d.ts","sourceRoot":"","sources":["../src/cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,QAAQ,EAAE;QACR,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"cache-controller.d.ts","sourceRoot":"","sources":["../src/cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,QAAQ,EAAE;QACR,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,wGAAwG;IACxG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"echo-driver.d.ts","sourceRoot":"","sources":["../src/echo-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAExD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,YAAW,QAAQ;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,GAAE,gBAAqB;IAazC;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IA8IjF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBxF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"echo-driver.d.ts","sourceRoot":"","sources":["../src/echo-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAI7D;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;IAExD;;;;;OAKG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAEpC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;OAKG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,UAAW,YAAW,QAAQ;IACzC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,GAAE,gBAAqB;IAazC;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;IA4GjF;;OAEG;IACG,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAsBxF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -1,4 +1,4 @@
1
- import { formatCompletionPrompt, formatPromptAsMessages, ECHO_SPECIAL_TOKENS, defaultFormatterTexts } from './formatter/converter.js';
1
+ import { formatCompletionPrompt, formatPromptAsMessages, ECHO_SPECIAL_TOKENS } from './formatter/converter.js';
2
2
  import { extractJSON } from '@modular-prompt/utils';
3
3
  /**
4
4
  * Echo driver that returns the formatted prompt instead of calling an AI model.
@@ -64,52 +64,22 @@ export class EchoDriver {
64
64
  }
65
65
  case 'both': {
66
66
  // Both text and messages in a single object
67
- // outputSchemaの二重出力を防ぐため、一時的に削除してフォーマット
68
- const outputSchema = prompt.metadata?.outputSchema;
69
- const promptWithoutSchema = outputSchema ? {
70
- ...prompt,
71
- metadata: { ...prompt.metadata, outputSchema: undefined }
72
- } : prompt;
73
- const text = formatCompletionPrompt(promptWithoutSchema, this.formatterOptions);
74
- const messages = formatPromptAsMessages(promptWithoutSchema, this.formatterOptions);
75
- // outputSchemaがある場合は一度だけ追加
76
- let finalText = text;
77
- let finalMessages = messages;
78
- if (outputSchema) {
79
- const schemaContent = JSON.stringify(outputSchema, null, 2);
80
- const schemaMessage = `### Output Schema\n\n${defaultFormatterTexts.schemaInstruction}\n\nJSONSchema:\n\`\`\`json\n${schemaContent}\n\`\`\``;
81
- finalText = `${text}\n\n${schemaMessage}`;
82
- finalMessages = [...messages, { role: 'system', content: schemaMessage }];
83
- }
67
+ const text = formatCompletionPrompt(prompt, this.formatterOptions);
68
+ const messages = formatPromptAsMessages(prompt, this.formatterOptions);
84
69
  content = JSON.stringify({
85
- text: finalText,
86
- messages: finalMessages
70
+ text,
71
+ messages
87
72
  }, null, 2);
88
73
  break;
89
74
  }
90
75
  case 'debug': {
91
- // outputSchemaの二重出力を防ぐため、一時的に削除してフォーマット
92
- const outputSchema = prompt.metadata?.outputSchema;
93
- const promptWithoutSchema = outputSchema ? {
94
- ...prompt,
95
- metadata: { ...prompt.metadata, outputSchema: undefined }
96
- } : prompt;
97
- const text = formatCompletionPrompt(promptWithoutSchema, this.formatterOptions);
98
- const messages = formatPromptAsMessages(promptWithoutSchema, this.formatterOptions);
99
- // outputSchemaがある場合は一度だけ追加
100
- let finalText = text;
101
- let finalMessages = messages;
102
- if (outputSchema) {
103
- const schemaContent = JSON.stringify(outputSchema, null, 2);
104
- const schemaMessage = `### Output Schema\n\n${defaultFormatterTexts.schemaInstruction}\n\nJSONSchema:\n\`\`\`json\n${schemaContent}\n\`\`\``;
105
- finalText = `${text}\n\n${schemaMessage}`;
106
- finalMessages = [...messages, { role: 'system', content: schemaMessage }];
107
- }
76
+ const text = formatCompletionPrompt(prompt, this.formatterOptions);
77
+ const messages = formatPromptAsMessages(prompt, this.formatterOptions);
108
78
  const debug = {
109
79
  raw: prompt,
110
80
  formatted: {
111
- text: finalText,
112
- messages: finalMessages
81
+ text,
82
+ messages
113
83
  },
114
84
  metadata: {
115
85
  instructionsCount: prompt.instructions?.length || 0,
@@ -1 +1 @@
1
- {"version":3,"file":"echo-driver.js","sourceRoot":"","sources":["../src/echo-driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"echo-driver.js","sourceRoot":"","sources":["../src/echo-driver.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"completion-formatter.d.ts","sourceRoot":"","sources":["../../src/formatter/completion-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAW/B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAiER"}
1
+ {"version":3,"file":"completion-formatter.d.ts","sourceRoot":"","sources":["../../src/formatter/completion-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAInD;;GAEG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAW/B,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAuER"}
@@ -41,19 +41,6 @@ export function formatCompletionPrompt(prompt, options = {}) {
41
41
  }
42
42
  sections.push('');
43
43
  sections.push(formatter.formatAll(prompt.instructions));
44
- // Add output schema to Instructions section if metadata.outputSchema exists
45
- if (prompt.metadata?.outputSchema) {
46
- sections.push('');
47
- const schemaContent = JSON.stringify(prompt.metadata.outputSchema, null, 2);
48
- sections.push('### Output Schema');
49
- sections.push('');
50
- sections.push(defaultFormatterTexts.schemaInstruction);
51
- sections.push('');
52
- sections.push('JSONSchema:');
53
- sections.push('```json');
54
- sections.push(schemaContent);
55
- sections.push('```');
56
- }
57
44
  }
58
45
  // Format data section with header
59
46
  if (prompt.data && prompt.data.length > 0) {
@@ -67,17 +54,36 @@ export function formatCompletionPrompt(prompt, options = {}) {
67
54
  sections.push('');
68
55
  sections.push(formatter.formatAll(prompt.data));
69
56
  }
70
- // Format output section with header - always show the section
71
- if (sections.length > 0)
72
- sections.push('');
73
- sections.push('# Output');
74
- if (sectionDescriptions?.output) {
75
- sections.push('');
76
- sections.push(sectionDescriptions.output);
77
- }
78
- if (prompt.output && prompt.output.length > 0) {
79
- sections.push('');
80
- sections.push(formatter.formatAll(prompt.output));
57
+ // Output section: always included by default to match the preamble's
58
+ // "three main sections" declaration. Set alwaysIncludeOutputHeader: false
59
+ // to suppress when there is no output content.
60
+ const alwaysOutput = options.alwaysIncludeOutputHeader !== false;
61
+ const hasOutputElements = (prompt.output?.length ?? 0) > 0;
62
+ const hasOutputSchema = !!prompt.metadata?.outputSchema;
63
+ if (alwaysOutput || hasOutputElements || hasOutputSchema) {
64
+ if (sections.length > 0)
65
+ sections.push('');
66
+ sections.push('# Output');
67
+ if (sectionDescriptions?.output) {
68
+ sections.push('');
69
+ sections.push(sectionDescriptions.output);
70
+ }
71
+ if (hasOutputSchema) {
72
+ sections.push('');
73
+ const schemaContent = JSON.stringify(prompt.metadata.outputSchema, null, 2);
74
+ sections.push('### Output Schema');
75
+ sections.push('');
76
+ sections.push(defaultFormatterTexts.schemaInstruction);
77
+ sections.push('');
78
+ sections.push('JSONSchema:');
79
+ sections.push('```json');
80
+ sections.push(schemaContent);
81
+ sections.push('```');
82
+ }
83
+ if (hasOutputElements) {
84
+ sections.push('');
85
+ sections.push(formatter.formatAll(prompt.output));
86
+ }
81
87
  }
82
88
  return sections.join(lineBreak);
83
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"completion-formatter.js","sourceRoot":"","sources":["../../src/formatter/completion-formatter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"completion-formatter.js","sourceRoot":"","sources":["../../src/formatter/completion-formatter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAKlF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAGF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,EAAE,CAyEf"}
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAKlF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAGF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,EAAE,CAgFf"}
@@ -42,14 +42,6 @@ export function formatPromptAsMessages(prompt, options = {}) {
42
42
  for (const element of prompt.instructions) {
43
43
  messages.push(...elementToMessages(element, formatter));
44
44
  }
45
- // Add output schema to Instructions section if metadata.outputSchema exists
46
- if (prompt.metadata?.outputSchema) {
47
- const schemaContent = JSON.stringify(prompt.metadata.outputSchema, null, 2);
48
- messages.push({
49
- role: 'system',
50
- content: `### Output Schema\n\n${defaultFormatterTexts.schemaInstruction}\n\nJSONSchema:\n\`\`\`json\n${schemaContent}\n\`\`\``
51
- });
52
- }
53
45
  }
54
46
  // Process data section
55
47
  if (prompt.data && prompt.data.length > 0) {
@@ -66,8 +58,13 @@ export function formatPromptAsMessages(prompt, options = {}) {
66
58
  messages.push(...elementToMessages(element, formatter));
67
59
  }
68
60
  }
69
- // Process output section
70
- if (prompt.output && prompt.output.length > 0) {
61
+ // Output section: always included by default to match the preamble's
62
+ // "three main sections" declaration. Set alwaysIncludeOutputHeader: false
63
+ // to suppress when there is no output content.
64
+ const alwaysOutput = options.alwaysIncludeOutputHeader !== false;
65
+ const hasOutputElements = (prompt.output?.length ?? 0) > 0;
66
+ const hasOutputSchema = !!prompt.metadata?.outputSchema;
67
+ if (alwaysOutput || hasOutputElements || hasOutputSchema) {
71
68
  const outputHeader = sectionDescriptions?.output
72
69
  ? `# Output\n\n${sectionDescriptions.output}`
73
70
  : '# Output';
@@ -75,9 +72,17 @@ export function formatPromptAsMessages(prompt, options = {}) {
75
72
  role: 'system',
76
73
  content: outputHeader
77
74
  });
78
- // Convert each element to a message
79
- for (const element of prompt.output) {
80
- messages.push(...elementToMessages(element, formatter));
75
+ if (hasOutputSchema) {
76
+ const schemaContent = JSON.stringify(prompt.metadata.outputSchema, null, 2);
77
+ messages.push({
78
+ role: 'system',
79
+ content: `### Output Schema\n\n${defaultFormatterTexts.schemaInstruction}\n\nJSONSchema:\n\`\`\`json\n${schemaContent}\n\`\`\``
80
+ });
81
+ }
82
+ if (hasOutputElements) {
83
+ for (const element of prompt.output) {
84
+ messages.push(...elementToMessages(element, formatter));
85
+ }
81
86
  }
82
87
  }
83
88
  return messages;
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"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"}
@@ -64,6 +64,13 @@ export interface FormatterOptions {
64
64
  * Line break settings
65
65
  */
66
66
  lineBreak?: '\n' | '\r\n';
67
+ /**
68
+ * Whether to always include the Output section header.
69
+ * Default: true — the default preamble declares three sections (Instructions, Data, Output),
70
+ * so omitting the Output header would contradict that structure.
71
+ * Set to false for chat-style formatting where trailing messages are preferred over section framing.
72
+ */
73
+ alwaysIncludeOutputHeader?: boolean;
67
74
  /**
68
75
  * Model-specific special tokens
69
76
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/formatter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,iBAAiB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,mBAAmB,CAAC,EAAE;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAE1B;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEvC;;OAEG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;CAClF"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/formatter/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEpG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,YAAY,CAAC;IACpB,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,iBAAiB,CAAC;AAE7F;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,mBAAmB,CAAC,EAAE;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,cAAc,CAAC,EAAE,MAAM,CAAC;KACzB,CAAC;IAEF;;OAEG;IACH,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAE1B;;;;;OAKG;IACH,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC;CACjE;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC;IAEjC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IAEvC;;OAEG;IACH,gBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,GAAG,IAAI,CAAC;CAClF"}
@@ -18,7 +18,7 @@ export declare class GoogleGenAICacheController implements PromptCacheController
18
18
  recordQuery(): void;
19
19
  prepare(params: CachePrepareParams): Promise<CacheHandle>;
20
20
  private createCache;
21
- invalidate(handle: CacheHandle): Promise<void>;
21
+ release(ref: string): void;
22
22
  close(): Promise<void>;
23
23
  }
24
24
  //# sourceMappingURL=google-genai-cache-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"google-genai-cache-controller.d.ts","sourceRoot":"","sources":["../../src/google-genai/google-genai-cache-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrG,MAAM,WAAW,gCAAgC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,qBAAa,0BAA2B,YAAW,qBAAqB;IAQpE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM,CAAC;IARjB,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAGpB,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,gCAAgC,YAAA;IAMnD,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,YAAY;IAUpB,WAAW,IAAI,IAAI;IAIb,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;YAuBjD,WAAW;IAgDnB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAW9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
1
+ {"version":3,"file":"google-genai-cache-controller.d.ts","sourceRoot":"","sources":["../../src/google-genai/google-genai-cache-controller.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrG,MAAM,WAAW,gCAAgC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAeD,qBAAa,0BAA2B,YAAW,qBAAqB;IAQpE,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM,CAAC;IARjB,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAiC;IACpD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAAS;gBAGpB,MAAM,EAAE,WAAW,EACnB,MAAM,CAAC,EAAE,gCAAgC,YAAA;IAMnD,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,YAAY;IAUpB,WAAW,IAAI,IAAI;IAIb,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;YAuBjD,WAAW;IAgDzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAWpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAU7B"}
@@ -105,11 +105,11 @@ export class GoogleGenAICacheController {
105
105
  this.cacheByHash.set(cacheKey, { handle, createdAt: Date.now() });
106
106
  return handle;
107
107
  }
108
- async invalidate(handle) {
109
- await this.client.caches.delete({ name: handle.ref });
110
- this.managedCaches.delete(handle.ref);
108
+ release(ref) {
109
+ this.client.caches.delete({ name: ref }).catch(() => { });
110
+ this.managedCaches.delete(ref);
111
111
  for (const [key, entry] of this.cacheByHash) {
112
- if (entry.handle.ref === handle.ref) {
112
+ if (entry.handle.ref === ref) {
113
113
  this.cacheByHash.delete(key);
114
114
  break;
115
115
  }
@@ -1 +1 @@
1
- {"version":3,"file":"google-genai-cache-controller.js","sourceRoot":"","sources":["../../src/google-genai/google-genai-cache-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google-genai-cache-controller.js","sourceRoot":"","sources":["../../src/google-genai/google-genai-cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAYhH,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,uBAAuB,GAAG,wCAAwC,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,OAAO,0BAA0B;IAQ3B;IACA;IARF,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,WAAW,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC5C,gBAAgB,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC3D,UAAU,CAAS;IACnB,aAAa,CAAS;IAE9B,YACU,MAAmB,EACnB,MAAyC;QADzC,WAAM,GAAN,MAAM,CAAa;QACnB,WAAM,GAAN,MAAM,CAAmC;QAEjD,IAAI,CAAC,UAAU,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,OAAO,CAAC,CAAC;QAC/D,IAAI,CAAC,aAAa,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC;IAC7C,CAAC;IAEO,eAAe,CAAC,MAA0B;QAChD,MAAM,OAAO,GAA4B,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC;QACjE,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QACD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACtD,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC;IAED,WAAW;QACT,iEAAiE;IACnE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,IAAI,CAAC,YAAY,EAAE,CAAC;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE9C,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC,MAAM,CAAC;QACzB,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrD,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC7C,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC;QACvB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAA0B,EAAE,QAAgB;QACpE,MAAM,WAAW,GAA4B;YAC3C,GAAG,EAAE,IAAI,CAAC,aAAa;YACvB,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW;SACtC,CAAC;QAEF,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1D,WAAW,CAAC,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;QACnF,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,WAAW,CAAC,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9F,CAAC;QAED,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,WAAW,CAAC,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACjD,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;YACrC,IAAI,WAAW,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBACnC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;YAC5C,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,MAAM,EAAE,WAAW;SACpB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5B,MAAM,MAAM,GAAgB;YAC1B,GAAG;YACH,QAAQ,EAAE;gBACR,YAAY,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;gBACpD,gBAAgB,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;gBAC1C,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;aACvC;SACF,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QAElE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,GAAW;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;gBAC7B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7B,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CACpD,CAAC;QACF,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7B,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC3B,CAAC;CACF"}
@@ -27,11 +27,11 @@ export declare class MlxCacheController implements PromptCacheController {
27
27
  private cacheIndex;
28
28
  private stats;
29
29
  constructor(options?: MlxCacheControllerOptions);
30
- bind(process: MlxProcess, formatterOptions: FormatterOptions, messageProcessor?: (messages: MlxMessage[]) => MlxMessage[]): void;
30
+ bind(process: MlxProcess, formatterOptions: FormatterOptions, messageProcessor?: (messages: MlxMessage[]) => MlxMessage[]): Promise<void>;
31
31
  private ensureCacheDir;
32
32
  private get indexPath();
33
33
  private readMetaTokenCount;
34
- private loadIndexSync;
34
+ private loadIndex;
35
35
  private saveIndex;
36
36
  private computeFormatterOptionsHash;
37
37
  private computeToolsHash;
@@ -43,7 +43,6 @@ export declare class MlxCacheController implements PromptCacheController {
43
43
  private computePrefixInfo;
44
44
  private findBestBase;
45
45
  private addToIndex;
46
- private removeFromIndex;
47
46
  private computeCacheKey;
48
47
  private generateCachePath;
49
48
  recordQuery(): void;
@@ -60,7 +59,7 @@ export declare class MlxCacheController implements PromptCacheController {
60
59
  prepare(params: CachePrepareParams): Promise<CacheHandle>;
61
60
  private static readonly EMPTY_HANDLE;
62
61
  private createCache;
63
- invalidate(handle: CacheHandle): Promise<void>;
62
+ release(ref: string): void;
64
63
  close(): Promise<void>;
65
64
  }
66
65
  //# sourceMappingURL=mlx-cache-controller.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mlx-cache-controller.d.ts","sourceRoot":"","sources":["../../src/mlx-ml/mlx-cache-controller.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAqBrD,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAA2C;IACpE,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAW;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAChD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,KAAK,CAOX;gBAEU,OAAO,CAAC,EAAE,yBAAyB;IAW/C,IAAI,CACF,OAAO,EAAE,UAAU,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,GAC1D,IAAI;YAsBO,cAAc;IAM5B,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,aAAa;YAcP,SAAS;IAUvB,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,sBAAsB;YAMhB,iBAAiB;YAmFjB,YAAY;IA+H1B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,iBAAiB;IAIzB,WAAW,IAAI,IAAI;IAInB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAK1E,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI9C,QAAQ;;;;;;;;IAWF,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAsC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAElC;YAEY,WAAW;IAyInB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAuB7B"}
1
+ {"version":3,"file":"mlx-cache-controller.d.ts","sourceRoot":"","sources":["../../src/mlx-ml/mlx-cache-controller.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAErG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,KAAK,EAAE,UAAU,EAAqB,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsBrD,MAAM,WAAW,yBAAyB;IACxC,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAU;IAC5B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,cAAc,CAAC,CAAa;IACpC,OAAO,CAAC,gBAAgB,CAAC,CAA2C;IACpE,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAW;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,8BAA8B,CAAC,CAAS;IAChD,OAAO,CAAC,mBAAmB,CAAC,CAAS;IACrC,OAAO,CAAC,yBAAyB,CAAC,CAAS;IAC3C,OAAO,CAAC,UAAU,CAA2C;IAC7D,OAAO,CAAC,KAAK,CAOX;gBAEU,OAAO,CAAC,EAAE,yBAAyB;IAWzC,IAAI,CACR,OAAO,EAAE,UAAU,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,UAAU,EAAE,GAC1D,OAAO,CAAC,IAAI,CAAC;YAsBF,cAAc;IAM5B,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,CAAC,kBAAkB;YAUZ,SAAS;YAkBT,SAAS;IAevB,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,cAAc;IAetB,OAAO,CAAC,sBAAsB;YAMhB,iBAAiB;YAmFjB,YAAY;IAgI1B,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,iBAAiB;IAIzB,WAAW,IAAI,IAAI;IAInB,kBAAkB,CAAC,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,IAAI;IAK1E,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAI9C,QAAQ;;;;;;;;IAWF,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC;IAsC/D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAElC;YAEY,WAAW;IA+IzB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAmBpB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CA6B7B"}
@@ -1,8 +1,9 @@
1
1
  import { createHash, randomBytes } from 'node:crypto';
2
2
  import { tmpdir } from 'node:os';
3
- import { basename, join } from 'node:path';
3
+ import { join } from 'node:path';
4
4
  import { rmSync, existsSync, readFileSync } from 'node:fs';
5
- import { unlink, mkdir, rm, writeFile } from 'node:fs/promises';
5
+ import { unlink, mkdir, rm, writeFile, readFile } from 'node:fs/promises';
6
+ import { lock as lockFile } from 'proper-lockfile';
6
7
  import { formatPromptAsMessages } from '../formatter/converter.js';
7
8
  import { convertMessages, convertToolDefinitions } from './mlx-message-utils.js';
8
9
  import { Logger } from '@modular-prompt/utils';
@@ -45,7 +46,7 @@ export class MlxCacheController {
45
46
  this.managedDir = true;
46
47
  }
47
48
  }
48
- bind(process, formatterOptions, messageProcessor) {
49
+ async bind(process, formatterOptions, messageProcessor) {
49
50
  if (this.bound) {
50
51
  throw new Error('MlxCacheController is already bound to a process');
51
52
  }
@@ -65,7 +66,7 @@ export class MlxCacheController {
65
66
  globalThis.process.on('exit', this.cleanupHandler);
66
67
  }
67
68
  if (!this.managedDir) {
68
- this.loadIndexSync();
69
+ await this.loadIndex();
69
70
  }
70
71
  this.bound = true;
71
72
  }
@@ -88,18 +89,24 @@ export class MlxCacheController {
88
89
  return 0;
89
90
  }
90
91
  }
91
- loadIndexSync() {
92
+ async loadIndex() {
92
93
  try {
93
- if (existsSync(this.indexPath)) {
94
- const raw = readFileSync(this.indexPath, 'utf-8');
94
+ if (!existsSync(this.indexPath))
95
+ return;
96
+ const release = await lockFile(this.indexPath, { realpath: false });
97
+ try {
98
+ const raw = await readFile(this.indexPath, 'utf-8');
95
99
  const parsed = JSON.parse(raw);
96
100
  if (parsed && parsed.version === 1 && Array.isArray(parsed.entries)) {
97
101
  this.cacheIndex = parsed;
98
102
  }
99
103
  }
104
+ finally {
105
+ await release();
106
+ }
100
107
  }
101
108
  catch {
102
- // corrupt index — start fresh
109
+ // corrupt index or lock failure — start fresh
103
110
  }
104
111
  }
105
112
  async saveIndex() {
@@ -107,7 +114,13 @@ export class MlxCacheController {
107
114
  return;
108
115
  try {
109
116
  await this.ensureCacheDir();
110
- await writeFile(this.indexPath, JSON.stringify(this.cacheIndex, null, 2));
117
+ const release = await lockFile(this.indexPath, { realpath: false });
118
+ try {
119
+ await writeFile(this.indexPath, JSON.stringify(this.cacheIndex, null, 2));
120
+ }
121
+ finally {
122
+ await release();
123
+ }
111
124
  }
112
125
  catch {
113
126
  // best-effort
@@ -250,6 +263,8 @@ export class MlxCacheController {
250
263
  const candidates = [];
251
264
  const staleKeys = [];
252
265
  for (const entry of this.cacheIndex.entries) {
266
+ if (entry.hint === 'release')
267
+ continue;
253
268
  if (entry.model !== params.model || entry.formatterOptionsHash !== fmtHash)
254
269
  continue;
255
270
  if ((entry.toolsHash ?? '') !== newToolsHash)
@@ -362,10 +377,6 @@ export class MlxCacheController {
362
377
  createdAt: new Date().toISOString(),
363
378
  });
364
379
  }
365
- removeFromIndex(cachePath) {
366
- const key = basename(cachePath, '.safetensors');
367
- this.cacheIndex.entries = this.cacheIndex.entries.filter(e => e.key !== key);
368
- }
369
380
  computeCacheKey(params) {
370
381
  const payload = { model: params.model };
371
382
  if (params.instructions && params.instructions.length > 0) {
@@ -453,6 +464,7 @@ export class MlxCacheController {
453
464
  }
454
465
  const cachePath = this.generateCachePath(cacheKey);
455
466
  const elementHashes = this.computeElementHashes(params);
467
+ let supersededRef;
456
468
  // Disk hit check (exact same cache already exists)
457
469
  if (existsSync(cachePath) && existsSync(cachePath + '.meta.json') && this.readMetaTokenCount(cachePath) > 0) {
458
470
  this.stats.diskHit++;
@@ -532,6 +544,7 @@ export class MlxCacheController {
532
544
  if (base) {
533
545
  this.stats.incremental++;
534
546
  this.stats.prefillReusedTokens += base.trimTokens ?? this.readMetaTokenCount(base.path);
547
+ supersededRef = base.path;
535
548
  }
536
549
  else {
537
550
  this.stats.fresh++;
@@ -550,27 +563,32 @@ export class MlxCacheController {
550
563
  dataElementCount: params.data?.length ?? 0,
551
564
  tools: (params.tools?.length ?? 0) > 0,
552
565
  },
566
+ supersedes: supersededRef,
553
567
  };
554
568
  this.cacheByHash.set(cacheKey, handle);
555
569
  this.updateLastCache(handle, elementHashes, params);
556
570
  this.addToIndex(params, cacheKey);
571
+ if (supersededRef) {
572
+ this.release(supersededRef);
573
+ }
557
574
  await this.saveIndex();
558
575
  return handle;
559
576
  }
560
- async invalidate(handle) {
561
- logger.debug('invalidate', handle.ref);
562
- this.removeFromIndex(handle.ref);
563
- await unlink(handle.ref).catch(() => { });
564
- await unlink(handle.ref + '.meta.json').catch(() => { });
565
- for (const [key, entry] of this.cacheByHash) {
566
- if (entry.ref === handle.ref) {
577
+ release(ref) {
578
+ logger.debug('release', ref);
579
+ const entry = this.cacheIndex.entries.find(e => this.generateCachePath(e.key) === ref);
580
+ if (entry) {
581
+ entry.hint = 'release';
582
+ }
583
+ for (const [key, handle] of this.cacheByHash) {
584
+ if (handle.ref === ref) {
567
585
  this.cacheByHash.delete(key);
568
586
  }
569
587
  }
570
- if (this.lastHandle?.ref === handle.ref) {
588
+ if (this.lastHandle?.ref === ref) {
571
589
  this.clearLastCache();
572
590
  }
573
- await this.saveIndex();
591
+ this.saveIndex().catch(() => { });
574
592
  }
575
593
  async close() {
576
594
  this.closed = true;
@@ -589,6 +607,12 @@ export class MlxCacheController {
589
607
  await rm(this.cacheDir, { recursive: true, force: true }).catch(() => { });
590
608
  }
591
609
  else {
610
+ const released = this.cacheIndex.entries.filter(e => e.hint === 'release');
611
+ await Promise.allSettled(released.flatMap(entry => {
612
+ const path = this.generateCachePath(entry.key);
613
+ return [unlink(path), unlink(path + '.meta.json')];
614
+ }));
615
+ this.cacheIndex.entries = this.cacheIndex.entries.filter(e => e.hint !== 'release');
592
616
  await this.saveIndex();
593
617
  }
594
618
  this.cacheDirReady = false;