@goreal-ai/echo-pdk 0.3.1 → 0.4.0
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/context/index.d.ts +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +2 -0
- package/dist/context/index.js.map +1 -1
- package/dist/context/plp-resolver.d.ts +70 -0
- package/dist/context/plp-resolver.d.ts.map +1 -0
- package/dist/context/plp-resolver.js +204 -0
- package/dist/context/plp-resolver.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -4
- package/dist/index.js.map +1 -1
- package/dist/renderer/renderer.d.ts +24 -1
- package/dist/renderer/renderer.d.ts.map +1 -1
- package/dist/renderer/renderer.js +139 -0
- package/dist/renderer/renderer.js.map +1 -1
- package/dist/types.d.ts +77 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/context/index.d.ts
CHANGED
|
@@ -4,4 +4,5 @@
|
|
|
4
4
|
* This module provides utilities for resolving #context() references.
|
|
5
5
|
*/
|
|
6
6
|
export { type ContextResolver, type ContextResolveResult, type ContextBatchResult, isPlpReference, extractAssetId, validateContextPath, collectContextPaths, applyResolvedContext, MockContextResolver, } from './resolver.js';
|
|
7
|
+
export { type PlpResolverConfig, PlpContextResolver, createPlpResolver, } from './plp-resolver.js';
|
|
7
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAGvB,cAAc,EACd,cAAc,EACd,mBAAmB,EAGnB,mBAAmB,EACnB,oBAAoB,EAGpB,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EAGvB,cAAc,EACd,cAAc,EACd,mBAAmB,EAGnB,mBAAmB,EACnB,oBAAoB,EAGpB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,KAAK,iBAAiB,EACtB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
|
package/dist/context/index.js
CHANGED
|
@@ -10,4 +10,6 @@ isPlpReference, extractAssetId, validateContextPath,
|
|
|
10
10
|
collectContextPaths, applyResolvedContext,
|
|
11
11
|
// Mock Resolver
|
|
12
12
|
MockContextResolver, } from './resolver.js';
|
|
13
|
+
// PLP Resolver - Built-in resolver using PLP protocol
|
|
14
|
+
export { PlpContextResolver, createPlpResolver, } from './plp-resolver.js';
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AAML,aAAa;AACb,cAAc,EACd,cAAc,EACd,mBAAmB;AAEnB,cAAc;AACd,mBAAmB,EACnB,oBAAoB;AAEpB,gBAAgB;AAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO;AAML,aAAa;AACb,cAAc,EACd,cAAc,EACd,mBAAmB;AAEnB,cAAc;AACd,mBAAmB,EACnB,oBAAoB;AAEpB,gBAAgB;AAChB,mBAAmB,GACpB,MAAM,eAAe,CAAC;AAEvB,sDAAsD;AACtD,OAAO,EAEL,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview PLP Context Resolver - Built-in resolver using PLP SDK
|
|
3
|
+
*
|
|
4
|
+
* This resolver fetches context from any PLP-compliant server.
|
|
5
|
+
* It uses the @goreal-ai/plp-client SDK internally.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const echo = createEcho({
|
|
10
|
+
* plp: {
|
|
11
|
+
* serverUrl: 'https://api.echostash.com',
|
|
12
|
+
* auth: userToken, // or API key
|
|
13
|
+
* }
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* // Now #context(plp://asset-id) will automatically fetch from the PLP server
|
|
17
|
+
* const output = await echo.render(template, variables);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import type { ContextResolver, ContextResolveResult, ContextBatchResult } from './resolver.js';
|
|
21
|
+
/**
|
|
22
|
+
* PLP resolver configuration.
|
|
23
|
+
*/
|
|
24
|
+
export interface PlpResolverConfig {
|
|
25
|
+
/** The PLP server URL (e.g., 'https://api.echostash.com') */
|
|
26
|
+
serverUrl: string;
|
|
27
|
+
/** Authentication token or API key */
|
|
28
|
+
auth: string;
|
|
29
|
+
/** Optional: prompt ID for resolving context mappings */
|
|
30
|
+
promptId?: number | string;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Built-in PLP context resolver.
|
|
34
|
+
*
|
|
35
|
+
* Fetches context from a PLP-compliant server using the standard endpoints:
|
|
36
|
+
* - GET /api/v1/context-store/{assetId} - for plp:// references
|
|
37
|
+
* - POST /api/v1/prompts/{promptId}/context/_resolve - for prompt context mappings
|
|
38
|
+
*/
|
|
39
|
+
export declare class PlpContextResolver implements ContextResolver {
|
|
40
|
+
private config;
|
|
41
|
+
constructor(config: PlpResolverConfig);
|
|
42
|
+
/**
|
|
43
|
+
* Resolve a single context reference.
|
|
44
|
+
*/
|
|
45
|
+
resolve(path: string): Promise<ContextResolveResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Resolve multiple context references in batch.
|
|
48
|
+
*/
|
|
49
|
+
resolveBatch(paths: string[]): Promise<ContextBatchResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Fetch from Context Store: GET /api/v1/context-store/{assetId}
|
|
52
|
+
*/
|
|
53
|
+
private resolveFromContextStore;
|
|
54
|
+
/**
|
|
55
|
+
* Resolve a single prompt context name.
|
|
56
|
+
*/
|
|
57
|
+
private resolveFromPromptContext;
|
|
58
|
+
/**
|
|
59
|
+
* Batch resolve prompt context: POST /api/v1/prompts/{promptId}/context/_resolve
|
|
60
|
+
*/
|
|
61
|
+
private resolvePromptContextBatch;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Create a PLP context resolver.
|
|
65
|
+
*
|
|
66
|
+
* @param config - PLP resolver configuration
|
|
67
|
+
* @returns A configured PLP context resolver
|
|
68
|
+
*/
|
|
69
|
+
export declare function createPlpResolver(config: PlpResolverConfig): PlpContextResolver;
|
|
70
|
+
//# sourceMappingURL=plp-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plp-resolver.d.ts","sourceRoot":"","sources":["../../src/context/plp-resolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAQ/F;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC5B;AAwBD;;;;;;GAMG;AACH,qBAAa,kBAAmB,YAAW,eAAe;IACxD,OAAO,CAAC,MAAM,CAAoB;gBAEtB,MAAM,EAAE,iBAAiB;IAIrC;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA6B1D;;OAEG;IACG,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAuChE;;OAEG;YACW,uBAAuB;IAgCrC;;OAEG;YACW,wBAAwB;IAKtC;;OAEG;YACW,yBAAyB;CAmDxC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,kBAAkB,CAE/E"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview PLP Context Resolver - Built-in resolver using PLP SDK
|
|
3
|
+
*
|
|
4
|
+
* This resolver fetches context from any PLP-compliant server.
|
|
5
|
+
* It uses the @goreal-ai/plp-client SDK internally.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const echo = createEcho({
|
|
10
|
+
* plp: {
|
|
11
|
+
* serverUrl: 'https://api.echostash.com',
|
|
12
|
+
* auth: userToken, // or API key
|
|
13
|
+
* }
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* // Now #context(plp://asset-id) will automatically fetch from the PLP server
|
|
17
|
+
* const output = await echo.render(template, variables);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
import { isPlpReference, extractAssetId, validateContextPath } from './resolver.js';
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// PLP CONTEXT RESOLVER
|
|
23
|
+
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Built-in PLP context resolver.
|
|
26
|
+
*
|
|
27
|
+
* Fetches context from a PLP-compliant server using the standard endpoints:
|
|
28
|
+
* - GET /api/v1/context-store/{assetId} - for plp:// references
|
|
29
|
+
* - POST /api/v1/prompts/{promptId}/context/_resolve - for prompt context mappings
|
|
30
|
+
*/
|
|
31
|
+
export class PlpContextResolver {
|
|
32
|
+
config;
|
|
33
|
+
constructor(config) {
|
|
34
|
+
this.config = config;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve a single context reference.
|
|
38
|
+
*/
|
|
39
|
+
async resolve(path) {
|
|
40
|
+
// Validate the path first
|
|
41
|
+
const validation = validateContextPath(path);
|
|
42
|
+
if (!validation.isValid) {
|
|
43
|
+
return { success: false, error: validation.error };
|
|
44
|
+
}
|
|
45
|
+
try {
|
|
46
|
+
if (isPlpReference(path)) {
|
|
47
|
+
// Direct Context Store reference: plp://asset-id
|
|
48
|
+
return await this.resolveFromContextStore(extractAssetId(path));
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
// Prompt context mapping: requires promptId
|
|
52
|
+
if (!this.config.promptId) {
|
|
53
|
+
return {
|
|
54
|
+
success: false,
|
|
55
|
+
error: `Context name "${path}" requires a promptId to resolve. Use plp:// prefix for direct asset references.`,
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
return await this.resolveFromPromptContext(path);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
error: error instanceof Error ? error.message : String(error),
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Resolve multiple context references in batch.
|
|
70
|
+
*/
|
|
71
|
+
async resolveBatch(paths) {
|
|
72
|
+
const results = new Map();
|
|
73
|
+
// Separate plp:// references from prompt context names
|
|
74
|
+
const plpRefs = [];
|
|
75
|
+
const contextNames = [];
|
|
76
|
+
for (const path of paths) {
|
|
77
|
+
if (isPlpReference(path)) {
|
|
78
|
+
plpRefs.push(path);
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
contextNames.push(path);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
// Resolve plp:// references individually (no batch endpoint)
|
|
85
|
+
for (const path of plpRefs) {
|
|
86
|
+
results.set(path, await this.resolve(path));
|
|
87
|
+
}
|
|
88
|
+
// Resolve prompt context names in batch if we have a promptId
|
|
89
|
+
if (contextNames.length > 0 && this.config.promptId) {
|
|
90
|
+
const batchResults = await this.resolvePromptContextBatch(contextNames);
|
|
91
|
+
for (const [name, result] of batchResults) {
|
|
92
|
+
results.set(name, result);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// No promptId - mark as errors
|
|
97
|
+
for (const name of contextNames) {
|
|
98
|
+
results.set(name, {
|
|
99
|
+
success: false,
|
|
100
|
+
error: `Context name "${name}" requires a promptId to resolve.`,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
return results;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Fetch from Context Store: GET /api/v1/context-store/{assetId}
|
|
108
|
+
*/
|
|
109
|
+
async resolveFromContextStore(assetId) {
|
|
110
|
+
const url = `${this.config.serverUrl}/api/v1/context-store/${encodeURIComponent(assetId)}`;
|
|
111
|
+
const response = await fetch(url, {
|
|
112
|
+
method: 'GET',
|
|
113
|
+
headers: {
|
|
114
|
+
'Authorization': `Bearer ${this.config.auth}`,
|
|
115
|
+
'Accept': 'application/json',
|
|
116
|
+
},
|
|
117
|
+
});
|
|
118
|
+
if (!response.ok) {
|
|
119
|
+
if (response.status === 404) {
|
|
120
|
+
return { success: false, error: `Asset not found: ${assetId}` };
|
|
121
|
+
}
|
|
122
|
+
if (response.status === 401 || response.status === 403) {
|
|
123
|
+
return { success: false, error: `Unauthorized to access asset: ${assetId}` };
|
|
124
|
+
}
|
|
125
|
+
return { success: false, error: `Failed to fetch asset: ${response.statusText}` };
|
|
126
|
+
}
|
|
127
|
+
const data = await response.json();
|
|
128
|
+
return {
|
|
129
|
+
success: true,
|
|
130
|
+
content: {
|
|
131
|
+
mimeType: data.mimeType,
|
|
132
|
+
dataUrl: data.dataUrl,
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Resolve a single prompt context name.
|
|
138
|
+
*/
|
|
139
|
+
async resolveFromPromptContext(contextName) {
|
|
140
|
+
const results = await this.resolvePromptContextBatch([contextName]);
|
|
141
|
+
return results.get(contextName) ?? { success: false, error: 'Unknown error' };
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Batch resolve prompt context: POST /api/v1/prompts/{promptId}/context/_resolve
|
|
145
|
+
*/
|
|
146
|
+
async resolvePromptContextBatch(contextNames) {
|
|
147
|
+
const results = new Map();
|
|
148
|
+
const url = `${this.config.serverUrl}/api/v1/prompts/${this.config.promptId}/context/_resolve`;
|
|
149
|
+
try {
|
|
150
|
+
const response = await fetch(url, {
|
|
151
|
+
method: 'POST',
|
|
152
|
+
headers: {
|
|
153
|
+
'Authorization': `Bearer ${this.config.auth}`,
|
|
154
|
+
'Content-Type': 'application/json',
|
|
155
|
+
'Accept': 'application/json',
|
|
156
|
+
},
|
|
157
|
+
body: JSON.stringify({ contextNames }),
|
|
158
|
+
});
|
|
159
|
+
if (!response.ok) {
|
|
160
|
+
const errorMsg = `Failed to resolve context: ${response.statusText}`;
|
|
161
|
+
for (const name of contextNames) {
|
|
162
|
+
results.set(name, { success: false, error: errorMsg });
|
|
163
|
+
}
|
|
164
|
+
return results;
|
|
165
|
+
}
|
|
166
|
+
const data = await response.json();
|
|
167
|
+
for (const name of contextNames) {
|
|
168
|
+
const resolved = data[name];
|
|
169
|
+
if (resolved) {
|
|
170
|
+
const content = {
|
|
171
|
+
mimeType: resolved.mimeType,
|
|
172
|
+
};
|
|
173
|
+
if (resolved.dataUrl) {
|
|
174
|
+
content.dataUrl = resolved.dataUrl;
|
|
175
|
+
}
|
|
176
|
+
if (resolved.text) {
|
|
177
|
+
content.text = resolved.text;
|
|
178
|
+
}
|
|
179
|
+
results.set(name, { success: true, content });
|
|
180
|
+
}
|
|
181
|
+
else {
|
|
182
|
+
results.set(name, { success: false, error: `Context not found: ${name}` });
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
catch (error) {
|
|
187
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
188
|
+
for (const name of contextNames) {
|
|
189
|
+
results.set(name, { success: false, error: errorMsg });
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return results;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Create a PLP context resolver.
|
|
197
|
+
*
|
|
198
|
+
* @param config - PLP resolver configuration
|
|
199
|
+
* @returns A configured PLP context resolver
|
|
200
|
+
*/
|
|
201
|
+
export function createPlpResolver(config) {
|
|
202
|
+
return new PlpContextResolver(config);
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=plp-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plp-resolver.js","sourceRoot":"","sources":["../../src/context/plp-resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -19,14 +19,14 @@
|
|
|
19
19
|
* const result = await echo.render(template, { name: 'Alice' });
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
|
-
export type { ASTNode, TextNode, VariableNode, ConditionalNode, SectionNode, ImportNode, IncludeNode, ContextNode, ConditionExpr, SourceLocation, ResolvedContextContent, EchoConfig, AIProviderConfig, ParseResult, ValidationResult, EchoError, EchoWarning, OperatorDefinition, OperatorHandler, EchoPlugin, Echo, } from './types.js';
|
|
22
|
+
export type { ASTNode, TextNode, VariableNode, ConditionalNode, SectionNode, ImportNode, IncludeNode, ContextNode, ConditionExpr, SourceLocation, ResolvedContextContent, EchoConfig, AIProviderConfig, PlpConfig, ContentBlock, TextContentBlock, ImageUrlContentBlock, MultimodalContent, ParseResult, ValidationResult, EchoError, EchoWarning, OperatorDefinition, OperatorHandler, EchoPlugin, Echo, } from './types.js';
|
|
23
23
|
import type { Echo, EchoConfig, EchoPlugin } from './types.js';
|
|
24
24
|
export { parse } from './parser/parser.js';
|
|
25
25
|
export { evaluate, resolveVariable, type ResolveVariableOptions, } from './evaluator/evaluator.js';
|
|
26
|
-
export { render, renderTemplate, formatErrors } from './renderer/renderer.js';
|
|
26
|
+
export { render, renderMultimodal, renderTemplate, formatErrors } from './renderer/renderer.js';
|
|
27
27
|
export { builtinOperators, getOperator } from './evaluator/operators.js';
|
|
28
28
|
export { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, createContextNode, collectAiJudgeConditions, visitNode, visitNodes, prettyPrint, type ASTVisitor, } from './parser/ast.js';
|
|
29
|
-
export { type ContextResolver, type ContextResolveResult, type ContextBatchResult, isPlpReference, extractAssetId, validateContextPath, collectContextPaths, applyResolvedContext, MockContextResolver, } from './context/index.js';
|
|
29
|
+
export { type ContextResolver, type ContextResolveResult, type ContextBatchResult, type PlpResolverConfig, isPlpReference, extractAssetId, validateContextPath, collectContextPaths, applyResolvedContext, MockContextResolver, PlpContextResolver, createPlpResolver, } from './context/index.js';
|
|
30
30
|
/**
|
|
31
31
|
* Creates a new Echo instance with the given configuration.
|
|
32
32
|
*
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EAEV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EAEd,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EAEV,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,eAAe,EACf,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,aAAa,EACb,cAAc,EAEd,sBAAsB,EAEtB,UAAU,EACV,gBAAgB,EAChB,SAAS,EAET,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EAEjB,WAAW,EACX,gBAAgB,EAChB,SAAS,EACT,WAAW,EAEX,kBAAkB,EAClB,eAAe,EACf,UAAU,EAEV,IAAI,GACL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EACV,IAAI,EACJ,UAAU,EAIV,UAAU,EAGX,MAAM,YAAY,CAAC;AAoBpB,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EACL,QAAQ,EACR,eAAe,EACf,KAAK,sBAAsB,GAC5B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,SAAS,EACT,UAAU,EACV,WAAW,EACX,KAAK,UAAU,GAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EAEtB,cAAc,EACd,cAAc,EACd,mBAAmB,EAEnB,mBAAmB,EACnB,oBAAoB,EAEpB,mBAAmB,EAEnB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AA8C5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,wBAAgB,UAAU,CAAC,MAAM,GAAE,UAAe,GAAG,IAAI,CAkMxD;AAqMD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAE3D;AAOD,YAAY,EACV,WAAW,EACX,UAAU,EACV,QAAQ,EACR,WAAW,EACX,aAAa,EACb,aAAa,EACb,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,SAAS,EACT,mBAAmB,EACnB,aAAa,EACb,SAAS,EACT,qBAAqB,EACrB,YAAY,EACZ,sBAAsB,EACtB,kBAAkB,GACnB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -22,14 +22,14 @@
|
|
|
22
22
|
// Import submodules
|
|
23
23
|
import { parse } from './parser/parser.js';
|
|
24
24
|
import { evaluate } from './evaluator/evaluator.js';
|
|
25
|
-
import { render, formatErrors } from './renderer/renderer.js';
|
|
25
|
+
import { render, renderMultimodal, formatErrors } from './renderer/renderer.js';
|
|
26
26
|
import { builtinOperators, getOperator } from './evaluator/operators.js';
|
|
27
27
|
import { createOpenAIProvider, withCache } from './ai-judge/index.js';
|
|
28
|
-
import { validateContextPath, collectContextPaths, applyResolvedContext, } from './context/index.js';
|
|
28
|
+
import { validateContextPath, collectContextPaths, applyResolvedContext, createPlpResolver, } from './context/index.js';
|
|
29
29
|
// Re-export utilities for advanced usage
|
|
30
30
|
export { parse } from './parser/parser.js';
|
|
31
31
|
export { evaluate, resolveVariable, } from './evaluator/evaluator.js';
|
|
32
|
-
export { render, renderTemplate, formatErrors } from './renderer/renderer.js';
|
|
32
|
+
export { render, renderMultimodal, renderTemplate, formatErrors } from './renderer/renderer.js';
|
|
33
33
|
export { builtinOperators, getOperator } from './evaluator/operators.js';
|
|
34
34
|
export { createTextNode, createVariableNode, createConditionalNode, createConditionExpr, createSectionNode, createImportNode, createIncludeNode, createContextNode, collectAiJudgeConditions, visitNode, visitNodes, prettyPrint, } from './parser/ast.js';
|
|
35
35
|
// Re-export context module
|
|
@@ -39,7 +39,9 @@ isPlpReference, extractAssetId, validateContextPath,
|
|
|
39
39
|
// AST Helpers
|
|
40
40
|
collectContextPaths, applyResolvedContext,
|
|
41
41
|
// Mock Resolver
|
|
42
|
-
MockContextResolver,
|
|
42
|
+
MockContextResolver,
|
|
43
|
+
// PLP Resolver
|
|
44
|
+
PlpContextResolver, createPlpResolver, } from './context/index.js';
|
|
43
45
|
/**
|
|
44
46
|
* Environment variable name for API key.
|
|
45
47
|
*/
|
|
@@ -146,6 +148,14 @@ export function createEcho(config = {}) {
|
|
|
146
148
|
}
|
|
147
149
|
// Set up AI Judge operator if provider is configured
|
|
148
150
|
setupAiJudgeOperator(config, operators);
|
|
151
|
+
// Set up PLP resolver if plp config is provided and no custom resolver
|
|
152
|
+
if (config.plp && !config.contextResolver) {
|
|
153
|
+
config.contextResolver = createPlpResolver({
|
|
154
|
+
serverUrl: config.plp.serverUrl,
|
|
155
|
+
auth: config.plp.auth,
|
|
156
|
+
promptId: config.plp.promptId,
|
|
157
|
+
});
|
|
158
|
+
}
|
|
149
159
|
// Loaded plugins
|
|
150
160
|
const plugins = [];
|
|
151
161
|
// The Echo instance
|
|
@@ -180,6 +190,30 @@ export function createEcho(config = {}) {
|
|
|
180
190
|
collapseNewlines: true,
|
|
181
191
|
});
|
|
182
192
|
},
|
|
193
|
+
/**
|
|
194
|
+
* Render a template to multimodal content blocks.
|
|
195
|
+
*/
|
|
196
|
+
async renderMultimodal(template, context) {
|
|
197
|
+
// Step 1: Parse
|
|
198
|
+
const parseResult = parse(template);
|
|
199
|
+
if (!parseResult.success || !parseResult.ast) {
|
|
200
|
+
const formattedErrors = formatErrors(template, parseResult.errors);
|
|
201
|
+
throw new Error(`Parse error:\n${formattedErrors}`);
|
|
202
|
+
}
|
|
203
|
+
// Step 2: Evaluate
|
|
204
|
+
const { ast: evaluatedAst } = await evaluate(parseResult.ast, context, config, operators);
|
|
205
|
+
// Step 3: Resolve context references (if resolver provided)
|
|
206
|
+
if (config.contextResolver) {
|
|
207
|
+
await resolveContextNodes(evaluatedAst, config.contextResolver);
|
|
208
|
+
}
|
|
209
|
+
// Step 4: Render to multimodal blocks
|
|
210
|
+
return renderMultimodal(evaluatedAst, {
|
|
211
|
+
context,
|
|
212
|
+
config,
|
|
213
|
+
trim: false,
|
|
214
|
+
collapseNewlines: true,
|
|
215
|
+
});
|
|
216
|
+
},
|
|
183
217
|
/**
|
|
184
218
|
* Validate a template for syntax and semantic errors.
|
|
185
219
|
*/
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* 3. For variable nodes: substitute the value from context
|
|
16
16
|
* 4. Preserve whitespace (prompts are whitespace-sensitive)
|
|
17
17
|
*/
|
|
18
|
-
import type { ASTNode, EchoConfig, OperatorDefinition } from '../types.js';
|
|
18
|
+
import type { ASTNode, EchoConfig, OperatorDefinition, MultimodalContent } from '../types.js';
|
|
19
19
|
/**
|
|
20
20
|
* Options for the renderer.
|
|
21
21
|
*/
|
|
@@ -45,6 +45,29 @@ export interface RenderOptions {
|
|
|
45
45
|
* ```
|
|
46
46
|
*/
|
|
47
47
|
export declare function render(ast: ASTNode[], options: RenderOptions): string;
|
|
48
|
+
/**
|
|
49
|
+
* Render an evaluated AST to multimodal content blocks.
|
|
50
|
+
*
|
|
51
|
+
* This produces an array of ContentBlock objects compatible with
|
|
52
|
+
* OpenAI's multimodal message format. Text is grouped together,
|
|
53
|
+
* and images are separate image_url blocks.
|
|
54
|
+
*
|
|
55
|
+
* @param ast - The evaluated AST nodes
|
|
56
|
+
* @param options - Render options
|
|
57
|
+
* @returns Array of content blocks
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```typescript
|
|
61
|
+
* const blocks = renderMultimodal(evaluatedAst, { context: {} });
|
|
62
|
+
* // Result:
|
|
63
|
+
* // [
|
|
64
|
+
* // { type: 'text', text: 'Analyze this image:' },
|
|
65
|
+
* // { type: 'image_url', image_url: { url: 'data:image/png;base64,...' } },
|
|
66
|
+
* // { type: 'text', text: 'What do you see?' }
|
|
67
|
+
* // ]
|
|
68
|
+
* ```
|
|
69
|
+
*/
|
|
70
|
+
export declare function renderMultimodal(ast: ASTNode[], options: RenderOptions): MultimodalContent;
|
|
48
71
|
/**
|
|
49
72
|
* Full render pipeline: parse -> evaluate -> render.
|
|
50
73
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,OAAO,EAIP,UAAU,EACV,kBAAkB,
|
|
1
|
+
{"version":3,"file":"renderer.d.ts","sourceRoot":"","sources":["../../src/renderer/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EACV,OAAO,EAIP,UAAU,EACV,kBAAkB,EAElB,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAQrB;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,uBAAuB;IACvB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,yBAAyB;IACzB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,mDAAmD;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,CAsBrE;AAgGD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,GAAG,iBAAiB,CAuH1F;AAiFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,GAAE,UAAe,EACvB,SAAS,GAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAa,GACrD,OAAO,CAAC,MAAM,CAAC,CAwBjB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,GACnF,MAAM,CAwBR"}
|
|
@@ -131,6 +131,145 @@ function renderContext(node, options) {
|
|
|
131
131
|
// Lenient mode: return placeholder
|
|
132
132
|
return `[CONTEXT: ${node.path}]`;
|
|
133
133
|
}
|
|
134
|
+
// =============================================================================
|
|
135
|
+
// MULTIMODAL RENDERING
|
|
136
|
+
// =============================================================================
|
|
137
|
+
/**
|
|
138
|
+
* Render an evaluated AST to multimodal content blocks.
|
|
139
|
+
*
|
|
140
|
+
* This produces an array of ContentBlock objects compatible with
|
|
141
|
+
* OpenAI's multimodal message format. Text is grouped together,
|
|
142
|
+
* and images are separate image_url blocks.
|
|
143
|
+
*
|
|
144
|
+
* @param ast - The evaluated AST nodes
|
|
145
|
+
* @param options - Render options
|
|
146
|
+
* @returns Array of content blocks
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const blocks = renderMultimodal(evaluatedAst, { context: {} });
|
|
151
|
+
* // Result:
|
|
152
|
+
* // [
|
|
153
|
+
* // { type: 'text', text: 'Analyze this image:' },
|
|
154
|
+
* // { type: 'image_url', image_url: { url: 'data:image/png;base64,...' } },
|
|
155
|
+
* // { type: 'text', text: 'What do you see?' }
|
|
156
|
+
* // ]
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
export function renderMultimodal(ast, options) {
|
|
160
|
+
const blocks = [];
|
|
161
|
+
let currentText = '';
|
|
162
|
+
/**
|
|
163
|
+
* Flush accumulated text to a text block.
|
|
164
|
+
*/
|
|
165
|
+
function flushText() {
|
|
166
|
+
if (currentText.length > 0) {
|
|
167
|
+
let text = currentText;
|
|
168
|
+
// Apply post-processing
|
|
169
|
+
if (options.collapseNewlines) {
|
|
170
|
+
text = collapseNewlines(text);
|
|
171
|
+
}
|
|
172
|
+
blocks.push({ type: 'text', text });
|
|
173
|
+
currentText = '';
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* Process a single node.
|
|
178
|
+
*/
|
|
179
|
+
function processNode(node) {
|
|
180
|
+
switch (node.type) {
|
|
181
|
+
case 'text':
|
|
182
|
+
currentText += node.value;
|
|
183
|
+
break;
|
|
184
|
+
case 'variable':
|
|
185
|
+
currentText += renderVariable(node, options);
|
|
186
|
+
break;
|
|
187
|
+
case 'conditional':
|
|
188
|
+
// By the time we render, conditionals should have been evaluated
|
|
189
|
+
for (const child of node.consequent) {
|
|
190
|
+
processNode(child);
|
|
191
|
+
}
|
|
192
|
+
break;
|
|
193
|
+
case 'section':
|
|
194
|
+
// Section definitions are not rendered inline
|
|
195
|
+
break;
|
|
196
|
+
case 'import':
|
|
197
|
+
case 'include':
|
|
198
|
+
// Should be resolved before rendering
|
|
199
|
+
if (options.config?.strict) {
|
|
200
|
+
throw new Error(`Unresolved ${node.type}: ${node.type === 'import' ? node.path : node.name}`);
|
|
201
|
+
}
|
|
202
|
+
break;
|
|
203
|
+
case 'context':
|
|
204
|
+
// Context nodes become either text (inline) or image blocks
|
|
205
|
+
if (node.resolvedContent) {
|
|
206
|
+
if (node.resolvedContent.dataUrl && isImageMimeType(node.resolvedContent.mimeType)) {
|
|
207
|
+
// Image content: flush text and add image block
|
|
208
|
+
flushText();
|
|
209
|
+
blocks.push({
|
|
210
|
+
type: 'image_url',
|
|
211
|
+
image_url: {
|
|
212
|
+
url: node.resolvedContent.dataUrl,
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
else if (node.resolvedContent.text) {
|
|
217
|
+
// Text content: append to current text
|
|
218
|
+
currentText += node.resolvedContent.text;
|
|
219
|
+
}
|
|
220
|
+
else if (node.resolvedContent.dataUrl) {
|
|
221
|
+
// Non-image data URL (rare): append as text
|
|
222
|
+
currentText += node.resolvedContent.dataUrl;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
else {
|
|
226
|
+
// Unresolved context
|
|
227
|
+
if (options.config?.strict) {
|
|
228
|
+
throw new Error(`Unresolved context: ${node.path}`);
|
|
229
|
+
}
|
|
230
|
+
currentText += `[CONTEXT: ${node.path}]`;
|
|
231
|
+
}
|
|
232
|
+
break;
|
|
233
|
+
default: {
|
|
234
|
+
// Exhaustiveness check
|
|
235
|
+
const _exhaustive = node;
|
|
236
|
+
throw new Error(`Unknown node type: ${_exhaustive.type}`);
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
// Process all nodes
|
|
241
|
+
for (const node of ast) {
|
|
242
|
+
processNode(node);
|
|
243
|
+
}
|
|
244
|
+
// Flush any remaining text
|
|
245
|
+
flushText();
|
|
246
|
+
// Apply trim to first and last text blocks if requested
|
|
247
|
+
if (options.trim && blocks.length > 0) {
|
|
248
|
+
const first = blocks[0];
|
|
249
|
+
if (first && first.type === 'text') {
|
|
250
|
+
first.text = first.text.trimStart();
|
|
251
|
+
if (first.text.length === 0) {
|
|
252
|
+
blocks.shift();
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
if (blocks.length > 0) {
|
|
256
|
+
const last = blocks[blocks.length - 1];
|
|
257
|
+
if (last && last.type === 'text') {
|
|
258
|
+
last.text = last.text.trimEnd();
|
|
259
|
+
if (last.text.length === 0) {
|
|
260
|
+
blocks.pop();
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
return blocks;
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Check if a MIME type is an image type.
|
|
269
|
+
*/
|
|
270
|
+
function isImageMimeType(mimeType) {
|
|
271
|
+
return mimeType.startsWith('image/');
|
|
272
|
+
}
|
|
134
273
|
/**
|
|
135
274
|
* Render a variable node.
|
|
136
275
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/renderer/renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../../src/renderer/renderer.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -165,6 +165,30 @@ export interface AIProviderConfig {
|
|
|
165
165
|
/** Timeout in milliseconds */
|
|
166
166
|
timeout?: number;
|
|
167
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* PLP (Prompt Library Protocol) configuration for automatic context resolution.
|
|
170
|
+
*
|
|
171
|
+
* When configured, #context() directives will automatically fetch from the PLP server.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const echo = createEcho({
|
|
176
|
+
* plp: {
|
|
177
|
+
* serverUrl: 'https://api.echostash.com',
|
|
178
|
+
* auth: userToken,
|
|
179
|
+
* promptId: 123, // Optional: for prompt-specific context mappings
|
|
180
|
+
* }
|
|
181
|
+
* });
|
|
182
|
+
* ```
|
|
183
|
+
*/
|
|
184
|
+
export interface PlpConfig {
|
|
185
|
+
/** The PLP server URL (e.g., 'https://api.echostash.com') */
|
|
186
|
+
serverUrl: string;
|
|
187
|
+
/** Authentication token or API key */
|
|
188
|
+
auth: string;
|
|
189
|
+
/** Optional: prompt ID for resolving context mappings */
|
|
190
|
+
promptId?: number | string;
|
|
191
|
+
}
|
|
168
192
|
/**
|
|
169
193
|
* Main Echo configuration object.
|
|
170
194
|
*/
|
|
@@ -173,13 +197,44 @@ export interface EchoConfig {
|
|
|
173
197
|
strict?: boolean;
|
|
174
198
|
/** AI provider configuration for #ai_judge */
|
|
175
199
|
aiProvider?: AIProviderConfig;
|
|
200
|
+
/** PLP configuration for automatic context resolution */
|
|
201
|
+
plp?: PlpConfig;
|
|
176
202
|
/** Plugin paths to load */
|
|
177
203
|
plugins?: string[];
|
|
178
204
|
/** Language definition file path */
|
|
179
205
|
languagePath?: string;
|
|
180
|
-
/** Context resolver for #context() directives */
|
|
206
|
+
/** Context resolver for #context() directives (overrides plp config if both provided) */
|
|
181
207
|
contextResolver?: import('./context/resolver.js').ContextResolver;
|
|
182
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* Text content block.
|
|
211
|
+
*/
|
|
212
|
+
export interface TextContentBlock {
|
|
213
|
+
type: 'text';
|
|
214
|
+
text: string;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Image URL content block (OpenAI-compatible format).
|
|
218
|
+
*/
|
|
219
|
+
export interface ImageUrlContentBlock {
|
|
220
|
+
type: 'image_url';
|
|
221
|
+
image_url: {
|
|
222
|
+
/** The image URL - can be a data URL (base64) or http(s) URL */
|
|
223
|
+
url: string;
|
|
224
|
+
/** Optional detail level for vision models */
|
|
225
|
+
detail?: 'auto' | 'low' | 'high';
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Union of all content block types.
|
|
230
|
+
* Compatible with OpenAI's multimodal message format.
|
|
231
|
+
*/
|
|
232
|
+
export type ContentBlock = TextContentBlock | ImageUrlContentBlock;
|
|
233
|
+
/**
|
|
234
|
+
* Multimodal render result.
|
|
235
|
+
* An array of content blocks that can be passed directly to LLM APIs.
|
|
236
|
+
*/
|
|
237
|
+
export type MultimodalContent = ContentBlock[];
|
|
183
238
|
/**
|
|
184
239
|
* Result of parsing a template.
|
|
185
240
|
*/
|
|
@@ -258,6 +313,27 @@ export interface Echo {
|
|
|
258
313
|
* @returns The rendered string
|
|
259
314
|
*/
|
|
260
315
|
render(template: string, context: Record<string, unknown>): Promise<string>;
|
|
316
|
+
/**
|
|
317
|
+
* Render a template with the given context to multimodal content blocks.
|
|
318
|
+
*
|
|
319
|
+
* Returns an array of ContentBlock objects compatible with OpenAI's
|
|
320
|
+
* multimodal message format. Images from #context() become image_url blocks.
|
|
321
|
+
*
|
|
322
|
+
* @param template - The Echo template string
|
|
323
|
+
* @param context - Variables to substitute
|
|
324
|
+
* @returns Array of content blocks (text and image_url)
|
|
325
|
+
*
|
|
326
|
+
* @example
|
|
327
|
+
* ```typescript
|
|
328
|
+
* const blocks = await echo.renderMultimodal(template, { name: 'Alice' });
|
|
329
|
+
* // Result:
|
|
330
|
+
* // [
|
|
331
|
+
* // { type: 'text', text: 'Hello Alice, analyze this:' },
|
|
332
|
+
* // { type: 'image_url', image_url: { url: 'data:image/png;base64,...' } }
|
|
333
|
+
* // ]
|
|
334
|
+
* ```
|
|
335
|
+
*/
|
|
336
|
+
renderMultimodal(template: string, context: Record<string, unknown>): Promise<MultimodalContent>;
|
|
261
337
|
/**
|
|
262
338
|
* Validate a template for syntax and semantic errors.
|
|
263
339
|
* @param template - The Echo template string
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|