@wundr.io/prompt-templates 1.0.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.
- package/dist/engine.d.ts +206 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +506 -0
- package/dist/engine.js.map +1 -0
- package/dist/helpers.d.ts +201 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +566 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +102 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +129 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +415 -0
- package/dist/loader.js.map +1 -0
- package/dist/macros.d.ts +64 -0
- package/dist/macros.d.ts.map +1 -0
- package/dist/macros.js +620 -0
- package/dist/macros.js.map +1 -0
- package/dist/types.d.ts +443 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +62 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -0
- package/src/engine.ts +616 -0
- package/src/helpers.ts +650 -0
- package/src/index.ts +138 -0
- package/src/loader.ts +468 -0
- package/src/macros.ts +635 -0
- package/src/types.ts +380 -0
package/dist/helpers.js
ADDED
|
@@ -0,0 +1,566 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @wundr/prompt-templates - Built-in Handlebars helpers for prompt templating
|
|
4
|
+
*/
|
|
5
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
7
|
+
};
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.formatTools = formatTools;
|
|
10
|
+
exports.ifDefined = ifDefined;
|
|
11
|
+
exports.codeBlock = codeBlock;
|
|
12
|
+
exports.formatMemory = formatMemory;
|
|
13
|
+
exports.repeat = repeat;
|
|
14
|
+
exports.formatDate = formatDate;
|
|
15
|
+
exports.json = json;
|
|
16
|
+
exports.truncate = truncate;
|
|
17
|
+
exports.join = join;
|
|
18
|
+
exports.compare = compare;
|
|
19
|
+
exports.capitalize = capitalize;
|
|
20
|
+
exports.uppercase = uppercase;
|
|
21
|
+
exports.lowercase = lowercase;
|
|
22
|
+
exports.indent = indent;
|
|
23
|
+
exports.wrap = wrap;
|
|
24
|
+
exports.bulletList = bulletList;
|
|
25
|
+
exports.numberedList = numberedList;
|
|
26
|
+
exports.getBuiltinHelpers = getBuiltinHelpers;
|
|
27
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
28
|
+
/**
|
|
29
|
+
* Format tools array into a structured prompt format
|
|
30
|
+
*
|
|
31
|
+
* @param tools - Array of tool definitions
|
|
32
|
+
* @param options - Handlebars helper options
|
|
33
|
+
* @returns Formatted tools string
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* {{formatTools tools}}
|
|
37
|
+
*/
|
|
38
|
+
function formatTools(tools, options) {
|
|
39
|
+
if (!tools || tools.length === 0) {
|
|
40
|
+
return '';
|
|
41
|
+
}
|
|
42
|
+
const format = options?.hash?.['format'];
|
|
43
|
+
if (format === 'json') {
|
|
44
|
+
return JSON.stringify(tools, null, 2);
|
|
45
|
+
}
|
|
46
|
+
if (format === 'compact') {
|
|
47
|
+
return tools.map(t => `- ${t.name}: ${t.description}`).join('\n');
|
|
48
|
+
}
|
|
49
|
+
// Default detailed format
|
|
50
|
+
const formatted = tools
|
|
51
|
+
.map(tool => {
|
|
52
|
+
let output = `### ${tool.name}\n${tool.description}`;
|
|
53
|
+
if (tool.parameters?.properties) {
|
|
54
|
+
output += '\n\n**Parameters:**';
|
|
55
|
+
for (const [name, prop] of Object.entries(tool.parameters.properties)) {
|
|
56
|
+
const required = tool.parameters.required?.includes(name)
|
|
57
|
+
? ' (required)'
|
|
58
|
+
: '';
|
|
59
|
+
const paramProp = prop;
|
|
60
|
+
output += `\n- \`${name}\`${required}: ${paramProp.type || 'any'} - ${paramProp.description || 'No description'}`;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (tool.examples && tool.examples.length > 0) {
|
|
64
|
+
output += '\n\n**Examples:**';
|
|
65
|
+
for (const example of tool.examples) {
|
|
66
|
+
output += `\n\`\`\`\n${example}\n\`\`\``;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return output;
|
|
70
|
+
})
|
|
71
|
+
.join('\n\n---\n\n');
|
|
72
|
+
return formatted;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Conditionally render block if value is defined and not null/undefined
|
|
76
|
+
*
|
|
77
|
+
* @param value - Value to check
|
|
78
|
+
* @param options - Handlebars helper options
|
|
79
|
+
* @returns Rendered block or empty string
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* {{#ifDefined user.name}}Hello, {{user.name}}{{/ifDefined}}
|
|
83
|
+
*/
|
|
84
|
+
function ifDefined(value, options) {
|
|
85
|
+
if (value !== undefined && value !== null) {
|
|
86
|
+
return options.fn(this);
|
|
87
|
+
}
|
|
88
|
+
return options.inverse ? options.inverse(this) : '';
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Wrap content in a code block with optional language
|
|
92
|
+
*
|
|
93
|
+
* @param language - Programming language for syntax highlighting
|
|
94
|
+
* @param options - Handlebars helper options
|
|
95
|
+
* @returns Code block formatted string
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* {{#codeBlock "javascript"}}
|
|
99
|
+
* const x = 1;
|
|
100
|
+
* {{/codeBlock}}
|
|
101
|
+
*/
|
|
102
|
+
function codeBlock(language, options) {
|
|
103
|
+
// Handle case where language is not provided
|
|
104
|
+
if (typeof language === 'object' && !options) {
|
|
105
|
+
options = language;
|
|
106
|
+
language = '';
|
|
107
|
+
}
|
|
108
|
+
const content = options?.fn(this) || '';
|
|
109
|
+
const lang = typeof language === 'string' ? language : '';
|
|
110
|
+
return `\`\`\`${lang}\n${content.trim()}\n\`\`\``;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Format memory/conversation history into a readable format
|
|
114
|
+
*
|
|
115
|
+
* @param messages - Array of conversation messages
|
|
116
|
+
* @param options - Handlebars helper options
|
|
117
|
+
* @returns Formatted memory string
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* {{formatMemory memory.messages}}
|
|
121
|
+
*/
|
|
122
|
+
function formatMemory(messages, options) {
|
|
123
|
+
if (!messages || messages.length === 0) {
|
|
124
|
+
return '';
|
|
125
|
+
}
|
|
126
|
+
const maxMessages = options?.hash?.['max'] ?? messages.length;
|
|
127
|
+
const format = options?.hash?.['format'];
|
|
128
|
+
const slicedMessages = messages.slice(-maxMessages);
|
|
129
|
+
if (format === 'compact') {
|
|
130
|
+
return slicedMessages
|
|
131
|
+
.map(m => `[${m.role.toUpperCase()}]: ${m.content}`)
|
|
132
|
+
.join('\n');
|
|
133
|
+
}
|
|
134
|
+
if (format === 'xml') {
|
|
135
|
+
return slicedMessages
|
|
136
|
+
.map(m => `<message role="${m.role}"${m.name ? ` name="${m.name}"` : ''}>\n${m.content}\n</message>`)
|
|
137
|
+
.join('\n\n');
|
|
138
|
+
}
|
|
139
|
+
// Default format
|
|
140
|
+
return slicedMessages
|
|
141
|
+
.map(m => {
|
|
142
|
+
const roleLabel = m.role.charAt(0).toUpperCase() + m.role.slice(1).toLowerCase();
|
|
143
|
+
const nameLabel = m.name ? ` (${m.name})` : '';
|
|
144
|
+
return `**${roleLabel}${nameLabel}:**\n${m.content}`;
|
|
145
|
+
})
|
|
146
|
+
.join('\n\n');
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Repeat content n times
|
|
150
|
+
*
|
|
151
|
+
* @param count - Number of times to repeat
|
|
152
|
+
* @param options - Handlebars helper options
|
|
153
|
+
* @returns Repeated content
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* {{#repeat 3}}Item {{@index}}{{/repeat}}
|
|
157
|
+
*/
|
|
158
|
+
function repeat(count, options) {
|
|
159
|
+
const results = [];
|
|
160
|
+
for (let i = 0; i < count; i++) {
|
|
161
|
+
const data = handlebars_1.default.createFrame(options.data || {});
|
|
162
|
+
data['index'] = i;
|
|
163
|
+
data['first'] = i === 0;
|
|
164
|
+
data['last'] = i === count - 1;
|
|
165
|
+
results.push(options.fn(this, { data }));
|
|
166
|
+
}
|
|
167
|
+
return results.join('');
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Format a date value
|
|
171
|
+
*
|
|
172
|
+
* @param date - Date to format
|
|
173
|
+
* @param formatStr - Format string (iso, locale, relative, or custom)
|
|
174
|
+
* @returns Formatted date string
|
|
175
|
+
*
|
|
176
|
+
* @example
|
|
177
|
+
* {{formatDate timestamp "iso"}}
|
|
178
|
+
*/
|
|
179
|
+
function formatDate(date, formatStr) {
|
|
180
|
+
if (!date) {
|
|
181
|
+
return '';
|
|
182
|
+
}
|
|
183
|
+
const dateObj = date instanceof Date ? date : new Date(date);
|
|
184
|
+
if (isNaN(dateObj.getTime())) {
|
|
185
|
+
return '';
|
|
186
|
+
}
|
|
187
|
+
const format = typeof formatStr === 'string' ? formatStr : 'iso';
|
|
188
|
+
switch (format) {
|
|
189
|
+
case 'iso':
|
|
190
|
+
return dateObj.toISOString();
|
|
191
|
+
case 'locale':
|
|
192
|
+
return dateObj.toLocaleString();
|
|
193
|
+
case 'date':
|
|
194
|
+
return dateObj.toLocaleDateString();
|
|
195
|
+
case 'time':
|
|
196
|
+
return dateObj.toLocaleTimeString();
|
|
197
|
+
case 'relative': {
|
|
198
|
+
const now = Date.now();
|
|
199
|
+
const diff = now - dateObj.getTime();
|
|
200
|
+
const seconds = Math.floor(diff / 1000);
|
|
201
|
+
const minutes = Math.floor(seconds / 60);
|
|
202
|
+
const hours = Math.floor(minutes / 60);
|
|
203
|
+
const days = Math.floor(hours / 24);
|
|
204
|
+
if (days > 0) {
|
|
205
|
+
return `${days} day${days > 1 ? 's' : ''} ago`;
|
|
206
|
+
}
|
|
207
|
+
if (hours > 0) {
|
|
208
|
+
return `${hours} hour${hours > 1 ? 's' : ''} ago`;
|
|
209
|
+
}
|
|
210
|
+
if (minutes > 0) {
|
|
211
|
+
return `${minutes} minute${minutes > 1 ? 's' : ''} ago`;
|
|
212
|
+
}
|
|
213
|
+
return 'just now';
|
|
214
|
+
}
|
|
215
|
+
default:
|
|
216
|
+
return dateObj.toISOString();
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* JSON stringify with formatting options
|
|
221
|
+
*
|
|
222
|
+
* @param value - Value to stringify
|
|
223
|
+
* @param options - Handlebars helper options
|
|
224
|
+
* @returns JSON string
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* {{json data indent=2}}
|
|
228
|
+
*/
|
|
229
|
+
function json(value, options) {
|
|
230
|
+
const indent = options?.hash?.['indent'] ?? 2;
|
|
231
|
+
try {
|
|
232
|
+
return JSON.stringify(value, null, indent);
|
|
233
|
+
}
|
|
234
|
+
catch {
|
|
235
|
+
return String(value);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Truncate text to a maximum length
|
|
240
|
+
*
|
|
241
|
+
* @param text - Text to truncate
|
|
242
|
+
* @param length - Maximum length
|
|
243
|
+
* @param suffix - Suffix to add when truncated (default: '...')
|
|
244
|
+
* @returns Truncated text
|
|
245
|
+
*
|
|
246
|
+
* @example
|
|
247
|
+
* {{truncate description 100 "..."}}
|
|
248
|
+
*/
|
|
249
|
+
function truncate(text, length, suffix) {
|
|
250
|
+
if (!text) {
|
|
251
|
+
return '';
|
|
252
|
+
}
|
|
253
|
+
const maxLength = typeof length === 'number' ? length : 100;
|
|
254
|
+
const ellipsis = typeof suffix === 'string' ? suffix : '...';
|
|
255
|
+
if (text.length <= maxLength) {
|
|
256
|
+
return text;
|
|
257
|
+
}
|
|
258
|
+
return text.substring(0, maxLength - ellipsis.length) + ellipsis;
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Join array items with a separator
|
|
262
|
+
*
|
|
263
|
+
* @param items - Array to join
|
|
264
|
+
* @param separator - Separator string (default: ', ')
|
|
265
|
+
* @returns Joined string
|
|
266
|
+
*
|
|
267
|
+
* @example
|
|
268
|
+
* {{join tags ", "}}
|
|
269
|
+
*/
|
|
270
|
+
function join(items, separator) {
|
|
271
|
+
if (!items || !Array.isArray(items)) {
|
|
272
|
+
return '';
|
|
273
|
+
}
|
|
274
|
+
const sep = typeof separator === 'string' ? separator : ', ';
|
|
275
|
+
return items.map(String).join(sep);
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* String comparison helper
|
|
279
|
+
*
|
|
280
|
+
* @param a - First value
|
|
281
|
+
* @param operator - Comparison operator
|
|
282
|
+
* @param b - Second value
|
|
283
|
+
* @param options - Handlebars helper options
|
|
284
|
+
* @returns Rendered block based on comparison result
|
|
285
|
+
*
|
|
286
|
+
* @example
|
|
287
|
+
* {{#compare role "eq" "admin"}}Admin content{{/compare}}
|
|
288
|
+
*/
|
|
289
|
+
function compare(a, operator, b, options) {
|
|
290
|
+
let result = false;
|
|
291
|
+
switch (operator) {
|
|
292
|
+
case 'eq':
|
|
293
|
+
case '==':
|
|
294
|
+
case '===':
|
|
295
|
+
result = a === b;
|
|
296
|
+
break;
|
|
297
|
+
case 'ne':
|
|
298
|
+
case '!=':
|
|
299
|
+
case '!==':
|
|
300
|
+
result = a !== b;
|
|
301
|
+
break;
|
|
302
|
+
case 'lt':
|
|
303
|
+
case '<':
|
|
304
|
+
result = Number(a) < Number(b);
|
|
305
|
+
break;
|
|
306
|
+
case 'lte':
|
|
307
|
+
case '<=':
|
|
308
|
+
result = Number(a) <= Number(b);
|
|
309
|
+
break;
|
|
310
|
+
case 'gt':
|
|
311
|
+
case '>':
|
|
312
|
+
result = Number(a) > Number(b);
|
|
313
|
+
break;
|
|
314
|
+
case 'gte':
|
|
315
|
+
case '>=':
|
|
316
|
+
result = Number(a) >= Number(b);
|
|
317
|
+
break;
|
|
318
|
+
case 'contains':
|
|
319
|
+
result = typeof a === 'string' && typeof b === 'string' && a.includes(b);
|
|
320
|
+
break;
|
|
321
|
+
case 'startsWith':
|
|
322
|
+
result =
|
|
323
|
+
typeof a === 'string' && typeof b === 'string' && a.startsWith(b);
|
|
324
|
+
break;
|
|
325
|
+
case 'endsWith':
|
|
326
|
+
result = typeof a === 'string' && typeof b === 'string' && a.endsWith(b);
|
|
327
|
+
break;
|
|
328
|
+
default:
|
|
329
|
+
result = false;
|
|
330
|
+
}
|
|
331
|
+
if (result) {
|
|
332
|
+
return options.fn(this);
|
|
333
|
+
}
|
|
334
|
+
return options.inverse ? options.inverse(this) : '';
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Capitalize first letter of string
|
|
338
|
+
*
|
|
339
|
+
* @param text - Text to capitalize
|
|
340
|
+
* @returns Capitalized text
|
|
341
|
+
*
|
|
342
|
+
* @example
|
|
343
|
+
* {{capitalize name}}
|
|
344
|
+
*/
|
|
345
|
+
function capitalize(text) {
|
|
346
|
+
if (!text) {
|
|
347
|
+
return '';
|
|
348
|
+
}
|
|
349
|
+
return text.charAt(0).toUpperCase() + text.slice(1);
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Convert string to uppercase
|
|
353
|
+
*
|
|
354
|
+
* @param text - Text to convert
|
|
355
|
+
* @returns Uppercase text
|
|
356
|
+
*
|
|
357
|
+
* @example
|
|
358
|
+
* {{uppercase status}}
|
|
359
|
+
*/
|
|
360
|
+
function uppercase(text) {
|
|
361
|
+
if (!text) {
|
|
362
|
+
return '';
|
|
363
|
+
}
|
|
364
|
+
return text.toUpperCase();
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Convert string to lowercase
|
|
368
|
+
*
|
|
369
|
+
* @param text - Text to convert
|
|
370
|
+
* @returns Lowercase text
|
|
371
|
+
*
|
|
372
|
+
* @example
|
|
373
|
+
* {{lowercase status}}
|
|
374
|
+
*/
|
|
375
|
+
function lowercase(text) {
|
|
376
|
+
if (!text) {
|
|
377
|
+
return '';
|
|
378
|
+
}
|
|
379
|
+
return text.toLowerCase();
|
|
380
|
+
}
|
|
381
|
+
/**
|
|
382
|
+
* Indent text by a number of spaces
|
|
383
|
+
*
|
|
384
|
+
* @param text - Text to indent
|
|
385
|
+
* @param spaces - Number of spaces (default: 2)
|
|
386
|
+
* @returns Indented text
|
|
387
|
+
*
|
|
388
|
+
* @example
|
|
389
|
+
* {{indent content 4}}
|
|
390
|
+
*/
|
|
391
|
+
function indent(text, spaces) {
|
|
392
|
+
if (!text) {
|
|
393
|
+
return '';
|
|
394
|
+
}
|
|
395
|
+
const numSpaces = typeof spaces === 'number' ? spaces : 2;
|
|
396
|
+
const indentStr = ' '.repeat(numSpaces);
|
|
397
|
+
return text
|
|
398
|
+
.split('\n')
|
|
399
|
+
.map(line => indentStr + line)
|
|
400
|
+
.join('\n');
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Wrap text to a maximum line width
|
|
404
|
+
*
|
|
405
|
+
* @param text - Text to wrap
|
|
406
|
+
* @param width - Maximum line width (default: 80)
|
|
407
|
+
* @returns Wrapped text
|
|
408
|
+
*
|
|
409
|
+
* @example
|
|
410
|
+
* {{wrap longText 72}}
|
|
411
|
+
*/
|
|
412
|
+
function wrap(text, width) {
|
|
413
|
+
if (!text) {
|
|
414
|
+
return '';
|
|
415
|
+
}
|
|
416
|
+
const maxWidth = typeof width === 'number' ? width : 80;
|
|
417
|
+
const words = text.split(' ');
|
|
418
|
+
const lines = [];
|
|
419
|
+
let currentLine = '';
|
|
420
|
+
for (const word of words) {
|
|
421
|
+
if (currentLine.length + word.length + 1 > maxWidth) {
|
|
422
|
+
if (currentLine) {
|
|
423
|
+
lines.push(currentLine);
|
|
424
|
+
}
|
|
425
|
+
currentLine = word;
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
currentLine = currentLine ? `${currentLine} ${word}` : word;
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
if (currentLine) {
|
|
432
|
+
lines.push(currentLine);
|
|
433
|
+
}
|
|
434
|
+
return lines.join('\n');
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* Create a bulleted list from array
|
|
438
|
+
*
|
|
439
|
+
* @param items - Array of items
|
|
440
|
+
* @param options - Handlebars helper options
|
|
441
|
+
* @returns Bulleted list string
|
|
442
|
+
*
|
|
443
|
+
* @example
|
|
444
|
+
* {{bulletList items bullet="*"}}
|
|
445
|
+
*/
|
|
446
|
+
function bulletList(items, options) {
|
|
447
|
+
if (!items || !Array.isArray(items)) {
|
|
448
|
+
return '';
|
|
449
|
+
}
|
|
450
|
+
const bullet = options?.hash?.['bullet'] || '-';
|
|
451
|
+
return items.map(item => `${bullet} ${String(item)}`).join('\n');
|
|
452
|
+
}
|
|
453
|
+
/**
|
|
454
|
+
* Create a numbered list from array
|
|
455
|
+
*
|
|
456
|
+
* @param items - Array of items
|
|
457
|
+
* @param options - Handlebars helper options
|
|
458
|
+
* @returns Numbered list string
|
|
459
|
+
*
|
|
460
|
+
* @example
|
|
461
|
+
* {{numberedList steps start=1}}
|
|
462
|
+
*/
|
|
463
|
+
function numberedList(items, options) {
|
|
464
|
+
if (!items || !Array.isArray(items)) {
|
|
465
|
+
return '';
|
|
466
|
+
}
|
|
467
|
+
const start = options?.hash?.['start'] || 1;
|
|
468
|
+
return items
|
|
469
|
+
.map((item, index) => `${start + index}. ${String(item)}`)
|
|
470
|
+
.join('\n');
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Get all built-in helper definitions
|
|
474
|
+
*
|
|
475
|
+
* @returns Array of helper definitions
|
|
476
|
+
*/
|
|
477
|
+
function getBuiltinHelpers() {
|
|
478
|
+
return [
|
|
479
|
+
{
|
|
480
|
+
name: 'formatTools',
|
|
481
|
+
description: 'Format tools array into a structured prompt format',
|
|
482
|
+
fn: formatTools,
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
name: 'ifDefined',
|
|
486
|
+
description: 'Conditionally render block if value is defined and not null/undefined',
|
|
487
|
+
fn: ifDefined,
|
|
488
|
+
},
|
|
489
|
+
{
|
|
490
|
+
name: 'codeBlock',
|
|
491
|
+
description: 'Wrap content in a code block with optional language',
|
|
492
|
+
fn: codeBlock,
|
|
493
|
+
},
|
|
494
|
+
{
|
|
495
|
+
name: 'formatMemory',
|
|
496
|
+
description: 'Format memory/conversation history into a readable format',
|
|
497
|
+
fn: formatMemory,
|
|
498
|
+
},
|
|
499
|
+
{
|
|
500
|
+
name: 'repeat',
|
|
501
|
+
description: 'Repeat content n times',
|
|
502
|
+
fn: repeat,
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
name: 'formatDate',
|
|
506
|
+
description: 'Format a date value',
|
|
507
|
+
fn: formatDate,
|
|
508
|
+
},
|
|
509
|
+
{
|
|
510
|
+
name: 'json',
|
|
511
|
+
description: 'JSON stringify with formatting options',
|
|
512
|
+
fn: json,
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
name: 'truncate',
|
|
516
|
+
description: 'Truncate text to a maximum length',
|
|
517
|
+
fn: truncate,
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
name: 'join',
|
|
521
|
+
description: 'Join array items with a separator',
|
|
522
|
+
fn: join,
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
name: 'compare',
|
|
526
|
+
description: 'String comparison helper',
|
|
527
|
+
fn: compare,
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
name: 'capitalize',
|
|
531
|
+
description: 'Capitalize first letter of string',
|
|
532
|
+
fn: capitalize,
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
name: 'uppercase',
|
|
536
|
+
description: 'Convert string to uppercase',
|
|
537
|
+
fn: uppercase,
|
|
538
|
+
},
|
|
539
|
+
{
|
|
540
|
+
name: 'lowercase',
|
|
541
|
+
description: 'Convert string to lowercase',
|
|
542
|
+
fn: lowercase,
|
|
543
|
+
},
|
|
544
|
+
{
|
|
545
|
+
name: 'indent',
|
|
546
|
+
description: 'Indent text by a number of spaces',
|
|
547
|
+
fn: indent,
|
|
548
|
+
},
|
|
549
|
+
{
|
|
550
|
+
name: 'wrap',
|
|
551
|
+
description: 'Wrap text to a maximum line width',
|
|
552
|
+
fn: wrap,
|
|
553
|
+
},
|
|
554
|
+
{
|
|
555
|
+
name: 'bulletList',
|
|
556
|
+
description: 'Create a bulleted list from array',
|
|
557
|
+
fn: bulletList,
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
name: 'numberedList',
|
|
561
|
+
description: 'Create a numbered list from array',
|
|
562
|
+
fn: numberedList,
|
|
563
|
+
},
|
|
564
|
+
];
|
|
565
|
+
}
|
|
566
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @wundr/prompt-templates - Jinja2-style dynamic prompt templating using Handlebars
|
|
3
|
+
*
|
|
4
|
+
* This package provides a powerful templating engine for creating dynamic AI prompts
|
|
5
|
+
* with support for variables, helpers, macros, and context-aware rendering.
|
|
6
|
+
*
|
|
7
|
+
* @example Basic usage
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createEngine } from '@wundr.io/prompt-templates';
|
|
10
|
+
*
|
|
11
|
+
* const engine = createEngine();
|
|
12
|
+
*
|
|
13
|
+
* const result = engine.render(
|
|
14
|
+
* 'Hello, {{name}}! You are a {{role}}.',
|
|
15
|
+
* { variables: { name: 'Claude', role: 'helpful assistant' } }
|
|
16
|
+
* );
|
|
17
|
+
*
|
|
18
|
+
* console.log(result.output);
|
|
19
|
+
* // Output: "Hello, Claude! You are a helpful assistant."
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example Using macros
|
|
23
|
+
* ```typescript
|
|
24
|
+
* import { createEngine } from '@wundr.io/prompt-templates';
|
|
25
|
+
*
|
|
26
|
+
* const engine = createEngine();
|
|
27
|
+
*
|
|
28
|
+
* const result = engine.render(
|
|
29
|
+
* '{{> systemRole role="a coding assistant" expertise="TypeScript" }}',
|
|
30
|
+
* { variables: {} }
|
|
31
|
+
* );
|
|
32
|
+
* ```
|
|
33
|
+
*
|
|
34
|
+
* @example Loading templates from files
|
|
35
|
+
* ```typescript
|
|
36
|
+
* import { createEngine } from '@wundr.io/prompt-templates';
|
|
37
|
+
*
|
|
38
|
+
* const engine = createEngine({}, '/path/to/templates');
|
|
39
|
+
* engine.loadTemplate('my-prompt');
|
|
40
|
+
*
|
|
41
|
+
* const result = engine.render('my-prompt', {
|
|
42
|
+
* variables: { user: 'John' }
|
|
43
|
+
* });
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @packageDocumentation
|
|
47
|
+
*/
|
|
48
|
+
export type { JsonPrimitive, JsonValue, JsonObject, JsonArray, TemplateContext, SystemContext, MemoryContext, ConversationMessage, ToolDefinition, ToolParameters, ToolParameterProperty, PromptTemplateConfig, MacroDefinition, MacroParameter, HelperDefinition, HelperFunction, SafeString, RenderOptions, RenderResult, RenderMetadata, TemplateError, LoaderOptions, EngineEvents, EngineEventHandler, } from './types.js';
|
|
49
|
+
export { PromptTemplateConfigSchema, ToolDefinitionSchema, MacroDefinitionSchema, } from './types.js';
|
|
50
|
+
export { PromptTemplateEngine, createEngine } from './engine.js';
|
|
51
|
+
export { TemplateLoader, createLoader } from './loader.js';
|
|
52
|
+
export { formatTools, ifDefined, codeBlock, formatMemory, repeat, formatDate, json, truncate, join, compare, capitalize, uppercase, lowercase, indent, wrap, bulletList, numberedList, getBuiltinHelpers, } from './helpers.js';
|
|
53
|
+
export { systemRoleMacro, taskContextMacro, outputFormatMacro, conversationHistoryMacro, toolsSectionMacro, codeContextMacro, chainOfThoughtMacro, fewShotExamplesMacro, safetyGuardrailsMacro, personaMacro, getBuiltinMacros, getMacroByName, getMacroNames, } from './macros.js';
|
|
54
|
+
export declare const version = "1.0.3";
|
|
55
|
+
export declare const name = "@wundr.io/prompt-templates";
|
|
56
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAGH,YAAY,EAEV,aAAa,EACb,SAAS,EACT,UAAU,EACV,SAAS,EAET,eAAe,EACf,aAAa,EACb,aAAa,EACb,mBAAmB,EAEnB,cAAc,EACd,cAAc,EACd,qBAAqB,EAErB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,UAAU,EAEV,aAAa,EACb,YAAY,EACZ,cAAc,EACd,aAAa,EAEb,aAAa,EAEb,YAAY,EACZ,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,0BAA0B,EAC1B,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGjE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3D,OAAO,EACL,WAAW,EACX,SAAS,EACT,SAAS,EACT,YAAY,EACZ,MAAM,EACN,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,UAAU,EACV,SAAS,EACT,SAAS,EACT,MAAM,EACN,IAAI,EACJ,UAAU,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,aAAa,GACd,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,OAAO,UAAU,CAAC;AAC/B,eAAO,MAAM,IAAI,+BAA+B,CAAC"}
|