@runflow-ai/sdk 1.0.17 → 1.0.19

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 (38) hide show
  1. package/README.md +14 -4
  2. package/dist/core/agent.d.ts +5 -30
  3. package/dist/core/agent.d.ts.map +1 -1
  4. package/dist/core/agent.js +259 -472
  5. package/dist/core/agent.js.map +1 -1
  6. package/dist/core/context.d.ts.map +1 -1
  7. package/dist/core/context.js +1 -11
  8. package/dist/core/context.js.map +1 -1
  9. package/dist/core/helpers/agent-context.d.ts +23 -0
  10. package/dist/core/helpers/agent-context.d.ts.map +1 -0
  11. package/dist/core/helpers/agent-context.js +90 -0
  12. package/dist/core/helpers/agent-context.js.map +1 -0
  13. package/dist/core/helpers/agent-memory.d.ts +17 -0
  14. package/dist/core/helpers/agent-memory.d.ts.map +1 -0
  15. package/dist/core/helpers/agent-memory.js +194 -0
  16. package/dist/core/helpers/agent-memory.js.map +1 -0
  17. package/dist/core/helpers/agent-rag.d.ts +22 -0
  18. package/dist/core/helpers/agent-rag.d.ts.map +1 -0
  19. package/dist/core/helpers/agent-rag.js +216 -0
  20. package/dist/core/helpers/agent-rag.js.map +1 -0
  21. package/dist/core/helpers/agent-utils.d.ts +13 -0
  22. package/dist/core/helpers/agent-utils.d.ts.map +1 -0
  23. package/dist/core/helpers/agent-utils.js +35 -0
  24. package/dist/core/helpers/agent-utils.js.map +1 -0
  25. package/dist/core/logger.d.ts +22 -0
  26. package/dist/core/logger.d.ts.map +1 -0
  27. package/dist/core/logger.js +91 -0
  28. package/dist/core/logger.js.map +1 -0
  29. package/dist/core/performance-logger.d.ts +45 -0
  30. package/dist/core/performance-logger.d.ts.map +1 -0
  31. package/dist/core/performance-logger.js +140 -0
  32. package/dist/core/performance-logger.js.map +1 -0
  33. package/dist/observability/trace-collector.d.ts.map +1 -1
  34. package/dist/observability/trace-collector.js +0 -16
  35. package/dist/observability/trace-collector.js.map +1 -1
  36. package/dist/types/all-types.d.ts +11 -3
  37. package/dist/types/all-types.d.ts.map +1 -1
  38. package/package.json +3 -1
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRAGTools = createRAGTools;
4
+ exports.createRAGTool = createRAGTool;
5
+ exports.performRAG = performRAG;
6
+ // ============================================================================
7
+ // AGENTIC RAG - Create Tools Automatically
8
+ // ============================================================================
9
+ /**
10
+ * Cria tools de RAG automaticamente baseado na configuração
11
+ * LLM decide quando buscar (não busca sempre)
12
+ */
13
+ function createRAGTools(ragConfig, logger) {
14
+ const tools = {};
15
+ logger?.debug('Creating RAG tools', {
16
+ hasVectorStore: !!ragConfig.vectorStore,
17
+ hasVectorStores: !!ragConfig.vectorStores
18
+ });
19
+ // Caso 1: KB única (simples)
20
+ if (ragConfig.vectorStore) {
21
+ logger?.debug('Creating single knowledge base tool', {
22
+ vectorStore: ragConfig.vectorStore
23
+ });
24
+ tools['searchKnowledge'] = createRAGTool({
25
+ id: 'knowledge',
26
+ name: ragConfig.vectorStore,
27
+ threshold: ragConfig.threshold || 0.7,
28
+ k: ragConfig.k || 5,
29
+ description: ragConfig.toolDescription || `Search in ${ragConfig.vectorStore} knowledge base for relevant information`,
30
+ }, logger);
31
+ }
32
+ // Caso 2: Múltiplas KBs (avançado) - ARRAY
33
+ if (ragConfig.vectorStores && Array.isArray(ragConfig.vectorStores)) {
34
+ logger?.debug('Creating multiple knowledge base tools', {
35
+ count: ragConfig.vectorStores.length
36
+ });
37
+ for (const vs of ragConfig.vectorStores) {
38
+ const toolName = `search_${vs.id}`;
39
+ logger?.debug('Creating KB tool', {
40
+ toolName,
41
+ vectorStore: vs.name
42
+ });
43
+ tools[toolName] = createRAGTool({
44
+ id: vs.id,
45
+ name: vs.name,
46
+ threshold: vs.threshold || ragConfig.threshold || 0.7,
47
+ k: vs.k || ragConfig.k || 5,
48
+ description: vs.description || `Search in ${vs.name} knowledge base`,
49
+ }, logger);
50
+ }
51
+ }
52
+ logger?.info('RAG tools created', {
53
+ toolsCount: Object.keys(tools).length,
54
+ toolNames: Object.keys(tools)
55
+ });
56
+ return tools;
57
+ }
58
+ /**
59
+ * Cria uma tool individual de RAG
60
+ */
61
+ function createRAGTool(config, logger) {
62
+ return {
63
+ id: `search-${config.id}`,
64
+ name: `search_${config.id}`,
65
+ description: config.description,
66
+ parameters: {
67
+ query: {
68
+ type: 'string',
69
+ description: 'Search query to find relevant information',
70
+ required: true,
71
+ },
72
+ },
73
+ execute: async (params, context) => {
74
+ const searchStartTime = Date.now();
75
+ logger?.debug('Executing RAG search', {
76
+ toolId: config.id,
77
+ query: params.query,
78
+ vectorStore: config.name,
79
+ k: config.k,
80
+ threshold: config.threshold
81
+ });
82
+ try {
83
+ const results = await context.runflowAPI.vectorSearch(params.query, {
84
+ vectorStore: config.name,
85
+ k: config.k,
86
+ threshold: config.threshold,
87
+ });
88
+ const formattedResults = results.results.map((r) => ({
89
+ content: r.content,
90
+ score: r.score,
91
+ metadata: r.metadata,
92
+ }));
93
+ if (formattedResults.length === 0) {
94
+ logger?.debug('No RAG results found', {
95
+ toolId: config.id,
96
+ query: params.query,
97
+ processingTimeMs: Date.now() - searchStartTime
98
+ });
99
+ return {
100
+ found: false,
101
+ message: 'No relevant information found in knowledge base',
102
+ results: [],
103
+ };
104
+ }
105
+ logger?.info('RAG search completed', {
106
+ toolId: config.id,
107
+ resultsCount: formattedResults.length,
108
+ topScore: formattedResults[0]?.score,
109
+ processingTimeMs: Date.now() - searchStartTime
110
+ });
111
+ return {
112
+ found: true,
113
+ count: formattedResults.length,
114
+ results: formattedResults,
115
+ context: formattedResults.map((r, i) => `[Result ${i + 1}] (score: ${r.score.toFixed(2)})\n${r.content}`).join('\n\n---\n\n'),
116
+ };
117
+ }
118
+ catch (error) {
119
+ logger?.error('RAG search failed', {
120
+ toolId: config.id,
121
+ query: params.query,
122
+ error: error instanceof Error ? error.message : 'Unknown error',
123
+ processingTimeMs: Date.now() - searchStartTime
124
+ });
125
+ return {
126
+ found: false,
127
+ error: error instanceof Error ? error.message : 'Search failed',
128
+ results: [],
129
+ };
130
+ }
131
+ },
132
+ };
133
+ }
134
+ /**
135
+ * RAG automático (DEPRECATED - mantido para compatibilidade temporária)
136
+ */
137
+ async function performRAG(query, ragConfig, apiClient, traceCollector, logger) {
138
+ const ragStartTime = Date.now();
139
+ logger?.debug('Performing automatic RAG search', {
140
+ query,
141
+ vectorStore: ragConfig.vectorStore,
142
+ k: ragConfig.k || 5,
143
+ threshold: ragConfig.threshold || 0.7
144
+ });
145
+ const ragSpan = traceCollector?.startSpan('rag_search', {
146
+ operation: 'vector_search',
147
+ vectorStore: ragConfig.vectorStore,
148
+ k: ragConfig.k || 5,
149
+ threshold: ragConfig.threshold || 0.7,
150
+ });
151
+ ragSpan?.setInput({ query });
152
+ try {
153
+ const searchResults = await apiClient.vectorSearch(query, {
154
+ vectorStore: ragConfig.vectorStore,
155
+ k: ragConfig.k || 5,
156
+ threshold: ragConfig.threshold || 0.7,
157
+ });
158
+ if (searchResults.results.length === 0) {
159
+ logger?.debug('No RAG results found', {
160
+ query,
161
+ processingTimeMs: Date.now() - ragStartTime
162
+ });
163
+ ragSpan?.setOutput({ resultsCount: 0, hasResults: false });
164
+ ragSpan?.setMetadata({
165
+ operation: 'vector_search',
166
+ vectorStore: ragConfig.vectorStore,
167
+ resultsCount: 0,
168
+ processingTimeMs: Date.now() - ragStartTime,
169
+ success: true,
170
+ });
171
+ ragSpan?.finish();
172
+ return null;
173
+ }
174
+ const context = searchResults.results
175
+ .map((result) => result.content)
176
+ .join('\n\n');
177
+ logger?.info('RAG search completed', {
178
+ resultsCount: searchResults.results.length,
179
+ contextLength: context.length,
180
+ processingTimeMs: Date.now() - ragStartTime
181
+ });
182
+ ragSpan?.setOutput({
183
+ resultsCount: searchResults.results.length,
184
+ hasResults: true,
185
+ contextLength: context.length,
186
+ });
187
+ ragSpan?.setMetadata({
188
+ operation: 'vector_search',
189
+ vectorStore: ragConfig.vectorStore,
190
+ resultsCount: searchResults.results.length,
191
+ k: ragConfig.k || 5,
192
+ threshold: ragConfig.threshold || 0.7,
193
+ processingTimeMs: Date.now() - ragStartTime,
194
+ success: true,
195
+ });
196
+ ragSpan?.finish();
197
+ return context;
198
+ }
199
+ catch (error) {
200
+ logger?.error('RAG search failed', {
201
+ query,
202
+ error: error instanceof Error ? error.message : 'Unknown error',
203
+ processingTimeMs: Date.now() - ragStartTime
204
+ });
205
+ ragSpan?.setMetadata({
206
+ operation: 'vector_search',
207
+ vectorStore: ragConfig.vectorStore,
208
+ success: false,
209
+ error: error instanceof Error ? error.message : 'Unknown error',
210
+ processingTimeMs: Date.now() - ragStartTime,
211
+ });
212
+ ragSpan?.finish();
213
+ return null;
214
+ }
215
+ }
216
+ //# sourceMappingURL=agent-rag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-rag.js","sourceRoot":"","sources":["../../../src/core/helpers/agent-rag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { Logger } from 'pino';
2
+ /**
3
+ * Processa chunks de streaming
4
+ */
5
+ export declare function processStreamChunks(stream: AsyncIterable<any>, logger?: Logger): AsyncIterable<{
6
+ text: string;
7
+ done: boolean;
8
+ }>;
9
+ /**
10
+ * Obtém lista de tools utilizadas (para traces)
11
+ */
12
+ export declare function getUsedTools(tools?: Record<string, any>): string[];
13
+ //# sourceMappingURL=agent-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-utils.d.ts","sourceRoot":"","sources":["../../../src/core/helpers/agent-utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAM9B;;GAEG;AACH,wBAAuB,mBAAmB,CACxC,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,EAC1B,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC,CAahD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,CAGlE"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.processStreamChunks = processStreamChunks;
4
+ exports.getUsedTools = getUsedTools;
5
+ // ============================================================================
6
+ // UTILITY FUNCTIONS
7
+ // ============================================================================
8
+ /**
9
+ * Processa chunks de streaming
10
+ */
11
+ async function* processStreamChunks(stream, logger) {
12
+ for await (const chunk of stream) {
13
+ if (chunk.type === 'content') {
14
+ yield { text: chunk.content || '', done: false };
15
+ }
16
+ else if (chunk.type === 'done') {
17
+ logger?.debug('Stream completed');
18
+ yield { text: '', done: true };
19
+ break;
20
+ }
21
+ else if (chunk.type === 'error') {
22
+ logger?.error('Stream error', { error: chunk.error });
23
+ throw new Error(chunk.error || 'Streaming error');
24
+ }
25
+ }
26
+ }
27
+ /**
28
+ * Obtém lista de tools utilizadas (para traces)
29
+ */
30
+ function getUsedTools(tools) {
31
+ if (!tools)
32
+ return [];
33
+ return Object.keys(tools);
34
+ }
35
+ //# sourceMappingURL=agent-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-utils.js","sourceRoot":"","sources":["../../../src/core/helpers/agent-utils.ts"],"names":[],"mappings":";;AASA,kDAgBC;AAKD,oCAGC;AA/BD,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACI,KAAK,SAAS,CAAC,CAAC,mBAAmB,CACxC,MAA0B,EAC1B,MAAe;IAEf,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACnD,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACjC,MAAM,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC;YAClC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;aAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAClC,MAAM,EAAE,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,IAAI,iBAAiB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAAC,KAA2B;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,CAAC;IACtB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { Logger } from 'pino';
2
+ export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
3
+ export interface LoggerConfig {
4
+ level?: LogLevel;
5
+ enabled?: boolean;
6
+ pretty?: boolean;
7
+ name?: string;
8
+ }
9
+ /**
10
+ * Cria logger Pino configurado para o Runflow SDK
11
+ *
12
+ * Configuração por ordem de prioridade:
13
+ * 1. Parâmetros passados diretamente
14
+ * 2. Variáveis de ambiente (RUNFLOW_LOG_LEVEL, RUNFLOW_DEBUG)
15
+ * 3. Defaults (info em produção, debug em desenvolvimento)
16
+ */
17
+ export declare function createLogger(config?: LoggerConfig): Logger;
18
+ /**
19
+ * Logger padrão do SDK (pode ser sobrescrito)
20
+ */
21
+ export declare const defaultLogger: Logger;
22
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA,OAAa,EAAE,MAAM,EAAiB,MAAM,MAAM,CAAC;AAMnD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,GAAE,YAAiB,GAAG,MAAM,CA4C9D;AAwCD;;GAEG;AACH,eAAO,MAAM,aAAa,QAAwC,CAAC"}
@@ -0,0 +1,91 @@
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.defaultLogger = void 0;
7
+ exports.createLogger = createLogger;
8
+ const pino_1 = __importDefault(require("pino"));
9
+ /**
10
+ * Cria logger Pino configurado para o Runflow SDK
11
+ *
12
+ * Configuração por ordem de prioridade:
13
+ * 1. Parâmetros passados diretamente
14
+ * 2. Variáveis de ambiente (RUNFLOW_LOG_LEVEL, RUNFLOW_DEBUG)
15
+ * 3. Defaults (info em produção, debug em desenvolvimento)
16
+ */
17
+ function createLogger(config = {}) {
18
+ // Resolver nível de log
19
+ const level = resolveLogLevel(config);
20
+ // Verificar se está desabilitado
21
+ if (config.enabled === false) {
22
+ return createSilentLogger();
23
+ }
24
+ // Determinar se deve usar pretty print
25
+ const usePretty = config.pretty !== false && (process.env.NODE_ENV !== 'production' ||
26
+ process.env.RUNFLOW_LOG_PRETTY === 'true');
27
+ const pinoConfig = {
28
+ name: config.name || 'runflow-sdk',
29
+ level,
30
+ formatters: {
31
+ level: (label) => {
32
+ return { level: label };
33
+ },
34
+ },
35
+ timestamp: pino_1.default.stdTimeFunctions.isoTime,
36
+ };
37
+ // Pretty print para desenvolvimento
38
+ if (usePretty) {
39
+ return (0, pino_1.default)({
40
+ ...pinoConfig,
41
+ transport: {
42
+ target: 'pino-pretty',
43
+ options: {
44
+ colorize: true,
45
+ translateTime: 'yyyy-mm-dd HH:MM:ss.l',
46
+ ignore: 'pid,hostname',
47
+ singleLine: false,
48
+ },
49
+ },
50
+ });
51
+ }
52
+ // JSON logging para produção
53
+ return (0, pino_1.default)(pinoConfig);
54
+ }
55
+ /**
56
+ * Resolve o nível de log por ordem de prioridade
57
+ */
58
+ function resolveLogLevel(config) {
59
+ // 1. Config explícito
60
+ if (config.level) {
61
+ return config.level;
62
+ }
63
+ // 2. Variável de ambiente RUNFLOW_LOG_LEVEL
64
+ const envLevel = process.env.RUNFLOW_LOG_LEVEL?.toLowerCase();
65
+ if (envLevel && isValidLogLevel(envLevel)) {
66
+ return envLevel;
67
+ }
68
+ // 3. RUNFLOW_DEBUG=true -> debug level
69
+ if (process.env.RUNFLOW_DEBUG === 'true') {
70
+ return 'debug';
71
+ }
72
+ // 4. Default: info em produção, debug em desenvolvimento
73
+ return process.env.NODE_ENV === 'production' ? 'info' : 'debug';
74
+ }
75
+ /**
76
+ * Valida se string é um nível de log válido
77
+ */
78
+ function isValidLogLevel(level) {
79
+ return ['trace', 'debug', 'info', 'warn', 'error', 'fatal'].includes(level);
80
+ }
81
+ /**
82
+ * Cria logger silencioso (quando desabilitado)
83
+ */
84
+ function createSilentLogger() {
85
+ return (0, pino_1.default)({ level: 'silent' });
86
+ }
87
+ /**
88
+ * Logger padrão do SDK (pode ser sobrescrito)
89
+ */
90
+ exports.defaultLogger = createLogger({ name: 'runflow-sdk' });
91
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":";;;;;;AAuBA,oCA4CC;AAnED,gDAAmD;AAenD;;;;;;;GAOG;AACH,SAAgB,YAAY,CAAC,SAAuB,EAAE;IACpD,wBAAwB;IACxB,MAAM,KAAK,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;IAEtC,iCAAiC;IACjC,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,uCAAuC;IACvC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,CAC3C,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;QACrC,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,CAC1C,CAAC;IAEF,MAAM,UAAU,GAAkB;QAChC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,aAAa;QAClC,KAAK;QACL,UAAU,EAAE;YACV,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;YAC1B,CAAC;SACF;QACD,SAAS,EAAE,cAAI,CAAC,gBAAgB,CAAC,OAAO;KACzC,CAAC;IAEF,oCAAoC;IACpC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,IAAA,cAAI,EAAC;YACV,GAAG,UAAU;YACb,SAAS,EAAE;gBACT,MAAM,EAAE,aAAa;gBACrB,OAAO,EAAE;oBACP,QAAQ,EAAE,IAAI;oBACd,aAAa,EAAE,uBAAuB;oBACtC,MAAM,EAAE,cAAc;oBACtB,UAAU,EAAE,KAAK;iBAClB;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,6BAA6B;IAC7B,OAAO,IAAA,cAAI,EAAC,UAAU,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,MAAoB;IAC3C,sBAAsB;IACtB,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,CAAC;IAC9D,IAAI,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,OAAO,QAAoB,CAAC;IAC9B,CAAC;IAED,uCAAuC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,EAAE,CAAC;QACzC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yDAAyD;IACzD,OAAO,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB;IACzB,OAAO,IAAA,cAAI,EAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACU,QAAA,aAAa,GAAG,YAAY,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ export interface PerformanceMetrics {
2
+ operation: string;
3
+ durationMs: number;
4
+ timestamp: number;
5
+ metadata?: Record<string, any>;
6
+ }
7
+ /**
8
+ * Logger específico para métricas de performance
9
+ * Ativado via RUNFLOW_LOG_PERFORMANCE=true
10
+ */
11
+ export declare class PerformanceLogger {
12
+ private logger;
13
+ private enabled;
14
+ private metrics;
15
+ constructor();
16
+ /**
17
+ * Marca o início de uma operação
18
+ */
19
+ start(operationId: string): void;
20
+ /**
21
+ * Marca o fim de uma operação e loga o tempo
22
+ */
23
+ end(operationId: string, metadata?: Record<string, any>): number;
24
+ /**
25
+ * Loga tempo de uma operação diretamente
26
+ */
27
+ log(operation: string, durationMs: number, metadata?: Record<string, any>): void;
28
+ /**
29
+ * Mede tempo de uma função async
30
+ */
31
+ measure<T>(operation: string, fn: () => Promise<T>, metadata?: Record<string, any>): Promise<T>;
32
+ /**
33
+ * Cria um resumo de performance com múltiplas métricas
34
+ */
35
+ summary(operation: string, metrics: Record<string, number>, total: number): void;
36
+ /**
37
+ * Verifica se performance logging está ativado
38
+ */
39
+ isEnabled(): boolean;
40
+ }
41
+ /**
42
+ * Instância singleton do performance logger
43
+ */
44
+ export declare const performanceLogger: PerformanceLogger;
45
+ //# sourceMappingURL=performance-logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-logger.d.ts","sourceRoot":"","sources":["../../src/core/performance-logger.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,OAAO,CAAkC;;IAsBjD;;OAEG;IACH,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKhC;;OAEG;IACH,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAuBhE;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAWhF;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;IAmCb;;OAEG;IACH,OAAO,CACL,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,KAAK,EAAE,MAAM,GACZ,IAAI;IAkBP;;OAEG;IACH,SAAS,IAAI,OAAO;CAGrB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,mBAA0B,CAAC"}
@@ -0,0 +1,140 @@
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.performanceLogger = exports.PerformanceLogger = void 0;
7
+ const pino_1 = __importDefault(require("pino"));
8
+ /**
9
+ * Logger específico para métricas de performance
10
+ * Ativado via RUNFLOW_LOG_PERFORMANCE=true
11
+ */
12
+ class PerformanceLogger {
13
+ constructor() {
14
+ this.logger = null;
15
+ this.enabled = false;
16
+ this.metrics = new Map();
17
+ // Ativar apenas se variável de ambiente estiver configurada
18
+ this.enabled = process.env.RUNFLOW_LOG_PERFORMANCE === 'true';
19
+ if (this.enabled) {
20
+ this.logger = (0, pino_1.default)({
21
+ name: 'runflow-performance',
22
+ level: 'info',
23
+ formatters: {
24
+ level: (label) => {
25
+ return { level: label };
26
+ },
27
+ },
28
+ timestamp: pino_1.default.stdTimeFunctions.isoTime,
29
+ });
30
+ this.logger.info('⏱️ Performance logging enabled');
31
+ }
32
+ }
33
+ /**
34
+ * Marca o início de uma operação
35
+ */
36
+ start(operationId) {
37
+ if (!this.enabled)
38
+ return;
39
+ this.metrics.set(operationId, Date.now());
40
+ }
41
+ /**
42
+ * Marca o fim de uma operação e loga o tempo
43
+ */
44
+ end(operationId, metadata) {
45
+ if (!this.enabled)
46
+ return 0;
47
+ const startTime = this.metrics.get(operationId);
48
+ if (!startTime) {
49
+ this.logger?.warn(`⚠️ Operation '${operationId}' was not started`);
50
+ return 0;
51
+ }
52
+ const durationMs = Date.now() - startTime;
53
+ this.metrics.delete(operationId);
54
+ // Log estruturado com timing
55
+ this.logger?.info({
56
+ type: 'performance',
57
+ operation: operationId,
58
+ durationMs,
59
+ ...metadata,
60
+ }, `⏱️ ${operationId}: ${durationMs}ms`);
61
+ return durationMs;
62
+ }
63
+ /**
64
+ * Loga tempo de uma operação diretamente
65
+ */
66
+ log(operation, durationMs, metadata) {
67
+ if (!this.enabled)
68
+ return;
69
+ this.logger?.info({
70
+ type: 'performance',
71
+ operation,
72
+ durationMs,
73
+ ...metadata,
74
+ }, `⏱️ ${operation}: ${durationMs}ms`);
75
+ }
76
+ /**
77
+ * Mede tempo de uma função async
78
+ */
79
+ async measure(operation, fn, metadata) {
80
+ if (!this.enabled) {
81
+ return fn();
82
+ }
83
+ const startTime = Date.now();
84
+ try {
85
+ const result = await fn();
86
+ const durationMs = Date.now() - startTime;
87
+ this.logger?.info({
88
+ type: 'performance',
89
+ operation,
90
+ durationMs,
91
+ success: true,
92
+ ...metadata,
93
+ }, `⏱️ ${operation}: ${durationMs}ms`);
94
+ return result;
95
+ }
96
+ catch (error) {
97
+ const durationMs = Date.now() - startTime;
98
+ this.logger?.error({
99
+ type: 'performance',
100
+ operation,
101
+ durationMs,
102
+ success: false,
103
+ error: error instanceof Error ? error.message : 'Unknown error',
104
+ ...metadata,
105
+ }, `⏱️ ${operation}: ${durationMs}ms (failed)`);
106
+ throw error;
107
+ }
108
+ }
109
+ /**
110
+ * Cria um resumo de performance com múltiplas métricas
111
+ */
112
+ summary(operation, metrics, total) {
113
+ if (!this.enabled)
114
+ return;
115
+ // Calcular porcentagens
116
+ const breakdown = Object.entries(metrics).map(([step, duration]) => ({
117
+ step,
118
+ durationMs: duration,
119
+ percentage: ((duration / total) * 100).toFixed(1) + '%',
120
+ }));
121
+ this.logger?.info({
122
+ type: 'performance-summary',
123
+ operation,
124
+ totalMs: total,
125
+ breakdown,
126
+ }, `⏱️ ${operation} Summary: ${total}ms`);
127
+ }
128
+ /**
129
+ * Verifica se performance logging está ativado
130
+ */
131
+ isEnabled() {
132
+ return this.enabled;
133
+ }
134
+ }
135
+ exports.PerformanceLogger = PerformanceLogger;
136
+ /**
137
+ * Instância singleton do performance logger
138
+ */
139
+ exports.performanceLogger = new PerformanceLogger();
140
+ //# sourceMappingURL=performance-logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"performance-logger.js","sourceRoot":"","sources":["../../src/core/performance-logger.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trace-collector.d.ts","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace-collector.d.ts","sourceRoot":"","sources":["../../src/observability/trace-collector.ts"],"names":[],"mappings":"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"}