@goreal-ai/echo-pdk 0.6.0 → 0.8.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/README.md +1 -1
- package/dist/ai-judge/index.d.ts +11 -21
- package/dist/ai-judge/index.d.ts.map +1 -1
- package/dist/ai-judge/index.js +36 -90
- package/dist/ai-judge/index.js.map +1 -1
- package/dist/embeddings/cosine.d.ts +15 -0
- package/dist/embeddings/cosine.d.ts.map +1 -0
- package/dist/embeddings/cosine.js +37 -0
- package/dist/embeddings/cosine.js.map +1 -0
- package/dist/embeddings/index.d.ts +9 -0
- package/dist/embeddings/index.d.ts.map +1 -0
- package/dist/embeddings/index.js +11 -0
- package/dist/embeddings/index.js.map +1 -0
- package/dist/embeddings/openai.d.ts +11 -0
- package/dist/embeddings/openai.d.ts.map +1 -0
- package/dist/embeddings/openai.js +38 -0
- package/dist/embeddings/openai.js.map +1 -0
- package/dist/embeddings/registry.d.ts +13 -0
- package/dist/embeddings/registry.d.ts.map +1 -0
- package/dist/embeddings/registry.js +29 -0
- package/dist/embeddings/registry.js.map +1 -0
- package/dist/embeddings/types.d.ts +35 -0
- package/dist/embeddings/types.d.ts.map +1 -0
- package/dist/embeddings/types.js +8 -0
- package/dist/embeddings/types.js.map +1 -0
- package/dist/embeddings/voyage.d.ts +12 -0
- package/dist/embeddings/voyage.d.ts.map +1 -0
- package/dist/embeddings/voyage.js +39 -0
- package/dist/embeddings/voyage.js.map +1 -0
- package/dist/eval/assertions.d.ts +35 -0
- package/dist/eval/assertions.d.ts.map +1 -0
- package/dist/eval/assertions.js +349 -0
- package/dist/eval/assertions.js.map +1 -0
- package/dist/eval/dataset.d.ts +42 -0
- package/dist/eval/dataset.d.ts.map +1 -0
- package/dist/eval/dataset.js +101 -0
- package/dist/eval/dataset.js.map +1 -0
- package/dist/eval/index.d.ts +14 -0
- package/dist/eval/index.d.ts.map +1 -0
- package/dist/eval/index.js +17 -0
- package/dist/eval/index.js.map +1 -0
- package/dist/eval/loader.d.ts +30 -0
- package/dist/eval/loader.d.ts.map +1 -0
- package/dist/eval/loader.js +170 -0
- package/dist/eval/loader.js.map +1 -0
- package/dist/eval/reporter.d.ts +26 -0
- package/dist/eval/reporter.d.ts.map +1 -0
- package/dist/eval/reporter.js +164 -0
- package/dist/eval/reporter.js.map +1 -0
- package/dist/eval/runner.d.ts +28 -0
- package/dist/eval/runner.d.ts.map +1 -0
- package/dist/eval/runner.js +232 -0
- package/dist/eval/runner.js.map +1 -0
- package/dist/eval/types.d.ts +257 -0
- package/dist/eval/types.d.ts.map +1 -0
- package/dist/eval/types.js +11 -0
- package/dist/eval/types.js.map +1 -0
- package/dist/evaluator/evaluator.d.ts +2 -2
- package/dist/evaluator/evaluator.js +5 -5
- package/dist/evaluator/evaluator.js.map +1 -1
- package/dist/evaluator/index.d.ts +1 -1
- package/dist/evaluator/index.d.ts.map +1 -1
- package/dist/evaluator/index.js +1 -1
- package/dist/evaluator/index.js.map +1 -1
- package/dist/evaluator/operators.d.ts +9 -5
- package/dist/evaluator/operators.d.ts.map +1 -1
- package/dist/evaluator/operators.js +26 -33
- package/dist/evaluator/operators.js.map +1 -1
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -20
- package/dist/index.js.map +1 -1
- package/dist/parser/ast.js +1 -1
- package/dist/parser/ast.js.map +1 -1
- package/dist/parser/lexer.d.ts +1 -1
- package/dist/parser/lexer.js +1 -1
- package/dist/project/index.d.ts.map +1 -1
- package/dist/project/index.js +10 -3
- package/dist/project/index.js.map +1 -1
- package/dist/project/types.d.ts +19 -4
- package/dist/project/types.d.ts.map +1 -1
- package/dist/project/types.js +3 -0
- package/dist/project/types.js.map +1 -1
- package/dist/providers/anthropic.d.ts +18 -0
- package/dist/providers/anthropic.d.ts.map +1 -0
- package/dist/providers/anthropic.js +123 -0
- package/dist/providers/anthropic.js.map +1 -0
- package/dist/providers/base.d.ts +45 -0
- package/dist/providers/base.d.ts.map +1 -0
- package/dist/providers/base.js +107 -0
- package/dist/providers/base.js.map +1 -0
- package/dist/providers/index.d.ts +14 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +16 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/openai.d.ts +18 -0
- package/dist/providers/openai.d.ts.map +1 -0
- package/dist/providers/openai.js +106 -0
- package/dist/providers/openai.js.map +1 -0
- package/dist/providers/registry.d.ts +80 -0
- package/dist/providers/registry.d.ts.map +1 -0
- package/dist/providers/registry.js +118 -0
- package/dist/providers/registry.js.map +1 -0
- package/dist/providers/run-prompt.d.ts +69 -0
- package/dist/providers/run-prompt.d.ts.map +1 -0
- package/dist/providers/run-prompt.js +79 -0
- package/dist/providers/run-prompt.js.map +1 -0
- package/dist/providers/types.d.ts +123 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +9 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/types.d.ts +5 -5
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/file-utils.d.ts.map +1 -1
- package/dist/utils/file-utils.js +9 -2
- package/dist/utils/file-utils.js.map +1 -1
- package/package.json +12 -6
- package/scripts/bundle-for-graaljs.mjs +220 -0
- package/scripts/stubs/crypto.mjs +12 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Provider type definitions
|
|
3
|
+
*
|
|
4
|
+
* All types for the unified AI provider system.
|
|
5
|
+
* Providers implement AIProviderInstance to expose a consistent interface
|
|
6
|
+
* for completion, model listing, judging, and similarity.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Supported AI provider types.
|
|
10
|
+
* Adding a new provider = add to this union + implement factory.
|
|
11
|
+
*/
|
|
12
|
+
export type ProviderType = 'openai' | 'anthropic';
|
|
13
|
+
/**
|
|
14
|
+
* Provider metadata for discovery.
|
|
15
|
+
* Returned by getProviders() so frontends can build provider selectors.
|
|
16
|
+
*/
|
|
17
|
+
export interface ProviderInfo {
|
|
18
|
+
/** Provider type identifier */
|
|
19
|
+
type: ProviderType;
|
|
20
|
+
/** Human-readable name */
|
|
21
|
+
name: string;
|
|
22
|
+
/** Default API base URL */
|
|
23
|
+
baseUrl: string;
|
|
24
|
+
/** Default model for this provider */
|
|
25
|
+
defaultModel: string;
|
|
26
|
+
/** Environment variable names checked for API key (in priority order) */
|
|
27
|
+
envKeys: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Configuration needed to create a provider instance.
|
|
31
|
+
*/
|
|
32
|
+
export interface ProviderConfig {
|
|
33
|
+
/** Provider type */
|
|
34
|
+
type: ProviderType;
|
|
35
|
+
/** API key */
|
|
36
|
+
apiKey: string;
|
|
37
|
+
/** Model to use (defaults to provider's defaultModel) */
|
|
38
|
+
model?: string;
|
|
39
|
+
/** Custom base URL (overrides provider default) */
|
|
40
|
+
baseUrl?: string;
|
|
41
|
+
/** Request timeout in milliseconds (default: 30000) */
|
|
42
|
+
timeout?: number;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Model information from a live API call.
|
|
46
|
+
* Never hardcoded — always fetched from the provider.
|
|
47
|
+
*/
|
|
48
|
+
export interface ModelInfo {
|
|
49
|
+
/** Model identifier (e.g., 'gpt-4o', 'claude-sonnet-4-5-20250929') */
|
|
50
|
+
id: string;
|
|
51
|
+
/** Which provider owns this model */
|
|
52
|
+
provider: ProviderType;
|
|
53
|
+
/** Unix timestamp of model creation (if available) */
|
|
54
|
+
createdAt?: number;
|
|
55
|
+
/** Organization that owns the model */
|
|
56
|
+
ownedBy?: string;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Chat message for completion requests.
|
|
60
|
+
*/
|
|
61
|
+
export interface ChatMessage {
|
|
62
|
+
role: 'system' | 'user' | 'assistant';
|
|
63
|
+
content: string;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Response from a completion call.
|
|
67
|
+
*/
|
|
68
|
+
export interface CompletionResponse {
|
|
69
|
+
/** The response text */
|
|
70
|
+
text: string;
|
|
71
|
+
/** Token usage */
|
|
72
|
+
tokens?: {
|
|
73
|
+
prompt: number;
|
|
74
|
+
completion: number;
|
|
75
|
+
total: number;
|
|
76
|
+
};
|
|
77
|
+
/** Latency in milliseconds */
|
|
78
|
+
latencyMs: number;
|
|
79
|
+
/** Model used */
|
|
80
|
+
model: string;
|
|
81
|
+
/** Provider type */
|
|
82
|
+
provider: ProviderType;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Options for a chat completion request.
|
|
86
|
+
*/
|
|
87
|
+
export interface CompletionOptions {
|
|
88
|
+
/** Override the default model for this request */
|
|
89
|
+
model?: string;
|
|
90
|
+
/** Sampling temperature (0-2) */
|
|
91
|
+
temperature?: number;
|
|
92
|
+
/** Maximum tokens in the response */
|
|
93
|
+
maxTokens?: number;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* What each provider implements.
|
|
97
|
+
* Created by factory functions (createOpenAIProvider, createAnthropicProvider).
|
|
98
|
+
*/
|
|
99
|
+
export interface AIProviderInstance {
|
|
100
|
+
/** Provider metadata (frozen — safe to hold a reference) */
|
|
101
|
+
readonly info: ProviderInfo;
|
|
102
|
+
/**
|
|
103
|
+
* Send a chat completion request.
|
|
104
|
+
*/
|
|
105
|
+
complete(messages: ChatMessage[], options?: CompletionOptions): Promise<CompletionResponse>;
|
|
106
|
+
/**
|
|
107
|
+
* List available models from the provider API.
|
|
108
|
+
*/
|
|
109
|
+
listModels(): Promise<ModelInfo[]>;
|
|
110
|
+
/**
|
|
111
|
+
* Judge a response against a question.
|
|
112
|
+
* Returns pass/fail with reasoning.
|
|
113
|
+
*/
|
|
114
|
+
judge(response: string, question: string): Promise<{
|
|
115
|
+
pass: boolean;
|
|
116
|
+
reasoning: string;
|
|
117
|
+
}>;
|
|
118
|
+
/**
|
|
119
|
+
* Rate semantic similarity between two texts (0.0-1.0).
|
|
120
|
+
*/
|
|
121
|
+
similarity(textA: string, textB: string): Promise<number>;
|
|
122
|
+
}
|
|
123
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,WAAW,CAAC;AAElD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,IAAI,EAAE,YAAY,CAAC;IACnB,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oBAAoB;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,cAAc;IACd,MAAM,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACxB,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,qCAAqC;IACrC,QAAQ,EAAE,YAAY,CAAC;IACvB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAMD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;IACF,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,QAAQ,EAAE,YAAY,CAAC;CACxB;AAMD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kDAAkD;IAClD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAMD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,QAAQ,CACN,QAAQ,EAAE,WAAW,EAAE,EACvB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE/B;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;IAEnC;;;OAGG;IACH,KAAK,CACH,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAEjD;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC3D"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Provider type definitions
|
|
3
|
+
*
|
|
4
|
+
* All types for the unified AI provider system.
|
|
5
|
+
* Providers implement AIProviderInstance to expose a consistent interface
|
|
6
|
+
* for completion, model listing, judging, and similarity.
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/providers/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
package/dist/types.d.ts
CHANGED
|
@@ -79,11 +79,11 @@ export interface VariableNode extends BaseNode {
|
|
|
79
79
|
export interface ConditionExpr {
|
|
80
80
|
/** The variable being tested */
|
|
81
81
|
variable: string;
|
|
82
|
-
/** The operator name, e.g., 'equals', 'contains', '
|
|
82
|
+
/** The operator name, e.g., 'equals', 'contains', 'ai_gate' */
|
|
83
83
|
operator: string;
|
|
84
84
|
/** The argument to the operator (if any) */
|
|
85
85
|
argument?: string | number | string[];
|
|
86
|
-
/** Flag for optimization: true
|
|
86
|
+
/** Flag for optimization: true for `#ai_gate` (or deprecated `#ai_judge`) conditions */
|
|
87
87
|
isAiJudge: boolean;
|
|
88
88
|
}
|
|
89
89
|
/**
|
|
@@ -179,11 +179,11 @@ export interface OperatorDefinition {
|
|
|
179
179
|
};
|
|
180
180
|
}
|
|
181
181
|
/**
|
|
182
|
-
* AI provider configuration for
|
|
182
|
+
* AI provider configuration for `#ai_gate` operator.
|
|
183
183
|
*/
|
|
184
184
|
export interface AIProviderConfig {
|
|
185
185
|
/** The provider type */
|
|
186
|
-
type: '
|
|
186
|
+
type: import('./providers/types.js').ProviderType;
|
|
187
187
|
/** API key (can also be set via ECHO_AI_API_KEY env var) */
|
|
188
188
|
apiKey: string;
|
|
189
189
|
/** Model to use (defaults to provider's default) */
|
|
@@ -236,7 +236,7 @@ export interface PlpConfig {
|
|
|
236
236
|
export interface EchoConfig {
|
|
237
237
|
/** Strict mode: fail on errors vs warn and continue */
|
|
238
238
|
strict?: boolean;
|
|
239
|
-
/** AI provider configuration for
|
|
239
|
+
/** AI provider configuration for `#ai_gate` */
|
|
240
240
|
aiProvider?: AIProviderConfig;
|
|
241
241
|
/** PLP configuration for automatic context resolution */
|
|
242
242
|
plp?: PlpConfig;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAMD;;;;;;;;;;GAUG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAElE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAMD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED;;;GAGG;AACH,MAAM,WAAW,QAAS,SAAQ,QAAQ;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,YAAa,SAAQ,QAAQ;IAC5C,IAAI,EAAE,UAAU,CAAC;IACjB,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,2EAA2E;IAC3E,OAAO,EAAE,YAAY,CAAC;IACtB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,gCAAgC;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMrD;;GAEG;AACH,eAAO,MAAM,qBAAqB,8EAMxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB,8BAE3B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB,yIASvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB,+NAIvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAMpE;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuB1E;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"file-utils.d.ts","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMrD;;GAEG;AACH,eAAO,MAAM,qBAAqB,8EAMxB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,wBAAwB,8BAE3B,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB,yIASvB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,oBAAoB,+NAIvB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,OAAO,oBAAoB,CAAC,MAAM,CAAC,CAAC;AAMpE;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOxE;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAuB1E;AAMD;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAoC3E;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAK5D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAW3D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,CAK/F"}
|
package/dist/utils/file-utils.js
CHANGED
|
@@ -161,9 +161,16 @@ export function normalizeFileValue(value) {
|
|
|
161
161
|
if (typeof value === 'object') {
|
|
162
162
|
const obj = value;
|
|
163
163
|
if (typeof obj.dataUrl === 'string' && typeof obj.mimeType === 'string') {
|
|
164
|
+
let dataUrl = obj.dataUrl;
|
|
165
|
+
const mimeType = obj.mimeType;
|
|
166
|
+
// Ensure dataUrl is properly formatted with data URL prefix
|
|
167
|
+
// If it's raw base64 (doesn't start with "data:"), construct the full data URL
|
|
168
|
+
if (!dataUrl.startsWith('data:')) {
|
|
169
|
+
dataUrl = `data:${mimeType};base64,${dataUrl}`;
|
|
170
|
+
}
|
|
164
171
|
return {
|
|
165
|
-
dataUrl
|
|
166
|
-
mimeType
|
|
172
|
+
dataUrl,
|
|
173
|
+
mimeType,
|
|
167
174
|
filename: typeof obj.filename === 'string' ? obj.filename : undefined,
|
|
168
175
|
};
|
|
169
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"file-utils.js","sourceRoot":"","sources":["../../src/utils/file-utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@goreal-ai/echo-pdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Echo PDK core rendering engine - parser, evaluator, and renderer",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -13,10 +13,19 @@
|
|
|
13
13
|
"./project": {
|
|
14
14
|
"types": "./dist/project/index.d.ts",
|
|
15
15
|
"import": "./dist/project/index.js"
|
|
16
|
+
},
|
|
17
|
+
"./providers": {
|
|
18
|
+
"types": "./dist/providers/index.d.ts",
|
|
19
|
+
"import": "./dist/providers/index.js"
|
|
20
|
+
},
|
|
21
|
+
"./embeddings": {
|
|
22
|
+
"types": "./dist/embeddings/index.d.ts",
|
|
23
|
+
"import": "./dist/embeddings/index.js"
|
|
16
24
|
}
|
|
17
25
|
},
|
|
18
26
|
"files": [
|
|
19
27
|
"dist",
|
|
28
|
+
"scripts",
|
|
20
29
|
"README.md"
|
|
21
30
|
],
|
|
22
31
|
"repository": {
|
|
@@ -34,20 +43,16 @@
|
|
|
34
43
|
"yaml": "^2.3.0"
|
|
35
44
|
},
|
|
36
45
|
"peerDependencies": {
|
|
37
|
-
"openai": "^4.0.0",
|
|
38
46
|
"@goreal-ai/plp-client": "^1.2.0"
|
|
39
47
|
},
|
|
40
48
|
"peerDependenciesMeta": {
|
|
41
|
-
"openai": {
|
|
42
|
-
"optional": true
|
|
43
|
-
},
|
|
44
49
|
"@goreal-ai/plp-client": {
|
|
45
50
|
"optional": true
|
|
46
51
|
}
|
|
47
52
|
},
|
|
48
53
|
"devDependencies": {
|
|
49
54
|
"@types/node": "^20.10.0",
|
|
50
|
-
"
|
|
55
|
+
"esbuild": "^0.27.2",
|
|
51
56
|
"typescript": "^5.3.0",
|
|
52
57
|
"vitest": "^2.0.0"
|
|
53
58
|
},
|
|
@@ -62,6 +67,7 @@
|
|
|
62
67
|
"license": "MIT",
|
|
63
68
|
"scripts": {
|
|
64
69
|
"build": "tsc",
|
|
70
|
+
"build:graaljs": "node scripts/bundle-for-graaljs.mjs",
|
|
65
71
|
"dev": "tsc --watch",
|
|
66
72
|
"test": "vitest run",
|
|
67
73
|
"test:watch": "vitest",
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Bundle echo-pdk for GraalJS (Java) integration.
|
|
4
|
+
* Creates a single IIFE bundle that exposes renderTemplate globally.
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import * as esbuild from 'esbuild';
|
|
8
|
+
import { writeFileSync } from 'fs';
|
|
9
|
+
import { join, dirname } from 'path';
|
|
10
|
+
import { fileURLToPath } from 'url';
|
|
11
|
+
|
|
12
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
13
|
+
const outfile = join(__dirname, '..', 'dist', 'echo-pdk.graaljs.js');
|
|
14
|
+
|
|
15
|
+
async function bundle() {
|
|
16
|
+
// Bundle the core library
|
|
17
|
+
const result = await esbuild.build({
|
|
18
|
+
entryPoints: [join(__dirname, '..', 'src', 'index.ts')],
|
|
19
|
+
bundle: true,
|
|
20
|
+
format: 'iife',
|
|
21
|
+
globalName: 'EchoPDK',
|
|
22
|
+
platform: 'browser', // Use browser platform to avoid Node.js built-ins
|
|
23
|
+
target: 'es2020',
|
|
24
|
+
write: false,
|
|
25
|
+
minify: false, // Keep readable for debugging
|
|
26
|
+
external: ['openai', '@goreal-ai/plp-client'], // These won't be used in Java
|
|
27
|
+
// Polyfill/ignore Node.js built-ins that won't be used
|
|
28
|
+
define: {
|
|
29
|
+
'process.env.NODE_ENV': '"production"',
|
|
30
|
+
'process.env': '{}',
|
|
31
|
+
'process': '{"env":{}}',
|
|
32
|
+
},
|
|
33
|
+
// Stub out crypto - only used for AI judge caching which we skip in Java
|
|
34
|
+
alias: {
|
|
35
|
+
'crypto': join(__dirname, 'stubs', 'crypto.mjs'),
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
// Get the bundled code
|
|
40
|
+
let code = result.outputFiles[0].text;
|
|
41
|
+
|
|
42
|
+
// Add a wrapper that exposes a simple render function for Java
|
|
43
|
+
const wrapper = `
|
|
44
|
+
// Echo PDK Bundle for GraalJS
|
|
45
|
+
// Generated: ${new Date().toISOString()}
|
|
46
|
+
|
|
47
|
+
${code}
|
|
48
|
+
|
|
49
|
+
// Expose simplified API for Java integration
|
|
50
|
+
var echoPdk = {
|
|
51
|
+
/**
|
|
52
|
+
* Render a template (async, returns a Promise).
|
|
53
|
+
* Supports full Echo DSL including conditionals.
|
|
54
|
+
* @param {string} template - The Echo DSL template
|
|
55
|
+
* @param {Object} context - Variables to substitute
|
|
56
|
+
* @param {Object} [config] - Optional configuration
|
|
57
|
+
* @returns {Promise<string>} - Rendered output
|
|
58
|
+
*/
|
|
59
|
+
render: function(template, context, config) {
|
|
60
|
+
var echo = EchoPDK.createEcho(config || {});
|
|
61
|
+
// Use the full async render pipeline which includes evaluation
|
|
62
|
+
return echo.render(template, context || {});
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Render a template synchronously (no AI judge support).
|
|
67
|
+
* Uses evaluate + render for full conditional support.
|
|
68
|
+
* @param {string} template - The Echo DSL template
|
|
69
|
+
* @param {Object} context - Variables to substitute
|
|
70
|
+
* @param {Object} [config] - Optional configuration
|
|
71
|
+
* @returns {string} - Rendered output
|
|
72
|
+
*/
|
|
73
|
+
renderSync: function(template, context, config) {
|
|
74
|
+
// Parse
|
|
75
|
+
var parseResult = EchoPDK.parse(template);
|
|
76
|
+
if (!parseResult.success || !parseResult.ast) {
|
|
77
|
+
throw new Error('Parse error: ' + JSON.stringify(parseResult.errors));
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// For sync, we need to block on the evaluate Promise
|
|
81
|
+
// GraalJS supports this via Java.await() or we can use a workaround
|
|
82
|
+
var evaluatedAst = parseResult.ast;
|
|
83
|
+
var evalPromise = EchoPDK.evaluate(parseResult.ast, context || {}, config || {});
|
|
84
|
+
|
|
85
|
+
// Try to get result synchronously if possible
|
|
86
|
+
if (evalPromise && typeof evalPromise.then === 'function') {
|
|
87
|
+
// It's a Promise - we need to use Java interop to block
|
|
88
|
+
// For now, fall back to direct rendering without conditional evaluation
|
|
89
|
+
// This is a limitation - conditionals won't work in sync mode
|
|
90
|
+
// Use render() for full support
|
|
91
|
+
} else if (evalPromise && evalPromise.ast) {
|
|
92
|
+
evaluatedAst = evalPromise.ast;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Render
|
|
96
|
+
var rendered = EchoPDK.render(evaluatedAst, {
|
|
97
|
+
context: context || {},
|
|
98
|
+
config: config || {},
|
|
99
|
+
trim: false,
|
|
100
|
+
collapseNewlines: true
|
|
101
|
+
});
|
|
102
|
+
return rendered;
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Parse a template and return the AST.
|
|
107
|
+
* @param {string} template - The Echo DSL template
|
|
108
|
+
* @returns {Object} - Parse result with ast and errors
|
|
109
|
+
*/
|
|
110
|
+
parse: function(template) {
|
|
111
|
+
return EchoPDK.parse(template);
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Extract variables from a template.
|
|
116
|
+
* @param {string} template - The Echo DSL template
|
|
117
|
+
* @returns {Array} - Array of variable info objects
|
|
118
|
+
*/
|
|
119
|
+
extractVariables: function(template) {
|
|
120
|
+
var parseResult = EchoPDK.parse(template);
|
|
121
|
+
if (!parseResult.success || !parseResult.ast) {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
var variables = [];
|
|
125
|
+
function visit(nodes) {
|
|
126
|
+
for (var i = 0; i < nodes.length; i++) {
|
|
127
|
+
var node = nodes[i];
|
|
128
|
+
if (node.type === 'variable') {
|
|
129
|
+
variables.push({
|
|
130
|
+
name: node.path,
|
|
131
|
+
type: node.varType || 'text',
|
|
132
|
+
defaultValue: node.defaultValue
|
|
133
|
+
});
|
|
134
|
+
} else if (node.type === 'conditional') {
|
|
135
|
+
visit(node.consequent);
|
|
136
|
+
if (node.alternate) {
|
|
137
|
+
if (Array.isArray(node.alternate)) {
|
|
138
|
+
visit(node.alternate);
|
|
139
|
+
} else {
|
|
140
|
+
visit([node.alternate]);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
} else if (node.type === 'section') {
|
|
144
|
+
visit(node.body);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
visit(parseResult.ast);
|
|
149
|
+
return variables;
|
|
150
|
+
},
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Validate a template without rendering.
|
|
154
|
+
* @param {string} template - The Echo DSL template
|
|
155
|
+
* @returns {Object} - { valid: boolean, errors: Array }
|
|
156
|
+
*/
|
|
157
|
+
validate: function(template) {
|
|
158
|
+
var parseResult = EchoPDK.parse(template);
|
|
159
|
+
return {
|
|
160
|
+
valid: parseResult.success,
|
|
161
|
+
errors: parseResult.errors || []
|
|
162
|
+
};
|
|
163
|
+
},
|
|
164
|
+
|
|
165
|
+
/**
|
|
166
|
+
* Check if a string is a valid provider type.
|
|
167
|
+
* @param {string} value - String to check
|
|
168
|
+
* @returns {boolean} - true if value is a known provider type
|
|
169
|
+
*/
|
|
170
|
+
isProviderType: function(value) {
|
|
171
|
+
return EchoPDK.isProviderType(value);
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Get metadata for all known AI providers.
|
|
176
|
+
* @returns {Array} - Array of provider info objects
|
|
177
|
+
*/
|
|
178
|
+
getProviders: function() {
|
|
179
|
+
return EchoPDK.getProviders();
|
|
180
|
+
},
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* List available models for a provider (async, returns a Promise).
|
|
184
|
+
* @param {string} type - Provider type ('openai' or 'anthropic')
|
|
185
|
+
* @param {string} apiKey - API key for authentication
|
|
186
|
+
* @returns {Promise<Array>} - Array of model info objects
|
|
187
|
+
*/
|
|
188
|
+
listModels: function(type, apiKey) {
|
|
189
|
+
return EchoPDK.listModels(type, apiKey);
|
|
190
|
+
},
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Create an AI provider instance.
|
|
194
|
+
* @param {Object} config - { type, apiKey, model?, baseUrl?, timeout? }
|
|
195
|
+
* @returns {Object} - Provider instance with complete(), listModels(), judge(), similarity()
|
|
196
|
+
*/
|
|
197
|
+
createProvider: function(config) {
|
|
198
|
+
return EchoPDK.createProvider(config);
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Render a template and send to an LLM in one call (async, returns a Promise).
|
|
203
|
+
* @param {Object} options - { template, variables, provider, systemMessage? }
|
|
204
|
+
* @returns {Promise<Object>} - { renderedPrompt, response }
|
|
205
|
+
*/
|
|
206
|
+
runPrompt: function(options) {
|
|
207
|
+
return EchoPDK.runPrompt(options);
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
`;
|
|
211
|
+
|
|
212
|
+
writeFileSync(outfile, wrapper);
|
|
213
|
+
console.log(`Bundle created: ${outfile}`);
|
|
214
|
+
console.log(`Size: ${(wrapper.length / 1024).toFixed(1)} KB`);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
bundle().catch(err => {
|
|
218
|
+
console.error('Bundle failed:', err);
|
|
219
|
+
process.exit(1);
|
|
220
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Crypto stub for GraalJS bundle.
|
|
3
|
+
* The crypto module is only used for AI judge caching, which we skip in Java.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export function createHash() {
|
|
7
|
+
return {
|
|
8
|
+
update: () => ({ digest: () => 'stub-hash' }),
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default { createHash };
|