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.
- package/README.md +297 -0
- package/dist/agents/agentRegistry.d.ts +68 -0
- package/dist/agents/agentRegistry.d.ts.map +1 -0
- package/dist/agents/agentRegistry.js +222 -0
- package/dist/agents/agentRegistry.js.map +1 -0
- package/dist/agents/formatter-agent.d.ts +10 -0
- package/dist/agents/formatter-agent.d.ts.map +1 -0
- package/dist/agents/formatter-agent.js +49 -0
- package/dist/agents/formatter-agent.js.map +1 -0
- package/dist/agents/genkit-agent.d.ts +12 -0
- package/dist/agents/genkit-agent.d.ts.map +1 -0
- package/dist/agents/genkit-agent.js +119 -0
- package/dist/agents/genkit-agent.js.map +1 -0
- package/dist/agents/i18n-messages.d.ts +17 -0
- package/dist/agents/i18n-messages.d.ts.map +1 -0
- package/dist/agents/i18n-messages.js +92 -0
- package/dist/agents/i18n-messages.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +26 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/pipeline.d.ts +15 -0
- package/dist/agents/pipeline.d.ts.map +1 -0
- package/dist/agents/pipeline.js +45 -0
- package/dist/agents/pipeline.js.map +1 -0
- package/dist/agents/schema-factory.d.ts +40 -0
- package/dist/agents/schema-factory.d.ts.map +1 -0
- package/dist/agents/schema-factory.js +121 -0
- package/dist/agents/schema-factory.js.map +1 -0
- package/dist/agents/translation-validators.d.ts +26 -0
- package/dist/agents/translation-validators.d.ts.map +1 -0
- package/dist/agents/translation-validators.js +77 -0
- package/dist/agents/translation-validators.js.map +1 -0
- package/dist/agents/translator-agents.d.ts +184 -0
- package/dist/agents/translator-agents.d.ts.map +1 -0
- package/dist/agents/translator-agents.js +613 -0
- package/dist/agents/translator-agents.js.map +1 -0
- package/dist/agents/types/translation.types.d.ts +100 -0
- package/dist/agents/types/translation.types.d.ts.map +1 -0
- package/dist/agents/types/translation.types.js +3 -0
- package/dist/agents/types/translation.types.js.map +1 -0
- package/dist/agents/validator-agent.d.ts +42 -0
- package/dist/agents/validator-agent.d.ts.map +1 -0
- package/dist/agents/validator-agent.js +122 -0
- package/dist/agents/validator-agent.js.map +1 -0
- package/dist/audit/auditTrail.d.ts +55 -0
- package/dist/audit/auditTrail.d.ts.map +1 -0
- package/dist/audit/auditTrail.js +93 -0
- package/dist/audit/auditTrail.js.map +1 -0
- package/dist/compliance/gdprEngine.d.ts +44 -0
- package/dist/compliance/gdprEngine.d.ts.map +1 -0
- package/dist/compliance/gdprEngine.js +178 -0
- package/dist/compliance/gdprEngine.js.map +1 -0
- package/dist/compliance/lgpdEngine.d.ts +51 -0
- package/dist/compliance/lgpdEngine.d.ts.map +1 -0
- package/dist/compliance/lgpdEngine.js +221 -0
- package/dist/compliance/lgpdEngine.js.map +1 -0
- package/dist/config.d.ts +78 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +77 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/firebase/tenantManager.d.ts +84 -0
- package/dist/firebase/tenantManager.d.ts.map +1 -0
- package/dist/firebase/tenantManager.js +378 -0
- package/dist/firebase/tenantManager.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/secure-yaml-runtime.d.ts +68 -0
- package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
- package/dist/integration/secure-yaml-runtime.js +245 -0
- package/dist/integration/secure-yaml-runtime.js.map +1 -0
- package/dist/parser/secure-yaml-parser.d.ts +62 -0
- package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
- package/dist/parser/secure-yaml-parser.js +234 -0
- package/dist/parser/secure-yaml-parser.js.map +1 -0
- package/dist/performance/autoscaling.d.ts +100 -0
- package/dist/performance/autoscaling.d.ts.map +1 -0
- package/dist/performance/autoscaling.js +339 -0
- package/dist/performance/autoscaling.js.map +1 -0
- package/dist/performance/benchmark.d.ts +104 -0
- package/dist/performance/benchmark.d.ts.map +1 -0
- package/dist/performance/benchmark.js +514 -0
- package/dist/performance/benchmark.js.map +1 -0
- package/dist/performance/index.d.ts +14 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +35 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/monitor.d.ts +126 -0
- package/dist/performance/monitor.d.ts.map +1 -0
- package/dist/performance/monitor.js +324 -0
- package/dist/performance/monitor.js.map +1 -0
- package/dist/performance/streaming.d.ts +82 -0
- package/dist/performance/streaming.d.ts.map +1 -0
- package/dist/performance/streaming.js +287 -0
- package/dist/performance/streaming.js.map +1 -0
- package/dist/runtime/audit.d.ts +240 -0
- package/dist/runtime/audit.d.ts.map +1 -0
- package/dist/runtime/audit.js +641 -0
- package/dist/runtime/audit.js.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.js +576 -0
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
- package/dist/runtime/isolatedRuntime.d.ts +119 -0
- package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
- package/dist/runtime/isolatedRuntime.js +425 -0
- package/dist/runtime/isolatedRuntime.js.map +1 -0
- package/dist/runtime/schemaCompiler.d.ts +35 -0
- package/dist/runtime/schemaCompiler.d.ts.map +1 -0
- package/dist/runtime/schemaCompiler.js +151 -0
- package/dist/runtime/schemaCompiler.js.map +1 -0
- package/dist/runtime/simpleRuntime.d.ts +57 -0
- package/dist/runtime/simpleRuntime.d.ts.map +1 -0
- package/dist/runtime/simpleRuntime.js +187 -0
- package/dist/runtime/simpleRuntime.js.map +1 -0
- package/dist/security/dashboard.d.ts +89 -0
- package/dist/security/dashboard.d.ts.map +1 -0
- package/dist/security/dashboard.js +300 -0
- package/dist/security/dashboard.js.map +1 -0
- package/dist/security/hardening.d.ts +130 -0
- package/dist/security/hardening.d.ts.map +1 -0
- package/dist/security/hardening.js +414 -0
- package/dist/security/hardening.js.map +1 -0
- package/dist/security/index.d.ts +128 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +353 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/monitor.d.ts +88 -0
- package/dist/security/monitor.d.ts.map +1 -0
- package/dist/security/monitor.js +356 -0
- package/dist/security/monitor.js.map +1 -0
- package/dist/security/scanner.d.ts +104 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +298 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/security/score.d.ts +150 -0
- package/dist/security/score.d.ts.map +1 -0
- package/dist/security/score.js +983 -0
- package/dist/security/score.js.map +1 -0
- package/dist/security/test-security.d.ts +22 -0
- package/dist/security/test-security.d.ts.map +1 -0
- package/dist/security/test-security.js +154 -0
- package/dist/security/test-security.js.map +1 -0
- package/dist/security/threatDetector.d.ts +39 -0
- package/dist/security/threatDetector.d.ts.map +1 -0
- package/dist/security/threatDetector.js +354 -0
- package/dist/security/threatDetector.js.map +1 -0
- package/dist/security/validation.d.ts +69 -0
- package/dist/security/validation.d.ts.map +1 -0
- package/dist/security/validation.js +286 -0
- package/dist/security/validation.js.map +1 -0
- package/dist/server/api/clientsRoute.d.ts +9 -0
- package/dist/server/api/clientsRoute.d.ts.map +1 -0
- package/dist/server/api/clientsRoute.js +71 -0
- package/dist/server/api/clientsRoute.js.map +1 -0
- package/dist/server/api/endpointsRoute.d.ts +8 -0
- package/dist/server/api/endpointsRoute.d.ts.map +1 -0
- package/dist/server/api/endpointsRoute.js +76 -0
- package/dist/server/api/endpointsRoute.js.map +1 -0
- package/dist/server/api/graphql.d.ts +9 -0
- package/dist/server/api/graphql.d.ts.map +1 -0
- package/dist/server/api/graphql.js +180 -0
- package/dist/server/api/graphql.js.map +1 -0
- package/dist/server/errors.d.ts +19 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +42 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +24 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/kvStore.d.ts +27 -0
- package/dist/server/kvStore.d.ts.map +1 -0
- package/dist/server/kvStore.js +128 -0
- package/dist/server/kvStore.js.map +1 -0
- package/dist/server/runtimeSecurity.d.ts +28 -0
- package/dist/server/runtimeSecurity.d.ts.map +1 -0
- package/dist/server/runtimeSecurity.js +85 -0
- package/dist/server/runtimeSecurity.js.map +1 -0
- package/dist/server/types.d.ts +53 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +8 -0
- package/dist/server/types.js.map +1 -0
- package/dist/types/executionContext.d.ts +16 -0
- package/dist/types/executionContext.d.ts.map +1 -0
- package/dist/types/executionContext.js +3 -0
- package/dist/types/executionContext.js.map +1 -0
- package/package.json +77 -0
- package/src/agents/agentRegistry.ts +272 -0
- package/src/agents/image-agent.yaml +86 -0
- package/src/agents/joker-agent.yaml +47 -0
- package/src/agents/translator-agent.yaml +80 -0
- package/src/audit/auditTrail.ts +134 -0
- package/src/compliance/gdprEngine.ts +209 -0
- package/src/compliance/lgpdEngine.ts +268 -0
- package/src/config.ts +179 -0
- package/src/errors.ts +35 -0
- package/src/firebase/tenantManager.ts +443 -0
- package/src/index.ts +125 -0
- package/src/integration/secure-yaml-runtime.ts +341 -0
- package/src/parser/secure-yaml-parser.ts +273 -0
- package/src/performance/autoscaling.ts +495 -0
- package/src/performance/benchmark.ts +644 -0
- package/src/performance/index.ts +34 -0
- package/src/performance/monitor.ts +469 -0
- package/src/performance/streaming.ts +317 -0
- package/src/runtime/audit.ts +907 -0
- package/src/runtime/declarativeAgentRuntime.ts +836 -0
- package/src/runtime/isolatedRuntime.ts +572 -0
- package/src/runtime/schemaCompiler.ts +228 -0
- package/src/runtime/simpleRuntime.ts +201 -0
- package/src/security/dashboard.ts +462 -0
- package/src/security/hardening.ts +560 -0
- package/src/security/index.ts +439 -0
- package/src/security/monitor.ts +490 -0
- package/src/security/scanner.ts +368 -0
- package/src/security/score.ts +1138 -0
- package/src/security/threatDetector.ts +481 -0
- package/src/security/validation.ts +365 -0
- package/src/server/api/clientsRoute.ts +92 -0
- package/src/server/api/endpointsRoute.ts +97 -0
- package/src/server/api/graphql.ts +249 -0
- package/src/server/errors.ts +38 -0
- package/src/server/index.ts +6 -0
- package/src/server/kvStore.ts +152 -0
- package/src/server/runtimeSecurity.ts +102 -0
- package/src/server/types.ts +60 -0
- package/src/types/executionContext.ts +16 -0
- package/tools/seed.ts +365 -0
- package/tools/test-endpoints.ts +174 -0
|
@@ -0,0 +1,613 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.I18nValidatorMessages = exports.TranslationValidators = exports.SchemaFactory = exports.FormatterAgent = exports.GenkitAgent = exports.translatorSchema = exports.ValidatorAgent = void 0;
|
|
4
|
+
exports.translatorPipeline = translatorPipeline;
|
|
5
|
+
exports.createValidatorAgent = createValidatorAgent;
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
// 1. VALIDATOR-AGENT (Enhanced with comprehensive error handling)
|
|
8
|
+
class ValidatorAgent {
|
|
9
|
+
/**
|
|
10
|
+
* Enhanced validate input with comprehensive error handling and type safety
|
|
11
|
+
* @param schema - Zod schema for validation
|
|
12
|
+
* @param data - Unknown data to validate
|
|
13
|
+
* @param options - Validation behavior options
|
|
14
|
+
* @returns Validated typed data
|
|
15
|
+
* @throws {ValidationError} with detailed error information
|
|
16
|
+
*/
|
|
17
|
+
static validateInput(schema, data, options) {
|
|
18
|
+
const mergeOptions = { ...this.DEFAULT_OPTIONS, ...options };
|
|
19
|
+
try {
|
|
20
|
+
// Attempt to parse with configured options
|
|
21
|
+
const result = schema.parse(data);
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
26
|
+
const validationError = this.buildValidationError(error, mergeOptions);
|
|
27
|
+
throw validationError;
|
|
28
|
+
}
|
|
29
|
+
// Handle non-Zod errors
|
|
30
|
+
throw new Error(`Unexpected error during validation: ${error.message}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Safe validation that returns result object instead of throwing
|
|
35
|
+
*/
|
|
36
|
+
static safeValidate(schema, data, options) {
|
|
37
|
+
try {
|
|
38
|
+
const result = this.validateInput(schema, data, options);
|
|
39
|
+
return {
|
|
40
|
+
success: true,
|
|
41
|
+
data: result,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
return {
|
|
46
|
+
success: false,
|
|
47
|
+
error: error.campo !== undefined
|
|
48
|
+
? error
|
|
49
|
+
: this.buildValidationError(new zod_1.z.ZodError([
|
|
50
|
+
{
|
|
51
|
+
message: error instanceof Error
|
|
52
|
+
? error.message
|
|
53
|
+
: "Unknown validation error",
|
|
54
|
+
code: "custom",
|
|
55
|
+
path: [],
|
|
56
|
+
},
|
|
57
|
+
]), options),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Creates a cached schema validator for better performance
|
|
63
|
+
*/
|
|
64
|
+
static createCachedValidator(schema, schemaId, options) {
|
|
65
|
+
let cachedSchema = this.schemaCache.get(schemaId);
|
|
66
|
+
if (!cachedSchema) {
|
|
67
|
+
cachedSchema = schema;
|
|
68
|
+
this.schemaCache.set(schemaId, cachedSchema);
|
|
69
|
+
}
|
|
70
|
+
return function validate(data) {
|
|
71
|
+
return ValidatorAgent.validateInput(cachedSchema, data, options);
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Create a validator with pre-configured schema
|
|
76
|
+
*/
|
|
77
|
+
static createValidator(schema, options) {
|
|
78
|
+
return function validate(data) {
|
|
79
|
+
return ValidatorAgent.validateInput(schema, data, options);
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Build comprehensive validation error from ZodError
|
|
84
|
+
*/
|
|
85
|
+
static buildValidationError(zodError, options) {
|
|
86
|
+
// Zod v4 has different API - use issues property
|
|
87
|
+
const issues = zodError.issues?.map((issue) => ({
|
|
88
|
+
path: [...issue.path],
|
|
89
|
+
message: issue.message,
|
|
90
|
+
type: issue.code,
|
|
91
|
+
expected: issue.params?.expected,
|
|
92
|
+
received: issue.params?.received,
|
|
93
|
+
})) || [];
|
|
94
|
+
return {
|
|
95
|
+
campo: issues[0]?.path.join(".") || "root",
|
|
96
|
+
mensagem: `${issues.length} validation error(s) found. ${issues[0]?.message || "Validation failed"}`,
|
|
97
|
+
codigo: "VALIDATION_ERROR",
|
|
98
|
+
issues,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
static validateSchema(schema) {
|
|
102
|
+
if (schema._def?.typeName) {
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
throw new Error("Invalid Zod schema provided");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ValidatorAgent = ValidatorAgent;
|
|
109
|
+
ValidatorAgent.schemaCache = new Map();
|
|
110
|
+
ValidatorAgent.DEFAULT_OPTIONS = {
|
|
111
|
+
stripUnknown: false,
|
|
112
|
+
abortEarly: false,
|
|
113
|
+
allowExtraKeys: true,
|
|
114
|
+
};
|
|
115
|
+
// Schema específico para tradução (usado pelo validator)
|
|
116
|
+
exports.translatorSchema = zod_1.z.object({
|
|
117
|
+
texto: zod_1.z.string().min(1).max(10000),
|
|
118
|
+
idioma_origem: zod_1.z.string().regex(/^[a-z]{2}$/),
|
|
119
|
+
idioma_destino: zod_1.z.string().regex(/^[a-z]{2}$/),
|
|
120
|
+
});
|
|
121
|
+
// 2. GENKIT-AGENT (Parametrizado)
|
|
122
|
+
class GenkitAgent {
|
|
123
|
+
static async processResource(resource, params) {
|
|
124
|
+
// Validação via validator-agent
|
|
125
|
+
const validated = ValidatorAgent.validateInput(exports.translatorSchema, params);
|
|
126
|
+
// Processamento baseado no recurso
|
|
127
|
+
if (resource === "translate") {
|
|
128
|
+
return this.handleTranslation(validated);
|
|
129
|
+
}
|
|
130
|
+
throw new Error(`Recurso não suportado: ${resource}`);
|
|
131
|
+
}
|
|
132
|
+
static async handleTranslation(request) {
|
|
133
|
+
const startTime = Date.now();
|
|
134
|
+
try {
|
|
135
|
+
// Integração com Genkit (simulada - retorna JSON com 'translator: true')
|
|
136
|
+
// TODO: Implementar chamada HTTP real ao endpoint interno do Genkit
|
|
137
|
+
const genkitResponse = { translator: true };
|
|
138
|
+
if (!genkitResponse.translator) {
|
|
139
|
+
throw new Error("Falha na integração com Genkit");
|
|
140
|
+
}
|
|
141
|
+
// Cache TTL 3600s - simulação apenas com comentários
|
|
142
|
+
// TODO: Implementar cache com TTL 3600s quando o sistema real for criado
|
|
143
|
+
// Fallback entre modelos - preparação para implementação futura
|
|
144
|
+
// TODO: Adicionar lógica de fallback quando múltiplos modelos estiverem disponíveis
|
|
145
|
+
const textoTradu = this.processBasicTranslation(request);
|
|
146
|
+
const tempoProcessamento = Date.now() - startTime;
|
|
147
|
+
return {
|
|
148
|
+
texto_traduzido: textoTradu,
|
|
149
|
+
metadados: {
|
|
150
|
+
modelo_utilizado: "beddel-fallback-translator",
|
|
151
|
+
tempo_processamento: tempoProcessamento,
|
|
152
|
+
confianca: 0.8,
|
|
153
|
+
idiomas_suportados: this.IDIOMAS_SUPORTADOS,
|
|
154
|
+
},
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
catch (error) {
|
|
158
|
+
const tempoProcessamento = Date.now() - startTime;
|
|
159
|
+
console.error("Erro no GenkitAgent:", error);
|
|
160
|
+
return {
|
|
161
|
+
texto_traduzido: request.texto,
|
|
162
|
+
metadados: {
|
|
163
|
+
modelo_utilizado: "beddel-error-fallback",
|
|
164
|
+
tempo_processamento: tempoProcessamento,
|
|
165
|
+
confianca: 0.0,
|
|
166
|
+
idiomas_suportados: this.IDIOMAS_SUPORTADOS,
|
|
167
|
+
},
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
static processBasicTranslation(request) {
|
|
172
|
+
// Implementação simples de fallback para prova de conceito
|
|
173
|
+
const traducoes = new Map([
|
|
174
|
+
[
|
|
175
|
+
"pt",
|
|
176
|
+
{
|
|
177
|
+
olá: "hello",
|
|
178
|
+
mundo: "world",
|
|
179
|
+
"bom dia": "good morning",
|
|
180
|
+
"boa tarde": "good afternoon",
|
|
181
|
+
"boa noite": "good evening",
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
[
|
|
185
|
+
"en",
|
|
186
|
+
{
|
|
187
|
+
hello: "olá",
|
|
188
|
+
world: "mundo",
|
|
189
|
+
"good morning": "bom dia",
|
|
190
|
+
"good afternoon": "boa tarde",
|
|
191
|
+
"good evening": "boa noite",
|
|
192
|
+
},
|
|
193
|
+
],
|
|
194
|
+
[
|
|
195
|
+
"es",
|
|
196
|
+
{
|
|
197
|
+
hola: "hello",
|
|
198
|
+
mundo: "world",
|
|
199
|
+
},
|
|
200
|
+
],
|
|
201
|
+
[
|
|
202
|
+
"fr",
|
|
203
|
+
{
|
|
204
|
+
bonjour: "hello",
|
|
205
|
+
monde: "world",
|
|
206
|
+
},
|
|
207
|
+
],
|
|
208
|
+
]);
|
|
209
|
+
if (request.idioma_origem === request.idioma_destino) {
|
|
210
|
+
return request.texto;
|
|
211
|
+
}
|
|
212
|
+
const mapaTraducao = traducoes.get(request.idioma_origem);
|
|
213
|
+
if (!mapaTraducao) {
|
|
214
|
+
return request.texto;
|
|
215
|
+
}
|
|
216
|
+
let textoProcessado = request.texto;
|
|
217
|
+
if (mapaTraducao) {
|
|
218
|
+
Object.entries(mapaTraducao).forEach(([de, para]) => {
|
|
219
|
+
const regex = new RegExp(de, "gi");
|
|
220
|
+
textoProcessado = textoProcessado.replace(regex, para);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
return textoProcessado;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.GenkitAgent = GenkitAgent;
|
|
227
|
+
GenkitAgent.IDIOMAS_SUPORTADOS = ["pt", "en", "es", "fr"];
|
|
228
|
+
// 3. FORMATTER-OUTPUT-AGENT
|
|
229
|
+
class FormatterAgent {
|
|
230
|
+
static formatOutput(data) {
|
|
231
|
+
try {
|
|
232
|
+
// Validação contra schema de saída
|
|
233
|
+
const validated = this.OUTPUT_SCHEMA.parse(data);
|
|
234
|
+
// Enriquecimento dos metadados
|
|
235
|
+
const metadadosEnriquecidos = {
|
|
236
|
+
...validated.metadados,
|
|
237
|
+
idiomas_suportados: validated.metadados.idiomas_suportados || [
|
|
238
|
+
"pt",
|
|
239
|
+
"en",
|
|
240
|
+
"es",
|
|
241
|
+
"fr",
|
|
242
|
+
],
|
|
243
|
+
timestamp: new Date().toISOString(),
|
|
244
|
+
versao_agent: "1.0.0",
|
|
245
|
+
};
|
|
246
|
+
return {
|
|
247
|
+
texto_traduzido: validated.texto_traduzido,
|
|
248
|
+
metadados: metadadosEnriquecidos,
|
|
249
|
+
};
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
if (error instanceof zod_1.z.ZodError) {
|
|
253
|
+
throw new Error(`Formato de saída inválido: ${error.issues[0]?.message}`);
|
|
254
|
+
}
|
|
255
|
+
throw error;
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
exports.FormatterAgent = FormatterAgent;
|
|
260
|
+
FormatterAgent.OUTPUT_SCHEMA = zod_1.z.object({
|
|
261
|
+
texto_traduzido: zod_1.z.string(),
|
|
262
|
+
metadados: zod_1.z.object({
|
|
263
|
+
modelo_utilizado: zod_1.z.string(),
|
|
264
|
+
tempo_processamento: zod_1.z.number().min(0),
|
|
265
|
+
confianca: zod_1.z.number().min(0).max(1),
|
|
266
|
+
idiomas_suportados: zod_1.z.array(zod_1.z.string()).optional(),
|
|
267
|
+
}),
|
|
268
|
+
});
|
|
269
|
+
async function translatorPipeline(request, config) {
|
|
270
|
+
try {
|
|
271
|
+
// 1. Processar via genkit-agent
|
|
272
|
+
const result = await GenkitAgent.processResource(config?.resource || "translate", request);
|
|
273
|
+
// 2. Formatar e validar saída
|
|
274
|
+
const formatted = FormatterAgent.formatOutput(result);
|
|
275
|
+
return formatted;
|
|
276
|
+
}
|
|
277
|
+
catch (error) {
|
|
278
|
+
console.error("Erro no pipeline de tradução:", error);
|
|
279
|
+
throw error;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
// Função auxiliar para validação de esquemas genéricos
|
|
283
|
+
function createValidatorAgent(schema) {
|
|
284
|
+
return function validate(data) {
|
|
285
|
+
return ValidatorAgent.validateInput(schema, data);
|
|
286
|
+
};
|
|
287
|
+
}
|
|
288
|
+
// 6. SchemaFactory - Dynamic schema generation for translation domain
|
|
289
|
+
class SchemaFactory {
|
|
290
|
+
/**
|
|
291
|
+
* Creates a dynamic translation request schema with custom validation rules
|
|
292
|
+
*/
|
|
293
|
+
static createTranslationSchema(options) {
|
|
294
|
+
const { maxTextLength = this.MAX_TEXT_LENGTH, supportedLanguages = this.IDIOMAS_SUPORTADOS, requireMetadata = false, } = options || {};
|
|
295
|
+
const languageRegex = new RegExp(`^(${supportedLanguages.join("|")})$`);
|
|
296
|
+
const baseSchema = zod_1.z.object({
|
|
297
|
+
texto: zod_1.z
|
|
298
|
+
.string()
|
|
299
|
+
.min(this.MIN_TEXT_LENGTH, "Texto precisa ter pelo menos 1 caractere")
|
|
300
|
+
.max(maxTextLength, `Texto não pode exceder ${maxTextLength} caracteres`)
|
|
301
|
+
.refine((text) => !requireMetadata || text.length > 10, {
|
|
302
|
+
message: "Texto com metadata requerido precisa ter mais de 10 caracteres",
|
|
303
|
+
}),
|
|
304
|
+
idioma_origem: zod_1.z
|
|
305
|
+
.string()
|
|
306
|
+
.regex(languageRegex, `Idioma de origem precisa ser um dos seguintes: ${supportedLanguages.join(", ")}`),
|
|
307
|
+
idioma_destino: zod_1.z
|
|
308
|
+
.string()
|
|
309
|
+
.regex(languageRegex, `Idioma de destino precisa ser um dos seguintes: ${supportedLanguages.join(", ")}`),
|
|
310
|
+
});
|
|
311
|
+
// Add validation to prevent same source and target language
|
|
312
|
+
return baseSchema.refine((data) => data.idioma_origem !== data.idioma_destino, {
|
|
313
|
+
message: "Idioma de origem e destino não podem ser iguais",
|
|
314
|
+
path: ["idioma_destino"],
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Creates a schema for translation response with enhanced validation
|
|
319
|
+
*/
|
|
320
|
+
static createTranslationResponseSchema(options = {}) {
|
|
321
|
+
const { minConfidence = 0, maxProcessingTime = 30000, // 30 seconds
|
|
322
|
+
includeLanguageSupport = true, } = options;
|
|
323
|
+
const baseSchema = zod_1.z.object({
|
|
324
|
+
texto_traduzido: zod_1.z
|
|
325
|
+
.string()
|
|
326
|
+
.min(1, "Texto traduzido não pode estar vazio"),
|
|
327
|
+
metadados: zod_1.z.object({
|
|
328
|
+
modelo_utilizado: zod_1.z.string().min(1),
|
|
329
|
+
tempo_processamento: zod_1.z
|
|
330
|
+
.number()
|
|
331
|
+
.min(0)
|
|
332
|
+
.max(maxProcessingTime, `Tempo de processamento não pode exceder ${maxProcessingTime}ms`),
|
|
333
|
+
confianca: zod_1.z
|
|
334
|
+
.number()
|
|
335
|
+
.min(minConfidence)
|
|
336
|
+
.max(1, "Confiança precisa estar entre 0 e 1"),
|
|
337
|
+
idiomas_suportados: includeLanguageSupport
|
|
338
|
+
? zod_1.z.array(zod_1.z.string()).min(1)
|
|
339
|
+
: zod_1.z.array(zod_1.z.string()).optional(),
|
|
340
|
+
timestamp: zod_1.z.string().datetime().optional(),
|
|
341
|
+
versao_agent: zod_1.z.string().optional(),
|
|
342
|
+
}),
|
|
343
|
+
});
|
|
344
|
+
return baseSchema;
|
|
345
|
+
}
|
|
346
|
+
/**
|
|
347
|
+
* Creates a schema for batch translation requests
|
|
348
|
+
*/
|
|
349
|
+
static createBatchTranslationSchema(maxBatchSize = 100) {
|
|
350
|
+
return zod_1.z
|
|
351
|
+
.array(this.createTranslationSchema())
|
|
352
|
+
.min(1, "Precisa ter pelo menos uma requisição de tradução")
|
|
353
|
+
.max(maxBatchSize, `Lote não pode exceder ${maxBatchSize} requisições`)
|
|
354
|
+
.refine((requests) => {
|
|
355
|
+
const uniquePairs = new Set(requests.map((req) => `${req.idioma_origem}-${req.idioma_destino}`));
|
|
356
|
+
return uniquePairs.size === requests.length;
|
|
357
|
+
}, {
|
|
358
|
+
message: "Todas as requisições em lote precisam ter pares únicos de idioma origem-destino",
|
|
359
|
+
});
|
|
360
|
+
}
|
|
361
|
+
/**
|
|
362
|
+
* Creates a schema for translation configuration
|
|
363
|
+
*/
|
|
364
|
+
static createTranslationConfigSchema() {
|
|
365
|
+
return zod_1.z.object({
|
|
366
|
+
sourceLanguage: zod_1.z.enum(this.IDIOMAS_SUPORTADOS),
|
|
367
|
+
targetLanguage: zod_1.z.enum(this.IDIOMAS_SUPORTADOS),
|
|
368
|
+
preserveFormatting: zod_1.z.boolean().optional().default(true),
|
|
369
|
+
enableCache: zod_1.z.boolean().optional().default(true),
|
|
370
|
+
cacheTTL: zod_1.z.number().min(60).max(86400).optional().default(3600),
|
|
371
|
+
fallbackModel: zod_1.z.string().optional(),
|
|
372
|
+
confidenceThreshold: zod_1.z.number().min(0).max(1).optional().default(0.7),
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
exports.SchemaFactory = SchemaFactory;
|
|
377
|
+
SchemaFactory.IDIOMAS_SUPORTADOS = [
|
|
378
|
+
"pt",
|
|
379
|
+
"en",
|
|
380
|
+
"es",
|
|
381
|
+
"fr",
|
|
382
|
+
];
|
|
383
|
+
SchemaFactory.MAX_TEXT_LENGTH = 10000;
|
|
384
|
+
SchemaFactory.MIN_TEXT_LENGTH = 1;
|
|
385
|
+
// 7. Domain-Specific Validators for Translation
|
|
386
|
+
class TranslationValidators {
|
|
387
|
+
/**
|
|
388
|
+
* Validates if text contains appropriate characters for the target language
|
|
389
|
+
*/
|
|
390
|
+
static validateTextForLanguage(text, language) {
|
|
391
|
+
try {
|
|
392
|
+
// Basic validation for special characters
|
|
393
|
+
if (this.LINGUAS_COM_CARACTERES_ESPECIAIS.includes(language)) {
|
|
394
|
+
// Allow accented characters
|
|
395
|
+
const accentedTextRegex = /^[\p{L}\p{N}\s.,!?;:'"()-]+$/u;
|
|
396
|
+
if (!accentedTextRegex.test(text)) {
|
|
397
|
+
return {
|
|
398
|
+
success: false,
|
|
399
|
+
error: {
|
|
400
|
+
campo: "texto",
|
|
401
|
+
mensagem: "Texto contém caracteres inválidos para idiomas com acentuação",
|
|
402
|
+
codigo: "INVALID_CHARACTERS_FOR_LANGUAGE",
|
|
403
|
+
},
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
return { success: true, data: true };
|
|
408
|
+
}
|
|
409
|
+
catch (error) {
|
|
410
|
+
return {
|
|
411
|
+
success: false,
|
|
412
|
+
error: {
|
|
413
|
+
campo: "texto",
|
|
414
|
+
mensagem: "Erro ao validar texto para idioma",
|
|
415
|
+
codigo: "LANGUAGE_VALIDATION_ERROR",
|
|
416
|
+
},
|
|
417
|
+
};
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
/**
|
|
421
|
+
* Validates translation confidence level
|
|
422
|
+
*/
|
|
423
|
+
static validateConfidenceLevel(confidence, threshold = 0.5) {
|
|
424
|
+
if (confidence < 0 || confidence > 1) {
|
|
425
|
+
return {
|
|
426
|
+
success: false,
|
|
427
|
+
error: {
|
|
428
|
+
campo: "confianca",
|
|
429
|
+
mensagem: "Nível de confiança precisa estar entre 0 e 1",
|
|
430
|
+
codigo: "INVALID_CONFIDENCE_RANGE",
|
|
431
|
+
},
|
|
432
|
+
};
|
|
433
|
+
}
|
|
434
|
+
if (confidence < threshold) {
|
|
435
|
+
return {
|
|
436
|
+
success: false,
|
|
437
|
+
error: {
|
|
438
|
+
campo: "confianca",
|
|
439
|
+
mensagem: `Nível de confiança (${confidence}) abaixo do limiar mínimo (${threshold})`,
|
|
440
|
+
codigo: "CONFIDENCE_BELOW_THRESHOLD",
|
|
441
|
+
},
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
return { success: true, data: true };
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Validates language compatibility
|
|
448
|
+
*/
|
|
449
|
+
static validateLanguageCompatibility(sourceLang, targetLang, supportedPairs) {
|
|
450
|
+
if (sourceLang === targetLang) {
|
|
451
|
+
return {
|
|
452
|
+
success: false,
|
|
453
|
+
error: {
|
|
454
|
+
campo: "idioma_destino",
|
|
455
|
+
mensagem: "Idioma de origem e destino não podem ser iguais",
|
|
456
|
+
codigo: "SAME_SOURCE_TARGET_LANGUAGE",
|
|
457
|
+
},
|
|
458
|
+
};
|
|
459
|
+
}
|
|
460
|
+
if (supportedPairs) {
|
|
461
|
+
const pair = `${sourceLang}-${targetLang}`;
|
|
462
|
+
if (!supportedPairs.has(pair)) {
|
|
463
|
+
return {
|
|
464
|
+
success: false,
|
|
465
|
+
error: {
|
|
466
|
+
campo: "idioma_destino",
|
|
467
|
+
mensagem: `Par de tradução ${pair} não é suportado`,
|
|
468
|
+
codigo: "UNSUPPORTED_LANGUAGE_PAIR",
|
|
469
|
+
},
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
return { success: true, data: true };
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Validates translation request limits
|
|
477
|
+
*/
|
|
478
|
+
static validateTranslationLimits(request, limits) {
|
|
479
|
+
const { maxTextLength = 10000, minTextLength = 1, supportedLanguages = ["pt", "en", "es", "fr"], } = limits || {};
|
|
480
|
+
// Text length validation
|
|
481
|
+
if (request.texto.length < minTextLength) {
|
|
482
|
+
return {
|
|
483
|
+
success: false,
|
|
484
|
+
error: {
|
|
485
|
+
campo: "texto",
|
|
486
|
+
mensagem: `Texto precisa ter pelo menos ${minTextLength} caractere${minTextLength > 1 ? "s" : ""}`,
|
|
487
|
+
codigo: "TEXT_TOO_SHORT",
|
|
488
|
+
},
|
|
489
|
+
};
|
|
490
|
+
}
|
|
491
|
+
if (request.texto.length > maxTextLength) {
|
|
492
|
+
return {
|
|
493
|
+
success: false,
|
|
494
|
+
error: {
|
|
495
|
+
campo: "texto",
|
|
496
|
+
mensagem: `Texto não pode exceder ${maxTextLength} caracteres`,
|
|
497
|
+
codigo: "TEXT_TOO_LONG",
|
|
498
|
+
},
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
// Language validation
|
|
502
|
+
if (!supportedLanguages.includes(request.idioma_origem)) {
|
|
503
|
+
return {
|
|
504
|
+
success: false,
|
|
505
|
+
error: {
|
|
506
|
+
campo: "idioma_origem",
|
|
507
|
+
mensagem: `Idioma de origem '${request.idioma_origem}' não é suportado. Idiomas suportados: ${supportedLanguages.join(", ")}`,
|
|
508
|
+
codigo: "UNSUPPORTED_SOURCE_LANGUAGE",
|
|
509
|
+
},
|
|
510
|
+
};
|
|
511
|
+
}
|
|
512
|
+
if (!supportedLanguages.includes(request.idioma_destino)) {
|
|
513
|
+
return {
|
|
514
|
+
success: false,
|
|
515
|
+
error: {
|
|
516
|
+
campo: "idioma_destino",
|
|
517
|
+
mensagem: `Idioma de destino '${request.idioma_destino}' não é suportado. Idiomas suportados: ${supportedLanguages.join(", ")}`,
|
|
518
|
+
codigo: "UNSUPPORTED_TARGET_LANGUAGE",
|
|
519
|
+
},
|
|
520
|
+
};
|
|
521
|
+
}
|
|
522
|
+
return { success: true, data: request };
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
exports.TranslationValidators = TranslationValidators;
|
|
526
|
+
TranslationValidators.LINGUAS_COM_CARACTERES_ESPECIAIS = ["pt", "es", "fr"];
|
|
527
|
+
TranslationValidators.LINGUAS_SEM_ACENTOS = ["en"];
|
|
528
|
+
// 8. Internationalization Support for Error Messages
|
|
529
|
+
class I18nValidatorMessages {
|
|
530
|
+
/**
|
|
531
|
+
* Get localized error message
|
|
532
|
+
*/
|
|
533
|
+
static getLocalizedMessage(errorCode, language = "en") {
|
|
534
|
+
const lang = language in this.messages ? language : "en";
|
|
535
|
+
const messageMap = this.messages[lang];
|
|
536
|
+
return messageMap[errorCode] || errorCode;
|
|
537
|
+
}
|
|
538
|
+
/**
|
|
539
|
+
* Localize validation error
|
|
540
|
+
*/
|
|
541
|
+
static localizeValidationError(error, language = "en") {
|
|
542
|
+
const localizedMessage = this.getLocalizedMessage(error.codigo, language);
|
|
543
|
+
return {
|
|
544
|
+
...error,
|
|
545
|
+
mensagem: localizedMessage,
|
|
546
|
+
// Also localize issue messages if they exist
|
|
547
|
+
issues: error.issues?.map((issue) => ({
|
|
548
|
+
...issue,
|
|
549
|
+
message: this.getLocalizedMessage(issue.type, language),
|
|
550
|
+
})),
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
}
|
|
554
|
+
exports.I18nValidatorMessages = I18nValidatorMessages;
|
|
555
|
+
I18nValidatorMessages.messages = {
|
|
556
|
+
pt: {
|
|
557
|
+
VALIDATION_ERROR: "Erro de validação",
|
|
558
|
+
TEXT_TOO_SHORT: "Texto muito curto",
|
|
559
|
+
TEXT_TOO_LONG: "Texto muito longo",
|
|
560
|
+
INVALID_EMAIL: "Email inválido",
|
|
561
|
+
INVALID_CONFIDENCE_RANGE: "Faixa de confiança inválida",
|
|
562
|
+
CONFIDENCE_BELOW_THRESHOLD: "Confiança abaixo do limiar",
|
|
563
|
+
UNSUPPORTED_SOURCE_LANGUAGE: "Idioma de origem não suportado",
|
|
564
|
+
UNSUPPORTED_TARGET_LANGUAGE: "Idioma de destino não suportado",
|
|
565
|
+
SAME_SOURCE_TARGET_LANGUAGE: "Idioma de origem e destino não podem ser iguais",
|
|
566
|
+
INVALID_CHARACTERS_FOR_LANGUAGE: "Caracteres inválidos para o idioma",
|
|
567
|
+
LANGUAGE_VALIDATION_ERROR: "Erro na validação do idioma",
|
|
568
|
+
UNSUPPORTED_LANGUAGE_PAIR: "Par de idiomas não suportado",
|
|
569
|
+
},
|
|
570
|
+
en: {
|
|
571
|
+
VALIDATION_ERROR: "Validation error",
|
|
572
|
+
TEXT_TOO_SHORT: "Text too short",
|
|
573
|
+
TEXT_TOO_LONG: "Text too long",
|
|
574
|
+
INVALID_EMAIL: "Invalid email",
|
|
575
|
+
INVALID_CONFIDENCE_RANGE: "Invalid confidence range",
|
|
576
|
+
CONFIDENCE_BELOW_THRESHOLD: "Confidence below threshold",
|
|
577
|
+
UNSUPPORTED_SOURCE_LANGUAGE: "Unsupported source language",
|
|
578
|
+
UNSUPPORTED_TARGET_LANGUAGE: "Unsupported target language",
|
|
579
|
+
SAME_SOURCE_TARGET_LANGUAGE: "Source and target language cannot be the same",
|
|
580
|
+
INVALID_CHARACTERS_FOR_LANGUAGE: "Invalid characters for language",
|
|
581
|
+
LANGUAGE_VALIDATION_ERROR: "Language validation error",
|
|
582
|
+
UNSUPPORTED_LANGUAGE_PAIR: "Unsupported language pair",
|
|
583
|
+
},
|
|
584
|
+
es: {
|
|
585
|
+
VALIDATION_ERROR: "Error de validación",
|
|
586
|
+
TEXT_TOO_SHORT: "Texto muy corto",
|
|
587
|
+
TEXT_TOO_LONG: "Texto muy largo",
|
|
588
|
+
INVALID_EMAIL: "Email inválido",
|
|
589
|
+
INVALID_CONFIDENCE_RANGE: "Rango de confianza inválido",
|
|
590
|
+
CONFIDENCE_BELOW_THRESHOLD: "Confianza por debajo del umbral",
|
|
591
|
+
UNSUPPORTED_SOURCE_LANGUAGE: "Idioma de origen no soportado",
|
|
592
|
+
UNSUPPORTED_TARGET_LANGUAGE: "Idioma de destino no soportado",
|
|
593
|
+
SAME_SOURCE_TARGET_LANGUAGE: "El idioma de origen y destino no pueden ser iguales",
|
|
594
|
+
INVALID_CHARACTERS_FOR_LANGUAGE: "Caracteres inválidos para el idioma",
|
|
595
|
+
LANGUAGE_VALIDATION_ERROR: "Error en la validación del idioma",
|
|
596
|
+
UNSUPPORTED_LANGUAGE_PAIR: "Par de idiomas no soportado",
|
|
597
|
+
},
|
|
598
|
+
fr: {
|
|
599
|
+
VALIDATION_ERROR: "Erreur de validation",
|
|
600
|
+
TEXT_TOO_SHORT: "Texte trop court",
|
|
601
|
+
TEXT_TOO_LONG: "Texte trop long",
|
|
602
|
+
INVALID_EMAIL: "Email invalide",
|
|
603
|
+
INVALID_CONFIDENCE_RANGE: "Plage de confiance invalide",
|
|
604
|
+
CONFIDENCE_BELOW_THRESHOLD: "Confiance sous le seuil",
|
|
605
|
+
UNSUPPORTED_SOURCE_LANGUAGE: "Langue source non supportée",
|
|
606
|
+
UNSUPPORTED_TARGET_LANGUAGE: "Langue cible non supportée",
|
|
607
|
+
SAME_SOURCE_TARGET_LANGUAGE: "La langue source et cible ne peuvent pas être identiques",
|
|
608
|
+
INVALID_CHARACTERS_FOR_LANGUAGE: "Caractères invalides pour la langue",
|
|
609
|
+
LANGUAGE_VALIDATION_ERROR: "Erreur de validation de la langue",
|
|
610
|
+
UNSUPPORTED_LANGUAGE_PAIR: "Paire de langues non supportée",
|
|
611
|
+
},
|
|
612
|
+
};
|
|
613
|
+
//# sourceMappingURL=translator-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"translator-agents.js","sourceRoot":"","sources":["../../src/agents/translator-agents.ts"],"names":[],"mappings":"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"}
|