@runflow-ai/sdk 1.0.5 → 1.0.6

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 (101) hide show
  1. package/dist/connectors/connector-creator.d.ts +29 -0
  2. package/dist/connectors/connector-creator.d.ts.map +1 -0
  3. package/dist/connectors/connector-creator.js +123 -0
  4. package/dist/connectors/connector-creator.js.map +1 -0
  5. package/dist/connectors/index.d.ts +3 -0
  6. package/dist/connectors/index.d.ts.map +1 -0
  7. package/dist/connectors/index.js +11 -0
  8. package/dist/connectors/index.js.map +1 -0
  9. package/dist/core/agent.d.ts +42 -0
  10. package/dist/core/agent.d.ts.map +1 -0
  11. package/dist/core/agent.js +533 -0
  12. package/dist/core/agent.js.map +1 -0
  13. package/dist/core/api-client.d.ts +34 -0
  14. package/dist/core/api-client.d.ts.map +1 -0
  15. package/dist/core/api-client.js +339 -0
  16. package/dist/core/api-client.js.map +1 -0
  17. package/dist/core/index.d.ts +5 -0
  18. package/dist/core/index.d.ts.map +1 -0
  19. package/dist/core/index.js +13 -0
  20. package/dist/core/index.js.map +1 -0
  21. package/dist/core/models.d.ts +4 -0
  22. package/dist/core/models.d.ts.map +1 -0
  23. package/dist/core/models.js +20 -0
  24. package/dist/core/models.js.map +1 -0
  25. package/dist/index.d.ts +6 -12
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +49 -107
  28. package/dist/index.js.map +1 -1
  29. package/dist/memory/index.d.ts +1 -0
  30. package/dist/memory/index.d.ts.map +1 -0
  31. package/dist/memory/index.js +4 -0
  32. package/dist/memory/index.js.map +1 -0
  33. package/dist/observability/index.d.ts +3 -0
  34. package/dist/observability/index.d.ts.map +1 -0
  35. package/dist/observability/index.js +10 -0
  36. package/dist/observability/index.js.map +1 -0
  37. package/dist/observability/trace-collector.d.ts +43 -0
  38. package/dist/observability/trace-collector.d.ts.map +1 -0
  39. package/dist/observability/trace-collector.js +233 -0
  40. package/dist/observability/trace-collector.js.map +1 -0
  41. package/dist/streaming/index.d.ts +1 -0
  42. package/dist/streaming/index.d.ts.map +1 -0
  43. package/dist/streaming/index.js +4 -0
  44. package/dist/streaming/index.js.map +1 -0
  45. package/dist/tools/index.d.ts +3 -0
  46. package/dist/tools/index.d.ts.map +1 -0
  47. package/dist/tools/index.js +7 -0
  48. package/dist/tools/index.js.map +1 -0
  49. package/dist/tools/tool-creator.d.ts +3 -0
  50. package/dist/tools/tool-creator.d.ts.map +1 -0
  51. package/dist/tools/tool-creator.js +105 -0
  52. package/dist/tools/tool-creator.js.map +1 -0
  53. package/dist/types/all-types.d.ts +432 -0
  54. package/dist/types/all-types.d.ts.map +1 -0
  55. package/dist/{types.js → types/all-types.js} +1 -2
  56. package/dist/types/all-types.js.map +1 -0
  57. package/dist/types/index.d.ts +2 -0
  58. package/dist/types/index.d.ts.map +1 -0
  59. package/dist/types/index.js +19 -0
  60. package/dist/types/index.js.map +1 -0
  61. package/dist/workflows/index.d.ts +3 -0
  62. package/dist/workflows/index.d.ts.map +1 -0
  63. package/dist/workflows/index.js +13 -0
  64. package/dist/workflows/index.js.map +1 -0
  65. package/dist/workflows/workflow.d.ts +53 -0
  66. package/dist/workflows/workflow.d.ts.map +1 -0
  67. package/dist/workflows/workflow.js +414 -0
  68. package/dist/workflows/workflow.js.map +1 -0
  69. package/package.json +69 -21
  70. package/README.md +0 -892
  71. package/dist/agents/runflow-agent.d.ts +0 -54
  72. package/dist/agents/runflow-agent.d.ts.map +0 -1
  73. package/dist/agents/runflow-agent.js +0 -343
  74. package/dist/agents/runflow-agent.js.map +0 -1
  75. package/dist/agents/server.d.ts +0 -47
  76. package/dist/agents/server.d.ts.map +0 -1
  77. package/dist/agents/server.js +0 -329
  78. package/dist/agents/server.js.map +0 -1
  79. package/dist/agents/swagger.d.ts +0 -758
  80. package/dist/agents/swagger.d.ts.map +0 -1
  81. package/dist/agents/swagger.js +0 -375
  82. package/dist/agents/swagger.js.map +0 -1
  83. package/dist/config.d.ts +0 -17
  84. package/dist/config.d.ts.map +0 -1
  85. package/dist/config.js +0 -131
  86. package/dist/config.js.map +0 -1
  87. package/dist/runflow-sdk.d.ts +0 -57
  88. package/dist/runflow-sdk.d.ts.map +0 -1
  89. package/dist/runflow-sdk.js +0 -622
  90. package/dist/runflow-sdk.js.map +0 -1
  91. package/dist/singleton.d.ts +0 -37
  92. package/dist/singleton.d.ts.map +0 -1
  93. package/dist/singleton.js +0 -86
  94. package/dist/singleton.js.map +0 -1
  95. package/dist/types.d.ts +0 -147
  96. package/dist/types.d.ts.map +0 -1
  97. package/dist/types.js.map +0 -1
  98. package/dist/utils.d.ts +0 -74
  99. package/dist/utils.d.ts.map +0 -1
  100. package/dist/utils.js +0 -312
  101. package/dist/utils.js.map +0 -1
@@ -1,622 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SessionManager = exports.RunflowSDK = void 0;
4
- const config_1 = require("./config");
5
- const utils_1 = require("./utils");
6
- class RunflowSDK {
7
- constructor(context) {
8
- // =============================================================================
9
- // 💬 SESSÕES
10
- // =============================================================================
11
- this.session = {
12
- get: (sessionId) => {
13
- // companyId vem automaticamente do context injetado pela plataforma
14
- const companyId = this.context.companyId || this.context.tenantId;
15
- return new SessionManager(sessionId, companyId, this.context, this.getApiUrl(), this.getApiKey());
16
- },
17
- };
18
- // Tentar carregar configurações do arquivo .runflow automaticamente
19
- (0, config_1.loadRunflowConfig)();
20
- // Context é SEMPRE injetado pela plataforma via env vars
21
- this.context = context || {
22
- tenantId: this.getRequiredEnv("RUNFLOW_TENANT_ID"),
23
- agentId: this.getRequiredEnv("RUNFLOW_AGENT_ID"),
24
- requestId: process.env.RUNFLOW_REQUEST_ID || `req_${Date.now()}`,
25
- sessionId: process.env.RUNFLOW_SESSION_ID,
26
- };
27
- // Inicializar HTTP client
28
- this.httpClient = new utils_1.HttpClient();
29
- }
30
- getRequiredEnv(key) {
31
- const value = process.env[key];
32
- if (!value) {
33
- throw new Error(`Variável obrigatória ${key} não definida. Certifique-se de que o agente está sendo executado na plataforma Runflow.`);
34
- }
35
- return value;
36
- }
37
- getApiUrl() {
38
- return process.env.RUNFLOW_API_URL || "http://localhost:3001";
39
- }
40
- getApiKey() {
41
- const key = process.env.RUNFLOW_API_KEY;
42
- if (!key) {
43
- throw new Error("RUNFLOW_API_KEY não definida. Certifique-se de que o agente está sendo executado na plataforma Runflow.");
44
- }
45
- return key;
46
- }
47
- getHeaders(includeCompany = false) {
48
- const headers = {
49
- "x-api-key": this.getApiKey(),
50
- "Content-Type": "application/json",
51
- "X-Runflow-Tenant-Id": this.context.tenantId,
52
- "X-Runflow-Agent-Id": this.context.agentId,
53
- };
54
- return headers;
55
- }
56
- // =============================================================================
57
- // ⚙️ COMANDOS GERAIS
58
- // =============================================================================
59
- async login(apiKey) {
60
- this.log("Validando API key");
61
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/login`, {
62
- method: "POST",
63
- headers: {
64
- Authorization: `Bearer ${apiKey}`,
65
- "Content-Type": "application/json",
66
- },
67
- });
68
- if (!response.ok) {
69
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
70
- }
71
- return response.json();
72
- }
73
- async health() {
74
- this.log("Verificando saúde da API");
75
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/health`, {
76
- method: "GET",
77
- headers: this.getHeaders(),
78
- });
79
- if (!response.ok) {
80
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
81
- }
82
- return response.json();
83
- }
84
- async tenants() {
85
- this.log("Listando tenants");
86
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/tenants`, {
87
- method: "GET",
88
- headers: this.getHeaders(),
89
- });
90
- if (!response.ok) {
91
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
92
- }
93
- return response.json();
94
- }
95
- async agents() {
96
- this.log("Listando agentes");
97
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents`, {
98
- method: "GET",
99
- headers: this.getHeaders(),
100
- });
101
- if (!response.ok) {
102
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
103
- }
104
- return response.json();
105
- }
106
- async getAgent(id) {
107
- this.log(`Buscando agente: ${id}`);
108
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents/${id}`, {
109
- method: "GET",
110
- headers: this.getHeaders(),
111
- });
112
- if (!response.ok) {
113
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
114
- }
115
- return response.json();
116
- }
117
- async createAgent(data) {
118
- this.log("Criando agente", data);
119
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents`, {
120
- method: "POST",
121
- headers: this.getHeaders(),
122
- body: JSON.stringify(data),
123
- });
124
- if (!response.ok) {
125
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
126
- }
127
- return response.json();
128
- }
129
- async updateAgent(id, data) {
130
- this.log(`Atualizando agente: ${id}`, data);
131
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents/${id}`, {
132
- method: "PUT",
133
- headers: this.getHeaders(),
134
- body: JSON.stringify(data),
135
- });
136
- if (!response.ok) {
137
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
138
- }
139
- return response.json();
140
- }
141
- async deleteAgent(id) {
142
- this.log(`Removendo agente: ${id}`);
143
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents/${id}`, {
144
- method: "DELETE",
145
- headers: this.getHeaders(),
146
- });
147
- if (!response.ok) {
148
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
149
- }
150
- }
151
- async cloneAgent(id) {
152
- this.log(`Clonando agente: ${id}`);
153
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents/${id}/clone`, {
154
- method: "POST",
155
- headers: this.getHeaders(),
156
- });
157
- if (!response.ok) {
158
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
159
- }
160
- return response.json();
161
- }
162
- async deployAgent(id) {
163
- this.log(`Publicando agente: ${id}`);
164
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/agents/${id}/deploy`, {
165
- method: "POST",
166
- headers: this.getHeaders(),
167
- });
168
- if (!response.ok) {
169
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
170
- }
171
- return response.json();
172
- }
173
- async connectors() {
174
- this.log("Listando conectores");
175
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/connectors`, {
176
- method: "GET",
177
- headers: this.getHeaders(),
178
- });
179
- if (!response.ok) {
180
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
181
- }
182
- return response.json();
183
- }
184
- async credentials() {
185
- this.log("Listando credenciais");
186
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/credentials`, {
187
- method: "GET",
188
- headers: this.getHeaders(),
189
- });
190
- if (!response.ok) {
191
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
192
- }
193
- return response.json();
194
- }
195
- async datasources() {
196
- this.log("Listando fontes de dados");
197
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/datasources`, {
198
- method: "GET",
199
- headers: this.getHeaders(),
200
- });
201
- if (!response.ok) {
202
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
203
- }
204
- return response.json();
205
- }
206
- async triggers() {
207
- this.log("Listando triggers");
208
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/triggers`, {
209
- method: "GET",
210
- headers: this.getHeaders(),
211
- });
212
- if (!response.ok) {
213
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
214
- }
215
- return response.json();
216
- }
217
- async executions() {
218
- this.log("Listando execuções");
219
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/executions`, {
220
- method: "GET",
221
- headers: this.getHeaders(),
222
- });
223
- if (!response.ok) {
224
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
225
- }
226
- return response.json();
227
- }
228
- async users() {
229
- this.log("Listando usuários");
230
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/users`, {
231
- method: "GET",
232
- headers: this.getHeaders(),
233
- });
234
- if (!response.ok) {
235
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
236
- }
237
- return response.json();
238
- }
239
- async getUser(id) {
240
- this.log(`Buscando usuário: ${id}`);
241
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/users/${id}`, {
242
- method: "GET",
243
- headers: this.getHeaders(),
244
- });
245
- if (!response.ok) {
246
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
247
- }
248
- return response.json();
249
- }
250
- async createUser(data) {
251
- this.log("Criando usuário", data);
252
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/users`, {
253
- method: "POST",
254
- headers: this.getHeaders(),
255
- body: JSON.stringify(data),
256
- });
257
- if (!response.ok) {
258
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
259
- }
260
- return response.json();
261
- }
262
- async updateUser(id, data) {
263
- this.log(`Atualizando usuário: ${id}`, data);
264
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/users/${id}`, {
265
- method: "PUT",
266
- headers: this.getHeaders(),
267
- body: JSON.stringify(data),
268
- });
269
- if (!response.ok) {
270
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
271
- }
272
- return response.json();
273
- }
274
- async deleteUser(id) {
275
- this.log(`Removendo usuário: ${id}`);
276
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/users/${id}`, {
277
- method: "DELETE",
278
- headers: this.getHeaders(),
279
- });
280
- if (!response.ok) {
281
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
282
- }
283
- }
284
- // =============================================================================
285
- // 🔐 CREDENCIAIS
286
- // =============================================================================
287
- async getCredential(name) {
288
- this.log(`Buscando credencial: ${name}`);
289
- try {
290
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/credentials/${name}`, {
291
- method: "GET",
292
- headers: this.getHeaders(),
293
- });
294
- if (!response.ok) {
295
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
296
- }
297
- const credential = (await response.json());
298
- this.log(`Credencial obtida: ${credential.name} (${credential.type})`);
299
- return credential;
300
- }
301
- catch (error) {
302
- this.log(`Erro ao buscar credencial ${name}:`, error);
303
- throw error;
304
- }
305
- }
306
- // =============================================================================
307
- // 📝 PROMPTS
308
- // =============================================================================
309
- async getPrompt(name, variables) {
310
- this.log(`Buscando prompt: ${name}`, variables ? { variables } : undefined);
311
- try {
312
- const url = `${this.getApiUrl()}/api/v1/sdk/prompts/${name}`;
313
- const hasVariables = variables && Object.keys(variables).length > 0;
314
- const response = await fetch(url, {
315
- method: hasVariables ? "POST" : "GET",
316
- headers: this.getHeaders(),
317
- body: hasVariables ? JSON.stringify({ variables }) : undefined,
318
- });
319
- if (!response.ok) {
320
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
321
- }
322
- const promptResponse = (await response.json());
323
- this.log(`Prompt obtido: ${promptResponse.name}`);
324
- return promptResponse.content;
325
- }
326
- catch (error) {
327
- this.log(`Erro ao buscar prompt ${name}:`, error);
328
- throw error;
329
- }
330
- }
331
- // =============================================================================
332
- // 🔍 SEARCH & VECTOR STORES
333
- // =============================================================================
334
- async getAvailableVectorStores() {
335
- this.log("Listando vector stores disponíveis");
336
- try {
337
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/search-tools`, {
338
- method: "GET",
339
- headers: this.getHeaders(),
340
- });
341
- if (!response.ok) {
342
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
343
- }
344
- const data = await response.json();
345
- return data.vector_stores || [];
346
- }
347
- catch (error) {
348
- this.log("Erro ao listar vector stores:", error);
349
- throw error;
350
- }
351
- }
352
- async searchVectorStore(vectorStore, query, options = {}) {
353
- const { k = 5, threshold = 0.7 } = options;
354
- this.log(`Buscando em ${vectorStore}: "${query}"`, { k, threshold });
355
- try {
356
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/search-tools/${vectorStore}/search`, {
357
- method: "POST",
358
- headers: this.getHeaders(),
359
- body: JSON.stringify({ query, k, threshold }),
360
- });
361
- if (!response.ok) {
362
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
363
- }
364
- const searchResponse = (await response.json());
365
- this.log(`Busca realizada: ${searchResponse.results.length} resultados`);
366
- return searchResponse;
367
- }
368
- catch (error) {
369
- this.log(`Erro na busca em ${vectorStore}:`, error);
370
- throw error;
371
- }
372
- }
373
- async addDocument(request) {
374
- this.log(`Adicionando documento ao vector store: ${request.vectorStore}`, {
375
- contentLength: request.content.length,
376
- hasMetadata: !!request.metadata
377
- });
378
- try {
379
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/search-tools/documents`, {
380
- method: "POST",
381
- headers: this.getHeaders(),
382
- body: JSON.stringify(request),
383
- });
384
- if (!response.ok) {
385
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
386
- }
387
- const result = (await response.json());
388
- this.log(`Documento adicionado: ${result.id}`);
389
- return result;
390
- }
391
- catch (error) {
392
- this.log("Erro ao adicionar documento:", error);
393
- throw error;
394
- }
395
- }
396
- async listDocuments(vectorStore, options = {}) {
397
- const { limit = 10, offset = 0 } = options;
398
- this.log(`Listando documentos do vector store: ${vectorStore}`, { limit, offset });
399
- try {
400
- const params = new URLSearchParams({
401
- limit: limit.toString(),
402
- ...(offset > 0 && { offset: offset.toString() })
403
- });
404
- const url = `${this.getApiUrl()}/api/v1/sdk/search-tools/${vectorStore}/documents?${params}`;
405
- const response = await fetch(url, {
406
- method: "GET",
407
- headers: this.getHeaders(),
408
- });
409
- if (!response.ok) {
410
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
411
- }
412
- const result = (await response.json());
413
- this.log(`Documentos listados: ${result.documents.length} de ${result.total}`);
414
- return result;
415
- }
416
- catch (error) {
417
- this.log(`Erro ao listar documentos do vector store ${vectorStore}:`, error);
418
- throw error;
419
- }
420
- }
421
- async deleteDocument(documentId) {
422
- this.log(`Removendo documento: ${documentId}`);
423
- try {
424
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/search-tools/documents/${documentId}`, {
425
- method: "DELETE",
426
- headers: this.getHeaders(),
427
- });
428
- if (!response.ok) {
429
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
430
- }
431
- const result = (await response.json());
432
- this.log(`Documento removido: ${documentId}`);
433
- return result;
434
- }
435
- catch (error) {
436
- this.log(`Erro ao remover documento ${documentId}:`, error);
437
- throw error;
438
- }
439
- }
440
- // =============================================================================
441
- // 📊 LOGS & TRACES
442
- // =============================================================================
443
- log(message, data) {
444
- const timestamp = new Date().toISOString();
445
- const logEntry = `[${timestamp}] [${this.context.agentId}] ${message}`;
446
- if (data) {
447
- // Mascarar dados sensíveis antes de logar
448
- const maskedData = (0, utils_1.maskSensitiveData)(data);
449
- console.log(logEntry, maskedData);
450
- }
451
- else {
452
- console.log(logEntry);
453
- }
454
- }
455
- async trace(traceData) {
456
- this.log("Enviando trace para LangSmith", { operation: "agent.invoke" });
457
- try {
458
- // Converte dados legados para o formato padronizado
459
- const standardizedData = this.standardizeTraceData(traceData);
460
- const response = await fetch(`${this.getApiUrl()}/api/v1/sdk/traces`, {
461
- method: "POST",
462
- headers: this.getHeaders(),
463
- body: JSON.stringify(standardizedData),
464
- });
465
- if (!response.ok) {
466
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
467
- }
468
- const result = (await response.json());
469
- this.log(`Trace enviado: ${result.traceId}`, {
470
- langsmith: result.langsmith,
471
- });
472
- return result;
473
- }
474
- catch (error) {
475
- this.log("Erro ao enviar trace:", error);
476
- throw error;
477
- }
478
- }
479
- standardizeTraceData(data) {
480
- // Se já está no formato padrão, retorna como está
481
- if (this.isStandardTraceData(data)) {
482
- return data;
483
- }
484
- // Converte formato legado para o padronizado
485
- const legacyData = data;
486
- // Converte inputs para o formato de array com type e content
487
- const input = [];
488
- if (legacyData.inputs) {
489
- // Se inputs é um objeto, converte cada chave em uma mensagem
490
- for (const [key, value] of Object.entries(legacyData.inputs)) {
491
- input.push({
492
- type: key === 'message' || key === 'query' ? 'human' : 'system',
493
- content: typeof value === 'string' ? value : JSON.stringify(value)
494
- });
495
- }
496
- }
497
- // Se não há inputs, cria um input padrão
498
- if (input.length === 0) {
499
- input.push({
500
- type: 'human',
501
- content: 'No input provided'
502
- });
503
- }
504
- // Converte outputs para string
505
- let output = '';
506
- if (legacyData.outputs) {
507
- if (typeof legacyData.outputs === 'string') {
508
- output = legacyData.outputs;
509
- }
510
- else if (legacyData.outputs.message) {
511
- output = legacyData.outputs.message;
512
- }
513
- else if (legacyData.outputs.answer) {
514
- output = legacyData.outputs.answer;
515
- }
516
- else {
517
- output = JSON.stringify(legacyData.outputs);
518
- }
519
- }
520
- else {
521
- output = 'No output provided';
522
- }
523
- return {
524
- input,
525
- output,
526
- status: legacyData.status || 'success'
527
- };
528
- }
529
- isStandardTraceData(data) {
530
- return (data &&
531
- Array.isArray(data.input) &&
532
- typeof data.output === 'string' &&
533
- typeof data.status === 'string');
534
- }
535
- }
536
- exports.RunflowSDK = RunflowSDK;
537
- // =============================================================================
538
- // 💬 SESSION MANAGER
539
- // =============================================================================
540
- class SessionManager {
541
- constructor(sessionId, companyId, context, apiUrl, apiKey) {
542
- this.sessionId = sessionId;
543
- this.companyId = companyId;
544
- this.context = context;
545
- this.apiUrl = apiUrl;
546
- this.apiKey = apiKey;
547
- }
548
- getHeaders() {
549
- return {
550
- "x-api-key": this.apiKey,
551
- "Content-Type": "application/json",
552
- "X-Runflow-Tenant-Id": this.context.tenantId,
553
- "X-Runflow-Agent-Id": this.context.agentId,
554
- "X-Runflow-Company-Id": this.companyId,
555
- };
556
- }
557
- async addMessage(role, content, metadata) {
558
- try {
559
- const response = await fetch(`${this.apiUrl}/api/v1/sdk/sessions/${this.sessionId}/messages`, {
560
- method: "POST",
561
- headers: this.getHeaders(),
562
- body: JSON.stringify({
563
- role,
564
- content,
565
- metadata: {
566
- timestamp: new Date().toISOString(),
567
- ...metadata,
568
- },
569
- }),
570
- });
571
- if (!response.ok) {
572
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
573
- }
574
- console.log(`💬 Mensagem adicionada à sessão ${this.sessionId}: ${role}`);
575
- }
576
- catch (error) {
577
- console.log(`Erro ao adicionar mensagem à sessão:`, error);
578
- throw error;
579
- }
580
- }
581
- async getHistory(options = {}) {
582
- const { limit = 10, offset = 0 } = options;
583
- try {
584
- const params = new URLSearchParams({
585
- limit: limit.toString(),
586
- offset: offset.toString(),
587
- });
588
- const response = await fetch(`${this.apiUrl}/api/v1/sdk/sessions/${this.sessionId}/history?${params}`, {
589
- method: "GET",
590
- headers: this.getHeaders(),
591
- });
592
- if (!response.ok) {
593
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
594
- }
595
- const historyResponse = (await response.json());
596
- console.log(`📚 Histórico obtido: ${historyResponse.messages.length} mensagens`);
597
- return historyResponse.messages;
598
- }
599
- catch (error) {
600
- console.log(`Erro ao buscar histórico da sessão:`, error);
601
- throw error;
602
- }
603
- }
604
- async clear() {
605
- try {
606
- const response = await fetch(`${this.apiUrl}/api/v1/sdk/sessions/${this.sessionId}`, {
607
- method: "DELETE",
608
- headers: this.getHeaders(),
609
- });
610
- if (!response.ok) {
611
- throw new Error(`HTTP ${response.status}: ${response.statusText}`);
612
- }
613
- console.log(`🗑️ Sessão ${this.sessionId} limpa`);
614
- }
615
- catch (error) {
616
- console.log(`Erro ao limpar sessão:`, error);
617
- throw error;
618
- }
619
- }
620
- }
621
- exports.SessionManager = SessionManager;
622
- //# sourceMappingURL=runflow-sdk.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"runflow-sdk.js","sourceRoot":"","sources":["../src/runflow-sdk.ts"],"names":[],"mappings":"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"}