@elevasis/core 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (564) hide show
  1. package/dist/index.d.ts +435 -0
  2. package/dist/index.js +403 -0
  3. package/dist/organization-model/index.d.ts +435 -0
  4. package/dist/organization-model/index.js +403 -0
  5. package/package.json +62 -0
  6. package/src/README.md +34 -0
  7. package/src/__tests__/observability-exports.test.ts +36 -0
  8. package/src/__tests__/publish.test.ts +18 -0
  9. package/src/__tests__/template-foundations-compatibility.test.ts +34 -0
  10. package/src/auth/index.ts +8 -0
  11. package/src/auth/multi-tenancy/credentials/README.md +38 -0
  12. package/src/auth/multi-tenancy/credentials/__tests__/encryption.test.ts +216 -0
  13. package/src/auth/multi-tenancy/credentials/__tests__/service.test.ts +174 -0
  14. package/src/auth/multi-tenancy/credentials/index.ts +6 -0
  15. package/src/auth/multi-tenancy/credentials/server/encryption.ts +39 -0
  16. package/src/auth/multi-tenancy/credentials/server/service.ts +60 -0
  17. package/src/auth/multi-tenancy/index.ts +17 -0
  18. package/src/auth/multi-tenancy/invitations/__tests__/invitation.test.ts +237 -0
  19. package/src/auth/multi-tenancy/invitations/api-schemas.ts +107 -0
  20. package/src/auth/multi-tenancy/invitations/index.ts +38 -0
  21. package/src/auth/multi-tenancy/invitations/invitation.ts +86 -0
  22. package/src/auth/multi-tenancy/invitations/server/index.ts +25 -0
  23. package/src/auth/multi-tenancy/invitations/server/transforms.ts +24 -0
  24. package/src/auth/multi-tenancy/invitations/server/workos.ts +24 -0
  25. package/src/auth/multi-tenancy/invitations/supabase.ts +50 -0
  26. package/src/auth/multi-tenancy/memberships/__tests__/membership.test.ts +227 -0
  27. package/src/auth/multi-tenancy/memberships/__tests__/supabase-transforms.test.ts +88 -0
  28. package/src/auth/multi-tenancy/memberships/__tests__/workos-transforms.test.ts +139 -0
  29. package/src/auth/multi-tenancy/memberships/api-schemas.ts +126 -0
  30. package/src/auth/multi-tenancy/memberships/index.ts +22 -0
  31. package/src/auth/multi-tenancy/memberships/membership.ts +138 -0
  32. package/src/auth/multi-tenancy/memberships/server/index.ts +15 -0
  33. package/src/auth/multi-tenancy/memberships/server/transforms.ts +32 -0
  34. package/src/auth/multi-tenancy/memberships/server/workos.ts +21 -0
  35. package/src/auth/multi-tenancy/memberships/supabase.ts +46 -0
  36. package/src/auth/multi-tenancy/organizations/__tests__/organization.test.ts +249 -0
  37. package/src/auth/multi-tenancy/organizations/api-schemas.ts +128 -0
  38. package/src/auth/multi-tenancy/organizations/index.ts +23 -0
  39. package/src/auth/multi-tenancy/organizations/organization.ts +25 -0
  40. package/src/auth/multi-tenancy/organizations/server/index.ts +10 -0
  41. package/src/auth/multi-tenancy/organizations/server/transforms.ts +35 -0
  42. package/src/auth/multi-tenancy/organizations/server/workos.ts +20 -0
  43. package/src/auth/multi-tenancy/types.ts +89 -0
  44. package/src/auth/multi-tenancy/users/__tests__/user.test.ts +208 -0
  45. package/src/auth/multi-tenancy/users/api-schemas.ts +194 -0
  46. package/src/auth/multi-tenancy/users/index.ts +28 -0
  47. package/src/auth/multi-tenancy/users/server/index.ts +19 -0
  48. package/src/auth/multi-tenancy/users/server/transforms.ts +21 -0
  49. package/src/auth/multi-tenancy/users/server/workos.ts +16 -0
  50. package/src/auth/multi-tenancy/users/user.ts +65 -0
  51. package/src/business/acquisition/api-schemas.ts +759 -0
  52. package/src/business/acquisition/index.ts +109 -0
  53. package/src/business/acquisition/types.ts +400 -0
  54. package/src/business/crm/api-schemas.ts +75 -0
  55. package/src/business/delivery/index.ts +1 -0
  56. package/src/business/delivery/types.ts +89 -0
  57. package/src/business/index.ts +12 -0
  58. package/src/business/pdf/assets/ElevasisLogo.png +0 -0
  59. package/src/business/pdf/browser/image-utils.ts +74 -0
  60. package/src/business/pdf/browser/index.ts +16 -0
  61. package/src/business/pdf/browser/pdfmake-browser.ts +229 -0
  62. package/src/business/pdf/index.ts +10 -0
  63. package/src/business/pdf/sections/acceptance.ts +112 -0
  64. package/src/business/pdf/sections/automation.ts +56 -0
  65. package/src/business/pdf/sections/cover.ts +51 -0
  66. package/src/business/pdf/sections/index.ts +57 -0
  67. package/src/business/pdf/sections/investment.ts +69 -0
  68. package/src/business/pdf/sections/proposal-document.ts +200 -0
  69. package/src/business/pdf/sections/summary-investment.ts +124 -0
  70. package/src/business/pdf/sections/summary.ts +55 -0
  71. package/src/business/pdf/sections/table-summary.ts +59 -0
  72. package/src/business/pdf/sections/types.ts +124 -0
  73. package/src/business/pdf/server/__tests__/pdfmake-test.ts +219 -0
  74. package/src/business/pdf/server/index.ts +21 -0
  75. package/src/business/pdf/server/pdfmake-service.ts +237 -0
  76. package/src/business/pdf/server/themes/default.ts +8 -0
  77. package/src/business/pdf/server/themes/index.ts +9 -0
  78. package/src/business/pdf/server/themes/types.ts +8 -0
  79. package/src/business/pdf/shared/convert.ts +514 -0
  80. package/src/business/pdf/shared/index.ts +12 -0
  81. package/src/business/pdf/themes.ts +78 -0
  82. package/src/business/pdf/types.ts +272 -0
  83. package/src/business/seo/__tests__/linking.test.ts +549 -0
  84. package/src/business/seo/__tests__/types.test.ts +404 -0
  85. package/src/business/seo/index.ts +2 -0
  86. package/src/business/seo/linking.ts +281 -0
  87. package/src/business/seo/types.ts +199 -0
  88. package/src/commands/index.ts +8 -0
  89. package/src/commands/queue/index.ts +3 -0
  90. package/src/commands/queue/schemas.test.ts +593 -0
  91. package/src/commands/queue/schemas.ts +125 -0
  92. package/src/commands/queue/sse-events.ts +61 -0
  93. package/src/commands/queue/types/action.ts +52 -0
  94. package/src/commands/queue/types/checkpoint.ts +44 -0
  95. package/src/commands/queue/types/index.ts +7 -0
  96. package/src/commands/queue/types/task.ts +116 -0
  97. package/src/commands/queue/types.ts +14 -0
  98. package/src/content/distribution-metadata.ts +61 -0
  99. package/src/content/index.ts +10 -0
  100. package/src/deployments/index.ts +22 -0
  101. package/src/execution/calibration/__tests__/schemas.test.ts +320 -0
  102. package/src/execution/calibration/index.ts +3 -0
  103. package/src/execution/calibration/schemas.ts +121 -0
  104. package/src/execution/calibration/sse-events.ts +125 -0
  105. package/src/execution/calibration/types.ts +190 -0
  106. package/src/execution/core/__tests__/api-schemas.test.ts +667 -0
  107. package/src/execution/core/__tests__/archived-logs.test.ts +72 -0
  108. package/src/execution/core/api-schemas.ts +312 -0
  109. package/src/execution/core/index.ts +11 -0
  110. package/src/execution/core/resource-validator.test.ts +63 -0
  111. package/src/execution/core/runner-types.ts +80 -0
  112. package/src/execution/core/server/environment.ts +31 -0
  113. package/src/execution/core/sse-executions.ts +119 -0
  114. package/src/execution/core/types.ts +29 -0
  115. package/src/execution/engine/__tests__/fixtures/index.ts +2 -0
  116. package/src/execution/engine/__tests__/fixtures/mock-scenarios.ts +60 -0
  117. package/src/execution/engine/__tests__/fixtures/test-agents.ts +85 -0
  118. package/src/execution/engine/__tests__/integration/agent-framework.integration.test.ts +1031 -0
  119. package/src/execution/engine/__tests__/timeout.test.ts +565 -0
  120. package/src/execution/engine/agent/__tests__/errors.test.ts +508 -0
  121. package/src/execution/engine/agent/actions/__tests__/processor.test.ts +531 -0
  122. package/src/execution/engine/agent/actions/executor.ts +205 -0
  123. package/src/execution/engine/agent/actions/navigate-knowledge-executor.ts +230 -0
  124. package/src/execution/engine/agent/actions/processor.ts +116 -0
  125. package/src/execution/engine/agent/actions/types.ts +70 -0
  126. package/src/execution/engine/agent/core/__tests__/agent.test.ts +614 -0
  127. package/src/execution/engine/agent/core/__tests__/error-passthrough.test.ts +134 -0
  128. package/src/execution/engine/agent/core/agent.ts +810 -0
  129. package/src/execution/engine/agent/core/types.ts +155 -0
  130. package/src/execution/engine/agent/errors.ts +251 -0
  131. package/src/execution/engine/agent/index.ts +78 -0
  132. package/src/execution/engine/agent/knowledge-map/__tests__/navigate-knowledge-executor.test.ts +580 -0
  133. package/src/execution/engine/agent/knowledge-map/__tests__/utils.test.ts +622 -0
  134. package/src/execution/engine/agent/knowledge-map/types.ts +106 -0
  135. package/src/execution/engine/agent/knowledge-map/utils.ts +101 -0
  136. package/src/execution/engine/agent/memory/__tests__/domains.test.ts +72 -0
  137. package/src/execution/engine/agent/memory/__tests__/manager.test.ts +754 -0
  138. package/src/execution/engine/agent/memory/__tests__/utils.test.ts +285 -0
  139. package/src/execution/engine/agent/memory/domains.ts +99 -0
  140. package/src/execution/engine/agent/memory/manager.ts +365 -0
  141. package/src/execution/engine/agent/memory/processor.ts +66 -0
  142. package/src/execution/engine/agent/memory/types.ts +90 -0
  143. package/src/execution/engine/agent/memory/utils.ts +134 -0
  144. package/src/execution/engine/agent/observability/logging.ts +467 -0
  145. package/src/execution/engine/agent/observability/types.ts +64 -0
  146. package/src/execution/engine/agent/reasoning/__tests__/request-builder.test.ts +209 -0
  147. package/src/execution/engine/agent/reasoning/adapters/agent-adapter-helpers.ts +349 -0
  148. package/src/execution/engine/agent/reasoning/processor.ts +92 -0
  149. package/src/execution/engine/agent/reasoning/prompt-sections/base-actions.ts +134 -0
  150. package/src/execution/engine/agent/reasoning/prompt-sections/completion.ts +49 -0
  151. package/src/execution/engine/agent/reasoning/prompt-sections/knowledge-map.ts +93 -0
  152. package/src/execution/engine/agent/reasoning/prompt-sections/memory.ts +65 -0
  153. package/src/execution/engine/agent/reasoning/prompt-sections/security.ts +32 -0
  154. package/src/execution/engine/agent/reasoning/prompt-sections/tools.ts +44 -0
  155. package/src/execution/engine/agent/reasoning/request-builder.ts +169 -0
  156. package/src/execution/engine/agent/reasoning/types.ts +18 -0
  157. package/src/execution/engine/base/__tests__/errors.test.ts +246 -0
  158. package/src/execution/engine/base/__tests__/serialization.test.ts +670 -0
  159. package/src/execution/engine/base/__tests__/utils.test.ts +45 -0
  160. package/src/execution/engine/base/errors.ts +118 -0
  161. package/src/execution/engine/base/index.ts +2 -0
  162. package/src/execution/engine/base/logging.ts +31 -0
  163. package/src/execution/engine/base/serialization.ts +324 -0
  164. package/src/execution/engine/base/types.ts +126 -0
  165. package/src/execution/engine/base/utils.ts +41 -0
  166. package/src/execution/engine/index.ts +440 -0
  167. package/src/execution/engine/interface/index.ts +1 -0
  168. package/src/execution/engine/interface/types.ts +62 -0
  169. package/src/execution/engine/llm/__tests__/errors.test.ts +318 -0
  170. package/src/execution/engine/llm/__tests__/input-sanitizer.test.ts +286 -0
  171. package/src/execution/engine/llm/__tests__/model-info.test.ts +50 -0
  172. package/src/execution/engine/llm/__tests__/model-validation.test.ts +321 -0
  173. package/src/execution/engine/llm/__tests__/response-schema-validator.test.ts +115 -0
  174. package/src/execution/engine/llm/adapters/__tests__/adapter-factory.test.ts +375 -0
  175. package/src/execution/engine/llm/adapters/__tests__/anthropic-adapter.test.ts +463 -0
  176. package/src/execution/engine/llm/adapters/__tests__/anthropic.integration.test.ts +177 -0
  177. package/src/execution/engine/llm/adapters/__tests__/circuit-breaker-error.test.ts +94 -0
  178. package/src/execution/engine/llm/adapters/__tests__/google-adapter.test.ts +722 -0
  179. package/src/execution/engine/llm/adapters/__tests__/google.integration.test.ts +376 -0
  180. package/src/execution/engine/llm/adapters/__tests__/mock-adapter.test.ts +432 -0
  181. package/src/execution/engine/llm/adapters/__tests__/openai-adapter.test.ts +551 -0
  182. package/src/execution/engine/llm/adapters/__tests__/openrouter-adapter.test.ts +563 -0
  183. package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +105 -0
  184. package/src/execution/engine/llm/adapters/__tests__/universal-adapter.test.ts +537 -0
  185. package/src/execution/engine/llm/adapters/circuit-breaker.ts +147 -0
  186. package/src/execution/engine/llm/adapters/index.ts +17 -0
  187. package/src/execution/engine/llm/adapters/mock-adapter.ts +116 -0
  188. package/src/execution/engine/llm/adapters/server/adapter-factory.ts +130 -0
  189. package/src/execution/engine/llm/adapters/server/anthropic.ts +137 -0
  190. package/src/execution/engine/llm/adapters/server/compose-signal.ts +18 -0
  191. package/src/execution/engine/llm/adapters/server/google.ts +283 -0
  192. package/src/execution/engine/llm/adapters/server/index.ts +12 -0
  193. package/src/execution/engine/llm/adapters/server/openai.ts +206 -0
  194. package/src/execution/engine/llm/adapters/server/openrouter.ts +235 -0
  195. package/src/execution/engine/llm/adapters/universal-adapter.ts +230 -0
  196. package/src/execution/engine/llm/errors.ts +186 -0
  197. package/src/execution/engine/llm/input-sanitizer.ts +129 -0
  198. package/src/execution/engine/llm/model-info.ts +332 -0
  199. package/src/execution/engine/llm/response-schema-validator.ts +113 -0
  200. package/src/execution/engine/llm/types.ts +86 -0
  201. package/src/execution/engine/test-utils/index.ts +6 -0
  202. package/src/execution/engine/test-utils/mocks.ts +56 -0
  203. package/src/execution/engine/tools/__tests__/tooling-error.test.ts +265 -0
  204. package/src/execution/engine/tools/__tests__/types.test.ts +47 -0
  205. package/src/execution/engine/tools/integration/base-integration-adapter.ts +50 -0
  206. package/src/execution/engine/tools/integration/index.ts +53 -0
  207. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-adapter.ts +73 -0
  208. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-tools.ts +209 -0
  209. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-company-email/index.ts +82 -0
  210. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-decision-maker-email/index.ts +122 -0
  211. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-person-email/index.ts +89 -0
  212. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/verify-email/index.ts +84 -0
  213. package/src/execution/engine/tools/integration/server/adapters/anymailfinder/index.ts +16 -0
  214. package/src/execution/engine/tools/integration/server/adapters/apify/__tests__/apify-run-actor.integration.test.ts +293 -0
  215. package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.ts +100 -0
  216. package/src/execution/engine/tools/integration/server/adapters/apify/apify-tools.ts +217 -0
  217. package/src/execution/engine/tools/integration/server/adapters/apify/fetch/get-dataset-items/index.ts +92 -0
  218. package/src/execution/engine/tools/integration/server/adapters/apify/fetch/run-actor/index.ts +218 -0
  219. package/src/execution/engine/tools/integration/server/adapters/apify/fetch/start-actor/index.ts +87 -0
  220. package/src/execution/engine/tools/integration/server/adapters/apify/index.ts +11 -0
  221. package/src/execution/engine/tools/integration/server/adapters/attio/__tests__/attio-crud.integration.test.ts +362 -0
  222. package/src/execution/engine/tools/integration/server/adapters/attio/attio-adapter.ts +162 -0
  223. package/src/execution/engine/tools/integration/server/adapters/attio/attio-tools.ts +594 -0
  224. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/README.md +632 -0
  225. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-attribute/index.ts +214 -0
  226. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-note/index.ts +152 -0
  227. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-record/index.ts +141 -0
  228. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-note/index.ts +86 -0
  229. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-record/index.ts +105 -0
  230. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.test.ts +186 -0
  231. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.ts +118 -0
  232. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-attributes/index.ts +165 -0
  233. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-notes/index.ts +96 -0
  234. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-objects/index.ts +104 -0
  235. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.test.ts +338 -0
  236. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.ts +156 -0
  237. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-attribute/index.ts +220 -0
  238. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-record/index.ts +140 -0
  239. package/src/execution/engine/tools/integration/server/adapters/attio/fetch/utils/types.ts +147 -0
  240. package/src/execution/engine/tools/integration/server/adapters/attio/index.ts +31 -0
  241. package/src/execution/engine/tools/integration/server/adapters/dropbox/__tests__/dropbox-adapter.test.ts +409 -0
  242. package/src/execution/engine/tools/integration/server/adapters/dropbox/dropbox-adapter.ts +281 -0
  243. package/src/execution/engine/tools/integration/server/adapters/dropbox/dropbox-tools.ts +106 -0
  244. package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/create-folder/__tests__/index.test.ts +451 -0
  245. package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/create-folder/index.ts +114 -0
  246. package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/upload-file/__tests__/index.test.ts +415 -0
  247. package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/upload-file/index.ts +111 -0
  248. package/src/execution/engine/tools/integration/server/adapters/dropbox/index.ts +25 -0
  249. package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-adapter.ts +210 -0
  250. package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +104 -0
  251. package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -0
  252. package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-adapter.ts +1189 -0
  253. package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-tools.ts +641 -0
  254. package/src/execution/engine/tools/integration/server/adapters/google-sheets/index.ts +18 -0
  255. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/activate-campaign/index.ts +86 -0
  256. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/__tests__/index.test.ts +289 -0
  257. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/index.ts +154 -0
  258. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/__tests__/index.test.ts +325 -0
  259. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/index.ts +153 -0
  260. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-delete-leads/index.ts +84 -0
  261. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-campaign/index.ts +125 -0
  262. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-inbox-test/index.ts +107 -0
  263. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/delete-campaign/index.ts +85 -0
  264. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-account-health/index.ts +91 -0
  265. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign/index.ts +92 -0
  266. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/__tests__/index.test.ts +195 -0
  267. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/index.ts +113 -0
  268. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-daily-campaign-analytics/index.ts +104 -0
  269. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-emails/index.ts +155 -0
  270. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/__tests__/index.test.ts +196 -0
  271. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/index.ts +102 -0
  272. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/__tests__/index.test.ts +189 -0
  273. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/index.ts +87 -0
  274. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-leads/index.ts +112 -0
  275. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/patch-lead/index.ts +76 -0
  276. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/pause-campaign/index.ts +86 -0
  277. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/remove-from-subsequence/index.ts +98 -0
  278. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/send-reply/index.ts +126 -0
  279. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/__tests__/index.test.ts +193 -0
  280. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/index.ts +99 -0
  281. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/__tests__/index.test.ts +621 -0
  282. package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/index.ts +125 -0
  283. package/src/execution/engine/tools/integration/server/adapters/instantly/index.ts +29 -0
  284. package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-adapter.ts +178 -0
  285. package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1473 -0
  286. package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/check-credits/index.ts +59 -0
  287. package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/verify-email/index.ts +102 -0
  288. package/src/execution/engine/tools/integration/server/adapters/millionverifier/index.ts +17 -0
  289. package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-adapter.ts +80 -0
  290. package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +102 -0
  291. package/src/execution/engine/tools/integration/server/adapters/resend/fetch/get-email/index.ts +102 -0
  292. package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.ts +134 -0
  293. package/src/execution/engine/tools/integration/server/adapters/resend/fetch/utils/types.ts +75 -0
  294. package/src/execution/engine/tools/integration/server/adapters/resend/index.ts +27 -0
  295. package/src/execution/engine/tools/integration/server/adapters/resend/resend-adapter.ts +108 -0
  296. package/src/execution/engine/tools/integration/server/adapters/resend/resend-tools.ts +132 -0
  297. package/src/execution/engine/tools/integration/server/adapters/resend/types.ts +44 -0
  298. package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/create-envelope/index.ts +274 -0
  299. package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/download-document/index.ts +230 -0
  300. package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/get-envelope/index.ts +133 -0
  301. package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/utils/types.ts +246 -0
  302. package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/void-envelope/index.ts +90 -0
  303. package/src/execution/engine/tools/integration/server/adapters/signature-api/index.ts +38 -0
  304. package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-adapter.ts +87 -0
  305. package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-tools.ts +179 -0
  306. package/src/execution/engine/tools/integration/server/adapters/stripe/fetch/utils/types.ts +210 -0
  307. package/src/execution/engine/tools/integration/server/adapters/stripe/index.ts +44 -0
  308. package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-adapter.ts +517 -0
  309. package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +309 -0
  310. package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/domain-search/index.ts +133 -0
  311. package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-finder/index.ts +122 -0
  312. package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-verifier/index.ts +111 -0
  313. package/src/execution/engine/tools/integration/server/adapters/tomba/index.ts +11 -0
  314. package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-adapter.ts +78 -0
  315. package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-tools.ts +222 -0
  316. package/src/execution/engine/tools/integration/server/index.ts +61 -0
  317. package/src/execution/engine/tools/integration/service.ts +161 -0
  318. package/src/execution/engine/tools/integration/tool.ts +253 -0
  319. package/src/execution/engine/tools/integration/types/anymailfinder.ts +74 -0
  320. package/src/execution/engine/tools/integration/types/apify.ts +92 -0
  321. package/src/execution/engine/tools/integration/types/attio.ts +354 -0
  322. package/src/execution/engine/tools/integration/types/dropbox.ts +64 -0
  323. package/src/execution/engine/tools/integration/types/gmail.ts +35 -0
  324. package/src/execution/engine/tools/integration/types/google-sheets.ts +303 -0
  325. package/src/execution/engine/tools/integration/types/index.ts +19 -0
  326. package/src/execution/engine/tools/integration/types/instantly.ts +557 -0
  327. package/src/execution/engine/tools/integration/types/millionverifier.ts +56 -0
  328. package/src/execution/engine/tools/integration/types/resend.ts +63 -0
  329. package/src/execution/engine/tools/integration/types/signature-api.ts +164 -0
  330. package/src/execution/engine/tools/integration/types/stripe.ts +162 -0
  331. package/src/execution/engine/tools/integration/types/tomba.ts +94 -0
  332. package/src/execution/engine/tools/lead-service-types.ts +884 -0
  333. package/src/execution/engine/tools/llm/index.ts +11 -0
  334. package/src/execution/engine/tools/llm/server/index.ts +8 -0
  335. package/src/execution/engine/tools/llm/server/llm-call-tool.ts +118 -0
  336. package/src/execution/engine/tools/platform/__tests__/approval.test.ts +242 -0
  337. package/src/execution/engine/tools/platform/__tests__/email.test.ts +482 -0
  338. package/src/execution/engine/tools/platform/__tests__/hitl-cancel.test.ts +97 -0
  339. package/src/execution/engine/tools/platform/__tests__/notification.test.ts +208 -0
  340. package/src/execution/engine/tools/platform/__tests__/pdf.test.ts +441 -0
  341. package/src/execution/engine/tools/platform/__tests__/scheduler.test.ts +189 -0
  342. package/src/execution/engine/tools/platform/__tests__/schedules.test.ts +336 -0
  343. package/src/execution/engine/tools/platform/acquisition/company-tools.ts +248 -0
  344. package/src/execution/engine/tools/platform/acquisition/contact-tools.ts +319 -0
  345. package/src/execution/engine/tools/platform/acquisition/index.ts +43 -0
  346. package/src/execution/engine/tools/platform/acquisition/list-tools.ts +148 -0
  347. package/src/execution/engine/tools/platform/acquisition/types.ts +260 -0
  348. package/src/execution/engine/tools/platform/approval/cancel-by-metadata.ts +65 -0
  349. package/src/execution/engine/tools/platform/approval/index.ts +4 -0
  350. package/src/execution/engine/tools/platform/approval/tool.ts +99 -0
  351. package/src/execution/engine/tools/platform/email/index.ts +122 -0
  352. package/src/execution/engine/tools/platform/email/types.ts +96 -0
  353. package/src/execution/engine/tools/platform/index.ts +181 -0
  354. package/src/execution/engine/tools/platform/notification.ts +81 -0
  355. package/src/execution/engine/tools/platform/pdf/index.ts +110 -0
  356. package/src/execution/engine/tools/platform/pdf/types.ts +77 -0
  357. package/src/execution/engine/tools/platform/resource-invocation/__tests__/edge-cases.test.ts +507 -0
  358. package/src/execution/engine/tools/platform/resource-invocation/__tests__/resource-invocation-service.test.ts +500 -0
  359. package/src/execution/engine/tools/platform/resource-invocation/__tests__/tool.test.ts +555 -0
  360. package/src/execution/engine/tools/platform/resource-invocation/dynamic-tool.ts +94 -0
  361. package/src/execution/engine/tools/platform/resource-invocation/index.ts +14 -0
  362. package/src/execution/engine/tools/platform/resource-invocation/resource-invocation-service.ts +147 -0
  363. package/src/execution/engine/tools/platform/resource-invocation/tool.ts +115 -0
  364. package/src/execution/engine/tools/platform/resource-invocation/types.ts +31 -0
  365. package/src/execution/engine/tools/platform/scheduler.ts +87 -0
  366. package/src/execution/engine/tools/platform/schedules/cancel-by-key-tool.ts +48 -0
  367. package/src/execution/engine/tools/platform/schedules/cancel-by-metadata-tool.ts +42 -0
  368. package/src/execution/engine/tools/platform/schedules/delete-by-key-tool.ts +43 -0
  369. package/src/execution/engine/tools/platform/schedules/index.ts +13 -0
  370. package/src/execution/engine/tools/platform/schedules/list-tool.ts +56 -0
  371. package/src/execution/engine/tools/platform/schedules/types.ts +88 -0
  372. package/src/execution/engine/tools/platform/storage/__tests__/storage.test.ts +998 -0
  373. package/src/execution/engine/tools/platform/storage/index.ts +370 -0
  374. package/src/execution/engine/tools/platform/storage/types.ts +128 -0
  375. package/src/execution/engine/tools/platform/types.ts +148 -0
  376. package/src/execution/engine/tools/registry.ts +590 -0
  377. package/src/execution/engine/tools/tool-maps.ts +694 -0
  378. package/src/execution/engine/tools/types.ts +233 -0
  379. package/src/execution/engine/workflow/__tests__/errors.test.ts +139 -0
  380. package/src/execution/engine/workflow/__tests__/utils.test.ts +645 -0
  381. package/src/execution/engine/workflow/__tests__/workflow.test.ts +818 -0
  382. package/src/execution/engine/workflow/errors.ts +63 -0
  383. package/src/execution/engine/workflow/helpers/index.ts +11 -0
  384. package/src/execution/engine/workflow/helpers/server/index.ts +8 -0
  385. package/src/execution/engine/workflow/helpers/server/llm-call.ts +93 -0
  386. package/src/execution/engine/workflow/index.ts +19 -0
  387. package/src/execution/engine/workflow/log-truncate.ts +26 -0
  388. package/src/execution/engine/workflow/logging.ts +191 -0
  389. package/src/execution/engine/workflow/types.ts +183 -0
  390. package/src/execution/engine/workflow/utils.ts +280 -0
  391. package/src/execution/engine/workflow/workflow.ts +168 -0
  392. package/src/execution/index.ts +20 -0
  393. package/src/execution/scheduler/__tests__/api-schemas.test.ts +733 -0
  394. package/src/execution/scheduler/__tests__/retry.test.ts +37 -0
  395. package/src/execution/scheduler/__tests__/utils.test.ts +1009 -0
  396. package/src/execution/scheduler/api-schemas.ts +296 -0
  397. package/src/execution/scheduler/index.ts +50 -0
  398. package/src/execution/scheduler/schemas.ts +264 -0
  399. package/src/execution/scheduler/types.ts +111 -0
  400. package/src/execution/scheduler/utils.ts +364 -0
  401. package/src/forms/index.ts +7 -0
  402. package/src/forms/schemas.test.ts +113 -0
  403. package/src/forms/schemas.ts +69 -0
  404. package/src/forms/types.ts +70 -0
  405. package/src/index.ts +54 -0
  406. package/src/integrations/credentials/__tests__/api-schemas.test.ts +496 -0
  407. package/src/integrations/credentials/__tests__/schemas.test.ts +82 -0
  408. package/src/integrations/credentials/__tests__/utils.test.ts +144 -0
  409. package/src/integrations/credentials/api-schemas.ts +143 -0
  410. package/src/integrations/credentials/index.ts +32 -0
  411. package/src/integrations/credentials/schemas.ts +164 -0
  412. package/src/integrations/credentials/utils.ts +59 -0
  413. package/src/integrations/oauth/__tests__/provider-registry.test.ts +59 -0
  414. package/src/integrations/oauth/api-schemas.ts +92 -0
  415. package/src/integrations/oauth/index.ts +19 -0
  416. package/src/integrations/oauth/provider-registry.ts +61 -0
  417. package/src/integrations/oauth/server/__tests__/refresh-concurrent.test.ts +183 -0
  418. package/src/integrations/oauth/server/__tests__/refresh.integration.test.ts +257 -0
  419. package/src/integrations/oauth/server/__tests__/refresh.test.ts +577 -0
  420. package/src/integrations/oauth/server/credentials.ts +39 -0
  421. package/src/integrations/oauth/server/refresh.ts +214 -0
  422. package/src/integrations/oauth/types.ts +34 -0
  423. package/src/integrations/webhook-endpoints/__tests__/api-schemas.test.ts +318 -0
  424. package/src/integrations/webhook-endpoints/api-schemas.ts +102 -0
  425. package/src/integrations/webhook-endpoints/index.ts +28 -0
  426. package/src/integrations/webhook-endpoints/types.ts +51 -0
  427. package/src/operations/activities/api-schemas.ts +79 -0
  428. package/src/operations/activities/index.ts +9 -0
  429. package/src/operations/activities/sse-events.ts +30 -0
  430. package/src/operations/activities/types.ts +63 -0
  431. package/src/operations/debug-logs/client.ts +60 -0
  432. package/src/operations/debug-logs/debug-logger.ts +83 -0
  433. package/src/operations/debug-logs/index.ts +8 -0
  434. package/src/operations/debug-logs/server.ts +19 -0
  435. package/src/operations/debug-logs/types.ts +33 -0
  436. package/src/operations/index.ts +50 -0
  437. package/src/operations/notifications/__tests__/api-schemas.test.ts +216 -0
  438. package/src/operations/notifications/api-schemas.ts +91 -0
  439. package/src/operations/notifications/index.ts +3 -0
  440. package/src/operations/notifications/sse-events.ts +21 -0
  441. package/src/operations/notifications/types.ts +47 -0
  442. package/src/operations/observability/__tests__/openrouter-cost-flow.test.ts +297 -0
  443. package/src/operations/observability/__tests__/schemas.test.ts +151 -0
  444. package/src/operations/observability/__tests__/types.test.ts +109 -0
  445. package/src/operations/observability/__tests__/utils.test.ts +54 -0
  446. package/src/operations/observability/ai-usage-collector.ts +64 -0
  447. package/src/operations/observability/index.ts +13 -0
  448. package/src/operations/observability/metrics-collector.ts +49 -0
  449. package/src/operations/observability/schemas.ts +39 -0
  450. package/src/operations/observability/types.ts +463 -0
  451. package/src/operations/observability/utils.ts +77 -0
  452. package/src/operations/sessions/__tests__/api-schemas.test.ts +361 -0
  453. package/src/operations/sessions/__tests__/manager.test.ts +821 -0
  454. package/src/operations/sessions/api-schemas.ts +166 -0
  455. package/src/operations/sessions/index.ts +26 -0
  456. package/src/operations/sessions/server/manager.ts +90 -0
  457. package/src/operations/sessions/server/session.ts +180 -0
  458. package/src/operations/sessions/types.ts +98 -0
  459. package/src/operations/triggers/index.ts +12 -0
  460. package/src/operations/triggers/webhook/definitions/__tests__/instantly-reply-received.test.ts +72 -0
  461. package/src/operations/triggers/webhook/definitions/instantly-account-error.ts +44 -0
  462. package/src/operations/triggers/webhook/definitions/instantly-auto-reply-received.ts +51 -0
  463. package/src/operations/triggers/webhook/definitions/instantly-campaign-completed.ts +45 -0
  464. package/src/operations/triggers/webhook/definitions/instantly-email-bounced.ts +49 -0
  465. package/src/operations/triggers/webhook/definitions/instantly-lead-unsubscribed.ts +45 -0
  466. package/src/operations/triggers/webhook/definitions/instantly-reply-received.ts +54 -0
  467. package/src/operations/triggers/webhook/index.ts +35 -0
  468. package/src/operations/triggers/webhook/types.ts +74 -0
  469. package/src/organization-model/README.md +79 -0
  470. package/src/organization-model/__tests__/graph.test.ts +250 -0
  471. package/src/organization-model/__tests__/resolve.test.ts +47 -0
  472. package/src/organization-model/defaults.ts +60 -0
  473. package/src/organization-model/domains/branding.ts +22 -0
  474. package/src/organization-model/domains/crm.ts +46 -0
  475. package/src/organization-model/domains/delivery.ts +48 -0
  476. package/src/organization-model/domains/features.ts +57 -0
  477. package/src/organization-model/domains/lead-gen.ts +33 -0
  478. package/src/organization-model/domains/navigation.ts +103 -0
  479. package/src/organization-model/domains/shared.ts +42 -0
  480. package/src/organization-model/graph/build.ts +432 -0
  481. package/src/organization-model/graph/index.ts +4 -0
  482. package/src/organization-model/graph/schema.ts +50 -0
  483. package/src/organization-model/graph/types.ts +52 -0
  484. package/src/organization-model/index.ts +11 -0
  485. package/src/organization-model/published.ts +18 -0
  486. package/src/organization-model/resolve.ts +42 -0
  487. package/src/organization-model/schema.ts +21 -0
  488. package/src/organization-model/types.ts +27 -0
  489. package/src/platform/api/index.ts +1 -0
  490. package/src/platform/api/types.ts +35 -0
  491. package/src/platform/constants/http.ts +37 -0
  492. package/src/platform/constants/index.ts +5 -0
  493. package/src/platform/constants/limits.ts +32 -0
  494. package/src/platform/constants/resilience.ts +51 -0
  495. package/src/platform/constants/timeouts.ts +20 -0
  496. package/src/platform/constants/versions.ts +3 -0
  497. package/src/platform/index.ts +27 -0
  498. package/src/platform/registry/__tests__/command-view.test.ts +410 -0
  499. package/src/platform/registry/__tests__/resource-registry-static.test.ts +347 -0
  500. package/src/platform/registry/__tests__/resource-registry.integration.test.ts +1004 -0
  501. package/src/platform/registry/__tests__/resource-registry.list-executable.test.ts +393 -0
  502. package/src/platform/registry/__tests__/resource-registry.test.ts +1942 -0
  503. package/src/platform/registry/__tests__/serialization.test.ts +1127 -0
  504. package/src/platform/registry/__tests__/validation.test.ts +1086 -0
  505. package/src/platform/registry/command-view.ts +180 -0
  506. package/src/platform/registry/domains.ts +165 -0
  507. package/src/platform/registry/index.ts +93 -0
  508. package/src/platform/registry/reserved.ts +24 -0
  509. package/src/platform/registry/resource-metadata.ts +59 -0
  510. package/src/platform/registry/resource-registry.command-queue-groups.test.ts +129 -0
  511. package/src/platform/registry/resource-registry.ts +788 -0
  512. package/src/platform/registry/serialization.ts +273 -0
  513. package/src/platform/registry/serialized-types.ts +231 -0
  514. package/src/platform/registry/stats-types.ts +66 -0
  515. package/src/platform/registry/types.ts +404 -0
  516. package/src/platform/registry/validation.ts +513 -0
  517. package/src/platform/resilience/__tests__/circuit-breaker.test.ts +291 -0
  518. package/src/platform/resilience/__tests__/http-error-mapper.test.ts +173 -0
  519. package/src/platform/resilience/__tests__/rate-limiter.test.ts +471 -0
  520. package/src/platform/resilience/__tests__/retry.test.ts +380 -0
  521. package/src/platform/resilience/__tests__/timeout.test.ts +219 -0
  522. package/src/platform/resilience/circuit-breaker.ts +164 -0
  523. package/src/platform/resilience/errors.ts +68 -0
  524. package/src/platform/resilience/http-error-mapper.ts +129 -0
  525. package/src/platform/resilience/index.ts +93 -0
  526. package/src/platform/resilience/rate-limiter-types.ts +46 -0
  527. package/src/platform/resilience/rate-limiter.ts +140 -0
  528. package/src/platform/resilience/retry.ts +89 -0
  529. package/src/platform/resilience/timeout.ts +63 -0
  530. package/src/platform/sse/events.ts +67 -0
  531. package/src/platform/sse/index.ts +7 -0
  532. package/src/platform/utils/__tests__/currency.test.ts +77 -0
  533. package/src/platform/utils/__tests__/validation.test.ts +1083 -0
  534. package/src/platform/utils/currency.ts +96 -0
  535. package/src/platform/utils/debounce.ts +52 -0
  536. package/src/platform/utils/error.ts +42 -0
  537. package/src/platform/utils/hmac.test.ts +97 -0
  538. package/src/platform/utils/index.ts +32 -0
  539. package/src/platform/utils/server/betterstack-logger.ts +210 -0
  540. package/src/platform/utils/server/hmac.ts +44 -0
  541. package/src/platform/utils/server/unsubscribe.ts +111 -0
  542. package/src/platform/utils/token-counter.ts +96 -0
  543. package/src/platform/utils/validation.ts +425 -0
  544. package/src/projects/api-schemas.ts +265 -0
  545. package/src/published.ts +1 -0
  546. package/src/server.ts +273 -0
  547. package/src/supabase/__tests__/helpers.test.ts +51 -0
  548. package/src/supabase/database.types.ts +2674 -0
  549. package/src/supabase/helpers.ts +20 -0
  550. package/src/supabase/index.ts +52 -0
  551. package/src/supabase/server/client.ts +58 -0
  552. package/src/test-utils/README.md +150 -0
  553. package/src/test-utils/browser-mocks.ts +54 -0
  554. package/src/test-utils/fixtures/api-keys.ts +52 -0
  555. package/src/test-utils/fixtures/index.ts +4 -0
  556. package/src/test-utils/fixtures/memberships.ts +80 -0
  557. package/src/test-utils/fixtures/organizations.ts +69 -0
  558. package/src/test-utils/fixtures/users.ts +79 -0
  559. package/src/test-utils/index.ts +11 -0
  560. package/src/test-utils/mocks/index.ts +2 -0
  561. package/src/test-utils/mocks/supabase.ts +142 -0
  562. package/src/test-utils/mocks/workos.ts +108 -0
  563. package/src/test-utils/rls/RLSTestContext.ts +586 -0
  564. package/src/test-utils/rls/index.ts +1 -0
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Workflow error classes
3
+ * Errors specific to workflow execution
4
+ */
5
+
6
+ import { ExecutionError } from '../base/errors'
7
+
8
+ /**
9
+ * Thrown when a workflow step fails during execution
10
+ *
11
+ * Severity: error (step failure — errors always take precedence over warnings)
12
+ * Category: workflow
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * throw new WorkflowStepError(
17
+ * 'Step "send_email" failed: SMTP server unavailable',
18
+ * {
19
+ * workflowId: 'wf-123',
20
+ * stepIndex: 2,
21
+ * stepName: 'send_email',
22
+ * attemptCount: 1
23
+ * }
24
+ * )
25
+ * ```
26
+ */
27
+ export class WorkflowStepError extends ExecutionError {
28
+ readonly type = 'workflow_step_error' as const
29
+ readonly severity = 'critical' as const
30
+ readonly category = 'workflow' as const
31
+
32
+ constructor(message: string, context?: Record<string, unknown>) {
33
+ super(message, context)
34
+ }
35
+ }
36
+
37
+ /**
38
+ * Thrown when workflow validation fails
39
+ *
40
+ * Severity: info (validation failure indicating user/developer configuration error)
41
+ * Category: validation
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * throw new WorkflowValidationError(
46
+ * 'Invalid workflow: Step "approval" has no approver configured',
47
+ * {
48
+ * workflowId: 'wf-123',
49
+ * stepIndex: 3,
50
+ * field: 'approver'
51
+ * }
52
+ * )
53
+ * ```
54
+ */
55
+ export class WorkflowValidationError extends ExecutionError {
56
+ readonly type = 'workflow_validation_error' as const
57
+ readonly severity = 'info' as const
58
+ readonly category = 'validation' as const
59
+
60
+ constructor(message: string, context?: Record<string, unknown>) {
61
+ super(message, context)
62
+ }
63
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Workflow Step Helpers - Browser-safe exports
3
+ *
4
+ * NOTE: Server-only helper (llmCall) is exported from @repo/core/server
5
+ * to prevent browser build failures (depends on server-only LLM adapters).
6
+ *
7
+ * This file exports only browser-safe types.
8
+ */
9
+
10
+ // Type-only exports (safe for browser - types are erased at runtime)
11
+ export type { LLMCallOptions } from './server/llm-call'
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Server-only Workflow Helpers
3
+ *
4
+ * These helpers use server-only adapters (createLLMAdapter)
5
+ * and should only be imported from @repo/core/server
6
+ */
7
+
8
+ export { llmCall, type LLMCallOptions } from './llm-call'
@@ -0,0 +1,93 @@
1
+ /**
2
+ * LLM Call Helper
3
+ * Helper function for making LLM calls within workflow step handlers
4
+ */
5
+
6
+ import { createLLMAdapter } from '../../../llm/adapters/server/adapter-factory'
7
+ import type { ModelConfig } from '../../../llm/model-info'
8
+ import type { ExecutionContext } from '../../../base/types'
9
+ import type { LLMMessage } from '../../../llm/types'
10
+
11
+ export interface LLMCallOptions {
12
+ /** Model configuration (provider, model, API key) */
13
+ modelConfig: ModelConfig
14
+ /** Chat messages (system/user/assistant) */
15
+ messages: LLMMessage[]
16
+ /** JSON Schema for structured output */
17
+ responseSchema: Record<string, unknown>
18
+ /** Optional temperature override */
19
+ temperature?: number
20
+ /** Optional max output tokens override */
21
+ maxOutputTokens?: number
22
+ /** Optional step ID for observability context */
23
+ stepId?: string
24
+ /** Optional step name for observability context */
25
+ stepName?: string
26
+ }
27
+
28
+ /**
29
+ * Make an LLM call within a workflow step handler
30
+ *
31
+ * Automatically integrates with observability tracking via ExecutionContext.
32
+ * Tracks calls with `callType: 'workflow-step'` in AI usage metrics.
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * const summarizeStep: WorkflowStep = {
37
+ * id: 'summarize',
38
+ * name: 'Summarize Data',
39
+ * handler: async (input, context) => {
40
+ * const result = await llmCall(context, {
41
+ * modelConfig: {
42
+ * provider: 'openrouter',
43
+ * model: 'openrouter/anthropic/claude-sonnet-4.5',
44
+ * apiKey: process.env.OPENROUTER_API_KEY!
45
+ * },
46
+ * messages: [
47
+ * { role: 'system', content: 'You are a summarization expert.' },
48
+ * { role: 'user', content: `Summarize: ${input.data}` }
49
+ * ],
50
+ * responseSchema: {
51
+ * type: 'object',
52
+ * properties: { summary: { type: 'string' } },
53
+ * required: ['summary']
54
+ * },
55
+ * stepId: 'summarize',
56
+ * stepName: 'Summarize Data'
57
+ * })
58
+ *
59
+ * return { summary: result.summary }
60
+ * },
61
+ * inputSchema: z.object({ data: z.string() }),
62
+ * outputSchema: z.object({ summary: z.string() }),
63
+ * next: { type: StepType.LINEAR, target: 'next-step' }
64
+ * }
65
+ * ```
66
+ */
67
+ export async function llmCall<T = unknown>(context: ExecutionContext, options: LLMCallOptions): Promise<T> {
68
+ const { modelConfig, messages, responseSchema, temperature, maxOutputTokens, stepId, stepName } = options
69
+
70
+ const adapter = createLLMAdapter(
71
+ {
72
+ ...modelConfig,
73
+ ...(temperature !== undefined && { temperature }),
74
+ ...(maxOutputTokens !== undefined && { maxOutputTokens })
75
+ },
76
+ context.aiUsageCollector,
77
+ 'workflow-step',
78
+ {
79
+ type: 'workflow-step',
80
+ stepId: stepId ?? 'unknown',
81
+ stepName
82
+ }
83
+ )
84
+
85
+ const response = await adapter.generate<T>({
86
+ messages,
87
+ responseSchema,
88
+ temperature,
89
+ maxOutputTokens
90
+ })
91
+
92
+ return response.output
93
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Workflow module exports
3
+ */
4
+
5
+ // Export workflow implementation
6
+ export { Workflow } from './workflow'
7
+
8
+ // Export workflow types
9
+ export * from './types'
10
+
11
+ // Export workflow logger types
12
+ export * from './logging'
13
+
14
+ // Export workflow errors
15
+ export * from './errors'
16
+
17
+ // Export workflow step helper types (browser-safe - types only)
18
+ // NOTE: llmCall implementation is server-only - import from @repo/core/server
19
+ export { type LLMCallOptions } from './helpers'
@@ -0,0 +1,26 @@
1
+ /** Max characters for string values in logged step input/output contexts */
2
+ const LOG_STRING_TRUNCATE_LIMIT = 200
3
+
4
+ /**
5
+ * Deep-clone an object, truncating string values that exceed the limit.
6
+ * Keeps the structure intact so the UI timeline can display field names and short previews.
7
+ */
8
+ export function truncateForLogging(value: unknown): unknown {
9
+ if (value === null || value === undefined) return value
10
+ if (typeof value === 'string') {
11
+ return value.length > LOG_STRING_TRUNCATE_LIMIT
12
+ ? value.slice(0, LOG_STRING_TRUNCATE_LIMIT) + `… [${value.length} chars]`
13
+ : value
14
+ }
15
+ if (Array.isArray(value)) {
16
+ return value.map(truncateForLogging)
17
+ }
18
+ if (typeof value === 'object') {
19
+ const result: Record<string, unknown> = {}
20
+ for (const [k, v] of Object.entries(value)) {
21
+ result[k] = truncateForLogging(v)
22
+ }
23
+ return result
24
+ }
25
+ return value
26
+ }
@@ -0,0 +1,191 @@
1
+ /**
2
+ * Workflow-specific logging types and utilities
3
+ */
4
+
5
+ import type { ExecutionLogLevel, ExecutionLogMessage } from '../base/logging'
6
+
7
+ // Workflow start/end log context
8
+ export interface WorkflowExecutionContext {
9
+ type: 'workflow'
10
+ contextType: 'workflow-execution'
11
+ executionId: string
12
+ workflowId: string
13
+ workflowName?: string
14
+ organizationId: string
15
+ executionPath?: string[]
16
+ }
17
+
18
+ // Workflow failure log context
19
+ export interface WorkflowFailureContext {
20
+ type: 'workflow'
21
+ contextType: 'workflow-failure'
22
+ executionId: string
23
+ workflowId: string
24
+ error: string
25
+ }
26
+
27
+ // Step started log context
28
+ export interface StepStartedContext {
29
+ type: 'workflow'
30
+ contextType: 'step-started'
31
+ stepId: string
32
+ stepStatus: 'started'
33
+ input: unknown
34
+ startTime: number // Explicit start timestamp for timeline
35
+ }
36
+
37
+ // Step completed log context
38
+ export interface StepCompletedContext {
39
+ type: 'workflow'
40
+ contextType: 'step-completed'
41
+ stepId: string
42
+ stepStatus: 'completed'
43
+ output: unknown
44
+ duration: number
45
+ isTerminal: boolean
46
+ startTime: number // Explicit start timestamp for timeline
47
+ endTime: number // Explicit end timestamp for timeline
48
+ }
49
+
50
+ // Step failed log context
51
+ export interface StepFailedContext {
52
+ type: 'workflow'
53
+ contextType: 'step-failed'
54
+ stepId: string
55
+ stepStatus: 'failed'
56
+ error: string
57
+ duration: number
58
+ startTime: number // Explicit start timestamp for timeline
59
+ endTime: number // Explicit end timestamp for timeline
60
+ }
61
+
62
+ // Conditional routing log context
63
+ export interface ConditionalRouteContext {
64
+ type: 'workflow'
65
+ contextType: 'conditional-route'
66
+ stepId: string
67
+ target: string
68
+ error?: string
69
+ }
70
+
71
+ // Execution path log context
72
+ export interface ExecutionPathContext {
73
+ type: 'workflow'
74
+ contextType: 'execution-path'
75
+ executionPath: string[]
76
+ }
77
+
78
+ // Union of step contexts with stepStatus field
79
+ export type StepStatusContext = StepStartedContext | StepCompletedContext | StepFailedContext
80
+
81
+ // Union of all workflow log contexts
82
+ export type WorkflowLogContext =
83
+ | WorkflowExecutionContext
84
+ | WorkflowFailureContext
85
+ | StepStartedContext
86
+ | StepCompletedContext
87
+ | StepFailedContext
88
+ | ConditionalRouteContext
89
+ | ExecutionPathContext
90
+
91
+ // Workflow execution log message (UI-specific interface)
92
+ export interface WorkflowLogMessage {
93
+ level: ExecutionLogLevel
94
+ message: string
95
+ timestamp: number
96
+ context?: WorkflowLogContext
97
+ }
98
+
99
+ /**
100
+ * Type guard helper functions for context discrimination
101
+ */
102
+
103
+ export function isWorkflowExecutionContext(ctx: WorkflowLogContext): ctx is WorkflowExecutionContext {
104
+ return ctx.contextType === 'workflow-execution'
105
+ }
106
+
107
+ export function isWorkflowFailureContext(ctx: WorkflowLogContext): ctx is WorkflowFailureContext {
108
+ return ctx.contextType === 'workflow-failure'
109
+ }
110
+
111
+ export function isStepStartedContext(ctx: WorkflowLogContext): ctx is StepStartedContext {
112
+ // Check new contextType field or fall back to old stepStatus pattern for backwards compatibility
113
+ return (
114
+ ctx.contextType === 'step-started' ||
115
+ ('stepStatus' in ctx && (ctx as StepStatusContext).stepStatus === 'started')
116
+ )
117
+ }
118
+
119
+ export function isStepCompletedContext(ctx: WorkflowLogContext): ctx is StepCompletedContext {
120
+ // Check new contextType field or fall back to old stepStatus pattern for backwards compatibility
121
+ return (
122
+ ctx.contextType === 'step-completed' ||
123
+ ('stepStatus' in ctx && (ctx as StepStatusContext).stepStatus === 'completed')
124
+ )
125
+ }
126
+
127
+ export function isStepFailedContext(ctx: WorkflowLogContext): ctx is StepFailedContext {
128
+ // Check new contextType field or fall back to old stepStatus pattern for backwards compatibility
129
+ return (
130
+ ctx.contextType === 'step-failed' ||
131
+ ('stepStatus' in ctx && (ctx as StepStatusContext).stepStatus === 'failed')
132
+ )
133
+ }
134
+
135
+ export function isConditionalRouteContext(ctx: WorkflowLogContext): ctx is ConditionalRouteContext {
136
+ // Check new contextType field or fall back to checking for target field for backwards compatibility
137
+ return ctx.contextType === 'conditional-route' || ('target' in ctx && 'stepId' in ctx && !('stepStatus' in ctx))
138
+ }
139
+
140
+ export function isExecutionPathContext(ctx: WorkflowLogContext): ctx is ExecutionPathContext {
141
+ return ctx.contextType === 'execution-path'
142
+ }
143
+
144
+ /**
145
+ * Helper to check if context has step-related information
146
+ */
147
+ export function isStepContext(
148
+ ctx: WorkflowLogContext
149
+ ): ctx is StepStartedContext | StepCompletedContext | StepFailedContext | ConditionalRouteContext {
150
+ return (
151
+ ctx.contextType === 'step-started' ||
152
+ ctx.contextType === 'step-completed' ||
153
+ ctx.contextType === 'step-failed' ||
154
+ ctx.contextType === 'conditional-route'
155
+ )
156
+ }
157
+
158
+ /**
159
+ * Convert ExecutionLogMessage to WorkflowLogMessage for workflow context
160
+ * Returns null for non-workflow logs
161
+ */
162
+ export function toWorkflowLogMessage(log: ExecutionLogMessage): WorkflowLogMessage | null {
163
+ // Convert logs with workflow context
164
+ if (log.context?.type === 'workflow') {
165
+ return {
166
+ level: log.level,
167
+ message: log.message,
168
+ timestamp: log.timestamp,
169
+ context: log.context as WorkflowLogContext
170
+ }
171
+ }
172
+
173
+ // Convert user-level logs (no context or non-workflow context from step handlers)
174
+ // Cast is safe: LogEntry renders any context object as expandable JSON
175
+ return {
176
+ level: log.level,
177
+ message: log.message,
178
+ timestamp: log.timestamp,
179
+ context: log.context as WorkflowLogContext | undefined
180
+ }
181
+ }
182
+
183
+ /**
184
+ * Convert array of ExecutionLogMessages to WorkflowLogMessages
185
+ * Filters out non-workflow logs
186
+ */
187
+ export function toWorkflowLogMessages(logs: ExecutionLogMessage[]): WorkflowLogMessage[] {
188
+ return logs
189
+ .map(toWorkflowLogMessage)
190
+ .filter((log): log is WorkflowLogMessage => log !== null)
191
+ }
@@ -0,0 +1,183 @@
1
+ // Import z for schema types
2
+ import type { z } from 'zod'
3
+
4
+ /**
5
+ * Workflow-specific type definitions
6
+ */
7
+
8
+ import type { ExecutionContext } from '../base/types'
9
+ import type { ResourceDefinition } from '../../../platform/registry/types'
10
+ import type { ResourceMetricsConfig } from '../../../operations/observability/types'
11
+ import type { ExecutionInterface } from '../interface/types'
12
+
13
+ // Workflow configuration
14
+ export interface WorkflowConfig extends ResourceDefinition {
15
+ type: 'workflow'
16
+ }
17
+
18
+ // Workflow step definition
19
+ export interface WorkflowStepDefinition {
20
+ id: string
21
+ name: string
22
+ description: string
23
+ }
24
+
25
+ // Step handler function type
26
+ export type StepHandler = (input: unknown, context: ExecutionContext) => Promise<unknown>
27
+
28
+ // Step type for flow control
29
+ export const StepType = {
30
+ LINEAR: 'linear',
31
+ CONDITIONAL: 'conditional',
32
+ } as const
33
+ // eslint-disable-next-line no-redeclare -- intentional const+type pattern (enum-like)
34
+ export type StepType = typeof StepType[keyof typeof StepType]
35
+
36
+ // Next step configuration types
37
+ export interface LinearNext {
38
+ type: 'linear'
39
+ target: string
40
+ }
41
+
42
+ export interface ConditionalNext {
43
+ type: 'conditional'
44
+ routes: Array<{
45
+ condition: (data: unknown) => boolean
46
+ target: string
47
+ }>
48
+ default: string // Required to avoid ambiguity
49
+ }
50
+
51
+ export type NextConfig =
52
+ | LinearNext // Go to specific step
53
+ | ConditionalNext // Conditional routing
54
+ | null // Explicitly end workflow
55
+
56
+ // Workflow step with graph-based flow
57
+ export interface WorkflowStep extends WorkflowStepDefinition {
58
+ handler: StepHandler
59
+
60
+ // I/O validation (BOTH REQUIRED for complete type safety)
61
+ inputSchema: z.ZodSchema // Validates input from previous step or workflow
62
+ outputSchema: z.ZodSchema // Validates output before next step
63
+
64
+ next: NextConfig // Required - explicit flow decision for every step
65
+ }
66
+
67
+ // Workflow definition - pure configuration without instance state
68
+ // Used by registry to define workflows that can be instantiated
69
+ export interface WorkflowDefinition {
70
+ config: WorkflowConfig
71
+ contract: import('../base/types').Contract
72
+ steps: Record<string, WorkflowStep>
73
+ entryPoint: string
74
+
75
+ /**
76
+ * Metrics configuration for ROI calculations
77
+ * Optional: Only needed if tracking automation savings
78
+ */
79
+ metricsConfig?: ResourceMetricsConfig
80
+
81
+ /**
82
+ * Execution interface configuration (optional)
83
+ * If provided, workflow appears in Execution Runner UI
84
+ */
85
+ interface?: ExecutionInterface
86
+ }
87
+
88
+ /**
89
+ * Workflow timeline and observability types
90
+ * Used for UI timeline visualization and backend processing
91
+ */
92
+
93
+ import type { WorkflowLogMessage } from './logging'
94
+
95
+ /**
96
+ * Workflow step state
97
+ * Aggregates step context events with timing and logs
98
+ */
99
+ export interface StepState {
100
+ stepId: string
101
+ stepName: string
102
+ status: 'pending' | 'running' | 'completed' | 'failed'
103
+
104
+ // Timeline visualization timing
105
+ startTime?: number // From step-started context
106
+ endTime?: number // From step-completed/failed context
107
+ duration?: number // From step-completed/failed context
108
+
109
+ // Step data
110
+ input?: unknown
111
+ output?: unknown
112
+ error?: unknown
113
+ logs: WorkflowLogMessage[]
114
+ }
115
+
116
+ /**
117
+ * Complete workflow execution data for node visualization
118
+ * Parsed from execution logs
119
+ */
120
+ export interface WorkflowNodeVisualizerData {
121
+ steps: StepState[]
122
+ totalDuration: number
123
+ isRunning: boolean
124
+ }
125
+
126
+ /**
127
+ * Step data extracted from execution logs
128
+ * Used to provide detailed step information in unified graph nodes
129
+ */
130
+ export interface StepExecutionData {
131
+ /** Final execution status for this step */
132
+ status: 'pending' | 'running' | 'completed' | 'failed'
133
+
134
+ /** Step execution duration in milliseconds */
135
+ duration?: number
136
+
137
+ /** Step input data */
138
+ input?: unknown
139
+
140
+ /** Step output data */
141
+ output?: unknown
142
+
143
+ /** Error data if step failed */
144
+ error?: unknown
145
+
146
+ /** Log messages from this step (reserved for future use) */
147
+ logs?: unknown[]
148
+ }
149
+
150
+ /**
151
+ * Execution path tracking state
152
+ *
153
+ * Tracks which steps have been executed and which edges were taken during workflow
154
+ * execution. This state is built from SSE execution log events and used to compute
155
+ * the visual dimming/highlighting of nodes and edges.
156
+ *
157
+ * Algorithm:
158
+ * - `executedSteps` provides O(1) lookup for "has this step been reached?"
159
+ * - `executedStepsOrdered` preserves execution order for edge inference
160
+ * - `takenEdges` comes from `conditional-route` SSE events + linear step inference
161
+ * - `currentStepId` tracks the actively running step for animation
162
+ * - `stepStatusMap` provides final status for each executed step
163
+ * - `stepDataMap` provides detailed execution data (duration, input, output, error)
164
+ */
165
+ export interface ExecutionPathState {
166
+ /** Set of step IDs that have been executed (O(1) lookup) */
167
+ executedSteps: Set<string>
168
+
169
+ /** Step IDs in execution order (for inferring linear edges) */
170
+ executedStepsOrdered: string[]
171
+
172
+ /** Set of edge IDs that were traversed (format: "edge-{source}-{target}") */
173
+ takenEdges: Set<string>
174
+
175
+ /** Currently running step ID (undefined if no step is running) */
176
+ currentStepId?: string
177
+
178
+ /** Map of step IDs to their final execution status */
179
+ stepStatusMap?: Map<string, 'pending' | 'running' | 'completed' | 'failed'>
180
+
181
+ /** Map of step IDs to their execution data (duration, input, output, error) */
182
+ stepDataMap?: Map<string, StepExecutionData>
183
+ }