beddel 0.1.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 (236) hide show
  1. package/README.md +297 -0
  2. package/dist/agents/agentRegistry.d.ts +68 -0
  3. package/dist/agents/agentRegistry.d.ts.map +1 -0
  4. package/dist/agents/agentRegistry.js +222 -0
  5. package/dist/agents/agentRegistry.js.map +1 -0
  6. package/dist/agents/formatter-agent.d.ts +10 -0
  7. package/dist/agents/formatter-agent.d.ts.map +1 -0
  8. package/dist/agents/formatter-agent.js +49 -0
  9. package/dist/agents/formatter-agent.js.map +1 -0
  10. package/dist/agents/genkit-agent.d.ts +12 -0
  11. package/dist/agents/genkit-agent.d.ts.map +1 -0
  12. package/dist/agents/genkit-agent.js +119 -0
  13. package/dist/agents/genkit-agent.js.map +1 -0
  14. package/dist/agents/i18n-messages.d.ts +17 -0
  15. package/dist/agents/i18n-messages.d.ts.map +1 -0
  16. package/dist/agents/i18n-messages.js +92 -0
  17. package/dist/agents/i18n-messages.js.map +1 -0
  18. package/dist/agents/index.d.ts +10 -0
  19. package/dist/agents/index.d.ts.map +1 -0
  20. package/dist/agents/index.js +26 -0
  21. package/dist/agents/index.js.map +1 -0
  22. package/dist/agents/pipeline.d.ts +15 -0
  23. package/dist/agents/pipeline.d.ts.map +1 -0
  24. package/dist/agents/pipeline.js +45 -0
  25. package/dist/agents/pipeline.js.map +1 -0
  26. package/dist/agents/schema-factory.d.ts +40 -0
  27. package/dist/agents/schema-factory.d.ts.map +1 -0
  28. package/dist/agents/schema-factory.js +121 -0
  29. package/dist/agents/schema-factory.js.map +1 -0
  30. package/dist/agents/translation-validators.d.ts +26 -0
  31. package/dist/agents/translation-validators.d.ts.map +1 -0
  32. package/dist/agents/translation-validators.js +77 -0
  33. package/dist/agents/translation-validators.js.map +1 -0
  34. package/dist/agents/translator-agents.d.ts +184 -0
  35. package/dist/agents/translator-agents.d.ts.map +1 -0
  36. package/dist/agents/translator-agents.js +613 -0
  37. package/dist/agents/translator-agents.js.map +1 -0
  38. package/dist/agents/types/translation.types.d.ts +100 -0
  39. package/dist/agents/types/translation.types.d.ts.map +1 -0
  40. package/dist/agents/types/translation.types.js +3 -0
  41. package/dist/agents/types/translation.types.js.map +1 -0
  42. package/dist/agents/validator-agent.d.ts +42 -0
  43. package/dist/agents/validator-agent.d.ts.map +1 -0
  44. package/dist/agents/validator-agent.js +122 -0
  45. package/dist/agents/validator-agent.js.map +1 -0
  46. package/dist/audit/auditTrail.d.ts +55 -0
  47. package/dist/audit/auditTrail.d.ts.map +1 -0
  48. package/dist/audit/auditTrail.js +93 -0
  49. package/dist/audit/auditTrail.js.map +1 -0
  50. package/dist/compliance/gdprEngine.d.ts +44 -0
  51. package/dist/compliance/gdprEngine.d.ts.map +1 -0
  52. package/dist/compliance/gdprEngine.js +178 -0
  53. package/dist/compliance/gdprEngine.js.map +1 -0
  54. package/dist/compliance/lgpdEngine.d.ts +51 -0
  55. package/dist/compliance/lgpdEngine.d.ts.map +1 -0
  56. package/dist/compliance/lgpdEngine.js +221 -0
  57. package/dist/compliance/lgpdEngine.js.map +1 -0
  58. package/dist/config.d.ts +78 -0
  59. package/dist/config.d.ts.map +1 -0
  60. package/dist/config.js +77 -0
  61. package/dist/config.js.map +1 -0
  62. package/dist/errors.d.ts +17 -0
  63. package/dist/errors.d.ts.map +1 -0
  64. package/dist/errors.js +40 -0
  65. package/dist/errors.js.map +1 -0
  66. package/dist/firebase/tenantManager.d.ts +84 -0
  67. package/dist/firebase/tenantManager.d.ts.map +1 -0
  68. package/dist/firebase/tenantManager.js +378 -0
  69. package/dist/firebase/tenantManager.js.map +1 -0
  70. package/dist/index.d.ts +36 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +118 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/integration/secure-yaml-runtime.d.ts +68 -0
  75. package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
  76. package/dist/integration/secure-yaml-runtime.js +245 -0
  77. package/dist/integration/secure-yaml-runtime.js.map +1 -0
  78. package/dist/parser/secure-yaml-parser.d.ts +62 -0
  79. package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
  80. package/dist/parser/secure-yaml-parser.js +234 -0
  81. package/dist/parser/secure-yaml-parser.js.map +1 -0
  82. package/dist/performance/autoscaling.d.ts +100 -0
  83. package/dist/performance/autoscaling.d.ts.map +1 -0
  84. package/dist/performance/autoscaling.js +339 -0
  85. package/dist/performance/autoscaling.js.map +1 -0
  86. package/dist/performance/benchmark.d.ts +104 -0
  87. package/dist/performance/benchmark.d.ts.map +1 -0
  88. package/dist/performance/benchmark.js +514 -0
  89. package/dist/performance/benchmark.js.map +1 -0
  90. package/dist/performance/index.d.ts +14 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +35 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/performance/monitor.d.ts +126 -0
  95. package/dist/performance/monitor.d.ts.map +1 -0
  96. package/dist/performance/monitor.js +324 -0
  97. package/dist/performance/monitor.js.map +1 -0
  98. package/dist/performance/streaming.d.ts +82 -0
  99. package/dist/performance/streaming.d.ts.map +1 -0
  100. package/dist/performance/streaming.js +287 -0
  101. package/dist/performance/streaming.js.map +1 -0
  102. package/dist/runtime/audit.d.ts +240 -0
  103. package/dist/runtime/audit.d.ts.map +1 -0
  104. package/dist/runtime/audit.js +641 -0
  105. package/dist/runtime/audit.js.map +1 -0
  106. package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
  107. package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
  108. package/dist/runtime/declarativeAgentRuntime.js +576 -0
  109. package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
  110. package/dist/runtime/isolatedRuntime.d.ts +119 -0
  111. package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
  112. package/dist/runtime/isolatedRuntime.js +425 -0
  113. package/dist/runtime/isolatedRuntime.js.map +1 -0
  114. package/dist/runtime/schemaCompiler.d.ts +35 -0
  115. package/dist/runtime/schemaCompiler.d.ts.map +1 -0
  116. package/dist/runtime/schemaCompiler.js +151 -0
  117. package/dist/runtime/schemaCompiler.js.map +1 -0
  118. package/dist/runtime/simpleRuntime.d.ts +57 -0
  119. package/dist/runtime/simpleRuntime.d.ts.map +1 -0
  120. package/dist/runtime/simpleRuntime.js +187 -0
  121. package/dist/runtime/simpleRuntime.js.map +1 -0
  122. package/dist/security/dashboard.d.ts +89 -0
  123. package/dist/security/dashboard.d.ts.map +1 -0
  124. package/dist/security/dashboard.js +300 -0
  125. package/dist/security/dashboard.js.map +1 -0
  126. package/dist/security/hardening.d.ts +130 -0
  127. package/dist/security/hardening.d.ts.map +1 -0
  128. package/dist/security/hardening.js +414 -0
  129. package/dist/security/hardening.js.map +1 -0
  130. package/dist/security/index.d.ts +128 -0
  131. package/dist/security/index.d.ts.map +1 -0
  132. package/dist/security/index.js +353 -0
  133. package/dist/security/index.js.map +1 -0
  134. package/dist/security/monitor.d.ts +88 -0
  135. package/dist/security/monitor.d.ts.map +1 -0
  136. package/dist/security/monitor.js +356 -0
  137. package/dist/security/monitor.js.map +1 -0
  138. package/dist/security/scanner.d.ts +104 -0
  139. package/dist/security/scanner.d.ts.map +1 -0
  140. package/dist/security/scanner.js +298 -0
  141. package/dist/security/scanner.js.map +1 -0
  142. package/dist/security/score.d.ts +150 -0
  143. package/dist/security/score.d.ts.map +1 -0
  144. package/dist/security/score.js +983 -0
  145. package/dist/security/score.js.map +1 -0
  146. package/dist/security/test-security.d.ts +22 -0
  147. package/dist/security/test-security.d.ts.map +1 -0
  148. package/dist/security/test-security.js +154 -0
  149. package/dist/security/test-security.js.map +1 -0
  150. package/dist/security/threatDetector.d.ts +39 -0
  151. package/dist/security/threatDetector.d.ts.map +1 -0
  152. package/dist/security/threatDetector.js +354 -0
  153. package/dist/security/threatDetector.js.map +1 -0
  154. package/dist/security/validation.d.ts +69 -0
  155. package/dist/security/validation.d.ts.map +1 -0
  156. package/dist/security/validation.js +286 -0
  157. package/dist/security/validation.js.map +1 -0
  158. package/dist/server/api/clientsRoute.d.ts +9 -0
  159. package/dist/server/api/clientsRoute.d.ts.map +1 -0
  160. package/dist/server/api/clientsRoute.js +71 -0
  161. package/dist/server/api/clientsRoute.js.map +1 -0
  162. package/dist/server/api/endpointsRoute.d.ts +8 -0
  163. package/dist/server/api/endpointsRoute.d.ts.map +1 -0
  164. package/dist/server/api/endpointsRoute.js +76 -0
  165. package/dist/server/api/endpointsRoute.js.map +1 -0
  166. package/dist/server/api/graphql.d.ts +9 -0
  167. package/dist/server/api/graphql.d.ts.map +1 -0
  168. package/dist/server/api/graphql.js +180 -0
  169. package/dist/server/api/graphql.js.map +1 -0
  170. package/dist/server/errors.d.ts +19 -0
  171. package/dist/server/errors.d.ts.map +1 -0
  172. package/dist/server/errors.js +42 -0
  173. package/dist/server/errors.js.map +1 -0
  174. package/dist/server/index.d.ts +7 -0
  175. package/dist/server/index.d.ts.map +1 -0
  176. package/dist/server/index.js +24 -0
  177. package/dist/server/index.js.map +1 -0
  178. package/dist/server/kvStore.d.ts +27 -0
  179. package/dist/server/kvStore.d.ts.map +1 -0
  180. package/dist/server/kvStore.js +128 -0
  181. package/dist/server/kvStore.js.map +1 -0
  182. package/dist/server/runtimeSecurity.d.ts +28 -0
  183. package/dist/server/runtimeSecurity.d.ts.map +1 -0
  184. package/dist/server/runtimeSecurity.js +85 -0
  185. package/dist/server/runtimeSecurity.js.map +1 -0
  186. package/dist/server/types.d.ts +53 -0
  187. package/dist/server/types.d.ts.map +1 -0
  188. package/dist/server/types.js +8 -0
  189. package/dist/server/types.js.map +1 -0
  190. package/dist/types/executionContext.d.ts +16 -0
  191. package/dist/types/executionContext.d.ts.map +1 -0
  192. package/dist/types/executionContext.js +3 -0
  193. package/dist/types/executionContext.js.map +1 -0
  194. package/package.json +77 -0
  195. package/src/agents/agentRegistry.ts +272 -0
  196. package/src/agents/image-agent.yaml +86 -0
  197. package/src/agents/joker-agent.yaml +47 -0
  198. package/src/agents/translator-agent.yaml +80 -0
  199. package/src/audit/auditTrail.ts +134 -0
  200. package/src/compliance/gdprEngine.ts +209 -0
  201. package/src/compliance/lgpdEngine.ts +268 -0
  202. package/src/config.ts +179 -0
  203. package/src/errors.ts +35 -0
  204. package/src/firebase/tenantManager.ts +443 -0
  205. package/src/index.ts +125 -0
  206. package/src/integration/secure-yaml-runtime.ts +341 -0
  207. package/src/parser/secure-yaml-parser.ts +273 -0
  208. package/src/performance/autoscaling.ts +495 -0
  209. package/src/performance/benchmark.ts +644 -0
  210. package/src/performance/index.ts +34 -0
  211. package/src/performance/monitor.ts +469 -0
  212. package/src/performance/streaming.ts +317 -0
  213. package/src/runtime/audit.ts +907 -0
  214. package/src/runtime/declarativeAgentRuntime.ts +836 -0
  215. package/src/runtime/isolatedRuntime.ts +572 -0
  216. package/src/runtime/schemaCompiler.ts +228 -0
  217. package/src/runtime/simpleRuntime.ts +201 -0
  218. package/src/security/dashboard.ts +462 -0
  219. package/src/security/hardening.ts +560 -0
  220. package/src/security/index.ts +439 -0
  221. package/src/security/monitor.ts +490 -0
  222. package/src/security/scanner.ts +368 -0
  223. package/src/security/score.ts +1138 -0
  224. package/src/security/threatDetector.ts +481 -0
  225. package/src/security/validation.ts +365 -0
  226. package/src/server/api/clientsRoute.ts +92 -0
  227. package/src/server/api/endpointsRoute.ts +97 -0
  228. package/src/server/api/graphql.ts +249 -0
  229. package/src/server/errors.ts +38 -0
  230. package/src/server/index.ts +6 -0
  231. package/src/server/kvStore.ts +152 -0
  232. package/src/server/runtimeSecurity.ts +102 -0
  233. package/src/server/types.ts +60 -0
  234. package/src/types/executionContext.ts +16 -0
  235. package/tools/seed.ts +365 -0
  236. package/tools/test-endpoints.ts +174 -0
@@ -0,0 +1,576 @@
1
+ "use strict";
2
+ /**
3
+ * Declarative Agent Runtime - YAML Interpreter for Beddel Declarative Protocol
4
+ * Safely interprets declarative YAML agent definitions without dynamic code execution
5
+ */
6
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
+ if (k2 === undefined) k2 = k;
8
+ var desc = Object.getOwnPropertyDescriptor(m, k);
9
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
+ desc = { enumerable: true, get: function() { return m[k]; } };
11
+ }
12
+ Object.defineProperty(o, k2, desc);
13
+ }) : (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ o[k2] = m[k];
16
+ }));
17
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
19
+ }) : function(o, v) {
20
+ o["default"] = v;
21
+ });
22
+ var __importStar = (this && this.__importStar) || (function () {
23
+ var ownKeys = function(o) {
24
+ ownKeys = Object.getOwnPropertyNames || function (o) {
25
+ var ar = [];
26
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
27
+ return ar;
28
+ };
29
+ return ownKeys(o);
30
+ };
31
+ return function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ })();
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.declarativeInterpreter = exports.DeclarativeAgentInterpreter = void 0;
41
+ const yaml = __importStar(require("js-yaml"));
42
+ const ai_1 = require("ai");
43
+ const google_1 = require("@ai-sdk/google");
44
+ const schemaCompiler_1 = require("./schemaCompiler");
45
+ /**
46
+ * Safe declarative YAML interpreter - no dynamic code execution
47
+ */
48
+ class DeclarativeAgentInterpreter {
49
+ constructor() {
50
+ this.MAX_VARIABLE_SIZE = 1024; // 1KB max variable size
51
+ this.MAX_WORKFLOW_STEPS = 100; // Prevent infinite loops
52
+ this.MAX_OUTPUT_SIZE = 5 * 1024 * 1024; // 5MB max output to accommodate image payloads
53
+ this.GEMINI_MODEL = "models/gemini-2.5-flash";
54
+ this.GEMINI_IMAGE_MODEL = "imagen-4.0-fast-generate-001";
55
+ this.SUPPORTED_TRANSLATION_LANGUAGES = ["pt", "en", "es", "fr"];
56
+ this.schemaCompiler = new schemaCompiler_1.DeclarativeSchemaCompiler();
57
+ }
58
+ /**
59
+ * Interpret declarative YAML agent definition
60
+ */
61
+ async interpret(options) {
62
+ const startTime = Date.now();
63
+ try {
64
+ // Parse and validate YAML
65
+ const agent = this.parseYaml(options.yamlContent);
66
+ this.validateAgentDefinition(agent);
67
+ // Compile schemas and validate input up front
68
+ const schemas = this.buildSchemaSet(agent);
69
+ const validatedInput = this.validateAgainstSchema(options.input, schemas.input, "input", options.context);
70
+ const executionOptions = {
71
+ ...options,
72
+ input: validatedInput,
73
+ };
74
+ // Execute declarative logic
75
+ const result = await this.executeWorkflow(agent, executionOptions);
76
+ // Validate output
77
+ const validatedOutput = this.validateAgainstSchema(result, schemas.output, "output", options.context);
78
+ this.enforceOutputSize(validatedOutput);
79
+ const executionTime = Date.now() - startTime;
80
+ options.context.log(`Declarative agent executed in ${executionTime}ms`);
81
+ return validatedOutput;
82
+ }
83
+ catch (error) {
84
+ const executionTime = Date.now() - startTime;
85
+ options.context.log(`Declarative agent execution failed: ${error}`);
86
+ options.context.setError(error instanceof Error
87
+ ? error.message
88
+ : "Unknown declarative agent error");
89
+ throw error;
90
+ }
91
+ }
92
+ /**
93
+ * Parse and validate YAML content
94
+ */
95
+ parseYaml(yamlContent) {
96
+ try {
97
+ const parsed = yaml.load(yamlContent);
98
+ if (!parsed || typeof parsed !== "object") {
99
+ throw new Error("Invalid YAML: expected object");
100
+ }
101
+ if (!parsed.agent || !parsed.logic || !parsed.schema) {
102
+ throw new Error("Invalid agent definition: missing required sections");
103
+ }
104
+ return parsed;
105
+ }
106
+ catch (error) {
107
+ throw new Error(`YAML parsing failed: ${error}`);
108
+ }
109
+ }
110
+ /**
111
+ * Validate agent definition structure
112
+ */
113
+ validateAgentDefinition(agent) {
114
+ // Validate protocol version
115
+ if (agent.agent.protocol !== "beddel-declarative-protocol/v2.0") {
116
+ throw new Error(`Unsupported protocol: ${agent.agent.protocol}`);
117
+ }
118
+ // Validate schema
119
+ if (!agent.schema.input || !agent.schema.output) {
120
+ throw new Error("Invalid schema: missing input or output definition");
121
+ }
122
+ // Validate workflow
123
+ if (!Array.isArray(agent.logic.workflow) ||
124
+ agent.logic.workflow.length === 0) {
125
+ throw new Error("Invalid workflow: must be non-empty array");
126
+ }
127
+ if (agent.logic.workflow.length > this.MAX_WORKFLOW_STEPS) {
128
+ throw new Error(`Workflow too complex: max ${this.MAX_WORKFLOW_STEPS} steps allowed`);
129
+ }
130
+ }
131
+ buildSchemaSet(agent) {
132
+ return {
133
+ input: this.schemaCompiler.compile(agent.schema.input, "schema.input"),
134
+ output: this.schemaCompiler.compile(agent.schema.output, "schema.output"),
135
+ };
136
+ }
137
+ validateAgainstSchema(data, schema, phase, context) {
138
+ const validationResult = schema.safeParse(data);
139
+ if (!validationResult.success) {
140
+ const issues = validationResult.error.issues;
141
+ const issueSummary = issues
142
+ .map((issue) => `${issue.path.join(".") || "root"}: ${issue.message}`)
143
+ .join("; ");
144
+ const label = phase === "input" ? "Input" : "Output";
145
+ const message = `${label} validation failed: ${issueSummary}`;
146
+ context.setError(message);
147
+ throw new schemaCompiler_1.DeclarativeSchemaValidationError(message, phase, issues);
148
+ }
149
+ return validationResult.data;
150
+ }
151
+ enforceOutputSize(output) {
152
+ const outputSize = JSON.stringify(output).length;
153
+ if (outputSize > this.MAX_OUTPUT_SIZE) {
154
+ throw new Error(`Output size exceeds maximum allowed: ${outputSize} > ${this.MAX_OUTPUT_SIZE}`);
155
+ }
156
+ }
157
+ /**
158
+ * Execute declarative workflow
159
+ */
160
+ async executeWorkflow(agent, options) {
161
+ const variables = new Map();
162
+ let output = undefined;
163
+ // Initialize variables
164
+ if (agent.logic.variables) {
165
+ for (const variable of agent.logic.variables) {
166
+ this.validateVariable(variable);
167
+ const value = this.evaluateValue(variable.init, variables);
168
+ variables.set(variable.name, value);
169
+ }
170
+ }
171
+ // Execute workflow steps
172
+ for (const step of agent.logic.workflow) {
173
+ output = await this.executeWorkflowStep(step, variables, options);
174
+ }
175
+ return output;
176
+ }
177
+ /**
178
+ * Execute single workflow step
179
+ */
180
+ async executeWorkflowStep(step, variables, options) {
181
+ options.context.log(`Executing workflow step: ${step.name} (${step.type})`);
182
+ switch (step.type) {
183
+ case "output-generator":
184
+ return this.executeOutputGenerator(step, variables, options);
185
+ case "genkit-joke":
186
+ return this.executeGenkitJoke(step, variables, options);
187
+ case "genkit-translation":
188
+ return this.executeGenkitTranslation(step, variables, options);
189
+ case "genkit-image":
190
+ return this.executeGenkitImage(step, variables, options);
191
+ default:
192
+ throw new Error(`Unsupported workflow step type: ${step.type}`);
193
+ }
194
+ }
195
+ /**
196
+ * Execute output generator step
197
+ */
198
+ executeOutputGenerator(step, variables, options) {
199
+ if (step.action?.type !== "generate" || !step.action.output) {
200
+ throw new Error("Invalid output generator configuration");
201
+ }
202
+ // Build output object
203
+ const output = {};
204
+ // Debug: Log available variables
205
+ options.context.log(`Output generator: Available variables: ${Array.from(variables.keys()).join(", ")}`);
206
+ for (const [key, valueExpr] of Object.entries(step.action.output)) {
207
+ if (typeof valueExpr === "string" && valueExpr.startsWith("$")) {
208
+ try {
209
+ const reference = valueExpr.substring(1);
210
+ options.context.log(`Output generator: Resolving reference ${valueExpr} -> ${reference}`);
211
+ const resolved = this.resolveReference(reference, variables);
212
+ output[key] = resolved;
213
+ options.context.log(`Output generator: Resolved ${key} = ${typeof resolved === "string" ? resolved.substring(0, 50) + "..." : JSON.stringify(resolved).substring(0, 100)}`);
214
+ }
215
+ catch (error) {
216
+ options.context.log(`Output generator: Failed to resolve ${valueExpr}: ${error instanceof Error ? error.message : String(error)}`);
217
+ throw error;
218
+ }
219
+ }
220
+ else {
221
+ output[key] = valueExpr;
222
+ }
223
+ }
224
+ options.context.log(`Output generator: Final output keys: ${Object.keys(output).join(", ")}`);
225
+ return output;
226
+ }
227
+ /**
228
+ * Execute Gemini Flash text helper for the joke agent
229
+ */
230
+ async executeGenkitJoke(step, variables, options) {
231
+ const prompt = typeof step.action?.prompt === "string" && step.action.prompt.trim().length
232
+ ? step.action.prompt.trim()
233
+ : "Conte uma piada curta e original em português.";
234
+ const temperature = typeof step.action?.temperature === "number"
235
+ ? step.action.temperature
236
+ : 0.8;
237
+ const maxTokens = typeof step.action?.maxTokens === "number"
238
+ ? step.action.maxTokens
239
+ : undefined;
240
+ const resultVar = typeof step.action?.result === "string" && step.action.result.length > 0
241
+ ? step.action.result
242
+ : "jokerResult";
243
+ const joke = await this.callGeminiFlashText({ prompt, temperature, maxTokens }, options.props, options.context);
244
+ variables.set(resultVar, joke);
245
+ return joke;
246
+ }
247
+ /**
248
+ * Execute translation step backed by Gemini Flash
249
+ */
250
+ async executeGenkitTranslation(step, variables, options) {
251
+ const texto = options.input?.texto;
252
+ const idiomaOrigem = options.input?.idioma_origem;
253
+ const idiomaDestino = options.input?.idioma_destino;
254
+ const resultVar = typeof step.action?.result === "string" && step.action.result.length > 0
255
+ ? step.action.result
256
+ : "translationResult";
257
+ const translation = await this.callGeminiFlashTranslation({
258
+ texto,
259
+ idioma_origem: idiomaOrigem,
260
+ idioma_destino: idiomaDestino,
261
+ promptTemplate: typeof step.action?.promptTemplate === "string"
262
+ ? step.action.promptTemplate
263
+ : undefined,
264
+ }, options.props, options.context);
265
+ variables.set(resultVar, translation);
266
+ return translation;
267
+ }
268
+ /**
269
+ * Execute image generation step backed by Gemini Flash
270
+ */
271
+ async executeGenkitImage(step, variables, options) {
272
+ const descricao = typeof options.input?.descricao === "string"
273
+ ? options.input.descricao.trim()
274
+ : "";
275
+ const estilo = typeof options.input?.estilo === "string"
276
+ ? options.input.estilo.trim()
277
+ : "";
278
+ const resolucaoInput = typeof options.input?.resolucao === "string"
279
+ ? options.input.resolucao.trim()
280
+ : "";
281
+ if (!descricao) {
282
+ throw new Error("Missing required image input: descricao");
283
+ }
284
+ if (!estilo) {
285
+ throw new Error("Missing required image input: estilo");
286
+ }
287
+ if (!resolucaoInput) {
288
+ throw new Error("Missing required image input: resolucao");
289
+ }
290
+ const promptTemplate = typeof step.action?.promptTemplate === "string" &&
291
+ step.action.promptTemplate.trim().length > 0
292
+ ? step.action.promptTemplate
293
+ : "Gere uma imagem detalhada no estilo {{estilo}} baseada na descrição: {{descricao}}";
294
+ const prompt = promptTemplate
295
+ .replace(/{{descricao}}/g, descricao)
296
+ .replace(/{{estilo}}/g, estilo)
297
+ .trim();
298
+ const resultVar = typeof step.action?.result === "string" && step.action.result.length > 0
299
+ ? step.action.result
300
+ : "imageResult";
301
+ const imageResult = await this.callGeminiFlashImage({
302
+ prompt,
303
+ estilo,
304
+ resolucao: resolucaoInput,
305
+ }, options.props, options.context);
306
+ variables.set(resultVar, imageResult);
307
+ options.context.log(`Image generator: Saved result in variable '${resultVar}' with keys: ${Object.keys(imageResult).join(", ")}`);
308
+ options.context.log(`Image generator: imageResult.image_url exists: ${!!imageResult?.image_url}`);
309
+ return imageResult;
310
+ }
311
+ /**
312
+ * Evaluate value expression
313
+ */
314
+ evaluateValue(expr, variables) {
315
+ // Handle string literals
316
+ if (expr.startsWith('"') && expr.endsWith('"')) {
317
+ if (expr.length - 2 > this.MAX_VARIABLE_SIZE) {
318
+ throw new Error("Variable initialization exceeds maximum size");
319
+ }
320
+ return expr.slice(1, -1);
321
+ }
322
+ if (expr.startsWith("'") && expr.endsWith("'")) {
323
+ if (expr.length - 2 > this.MAX_VARIABLE_SIZE) {
324
+ throw new Error("Variable initialization exceeds maximum size");
325
+ }
326
+ return expr.slice(1, -1);
327
+ }
328
+ if (expr.length > this.MAX_VARIABLE_SIZE) {
329
+ throw new Error("Variable initialization exceeds maximum size");
330
+ }
331
+ // Handle boolean literals
332
+ if (expr === "true")
333
+ return true;
334
+ if (expr === "false")
335
+ return false;
336
+ // Handle null literal
337
+ if (expr === "null")
338
+ return null;
339
+ // Handle variable references
340
+ if (expr.startsWith("$")) {
341
+ return this.resolveReference(expr.substring(1), variables);
342
+ }
343
+ // Handle numbers
344
+ if (/^-?\d+$/.test(expr))
345
+ return parseInt(expr, 10);
346
+ if (/^-?\d+\.\d+$/.test(expr))
347
+ return parseFloat(expr);
348
+ throw new Error(`Unsupported value expression: ${expr}`);
349
+ }
350
+ /**
351
+ * Validate variable declaration
352
+ */
353
+ validateVariable(variable) {
354
+ if (!variable.name || !variable.type) {
355
+ throw new Error("Invalid variable declaration: missing name or type");
356
+ }
357
+ if (!["string", "number", "boolean", "object"].includes(variable.type)) {
358
+ throw new Error(`Unsupported variable type: ${variable.type}`);
359
+ }
360
+ }
361
+ /**
362
+ * Resolve variable reference, including nested properties (e.g., foo.bar.baz)
363
+ */
364
+ resolveReference(reference, variables) {
365
+ const [varName, ...pathSegments] = reference.split(".");
366
+ let value = variables.get(varName);
367
+ if (value === undefined) {
368
+ throw new Error(`Undefined variable referenced: ${varName}`);
369
+ }
370
+ for (const segment of pathSegments) {
371
+ if (value == null || typeof value !== "object") {
372
+ throw new Error(`Cannot resolve path '${reference}': segment '${segment}' is invalid`);
373
+ }
374
+ value = value[segment];
375
+ }
376
+ return value;
377
+ }
378
+ /**
379
+ * Ensure we have a Gemini API key before calling Genkit helpers
380
+ */
381
+ ensureGeminiApiKey(props) {
382
+ const apiKey = props?.gemini_api_key?.trim();
383
+ if (!apiKey) {
384
+ throw new Error("Missing required prop: gemini_api_key. Configure a valid Gemini API key before calling this agent.");
385
+ }
386
+ return apiKey;
387
+ }
388
+ createGeminiModel(props) {
389
+ const apiKey = this.ensureGeminiApiKey(props);
390
+ const google = (0, google_1.createGoogleGenerativeAI)({ apiKey });
391
+ const model = google(this.GEMINI_MODEL);
392
+ return model;
393
+ }
394
+ createGeminiImageModel(props) {
395
+ const apiKey = this.ensureGeminiApiKey(props);
396
+ const google = (0, google_1.createGoogleGenerativeAI)({ apiKey });
397
+ return google.image(this.GEMINI_IMAGE_MODEL);
398
+ }
399
+ async callGeminiFlashText(params, props, context) {
400
+ const prompt = params.prompt?.trim();
401
+ if (!prompt) {
402
+ throw new Error("Gemini Flash text helper requires a prompt");
403
+ }
404
+ const temperature = typeof params.temperature === "number" ? params.temperature : 0.7;
405
+ const maxTokens = typeof params.maxTokens === "number" ? params.maxTokens : undefined;
406
+ const model = this.createGeminiModel(props);
407
+ const startTime = Date.now();
408
+ try {
409
+ context.log(`Invoking Gemini Flash text helper (temperature=${temperature}, maxTokens=${typeof maxTokens === "number" ? maxTokens : "provider-default"})`);
410
+ const generationOptions = {
411
+ model,
412
+ prompt,
413
+ temperature,
414
+ };
415
+ if (typeof maxTokens === "number") {
416
+ generationOptions.maxOutputTokens = maxTokens;
417
+ }
418
+ const { text, content } = await (0, ai_1.generateText)(generationOptions);
419
+ const contentText = content
420
+ ? content
421
+ .map((part) => typeof part?.text === "string" ? part.text : "")
422
+ .join(" ")
423
+ .trim()
424
+ : "";
425
+ const finalText = (text || "").trim() || contentText || "";
426
+ if (!finalText) {
427
+ throw new Error("Gemini Flash text helper returned empty response");
428
+ }
429
+ return {
430
+ texto: finalText,
431
+ metadados: {
432
+ modelo_utilizado: this.GEMINI_MODEL,
433
+ tempo_processamento: Date.now() - startTime,
434
+ temperature,
435
+ max_tokens: typeof maxTokens === "number" ? maxTokens : null,
436
+ prompt_utilizado: prompt,
437
+ },
438
+ };
439
+ }
440
+ catch (error) {
441
+ const message = error instanceof Error ? error.message : "Unknown Gemini Flash error";
442
+ context.log(`Gemini Flash text helper failed: ${message}`);
443
+ context.setError(message);
444
+ throw error;
445
+ }
446
+ }
447
+ async callGeminiFlashTranslation(params, props, context) {
448
+ const texto = params.texto?.trim();
449
+ const idiomaOrigem = params.idioma_origem?.trim().toLowerCase();
450
+ const idiomaDestino = params.idioma_destino?.trim().toLowerCase();
451
+ if (!texto || !idiomaOrigem || !idiomaDestino) {
452
+ throw new Error("Missing required translation parameters: texto, idioma_origem, idioma_destino");
453
+ }
454
+ if (idiomaOrigem === idiomaDestino) {
455
+ return {
456
+ texto_traduzido: texto,
457
+ metadados: {
458
+ modelo_utilizado: this.GEMINI_MODEL,
459
+ tempo_processamento: 0,
460
+ confianca: 1,
461
+ idiomas_suportados: this.SUPPORTED_TRANSLATION_LANGUAGES,
462
+ idiomas_solicitados: {
463
+ origem: idiomaOrigem,
464
+ destino: idiomaDestino,
465
+ },
466
+ prompt_utilizado: "Bypass: idiomas de origem e destino são iguais",
467
+ },
468
+ };
469
+ }
470
+ const template = params.promptTemplate && params.promptTemplate.trim().length > 0
471
+ ? params.promptTemplate
472
+ : `Traduza o texto abaixo de {{idioma_origem}} para {{idioma_destino}}.
473
+ Responda somente com o texto traduzido sem comentários adicionais.
474
+
475
+ Texto:
476
+ {{texto}}`;
477
+ const prompt = template
478
+ .replace(/{{texto}}/g, texto)
479
+ .replace(/{{idioma_origem}}/g, idiomaOrigem)
480
+ .replace(/{{idioma_destino}}/g, idiomaDestino)
481
+ .trim();
482
+ const model = this.createGeminiModel(props);
483
+ const startTime = Date.now();
484
+ try {
485
+ context.log(`Invoking Gemini Flash translation helper (${idiomaOrigem}->${idiomaDestino})`);
486
+ const { text, content } = await (0, ai_1.generateText)({
487
+ model,
488
+ prompt,
489
+ temperature: 0.2,
490
+ });
491
+ const contentText = content
492
+ ? content
493
+ .map((part) => typeof part?.text === "string" ? part.text : "")
494
+ .join(" ")
495
+ .trim()
496
+ : "";
497
+ const translatedText = (text || "").trim() || contentText || "";
498
+ if (!translatedText) {
499
+ throw new Error("Gemini Flash translation returned empty response");
500
+ }
501
+ return {
502
+ texto_traduzido: translatedText,
503
+ metadados: {
504
+ modelo_utilizado: this.GEMINI_MODEL,
505
+ tempo_processamento: Date.now() - startTime,
506
+ confianca: 0.85,
507
+ idiomas_suportados: this.SUPPORTED_TRANSLATION_LANGUAGES,
508
+ idiomas_solicitados: {
509
+ origem: idiomaOrigem,
510
+ destino: idiomaDestino,
511
+ },
512
+ prompt_utilizado: prompt,
513
+ },
514
+ };
515
+ }
516
+ catch (error) {
517
+ const message = error instanceof Error ? error.message : "Unknown translation error";
518
+ context.log(`Gemini Flash translation failed: ${message}`);
519
+ context.setError(message);
520
+ throw error;
521
+ }
522
+ }
523
+ async callGeminiFlashImage(params, props, context) {
524
+ const prompt = params.prompt?.trim();
525
+ const estilo = params.estilo?.trim();
526
+ const resolucao = params.resolucao?.trim();
527
+ if (!prompt) {
528
+ throw new Error("Gemini Flash image helper requires a prompt");
529
+ }
530
+ if (!estilo) {
531
+ throw new Error("Gemini Flash image helper requires an estilo value");
532
+ }
533
+ if (!resolucao || !/^\d+x\d+$/.test(resolucao)) {
534
+ throw new Error("Gemini Flash image helper requires uma resolução no formato LARGURAxALTURA (ex: 1024x1024)");
535
+ }
536
+ const model = this.createGeminiImageModel(props);
537
+ const startTime = Date.now();
538
+ try {
539
+ context.log(`Invoking Gemini Flash image helper (estilo=${estilo}, resolucao=${resolucao})`);
540
+ const result = await (0, ai_1.experimental_generateImage)({
541
+ model,
542
+ prompt,
543
+ size: resolucao,
544
+ });
545
+ const image = result.image;
546
+ if (!image?.base64 || !image.mediaType) {
547
+ throw new Error("Gemini Flash image helper returned an invalid file");
548
+ }
549
+ const normalizedBase64 = image.base64.replace(/\s+/g, "");
550
+ const imageUrl = `data:${image.mediaType};base64,${normalizedBase64}`;
551
+ return {
552
+ image_url: imageUrl,
553
+ image_base64: normalizedBase64,
554
+ media_type: image.mediaType,
555
+ prompt_utilizado: prompt,
556
+ metadados: {
557
+ modelo_utilizado: this.GEMINI_IMAGE_MODEL,
558
+ tempo_processamento: Date.now() - startTime,
559
+ estilo,
560
+ resolucao,
561
+ },
562
+ };
563
+ }
564
+ catch (error) {
565
+ const message = error instanceof Error ? error.message : "Unknown image error";
566
+ context.log(`Gemini Flash image helper failed: ${message}`);
567
+ context.setError(message);
568
+ throw error;
569
+ }
570
+ }
571
+ }
572
+ exports.DeclarativeAgentInterpreter = DeclarativeAgentInterpreter;
573
+ // Singleton instance
574
+ exports.declarativeInterpreter = new DeclarativeAgentInterpreter();
575
+ exports.default = DeclarativeAgentInterpreter;
576
+ //# sourceMappingURL=declarativeAgentRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"declarativeAgentRuntime.js","sourceRoot":"","sources":["../../src/runtime/declarativeAgentRuntime.ts"],"names":[],"mappings":"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"}