beddel 0.1.0 → 0.1.1
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/CHANGELOG.md +32 -0
- package/LICENSE +21 -0
- package/README.md +357 -196
- package/dist/agents/agentRegistry.d.ts +14 -1
- package/dist/agents/agentRegistry.d.ts.map +1 -1
- package/dist/agents/agentRegistry.js +98 -1
- package/dist/agents/agentRegistry.js.map +1 -1
- package/dist/runtime/schemaCompiler.js +5 -4
- package/dist/runtime/schemaCompiler.js.map +1 -1
- package/package.json +5 -2
- package/src/agents/agentRegistry.ts +115 -2
- package/src/runtime/schemaCompiler.ts +5 -5
- package/dist/agents/formatter-agent.d.ts +0 -10
- package/dist/agents/formatter-agent.d.ts.map +0 -1
- package/dist/agents/formatter-agent.js +0 -49
- package/dist/agents/formatter-agent.js.map +0 -1
- package/dist/agents/genkit-agent.d.ts +0 -12
- package/dist/agents/genkit-agent.d.ts.map +0 -1
- package/dist/agents/genkit-agent.js +0 -119
- package/dist/agents/genkit-agent.js.map +0 -1
- package/dist/agents/i18n-messages.d.ts +0 -17
- package/dist/agents/i18n-messages.d.ts.map +0 -1
- package/dist/agents/i18n-messages.js +0 -92
- package/dist/agents/i18n-messages.js.map +0 -1
- package/dist/agents/index.d.ts +0 -10
- package/dist/agents/index.d.ts.map +0 -1
- package/dist/agents/index.js +0 -26
- package/dist/agents/index.js.map +0 -1
- package/dist/agents/pipeline.d.ts +0 -15
- package/dist/agents/pipeline.d.ts.map +0 -1
- package/dist/agents/pipeline.js +0 -45
- package/dist/agents/pipeline.js.map +0 -1
- package/dist/agents/schema-factory.d.ts +0 -40
- package/dist/agents/schema-factory.d.ts.map +0 -1
- package/dist/agents/schema-factory.js +0 -121
- package/dist/agents/schema-factory.js.map +0 -1
- package/dist/agents/translation-validators.d.ts +0 -26
- package/dist/agents/translation-validators.d.ts.map +0 -1
- package/dist/agents/translation-validators.js +0 -77
- package/dist/agents/translation-validators.js.map +0 -1
- package/dist/agents/translator-agents.d.ts +0 -184
- package/dist/agents/translator-agents.d.ts.map +0 -1
- package/dist/agents/translator-agents.js +0 -613
- package/dist/agents/translator-agents.js.map +0 -1
- package/dist/agents/types/translation.types.d.ts +0 -100
- package/dist/agents/types/translation.types.d.ts.map +0 -1
- package/dist/agents/types/translation.types.js +0 -3
- package/dist/agents/types/translation.types.js.map +0 -1
- package/dist/agents/validator-agent.d.ts +0 -42
- package/dist/agents/validator-agent.d.ts.map +0 -1
- package/dist/agents/validator-agent.js +0 -122
- package/dist/agents/validator-agent.js.map +0 -1
- package/dist/security/test-security.d.ts +0 -22
- package/dist/security/test-security.d.ts.map +0 -1
- package/dist/security/test-security.js +0 -154
- package/dist/security/test-security.js.map +0 -1
- package/tools/seed.ts +0 -365
- package/tools/test-endpoints.ts +0 -174
|
@@ -21,7 +21,7 @@ export declare class AgentRegistry {
|
|
|
21
21
|
/**
|
|
22
22
|
* Register an agent
|
|
23
23
|
*/
|
|
24
|
-
registerAgent(agent: AgentRegistration): void;
|
|
24
|
+
registerAgent(agent: AgentRegistration, allowOverwrite?: boolean): void;
|
|
25
25
|
/**
|
|
26
26
|
* Execute registered agent
|
|
27
27
|
*/
|
|
@@ -34,6 +34,19 @@ export declare class AgentRegistry {
|
|
|
34
34
|
* Get all registered agents
|
|
35
35
|
*/
|
|
36
36
|
getAllAgents(): AgentRegistration[];
|
|
37
|
+
/**
|
|
38
|
+
* Load custom agents from a specified directory
|
|
39
|
+
* @param customAgentsPath - Optional path to custom agents directory. Defaults to process.cwd()/agents
|
|
40
|
+
*/
|
|
41
|
+
loadCustomAgents(customAgentsPath?: string): void;
|
|
42
|
+
/**
|
|
43
|
+
* Register a custom agent from a YAML file
|
|
44
|
+
*/
|
|
45
|
+
private registerCustomAgent;
|
|
46
|
+
/**
|
|
47
|
+
* Discover all YAML files in the custom agents directory
|
|
48
|
+
*/
|
|
49
|
+
private discoverCustomAgentFiles;
|
|
37
50
|
/**
|
|
38
51
|
* Register built-in agents
|
|
39
52
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentRegistry.d.ts","sourceRoot":"","sources":["../../src/agents/agentRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;;
|
|
1
|
+
{"version":3,"file":"agentRegistry.d.ts","sourceRoot":"","sources":["../../src/agents/agentRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAE7D,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6C;;IAiBpE;;OAEG;IACI,aAAa,CAAC,KAAK,EAAE,iBAAiB,EAAE,cAAc,UAAQ,GAAG,IAAI;IAc5E;;OAEG;IACU,YAAY,CACvB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC1B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,GAAG,CAAC;IAkBf;;OAEG;IACI,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIjE;;OAEG;IACI,YAAY,IAAI,iBAAiB,EAAE;IAI1C;;;OAGG;IACI,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAsCxD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAuBhC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAa7B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAwB1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqB1B;;OAEG;IACH,OAAO,CAAC,cAAc;IAmDtB;;OAEG;IACH,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAkBzB;AAGD,eAAO,MAAM,aAAa,eAAsB,CAAC;AAEjD,eAAe,aAAa,CAAC"}
|
|
@@ -16,13 +16,27 @@ class AgentRegistry {
|
|
|
16
16
|
this.agents = new Map();
|
|
17
17
|
// Register built-in agents on initialization
|
|
18
18
|
this.registerBuiltinAgents();
|
|
19
|
+
// Automatically load custom agents if running in Node.js environment
|
|
20
|
+
if (typeof process !== 'undefined' && typeof process.cwd === 'function') {
|
|
21
|
+
try {
|
|
22
|
+
this.loadCustomAgents();
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
// Silently fail if custom agents can't be loaded
|
|
26
|
+
// This allows the registry to work even without custom agents
|
|
27
|
+
}
|
|
28
|
+
}
|
|
19
29
|
}
|
|
20
30
|
/**
|
|
21
31
|
* Register an agent
|
|
22
32
|
*/
|
|
23
|
-
registerAgent(agent) {
|
|
33
|
+
registerAgent(agent, allowOverwrite = false) {
|
|
24
34
|
// Validate agent
|
|
25
35
|
this.validateAgent(agent);
|
|
36
|
+
// Check if agent already exists
|
|
37
|
+
if (this.agents.has(agent.name) && allowOverwrite) {
|
|
38
|
+
console.warn(`⚠️ Overwriting existing agent: ${agent.name}`);
|
|
39
|
+
}
|
|
26
40
|
// Register the agent
|
|
27
41
|
this.agents.set(agent.name, agent);
|
|
28
42
|
console.log(`Agent registered: ${agent.name} (${agent.protocol})`);
|
|
@@ -57,6 +71,89 @@ class AgentRegistry {
|
|
|
57
71
|
getAllAgents() {
|
|
58
72
|
return Array.from(this.agents.values());
|
|
59
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Load custom agents from a specified directory
|
|
76
|
+
* @param customAgentsPath - Optional path to custom agents directory. Defaults to process.cwd()/agents
|
|
77
|
+
*/
|
|
78
|
+
loadCustomAgents(customAgentsPath) {
|
|
79
|
+
try {
|
|
80
|
+
// Determine the agents directory path
|
|
81
|
+
const agentsPath = customAgentsPath || (0, path_1.join)(process.cwd(), "agents");
|
|
82
|
+
// Check if directory exists
|
|
83
|
+
if (!(0, fs_1.existsSync)(agentsPath)) {
|
|
84
|
+
console.log(`No custom agents directory found at: ${agentsPath}`);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
console.log(`🔍 Loading custom agents from: ${agentsPath}`);
|
|
88
|
+
// Discover all YAML files in the agents directory
|
|
89
|
+
const agentFiles = this.discoverCustomAgentFiles(agentsPath);
|
|
90
|
+
if (agentFiles.length === 0) {
|
|
91
|
+
console.log(`No custom agent YAML files found in: ${agentsPath}`);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
// Register each custom agent
|
|
95
|
+
let successCount = 0;
|
|
96
|
+
for (const yamlPath of agentFiles) {
|
|
97
|
+
try {
|
|
98
|
+
this.registerCustomAgent(yamlPath);
|
|
99
|
+
successCount++;
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
console.error(`Failed to register custom agent from ${yamlPath}:`, error);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
console.log(`✅ Successfully loaded ${successCount}/${agentFiles.length} custom agents`);
|
|
106
|
+
}
|
|
107
|
+
catch (error) {
|
|
108
|
+
console.error("Failed to load custom agents:", error);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Register a custom agent from a YAML file
|
|
113
|
+
*/
|
|
114
|
+
registerCustomAgent(yamlPath) {
|
|
115
|
+
// Read YAML file
|
|
116
|
+
const yamlContent = (0, fs_1.readFileSync)(yamlPath, "utf-8");
|
|
117
|
+
// Parse agent metadata
|
|
118
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
119
|
+
// Determine agent name from metadata or filename
|
|
120
|
+
const agentName = agent.metadata.route
|
|
121
|
+
? agent.metadata.route.replace("/agents/", "") + ".execute"
|
|
122
|
+
: agent.agent.id + ".execute";
|
|
123
|
+
// Register the agent (allow overwriting built-ins)
|
|
124
|
+
this.registerAgent({
|
|
125
|
+
id: agent.agent.id,
|
|
126
|
+
name: agentName,
|
|
127
|
+
description: agent.metadata.description,
|
|
128
|
+
protocol: agent.agent.protocol,
|
|
129
|
+
route: agent.metadata.route || `/agents/${agent.agent.id}`,
|
|
130
|
+
requiredProps: agent.schema.required || ["gemini_api_key"],
|
|
131
|
+
yamlContent,
|
|
132
|
+
}, true // Allow overwriting
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Discover all YAML files in the custom agents directory
|
|
137
|
+
*/
|
|
138
|
+
discoverCustomAgentFiles(agentsPath) {
|
|
139
|
+
const yamlFiles = [];
|
|
140
|
+
const scanDirectory = (dirPath) => {
|
|
141
|
+
const entries = (0, fs_1.readdirSync)(dirPath);
|
|
142
|
+
for (const entry of entries) {
|
|
143
|
+
const fullPath = (0, path_1.join)(dirPath, entry);
|
|
144
|
+
const stat = (0, fs_1.statSync)(fullPath);
|
|
145
|
+
if (stat.isDirectory()) {
|
|
146
|
+
// Recursively scan subdirectories
|
|
147
|
+
scanDirectory(fullPath);
|
|
148
|
+
}
|
|
149
|
+
else if (stat.isFile() && (entry.endsWith(".yaml") || entry.endsWith(".yml"))) {
|
|
150
|
+
yamlFiles.push(fullPath);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
scanDirectory(agentsPath);
|
|
155
|
+
return yamlFiles;
|
|
156
|
+
}
|
|
60
157
|
/**
|
|
61
158
|
* Register built-in agents
|
|
62
159
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentRegistry.js","sourceRoot":"","sources":["../../src/agents/agentRegistry.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,
|
|
1
|
+
{"version":3,"file":"agentRegistry.js","sourceRoot":"","sources":["../../src/agents/agentRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -92,14 +92,15 @@ class DeclarativeSchemaCompiler {
|
|
|
92
92
|
? childSchema
|
|
93
93
|
: childSchema.optional();
|
|
94
94
|
}
|
|
95
|
-
|
|
95
|
+
const objectSchema = zod_1.z.object(shape);
|
|
96
96
|
if (definition.additionalProperties) {
|
|
97
|
-
|
|
97
|
+
// Allow additional properties
|
|
98
|
+
return objectSchema.passthrough();
|
|
98
99
|
}
|
|
99
100
|
else {
|
|
100
|
-
|
|
101
|
+
// Reject additional properties (default behavior for strict validation)
|
|
102
|
+
return objectSchema.strict();
|
|
101
103
|
}
|
|
102
|
-
return objectSchema;
|
|
103
104
|
}
|
|
104
105
|
buildArraySchema(definition, path) {
|
|
105
106
|
if (!definition.items) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemaCompiler.js","sourceRoot":"","sources":["../../src/runtime/schemaCompiler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"schemaCompiler.js","sourceRoot":"","sources":["../../src/runtime/schemaCompiler.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beddel",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Beddel - A secure YAML parser and OpenAPI endpoint manager for Node.js applications",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"files": [
|
|
8
8
|
"dist",
|
|
9
9
|
"src",
|
|
10
|
-
"
|
|
10
|
+
"README.md",
|
|
11
|
+
"LICENSE",
|
|
12
|
+
"CHANGELOG.md"
|
|
11
13
|
],
|
|
12
14
|
"exports": {
|
|
13
15
|
".": {
|
|
@@ -24,6 +26,7 @@
|
|
|
24
26
|
}
|
|
25
27
|
},
|
|
26
28
|
"scripts": {
|
|
29
|
+
"prepublishOnly": "npm run build",
|
|
27
30
|
"build": "tsc -p tsconfig.build.json",
|
|
28
31
|
"dev": "tsc -p tsconfig.build.json --watch",
|
|
29
32
|
"test": "jest",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Manages registration and execution of declarative YAML agents
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { existsSync, readFileSync } from "fs";
|
|
6
|
+
import { existsSync, readFileSync, readdirSync, statSync } from "fs";
|
|
7
7
|
import { join } from "path";
|
|
8
8
|
import { declarativeInterpreter } from "../runtime/declarativeAgentRuntime";
|
|
9
9
|
import { ExecutionContext } from "../types/executionContext";
|
|
@@ -27,15 +27,30 @@ export class AgentRegistry {
|
|
|
27
27
|
constructor() {
|
|
28
28
|
// Register built-in agents on initialization
|
|
29
29
|
this.registerBuiltinAgents();
|
|
30
|
+
|
|
31
|
+
// Automatically load custom agents if running in Node.js environment
|
|
32
|
+
if (typeof process !== 'undefined' && typeof process.cwd === 'function') {
|
|
33
|
+
try {
|
|
34
|
+
this.loadCustomAgents();
|
|
35
|
+
} catch (error) {
|
|
36
|
+
// Silently fail if custom agents can't be loaded
|
|
37
|
+
// This allows the registry to work even without custom agents
|
|
38
|
+
}
|
|
39
|
+
}
|
|
30
40
|
}
|
|
31
41
|
|
|
32
42
|
/**
|
|
33
43
|
* Register an agent
|
|
34
44
|
*/
|
|
35
|
-
public registerAgent(agent: AgentRegistration): void {
|
|
45
|
+
public registerAgent(agent: AgentRegistration, allowOverwrite = false): void {
|
|
36
46
|
// Validate agent
|
|
37
47
|
this.validateAgent(agent);
|
|
38
48
|
|
|
49
|
+
// Check if agent already exists
|
|
50
|
+
if (this.agents.has(agent.name) && allowOverwrite) {
|
|
51
|
+
console.warn(`⚠️ Overwriting existing agent: ${agent.name}`);
|
|
52
|
+
}
|
|
53
|
+
|
|
39
54
|
// Register the agent
|
|
40
55
|
this.agents.set(agent.name, agent);
|
|
41
56
|
console.log(`Agent registered: ${agent.name} (${agent.protocol})`);
|
|
@@ -81,6 +96,104 @@ export class AgentRegistry {
|
|
|
81
96
|
return Array.from(this.agents.values());
|
|
82
97
|
}
|
|
83
98
|
|
|
99
|
+
/**
|
|
100
|
+
* Load custom agents from a specified directory
|
|
101
|
+
* @param customAgentsPath - Optional path to custom agents directory. Defaults to process.cwd()/agents
|
|
102
|
+
*/
|
|
103
|
+
public loadCustomAgents(customAgentsPath?: string): void {
|
|
104
|
+
try {
|
|
105
|
+
// Determine the agents directory path
|
|
106
|
+
const agentsPath = customAgentsPath || join(process.cwd(), "agents");
|
|
107
|
+
|
|
108
|
+
// Check if directory exists
|
|
109
|
+
if (!existsSync(agentsPath)) {
|
|
110
|
+
console.log(`No custom agents directory found at: ${agentsPath}`);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
console.log(`🔍 Loading custom agents from: ${agentsPath}`);
|
|
115
|
+
|
|
116
|
+
// Discover all YAML files in the agents directory
|
|
117
|
+
const agentFiles = this.discoverCustomAgentFiles(agentsPath);
|
|
118
|
+
|
|
119
|
+
if (agentFiles.length === 0) {
|
|
120
|
+
console.log(`No custom agent YAML files found in: ${agentsPath}`);
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Register each custom agent
|
|
125
|
+
let successCount = 0;
|
|
126
|
+
for (const yamlPath of agentFiles) {
|
|
127
|
+
try {
|
|
128
|
+
this.registerCustomAgent(yamlPath);
|
|
129
|
+
successCount++;
|
|
130
|
+
} catch (error) {
|
|
131
|
+
console.error(`Failed to register custom agent from ${yamlPath}:`, error);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
console.log(`✅ Successfully loaded ${successCount}/${agentFiles.length} custom agents`);
|
|
136
|
+
} catch (error) {
|
|
137
|
+
console.error("Failed to load custom agents:", error);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* Register a custom agent from a YAML file
|
|
143
|
+
*/
|
|
144
|
+
private registerCustomAgent(yamlPath: string): void {
|
|
145
|
+
// Read YAML file
|
|
146
|
+
const yamlContent = readFileSync(yamlPath, "utf-8");
|
|
147
|
+
|
|
148
|
+
// Parse agent metadata
|
|
149
|
+
const agent = this.parseAgentYaml(yamlContent);
|
|
150
|
+
|
|
151
|
+
// Determine agent name from metadata or filename
|
|
152
|
+
const agentName = agent.metadata.route
|
|
153
|
+
? agent.metadata.route.replace("/agents/", "") + ".execute"
|
|
154
|
+
: agent.agent.id + ".execute";
|
|
155
|
+
|
|
156
|
+
// Register the agent (allow overwriting built-ins)
|
|
157
|
+
this.registerAgent(
|
|
158
|
+
{
|
|
159
|
+
id: agent.agent.id,
|
|
160
|
+
name: agentName,
|
|
161
|
+
description: agent.metadata.description,
|
|
162
|
+
protocol: agent.agent.protocol,
|
|
163
|
+
route: agent.metadata.route || `/agents/${agent.agent.id}`,
|
|
164
|
+
requiredProps: agent.schema.required || ["gemini_api_key"],
|
|
165
|
+
yamlContent,
|
|
166
|
+
},
|
|
167
|
+
true // Allow overwriting
|
|
168
|
+
);
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
/**
|
|
172
|
+
* Discover all YAML files in the custom agents directory
|
|
173
|
+
*/
|
|
174
|
+
private discoverCustomAgentFiles(agentsPath: string): string[] {
|
|
175
|
+
const yamlFiles: string[] = [];
|
|
176
|
+
|
|
177
|
+
const scanDirectory = (dirPath: string) => {
|
|
178
|
+
const entries = readdirSync(dirPath);
|
|
179
|
+
|
|
180
|
+
for (const entry of entries) {
|
|
181
|
+
const fullPath = join(dirPath, entry);
|
|
182
|
+
const stat = statSync(fullPath);
|
|
183
|
+
|
|
184
|
+
if (stat.isDirectory()) {
|
|
185
|
+
// Recursively scan subdirectories
|
|
186
|
+
scanDirectory(fullPath);
|
|
187
|
+
} else if (stat.isFile() && (entry.endsWith(".yaml") || entry.endsWith(".yml"))) {
|
|
188
|
+
yamlFiles.push(fullPath);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
scanDirectory(agentsPath);
|
|
194
|
+
return yamlFiles;
|
|
195
|
+
}
|
|
196
|
+
|
|
84
197
|
/**
|
|
85
198
|
* Register built-in agents
|
|
86
199
|
*/
|
|
@@ -133,14 +133,14 @@ export class DeclarativeSchemaCompiler {
|
|
|
133
133
|
: childSchema.optional();
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
|
|
136
|
+
const objectSchema = z.object(shape);
|
|
137
137
|
if (definition.additionalProperties) {
|
|
138
|
-
|
|
138
|
+
// Allow additional properties
|
|
139
|
+
return objectSchema.passthrough() as ZodTypeAny;
|
|
139
140
|
} else {
|
|
140
|
-
|
|
141
|
+
// Reject additional properties (default behavior for strict validation)
|
|
142
|
+
return objectSchema.strict() as ZodTypeAny;
|
|
141
143
|
}
|
|
142
|
-
|
|
143
|
-
return objectSchema;
|
|
144
144
|
}
|
|
145
145
|
|
|
146
146
|
private buildArraySchema(
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { TranslationResponse } from "./types/translation.types";
|
|
2
|
-
/**
|
|
3
|
-
* FormatterAgent para formatação e validação de saída
|
|
4
|
-
*/
|
|
5
|
-
export default class FormatterAgent {
|
|
6
|
-
private static readonly OUTPUT_SCHEMA;
|
|
7
|
-
static formatOutput(data: TranslationResponse): TranslationResponse;
|
|
8
|
-
}
|
|
9
|
-
export { FormatterAgent };
|
|
10
|
-
//# sourceMappingURL=formatter-agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formatter-agent.d.ts","sourceRoot":"","sources":["../../src/agents/formatter-agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAQlC;IAEH,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,mBAAmB,GAAG,mBAAmB;CA+BpE;AAGD,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormatterAgent = void 0;
|
|
4
|
-
const zod_1 = require("zod");
|
|
5
|
-
/**
|
|
6
|
-
* FormatterAgent para formatação e validação de saída
|
|
7
|
-
*/
|
|
8
|
-
class FormatterAgent {
|
|
9
|
-
static formatOutput(data) {
|
|
10
|
-
try {
|
|
11
|
-
// Validação contra schema de saída
|
|
12
|
-
const validated = this.OUTPUT_SCHEMA.parse(data);
|
|
13
|
-
// Enriquecimento dos metadados
|
|
14
|
-
const metadadosEnriquecidos = {
|
|
15
|
-
...validated.metadados,
|
|
16
|
-
idiomas_suportados: validated.metadados.idiomas_suportados || [
|
|
17
|
-
"pt",
|
|
18
|
-
"en",
|
|
19
|
-
"es",
|
|
20
|
-
"fr",
|
|
21
|
-
],
|
|
22
|
-
timestamp: new Date().toISOString(),
|
|
23
|
-
versao_agent: "1.0.0",
|
|
24
|
-
};
|
|
25
|
-
return {
|
|
26
|
-
texto_traduzido: validated.texto_traduzido,
|
|
27
|
-
metadados: metadadosEnriquecidos,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
catch (error) {
|
|
31
|
-
if (error instanceof zod_1.z.ZodError) {
|
|
32
|
-
throw new Error(`Formato de saída inválido: ${error.issues[0]?.message}`);
|
|
33
|
-
}
|
|
34
|
-
throw error;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
exports.FormatterAgent = FormatterAgent;
|
|
39
|
-
FormatterAgent.OUTPUT_SCHEMA = zod_1.z.object({
|
|
40
|
-
texto_traduzido: zod_1.z.string(),
|
|
41
|
-
metadados: zod_1.z.object({
|
|
42
|
-
modelo_utilizado: zod_1.z.string(),
|
|
43
|
-
tempo_processamento: zod_1.z.number().min(0),
|
|
44
|
-
confianca: zod_1.z.number().min(0).max(1),
|
|
45
|
-
idiomas_suportados: zod_1.z.array(zod_1.z.string()).optional(),
|
|
46
|
-
}),
|
|
47
|
-
});
|
|
48
|
-
exports.default = FormatterAgent;
|
|
49
|
-
//# sourceMappingURL=formatter-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"formatter-agent.js","sourceRoot":"","sources":["../../src/agents/formatter-agent.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAGxB;;GAEG;AACH,MAAqB,cAAc;IAWjC,MAAM,CAAC,YAAY,CAAC,IAAyB;QAC3C,IAAI,CAAC;YACH,mCAAmC;YACnC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEjD,+BAA+B;YAC/B,MAAM,qBAAqB,GAAG;gBAC5B,GAAG,SAAS,CAAC,SAAS;gBACtB,kBAAkB,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,IAAI;oBAC5D,IAAI;oBACJ,IAAI;oBACJ,IAAI;oBACJ,IAAI;iBACL;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACnC,YAAY,EAAE,OAAO;aACtB,CAAC;YAEF,OAAO;gBACL,eAAe,EAAE,SAAS,CAAC,eAAe;gBAC1C,SAAS,EAAE,qBAAqB;aACjC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,OAAC,CAAC,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CACb,8BAA+B,KAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAClE,CAAC;YACJ,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;;AAIM,wCAAc;AA5CG,4BAAa,GAAG,OAAC,CAAC,MAAM,CAAC;IAC/C,eAAe,EAAE,OAAC,CAAC,MAAM,EAAE;IAC3B,SAAS,EAAE,OAAC,CAAC,MAAM,CAAC;QAClB,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE;QAC5B,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;QACtC,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACnC,kBAAkB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;KACnD,CAAC;CACH,CAAC,CAAC;kBATgB,cAAc"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { TranslationRequest, TranslationResponse } from "./types/translation.types";
|
|
2
|
-
/**
|
|
3
|
-
* GenkitAgent parametrizado para integração com Genkit
|
|
4
|
-
*/
|
|
5
|
-
export default class GenkitAgent {
|
|
6
|
-
private static readonly IDIOMAS_SUPORTADOS;
|
|
7
|
-
static processResource(resource: string, params: TranslationRequest): Promise<TranslationResponse>;
|
|
8
|
-
private static handleTranslation;
|
|
9
|
-
private static processBasicTranslation;
|
|
10
|
-
}
|
|
11
|
-
export { GenkitAgent };
|
|
12
|
-
//# sourceMappingURL=genkit-agent.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"genkit-agent.d.ts","sourceRoot":"","sources":["../../src/agents/genkit-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,2BAA2B,CAAC;AAInC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,WAAW;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAA4B;WAEzD,eAAe,CAC1B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,mBAAmB,CAAC;mBAeV,iBAAiB;IA+CtC,OAAO,CAAC,MAAM,CAAC,uBAAuB;CA0DvC;AAGD,OAAO,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.GenkitAgent = void 0;
|
|
7
|
-
const validator_agent_1 = __importDefault(require("./validator-agent"));
|
|
8
|
-
const validator_agent_2 = require("./validator-agent");
|
|
9
|
-
/**
|
|
10
|
-
* GenkitAgent parametrizado para integração com Genkit
|
|
11
|
-
*/
|
|
12
|
-
class GenkitAgent {
|
|
13
|
-
static async processResource(resource, params) {
|
|
14
|
-
// Validação via validator-agent
|
|
15
|
-
const validated = validator_agent_1.default.validateInput(validator_agent_2.translatorSchema, params);
|
|
16
|
-
// Processamento baseado no recurso
|
|
17
|
-
if (resource === "translate") {
|
|
18
|
-
return this.handleTranslation(validated);
|
|
19
|
-
}
|
|
20
|
-
throw new Error(`Recurso não suportado: ${resource}`);
|
|
21
|
-
}
|
|
22
|
-
static async handleTranslation(request) {
|
|
23
|
-
const startTime = Date.now();
|
|
24
|
-
try {
|
|
25
|
-
// Integração com Genkit (simulada - retorna JSON com 'translator: true')
|
|
26
|
-
// TODO: Implementar chamada HTTP real ao endpoint interno do Genkit
|
|
27
|
-
const genkitResponse = { translator: true };
|
|
28
|
-
if (!genkitResponse.translator) {
|
|
29
|
-
throw new Error("Falha na integração com Genkit");
|
|
30
|
-
}
|
|
31
|
-
// Cache TTL 3600s - simulação apenas com comentários
|
|
32
|
-
// TODO: Implementar cache com TTL 3600s quando o sistema real for criado
|
|
33
|
-
// Fallback entre modelos - preparação para implementação futura
|
|
34
|
-
// TODO: Adicionar lógica de fallback quando múltiplos modelos estiverem disponíveis
|
|
35
|
-
const textoTradu = this.processBasicTranslation(request);
|
|
36
|
-
const tempoProcessamento = Date.now() - startTime;
|
|
37
|
-
return {
|
|
38
|
-
texto_traduzido: textoTradu,
|
|
39
|
-
metadados: {
|
|
40
|
-
modelo_utilizado: "beddel-fallback-translator",
|
|
41
|
-
tempo_processamento: tempoProcessamento,
|
|
42
|
-
confianca: 0.8,
|
|
43
|
-
idiomas_suportados: this.IDIOMAS_SUPORTADOS,
|
|
44
|
-
},
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
catch (error) {
|
|
48
|
-
const tempoProcessamento = Date.now() - startTime;
|
|
49
|
-
console.error("Erro no GenkitAgent:", error);
|
|
50
|
-
return {
|
|
51
|
-
texto_traduzido: request.texto,
|
|
52
|
-
metadados: {
|
|
53
|
-
modelo_utilizado: "beddel-error-fallback",
|
|
54
|
-
tempo_processamento: tempoProcessamento,
|
|
55
|
-
confianca: 0.0,
|
|
56
|
-
idiomas_suportados: this.IDIOMAS_SUPORTADOS,
|
|
57
|
-
},
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
static processBasicTranslation(request) {
|
|
62
|
-
// Implementação simples de fallback para prova de conceito
|
|
63
|
-
const traducoes = new Map([
|
|
64
|
-
[
|
|
65
|
-
"pt",
|
|
66
|
-
{
|
|
67
|
-
olá: "hello",
|
|
68
|
-
mundo: "world",
|
|
69
|
-
"bom dia": "good morning",
|
|
70
|
-
"boa tarde": "good afternoon",
|
|
71
|
-
"boa noite": "good evening",
|
|
72
|
-
},
|
|
73
|
-
],
|
|
74
|
-
[
|
|
75
|
-
"en",
|
|
76
|
-
{
|
|
77
|
-
hello: "olá",
|
|
78
|
-
world: "mundo",
|
|
79
|
-
"good morning": "bom dia",
|
|
80
|
-
"good afternoon": "boa tarde",
|
|
81
|
-
"good evening": "boa noite",
|
|
82
|
-
},
|
|
83
|
-
],
|
|
84
|
-
[
|
|
85
|
-
"es",
|
|
86
|
-
{
|
|
87
|
-
hola: "hello",
|
|
88
|
-
mundo: "world",
|
|
89
|
-
},
|
|
90
|
-
],
|
|
91
|
-
[
|
|
92
|
-
"fr",
|
|
93
|
-
{
|
|
94
|
-
bonjour: "hello",
|
|
95
|
-
monde: "world",
|
|
96
|
-
},
|
|
97
|
-
],
|
|
98
|
-
]);
|
|
99
|
-
if (request.idioma_origem === request.idioma_destino) {
|
|
100
|
-
return request.texto;
|
|
101
|
-
}
|
|
102
|
-
const mapaTraducao = traducoes.get(request.idioma_origem);
|
|
103
|
-
if (!mapaTraducao) {
|
|
104
|
-
return request.texto;
|
|
105
|
-
}
|
|
106
|
-
let textoProcessado = request.texto;
|
|
107
|
-
if (mapaTraducao) {
|
|
108
|
-
Object.entries(mapaTraducao).forEach(([de, para]) => {
|
|
109
|
-
const regex = new RegExp(de, "gi");
|
|
110
|
-
textoProcessado = textoProcessado.replace(regex, para);
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return textoProcessado;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
exports.GenkitAgent = GenkitAgent;
|
|
117
|
-
GenkitAgent.IDIOMAS_SUPORTADOS = ["pt", "en", "es", "fr"];
|
|
118
|
-
exports.default = GenkitAgent;
|
|
119
|
-
//# sourceMappingURL=genkit-agent.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"genkit-agent.js","sourceRoot":"","sources":["../../src/agents/genkit-agent.ts"],"names":[],"mappings":"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"}
|