@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,884 @@
1
+ /**
2
+ * Lead Service Types
3
+ * CRUD operation types for the acquisition platform (lists, companies, contacts, deals)
4
+ *
5
+ * Implementation: apps/api/src/acquisition/lead-service.ts (LeadService class)
6
+ */
7
+
8
+ import type { Json } from '../../../supabase'
9
+
10
+ // Re-export acquisition domain types from the authoritative source
11
+ import type {
12
+ AcqList,
13
+ AcqCompany,
14
+ AcqContact,
15
+ AcqDealTask,
16
+ AcqDealTaskKind,
17
+ CompanyListStage,
18
+ ContactListStage,
19
+ ListConfig,
20
+ ListTelemetry
21
+ } from '../../../business/acquisition/types'
22
+
23
+ export type {
24
+ AcqList,
25
+ AcqCompany,
26
+ AcqContact,
27
+ AcqDealTask,
28
+ AcqDealTaskKind,
29
+ CompanyListStage,
30
+ ContactListStage,
31
+ ListConfig,
32
+ ListTelemetry
33
+ }
34
+
35
+ // Pagination types
36
+ export interface PaginationParams {
37
+ limit: number
38
+ offset: number
39
+ }
40
+
41
+ export interface PaginatedResult<T> {
42
+ data: T[]
43
+ total: number
44
+ limit: number
45
+ offset: number
46
+ }
47
+
48
+ // List params
49
+ export interface CreateListParams {
50
+ organizationId: string
51
+ name: string
52
+ description?: string
53
+ type?: string
54
+ batchIds?: string[]
55
+ instantlyCampaignId?: string
56
+ status?: string
57
+ metadata?: Record<string, unknown>
58
+ config?: ListConfig
59
+ }
60
+
61
+ export interface UpdateListParams {
62
+ name?: string
63
+ description?: string
64
+ status?: string
65
+ }
66
+
67
+ // Company params
68
+ export interface CreateCompanyParams {
69
+ organizationId: string
70
+ name: string
71
+ domain?: string
72
+ linkedinUrl?: string
73
+ website?: string
74
+ numEmployees?: number
75
+ foundedYear?: number
76
+ locationCity?: string
77
+ locationState?: string
78
+ category?: string
79
+ source?: string
80
+ batchId?: string
81
+ verticalResearch?: string
82
+ }
83
+
84
+ export interface UpdateCompanyParams {
85
+ name?: string
86
+ domain?: string
87
+ linkedinUrl?: string
88
+ website?: string
89
+ numEmployees?: number
90
+ foundedYear?: number
91
+ locationCity?: string
92
+ locationState?: string
93
+ category?: string
94
+ segment?: string
95
+ pipelineStatus?: Record<string, unknown>
96
+ enrichmentData?: Record<string, unknown>
97
+ source?: string
98
+ batchId?: string
99
+ status?: 'active' | 'invalid'
100
+ verticalResearch?: string | null
101
+ }
102
+
103
+ export type UpsertCompanyParams = CreateCompanyParams
104
+ // Upsert by domain - uses same fields as create
105
+
106
+ export interface CompanyFilters {
107
+ listId?: string // Filter to companies in a specific list (via acq_list_companies)
108
+ search?: string
109
+ domain?: string
110
+ website?: string
111
+ segment?: string
112
+ category?: string
113
+ pipelineStatus?: Record<string, unknown>
114
+ /** Exclude companies whose pipeline_status contains this value (PostgREST NOT contains) */
115
+ pipelineStatusNot?: Record<string, unknown>
116
+ batchId?: string
117
+ status?: 'active' | 'invalid'
118
+ includeAll?: boolean
119
+ excludeColumns?: Array<'enrichmentData' | 'pipelineStatus'>
120
+ }
121
+
122
+ // Contact params
123
+ export interface CreateContactParams {
124
+ organizationId: string
125
+ email: string
126
+ companyId?: string
127
+ firstName?: string
128
+ lastName?: string
129
+ linkedinUrl?: string
130
+ title?: string
131
+ source?: string
132
+ sourceId?: string
133
+ batchId?: string
134
+ }
135
+
136
+ export interface UpdateContactParams {
137
+ companyId?: string
138
+ emailValid?: 'VALID' | 'INVALID' | 'RISKY' | 'UNKNOWN'
139
+ firstName?: string
140
+ lastName?: string
141
+ linkedinUrl?: string
142
+ title?: string
143
+ headline?: string
144
+ filterReason?: string
145
+ openingLine?: string
146
+ pipelineStatus?: Record<string, unknown>
147
+ enrichmentData?: Record<string, unknown>
148
+ status?: 'active' | 'invalid'
149
+ }
150
+
151
+ export type UpsertContactParams = CreateContactParams
152
+ // Upsert by email - uses same fields as create
153
+
154
+ export interface ContactFilters {
155
+ listId?: string // Filter to contacts in a specific list (via acq_list_members)
156
+ search?: string
157
+ openingLineIsNull?: boolean // Filter to contacts without personalization
158
+ pipelineStatus?: Record<string, unknown>
159
+ batchId?: string
160
+ contactStatus?: 'active' | 'invalid' // Filter by contact status (soft-delete flag)
161
+ }
162
+
163
+ // Deal params (for acq_deals table)
164
+ export interface UpsertDealParams {
165
+ organizationId: string
166
+ /** Contact email — dedupe key together with organization_id */
167
+ contactEmail: string
168
+ /** Optional contact ID for foreign key join */
169
+ contactId?: string
170
+ /** Campaign list that generated this deal (FK to acq_lists) */
171
+ sourceListId?: string
172
+ /** Deal origin: 'instantly', 'referral', 'inbound', 'manual' */
173
+ sourceType?: 'instantly' | 'referral' | 'inbound' | 'manual'
174
+ /** Optional discovery data JSONB to set on upsert */
175
+ discoveryData?: unknown
176
+ /** Optional proposal data JSONB to set on upsert */
177
+ proposalData?: unknown
178
+ }
179
+
180
+ export interface UpdateDiscoveryDataParams {
181
+ organizationId: string
182
+ contactEmail: string
183
+ discoveryData: unknown
184
+ submittedBy?: string
185
+ }
186
+
187
+ export interface UpdateProposalDataParams {
188
+ organizationId: string
189
+ contactEmail: string
190
+ proposalData: unknown
191
+ proposalPdfUrl?: string
192
+ proposalStatus?: string
193
+ }
194
+
195
+ export interface MarkProposalSentParams {
196
+ organizationId: string
197
+ contactEmail: string
198
+ }
199
+
200
+ export interface MarkProposalReviewedParams {
201
+ organizationId: string
202
+ contactEmail: string
203
+ reviewedBy: string
204
+ proposalData?: unknown
205
+ }
206
+
207
+ export interface UpdateCloseLostReasonParams {
208
+ organizationId: string
209
+ dealId: string
210
+ reason: string
211
+ }
212
+
213
+ export interface UpdateFeesParams {
214
+ organizationId: string
215
+ contactEmail?: string
216
+ dealId?: string
217
+ initialFee?: number
218
+ monthlyFee?: number
219
+ }
220
+
221
+ export interface SyncDealStageParams {
222
+ organizationId: string
223
+ dealId: string
224
+ stage: string
225
+ }
226
+
227
+ export interface SetContactNurtureParams {
228
+ organizationId: string
229
+ contactEmail: string
230
+ nurture?: boolean
231
+ }
232
+
233
+ export interface DeactivateContactsByCompanyParams {
234
+ organizationId: string
235
+ companyId: string
236
+ }
237
+
238
+ export interface DeactivateContactsByCompanyResult {
239
+ deactivated: number
240
+ }
241
+
242
+ export interface CancelSchedulesAndHitlByEmailParams {
243
+ organizationId: string
244
+ email: string
245
+ }
246
+
247
+ export interface CancelHitlByDealIdParams {
248
+ organizationId: string
249
+ dealId: string
250
+ }
251
+
252
+ export interface ClearDealFieldsParams {
253
+ organizationId: string
254
+ contactEmail?: string
255
+ dealId?: string
256
+ fields: (
257
+ | 'proposalPdfUrl'
258
+ | 'proposalStatus'
259
+ | 'proposalGeneratedAt'
260
+ | 'initialFee'
261
+ | 'monthlyFee'
262
+ | 'closedLostReason'
263
+ | 'closedLostAt'
264
+ | 'discoveryData'
265
+ | 'discoverySubmittedAt'
266
+ )[]
267
+ }
268
+
269
+ export interface DeleteDealParams {
270
+ organizationId: string
271
+ dealId: string
272
+ }
273
+
274
+ export interface GetDealByIdParams {
275
+ dealId: string
276
+ organizationId: string
277
+ }
278
+
279
+ export interface GetContactByIdParams {
280
+ contactId: string
281
+ organizationId: string
282
+ }
283
+
284
+ export interface GetCompanyByIdParams {
285
+ companyId: string
286
+ organizationId: string
287
+ }
288
+
289
+ // Social monitoring params (acq_social_posts table)
290
+ export interface UpsertSocialPostParams {
291
+ organizationId: string
292
+ platform: string
293
+ platformPostId: string
294
+ authorName: string
295
+ authorUrl?: string | null
296
+ postTitle: string
297
+ postText: string
298
+ postUrl: string
299
+ engagementCount?: number
300
+ commentsCount?: number
301
+ postedAt: string
302
+ metadata?: Record<string, unknown>
303
+ relevanceScore?: number
304
+ matchedKeywords?: string[]
305
+ matchedQuery?: string | null
306
+ initialDraft?: string | null
307
+ finalResponse?: string | null
308
+ sourceCategory?: string | null
309
+ }
310
+
311
+ export interface UpsertSocialPostsParams {
312
+ organizationId: string
313
+ posts: Omit<UpsertSocialPostParams, 'organizationId'>[]
314
+ }
315
+
316
+ export interface UpsertSocialPostsResult {
317
+ inserted: number
318
+ duplicatesSkipped: number
319
+ }
320
+
321
+ export interface AcqDeal {
322
+ id: string
323
+ organizationId: string
324
+ contactEmail: string
325
+ cachedStage?: string | null
326
+ discoveryData?: Json | null
327
+ proposalData?: Json | null
328
+ proposalStatus?: string | null
329
+ proposalSentAt?: string | null
330
+ proposalPdfUrl?: string | null
331
+ signatureEnvelopeId?: string | null
332
+ sourceListId?: string | null
333
+ sourceType?: string | null
334
+ activityLog: DealActivityEntry[]
335
+ createdAt: Date
336
+ updatedAt: Date
337
+ }
338
+
339
+ export interface DealActivityEntry {
340
+ type: string
341
+ title: string
342
+ description?: string
343
+ payload?: Record<string, unknown>
344
+ occurredAt: string
345
+ }
346
+
347
+ export interface AcqDealNote {
348
+ id: string
349
+ dealId: string
350
+ organizationId: string
351
+ authorUserId: string | null
352
+ body: string
353
+ createdAt: string
354
+ updatedAt: string
355
+ }
356
+
357
+ export interface CreateDealNoteParams {
358
+ organizationId: string
359
+ dealId: string
360
+ body: string
361
+ authorUserId?: string
362
+ }
363
+
364
+ export interface ListDealNotesParams {
365
+ organizationId: string
366
+ dealId: string
367
+ }
368
+
369
+ export interface CreateDealTaskParams {
370
+ organizationId: string
371
+ dealId: string
372
+ title: string
373
+ description?: string | null
374
+ kind?: AcqDealTaskKind
375
+ dueAt?: string | null
376
+ assigneeUserId?: string | null
377
+ createdByUserId?: string | null
378
+ }
379
+
380
+ export interface ListDealTasksParams {
381
+ organizationId: string
382
+ dealId: string
383
+ }
384
+
385
+ export interface ListDealTasksDueParams {
386
+ organizationId: string
387
+ assigneeUserId?: string | null
388
+ /** Window filter: 'overdue' = past due, 'today' = due today only, 'today_and_overdue' (default) = both, 'upcoming' = future */
389
+ window?: 'overdue' | 'today' | 'today_and_overdue' | 'upcoming'
390
+ }
391
+
392
+ export interface CompleteDealTaskParams {
393
+ organizationId: string
394
+ taskId: string
395
+ completedByUserId: string | null
396
+ }
397
+
398
+ export interface RecordDealActivityParams {
399
+ organizationId: string
400
+ dealId: string
401
+ type: string
402
+ title: string
403
+ description?: string
404
+ payload?: Record<string, unknown>
405
+ }
406
+
407
+ // Deal analytics types (for /meta status and platform-status workflow)
408
+
409
+ export interface DealStageSummary {
410
+ stage: string
411
+ count: number
412
+ oldestUpdatedAt: string | null
413
+ newestUpdatedAt: string | null
414
+ }
415
+
416
+ export interface StaleDeal {
417
+ id: string
418
+ contactEmail: string
419
+ cachedStage: string
420
+ updatedAt: string
421
+ daysStale: number
422
+ }
423
+
424
+ export interface DealPipelineAnalytics {
425
+ totalDeals: number
426
+ stageSummary: DealStageSummary[]
427
+ staleDeals: StaleDeal[]
428
+ recentActivity: AcqDeal[]
429
+ }
430
+
431
+ export interface DealAnalyticsParams {
432
+ organizationId: string
433
+ recentLimit?: number
434
+ }
435
+
436
+ export interface DealFilters {
437
+ stage?: string
438
+ search?: string
439
+ limit?: number
440
+ offset?: number
441
+ }
442
+
443
+ export interface AddContactsToListParams {
444
+ organizationId: string
445
+ listId: string
446
+ contactIds: string[]
447
+ }
448
+
449
+ export interface AddContactsToListResult {
450
+ added: number
451
+ alreadyExisted: number
452
+ }
453
+
454
+ // List config/progress/executions params
455
+ export interface UpdateListConfigParams {
456
+ organizationId: string
457
+ listId: string
458
+ /** Deep-partial patch — any subtree that is present is replaced at that level. */
459
+ configPatch: Record<string, unknown>
460
+ }
461
+
462
+ export interface UpdateCompanyStageParams {
463
+ organizationId: string
464
+ listId: string
465
+ companyId: string
466
+ stage: CompanyListStage
467
+ executionId?: string
468
+ }
469
+
470
+ export interface UpdateContactStageParams {
471
+ organizationId: string
472
+ listId: string
473
+ contactId: string
474
+ stage: ContactListStage
475
+ executionId?: string
476
+ }
477
+
478
+ export interface AddCompaniesToListParams {
479
+ organizationId: string
480
+ listId: string
481
+ companyIds: string[]
482
+ }
483
+
484
+ export interface AddCompaniesToListResult {
485
+ added: number
486
+ alreadyExisted: number
487
+ }
488
+
489
+ export interface RemoveCompaniesFromListParams {
490
+ organizationId: string
491
+ listId: string
492
+ companyIds: string[]
493
+ }
494
+
495
+ export interface RemoveCompaniesFromListResult {
496
+ removed: number
497
+ }
498
+
499
+ export interface RecordListExecutionParams {
500
+ organizationId: string
501
+ listId: string
502
+ executionId: string
503
+ configSnapshot?: Record<string, unknown>
504
+ }
505
+
506
+ export interface ListExecutionSummary {
507
+ executionId: string
508
+ resourceId: string
509
+ status: string
510
+ createdAt: string
511
+ completedAt: string | null
512
+ durationMs: number | null
513
+ }
514
+
515
+ // Bulk import (contacts)
516
+ export interface BulkImportParams {
517
+ organizationId: string
518
+ contacts: CreateContactParams[]
519
+ listId?: string
520
+ }
521
+
522
+ export interface BulkImportResult {
523
+ created: number
524
+ updated: number
525
+ errors: Array<{ email: string; error: string }>
526
+ }
527
+
528
+ // Bulk import (companies)
529
+ export interface BulkImportCompanyEntry {
530
+ name: string
531
+ domain: string
532
+ website?: string
533
+ locationCity?: string
534
+ locationState?: string
535
+ category?: string
536
+ source?: string
537
+ enrichmentData?: Record<string, unknown>
538
+ pipelineStatus?: Record<string, unknown>
539
+ }
540
+
541
+ export interface BulkImportCompaniesParams {
542
+ organizationId: string
543
+ batchId: string
544
+ companies: BulkImportCompanyEntry[]
545
+ }
546
+
547
+ export interface BulkImportCompaniesResult {
548
+ created: number
549
+ skipped: number
550
+ errors: Array<{ companyName: string; error: string }>
551
+ }
552
+
553
+ /**
554
+ * Lead Service interface for acquisition platform tools.
555
+ * Provides CRUD operations for lists, companies, and contacts.
556
+ *
557
+ * Implementation: apps/api/src/acquisition/lead-service.ts (LeadService class)
558
+ *
559
+ * Multi-tenancy: All operations require organizationId for tenant isolation.
560
+ * All queries are filtered by organizationId via RLS policies.
561
+ */
562
+ export interface ILeadService {
563
+ // List operations
564
+ /**
565
+ * Create a new list
566
+ * @see LeadService.createList (apps/api/src/acquisition/lead-service.ts)
567
+ */
568
+ createList(params: CreateListParams): Promise<AcqList>
569
+
570
+ /**
571
+ * Update an existing list
572
+ * @see LeadService.updateList (apps/api/src/acquisition/lead-service.ts)
573
+ */
574
+ updateList(id: string, params: UpdateListParams): Promise<AcqList>
575
+
576
+ /**
577
+ * Delete a list
578
+ * @see LeadService.deleteList (apps/api/src/acquisition/lead-service.ts)
579
+ */
580
+ deleteList(id: string, organizationId: string): Promise<void>
581
+
582
+ /**
583
+ * Add contacts to a list (upsert — idempotent on re-runs)
584
+ * @see LeadService.addContactsToList (apps/api/src/business/acquisition/lead-service.ts)
585
+ */
586
+ addContactsToList(params: AddContactsToListParams): Promise<AddContactsToListResult>
587
+
588
+ /**
589
+ * List all lists for an organization
590
+ * @see LeadService.listLists (apps/api/src/acquisition/lead-service.ts)
591
+ */
592
+ listLists(organizationId: string): Promise<AcqList[]>
593
+
594
+ /**
595
+ * Get a single list by ID.
596
+ */
597
+ getList(id: string, organizationId: string): Promise<AcqList | null>
598
+
599
+ /**
600
+ * Deep-merge patch the jsonb `config` column. Patch keys at any depth
601
+ * replace the corresponding subtree.
602
+ */
603
+ updateListConfig(params: UpdateListConfigParams): Promise<AcqList>
604
+
605
+ /**
606
+ * Add companies to a list via the acq_list_companies junction.
607
+ * Idempotent on (list_id, company_id).
608
+ */
609
+ addCompaniesToList(params: AddCompaniesToListParams): Promise<AddCompaniesToListResult>
610
+
611
+ /**
612
+ * Remove companies from a list (delete junction rows only — company rows untouched).
613
+ */
614
+ removeCompaniesFromList(params: RemoveCompaniesFromListParams): Promise<RemoveCompaniesFromListResult>
615
+
616
+ /**
617
+ * Live org-wide list telemetry — computed on demand from acq_companies
618
+ * and acq_contacts joined through the acq_list_companies / acq_list_members
619
+ * junctions. Replaces the batch-scoped getBatchTelemetry.
620
+ */
621
+ getListsTelemetry(organizationId: string): Promise<ListTelemetry[]>
622
+
623
+ /**
624
+ * Single live rollup read from list junction stage columns.
625
+ */
626
+ getListProgress(listId: string, organizationId: string): Promise<ListTelemetry | null>
627
+
628
+ /**
629
+ * Advance a company row within a list's explicit stage journey.
630
+ */
631
+ updateCompanyStage(params: UpdateCompanyStageParams): Promise<void>
632
+
633
+ /**
634
+ * Advance a contact row within a list's explicit stage journey.
635
+ */
636
+ updateContactStage(params: UpdateContactStageParams): Promise<void>
637
+
638
+ /**
639
+ * Per-list execution history — reads via the feature-owned
640
+ * acq_list_executions junction, joined to execution_logs for details.
641
+ */
642
+ getListExecutions(listId: string, organizationId: string): Promise<ListExecutionSummary[]>
643
+
644
+ /**
645
+ * Write a junction row linking (listId, executionId). Called by the
646
+ * workflow layer at execution start in Step 4. No-op if the row exists.
647
+ */
648
+ recordListExecution(params: RecordListExecutionParams): Promise<void>
649
+
650
+ // Company operations
651
+ /**
652
+ * Create a new company
653
+ * @see LeadService.createCompany (apps/api/src/acquisition/lead-service.ts)
654
+ */
655
+ createCompany(params: CreateCompanyParams): Promise<AcqCompany>
656
+
657
+ /**
658
+ * Update an existing company
659
+ * @see LeadService.updateCompany (apps/api/src/acquisition/lead-service.ts)
660
+ */
661
+ updateCompany(id: string, params: UpdateCompanyParams): Promise<AcqCompany>
662
+
663
+ /**
664
+ * Upsert a company by domain
665
+ * @see LeadService.upsertCompany (apps/api/src/acquisition/lead-service.ts)
666
+ */
667
+ upsertCompany(params: UpsertCompanyParams): Promise<AcqCompany>
668
+
669
+ /**
670
+ * Get a company by ID
671
+ * @see LeadService.getCompany (apps/api/src/acquisition/lead-service.ts)
672
+ */
673
+ getCompany(id: string, organizationId: string): Promise<AcqCompany | null>
674
+
675
+ /**
676
+ * List companies with optional filters
677
+ * @see LeadService.listCompanies (apps/api/src/acquisition/lead-service.ts)
678
+ */
679
+ listCompanies(organizationId: string, filters: CompanyFilters): Promise<AcqCompany[]>
680
+
681
+ /**
682
+ * Delete a company
683
+ * @see LeadService.deleteCompany (apps/api/src/acquisition/lead-service.ts)
684
+ */
685
+ deleteCompany(id: string, organizationId: string): Promise<void>
686
+
687
+ // Contact operations
688
+ /**
689
+ * Create a new contact
690
+ * @see LeadService.createContact (apps/api/src/acquisition/lead-service.ts)
691
+ */
692
+ createContact(params: CreateContactParams): Promise<AcqContact>
693
+
694
+ /**
695
+ * Update an existing contact
696
+ * @see LeadService.updateContact (apps/api/src/acquisition/lead-service.ts)
697
+ */
698
+ updateContact(id: string, params: UpdateContactParams): Promise<AcqContact>
699
+
700
+ /**
701
+ * Upsert a contact by email
702
+ * @see LeadService.upsertContact (apps/api/src/acquisition/lead-service.ts)
703
+ */
704
+ upsertContact(params: UpsertContactParams): Promise<AcqContact>
705
+
706
+ /**
707
+ * Get a contact by ID
708
+ * @see LeadService.getContact (apps/api/src/acquisition/lead-service.ts)
709
+ */
710
+ getContact(id: string, organizationId: string): Promise<AcqContact | null>
711
+
712
+ /**
713
+ * List contacts with pagination and filters
714
+ * @see LeadService.listContacts (apps/api/src/acquisition/lead-service.ts)
715
+ */
716
+ listContacts(
717
+ organizationId: string,
718
+ filters: ContactFilters,
719
+ pagination: PaginationParams
720
+ ): Promise<PaginatedResult<AcqContact>>
721
+
722
+ /**
723
+ * Delete a contact
724
+ * @see LeadService.deleteContact (apps/api/src/acquisition/lead-service.ts)
725
+ */
726
+ deleteContact(id: string, organizationId: string): Promise<void>
727
+
728
+ /**
729
+ * Bulk import contacts
730
+ * @see LeadService.bulkImportContacts (apps/api/src/acquisition/lead-service.ts)
731
+ */
732
+ bulkImportContacts(params: BulkImportParams): Promise<BulkImportResult>
733
+
734
+ /**
735
+ * Bulk import companies with domain dedup (skips existing domains).
736
+ * Inserts in batches using Supabase bulk insert + ON CONFLICT.
737
+ * @see LeadService.bulkImportCompanies (apps/api/src/business/acquisition/lead-service.ts)
738
+ */
739
+ bulkImportCompanies(params: BulkImportCompaniesParams): Promise<BulkImportCompaniesResult>
740
+
741
+ /**
742
+ * Deactivate all active contacts belonging to a company.
743
+ * Used by qualification workflow to cascade company disqualification to contacts.
744
+ */
745
+ deactivateContactsByCompany(params: DeactivateContactsByCompanyParams): Promise<DeactivateContactsByCompanyResult>
746
+
747
+ /**
748
+ * Get a contact by email address
749
+ * Used for looking up existing leads when they reply to outreach
750
+ * @see LeadService.getContactByEmail (apps/api/src/acquisition/lead-service.ts)
751
+ */
752
+ getContactByEmail(email: string, organizationId: string): Promise<AcqContact | null>
753
+
754
+ // Deal operations (acq_deals table)
755
+ /**
756
+ * Upsert a deal by Attio Deal ID
757
+ * Creates or updates acq_deals record linking Attio Deal to Supabase
758
+ * @see LeadService.upsertDeal (apps/api/src/acquisition/lead-service.ts)
759
+ */
760
+ upsertDeal(params: UpsertDealParams): Promise<AcqDeal>
761
+
762
+ /**
763
+ * Get a deal by contact email
764
+ * Used for looking up existing deals when leads book via email (fallback lookup)
765
+ * @see LeadService.getDealByEmail (apps/api/src/acquisition/lead-service.ts)
766
+ */
767
+ getDealByEmail(email: string, organizationId: string): Promise<AcqDeal | null>
768
+
769
+ /**
770
+ * Get a deal by SignatureAPI envelope ID
771
+ * Used by webhook handler to find deal when contract is signed
772
+ * @see LeadService.getDealByEnvelopeId (apps/api/src/acquisition/lead-service.ts)
773
+ */
774
+ getDealByEnvelopeId(envelopeId: string, organizationId: string): Promise<AcqDeal | null>
775
+
776
+ /**
777
+ * Update deal with signature envelope ID
778
+ * Called when proposal is sent via SignatureAPI
779
+ * @see LeadService.updateDealEnvelopeId (apps/api/src/acquisition/lead-service.ts)
780
+ */
781
+ updateDealEnvelopeId(dealId: string, envelopeId: string, organizationId: string): Promise<AcqDeal | null>
782
+
783
+ // Deal-sync operations (mirror deal-sync.ts utilities as server-side methods)
784
+
785
+ getDealById(params: GetDealByIdParams): Promise<AcqDeal | null>
786
+
787
+ getContactById(params: GetContactByIdParams): Promise<AcqContact | null>
788
+
789
+ getCompanyById(params: GetCompanyByIdParams): Promise<AcqCompany | null>
790
+
791
+ updateDiscoveryData(params: UpdateDiscoveryDataParams): Promise<void>
792
+
793
+ updateProposalData(params: UpdateProposalDataParams): Promise<void>
794
+
795
+ markProposalSent(params: MarkProposalSentParams): Promise<void>
796
+
797
+ markProposalReviewed(params: MarkProposalReviewedParams): Promise<void>
798
+
799
+ updateCloseLostReason(params: UpdateCloseLostReasonParams): Promise<void>
800
+
801
+ updateFees(params: UpdateFeesParams): Promise<void>
802
+
803
+ syncDealStage(params: SyncDealStageParams): Promise<void>
804
+
805
+ setContactNurture(params: SetContactNurtureParams): Promise<void>
806
+
807
+ cancelSchedulesAndHitlByEmail(
808
+ params: CancelSchedulesAndHitlByEmailParams
809
+ ): Promise<{ schedulesCancelled: number; hitlDeleted: number }>
810
+
811
+ cancelHitlByDealId(params: CancelHitlByDealIdParams): Promise<{ hitlDeleted: number }>
812
+
813
+ clearDealFields(params: ClearDealFieldsParams): Promise<void>
814
+
815
+ deleteDeal(params: DeleteDealParams): Promise<void>
816
+
817
+ listDeals(organizationId: string, filters?: DealFilters): Promise<AcqDeal[]>
818
+
819
+ getDealPipelineAnalytics(organizationId: string, recentLimit?: number): Promise<DealPipelineAnalytics>
820
+
821
+ /**
822
+ * Deep-merge enrichment data into a company or contact record.
823
+ * Merges per source key rather than wholesale replacing the JSONB object.
824
+ * @see LeadService.mergeEnrichmentData (apps/api/src/business/acquisition/lead-service.ts)
825
+ */
826
+ mergeEnrichmentData(
827
+ id: string,
828
+ orgId: string,
829
+ table: 'acq_companies' | 'acq_contacts',
830
+ data: Record<string, unknown>
831
+ ): Promise<void>
832
+
833
+ // Deal note operations (acq_deal_notes table)
834
+ /**
835
+ * Create a human-authored note on a deal
836
+ * @see LeadService.createDealNote (apps/api/src/business/acquisition/lead-service.ts)
837
+ */
838
+ createDealNote(params: CreateDealNoteParams): Promise<AcqDealNote>
839
+
840
+ /**
841
+ * List notes for a deal, ordered by created_at DESC
842
+ * @see LeadService.listDealNotes (apps/api/src/business/acquisition/lead-service.ts)
843
+ */
844
+ listDealNotes(params: ListDealNotesParams): Promise<AcqDealNote[]>
845
+
846
+ // Deal task operations (acq_deal_tasks table)
847
+ /**
848
+ * Creates a new task attached to a deal.
849
+ * @see LeadService.createDealTask (apps/api/src/business/acquisition/lead-service.ts)
850
+ */
851
+ createDealTask(params: CreateDealTaskParams): Promise<AcqDealTask>
852
+
853
+ /**
854
+ * Lists all tasks for a given deal, ordered by due date.
855
+ * @see LeadService.listDealTasks (apps/api/src/business/acquisition/lead-service.ts)
856
+ */
857
+ listDealTasks(params: ListDealTasksParams): Promise<AcqDealTask[]>
858
+
859
+ /**
860
+ * Lists open (uncompleted) tasks within a date window across all deals.
861
+ * @see LeadService.listDealTasksDue (apps/api/src/business/acquisition/lead-service.ts)
862
+ */
863
+ listDealTasksDue(params: ListDealTasksDueParams): Promise<AcqDealTask[]>
864
+
865
+ /**
866
+ * Marks a task as completed.
867
+ * @see LeadService.completeDealTask (apps/api/src/business/acquisition/lead-service.ts)
868
+ */
869
+ completeDealTask(params: CompleteDealTaskParams): Promise<AcqDealTask>
870
+
871
+ /**
872
+ * Record a deal activity entry by deal ID.
873
+ * Generic method for any activity type — used by SDK workflows.
874
+ * @see LeadService.recordDealActivity (apps/api/src/business/acquisition/lead-service.ts)
875
+ */
876
+ recordDealActivity(params: RecordDealActivityParams): Promise<void>
877
+
878
+ // Social monitoring operations (acq_social_posts table)
879
+ /**
880
+ * Bulk upsert social posts (deduplicate by platform + platform_post_id)
881
+ * @see LeadService.upsertSocialPosts (apps/api/src/business/acquisition/lead-service.ts)
882
+ */
883
+ upsertSocialPosts(params: UpsertSocialPostsParams): Promise<UpsertSocialPostsResult>
884
+ }