@invect/core 0.0.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 (1349) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +103 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +33 -0
  4. package/dist/_virtual/_rolldown/runtime.js +13 -0
  5. package/dist/actions/action-executor.cjs +166 -0
  6. package/dist/actions/action-executor.cjs.map +1 -0
  7. package/dist/actions/action-executor.d.cts +33 -0
  8. package/dist/actions/action-executor.d.cts.map +1 -0
  9. package/dist/actions/action-executor.d.ts +33 -0
  10. package/dist/actions/action-executor.d.ts.map +1 -0
  11. package/dist/actions/action-executor.js +164 -0
  12. package/dist/actions/action-executor.js.map +1 -0
  13. package/dist/actions/action-registry.cjs +236 -0
  14. package/dist/actions/action-registry.cjs.map +1 -0
  15. package/dist/actions/action-registry.d.cts +58 -0
  16. package/dist/actions/action-registry.d.cts.map +1 -0
  17. package/dist/actions/action-registry.d.ts +58 -0
  18. package/dist/actions/action-registry.d.ts.map +1 -0
  19. package/dist/actions/action-registry.js +233 -0
  20. package/dist/actions/action-registry.js.map +1 -0
  21. package/dist/actions/core/if-else.cjs +111 -0
  22. package/dist/actions/core/if-else.cjs.map +1 -0
  23. package/dist/actions/core/if-else.d.cts +1 -0
  24. package/dist/actions/core/if-else.d.ts +1 -0
  25. package/dist/actions/core/if-else.js +98 -0
  26. package/dist/actions/core/if-else.js.map +1 -0
  27. package/dist/actions/core/index.cjs +20 -0
  28. package/dist/actions/core/index.cjs.map +1 -0
  29. package/dist/actions/core/index.d.cts +7 -0
  30. package/dist/actions/core/index.d.cts.map +1 -0
  31. package/dist/actions/core/index.d.ts +7 -0
  32. package/dist/actions/core/index.d.ts.map +1 -0
  33. package/dist/actions/core/index.js +20 -0
  34. package/dist/actions/core/index.js.map +1 -0
  35. package/dist/actions/core/input.cjs +73 -0
  36. package/dist/actions/core/input.cjs.map +1 -0
  37. package/dist/actions/core/input.d.cts +1 -0
  38. package/dist/actions/core/input.d.ts +1 -0
  39. package/dist/actions/core/input.js +72 -0
  40. package/dist/actions/core/input.js.map +1 -0
  41. package/dist/actions/core/javascript.cjs +77 -0
  42. package/dist/actions/core/javascript.cjs.map +1 -0
  43. package/dist/actions/core/javascript.d.cts +1 -0
  44. package/dist/actions/core/javascript.d.ts +1 -0
  45. package/dist/actions/core/javascript.js +62 -0
  46. package/dist/actions/core/javascript.js.map +1 -0
  47. package/dist/actions/core/model.cjs +285 -0
  48. package/dist/actions/core/model.cjs.map +1 -0
  49. package/dist/actions/core/model.d.cts +1 -0
  50. package/dist/actions/core/model.d.ts +1 -0
  51. package/dist/actions/core/model.js +276 -0
  52. package/dist/actions/core/model.js.map +1 -0
  53. package/dist/actions/core/output.cjs +66 -0
  54. package/dist/actions/core/output.cjs.map +1 -0
  55. package/dist/actions/core/output.d.cts +1 -0
  56. package/dist/actions/core/output.d.ts +1 -0
  57. package/dist/actions/core/output.js +57 -0
  58. package/dist/actions/core/output.js.map +1 -0
  59. package/dist/actions/core/template-string.cjs +85 -0
  60. package/dist/actions/core/template-string.cjs.map +1 -0
  61. package/dist/actions/core/template-string.d.cts +1 -0
  62. package/dist/actions/core/template-string.d.ts +1 -0
  63. package/dist/actions/core/template-string.js +76 -0
  64. package/dist/actions/core/template-string.js.map +1 -0
  65. package/dist/actions/define-action.cjs +14 -0
  66. package/dist/actions/define-action.cjs.map +1 -0
  67. package/dist/actions/define-action.d.cts +13 -0
  68. package/dist/actions/define-action.d.cts.map +1 -0
  69. package/dist/actions/define-action.d.ts +13 -0
  70. package/dist/actions/define-action.d.ts.map +1 -0
  71. package/dist/actions/define-action.js +14 -0
  72. package/dist/actions/define-action.js.map +1 -0
  73. package/dist/actions/github/add-issue-comment.cjs +152 -0
  74. package/dist/actions/github/add-issue-comment.cjs.map +1 -0
  75. package/dist/actions/github/add-issue-comment.d.cts +1 -0
  76. package/dist/actions/github/add-issue-comment.d.ts +1 -0
  77. package/dist/actions/github/add-issue-comment.js +150 -0
  78. package/dist/actions/github/add-issue-comment.js.map +1 -0
  79. package/dist/actions/github/create-branch.cjs +201 -0
  80. package/dist/actions/github/create-branch.cjs.map +1 -0
  81. package/dist/actions/github/create-branch.d.cts +1 -0
  82. package/dist/actions/github/create-branch.d.ts +1 -0
  83. package/dist/actions/github/create-branch.js +199 -0
  84. package/dist/actions/github/create-branch.js.map +1 -0
  85. package/dist/actions/github/create-issue.cjs +190 -0
  86. package/dist/actions/github/create-issue.cjs.map +1 -0
  87. package/dist/actions/github/create-issue.d.cts +1 -0
  88. package/dist/actions/github/create-issue.d.ts +1 -0
  89. package/dist/actions/github/create-issue.js +188 -0
  90. package/dist/actions/github/create-issue.js.map +1 -0
  91. package/dist/actions/github/create-or-update-file.cjs +216 -0
  92. package/dist/actions/github/create-or-update-file.cjs.map +1 -0
  93. package/dist/actions/github/create-or-update-file.d.cts +1 -0
  94. package/dist/actions/github/create-or-update-file.d.ts +1 -0
  95. package/dist/actions/github/create-or-update-file.js +214 -0
  96. package/dist/actions/github/create-or-update-file.js.map +1 -0
  97. package/dist/actions/github/create-pull-request.cjs +206 -0
  98. package/dist/actions/github/create-pull-request.cjs.map +1 -0
  99. package/dist/actions/github/create-pull-request.d.cts +1 -0
  100. package/dist/actions/github/create-pull-request.d.ts +1 -0
  101. package/dist/actions/github/create-pull-request.js +204 -0
  102. package/dist/actions/github/create-pull-request.js.map +1 -0
  103. package/dist/actions/github/create-release.cjs +218 -0
  104. package/dist/actions/github/create-release.cjs.map +1 -0
  105. package/dist/actions/github/create-release.d.cts +1 -0
  106. package/dist/actions/github/create-release.d.ts +1 -0
  107. package/dist/actions/github/create-release.js +216 -0
  108. package/dist/actions/github/create-release.js.map +1 -0
  109. package/dist/actions/github/get-file-content.cjs +164 -0
  110. package/dist/actions/github/get-file-content.cjs.map +1 -0
  111. package/dist/actions/github/get-file-content.d.cts +1 -0
  112. package/dist/actions/github/get-file-content.d.ts +1 -0
  113. package/dist/actions/github/get-file-content.js +162 -0
  114. package/dist/actions/github/get-file-content.js.map +1 -0
  115. package/dist/actions/github/get-issue.cjs +149 -0
  116. package/dist/actions/github/get-issue.cjs.map +1 -0
  117. package/dist/actions/github/get-issue.d.cts +1 -0
  118. package/dist/actions/github/get-issue.d.ts +1 -0
  119. package/dist/actions/github/get-issue.js +147 -0
  120. package/dist/actions/github/get-issue.js.map +1 -0
  121. package/dist/actions/github/get-pull-request.cjs +160 -0
  122. package/dist/actions/github/get-pull-request.cjs.map +1 -0
  123. package/dist/actions/github/get-pull-request.d.cts +1 -0
  124. package/dist/actions/github/get-pull-request.d.ts +1 -0
  125. package/dist/actions/github/get-pull-request.js +158 -0
  126. package/dist/actions/github/get-pull-request.js.map +1 -0
  127. package/dist/actions/github/get-repo.cjs +144 -0
  128. package/dist/actions/github/get-repo.cjs.map +1 -0
  129. package/dist/actions/github/get-repo.d.cts +1 -0
  130. package/dist/actions/github/get-repo.d.ts +1 -0
  131. package/dist/actions/github/get-repo.js +142 -0
  132. package/dist/actions/github/get-repo.js.map +1 -0
  133. package/dist/actions/github/index.cjs +48 -0
  134. package/dist/actions/github/index.cjs.map +1 -0
  135. package/dist/actions/github/index.d.cts +7 -0
  136. package/dist/actions/github/index.d.cts.map +1 -0
  137. package/dist/actions/github/index.d.ts +7 -0
  138. package/dist/actions/github/index.d.ts.map +1 -0
  139. package/dist/actions/github/index.js +48 -0
  140. package/dist/actions/github/index.js.map +1 -0
  141. package/dist/actions/github/list-branches.cjs +149 -0
  142. package/dist/actions/github/list-branches.cjs.map +1 -0
  143. package/dist/actions/github/list-branches.d.cts +1 -0
  144. package/dist/actions/github/list-branches.d.ts +1 -0
  145. package/dist/actions/github/list-branches.js +147 -0
  146. package/dist/actions/github/list-branches.js.map +1 -0
  147. package/dist/actions/github/list-commits.cjs +200 -0
  148. package/dist/actions/github/list-commits.cjs.map +1 -0
  149. package/dist/actions/github/list-commits.d.cts +1 -0
  150. package/dist/actions/github/list-commits.d.ts +1 -0
  151. package/dist/actions/github/list-commits.js +198 -0
  152. package/dist/actions/github/list-commits.js.map +1 -0
  153. package/dist/actions/github/list-issue-comments.cjs +153 -0
  154. package/dist/actions/github/list-issue-comments.cjs.map +1 -0
  155. package/dist/actions/github/list-issue-comments.d.cts +1 -0
  156. package/dist/actions/github/list-issue-comments.d.ts +1 -0
  157. package/dist/actions/github/list-issue-comments.js +151 -0
  158. package/dist/actions/github/list-issue-comments.js.map +1 -0
  159. package/dist/actions/github/list-issues.cjs +244 -0
  160. package/dist/actions/github/list-issues.cjs.map +1 -0
  161. package/dist/actions/github/list-issues.d.cts +1 -0
  162. package/dist/actions/github/list-issues.d.ts +1 -0
  163. package/dist/actions/github/list-issues.js +242 -0
  164. package/dist/actions/github/list-issues.js.map +1 -0
  165. package/dist/actions/github/list-pull-requests.cjs +252 -0
  166. package/dist/actions/github/list-pull-requests.cjs.map +1 -0
  167. package/dist/actions/github/list-pull-requests.d.cts +1 -0
  168. package/dist/actions/github/list-pull-requests.d.ts +1 -0
  169. package/dist/actions/github/list-pull-requests.js +250 -0
  170. package/dist/actions/github/list-pull-requests.js.map +1 -0
  171. package/dist/actions/github/list-releases.cjs +152 -0
  172. package/dist/actions/github/list-releases.cjs.map +1 -0
  173. package/dist/actions/github/list-releases.d.cts +1 -0
  174. package/dist/actions/github/list-releases.d.ts +1 -0
  175. package/dist/actions/github/list-releases.js +150 -0
  176. package/dist/actions/github/list-releases.js.map +1 -0
  177. package/dist/actions/github/list-repos.cjs +227 -0
  178. package/dist/actions/github/list-repos.cjs.map +1 -0
  179. package/dist/actions/github/list-repos.d.cts +1 -0
  180. package/dist/actions/github/list-repos.d.ts +1 -0
  181. package/dist/actions/github/list-repos.js +225 -0
  182. package/dist/actions/github/list-repos.js.map +1 -0
  183. package/dist/actions/github/merge-pull-request.cjs +204 -0
  184. package/dist/actions/github/merge-pull-request.cjs.map +1 -0
  185. package/dist/actions/github/merge-pull-request.d.cts +1 -0
  186. package/dist/actions/github/merge-pull-request.d.ts +1 -0
  187. package/dist/actions/github/merge-pull-request.js +202 -0
  188. package/dist/actions/github/merge-pull-request.js.map +1 -0
  189. package/dist/actions/github/search-issues.cjs +200 -0
  190. package/dist/actions/github/search-issues.cjs.map +1 -0
  191. package/dist/actions/github/search-issues.d.cts +1 -0
  192. package/dist/actions/github/search-issues.d.ts +1 -0
  193. package/dist/actions/github/search-issues.js +198 -0
  194. package/dist/actions/github/search-issues.js.map +1 -0
  195. package/dist/actions/github/update-issue.cjs +243 -0
  196. package/dist/actions/github/update-issue.cjs.map +1 -0
  197. package/dist/actions/github/update-issue.d.cts +1 -0
  198. package/dist/actions/github/update-issue.d.ts +1 -0
  199. package/dist/actions/github/update-issue.js +241 -0
  200. package/dist/actions/github/update-issue.js.map +1 -0
  201. package/dist/actions/gmail/create-draft.cjs +228 -0
  202. package/dist/actions/gmail/create-draft.cjs.map +1 -0
  203. package/dist/actions/gmail/create-draft.d.cts +1 -0
  204. package/dist/actions/gmail/create-draft.d.ts +1 -0
  205. package/dist/actions/gmail/create-draft.js +226 -0
  206. package/dist/actions/gmail/create-draft.js.map +1 -0
  207. package/dist/actions/gmail/get-message.cjs +205 -0
  208. package/dist/actions/gmail/get-message.cjs.map +1 -0
  209. package/dist/actions/gmail/get-message.d.cts +1 -0
  210. package/dist/actions/gmail/get-message.d.ts +1 -0
  211. package/dist/actions/gmail/get-message.js +203 -0
  212. package/dist/actions/gmail/get-message.js.map +1 -0
  213. package/dist/actions/gmail/index.cjs +18 -0
  214. package/dist/actions/gmail/index.cjs.map +1 -0
  215. package/dist/actions/gmail/index.d.cts +7 -0
  216. package/dist/actions/gmail/index.d.cts.map +1 -0
  217. package/dist/actions/gmail/index.d.ts +7 -0
  218. package/dist/actions/gmail/index.d.ts.map +1 -0
  219. package/dist/actions/gmail/index.js +18 -0
  220. package/dist/actions/gmail/index.js.map +1 -0
  221. package/dist/actions/gmail/list-messages.cjs +195 -0
  222. package/dist/actions/gmail/list-messages.cjs.map +1 -0
  223. package/dist/actions/gmail/list-messages.d.cts +1 -0
  224. package/dist/actions/gmail/list-messages.d.ts +1 -0
  225. package/dist/actions/gmail/list-messages.js +193 -0
  226. package/dist/actions/gmail/list-messages.js.map +1 -0
  227. package/dist/actions/gmail/modify-labels.cjs +163 -0
  228. package/dist/actions/gmail/modify-labels.cjs.map +1 -0
  229. package/dist/actions/gmail/modify-labels.d.cts +1 -0
  230. package/dist/actions/gmail/modify-labels.d.ts +1 -0
  231. package/dist/actions/gmail/modify-labels.js +161 -0
  232. package/dist/actions/gmail/modify-labels.js.map +1 -0
  233. package/dist/actions/gmail/send-message.cjs +233 -0
  234. package/dist/actions/gmail/send-message.cjs.map +1 -0
  235. package/dist/actions/gmail/send-message.d.cts +1 -0
  236. package/dist/actions/gmail/send-message.d.ts +1 -0
  237. package/dist/actions/gmail/send-message.js +231 -0
  238. package/dist/actions/gmail/send-message.js.map +1 -0
  239. package/dist/actions/google-calendar/create-event.cjs +274 -0
  240. package/dist/actions/google-calendar/create-event.cjs.map +1 -0
  241. package/dist/actions/google-calendar/create-event.d.cts +1 -0
  242. package/dist/actions/google-calendar/create-event.d.ts +1 -0
  243. package/dist/actions/google-calendar/create-event.js +272 -0
  244. package/dist/actions/google-calendar/create-event.js.map +1 -0
  245. package/dist/actions/google-calendar/delete-event.cjs +145 -0
  246. package/dist/actions/google-calendar/delete-event.cjs.map +1 -0
  247. package/dist/actions/google-calendar/delete-event.d.cts +1 -0
  248. package/dist/actions/google-calendar/delete-event.d.ts +1 -0
  249. package/dist/actions/google-calendar/delete-event.js +143 -0
  250. package/dist/actions/google-calendar/delete-event.js.map +1 -0
  251. package/dist/actions/google-calendar/get-event.cjs +128 -0
  252. package/dist/actions/google-calendar/get-event.cjs.map +1 -0
  253. package/dist/actions/google-calendar/get-event.d.cts +1 -0
  254. package/dist/actions/google-calendar/get-event.d.ts +1 -0
  255. package/dist/actions/google-calendar/get-event.js +126 -0
  256. package/dist/actions/google-calendar/get-event.js.map +1 -0
  257. package/dist/actions/google-calendar/index.cjs +20 -0
  258. package/dist/actions/google-calendar/index.cjs.map +1 -0
  259. package/dist/actions/google-calendar/index.d.cts +7 -0
  260. package/dist/actions/google-calendar/index.d.cts.map +1 -0
  261. package/dist/actions/google-calendar/index.d.ts +7 -0
  262. package/dist/actions/google-calendar/index.d.ts.map +1 -0
  263. package/dist/actions/google-calendar/index.js +20 -0
  264. package/dist/actions/google-calendar/index.js.map +1 -0
  265. package/dist/actions/google-calendar/list-events.cjs +193 -0
  266. package/dist/actions/google-calendar/list-events.cjs.map +1 -0
  267. package/dist/actions/google-calendar/list-events.d.cts +1 -0
  268. package/dist/actions/google-calendar/list-events.d.ts +1 -0
  269. package/dist/actions/google-calendar/list-events.js +191 -0
  270. package/dist/actions/google-calendar/list-events.js.map +1 -0
  271. package/dist/actions/google-calendar/query-freebusy.cjs +160 -0
  272. package/dist/actions/google-calendar/query-freebusy.cjs.map +1 -0
  273. package/dist/actions/google-calendar/query-freebusy.d.cts +1 -0
  274. package/dist/actions/google-calendar/query-freebusy.d.ts +1 -0
  275. package/dist/actions/google-calendar/query-freebusy.js +158 -0
  276. package/dist/actions/google-calendar/query-freebusy.js.map +1 -0
  277. package/dist/actions/google-calendar/update-event.cjs +221 -0
  278. package/dist/actions/google-calendar/update-event.cjs.map +1 -0
  279. package/dist/actions/google-calendar/update-event.d.cts +1 -0
  280. package/dist/actions/google-calendar/update-event.d.ts +1 -0
  281. package/dist/actions/google-calendar/update-event.js +219 -0
  282. package/dist/actions/google-calendar/update-event.js.map +1 -0
  283. package/dist/actions/google-docs/append-text.cjs +138 -0
  284. package/dist/actions/google-docs/append-text.cjs.map +1 -0
  285. package/dist/actions/google-docs/append-text.d.cts +1 -0
  286. package/dist/actions/google-docs/append-text.d.ts +1 -0
  287. package/dist/actions/google-docs/append-text.js +136 -0
  288. package/dist/actions/google-docs/append-text.js.map +1 -0
  289. package/dist/actions/google-docs/create-document.cjs +138 -0
  290. package/dist/actions/google-docs/create-document.cjs.map +1 -0
  291. package/dist/actions/google-docs/create-document.d.cts +1 -0
  292. package/dist/actions/google-docs/create-document.d.ts +1 -0
  293. package/dist/actions/google-docs/create-document.js +136 -0
  294. package/dist/actions/google-docs/create-document.js.map +1 -0
  295. package/dist/actions/google-docs/get-document.cjs +118 -0
  296. package/dist/actions/google-docs/get-document.cjs.map +1 -0
  297. package/dist/actions/google-docs/get-document.d.cts +1 -0
  298. package/dist/actions/google-docs/get-document.d.ts +1 -0
  299. package/dist/actions/google-docs/get-document.js +116 -0
  300. package/dist/actions/google-docs/get-document.js.map +1 -0
  301. package/dist/actions/google-docs/index.cjs +18 -0
  302. package/dist/actions/google-docs/index.cjs.map +1 -0
  303. package/dist/actions/google-docs/index.d.cts +7 -0
  304. package/dist/actions/google-docs/index.d.cts.map +1 -0
  305. package/dist/actions/google-docs/index.d.ts +7 -0
  306. package/dist/actions/google-docs/index.d.ts.map +1 -0
  307. package/dist/actions/google-docs/index.js +18 -0
  308. package/dist/actions/google-docs/index.js.map +1 -0
  309. package/dist/actions/google-docs/insert-text.cjs +136 -0
  310. package/dist/actions/google-docs/insert-text.cjs.map +1 -0
  311. package/dist/actions/google-docs/insert-text.d.cts +1 -0
  312. package/dist/actions/google-docs/insert-text.d.ts +1 -0
  313. package/dist/actions/google-docs/insert-text.js +134 -0
  314. package/dist/actions/google-docs/insert-text.js.map +1 -0
  315. package/dist/actions/google-docs/replace-text.cjs +152 -0
  316. package/dist/actions/google-docs/replace-text.cjs.map +1 -0
  317. package/dist/actions/google-docs/replace-text.d.cts +1 -0
  318. package/dist/actions/google-docs/replace-text.d.ts +1 -0
  319. package/dist/actions/google-docs/replace-text.js +150 -0
  320. package/dist/actions/google-docs/replace-text.js.map +1 -0
  321. package/dist/actions/google-drive/create-file.cjs +155 -0
  322. package/dist/actions/google-drive/create-file.cjs.map +1 -0
  323. package/dist/actions/google-drive/create-file.d.cts +1 -0
  324. package/dist/actions/google-drive/create-file.d.ts +1 -0
  325. package/dist/actions/google-drive/create-file.js +153 -0
  326. package/dist/actions/google-drive/create-file.js.map +1 -0
  327. package/dist/actions/google-drive/create-folder.cjs +130 -0
  328. package/dist/actions/google-drive/create-folder.cjs.map +1 -0
  329. package/dist/actions/google-drive/create-folder.d.cts +1 -0
  330. package/dist/actions/google-drive/create-folder.d.ts +1 -0
  331. package/dist/actions/google-drive/create-folder.js +128 -0
  332. package/dist/actions/google-drive/create-folder.js.map +1 -0
  333. package/dist/actions/google-drive/delete-file.cjs +98 -0
  334. package/dist/actions/google-drive/delete-file.cjs.map +1 -0
  335. package/dist/actions/google-drive/delete-file.d.cts +1 -0
  336. package/dist/actions/google-drive/delete-file.d.ts +1 -0
  337. package/dist/actions/google-drive/delete-file.js +96 -0
  338. package/dist/actions/google-drive/delete-file.js.map +1 -0
  339. package/dist/actions/google-drive/get-file.cjs +103 -0
  340. package/dist/actions/google-drive/get-file.cjs.map +1 -0
  341. package/dist/actions/google-drive/get-file.d.cts +1 -0
  342. package/dist/actions/google-drive/get-file.d.ts +1 -0
  343. package/dist/actions/google-drive/get-file.js +101 -0
  344. package/dist/actions/google-drive/get-file.js.map +1 -0
  345. package/dist/actions/google-drive/index.cjs +22 -0
  346. package/dist/actions/google-drive/index.cjs.map +1 -0
  347. package/dist/actions/google-drive/index.d.cts +7 -0
  348. package/dist/actions/google-drive/index.d.cts.map +1 -0
  349. package/dist/actions/google-drive/index.d.ts +7 -0
  350. package/dist/actions/google-drive/index.d.ts.map +1 -0
  351. package/dist/actions/google-drive/index.js +22 -0
  352. package/dist/actions/google-drive/index.js.map +1 -0
  353. package/dist/actions/google-drive/list-files.cjs +156 -0
  354. package/dist/actions/google-drive/list-files.cjs.map +1 -0
  355. package/dist/actions/google-drive/list-files.d.cts +1 -0
  356. package/dist/actions/google-drive/list-files.d.ts +1 -0
  357. package/dist/actions/google-drive/list-files.js +154 -0
  358. package/dist/actions/google-drive/list-files.js.map +1 -0
  359. package/dist/actions/google-drive/search-files.cjs +138 -0
  360. package/dist/actions/google-drive/search-files.cjs.map +1 -0
  361. package/dist/actions/google-drive/search-files.d.cts +1 -0
  362. package/dist/actions/google-drive/search-files.d.ts +1 -0
  363. package/dist/actions/google-drive/search-files.js +136 -0
  364. package/dist/actions/google-drive/search-files.js.map +1 -0
  365. package/dist/actions/google-drive/share-file.cjs +226 -0
  366. package/dist/actions/google-drive/share-file.cjs.map +1 -0
  367. package/dist/actions/google-drive/share-file.d.cts +1 -0
  368. package/dist/actions/google-drive/share-file.d.ts +1 -0
  369. package/dist/actions/google-drive/share-file.js +224 -0
  370. package/dist/actions/google-drive/share-file.js.map +1 -0
  371. package/dist/actions/google-sheets/append-values.cjs +175 -0
  372. package/dist/actions/google-sheets/append-values.cjs.map +1 -0
  373. package/dist/actions/google-sheets/append-values.d.cts +1 -0
  374. package/dist/actions/google-sheets/append-values.d.ts +1 -0
  375. package/dist/actions/google-sheets/append-values.js +173 -0
  376. package/dist/actions/google-sheets/append-values.js.map +1 -0
  377. package/dist/actions/google-sheets/clear-values.cjs +118 -0
  378. package/dist/actions/google-sheets/clear-values.cjs.map +1 -0
  379. package/dist/actions/google-sheets/clear-values.d.cts +1 -0
  380. package/dist/actions/google-sheets/clear-values.d.ts +1 -0
  381. package/dist/actions/google-sheets/clear-values.js +116 -0
  382. package/dist/actions/google-sheets/clear-values.js.map +1 -0
  383. package/dist/actions/google-sheets/create-spreadsheet.cjs +128 -0
  384. package/dist/actions/google-sheets/create-spreadsheet.cjs.map +1 -0
  385. package/dist/actions/google-sheets/create-spreadsheet.d.cts +1 -0
  386. package/dist/actions/google-sheets/create-spreadsheet.d.ts +1 -0
  387. package/dist/actions/google-sheets/create-spreadsheet.js +126 -0
  388. package/dist/actions/google-sheets/create-spreadsheet.js.map +1 -0
  389. package/dist/actions/google-sheets/get-values.cjs +168 -0
  390. package/dist/actions/google-sheets/get-values.cjs.map +1 -0
  391. package/dist/actions/google-sheets/get-values.d.cts +1 -0
  392. package/dist/actions/google-sheets/get-values.d.ts +1 -0
  393. package/dist/actions/google-sheets/get-values.js +166 -0
  394. package/dist/actions/google-sheets/get-values.js.map +1 -0
  395. package/dist/actions/google-sheets/index.cjs +18 -0
  396. package/dist/actions/google-sheets/index.cjs.map +1 -0
  397. package/dist/actions/google-sheets/index.d.cts +7 -0
  398. package/dist/actions/google-sheets/index.d.cts.map +1 -0
  399. package/dist/actions/google-sheets/index.d.ts +7 -0
  400. package/dist/actions/google-sheets/index.d.ts.map +1 -0
  401. package/dist/actions/google-sheets/index.js +18 -0
  402. package/dist/actions/google-sheets/index.js.map +1 -0
  403. package/dist/actions/google-sheets/update-values.cjs +158 -0
  404. package/dist/actions/google-sheets/update-values.cjs.map +1 -0
  405. package/dist/actions/google-sheets/update-values.d.cts +1 -0
  406. package/dist/actions/google-sheets/update-values.d.ts +1 -0
  407. package/dist/actions/google-sheets/update-values.js +156 -0
  408. package/dist/actions/google-sheets/update-values.js.map +1 -0
  409. package/dist/actions/http/index.cjs +7 -0
  410. package/dist/actions/http/index.cjs.map +1 -0
  411. package/dist/actions/http/index.d.cts +7 -0
  412. package/dist/actions/http/index.d.cts.map +1 -0
  413. package/dist/actions/http/index.d.ts +7 -0
  414. package/dist/actions/http/index.d.ts.map +1 -0
  415. package/dist/actions/http/index.js +8 -0
  416. package/dist/actions/http/index.js.map +1 -0
  417. package/dist/actions/http/request.cjs +223 -0
  418. package/dist/actions/http/request.cjs.map +1 -0
  419. package/dist/actions/http/request.d.cts +1 -0
  420. package/dist/actions/http/request.d.ts +1 -0
  421. package/dist/actions/http/request.js +222 -0
  422. package/dist/actions/http/request.js.map +1 -0
  423. package/dist/actions/index.cjs +46 -0
  424. package/dist/actions/index.cjs.map +1 -0
  425. package/dist/actions/index.d.cts +27 -0
  426. package/dist/actions/index.d.cts.map +1 -0
  427. package/dist/actions/index.d.ts +27 -0
  428. package/dist/actions/index.d.ts.map +1 -0
  429. package/dist/actions/index.js +45 -0
  430. package/dist/actions/index.js.map +1 -0
  431. package/dist/actions/linear/create-issue.cjs +296 -0
  432. package/dist/actions/linear/create-issue.cjs.map +1 -0
  433. package/dist/actions/linear/create-issue.d.cts +1 -0
  434. package/dist/actions/linear/create-issue.d.ts +1 -0
  435. package/dist/actions/linear/create-issue.js +294 -0
  436. package/dist/actions/linear/create-issue.js.map +1 -0
  437. package/dist/actions/linear/index.cjs +16 -0
  438. package/dist/actions/linear/index.cjs.map +1 -0
  439. package/dist/actions/linear/index.d.cts +7 -0
  440. package/dist/actions/linear/index.d.cts.map +1 -0
  441. package/dist/actions/linear/index.d.ts +7 -0
  442. package/dist/actions/linear/index.d.ts.map +1 -0
  443. package/dist/actions/linear/index.js +16 -0
  444. package/dist/actions/linear/index.js.map +1 -0
  445. package/dist/actions/linear/list-issues.cjs +239 -0
  446. package/dist/actions/linear/list-issues.cjs.map +1 -0
  447. package/dist/actions/linear/list-issues.d.cts +1 -0
  448. package/dist/actions/linear/list-issues.d.ts +1 -0
  449. package/dist/actions/linear/list-issues.js +237 -0
  450. package/dist/actions/linear/list-issues.js.map +1 -0
  451. package/dist/actions/linear/list-teams.cjs +183 -0
  452. package/dist/actions/linear/list-teams.cjs.map +1 -0
  453. package/dist/actions/linear/list-teams.d.cts +1 -0
  454. package/dist/actions/linear/list-teams.d.ts +1 -0
  455. package/dist/actions/linear/list-teams.js +181 -0
  456. package/dist/actions/linear/list-teams.js.map +1 -0
  457. package/dist/actions/linear/update-issue.cjs +282 -0
  458. package/dist/actions/linear/update-issue.cjs.map +1 -0
  459. package/dist/actions/linear/update-issue.d.cts +1 -0
  460. package/dist/actions/linear/update-issue.d.ts +1 -0
  461. package/dist/actions/linear/update-issue.js +280 -0
  462. package/dist/actions/linear/update-issue.js.map +1 -0
  463. package/dist/actions/microsoft/get-calendar-event.cjs +139 -0
  464. package/dist/actions/microsoft/get-calendar-event.cjs.map +1 -0
  465. package/dist/actions/microsoft/get-calendar-event.d.cts +1 -0
  466. package/dist/actions/microsoft/get-calendar-event.d.ts +1 -0
  467. package/dist/actions/microsoft/get-calendar-event.js +137 -0
  468. package/dist/actions/microsoft/get-calendar-event.js.map +1 -0
  469. package/dist/actions/microsoft/get-meeting-transcript.cjs +221 -0
  470. package/dist/actions/microsoft/get-meeting-transcript.cjs.map +1 -0
  471. package/dist/actions/microsoft/get-meeting-transcript.d.cts +1 -0
  472. package/dist/actions/microsoft/get-meeting-transcript.d.ts +1 -0
  473. package/dist/actions/microsoft/get-meeting-transcript.js +219 -0
  474. package/dist/actions/microsoft/get-meeting-transcript.js.map +1 -0
  475. package/dist/actions/microsoft/get-message.cjs +173 -0
  476. package/dist/actions/microsoft/get-message.cjs.map +1 -0
  477. package/dist/actions/microsoft/get-message.d.cts +1 -0
  478. package/dist/actions/microsoft/get-message.d.ts +1 -0
  479. package/dist/actions/microsoft/get-message.js +171 -0
  480. package/dist/actions/microsoft/get-message.js.map +1 -0
  481. package/dist/actions/microsoft/index.cjs +22 -0
  482. package/dist/actions/microsoft/index.cjs.map +1 -0
  483. package/dist/actions/microsoft/index.d.cts +1 -0
  484. package/dist/actions/microsoft/index.d.ts +1 -0
  485. package/dist/actions/microsoft/index.js +22 -0
  486. package/dist/actions/microsoft/index.js.map +1 -0
  487. package/dist/actions/microsoft/list-calendar-events.cjs +202 -0
  488. package/dist/actions/microsoft/list-calendar-events.cjs.map +1 -0
  489. package/dist/actions/microsoft/list-calendar-events.d.cts +1 -0
  490. package/dist/actions/microsoft/list-calendar-events.d.ts +1 -0
  491. package/dist/actions/microsoft/list-calendar-events.js +200 -0
  492. package/dist/actions/microsoft/list-calendar-events.js.map +1 -0
  493. package/dist/actions/microsoft/list-calendars.cjs +99 -0
  494. package/dist/actions/microsoft/list-calendars.cjs.map +1 -0
  495. package/dist/actions/microsoft/list-calendars.d.cts +1 -0
  496. package/dist/actions/microsoft/list-calendars.d.ts +1 -0
  497. package/dist/actions/microsoft/list-calendars.js +97 -0
  498. package/dist/actions/microsoft/list-calendars.js.map +1 -0
  499. package/dist/actions/microsoft/list-messages.cjs +223 -0
  500. package/dist/actions/microsoft/list-messages.cjs.map +1 -0
  501. package/dist/actions/microsoft/list-messages.d.cts +1 -0
  502. package/dist/actions/microsoft/list-messages.d.ts +1 -0
  503. package/dist/actions/microsoft/list-messages.js +221 -0
  504. package/dist/actions/microsoft/list-messages.js.map +1 -0
  505. package/dist/actions/microsoft/list-online-meetings.cjs +132 -0
  506. package/dist/actions/microsoft/list-online-meetings.cjs.map +1 -0
  507. package/dist/actions/microsoft/list-online-meetings.d.cts +1 -0
  508. package/dist/actions/microsoft/list-online-meetings.d.ts +1 -0
  509. package/dist/actions/microsoft/list-online-meetings.js +130 -0
  510. package/dist/actions/microsoft/list-online-meetings.js.map +1 -0
  511. package/dist/actions/postgres/describe-table.cjs +175 -0
  512. package/dist/actions/postgres/describe-table.cjs.map +1 -0
  513. package/dist/actions/postgres/describe-table.d.cts +1 -0
  514. package/dist/actions/postgres/describe-table.d.ts +1 -0
  515. package/dist/actions/postgres/describe-table.js +165 -0
  516. package/dist/actions/postgres/describe-table.js.map +1 -0
  517. package/dist/actions/postgres/execute-query.cjs +120 -0
  518. package/dist/actions/postgres/execute-query.cjs.map +1 -0
  519. package/dist/actions/postgres/execute-query.d.cts +1 -0
  520. package/dist/actions/postgres/execute-query.d.ts +1 -0
  521. package/dist/actions/postgres/execute-query.js +110 -0
  522. package/dist/actions/postgres/execute-query.js.map +1 -0
  523. package/dist/actions/postgres/index.cjs +16 -0
  524. package/dist/actions/postgres/index.cjs.map +1 -0
  525. package/dist/actions/postgres/index.d.cts +7 -0
  526. package/dist/actions/postgres/index.d.cts.map +1 -0
  527. package/dist/actions/postgres/index.d.ts +7 -0
  528. package/dist/actions/postgres/index.d.ts.map +1 -0
  529. package/dist/actions/postgres/index.js +16 -0
  530. package/dist/actions/postgres/index.js.map +1 -0
  531. package/dist/actions/postgres/insert-rows.cjs +168 -0
  532. package/dist/actions/postgres/insert-rows.cjs.map +1 -0
  533. package/dist/actions/postgres/insert-rows.d.cts +1 -0
  534. package/dist/actions/postgres/insert-rows.d.ts +1 -0
  535. package/dist/actions/postgres/insert-rows.js +158 -0
  536. package/dist/actions/postgres/insert-rows.js.map +1 -0
  537. package/dist/actions/postgres/list-tables.cjs +133 -0
  538. package/dist/actions/postgres/list-tables.cjs.map +1 -0
  539. package/dist/actions/postgres/list-tables.d.cts +1 -0
  540. package/dist/actions/postgres/list-tables.d.ts +1 -0
  541. package/dist/actions/postgres/list-tables.js +123 -0
  542. package/dist/actions/postgres/list-tables.js.map +1 -0
  543. package/dist/actions/providers.cjs +128 -0
  544. package/dist/actions/providers.cjs.map +1 -0
  545. package/dist/actions/providers.d.cts +22 -0
  546. package/dist/actions/providers.d.cts.map +1 -0
  547. package/dist/actions/providers.d.ts +22 -0
  548. package/dist/actions/providers.d.ts.map +1 -0
  549. package/dist/actions/providers.js +116 -0
  550. package/dist/actions/providers.js.map +1 -0
  551. package/dist/actions/slack/index.cjs +9 -0
  552. package/dist/actions/slack/index.cjs.map +1 -0
  553. package/dist/actions/slack/index.d.cts +7 -0
  554. package/dist/actions/slack/index.d.cts.map +1 -0
  555. package/dist/actions/slack/index.d.ts +7 -0
  556. package/dist/actions/slack/index.d.ts.map +1 -0
  557. package/dist/actions/slack/index.js +9 -0
  558. package/dist/actions/slack/index.js.map +1 -0
  559. package/dist/actions/slack/list-channels.cjs +157 -0
  560. package/dist/actions/slack/list-channels.cjs.map +1 -0
  561. package/dist/actions/slack/list-channels.d.cts +1 -0
  562. package/dist/actions/slack/list-channels.d.ts +1 -0
  563. package/dist/actions/slack/list-channels.js +155 -0
  564. package/dist/actions/slack/list-channels.js.map +1 -0
  565. package/dist/actions/slack/send-message.cjs +157 -0
  566. package/dist/actions/slack/send-message.cjs.map +1 -0
  567. package/dist/actions/slack/send-message.d.cts +1 -0
  568. package/dist/actions/slack/send-message.d.ts +1 -0
  569. package/dist/actions/slack/send-message.js +155 -0
  570. package/dist/actions/slack/send-message.js.map +1 -0
  571. package/dist/actions/triggers/cron.cjs +95 -0
  572. package/dist/actions/triggers/cron.cjs.map +1 -0
  573. package/dist/actions/triggers/cron.d.cts +1 -0
  574. package/dist/actions/triggers/cron.d.ts +1 -0
  575. package/dist/actions/triggers/cron.js +83 -0
  576. package/dist/actions/triggers/cron.js.map +1 -0
  577. package/dist/actions/triggers/index.cjs +9 -0
  578. package/dist/actions/triggers/index.cjs.map +1 -0
  579. package/dist/actions/triggers/index.d.cts +1 -0
  580. package/dist/actions/triggers/index.d.ts +1 -0
  581. package/dist/actions/triggers/index.js +9 -0
  582. package/dist/actions/triggers/index.js.map +1 -0
  583. package/dist/actions/triggers/manual.cjs +105 -0
  584. package/dist/actions/triggers/manual.cjs.map +1 -0
  585. package/dist/actions/triggers/manual.d.cts +1 -0
  586. package/dist/actions/triggers/manual.d.ts +1 -0
  587. package/dist/actions/triggers/manual.js +103 -0
  588. package/dist/actions/triggers/manual.js.map +1 -0
  589. package/dist/actions/types.d.cts +373 -0
  590. package/dist/actions/types.d.cts.map +1 -0
  591. package/dist/actions/types.d.ts +373 -0
  592. package/dist/actions/types.d.ts.map +1 -0
  593. package/dist/database/adapter-factory.cjs +188 -0
  594. package/dist/database/adapter-factory.cjs.map +1 -0
  595. package/dist/database/adapter-factory.js +187 -0
  596. package/dist/database/adapter-factory.js.map +1 -0
  597. package/dist/database/adapter.cjs +33 -0
  598. package/dist/database/adapter.cjs.map +1 -0
  599. package/dist/database/adapter.d.cts +76 -0
  600. package/dist/database/adapter.d.cts.map +1 -0
  601. package/dist/database/adapter.d.ts +76 -0
  602. package/dist/database/adapter.d.ts.map +1 -0
  603. package/dist/database/adapter.js +33 -0
  604. package/dist/database/adapter.js.map +1 -0
  605. package/dist/database/adapters/connection-bridge.cjs +119 -0
  606. package/dist/database/adapters/connection-bridge.cjs.map +1 -0
  607. package/dist/database/adapters/connection-bridge.js +118 -0
  608. package/dist/database/adapters/connection-bridge.js.map +1 -0
  609. package/dist/database/adapters/kysely-adapter.cjs +138 -0
  610. package/dist/database/adapters/kysely-adapter.cjs.map +1 -0
  611. package/dist/database/adapters/kysely-adapter.js +137 -0
  612. package/dist/database/adapters/kysely-adapter.js.map +1 -0
  613. package/dist/database/connection.cjs +277 -0
  614. package/dist/database/connection.cjs.map +1 -0
  615. package/dist/database/connection.d.cts +115 -0
  616. package/dist/database/connection.d.cts.map +1 -0
  617. package/dist/database/connection.d.ts +115 -0
  618. package/dist/database/connection.d.ts.map +1 -0
  619. package/dist/database/connection.js +271 -0
  620. package/dist/database/connection.js.map +1 -0
  621. package/dist/database/core-schema.cjs +644 -0
  622. package/dist/database/core-schema.cjs.map +1 -0
  623. package/dist/database/core-schema.d.cts +22 -0
  624. package/dist/database/core-schema.d.cts.map +1 -0
  625. package/dist/database/core-schema.d.ts +22 -0
  626. package/dist/database/core-schema.d.ts.map +1 -0
  627. package/dist/database/core-schema.js +642 -0
  628. package/dist/database/core-schema.js.map +1 -0
  629. package/dist/database/index.cjs +4 -0
  630. package/dist/database/index.d.cts +10 -0
  631. package/dist/database/index.d.cts.map +1 -0
  632. package/dist/database/index.d.ts +10 -0
  633. package/dist/database/index.d.ts.map +1 -0
  634. package/dist/database/index.js +5 -0
  635. package/dist/database/prisma-schema-generator.cjs +219 -0
  636. package/dist/database/prisma-schema-generator.cjs.map +1 -0
  637. package/dist/database/prisma-schema-generator.d.cts +19 -0
  638. package/dist/database/prisma-schema-generator.d.cts.map +1 -0
  639. package/dist/database/prisma-schema-generator.d.ts +19 -0
  640. package/dist/database/prisma-schema-generator.d.ts.map +1 -0
  641. package/dist/database/prisma-schema-generator.js +218 -0
  642. package/dist/database/prisma-schema-generator.js.map +1 -0
  643. package/dist/database/schema-generator.cjs +576 -0
  644. package/dist/database/schema-generator.cjs.map +1 -0
  645. package/dist/database/schema-generator.d.cts +18 -0
  646. package/dist/database/schema-generator.d.cts.map +1 -0
  647. package/dist/database/schema-generator.d.ts +18 -0
  648. package/dist/database/schema-generator.d.ts.map +1 -0
  649. package/dist/database/schema-generator.js +571 -0
  650. package/dist/database/schema-generator.js.map +1 -0
  651. package/dist/database/schema-merger.cjs +153 -0
  652. package/dist/database/schema-merger.cjs.map +1 -0
  653. package/dist/database/schema-merger.d.cts +53 -0
  654. package/dist/database/schema-merger.d.cts.map +1 -0
  655. package/dist/database/schema-merger.d.ts +53 -0
  656. package/dist/database/schema-merger.d.ts.map +1 -0
  657. package/dist/database/schema-merger.js +152 -0
  658. package/dist/database/schema-merger.js.map +1 -0
  659. package/dist/database/schema-metadata.cjs +98 -0
  660. package/dist/database/schema-metadata.cjs.map +1 -0
  661. package/dist/database/schema-metadata.js +98 -0
  662. package/dist/database/schema-metadata.js.map +1 -0
  663. package/dist/database/schema-mysql.cjs +288 -0
  664. package/dist/database/schema-mysql.cjs.map +1 -0
  665. package/dist/database/schema-mysql.d.cts +2117 -0
  666. package/dist/database/schema-mysql.d.cts.map +1 -0
  667. package/dist/database/schema-mysql.d.ts +2117 -0
  668. package/dist/database/schema-mysql.d.ts.map +1 -0
  669. package/dist/database/schema-mysql.js +263 -0
  670. package/dist/database/schema-mysql.js.map +1 -0
  671. package/dist/database/schema-postgres.cjs +312 -0
  672. package/dist/database/schema-postgres.cjs.map +1 -0
  673. package/dist/database/schema-postgres.d.cts +2127 -0
  674. package/dist/database/schema-postgres.d.cts.map +1 -0
  675. package/dist/database/schema-postgres.d.ts +2127 -0
  676. package/dist/database/schema-postgres.d.ts.map +1 -0
  677. package/dist/database/schema-postgres.js +280 -0
  678. package/dist/database/schema-postgres.js.map +1 -0
  679. package/dist/database/schema-sqlite.cjs +247 -0
  680. package/dist/database/schema-sqlite.cjs.map +1 -0
  681. package/dist/database/schema-sqlite.d.cts +2294 -0
  682. package/dist/database/schema-sqlite.d.cts.map +1 -0
  683. package/dist/database/schema-sqlite.d.ts +2294 -0
  684. package/dist/database/schema-sqlite.d.ts.map +1 -0
  685. package/dist/database/schema-sqlite.js +222 -0
  686. package/dist/database/schema-sqlite.js.map +1 -0
  687. package/dist/database/schema-verification.cjs +123 -0
  688. package/dist/database/schema-verification.cjs.map +1 -0
  689. package/dist/database/schema-verification.d.cts +40 -0
  690. package/dist/database/schema-verification.d.cts.map +1 -0
  691. package/dist/database/schema-verification.d.ts +40 -0
  692. package/dist/database/schema-verification.d.ts.map +1 -0
  693. package/dist/database/schema-verification.js +123 -0
  694. package/dist/database/schema-verification.js.map +1 -0
  695. package/dist/database/schema.cjs +3 -0
  696. package/dist/database/schema.d.cts +3 -0
  697. package/dist/database/schema.d.ts +3 -0
  698. package/dist/database/schema.js +4 -0
  699. package/dist/index.cjs +199 -0
  700. package/dist/index.d.cts +70 -0
  701. package/dist/index.d.ts +70 -0
  702. package/dist/index.js +56 -0
  703. package/dist/invect-core.cjs +1688 -0
  704. package/dist/invect-core.cjs.map +1 -0
  705. package/dist/invect-core.d.cts +846 -0
  706. package/dist/invect-core.d.cts.map +1 -0
  707. package/dist/invect-core.d.ts +846 -0
  708. package/dist/invect-core.d.ts.map +1 -0
  709. package/dist/invect-core.js +1688 -0
  710. package/dist/invect-core.js.map +1 -0
  711. package/dist/nodes/agent-executor.cjs +881 -0
  712. package/dist/nodes/agent-executor.cjs.map +1 -0
  713. package/dist/nodes/agent-executor.d.cts +243 -0
  714. package/dist/nodes/agent-executor.d.cts.map +1 -0
  715. package/dist/nodes/agent-executor.d.ts +243 -0
  716. package/dist/nodes/agent-executor.d.ts.map +1 -0
  717. package/dist/nodes/agent-executor.js +877 -0
  718. package/dist/nodes/agent-executor.js.map +1 -0
  719. package/dist/nodes/base-node.cjs +174 -0
  720. package/dist/nodes/base-node.cjs.map +1 -0
  721. package/dist/nodes/base-node.d.cts +125 -0
  722. package/dist/nodes/base-node.d.cts.map +1 -0
  723. package/dist/nodes/base-node.d.ts +125 -0
  724. package/dist/nodes/base-node.d.ts.map +1 -0
  725. package/dist/nodes/base-node.js +170 -0
  726. package/dist/nodes/base-node.js.map +1 -0
  727. package/dist/nodes/executor-registry.cjs +46 -0
  728. package/dist/nodes/executor-registry.cjs.map +1 -0
  729. package/dist/nodes/executor-registry.d.cts +18 -0
  730. package/dist/nodes/executor-registry.d.cts.map +1 -0
  731. package/dist/nodes/executor-registry.d.ts +18 -0
  732. package/dist/nodes/executor-registry.d.ts.map +1 -0
  733. package/dist/nodes/executor-registry.js +46 -0
  734. package/dist/nodes/executor-registry.js.map +1 -0
  735. package/dist/nodes/index.cjs +2 -0
  736. package/dist/nodes/index.d.cts +3 -0
  737. package/dist/nodes/index.d.ts +3 -0
  738. package/dist/nodes/index.js +3 -0
  739. package/dist/services/agent-tool-executions/agent-tool-execution.service.cjs +110 -0
  740. package/dist/services/agent-tool-executions/agent-tool-execution.service.cjs.map +1 -0
  741. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.cts +42 -0
  742. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.cts.map +1 -0
  743. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.ts +42 -0
  744. package/dist/services/agent-tool-executions/agent-tool-execution.service.d.ts.map +1 -0
  745. package/dist/services/agent-tool-executions/agent-tool-execution.service.js +110 -0
  746. package/dist/services/agent-tool-executions/agent-tool-execution.service.js.map +1 -0
  747. package/dist/services/agent-tool-executions/agent-tool-executions.model.cjs +152 -0
  748. package/dist/services/agent-tool-executions/agent-tool-executions.model.cjs.map +1 -0
  749. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.cts +71 -0
  750. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.cts.map +1 -0
  751. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.ts +71 -0
  752. package/dist/services/agent-tool-executions/agent-tool-executions.model.d.ts.map +1 -0
  753. package/dist/services/agent-tool-executions/agent-tool-executions.model.js +152 -0
  754. package/dist/services/agent-tool-executions/agent-tool-executions.model.js.map +1 -0
  755. package/dist/services/agent-tools/agent-tool-registry.cjs +101 -0
  756. package/dist/services/agent-tools/agent-tool-registry.cjs.map +1 -0
  757. package/dist/services/agent-tools/agent-tool-registry.d.cts +51 -0
  758. package/dist/services/agent-tools/agent-tool-registry.d.cts.map +1 -0
  759. package/dist/services/agent-tools/agent-tool-registry.d.ts +51 -0
  760. package/dist/services/agent-tools/agent-tool-registry.d.ts.map +1 -0
  761. package/dist/services/agent-tools/agent-tool-registry.js +98 -0
  762. package/dist/services/agent-tools/agent-tool-registry.js.map +1 -0
  763. package/dist/services/agent-tools/builtin/index.cjs +17 -0
  764. package/dist/services/agent-tools/builtin/index.cjs.map +1 -0
  765. package/dist/services/agent-tools/builtin/index.js +17 -0
  766. package/dist/services/agent-tools/builtin/index.js.map +1 -0
  767. package/dist/services/agent-tools/builtin/json-logic-tool.cjs +73 -0
  768. package/dist/services/agent-tools/builtin/json-logic-tool.cjs.map +1 -0
  769. package/dist/services/agent-tools/builtin/json-logic-tool.js +70 -0
  770. package/dist/services/agent-tools/builtin/json-logic-tool.js.map +1 -0
  771. package/dist/services/agent-tools/builtin/math-tool.cjs +117 -0
  772. package/dist/services/agent-tools/builtin/math-tool.cjs.map +1 -0
  773. package/dist/services/agent-tools/builtin/math-tool.js +116 -0
  774. package/dist/services/agent-tools/builtin/math-tool.js.map +1 -0
  775. package/dist/services/agent-tools/index.cjs +2 -0
  776. package/dist/services/agent-tools/index.js +3 -0
  777. package/dist/services/ai/ai-types.cjs +37 -0
  778. package/dist/services/ai/ai-types.cjs.map +1 -0
  779. package/dist/services/ai/ai-types.d.cts +105 -0
  780. package/dist/services/ai/ai-types.d.cts.map +1 -0
  781. package/dist/services/ai/ai-types.d.ts +105 -0
  782. package/dist/services/ai/ai-types.d.ts.map +1 -0
  783. package/dist/services/ai/ai-types.js +35 -0
  784. package/dist/services/ai/ai-types.js.map +1 -0
  785. package/dist/services/ai/anthropic-adapter.cjs +411 -0
  786. package/dist/services/ai/anthropic-adapter.cjs.map +1 -0
  787. package/dist/services/ai/anthropic-adapter.d.cts +1 -0
  788. package/dist/services/ai/anthropic-adapter.d.ts +1 -0
  789. package/dist/services/ai/anthropic-adapter.js +409 -0
  790. package/dist/services/ai/anthropic-adapter.js.map +1 -0
  791. package/dist/services/ai/base-client.cjs +345 -0
  792. package/dist/services/ai/base-client.cjs.map +1 -0
  793. package/dist/services/ai/base-client.d.cts +138 -0
  794. package/dist/services/ai/base-client.d.cts.map +1 -0
  795. package/dist/services/ai/base-client.d.ts +138 -0
  796. package/dist/services/ai/base-client.d.ts.map +1 -0
  797. package/dist/services/ai/base-client.js +345 -0
  798. package/dist/services/ai/base-client.js.map +1 -0
  799. package/dist/services/ai/openai-adapter.cjs +460 -0
  800. package/dist/services/ai/openai-adapter.cjs.map +1 -0
  801. package/dist/services/ai/openai-adapter.d.cts +1 -0
  802. package/dist/services/ai/openai-adapter.d.ts +1 -0
  803. package/dist/services/ai/openai-adapter.js +458 -0
  804. package/dist/services/ai/openai-adapter.js.map +1 -0
  805. package/dist/services/ai/openrouter-adapter.cjs +124 -0
  806. package/dist/services/ai/openrouter-adapter.cjs.map +1 -0
  807. package/dist/services/ai/openrouter-adapter.d.cts +1 -0
  808. package/dist/services/ai/openrouter-adapter.d.ts +1 -0
  809. package/dist/services/ai/openrouter-adapter.js +122 -0
  810. package/dist/services/ai/openrouter-adapter.js.map +1 -0
  811. package/dist/services/ai/provider-adapter.cjs +72 -0
  812. package/dist/services/ai/provider-adapter.cjs.map +1 -0
  813. package/dist/services/ai/provider-adapter.d.cts +81 -0
  814. package/dist/services/ai/provider-adapter.d.cts.map +1 -0
  815. package/dist/services/ai/provider-adapter.d.ts +81 -0
  816. package/dist/services/ai/provider-adapter.d.ts.map +1 -0
  817. package/dist/services/ai/provider-adapter.js +72 -0
  818. package/dist/services/ai/provider-adapter.js.map +1 -0
  819. package/dist/services/auth/authorization.service.cjs +259 -0
  820. package/dist/services/auth/authorization.service.cjs.map +1 -0
  821. package/dist/services/auth/authorization.service.d.cts +102 -0
  822. package/dist/services/auth/authorization.service.d.cts.map +1 -0
  823. package/dist/services/auth/authorization.service.d.ts +102 -0
  824. package/dist/services/auth/authorization.service.d.ts.map +1 -0
  825. package/dist/services/auth/authorization.service.js +257 -0
  826. package/dist/services/auth/authorization.service.js.map +1 -0
  827. package/dist/services/auth/flow-access.service.cjs +259 -0
  828. package/dist/services/auth/flow-access.service.cjs.map +1 -0
  829. package/dist/services/auth/flow-access.service.d.cts +89 -0
  830. package/dist/services/auth/flow-access.service.d.cts.map +1 -0
  831. package/dist/services/auth/flow-access.service.d.ts +89 -0
  832. package/dist/services/auth/flow-access.service.d.ts.map +1 -0
  833. package/dist/services/auth/flow-access.service.js +259 -0
  834. package/dist/services/auth/flow-access.service.js.map +1 -0
  835. package/dist/services/auth/index.d.ts +2 -0
  836. package/dist/services/batch-jobs/batch-jobs.model.cjs +213 -0
  837. package/dist/services/batch-jobs/batch-jobs.model.cjs.map +1 -0
  838. package/dist/services/batch-jobs/batch-jobs.model.d.cts +79 -0
  839. package/dist/services/batch-jobs/batch-jobs.model.d.cts.map +1 -0
  840. package/dist/services/batch-jobs/batch-jobs.model.d.ts +79 -0
  841. package/dist/services/batch-jobs/batch-jobs.model.d.ts.map +1 -0
  842. package/dist/services/batch-jobs/batch-jobs.model.js +213 -0
  843. package/dist/services/batch-jobs/batch-jobs.model.js.map +1 -0
  844. package/dist/services/batch-jobs/batch-jobs.service.cjs +178 -0
  845. package/dist/services/batch-jobs/batch-jobs.service.cjs.map +1 -0
  846. package/dist/services/batch-jobs/batch-jobs.service.d.cts +83 -0
  847. package/dist/services/batch-jobs/batch-jobs.service.d.cts.map +1 -0
  848. package/dist/services/batch-jobs/batch-jobs.service.d.ts +83 -0
  849. package/dist/services/batch-jobs/batch-jobs.service.d.ts.map +1 -0
  850. package/dist/services/batch-jobs/batch-jobs.service.js +178 -0
  851. package/dist/services/batch-jobs/batch-jobs.service.js.map +1 -0
  852. package/dist/services/chat/chat-messages.model.cjs +143 -0
  853. package/dist/services/chat/chat-messages.model.cjs.map +1 -0
  854. package/dist/services/chat/chat-messages.model.d.cts +43 -0
  855. package/dist/services/chat/chat-messages.model.d.cts.map +1 -0
  856. package/dist/services/chat/chat-messages.model.d.ts +43 -0
  857. package/dist/services/chat/chat-messages.model.d.ts.map +1 -0
  858. package/dist/services/chat/chat-messages.model.js +142 -0
  859. package/dist/services/chat/chat-messages.model.js.map +1 -0
  860. package/dist/services/chat/chat-stream-session.cjs +181 -0
  861. package/dist/services/chat/chat-stream-session.cjs.map +1 -0
  862. package/dist/services/chat/chat-stream-session.d.cts +1 -0
  863. package/dist/services/chat/chat-stream-session.d.ts +1 -0
  864. package/dist/services/chat/chat-stream-session.js +181 -0
  865. package/dist/services/chat/chat-stream-session.js.map +1 -0
  866. package/dist/services/chat/chat-stream.service.cjs +205 -0
  867. package/dist/services/chat/chat-stream.service.cjs.map +1 -0
  868. package/dist/services/chat/chat-stream.service.d.cts +84 -0
  869. package/dist/services/chat/chat-stream.service.d.cts.map +1 -0
  870. package/dist/services/chat/chat-stream.service.d.ts +84 -0
  871. package/dist/services/chat/chat-stream.service.d.ts.map +1 -0
  872. package/dist/services/chat/chat-stream.service.js +205 -0
  873. package/dist/services/chat/chat-stream.service.js.map +1 -0
  874. package/dist/services/chat/chat-toolkit.cjs +125 -0
  875. package/dist/services/chat/chat-toolkit.cjs.map +1 -0
  876. package/dist/services/chat/chat-toolkit.d.cts +58 -0
  877. package/dist/services/chat/chat-toolkit.d.cts.map +1 -0
  878. package/dist/services/chat/chat-toolkit.d.ts +58 -0
  879. package/dist/services/chat/chat-toolkit.d.ts.map +1 -0
  880. package/dist/services/chat/chat-toolkit.js +124 -0
  881. package/dist/services/chat/chat-toolkit.js.map +1 -0
  882. package/dist/services/chat/chat-types.cjs +24 -0
  883. package/dist/services/chat/chat-types.cjs.map +1 -0
  884. package/dist/services/chat/chat-types.d.cts +134 -0
  885. package/dist/services/chat/chat-types.d.cts.map +1 -0
  886. package/dist/services/chat/chat-types.d.ts +134 -0
  887. package/dist/services/chat/chat-types.d.ts.map +1 -0
  888. package/dist/services/chat/chat-types.js +23 -0
  889. package/dist/services/chat/chat-types.js.map +1 -0
  890. package/dist/services/chat/index.cjs +5 -0
  891. package/dist/services/chat/index.d.cts +3 -0
  892. package/dist/services/chat/index.d.ts +3 -0
  893. package/dist/services/chat/index.js +6 -0
  894. package/dist/services/chat/system-prompt.cjs +223 -0
  895. package/dist/services/chat/system-prompt.cjs.map +1 -0
  896. package/dist/services/chat/system-prompt.d.cts +1 -0
  897. package/dist/services/chat/system-prompt.d.ts +1 -0
  898. package/dist/services/chat/system-prompt.js +223 -0
  899. package/dist/services/chat/system-prompt.js.map +1 -0
  900. package/dist/services/chat/tools/agent-tools.cjs +472 -0
  901. package/dist/services/chat/tools/agent-tools.cjs.map +1 -0
  902. package/dist/services/chat/tools/agent-tools.js +471 -0
  903. package/dist/services/chat/tools/agent-tools.js.map +1 -0
  904. package/dist/services/chat/tools/context-tools.cjs +252 -0
  905. package/dist/services/chat/tools/context-tools.cjs.map +1 -0
  906. package/dist/services/chat/tools/context-tools.js +251 -0
  907. package/dist/services/chat/tools/context-tools.js.map +1 -0
  908. package/dist/services/chat/tools/flow-tools.cjs +244 -0
  909. package/dist/services/chat/tools/flow-tools.cjs.map +1 -0
  910. package/dist/services/chat/tools/flow-tools.js +243 -0
  911. package/dist/services/chat/tools/flow-tools.js.map +1 -0
  912. package/dist/services/chat/tools/index.cjs +22 -0
  913. package/dist/services/chat/tools/index.cjs.map +1 -0
  914. package/dist/services/chat/tools/index.js +22 -0
  915. package/dist/services/chat/tools/index.js.map +1 -0
  916. package/dist/services/chat/tools/node-tools.cjs +323 -0
  917. package/dist/services/chat/tools/node-tools.cjs.map +1 -0
  918. package/dist/services/chat/tools/node-tools.js +322 -0
  919. package/dist/services/chat/tools/node-tools.js.map +1 -0
  920. package/dist/services/chat/tools/plan-tools.cjs +94 -0
  921. package/dist/services/chat/tools/plan-tools.cjs.map +1 -0
  922. package/dist/services/chat/tools/plan-tools.js +93 -0
  923. package/dist/services/chat/tools/plan-tools.js.map +1 -0
  924. package/dist/services/chat/tools/run-tools.cjs +121 -0
  925. package/dist/services/chat/tools/run-tools.cjs.map +1 -0
  926. package/dist/services/chat/tools/run-tools.js +120 -0
  927. package/dist/services/chat/tools/run-tools.js.map +1 -0
  928. package/dist/services/credentials/credentials.model.cjs +313 -0
  929. package/dist/services/credentials/credentials.model.cjs.map +1 -0
  930. package/dist/services/credentials/credentials.model.d.cts +27 -0
  931. package/dist/services/credentials/credentials.model.d.cts.map +1 -0
  932. package/dist/services/credentials/credentials.model.d.ts +27 -0
  933. package/dist/services/credentials/credentials.model.d.ts.map +1 -0
  934. package/dist/services/credentials/credentials.model.js +312 -0
  935. package/dist/services/credentials/credentials.model.js.map +1 -0
  936. package/dist/services/credentials/credentials.service.cjs +358 -0
  937. package/dist/services/credentials/credentials.service.cjs.map +1 -0
  938. package/dist/services/credentials/credentials.service.d.cts +156 -0
  939. package/dist/services/credentials/credentials.service.d.cts.map +1 -0
  940. package/dist/services/credentials/credentials.service.d.ts +156 -0
  941. package/dist/services/credentials/credentials.service.d.ts.map +1 -0
  942. package/dist/services/credentials/credentials.service.js +357 -0
  943. package/dist/services/credentials/credentials.service.js.map +1 -0
  944. package/dist/services/credentials/encryption.service.cjs +121 -0
  945. package/dist/services/credentials/encryption.service.cjs.map +1 -0
  946. package/dist/services/credentials/encryption.service.d.cts +70 -0
  947. package/dist/services/credentials/encryption.service.d.cts.map +1 -0
  948. package/dist/services/credentials/encryption.service.d.ts +70 -0
  949. package/dist/services/credentials/encryption.service.d.ts.map +1 -0
  950. package/dist/services/credentials/encryption.service.js +119 -0
  951. package/dist/services/credentials/encryption.service.js.map +1 -0
  952. package/dist/services/credentials/index.d.cts +4 -0
  953. package/dist/services/credentials/index.d.ts +4 -0
  954. package/dist/services/credentials/oauth2-providers.cjs +668 -0
  955. package/dist/services/credentials/oauth2-providers.cjs.map +1 -0
  956. package/dist/services/credentials/oauth2-providers.d.cts +39 -0
  957. package/dist/services/credentials/oauth2-providers.d.cts.map +1 -0
  958. package/dist/services/credentials/oauth2-providers.d.ts +39 -0
  959. package/dist/services/credentials/oauth2-providers.d.ts.map +1 -0
  960. package/dist/services/credentials/oauth2-providers.js +667 -0
  961. package/dist/services/credentials/oauth2-providers.js.map +1 -0
  962. package/dist/services/credentials/oauth2.service.cjs +252 -0
  963. package/dist/services/credentials/oauth2.service.cjs.map +1 -0
  964. package/dist/services/credentials/oauth2.service.d.cts +132 -0
  965. package/dist/services/credentials/oauth2.service.d.cts.map +1 -0
  966. package/dist/services/credentials/oauth2.service.d.ts +132 -0
  967. package/dist/services/credentials/oauth2.service.d.ts.map +1 -0
  968. package/dist/services/credentials/oauth2.service.js +251 -0
  969. package/dist/services/credentials/oauth2.service.js.map +1 -0
  970. package/dist/services/database/database.service.cjs +469 -0
  971. package/dist/services/database/database.service.cjs.map +1 -0
  972. package/dist/services/database/database.service.d.cts +162 -0
  973. package/dist/services/database/database.service.d.cts.map +1 -0
  974. package/dist/services/database/database.service.d.ts +162 -0
  975. package/dist/services/database/database.service.d.ts.map +1 -0
  976. package/dist/services/database/database.service.js +469 -0
  977. package/dist/services/database/database.service.js.map +1 -0
  978. package/dist/services/execution-event-bus.cjs +80 -0
  979. package/dist/services/execution-event-bus.cjs.map +1 -0
  980. package/dist/services/execution-event-bus.d.cts +57 -0
  981. package/dist/services/execution-event-bus.d.cts.map +1 -0
  982. package/dist/services/execution-event-bus.d.ts +57 -0
  983. package/dist/services/execution-event-bus.d.ts.map +1 -0
  984. package/dist/services/execution-event-bus.js +77 -0
  985. package/dist/services/execution-event-bus.js.map +1 -0
  986. package/dist/services/flow-orchestration/flow-run-coordinator.cjs +499 -0
  987. package/dist/services/flow-orchestration/flow-run-coordinator.cjs.map +1 -0
  988. package/dist/services/flow-orchestration/flow-run-coordinator.js +499 -0
  989. package/dist/services/flow-orchestration/flow-run-coordinator.js.map +1 -0
  990. package/dist/services/flow-orchestration/node-execution-coordinator.cjs +657 -0
  991. package/dist/services/flow-orchestration/node-execution-coordinator.cjs.map +1 -0
  992. package/dist/services/flow-orchestration/node-execution-coordinator.js +657 -0
  993. package/dist/services/flow-orchestration/node-execution-coordinator.js.map +1 -0
  994. package/dist/services/flow-orchestration.service.cjs +493 -0
  995. package/dist/services/flow-orchestration.service.cjs.map +1 -0
  996. package/dist/services/flow-orchestration.service.d.cts +149 -0
  997. package/dist/services/flow-orchestration.service.d.cts.map +1 -0
  998. package/dist/services/flow-orchestration.service.d.ts +149 -0
  999. package/dist/services/flow-orchestration.service.d.ts.map +1 -0
  1000. package/dist/services/flow-orchestration.service.js +493 -0
  1001. package/dist/services/flow-orchestration.service.js.map +1 -0
  1002. package/dist/services/flow-runs/flow-runs.model.cjs +403 -0
  1003. package/dist/services/flow-runs/flow-runs.model.cjs.map +1 -0
  1004. package/dist/services/flow-runs/flow-runs.model.d.cts +113 -0
  1005. package/dist/services/flow-runs/flow-runs.model.d.cts.map +1 -0
  1006. package/dist/services/flow-runs/flow-runs.model.d.ts +113 -0
  1007. package/dist/services/flow-runs/flow-runs.model.d.ts.map +1 -0
  1008. package/dist/services/flow-runs/flow-runs.model.js +403 -0
  1009. package/dist/services/flow-runs/flow-runs.model.js.map +1 -0
  1010. package/dist/services/flow-runs/flow-runs.service.cjs +273 -0
  1011. package/dist/services/flow-runs/flow-runs.service.cjs.map +1 -0
  1012. package/dist/services/flow-runs/flow-runs.service.d.cts +129 -0
  1013. package/dist/services/flow-runs/flow-runs.service.d.cts.map +1 -0
  1014. package/dist/services/flow-runs/flow-runs.service.d.ts +129 -0
  1015. package/dist/services/flow-runs/flow-runs.service.d.ts.map +1 -0
  1016. package/dist/services/flow-runs/flow-runs.service.js +273 -0
  1017. package/dist/services/flow-runs/flow-runs.service.js.map +1 -0
  1018. package/dist/services/flow-validator.cjs +149 -0
  1019. package/dist/services/flow-validator.cjs.map +1 -0
  1020. package/dist/services/flow-validator.js +149 -0
  1021. package/dist/services/flow-validator.js.map +1 -0
  1022. package/dist/services/flow-versions/flow-versions.model.cjs +231 -0
  1023. package/dist/services/flow-versions/flow-versions.model.cjs.map +1 -0
  1024. package/dist/services/flow-versions/flow-versions.model.d.cts +55 -0
  1025. package/dist/services/flow-versions/flow-versions.model.d.cts.map +1 -0
  1026. package/dist/services/flow-versions/flow-versions.model.d.ts +55 -0
  1027. package/dist/services/flow-versions/flow-versions.model.d.ts.map +1 -0
  1028. package/dist/services/flow-versions/flow-versions.model.js +231 -0
  1029. package/dist/services/flow-versions/flow-versions.model.js.map +1 -0
  1030. package/dist/services/flow-versions/flow-versions.service.cjs +72 -0
  1031. package/dist/services/flow-versions/flow-versions.service.cjs.map +1 -0
  1032. package/dist/services/flow-versions/flow-versions.service.d.cts +63 -0
  1033. package/dist/services/flow-versions/flow-versions.service.d.cts.map +1 -0
  1034. package/dist/services/flow-versions/flow-versions.service.d.ts +63 -0
  1035. package/dist/services/flow-versions/flow-versions.service.d.ts.map +1 -0
  1036. package/dist/services/flow-versions/flow-versions.service.js +72 -0
  1037. package/dist/services/flow-versions/flow-versions.service.js.map +1 -0
  1038. package/dist/services/flow-versions/schemas-fresh.cjs +90 -0
  1039. package/dist/services/flow-versions/schemas-fresh.cjs.map +1 -0
  1040. package/dist/services/flow-versions/schemas-fresh.d.cts +201 -0
  1041. package/dist/services/flow-versions/schemas-fresh.d.cts.map +1 -0
  1042. package/dist/services/flow-versions/schemas-fresh.d.ts +201 -0
  1043. package/dist/services/flow-versions/schemas-fresh.d.ts.map +1 -0
  1044. package/dist/services/flow-versions/schemas-fresh.js +85 -0
  1045. package/dist/services/flow-versions/schemas-fresh.js.map +1 -0
  1046. package/dist/services/flows/flows.model.cjs +273 -0
  1047. package/dist/services/flows/flows.model.cjs.map +1 -0
  1048. package/dist/services/flows/flows.model.d.cts +105 -0
  1049. package/dist/services/flows/flows.model.d.cts.map +1 -0
  1050. package/dist/services/flows/flows.model.d.ts +105 -0
  1051. package/dist/services/flows/flows.model.d.ts.map +1 -0
  1052. package/dist/services/flows/flows.model.js +273 -0
  1053. package/dist/services/flows/flows.model.js.map +1 -0
  1054. package/dist/services/flows/flows.service.cjs +134 -0
  1055. package/dist/services/flows/flows.service.cjs.map +1 -0
  1056. package/dist/services/flows/flows.service.d.cts +105 -0
  1057. package/dist/services/flows/flows.service.d.cts.map +1 -0
  1058. package/dist/services/flows/flows.service.d.ts +105 -0
  1059. package/dist/services/flows/flows.service.d.ts.map +1 -0
  1060. package/dist/services/flows/flows.service.js +134 -0
  1061. package/dist/services/flows/flows.service.js.map +1 -0
  1062. package/dist/services/graph.service.cjs +375 -0
  1063. package/dist/services/graph.service.cjs.map +1 -0
  1064. package/dist/services/graph.service.d.cts +90 -0
  1065. package/dist/services/graph.service.d.cts.map +1 -0
  1066. package/dist/services/graph.service.d.ts +90 -0
  1067. package/dist/services/graph.service.d.ts.map +1 -0
  1068. package/dist/services/graph.service.js +375 -0
  1069. package/dist/services/graph.service.js.map +1 -0
  1070. package/dist/services/node-data.service.cjs +232 -0
  1071. package/dist/services/node-data.service.cjs.map +1 -0
  1072. package/dist/services/node-data.service.d.cts +119 -0
  1073. package/dist/services/node-data.service.d.cts.map +1 -0
  1074. package/dist/services/node-data.service.d.ts +119 -0
  1075. package/dist/services/node-data.service.d.ts.map +1 -0
  1076. package/dist/services/node-data.service.js +230 -0
  1077. package/dist/services/node-data.service.js.map +1 -0
  1078. package/dist/services/node-executions/node-execution.service.cjs +236 -0
  1079. package/dist/services/node-executions/node-execution.service.cjs.map +1 -0
  1080. package/dist/services/node-executions/node-execution.service.d.cts +126 -0
  1081. package/dist/services/node-executions/node-execution.service.d.cts.map +1 -0
  1082. package/dist/services/node-executions/node-execution.service.d.ts +126 -0
  1083. package/dist/services/node-executions/node-execution.service.d.ts.map +1 -0
  1084. package/dist/services/node-executions/node-execution.service.js +236 -0
  1085. package/dist/services/node-executions/node-execution.service.js.map +1 -0
  1086. package/dist/services/node-executions/node-executions.model.cjs +300 -0
  1087. package/dist/services/node-executions/node-executions.model.cjs.map +1 -0
  1088. package/dist/services/node-executions/node-executions.model.d.cts +102 -0
  1089. package/dist/services/node-executions/node-executions.model.d.cts.map +1 -0
  1090. package/dist/services/node-executions/node-executions.model.d.ts +102 -0
  1091. package/dist/services/node-executions/node-executions.model.d.ts.map +1 -0
  1092. package/dist/services/node-executions/node-executions.model.js +300 -0
  1093. package/dist/services/node-executions/node-executions.model.js.map +1 -0
  1094. package/dist/services/plugin-manager.cjs +205 -0
  1095. package/dist/services/plugin-manager.cjs.map +1 -0
  1096. package/dist/services/plugin-manager.js +205 -0
  1097. package/dist/services/plugin-manager.js.map +1 -0
  1098. package/dist/services/react-flow-renderer.service.cjs +236 -0
  1099. package/dist/services/react-flow-renderer.service.cjs.map +1 -0
  1100. package/dist/services/react-flow-renderer.service.d.cts +149 -0
  1101. package/dist/services/react-flow-renderer.service.d.cts.map +1 -0
  1102. package/dist/services/react-flow-renderer.service.d.ts +149 -0
  1103. package/dist/services/react-flow-renderer.service.d.ts.map +1 -0
  1104. package/dist/services/react-flow-renderer.service.js +235 -0
  1105. package/dist/services/react-flow-renderer.service.js.map +1 -0
  1106. package/dist/services/service-factory.cjs +301 -0
  1107. package/dist/services/service-factory.cjs.map +1 -0
  1108. package/dist/services/service-factory.d.cts +172 -0
  1109. package/dist/services/service-factory.d.cts.map +1 -0
  1110. package/dist/services/service-factory.d.ts +172 -0
  1111. package/dist/services/service-factory.d.ts.map +1 -0
  1112. package/dist/services/service-factory.js +301 -0
  1113. package/dist/services/service-factory.js.map +1 -0
  1114. package/dist/services/templating/index.cjs +2 -0
  1115. package/dist/services/templating/index.d.ts +2 -0
  1116. package/dist/services/templating/index.js +3 -0
  1117. package/dist/services/templating/js-expression.service.cjs +148 -0
  1118. package/dist/services/templating/js-expression.service.cjs.map +1 -0
  1119. package/dist/services/templating/js-expression.service.d.cts +61 -0
  1120. package/dist/services/templating/js-expression.service.d.cts.map +1 -0
  1121. package/dist/services/templating/js-expression.service.d.ts +60 -0
  1122. package/dist/services/templating/js-expression.service.d.ts.map +1 -0
  1123. package/dist/services/templating/js-expression.service.js +143 -0
  1124. package/dist/services/templating/js-expression.service.js.map +1 -0
  1125. package/dist/services/templating/template.service.cjs +182 -0
  1126. package/dist/services/templating/template.service.cjs.map +1 -0
  1127. package/dist/services/templating/template.service.d.cts +62 -0
  1128. package/dist/services/templating/template.service.d.cts.map +1 -0
  1129. package/dist/services/templating/template.service.d.ts +62 -0
  1130. package/dist/services/templating/template.service.d.ts.map +1 -0
  1131. package/dist/services/templating/template.service.js +180 -0
  1132. package/dist/services/templating/template.service.js.map +1 -0
  1133. package/dist/services/triggers/cron-scheduler.service.cjs +141 -0
  1134. package/dist/services/triggers/cron-scheduler.service.cjs.map +1 -0
  1135. package/dist/services/triggers/cron-scheduler.service.d.cts +36 -0
  1136. package/dist/services/triggers/cron-scheduler.service.d.cts.map +1 -0
  1137. package/dist/services/triggers/cron-scheduler.service.d.ts +36 -0
  1138. package/dist/services/triggers/cron-scheduler.service.d.ts.map +1 -0
  1139. package/dist/services/triggers/cron-scheduler.service.js +140 -0
  1140. package/dist/services/triggers/cron-scheduler.service.js.map +1 -0
  1141. package/dist/services/triggers/flow-triggers.model.cjs +241 -0
  1142. package/dist/services/triggers/flow-triggers.model.cjs.map +1 -0
  1143. package/dist/services/triggers/flow-triggers.model.d.cts +53 -0
  1144. package/dist/services/triggers/flow-triggers.model.d.cts.map +1 -0
  1145. package/dist/services/triggers/flow-triggers.model.d.ts +53 -0
  1146. package/dist/services/triggers/flow-triggers.model.d.ts.map +1 -0
  1147. package/dist/services/triggers/flow-triggers.model.js +241 -0
  1148. package/dist/services/triggers/flow-triggers.model.js.map +1 -0
  1149. package/dist/services/triggers/flow-triggers.service.cjs +218 -0
  1150. package/dist/services/triggers/flow-triggers.service.cjs.map +1 -0
  1151. package/dist/services/triggers/flow-triggers.service.d.cts +77 -0
  1152. package/dist/services/triggers/flow-triggers.service.d.cts.map +1 -0
  1153. package/dist/services/triggers/flow-triggers.service.d.ts +77 -0
  1154. package/dist/services/triggers/flow-triggers.service.d.ts.map +1 -0
  1155. package/dist/services/triggers/flow-triggers.service.js +217 -0
  1156. package/dist/services/triggers/flow-triggers.service.js.map +1 -0
  1157. package/dist/services/triggers/index.cjs +3 -0
  1158. package/dist/services/triggers/index.d.cts +4 -0
  1159. package/dist/services/triggers/index.d.ts +4 -0
  1160. package/dist/services/triggers/index.js +4 -0
  1161. package/dist/services/triggers/trigger.types.d.cts +63 -0
  1162. package/dist/services/triggers/trigger.types.d.cts.map +1 -0
  1163. package/dist/services/triggers/trigger.types.d.ts +63 -0
  1164. package/dist/services/triggers/trigger.types.d.ts.map +1 -0
  1165. package/dist/types/agent-tool.types.cjs +20 -0
  1166. package/dist/types/agent-tool.types.cjs.map +1 -0
  1167. package/dist/types/agent-tool.types.d.cts +211 -0
  1168. package/dist/types/agent-tool.types.d.cts.map +1 -0
  1169. package/dist/types/agent-tool.types.d.ts +211 -0
  1170. package/dist/types/agent-tool.types.d.ts.map +1 -0
  1171. package/dist/types/agent-tool.types.js +18 -0
  1172. package/dist/types/agent-tool.types.js.map +1 -0
  1173. package/dist/types/auth.types.cjs +76 -0
  1174. package/dist/types/auth.types.cjs.map +1 -0
  1175. package/dist/types/auth.types.d.cts +235 -0
  1176. package/dist/types/auth.types.d.cts.map +1 -0
  1177. package/dist/types/auth.types.d.ts +235 -0
  1178. package/dist/types/auth.types.d.ts.map +1 -0
  1179. package/dist/types/auth.types.js +75 -0
  1180. package/dist/types/auth.types.js.map +1 -0
  1181. package/dist/types/base.cjs +25 -0
  1182. package/dist/types/base.cjs.map +1 -0
  1183. package/dist/types/base.d.cts +21 -0
  1184. package/dist/types/base.d.cts.map +1 -0
  1185. package/dist/types/base.d.ts +21 -0
  1186. package/dist/types/base.d.ts.map +1 -0
  1187. package/dist/types/base.js +24 -0
  1188. package/dist/types/base.js.map +1 -0
  1189. package/dist/types/common/errors.types.cjs +46 -0
  1190. package/dist/types/common/errors.types.cjs.map +1 -0
  1191. package/dist/types/common/errors.types.js +44 -0
  1192. package/dist/types/common/errors.types.js.map +1 -0
  1193. package/dist/types/graph-node-types.cjs +46 -0
  1194. package/dist/types/graph-node-types.cjs.map +1 -0
  1195. package/dist/types/graph-node-types.d.cts +32 -0
  1196. package/dist/types/graph-node-types.d.cts.map +1 -0
  1197. package/dist/types/graph-node-types.d.ts +32 -0
  1198. package/dist/types/graph-node-types.d.ts.map +1 -0
  1199. package/dist/types/graph-node-types.js +45 -0
  1200. package/dist/types/graph-node-types.js.map +1 -0
  1201. package/dist/types/node-config-update.types.d.cts +33 -0
  1202. package/dist/types/node-config-update.types.d.cts.map +1 -0
  1203. package/dist/types/node-config-update.types.d.ts +33 -0
  1204. package/dist/types/node-config-update.types.d.ts.map +1 -0
  1205. package/dist/types/node-definition.types.d.cts +88 -0
  1206. package/dist/types/node-definition.types.d.cts.map +1 -0
  1207. package/dist/types/node-definition.types.d.ts +88 -0
  1208. package/dist/types/node-definition.types.d.ts.map +1 -0
  1209. package/dist/types/node-execution.types.d.cts +39 -0
  1210. package/dist/types/node-execution.types.d.cts.map +1 -0
  1211. package/dist/types/node-execution.types.d.ts +39 -0
  1212. package/dist/types/node-execution.types.d.ts.map +1 -0
  1213. package/dist/types/node-io-types.cjs +19 -0
  1214. package/dist/types/node-io-types.cjs.map +1 -0
  1215. package/dist/types/node-io-types.d.cts +65 -0
  1216. package/dist/types/node-io-types.d.cts.map +1 -0
  1217. package/dist/types/node-io-types.d.ts +65 -0
  1218. package/dist/types/node-io-types.d.ts.map +1 -0
  1219. package/dist/types/node-io-types.js +18 -0
  1220. package/dist/types/node-io-types.js.map +1 -0
  1221. package/dist/types/node-output-schemas.cjs +51 -0
  1222. package/dist/types/node-output-schemas.cjs.map +1 -0
  1223. package/dist/types/node-output-schemas.js +50 -0
  1224. package/dist/types/node-output-schemas.js.map +1 -0
  1225. package/dist/types/plugin.types.d.cts +654 -0
  1226. package/dist/types/plugin.types.d.cts.map +1 -0
  1227. package/dist/types/plugin.types.d.ts +654 -0
  1228. package/dist/types/plugin.types.d.ts.map +1 -0
  1229. package/dist/types/schemas/flow/create-flow-version.schema.cjs +1 -0
  1230. package/dist/types/schemas/flow/create-flow-version.schema.d.ts +1 -0
  1231. package/dist/types/schemas/flow/create-flow-version.schema.js +2 -0
  1232. package/dist/types/schemas/flow/create-flow.schema.cjs +9 -0
  1233. package/dist/types/schemas/flow/create-flow.schema.cjs.map +1 -0
  1234. package/dist/types/schemas/flow/create-flow.schema.d.cts +14 -0
  1235. package/dist/types/schemas/flow/create-flow.schema.d.cts.map +1 -0
  1236. package/dist/types/schemas/flow/create-flow.schema.d.ts +14 -0
  1237. package/dist/types/schemas/flow/create-flow.schema.d.ts.map +1 -0
  1238. package/dist/types/schemas/flow/create-flow.schema.js +10 -0
  1239. package/dist/types/schemas/flow/create-flow.schema.js.map +1 -0
  1240. package/dist/types/schemas/flow/delete-flow.schema.cjs +11 -0
  1241. package/dist/types/schemas/flow/delete-flow.schema.cjs.map +1 -0
  1242. package/dist/types/schemas/flow/delete-flow.schema.d.ts +1 -0
  1243. package/dist/types/schemas/flow/delete-flow.schema.js +11 -0
  1244. package/dist/types/schemas/flow/delete-flow.schema.js.map +1 -0
  1245. package/dist/types/schemas/flow/flow-executions.schema.cjs +36 -0
  1246. package/dist/types/schemas/flow/flow-executions.schema.cjs.map +1 -0
  1247. package/dist/types/schemas/flow/flow-executions.schema.d.ts +1 -0
  1248. package/dist/types/schemas/flow/flow-executions.schema.js +35 -0
  1249. package/dist/types/schemas/flow/flow-executions.schema.js.map +1 -0
  1250. package/dist/types/schemas/flow/get-flow-by-id-response.schema.cjs +7 -0
  1251. package/dist/types/schemas/flow/get-flow-by-id-response.schema.cjs.map +1 -0
  1252. package/dist/types/schemas/flow/get-flow-by-id-response.schema.d.ts +1 -0
  1253. package/dist/types/schemas/flow/get-flow-by-id-response.schema.js +7 -0
  1254. package/dist/types/schemas/flow/get-flow-by-id-response.schema.js.map +1 -0
  1255. package/dist/types/schemas/flow/get-flow-versions-response.schema.cjs +1 -0
  1256. package/dist/types/schemas/flow/get-flow-versions-response.schema.d.ts +1 -0
  1257. package/dist/types/schemas/flow/get-flow-versions-response.schema.js +2 -0
  1258. package/dist/types/schemas/flow/get-flows-response.schema.cjs +6 -0
  1259. package/dist/types/schemas/flow/get-flows-response.schema.cjs.map +1 -0
  1260. package/dist/types/schemas/flow/get-flows-response.schema.d.ts +1 -0
  1261. package/dist/types/schemas/flow/get-flows-response.schema.js +7 -0
  1262. package/dist/types/schemas/flow/get-flows-response.schema.js.map +1 -0
  1263. package/dist/types/schemas/flow/index.cjs +9 -0
  1264. package/dist/types/schemas/flow/index.d.ts +1 -0
  1265. package/dist/types/schemas/flow/index.js +10 -0
  1266. package/dist/types/schemas/flow/update-flow.schema.cjs +1 -0
  1267. package/dist/types/schemas/flow/update-flow.schema.d.ts +1 -0
  1268. package/dist/types/schemas/flow/update-flow.schema.js +2 -0
  1269. package/dist/types/schemas/flow/validate-flow.schema.cjs +19 -0
  1270. package/dist/types/schemas/flow/validate-flow.schema.cjs.map +1 -0
  1271. package/dist/types/schemas/flow/validate-flow.schema.d.ts +1 -0
  1272. package/dist/types/schemas/flow/validate-flow.schema.js +19 -0
  1273. package/dist/types/schemas/flow/validate-flow.schema.js.map +1 -0
  1274. package/dist/types/schemas/index.cjs +3 -0
  1275. package/dist/types/schemas/index.d.ts +2 -0
  1276. package/dist/types/schemas/index.js +4 -0
  1277. package/dist/types/schemas/pagination-sort-filter.cjs +56 -0
  1278. package/dist/types/schemas/pagination-sort-filter.cjs.map +1 -0
  1279. package/dist/types/schemas/pagination-sort-filter.d.cts +38 -0
  1280. package/dist/types/schemas/pagination-sort-filter.d.cts.map +1 -0
  1281. package/dist/types/schemas/pagination-sort-filter.d.ts +38 -0
  1282. package/dist/types/schemas/pagination-sort-filter.d.ts.map +1 -0
  1283. package/dist/types/schemas/pagination-sort-filter.js +50 -0
  1284. package/dist/types/schemas/pagination-sort-filter.js.map +1 -0
  1285. package/dist/types/schemas-fresh/invect-config.cjs +181 -0
  1286. package/dist/types/schemas-fresh/invect-config.cjs.map +1 -0
  1287. package/dist/types/schemas-fresh/invect-config.d.cts +207 -0
  1288. package/dist/types/schemas-fresh/invect-config.d.cts.map +1 -0
  1289. package/dist/types/schemas-fresh/invect-config.d.ts +207 -0
  1290. package/dist/types/schemas-fresh/invect-config.d.ts.map +1 -0
  1291. package/dist/types/schemas-fresh/invect-config.js +174 -0
  1292. package/dist/types/schemas-fresh/invect-config.js.map +1 -0
  1293. package/dist/types/validation/common.schemas.cjs +41 -0
  1294. package/dist/types/validation/common.schemas.cjs.map +1 -0
  1295. package/dist/types/validation/common.schemas.js +39 -0
  1296. package/dist/types/validation/common.schemas.js.map +1 -0
  1297. package/dist/types/validation/flow.schemas.cjs +49 -0
  1298. package/dist/types/validation/flow.schemas.cjs.map +1 -0
  1299. package/dist/types/validation/flow.schemas.js +46 -0
  1300. package/dist/types/validation/flow.schemas.js.map +1 -0
  1301. package/dist/types/validation.cjs +49 -0
  1302. package/dist/types/validation.cjs.map +1 -0
  1303. package/dist/types/validation.d.cts +49 -0
  1304. package/dist/types/validation.d.cts.map +1 -0
  1305. package/dist/types/validation.d.ts +49 -0
  1306. package/dist/types/validation.d.ts.map +1 -0
  1307. package/dist/types/validation.js +48 -0
  1308. package/dist/types/validation.js.map +1 -0
  1309. package/dist/types-export.cjs +11 -0
  1310. package/dist/types-export.d.cts +25 -0
  1311. package/dist/types-export.d.ts +25 -0
  1312. package/dist/types-export.js +5 -0
  1313. package/dist/types-fresh.cjs +9 -0
  1314. package/dist/types-fresh.cjs.map +1 -0
  1315. package/dist/types-fresh.d.cts +129 -0
  1316. package/dist/types-fresh.d.cts.map +1 -0
  1317. package/dist/types-fresh.d.ts +129 -0
  1318. package/dist/types-fresh.d.ts.map +1 -0
  1319. package/dist/types-fresh.js +8 -0
  1320. package/dist/types-fresh.js.map +1 -0
  1321. package/dist/utils/id-generator.cjs +34 -0
  1322. package/dist/utils/id-generator.cjs.map +1 -0
  1323. package/dist/utils/id-generator.js +34 -0
  1324. package/dist/utils/id-generator.js.map +1 -0
  1325. package/dist/utils/logger.cjs +285 -0
  1326. package/dist/utils/logger.cjs.map +1 -0
  1327. package/dist/utils/logger.d.cts +161 -0
  1328. package/dist/utils/logger.d.cts.map +1 -0
  1329. package/dist/utils/logger.d.ts +160 -0
  1330. package/dist/utils/logger.d.ts.map +1 -0
  1331. package/dist/utils/logger.js +282 -0
  1332. package/dist/utils/logger.js.map +1 -0
  1333. package/dist/utils/node-slug.cjs +13 -0
  1334. package/dist/utils/node-slug.cjs.map +1 -0
  1335. package/dist/utils/node-slug.d.cts +8 -0
  1336. package/dist/utils/node-slug.d.cts.map +1 -0
  1337. package/dist/utils/node-slug.d.ts +8 -0
  1338. package/dist/utils/node-slug.d.ts.map +1 -0
  1339. package/dist/utils/node-slug.js +13 -0
  1340. package/dist/utils/node-slug.js.map +1 -0
  1341. package/dist/utils/provider-detection.cjs +72 -0
  1342. package/dist/utils/provider-detection.cjs.map +1 -0
  1343. package/dist/utils/provider-detection.js +72 -0
  1344. package/dist/utils/provider-detection.js.map +1 -0
  1345. package/dist/utils/url-safe-id.cjs +52 -0
  1346. package/dist/utils/url-safe-id.cjs.map +1 -0
  1347. package/dist/utils/url-safe-id.js +52 -0
  1348. package/dist/utils/url-safe-id.js.map +1 -0
  1349. package/package.json +121 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invect-core.cjs","names":["GraphNodeType","InvectConfigSchema","LoggerManager","createAuthorizationService","PluginManager","DatabaseError","initializeGlobalActionRegistry","JsExpressionService","getTemplateService","invectDefinitionSchema","FlowValidator","createFlowVersionRequestSchema","FlowRunStatus","ValidationError","detectProviderFromCredential","NodeExecutionStatus","BatchProvider","ServiceFactory","DefaultNodeRegistryFactory","initializeGlobalToolRegistry","getGlobalToolRegistry","createToolExecutorForAction"],"sources":["../src/invect-core.ts"],"sourcesContent":["// Core services and factories\nimport { ServiceFactory } from './services/service-factory';\nimport { DefaultNodeRegistryFactory, NodeExecutorRegistry } from './nodes/executor-registry';\nimport { FlowValidator } from './services/flow-validator';\nimport { GraphNodeType, SubmitAgentPromptRequest, NodeExecutionContext } from './types-fresh';\nimport { AgentNodeExecutor } from './nodes/agent-executor';\n\n// Database models\nimport type { Flow } from './services/flows/flows.model';\nimport type { FlowRun } from './services/flow-runs/flow-runs.model';\nimport type { NodeExecution } from './services/node-executions/node-executions.model';\nimport { FlowVersion } from './database';\nimport type { DatabaseConnection } from './database/connection';\n\n// Service interfaces and types\nimport type {\n ExecuteFlowOptions,\n FlowRunResult,\n FlowInputs,\n} from './services/flow-runs/flow-runs.service';\nimport type {\n SubmitPromptRequest,\n SubmitSQLQueryRequest,\n SQLQueryResult,\n} from './services/node-data.service';\nimport type {\n Credential,\n CreateCredentialInput,\n UpdateCredentialInput,\n CredentialFilters,\n} from './services/credentials';\n\nimport type {\n FlowTriggerRegistration,\n CreateTriggerInput,\n UpdateTriggerInput,\n} from './services/triggers';\n\n// Schemas and validation\nimport * as Schemas from './types/schemas';\nimport { InvectConfig, InvectConfigSchema, PaginatedResponse, QueryOptions } from './types/schemas';\nimport {\n CreateFlowVersionRequest,\n createFlowVersionRequestSchema,\n FlowNodeForType,\n InvectDefinition,\n invectDefinitionSchema,\n} from './services/flow-versions/schemas-fresh';\nimport type { CreateFlowRequest } from './types/schemas/flow/create-flow.schema';\nimport { FlowValidationResult } from './types/validation';\nimport type { UpdateFlowInput } from './services/flows/flows.model';\n\n// Utilities and errors\nimport {\n LoggerManager,\n ScopedLogger,\n type LogLevel,\n type ScopedLoggingConfig,\n} from './utils/logger';\nimport { DatabaseError, ValidationError } from './types/common/errors.types';\nimport { FlowRunStatus, NodeExecutionStatus } from './types/base';\nimport type { ExecutionStreamEvent } from './services/execution-event-bus';\n\n// Template + JS expression engine\nimport { JsExpressionService, getTemplateService } from './services/templating';\nimport type { TemplateService } from './services/templating';\n\n// React Flow renderer types\nimport type { ReactFlowData } from './services/react-flow-renderer.service';\nimport { NodeDefinition } from './types/node-definition.types';\nimport { BatchProvider, Model } from './services/ai/base-client';\nimport { detectProviderFromCredential } from './utils/provider-detection';\nimport type {\n NodeConfigUpdateEvent,\n NodeConfigUpdateResponse,\n} from './types/node-config-update.types';\n\n// Agent tools\nimport {\n AgentToolRegistry,\n initializeGlobalToolRegistry,\n getGlobalToolRegistry,\n} from './services/agent-tools';\n\n// Plugin system\nimport { PluginManager } from './services/plugin-manager';\nimport type {\n InvectPlugin,\n InvectPluginEndpoint,\n PluginDatabaseApi,\n PluginHookRunner,\n} from './types/plugin.types';\nimport type { AgentToolDefinition, AgentPromptResult } from './types/agent-tool.types';\n\n// Action registry (Provider-Actions architecture)\nimport {\n ActionRegistry,\n initializeGlobalActionRegistry,\n createToolExecutorForAction,\n registerBuiltinActions,\n} from './actions';\nimport type { ActionDefinition, ProviderDef, LoadOptionsResult } from './actions';\n\n// Authorization\nimport { AuthorizationService, createAuthorizationService } from './services/auth';\nimport type {\n InvectIdentity,\n InvectPermission,\n AuthorizationContext,\n AuthorizationResult,\n AuthEvent,\n InvectAuthConfig,\n} from './types/auth.types';\n\ntype PostgreSqlClientLike = {\n unsafe<T = Record<string, unknown>>(statement: string, params?: unknown[]): Promise<T[]>;\n};\n\ntype SqliteClientLike = {\n prepare(statement: string): {\n all(...params: unknown[]): unknown[];\n run(...params: unknown[]): unknown;\n };\n};\n\ntype MysqlClientLike = {\n execute<T = unknown>(statement: string, params?: unknown[]): Promise<[T, unknown]>;\n};\n\nfunction createPluginDatabaseApi(connection: DatabaseConnection): PluginDatabaseApi {\n const normalizeSql = (statement: string): string => {\n if (connection.type !== 'postgresql') {\n return statement;\n }\n\n let index = 0;\n return statement.replace(/\\?/g, () => `$${++index}`);\n };\n\n const query = async <T = Record<string, unknown>>(\n statement: string,\n params: unknown[] = [],\n ): Promise<T[]> => {\n switch (connection.type) {\n case 'postgresql': {\n const client = (connection.db as unknown as { $client: PostgreSqlClientLike }).$client;\n return client.unsafe<T>(normalizeSql(statement), params);\n }\n case 'sqlite': {\n const client = (connection.db as unknown as { $client: SqliteClientLike }).$client;\n return client.prepare(statement).all(...params) as T[];\n }\n case 'mysql': {\n const client = (connection.db as unknown as { $client: MysqlClientLike }).$client;\n const [rows] = await client.execute<T[]>(statement, params);\n return Array.isArray(rows) ? rows : [];\n }\n }\n };\n\n return {\n type: connection.type,\n query,\n async execute(statement: string, params: unknown[] = []): Promise<void> {\n switch (connection.type) {\n case 'postgresql': {\n const client = (connection.db as unknown as { $client: PostgreSqlClientLike }).$client;\n await client.unsafe(normalizeSql(statement), params);\n return;\n }\n case 'sqlite': {\n const client = (connection.db as unknown as { $client: SqliteClientLike }).$client;\n const coerced = params.map((param) =>\n typeof param === 'boolean' ? (param ? 1 : 0) : param,\n );\n client.prepare(statement).run(...coerced);\n return;\n }\n case 'mysql': {\n const client = (connection.db as unknown as { $client: MysqlClientLike }).$client;\n await client.execute(statement, params);\n return;\n }\n }\n },\n };\n}\n\n/**\n * Custom node configuration interface\n */\nexport interface CustomNodeConfig {\n nodeType: string;\n executor: string; // path to executor class or instance\n config?: Record<string, unknown>;\n}\n\n/**\n * Invect Core initialization status\n */\nexport interface CoreInitializationStatus {\n isInitialized: boolean;\n servicesReady: boolean;\n databaseReady: boolean;\n errors?: string[];\n}\n\n/**\n * Dashboard statistics returned by getDashboardStats()\n */\nexport interface DashboardStats {\n /** Total number of flows */\n totalFlows: number;\n /** Total number of flow runs (all time) */\n totalRuns: number;\n /** Number of runs in the last 24 hours */\n runsLast24h: number;\n /** Currently active runs (RUNNING + PENDING + PAUSED_FOR_BATCH) */\n activeRuns: number;\n /** Success rate as percentage (0-100) */\n successRate: number;\n /** Number of failed runs in the last 24 hours */\n failedRunsLast24h: number;\n /** Run counts keyed by FlowRunStatus */\n runsByStatus: Record<string, number>;\n /** Most recent 10 flow runs */\n recentRuns: FlowRun[];\n}\n\n/** Invect Core provider stub shared by all built-in legacy nodes. */\nconst _INVECT_CORE_PROVIDER: NonNullable<NodeDefinition['provider']> = {\n id: 'core',\n name: 'Invect Core',\n icon: 'Blocks',\n};\n\n/**\n * Provider overrides for specific legacy node types that are NOT core nodes.\n * If a legacy node type is listed here it gets that provider; otherwise it\n * gets INVECT_CORE_PROVIDER.\n */\nconst _LEGACY_NODE_PROVIDER_OVERRIDES: Record<string, NonNullable<NodeDefinition['provider']>> = {\n [GraphNodeType.GMAIL]: { id: 'gmail', name: 'Gmail', icon: 'Mail' },\n};\n\n/**\n * Main Invect Core class\n *\n * Provides a high-level API for flow operations with comprehensive lifecycle management.\n * This class orchestrates all flow-related operations including:\n * - Flow and flow version management\n * - Flow execution and monitoring\n * - Node execution tracking\n * - AI batch operations\n * - Testing and development utilities\n *\n * @example\n * ```typescript\n * const invect = new Invect(config);\n * await invect.initialize();\n *\n * const flow = await invect.createFlow({ name: \"My Flow\", description: \"...\" });\n * const result = await invect.startFlowRun(flow.id, inputs);\n *\n * await invect.shutdown();\n * ```\n */\nexport class Invect {\n protected serviceFactory: ServiceFactory | null = null;\n protected nodeRegistry: NodeExecutorRegistry | null = null;\n protected actionRegistry: ActionRegistry | null = null;\n private jsExpressionService: JsExpressionService | null = null;\n private templateService: TemplateService | null = null;\n private pluginManager: PluginManager;\n private initialized = false;\n private loggerManager: LoggerManager;\n private authService: AuthorizationService;\n\n /**\n * Creates a new Invect instance\n *\n * @param config - Invect configuration object\n */\n constructor(private readonly config: InvectConfig) {\n // Parse and validate the config to ensure defaults are applied\n this.config = InvectConfigSchema.parse(config);\n\n // Initialize logger manager with scoped logging support\n const loggingConfig: ScopedLoggingConfig = {\n level: this.config.logging?.level || 'info',\n scopes: this.config.logging?.scopes,\n };\n this.loggerManager = new LoggerManager(loggingConfig);\n\n // ALWAYS use the LoggerManager's basic logger for services\n // This ensures log level filtering is respected.\n // If you passed `logger: console`, it would bypass log level filtering\n // because console.debug() always outputs regardless of configured level.\n this.config.logger = this.loggerManager.getBasicLogger();\n\n // Initialize authorization service\n this.authService = createAuthorizationService({\n config: this.config.auth as InvectAuthConfig | undefined,\n logger: this.config.logger,\n });\n\n // Initialize plugin manager\n this.pluginManager = new PluginManager(\n (this.config.plugins as InvectPlugin[] | undefined) ?? [],\n );\n }\n\n // =====================================\n // AUTHORIZATION API\n // =====================================\n\n /**\n * Authorize an action for an identity.\n *\n * This is the main entry point for authorization checks. Framework adapters\n * (Express, NestJS, Next.js) should call this method to check permissions.\n *\n * @param context - Authorization context with identity, action, and optional resource\n * @returns Authorization result with allowed flag and optional reason\n *\n * @example\n * ```typescript\n * const result = await invect.authorize({\n * identity: { id: 'user_123', role: 'editor' },\n * action: 'flow:create',\n * });\n *\n * if (!result.allowed) {\n * throw new ForbiddenError(result.reason);\n * }\n * ```\n */\n async authorize(context: AuthorizationContext): Promise<AuthorizationResult> {\n const hookResult = await this.pluginManager.runOnAuthorize({\n ...context,\n database: this.serviceFactory\n ? createPluginDatabaseApi(this.serviceFactory.getDatabaseService().getConnection())\n : undefined,\n });\n if (hookResult) {\n return hookResult;\n }\n return this.authService.authorize(context);\n }\n\n /**\n * Check if a specific identity has a permission.\n * Convenience method that wraps authorize().\n */\n hasPermission(identity: InvectIdentity | null, permission: InvectPermission): boolean {\n return this.authService.hasPermission(identity, permission);\n }\n\n /**\n * Get all permissions for an identity.\n */\n getPermissions(identity: InvectIdentity | null): InvectPermission[] {\n return this.authService.getPermissions(identity);\n }\n\n // =====================================\n // PLUGIN API\n // =====================================\n\n /**\n * Check if a plugin is registered by ID.\n */\n hasPlugin(pluginId: string): boolean {\n return this.pluginManager.hasPlugin(pluginId);\n }\n\n /**\n * Get a registered plugin by ID.\n */\n getPlugin(pluginId: string): InvectPlugin | null {\n return this.pluginManager.getPlugin(pluginId);\n }\n\n /**\n * Get all registered plugins.\n */\n getPlugins(): readonly InvectPlugin[] {\n return this.pluginManager.getPlugins();\n }\n\n /**\n * Get all plugin-defined API endpoints.\n * Framework adapters use this to mount plugin routes.\n */\n getPluginEndpoints(): InvectPluginEndpoint[] {\n return this.pluginManager.getPluginEndpoints();\n }\n\n /**\n * Get the plugin hook runner for framework adapters.\n * Used to run onRequest/onResponse/onAuthorize hooks.\n */\n getPluginHookRunner(): PluginHookRunner {\n return this.pluginManager;\n }\n\n /**\n * Get the initialized host database connection.\n * Framework adapters use this to expose a narrow database API to plugins.\n */\n getDatabaseConnection(): DatabaseConnection {\n if (!this.serviceFactory) {\n throw new Error('ServiceFactory not initialized');\n }\n return this.serviceFactory.getDatabaseService().getConnection();\n }\n\n /**\n * Check if authentication is enabled.\n */\n isAuthEnabled(): boolean {\n return this.authService.isEnabled();\n }\n\n /**\n * Check if a route is public (no auth required).\n */\n isPublicRoute(path: string): boolean {\n return this.authService.isPublicRoute(path);\n }\n\n /**\n * Get the authorization service for advanced use cases.\n * The service extends EventEmitter and emits auth events.\n */\n getAuthService(): AuthorizationService {\n return this.authService;\n }\n\n /**\n * Get available roles and their permissions.\n * Useful for admin UIs to show role options.\n */\n getAvailableRoles() {\n return this.authService.getAvailableRoles();\n }\n\n /**\n * Subscribe to auth events for audit logging.\n *\n * @example\n * ```typescript\n * invect.onAuthEvent('auth:forbidden', (event) => {\n * auditLogger.warn('Access denied', event);\n * });\n * ```\n */\n onAuthEvent<T extends AuthEvent['type']>(\n event: T,\n listener: (event: Extract<AuthEvent, { type: T }>) => void,\n ): void {\n this.authService.on(event, listener);\n }\n\n // =====================================\n // FLOW ACCESS API (Invect-managed permissions)\n // =====================================\n\n /**\n * Check if flow access table is enabled.\n */\n isFlowAccessTableEnabled(): boolean {\n return !!this.config.auth?.useFlowAccessTable;\n }\n\n /**\n * Grant access to a flow for a user or team.\n * Requires useFlowAccessTable: true in config.\n *\n * @example\n * ```typescript\n * // Grant editor access to a user\n * await invect.grantFlowAccess({\n * flowId: 'flow_123',\n * userId: 'user_456',\n * permission: 'editor',\n * grantedBy: currentUser.id,\n * });\n *\n * // Grant viewer access to a team\n * await invect.grantFlowAccess({\n * flowId: 'flow_123',\n * teamId: 'team_abc',\n * permission: 'viewer',\n * });\n * ```\n */\n async grantFlowAccess(input: {\n flowId: string;\n userId?: string;\n teamId?: string;\n permission: 'owner' | 'editor' | 'operator' | 'viewer';\n grantedBy?: string;\n expiresAt?: Date | string;\n }) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.grantAccess(input);\n }\n\n /**\n * Revoke a specific flow access record.\n * Requires useFlowAccessTable: true in config.\n */\n async revokeFlowAccess(accessId: string) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.revokeAccess(accessId);\n }\n\n /**\n * Revoke all access to a flow for a specific user or team.\n * Requires useFlowAccessTable: true in config.\n */\n async revokeFlowAccessForUserOrTeam(flowId: string, userId?: string, teamId?: string) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.revokeAccessForUserOrTeam(flowId, userId, teamId);\n }\n\n /**\n * List all access records for a flow.\n * Requires useFlowAccessTable: true in config.\n */\n async listFlowAccess(flowId: string) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.listFlowAccess(flowId);\n }\n\n /**\n * Get all flows a user has access to (directly or via teams).\n * Requires useFlowAccessTable: true in config.\n */\n async getAccessibleFlowIds(userId: string, teamIds: string[] = []) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.getAccessibleFlowIds(userId, teamIds);\n }\n\n /**\n * Check if a user has access to a flow with at least the required permission.\n * Requires useFlowAccessTable: true in config.\n */\n async hasFlowAccess(\n flowId: string,\n userId: string,\n teamIds: string[] = [],\n requiredPermission: 'owner' | 'editor' | 'operator' | 'viewer' = 'viewer',\n ) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.hasFlowAccess(flowId, userId, teamIds, requiredPermission);\n }\n\n /**\n * Get the highest permission level a user has for a flow.\n * Requires useFlowAccessTable: true in config.\n */\n async getFlowPermission(flowId: string, userId: string, teamIds: string[] = []) {\n this.ensureInitialized();\n const flowAccessService = this.serviceFactory.getFlowAccessService();\n if (!flowAccessService) {\n throw new Error(\n 'Flow access table not enabled. Set auth.useFlowAccessTable: true in config.',\n );\n }\n return flowAccessService.getFlowPermission(flowId, userId, teamIds);\n }\n\n // =====================================\n // LOGGING MANAGEMENT\n // =====================================\n\n /**\n * Get a scoped logger for a specific feature area.\n *\n * Scoped loggers have independent log levels that can be configured\n * per scope via the logging.scopes configuration.\n *\n * @param scope - The scope/feature area (use LogScope constants)\n * @param context - Optional additional context (e.g., class name)\n * @returns A ScopedLogger instance\n *\n * @example\n * ```typescript\n * const logger = invect.getLogger('execution', 'MyService');\n * logger.debug('Starting execution'); // Only logs if execution scope is 'debug'\n * ```\n */\n getLogger(scope: string, context?: string): ScopedLogger {\n return this.loggerManager.getLogger(scope, context);\n }\n\n /**\n * Get the logger manager for advanced logging configuration\n */\n getLoggerManager(): LoggerManager {\n return this.loggerManager;\n }\n\n /**\n * Update the log level for a specific scope at runtime\n *\n * @example\n * ```typescript\n * // Enable debug logging for execution during troubleshooting\n * invect.setLogLevel('execution', 'debug');\n * ```\n */\n setLogLevel(scope: string, level: LogLevel): void {\n this.loggerManager.setLogLevel(scope, level);\n }\n\n // =====================================\n // INITIALIZATION & LIFECYCLE MANAGEMENT\n // =====================================\n\n /**\n * Initialize Invect Core\n */\n async initialize(): Promise<void> {\n if (this.initialized) {\n this.config.logger.debug('Invect Core already initialized');\n return;\n }\n\n // Skip initialization during Next.js build phase\n if (this.isBuildTime()) {\n this.config.logger.info('Skipping Invect Core initialization during build time');\n throw new DatabaseError('Invect Core initialization skipped during build', {\n reason: 'build_time_skip',\n phase: process.env.NEXT_PHASE || 'unknown',\n });\n }\n\n this.config.logger.info('Initializing Invect Core...');\n\n try {\n // Initialize action registry (Provider-Actions architecture)\n this.actionRegistry = initializeGlobalActionRegistry(this.config.logger);\n\n // Register all built-in actions (core, http, gmail, etc.)\n registerBuiltinActions(this.actionRegistry);\n this.config.logger.info(\n `Registered ${this.actionRegistry.size} built-in actions from ${this.actionRegistry.getProviders().length} providers`,\n );\n\n // Initialize plugins (register plugin actions, call init hooks)\n const actionRegistry = this.actionRegistry;\n await this.pluginManager.initializePlugins({\n config: this.config as unknown as Record<string, unknown>,\n logger: this.config.logger,\n registerAction: (action) => {\n actionRegistry.register(action);\n },\n });\n\n if (this.pluginManager.getPlugins().length > 0) {\n this.config.logger.info(\n `Initialized ${this.pluginManager.getPlugins().length} plugin(s): ${this.pluginManager\n .getPlugins()\n .map((p) => p.id)\n .join(', ')}`,\n );\n }\n\n // Initialize node registry first\n this.nodeRegistry = await this.initializeNodes();\n\n // Initialize JS expression engine (QuickJS sandbox for data mapper)\n try {\n this.jsExpressionService = new JsExpressionService({}, this.config.logger);\n await this.jsExpressionService.initialize();\n this.templateService = getTemplateService(this.jsExpressionService, this.config.logger);\n this.config.logger.debug('JS expression engine + template service initialized');\n } catch (error) {\n this.jsExpressionService = null;\n this.templateService = null;\n this.config.logger.warn(\n 'JS expression engine unavailable; continuing without data mapper and template expression support',\n { error: error instanceof Error ? (error.stack ?? error.message) : String(error) },\n );\n }\n\n // Register action-based tools into the existing tool registry\n this.registerActionsAsTools();\n\n // Initialize service factory (requires node registry)\n await this.initializeServices(this.nodeRegistry);\n\n this.initialized = true;\n\n // Ensure default credentials exist after initialization (non-blocking)\n if (this.config.defaultCredentials?.length) {\n this.ensureDefaultCredentials().catch((err) => {\n this.config.logger.error('Default credential seeding failed', err);\n });\n }\n } catch (error) {\n // Don't double-wrap DatabaseError — it already has a clear message\n if (error instanceof DatabaseError) {\n throw error;\n }\n this.config.logger.error('Failed to initialize Invect Core', error);\n throw new DatabaseError('Invect Core initialization failed', { error });\n }\n }\n\n /**\n * Check if we're in a build-time environment where database connections should be avoided\n */\n private isBuildTime(): boolean {\n // Next.js build detection\n if (process.env.NEXT_PHASE === 'phase-production-build') {\n return true;\n }\n\n // Vercel build detection\n if (process.env.VERCEL_ENV && process.env.CI) {\n return true;\n }\n\n // Generic CI/build environment detection\n if (\n process.env.CI &&\n (process.env.NODE_ENV === 'production' ||\n process.env.BUILD_PHASE ||\n process.argv.includes('build'))\n ) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Gracefully shutdown Invect Core.\n * Marks any in-progress flow runs as FAILED before closing services.\n */\n async shutdown(): Promise<void> {\n this.config.logger.info('Shutting down Invect Core...');\n\n try {\n // Mark in-progress flows as failed before tearing down services\n if (this.serviceFactory?.isInitialized()) {\n try {\n const flowRunsService = this.serviceFactory.getFlowRunsService();\n const failedCount = await flowRunsService.failStaleRuns(0); // threshold 0 = fail ALL active runs\n if (failedCount > 0) {\n this.config.logger.warn(\n `Graceful shutdown: marked ${failedCount} in-progress flow run(s) as FAILED`,\n );\n }\n } catch (error) {\n this.config.logger.error('Failed to mark in-progress runs during shutdown', error);\n }\n }\n\n // Shutdown plugins (reverse order)\n await this.pluginManager.shutdownPlugins(this.config.logger);\n\n if (this.serviceFactory) {\n await this.serviceFactory.close();\n this.serviceFactory = null;\n }\n\n this.nodeRegistry = null;\n this.actionRegistry = null;\n\n // Dispose JS expression engine + template service\n if (this.jsExpressionService) {\n this.jsExpressionService.dispose();\n this.jsExpressionService = null;\n }\n this.templateService = null;\n\n this.initialized = false;\n\n this.config.logger.info('Invect Core shutdown completed');\n } catch (error) {\n this.config.logger.error('Error during Invect Core shutdown', error);\n throw new DatabaseError('Invect Core shutdown failed', { error });\n }\n }\n\n /**\n * Check if core is initialized\n */\n isInitialized(): boolean {\n return this.initialized;\n }\n\n /**\n * Run health check on all services\n */\n async healthCheck(): Promise<{ [serviceName: string]: boolean }> {\n this.ensureInitialized();\n const healthStatus = await this.serviceFactory.healthCheck();\n return healthStatus.services;\n }\n\n // =====================================\n // FLOW MANAGEMENT\n // =====================================\n\n /**\n * Create a new flow\n */\n async createFlow(flowData: CreateFlowRequest): Promise<Flow> {\n this.config.logger.debug(\n 'createFlow called with arguments:',\n JSON.stringify(flowData, null, 2),\n );\n const data = Schemas.flow.createFlowRequestSchema.parse(flowData);\n return this.flowService.createFlow(data);\n }\n\n /**\n * Get all flows with optional filtering, sorting, and pagination\n */\n async listFlows(options?: QueryOptions<Flow>): Promise<PaginatedResponse<Flow>> {\n this.config.logger.debug('listFlows called with arguments:', JSON.stringify(options, null, 2));\n\n // Validate options using Zod schema\n if (options) {\n Schemas.QueryOptionsSchema.parse(options);\n }\n\n // Call the flows service and return its paginated response\n return await this.flowService.listFlows(options);\n }\n\n /**\n * Get flow by ID\n */\n async getFlow(flowId: string): Promise<Flow> {\n this.config.logger.debug('getFlow called with arguments:', JSON.stringify({ flowId }, null, 2));\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n return this.flowService.getFlowById(validatedParams.flowId);\n }\n\n /**\n * Update an existing flow\n */\n async updateFlow(flowId: string, updateData: UpdateFlowInput): Promise<Flow> {\n this.config.logger.debug(\n 'updateFlow called with arguments:',\n JSON.stringify({ flowId, updateData }, null, 2),\n );\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n return this.flowService.updateFlow(validatedParams.flowId, updateData);\n }\n\n /**\n * Delete a flow\n */\n async deleteFlow(flowId: string): Promise<void> {\n this.config.logger.debug(\n 'deleteFlow called with arguments:',\n JSON.stringify({ flowId }, null, 2),\n );\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n return this.flowService.deleteFlow(validatedParams.flowId);\n }\n\n /**\n * Validate flow definition\n */\n async validateFlowDefinition(\n flowId: string,\n flowDefinition: unknown,\n ): Promise<FlowValidationResult> {\n this.config.logger.debug(\n 'validateFlowDefinition called with arguments:',\n JSON.stringify({ flowId, flowDefinition }, null, 2),\n );\n this.ensureInitialized();\n\n // Validate parameters using Zod schemas\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n\n // First validate the raw data with the Zod schema\n const validatedBody = invectDefinitionSchema.parse(flowDefinition);\n\n // Now cast to the inferred type for use with FlowValidator\n const typedDefinition = validatedBody as InvectDefinition;\n\n this.config.logger.debug('Validating flow definition', {\n flowId: validatedParams.flowId,\n });\n\n try {\n // Use the properly typed definition for validation\n const validationResult = FlowValidator.validateFlowDefinition(typedDefinition);\n\n this.config.logger.debug('Flow validation completed', validationResult);\n\n return validationResult;\n } catch (error) {\n this.config.logger.error('Flow validation failed', {\n flowId: validatedParams.flowId,\n error,\n });\n throw error;\n }\n }\n\n // =====================================\n // FLOW VERSION MANAGEMENT\n // =====================================\n\n /**\n * Create flow version and sync trigger registrations (D3: sync on publish)\n */\n async createFlowVersion(\n flowId: string,\n versionData: CreateFlowVersionRequest,\n ): Promise<FlowVersion> {\n this.config.logger.debug(\n 'createFlowVersion called with arguments:',\n JSON.stringify({ flowId, versionData }, null, 2),\n );\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n const data = createFlowVersionRequestSchema.parse(versionData);\n const version = await this.flowVersionsService.createFlowVersion(validatedParams.flowId, data);\n\n // D3: Sync trigger registrations from the new version's definition.\n // This upserts webhook paths/secrets and cron expressions as needed.\n try {\n if (data.invectDefinition?.nodes) {\n await this.triggersService.syncTriggersForFlow(\n validatedParams.flowId,\n data.invectDefinition as {\n nodes: Array<{ id: string; type: string; params?: Record<string, unknown> }>;\n },\n );\n this.config.logger.debug('Trigger registrations synced after version creation', {\n flowId: validatedParams.flowId,\n versionNumber: version.version,\n });\n }\n } catch (error) {\n // Don't fail the version creation if trigger sync fails\n this.config.logger.error('Failed to sync triggers after version creation', {\n flowId: validatedParams.flowId,\n error,\n });\n }\n\n return version;\n }\n\n /**\n * Get flow versions with optional filtering, sorting, and pagination\n */\n async listFlowVersions(\n flowId: string,\n options?: QueryOptions<FlowVersion>,\n ): Promise<PaginatedResponse<FlowVersion>> {\n this.config.logger.debug(\n 'listFlowVersions called with arguments:',\n JSON.stringify({ flowId, options }, null, 2),\n );\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n return await this.flowVersionsService.listFlowVersionsByFlowId(validatedParams.flowId, options);\n }\n\n /**\n * Get specific flow version by version number or 'latest'\n */\n async getFlowVersion(\n flowId: string,\n version: string | number | 'latest',\n ): Promise<FlowVersion | null> {\n this.config.logger.debug(\n 'getFlowVersion called with arguments:',\n JSON.stringify({ flowId, version }, null, 2),\n );\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n return await this.flowVersionsService.getFlowVersion(validatedParams.flowId, version);\n }\n\n // =====================================\n // FLOW RUN MANAGEMENT\n // =====================================\n\n /**\n * Execute a flow (synchronous - waits for completion)\n */\n async startFlowRun(\n flowId: string,\n inputs: FlowInputs = {},\n options?: ExecuteFlowOptions,\n ): Promise<FlowRunResult> {\n this.config.logger.debug(\n 'startFlowRun called with arguments:',\n JSON.stringify({ flowId, inputs, options }, null, 2),\n );\n // TODO: validate inputs\n return this.orchestrationService.executeFlow(flowId, inputs, options);\n }\n\n /**\n * Start a flow execution asynchronously - returns immediately with flow run ID.\n * The flow executes in the background. Use this for UI-initiated runs where\n * you want to redirect the user immediately without waiting for completion.\n */\n async startFlowRunAsync(\n flowId: string,\n inputs: FlowInputs = {},\n options?: ExecuteFlowOptions,\n ): Promise<FlowRunResult> {\n this.config.logger.debug(\n 'startFlowRunAsync called with arguments:',\n JSON.stringify({ flowId, inputs, options }, null, 2),\n );\n return this.orchestrationService.executeFlowAsync(flowId, inputs, options);\n }\n\n /**\n * Execute a flow up to a specific target node.\n * Only executes the upstream nodes required to produce output for the target node.\n * This is useful for testing a specific node with its real upstream dependencies.\n *\n * @param flowId - The flow to execute\n * @param targetNodeId - The node to execute up to (this node will also be executed)\n * @param inputs - Flow-level inputs\n * @param options - Execution options (version, batch processing, etc.)\n * @returns The flow run result with the target node's output\n */\n async executeFlowToNode(\n flowId: string,\n targetNodeId: string,\n inputs: FlowInputs = {},\n options?: ExecuteFlowOptions,\n ): Promise<FlowRunResult> {\n this.config.logger.debug(\n 'executeFlowToNode called with arguments:',\n JSON.stringify({ flowId, targetNodeId, inputs, options }, null, 2),\n );\n return this.orchestrationService.executeFlowToNode(flowId, targetNodeId, inputs, options);\n }\n\n /**\n * Resume execution\n */\n async resumeExecution(executionId: string): Promise<{ message: string; timestamp: string }> {\n this.config.logger.debug(\n 'resumeExecution called with arguments:',\n JSON.stringify({ executionId }, null, 2),\n );\n return this.flowRunsService.resumeRun(executionId);\n }\n\n /**\n * Get all Flow Runs\n */\n async listFlowRuns(options?: QueryOptions<FlowRun>): Promise<PaginatedResponse<FlowRun>> {\n this.config.logger.debug(\n 'listFlowRuns called with arguments:',\n JSON.stringify(options, null, 2),\n );\n\n return await this.flowRunsService.listRuns(options);\n }\n\n /**\n * Get flow executions for a specific flow\n */\n async listFlowRunsByFlowId(flowId: string): Promise<PaginatedResponse<FlowRun>> {\n this.config.logger.debug(\n 'listFlowRunsByFlowId called with arguments:',\n JSON.stringify({ flowId }, null, 2),\n );\n const validatedParams = Schemas.flow.FlowIdParamsSchema.parse({ flowId });\n return this.flowRunsService.listRuns({ filter: { flowId: [validatedParams.flowId] } });\n }\n\n /**\n * Get a specific flow run by ID\n */\n async getFlowRunById(flowRunId: string): Promise<FlowRun> {\n this.config.logger.debug(\n 'getFlowRunById called with arguments:',\n JSON.stringify({ flowRunId }, null, 2),\n );\n return this.flowRunsService.getRunById(flowRunId);\n }\n\n /**\n * Cancel a flow run\n */\n async cancelFlowRun(flowRunId: string): Promise<{ message: string; timestamp: string }> {\n this.config.logger.debug(\n 'cancelFlowRun called with arguments:',\n JSON.stringify({ flowRunId }, null, 2),\n );\n return this.flowRunsService.cancelRun(flowRunId);\n }\n\n /**\n * Pause a flow run\n */\n async pauseFlowRun(\n flowRunId: string,\n reason?: string,\n ): Promise<{ message: string; timestamp: string }> {\n this.config.logger.debug(\n 'pauseFlowRun called with arguments:',\n JSON.stringify({ flowRunId, reason }, null, 2),\n );\n return this.flowRunsService.pauseRun(flowRunId, reason);\n }\n\n /**\n * Get dashboard statistics: flow counts, run counts by status, recent activity.\n */\n async getDashboardStats(): Promise<DashboardStats> {\n this.config.logger.debug('getDashboardStats called');\n\n const [flowsResponse, runStats, recentRunsResponse] = await Promise.all([\n this.flowService.listFlows({ pagination: { page: 1, limit: 1 } }),\n this.flowRunsService.getStats(),\n this.flowRunsService.listRuns({\n pagination: { page: 1, limit: 10 },\n sort: { sortBy: 'startedAt', sortOrder: 'desc' },\n }),\n ]);\n\n const totalRunsAll = Object.values(runStats.totalRuns).reduce((sum, c) => sum + c, 0);\n const totalSuccess = runStats.totalRuns[FlowRunStatus.SUCCESS] ?? 0;\n const successRate = totalRunsAll > 0 ? Math.round((totalSuccess / totalRunsAll) * 100) : 0;\n\n const activeCount =\n (runStats.totalRuns[FlowRunStatus.RUNNING] ?? 0) +\n (runStats.totalRuns[FlowRunStatus.PENDING] ?? 0) +\n (runStats.totalRuns[FlowRunStatus.PAUSED_FOR_BATCH] ?? 0);\n\n const recentRunsAll = Object.values(runStats.recentRuns).reduce((sum, c) => sum + c, 0);\n\n return {\n totalFlows: flowsResponse.pagination.totalPages, // limit=1 so totalPages === totalCount\n totalRuns: totalRunsAll,\n runsLast24h: recentRunsAll,\n activeRuns: activeCount,\n successRate,\n failedRunsLast24h: runStats.recentRuns[FlowRunStatus.FAILED] ?? 0,\n runsByStatus: runStats.totalRuns,\n recentRuns: recentRunsResponse.data,\n };\n }\n\n // =====================================\n // CREDENTIAL MANAGEMENT\n // =====================================\n\n /**\n * Create a credential\n */\n async createCredential(input: CreateCredentialInput): Promise<Credential> {\n this.config.logger.debug('createCredential called');\n return this.credentialsService.create(input);\n }\n\n /**\n * List credentials with optional filters\n */\n async listCredentials(filters?: CredentialFilters): Promise<Array<Omit<Credential, 'config'>>> {\n this.config.logger.debug('listCredentials called', { filters });\n return this.credentialsService.list(filters);\n }\n\n /**\n * Retrieve a credential by id\n */\n async getCredential(id: string): Promise<Credential> {\n this.config.logger.debug('getCredential called', { id });\n return this.credentialsService.get(id);\n }\n\n /**\n * Update credential\n */\n async updateCredential(id: string, input: UpdateCredentialInput): Promise<Credential> {\n this.config.logger.debug('updateCredential called', { id });\n return this.credentialsService.update(id, input);\n }\n\n /**\n * Delete credential\n */\n async deleteCredential(id: string): Promise<void> {\n this.config.logger.debug('deleteCredential called', { id });\n return this.credentialsService.delete(id);\n }\n\n /**\n * Test credential validity\n */\n async testCredential(id: string): Promise<{ success: boolean; error?: string }> {\n this.config.logger.debug('testCredential called', { id });\n return this.credentialsService.test(id);\n }\n\n /**\n * Update credential last used timestamp\n */\n async updateCredentialLastUsed(id: string): Promise<void> {\n this.config.logger.debug('updateCredentialLastUsed called', { id });\n return this.credentialsService.updateLastUsed(id);\n }\n\n /**\n * Get expiring credentials helper\n */\n async getExpiringCredentials(daysUntilExpiry?: number): Promise<Credential[]> {\n this.config.logger.debug('getExpiringCredentials called', { daysUntilExpiry });\n return this.credentialsService.getExpiringCredentials(daysUntilExpiry);\n }\n\n // =====================================\n // NODE EXECUTION MANAGEMENT\n // =====================================\n\n /**\n * Get node executions by flow run ID\n */\n async getNodeExecutionsByRunId(flowRunId: string): Promise<NodeExecution[]> {\n this.config.logger.debug(\n 'getNodeExecutionsByRunId called with arguments:',\n JSON.stringify({ flowRunId }, null, 2),\n );\n return this.nodeExecutionsService.listNodeExecutionsByFlowRunId(flowRunId);\n }\n\n /**\n * Get all node executions with optional filtering, sorting, and pagination\n */\n async listNodeExecutions(\n options?: QueryOptions<NodeExecution>,\n ): Promise<PaginatedResponse<NodeExecution>> {\n this.config.logger.debug(\n 'listNodeExecutions called with arguments:',\n JSON.stringify(options, null, 2),\n );\n return await this.nodeExecutionsService.listNodeExecutions(options);\n }\n\n // =====================================\n // EXECUTION STREAMING (SSE)\n // =====================================\n\n /**\n * Create an async iterable that yields execution events for a flow run.\n *\n * The first event is always a \"snapshot\" with the current FlowRun and all\n * NodeExecutions. Subsequent events are incremental updates. The stream\n * ends automatically when the flow run reaches a terminal status.\n *\n * Consumers (Express/NestJS/Next.js adapters) iterate this with\n * `for await (const event of stream)` and write SSE frames.\n */\n async *createFlowRunEventStream(\n flowRunId: string,\n ): AsyncGenerator<ExecutionStreamEvent, void, undefined> {\n const bus = this.serviceFactory?.getExecutionEventBus();\n if (!bus) {\n throw new Error('ServiceFactory not initialized');\n }\n\n // 1. Send initial snapshot\n const flowRun = await this.flowRunsService.getRunById(flowRunId);\n const nodeExecutions =\n await this.nodeExecutionsService.listNodeExecutionsByFlowRunId(flowRunId);\n\n yield { type: 'snapshot', flowRun, nodeExecutions };\n\n // If the run is already terminal, close immediately\n const terminalStatuses = new Set([\n FlowRunStatus.SUCCESS,\n FlowRunStatus.FAILED,\n FlowRunStatus.CANCELLED,\n ]);\n if (terminalStatuses.has(flowRun.status)) {\n yield { type: 'end', flowRun };\n return;\n }\n\n // 2. Forward live events via a queue\n const queue: ExecutionStreamEvent[] = [];\n let resolve: (() => void) | null = null;\n let done = false;\n\n const unsubscribe = bus.subscribe(flowRunId, (event) => {\n queue.push(event);\n\n // Check for terminal flow-run status\n if (event.type === 'flow_run.updated' && terminalStatuses.has(event.flowRun.status)) {\n queue.push({ type: 'end', flowRun: event.flowRun });\n done = true;\n }\n\n // Wake up the consumer if it's waiting\n const wakeUp = resolve;\n if (wakeUp) {\n resolve = null;\n wakeUp();\n }\n });\n\n // 3. Heartbeat interval to keep the connection alive\n const heartbeatTimer = setInterval(() => {\n queue.push({ type: 'heartbeat' });\n if (resolve) {\n resolve();\n resolve = null;\n }\n }, 15_000);\n\n try {\n while (!done) {\n // Drain whatever is in the queue\n while (queue.length > 0) {\n const event = queue.shift()!;\n yield event;\n if (event.type === 'end') {\n return;\n }\n }\n // Wait for more events\n await new Promise<void>((r) => {\n resolve = r;\n });\n }\n } finally {\n clearInterval(heartbeatTimer);\n unsubscribe();\n }\n }\n\n // =====================================\n // AI BATCH OPERATIONS\n // =====================================\n\n /**\n * Start batch polling for automatic batch completion handling\n */\n async startBatchPolling(): Promise<void> {\n await this.baseAIClient.startBatchPolling();\n }\n\n /**\n * Stop batch polling\n */\n async stopBatchPolling(): Promise<void> {\n await this.baseAIClient.stopBatchPolling();\n }\n\n // =====================================\n // CRON SCHEDULER\n // =====================================\n\n /**\n * Start the cron scheduler for automatic cron trigger execution.\n * Call after initialize() — typically in your server startup code.\n * If cronEnabled is false in InvectConfig.triggers, this is a no-op.\n */\n async startCronScheduler(): Promise<void> {\n const cronEnabled = this.config.triggers?.cronEnabled ?? true;\n if (!cronEnabled) {\n this.config.logger.info('Cron scheduler disabled via config');\n return;\n }\n\n this.config.logger.info('Starting cron scheduler');\n const scheduler = this.serviceFactory?.getCronScheduler();\n if (!scheduler) {\n throw new Error('ServiceFactory not initialized');\n }\n await scheduler.start();\n }\n\n /**\n * Stop the cron scheduler. Call during graceful shutdown.\n */\n stopCronScheduler(): void {\n this.config.logger.info('Stopping cron scheduler');\n const scheduler = this.serviceFactory?.getCronScheduler();\n if (!scheduler) {\n throw new Error('ServiceFactory not initialized');\n }\n scheduler.stop();\n }\n\n /**\n * Refresh cron jobs from the database (e.g. after trigger registrations change).\n */\n async refreshCronScheduler(): Promise<void> {\n const scheduler = this.serviceFactory?.getCronScheduler();\n if (!scheduler) {\n throw new Error('ServiceFactory not initialized');\n }\n await scheduler.refresh();\n }\n\n // =====================================\n // TESTING AND DEVELOPMENT\n // =====================================\n\n /**\n * Execute a SQL query for node testing purposes\n */\n async executeSqlQuery(request: SubmitSQLQueryRequest): Promise<SQLQueryResult> {\n this.config.logger.debug(\n 'executeSqlQuery called with arguments:',\n JSON.stringify(request, null, 2),\n );\n return this.nodeDataService.runSqlQuery(request);\n }\n\n /**\n * Test a JS expression in the QuickJS sandbox.\n * Used by the frontend data mapper preview.\n */\n async testJsExpression(request: {\n expression: string;\n context: Record<string, unknown>;\n }): Promise<{ success: boolean; result?: unknown; error?: string }> {\n this.ensureInitialized();\n if (!this.jsExpressionService) {\n return { success: false, error: 'JS expression engine not initialized' };\n }\n try {\n const result = this.jsExpressionService.evaluate(request.expression, request.context);\n return { success: true, result };\n } catch (e) {\n return {\n success: false,\n error: e instanceof Error ? e.message : String(e),\n };\n }\n }\n\n /**\n * Test a mapper expression — returns the result plus metadata about how\n * the node would behave (iterate vs single, item count).\n * Used by the frontend Data Mapper pane live preview.\n */\n async testMapper(request: {\n expression: string;\n incomingData: Record<string, unknown>;\n mode?: 'auto' | 'iterate' | 'reshape';\n }): Promise<{\n success: boolean;\n result?: unknown;\n resultType?: 'array' | 'object' | 'primitive';\n itemCount?: number;\n error?: string;\n }> {\n this.ensureInitialized();\n if (!this.jsExpressionService) {\n return { success: false, error: 'JS expression engine not initialized' };\n }\n try {\n const result = this.jsExpressionService.evaluate(request.expression, request.incomingData);\n const mode = request.mode ?? 'auto';\n const isArray = Array.isArray(result);\n let resultType: 'array' | 'object' | 'primitive';\n\n if (isArray) {\n resultType = 'array';\n } else if (result !== null && typeof result === 'object') {\n resultType = 'object';\n } else {\n resultType = 'primitive';\n }\n\n // Apply mode semantics for preview\n if (mode === 'iterate' && !isArray) {\n return {\n success: false,\n error: `Mode is \"iterate\" but expression returned ${resultType}, not an array`,\n };\n }\n\n return {\n success: true,\n result,\n resultType,\n itemCount: isArray ? (result as unknown[]).length : undefined,\n };\n } catch (e) {\n return {\n success: false,\n error: e instanceof Error ? e.message : String(e),\n };\n }\n }\n\n /**\n * Test a model prompt\n */\n async testModelPrompt(request: SubmitPromptRequest): Promise<unknown> {\n this.config.logger.debug(\n 'testModelPrompt called with arguments:',\n JSON.stringify(request, null, 2),\n );\n if (request.credentialId) {\n await this.ensureAdapterForCredential(request.credentialId, request.provider);\n }\n return this.baseAIClient.executePrompt(request);\n }\n\n /**\n * Get available AI models\n */\n async getAvailableModels(): Promise<unknown> {\n return this.nodeDataService.getAvailableModels();\n }\n\n /**\n * Get models for a specific provider\n */\n async getModelsForProvider(provider: BatchProvider): Promise<{\n provider: BatchProvider;\n models: Model[];\n defaultModel: string;\n }> {\n if (!provider) {\n throw new ValidationError('Provider is required to list models');\n }\n\n const result = await this.nodeDataService.getModelsForProvider(provider);\n return {\n provider,\n ...result,\n };\n }\n\n /**\n * Get models for a credential by detecting its provider\n */\n async getModelsForCredential(credentialId: string): Promise<{\n provider: BatchProvider;\n models: Model[];\n defaultModel: string;\n }> {\n if (!credentialId) {\n throw new ValidationError('credentialId is required to list models');\n }\n\n const credential = await this.credentialsService.get(credentialId);\n const provider = detectProviderFromCredential(credential);\n\n if (!provider) {\n throw new ValidationError(\n 'Unable to detect provider from credential. Ensure the credential has an API URL or provider hint.',\n );\n }\n\n const result = await this.nodeDataService.getModelsForProvider(provider);\n return {\n provider,\n ...result,\n };\n }\n\n /**\n * Get available databases\n */\n getAvailableDatabases(): Schemas.InvectDatabaseConfig[] {\n return this.nodeDataService.getAvailableDatabases();\n }\n\n /**\n * Get definitions for all available nodes.\n * Returns both legacy node definitions and action-based node definitions.\n */\n getAvailableNodes(): NodeDefinition[] {\n this.ensureInitialized();\n\n // Action-based definitions are the primary source for all node types.\n const actionDefs = this.actionRegistry ? this.actionRegistry.getAllNodeDefinitions() : [];\n\n // Legacy executors only cover AGENT — add its definition if not already\n // present in the action registry.\n const actionTypes = new Set(actionDefs.map((d) => d.type as string));\n const legacyDefs = this.nodeRegistry\n .getAllDefinitions()\n .filter((d) => !actionTypes.has(d.type as string));\n\n const allDefs = [...actionDefs, ...legacyDefs];\n\n // Legacy nodes don't carry provider info — stamp them as Invect Core.\n for (const def of allDefs) {\n if (!def.provider) {\n def.provider = { id: 'core', name: 'Invect Core', icon: 'Blocks' };\n }\n }\n\n return allDefs;\n }\n\n /** Get the TemplateService or throw if not initialized. */\n private getTemplateServiceOrThrow(): TemplateService {\n if (!this.templateService) {\n throw new Error('TemplateService not available — JS expression engine failed to initialize');\n }\n return this.templateService;\n }\n\n /**\n * Resolve {{ expression }} templates in params using the provided context.\n * Used for test node execution where we need to resolve templates before running.\n *\n * @param params - The node parameters to resolve\n * @param context - The context to use for template resolution\n * @param skipKeys - Keys to skip (their values should not be resolved as templates)\n */\n private resolveTemplateParams(\n params: Record<string, unknown>,\n context: Record<string, unknown>,\n skipKeys: string[] = [],\n ): Record<string, unknown> {\n const templateService = this.getTemplateServiceOrThrow();\n const resolved: Record<string, unknown> = {};\n\n for (const [key, value] of Object.entries(params)) {\n // Skip keys that shouldn't have their templates resolved\n if (skipKeys.includes(key)) {\n resolved[key] = value;\n continue;\n }\n\n if (typeof value === 'string' && templateService.isTemplate(value)) {\n try {\n const renderedValue = templateService.render(value, context);\n resolved[key] = renderedValue;\n this.config.logger.debug('Resolved template param for test', {\n param: key,\n template: value,\n resolved: renderedValue,\n });\n } catch (error) {\n // On error, keep original value and log warning\n this.config.logger.warn('Failed to resolve template param for test', {\n param: key,\n template: value,\n error: error instanceof Error ? error.message : String(error),\n });\n resolved[key] = value;\n }\n } else {\n resolved[key] = value;\n }\n }\n\n return resolved;\n }\n\n /**\n * Test/execute a single node with the provided params and input data.\n * This is useful for testing node configuration in isolation.\n *\n * Templates in params (e.g., {{ some_input.data.variables.output.value }})\n * are resolved using the inputData as context before execution.\n *\n * @param nodeType - The type of node to execute\n * @param params - The node's configuration parameters (may contain {{ }} templates)\n * @param inputData - Mock input data used both as node inputs and as template context\n * @returns The node execution result\n */\n async testNode(\n nodeType: string,\n params: Record<string, unknown>,\n inputData: Record<string, unknown> = {},\n ): Promise<{ success: boolean; output?: Record<string, unknown>; error?: string }> {\n this.ensureInitialized();\n\n // Try legacy executor first (only AGENT remains), then action registry\n const executor = this.nodeRegistry.get(nodeType as GraphNodeType);\n const action = !executor && this.actionRegistry ? this.actionRegistry.get(nodeType) : undefined;\n\n if (!executor && !action) {\n throw new ValidationError(`Unknown node type: ${nodeType}`);\n }\n\n // Merge default params with provided params (provided params take precedence)\n let defaultParams: Record<string, unknown> = {};\n if (executor) {\n defaultParams = executor.getDefinition().defaultParams ?? {};\n } else if (action) {\n defaultParams = Object.fromEntries(\n (action.params.fields ?? [])\n .filter((f) => f.defaultValue !== undefined)\n .map((f) => [f.name, f.defaultValue]),\n );\n }\n const mergedParams = { ...defaultParams, ...params };\n\n // Determine which param keys should NOT be resolved as templates\n const skipTemplateResolutionKeys: string[] = [];\n if (nodeType === GraphNodeType.TEMPLATE_STRING || nodeType === 'core.template_string') {\n skipTemplateResolutionKeys.push('template');\n }\n\n // Resolve templates in params using inputData as context\n const resolvedParams = this.resolveTemplateParams(\n mergedParams,\n inputData,\n skipTemplateResolutionKeys,\n );\n\n this.config.logger.debug('Test node with resolved params', {\n nodeType,\n defaultParams,\n originalParams: params,\n mergedParams,\n resolvedParams,\n inputDataKeys: Object.keys(inputData),\n });\n\n try {\n if (action) {\n // ── Action path ─────────────────────────────────────────────────\n const { executeActionAsNode } = await import('./actions/action-executor');\n\n const mockContext: NodeExecutionContext = {\n nodeId: `test-${Date.now()}`,\n flowRunId: `test-run-${Date.now()}`,\n logger: this.config.logger,\n globalConfig: {},\n flowInputs: {},\n flowParams: { useBatchProcessing: false },\n incomingData: inputData,\n functions: {\n markDownstreamNodesAsSkipped: () => {\n /* noop */\n },\n runTemplateReplacement: (template: string, variables: Record<string, unknown>) =>\n this.nodeDataService.runTemplateReplacement(template, variables),\n submitPrompt: async (request: SubmitPromptRequest) =>\n this.baseAIClient.executePrompt(request),\n getCredential: async (credentialId: string) =>\n this.credentialsService.get(credentialId),\n },\n allNodeOutputs: new Map(),\n } as unknown as NodeExecutionContext;\n\n const result = await executeActionAsNode(action, resolvedParams, mockContext);\n\n if (result.state === NodeExecutionStatus.SUCCESS) {\n let output: Record<string, unknown> | undefined;\n if (result.output?.data?.variables) {\n output = Object.fromEntries(\n Object.entries(result.output.data.variables).map(([k, v]) => [\n k,\n (v as { value: unknown }).value,\n ]),\n );\n } else if (result.output) {\n output = result.output as unknown as Record<string, unknown>;\n }\n return { success: true, output };\n } else if (result.state === NodeExecutionStatus.FAILED) {\n return { success: false, error: result.errors?.join(', ') || 'Node execution failed' };\n } else {\n return { success: true, output: { status: 'pending' } };\n }\n }\n\n // ── Legacy executor path (AGENT only) ───────────────────────────\n const mockNode = {\n id: `test-${Date.now()}`,\n type: nodeType,\n params: resolvedParams,\n position: { x: 0, y: 0 },\n };\n\n const context = {\n nodeId: mockNode.id,\n flowRunId: `test-run-${Date.now()}`,\n logger: this.config.logger,\n globalConfig: {},\n flowInputs: {},\n flowParams: { useBatchProcessing: false },\n incomingData: inputData,\n functions: {\n markDownstreamNodesAsSkipped: () => {\n /* noop for test execution */\n },\n testJsonLogic: (conditionLogic: Record<string, unknown>, evaluationData: object) => {\n return this.nodeDataService.testJsonLogic(conditionLogic, evaluationData);\n },\n runSqlQuery: (request: SubmitSQLQueryRequest) => {\n return this.nodeDataService.runSqlQuery(request);\n },\n runTemplateReplacement: (template: string, variables: Record<string, unknown>) => {\n return this.nodeDataService.runTemplateReplacement(template, variables);\n },\n submitPrompt: async (request: SubmitPromptRequest) => {\n this.config.logger.debug('Test node submitting prompt', { request });\n return this.baseAIClient.executePrompt(request);\n },\n getCredential: async (credentialId: string) => {\n return this.credentialsService.get(credentialId);\n },\n },\n allNodeOutputs: new Map(),\n };\n\n const effectiveInputs: Record<string, unknown> = { ...inputData };\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const result = await executor!.execute(\n effectiveInputs as unknown as Record<string, unknown>,\n mockNode as FlowNodeForType<GraphNodeType>,\n context as unknown as NodeExecutionContext,\n );\n\n if (result.state === NodeExecutionStatus.SUCCESS) {\n let output: Record<string, unknown> | undefined;\n if (result.output?.data?.variables) {\n output = Object.fromEntries(\n Object.entries(result.output.data.variables).map(([k, v]) => [\n k,\n (v as { value: unknown }).value,\n ]),\n );\n } else if (result.output) {\n output = result.output as unknown as Record<string, unknown>;\n }\n return { success: true, output };\n } else if (result.state === NodeExecutionStatus.FAILED) {\n return { success: false, error: result.errors?.join(', ') || 'Node execution failed' };\n } else {\n return { success: true, output: { status: 'pending' } };\n }\n } catch (error) {\n this.config.logger.error('Test node execution failed', { error, nodeType });\n return {\n success: false,\n error: error instanceof Error ? error.message : String(error),\n };\n }\n }\n\n /**\n * Handle node configuration update events coming from the frontend.\n * Supports both legacy executors (AGENT) and action-based nodes.\n */\n async handleNodeConfigUpdate(event: NodeConfigUpdateEvent): Promise<NodeConfigUpdateResponse> {\n this.ensureInitialized();\n\n if (!event?.nodeType) {\n throw new ValidationError('nodeType is required for node config updates');\n }\n\n if (!event.params || typeof event.params !== 'object') {\n event.params = {};\n }\n\n const configContext = {\n logger: this.config.logger,\n services: {\n credentials: this.credentialsService,\n baseAIClient: this.baseAIClient,\n },\n };\n\n // 1. Try legacy executor (AGENT)\n const executor = this.nodeRegistry.get(event.nodeType);\n if (executor) {\n try {\n return await executor.handleConfigUpdate(event, configContext);\n } catch (error) {\n this.config.logger.error('Node config update handler failed', {\n error,\n nodeType: event.nodeType,\n nodeId: event.nodeId,\n });\n throw error;\n }\n }\n\n // 2. Try action registry — use onConfigUpdate if defined, else return static definition\n const nodeTypeStr = event.nodeType as string;\n const action = this.actionRegistry?.get(nodeTypeStr);\n if (action) {\n if (action.onConfigUpdate) {\n try {\n return await action.onConfigUpdate({ ...event, nodeType: nodeTypeStr }, configContext);\n } catch (error) {\n this.config.logger.error('Action config update handler failed', {\n error,\n nodeType: nodeTypeStr,\n nodeId: event.nodeId,\n });\n throw error;\n }\n }\n\n // No custom handler — return the static definition from the action registry\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const definition = this.actionRegistry!.toNodeDefinition(nodeTypeStr);\n if (definition) {\n return { definition, params: event.params };\n }\n }\n\n throw new ValidationError(`Unknown node type '${event.nodeType}' for config update`);\n }\n\n /**\n * Resolve dynamic options for a specific field on an action.\n *\n * Called by: `GET /actions/:actionId/fields/:fieldName/options?deps={...}`\n *\n * The action's `ParamField.loadOptions.handler` is invoked server-side with\n * the dependency values and returns an options list + optional default value.\n */\n async resolveFieldOptions(\n actionId: string,\n fieldName: string,\n dependencyValues: Record<string, unknown>,\n ): Promise<LoadOptionsResult> {\n this.ensureInitialized();\n\n if (!this.actionRegistry) {\n throw new ValidationError('Action registry not initialised');\n }\n\n const context = {\n logger: this.config.logger,\n services: {\n credentials: this.credentialsService,\n },\n };\n\n return this.actionRegistry.resolveFieldOptions(actionId, fieldName, dependencyValues, context);\n }\n\n /**\n * Render flow to React Flow format\n */\n async renderToReactFlow(\n flowId: string,\n options?: { version?: string | number | 'latest'; flowRunId?: string },\n ): Promise<ReactFlowData> {\n this.config.logger.debug(\n 'renderToReactFlow called with arguments:',\n JSON.stringify({ flowId, options }, null, 2),\n );\n return this.reactFlowRendererService.renderToReactFlow(flowId, options);\n }\n\n // =====================================\n // PRIVATE SERVICE GETTERS\n // =====================================\n\n /**\n * Get flow service with initialization check\n */\n private get flowService() {\n this.ensureInitialized();\n return this.serviceFactory.getFlowService();\n }\n\n /**\n * Get flow versions service with initialization check\n */\n private get flowVersionsService() {\n this.ensureInitialized();\n return this.serviceFactory.getFlowVersionsService();\n }\n\n /**\n * Get flow runs service with initialization check\n */\n private get flowRunsService() {\n this.ensureInitialized();\n return this.serviceFactory.getFlowRunsService();\n }\n\n /**\n * Get orchestration service with initialization check\n */\n private get orchestrationService() {\n this.ensureInitialized();\n return this.serviceFactory.getOrchestrationService();\n }\n\n /**\n * Get node executions service with initialization check\n */\n private get nodeExecutionsService() {\n this.ensureInitialized();\n return this.serviceFactory.getNodeExecutionsService();\n }\n\n /**\n * Get node data service with initialization check\n */\n private get nodeDataService() {\n this.ensureInitialized();\n return this.serviceFactory.getNodeDataService();\n }\n\n /**\n * Get base AI client with initialization check\n */\n private get baseAIClient() {\n this.ensureInitialized();\n return this.serviceFactory.getBaseAIClient();\n }\n\n /**\n * Ensure a provider adapter is registered for the given credential.\n * Resolves the credential, extracts the API key, detects the provider,\n * and calls registerAdapter() if not already present.\n */\n private async ensureAdapterForCredential(\n credentialId: string,\n providerHint?: BatchProvider | string,\n ): Promise<void> {\n const client = this.baseAIClient;\n // If the provider hint is available and the adapter already exists, skip.\n if (providerHint && client.hasAdapter(providerHint as BatchProvider)) {\n return;\n }\n\n const credential = await this.credentialsService.getDecryptedWithRefresh(credentialId);\n const apiKey = (credential.config as Record<string, unknown>)?.apiKey as string | undefined;\n if (!apiKey) {\n throw new Error(`Credential \"${credentialId}\" does not contain an apiKey.`);\n }\n\n const detected = detectProviderFromCredential(credential);\n if (!detected) {\n throw new Error(`Unable to detect AI provider from credential \"${credentialId}\".`);\n }\n\n if (client.hasAdapter(detected)) {\n return;\n }\n\n const label =\n detected === BatchProvider.OPENAI\n ? 'OPENAI'\n : detected === BatchProvider.ANTHROPIC\n ? 'ANTHROPIC'\n : 'OPENROUTER';\n\n client.registerAdapter(label, apiKey);\n }\n\n /**\n * Get React Flow renderer service with initialization check\n */\n private get reactFlowRendererService() {\n this.ensureInitialized();\n return this.serviceFactory.getReactFlowRendererService();\n }\n\n /**\n * Get credentials service with initialization check\n */\n private get credentialsService() {\n this.ensureInitialized();\n return this.serviceFactory.getCredentialsService();\n }\n\n /**\n * Get triggers service with initialization check\n */\n private get triggersService() {\n this.ensureInitialized();\n return this.serviceFactory.getTriggersService();\n }\n\n /**\n * Get credentials service (public accessor)\n */\n public getCredentialsService() {\n return this.credentialsService;\n }\n\n // =====================================\n // PRIVATE INITIALIZATION METHODS\n // =====================================\n\n /**\n * Ensure default credentials exist.\n * Runs once after initialization completes — skips any that already exist by name.\n */\n private async ensureDefaultCredentials(): Promise<void> {\n const seeds = this.config.defaultCredentials;\n if (!seeds?.length) {\n return;\n }\n\n const existing = await this.listCredentials();\n const existingNames = new Set(existing.map((c) => c.name));\n\n for (const seed of seeds) {\n if (existingNames.has(seed.name)) {\n this.config.logger.debug(`Seed credential \"${seed.name}\" already exists — skipping`);\n continue;\n }\n try {\n const created = await this.createCredential(seed as CreateCredentialInput);\n // eslint-disable-next-line no-console\n console.log(`🔐 Seeded credential: ${created.name} (${created.id})`);\n } catch (error) {\n this.config.logger.warn(`Failed to seed credential \"${seed.name}\"`, error);\n }\n }\n }\n\n /**\n * Initialize services\n */\n private async initializeServices(nodeRegistry: NodeExecutorRegistry): Promise<void> {\n this.config.logger.debug('Initializing service factory...');\n\n this.serviceFactory = new ServiceFactory(\n this.config,\n nodeRegistry,\n this,\n this.actionRegistry,\n this.pluginManager,\n this.jsExpressionService ?? undefined,\n this.templateService ?? undefined,\n );\n await this.serviceFactory.initialize();\n }\n\n /**\n * Initialize node registry with tool registry\n */\n private async initializeNodes() {\n this.config.logger.debug('Initializing node registry...');\n\n // First create the node registry with all executors (without tool registry yet)\n const nodeRegistry = await DefaultNodeRegistryFactory.createDefault(this.config.logger);\n\n // Now initialize tool registry - it will discover tools from node executors\n const toolRegistry = await initializeGlobalToolRegistry(this.config.logger);\n this.config.logger.debug(`Initialized agent tool registry with ${toolRegistry.size} tools`);\n\n // Update agent executor with the tool registry\n const agentExecutor = nodeRegistry.get(GraphNodeType.AGENT);\n if (agentExecutor && 'setToolRegistry' in agentExecutor) {\n (agentExecutor as unknown as AgentNodeExecutor).setToolRegistry(toolRegistry);\n }\n\n return nodeRegistry;\n }\n\n /**\n * Register all actions in the ActionRegistry as agent tools.\n */\n private registerActionsAsTools(): void {\n if (!this.actionRegistry) {\n return;\n }\n\n let toolRegistry: AgentToolRegistry;\n try {\n toolRegistry = getGlobalToolRegistry();\n } catch {\n // Tool registry not yet initialised — actions will be picked up\n // when initializeGlobalToolRegistry runs during initializeNodes().\n return;\n }\n\n for (const action of this.actionRegistry.getAll()) {\n const toolDef = this.actionRegistry.toAgentToolDefinition(action.id);\n if (toolDef && !toolRegistry.has(toolDef.id)) {\n toolRegistry.register(toolDef, createToolExecutorForAction(action));\n }\n }\n }\n\n /**\n * Ensure core is initialized\n */\n private ensureInitialized(): asserts this is {\n serviceFactory: ServiceFactory;\n nodeRegistry: NodeExecutorRegistry;\n } {\n if (!this.initialized || !this.serviceFactory || !this.nodeRegistry) {\n throw new DatabaseError('Invect Core not initialized. Call initialize() first.');\n }\n }\n\n // =====================================\n // ACTIONS API (Provider-Actions architecture)\n // =====================================\n\n /**\n * Get the action registry.\n */\n getActionRegistry(): ActionRegistry {\n this.ensureInitialized();\n if (!this.actionRegistry) {\n throw new DatabaseError('Action registry not initialized');\n }\n return this.actionRegistry;\n }\n\n /**\n * Register an action at runtime (e.g. from a plugin or external package).\n */\n registerAction(action: ActionDefinition): void {\n this.ensureInitialized();\n if (!this.actionRegistry) {\n throw new DatabaseError('Action registry not initialized');\n }\n this.actionRegistry.register(action);\n\n // Also register into the tool registry so the agent can discover it\n const toolDef = this.actionRegistry.toAgentToolDefinition(action.id);\n if (toolDef) {\n const toolRegistry: AgentToolRegistry = getGlobalToolRegistry();\n toolRegistry.register(toolDef, createToolExecutorForAction(action));\n }\n }\n\n /**\n * Get all registered providers.\n */\n getProviders(): ProviderDef[] {\n this.ensureInitialized();\n if (!this.actionRegistry) {\n return [];\n }\n return this.actionRegistry.getProviders();\n }\n\n /**\n * Get all actions for a specific provider.\n */\n getActionsForProvider(providerId: string): ActionDefinition[] {\n this.ensureInitialized();\n if (!this.actionRegistry) {\n return [];\n }\n return this.actionRegistry.getActionsForProvider(providerId);\n }\n\n // =====================================\n // AGENT TOOLS API\n // =====================================\n\n /**\n * Get all available agent tools\n */\n getAgentTools(): AgentToolDefinition[] {\n this.ensureInitialized();\n return getGlobalToolRegistry().getDefinitions();\n }\n\n /**\n * Execute agent prompt with tools\n */\n async submitAgentPrompt(\n request: SubmitAgentPromptRequest,\n ): Promise<\n | AgentPromptResult\n | { type: 'batch_submitted'; batchJobId: string; nodeId: string; flowRunId: string }\n > {\n this.ensureInitialized();\n await this.ensureAdapterForCredential(request.credentialId, request.provider);\n return await this.baseAIClient.runAgentPrompt(request, request.provider);\n }\n\n // =====================================\n // CHAT ASSISTANT API\n // =====================================\n\n /**\n * Create a streaming chat session.\n *\n * Returns an AsyncGenerator<ChatStreamEvent> that framework adapters\n * serialize to SSE. The generator handles the full LLM loop including\n * tool calls.\n *\n * @example\n * ```typescript\n * const stream = await invect.createChatStream({\n * messages: [{ role: 'user', content: 'Add a Gmail node' }],\n * context: { flowId: 'flow_123' },\n * });\n *\n * for await (const event of stream) {\n * // event.type: 'text_delta' | 'tool_call_start' | 'tool_call_result' | 'done' | 'error'\n * }\n * ```\n */\n async createChatStream(options: {\n messages: Array<{ role: string; content: string; toolCalls?: unknown[]; toolCallId?: string }>;\n context: {\n flowId?: string;\n selectedNodeId?: string;\n viewMode?: string;\n credentialId?: string;\n maxSteps?: number;\n };\n identity?: InvectIdentity;\n }): Promise<AsyncGenerator<import('./services/chat').ChatStreamEvent>> {\n this.ensureInitialized();\n const chatService = this.serviceFactory.getChatStreamService();\n return chatService.createStream({\n messages: options.messages as import('./services/chat').ChatMessage[],\n context: options.context as import('./services/chat').ChatContext,\n identity: options.identity,\n });\n }\n\n /**\n * Check if the chat assistant feature is enabled and configured.\n */\n isChatEnabled(): boolean {\n this.ensureInitialized();\n return this.serviceFactory.getChatStreamService().isEnabled();\n }\n\n // =====================================\n // CHAT MESSAGE PERSISTENCE API\n // =====================================\n\n /**\n * Get all persisted chat messages for a flow (ordered by creation time).\n */\n async getChatMessages(\n flowId: string,\n ): Promise<import('./services/chat/chat-messages.model').ChatMessageRecord[]> {\n this.ensureInitialized();\n return this.serviceFactory.getDatabaseService().chatMessages.getByFlowId(flowId);\n }\n\n /**\n * Save chat messages for a flow (replaces existing messages).\n */\n async saveChatMessages(\n flowId: string,\n messages: Array<{\n role: 'user' | 'assistant' | 'system' | 'tool';\n content: string;\n toolMeta?: Record<string, unknown> | null;\n }>,\n ): Promise<import('./services/chat/chat-messages.model').ChatMessageRecord[]> {\n this.ensureInitialized();\n const db = this.serviceFactory.getDatabaseService();\n // Replace: delete all existing, then bulk insert\n await db.chatMessages.deleteByFlowId(flowId);\n return db.chatMessages.createMany(\n messages.map((m) => ({ flowId, role: m.role, content: m.content, toolMeta: m.toolMeta })),\n );\n }\n\n /**\n * Delete all chat messages for a flow.\n */\n async deleteChatMessages(flowId: string): Promise<void> {\n this.ensureInitialized();\n await this.serviceFactory.getDatabaseService().chatMessages.deleteByFlowId(flowId);\n }\n\n // =====================================\n // TRIGGERS API\n // =====================================\n\n /**\n * List all trigger registrations for a flow.\n */\n async listTriggersForFlow(flowId: string): Promise<FlowTriggerRegistration[]> {\n this.config.logger.debug('listTriggersForFlow called', { flowId });\n return this.triggersService.listTriggersForFlow(flowId);\n }\n\n /**\n * Get a single trigger registration by ID.\n */\n async getTrigger(triggerId: string): Promise<FlowTriggerRegistration | null> {\n this.config.logger.debug('getTrigger called', { triggerId });\n return this.triggersService.getTrigger(triggerId);\n }\n\n /**\n * Create a trigger registration.\n */\n async createTrigger(input: CreateTriggerInput): Promise<FlowTriggerRegistration> {\n this.config.logger.debug('createTrigger called', { flowId: input.flowId, type: input.type });\n return this.triggersService.createTrigger(input);\n }\n\n /**\n * Update a trigger registration.\n */\n async updateTrigger(\n triggerId: string,\n input: UpdateTriggerInput,\n ): Promise<FlowTriggerRegistration | null> {\n this.config.logger.debug('updateTrigger called', { triggerId });\n return this.triggersService.updateTrigger(triggerId, input);\n }\n\n /**\n * Delete a trigger registration.\n */\n async deleteTrigger(triggerId: string): Promise<void> {\n this.config.logger.debug('deleteTrigger called', { triggerId });\n return this.triggersService.deleteTrigger(triggerId);\n }\n\n /**\n * Sync trigger registrations for a flow from its definition.\n * Call this after publishing a new flow version. Also refreshes\n * the cron scheduler if any cron triggers were changed.\n */\n async syncTriggersForFlow(\n flowId: string,\n definition: { nodes: Array<{ id: string; type: string; params?: Record<string, unknown> }> },\n ): Promise<FlowTriggerRegistration[]> {\n this.config.logger.debug('syncTriggersForFlow called', { flowId });\n const result = await this.triggersService.syncTriggersForFlow(flowId, definition);\n\n // Refresh cron scheduler if it's running\n try {\n const scheduler = this.serviceFactory?.getCronScheduler();\n if (scheduler?.isRunning()) {\n await scheduler.refresh();\n }\n } catch {\n // Scheduler may not be started — that's fine\n }\n\n return result;\n }\n\n /**\n * Get all enabled cron triggers (for scheduler initialization).\n */\n async getEnabledCronTriggers(): Promise<FlowTriggerRegistration[]> {\n this.config.logger.debug('getEnabledCronTriggers called');\n return this.triggersService.getEnabledCronTriggers();\n }\n\n /**\n * Execute a cron trigger (called by the cron scheduler).\n */\n async executeCronTrigger(triggerId: string): Promise<{ flowRunId: string; flowId: string }> {\n this.config.logger.debug('executeCronTrigger called', { triggerId });\n return this.triggersService.executeCronTrigger(triggerId);\n }\n\n // =====================================\n // OAUTH2 API\n // =====================================\n\n /**\n * Get all available OAuth2 providers\n */\n getOAuth2Providers() {\n this.ensureInitialized();\n return this.serviceFactory.getCredentialsService().getOAuth2Service().getProviders();\n }\n\n /**\n * Get a specific OAuth2 provider by ID\n */\n getOAuth2Provider(providerId: string) {\n this.ensureInitialized();\n return this.serviceFactory.getCredentialsService().getOAuth2Service().getProvider(providerId);\n }\n\n /**\n * Start an OAuth2 authorization flow\n * Returns the authorization URL and state to redirect the user to\n */\n startOAuth2Flow(\n providerId: string,\n appConfig: { clientId: string; clientSecret: string; redirectUri: string },\n options?: { scopes?: string[]; returnUrl?: string; credentialName?: string },\n ) {\n this.ensureInitialized();\n return this.serviceFactory\n .getCredentialsService()\n .getOAuth2Service()\n .startAuthorizationFlow(providerId, appConfig, options);\n }\n\n /**\n * Get pending OAuth2 state (for verifying callback)\n */\n getOAuth2PendingState(state: string) {\n this.ensureInitialized();\n return this.serviceFactory.getCredentialsService().getOAuth2Service().getPendingState(state);\n }\n\n /**\n * Handle OAuth2 callback - exchange code for tokens and create credential\n */\n async handleOAuth2Callback(\n code: string,\n state: string,\n appConfig: { clientId: string; clientSecret: string; redirectUri: string },\n ): Promise<Credential> {\n this.ensureInitialized();\n\n const credentialsService = this.serviceFactory.getCredentialsService();\n const oauth2Service = credentialsService.getOAuth2Service();\n\n // Exchange code for tokens\n const { tokens, pendingState } = await oauth2Service.exchangeCodeForTokens(\n code,\n state,\n appConfig,\n );\n\n // Get provider info\n const provider = oauth2Service.getProvider(pendingState.providerId);\n if (!provider) {\n throw new Error(`Unknown OAuth2 provider: ${pendingState.providerId}`);\n }\n\n // Build credential config\n const config = oauth2Service.buildCredentialConfig(tokens, pendingState.providerId, appConfig);\n\n // Create credential\n const credential = await credentialsService.create({\n name: pendingState.credentialName || provider.name,\n type: 'http-api',\n authType: 'oauth2',\n config,\n description: `OAuth2 credential for ${provider.name}`,\n metadata: {\n oauth2Provider: pendingState.providerId,\n scopes: tokens.scope?.split(' ') || provider.defaultScopes,\n },\n });\n\n this.loggerManager.getBasicLogger().info('Created OAuth2 credential', {\n credentialId: credential.id,\n providerId: pendingState.providerId,\n });\n\n return credential;\n }\n\n /**\n * Refresh an OAuth2 credential's access token\n */\n async refreshOAuth2Credential(credentialId: string): Promise<Credential> {\n this.ensureInitialized();\n\n // Use getDecryptedWithRefresh which handles the refresh automatically\n return this.serviceFactory.getCredentialsService().getDecryptedWithRefresh(credentialId);\n }\n}\n"],"mappings":"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"}