@runflow-ai/sdk 1.0.1 → 1.0.3

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 CHANGED
@@ -162,10 +162,22 @@ export const handler = createHandler(async (input, context) => {
162
162
  import {
163
163
  getCredential, // Buscar credencial
164
164
  getPrompt, // Buscar prompt
165
+ getAvailableVectorStores, // Listar vector stores
165
166
  searchVectorStore, // Buscar em knowledge base
167
+ addDocument, // Adicionar documento ao vector store
168
+ listDocuments, // Listar documentos do vector store
169
+ deleteDocument, // Remover documento do vector store
166
170
  getSession, // Gerenciar sessão
167
171
  log, // Log estruturado
168
- trace // Tracing para LangSmith
172
+ trace, // Tracing e observabilidade
173
+ // Utilitários
174
+ validateAgentInput, // Validação de entrada
175
+ sanitizeMetadata, // Limpeza de metadados
176
+ maskSensitiveData, // Mascarar dados sensíveis
177
+ HttpClient, // Cliente HTTP com retry
178
+ batchRequests, // Requests em lote
179
+ withTimeout, // Timeout para promises
180
+ debounce // Debounce para funções
169
181
  } from '@runflow-ai/sdk';
170
182
  ```
171
183
 
@@ -242,6 +254,40 @@ searchResults.results.forEach(result => {
242
254
  - Weaviate
243
255
  - Qdrant
244
256
 
257
+ ### 📄 Gerenciamento de Documentos
258
+
259
+ Gerencie documentos nos vector stores:
260
+
261
+ ```typescript
262
+ // Adicionar um documento
263
+ const documentResponse = await sdk.addDocument({
264
+ vectorStore: 'knowledge-base',
265
+ content: 'Como configurar pagamentos via PIX...',
266
+ metadata: {
267
+ source: 'manual-pagamentos.pdf',
268
+ category: 'financeiro',
269
+ version: '1.0'
270
+ }
271
+ });
272
+
273
+ console.log(`Documento adicionado: ${documentResponse.id}`);
274
+
275
+ // Listar documentos
276
+ const documents = await sdk.listDocuments('knowledge-base', {
277
+ limit: 20,
278
+ offset: 0
279
+ });
280
+
281
+ console.log(`Total de documentos: ${documents.total}`);
282
+ documents.documents.forEach(doc => {
283
+ console.log(`${doc.id}: ${doc.content.substring(0, 100)}...`);
284
+ });
285
+
286
+ // Remover um documento
287
+ const deleteResult = await sdk.deleteDocument('doc-123');
288
+ console.log(`Documento removido: ${deleteResult.success}`);
289
+ ```
290
+
245
291
  ### 💬 Gerenciamento de Sessões
246
292
 
247
293
  Mantenha contexto e histórico de conversas:
@@ -284,27 +330,96 @@ sdk.log('Busca realizada', {
284
330
  vectorStore: 'knowledge-base'
285
331
  });
286
332
 
287
- // Enviar trace para LangSmith
333
+ // Enviar trace - Formato Padrão (Recomendado)
288
334
  const trace = await sdk.trace({
289
- operation: 'agent.search',
290
- inputs: {
291
- query: 'Como configurar pagamentos?',
292
- vectorStore: 'knowledge-base'
293
- },
294
- outputs: {
295
- results: searchResults.results.length,
296
- answered: true
297
- },
298
- status: 'success',
299
- metadata: {
300
- model: 'gpt-4',
301
- tokens: 150
302
- }
335
+ input: [
336
+ { type: 'human', content: 'Como configurar pagamentos?' },
337
+ { type: 'system', content: 'Contexto adicional...' }
338
+ ],
339
+ output: 'Para configurar pagamentos via PIX...',
340
+ status: 'success'
303
341
  });
304
342
 
305
343
  console.log(`Trace ID: ${trace.traceId}`);
306
344
  ```
307
345
 
346
+ ## 🛠️ Utilitários
347
+
348
+ ### Validação e Segurança
349
+
350
+ ```typescript
351
+ import { validateAgentInput, sanitizeMetadata, maskSensitiveData } from '@runflow-ai/sdk';
352
+
353
+ // Validar entrada do agente
354
+ const validation = validateAgentInput(input, {
355
+ requireCompanyId: true,
356
+ maxMessageLength: 5000,
357
+ allowedChannels: ['web', 'whatsapp', 'telegram']
358
+ });
359
+
360
+ if (!validation.isValid) {
361
+ console.log('Errors:', validation.errors);
362
+ return { success: false, error: validation.errors.join(', ') };
363
+ }
364
+
365
+ // Usar entrada sanitizada
366
+ const cleanInput = validation.sanitized;
367
+
368
+ // Limpar metadados
369
+ const cleanMetadata = sanitizeMetadata(rawMetadata, {
370
+ allowedKeys: ['source', 'version', 'category'],
371
+ maxDepth: 2,
372
+ maxStringLength: 500
373
+ });
374
+
375
+ // Mascarar dados sensíveis em logs
376
+ const logData = {
377
+ userEmail: 'user@example.com',
378
+ phone: '+5511999999999',
379
+ password: 'secret123'
380
+ };
381
+
382
+ const maskedData = maskSensitiveData(logData);
383
+ // Resultado: { userEmail: 'us***@example.com', phone: '***********', password: '***' }
384
+ ```
385
+
386
+ ### Cliente HTTP Avançado
387
+
388
+ ```typescript
389
+ import { HttpClient, batchRequests, withTimeout, debounce } from '@runflow-ai/sdk';
390
+
391
+ // Cliente HTTP com retry automático
392
+ const client = new HttpClient();
393
+
394
+ const response = await client.post('https://api.external.com/data', {
395
+ query: 'example'
396
+ }, {
397
+ timeout: 5000,
398
+ retries: 3,
399
+ retryDelay: 1000
400
+ });
401
+
402
+ // Requests em lote com controle de concorrência
403
+ const requests = [
404
+ () => client.get('/api/data/1'),
405
+ () => client.get('/api/data/2'),
406
+ () => client.get('/api/data/3')
407
+ ];
408
+
409
+ const results = await batchRequests(requests, { concurrent: 2 });
410
+
411
+ // Timeout para qualquer Promise
412
+ const timedResult = await withTimeout(
413
+ sdk.searchVectorStore('knowledge', 'query'),
414
+ 3000
415
+ );
416
+
417
+ // Debounce para buscas
418
+ const debouncedSearch = debounce(async (query: string) => {
419
+ return await sdk.searchVectorStore('knowledge', query);
420
+ }, 300);
421
+ ```
422
+
308
423
  ## 🏗️ Arquitetura
309
424
 
310
425
  ### Classes Principais
@@ -316,16 +431,30 @@ Classe principal que oferece acesso a todos os recursos da plataforma:
316
431
  class RunflowSDK {
317
432
  constructor(context?: AgentContext)
318
433
 
319
- // Métodos principais
434
+ // 🔐 Credenciais
320
435
  async getCredential(name: string): Promise<Credential>
436
+
437
+ // 📝 Prompts
321
438
  async getPrompt(name: string, variables?: Record<string, any>): Promise<string>
439
+
440
+ // 🔍 Vector Stores & Busca
322
441
  async getAvailableVectorStores(): Promise<VectorStore[]>
323
442
  async searchVectorStore(vectorStore: string, query: string, options?: SearchOptions): Promise<SearchResponse>
443
+
444
+ // 📄 Gerenciamento de Documentos
445
+ async addDocument(request: AddDocumentRequest): Promise<AddDocumentResponse>
446
+ async listDocuments(vectorStore: string, options?: ListDocumentsOptions): Promise<ListDocumentsResponse>
447
+ async deleteDocument(documentId: string): Promise<DeleteDocumentResponse>
448
+
449
+ // 📊 Observabilidade
324
450
  log(message: string, data?: any): void
325
- async trace(traceData?: TraceData): Promise<TraceResponse>
451
+ async trace(traceData: TraceData): Promise<TraceResponse>
326
452
 
327
- // Propriedades
453
+ // 💬 Sessões
328
454
  session: { get(sessionId: string): SessionManager }
455
+
456
+ // ⚙️ Utilitários
457
+ async health(): Promise<any>
329
458
  }
330
459
  ```
331
460
 
@@ -361,11 +490,14 @@ Entrada padrão dos handlers:
361
490
  ```typescript
362
491
  interface AgentInput {
363
492
  message: string; // Mensagem do usuário
493
+ companyId: string; // ID da empresa (obrigatório)
364
494
  userId?: string; // ID do usuário
365
495
  sessionId?: string; // ID da sessão
366
- companyId?: string; // ID da empresa
367
496
  channel?: string; // Canal de origem
368
497
  metadata?: Record<string, any>; // Metadados adicionais
498
+ // Compatibilidade com versões antigas
499
+ tab?: string;
500
+ preChatInfo?: string;
369
501
  }
370
502
  ```
371
503
 
@@ -374,14 +506,14 @@ Saída padrão dos handlers:
374
506
 
375
507
  ```typescript
376
508
  interface AgentOutput {
377
- success: boolean;
378
- data?: {
379
- answer: string; // Resposta do agente
380
- answered_by?: string; // Quem respondeu
381
- sources?: any[]; // Fontes utilizadas
382
- metadata?: any[]; // Metadados da resposta
509
+ message: string; // Resposta do agente
510
+ metadata?: {
511
+ llmProvider?: string; // Provedor do LLM usado
512
+ model?: string; // Modelo usado
513
+ toolsUsed?: string[]; // Ferramentas utilizadas
514
+ steps?: number; // Número de passos executados
515
+ [key: string]: any; // Metadados adicionais
383
516
  };
384
- error?: string; // Erro (se houver)
385
517
  }
386
518
  ```
387
519
 
@@ -399,6 +531,107 @@ O SDK utiliza as seguintes variáveis de ambiente, automaticamente configuradas
399
531
  - `RUNFLOW_SESSION_ID`: ID da sessão
400
532
  - `RUNFLOW_API_URL`: URL da API (padrão: `http://localhost:3001`)
401
533
 
534
+ ## 🤖 Agentes Avançados
535
+
536
+ O SDK inclui suporte completo para criação de agentes inteligentes:
537
+
538
+ ### `RunflowAgent`
539
+ Classe para criar agentes inteligentes com IA e ferramentas:
540
+
541
+ ```typescript
542
+ import { RunflowAgent } from '@runflow-ai/sdk';
543
+
544
+ const agent = new RunflowAgent({
545
+ llm: {
546
+ provider: 'anthropic', // ou 'openai'
547
+ model: 'claude-3-sonnet',
548
+ credential: 'claude-api',
549
+ temperature: 0.7
550
+ },
551
+ systemPrompt: 'customer-support', // Nome do prompt na plataforma
552
+ toolsPath: './tools', // Pasta com ferramentas customizadas
553
+ tools: ['search-knowledge'], // Ferramentas built-in
554
+ session: {
555
+ enabled: true,
556
+ historyLimit: 10
557
+ }
558
+ });
559
+
560
+ // Processar mensagem
561
+ const response = await agent.process({
562
+ message: 'Como posso cancelar meu pedido?',
563
+ companyId: 'company-123',
564
+ userId: 'user-456',
565
+ sessionId: 'session-789'
566
+ });
567
+
568
+ console.log(response.message);
569
+ ```
570
+
571
+ ### Ferramentas Customizadas
572
+ Crie ferramentas que o agente pode usar:
573
+
574
+ ```typescript
575
+ // tools/order-lookup.ts
576
+ export const orderLookup = {
577
+ name: 'order_lookup',
578
+ description: 'Busca informações de um pedido pelo ID',
579
+ parameters: {
580
+ orderId: {
581
+ type: 'string',
582
+ required: true,
583
+ description: 'ID do pedido'
584
+ }
585
+ },
586
+ execute: async (params: { orderId: string }, context: ToolContext) => {
587
+ // Usar o SDK dentro da ferramenta
588
+ const orderData = await fetch(`/api/orders/${params.orderId}`);
589
+
590
+ // Log da operação
591
+ context.sdk.log('Pedido consultado', {
592
+ orderId: params.orderId,
593
+ companyId: context.companyId
594
+ });
595
+
596
+ return orderData;
597
+ }
598
+ };
599
+ ```
600
+
601
+ ### Servidor de Agente
602
+ Crie um servidor HTTP completo para seu agente:
603
+
604
+ ```typescript
605
+ import { createAgentServer } from '@runflow-ai/sdk';
606
+
607
+ const server = createAgentServer({
608
+ llm: {
609
+ provider: 'anthropic',
610
+ model: 'claude-3-sonnet',
611
+ credential: 'claude-api'
612
+ },
613
+ systemPrompt: 'customer-support',
614
+ toolsPath: './tools'
615
+ }, {
616
+ port: 3000,
617
+ cors: true,
618
+ rateLimiting: true,
619
+ tracing: true, // Trace automático
620
+ hooks: {
621
+ beforeChat: async (req, res) => {
622
+ // Validações customizadas
623
+ console.log('Nova conversa iniciada');
624
+ },
625
+ afterChat: async (input, output, ctx) => {
626
+ // Pós-processamento
627
+ console.log(`Conversa processada em ${ctx.durationMs}ms`);
628
+ }
629
+ }
630
+ });
631
+
632
+ server.start(); // Inicia na porta 3000
633
+ ```
634
+
402
635
  ## 📚 Exemplos Avançados
403
636
 
404
637
  ### Agente com Busca em Conhecimento
@@ -579,28 +812,23 @@ export const handler = createHandler(async (input, context) => {
579
812
  });
580
813
  ```
581
814
 
582
- ### Available Commands
815
+ ### Available Methods
583
816
 
584
- The SDK provides helper methods for common operations:
817
+ The SDK provides essential methods for daily development:
585
818
 
586
- - `login`
587
- - `tenants`
588
- - `agents` – list, get, create, update, delete, clone, deploy
589
- - `health`
590
- - `prompts`
591
- - `connectors`
592
- - `credentials`
593
- - `getCredential`
594
- - `datasources`
595
- - `triggers`
596
- - `executions`
597
- - `users` – list, get, create, update, delete
598
- - `searchTools`
599
- - `searchVectorStore`
600
- - `session`
601
- - `trace`
819
+ - `getCredential` – Get API credentials
820
+ - `getPrompt` – Get prompts with variable substitution
821
+ - `getAvailableVectorStores` – List available vector stores
822
+ - `searchVectorStore` – Semantic search in knowledge base
823
+ - `addDocument` – Add documents to vector store
824
+ - `listDocuments` – List documents in vector store
825
+ - `deleteDocument` – Remove documents from vector store
826
+ - `session.get()` – Session management
827
+ - `log` – Structured logging
828
+ - `trace` – Send traces for observability
829
+ - `health` – Health check
602
830
 
603
- ### Example: health check
831
+ ### Example: Health check
604
832
 
605
833
  ```typescript
606
834
  import { RunflowSDK } from '@runflow-ai/sdk';
@@ -610,24 +838,33 @@ const status = await sdk.health();
610
838
  console.log(status);
611
839
  ```
612
840
 
613
- ### Example: fetch prompt
841
+ ### Example: Fetch prompt with variables
614
842
 
615
843
  ```typescript
616
844
  import { RunflowSDK } from '@runflow-ai/sdk';
617
845
 
618
846
  const sdk = new RunflowSDK({ tenantId: 't', agentId: 'a', requestId: 'r' });
619
- const content = await sdk.getPrompt('welcome');
847
+ const content = await sdk.getPrompt('welcome', {
848
+ userName: 'João',
849
+ company: 'Acme Corp'
850
+ });
620
851
  console.log(content);
621
852
  ```
622
853
 
623
- ### Example: create user
854
+ ### Example: Search knowledge base
624
855
 
625
856
  ```typescript
626
- import { RunflowSDK } from '@runflow-ai/sdk';
857
+ import { searchVectorStore } from '@runflow-ai/sdk';
627
858
 
628
- const sdk = new RunflowSDK({ tenantId: 't', agentId: 'a', requestId: 'r' });
629
- const user = await sdk.createUser({ email: 'user@example.com' });
630
- console.log(user);
859
+ const results = await searchVectorStore(
860
+ 'knowledge-base',
861
+ 'How to configure payments?',
862
+ { k: 5, threshold: 0.8 }
863
+ );
864
+
865
+ results.results.forEach(result => {
866
+ console.log(`${result.score}: ${result.content}`);
867
+ });
631
868
  ```
632
869
 
633
870
  ### Flow Diagram
@@ -653,4 +890,3 @@ Contribuições são bem-vindas! Por favor, abra uma issue ou pull request no re
653
890
  ## 📞 Suporte
654
891
 
655
892
  Para suporte técnico, entre em contato através dos canais oficiais da Runflow ou consulte a documentação completa da plataforma.
656
- >>>>>>> 6435d75437a22d2d974b5406d5c881d3d016d76d
@@ -1,6 +1,7 @@
1
1
  import express from 'express';
2
2
  import { RunflowAgentConfig } from './runflow-agent';
3
3
  import { AgentInput } from '../types';
4
+ import { SwaggerConfig } from './swagger';
4
5
  export interface AgentServerConfig extends RunflowAgentConfig {
5
6
  port?: number;
6
7
  cors?: boolean;
@@ -13,6 +14,7 @@ export interface AgentServerOptions {
13
14
  rateLimiting?: boolean;
14
15
  healthEndpoint?: boolean;
15
16
  middleware?: express.RequestHandler[];
17
+ swagger?: boolean | SwaggerConfig;
16
18
  hooks?: {
17
19
  beforeChat?: (req: express.Request, res: express.Response) => Promise<void> | void;
18
20
  transformInput?: (raw: any) => AgentInput;
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/agents/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAgB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;IAEtC,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnF,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,UAAU,CAAC;QAC1C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;YAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;YAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClK,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;YAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;YAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAC3K,CAAC;IAGF,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,kBAAuB;;iBA4MjB,MAAM;EAWtB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,QAsE7C"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/agents/server.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAgB,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAgB,aAAa,EAAE,MAAM,WAAW,CAAC;AAIxD,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;CACvC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;IAEtC,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa,CAAC;IAElC,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QACnF,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,UAAU,CAAC;QAC1C,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;YAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;YAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAClK,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE;YAAE,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC;YAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC;YAAC,SAAS,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;KAC3K,CAAC;IAGF,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,kBAAuB;;iBAmNjB,MAAM;EAetB;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,QAsE7C"}
@@ -40,6 +40,7 @@ exports.createAgentServer = createAgentServer;
40
40
  exports.startAgent = startAgent;
41
41
  const express_1 = __importDefault(require("express"));
42
42
  const runflow_agent_1 = require("./runflow-agent");
43
+ const swagger_1 = require("./swagger");
43
44
  const fs = __importStar(require("fs"));
44
45
  const path = __importStar(require("path"));
45
46
  /**
@@ -229,6 +230,12 @@ function createAgentServer(config, options = {}) {
229
230
  sessionEnabled: config.session?.enabled || false
230
231
  });
231
232
  });
233
+ // Swagger/OpenAPI Documentation
234
+ if (options.swagger !== false) {
235
+ const swaggerConfig = typeof options.swagger === 'object' ? options.swagger : {};
236
+ const serverPort = options.port || process.env.PORT || 3000;
237
+ (0, swagger_1.setupSwagger)(app, Number(serverPort), swaggerConfig);
238
+ }
232
239
  return {
233
240
  app,
234
241
  start(port) {
@@ -238,6 +245,10 @@ function createAgentServer(config, options = {}) {
238
245
  console.log(`📡 Chat endpoint: http://localhost:${serverPort}/chat`);
239
246
  console.log(`❤️ Health check: http://localhost:${serverPort}/health`);
240
247
  console.log(`ℹ️ Agent info: http://localhost:${serverPort}/agent-info`);
248
+ if (options.swagger !== false) {
249
+ console.log(`📚 API Documentation: http://localhost:${serverPort}/docs`);
250
+ console.log(`📄 OpenAPI Spec: http://localhost:${serverPort}/api-docs.json`);
251
+ }
241
252
  });
242
253
  }
243
254
  };
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/agents/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/agents/server.ts"],"names":[],"mappings":"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"}