@riotprompt/riotprompt 0.0.4 → 0.0.6
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/README.md +1 -1
- package/dist/items/section.d.ts +5 -0
- package/dist/items/section.js +12 -1
- package/dist/items/section.js.map +1 -1
- package/dist/recipes.d.ts +10 -16
- package/dist/recipes.js +62 -45
- package/dist/recipes.js.map +1 -1
- package/dist/riotprompt.cjs +74 -46
- package/dist/riotprompt.cjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,7 +75,7 @@ RiotPrompt is designed to be completely generic and unopinionated. Unlike other
|
|
|
75
75
|
|
|
76
76
|
## 🤝 Contributing
|
|
77
77
|
|
|
78
|
-
Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
|
|
78
|
+
Contributions are welcome! Please see our [Contributing Guide](CONTRIBUTING.md) for details. Test.
|
|
79
79
|
|
|
80
80
|
## 📄 License
|
|
81
81
|
|
package/dist/items/section.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ export interface Section<T extends Weighted> {
|
|
|
10
10
|
insert: (index: number, item: T | T[] | Section<T> | Section<T>[] | string | string[], options?: Partial<WeightedOptions>) => Section<T>;
|
|
11
11
|
replace: (index: number, item: T | Section<T> | string, options?: Partial<WeightedOptions>) => Section<T>;
|
|
12
12
|
remove: (index: number) => Section<T>;
|
|
13
|
+
toJSON: () => {
|
|
14
|
+
title?: string;
|
|
15
|
+
items: any[];
|
|
16
|
+
weight?: number;
|
|
17
|
+
};
|
|
13
18
|
}
|
|
14
19
|
export declare const SectionOptionsSchema: z.ZodObject<{
|
|
15
20
|
title: z.ZodOptional<z.ZodString>;
|
package/dist/items/section.js
CHANGED
|
@@ -97,6 +97,16 @@ const create = (options = {})=>{
|
|
|
97
97
|
};
|
|
98
98
|
return append(item, itemOptions);
|
|
99
99
|
};
|
|
100
|
+
const toJSON = ()=>{
|
|
101
|
+
return {
|
|
102
|
+
title: section.title,
|
|
103
|
+
items: items.map((item)=>{
|
|
104
|
+
// If the item has a toJSON method, call it, otherwise return the item itself
|
|
105
|
+
return typeof item === 'object' && item !== null && 'toJSON' in item && typeof item.toJSON === 'function' ? item.toJSON() : item;
|
|
106
|
+
}),
|
|
107
|
+
weight: section.weight
|
|
108
|
+
};
|
|
109
|
+
};
|
|
100
110
|
const section = {
|
|
101
111
|
title: sectionOptions.title,
|
|
102
112
|
items,
|
|
@@ -106,7 +116,8 @@ const create = (options = {})=>{
|
|
|
106
116
|
prepend,
|
|
107
117
|
insert,
|
|
108
118
|
remove,
|
|
109
|
-
replace
|
|
119
|
+
replace,
|
|
120
|
+
toJSON
|
|
110
121
|
};
|
|
111
122
|
return section;
|
|
112
123
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"section.js","sources":["../../src/items/section.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ParametersSchema } from \"./parameters\";\nimport { Weighted, WeightedOptions, WeightedOptionsSchema, create as createWeighted } from \"./weighted\";\n\nexport interface Section<T extends Weighted> {\n title?: string;\n items: (T | Section<T>)[];\n weight?: number;\n add: (\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n append: (\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n prepend: (\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n insert: (\n index: number,\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n replace: (\n index: number,\n item: T | Section<T> | string,\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n remove: (index: number) => Section<T>;\n}\n\nexport const SectionOptionsSchema = z.object({\n title: z.string().optional(),\n weight: z.number().optional(),\n itemWeight: z.number().optional(),\n parameters: ParametersSchema.optional().default({}),\n});\n\nexport type SectionOptions = z.infer<typeof SectionOptionsSchema>;\n\nexport const isSection = (object: any): boolean => {\n return object !== undefined && object != null && typeof object === 'object' && 'items' in object;\n}\n\nexport const convertToSection = (\n object: any,\n options: Partial<SectionOptions> = {}\n): Section<Weighted> => {\n const sectionOptions = SectionOptionsSchema.parse(options);\n\n const weightedOptions = WeightedOptionsSchema.parse({\n ...sectionOptions,\n weight: sectionOptions.itemWeight,\n });\n\n if (isSection(object)) {\n const section = create({ ...sectionOptions, title: object.title });\n object.items.forEach((item: any) => {\n if (isSection(item)) {\n section.append(convertToSection(item, sectionOptions));\n } else {\n section.append(createWeighted(item.text, weightedOptions));\n }\n });\n return section;\n } else {\n throw new Error('Object is not a section');\n }\n}\n\nexport const create = <T extends Weighted>(\n options: Partial<SectionOptions> = {}\n): Section<T> => {\n const items: (T | Section<T>)[] = [];\n const sectionOptions = SectionOptionsSchema.parse(options);\n\n const sectionItemOptions = WeightedOptionsSchema.parse({\n ...sectionOptions,\n weight: sectionOptions.itemWeight,\n });\n\n const append = (item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (Array.isArray(item)) {\n item.forEach((item) => {\n append(item);\n });\n } else {\n if (typeof item === 'string') {\n items.push(createWeighted<T>(item, itemOptions));\n } else {\n items.push(item);\n }\n }\n return section;\n }\n\n const prepend = (item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (Array.isArray(item)) {\n item.forEach((item) => {\n prepend(item);\n });\n } else {\n if (typeof item === 'string') {\n items.unshift(createWeighted<T>(item, itemOptions));\n } else {\n items.unshift(item);\n }\n }\n return section;\n }\n\n const insert = (index: number, item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (Array.isArray(item)) {\n item.forEach((item) => {\n insert(index, item);\n });\n } else {\n if (typeof item === 'string') {\n items.splice(index, 0, createWeighted<T>(item, itemOptions));\n } else {\n items.splice(index, 0, item);\n }\n }\n return section;\n }\n\n const remove = (index: number): Section<T> => {\n items.splice(index, 1);\n return section;\n }\n\n const replace = (index: number, item: T | Section<T> | string, options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (typeof item === 'string') {\n items[index] = createWeighted<T>(item, itemOptions);\n } else {\n items[index] = item;\n }\n return section;\n }\n\n const add = (item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n return append(item, itemOptions);\n }\n\n const section: Section<T> = {\n title: sectionOptions.title,\n items,\n weight: sectionOptions.weight,\n add,\n append,\n prepend,\n insert,\n remove,\n replace,\n }\n\n return section;\n}\n\n\n"],"names":["SectionOptionsSchema","z","object","title","string","optional","weight","number","itemWeight","parameters","ParametersSchema","default","create","options","items","sectionOptions","parse","sectionItemOptions","WeightedOptionsSchema","append","item","itemOptions","Array","isArray","forEach","push","createWeighted","section","prepend","unshift","insert","index","splice","remove","replace","add"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"section.js","sources":["../../src/items/section.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { ParametersSchema } from \"./parameters\";\nimport { Weighted, WeightedOptions, WeightedOptionsSchema, create as createWeighted } from \"./weighted\";\n\nexport interface Section<T extends Weighted> {\n title?: string;\n items: (T | Section<T>)[];\n weight?: number;\n add: (\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n append: (\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n prepend: (\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n insert: (\n index: number,\n item: T | T[] | Section<T> | Section<T>[] | string | string[],\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n replace: (\n index: number,\n item: T | Section<T> | string,\n options?: Partial<WeightedOptions>\n ) => Section<T>;\n remove: (index: number) => Section<T>;\n toJSON: () => { title?: string; items: any[]; weight?: number; };\n}\n\nexport const SectionOptionsSchema = z.object({\n title: z.string().optional(),\n weight: z.number().optional(),\n itemWeight: z.number().optional(),\n parameters: ParametersSchema.optional().default({}),\n});\n\nexport type SectionOptions = z.infer<typeof SectionOptionsSchema>;\n\nexport const isSection = (object: any): boolean => {\n return object !== undefined && object != null && typeof object === 'object' && 'items' in object;\n}\n\nexport const convertToSection = (\n object: any,\n options: Partial<SectionOptions> = {}\n): Section<Weighted> => {\n const sectionOptions = SectionOptionsSchema.parse(options);\n\n const weightedOptions = WeightedOptionsSchema.parse({\n ...sectionOptions,\n weight: sectionOptions.itemWeight,\n });\n\n if (isSection(object)) {\n const section = create({ ...sectionOptions, title: object.title });\n object.items.forEach((item: any) => {\n if (isSection(item)) {\n section.append(convertToSection(item, sectionOptions));\n } else {\n section.append(createWeighted(item.text, weightedOptions));\n }\n });\n return section;\n } else {\n throw new Error('Object is not a section');\n }\n}\n\nexport const create = <T extends Weighted>(\n options: Partial<SectionOptions> = {}\n): Section<T> => {\n const items: (T | Section<T>)[] = [];\n const sectionOptions = SectionOptionsSchema.parse(options);\n\n const sectionItemOptions = WeightedOptionsSchema.parse({\n ...sectionOptions,\n weight: sectionOptions.itemWeight,\n });\n\n const append = (item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (Array.isArray(item)) {\n item.forEach((item) => {\n append(item);\n });\n } else {\n if (typeof item === 'string') {\n items.push(createWeighted<T>(item, itemOptions));\n } else {\n items.push(item);\n }\n }\n return section;\n }\n\n const prepend = (item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (Array.isArray(item)) {\n item.forEach((item) => {\n prepend(item);\n });\n } else {\n if (typeof item === 'string') {\n items.unshift(createWeighted<T>(item, itemOptions));\n } else {\n items.unshift(item);\n }\n }\n return section;\n }\n\n const insert = (index: number, item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (Array.isArray(item)) {\n item.forEach((item) => {\n insert(index, item);\n });\n } else {\n if (typeof item === 'string') {\n items.splice(index, 0, createWeighted<T>(item, itemOptions));\n } else {\n items.splice(index, 0, item);\n }\n }\n return section;\n }\n\n const remove = (index: number): Section<T> => {\n items.splice(index, 1);\n return section;\n }\n\n const replace = (index: number, item: T | Section<T> | string, options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n if (typeof item === 'string') {\n items[index] = createWeighted<T>(item, itemOptions);\n } else {\n items[index] = item;\n }\n return section;\n }\n\n const add = (item: T | T[] | Section<T> | Section<T>[] | string | string[], options: Partial<WeightedOptions> = {}): Section<T> => {\n let itemOptions: WeightedOptions = WeightedOptionsSchema.parse(options);\n itemOptions = { ...sectionItemOptions, ...itemOptions };\n\n return append(item, itemOptions);\n }\n\n const toJSON = () => {\n return {\n title: section.title,\n items: items.map(item => {\n // If the item has a toJSON method, call it, otherwise return the item itself\n return typeof item === 'object' && item !== null && 'toJSON' in item && typeof item.toJSON === 'function'\n ? item.toJSON()\n : item;\n }),\n weight: section.weight,\n };\n };\n\n const section: Section<T> = {\n title: sectionOptions.title,\n items,\n weight: sectionOptions.weight,\n add,\n append,\n prepend,\n insert,\n remove,\n replace,\n toJSON,\n }\n\n return section;\n}\n\n\n"],"names":["SectionOptionsSchema","z","object","title","string","optional","weight","number","itemWeight","parameters","ParametersSchema","default","create","options","items","sectionOptions","parse","sectionItemOptions","WeightedOptionsSchema","append","item","itemOptions","Array","isArray","forEach","push","createWeighted","section","prepend","unshift","insert","index","splice","remove","replace","add","toJSON","map"],"mappings":"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"}
|
package/dist/recipes.d.ts
CHANGED
|
@@ -353,21 +353,15 @@ export declare const cook: (config: Partial<RecipeConfig> & {
|
|
|
353
353
|
basePath: string;
|
|
354
354
|
}) => Promise<Prompt>;
|
|
355
355
|
export declare const recipe: (basePath: string) => {
|
|
356
|
-
template: (name: string) =>
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
};
|
|
367
|
-
cook: () => Promise<Prompt>;
|
|
368
|
-
};
|
|
369
|
-
cook: () => Promise<Prompt>;
|
|
370
|
-
};
|
|
371
|
-
cook: (config: Partial<RecipeConfig>) => Promise<Prompt>;
|
|
356
|
+
template: (name: string) => /*elided*/ any;
|
|
357
|
+
with: (partialConfig: Partial<RecipeConfig>) => /*elided*/ any;
|
|
358
|
+
persona: (persona: ContentItem) => /*elided*/ any;
|
|
359
|
+
instructions: (...instructions: ContentItem[]) => /*elided*/ any;
|
|
360
|
+
content: (...content: ContentItem[]) => /*elided*/ any;
|
|
361
|
+
context: (...context: ContentItem[]) => /*elided*/ any;
|
|
362
|
+
parameters: (parameters: any) => /*elided*/ any;
|
|
363
|
+
overrides: (enabled: boolean) => /*elided*/ any;
|
|
364
|
+
overridePaths: (paths: string[]) => /*elided*/ any;
|
|
365
|
+
cook: () => Promise<Prompt>;
|
|
372
366
|
};
|
|
373
367
|
export type { RecipeConfig, ContentItem };
|
package/dist/recipes.js
CHANGED
|
@@ -169,7 +169,10 @@ const cook = async (config)=>{
|
|
|
169
169
|
parameters: finalConfig.parameters});
|
|
170
170
|
}
|
|
171
171
|
// Process content
|
|
172
|
+
// eslint-disable-next-line no-console
|
|
172
173
|
for (const item of finalConfig.content || []){
|
|
174
|
+
// eslint-disable-next-line no-console
|
|
175
|
+
console.log('Processing content item:', JSON.stringify(item, null, 2));
|
|
173
176
|
await processContentItem(item, contentSection, 'content', {
|
|
174
177
|
basePath: finalConfig.basePath,
|
|
175
178
|
parser: parser$1,
|
|
@@ -200,11 +203,11 @@ const processContentItem = async (item, section, type, ctx)=>{
|
|
|
200
203
|
};
|
|
201
204
|
if (typeof item === 'string') {
|
|
202
205
|
// Simple string content
|
|
203
|
-
const parsedSection = ctx.parser.parse(item, sectionOptions);
|
|
206
|
+
const parsedSection = await ctx.parser.parse(item, sectionOptions);
|
|
204
207
|
section.add(parsedSection);
|
|
205
208
|
} else if ('content' in item) {
|
|
206
209
|
// Inline content with options
|
|
207
|
-
const parsedSection = ctx.parser.parse(item.content, {
|
|
210
|
+
const parsedSection = await ctx.parser.parse(item.content, {
|
|
208
211
|
...sectionOptions,
|
|
209
212
|
title: item.title,
|
|
210
213
|
weight: item.weight
|
|
@@ -231,49 +234,63 @@ const processContentItem = async (item, section, type, ctx)=>{
|
|
|
231
234
|
}
|
|
232
235
|
};
|
|
233
236
|
// ===== FLUENT RECIPE BUILDER =====
|
|
234
|
-
const recipe = (basePath)=>
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
...config
|
|
275
|
-
|
|
276
|
-
|
|
237
|
+
const recipe = (basePath)=>{
|
|
238
|
+
const config = {
|
|
239
|
+
basePath
|
|
240
|
+
};
|
|
241
|
+
const builder = {
|
|
242
|
+
template: (name)=>{
|
|
243
|
+
config.template = name;
|
|
244
|
+
return builder;
|
|
245
|
+
},
|
|
246
|
+
with: (partialConfig)=>{
|
|
247
|
+
Object.assign(config, partialConfig);
|
|
248
|
+
return builder;
|
|
249
|
+
},
|
|
250
|
+
persona: (persona)=>{
|
|
251
|
+
config.persona = persona;
|
|
252
|
+
return builder;
|
|
253
|
+
},
|
|
254
|
+
instructions: (...instructions)=>{
|
|
255
|
+
config.instructions = [
|
|
256
|
+
...config.instructions || [],
|
|
257
|
+
...instructions
|
|
258
|
+
];
|
|
259
|
+
return builder;
|
|
260
|
+
},
|
|
261
|
+
content: (...content)=>{
|
|
262
|
+
config.content = [
|
|
263
|
+
...config.content || [],
|
|
264
|
+
...content
|
|
265
|
+
];
|
|
266
|
+
return builder;
|
|
267
|
+
},
|
|
268
|
+
context: (...context)=>{
|
|
269
|
+
config.context = [
|
|
270
|
+
...config.context || [],
|
|
271
|
+
...context
|
|
272
|
+
];
|
|
273
|
+
return builder;
|
|
274
|
+
},
|
|
275
|
+
parameters: (parameters)=>{
|
|
276
|
+
config.parameters = {
|
|
277
|
+
...config.parameters,
|
|
278
|
+
...parameters
|
|
279
|
+
};
|
|
280
|
+
return builder;
|
|
281
|
+
},
|
|
282
|
+
overrides: (enabled)=>{
|
|
283
|
+
config.overrides = enabled;
|
|
284
|
+
return builder;
|
|
285
|
+
},
|
|
286
|
+
overridePaths: (paths)=>{
|
|
287
|
+
config.overridePaths = paths;
|
|
288
|
+
return builder;
|
|
289
|
+
},
|
|
290
|
+
cook: ()=>cook(config)
|
|
291
|
+
};
|
|
292
|
+
return builder;
|
|
293
|
+
};
|
|
277
294
|
|
|
278
295
|
export { clearTemplates, cook, getTemplates, recipe, registerTemplates };
|
|
279
296
|
//# sourceMappingURL=recipes.js.map
|
package/dist/recipes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipes.js","sources":["../src/recipes.ts"],"sourcesContent":["import path from \"path\";\nimport { z } from \"zod\";\nimport { ParametersSchema } from \"./items/parameters\";\nimport { SectionOptions } from \"./items/section\";\nimport { DEFAULT_LOGGER, wrapLogger } from \"./logger\";\nimport { Content, Context, createPrompt, createSection, Instruction, Loader, Override, Parser, Prompt, Section, Weighted } from \"./riotprompt\";\n\n// ===== CONFIGURATION SCHEMAS =====\n\nconst ContentItemSchema = z.union([\n z.string(), // Simple string content\n z.object({\n content: z.string(),\n title: z.string().optional(),\n weight: z.number().optional(),\n }),\n z.object({\n path: z.string(),\n title: z.string().optional(),\n weight: z.number().optional(),\n }),\n z.object({\n directories: z.array(z.string()),\n title: z.string().optional(),\n weight: z.number().optional(),\n })\n]);\n\nconst RecipeConfigSchema = z.object({\n // Core settings\n basePath: z.string(),\n logger: z.any().optional().default(DEFAULT_LOGGER),\n overridePaths: z.array(z.string()).optional().default([\"./\"]),\n overrides: z.boolean().optional().default(false),\n parameters: ParametersSchema.optional().default({}),\n\n // Content sections\n persona: ContentItemSchema.optional(),\n instructions: z.array(ContentItemSchema).optional().default([]),\n content: z.array(ContentItemSchema).optional().default([]),\n context: z.array(ContentItemSchema).optional().default([]),\n\n // Templates and inheritance\n extends: z.string().optional(), // Extend another recipe\n template: z.string().optional(), // Generic template name\n});\n\ntype RecipeConfig = z.infer<typeof RecipeConfigSchema>;\ntype ContentItem = z.infer<typeof ContentItemSchema>;\n\n// ===== CONFIGURABLE TEMPLATE SYSTEM =====\n\nexport interface TemplateConfig {\n persona?: ContentItem;\n instructions?: ContentItem[];\n content?: ContentItem[];\n context?: ContentItem[];\n}\n\n// User-customizable template registry\nlet TEMPLATES: Record<string, TemplateConfig> = {};\n\n/**\n * Register custom templates with the recipes system\n * \n * @example\n * ```typescript\n * // Register your own templates\n * registerTemplates({\n * myWorkflow: {\n * persona: { path: \"personas/my-persona.md\" },\n * instructions: [{ path: \"instructions/my-instructions.md\" }]\n * },\n * anotherTemplate: {\n * persona: { content: \"You are a helpful assistant\" },\n * instructions: [{ content: \"Follow these steps...\" }]\n * }\n * });\n * ```\n */\nexport const registerTemplates = (templates: Record<string, TemplateConfig>): void => {\n TEMPLATES = { ...TEMPLATES, ...templates };\n};\n\n/**\n * Get currently registered templates\n */\nexport const getTemplates = (): Record<string, TemplateConfig> => ({ ...TEMPLATES });\n\n/**\n * Clear all registered templates\n */\nexport const clearTemplates = (): void => {\n TEMPLATES = {};\n};\n\n// ===== CORE RECIPE ENGINE =====\n\nexport const cook = async (config: Partial<RecipeConfig> & { basePath: string }): Promise<Prompt> => {\n // Parse and validate configuration with defaults\n const validatedConfig = RecipeConfigSchema.parse({\n overridePaths: [\"./\"],\n overrides: false,\n parameters: {},\n instructions: [],\n content: [],\n context: [],\n ...config\n });\n\n // Handle template inheritance\n let finalConfig = { ...validatedConfig };\n if (validatedConfig.template) {\n const template = TEMPLATES[validatedConfig.template];\n if (template) {\n finalConfig = {\n ...validatedConfig,\n persona: validatedConfig.persona || template.persona,\n instructions: [\n ...(template.instructions || []),\n ...(validatedConfig.instructions || [])\n ],\n content: [\n ...(template.content || []),\n ...(validatedConfig.content || [])\n ],\n context: [\n ...(template.context || []),\n ...(validatedConfig.context || [])\n ],\n };\n }\n }\n\n // Setup internal services\n const logger = wrapLogger(finalConfig.logger, 'Recipe');\n const parser = Parser.create({ logger });\n const override = Override.create({\n logger,\n configDirs: finalConfig.overridePaths || [\"./\"],\n overrides: finalConfig.overrides || false\n });\n const loader = Loader.create({ logger });\n\n // Create sections\n const personaSection: Section<Instruction> = createSection({ title: \"Persona\" });\n const instructionSection: Section<Instruction> = createSection({ title: \"Instruction\" });\n const contentSection: Section<Content> = createSection({ title: \"Content\" });\n const contextSection: Section<Context> = createSection({ title: \"Context\" });\n\n // Process persona\n if (finalConfig.persona) {\n await processContentItem(finalConfig.persona, personaSection, 'persona', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Process instructions\n for (const item of finalConfig.instructions || []) {\n await processContentItem(item, instructionSection, 'instruction', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Process content\n for (const item of finalConfig.content || []) {\n await processContentItem(item, contentSection, 'content', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Process context\n for (const item of finalConfig.context || []) {\n await processContentItem(item, contextSection, 'context', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Build and return prompt\n return createPrompt({\n persona: personaSection,\n instructions: instructionSection,\n contents: contentSection,\n contexts: contextSection\n });\n};\n\n// ===== CONTENT PROCESSING =====\n\ninterface ProcessingContext {\n basePath: string;\n parser: any;\n override: any;\n loader: any;\n parameters: any;\n logger: any;\n}\n\nconst processContentItem = async <T extends Weighted>(\n item: ContentItem,\n section: Section<T>,\n type: 'persona' | 'instruction' | 'content' | 'context',\n ctx: ProcessingContext\n): Promise<void> => {\n const sectionOptions: SectionOptions = {\n parameters: ctx.parameters,\n };\n\n if (typeof item === 'string') {\n // Simple string content\n const parsedSection = ctx.parser.parse(item, sectionOptions);\n section.add(parsedSection);\n } else if ('content' in item) {\n // Inline content with options\n const parsedSection = ctx.parser.parse(item.content, {\n ...sectionOptions,\n title: item.title,\n weight: item.weight,\n });\n section.add(parsedSection);\n } else if ('path' in item) {\n // File path\n const fullPath = path.join(ctx.basePath, item.path);\n const parsedSection = await ctx.parser.parseFile(fullPath, {\n ...sectionOptions,\n title: item.title,\n weight: item.weight,\n });\n const overrideSection = await ctx.override.customize(item.path, parsedSection, sectionOptions);\n section.add(overrideSection);\n } else if ('directories' in item) {\n // Directory loading\n const sections = await ctx.loader.load(item.directories, {\n ...sectionOptions,\n title: item.title,\n weight: item.weight,\n });\n section.add(sections);\n }\n};\n\n// ===== FLUENT RECIPE BUILDER =====\n\nexport const recipe = (basePath: string) => ({\n template: (name: string) => ({\n with: (config: Partial<RecipeConfig>) =>\n cook({ basePath, template: name, ...config }),\n }),\n\n persona: (persona: ContentItem) => ({\n instructions: (...instructions: ContentItem[]) => ({\n content: (...content: ContentItem[]) => ({\n context: (...context: ContentItem[]) => ({\n cook: () => cook({ basePath, persona, instructions, content, context }),\n }),\n cook: () => cook({ basePath, persona, instructions, content }),\n }),\n cook: () => cook({ basePath, persona, instructions }),\n }),\n cook: () => cook({ basePath, persona }),\n }),\n\n cook: (config: Partial<RecipeConfig>) => cook({ basePath, ...config }),\n});\n\n// Export types for external use\nexport type { RecipeConfig, ContentItem }; "],"names":["ContentItemSchema","z","union","string","object","content","title","optional","weight","number","path","directories","array","RecipeConfigSchema","basePath","logger","any","default","DEFAULT_LOGGER","overridePaths","overrides","boolean","parameters","ParametersSchema","persona","instructions","context","extends","template","TEMPLATES","registerTemplates","templates","getTemplates","clearTemplates","cook","config","validatedConfig","parse","finalConfig","wrapLogger","parser","Parser","override","Override","configDirs","loader","Loader","personaSection","createSection","instructionSection","contentSection","contextSection","processContentItem","item","createPrompt","contents","contexts","section","type","ctx","sectionOptions","parsedSection","add","fullPath","join","parseFile","overrideSection","customize","sections","load","recipe","name","with"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipes.js","sources":["../src/recipes.ts"],"sourcesContent":["import path from \"path\";\nimport { z } from \"zod\";\nimport { ParametersSchema } from \"./items/parameters\";\nimport { SectionOptions } from \"./items/section\";\nimport { DEFAULT_LOGGER, wrapLogger } from \"./logger\";\nimport { Content, Context, createPrompt, createSection, Instruction, Loader, Override, Parser, Prompt, Section, Weighted } from \"./riotprompt\";\n\n// ===== CONFIGURATION SCHEMAS =====\n\nconst ContentItemSchema = z.union([\n z.string(), // Simple string content\n z.object({\n content: z.string(),\n title: z.string().optional(),\n weight: z.number().optional(),\n }),\n z.object({\n path: z.string(),\n title: z.string().optional(),\n weight: z.number().optional(),\n }),\n z.object({\n directories: z.array(z.string()),\n title: z.string().optional(),\n weight: z.number().optional(),\n })\n]);\n\nconst RecipeConfigSchema = z.object({\n // Core settings\n basePath: z.string(),\n logger: z.any().optional().default(DEFAULT_LOGGER),\n overridePaths: z.array(z.string()).optional().default([\"./\"]),\n overrides: z.boolean().optional().default(false),\n parameters: ParametersSchema.optional().default({}),\n\n // Content sections\n persona: ContentItemSchema.optional(),\n instructions: z.array(ContentItemSchema).optional().default([]),\n content: z.array(ContentItemSchema).optional().default([]),\n context: z.array(ContentItemSchema).optional().default([]),\n\n // Templates and inheritance\n extends: z.string().optional(), // Extend another recipe\n template: z.string().optional(), // Generic template name\n});\n\ntype RecipeConfig = z.infer<typeof RecipeConfigSchema>;\ntype ContentItem = z.infer<typeof ContentItemSchema>;\n\n// ===== CONFIGURABLE TEMPLATE SYSTEM =====\n\nexport interface TemplateConfig {\n persona?: ContentItem;\n instructions?: ContentItem[];\n content?: ContentItem[];\n context?: ContentItem[];\n}\n\n// User-customizable template registry\nlet TEMPLATES: Record<string, TemplateConfig> = {};\n\n/**\n * Register custom templates with the recipes system\n * \n * @example\n * ```typescript\n * // Register your own templates\n * registerTemplates({\n * myWorkflow: {\n * persona: { path: \"personas/my-persona.md\" },\n * instructions: [{ path: \"instructions/my-instructions.md\" }]\n * },\n * anotherTemplate: {\n * persona: { content: \"You are a helpful assistant\" },\n * instructions: [{ content: \"Follow these steps...\" }]\n * }\n * });\n * ```\n */\nexport const registerTemplates = (templates: Record<string, TemplateConfig>): void => {\n TEMPLATES = { ...TEMPLATES, ...templates };\n};\n\n/**\n * Get currently registered templates\n */\nexport const getTemplates = (): Record<string, TemplateConfig> => ({ ...TEMPLATES });\n\n/**\n * Clear all registered templates\n */\nexport const clearTemplates = (): void => {\n TEMPLATES = {};\n};\n\n// ===== CORE RECIPE ENGINE =====\n\nexport const cook = async (config: Partial<RecipeConfig> & { basePath: string }): Promise<Prompt> => {\n // Parse and validate configuration with defaults\n const validatedConfig = RecipeConfigSchema.parse({\n overridePaths: [\"./\"],\n overrides: false,\n parameters: {},\n instructions: [],\n content: [],\n context: [],\n ...config\n });\n\n // Handle template inheritance\n let finalConfig = { ...validatedConfig };\n if (validatedConfig.template) {\n const template = TEMPLATES[validatedConfig.template];\n if (template) {\n finalConfig = {\n ...validatedConfig,\n persona: validatedConfig.persona || template.persona,\n instructions: [\n ...(template.instructions || []),\n ...(validatedConfig.instructions || [])\n ],\n content: [\n ...(template.content || []),\n ...(validatedConfig.content || [])\n ],\n context: [\n ...(template.context || []),\n ...(validatedConfig.context || [])\n ],\n };\n }\n }\n\n // Setup internal services\n const logger = wrapLogger(finalConfig.logger, 'Recipe');\n const parser = Parser.create({ logger });\n const override = Override.create({\n logger,\n configDirs: finalConfig.overridePaths || [\"./\"],\n overrides: finalConfig.overrides || false\n });\n const loader = Loader.create({ logger });\n\n // Create sections\n const personaSection: Section<Instruction> = createSection({ title: \"Persona\" });\n const instructionSection: Section<Instruction> = createSection({ title: \"Instruction\" });\n const contentSection: Section<Content> = createSection({ title: \"Content\" });\n const contextSection: Section<Context> = createSection({ title: \"Context\" });\n\n // Process persona\n if (finalConfig.persona) {\n await processContentItem(finalConfig.persona, personaSection, 'persona', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Process instructions\n for (const item of finalConfig.instructions || []) {\n await processContentItem(item, instructionSection, 'instruction', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Process content\n // eslint-disable-next-line no-console\n for (const item of finalConfig.content || []) {\n // eslint-disable-next-line no-console\n console.log('Processing content item:', JSON.stringify(item, null, 2));\n await processContentItem(item, contentSection, 'content', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Process context\n for (const item of finalConfig.context || []) {\n await processContentItem(item, contextSection, 'context', {\n basePath: finalConfig.basePath,\n parser,\n override,\n loader,\n parameters: finalConfig.parameters,\n logger\n });\n }\n\n // Build and return prompt\n return createPrompt({\n persona: personaSection,\n instructions: instructionSection,\n contents: contentSection,\n contexts: contextSection\n });\n};\n\n// ===== CONTENT PROCESSING =====\n\ninterface ProcessingContext {\n basePath: string;\n parser: any;\n override: any;\n loader: any;\n parameters: any;\n logger: any;\n}\n\nconst processContentItem = async <T extends Weighted>(\n item: ContentItem,\n section: Section<T>,\n type: 'persona' | 'instruction' | 'content' | 'context',\n ctx: ProcessingContext\n): Promise<void> => {\n const sectionOptions: SectionOptions = {\n parameters: ctx.parameters,\n };\n\n if (typeof item === 'string') {\n // Simple string content\n const parsedSection = await ctx.parser.parse(item, sectionOptions);\n section.add(parsedSection);\n } else if ('content' in item) {\n // Inline content with options\n const parsedSection = await ctx.parser.parse(item.content, {\n ...sectionOptions,\n title: item.title,\n weight: item.weight,\n });\n section.add(parsedSection);\n } else if ('path' in item) {\n // File path\n const fullPath = path.join(ctx.basePath, item.path);\n const parsedSection = await ctx.parser.parseFile(fullPath, {\n ...sectionOptions,\n title: item.title,\n weight: item.weight,\n });\n const overrideSection = await ctx.override.customize(item.path, parsedSection, sectionOptions);\n section.add(overrideSection);\n } else if ('directories' in item) {\n // Directory loading\n const sections = await ctx.loader.load(item.directories, {\n ...sectionOptions,\n title: item.title,\n weight: item.weight,\n });\n section.add(sections);\n }\n};\n\n// ===== FLUENT RECIPE BUILDER =====\n\nexport const recipe = (basePath: string) => {\n const config: Partial<RecipeConfig> & { basePath: string } = { basePath };\n\n const builder = {\n template: (name: string) => {\n config.template = name;\n return builder;\n },\n with: (partialConfig: Partial<RecipeConfig>) => {\n Object.assign(config, partialConfig);\n return builder;\n },\n persona: (persona: ContentItem) => {\n config.persona = persona;\n return builder;\n },\n instructions: (...instructions: ContentItem[]) => {\n config.instructions = [...(config.instructions || []), ...instructions];\n return builder;\n },\n content: (...content: ContentItem[]) => {\n config.content = [...(config.content || []), ...content];\n return builder;\n },\n context: (...context: ContentItem[]) => {\n config.context = [...(config.context || []), ...context];\n return builder;\n },\n parameters: (parameters: any) => {\n config.parameters = { ...config.parameters, ...parameters };\n return builder;\n },\n overrides: (enabled: boolean) => {\n config.overrides = enabled;\n return builder;\n },\n overridePaths: (paths: string[]) => {\n config.overridePaths = paths;\n return builder;\n },\n cook: () => cook(config),\n };\n\n return builder;\n};\n\n// Export types for external use\nexport type { RecipeConfig, ContentItem }; "],"names":["ContentItemSchema","z","union","string","object","content","title","optional","weight","number","path","directories","array","RecipeConfigSchema","basePath","logger","any","default","DEFAULT_LOGGER","overridePaths","overrides","boolean","parameters","ParametersSchema","persona","instructions","context","extends","template","TEMPLATES","registerTemplates","templates","getTemplates","clearTemplates","cook","config","validatedConfig","parse","finalConfig","wrapLogger","parser","Parser","override","Override","configDirs","loader","Loader","personaSection","createSection","instructionSection","contentSection","contextSection","processContentItem","item","console","log","JSON","stringify","createPrompt","contents","contexts","section","type","ctx","sectionOptions","parsedSection","add","fullPath","join","parseFile","overrideSection","customize","sections","load","recipe","builder","name","with","partialConfig","Object","assign","enabled","paths"],"mappings":"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"}
|
package/dist/riotprompt.cjs
CHANGED
|
@@ -201,6 +201,16 @@ const create$8 = (options = {})=>{
|
|
|
201
201
|
};
|
|
202
202
|
return append(item, itemOptions);
|
|
203
203
|
};
|
|
204
|
+
const toJSON = ()=>{
|
|
205
|
+
return {
|
|
206
|
+
title: section.title,
|
|
207
|
+
items: items.map((item)=>{
|
|
208
|
+
// If the item has a toJSON method, call it, otherwise return the item itself
|
|
209
|
+
return typeof item === 'object' && item !== null && 'toJSON' in item && typeof item.toJSON === 'function' ? item.toJSON() : item;
|
|
210
|
+
}),
|
|
211
|
+
weight: section.weight
|
|
212
|
+
};
|
|
213
|
+
};
|
|
204
214
|
const section = {
|
|
205
215
|
title: sectionOptions.title,
|
|
206
216
|
items,
|
|
@@ -210,7 +220,8 @@ const create$8 = (options = {})=>{
|
|
|
210
220
|
prepend,
|
|
211
221
|
insert,
|
|
212
222
|
remove,
|
|
213
|
-
replace
|
|
223
|
+
replace,
|
|
224
|
+
toJSON
|
|
214
225
|
};
|
|
215
226
|
return section;
|
|
216
227
|
};
|
|
@@ -1523,7 +1534,10 @@ const cook = async (config)=>{
|
|
|
1523
1534
|
parameters: finalConfig.parameters});
|
|
1524
1535
|
}
|
|
1525
1536
|
// Process content
|
|
1537
|
+
// eslint-disable-next-line no-console
|
|
1526
1538
|
for (const item of finalConfig.content || []){
|
|
1539
|
+
// eslint-disable-next-line no-console
|
|
1540
|
+
console.log('Processing content item:', JSON.stringify(item, null, 2));
|
|
1527
1541
|
await processContentItem(item, contentSection, 'content', {
|
|
1528
1542
|
basePath: finalConfig.basePath,
|
|
1529
1543
|
parser: parser$1,
|
|
@@ -1554,11 +1568,11 @@ const processContentItem = async (item, section, type, ctx)=>{
|
|
|
1554
1568
|
};
|
|
1555
1569
|
if (typeof item === 'string') {
|
|
1556
1570
|
// Simple string content
|
|
1557
|
-
const parsedSection = ctx.parser.parse(item, sectionOptions);
|
|
1571
|
+
const parsedSection = await ctx.parser.parse(item, sectionOptions);
|
|
1558
1572
|
section.add(parsedSection);
|
|
1559
1573
|
} else if ('content' in item) {
|
|
1560
1574
|
// Inline content with options
|
|
1561
|
-
const parsedSection = ctx.parser.parse(item.content, {
|
|
1575
|
+
const parsedSection = await ctx.parser.parse(item.content, {
|
|
1562
1576
|
...sectionOptions,
|
|
1563
1577
|
title: item.title,
|
|
1564
1578
|
weight: item.weight
|
|
@@ -1585,49 +1599,63 @@ const processContentItem = async (item, section, type, ctx)=>{
|
|
|
1585
1599
|
}
|
|
1586
1600
|
};
|
|
1587
1601
|
// ===== FLUENT RECIPE BUILDER =====
|
|
1588
|
-
const recipe = (basePath)=>
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1612
|
-
|
|
1613
|
-
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
...config
|
|
1629
|
-
|
|
1630
|
-
|
|
1602
|
+
const recipe = (basePath)=>{
|
|
1603
|
+
const config = {
|
|
1604
|
+
basePath
|
|
1605
|
+
};
|
|
1606
|
+
const builder = {
|
|
1607
|
+
template: (name)=>{
|
|
1608
|
+
config.template = name;
|
|
1609
|
+
return builder;
|
|
1610
|
+
},
|
|
1611
|
+
with: (partialConfig)=>{
|
|
1612
|
+
Object.assign(config, partialConfig);
|
|
1613
|
+
return builder;
|
|
1614
|
+
},
|
|
1615
|
+
persona: (persona)=>{
|
|
1616
|
+
config.persona = persona;
|
|
1617
|
+
return builder;
|
|
1618
|
+
},
|
|
1619
|
+
instructions: (...instructions)=>{
|
|
1620
|
+
config.instructions = [
|
|
1621
|
+
...config.instructions || [],
|
|
1622
|
+
...instructions
|
|
1623
|
+
];
|
|
1624
|
+
return builder;
|
|
1625
|
+
},
|
|
1626
|
+
content: (...content)=>{
|
|
1627
|
+
config.content = [
|
|
1628
|
+
...config.content || [],
|
|
1629
|
+
...content
|
|
1630
|
+
];
|
|
1631
|
+
return builder;
|
|
1632
|
+
},
|
|
1633
|
+
context: (...context)=>{
|
|
1634
|
+
config.context = [
|
|
1635
|
+
...config.context || [],
|
|
1636
|
+
...context
|
|
1637
|
+
];
|
|
1638
|
+
return builder;
|
|
1639
|
+
},
|
|
1640
|
+
parameters: (parameters)=>{
|
|
1641
|
+
config.parameters = {
|
|
1642
|
+
...config.parameters,
|
|
1643
|
+
...parameters
|
|
1644
|
+
};
|
|
1645
|
+
return builder;
|
|
1646
|
+
},
|
|
1647
|
+
overrides: (enabled)=>{
|
|
1648
|
+
config.overrides = enabled;
|
|
1649
|
+
return builder;
|
|
1650
|
+
},
|
|
1651
|
+
overridePaths: (paths)=>{
|
|
1652
|
+
config.overridePaths = paths;
|
|
1653
|
+
return builder;
|
|
1654
|
+
},
|
|
1655
|
+
cook: ()=>cook(config)
|
|
1656
|
+
};
|
|
1657
|
+
return builder;
|
|
1658
|
+
};
|
|
1631
1659
|
|
|
1632
1660
|
const recipes = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({
|
|
1633
1661
|
__proto__: null,
|