@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.
Files changed (119) hide show
  1. package/README.md +1 -1
  2. package/dist/ai-judge/index.d.ts +11 -21
  3. package/dist/ai-judge/index.d.ts.map +1 -1
  4. package/dist/ai-judge/index.js +36 -90
  5. package/dist/ai-judge/index.js.map +1 -1
  6. package/dist/embeddings/cosine.d.ts +15 -0
  7. package/dist/embeddings/cosine.d.ts.map +1 -0
  8. package/dist/embeddings/cosine.js +37 -0
  9. package/dist/embeddings/cosine.js.map +1 -0
  10. package/dist/embeddings/index.d.ts +9 -0
  11. package/dist/embeddings/index.d.ts.map +1 -0
  12. package/dist/embeddings/index.js +11 -0
  13. package/dist/embeddings/index.js.map +1 -0
  14. package/dist/embeddings/openai.d.ts +11 -0
  15. package/dist/embeddings/openai.d.ts.map +1 -0
  16. package/dist/embeddings/openai.js +38 -0
  17. package/dist/embeddings/openai.js.map +1 -0
  18. package/dist/embeddings/registry.d.ts +13 -0
  19. package/dist/embeddings/registry.d.ts.map +1 -0
  20. package/dist/embeddings/registry.js +29 -0
  21. package/dist/embeddings/registry.js.map +1 -0
  22. package/dist/embeddings/types.d.ts +35 -0
  23. package/dist/embeddings/types.d.ts.map +1 -0
  24. package/dist/embeddings/types.js +8 -0
  25. package/dist/embeddings/types.js.map +1 -0
  26. package/dist/embeddings/voyage.d.ts +12 -0
  27. package/dist/embeddings/voyage.d.ts.map +1 -0
  28. package/dist/embeddings/voyage.js +39 -0
  29. package/dist/embeddings/voyage.js.map +1 -0
  30. package/dist/eval/assertions.d.ts +35 -0
  31. package/dist/eval/assertions.d.ts.map +1 -0
  32. package/dist/eval/assertions.js +349 -0
  33. package/dist/eval/assertions.js.map +1 -0
  34. package/dist/eval/dataset.d.ts +42 -0
  35. package/dist/eval/dataset.d.ts.map +1 -0
  36. package/dist/eval/dataset.js +101 -0
  37. package/dist/eval/dataset.js.map +1 -0
  38. package/dist/eval/index.d.ts +14 -0
  39. package/dist/eval/index.d.ts.map +1 -0
  40. package/dist/eval/index.js +17 -0
  41. package/dist/eval/index.js.map +1 -0
  42. package/dist/eval/loader.d.ts +30 -0
  43. package/dist/eval/loader.d.ts.map +1 -0
  44. package/dist/eval/loader.js +170 -0
  45. package/dist/eval/loader.js.map +1 -0
  46. package/dist/eval/reporter.d.ts +26 -0
  47. package/dist/eval/reporter.d.ts.map +1 -0
  48. package/dist/eval/reporter.js +164 -0
  49. package/dist/eval/reporter.js.map +1 -0
  50. package/dist/eval/runner.d.ts +28 -0
  51. package/dist/eval/runner.d.ts.map +1 -0
  52. package/dist/eval/runner.js +232 -0
  53. package/dist/eval/runner.js.map +1 -0
  54. package/dist/eval/types.d.ts +257 -0
  55. package/dist/eval/types.d.ts.map +1 -0
  56. package/dist/eval/types.js +11 -0
  57. package/dist/eval/types.js.map +1 -0
  58. package/dist/evaluator/evaluator.d.ts +2 -2
  59. package/dist/evaluator/evaluator.js +5 -5
  60. package/dist/evaluator/evaluator.js.map +1 -1
  61. package/dist/evaluator/index.d.ts +1 -1
  62. package/dist/evaluator/index.d.ts.map +1 -1
  63. package/dist/evaluator/index.js +1 -1
  64. package/dist/evaluator/index.js.map +1 -1
  65. package/dist/evaluator/operators.d.ts +9 -5
  66. package/dist/evaluator/operators.d.ts.map +1 -1
  67. package/dist/evaluator/operators.js +26 -33
  68. package/dist/evaluator/operators.js.map +1 -1
  69. package/dist/index.d.ts +8 -2
  70. package/dist/index.d.ts.map +1 -1
  71. package/dist/index.js +38 -20
  72. package/dist/index.js.map +1 -1
  73. package/dist/parser/ast.js +1 -1
  74. package/dist/parser/ast.js.map +1 -1
  75. package/dist/parser/lexer.d.ts +1 -1
  76. package/dist/parser/lexer.js +1 -1
  77. package/dist/project/index.d.ts.map +1 -1
  78. package/dist/project/index.js +10 -3
  79. package/dist/project/index.js.map +1 -1
  80. package/dist/project/types.d.ts +19 -4
  81. package/dist/project/types.d.ts.map +1 -1
  82. package/dist/project/types.js +3 -0
  83. package/dist/project/types.js.map +1 -1
  84. package/dist/providers/anthropic.d.ts +18 -0
  85. package/dist/providers/anthropic.d.ts.map +1 -0
  86. package/dist/providers/anthropic.js +123 -0
  87. package/dist/providers/anthropic.js.map +1 -0
  88. package/dist/providers/base.d.ts +45 -0
  89. package/dist/providers/base.d.ts.map +1 -0
  90. package/dist/providers/base.js +107 -0
  91. package/dist/providers/base.js.map +1 -0
  92. package/dist/providers/index.d.ts +14 -0
  93. package/dist/providers/index.d.ts.map +1 -0
  94. package/dist/providers/index.js +16 -0
  95. package/dist/providers/index.js.map +1 -0
  96. package/dist/providers/openai.d.ts +18 -0
  97. package/dist/providers/openai.d.ts.map +1 -0
  98. package/dist/providers/openai.js +106 -0
  99. package/dist/providers/openai.js.map +1 -0
  100. package/dist/providers/registry.d.ts +80 -0
  101. package/dist/providers/registry.d.ts.map +1 -0
  102. package/dist/providers/registry.js +118 -0
  103. package/dist/providers/registry.js.map +1 -0
  104. package/dist/providers/run-prompt.d.ts +69 -0
  105. package/dist/providers/run-prompt.d.ts.map +1 -0
  106. package/dist/providers/run-prompt.js +79 -0
  107. package/dist/providers/run-prompt.js.map +1 -0
  108. package/dist/providers/types.d.ts +123 -0
  109. package/dist/providers/types.d.ts.map +1 -0
  110. package/dist/providers/types.js +9 -0
  111. package/dist/providers/types.js.map +1 -0
  112. package/dist/types.d.ts +5 -5
  113. package/dist/types.d.ts.map +1 -1
  114. package/dist/utils/file-utils.d.ts.map +1 -1
  115. package/dist/utils/file-utils.js +9 -2
  116. package/dist/utils/file-utils.js.map +1 -1
  117. package/package.json +12 -6
  118. package/scripts/bundle-for-graaljs.mjs +220 -0
  119. 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', 'ai_judge' */
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 if this is an AI judge condition */
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 #ai_judge operator.
182
+ * AI provider configuration for `#ai_gate` operator.
183
183
  */
184
184
  export interface AIProviderConfig {
185
185
  /** The provider type */
186
- type: 'openai' | 'anthropic';
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 #ai_judge */
239
+ /** AI provider configuration for `#ai_gate` */
240
240
  aiProvider?: AIProviderConfig;
241
241
  /** PLP configuration for automatic context resolution */
242
242
  plp?: PlpConfig;
@@ -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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"}
@@ -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,CA2B3E;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"}
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"}
@@ -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: obj.dataUrl,
166
- mimeType: obj.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":"AAAA;;;;;GAKG;AAIH,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,WAAW;IACX,YAAY;IACZ,WAAW;IACX,WAAW;IACX,YAAY;CACJ,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,iBAAiB;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,YAAY;IACZ,eAAe;IACf,SAAS;IACT,kBAAkB;IAClB,WAAW;IACX,kBAAkB;IAClB,UAAU;IACV,iBAAiB;CACT,CAAC;AAEX;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,GAAG,qBAAqB;IACxB,GAAG,wBAAwB;IAC3B,GAAG,oBAAoB;CACf,CAAC;AAIX,gFAAgF;AAChF,sBAAsB;AACtB,gFAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CAAC,OAAe;IACvD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC9C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAgB;IACzD,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,MAAM,YAAY,GAA2B;QAC3C,SAAS;QACT,GAAG,EAAE,WAAW;QAChB,GAAG,EAAE,YAAY;QACjB,IAAI,EAAE,YAAY;QAClB,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,GAAG,EAAE,iBAAiB;QACtB,OAAO;QACP,GAAG,EAAE,YAAY;QACjB,EAAE,EAAE,eAAe;QACnB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE,kBAAkB;QACxB,GAAG,EAAE,kBAAkB;QACvB,GAAG,EAAE,iBAAiB;KACvB,CAAC;IAEF,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC;AACnC,CAAC;AAED,gFAAgF;AAChF,uBAAuB;AACvB,gFAAgF;AAEhF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,OAAO,oBAAoB,CAAC,QAAQ,CAAC,QAA6B,CAAC,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,OAAO,qBAAqB,CAAC,QAAQ,CAAC,QAAgD,CAAC,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,OAAO,wBAAwB,CAAC,QAAQ,CAAC,QAAmD,CAAC,CAAC;AAChG,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,QAA+C,CAAC,CAAC;AACxF,CAAC;AAED,gFAAgF;AAChF,mBAAmB;AACnB,gFAAgF;AAEhF;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAc;IAC/C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAExB,sCAAsC;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAG,yBAAyB,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,OAAO;YACL,OAAO,EAAE,KAAK;YACd,QAAQ;SACT,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,KAAgC,CAAC;QAC7C,IAAI,OAAO,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YACxE,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;YAE9B,4DAA4D;YAC5D,+EAA+E;YAC/E,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjC,OAAO,GAAG,QAAQ,QAAQ,WAAW,OAAO,EAAE,CAAC;YACjD,CAAC;YAED,OAAO;gBACL,OAAO;gBACP,QAAQ;gBACR,QAAQ,EAAE,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aACtE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAc;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAC1F,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,KAAc;IACjD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB;IAClD,IAAI,eAAe,CAAC,QAAQ,CAAC;QAAE,OAAO,OAAO,CAAC;IAC9C,IAAI,kBAAkB,CAAC,QAAQ,CAAC;QAAE,OAAO,UAAU,CAAC;IACpD,IAAI,cAAc,CAAC,QAAQ,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,OAAO,SAAS,CAAC;AACnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goreal-ai/echo-pdk",
3
- "version": "0.6.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
- "openai": "^4.0.0",
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 };