@modular-prompt/driver 0.4.5

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +597 -0
  3. package/dist/anthropic/anthropic-driver.d.ts +47 -0
  4. package/dist/anthropic/anthropic-driver.d.ts.map +1 -0
  5. package/dist/anthropic/anthropic-driver.js +217 -0
  6. package/dist/anthropic/anthropic-driver.js.map +1 -0
  7. package/dist/driver-registry/ai-service.d.ts +43 -0
  8. package/dist/driver-registry/ai-service.d.ts.map +1 -0
  9. package/dist/driver-registry/ai-service.js +77 -0
  10. package/dist/driver-registry/ai-service.js.map +1 -0
  11. package/dist/driver-registry/config-based-factory.d.ts +64 -0
  12. package/dist/driver-registry/config-based-factory.d.ts.map +1 -0
  13. package/dist/driver-registry/config-based-factory.js +90 -0
  14. package/dist/driver-registry/config-based-factory.js.map +1 -0
  15. package/dist/driver-registry/factory-helper.d.ts +49 -0
  16. package/dist/driver-registry/factory-helper.d.ts.map +1 -0
  17. package/dist/driver-registry/factory-helper.js +109 -0
  18. package/dist/driver-registry/factory-helper.js.map +1 -0
  19. package/dist/driver-registry/index.d.ts +9 -0
  20. package/dist/driver-registry/index.d.ts.map +1 -0
  21. package/dist/driver-registry/index.js +8 -0
  22. package/dist/driver-registry/index.js.map +1 -0
  23. package/dist/driver-registry/registry.d.ts +50 -0
  24. package/dist/driver-registry/registry.d.ts.map +1 -0
  25. package/dist/driver-registry/registry.js +208 -0
  26. package/dist/driver-registry/registry.js.map +1 -0
  27. package/dist/driver-registry/types.d.ts +108 -0
  28. package/dist/driver-registry/types.d.ts.map +1 -0
  29. package/dist/driver-registry/types.js +6 -0
  30. package/dist/driver-registry/types.js.map +1 -0
  31. package/dist/echo-driver.d.ts +88 -0
  32. package/dist/echo-driver.d.ts.map +1 -0
  33. package/dist/echo-driver.js +198 -0
  34. package/dist/echo-driver.js.map +1 -0
  35. package/dist/formatter/completion-formatter.d.ts +27 -0
  36. package/dist/formatter/completion-formatter.d.ts.map +1 -0
  37. package/dist/formatter/completion-formatter.js +84 -0
  38. package/dist/formatter/completion-formatter.js.map +1 -0
  39. package/dist/formatter/converter.d.ts +20 -0
  40. package/dist/formatter/converter.d.ts.map +1 -0
  41. package/dist/formatter/converter.js +176 -0
  42. package/dist/formatter/converter.js.map +1 -0
  43. package/dist/formatter/element-formatters/base.d.ts +34 -0
  44. package/dist/formatter/element-formatters/base.d.ts.map +1 -0
  45. package/dist/formatter/element-formatters/base.js +36 -0
  46. package/dist/formatter/element-formatters/base.js.map +1 -0
  47. package/dist/formatter/element-formatters/chunk.d.ts +11 -0
  48. package/dist/formatter/element-formatters/chunk.d.ts.map +1 -0
  49. package/dist/formatter/element-formatters/chunk.js +12 -0
  50. package/dist/formatter/element-formatters/chunk.js.map +1 -0
  51. package/dist/formatter/element-formatters/index.d.ts +14 -0
  52. package/dist/formatter/element-formatters/index.d.ts.map +1 -0
  53. package/dist/formatter/element-formatters/index.js +15 -0
  54. package/dist/formatter/element-formatters/index.js.map +1 -0
  55. package/dist/formatter/element-formatters/json.d.ts +11 -0
  56. package/dist/formatter/element-formatters/json.d.ts.map +1 -0
  57. package/dist/formatter/element-formatters/json.js +27 -0
  58. package/dist/formatter/element-formatters/json.js.map +1 -0
  59. package/dist/formatter/element-formatters/material.d.ts +11 -0
  60. package/dist/formatter/element-formatters/material.d.ts.map +1 -0
  61. package/dist/formatter/element-formatters/material.js +35 -0
  62. package/dist/formatter/element-formatters/material.js.map +1 -0
  63. package/dist/formatter/element-formatters/message.d.ts +13 -0
  64. package/dist/formatter/element-formatters/message.d.ts.map +1 -0
  65. package/dist/formatter/element-formatters/message.js +35 -0
  66. package/dist/formatter/element-formatters/message.js.map +1 -0
  67. package/dist/formatter/element-formatters/registry.d.ts +29 -0
  68. package/dist/formatter/element-formatters/registry.d.ts.map +1 -0
  69. package/dist/formatter/element-formatters/registry.js +82 -0
  70. package/dist/formatter/element-formatters/registry.js.map +1 -0
  71. package/dist/formatter/element-formatters/section.d.ts +18 -0
  72. package/dist/formatter/element-formatters/section.d.ts.map +1 -0
  73. package/dist/formatter/element-formatters/section.js +46 -0
  74. package/dist/formatter/element-formatters/section.js.map +1 -0
  75. package/dist/formatter/element-formatters/string-pattern.d.ts +22 -0
  76. package/dist/formatter/element-formatters/string-pattern.d.ts.map +1 -0
  77. package/dist/formatter/element-formatters/string-pattern.js +124 -0
  78. package/dist/formatter/element-formatters/string-pattern.js.map +1 -0
  79. package/dist/formatter/element-formatters/text.d.ts +11 -0
  80. package/dist/formatter/element-formatters/text.d.ts.map +1 -0
  81. package/dist/formatter/element-formatters/text.js +11 -0
  82. package/dist/formatter/element-formatters/text.js.map +1 -0
  83. package/dist/formatter/formatter.d.ts +24 -0
  84. package/dist/formatter/formatter.d.ts.map +1 -0
  85. package/dist/formatter/formatter.js +252 -0
  86. package/dist/formatter/formatter.js.map +1 -0
  87. package/dist/formatter/types.d.ts +91 -0
  88. package/dist/formatter/types.d.ts.map +1 -0
  89. package/dist/formatter/types.js +2 -0
  90. package/dist/formatter/types.js.map +1 -0
  91. package/dist/google-genai/google-genai-driver.d.ts +67 -0
  92. package/dist/google-genai/google-genai-driver.d.ts.map +1 -0
  93. package/dist/google-genai/google-genai-driver.js +351 -0
  94. package/dist/google-genai/google-genai-driver.js.map +1 -0
  95. package/dist/index.d.ts +17 -0
  96. package/dist/index.d.ts.map +1 -0
  97. package/dist/index.js +23 -0
  98. package/dist/index.js.map +1 -0
  99. package/dist/mlx-ml/mlx-driver.d.ts +65 -0
  100. package/dist/mlx-ml/mlx-driver.d.ts.map +1 -0
  101. package/dist/mlx-ml/mlx-driver.js +235 -0
  102. package/dist/mlx-ml/mlx-driver.js.map +1 -0
  103. package/dist/mlx-ml/model-spec/index.d.ts +7 -0
  104. package/dist/mlx-ml/model-spec/index.d.ts.map +1 -0
  105. package/dist/mlx-ml/model-spec/index.js +7 -0
  106. package/dist/mlx-ml/model-spec/index.js.map +1 -0
  107. package/dist/mlx-ml/model-spec/types.d.ts +30 -0
  108. package/dist/mlx-ml/model-spec/types.d.ts.map +1 -0
  109. package/dist/mlx-ml/model-spec/types.js +7 -0
  110. package/dist/mlx-ml/model-spec/types.js.map +1 -0
  111. package/dist/mlx-ml/process/index.d.ts +33 -0
  112. package/dist/mlx-ml/process/index.d.ts.map +1 -0
  113. package/dist/mlx-ml/process/index.js +65 -0
  114. package/dist/mlx-ml/process/index.js.map +1 -0
  115. package/dist/mlx-ml/process/model-handlers.d.ts +58 -0
  116. package/dist/mlx-ml/process/model-handlers.d.ts.map +1 -0
  117. package/dist/mlx-ml/process/model-handlers.js +197 -0
  118. package/dist/mlx-ml/process/model-handlers.js.map +1 -0
  119. package/dist/mlx-ml/process/model-specific.d.ts +35 -0
  120. package/dist/mlx-ml/process/model-specific.d.ts.map +1 -0
  121. package/dist/mlx-ml/process/model-specific.js +35 -0
  122. package/dist/mlx-ml/process/model-specific.js.map +1 -0
  123. package/dist/mlx-ml/process/parameter-mapper.d.ts +17 -0
  124. package/dist/mlx-ml/process/parameter-mapper.d.ts.map +1 -0
  125. package/dist/mlx-ml/process/parameter-mapper.js +91 -0
  126. package/dist/mlx-ml/process/parameter-mapper.js.map +1 -0
  127. package/dist/mlx-ml/process/parameter-validator.d.ts +55 -0
  128. package/dist/mlx-ml/process/parameter-validator.d.ts.map +1 -0
  129. package/dist/mlx-ml/process/parameter-validator.js +203 -0
  130. package/dist/mlx-ml/process/parameter-validator.js.map +1 -0
  131. package/dist/mlx-ml/process/process-communication.d.ts +25 -0
  132. package/dist/mlx-ml/process/process-communication.d.ts.map +1 -0
  133. package/dist/mlx-ml/process/process-communication.js +117 -0
  134. package/dist/mlx-ml/process/process-communication.js.map +1 -0
  135. package/dist/mlx-ml/process/queue.d.ts +30 -0
  136. package/dist/mlx-ml/process/queue.d.ts.map +1 -0
  137. package/dist/mlx-ml/process/queue.js +147 -0
  138. package/dist/mlx-ml/process/queue.js.map +1 -0
  139. package/dist/mlx-ml/process/types.d.ts +97 -0
  140. package/dist/mlx-ml/process/types.d.ts.map +1 -0
  141. package/dist/mlx-ml/process/types.js +2 -0
  142. package/dist/mlx-ml/process/types.js.map +1 -0
  143. package/dist/mlx-ml/types.d.ts +66 -0
  144. package/dist/mlx-ml/types.d.ts.map +1 -0
  145. package/dist/mlx-ml/types.js +7 -0
  146. package/dist/mlx-ml/types.js.map +1 -0
  147. package/dist/ollama/ollama-driver.d.ts +15 -0
  148. package/dist/ollama/ollama-driver.d.ts.map +1 -0
  149. package/dist/ollama/ollama-driver.js +15 -0
  150. package/dist/ollama/ollama-driver.js.map +1 -0
  151. package/dist/openai/openai-driver.d.ts +71 -0
  152. package/dist/openai/openai-driver.d.ts.map +1 -0
  153. package/dist/openai/openai-driver.js +230 -0
  154. package/dist/openai/openai-driver.js.map +1 -0
  155. package/dist/test-driver.d.ts +78 -0
  156. package/dist/test-driver.d.ts.map +1 -0
  157. package/dist/test-driver.js +193 -0
  158. package/dist/test-driver.js.map +1 -0
  159. package/dist/types.d.ts +90 -0
  160. package/dist/types.d.ts.map +1 -0
  161. package/dist/types.js +2 -0
  162. package/dist/types.js.map +1 -0
  163. package/dist/vertexai/vertexai-driver.d.ts +63 -0
  164. package/dist/vertexai/vertexai-driver.d.ts.map +1 -0
  165. package/dist/vertexai/vertexai-driver.js +335 -0
  166. package/dist/vertexai/vertexai-driver.js.map +1 -0
  167. package/package.json +61 -0
  168. package/scripts/download-model.js +40 -0
  169. package/scripts/setup-mlx.js +53 -0
  170. package/src/mlx-ml/python/.python-version +1 -0
  171. package/src/mlx-ml/python/__main__.py +312 -0
  172. package/src/mlx-ml/python/chat_template_constraints.py +164 -0
  173. package/src/mlx-ml/python/pyproject.toml +19 -0
  174. package/src/mlx-ml/python/token_utils.py +262 -0
  175. package/src/mlx-ml/python/uv.lock +1029 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.d.ts","sourceRoot":"","sources":["../../src/formatter/formatter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EAQR,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAErG;;GAEG;AACH,qBAAa,gBAAiB,YAAW,gBAAgB;IACvD,OAAO,CAAC,OAAO,CACgE;IAC/E,OAAO,CAAC,aAAa,CAAC,CAAkD;gBAE5D,OAAO,GAAE,gBAAqB;IA4B1C,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM;IAwBhC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM;IAKtC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,GAAG,IAAI;IAS/E,OAAO,CAAC,8BAA8B;IAoBtC,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,aAAa;IA4BrB,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,WAAW;IA+BnB,OAAO,CAAC,aAAa;IAqCrB,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,gBAAgB;CAuBzB"}
@@ -0,0 +1,252 @@
1
+ /**
2
+ * Default formatter implementation for converting elements to text
3
+ */
4
+ export class DefaultFormatter {
5
+ options;
6
+ specialTokens;
7
+ constructor(options = {}) {
8
+ this.options = {
9
+ preamble: options.preamble,
10
+ sectionDescriptions: options.sectionDescriptions,
11
+ markers: {
12
+ sectionStart: options.markers?.sectionStart || '',
13
+ sectionEnd: options.markers?.sectionEnd || '',
14
+ subsectionStart: options.markers?.subsectionStart || '',
15
+ subsectionEnd: options.markers?.subsectionEnd || '',
16
+ materialStart: options.markers?.materialStart || '<material>',
17
+ materialEnd: options.markers?.materialEnd || '</material>',
18
+ chunkStart: options.markers?.chunkStart || '<chunk>',
19
+ chunkEnd: options.markers?.chunkEnd || '</chunk>',
20
+ messageRole: options.markers?.messageRole || '',
21
+ messageContent: options.markers?.messageContent || '',
22
+ ...options.markers
23
+ },
24
+ indent: {
25
+ size: options.indent?.size || 2,
26
+ char: options.indent?.char || ' ',
27
+ ...options.indent
28
+ },
29
+ lineBreak: options.lineBreak || '\n',
30
+ specialTokens: options.specialTokens
31
+ };
32
+ this.specialTokens = options.specialTokens;
33
+ }
34
+ format(element) {
35
+ switch (element.type) {
36
+ case 'text':
37
+ return this.formatText(element);
38
+ case 'message':
39
+ return this.formatMessage(element);
40
+ case 'material':
41
+ return this.formatMaterial(element);
42
+ case 'chunk':
43
+ return this.formatChunk(element);
44
+ case 'section':
45
+ return this.formatSection(element);
46
+ case 'subsection':
47
+ return this.formatSubSection(element);
48
+ case 'json':
49
+ return this.formatJSONElement(element);
50
+ default: {
51
+ // Type guard exhaustive check
52
+ const _exhaustive = element;
53
+ throw new Error(`Unknown element type: ${_exhaustive.type}`);
54
+ }
55
+ }
56
+ }
57
+ formatAll(elements) {
58
+ const { lineBreak } = this.options;
59
+ return elements.map(el => this.format(el)).join(lineBreak + lineBreak);
60
+ }
61
+ setSpecialTokens(tokens) {
62
+ this.specialTokens = tokens;
63
+ this.options.specialTokens = tokens;
64
+ // Update markers if special tokens are provided
65
+ if (tokens) {
66
+ this.updateMarkersFromSpecialTokens(tokens);
67
+ }
68
+ }
69
+ updateMarkersFromSpecialTokens(tokens) {
70
+ // Auto-configure markers based on special tokens if available
71
+ const markers = this.options.markers;
72
+ // Update section markers if tokens are available
73
+ if (tokens.system && this.isTokenPair(tokens.system)) {
74
+ markers.sectionStart = markers.sectionStart || tokens.system.start.text;
75
+ markers.sectionEnd = markers.sectionEnd || tokens.system.end.text;
76
+ }
77
+ // Update thinking/reasoning markers for subsections
78
+ if (tokens.thinking && this.isTokenPair(tokens.thinking)) {
79
+ markers.subsectionStart = markers.subsectionStart || tokens.thinking.start.text;
80
+ markers.subsectionEnd = markers.subsectionEnd || tokens.thinking.end.text;
81
+ }
82
+ // Note: Material formatting now uses special tokens directly in formatMaterial()
83
+ // with priority: quote > ref > citation > context
84
+ }
85
+ isTokenPair(token) {
86
+ return 'start' in token && 'end' in token;
87
+ }
88
+ formatText(element) {
89
+ return element.content;
90
+ }
91
+ formatMessage(element) {
92
+ const { markers } = this.options;
93
+ const role = element.role.toUpperCase();
94
+ // Convert content to string if it's an Attachment array
95
+ const contentStr = typeof element.content === 'string'
96
+ ? element.content
97
+ : JSON.stringify(element.content);
98
+ // Use special tokens or custom markers if available
99
+ if (this.specialTokens && this.specialTokens[element.role]) {
100
+ const token = this.specialTokens[element.role];
101
+ if (this.isTokenPair(token)) {
102
+ return `${token.start.text}${contentStr}${token.end.text}`;
103
+ }
104
+ }
105
+ // Use role-specific markers if configured
106
+ if (markers.messageRole && markers.messageContent) {
107
+ const roleMarker = markers.messageRole.replace('{role}', role);
108
+ const contentMarker = markers.messageContent.replace('{content}', contentStr);
109
+ return roleMarker + contentMarker;
110
+ }
111
+ // Default formatting with XML-like tags for MLX models
112
+ return `<!-- begin of ${role} -->\n${contentStr.trim()}\n<!-- end of ${role} -->`;
113
+ }
114
+ formatMaterial(element) {
115
+ const { lineBreak } = this.options;
116
+ // Handle content which can be string or Attachment[]
117
+ const contentStr = typeof element.content === 'string'
118
+ ? element.content
119
+ : JSON.stringify(element.content);
120
+ // Try to use special tokens with priority: quote > ref > citation > context
121
+ if (this.specialTokens) {
122
+ const quoteToken = this.getSpecialToken('quote');
123
+ if (quoteToken) {
124
+ return `${quoteToken.start}${element.title}${lineBreak}${contentStr}${quoteToken.end}${lineBreak}`;
125
+ }
126
+ const refToken = this.getSpecialToken('ref');
127
+ if (refToken) {
128
+ return `${refToken.start}${element.title}${lineBreak}${contentStr}${refToken.end}${lineBreak}`;
129
+ }
130
+ const citationToken = this.getSpecialToken('citation');
131
+ if (citationToken) {
132
+ return `${citationToken.start}${element.title}${lineBreak}${contentStr}${citationToken.end}${lineBreak}`;
133
+ }
134
+ const contextToken = this.getSpecialToken('context');
135
+ if (contextToken) {
136
+ return `${contextToken.start}Material: ${element.title}${lineBreak}${contentStr}${contextToken.end}${lineBreak}`;
137
+ }
138
+ }
139
+ // Default: markdown quote format
140
+ const lines = contentStr.split(lineBreak);
141
+ const quotedContent = lines.map((line) => `> ${line}`).join(lineBreak);
142
+ return `### ${element.title}${lineBreak}${lineBreak}${quotedContent}${lineBreak}`;
143
+ }
144
+ getSpecialToken(tokenName) {
145
+ if (!this.specialTokens)
146
+ return null;
147
+ const token = this.specialTokens[tokenName];
148
+ if (token && this.isTokenPair(token)) {
149
+ return {
150
+ start: token.start.text || '',
151
+ end: token.end.text || ''
152
+ };
153
+ }
154
+ return null;
155
+ }
156
+ formatChunk(element) {
157
+ const { markers, lineBreak } = this.options;
158
+ const lines = [];
159
+ // Handle content which can be string or Attachment[]
160
+ const contentStr = typeof element.content === 'string'
161
+ ? element.content
162
+ : JSON.stringify(element.content);
163
+ // Add custom markers if provided
164
+ if (markers.chunkStart)
165
+ lines.push(markers.chunkStart);
166
+ // Format chunk title based on available information
167
+ let chunkTitle;
168
+ if (element.index !== undefined && element.total !== undefined) {
169
+ chunkTitle = `#### Chunk ${element.index}/${element.total} of ${element.partOf}`;
170
+ }
171
+ else if (element.index !== undefined) {
172
+ chunkTitle = `#### Chunk ${element.index} of ${element.partOf}`;
173
+ }
174
+ else {
175
+ chunkTitle = `#### Part of ${element.partOf}`;
176
+ }
177
+ lines.push(chunkTitle);
178
+ lines.push('');
179
+ lines.push(contentStr);
180
+ if (markers.chunkEnd)
181
+ lines.push(markers.chunkEnd);
182
+ return lines.join(lineBreak);
183
+ }
184
+ formatSection(element) {
185
+ const { lineBreak } = this.options;
186
+ const lines = [];
187
+ lines.push(`## ${element.title}`);
188
+ lines.push('');
189
+ // Track previous item type for spacing
190
+ let previousItemType = null;
191
+ // Format items without automatic bullet points
192
+ for (const item of element.items) {
193
+ if (typeof item === 'string') {
194
+ // Add blank line if previous was subsection
195
+ if (previousItemType === 'subsection') {
196
+ lines.push('');
197
+ }
198
+ lines.push(item);
199
+ previousItemType = 'string';
200
+ }
201
+ else if (typeof item === 'function') {
202
+ // Skip DynamicContent functions - they should be resolved before formatting
203
+ continue;
204
+ }
205
+ else {
206
+ // Subsection element
207
+ // Add blank line if there was any previous item
208
+ if (previousItemType !== null) {
209
+ lines.push('');
210
+ }
211
+ const formatted = this.format(item);
212
+ lines.push(formatted);
213
+ previousItemType = 'subsection';
214
+ }
215
+ }
216
+ return lines.join(lineBreak);
217
+ }
218
+ formatJSONElement(element) {
219
+ const { lineBreak } = this.options;
220
+ const lines = [];
221
+ const jsonContent = typeof element.content === 'string'
222
+ ? element.content
223
+ : JSON.stringify(element.content, null, 2);
224
+ lines.push('### JSON Output Format');
225
+ lines.push('');
226
+ lines.push('```json');
227
+ lines.push(jsonContent);
228
+ lines.push('```');
229
+ return lines.join(lineBreak);
230
+ }
231
+ formatSubSection(element) {
232
+ const { markers, lineBreak } = this.options;
233
+ const lines = [];
234
+ // Add subsection start marker if provided
235
+ if (markers.subsectionStart)
236
+ lines.push(markers.subsectionStart);
237
+ lines.push(`### ${element.title}`);
238
+ lines.push('');
239
+ // Format items without automatic bullet points
240
+ for (const item of element.items) {
241
+ if (typeof item === 'string') {
242
+ lines.push(item);
243
+ }
244
+ // SimpleDynamicContent functions should be resolved before formatting
245
+ }
246
+ // Add subsection end marker if provided
247
+ if (markers.subsectionEnd)
248
+ lines.push(markers.subsectionEnd);
249
+ return lines.join(lineBreak);
250
+ }
251
+ }
252
+ //# sourceMappingURL=formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatter.js","sourceRoot":"","sources":["../../src/formatter/formatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import type { Element } from '@modular-prompt/core';
2
+ /**
3
+ * Special token definition
4
+ */
5
+ export interface SpecialToken {
6
+ text: string;
7
+ id: number;
8
+ }
9
+ /**
10
+ * Special token pair definition
11
+ */
12
+ export interface SpecialTokenPair {
13
+ start: SpecialToken;
14
+ end: SpecialToken;
15
+ }
16
+ /**
17
+ * Chat message format
18
+ */
19
+ export interface ChatMessage {
20
+ role: 'system' | 'user' | 'assistant';
21
+ content: string;
22
+ }
23
+ /**
24
+ * Formatter options for converting elements to text
25
+ */
26
+ export interface FormatterOptions {
27
+ /**
28
+ * Custom formatter instance to use
29
+ */
30
+ formatter?: ElementFormatter;
31
+ /**
32
+ * Preamble text to be added at the beginning of the formatted prompt
33
+ */
34
+ preamble?: string;
35
+ /**
36
+ * Section descriptions for each major section
37
+ */
38
+ sectionDescriptions?: {
39
+ instructions?: string;
40
+ data?: string;
41
+ output?: string;
42
+ };
43
+ /**
44
+ * Custom block markers for different element types
45
+ */
46
+ markers?: {
47
+ sectionStart?: string;
48
+ sectionEnd?: string;
49
+ subsectionStart?: string;
50
+ subsectionEnd?: string;
51
+ materialStart?: string;
52
+ materialEnd?: string;
53
+ chunkStart?: string;
54
+ chunkEnd?: string;
55
+ messageRole?: string;
56
+ messageContent?: string;
57
+ };
58
+ /**
59
+ * Indentation settings
60
+ */
61
+ indent?: {
62
+ size?: number;
63
+ char?: ' ' | '\t';
64
+ };
65
+ /**
66
+ * Line break settings
67
+ */
68
+ lineBreak?: '\n' | '\r\n';
69
+ /**
70
+ * Model-specific special tokens
71
+ */
72
+ specialTokens?: Record<string, SpecialToken | SpecialTokenPair>;
73
+ }
74
+ /**
75
+ * Element formatter interface
76
+ */
77
+ export interface ElementFormatter {
78
+ /**
79
+ * Format a single element
80
+ */
81
+ format(element: Element): string;
82
+ /**
83
+ * Format multiple elements
84
+ */
85
+ formatAll(elements: Element[]): string;
86
+ /**
87
+ * Set special tokens for formatting
88
+ */
89
+ setSpecialTokens?(tokens: Record<string, SpecialToken | SpecialTokenPair>): void;
90
+ }
91
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +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;AAEpD;;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,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/formatter/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,67 @@
1
+ import type { CompiledPrompt } from '@modular-prompt/core';
2
+ import type { AIDriver, QueryOptions, QueryResult, StreamResult } from '../types.js';
3
+ /**
4
+ * GoogleGenAI driver configuration
5
+ */
6
+ export interface GoogleGenAIDriverConfig {
7
+ apiKey?: string;
8
+ model?: string;
9
+ temperature?: number;
10
+ defaultOptions?: Partial<GoogleGenAIQueryOptions>;
11
+ }
12
+ /**
13
+ * GoogleGenAI-specific query options
14
+ */
15
+ export interface GoogleGenAIQueryOptions extends QueryOptions {
16
+ model?: string;
17
+ maxTokens?: number;
18
+ temperature?: number;
19
+ topP?: number;
20
+ topK?: number;
21
+ candidateCount?: number;
22
+ stopSequences?: string[];
23
+ thinkingConfig?: {
24
+ thinkingLevel?: 'HIGH' | 'MEDIUM' | 'LOW';
25
+ };
26
+ }
27
+ /**
28
+ * GoogleGenAI driver
29
+ */
30
+ export declare class GoogleGenAIDriver implements AIDriver {
31
+ private client;
32
+ private defaultModel;
33
+ private defaultTemperature;
34
+ private defaultOptions;
35
+ constructor(config?: GoogleGenAIDriverConfig);
36
+ /**
37
+ * Convert content (string or Attachment[]) to string
38
+ */
39
+ private contentToString;
40
+ /**
41
+ * Convert Element to Part (flat text conversion)
42
+ * Used for systemInstruction and simple data
43
+ */
44
+ private elementToPart;
45
+ /**
46
+ * Convert Element to Content (structure-preserving conversion)
47
+ * Used for conversation history where role matters
48
+ */
49
+ private elementToContent;
50
+ /**
51
+ * Convert JSON Schema to GoogleGenAI Schema format
52
+ */
53
+ private convertJsonSchema;
54
+ /**
55
+ * Query implementation
56
+ */
57
+ query(prompt: CompiledPrompt, options?: GoogleGenAIQueryOptions): Promise<QueryResult>;
58
+ /**
59
+ * Stream query implementation
60
+ */
61
+ streamQuery(prompt: CompiledPrompt, options?: GoogleGenAIQueryOptions): Promise<StreamResult>;
62
+ /**
63
+ * Close the client
64
+ */
65
+ close(): Promise<void>;
66
+ }
67
+ //# sourceMappingURL=google-genai-driver.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-genai-driver.d.ts","sourceRoot":"","sources":["../../src/google-genai/google-genai-driver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAErF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACnD;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KAC3C,CAAC;CACH;AAmBD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,cAAc,CAAmC;gBAE7C,MAAM,GAAE,uBAA4B;IAahD;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAkDrB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,WAAW,CAAC;IAgGvB;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,YAAY,CAAC;IAsIxB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}