@igoruehara/canvas-flow 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/LICENSE +21 -0
- package/README.md +152 -0
- package/bin/canvas-flow.js +1132 -0
- package/package.json +68 -0
- package/public/assets/index-PCQkqMUe.css +1 -0
- package/public/assets/index-qV8twxcq.js +767 -0
- package/public/index.html +13 -0
- package/server/api-key/api-key-connect-provider.d.ts +104 -0
- package/server/api-key/api-key-connect-provider.js +14 -0
- package/server/api-key/api-key-connect-provider.js.map +1 -0
- package/server/api-key/api-key-constants-model.d.ts +2 -0
- package/server/api-key/api-key-constants-model.js +6 -0
- package/server/api-key/api-key-constants-model.js.map +1 -0
- package/server/api-key/api-key-controller.d.ts +12 -0
- package/server/api-key/api-key-controller.js +86 -0
- package/server/api-key/api-key-controller.js.map +1 -0
- package/server/api-key/api-key-module.d.ts +2 -0
- package/server/api-key/api-key-module.js +27 -0
- package/server/api-key/api-key-module.js.map +1 -0
- package/server/api-key/api-key-schema.d.ts +72 -0
- package/server/api-key/api-key-schema.js +98 -0
- package/server/api-key/api-key-schema.js.map +1 -0
- package/server/api-key/api-key-service.d.ts +45 -0
- package/server/api-key/api-key-service.js +151 -0
- package/server/api-key/api-key-service.js.map +1 -0
- package/server/api-key/dto/create-api-key.dto.d.ts +8 -0
- package/server/api-key/dto/create-api-key.dto.js +7 -0
- package/server/api-key/dto/create-api-key.dto.js.map +1 -0
- package/server/app.module.d.ts +2 -0
- package/server/app.module.js +53 -0
- package/server/app.module.js.map +1 -0
- package/server/auth/auth-connect-provider.d.ts +140 -0
- package/server/auth/auth-connect-provider.js +20 -0
- package/server/auth/auth-connect-provider.js.map +1 -0
- package/server/auth/auth-constants-model.d.ts +4 -0
- package/server/auth/auth-constants-model.js +8 -0
- package/server/auth/auth-constants-model.js.map +1 -0
- package/server/auth/auth-controller.d.ts +25 -0
- package/server/auth/auth-controller.js +96 -0
- package/server/auth/auth-controller.js.map +1 -0
- package/server/auth/auth-module.d.ts +2 -0
- package/server/auth/auth-module.js +26 -0
- package/server/auth/auth-module.js.map +1 -0
- package/server/auth/auth-organization-schema.d.ts +44 -0
- package/server/auth/auth-organization-schema.js +62 -0
- package/server/auth/auth-organization-schema.js.map +1 -0
- package/server/auth/auth-schema.d.ts +56 -0
- package/server/auth/auth-schema.js +77 -0
- package/server/auth/auth-schema.js.map +1 -0
- package/server/auth/auth-service.d.ts +64 -0
- package/server/auth/auth-service.js +343 -0
- package/server/auth/auth-service.js.map +1 -0
- package/server/canvas-flow/canvas-flow-connect-provider.d.ts +278 -0
- package/server/canvas-flow/canvas-flow-connect-provider.js +24 -0
- package/server/canvas-flow/canvas-flow-connect-provider.js.map +1 -0
- package/server/canvas-flow/canvas-flow-constants-model.d.ts +6 -0
- package/server/canvas-flow/canvas-flow-constants-model.js +10 -0
- package/server/canvas-flow/canvas-flow-constants-model.js.map +1 -0
- package/server/canvas-flow/canvas-flow-controller.d.ts +98 -0
- package/server/canvas-flow/canvas-flow-controller.js +423 -0
- package/server/canvas-flow/canvas-flow-controller.js.map +1 -0
- package/server/canvas-flow/canvas-flow-module.d.ts +2 -0
- package/server/canvas-flow/canvas-flow-module.js +27 -0
- package/server/canvas-flow/canvas-flow-module.js.map +1 -0
- package/server/canvas-flow/canvas-flow-schema.d.ts +192 -0
- package/server/canvas-flow/canvas-flow-schema.js +239 -0
- package/server/canvas-flow/canvas-flow-schema.js.map +1 -0
- package/server/canvas-flow/canvas-flow-service.d.ts +250 -0
- package/server/canvas-flow/canvas-flow-service.js +1681 -0
- package/server/canvas-flow/canvas-flow-service.js.map +1 -0
- package/server/canvas-flow/dto/create-canvas-flow.dto.d.ts +11 -0
- package/server/canvas-flow/dto/create-canvas-flow.dto.js +61 -0
- package/server/canvas-flow/dto/create-canvas-flow.dto.js.map +1 -0
- package/server/canvas-flow/dto/update-canvas-flow.dto.d.ts +10 -0
- package/server/canvas-flow/dto/update-canvas-flow.dto.js +56 -0
- package/server/canvas-flow/dto/update-canvas-flow.dto.js.map +1 -0
- package/server/constants-global.d.ts +1 -0
- package/server/constants-global.js +5 -0
- package/server/constants-global.js.map +1 -0
- package/server/database/database.module.d.ts +2 -0
- package/server/database/database.module.js +23 -0
- package/server/database/database.module.js.map +1 -0
- package/server/database/database.providers.d.ts +7 -0
- package/server/database/database.providers.js +26 -0
- package/server/database/database.providers.js.map +1 -0
- package/server/documents/documents-connect-provider.d.ts +140 -0
- package/server/documents/documents-connect-provider.js +14 -0
- package/server/documents/documents-connect-provider.js.map +1 -0
- package/server/documents/documents-constants-model.d.ts +2 -0
- package/server/documents/documents-constants-model.js +6 -0
- package/server/documents/documents-constants-model.js.map +1 -0
- package/server/documents/documents-controller.d.ts +16 -0
- package/server/documents/documents-controller.js +117 -0
- package/server/documents/documents-controller.js.map +1 -0
- package/server/documents/documents-module.d.ts +2 -0
- package/server/documents/documents-module.js +27 -0
- package/server/documents/documents-module.js.map +1 -0
- package/server/documents/documents-schema.d.ts +96 -0
- package/server/documents/documents-schema.js +38 -0
- package/server/documents/documents-schema.js.map +1 -0
- package/server/documents/documents-service.d.ts +164 -0
- package/server/documents/documents-service.js +1417 -0
- package/server/documents/documents-service.js.map +1 -0
- package/server/flow-tag/flow-tag-connect-provider.d.ts +146 -0
- package/server/flow-tag/flow-tag-connect-provider.js +14 -0
- package/server/flow-tag/flow-tag-connect-provider.js.map +1 -0
- package/server/flow-tag/flow-tag-constants-model.d.ts +2 -0
- package/server/flow-tag/flow-tag-constants-model.js +6 -0
- package/server/flow-tag/flow-tag-constants-model.js.map +1 -0
- package/server/flow-tag/flow-tag-module.d.ts +2 -0
- package/server/flow-tag/flow-tag-module.js +24 -0
- package/server/flow-tag/flow-tag-module.js.map +1 -0
- package/server/flow-tag/flow-tag-schema.d.ts +100 -0
- package/server/flow-tag/flow-tag-schema.js +131 -0
- package/server/flow-tag/flow-tag-schema.js.map +1 -0
- package/server/flow-tag/flow-tag-service.d.ts +77 -0
- package/server/flow-tag/flow-tag-service.js +156 -0
- package/server/flow-tag/flow-tag-service.js.map +1 -0
- package/server/health.controller.d.ts +7 -0
- package/server/health.controller.js +33 -0
- package/server/health.controller.js.map +1 -0
- package/server/http-batch/http-batch-controller.d.ts +345 -0
- package/server/http-batch/http-batch-controller.js +40 -0
- package/server/http-batch/http-batch-controller.js.map +1 -0
- package/server/http-batch/http-batch-module.d.ts +2 -0
- package/server/http-batch/http-batch-module.js +25 -0
- package/server/http-batch/http-batch-module.js.map +1 -0
- package/server/http-batch/http-batch-service.d.ts +381 -0
- package/server/http-batch/http-batch-service.js +268 -0
- package/server/http-batch/http-batch-service.js.map +1 -0
- package/server/lambda.d.ts +2 -0
- package/server/lambda.js +115 -0
- package/server/lambda.js.map +1 -0
- package/server/llm/openai-provider.d.ts +8 -0
- package/server/llm/openai-provider.js +256 -0
- package/server/llm/openai-provider.js.map +1 -0
- package/server/main.d.ts +1 -0
- package/server/main.js +80 -0
- package/server/main.js.map +1 -0
- package/server/mcp-oauth/mcp-oauth-connect-provider.d.ts +164 -0
- package/server/mcp-oauth/mcp-oauth-connect-provider.js +14 -0
- package/server/mcp-oauth/mcp-oauth-connect-provider.js.map +1 -0
- package/server/mcp-oauth/mcp-oauth-constants-model.d.ts +2 -0
- package/server/mcp-oauth/mcp-oauth-constants-model.js +6 -0
- package/server/mcp-oauth/mcp-oauth-constants-model.js.map +1 -0
- package/server/mcp-oauth/mcp-oauth-controller.d.ts +66 -0
- package/server/mcp-oauth/mcp-oauth-controller.js +166 -0
- package/server/mcp-oauth/mcp-oauth-controller.js.map +1 -0
- package/server/mcp-oauth/mcp-oauth-module.d.ts +2 -0
- package/server/mcp-oauth/mcp-oauth-module.js +27 -0
- package/server/mcp-oauth/mcp-oauth-module.js.map +1 -0
- package/server/mcp-oauth/mcp-oauth-schema.d.ts +112 -0
- package/server/mcp-oauth/mcp-oauth-schema.js +148 -0
- package/server/mcp-oauth/mcp-oauth-schema.js.map +1 -0
- package/server/mcp-oauth/mcp-oauth-service.d.ts +189 -0
- package/server/mcp-oauth/mcp-oauth-service.js +545 -0
- package/server/mcp-oauth/mcp-oauth-service.js.map +1 -0
- package/server/memory/memory-connect-provider.d.ts +200 -0
- package/server/memory/memory-connect-provider.js +26 -0
- package/server/memory/memory-connect-provider.js.map +1 -0
- package/server/memory/memory-constants-model.d.ts +6 -0
- package/server/memory/memory-constants-model.js +10 -0
- package/server/memory/memory-constants-model.js.map +1 -0
- package/server/memory/memory-controller.d.ts +15 -0
- package/server/memory/memory-controller.js +53 -0
- package/server/memory/memory-controller.js.map +1 -0
- package/server/memory/memory-history-schema.d.ts +48 -0
- package/server/memory/memory-history-schema.js +62 -0
- package/server/memory/memory-history-schema.js.map +1 -0
- package/server/memory/memory-module.d.ts +2 -0
- package/server/memory/memory-module.js +26 -0
- package/server/memory/memory-module.js.map +1 -0
- package/server/memory/memory-schema.d.ts +48 -0
- package/server/memory/memory-schema.js +62 -0
- package/server/memory/memory-schema.js.map +1 -0
- package/server/memory/memory-service.d.ts +134 -0
- package/server/memory/memory-service.js +317 -0
- package/server/memory/memory-service.js.map +1 -0
- package/server/memory/memory-trace-history-schema.d.ts +48 -0
- package/server/memory/memory-trace-history-schema.js +62 -0
- package/server/memory/memory-trace-history-schema.js.map +1 -0
- package/server/observability/observability.d.ts +3 -0
- package/server/observability/observability.js +62 -0
- package/server/observability/observability.js.map +1 -0
- package/server/production-guard.d.ts +9 -0
- package/server/production-guard.js +105 -0
- package/server/production-guard.js.map +1 -0
- package/server/provider-config/provider-config-connect-provider.d.ts +44 -0
- package/server/provider-config/provider-config-connect-provider.js +14 -0
- package/server/provider-config/provider-config-connect-provider.js.map +1 -0
- package/server/provider-config/provider-config-constants-model.d.ts +3 -0
- package/server/provider-config/provider-config-constants-model.js +7 -0
- package/server/provider-config/provider-config-constants-model.js.map +1 -0
- package/server/provider-config/provider-config-controller.d.ts +23 -0
- package/server/provider-config/provider-config-controller.js +80 -0
- package/server/provider-config/provider-config-controller.js.map +1 -0
- package/server/provider-config/provider-config-module.d.ts +2 -0
- package/server/provider-config/provider-config-module.js +27 -0
- package/server/provider-config/provider-config-module.js.map +1 -0
- package/server/provider-config/provider-config-schema.d.ts +32 -0
- package/server/provider-config/provider-config-schema.js +46 -0
- package/server/provider-config/provider-config-schema.js.map +1 -0
- package/server/provider-config/provider-config-service.d.ts +178 -0
- package/server/provider-config/provider-config-service.js +689 -0
- package/server/provider-config/provider-config-service.js.map +1 -0
- package/server/queue/queue-job-connect-provider.d.ts +128 -0
- package/server/queue/queue-job-connect-provider.js +14 -0
- package/server/queue/queue-job-connect-provider.js.map +1 -0
- package/server/queue/queue-job-constants-model.d.ts +2 -0
- package/server/queue/queue-job-constants-model.js +6 -0
- package/server/queue/queue-job-constants-model.js.map +1 -0
- package/server/queue/queue-job-schema.d.ts +88 -0
- package/server/queue/queue-job-schema.js +119 -0
- package/server/queue/queue-job-schema.js.map +1 -0
- package/server/queue/queue-lock-connect-provider.d.ts +44 -0
- package/server/queue/queue-lock-connect-provider.js +14 -0
- package/server/queue/queue-lock-connect-provider.js.map +1 -0
- package/server/queue/queue-lock-constants-model.d.ts +2 -0
- package/server/queue/queue-lock-constants-model.js +6 -0
- package/server/queue/queue-lock-constants-model.js.map +1 -0
- package/server/queue/queue-lock-schema.d.ts +32 -0
- package/server/queue/queue-lock-schema.js +47 -0
- package/server/queue/queue-lock-schema.js.map +1 -0
- package/server/queue/queue-message-dedupe-connect-provider.d.ts +116 -0
- package/server/queue/queue-message-dedupe-connect-provider.js +14 -0
- package/server/queue/queue-message-dedupe-connect-provider.js.map +1 -0
- package/server/queue/queue-message-dedupe-constants-model.d.ts +2 -0
- package/server/queue/queue-message-dedupe-constants-model.js +6 -0
- package/server/queue/queue-message-dedupe-constants-model.js.map +1 -0
- package/server/queue/queue-message-dedupe-schema.d.ts +80 -0
- package/server/queue/queue-message-dedupe-schema.js +108 -0
- package/server/queue/queue-message-dedupe-schema.js.map +1 -0
- package/server/queue/queue-module.d.ts +2 -0
- package/server/queue/queue-module.js +33 -0
- package/server/queue/queue-module.js.map +1 -0
- package/server/queue/queue-rate-limit-connect-provider.d.ts +56 -0
- package/server/queue/queue-rate-limit-connect-provider.js +14 -0
- package/server/queue/queue-rate-limit-connect-provider.js.map +1 -0
- package/server/queue/queue-rate-limit-constants-model.d.ts +2 -0
- package/server/queue/queue-rate-limit-constants-model.js +6 -0
- package/server/queue/queue-rate-limit-constants-model.js.map +1 -0
- package/server/queue/queue-rate-limit-schema.d.ts +40 -0
- package/server/queue/queue-rate-limit-schema.js +57 -0
- package/server/queue/queue-rate-limit-schema.js.map +1 -0
- package/server/queue/sqs-transition-service.d.ts +123 -0
- package/server/queue/sqs-transition-service.js +442 -0
- package/server/queue/sqs-transition-service.js.map +1 -0
- package/server/rag/rag-controller.d.ts +167 -0
- package/server/rag/rag-controller.js +232 -0
- package/server/rag/rag-controller.js.map +1 -0
- package/server/rag/rag-module.d.ts +2 -0
- package/server/rag/rag-module.js +30 -0
- package/server/rag/rag-module.js.map +1 -0
- package/server/rag/rag-service.d.ts +361 -0
- package/server/rag/rag-service.js +2864 -0
- package/server/rag/rag-service.js.map +1 -0
- package/server/runner/flow-templates.d.ts +55 -0
- package/server/runner/flow-templates.js +388 -0
- package/server/runner/flow-templates.js.map +1 -0
- package/server/runner/langgraph-runtime.service.d.ts +77 -0
- package/server/runner/langgraph-runtime.service.js +221 -0
- package/server/runner/langgraph-runtime.service.js.map +1 -0
- package/server/runner/runner-controller.d.ts +1044 -0
- package/server/runner/runner-controller.js +751 -0
- package/server/runner/runner-controller.js.map +1 -0
- package/server/runner/runner-module.d.ts +2 -0
- package/server/runner/runner-module.js +37 -0
- package/server/runner/runner-module.js.map +1 -0
- package/server/runner/runner-queue-processor.d.ts +29 -0
- package/server/runner/runner-queue-processor.js +259 -0
- package/server/runner/runner-queue-processor.js.map +1 -0
- package/server/runner/runner-service.d.ts +1761 -0
- package/server/runner/runner-service.js +14256 -0
- package/server/runner/runner-service.js.map +1 -0
- package/server/scripts/migrate-canvas-flow-versions.d.ts +1 -0
- package/server/scripts/migrate-canvas-flow-versions.js +72 -0
- package/server/scripts/migrate-canvas-flow-versions.js.map +1 -0
- package/server/scripts/migrate-mcp-oauth-user-scope.d.ts +1 -0
- package/server/scripts/migrate-mcp-oauth-user-scope.js +95 -0
- package/server/scripts/migrate-mcp-oauth-user-scope.js.map +1 -0
- package/templates/config.example.json +204 -0
- package/templates/config.production.example.json +206 -0
- package/templates/docker-compose.yml +60 -0
|
@@ -0,0 +1,388 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getCanvasFlowTemplates = getCanvasFlowTemplates;
|
|
4
|
+
function createId(prefix) {
|
|
5
|
+
return `${prefix}-${Math.random().toString(36).slice(2, 9)}-${Date.now().toString(36)}`;
|
|
6
|
+
}
|
|
7
|
+
function step(type, index, patch = {}) {
|
|
8
|
+
return {
|
|
9
|
+
id: createId(type),
|
|
10
|
+
type,
|
|
11
|
+
title: '',
|
|
12
|
+
instruction: '',
|
|
13
|
+
position: { x: 120 + index * 260, y: 180 },
|
|
14
|
+
tags: [],
|
|
15
|
+
...patch,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
function edge(source, target) {
|
|
19
|
+
return { id: createId('edge'), source: source.id, target: target.id };
|
|
20
|
+
}
|
|
21
|
+
function base(title, channel) {
|
|
22
|
+
return {
|
|
23
|
+
title,
|
|
24
|
+
responseName: createId('flow').replace(/-/g, '_'),
|
|
25
|
+
execute: 'firstQuestion',
|
|
26
|
+
model: 'gpt-4o',
|
|
27
|
+
llmProvider: 'openai',
|
|
28
|
+
channel,
|
|
29
|
+
isMainFlow: true,
|
|
30
|
+
webWidget: {
|
|
31
|
+
primaryColor: '#0f6bff',
|
|
32
|
+
accentColor: '#00b37e',
|
|
33
|
+
assistantName: 'Assistente IA',
|
|
34
|
+
subtitle: 'Online agora',
|
|
35
|
+
welcomeMessage: 'Ola! Como posso ajudar?',
|
|
36
|
+
placeholder: 'Digite sua mensagem',
|
|
37
|
+
bubbleLabel: 'Precisa de ajuda?',
|
|
38
|
+
avatarText: 'IA',
|
|
39
|
+
openByDefault: false,
|
|
40
|
+
position: 'right',
|
|
41
|
+
},
|
|
42
|
+
whatsapp: {
|
|
43
|
+
provider: 'meta',
|
|
44
|
+
deliveryMode: 'provider',
|
|
45
|
+
verifyToken: 'canvas-flow-token',
|
|
46
|
+
phoneNumberId: '',
|
|
47
|
+
accessToken: '',
|
|
48
|
+
graphApiVersion: 'v20.0',
|
|
49
|
+
autoReply: true,
|
|
50
|
+
},
|
|
51
|
+
turnHistoricMessages: 20,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
function supportWhatsappRag() {
|
|
55
|
+
const start = step('message', 0, {
|
|
56
|
+
title: 'Boas vindas',
|
|
57
|
+
instruction: 'Ola! Sou o assistente de atendimento. Me conte o que voce precisa.',
|
|
58
|
+
});
|
|
59
|
+
const input = step('input', 1, {
|
|
60
|
+
title: 'Pergunta do cliente',
|
|
61
|
+
responseName: 'pergunta',
|
|
62
|
+
instruction: 'Digite sua duvida.',
|
|
63
|
+
});
|
|
64
|
+
const supervisor = step('component', 2, {
|
|
65
|
+
title: 'Supervisor de intencao',
|
|
66
|
+
instruction: 'Classifica a intencao e roteia para fluxos especializados quando existirem.',
|
|
67
|
+
component: {
|
|
68
|
+
type: 'flowRouter',
|
|
69
|
+
responseName: 'flowRouter',
|
|
70
|
+
flowRouterReasonResponseName: 'supervisor',
|
|
71
|
+
flowRouterRules: [
|
|
72
|
+
{
|
|
73
|
+
id: createId('rule'),
|
|
74
|
+
label: 'Financeiro',
|
|
75
|
+
targetAgentId: '',
|
|
76
|
+
targetFlowId: '',
|
|
77
|
+
conditionMode: 'llm',
|
|
78
|
+
condition: 'Roteie se o usuario falar de boleto, pagamento, segunda via, cobranca ou financeiro.',
|
|
79
|
+
conditionTemperature: 0,
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
id: createId('rule'),
|
|
83
|
+
label: 'Suporte tecnico',
|
|
84
|
+
targetAgentId: '',
|
|
85
|
+
targetFlowId: '',
|
|
86
|
+
conditionMode: 'llm',
|
|
87
|
+
condition: 'Roteie se o usuario relatar erro, falha tecnica, acesso, integracao ou instabilidade.',
|
|
88
|
+
conditionTemperature: 0,
|
|
89
|
+
},
|
|
90
|
+
],
|
|
91
|
+
flowRouterFallbackAgentId: '',
|
|
92
|
+
flowRouterFallbackFlowId: '',
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
const rag = step('component', 3, {
|
|
96
|
+
title: 'Resposta com base de conhecimento',
|
|
97
|
+
responseName: 'respostaRag',
|
|
98
|
+
component: {
|
|
99
|
+
type: 'rag',
|
|
100
|
+
responseName: 'respostaRag',
|
|
101
|
+
collectionName: '',
|
|
102
|
+
k: 8,
|
|
103
|
+
turnHistoricMessages: 20,
|
|
104
|
+
prompt: 'Responda em pt-BR de forma objetiva. Use a base de conhecimento quando houver documentos relevantes. Se faltar contexto, diga o que precisa confirmar.',
|
|
105
|
+
queryTemplate: '{{context.slots.pergunta}}',
|
|
106
|
+
ragLlmProvider: 'auto',
|
|
107
|
+
ragEmbeddingProvider: 'auto',
|
|
108
|
+
ragSearchProvider: 'auto',
|
|
109
|
+
ragStorageProvider: 'none',
|
|
110
|
+
ragUseAgentFilter: true,
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
const end = step('end', 4, {
|
|
114
|
+
title: 'Responder cliente',
|
|
115
|
+
instruction: '{{context.slots.respostaRag.text}}',
|
|
116
|
+
});
|
|
117
|
+
return { ...base('Atendimento WhatsApp com RAG e Supervisor', 'whatsapp'), startStepId: start.id, steps: [start, input, supervisor, rag, end], edges: [edge(start, input), edge(input, supervisor), edge(supervisor, rag), edge(rag, end)] };
|
|
118
|
+
}
|
|
119
|
+
function schedulingWhatsapp() {
|
|
120
|
+
const start = step('message', 0, {
|
|
121
|
+
title: 'Inicio do agendamento',
|
|
122
|
+
instruction: 'Vamos agendar seu atendimento. Primeiro, informe seu CPF.',
|
|
123
|
+
});
|
|
124
|
+
const cpf = step('input', 1, {
|
|
125
|
+
title: 'Coletar CPF',
|
|
126
|
+
responseName: 'cpf',
|
|
127
|
+
instruction: 'Informe seu CPF.',
|
|
128
|
+
inputValidationMode: 'type',
|
|
129
|
+
inputValidationType: 'cpf',
|
|
130
|
+
inputValidationErrorMessage: 'CPF invalido. Informe novamente somente os numeros.',
|
|
131
|
+
});
|
|
132
|
+
const mcp = step('component', 2, {
|
|
133
|
+
title: 'Consultar disponibilidade',
|
|
134
|
+
responseName: 'agenda',
|
|
135
|
+
component: {
|
|
136
|
+
type: 'mcp',
|
|
137
|
+
responseName: 'agenda',
|
|
138
|
+
mcpMode: 'api',
|
|
139
|
+
mcpToolName: 'consultar_agenda',
|
|
140
|
+
mcpToolDescription: 'Consulta disponibilidade de agenda por CPF.',
|
|
141
|
+
mcpInstruction: 'Use o CPF do contexto para consultar disponibilidade. Normalize providers, services, dates e times.',
|
|
142
|
+
mcpInputSchema: '{\n "type": "object",\n "properties": {\n "cpf": { "type": "string" }\n },\n "required": ["cpf"]\n}',
|
|
143
|
+
mcpOutputSchema: '{\n "type": "object",\n "properties": {\n "providers": { "type": "array" },\n "services": { "type": "array" },\n "dates": { "type": "array" },\n "times": { "type": "array" }\n }\n}',
|
|
144
|
+
mcpApiMethod: 'POST',
|
|
145
|
+
mcpApiBaseUrl: '',
|
|
146
|
+
mcpApiBodyJson: '{\n "cpf": "{{context.slots.cpf}}"\n}',
|
|
147
|
+
mcpApiExecute: true,
|
|
148
|
+
},
|
|
149
|
+
});
|
|
150
|
+
const rich = step('richMessage', 3, {
|
|
151
|
+
title: 'Escolher horario',
|
|
152
|
+
instruction: 'Escolha uma opcao de agendamento.',
|
|
153
|
+
richMessage: {
|
|
154
|
+
type: 'appointmentFlow',
|
|
155
|
+
text: 'Escolha uma opcao de agendamento.',
|
|
156
|
+
appointmentFlow: {
|
|
157
|
+
mode: 'auto',
|
|
158
|
+
flowToken: '{{context.conversationId}}',
|
|
159
|
+
flowCta: 'Agendar',
|
|
160
|
+
flowScreen: 'START',
|
|
161
|
+
headerText: 'Agendamento',
|
|
162
|
+
buttonText: 'Ver opcoes',
|
|
163
|
+
stage: 'providers',
|
|
164
|
+
providersTemplate: '{{context.slots.agenda.providers}}',
|
|
165
|
+
servicesTemplate: '{{context.slots.agenda.services}}',
|
|
166
|
+
datesTemplate: '{{context.slots.agenda.dates}}',
|
|
167
|
+
timesTemplate: '{{context.slots.agenda.times}}',
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
const end = step('end', 4, {
|
|
172
|
+
title: 'Confirmacao',
|
|
173
|
+
instruction: 'Perfeito. Registrei sua escolha e sigo com a confirmacao.',
|
|
174
|
+
});
|
|
175
|
+
return { ...base('Agendamento assistido por WhatsApp Flow', 'whatsapp'), startStepId: start.id, steps: [start, cpf, mcp, rich, end], edges: [edge(start, cpf), edge(cpf, mcp), edge(mcp, rich), edge(rich, end)] };
|
|
176
|
+
}
|
|
177
|
+
function clinicTriageApproval() {
|
|
178
|
+
const start = step('message', 0, {
|
|
179
|
+
title: 'Recepcao',
|
|
180
|
+
instruction: 'Ola! Vou te ajudar com agendamento, exame, convenio ou remarcacao.',
|
|
181
|
+
});
|
|
182
|
+
const input = step('input', 1, {
|
|
183
|
+
title: 'Solicitacao',
|
|
184
|
+
responseName: 'solicitacao',
|
|
185
|
+
instruction: 'Descreva o que voce precisa.',
|
|
186
|
+
});
|
|
187
|
+
const classify = step('component', 2, {
|
|
188
|
+
title: 'Classificar atendimento',
|
|
189
|
+
responseName: 'triagem',
|
|
190
|
+
component: {
|
|
191
|
+
type: 'mcp',
|
|
192
|
+
responseName: 'triagem',
|
|
193
|
+
mcpMode: 'fields',
|
|
194
|
+
mcpToolName: 'classificar_triagem_clinica',
|
|
195
|
+
mcpToolDescription: 'Classifica demanda de clinica e extrai dados essenciais.',
|
|
196
|
+
mcpInstruction: 'Classifique a solicitacao em agendamento, exame, convenio, remarcacao ou humano. Extraia especialidade, convenio e urgencia quando aparecerem.',
|
|
197
|
+
mcpOutputSchema: '{\n "type": "object",\n "properties": {\n "intencao": { "type": "string" },\n "especialidade": { "type": "string" },\n "convenio": { "type": "string" },\n "urgente": { "type": "boolean" }\n }\n}',
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
const agenda = step('component', 3, {
|
|
201
|
+
title: 'Consultar agenda',
|
|
202
|
+
responseName: 'agenda',
|
|
203
|
+
component: {
|
|
204
|
+
type: 'mcp',
|
|
205
|
+
responseName: 'agenda',
|
|
206
|
+
mcpMode: 'api',
|
|
207
|
+
mcpToolName: 'consultar_agenda_clinica',
|
|
208
|
+
mcpToolDescription: 'Consulta agenda no sistema da clinica.',
|
|
209
|
+
mcpInstruction: 'Monte a consulta usando especialidade e convenio extraidos na triagem.',
|
|
210
|
+
mcpApiMethod: 'POST',
|
|
211
|
+
mcpApiBaseUrl: '',
|
|
212
|
+
mcpApiBodyJson: '{\n "especialidade": "{{context.slots.triagem.output.especialidade}}",\n "convenio": "{{context.slots.triagem.output.convenio}}"\n}',
|
|
213
|
+
},
|
|
214
|
+
});
|
|
215
|
+
const approve = step('component', 4, {
|
|
216
|
+
title: 'Aprovar encaixe',
|
|
217
|
+
responseName: 'aprovacaoEncaixe',
|
|
218
|
+
component: {
|
|
219
|
+
type: 'approval',
|
|
220
|
+
responseName: 'aprovacaoEncaixe',
|
|
221
|
+
approvalTitle: 'Aprovar encaixe de agenda',
|
|
222
|
+
approvalDescription: 'A solicitacao parece urgente. Revise antes de oferecer encaixe fora da regra padrao.',
|
|
223
|
+
approvalRisk: 'high',
|
|
224
|
+
approvalScopes: ['agenda_write', 'exception'],
|
|
225
|
+
approvalApproverHint: 'Recepcao ou coordenacao da clinica',
|
|
226
|
+
approvalKeyword: 'aprovar',
|
|
227
|
+
approvalRejectKeyword: 'reprovar',
|
|
228
|
+
approvalApprovedText: 'Aprovado. Vou continuar com a confirmacao do encaixe.',
|
|
229
|
+
approvalRejectedText: 'Nao vou oferecer encaixe fora da regra. Vou sugerir horarios padrao.',
|
|
230
|
+
approvalRequireExplicitInput: true,
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
const end = step('end', 5, {
|
|
234
|
+
title: 'Responder paciente',
|
|
235
|
+
instruction: 'Encontrei as melhores opcoes e vou seguir com a confirmacao.',
|
|
236
|
+
});
|
|
237
|
+
return { ...base('Clinica: triagem e agendamento com aprovacao', 'whatsapp'), startStepId: start.id, steps: [start, input, classify, agenda, approve, end], edges: [edge(start, input), edge(input, classify), edge(classify, agenda), edge(agenda, approve), edge(approve, end)] };
|
|
238
|
+
}
|
|
239
|
+
function ecommerceRefundSafe() {
|
|
240
|
+
const start = step('message', 0, {
|
|
241
|
+
title: 'Atendimento loja',
|
|
242
|
+
instruction: 'Ola! Posso ajudar com pedido, troca, rastreio ou produto.',
|
|
243
|
+
});
|
|
244
|
+
const order = step('input', 1, {
|
|
245
|
+
title: 'Pedido ou duvida',
|
|
246
|
+
responseName: 'pedido',
|
|
247
|
+
instruction: 'Informe seu numero de pedido ou descreva sua duvida.',
|
|
248
|
+
});
|
|
249
|
+
const lookup = step('component', 2, {
|
|
250
|
+
title: 'Consultar pedido',
|
|
251
|
+
responseName: 'consultaPedido',
|
|
252
|
+
component: {
|
|
253
|
+
type: 'mcp',
|
|
254
|
+
responseName: 'consultaPedido',
|
|
255
|
+
mcpMode: 'api',
|
|
256
|
+
mcpToolName: 'consultar_pedido',
|
|
257
|
+
mcpToolDescription: 'Consulta dados de pedido, rastreio e status.',
|
|
258
|
+
mcpInstruction: 'Use o texto do cliente para localizar pedido e status. Nunca invente codigo de rastreio.',
|
|
259
|
+
mcpApiMethod: 'GET',
|
|
260
|
+
mcpApiBaseUrl: '',
|
|
261
|
+
mcpApiQueryJson: '{\n "q": "{{context.slots.pedido}}"\n}',
|
|
262
|
+
},
|
|
263
|
+
});
|
|
264
|
+
const approveRefund = step('component', 3, {
|
|
265
|
+
title: 'Aprovar reembolso',
|
|
266
|
+
responseName: 'aprovacaoReembolso',
|
|
267
|
+
component: {
|
|
268
|
+
type: 'approval',
|
|
269
|
+
responseName: 'aprovacaoReembolso',
|
|
270
|
+
approvalTitle: 'Aprovar reembolso ou cupom',
|
|
271
|
+
approvalDescription: 'Antes de gerar cupom/reembolso, confira valor, politica e historico do cliente.',
|
|
272
|
+
approvalRisk: 'high',
|
|
273
|
+
approvalScopes: ['refund', 'coupon_write'],
|
|
274
|
+
approvalApproverHint: 'Lider de atendimento',
|
|
275
|
+
approvalKeyword: 'aprovar',
|
|
276
|
+
approvalRejectKeyword: 'reprovar',
|
|
277
|
+
approvalApprovedText: 'Aprovado. Vou montar a resposta com a compensacao.',
|
|
278
|
+
approvalRejectedText: 'Reembolso bloqueado. Vou orientar o cliente com alternativas seguras.',
|
|
279
|
+
approvalRequireExplicitInput: true,
|
|
280
|
+
},
|
|
281
|
+
});
|
|
282
|
+
const answer = step('component', 4, {
|
|
283
|
+
title: 'Resposta final',
|
|
284
|
+
responseName: 'resposta',
|
|
285
|
+
component: {
|
|
286
|
+
type: 'openaiGen',
|
|
287
|
+
responseName: 'resposta',
|
|
288
|
+
prompt: 'Responda de forma clara usando context.slots.consultaPedido e o status da aprovacao quando existir.',
|
|
289
|
+
queryTemplate: '{{context.slots.pedido}}',
|
|
290
|
+
},
|
|
291
|
+
});
|
|
292
|
+
const end = step('end', 5, {
|
|
293
|
+
title: 'Enviar resposta',
|
|
294
|
+
instruction: '{{context.slots.resposta.text}}',
|
|
295
|
+
});
|
|
296
|
+
return { ...base('E-commerce: pedido, troca e reembolso seguro', 'whatsapp'), startStepId: start.id, steps: [start, order, lookup, approveRefund, answer, end], edges: [edge(start, order), edge(order, lookup), edge(lookup, approveRefund), edge(approveRefund, answer), edge(answer, end)] };
|
|
297
|
+
}
|
|
298
|
+
function realEstateLeadCrm() {
|
|
299
|
+
const start = step('message', 0, {
|
|
300
|
+
title: 'Receber lead',
|
|
301
|
+
instruction: 'Ola! Vou entender seu perfil para sugerir imoveis.',
|
|
302
|
+
});
|
|
303
|
+
const input = step('input', 1, {
|
|
304
|
+
title: 'Perfil do cliente',
|
|
305
|
+
responseName: 'perfil',
|
|
306
|
+
instruction: 'Qual bairro, faixa de valor e tipo de imovel voce procura?',
|
|
307
|
+
});
|
|
308
|
+
const normalize = step('component', 2, {
|
|
309
|
+
title: 'Normalizar perfil',
|
|
310
|
+
responseName: 'lead',
|
|
311
|
+
component: {
|
|
312
|
+
type: 'context',
|
|
313
|
+
responseName: 'lead',
|
|
314
|
+
contextMode: 'llm',
|
|
315
|
+
contextLlmPrompt: 'Extraia bairro, valorMaximo, quartos, tipo e urgencia do lead imobiliario.',
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
const search = step('component', 3, {
|
|
319
|
+
title: 'Buscar imoveis',
|
|
320
|
+
responseName: 'imoveis',
|
|
321
|
+
component: {
|
|
322
|
+
type: 'mcp',
|
|
323
|
+
responseName: 'imoveis',
|
|
324
|
+
mcpMode: 'api',
|
|
325
|
+
mcpToolName: 'buscar_imoveis',
|
|
326
|
+
mcpToolDescription: 'Busca imoveis no CRM/imobiliaria.',
|
|
327
|
+
mcpApiMethod: 'POST',
|
|
328
|
+
mcpApiBaseUrl: '',
|
|
329
|
+
mcpApiBodyJson: '{\n "bairro": "{{context.slots.lead.bairro}}",\n "valorMaximo": "{{context.slots.lead.valorMaximo}}",\n "quartos": "{{context.slots.lead.quartos}}"\n}',
|
|
330
|
+
},
|
|
331
|
+
});
|
|
332
|
+
const end = step('end', 4, {
|
|
333
|
+
title: 'Pronta entrega',
|
|
334
|
+
instruction: 'Separei algumas opcoes e posso agendar uma visita.',
|
|
335
|
+
});
|
|
336
|
+
return { ...base('Imobiliaria: qualificacao e busca no CRM', 'webWidget'), startStepId: start.id, steps: [start, input, normalize, search, end], edges: [edge(start, input), edge(input, normalize), edge(normalize, search), edge(search, end)] };
|
|
337
|
+
}
|
|
338
|
+
function backofficeAgentOps() {
|
|
339
|
+
const cron = step('component', 0, {
|
|
340
|
+
title: 'Rotina programada',
|
|
341
|
+
component: { type: 'cron', responseName: 'cron', cronEnabled: false, cronMode: 'daily', cronTime: '09:00', cronTimezone: 'America/Sao_Paulo', cronInputText: 'Executar rotina de backoffice', cronRunFrom: 'cronNode' },
|
|
342
|
+
});
|
|
343
|
+
const api = step('api', 1, {
|
|
344
|
+
title: 'Buscar dados operacionais',
|
|
345
|
+
responseName: 'dadosOperacionais',
|
|
346
|
+
api: { responseName: 'dadosOperacionais', requests: [{ method: 'GET', url: 'https://example.com', headers: {}, params: {}, bodyType: 'none' }] },
|
|
347
|
+
});
|
|
348
|
+
const approve = step('component', 2, {
|
|
349
|
+
title: 'Aprovar escrita',
|
|
350
|
+
responseName: 'aprovacaoBackoffice',
|
|
351
|
+
component: {
|
|
352
|
+
type: 'approval',
|
|
353
|
+
responseName: 'aprovacaoBackoffice',
|
|
354
|
+
approvalTitle: 'Aprovar registro operacional',
|
|
355
|
+
approvalDescription: 'Revise os dados da rotina antes de gravar no banco operacional.',
|
|
356
|
+
approvalRisk: 'medium',
|
|
357
|
+
approvalScopes: ['mongo_write', 'backoffice'],
|
|
358
|
+
approvalApproverHint: 'Operador responsavel',
|
|
359
|
+
approvalKeyword: 'aprovar',
|
|
360
|
+
approvalRejectKeyword: 'reprovar',
|
|
361
|
+
approvalApprovedText: 'Aprovado. Vou registrar o resultado.',
|
|
362
|
+
approvalRejectedText: 'Registro bloqueado por aprovacao humana.',
|
|
363
|
+
approvalRequireExplicitInput: true,
|
|
364
|
+
},
|
|
365
|
+
});
|
|
366
|
+
const mongo = step('component', 3, {
|
|
367
|
+
title: 'Registrar resultado',
|
|
368
|
+
responseName: 'registro',
|
|
369
|
+
component: { type: 'mongodb', responseName: 'registro', mongoOperation: 'insertOne', mongoCollectionName: 'agentic_backoffice_runs', mongoDocument: '{\n "runAt": "{{context.now}}",\n "agentId": "{{context.agentId}}",\n "dados": "{{context.slots.dadosOperacionais}}"\n}' },
|
|
370
|
+
});
|
|
371
|
+
const dashboard = step('component', 4, {
|
|
372
|
+
title: 'Resumo operacional',
|
|
373
|
+
component: { type: 'dashboard', responseName: 'dashboard', dashboardSource: 'trace', dashboardMode: 'summary', dashboardTitle: 'Resumo da rotina' },
|
|
374
|
+
});
|
|
375
|
+
const end = step('end', 5, { instruction: 'Rotina executada. Veja o dashboard no trace.' });
|
|
376
|
+
return { ...base('Backoffice agentico com cron, API e Mongo', 'webWidget'), startStepId: cron.id, steps: [cron, api, approve, mongo, dashboard, end], edges: [edge(cron, api), edge(api, approve), edge(approve, mongo), edge(mongo, dashboard), edge(dashboard, end)] };
|
|
377
|
+
}
|
|
378
|
+
function getCanvasFlowTemplates() {
|
|
379
|
+
return [
|
|
380
|
+
{ id: 'support-whatsapp-rag', name: 'Atendimento WhatsApp + RAG', segment: 'Suporte', description: 'Entrada WhatsApp com supervisor de intencao, fallback RAG e resposta final.', channel: 'whatsapp', config: supportWhatsappRag() },
|
|
381
|
+
{ id: 'scheduling-whatsapp', name: 'Agendamento inteligente', segment: 'Atendimento', description: 'Coleta CPF, consulta disponibilidade via MCP/API e renderiza opcoes interativas.', channel: 'whatsapp', config: schedulingWhatsapp() },
|
|
382
|
+
{ id: 'clinic-triage-approval', name: 'Clinica com aprovacao', segment: 'Saude', description: 'Triagem, agenda via MCP e aprovacao humana para encaixes sensiveis.', channel: 'whatsapp', config: clinicTriageApproval() },
|
|
383
|
+
{ id: 'ecommerce-refund-safe', name: 'E-commerce seguro', segment: 'Varejo', description: 'Consulta pedido via MCP e exige aprovacao antes de reembolso ou cupom.', channel: 'whatsapp', config: ecommerceRefundSafe() },
|
|
384
|
+
{ id: 'real-estate-lead-crm', name: 'Imobiliaria CRM', segment: 'Vendas', description: 'Qualifica leads, normaliza perfil e busca imoveis por ferramenta MCP/API.', channel: 'webWidget', config: realEstateLeadCrm() },
|
|
385
|
+
{ id: 'backoffice-agentops', name: 'Backoffice agentico', segment: 'Operacoes', description: 'Cron, API, MongoDB e dashboard para rotinas internas com rastreabilidade.', channel: 'webWidget', config: backofficeAgentOps() },
|
|
386
|
+
];
|
|
387
|
+
}
|
|
388
|
+
//# sourceMappingURL=flow-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow-templates.js","sourceRoot":"","sources":["../../src/runner/flow-templates.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { ConfigService } from '@nestjs/config';
|
|
2
|
+
import * as mongoose from 'mongoose';
|
|
3
|
+
export type CanvasFlowLangGraphQueueItem = {
|
|
4
|
+
stepId: string;
|
|
5
|
+
readyAt: number;
|
|
6
|
+
delayMs: number;
|
|
7
|
+
};
|
|
8
|
+
export type CanvasFlowLangGraphStatus = 'running' | 'waiting' | 'completed' | 'ended' | 'limit';
|
|
9
|
+
export type CanvasFlowLangGraphState = {
|
|
10
|
+
runId: string;
|
|
11
|
+
queue: CanvasFlowLangGraphQueueItem[];
|
|
12
|
+
completed: string[];
|
|
13
|
+
visitCountByStep: Record<string, number>;
|
|
14
|
+
waitingInput: string;
|
|
15
|
+
ended: boolean;
|
|
16
|
+
safety: number;
|
|
17
|
+
maxExecutionSteps: number;
|
|
18
|
+
maxStepVisits: number;
|
|
19
|
+
activeFlowId: string;
|
|
20
|
+
activeFlowName: string;
|
|
21
|
+
clearConversationMemory: boolean;
|
|
22
|
+
context: Record<string, any>;
|
|
23
|
+
messages: Array<Record<string, any>>;
|
|
24
|
+
trace: any[];
|
|
25
|
+
traceDropped: number;
|
|
26
|
+
checkpoints: number;
|
|
27
|
+
status: CanvasFlowLangGraphStatus;
|
|
28
|
+
updatedAt: string;
|
|
29
|
+
};
|
|
30
|
+
export type CanvasFlowLangGraphThreadScope = {
|
|
31
|
+
organizationId?: string;
|
|
32
|
+
ownerId?: string;
|
|
33
|
+
agentId?: string;
|
|
34
|
+
entryFlowId?: string;
|
|
35
|
+
flowId?: string;
|
|
36
|
+
conversationId: string;
|
|
37
|
+
};
|
|
38
|
+
export type CanvasFlowLangGraphRuntimeMetadata = {
|
|
39
|
+
engine: 'langgraph';
|
|
40
|
+
durable: boolean;
|
|
41
|
+
storage: 'mongodb' | 'memory';
|
|
42
|
+
threadId: string;
|
|
43
|
+
checkpointNamespace: string;
|
|
44
|
+
checkpoints: number;
|
|
45
|
+
recovered: boolean;
|
|
46
|
+
status: CanvasFlowLangGraphStatus;
|
|
47
|
+
};
|
|
48
|
+
export declare class LangGraphRuntimeService {
|
|
49
|
+
private readonly databaseConnection?;
|
|
50
|
+
private readonly configService?;
|
|
51
|
+
private readonly memorySaver;
|
|
52
|
+
private mongoSaver?;
|
|
53
|
+
private mongoClient?;
|
|
54
|
+
private mongoIndexesReady?;
|
|
55
|
+
constructor(databaseConnection?: typeof mongoose, configService?: ConfigService);
|
|
56
|
+
createThreadId(scope: CanvasFlowLangGraphThreadScope): string;
|
|
57
|
+
private checkpointNamespace;
|
|
58
|
+
private checkpointCollectionName;
|
|
59
|
+
private checkpointWritesCollectionName;
|
|
60
|
+
private checkpointTtlSeconds;
|
|
61
|
+
private checkpointIndexRetryAttempts;
|
|
62
|
+
private checkpointIndexRetryDelayMs;
|
|
63
|
+
private isTransientMongoError;
|
|
64
|
+
private wait;
|
|
65
|
+
private getMongoConnection;
|
|
66
|
+
private createMongoIndexes;
|
|
67
|
+
private ensureMongoIndexes;
|
|
68
|
+
private resolveCheckpointer;
|
|
69
|
+
run(params: {
|
|
70
|
+
threadId: string;
|
|
71
|
+
initialState: CanvasFlowLangGraphState;
|
|
72
|
+
executeTick: (state: CanvasFlowLangGraphState) => Promise<CanvasFlowLangGraphState>;
|
|
73
|
+
}): Promise<{
|
|
74
|
+
state: CanvasFlowLangGraphState;
|
|
75
|
+
runtime: CanvasFlowLangGraphRuntimeMetadata;
|
|
76
|
+
}>;
|
|
77
|
+
}
|