n8n 2.23.2 → 2.25.1

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 (559) hide show
  1. package/dist/active-workflow-manager.d.ts +8 -4
  2. package/dist/active-workflow-manager.js +26 -9
  3. package/dist/active-workflow-manager.js.map +1 -1
  4. package/dist/auth/auth.service.d.ts +1 -1
  5. package/dist/auth/auth.service.js +2 -1
  6. package/dist/auth/auth.service.js.map +1 -1
  7. package/dist/build.tsbuildinfo +1 -1
  8. package/dist/controllers/ai.controller.js +1 -1
  9. package/dist/controllers/ai.controller.js.map +1 -1
  10. package/dist/controllers/api-keys.controller.d.ts +20 -15
  11. package/dist/controllers/api-keys.controller.js +7 -4
  12. package/dist/controllers/api-keys.controller.js.map +1 -1
  13. package/dist/controllers/oauth/oauth1-credential.controller.d.ts +4 -2
  14. package/dist/controllers/oauth/oauth1-credential.controller.js +15 -5
  15. package/dist/controllers/oauth/oauth1-credential.controller.js.map +1 -1
  16. package/dist/controllers/oauth/oauth2-credential.controller.d.ts +4 -2
  17. package/dist/controllers/oauth/oauth2-credential.controller.js +15 -6
  18. package/dist/controllers/oauth/oauth2-credential.controller.js.map +1 -1
  19. package/dist/controllers/project.controller.d.ts +8 -0
  20. package/dist/controllers/project.controller.js +2 -1
  21. package/dist/controllers/project.controller.js.map +1 -1
  22. package/dist/controllers/security-settings.controller.js +18 -1
  23. package/dist/controllers/security-settings.controller.js.map +1 -1
  24. package/dist/controllers/telemetry.controller.js +4 -1
  25. package/dist/controllers/telemetry.controller.js.map +1 -1
  26. package/dist/credentials/credential-connection-status-provider.interface.d.ts +3 -0
  27. package/dist/credentials/credential-connection-status-proxy.d.ts +3 -0
  28. package/dist/credentials/credential-connection-status-proxy.js +10 -0
  29. package/dist/credentials/credential-connection-status-proxy.js.map +1 -1
  30. package/dist/credentials/credentials.controller.d.ts +6 -0
  31. package/dist/credentials/credentials.controller.js +39 -2
  32. package/dist/credentials/credentials.controller.js.map +1 -1
  33. package/dist/credentials/credentials.service.d.ts +29 -13
  34. package/dist/credentials/credentials.service.ee.d.ts +2 -0
  35. package/dist/credentials/credentials.service.ee.js +3 -0
  36. package/dist/credentials/credentials.service.ee.js.map +1 -1
  37. package/dist/credentials/credentials.service.js +27 -6
  38. package/dist/credentials/credentials.service.js.map +1 -1
  39. package/dist/credentials-helper.d.ts +1 -0
  40. package/dist/credentials-helper.js +14 -4
  41. package/dist/credentials-helper.js.map +1 -1
  42. package/dist/errors/credential-missing-id.error.d.ts +4 -0
  43. package/dist/errors/credential-missing-id.error.js +14 -0
  44. package/dist/errors/credential-missing-id.error.js.map +1 -0
  45. package/dist/eventbus/event-message-classes/index.d.ts +2 -2
  46. package/dist/eventbus/event-message-classes/index.js +3 -0
  47. package/dist/eventbus/event-message-classes/index.js.map +1 -1
  48. package/dist/events/maps/relay.event-map.d.ts +54 -2
  49. package/dist/events/relays/log-streaming.event-relay.d.ts +3 -0
  50. package/dist/events/relays/log-streaming.event-relay.js +39 -1
  51. package/dist/events/relays/log-streaming.event-relay.js.map +1 -1
  52. package/dist/events/relays/telemetry.event-relay.d.ts +6 -0
  53. package/dist/events/relays/telemetry.event-relay.js +74 -3
  54. package/dist/events/relays/telemetry.event-relay.js.map +1 -1
  55. package/dist/execution-lifecycle/execution-lifecycle-hooks.js +6 -5
  56. package/dist/execution-lifecycle/execution-lifecycle-hooks.js.map +1 -1
  57. package/dist/executions/execution-data/db-store.d.ts +1 -0
  58. package/dist/executions/execution-data/db-store.js +26 -0
  59. package/dist/executions/execution-data/db-store.js.map +1 -1
  60. package/dist/executions/execution-data/fs-store.d.ts +2 -0
  61. package/dist/executions/execution-data/fs-store.js +27 -0
  62. package/dist/executions/execution-data/fs-store.js.map +1 -1
  63. package/dist/executions/execution-data/types.d.ts +1 -0
  64. package/dist/executions/execution-persistence.d.ts +38 -4
  65. package/dist/executions/execution-persistence.js +127 -2
  66. package/dist/executions/execution-persistence.js.map +1 -1
  67. package/dist/expression-observability/expression-observability.provider.d.ts +3 -1
  68. package/dist/expression-observability/expression-observability.provider.js +48 -46
  69. package/dist/expression-observability/expression-observability.provider.js.map +1 -1
  70. package/dist/interfaces.d.ts +3 -1
  71. package/dist/modules/agents/agent-execution.service.d.ts +4 -2
  72. package/dist/modules/agents/agent-execution.service.js +3 -3
  73. package/dist/modules/agents/agent-execution.service.js.map +1 -1
  74. package/dist/modules/agents/agent-knowledge-command.service.d.ts +40 -0
  75. package/dist/modules/agents/agent-knowledge-command.service.js +221 -0
  76. package/dist/modules/agents/agent-knowledge-command.service.js.map +1 -0
  77. package/dist/modules/agents/agent-knowledge.service.d.ts +42 -0
  78. package/dist/modules/agents/agent-knowledge.service.js +300 -0
  79. package/dist/modules/agents/agent-knowledge.service.js.map +1 -0
  80. package/dist/modules/agents/agent-task.service.d.ts +52 -0
  81. package/dist/modules/agents/agent-task.service.js +487 -0
  82. package/dist/modules/agents/agent-task.service.js.map +1 -0
  83. package/dist/modules/agents/agent-upload.middleware.d.ts +7 -0
  84. package/dist/modules/agents/agent-upload.middleware.js +62 -0
  85. package/dist/modules/agents/agent-upload.middleware.js.map +1 -0
  86. package/dist/modules/agents/agents-tools.service.d.ts +1 -1
  87. package/dist/modules/agents/agents-tools.service.js +12 -3
  88. package/dist/modules/agents/agents-tools.service.js.map +1 -1
  89. package/dist/modules/agents/agents.controller.d.ts +138 -45
  90. package/dist/modules/agents/agents.controller.js +176 -48
  91. package/dist/modules/agents/agents.controller.js.map +1 -1
  92. package/dist/modules/agents/agents.module.d.ts +2 -2
  93. package/dist/modules/agents/agents.module.js +13 -5
  94. package/dist/modules/agents/agents.module.js.map +1 -1
  95. package/dist/modules/agents/agents.service.d.ts +43 -7
  96. package/dist/modules/agents/agents.service.js +341 -57
  97. package/dist/modules/agents/agents.service.js.map +1 -1
  98. package/dist/modules/agents/builder/agents-builder-prompts.d.ts +6 -5
  99. package/dist/modules/agents/builder/agents-builder-prompts.js +92 -18
  100. package/dist/modules/agents/builder/agents-builder-prompts.js.map +1 -1
  101. package/dist/modules/agents/builder/agents-builder-tools.service.d.ts +11 -1
  102. package/dist/modules/agents/builder/agents-builder-tools.service.js +164 -26
  103. package/dist/modules/agents/builder/agents-builder-tools.service.js.map +1 -1
  104. package/dist/modules/agents/builder/agents-builder.service.d.ts +3 -1
  105. package/dist/modules/agents/builder/agents-builder.service.js +8 -3
  106. package/dist/modules/agents/builder/agents-builder.service.js.map +1 -1
  107. package/dist/modules/agents/builder/builder-tool-names.d.ts +3 -0
  108. package/dist/modules/agents/builder/builder-tool-names.js +3 -0
  109. package/dist/modules/agents/builder/builder-tool-names.js.map +1 -1
  110. package/dist/modules/agents/builder/interactive/ask-credential.tool.d.ts +1 -0
  111. package/dist/modules/agents/builder/interactive/ask-credential.tool.js +25 -4
  112. package/dist/modules/agents/builder/interactive/ask-credential.tool.js.map +1 -1
  113. package/dist/modules/agents/builder/interactive/ask-question.tool.js +6 -5
  114. package/dist/modules/agents/builder/interactive/ask-question.tool.js.map +1 -1
  115. package/dist/modules/agents/builder/prompts/config-mutation.prompt.js +20 -5
  116. package/dist/modules/agents/builder/prompts/config-mutation.prompt.js.map +1 -1
  117. package/dist/modules/agents/builder/prompts/config-rules.prompt.js +23 -4
  118. package/dist/modules/agents/builder/prompts/config-rules.prompt.js.map +1 -1
  119. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js +18 -1
  120. package/dist/modules/agents/builder/prompts/llm-selection.prompt.js.map +1 -1
  121. package/dist/modules/agents/builder/prompts/memory.prompt.d.ts +1 -1
  122. package/dist/modules/agents/builder/prompts/memory.prompt.js +5 -3
  123. package/dist/modules/agents/builder/prompts/memory.prompt.js.map +1 -1
  124. package/dist/modules/agents/builder/prompts/tools.prompt.d.ts +1 -1
  125. package/dist/modules/agents/builder/prompts/tools.prompt.js +11 -2
  126. package/dist/modules/agents/builder/prompts/tools.prompt.js.map +1 -1
  127. package/dist/modules/agents/builder/search-mcp-servers.tool.d.ts +6 -0
  128. package/dist/modules/agents/builder/search-mcp-servers.tool.js +85 -0
  129. package/dist/modules/agents/builder/search-mcp-servers.tool.js.map +1 -0
  130. package/dist/modules/agents/builder/skill-body-template.d.ts +4 -0
  131. package/dist/modules/agents/builder/skill-body-template.js +31 -0
  132. package/dist/modules/agents/builder/skill-body-template.js.map +1 -0
  133. package/dist/modules/agents/builder/skills/index.js +6 -1
  134. package/dist/modules/agents/builder/skills/index.js.map +1 -1
  135. package/dist/modules/agents/builder/skills/integrations.skill.js +39 -18
  136. package/dist/modules/agents/builder/skills/integrations.skill.js.map +1 -1
  137. package/dist/modules/agents/builder/skills/mcp.skill.d.ts +2 -0
  138. package/dist/modules/agents/builder/skills/mcp.skill.js +110 -0
  139. package/dist/modules/agents/builder/skills/mcp.skill.js.map +1 -0
  140. package/dist/modules/agents/builder/skills/research.skill.js +8 -5
  141. package/dist/modules/agents/builder/skills/research.skill.js.map +1 -1
  142. package/dist/modules/agents/builder/skills/target-skills.skill.js +41 -13
  143. package/dist/modules/agents/builder/skills/target-skills.skill.js.map +1 -1
  144. package/dist/modules/agents/builder/skills/target-tasks.skill.d.ts +2 -0
  145. package/dist/modules/agents/builder/skills/target-tasks.skill.js +82 -0
  146. package/dist/modules/agents/builder/skills/target-tasks.skill.js.map +1 -0
  147. package/dist/modules/agents/builder/task-objective-template.d.ts +3 -0
  148. package/dist/modules/agents/builder/task-objective-template.js +27 -0
  149. package/dist/modules/agents/builder/task-objective-template.js.map +1 -0
  150. package/dist/modules/agents/builder/verify-mcp-server.tool.d.ts +8 -0
  151. package/dist/modules/agents/builder/verify-mcp-server.tool.js +79 -0
  152. package/dist/modules/agents/builder/verify-mcp-server.tool.js.map +1 -0
  153. package/dist/modules/agents/entities/agent-execution-thread.entity.d.ts +4 -0
  154. package/dist/modules/agents/entities/agent-execution-thread.entity.js +26 -0
  155. package/dist/modules/agents/entities/agent-execution-thread.entity.js.map +1 -1
  156. package/dist/modules/agents/entities/agent-file.entity.d.ts +11 -0
  157. package/dist/modules/agents/entities/agent-file.entity.js +48 -0
  158. package/dist/modules/agents/entities/agent-file.entity.js.map +1 -0
  159. package/dist/modules/agents/entities/agent-task-run-lock.entity.d.ts +10 -0
  160. package/dist/modules/agents/entities/agent-task-run-lock.entity.js +54 -0
  161. package/dist/modules/agents/entities/agent-task-run-lock.entity.js.map +1 -0
  162. package/dist/modules/agents/entities/agent-task-snapshot.entity.d.ts +12 -0
  163. package/dist/modules/agents/entities/agent-task-snapshot.entity.js +70 -0
  164. package/dist/modules/agents/entities/agent-task-snapshot.entity.js.map +1 -0
  165. package/dist/modules/agents/entities/agent-task.entity.d.ts +11 -0
  166. package/dist/modules/agents/entities/agent-task.entity.js +64 -0
  167. package/dist/modules/agents/entities/agent-task.entity.js.map +1 -0
  168. package/dist/modules/agents/execution-recorder.d.ts +1 -0
  169. package/dist/modules/agents/execution-recorder.js +9 -5
  170. package/dist/modules/agents/execution-recorder.js.map +1 -1
  171. package/dist/modules/agents/integrations/agent-chat-bridge.d.ts +16 -4
  172. package/dist/modules/agents/integrations/agent-chat-bridge.js +372 -116
  173. package/dist/modules/agents/integrations/agent-chat-bridge.js.map +1 -1
  174. package/dist/modules/agents/integrations/agent-chat-integration.d.ts +27 -2
  175. package/dist/modules/agents/integrations/agent-chat-integration.js +5 -0
  176. package/dist/modules/agents/integrations/agent-chat-integration.js.map +1 -1
  177. package/dist/modules/agents/integrations/chat-integration.service.d.ts +15 -6
  178. package/dist/modules/agents/integrations/chat-integration.service.js +9 -10
  179. package/dist/modules/agents/integrations/chat-integration.service.js.map +1 -1
  180. package/dist/modules/agents/integrations/component-mapper.d.ts +14 -0
  181. package/dist/modules/agents/integrations/component-mapper.js +9 -1
  182. package/dist/modules/agents/integrations/component-mapper.js.map +1 -1
  183. package/dist/modules/agents/integrations/integration-action-executor.d.ts +22 -0
  184. package/dist/modules/agents/integrations/integration-action-executor.js +171 -0
  185. package/dist/modules/agents/integrations/integration-action-executor.js.map +1 -0
  186. package/dist/modules/agents/integrations/integration-context-query-executor.d.ts +18 -0
  187. package/dist/modules/agents/integrations/integration-context-query-executor.js +58 -0
  188. package/dist/modules/agents/integrations/integration-context-query-executor.js.map +1 -0
  189. package/dist/modules/agents/integrations/integration-error-codes.d.ts +13 -0
  190. package/dist/modules/agents/integrations/integration-error-codes.js +16 -0
  191. package/dist/modules/agents/integrations/integration-error-codes.js.map +1 -0
  192. package/dist/modules/agents/integrations/integration-helpers.d.ts +21 -0
  193. package/dist/modules/agents/integrations/integration-helpers.js +72 -0
  194. package/dist/modules/agents/integrations/integration-helpers.js.map +1 -0
  195. package/dist/modules/agents/integrations/integration-message-context.service.d.ts +13 -0
  196. package/dist/modules/agents/integrations/integration-message-context.service.js +129 -0
  197. package/dist/modules/agents/integrations/integration-message-context.service.js.map +1 -0
  198. package/dist/modules/agents/integrations/integration-tools.d.ts +205 -0
  199. package/dist/modules/agents/integrations/integration-tools.js +955 -0
  200. package/dist/modules/agents/integrations/integration-tools.js.map +1 -0
  201. package/dist/modules/agents/integrations/integrations-sync.d.ts +1 -1
  202. package/dist/modules/agents/integrations/integrations-sync.js +1 -29
  203. package/dist/modules/agents/integrations/integrations-sync.js.map +1 -1
  204. package/dist/modules/agents/integrations/n8n-memory.d.ts +2 -0
  205. package/dist/modules/agents/integrations/n8n-memory.js +18 -11
  206. package/dist/modules/agents/integrations/n8n-memory.js.map +1 -1
  207. package/dist/modules/agents/integrations/platforms/linear-integration.d.ts +13 -2
  208. package/dist/modules/agents/integrations/platforms/linear-integration.js +70 -15
  209. package/dist/modules/agents/integrations/platforms/linear-integration.js.map +1 -1
  210. package/dist/modules/agents/integrations/platforms/linear-operations.d.ts +18 -0
  211. package/dist/modules/agents/integrations/platforms/linear-operations.js +679 -0
  212. package/dist/modules/agents/integrations/platforms/linear-operations.js.map +1 -0
  213. package/dist/modules/agents/integrations/platforms/slack-integration.d.ts +11 -1
  214. package/dist/modules/agents/integrations/platforms/slack-integration.js +53 -1
  215. package/dist/modules/agents/integrations/platforms/slack-integration.js.map +1 -1
  216. package/dist/modules/agents/integrations/platforms/slack-operations.d.ts +17 -0
  217. package/dist/modules/agents/integrations/platforms/slack-operations.js +288 -0
  218. package/dist/modules/agents/integrations/platforms/slack-operations.js.map +1 -0
  219. package/dist/modules/agents/integrations/platforms/telegram-integration.d.ts +9 -2
  220. package/dist/modules/agents/integrations/platforms/telegram-integration.js +17 -0
  221. package/dist/modules/agents/integrations/platforms/telegram-integration.js.map +1 -1
  222. package/dist/modules/agents/integrations/slack-app-setup.service.js +7 -1
  223. package/dist/modules/agents/integrations/slack-app-setup.service.js.map +1 -1
  224. package/dist/modules/agents/json-config/from-json-config.d.ts +4 -2
  225. package/dist/modules/agents/json-config/from-json-config.js +88 -11
  226. package/dist/modules/agents/json-config/from-json-config.js.map +1 -1
  227. package/dist/modules/agents/json-config/mcp-client-factory.d.ts +16 -0
  228. package/dist/modules/agents/json-config/mcp-client-factory.js +155 -0
  229. package/dist/modules/agents/json-config/mcp-client-factory.js.map +1 -0
  230. package/dist/modules/agents/json-config/native-web-search-provider-tools.d.ts +8 -0
  231. package/dist/modules/agents/json-config/native-web-search-provider-tools.js +59 -0
  232. package/dist/modules/agents/json-config/native-web-search-provider-tools.js.map +1 -0
  233. package/dist/modules/agents/json-config/schema-text-serializer.js +12 -2
  234. package/dist/modules/agents/json-config/schema-text-serializer.js.map +1 -1
  235. package/dist/modules/agents/repositories/agent-execution-thread.repository.d.ts +1 -1
  236. package/dist/modules/agents/repositories/agent-execution-thread.repository.js +5 -3
  237. package/dist/modules/agents/repositories/agent-execution-thread.repository.js.map +1 -1
  238. package/dist/modules/agents/repositories/agent-file.repository.d.ts +7 -0
  239. package/dist/modules/agents/repositories/agent-file.repository.js +35 -0
  240. package/dist/modules/agents/repositories/agent-file.repository.js.map +1 -0
  241. package/dist/modules/agents/repositories/agent-history.repository.d.ts +2 -0
  242. package/dist/modules/agents/repositories/agent-history.repository.js +18 -0
  243. package/dist/modules/agents/repositories/agent-history.repository.js.map +1 -1
  244. package/dist/modules/agents/repositories/agent-task-run-lock.repository.d.ts +12 -0
  245. package/dist/modules/agents/repositories/agent-task-run-lock.repository.js +72 -0
  246. package/dist/modules/agents/repositories/agent-task-run-lock.repository.js.map +1 -0
  247. package/dist/modules/agents/repositories/agent-task-snapshot.repository.d.ts +11 -0
  248. package/dist/modules/agents/repositories/agent-task-snapshot.repository.js +45 -0
  249. package/dist/modules/agents/repositories/agent-task-snapshot.repository.js.map +1 -0
  250. package/dist/modules/agents/repositories/agent-task.repository.d.ts +7 -0
  251. package/dist/modules/agents/repositories/agent-task.repository.js +32 -0
  252. package/dist/modules/agents/repositories/agent-task.repository.js.map +1 -0
  253. package/dist/modules/agents/repositories/agent.repository.js +1 -2
  254. package/dist/modules/agents/repositories/agent.repository.js.map +1 -1
  255. package/dist/modules/agents/tools/knowledge/csv-helpers.d.ts +73 -0
  256. package/dist/modules/agents/tools/knowledge/csv-helpers.js +341 -0
  257. package/dist/modules/agents/tools/knowledge/csv-helpers.js.map +1 -0
  258. package/dist/modules/agents/tools/knowledge/csv.operation.d.ts +61 -0
  259. package/dist/modules/agents/tools/knowledge/csv.operation.js +207 -0
  260. package/dist/modules/agents/tools/knowledge/csv.operation.js.map +1 -0
  261. package/dist/modules/agents/tools/knowledge/file-references.d.ts +16 -0
  262. package/dist/modules/agents/tools/knowledge/file-references.js +35 -0
  263. package/dist/modules/agents/tools/knowledge/file-references.js.map +1 -0
  264. package/dist/modules/agents/tools/knowledge/read.operation.d.ts +8 -0
  265. package/dist/modules/agents/tools/knowledge/read.operation.js +38 -0
  266. package/dist/modules/agents/tools/knowledge/read.operation.js.map +1 -0
  267. package/dist/modules/agents/tools/knowledge/schemas.d.ts +1505 -0
  268. package/dist/modules/agents/tools/knowledge/schemas.js +441 -0
  269. package/dist/modules/agents/tools/knowledge/schemas.js.map +1 -0
  270. package/dist/modules/agents/tools/knowledge/search.operation.d.ts +9 -0
  271. package/dist/modules/agents/tools/knowledge/search.operation.js +332 -0
  272. package/dist/modules/agents/tools/knowledge/search.operation.js.map +1 -0
  273. package/dist/modules/agents/tools/knowledge/tool.d.ts +8 -0
  274. package/dist/modules/agents/tools/knowledge/tool.js +121 -0
  275. package/dist/modules/agents/tools/knowledge/tool.js.map +1 -0
  276. package/dist/modules/agents/utils/agent-memory-scope.d.ts +1 -1
  277. package/dist/modules/agents/utils/agent-memory-scope.js +4 -4
  278. package/dist/modules/agents/utils/agent-memory-scope.js.map +1 -1
  279. package/dist/modules/agents/utils/agent-resource-id.d.ts +1 -1
  280. package/dist/modules/chat-hub/chat-hub.module.d.ts +2 -2
  281. package/dist/modules/chat-hub/chat-hub.settings.controller.d.ts +4 -4
  282. package/dist/modules/chat-hub/chat-hub.types.d.ts +5 -5
  283. package/dist/modules/chat-hub/dto/chat-models-request.dto.d.ts +1 -1
  284. package/dist/modules/dynamic-credentials.ee/constants.d.ts +1 -1
  285. package/dist/modules/dynamic-credentials.ee/constants.js +2 -1
  286. package/dist/modules/dynamic-credentials.ee/constants.js.map +1 -1
  287. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.d.ts +9 -2
  288. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js +45 -14
  289. package/dist/modules/dynamic-credentials.ee/dynamic-credentials.controller.js.map +1 -1
  290. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.d.ts +4 -0
  291. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js +16 -0
  292. package/dist/modules/dynamic-credentials.ee/services/credential-connection-status.service.js.map +1 -1
  293. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js +6 -2
  294. package/dist/modules/dynamic-credentials.ee/services/dynamic-credential.service.js.map +1 -1
  295. package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.d.ts +1 -0
  296. package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js +21 -2
  297. package/dist/modules/instance-ai/eval/eval-mocked-credentials-helper.js.map +1 -1
  298. package/dist/modules/instance-ai/eval/execution.service.d.ts +4 -1
  299. package/dist/modules/instance-ai/eval/execution.service.js +118 -24
  300. package/dist/modules/instance-ai/eval/execution.service.js.map +1 -1
  301. package/dist/modules/instance-ai/eval/llm-wire-server.d.ts +8 -3
  302. package/dist/modules/instance-ai/eval/llm-wire-server.js +147 -50
  303. package/dist/modules/instance-ai/eval/llm-wire-server.js.map +1 -1
  304. package/dist/modules/instance-ai/eval/mock-handler.js +45 -8
  305. package/dist/modules/instance-ai/eval/mock-handler.js.map +1 -1
  306. package/dist/modules/instance-ai/eval/mock-quirks.d.ts +4 -2
  307. package/dist/modules/instance-ai/eval/mock-quirks.js +83 -4
  308. package/dist/modules/instance-ai/eval/mock-quirks.js.map +1 -1
  309. package/dist/modules/instance-ai/eval/openai-envelope.d.ts +8 -0
  310. package/dist/modules/instance-ai/eval/openai-envelope.js +121 -8
  311. package/dist/modules/instance-ai/eval/openai-envelope.js.map +1 -1
  312. package/dist/modules/instance-ai/eval/openai-responses-envelope.d.ts +11 -0
  313. package/dist/modules/instance-ai/eval/openai-responses-envelope.js +238 -0
  314. package/dist/modules/instance-ai/eval/openai-responses-envelope.js.map +1 -0
  315. package/dist/modules/instance-ai/eval/request-binary-redactor.d.ts +1 -0
  316. package/dist/modules/instance-ai/eval/request-binary-redactor.js +74 -0
  317. package/dist/modules/instance-ai/eval/request-binary-redactor.js.map +1 -0
  318. package/dist/modules/instance-ai/eval/workflow-analysis.d.ts +19 -1
  319. package/dist/modules/instance-ai/eval/workflow-analysis.js +159 -76
  320. package/dist/modules/instance-ai/eval/workflow-analysis.js.map +1 -1
  321. package/dist/modules/instance-ai/extract-resolved-node-parameters.d.ts +7 -0
  322. package/dist/modules/instance-ai/extract-resolved-node-parameters.js +221 -0
  323. package/dist/modules/instance-ai/extract-resolved-node-parameters.js.map +1 -0
  324. package/dist/modules/instance-ai/instance-ai-memory.service.d.ts +7 -1
  325. package/dist/modules/instance-ai/instance-ai-memory.service.js +80 -3
  326. package/dist/modules/instance-ai/instance-ai-memory.service.js.map +1 -1
  327. package/dist/modules/instance-ai/instance-ai-settings.service.js +1 -16
  328. package/dist/modules/instance-ai/instance-ai-settings.service.js.map +1 -1
  329. package/dist/modules/instance-ai/instance-ai.adapter.service.d.ts +1 -1
  330. package/dist/modules/instance-ai/instance-ai.adapter.service.js +67 -7
  331. package/dist/modules/instance-ai/instance-ai.adapter.service.js.map +1 -1
  332. package/dist/modules/instance-ai/instance-ai.module.d.ts +1 -1
  333. package/dist/modules/instance-ai/instance-ai.service.d.ts +24 -1
  334. package/dist/modules/instance-ai/instance-ai.service.js +400 -26
  335. package/dist/modules/instance-ai/instance-ai.service.js.map +1 -1
  336. package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.d.ts +1 -0
  337. package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.js +1 -0
  338. package/dist/modules/instance-ai/liveness/instance-ai-liveness.service.js.map +1 -1
  339. package/dist/modules/instance-ai/message-parser.d.ts +2 -0
  340. package/dist/modules/instance-ai/message-parser.js +165 -36
  341. package/dist/modules/instance-ai/message-parser.js.map +1 -1
  342. package/dist/modules/instance-ai/repositories/instance-ai-checkpoint.repository.d.ts +2 -0
  343. package/dist/modules/instance-ai/repositories/instance-ai-checkpoint.repository.js +13 -0
  344. package/dist/modules/instance-ai/repositories/instance-ai-checkpoint.repository.js.map +1 -1
  345. package/dist/modules/instance-ai/repositories/instance-ai-pending-confirmation.repository.d.ts +12 -0
  346. package/dist/modules/instance-ai/repositories/instance-ai-pending-confirmation.repository.js +80 -0
  347. package/dist/modules/instance-ai/repositories/instance-ai-pending-confirmation.repository.js.map +1 -0
  348. package/dist/modules/instance-ai/storage/db-snapshot-storage.d.ts +1 -0
  349. package/dist/modules/instance-ai/storage/db-snapshot-storage.js +23 -0
  350. package/dist/modules/instance-ai/storage/db-snapshot-storage.js.map +1 -1
  351. package/dist/modules/instance-ai/storage/typeorm-agent-checkpoint-store.d.ts +10 -4
  352. package/dist/modules/instance-ai/storage/typeorm-agent-checkpoint-store.js +49 -37
  353. package/dist/modules/instance-ai/storage/typeorm-agent-checkpoint-store.js.map +1 -1
  354. package/dist/modules/instance-ai/web-research/index.d.ts +0 -2
  355. package/dist/modules/instance-ai/web-research/index.js +1 -5
  356. package/dist/modules/instance-ai/web-research/index.js.map +1 -1
  357. package/dist/modules/ldap.ee/helpers.ee.js +6 -2
  358. package/dist/modules/ldap.ee/helpers.ee.js.map +1 -1
  359. package/dist/modules/mcp/mcp.controller.js +13 -6
  360. package/dist/modules/mcp/mcp.controller.js.map +1 -1
  361. package/dist/modules/mcp/mcp.service.d.ts +10 -2
  362. package/dist/modules/mcp/mcp.service.js +39 -6
  363. package/dist/modules/mcp/mcp.service.js.map +1 -1
  364. package/dist/modules/mcp/mcp.settings.controller.d.ts +2 -0
  365. package/dist/modules/mcp/mcp.settings.service.d.ts +2 -0
  366. package/dist/modules/mcp/mcp.settings.service.js +6 -5
  367. package/dist/modules/mcp/mcp.settings.service.js.map +1 -1
  368. package/dist/modules/mcp/mcp.types.d.ts +6 -0
  369. package/dist/modules/mcp/mcp.types.js +9 -0
  370. package/dist/modules/mcp/mcp.types.js.map +1 -1
  371. package/dist/modules/mcp/tools/execute-workflow.tool.d.ts +6 -6
  372. package/dist/modules/mcp/tools/search-workflows.tool.d.ts +2 -1
  373. package/dist/modules/mcp/tools/search-workflows.tool.js +12 -4
  374. package/dist/modules/mcp/tools/search-workflows.tool.js.map +1 -1
  375. package/dist/modules/mcp/tools/workflow-builder/constants.d.ts +1 -1
  376. package/dist/modules/mcp/tools/workflow-builder/constants.js +2 -1
  377. package/dist/modules/mcp/tools/workflow-builder/constants.js.map +1 -1
  378. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js +6 -4
  379. package/dist/modules/mcp/tools/workflow-builder/mcp-instructions.js.map +1 -1
  380. package/dist/modules/mcp/tools/workflow-builder/update-workflow.tool.d.ts +67 -6
  381. package/dist/modules/mcp/tools/workflow-builder/validate-node.tool.d.ts +30 -0
  382. package/dist/modules/mcp/tools/workflow-builder/validate-node.tool.js +161 -0
  383. package/dist/modules/mcp/tools/workflow-builder/validate-node.tool.js.map +1 -0
  384. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.d.ts +67 -6
  385. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js +51 -0
  386. package/dist/modules/mcp/tools/workflow-builder/workflow-operations.js.map +1 -1
  387. package/dist/modules/mcp-registry/registry/mcp-registry.types.js.map +1 -1
  388. package/dist/modules/mcp-registry/synthesize-type-def.d.ts +2 -0
  389. package/dist/modules/mcp-registry/synthesize-type-def.js +35 -0
  390. package/dist/modules/mcp-registry/synthesize-type-def.js.map +1 -0
  391. package/dist/modules/n8n-packages/engine/import-pipeline.d.ts +24 -0
  392. package/dist/modules/n8n-packages/engine/import-pipeline.js +206 -0
  393. package/dist/modules/n8n-packages/engine/import-pipeline.js.map +1 -0
  394. package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.d.ts +6 -0
  395. package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.js +33 -0
  396. package/dist/modules/n8n-packages/entities/credential/credential-requirements.extractor.js.map +1 -0
  397. package/dist/modules/n8n-packages/entities/credential/credential.exporter.d.ts +23 -0
  398. package/dist/modules/n8n-packages/entities/credential/credential.exporter.js +68 -0
  399. package/dist/modules/n8n-packages/entities/credential/credential.exporter.js.map +1 -0
  400. package/dist/modules/n8n-packages/entities/credential/credential.serializer.d.ts +5 -0
  401. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js +25 -0
  402. package/dist/modules/n8n-packages/entities/credential/credential.serializer.js.map +1 -0
  403. package/dist/modules/n8n-packages/entities/credential/credential.types.d.ts +6 -0
  404. package/dist/modules/n8n-packages/entities/credential/credential.types.js +3 -0
  405. package/dist/modules/n8n-packages/entities/credential/credential.types.js.map +1 -0
  406. package/dist/modules/n8n-packages/entities/requirements-extractor.d.ts +4 -0
  407. package/dist/modules/n8n-packages/entities/requirements-extractor.js +3 -0
  408. package/dist/modules/n8n-packages/entities/requirements-extractor.js.map +1 -0
  409. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.d.ts +12 -3
  410. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js +11 -20
  411. package/dist/modules/n8n-packages/entities/workflow/workflow.exporter.js.map +1 -1
  412. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.d.ts +3 -0
  413. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js +10 -0
  414. package/dist/modules/n8n-packages/entities/workflow/workflow.serializer.js.map +1 -1
  415. package/dist/modules/n8n-packages/io/package-reader.d.ts +6 -0
  416. package/dist/modules/n8n-packages/io/package-reader.js +3 -0
  417. package/dist/modules/n8n-packages/io/package-reader.js.map +1 -0
  418. package/dist/modules/n8n-packages/io/slug.utils.d.ts +1 -1
  419. package/dist/modules/n8n-packages/io/slug.utils.js +3 -3
  420. package/dist/modules/n8n-packages/io/slug.utils.js.map +1 -1
  421. package/dist/modules/n8n-packages/io/tar/tar-package-reader.d.ts +13 -0
  422. package/dist/modules/n8n-packages/io/tar/tar-package-reader.js +84 -0
  423. package/dist/modules/n8n-packages/io/tar/tar-package-reader.js.map +1 -0
  424. package/dist/modules/n8n-packages/io/unique-filename-allocator.d.ts +7 -0
  425. package/dist/modules/n8n-packages/io/unique-filename-allocator.js +27 -0
  426. package/dist/modules/n8n-packages/io/unique-filename-allocator.js.map +1 -0
  427. package/dist/modules/n8n-packages/n8n-packages.service.d.ts +7 -2
  428. package/dist/modules/n8n-packages/n8n-packages.service.js +21 -3
  429. package/dist/modules/n8n-packages/n8n-packages.service.js.map +1 -1
  430. package/dist/modules/n8n-packages/n8n-packages.types.d.ts +22 -0
  431. package/dist/modules/n8n-packages/spec/manifest.schema.d.ts +121 -4
  432. package/dist/modules/n8n-packages/spec/manifest.schema.js +22 -3
  433. package/dist/modules/n8n-packages/spec/manifest.schema.js.map +1 -1
  434. package/dist/modules/n8n-packages/spec/requirements.schema.d.ts +51 -0
  435. package/dist/modules/n8n-packages/spec/requirements.schema.js +14 -0
  436. package/dist/modules/n8n-packages/spec/requirements.schema.js.map +1 -0
  437. package/dist/modules/n8n-packages/spec/serialized/credential.schema.d.ts +15 -0
  438. package/dist/modules/n8n-packages/spec/serialized/credential.schema.js +12 -0
  439. package/dist/modules/n8n-packages/spec/serialized/credential.schema.js.map +1 -0
  440. package/dist/modules/n8n-packages/spec/serialized/workflow.schema.d.ts +4 -4
  441. package/dist/modules/n8n-packages/utils/import-package-upload.d.ts +13 -0
  442. package/dist/modules/n8n-packages/utils/import-package-upload.js +59 -0
  443. package/dist/modules/n8n-packages/utils/import-package-upload.js.map +1 -0
  444. package/dist/modules/otel/execution-level-tracer.js +15 -6
  445. package/dist/modules/otel/execution-level-tracer.js.map +1 -1
  446. package/dist/modules/otel/execution-level-tracer.types.d.ts +3 -0
  447. package/dist/modules/otel/execution-level-tracer.types.js.map +1 -1
  448. package/dist/modules/otel/otel-lifecycle-handler.d.ts +4 -2
  449. package/dist/modules/otel/otel-lifecycle-handler.js +69 -4
  450. package/dist/modules/otel/otel-lifecycle-handler.js.map +1 -1
  451. package/dist/modules/otel/otel.config.d.ts +1 -0
  452. package/dist/modules/otel/otel.config.js +5 -0
  453. package/dist/modules/otel/otel.config.js.map +1 -1
  454. package/dist/modules/otel/otel.constants.d.ts +2 -0
  455. package/dist/modules/otel/otel.constants.js +2 -0
  456. package/dist/modules/otel/otel.constants.js.map +1 -1
  457. package/dist/modules/redaction/instance-redaction-enforcement.service.d.ts +4 -0
  458. package/dist/modules/redaction/instance-redaction-enforcement.service.js +8 -0
  459. package/dist/modules/redaction/instance-redaction-enforcement.service.js.map +1 -1
  460. package/dist/modules/redaction/redaction-context-hook.d.ts +9 -0
  461. package/dist/modules/redaction/redaction-context-hook.js +57 -0
  462. package/dist/modules/redaction/redaction-context-hook.js.map +1 -0
  463. package/dist/modules/redaction/redaction.module.js +1 -0
  464. package/dist/modules/redaction/redaction.module.js.map +1 -1
  465. package/dist/modules/source-control.ee/constants.d.ts +1 -0
  466. package/dist/modules/source-control.ee/constants.js +2 -1
  467. package/dist/modules/source-control.ee/constants.js.map +1 -1
  468. package/dist/modules/source-control.ee/source-control-status.service.ee.js +5 -0
  469. package/dist/modules/source-control.ee/source-control-status.service.ee.js.map +1 -1
  470. package/dist/modules/source-control.ee/source-control.controller.ee.d.ts +4 -2
  471. package/dist/modules/source-control.ee/source-control.controller.ee.js +32 -5
  472. package/dist/modules/source-control.ee/source-control.controller.ee.js.map +1 -1
  473. package/dist/modules/source-control.ee/source-control.service.ee.js +2 -0
  474. package/dist/modules/source-control.ee/source-control.service.ee.js.map +1 -1
  475. package/dist/modules/workflow-builder/workflow-builder-session.repository.js +2 -1
  476. package/dist/modules/workflow-builder/workflow-builder-session.repository.js.map +1 -1
  477. package/dist/node-catalog/node-catalog.service.d.ts +2 -0
  478. package/dist/node-catalog/node-catalog.service.js +38 -2
  479. package/dist/node-catalog/node-catalog.service.js.map +1 -1
  480. package/dist/oauth/oauth-browser-binding.service.d.ts +18 -0
  481. package/dist/oauth/oauth-browser-binding.service.js +68 -0
  482. package/dist/oauth/oauth-browser-binding.service.js.map +1 -0
  483. package/dist/oauth/oauth.service.d.ts +10 -4
  484. package/dist/oauth/oauth.service.js +87 -4
  485. package/dist/oauth/oauth.service.js.map +1 -1
  486. package/dist/oauth/types.d.ts +1 -0
  487. package/dist/oauth/types.js.map +1 -1
  488. package/dist/public-api/index.js +5 -1
  489. package/dist/public-api/index.js.map +1 -1
  490. package/dist/public-api/types.d.ts +6 -0
  491. package/dist/public-api/v1/handlers/credentials/credentials.service.js +1 -0
  492. package/dist/public-api/v1/handlers/credentials/credentials.service.js.map +1 -1
  493. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.d.ts +5 -0
  494. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js +22 -0
  495. package/dist/public-api/v1/handlers/n8n-packages/n8n-packages.handler.js.map +1 -1
  496. package/dist/public-api/v1/openapi.yml +207 -59
  497. package/dist/requests.d.ts +4 -0
  498. package/dist/scaling/constants.d.ts +2 -2
  499. package/dist/scaling/pubsub/pubsub.event-map.d.ts +5 -2
  500. package/dist/scaling/pubsub/pubsub.types.d.ts +2 -1
  501. package/dist/services/ai-workflow-builder.service.d.ts +6 -3
  502. package/dist/services/ai-workflow-builder.service.js +13 -5
  503. package/dist/services/ai-workflow-builder.service.js.map +1 -1
  504. package/dist/services/api-key-auth.strategy.d.ts +4 -1
  505. package/dist/services/api-key-auth.strategy.js +18 -2
  506. package/dist/services/api-key-auth.strategy.js.map +1 -1
  507. package/dist/services/ownership.service.d.ts +1 -0
  508. package/dist/services/ownership.service.js +7 -0
  509. package/dist/services/ownership.service.js.map +1 -1
  510. package/dist/services/project.service.ee.d.ts +6 -2
  511. package/dist/services/project.service.ee.js +30 -8
  512. package/dist/services/project.service.ee.js.map +1 -1
  513. package/dist/services/public-api-key.service.d.ts +21 -14
  514. package/dist/services/public-api-key.service.js +14 -9
  515. package/dist/services/public-api-key.service.js.map +1 -1
  516. package/dist/telemetry/index.d.ts +6 -9
  517. package/dist/telemetry/index.js +23 -9
  518. package/dist/telemetry/index.js.map +1 -1
  519. package/dist/webhooks/constants.js +5 -1
  520. package/dist/webhooks/constants.js.map +1 -1
  521. package/dist/webhooks/live-webhooks.d.ts +8 -1
  522. package/dist/webhooks/live-webhooks.js +37 -22
  523. package/dist/webhooks/live-webhooks.js.map +1 -1
  524. package/dist/webhooks/waiting-forms.js +8 -1
  525. package/dist/webhooks/waiting-forms.js.map +1 -1
  526. package/dist/webhooks/webhook-helpers.d.ts +1 -1
  527. package/dist/webhooks/webhook-helpers.js +20 -10
  528. package/dist/webhooks/webhook-helpers.js.map +1 -1
  529. package/dist/webhooks/webhook-request-handler.js +1 -1
  530. package/dist/webhooks/webhook-request-handler.js.map +1 -1
  531. package/dist/workflow-helpers.d.ts +6 -1
  532. package/dist/workflow-helpers.js +9 -1
  533. package/dist/workflow-helpers.js.map +1 -1
  534. package/dist/workflows/workflow-creation.service.d.ts +4 -1
  535. package/dist/workflows/workflow-creation.service.js +12 -3
  536. package/dist/workflows/workflow-creation.service.js.map +1 -1
  537. package/dist/workflows/workflow-execution.service.js +2 -0
  538. package/dist/workflows/workflow-execution.service.js.map +1 -1
  539. package/dist/workflows/workflow-finder.service.d.ts +1 -0
  540. package/dist/workflows/workflow-published-data.service.d.ts +11 -0
  541. package/dist/workflows/workflow-published-data.service.js +39 -0
  542. package/dist/workflows/workflow-published-data.service.js.map +1 -0
  543. package/dist/workflows/workflow-validation.service.d.ts +5 -1
  544. package/dist/workflows/workflow-validation.service.js +55 -2
  545. package/dist/workflows/workflow-validation.service.js.map +1 -1
  546. package/dist/workflows/workflow.service.js +4 -0
  547. package/dist/workflows/workflow.service.js.map +1 -1
  548. package/dist/workflows/workflows.controller.d.ts +8 -0
  549. package/package.json +45 -37
  550. package/templates/form-trigger-completion.handlebars +12 -1
  551. package/dist/modules/agents/integrations/agent-schedule.service.d.ts +0 -30
  552. package/dist/modules/agents/integrations/agent-schedule.service.js +0 -331
  553. package/dist/modules/agents/integrations/agent-schedule.service.js.map +0 -1
  554. package/dist/modules/instance-ai/web-research/brave-search.d.ts +0 -10
  555. package/dist/modules/instance-ai/web-research/brave-search.js +0 -44
  556. package/dist/modules/instance-ai/web-research/brave-search.js.map +0 -1
  557. package/dist/modules/instance-ai/web-research/searxng-search.d.ts +0 -6
  558. package/dist/modules/instance-ai/web-research/searxng-search.js +0 -39
  559. package/dist/modules/instance-ai/web-research/searxng-search.js.map +0 -1
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.CSV_MAX_AGGREGATE_GROUPS = exports.CSV_DISTINCT_TRACK_LIMIT = exports.CSV_PROFILE_DISTINCT_LIMIT = exports.CSV_SAMPLE_VALUE_LIMIT = void 0;
40
+ exports.resolveCsvFile = resolveCsvFile;
41
+ exports.streamCsvRecords = streamCsvRecords;
42
+ exports.validateCsvColumns = validateCsvColumns;
43
+ exports.matchesFilters = matchesFilters;
44
+ exports.normaliseCsvValue = normaliseCsvValue;
45
+ exports.toCsvRecordValues = toCsvRecordValues;
46
+ exports.createCsvDistinctTracker = createCsvDistinctTracker;
47
+ exports.buildCsvAmbiguity = buildCsvAmbiguity;
48
+ exports.getSuggestedDisambiguatingColumns = getSuggestedDisambiguatingColumns;
49
+ exports.createCsvColumnProfileState = createCsvColumnProfileState;
50
+ exports.getLikelyDisambiguatingColumns = getLikelyDisambiguatingColumns;
51
+ exports.createCsvAggregateGroup = createCsvAggregateGroup;
52
+ exports.formatCsvAggregateGroup = formatCsvAggregateGroup;
53
+ exports.sortCsvAggregateResults = sortCsvAggregateResults;
54
+ const node_fs_1 = require("node:fs");
55
+ const node_path_1 = __importDefault(require("node:path"));
56
+ const fastest_levenshtein_1 = require("fastest-levenshtein");
57
+ const file_references_1 = require("./file-references");
58
+ exports.CSV_SAMPLE_VALUE_LIMIT = 5;
59
+ exports.CSV_PROFILE_DISTINCT_LIMIT = 100;
60
+ exports.CSV_DISTINCT_TRACK_LIMIT = 10_000;
61
+ exports.CSV_MAX_AGGREGATE_GROUPS = 50_000;
62
+ const CSV_OPERATION_TIMEOUT_MS = 15_000;
63
+ function isCsvFile(file) {
64
+ return file.mimeType === 'text/csv' || file.relativePath.toLowerCase().endsWith('.csv');
65
+ }
66
+ function resolveCsvFile(files, reference) {
67
+ const resolvedFile = (0, file_references_1.resolveFileReference)(files, reference);
68
+ if (resolvedFile.status !== 'found') {
69
+ throw new Error(resolvedFile.error);
70
+ }
71
+ const { file } = resolvedFile;
72
+ if (!isCsvFile(file)) {
73
+ throw new Error(`File "${file.fileName}" is not queryable as CSV.`);
74
+ }
75
+ return file;
76
+ }
77
+ async function streamCsvRecords(workspaceRoot, file, handlers) {
78
+ const filePath = node_path_1.default.join(workspaceRoot, file.relativePath);
79
+ const { parse } = await Promise.resolve().then(() => __importStar(require('csv-parse')));
80
+ const readStream = (0, node_fs_1.createReadStream)(filePath);
81
+ const parser = readStream.pipe(parse({
82
+ columns: (parsedHeaders) => {
83
+ handlers.onHeaders?.(parsedHeaders);
84
+ return parsedHeaders;
85
+ },
86
+ skip_empty_lines: true,
87
+ bom: true,
88
+ info: true,
89
+ relax_column_count: true,
90
+ }));
91
+ const timeout = setTimeout(() => {
92
+ parser.destroy(new Error('CSV operation exceeded the time limit'));
93
+ readStream.destroy();
94
+ }, CSV_OPERATION_TIMEOUT_MS);
95
+ try {
96
+ for await (const { record, info } of parser) {
97
+ handlers.onRecord({ record, fileLineNumber: info.lines });
98
+ }
99
+ }
100
+ finally {
101
+ clearTimeout(timeout);
102
+ readStream.destroy();
103
+ parser.destroy();
104
+ }
105
+ }
106
+ function validateCsvColumns(headers, fileName, columns) {
107
+ for (const column of columns) {
108
+ if (!headers.includes(column)) {
109
+ throw new Error(formatMissingCsvColumnError(fileName, column, headers));
110
+ }
111
+ }
112
+ }
113
+ function matchesFilters(record, filters) {
114
+ return filters.every((filter) => {
115
+ const value = normaliseCsvValue(record[filter.column]);
116
+ if (filter.op === 'eq')
117
+ return value === filter.value;
118
+ if (filter.op === 'contains')
119
+ return value.includes(filter.value);
120
+ return filter.value.includes(value);
121
+ });
122
+ }
123
+ function normaliseCsvValue(value) {
124
+ if (value === null || value === undefined)
125
+ return '';
126
+ return String(value);
127
+ }
128
+ function toCsvRecordValues(record, columns) {
129
+ return Object.fromEntries(columns.map((column) => [column, normaliseCsvValue(record[column])]));
130
+ }
131
+ function formatMissingCsvColumnError(fileName, requestedColumn, headers) {
132
+ const suggestions = getClosestColumnMatches(requestedColumn, headers);
133
+ const didYouMean = suggestions.length > 0
134
+ ? ` Did you mean ${suggestions.map((value) => `"${value}"`).join(', ')}?`
135
+ : '';
136
+ return `CSV column "${requestedColumn}" not found in "${fileName}". Available columns: ${headers.join(', ')}.${didYouMean} Run csv_profile if you are uncertain about the schema.`;
137
+ }
138
+ function getClosestColumnMatches(requestedColumn, headers) {
139
+ const requested = requestedColumn.toLowerCase();
140
+ return headers
141
+ .map((header) => ({ header, distance: (0, fastest_levenshtein_1.distance)(requested, header.toLowerCase()) }))
142
+ .filter(({ header, distance: editDistance }) => {
143
+ return header.toLowerCase().includes(requested) || editDistance <= 3;
144
+ })
145
+ .sort((left, right) => left.distance - right.distance || left.header.localeCompare(right.header))
146
+ .slice(0, 3)
147
+ .map(({ header }) => header);
148
+ }
149
+ function createCsvDistinctTracker(columns, limit) {
150
+ const values = new Map(columns.map((column) => [column, new Set()]));
151
+ return {
152
+ add(record) {
153
+ for (const [column, distinctValues] of values) {
154
+ if (distinctValues.size < limit)
155
+ distinctValues.add(normaliseCsvValue(record[column]));
156
+ }
157
+ },
158
+ toOutput() {
159
+ return Object.fromEntries(Array.from(values.entries()).flatMap(([column, distinctValues]) => distinctValues.size > 0 ? [[column, Array.from(distinctValues)]] : []));
160
+ },
161
+ columns: Array.from(values.keys()),
162
+ };
163
+ }
164
+ function buildCsvAmbiguity(matchedRows, limit, tracker) {
165
+ return {
166
+ matchedRows,
167
+ message: matchedRows > limit
168
+ ? `Matched ${matchedRows} rows and returned only the first ${limit}. This is not a unique result. Refine filters before answering.`
169
+ : `Matched ${matchedRows} rows. This is not a unique result. Refine filters before answering.`,
170
+ suggestedColumns: tracker?.columns ?? [],
171
+ sampleDistinctValues: tracker?.toOutput(),
172
+ };
173
+ }
174
+ function getSuggestedDisambiguatingColumns(headers, filters, selectedColumns) {
175
+ const alreadyUsed = new Set([...filters.map((filter) => filter.column), ...selectedColumns]);
176
+ return headers
177
+ .filter((header) => !alreadyUsed.has(header))
178
+ .sort((left, right) => preferenceScore(left) - preferenceScore(right))
179
+ .slice(0, 5);
180
+ }
181
+ const PREFERRED_DISAMBIGUATING_COLUMNS = [
182
+ 'Year',
183
+ 'Date',
184
+ 'Month',
185
+ 'Country',
186
+ 'Country Name',
187
+ 'Source',
188
+ 'Category',
189
+ 'Name',
190
+ ];
191
+ function preferenceScore(column) {
192
+ const exactIndex = PREFERRED_DISAMBIGUATING_COLUMNS.findIndex((candidate) => candidate.toLowerCase() === column.toLowerCase());
193
+ if (exactIndex !== -1)
194
+ return exactIndex;
195
+ const partialIndex = PREFERRED_DISAMBIGUATING_COLUMNS.findIndex((candidate) => column.toLowerCase().includes(candidate.toLowerCase()));
196
+ return partialIndex === -1 ? PREFERRED_DISAMBIGUATING_COLUMNS.length + 1 : partialIndex + 0.5;
197
+ }
198
+ function createCsvColumnProfileState(distinctLimit) {
199
+ const distinctValues = new Set();
200
+ const sampleValues = [];
201
+ let distinctCountTruncated = false;
202
+ let emptyCount = 0;
203
+ let nonEmptyCount = 0;
204
+ let allInteger = true;
205
+ let allNumber = true;
206
+ let allBoolean = true;
207
+ let allDate = true;
208
+ return {
209
+ add(value) {
210
+ if (value === '') {
211
+ emptyCount++;
212
+ return;
213
+ }
214
+ nonEmptyCount++;
215
+ if (distinctValues.size < distinctLimit) {
216
+ distinctValues.add(value);
217
+ }
218
+ else if (!distinctValues.has(value)) {
219
+ distinctCountTruncated = true;
220
+ }
221
+ if (!sampleValues.includes(value) && sampleValues.length < exports.CSV_SAMPLE_VALUE_LIMIT) {
222
+ sampleValues.push(value);
223
+ }
224
+ allInteger &&= /^-?\d+$/.test(value);
225
+ allNumber &&= Number.isFinite(Number(value));
226
+ allBoolean &&= /^(true|false|yes|no|0|1)$/i.test(value);
227
+ allDate &&= isLikelyDate(value);
228
+ },
229
+ toOutput(name) {
230
+ return {
231
+ name,
232
+ inferredType: inferCsvColumnType({
233
+ nonEmptyCount,
234
+ allInteger,
235
+ allNumber,
236
+ allBoolean,
237
+ allDate,
238
+ }),
239
+ emptyCount,
240
+ distinctCount: distinctValues.size,
241
+ distinctCountTruncated,
242
+ sampleValues,
243
+ };
244
+ },
245
+ };
246
+ }
247
+ function inferCsvColumnType({ nonEmptyCount, allInteger, allNumber, allBoolean, allDate, }) {
248
+ if (nonEmptyCount === 0)
249
+ return 'empty';
250
+ if (allBoolean)
251
+ return 'boolean';
252
+ if (allInteger)
253
+ return 'integer';
254
+ if (allNumber)
255
+ return 'number';
256
+ if (allDate)
257
+ return 'date';
258
+ return 'string';
259
+ }
260
+ function isLikelyDate(value) {
261
+ if (!/^\d{4}[-/]\d{1,2}([-/]\d{1,2})?$/.test(value))
262
+ return false;
263
+ return Number.isFinite(Date.parse(value));
264
+ }
265
+ function getLikelyDisambiguatingColumns(columnProfiles, rowCount) {
266
+ return columnProfiles
267
+ .filter((column) => {
268
+ const distinctCount = column.distinctCount ?? 0;
269
+ return distinctCount > 1 && distinctCount < rowCount && !column.distinctCountTruncated;
270
+ })
271
+ .sort((left, right) => preferenceScore(left.name) - preferenceScore(right.name))
272
+ .slice(0, 5)
273
+ .map((column) => column.name);
274
+ }
275
+ function createCsvAggregateGroup(groupValues, metrics) {
276
+ return {
277
+ groupValues,
278
+ count: 0,
279
+ metrics: Object.fromEntries(metrics.map((metric) => [metric, createNumericAggregateState()])),
280
+ };
281
+ }
282
+ function createNumericAggregateState() {
283
+ return {
284
+ count: 0,
285
+ sum: 0,
286
+ min: undefined,
287
+ max: undefined,
288
+ skipped: 0,
289
+ add(value) {
290
+ const trimmedValue = value.trim();
291
+ const numericValue = Number(trimmedValue);
292
+ if (trimmedValue === '' || !Number.isFinite(numericValue)) {
293
+ this.skipped++;
294
+ return;
295
+ }
296
+ this.count++;
297
+ this.sum += numericValue;
298
+ this.min = this.min === undefined ? numericValue : Math.min(this.min, numericValue);
299
+ this.max = this.max === undefined ? numericValue : Math.max(this.max, numericValue);
300
+ },
301
+ };
302
+ }
303
+ function formatCsvAggregateGroup(group, functions, metrics) {
304
+ const output = { ...group.groupValues };
305
+ for (const fn of functions) {
306
+ if (fn === 'count')
307
+ output.count = group.count;
308
+ }
309
+ for (const metric of metrics) {
310
+ const state = group.metrics[metric];
311
+ for (const fn of functions) {
312
+ if (fn === 'min')
313
+ output[`min_${metric}`] = state.min ?? null;
314
+ if (fn === 'max')
315
+ output[`max_${metric}`] = state.max ?? null;
316
+ if (fn === 'sum')
317
+ output[`sum_${metric}`] = state.count > 0 ? state.sum : null;
318
+ if (fn === 'avg')
319
+ output[`avg_${metric}`] = state.count > 0 ? state.sum / state.count : null;
320
+ }
321
+ }
322
+ return output;
323
+ }
324
+ function sortCsvAggregateResults(results, orderBy) {
325
+ if (!orderBy)
326
+ return;
327
+ const direction = orderBy.direction === 'desc' ? -1 : 1;
328
+ results.sort((left, right) => compareCsvAggregateValues(left[orderBy.column], right[orderBy.column]) * direction);
329
+ }
330
+ function compareCsvAggregateValues(left, right) {
331
+ if (left === right)
332
+ return 0;
333
+ if (left === null || left === undefined)
334
+ return 1;
335
+ if (right === null || right === undefined)
336
+ return -1;
337
+ if (typeof left === 'number' && typeof right === 'number')
338
+ return left - right;
339
+ return String(left).localeCompare(String(right));
340
+ }
341
+ //# sourceMappingURL=csv-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv-helpers.js","sourceRoot":"","sources":["../../../../../src/modules/agents/tools/knowledge/csv-helpers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import type { CsvAggregateInput, CsvDistinctInput, CsvProfileInput, CsvQueryInput } from './schemas';
2
+ import type { WorkspaceFiles } from './file-references';
3
+ export declare function queryCsv(workspaceRoot: string, files: WorkspaceFiles, input: CsvQueryInput): Promise<{
4
+ fileName: string;
5
+ relativePath: string;
6
+ columns: string[];
7
+ rowNumbers: number[];
8
+ rows: string[][];
9
+ records: {
10
+ rowNumber: number;
11
+ fileLineNumber: number;
12
+ values: Record<string, string>;
13
+ }[];
14
+ rowCount: number;
15
+ truncated: boolean;
16
+ rowNumberBase: string;
17
+ ambiguity: {
18
+ matchedRows: number;
19
+ message: string;
20
+ suggestedColumns: string[];
21
+ sampleDistinctValues: {
22
+ [k: string]: string[];
23
+ } | undefined;
24
+ } | undefined;
25
+ }>;
26
+ export declare function profileCsv(workspaceRoot: string, files: WorkspaceFiles, input: CsvProfileInput): Promise<{
27
+ fileName: string;
28
+ relativePath: string;
29
+ columns: string[];
30
+ rowCount: number;
31
+ sampleRows: Record<string, string>[];
32
+ columnProfiles: {
33
+ name: string;
34
+ inferredType: "string" | "number" | "boolean" | "empty" | "date" | "integer";
35
+ emptyCount: number;
36
+ distinctCount: number;
37
+ distinctCountTruncated: boolean;
38
+ sampleValues: string[];
39
+ }[];
40
+ likelyKeyColumns: string[];
41
+ likelyDisambiguatingColumns: string[];
42
+ }>;
43
+ export declare function distinctCsv(workspaceRoot: string, files: WorkspaceFiles, input: CsvDistinctInput): Promise<{
44
+ fileName: string;
45
+ relativePath: string;
46
+ column: string;
47
+ values: string[];
48
+ distinctCount: number;
49
+ truncated: boolean;
50
+ }>;
51
+ export declare function aggregateCsv(workspaceRoot: string, files: WorkspaceFiles, input: CsvAggregateInput): Promise<{
52
+ fileName: string;
53
+ relativePath: string;
54
+ rowCount: number;
55
+ functions: ("max" | "min" | "count" | "sum" | "avg")[];
56
+ metrics: string[];
57
+ groupBy: string[] | undefined;
58
+ results: Record<string, string | number | null>[];
59
+ truncated: boolean;
60
+ skippedNonNumeric: Record<string, number>;
61
+ }>;
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryCsv = queryCsv;
4
+ exports.profileCsv = profileCsv;
5
+ exports.distinctCsv = distinctCsv;
6
+ exports.aggregateCsv = aggregateCsv;
7
+ const csv_helpers_1 = require("./csv-helpers");
8
+ async function queryCsv(workspaceRoot, files, input) {
9
+ const file = (0, csv_helpers_1.resolveCsvFile)(files, input.file);
10
+ const headers = [];
11
+ const limit = input.limit ?? 20;
12
+ const select = input.select;
13
+ const rows = [];
14
+ const rowNumbers = [];
15
+ const records = [];
16
+ let ambiguityTracker;
17
+ let matched = 0;
18
+ if (input.rowNumber === undefined && select === undefined) {
19
+ throw new Error('csv_query requires select unless rowNumber is provided.');
20
+ }
21
+ await (0, csv_helpers_1.streamCsvRecords)(workspaceRoot, file, {
22
+ onHeaders: (parsedHeaders) => {
23
+ headers.push(...parsedHeaders);
24
+ (0, csv_helpers_1.validateCsvColumns)(headers, file.fileName, [
25
+ ...(select ?? []),
26
+ ...(input.where ?? []).map((filter) => filter.column),
27
+ ]);
28
+ ambiguityTracker = (0, csv_helpers_1.createCsvDistinctTracker)((0, csv_helpers_1.getSuggestedDisambiguatingColumns)(headers, input.where ?? [], select ?? []), csv_helpers_1.CSV_SAMPLE_VALUE_LIMIT);
29
+ },
30
+ onRecord: ({ record, fileLineNumber }) => {
31
+ if (input.rowNumber !== undefined && fileLineNumber !== input.rowNumber)
32
+ return;
33
+ if (input.rowNumber === undefined && !(0, csv_helpers_1.matchesFilters)(record, input.where ?? []))
34
+ return;
35
+ matched++;
36
+ ambiguityTracker?.add(record);
37
+ const columns = select ?? headers;
38
+ if (rows.length < limit) {
39
+ const values = (0, csv_helpers_1.toCsvRecordValues)(record, columns);
40
+ rows.push(columns.map((column) => values[column]));
41
+ rowNumbers.push(fileLineNumber);
42
+ records.push({ rowNumber: fileLineNumber, fileLineNumber, values });
43
+ }
44
+ },
45
+ });
46
+ if (headers.length === 0)
47
+ (0, csv_helpers_1.validateCsvColumns)(headers, file.fileName, select ?? []);
48
+ const columns = select ?? headers;
49
+ const truncated = matched > rows.length;
50
+ return {
51
+ fileName: file.fileName,
52
+ relativePath: file.relativePath,
53
+ columns,
54
+ rowNumbers,
55
+ rows,
56
+ records,
57
+ rowCount: matched,
58
+ truncated,
59
+ rowNumberBase: 'rowNumber is the CSV file line number; line 1 is the header row.',
60
+ ambiguity: input.rowNumber === undefined && (matched > 1 || truncated)
61
+ ? (0, csv_helpers_1.buildCsvAmbiguity)(matched, input.limit ?? 20, ambiguityTracker)
62
+ : undefined,
63
+ };
64
+ }
65
+ async function profileCsv(workspaceRoot, files, input) {
66
+ const file = (0, csv_helpers_1.resolveCsvFile)(files, input.file);
67
+ const headers = [];
68
+ const sampleRows = [];
69
+ const rowCountByColumn = new Map();
70
+ let rowCount = 0;
71
+ const distinctLimit = input.distinctLimit ?? csv_helpers_1.CSV_PROFILE_DISTINCT_LIMIT;
72
+ await (0, csv_helpers_1.streamCsvRecords)(workspaceRoot, file, {
73
+ onHeaders: (parsedHeaders) => {
74
+ headers.push(...parsedHeaders);
75
+ for (const header of headers) {
76
+ rowCountByColumn.set(header, (0, csv_helpers_1.createCsvColumnProfileState)(distinctLimit));
77
+ }
78
+ },
79
+ onRecord: ({ record }) => {
80
+ rowCount++;
81
+ if (sampleRows.length < (input.sampleSize ?? 5)) {
82
+ sampleRows.push((0, csv_helpers_1.toCsvRecordValues)(record, headers));
83
+ }
84
+ for (const header of headers) {
85
+ rowCountByColumn.get(header)?.add((0, csv_helpers_1.normaliseCsvValue)(record[header]));
86
+ }
87
+ },
88
+ });
89
+ const columnProfiles = headers.map((header) => {
90
+ const profile = rowCountByColumn.get(header) ?? (0, csv_helpers_1.createCsvColumnProfileState)(distinctLimit);
91
+ return profile.toOutput(header);
92
+ });
93
+ return {
94
+ fileName: file.fileName,
95
+ relativePath: file.relativePath,
96
+ columns: headers,
97
+ rowCount,
98
+ sampleRows,
99
+ columnProfiles,
100
+ likelyKeyColumns: columnProfiles
101
+ .filter((column) => column.distinctCount === rowCount && rowCount > 0)
102
+ .map((column) => column.name),
103
+ likelyDisambiguatingColumns: (0, csv_helpers_1.getLikelyDisambiguatingColumns)(columnProfiles, rowCount),
104
+ };
105
+ }
106
+ async function distinctCsv(workspaceRoot, files, input) {
107
+ const file = (0, csv_helpers_1.resolveCsvFile)(files, input.file);
108
+ const values = new Set();
109
+ let distinctTruncated = false;
110
+ const outputValues = [];
111
+ await (0, csv_helpers_1.streamCsvRecords)(workspaceRoot, file, {
112
+ onHeaders: (headers) => {
113
+ (0, csv_helpers_1.validateCsvColumns)(headers, file.fileName, [
114
+ input.column,
115
+ ...(input.where ?? []).map((filter) => filter.column),
116
+ ]);
117
+ },
118
+ onRecord: ({ record }) => {
119
+ if (!(0, csv_helpers_1.matchesFilters)(record, input.where ?? []))
120
+ return;
121
+ const value = (0, csv_helpers_1.normaliseCsvValue)(record[input.column]);
122
+ if (!values.has(value)) {
123
+ if (values.size < csv_helpers_1.CSV_DISTINCT_TRACK_LIMIT) {
124
+ values.add(value);
125
+ }
126
+ else {
127
+ distinctTruncated = true;
128
+ }
129
+ if (outputValues.length < (input.limit ?? 50))
130
+ outputValues.push(value);
131
+ }
132
+ },
133
+ });
134
+ return {
135
+ fileName: file.fileName,
136
+ relativePath: file.relativePath,
137
+ column: input.column,
138
+ values: outputValues,
139
+ distinctCount: values.size,
140
+ truncated: distinctTruncated || values.size > outputValues.length,
141
+ };
142
+ }
143
+ async function aggregateCsv(workspaceRoot, files, input) {
144
+ const file = (0, csv_helpers_1.resolveCsvFile)(files, input.file);
145
+ const functions = input.functions ?? ['count'];
146
+ const metrics = Array.from(new Set([...(input.metric ? [input.metric] : []), ...(input.metrics ?? [])]));
147
+ const needsMetric = functions.some((fn) => fn !== 'count');
148
+ if (needsMetric && metrics.length === 0) {
149
+ throw new Error('csv_aggregate requires metric or metrics for min, max, sum, or avg.');
150
+ }
151
+ const groups = new Map();
152
+ let rowCount = 0;
153
+ let groupLimitReached = false;
154
+ await (0, csv_helpers_1.streamCsvRecords)(workspaceRoot, file, {
155
+ onHeaders: (headers) => {
156
+ (0, csv_helpers_1.validateCsvColumns)(headers, file.fileName, [
157
+ ...metrics,
158
+ ...(input.groupBy ?? []),
159
+ ...(input.where ?? []).map((filter) => filter.column),
160
+ ]);
161
+ },
162
+ onRecord: ({ record }) => {
163
+ if (!(0, csv_helpers_1.matchesFilters)(record, input.where ?? []))
164
+ return;
165
+ rowCount++;
166
+ const groupValues = (0, csv_helpers_1.toCsvRecordValues)(record, input.groupBy ?? []);
167
+ const key = JSON.stringify(groupValues);
168
+ let group = groups.get(key);
169
+ if (!group) {
170
+ if (groups.size >= csv_helpers_1.CSV_MAX_AGGREGATE_GROUPS) {
171
+ groupLimitReached = true;
172
+ return;
173
+ }
174
+ group = (0, csv_helpers_1.createCsvAggregateGroup)(groupValues, metrics);
175
+ groups.set(key, group);
176
+ }
177
+ group.count++;
178
+ for (const metric of metrics) {
179
+ group.metrics[metric].add((0, csv_helpers_1.normaliseCsvValue)(record[metric]));
180
+ }
181
+ },
182
+ });
183
+ if (groups.size === 0 && input.groupBy === undefined) {
184
+ groups.set(JSON.stringify({}), (0, csv_helpers_1.createCsvAggregateGroup)({}, metrics));
185
+ }
186
+ const results = Array.from(groups.values()).map((group) => (0, csv_helpers_1.formatCsvAggregateGroup)(group, functions, metrics));
187
+ (0, csv_helpers_1.sortCsvAggregateResults)(results, input.orderBy);
188
+ const limit = input.limit ?? 50;
189
+ const skippedNonNumeric = {};
190
+ for (const group of groups.values()) {
191
+ for (const metric of metrics) {
192
+ skippedNonNumeric[metric] = (skippedNonNumeric[metric] ?? 0) + group.metrics[metric].skipped;
193
+ }
194
+ }
195
+ return {
196
+ fileName: file.fileName,
197
+ relativePath: file.relativePath,
198
+ rowCount,
199
+ functions,
200
+ metrics,
201
+ groupBy: input.groupBy,
202
+ results: results.slice(0, limit),
203
+ truncated: results.length > limit || groupLimitReached,
204
+ skippedNonNumeric,
205
+ };
206
+ }
207
+ //# sourceMappingURL=csv.operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"csv.operation.js","sourceRoot":"","sources":["../../../../../src/modules/agents/tools/knowledge/csv.operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { AgentKnowledgeService } from '../../agent-knowledge.service';
2
+ import type { ParsedSearchKnowledgeInput } from './schemas';
3
+ export type WorkspaceFiles = Awaited<ReturnType<AgentKnowledgeService['materializeWorkspace']>>;
4
+ export type FileReferenceResolution = {
5
+ status: 'found';
6
+ file: WorkspaceFiles[number];
7
+ } | {
8
+ status: 'missing';
9
+ error: string;
10
+ } | {
11
+ status: 'ambiguous';
12
+ error: string;
13
+ };
14
+ export declare function resolveFileReference(files: WorkspaceFiles, reference: string): FileReferenceResolution;
15
+ export declare function getRequiredFileReferences(input: ParsedSearchKnowledgeInput): string[] | undefined;
16
+ export declare function mapFileReferences(files: WorkspaceFiles, requestedFiles?: string[]): string[] | undefined;