@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.
Files changed (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +152 -0
  3. package/bin/canvas-flow.js +1132 -0
  4. package/package.json +68 -0
  5. package/public/assets/index-PCQkqMUe.css +1 -0
  6. package/public/assets/index-qV8twxcq.js +767 -0
  7. package/public/index.html +13 -0
  8. package/server/api-key/api-key-connect-provider.d.ts +104 -0
  9. package/server/api-key/api-key-connect-provider.js +14 -0
  10. package/server/api-key/api-key-connect-provider.js.map +1 -0
  11. package/server/api-key/api-key-constants-model.d.ts +2 -0
  12. package/server/api-key/api-key-constants-model.js +6 -0
  13. package/server/api-key/api-key-constants-model.js.map +1 -0
  14. package/server/api-key/api-key-controller.d.ts +12 -0
  15. package/server/api-key/api-key-controller.js +86 -0
  16. package/server/api-key/api-key-controller.js.map +1 -0
  17. package/server/api-key/api-key-module.d.ts +2 -0
  18. package/server/api-key/api-key-module.js +27 -0
  19. package/server/api-key/api-key-module.js.map +1 -0
  20. package/server/api-key/api-key-schema.d.ts +72 -0
  21. package/server/api-key/api-key-schema.js +98 -0
  22. package/server/api-key/api-key-schema.js.map +1 -0
  23. package/server/api-key/api-key-service.d.ts +45 -0
  24. package/server/api-key/api-key-service.js +151 -0
  25. package/server/api-key/api-key-service.js.map +1 -0
  26. package/server/api-key/dto/create-api-key.dto.d.ts +8 -0
  27. package/server/api-key/dto/create-api-key.dto.js +7 -0
  28. package/server/api-key/dto/create-api-key.dto.js.map +1 -0
  29. package/server/app.module.d.ts +2 -0
  30. package/server/app.module.js +53 -0
  31. package/server/app.module.js.map +1 -0
  32. package/server/auth/auth-connect-provider.d.ts +140 -0
  33. package/server/auth/auth-connect-provider.js +20 -0
  34. package/server/auth/auth-connect-provider.js.map +1 -0
  35. package/server/auth/auth-constants-model.d.ts +4 -0
  36. package/server/auth/auth-constants-model.js +8 -0
  37. package/server/auth/auth-constants-model.js.map +1 -0
  38. package/server/auth/auth-controller.d.ts +25 -0
  39. package/server/auth/auth-controller.js +96 -0
  40. package/server/auth/auth-controller.js.map +1 -0
  41. package/server/auth/auth-module.d.ts +2 -0
  42. package/server/auth/auth-module.js +26 -0
  43. package/server/auth/auth-module.js.map +1 -0
  44. package/server/auth/auth-organization-schema.d.ts +44 -0
  45. package/server/auth/auth-organization-schema.js +62 -0
  46. package/server/auth/auth-organization-schema.js.map +1 -0
  47. package/server/auth/auth-schema.d.ts +56 -0
  48. package/server/auth/auth-schema.js +77 -0
  49. package/server/auth/auth-schema.js.map +1 -0
  50. package/server/auth/auth-service.d.ts +64 -0
  51. package/server/auth/auth-service.js +343 -0
  52. package/server/auth/auth-service.js.map +1 -0
  53. package/server/canvas-flow/canvas-flow-connect-provider.d.ts +278 -0
  54. package/server/canvas-flow/canvas-flow-connect-provider.js +24 -0
  55. package/server/canvas-flow/canvas-flow-connect-provider.js.map +1 -0
  56. package/server/canvas-flow/canvas-flow-constants-model.d.ts +6 -0
  57. package/server/canvas-flow/canvas-flow-constants-model.js +10 -0
  58. package/server/canvas-flow/canvas-flow-constants-model.js.map +1 -0
  59. package/server/canvas-flow/canvas-flow-controller.d.ts +98 -0
  60. package/server/canvas-flow/canvas-flow-controller.js +423 -0
  61. package/server/canvas-flow/canvas-flow-controller.js.map +1 -0
  62. package/server/canvas-flow/canvas-flow-module.d.ts +2 -0
  63. package/server/canvas-flow/canvas-flow-module.js +27 -0
  64. package/server/canvas-flow/canvas-flow-module.js.map +1 -0
  65. package/server/canvas-flow/canvas-flow-schema.d.ts +192 -0
  66. package/server/canvas-flow/canvas-flow-schema.js +239 -0
  67. package/server/canvas-flow/canvas-flow-schema.js.map +1 -0
  68. package/server/canvas-flow/canvas-flow-service.d.ts +250 -0
  69. package/server/canvas-flow/canvas-flow-service.js +1681 -0
  70. package/server/canvas-flow/canvas-flow-service.js.map +1 -0
  71. package/server/canvas-flow/dto/create-canvas-flow.dto.d.ts +11 -0
  72. package/server/canvas-flow/dto/create-canvas-flow.dto.js +61 -0
  73. package/server/canvas-flow/dto/create-canvas-flow.dto.js.map +1 -0
  74. package/server/canvas-flow/dto/update-canvas-flow.dto.d.ts +10 -0
  75. package/server/canvas-flow/dto/update-canvas-flow.dto.js +56 -0
  76. package/server/canvas-flow/dto/update-canvas-flow.dto.js.map +1 -0
  77. package/server/constants-global.d.ts +1 -0
  78. package/server/constants-global.js +5 -0
  79. package/server/constants-global.js.map +1 -0
  80. package/server/database/database.module.d.ts +2 -0
  81. package/server/database/database.module.js +23 -0
  82. package/server/database/database.module.js.map +1 -0
  83. package/server/database/database.providers.d.ts +7 -0
  84. package/server/database/database.providers.js +26 -0
  85. package/server/database/database.providers.js.map +1 -0
  86. package/server/documents/documents-connect-provider.d.ts +140 -0
  87. package/server/documents/documents-connect-provider.js +14 -0
  88. package/server/documents/documents-connect-provider.js.map +1 -0
  89. package/server/documents/documents-constants-model.d.ts +2 -0
  90. package/server/documents/documents-constants-model.js +6 -0
  91. package/server/documents/documents-constants-model.js.map +1 -0
  92. package/server/documents/documents-controller.d.ts +16 -0
  93. package/server/documents/documents-controller.js +117 -0
  94. package/server/documents/documents-controller.js.map +1 -0
  95. package/server/documents/documents-module.d.ts +2 -0
  96. package/server/documents/documents-module.js +27 -0
  97. package/server/documents/documents-module.js.map +1 -0
  98. package/server/documents/documents-schema.d.ts +96 -0
  99. package/server/documents/documents-schema.js +38 -0
  100. package/server/documents/documents-schema.js.map +1 -0
  101. package/server/documents/documents-service.d.ts +164 -0
  102. package/server/documents/documents-service.js +1417 -0
  103. package/server/documents/documents-service.js.map +1 -0
  104. package/server/flow-tag/flow-tag-connect-provider.d.ts +146 -0
  105. package/server/flow-tag/flow-tag-connect-provider.js +14 -0
  106. package/server/flow-tag/flow-tag-connect-provider.js.map +1 -0
  107. package/server/flow-tag/flow-tag-constants-model.d.ts +2 -0
  108. package/server/flow-tag/flow-tag-constants-model.js +6 -0
  109. package/server/flow-tag/flow-tag-constants-model.js.map +1 -0
  110. package/server/flow-tag/flow-tag-module.d.ts +2 -0
  111. package/server/flow-tag/flow-tag-module.js +24 -0
  112. package/server/flow-tag/flow-tag-module.js.map +1 -0
  113. package/server/flow-tag/flow-tag-schema.d.ts +100 -0
  114. package/server/flow-tag/flow-tag-schema.js +131 -0
  115. package/server/flow-tag/flow-tag-schema.js.map +1 -0
  116. package/server/flow-tag/flow-tag-service.d.ts +77 -0
  117. package/server/flow-tag/flow-tag-service.js +156 -0
  118. package/server/flow-tag/flow-tag-service.js.map +1 -0
  119. package/server/health.controller.d.ts +7 -0
  120. package/server/health.controller.js +33 -0
  121. package/server/health.controller.js.map +1 -0
  122. package/server/http-batch/http-batch-controller.d.ts +345 -0
  123. package/server/http-batch/http-batch-controller.js +40 -0
  124. package/server/http-batch/http-batch-controller.js.map +1 -0
  125. package/server/http-batch/http-batch-module.d.ts +2 -0
  126. package/server/http-batch/http-batch-module.js +25 -0
  127. package/server/http-batch/http-batch-module.js.map +1 -0
  128. package/server/http-batch/http-batch-service.d.ts +381 -0
  129. package/server/http-batch/http-batch-service.js +268 -0
  130. package/server/http-batch/http-batch-service.js.map +1 -0
  131. package/server/lambda.d.ts +2 -0
  132. package/server/lambda.js +115 -0
  133. package/server/lambda.js.map +1 -0
  134. package/server/llm/openai-provider.d.ts +8 -0
  135. package/server/llm/openai-provider.js +256 -0
  136. package/server/llm/openai-provider.js.map +1 -0
  137. package/server/main.d.ts +1 -0
  138. package/server/main.js +80 -0
  139. package/server/main.js.map +1 -0
  140. package/server/mcp-oauth/mcp-oauth-connect-provider.d.ts +164 -0
  141. package/server/mcp-oauth/mcp-oauth-connect-provider.js +14 -0
  142. package/server/mcp-oauth/mcp-oauth-connect-provider.js.map +1 -0
  143. package/server/mcp-oauth/mcp-oauth-constants-model.d.ts +2 -0
  144. package/server/mcp-oauth/mcp-oauth-constants-model.js +6 -0
  145. package/server/mcp-oauth/mcp-oauth-constants-model.js.map +1 -0
  146. package/server/mcp-oauth/mcp-oauth-controller.d.ts +66 -0
  147. package/server/mcp-oauth/mcp-oauth-controller.js +166 -0
  148. package/server/mcp-oauth/mcp-oauth-controller.js.map +1 -0
  149. package/server/mcp-oauth/mcp-oauth-module.d.ts +2 -0
  150. package/server/mcp-oauth/mcp-oauth-module.js +27 -0
  151. package/server/mcp-oauth/mcp-oauth-module.js.map +1 -0
  152. package/server/mcp-oauth/mcp-oauth-schema.d.ts +112 -0
  153. package/server/mcp-oauth/mcp-oauth-schema.js +148 -0
  154. package/server/mcp-oauth/mcp-oauth-schema.js.map +1 -0
  155. package/server/mcp-oauth/mcp-oauth-service.d.ts +189 -0
  156. package/server/mcp-oauth/mcp-oauth-service.js +545 -0
  157. package/server/mcp-oauth/mcp-oauth-service.js.map +1 -0
  158. package/server/memory/memory-connect-provider.d.ts +200 -0
  159. package/server/memory/memory-connect-provider.js +26 -0
  160. package/server/memory/memory-connect-provider.js.map +1 -0
  161. package/server/memory/memory-constants-model.d.ts +6 -0
  162. package/server/memory/memory-constants-model.js +10 -0
  163. package/server/memory/memory-constants-model.js.map +1 -0
  164. package/server/memory/memory-controller.d.ts +15 -0
  165. package/server/memory/memory-controller.js +53 -0
  166. package/server/memory/memory-controller.js.map +1 -0
  167. package/server/memory/memory-history-schema.d.ts +48 -0
  168. package/server/memory/memory-history-schema.js +62 -0
  169. package/server/memory/memory-history-schema.js.map +1 -0
  170. package/server/memory/memory-module.d.ts +2 -0
  171. package/server/memory/memory-module.js +26 -0
  172. package/server/memory/memory-module.js.map +1 -0
  173. package/server/memory/memory-schema.d.ts +48 -0
  174. package/server/memory/memory-schema.js +62 -0
  175. package/server/memory/memory-schema.js.map +1 -0
  176. package/server/memory/memory-service.d.ts +134 -0
  177. package/server/memory/memory-service.js +317 -0
  178. package/server/memory/memory-service.js.map +1 -0
  179. package/server/memory/memory-trace-history-schema.d.ts +48 -0
  180. package/server/memory/memory-trace-history-schema.js +62 -0
  181. package/server/memory/memory-trace-history-schema.js.map +1 -0
  182. package/server/observability/observability.d.ts +3 -0
  183. package/server/observability/observability.js +62 -0
  184. package/server/observability/observability.js.map +1 -0
  185. package/server/production-guard.d.ts +9 -0
  186. package/server/production-guard.js +105 -0
  187. package/server/production-guard.js.map +1 -0
  188. package/server/provider-config/provider-config-connect-provider.d.ts +44 -0
  189. package/server/provider-config/provider-config-connect-provider.js +14 -0
  190. package/server/provider-config/provider-config-connect-provider.js.map +1 -0
  191. package/server/provider-config/provider-config-constants-model.d.ts +3 -0
  192. package/server/provider-config/provider-config-constants-model.js +7 -0
  193. package/server/provider-config/provider-config-constants-model.js.map +1 -0
  194. package/server/provider-config/provider-config-controller.d.ts +23 -0
  195. package/server/provider-config/provider-config-controller.js +80 -0
  196. package/server/provider-config/provider-config-controller.js.map +1 -0
  197. package/server/provider-config/provider-config-module.d.ts +2 -0
  198. package/server/provider-config/provider-config-module.js +27 -0
  199. package/server/provider-config/provider-config-module.js.map +1 -0
  200. package/server/provider-config/provider-config-schema.d.ts +32 -0
  201. package/server/provider-config/provider-config-schema.js +46 -0
  202. package/server/provider-config/provider-config-schema.js.map +1 -0
  203. package/server/provider-config/provider-config-service.d.ts +178 -0
  204. package/server/provider-config/provider-config-service.js +689 -0
  205. package/server/provider-config/provider-config-service.js.map +1 -0
  206. package/server/queue/queue-job-connect-provider.d.ts +128 -0
  207. package/server/queue/queue-job-connect-provider.js +14 -0
  208. package/server/queue/queue-job-connect-provider.js.map +1 -0
  209. package/server/queue/queue-job-constants-model.d.ts +2 -0
  210. package/server/queue/queue-job-constants-model.js +6 -0
  211. package/server/queue/queue-job-constants-model.js.map +1 -0
  212. package/server/queue/queue-job-schema.d.ts +88 -0
  213. package/server/queue/queue-job-schema.js +119 -0
  214. package/server/queue/queue-job-schema.js.map +1 -0
  215. package/server/queue/queue-lock-connect-provider.d.ts +44 -0
  216. package/server/queue/queue-lock-connect-provider.js +14 -0
  217. package/server/queue/queue-lock-connect-provider.js.map +1 -0
  218. package/server/queue/queue-lock-constants-model.d.ts +2 -0
  219. package/server/queue/queue-lock-constants-model.js +6 -0
  220. package/server/queue/queue-lock-constants-model.js.map +1 -0
  221. package/server/queue/queue-lock-schema.d.ts +32 -0
  222. package/server/queue/queue-lock-schema.js +47 -0
  223. package/server/queue/queue-lock-schema.js.map +1 -0
  224. package/server/queue/queue-message-dedupe-connect-provider.d.ts +116 -0
  225. package/server/queue/queue-message-dedupe-connect-provider.js +14 -0
  226. package/server/queue/queue-message-dedupe-connect-provider.js.map +1 -0
  227. package/server/queue/queue-message-dedupe-constants-model.d.ts +2 -0
  228. package/server/queue/queue-message-dedupe-constants-model.js +6 -0
  229. package/server/queue/queue-message-dedupe-constants-model.js.map +1 -0
  230. package/server/queue/queue-message-dedupe-schema.d.ts +80 -0
  231. package/server/queue/queue-message-dedupe-schema.js +108 -0
  232. package/server/queue/queue-message-dedupe-schema.js.map +1 -0
  233. package/server/queue/queue-module.d.ts +2 -0
  234. package/server/queue/queue-module.js +33 -0
  235. package/server/queue/queue-module.js.map +1 -0
  236. package/server/queue/queue-rate-limit-connect-provider.d.ts +56 -0
  237. package/server/queue/queue-rate-limit-connect-provider.js +14 -0
  238. package/server/queue/queue-rate-limit-connect-provider.js.map +1 -0
  239. package/server/queue/queue-rate-limit-constants-model.d.ts +2 -0
  240. package/server/queue/queue-rate-limit-constants-model.js +6 -0
  241. package/server/queue/queue-rate-limit-constants-model.js.map +1 -0
  242. package/server/queue/queue-rate-limit-schema.d.ts +40 -0
  243. package/server/queue/queue-rate-limit-schema.js +57 -0
  244. package/server/queue/queue-rate-limit-schema.js.map +1 -0
  245. package/server/queue/sqs-transition-service.d.ts +123 -0
  246. package/server/queue/sqs-transition-service.js +442 -0
  247. package/server/queue/sqs-transition-service.js.map +1 -0
  248. package/server/rag/rag-controller.d.ts +167 -0
  249. package/server/rag/rag-controller.js +232 -0
  250. package/server/rag/rag-controller.js.map +1 -0
  251. package/server/rag/rag-module.d.ts +2 -0
  252. package/server/rag/rag-module.js +30 -0
  253. package/server/rag/rag-module.js.map +1 -0
  254. package/server/rag/rag-service.d.ts +361 -0
  255. package/server/rag/rag-service.js +2864 -0
  256. package/server/rag/rag-service.js.map +1 -0
  257. package/server/runner/flow-templates.d.ts +55 -0
  258. package/server/runner/flow-templates.js +388 -0
  259. package/server/runner/flow-templates.js.map +1 -0
  260. package/server/runner/langgraph-runtime.service.d.ts +77 -0
  261. package/server/runner/langgraph-runtime.service.js +221 -0
  262. package/server/runner/langgraph-runtime.service.js.map +1 -0
  263. package/server/runner/runner-controller.d.ts +1044 -0
  264. package/server/runner/runner-controller.js +751 -0
  265. package/server/runner/runner-controller.js.map +1 -0
  266. package/server/runner/runner-module.d.ts +2 -0
  267. package/server/runner/runner-module.js +37 -0
  268. package/server/runner/runner-module.js.map +1 -0
  269. package/server/runner/runner-queue-processor.d.ts +29 -0
  270. package/server/runner/runner-queue-processor.js +259 -0
  271. package/server/runner/runner-queue-processor.js.map +1 -0
  272. package/server/runner/runner-service.d.ts +1761 -0
  273. package/server/runner/runner-service.js +14256 -0
  274. package/server/runner/runner-service.js.map +1 -0
  275. package/server/scripts/migrate-canvas-flow-versions.d.ts +1 -0
  276. package/server/scripts/migrate-canvas-flow-versions.js +72 -0
  277. package/server/scripts/migrate-canvas-flow-versions.js.map +1 -0
  278. package/server/scripts/migrate-mcp-oauth-user-scope.d.ts +1 -0
  279. package/server/scripts/migrate-mcp-oauth-user-scope.js +95 -0
  280. package/server/scripts/migrate-mcp-oauth-user-scope.js.map +1 -0
  281. package/templates/config.example.json +204 -0
  282. package/templates/config.production.example.json +206 -0
  283. package/templates/docker-compose.yml +60 -0
@@ -0,0 +1,1761 @@
1
+ import { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
2
+ import { ConfigService } from '@nestjs/config';
3
+ import { CanvasFlowService } from '../canvas-flow/canvas-flow-service';
4
+ import { HttpBatchService } from '../http-batch/http-batch-service';
5
+ import { MemoryService } from '../memory/memory-service';
6
+ import { RagService } from '../rag/rag-service';
7
+ import { ProviderConfigService } from '../provider-config/provider-config-service';
8
+ import { FlowTagService } from '../flow-tag/flow-tag-service';
9
+ import { SqsTransitionService } from '../queue/sqs-transition-service';
10
+ import { McpOAuthService } from '../mcp-oauth/mcp-oauth-service';
11
+ import { LangGraphRuntimeService } from './langgraph-runtime.service';
12
+ import * as mongoose from 'mongoose';
13
+ import { DocumentsService } from '../documents/documents-service';
14
+ type TraceMode = 'compact' | 'debug' | 'full' | 'off';
15
+ export interface FlowMessage {
16
+ role: string;
17
+ text: string;
18
+ kind?: string;
19
+ delayBeforeMs?: number;
20
+ debug?: unknown;
21
+ content?: RichMessageConfig;
22
+ }
23
+ interface RichMessageAction {
24
+ id?: string;
25
+ label?: string;
26
+ value?: string;
27
+ url?: string;
28
+ }
29
+ interface RichMessageGenerationConfig {
30
+ enabled?: boolean;
31
+ prompt?: string;
32
+ model?: string;
33
+ maxItems?: number;
34
+ }
35
+ type AppointmentFlowStage = 'actions' | 'appointments' | 'providers' | 'services' | 'dates' | 'times' | 'items' | 'exams';
36
+ type AppointmentFlowAttachmentType = 'image' | 'document';
37
+ interface AppointmentFlowAttachmentStep {
38
+ id?: string;
39
+ label?: string;
40
+ type?: AppointmentFlowAttachmentType;
41
+ required?: boolean;
42
+ description?: string;
43
+ }
44
+ interface RichMessageAppointmentFlowConfig {
45
+ mode?: 'auto' | 'metaFlow' | 'interactive';
46
+ flowId?: string;
47
+ flowToken?: string;
48
+ flowCta?: string;
49
+ flowScreen?: string;
50
+ headerText?: string;
51
+ buttonText?: string;
52
+ stage?: AppointmentFlowStage;
53
+ stageTemplate?: string;
54
+ actionsTemplate?: any;
55
+ appointmentsTemplate?: any;
56
+ providersTemplate?: any;
57
+ servicesTemplate?: any;
58
+ datesTemplate?: any;
59
+ timesTemplate?: any;
60
+ itemsTemplate?: any;
61
+ itemsFilterTemplate?: string;
62
+ itemsMaxSelected?: number;
63
+ examsTemplate?: any;
64
+ payloadTemplate?: any;
65
+ stepOrder?: string[];
66
+ stepLabels?: Record<string, string>;
67
+ attachmentSteps?: AppointmentFlowAttachmentStep[];
68
+ llmEnabled?: boolean;
69
+ llmSourceTemplate?: any;
70
+ llmInstruction?: string;
71
+ llmModel?: string;
72
+ llmTemperature?: number;
73
+ }
74
+ interface RichMessageMediaConfig {
75
+ url?: string;
76
+ fileName?: string;
77
+ mimeType?: string;
78
+ caption?: string;
79
+ }
80
+ interface RichMessageConfig {
81
+ type: 'text' | 'buttons' | 'quickReplies' | 'list' | 'carousel' | 'appointmentFlow' | 'image' | 'document';
82
+ text?: string;
83
+ footer?: string;
84
+ media?: RichMessageMediaConfig;
85
+ buttons?: RichMessageAction[];
86
+ quickReplies?: RichMessageAction[];
87
+ list?: {
88
+ buttonText?: string;
89
+ sections?: Array<{
90
+ title?: string;
91
+ items?: Array<{
92
+ id?: string;
93
+ title?: string;
94
+ description?: string;
95
+ value?: string;
96
+ }>;
97
+ }>;
98
+ };
99
+ carousel?: {
100
+ cards?: Array<{
101
+ id?: string;
102
+ title?: string;
103
+ subtitle?: string;
104
+ imageUrl?: string;
105
+ buttons?: RichMessageAction[];
106
+ }>;
107
+ };
108
+ appointmentFlow?: RichMessageAppointmentFlowConfig;
109
+ generation?: RichMessageGenerationConfig;
110
+ }
111
+ export declare class RunnerService implements OnModuleInit, OnModuleDestroy {
112
+ private readonly canvasFlowService;
113
+ private readonly httpBatchService;
114
+ private readonly memoryService;
115
+ private readonly ragService;
116
+ private readonly configService;
117
+ private readonly providerConfigService;
118
+ private readonly flowTagService;
119
+ private readonly sqsTransitionService;
120
+ private readonly mcpOAuthService;
121
+ private readonly langGraphRuntimeService?;
122
+ private readonly documentsService?;
123
+ private openAIClient?;
124
+ private openAIRuntimeConfig?;
125
+ private openAISignature;
126
+ private operationalMongoConnection?;
127
+ private operationalMongoSignature;
128
+ private cronTimer?;
129
+ private cronRunning;
130
+ private fallbackLangGraphRuntimeService?;
131
+ constructor(canvasFlowService: CanvasFlowService, httpBatchService: HttpBatchService, memoryService: MemoryService, ragService: RagService, configService: ConfigService, providerConfigService: ProviderConfigService, flowTagService: FlowTagService, sqsTransitionService: SqsTransitionService, mcpOAuthService: McpOAuthService, langGraphRuntimeService?: LangGraphRuntimeService, documentsService?: DocumentsService);
132
+ private refreshOpenAIClient;
133
+ private getOpenAIClient;
134
+ private normalizeFlowLlmProvider;
135
+ private getOpenAIClientForProvider;
136
+ private getChatModelForProvider;
137
+ private flowLlmProvider;
138
+ private componentLlmProvider;
139
+ private normalizeAgentCatalogLoadMode;
140
+ private agentCatalogItemId;
141
+ private agentCatalogItemName;
142
+ private normalizeAgentManifestRefs;
143
+ private scopeAgentCatalog;
144
+ private withComponentAgentSpec;
145
+ private buildAgentSystemPreamble;
146
+ private withAgentSystemPreamble;
147
+ private evaluateAgentGuardrails;
148
+ private getProviderSettings;
149
+ private getHeaderValue;
150
+ private redactIncomingHeaders;
151
+ private safeSecretEquals;
152
+ private getWebhookInputText;
153
+ private findCustomWebhookStep;
154
+ private assertCustomWebhookAuth;
155
+ private buildCustomWebhookRunPayload;
156
+ deliverWebhookCallback(callback: any, result?: any, error?: any): Promise<{
157
+ error: string;
158
+ results: any[];
159
+ } | {
160
+ results: ({
161
+ index: number;
162
+ error: string;
163
+ status?: undefined;
164
+ statusText?: undefined;
165
+ headers?: undefined;
166
+ data?: undefined;
167
+ message?: undefined;
168
+ code?: undefined;
169
+ } | {
170
+ index: number;
171
+ status: number;
172
+ statusText: string;
173
+ headers: Record<string, any>;
174
+ data: any;
175
+ error?: undefined;
176
+ message?: undefined;
177
+ code?: undefined;
178
+ } | {
179
+ index: number;
180
+ error: string;
181
+ message: any;
182
+ code: any;
183
+ status?: undefined;
184
+ statusText?: undefined;
185
+ headers?: undefined;
186
+ data?: undefined;
187
+ } | {
188
+ polling: {
189
+ enabled: boolean;
190
+ completed: boolean;
191
+ attempts: number;
192
+ intervalSeconds: number;
193
+ maxAttempts: number;
194
+ reason: string;
195
+ stopPath: string;
196
+ value: any;
197
+ finalResult: {
198
+ index: number;
199
+ error: string;
200
+ status?: undefined;
201
+ statusText?: undefined;
202
+ headers?: undefined;
203
+ data?: undefined;
204
+ message?: undefined;
205
+ code?: undefined;
206
+ } | {
207
+ index: number;
208
+ status: number;
209
+ statusText: string;
210
+ headers: Record<string, any>;
211
+ data: any;
212
+ error?: undefined;
213
+ message?: undefined;
214
+ code?: undefined;
215
+ } | {
216
+ index: number;
217
+ error: string;
218
+ message: any;
219
+ code: any;
220
+ status?: undefined;
221
+ statusText?: undefined;
222
+ headers?: undefined;
223
+ data?: undefined;
224
+ };
225
+ history: any[];
226
+ conditionError?: undefined;
227
+ };
228
+ finalStatus: number;
229
+ finalData: any;
230
+ index: number;
231
+ error: string;
232
+ status?: undefined;
233
+ statusText?: undefined;
234
+ headers?: undefined;
235
+ data?: undefined;
236
+ message?: undefined;
237
+ code?: undefined;
238
+ } | {
239
+ polling: {
240
+ enabled: boolean;
241
+ completed: boolean;
242
+ attempts: number;
243
+ intervalSeconds: number;
244
+ maxAttempts: number;
245
+ reason: string;
246
+ stopPath: string;
247
+ value: any;
248
+ finalResult: {
249
+ index: number;
250
+ error: string;
251
+ status?: undefined;
252
+ statusText?: undefined;
253
+ headers?: undefined;
254
+ data?: undefined;
255
+ message?: undefined;
256
+ code?: undefined;
257
+ } | {
258
+ index: number;
259
+ status: number;
260
+ statusText: string;
261
+ headers: Record<string, any>;
262
+ data: any;
263
+ error?: undefined;
264
+ message?: undefined;
265
+ code?: undefined;
266
+ } | {
267
+ index: number;
268
+ error: string;
269
+ message: any;
270
+ code: any;
271
+ status?: undefined;
272
+ statusText?: undefined;
273
+ headers?: undefined;
274
+ data?: undefined;
275
+ };
276
+ history: any[];
277
+ conditionError?: undefined;
278
+ };
279
+ finalStatus: number;
280
+ finalData: any;
281
+ index: number;
282
+ status: number;
283
+ statusText: string;
284
+ headers: Record<string, any>;
285
+ data: any;
286
+ error?: undefined;
287
+ message?: undefined;
288
+ code?: undefined;
289
+ } | {
290
+ polling: {
291
+ enabled: boolean;
292
+ completed: boolean;
293
+ attempts: number;
294
+ intervalSeconds: number;
295
+ maxAttempts: number;
296
+ reason: string;
297
+ stopPath: string;
298
+ value: any;
299
+ finalResult: {
300
+ index: number;
301
+ error: string;
302
+ status?: undefined;
303
+ statusText?: undefined;
304
+ headers?: undefined;
305
+ data?: undefined;
306
+ message?: undefined;
307
+ code?: undefined;
308
+ } | {
309
+ index: number;
310
+ status: number;
311
+ statusText: string;
312
+ headers: Record<string, any>;
313
+ data: any;
314
+ error?: undefined;
315
+ message?: undefined;
316
+ code?: undefined;
317
+ } | {
318
+ index: number;
319
+ error: string;
320
+ message: any;
321
+ code: any;
322
+ status?: undefined;
323
+ statusText?: undefined;
324
+ headers?: undefined;
325
+ data?: undefined;
326
+ };
327
+ history: any[];
328
+ conditionError?: undefined;
329
+ };
330
+ finalStatus: number;
331
+ finalData: any;
332
+ index: number;
333
+ error: string;
334
+ message: any;
335
+ code: any;
336
+ status?: undefined;
337
+ statusText?: undefined;
338
+ headers?: undefined;
339
+ data?: undefined;
340
+ } | {
341
+ polling: {
342
+ enabled: boolean;
343
+ completed: boolean;
344
+ attempts: number;
345
+ intervalSeconds: number;
346
+ maxAttempts: number;
347
+ reason: string;
348
+ conditionError: any;
349
+ finalResult: {
350
+ index: number;
351
+ error: string;
352
+ status?: undefined;
353
+ statusText?: undefined;
354
+ headers?: undefined;
355
+ data?: undefined;
356
+ message?: undefined;
357
+ code?: undefined;
358
+ } | {
359
+ index: number;
360
+ status: number;
361
+ statusText: string;
362
+ headers: Record<string, any>;
363
+ data: any;
364
+ error?: undefined;
365
+ message?: undefined;
366
+ code?: undefined;
367
+ } | {
368
+ index: number;
369
+ error: string;
370
+ message: any;
371
+ code: any;
372
+ status?: undefined;
373
+ statusText?: undefined;
374
+ headers?: undefined;
375
+ data?: undefined;
376
+ };
377
+ history: any[];
378
+ stopPath?: undefined;
379
+ value?: undefined;
380
+ };
381
+ finalStatus: number;
382
+ finalData: any;
383
+ index: number;
384
+ error: string;
385
+ status?: undefined;
386
+ statusText?: undefined;
387
+ headers?: undefined;
388
+ data?: undefined;
389
+ message?: undefined;
390
+ code?: undefined;
391
+ } | {
392
+ polling: {
393
+ enabled: boolean;
394
+ completed: boolean;
395
+ attempts: number;
396
+ intervalSeconds: number;
397
+ maxAttempts: number;
398
+ reason: string;
399
+ conditionError: any;
400
+ finalResult: {
401
+ index: number;
402
+ error: string;
403
+ status?: undefined;
404
+ statusText?: undefined;
405
+ headers?: undefined;
406
+ data?: undefined;
407
+ message?: undefined;
408
+ code?: undefined;
409
+ } | {
410
+ index: number;
411
+ status: number;
412
+ statusText: string;
413
+ headers: Record<string, any>;
414
+ data: any;
415
+ error?: undefined;
416
+ message?: undefined;
417
+ code?: undefined;
418
+ } | {
419
+ index: number;
420
+ error: string;
421
+ message: any;
422
+ code: any;
423
+ status?: undefined;
424
+ statusText?: undefined;
425
+ headers?: undefined;
426
+ data?: undefined;
427
+ };
428
+ history: any[];
429
+ stopPath?: undefined;
430
+ value?: undefined;
431
+ };
432
+ finalStatus: number;
433
+ finalData: any;
434
+ index: number;
435
+ status: number;
436
+ statusText: string;
437
+ headers: Record<string, any>;
438
+ data: any;
439
+ error?: undefined;
440
+ message?: undefined;
441
+ code?: undefined;
442
+ } | {
443
+ polling: {
444
+ enabled: boolean;
445
+ completed: boolean;
446
+ attempts: number;
447
+ intervalSeconds: number;
448
+ maxAttempts: number;
449
+ reason: string;
450
+ conditionError: any;
451
+ finalResult: {
452
+ index: number;
453
+ error: string;
454
+ status?: undefined;
455
+ statusText?: undefined;
456
+ headers?: undefined;
457
+ data?: undefined;
458
+ message?: undefined;
459
+ code?: undefined;
460
+ } | {
461
+ index: number;
462
+ status: number;
463
+ statusText: string;
464
+ headers: Record<string, any>;
465
+ data: any;
466
+ error?: undefined;
467
+ message?: undefined;
468
+ code?: undefined;
469
+ } | {
470
+ index: number;
471
+ error: string;
472
+ message: any;
473
+ code: any;
474
+ status?: undefined;
475
+ statusText?: undefined;
476
+ headers?: undefined;
477
+ data?: undefined;
478
+ };
479
+ history: any[];
480
+ stopPath?: undefined;
481
+ value?: undefined;
482
+ };
483
+ finalStatus: number;
484
+ finalData: any;
485
+ index: number;
486
+ error: string;
487
+ message: any;
488
+ code: any;
489
+ status?: undefined;
490
+ statusText?: undefined;
491
+ headers?: undefined;
492
+ data?: undefined;
493
+ })[];
494
+ error?: undefined;
495
+ } | {
496
+ skipped: boolean;
497
+ reason: string;
498
+ }>;
499
+ persistWebhookRunState(runPayload: any, result: any): Promise<void>;
500
+ private getWebhookListenerSteps;
501
+ private shouldDispatchWebhookListeners;
502
+ private createWebhookListenerEvent;
503
+ private executeWebhookListenerStep;
504
+ private dispatchWebhookListeners;
505
+ runCustomWebhook(flowId: string, webhookId: string, payload: {
506
+ method: string;
507
+ body?: any;
508
+ query?: any;
509
+ headers?: Record<string, any>;
510
+ }): Promise<{
511
+ messages: {
512
+ role: string;
513
+ text: string;
514
+ }[];
515
+ slots: any;
516
+ trace: any[];
517
+ tracePage: {
518
+ mode: TraceMode;
519
+ total: number;
520
+ buffered: number;
521
+ dropped: number;
522
+ offset: number;
523
+ limit: number;
524
+ returned: number;
525
+ hasMore: boolean;
526
+ nextOffset: number;
527
+ };
528
+ currentStepId?: undefined;
529
+ ended?: undefined;
530
+ conversationId?: undefined;
531
+ entryFlowId?: undefined;
532
+ activeFlowId?: undefined;
533
+ activeFlowName?: undefined;
534
+ flowVersion?: undefined;
535
+ activeFlowVersion?: undefined;
536
+ flowVersionSource?: undefined;
537
+ agentRelease?: undefined;
538
+ agentReleaseSource?: undefined;
539
+ memoryClearRequested?: undefined;
540
+ memoryCleared?: undefined;
541
+ runtime?: undefined;
542
+ } | {
543
+ messages: FlowMessage[];
544
+ slots: any;
545
+ currentStepId: string;
546
+ ended: boolean;
547
+ conversationId: any;
548
+ entryFlowId: any;
549
+ activeFlowId: any;
550
+ activeFlowName: any;
551
+ trace: any[];
552
+ tracePage: {
553
+ mode: TraceMode;
554
+ total: number;
555
+ buffered: number;
556
+ dropped: number;
557
+ offset: number;
558
+ limit: number;
559
+ returned: number;
560
+ hasMore: boolean;
561
+ nextOffset: number;
562
+ };
563
+ flowVersion: number;
564
+ activeFlowVersion: number;
565
+ flowVersionSource: "version" | "draft";
566
+ agentRelease: any;
567
+ agentReleaseSource: "active" | "requested" | "none";
568
+ memoryClearRequested: boolean;
569
+ memoryCleared: boolean;
570
+ runtime: import("./langgraph-runtime.service").CanvasFlowLangGraphRuntimeMetadata;
571
+ } | {
572
+ async: boolean;
573
+ queued: boolean;
574
+ jobId: `${string}-${string}-${string}-${string}-${string}`;
575
+ status: string;
576
+ retrieval: string;
577
+ callbackUrlConfigured: boolean;
578
+ }>;
579
+ onModuleInit(): void;
580
+ onModuleDestroy(): void;
581
+ private getByPath;
582
+ private renderTemplate;
583
+ private parseJsonConfig;
584
+ private parseTemplatedJsonConfig;
585
+ private toPlain;
586
+ private resolveTraceOptions;
587
+ private createTraceBuffer;
588
+ private compactTraceEntry;
589
+ private compactTraceValue;
590
+ private traceValueSummary;
591
+ private paginateTrace;
592
+ private getOperationalMongoConnection;
593
+ private getMongoCollection;
594
+ private waitForMongoConnection;
595
+ private limitNumber;
596
+ private limitDecimal;
597
+ private sleep;
598
+ private emitFlowMessage;
599
+ private maxParallelNodes;
600
+ private allSettledLimited;
601
+ private normalizeMongoUpdate;
602
+ private normalizeMongoSort;
603
+ private mergeMongoFilter;
604
+ private getMongoEffectiveLlmMode;
605
+ private hasMongoFilter;
606
+ private applyMongoDateRange;
607
+ private getMongoEffectiveDateComponent;
608
+ private getMongoEffectivePagination;
609
+ private buildMongoLlmQuery;
610
+ private createAnalyticsDocument;
611
+ private runMongoComponent;
612
+ private resolveContextPathValue;
613
+ private normalizeRagDocuments;
614
+ private responseSlotForStep;
615
+ private connectedInputsForStep;
616
+ private withConnectedInputs;
617
+ private connectedInputsContextText;
618
+ private dedupeRagDocuments;
619
+ private collectFileContextDocuments;
620
+ private collectConnectedRagDocuments;
621
+ private resolveRagDocumentsForComponent;
622
+ private resolveLoopSourceArray;
623
+ private setOrDeleteSlot;
624
+ private getLoopBodyTargets;
625
+ private runBranchTargets;
626
+ private runLoopForComponent;
627
+ private evaluateLoopStopCondition;
628
+ private buildConditionFunctionBody;
629
+ private collectLoopRevisitTargets;
630
+ private runCounterLoopComponent;
631
+ private evaluateFlowRouterRule;
632
+ private getFlowRouterRuleModel;
633
+ private getFlowRouterRuleTemperature;
634
+ private sameFlowRouterLlmOptions;
635
+ private evaluateFlowRouterLlmRules;
636
+ private mergeContextSlots;
637
+ private runFlowRouterComponent;
638
+ private buildTraceDashboard;
639
+ private isChartMode;
640
+ private toNumber;
641
+ private extractRowsForChart;
642
+ private buildFallbackChart;
643
+ private normalizeChartConfig;
644
+ private generateDashboardChart;
645
+ private getReportsDir;
646
+ getReportFilePath(fileName: string): string;
647
+ private getPublicBaseUrl;
648
+ private getMediaProxySecret;
649
+ private getMediaProxyTtlSeconds;
650
+ private signWhatsappMediaProxy;
651
+ private assertWhatsappMediaProxySignature;
652
+ private buildWhatsappMediaProxyUrl;
653
+ private normalizeDownloadFileName;
654
+ downloadWhatsappMedia(flowId: string, mediaId: string, expiresAt: any, signature: any): Promise<{
655
+ buffer: Buffer<ArrayBuffer>;
656
+ mimeType: any;
657
+ fileName: string;
658
+ }>;
659
+ private formatPdfValue;
660
+ private drawDashboardRows;
661
+ private createDashboardPdf;
662
+ private runDashboardComponent;
663
+ private toExtraFieldsFilterObject;
664
+ private evaluateExtraFieldsFilterRules;
665
+ private buildActiveExtraFieldsFilter;
666
+ private resolveRagAgentId;
667
+ private evaluateRagRuleExpression;
668
+ private normalizeRagFilterObject;
669
+ private normalizeRagFilterRounds;
670
+ private normalizeRagRoundLimits;
671
+ private normalizeRagOrderBy;
672
+ private normalizeRagPositiveInteger;
673
+ private mergeExtraFieldsFilterObjects;
674
+ private resolveRagConditionalOverrides;
675
+ private resolveRagPrompt;
676
+ private buildRagSearchParams;
677
+ private runRagSearchComponent;
678
+ private renderMilvusDocumentId;
679
+ private runMilvusComponent;
680
+ private buildRagDocumentFromComponent;
681
+ private normalizeRagDocumentsFromPath;
682
+ private runRagIndexComponent;
683
+ private runAzureBlobComponent;
684
+ private getGoogleDriveFileId;
685
+ private normalizeFilesDocuments;
686
+ private hydrateFilesDocuments;
687
+ private parseFilesArtifactPayload;
688
+ private parseLooseFilesArtifactPayload;
689
+ private extractLooseJsonStringField;
690
+ private extractLooseJsonObjectField;
691
+ private normalizeFilesDocumentSkillPlan;
692
+ private normalizeFilesDocxEdits;
693
+ private normalizeFilesXlsxValue;
694
+ private normalizeFilesXlsxEdits;
695
+ private filesDocxTableCount;
696
+ private inferFilesDocxEdits;
697
+ private filesStructureContext;
698
+ private filesDocumentSkillEnabled;
699
+ private filesDocumentSkillInventory;
700
+ private filesDocumentSkillPrompt;
701
+ private filesArtifactQuality;
702
+ private nativeEditableFilesFormat;
703
+ private filesArtifactFormat;
704
+ private filesArtifactFilename;
705
+ private assertFilesArtifactPayload;
706
+ private numberedArtifactFilename;
707
+ private fileNameFromUrl;
708
+ private extractFileFromUrlForFilesComponent;
709
+ private runFilesComponent;
710
+ private runLlmGenComponent;
711
+ private normalizeAgentExecutionMode;
712
+ private agentExecutionModeForComponent;
713
+ private isAgenticToolCaller;
714
+ private manifestTargetStepId;
715
+ private agenticManifestToolStepIds;
716
+ private isManifestVisualEdge;
717
+ private responseSlotCandidates;
718
+ private agentDecisionSlots;
719
+ private agentDecisionContext;
720
+ private normalizeMessageInstruction;
721
+ private isDefaultMessageInstruction;
722
+ private rememberAssistantText;
723
+ private getLastAssistantText;
724
+ private rememberEmittedAssistantText;
725
+ private getLastEmittedAssistantText;
726
+ private getLastAssistantMessage;
727
+ private assistantTextLooksLikeUserPrompt;
728
+ private inferWaitingInputFromAssistantPrompt;
729
+ private isDefaultPassthroughMessageStep;
730
+ private isAssistantResponseWorkStep;
731
+ private splitDeferredPassthroughMessages;
732
+ private recordInputHistory;
733
+ private resolveTurnHistoricMessages;
734
+ private normalizeConversationTurns;
735
+ private loadConversationTurns;
736
+ private agentAutoToolTargetStepIds;
737
+ private resolveCalledAgentToolDownstreamTargets;
738
+ private filterHybridAgentOutgoingTargets;
739
+ private agentToolText;
740
+ private buildAgentAutoToolCatalog;
741
+ private normalizeAgentToolSchema;
742
+ private agentToolManifestForLlm;
743
+ private agentToolCompactManifestForLlm;
744
+ private agentToolContractForLlm;
745
+ private agentToolObservationForLlm;
746
+ private normalizeAgentToolPlanItem;
747
+ private normalizeAgentToolPlan;
748
+ private validateJsonSchemaValue;
749
+ private validateAgentToolArguments;
750
+ private validateAgentToolOutput;
751
+ private agentToolSearchText;
752
+ private normalizeEntityKey;
753
+ private isEntityIdKey;
754
+ private entityTokensFromText;
755
+ private entityIdArgumentKey;
756
+ private isEntityDetailTool;
757
+ private isAppointmentDetailTool;
758
+ private appointmentIdArgumentKey;
759
+ private extractEntityIdsFromValue;
760
+ private resolveNumericSelectionIndex;
761
+ private extractAppointmentIdFromValue;
762
+ private collectEntityCandidates;
763
+ private collectAppointmentCandidates;
764
+ private appointmentCandidatesFromContext;
765
+ private entityCandidatesFromContext;
766
+ private resolveAppointmentCandidateFromSelection;
767
+ private resolveEntityCandidateFromSelection;
768
+ private detailToolCandidateScore;
769
+ private selectDetailToolForCandidate;
770
+ private buildEntityDetailToolPlanFromContext;
771
+ private buildAppointmentDetailToolPlanFromContext;
772
+ private shouldBlockUngroundedAppointmentFinal;
773
+ private hasSuccessfulAppointmentDetailObservation;
774
+ private resolveAgentToolApproval;
775
+ private buildAgentTaskState;
776
+ private updateAgentTaskState;
777
+ private runAgentPlanComponent;
778
+ private readActiveAgentPlan;
779
+ private normalizeExternalAgentPlan;
780
+ private markAgentPlanConsumed;
781
+ private normalizeAgentIntentText;
782
+ private detectAgentIntents;
783
+ private agentIntentLabel;
784
+ private agentIntentTask;
785
+ private agentToolCapabilities;
786
+ private agentToolIntentScore;
787
+ private rankedAgentToolsForIntent;
788
+ private agentToolTriggerTokens;
789
+ private agentToolMatchesQueryTrigger;
790
+ private extractAgentTaskText;
791
+ private trimAgentExtractedText;
792
+ private extractAgentIntentPayload;
793
+ private planItemTextForIntentDetection;
794
+ private sanitizeAgentPlan;
795
+ private validateAgentPlanCoverage;
796
+ private repairAgentPlanCoverage;
797
+ private agentToolResultAliases;
798
+ private writeAgentToolResultSlots;
799
+ private mergeAgentToolSlots;
800
+ private planAgentAutoTools;
801
+ private chooseAgentAutoTool;
802
+ private prepareAgentToolArgumentsWithContract;
803
+ private executeAgentAutoTool;
804
+ private runAgentAutoToolsIfEnabled;
805
+ private getRichMessageText;
806
+ private getChatModel;
807
+ private limitText;
808
+ private limitId;
809
+ private richMaxItems;
810
+ private getRichMediaUrl;
811
+ private getRichMediaCaption;
812
+ private getRichMediaFileName;
813
+ private getRichMediaMimeType;
814
+ private mediaTypeFromUrlOrMime;
815
+ private parseGeneratedJson;
816
+ private isPlainObject;
817
+ private assertContextPayload;
818
+ private runContextScript;
819
+ private generateContextPayloadWithLlm;
820
+ private normalizeGeneratedContextScript;
821
+ private assertContextScriptSyntax;
822
+ generateContextScriptWithLlm(body: any): Promise<{
823
+ code: string;
824
+ explanation: string;
825
+ model: string;
826
+ }>;
827
+ private stripUndefinedMongoFields;
828
+ private assertSafeGeneratedMongoConfig;
829
+ generateMongoConfigWithLlm(body: any): Promise<{
830
+ explanation: string;
831
+ model: string;
832
+ }>;
833
+ private normalizeAssistantSlug;
834
+ private uniqueAssistantId;
835
+ private normalizeAssistantVariableName;
836
+ private normalizeAssistantPosition;
837
+ private normalizeAssistantSearchText;
838
+ private assistantTextMatchesMcpPreset;
839
+ private assistantMcpPresetsForInstruction;
840
+ private assistantMcpPresetPromptCatalog;
841
+ private assistantStepMatchesMcpPreset;
842
+ private assistantCatalogItemMatchesMcpPreset;
843
+ private assistantArchitectureStepId;
844
+ private upsertAssistantArchitectureEdge;
845
+ private upsertAssistantManifestRef;
846
+ private upsertAssistantCatalogItem;
847
+ private ensureAssistantMcpArchitecture;
848
+ private normalizeAssistantTags;
849
+ private normalizeAssistantRichMessageConfig;
850
+ private normalizeAssistantStep;
851
+ private normalizeAssistantEdge;
852
+ private normalizeAssistantFlowConfig;
853
+ generateFlowConfigWithLlm(body: any): Promise<any>;
854
+ private promptFieldSpec;
855
+ generatePromptFieldWithLlm(body: any): Promise<any>;
856
+ private runContextComponent;
857
+ private resolveMcpLlmProvider;
858
+ private normalizeMcpSchema;
859
+ private getMcpSchemaKeys;
860
+ private filterMcpObjectBySchema;
861
+ private pruneMcpOptionalEmptyValues;
862
+ private coerceMcpArgumentValueForSchema;
863
+ private normalizeMcpArgumentsForSchema;
864
+ private buildMcpContextPayload;
865
+ private generateMcpPayloadWithLlm;
866
+ private normalizeMcpMethod;
867
+ private normalizeMcpBodyType;
868
+ private isMcpGeneratedUrlAllowed;
869
+ private applyMcpAuth;
870
+ private redactMcpRequest;
871
+ private redactMcpExternalUrl;
872
+ private buildMcpExternalHeaders;
873
+ private buildMcpExternalUrl;
874
+ private createFetchWithMcpHeaders;
875
+ private removeMcpExternalHeader;
876
+ private normalizeMcpExternalError;
877
+ private normalizeMcpFetchHeaders;
878
+ private getAwsMcpEndpointConfig;
879
+ private injectAwsMcpMetadata;
880
+ private createAwsSigV4Fetch;
881
+ private createMcpExternalTransport;
882
+ private redactMcpExternalHeaders;
883
+ listExternalMcpTools(body: any): Promise<{
884
+ external: {
885
+ transport: string;
886
+ url: string;
887
+ authMode: string;
888
+ server: {
889
+ version: string;
890
+ name: string;
891
+ websiteUrl?: string;
892
+ description?: string;
893
+ icons?: {
894
+ src: string;
895
+ mimeType?: string;
896
+ sizes?: string[];
897
+ theme?: "light" | "dark";
898
+ }[];
899
+ title?: string;
900
+ };
901
+ capabilities: {
902
+ experimental?: {
903
+ [x: string]: object;
904
+ };
905
+ logging?: object;
906
+ completions?: object;
907
+ prompts?: {
908
+ listChanged?: boolean;
909
+ };
910
+ resources?: {
911
+ subscribe?: boolean;
912
+ listChanged?: boolean;
913
+ };
914
+ tools?: {
915
+ listChanged?: boolean;
916
+ };
917
+ tasks?: {
918
+ [x: string]: unknown;
919
+ list?: object;
920
+ cancel?: object;
921
+ requests?: {
922
+ [x: string]: unknown;
923
+ tools?: {
924
+ [x: string]: unknown;
925
+ call?: object;
926
+ };
927
+ };
928
+ };
929
+ extensions?: {
930
+ [x: string]: object;
931
+ };
932
+ };
933
+ };
934
+ tools: {
935
+ name: string;
936
+ title: string;
937
+ description: string;
938
+ inputSchema: any;
939
+ outputSchema: any;
940
+ annotations: any;
941
+ }[];
942
+ }>;
943
+ private getTextFromMcpContent;
944
+ private getMcpResultOutputCandidate;
945
+ private runExternalMcpComponent;
946
+ private buildMcpApiRequest;
947
+ private parseMcpApiJsonValue;
948
+ private buildMcpApiRequestFromConfig;
949
+ private normalizeMcpApiRequestConfigs;
950
+ private createMcpApiProgress;
951
+ private extractMcpApiOutputWithoutLlm;
952
+ private runMcpMultiApiRequests;
953
+ private runMcpComponent;
954
+ private normalizeGeneratedAction;
955
+ private normalizeGeneratedRichContent;
956
+ private formatAppointmentFlowDataWithLlm;
957
+ private generateRichMessageContent;
958
+ private generateMessageTextWithLlm;
959
+ private onlyDigits;
960
+ private isValidCpf;
961
+ private isValidCnpj;
962
+ private validateTypedInput;
963
+ private validateRegexInput;
964
+ private validateInputWithLlm;
965
+ private validateInputValue;
966
+ private normalizeGeneratedApiRequests;
967
+ private generateApiRequestsWithLlm;
968
+ private normalizeWhatsappButtons;
969
+ private buildWhatsappTextPayload;
970
+ private buildWhatsappImagePayload;
971
+ private buildWhatsappDocumentPayload;
972
+ private buildWhatsappButtonPayload;
973
+ private buildWhatsappListPayload;
974
+ private parsePossibleJsonValue;
975
+ private normalizeAppointmentStage;
976
+ private appointmentStageTitle;
977
+ private normalizeAppointmentOptions;
978
+ private filterAppointmentOptions;
979
+ private defaultAppointmentActions;
980
+ private buildAppointmentFlowData;
981
+ private buildWhatsappAppointmentListPayload;
982
+ private compactMetaFlowOptions;
983
+ private firstMetaOptionId;
984
+ private buildMetaAppointmentFlowData;
985
+ private buildWhatsappAppointmentFlowPayload;
986
+ private buildWhatsappPayloads;
987
+ private evaluateCondition;
988
+ private evaluateConditionResult;
989
+ private buildConditionSlotPreview;
990
+ private extractConditionSlotReferences;
991
+ private buildConditionMissingSlotReferences;
992
+ private readBooleanDecision;
993
+ private evaluateLlmCondition;
994
+ private getOutgoing;
995
+ private getOutgoingAsync;
996
+ private createSnapshot;
997
+ private cloneJson;
998
+ private cloneJsonSafe;
999
+ private stripAgentRuntimeSlots;
1000
+ private safeJsonStringify;
1001
+ private getErrorMessage;
1002
+ private getCronTimezone;
1003
+ private getTimeZoneParts;
1004
+ private getTimeZoneOffsetMs;
1005
+ private zonedTimeToUtc;
1006
+ private parseCronDate;
1007
+ private parseCronTime;
1008
+ private getLocalDateParts;
1009
+ private atCronTime;
1010
+ private addCronDays;
1011
+ private addCronMonths;
1012
+ private computeNextCronRun;
1013
+ private cronSummary;
1014
+ private appendCronExecutionLog;
1015
+ private outgoingTargets;
1016
+ private isDescendantOfGroup;
1017
+ private getDirectChildren;
1018
+ private sortStepsByCanvasPosition;
1019
+ private sortStepsByVerticalFlow;
1020
+ private sortStepIdsByExecutionOrder;
1021
+ private flushDeferredMessages;
1022
+ private isCostlyOrSideEffectStep;
1023
+ private isUserInteractionWaitStep;
1024
+ private emitUserInteractionWaitPrompt;
1025
+ private shouldQueueRuntimeTarget;
1026
+ private resolveStartStepIds;
1027
+ private getGroupEntryTargets;
1028
+ private getGroupExitTargets;
1029
+ private hasWhatsappRuntimeOverride;
1030
+ private mergeWhatsappFallback;
1031
+ private mergeAgentRuntimeConfig;
1032
+ private resolveRuntimeFlowConfig;
1033
+ private normalizeWhatsappProvider;
1034
+ private normalizeWhatsappDeliveryMode;
1035
+ private hasSinchRelayCredentials;
1036
+ private hasSinchConversationCredentials;
1037
+ private normalizeSinchApiMode;
1038
+ private normalizeGraphApiVersion;
1039
+ private resolveWhatsappFlowCredentials;
1040
+ private buildWhatsappFlowOptionSchema;
1041
+ private identifierNumberWord;
1042
+ private normalizeAttachmentStepId;
1043
+ private attachmentStepKey;
1044
+ private normalizeAppointmentAttachmentSteps;
1045
+ private normalizeAppointmentFlowStepOrder;
1046
+ private appointmentFlowConfiguredLabel;
1047
+ private appointmentFlowScreenId;
1048
+ private appointmentFlowScreenTitle;
1049
+ private appointmentFlowComponentForStep;
1050
+ private appointmentFlowDataSchema;
1051
+ private appointmentFlowPayloadForStep;
1052
+ private buildOrderedAppointmentWhatsappFlowJson;
1053
+ private buildAppointmentWhatsappFlowJson;
1054
+ private sanitizeWhatsappFlowJsonForMeta;
1055
+ private metaJsonRequest;
1056
+ private createMetaWhatsappFlow;
1057
+ listWhatsappFlows(body: any): Promise<{
1058
+ success: boolean;
1059
+ flows: any;
1060
+ paging: any;
1061
+ businessAccountId: string;
1062
+ graphApiVersion: string;
1063
+ }>;
1064
+ deleteWhatsappFlow(body: any): Promise<{
1065
+ success: boolean;
1066
+ deleted: boolean;
1067
+ flowId: string;
1068
+ data: any;
1069
+ deprecated?: undefined;
1070
+ deleteFallbackReason?: undefined;
1071
+ } | {
1072
+ success: boolean;
1073
+ deleted: boolean;
1074
+ deprecated: boolean;
1075
+ flowId: string;
1076
+ data: any;
1077
+ deleteFallbackReason: any;
1078
+ }>;
1079
+ uploadWhatsappFlowJson(body: any): Promise<{
1080
+ success: boolean;
1081
+ flowId: string;
1082
+ data: any;
1083
+ validationErrors: any;
1084
+ flowJson: any;
1085
+ }>;
1086
+ publishWhatsappFlow(body: any): Promise<{
1087
+ success: boolean;
1088
+ flowId: string;
1089
+ data: any;
1090
+ }>;
1091
+ createWhatsappFlow(body: any): Promise<{
1092
+ success: boolean;
1093
+ flowId: string;
1094
+ created: any;
1095
+ upload: {
1096
+ success: boolean;
1097
+ flowId: string;
1098
+ data: any;
1099
+ validationErrors: any;
1100
+ flowJson: any;
1101
+ };
1102
+ validationErrors: any[];
1103
+ publish?: undefined;
1104
+ flowJson?: undefined;
1105
+ } | {
1106
+ success: boolean;
1107
+ flowId: string;
1108
+ created: any;
1109
+ upload: {
1110
+ success: boolean;
1111
+ flowId: string;
1112
+ data: any;
1113
+ validationErrors: any;
1114
+ flowJson: any;
1115
+ };
1116
+ publish: {
1117
+ success: boolean;
1118
+ flowId: string;
1119
+ data: any;
1120
+ };
1121
+ flowJson: any;
1122
+ validationErrors?: undefined;
1123
+ }>;
1124
+ private sanitizeMcpToolName;
1125
+ private mcpToolNameForFlow;
1126
+ private mcpInputSchemaForFlow;
1127
+ listMcpTools(agentId: string, organizationId?: string): Promise<{
1128
+ name: string;
1129
+ title: any;
1130
+ description: any;
1131
+ inputSchema: {
1132
+ type: string;
1133
+ properties: {
1134
+ text: {
1135
+ type: string;
1136
+ description: string;
1137
+ };
1138
+ conversationId: {
1139
+ type: string;
1140
+ description: string;
1141
+ };
1142
+ slots: {
1143
+ type: string;
1144
+ description: string;
1145
+ additionalProperties: boolean;
1146
+ };
1147
+ flowVersion: {
1148
+ type: string;
1149
+ description: string;
1150
+ };
1151
+ agentRelease: {
1152
+ type: string;
1153
+ description: string;
1154
+ };
1155
+ approvals: {
1156
+ type: string;
1157
+ description: string;
1158
+ additionalProperties: boolean;
1159
+ };
1160
+ };
1161
+ required: string[];
1162
+ additionalProperties: boolean;
1163
+ description: string;
1164
+ };
1165
+ annotations: {
1166
+ flowId: string;
1167
+ agentId: any;
1168
+ channel: any;
1169
+ activeVersion: any;
1170
+ latestVersion: any;
1171
+ isMainFlow: boolean;
1172
+ };
1173
+ }[]>;
1174
+ callMcpTool(agentId: string, toolName: string, args?: any, organizationId?: string, oauthUserId?: string): Promise<{
1175
+ content: {
1176
+ type: string;
1177
+ text: string;
1178
+ }[];
1179
+ structuredContent: {
1180
+ messages: {
1181
+ role: string;
1182
+ text: string;
1183
+ }[];
1184
+ slots: any;
1185
+ currentStepId: string;
1186
+ ended: boolean;
1187
+ conversationId: any;
1188
+ flowId: string;
1189
+ flowName: any;
1190
+ trace: any[];
1191
+ };
1192
+ }>;
1193
+ handleMcpJsonRpc(agentId: string, body: any, organizationId?: string, oauthUserId?: string): Promise<{
1194
+ jsonrpc: string;
1195
+ id: any;
1196
+ result: {
1197
+ protocolVersion: any;
1198
+ capabilities: {
1199
+ tools: {};
1200
+ };
1201
+ serverInfo: {
1202
+ name: string;
1203
+ version: string;
1204
+ };
1205
+ tools?: undefined;
1206
+ };
1207
+ error?: undefined;
1208
+ } | {
1209
+ jsonrpc: string;
1210
+ id: any;
1211
+ result: {
1212
+ protocolVersion?: undefined;
1213
+ capabilities?: undefined;
1214
+ serverInfo?: undefined;
1215
+ tools?: undefined;
1216
+ };
1217
+ error?: undefined;
1218
+ } | {
1219
+ jsonrpc: string;
1220
+ id: any;
1221
+ result: {
1222
+ tools: {
1223
+ name: string;
1224
+ title: any;
1225
+ description: any;
1226
+ inputSchema: {
1227
+ type: string;
1228
+ properties: {
1229
+ text: {
1230
+ type: string;
1231
+ description: string;
1232
+ };
1233
+ conversationId: {
1234
+ type: string;
1235
+ description: string;
1236
+ };
1237
+ slots: {
1238
+ type: string;
1239
+ description: string;
1240
+ additionalProperties: boolean;
1241
+ };
1242
+ flowVersion: {
1243
+ type: string;
1244
+ description: string;
1245
+ };
1246
+ agentRelease: {
1247
+ type: string;
1248
+ description: string;
1249
+ };
1250
+ approvals: {
1251
+ type: string;
1252
+ description: string;
1253
+ additionalProperties: boolean;
1254
+ };
1255
+ };
1256
+ required: string[];
1257
+ additionalProperties: boolean;
1258
+ description: string;
1259
+ };
1260
+ annotations: {
1261
+ flowId: string;
1262
+ agentId: any;
1263
+ channel: any;
1264
+ activeVersion: any;
1265
+ latestVersion: any;
1266
+ isMainFlow: boolean;
1267
+ };
1268
+ }[];
1269
+ protocolVersion?: undefined;
1270
+ capabilities?: undefined;
1271
+ serverInfo?: undefined;
1272
+ };
1273
+ error?: undefined;
1274
+ } | {
1275
+ jsonrpc: string;
1276
+ id: any;
1277
+ result: {
1278
+ content: {
1279
+ type: string;
1280
+ text: string;
1281
+ }[];
1282
+ structuredContent: {
1283
+ messages: {
1284
+ role: string;
1285
+ text: string;
1286
+ }[];
1287
+ slots: any;
1288
+ currentStepId: string;
1289
+ ended: boolean;
1290
+ conversationId: any;
1291
+ flowId: string;
1292
+ flowName: any;
1293
+ trace: any[];
1294
+ };
1295
+ };
1296
+ error?: undefined;
1297
+ } | {
1298
+ jsonrpc: string;
1299
+ id: any;
1300
+ error: {
1301
+ code: any;
1302
+ message: any;
1303
+ };
1304
+ result?: undefined;
1305
+ } | ({
1306
+ jsonrpc: string;
1307
+ id: any;
1308
+ result: {
1309
+ protocolVersion: any;
1310
+ capabilities: {
1311
+ tools: {};
1312
+ };
1313
+ serverInfo: {
1314
+ name: string;
1315
+ version: string;
1316
+ };
1317
+ tools?: undefined;
1318
+ };
1319
+ error?: undefined;
1320
+ } | {
1321
+ jsonrpc: string;
1322
+ id: any;
1323
+ result: {
1324
+ protocolVersion?: undefined;
1325
+ capabilities?: undefined;
1326
+ serverInfo?: undefined;
1327
+ tools?: undefined;
1328
+ };
1329
+ error?: undefined;
1330
+ } | {
1331
+ jsonrpc: string;
1332
+ id: any;
1333
+ result: {
1334
+ tools: {
1335
+ name: string;
1336
+ title: any;
1337
+ description: any;
1338
+ inputSchema: {
1339
+ type: string;
1340
+ properties: {
1341
+ text: {
1342
+ type: string;
1343
+ description: string;
1344
+ };
1345
+ conversationId: {
1346
+ type: string;
1347
+ description: string;
1348
+ };
1349
+ slots: {
1350
+ type: string;
1351
+ description: string;
1352
+ additionalProperties: boolean;
1353
+ };
1354
+ flowVersion: {
1355
+ type: string;
1356
+ description: string;
1357
+ };
1358
+ agentRelease: {
1359
+ type: string;
1360
+ description: string;
1361
+ };
1362
+ approvals: {
1363
+ type: string;
1364
+ description: string;
1365
+ additionalProperties: boolean;
1366
+ };
1367
+ };
1368
+ required: string[];
1369
+ additionalProperties: boolean;
1370
+ description: string;
1371
+ };
1372
+ annotations: {
1373
+ flowId: string;
1374
+ agentId: any;
1375
+ channel: any;
1376
+ activeVersion: any;
1377
+ latestVersion: any;
1378
+ isMainFlow: boolean;
1379
+ };
1380
+ }[];
1381
+ protocolVersion?: undefined;
1382
+ capabilities?: undefined;
1383
+ serverInfo?: undefined;
1384
+ };
1385
+ error?: undefined;
1386
+ } | {
1387
+ jsonrpc: string;
1388
+ id: any;
1389
+ result: {
1390
+ content: {
1391
+ type: string;
1392
+ text: string;
1393
+ }[];
1394
+ structuredContent: {
1395
+ messages: {
1396
+ role: string;
1397
+ text: string;
1398
+ }[];
1399
+ slots: any;
1400
+ currentStepId: string;
1401
+ ended: boolean;
1402
+ conversationId: any;
1403
+ flowId: string;
1404
+ flowName: any;
1405
+ trace: any[];
1406
+ };
1407
+ };
1408
+ error?: undefined;
1409
+ } | {
1410
+ jsonrpc: string;
1411
+ id: any;
1412
+ error: {
1413
+ code: any;
1414
+ message: any;
1415
+ };
1416
+ result?: undefined;
1417
+ })[]>;
1418
+ private parseSimulationCases;
1419
+ private resolvePathValue;
1420
+ private evaluateSimulationCase;
1421
+ replaySimulation(body: any): Promise<{
1422
+ mode: string;
1423
+ summary: {
1424
+ total: number;
1425
+ passed: number;
1426
+ failed: number;
1427
+ passRate: number;
1428
+ durationMs: number;
1429
+ };
1430
+ results: any[];
1431
+ finalState: {
1432
+ conversationId: any;
1433
+ currentStepId: any;
1434
+ activeFlowId: any;
1435
+ slots: any;
1436
+ };
1437
+ generatedAt: string;
1438
+ }>;
1439
+ getTagDashboard(body: any): Promise<{
1440
+ history: (mongoose.FlattenMaps<import("../memory/memory-schema").MemoryTurnEntity> & Required<{
1441
+ _id: mongoose.Types.ObjectId;
1442
+ }> & {
1443
+ __v: number;
1444
+ })[] | (mongoose.FlattenMaps<import("../memory/memory-history-schema").MemoryHistoryEntity> & Required<{
1445
+ _id: mongoose.Types.ObjectId;
1446
+ }> & {
1447
+ __v: number;
1448
+ })[];
1449
+ historyPagination: {
1450
+ page: number;
1451
+ limit: number;
1452
+ total: number;
1453
+ totalPages: number;
1454
+ };
1455
+ insights: {
1456
+ summary: {
1457
+ totalMessages: any;
1458
+ userMessages: number;
1459
+ assistantMessages: number;
1460
+ conversations: number;
1461
+ avgMessagesPerConversation: number;
1462
+ avgUserMessagesPerConversation: number;
1463
+ longConversations: number;
1464
+ };
1465
+ byRole: any[];
1466
+ byChannel: any[];
1467
+ byFlow: any[];
1468
+ topConversations: any[];
1469
+ daily: any[];
1470
+ };
1471
+ traceInsights: {
1472
+ summary: {
1473
+ runs: number;
1474
+ totalEvents: number;
1475
+ errorCount: number;
1476
+ nodesTouched: number;
1477
+ callTypes: number;
1478
+ };
1479
+ byType: any[];
1480
+ byStep: any[];
1481
+ calls: any[];
1482
+ errors: any[];
1483
+ };
1484
+ filters: import("../flow-tag/flow-tag-service").FlowTagDashboardFilters;
1485
+ summary: {
1486
+ total: number;
1487
+ conversations: number;
1488
+ tags: number;
1489
+ flows: number;
1490
+ };
1491
+ byTag: any[];
1492
+ byFlow: any[];
1493
+ events: (mongoose.FlattenMaps<import("../flow-tag/flow-tag-schema").FlowTagEventEntity> & Required<{
1494
+ _id: mongoose.Types.ObjectId;
1495
+ }> & {
1496
+ __v: number;
1497
+ })[];
1498
+ conversationIds: any;
1499
+ }>;
1500
+ private summarizeFlowCapabilities;
1501
+ getAgentOpsDashboard(body: any): Promise<{
1502
+ filters: {
1503
+ organizationId: any;
1504
+ agentId: any;
1505
+ flowId: any;
1506
+ conversationId: any;
1507
+ dateFrom: any;
1508
+ dateTo: any;
1509
+ };
1510
+ summary: {
1511
+ conversations: number;
1512
+ messages: any;
1513
+ userMessages: number;
1514
+ assistantMessages: number;
1515
+ runs: number;
1516
+ errorCount: number;
1517
+ errorRate: number;
1518
+ avgDurationMs: number;
1519
+ llmCalls: any;
1520
+ estimatedTokens: number;
1521
+ estimatedTokenSource: string;
1522
+ };
1523
+ queue: any;
1524
+ insights: {
1525
+ summary: {
1526
+ totalMessages: any;
1527
+ userMessages: number;
1528
+ assistantMessages: number;
1529
+ conversations: number;
1530
+ avgMessagesPerConversation: number;
1531
+ avgUserMessagesPerConversation: number;
1532
+ longConversations: number;
1533
+ };
1534
+ byRole: any[];
1535
+ byChannel: any[];
1536
+ byFlow: any[];
1537
+ topConversations: any[];
1538
+ daily: any[];
1539
+ };
1540
+ traceInsights: {
1541
+ summary: {
1542
+ runs: number;
1543
+ totalEvents: number;
1544
+ errorCount: number;
1545
+ nodesTouched: number;
1546
+ callTypes: number;
1547
+ };
1548
+ byType: any[];
1549
+ byStep: any[];
1550
+ calls: any[];
1551
+ errors: any[];
1552
+ };
1553
+ errors: any[];
1554
+ hotNodes: any[];
1555
+ releases: any;
1556
+ flows: {
1557
+ flowId: string;
1558
+ name: any;
1559
+ activeVersion: any;
1560
+ latestVersion: any;
1561
+ isMainFlow: boolean;
1562
+ channel: any;
1563
+ }[];
1564
+ capabilities: {
1565
+ totalNodes: number;
1566
+ approvalGates: number;
1567
+ mcpNodes: number;
1568
+ exposedMcpTools: number;
1569
+ ragNodes: number;
1570
+ cronNodes: number;
1571
+ webhookNodes: number;
1572
+ whatsappFlows: number;
1573
+ dashboards: number;
1574
+ flowToMcpEndpointReady: boolean;
1575
+ };
1576
+ capabilityByFlow: any[];
1577
+ readiness: {
1578
+ status: string;
1579
+ warnings: string[];
1580
+ };
1581
+ history: (mongoose.FlattenMaps<import("../memory/memory-schema").MemoryTurnEntity> & Required<{
1582
+ _id: mongoose.Types.ObjectId;
1583
+ }> & {
1584
+ __v: number;
1585
+ })[] | (mongoose.FlattenMaps<import("../memory/memory-history-schema").MemoryHistoryEntity> & Required<{
1586
+ _id: mongoose.Types.ObjectId;
1587
+ }> & {
1588
+ __v: number;
1589
+ })[];
1590
+ generatedAt: string;
1591
+ }>;
1592
+ private incrementMetric;
1593
+ private traceErrorMessage;
1594
+ private compactTraceForHistory;
1595
+ private buildTraceDashboardFromHistory;
1596
+ private extractMessageTextFromObject;
1597
+ private getAppointmentAttachmentFields;
1598
+ private resolveMetaMediaUrl;
1599
+ private withWhatsappMediaProxy;
1600
+ private normalizeFlowAttachmentFiles;
1601
+ private enrichFlowReplyDataWithAttachmentUrls;
1602
+ private extractFlowReplyData;
1603
+ private extractMetaWhatsappMessages;
1604
+ private extractBlipWhatsappMessages;
1605
+ private extractSinchWhatsappMessages;
1606
+ private extractWhatsappMessages;
1607
+ private getAssistantText;
1608
+ private whatsappDeliveryKey;
1609
+ private buildWhatsappDedupeKey;
1610
+ private getCanvasFlowState;
1611
+ private compactSlotsForState;
1612
+ private saveCanvasFlowState;
1613
+ private postWhatsappPayload;
1614
+ private flowInteractiveToListInteractive;
1615
+ private metaPayloadToText;
1616
+ private buildBlipPayload;
1617
+ private postBlipPayload;
1618
+ private buildSinchRelayMessage;
1619
+ private getSinchRelayApiUrl;
1620
+ private buildSinchRelayPayload;
1621
+ private buildSinchConversationBody;
1622
+ private buildSinchConversationPayload;
1623
+ private buildSinchPayload;
1624
+ private postSinchPayload;
1625
+ private buildMetaApiPayload;
1626
+ private buildBlipApiPayload;
1627
+ private buildProviderApiPayload;
1628
+ private buildWhatsappApiResponsePayloads;
1629
+ private shouldSendWhatsappAssistantMessage;
1630
+ private sendWhatsappMessage;
1631
+ private recordStepTags;
1632
+ private normalizeApprovalText;
1633
+ private resolveApprovalDecision;
1634
+ private buildApprovalResult;
1635
+ private runApprovalComponent;
1636
+ private runStep;
1637
+ private getLangGraphRuntime;
1638
+ private snapshotLangGraphContext;
1639
+ private restoreLangGraphTrace;
1640
+ private langGraphRuntimeStatus;
1641
+ private advanceLangGraphRuntime;
1642
+ run(body: any): Promise<{
1643
+ messages: {
1644
+ role: string;
1645
+ text: string;
1646
+ }[];
1647
+ slots: any;
1648
+ trace: any[];
1649
+ tracePage: {
1650
+ mode: TraceMode;
1651
+ total: number;
1652
+ buffered: number;
1653
+ dropped: number;
1654
+ offset: number;
1655
+ limit: number;
1656
+ returned: number;
1657
+ hasMore: boolean;
1658
+ nextOffset: number;
1659
+ };
1660
+ currentStepId?: undefined;
1661
+ ended?: undefined;
1662
+ conversationId?: undefined;
1663
+ entryFlowId?: undefined;
1664
+ activeFlowId?: undefined;
1665
+ activeFlowName?: undefined;
1666
+ flowVersion?: undefined;
1667
+ activeFlowVersion?: undefined;
1668
+ flowVersionSource?: undefined;
1669
+ agentRelease?: undefined;
1670
+ agentReleaseSource?: undefined;
1671
+ memoryClearRequested?: undefined;
1672
+ memoryCleared?: undefined;
1673
+ runtime?: undefined;
1674
+ } | {
1675
+ messages: FlowMessage[];
1676
+ slots: any;
1677
+ currentStepId: string;
1678
+ ended: boolean;
1679
+ conversationId: any;
1680
+ entryFlowId: any;
1681
+ activeFlowId: any;
1682
+ activeFlowName: any;
1683
+ trace: any[];
1684
+ tracePage: {
1685
+ mode: TraceMode;
1686
+ total: number;
1687
+ buffered: number;
1688
+ dropped: number;
1689
+ offset: number;
1690
+ limit: number;
1691
+ returned: number;
1692
+ hasMore: boolean;
1693
+ nextOffset: number;
1694
+ };
1695
+ flowVersion: number;
1696
+ activeFlowVersion: number;
1697
+ flowVersionSource: "version" | "draft";
1698
+ agentRelease: any;
1699
+ agentReleaseSource: "active" | "requested" | "none";
1700
+ memoryClearRequested: boolean;
1701
+ memoryCleared: boolean;
1702
+ runtime: import("./langgraph-runtime.service").CanvasFlowLangGraphRuntimeMetadata;
1703
+ }>;
1704
+ runDueCronFlows(options?: {
1705
+ agentId?: string;
1706
+ dryRun?: boolean;
1707
+ suppressConnectionErrors?: boolean;
1708
+ }): Promise<{
1709
+ ok: boolean;
1710
+ skipped: boolean;
1711
+ reason: string;
1712
+ error?: undefined;
1713
+ timestamp?: undefined;
1714
+ checkedFlows?: undefined;
1715
+ executions?: undefined;
1716
+ scheduled?: undefined;
1717
+ } | {
1718
+ ok: boolean;
1719
+ skipped: boolean;
1720
+ reason: string;
1721
+ error: any;
1722
+ timestamp: string;
1723
+ checkedFlows?: undefined;
1724
+ executions?: undefined;
1725
+ scheduled?: undefined;
1726
+ } | {
1727
+ ok: boolean;
1728
+ checkedFlows: number;
1729
+ executions: any[];
1730
+ scheduled: any[];
1731
+ timestamp: string;
1732
+ skipped?: undefined;
1733
+ reason?: undefined;
1734
+ error?: undefined;
1735
+ }>;
1736
+ verifyWhatsappWebhook(flowId: string, mode: string, verifyToken: string, challenge: string): Promise<string>;
1737
+ verifyWhatsappMainWebhook(agentId: string, mode: string, verifyToken: string, challenge: string): Promise<string>;
1738
+ runWhatsappWebhook(flowId: string, payload: any): Promise<{
1739
+ ok: boolean;
1740
+ received: number;
1741
+ ignored: boolean;
1742
+ results?: undefined;
1743
+ } | {
1744
+ ok: boolean;
1745
+ received: any;
1746
+ results: any[];
1747
+ ignored?: undefined;
1748
+ }>;
1749
+ runWhatsappMainWebhook(agentId: string, payload: any): Promise<{
1750
+ ok: boolean;
1751
+ received: number;
1752
+ ignored: boolean;
1753
+ results?: undefined;
1754
+ } | {
1755
+ ok: boolean;
1756
+ received: any;
1757
+ results: any[];
1758
+ ignored?: undefined;
1759
+ }>;
1760
+ }
1761
+ export {};