@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,180 @@
1
+ /**
2
+ * Command View Types
3
+ *
4
+ * Unified type definitions for the Command View graph visualization.
5
+ * These types are used by both backend serialization and frontend rendering.
6
+ *
7
+ * Command View shows the resource graph: agents, workflows, triggers, integrations,
8
+ * external resources, and human checkpoints with their relationships.
9
+ */
10
+
11
+ import type {
12
+ ResourceDefinition,
13
+ TriggerDefinition,
14
+ IntegrationDefinition,
15
+ ExternalResourceDefinition,
16
+ HumanCheckpointDefinition,
17
+ DomainDefinition
18
+ } from './types'
19
+
20
+ // ============================================================================
21
+ // Node Types - Resources that appear in the graph
22
+ // ============================================================================
23
+
24
+ /**
25
+ * Extended agent metadata for Command View
26
+ * Includes model and capability information for graph display
27
+ */
28
+ export interface CommandViewAgent extends ResourceDefinition {
29
+ type: 'agent'
30
+ modelProvider: string // e.g., 'anthropic', 'openai'
31
+ modelId: string // e.g., 'claude-sonnet-4-20250514'
32
+ toolCount: number
33
+ hasKnowledgeMap: boolean
34
+ hasMemory: boolean
35
+ sessionCapable: boolean // Explicit session capability declaration
36
+ }
37
+
38
+ /**
39
+ * Extended workflow metadata for Command View
40
+ * Includes step information for graph display
41
+ */
42
+ export interface CommandViewWorkflow extends ResourceDefinition {
43
+ type: 'workflow'
44
+ stepCount: number
45
+ entryPoint: string
46
+ }
47
+
48
+ /**
49
+ * Node type categories for Command View
50
+ * Simplified categorization for UI rendering and layout
51
+ */
52
+ export type CommandViewNodeType = 'agent' | 'workflow' | 'trigger' | 'integration' | 'external' | 'human'
53
+
54
+ /**
55
+ * Union type for all node types in Command View
56
+ * Frontend can use this for type-safe node handling
57
+ */
58
+ export type CommandViewNode =
59
+ | CommandViewAgent
60
+ | CommandViewWorkflow
61
+ | TriggerDefinition
62
+ | IntegrationDefinition
63
+ | ExternalResourceDefinition
64
+ | HumanCheckpointDefinition
65
+
66
+ // ============================================================================
67
+ // Edge Types - Relationships between resources
68
+ // ============================================================================
69
+
70
+ /**
71
+ * Relationship types between resources
72
+ *
73
+ * - triggers: Resource initiates/starts another resource (orange)
74
+ * - uses: Resource uses an integration (teal)
75
+ * - approval: Resource requires human approval (yellow)
76
+ */
77
+ export type RelationshipType = 'triggers' | 'uses' | 'approval'
78
+
79
+ /**
80
+ * Command View edge (relationship between resources)
81
+ */
82
+ export interface CommandViewEdge {
83
+ id: string
84
+ source: string // Source node ID
85
+ target: string // Target node ID
86
+ relationship: RelationshipType
87
+ label?: string // Optional label for the edge
88
+ }
89
+
90
+ // ============================================================================
91
+ // Graph Data Structure
92
+ // ============================================================================
93
+
94
+ /**
95
+ * Command View data structure
96
+ * Complete graph data for visualization
97
+ *
98
+ * Backend serializes this once at startup and serves it via /command-view endpoint.
99
+ * Frontend consumes this directly for graph rendering.
100
+ */
101
+ export interface CommandViewData {
102
+ workflows: CommandViewWorkflow[]
103
+ agents: CommandViewAgent[]
104
+ triggers: TriggerDefinition[]
105
+ integrations: IntegrationDefinition[]
106
+ externalResources: ExternalResourceDefinition[]
107
+ humanCheckpoints: HumanCheckpointDefinition[]
108
+ edges: CommandViewEdge[]
109
+ domainDefinitions?: DomainDefinition[]
110
+ }
111
+
112
+ // ============================================================================
113
+ // Type Guards
114
+ // ============================================================================
115
+
116
+ /**
117
+ * Check if a node is an agent
118
+ */
119
+ export function isAgent(node: CommandViewNode): node is CommandViewAgent {
120
+ return 'type' in node && node.type === 'agent'
121
+ }
122
+
123
+ /**
124
+ * Check if a node is a workflow
125
+ */
126
+ export function isWorkflow(node: CommandViewNode): node is CommandViewWorkflow {
127
+ return 'type' in node && node.type === 'workflow'
128
+ }
129
+
130
+ /**
131
+ * Check if a node is a trigger
132
+ */
133
+ export function isTrigger(node: CommandViewNode): node is TriggerDefinition {
134
+ return 'type' in node && node.type === 'trigger'
135
+ }
136
+
137
+ /**
138
+ * Check if a node is an integration
139
+ */
140
+ export function isIntegration(node: CommandViewNode): node is IntegrationDefinition {
141
+ return 'type' in node && node.type === 'integration'
142
+ }
143
+
144
+ /**
145
+ * Check if a node is an external resource
146
+ */
147
+ export function isExternalResource(node: CommandViewNode): node is ExternalResourceDefinition {
148
+ return 'type' in node && node.type === 'external'
149
+ }
150
+
151
+ /**
152
+ * Check if a node is a human checkpoint
153
+ */
154
+ export function isHumanCheckpoint(node: CommandViewNode): node is HumanCheckpointDefinition {
155
+ return 'type' in node && node.type === 'human'
156
+ }
157
+
158
+ // ============================================================================
159
+ // Helper Functions
160
+ // ============================================================================
161
+
162
+ /**
163
+ * Get node ID - all resources now use unified resourceId field
164
+ */
165
+ export function getNodeId(node: CommandViewNode): string {
166
+ return node.resourceId
167
+ }
168
+
169
+ /**
170
+ * Get node type for categorization
171
+ */
172
+ export function getNodeType(node: CommandViewNode): CommandViewNodeType {
173
+ if (isAgent(node)) return 'agent'
174
+ if (isWorkflow(node)) return 'workflow'
175
+ if (isTrigger(node)) return 'trigger'
176
+ if (isIntegration(node)) return 'integration'
177
+ if (isExternalResource(node)) return 'external'
178
+ // isHumanCheckpoint is last fallback
179
+ return 'human'
180
+ }
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Standard Domain Definitions
3
+ * Centralized domain constants and definitions for all organization resources.
4
+ */
5
+
6
+ import type { DomainDefinition } from './types'
7
+
8
+ // ============================================================================
9
+ // Standard Domain IDs
10
+ // ============================================================================
11
+
12
+ export const DOMAINS = {
13
+ // Business domains
14
+ INBOUND_PIPELINE: 'inbound-pipeline',
15
+ LEAD_GEN_PIPELINE: 'lead-gen-pipeline',
16
+ SUPPORT: 'support',
17
+ CLIENT_SUPPORT: 'client-support',
18
+ DELIVERY: 'delivery',
19
+ OPERATIONS: 'operations',
20
+ FINANCE: 'finance',
21
+ EXECUTIVE: 'executive',
22
+ INSTANTLY: 'instantly',
23
+
24
+ // Technical domains
25
+ TESTING: 'testing',
26
+ INTERNAL: 'internal',
27
+ INTEGRATION: 'integration',
28
+ UTILITY: 'utility',
29
+ DIAGNOSTIC: 'diagnostic'
30
+ } as const
31
+
32
+ /**
33
+ * ResourceDomain - Strongly typed domain identifier
34
+ * Use this type for all domain references to ensure compile-time validation.
35
+ */
36
+ export type ResourceDomain = (typeof DOMAINS)[keyof typeof DOMAINS]
37
+
38
+ // ============================================================================
39
+ // Domain Definitions
40
+ // ============================================================================
41
+
42
+ export const INBOUND_PIPELINE_DOMAIN: DomainDefinition = {
43
+ id: DOMAINS.INBOUND_PIPELINE,
44
+ name: 'Inbound Pipeline',
45
+ description: 'End-to-end inbound client acquisition from first reply to onboarding',
46
+ color: 'blue'
47
+ }
48
+
49
+ export const LEAD_GEN_PIPELINE_DOMAIN: DomainDefinition = {
50
+ id: DOMAINS.LEAD_GEN_PIPELINE,
51
+ name: 'Lead Gen Pipeline',
52
+ description: 'Lead scraping, enrichment, qualification, and personalization',
53
+ color: 'cyan'
54
+ }
55
+
56
+ export const SUPPORT_DOMAIN: DomainDefinition = {
57
+ id: DOMAINS.SUPPORT,
58
+ name: 'Customer Support',
59
+ description: 'Ticket triage, knowledge base, escalations',
60
+ color: 'green'
61
+ }
62
+
63
+ export const CLIENT_SUPPORT_DOMAIN: DomainDefinition = {
64
+ id: DOMAINS.CLIENT_SUPPORT,
65
+ name: 'Client Support',
66
+ description: 'Client change requests, bug reports, and feature requests',
67
+ color: 'teal'
68
+ }
69
+
70
+ export const DELIVERY_DOMAIN: DomainDefinition = {
71
+ id: DOMAINS.DELIVERY,
72
+ name: 'Client Delivery',
73
+ description: 'Project execution and milestone tracking',
74
+ color: 'orange'
75
+ }
76
+
77
+ export const OPERATIONS_DOMAIN: DomainDefinition = {
78
+ id: DOMAINS.OPERATIONS,
79
+ name: 'Operations',
80
+ description: 'Internal business operations and administration',
81
+ color: 'violet'
82
+ }
83
+
84
+ export const FINANCE_DOMAIN: DomainDefinition = {
85
+ id: DOMAINS.FINANCE,
86
+ name: 'Finance',
87
+ description: 'Billing, invoicing, and financial operations',
88
+ color: 'pink'
89
+ }
90
+
91
+ export const EXECUTIVE_DOMAIN: DomainDefinition = {
92
+ id: DOMAINS.EXECUTIVE,
93
+ name: 'Executive Operations',
94
+ description: 'High-level business orchestration and decision-making',
95
+ color: 'indigo'
96
+ }
97
+
98
+ export const TESTING_DOMAIN: DomainDefinition = {
99
+ id: DOMAINS.TESTING,
100
+ name: 'Testing',
101
+ description: 'Test resources and development workflows',
102
+ color: 'gray'
103
+ }
104
+
105
+ export const INTERNAL_DOMAIN: DomainDefinition = {
106
+ id: DOMAINS.INTERNAL,
107
+ name: 'Internal',
108
+ description: 'Internal platform resources',
109
+ color: 'dark'
110
+ }
111
+
112
+ export const INTEGRATION_DOMAIN: DomainDefinition = {
113
+ id: DOMAINS.INTEGRATION,
114
+ name: 'Integration',
115
+ description: 'External service integrations',
116
+ color: 'teal'
117
+ }
118
+
119
+ export const INSTANTLY_DOMAIN: DomainDefinition = {
120
+ id: DOMAINS.INSTANTLY,
121
+ name: 'Instantly Toolkit',
122
+ description: 'Instantly campaign creation, analytics, and optimization',
123
+ color: 'lime'
124
+ }
125
+
126
+ export const UTILITY_DOMAIN: DomainDefinition = {
127
+ id: DOMAINS.UTILITY,
128
+ name: 'Utility',
129
+ description: 'Utility workflows for maintenance and diagnostics',
130
+ color: 'grape'
131
+ }
132
+
133
+ export const DIAGNOSTIC_DOMAIN: DomainDefinition = {
134
+ id: DOMAINS.DIAGNOSTIC,
135
+ name: 'Diagnostic',
136
+ description: 'Diagnostic workflows for testing integrations and services',
137
+ color: 'yellow'
138
+ }
139
+
140
+ /**
141
+ * Domain lookup map for O(1) access during serialization
142
+ */
143
+ export const DOMAIN_MAP: Record<ResourceDomain, DomainDefinition> = {
144
+ [DOMAINS.INBOUND_PIPELINE]: INBOUND_PIPELINE_DOMAIN,
145
+ [DOMAINS.LEAD_GEN_PIPELINE]: LEAD_GEN_PIPELINE_DOMAIN,
146
+ [DOMAINS.SUPPORT]: SUPPORT_DOMAIN,
147
+ [DOMAINS.CLIENT_SUPPORT]: CLIENT_SUPPORT_DOMAIN,
148
+ [DOMAINS.DELIVERY]: DELIVERY_DOMAIN,
149
+ [DOMAINS.OPERATIONS]: OPERATIONS_DOMAIN,
150
+ [DOMAINS.FINANCE]: FINANCE_DOMAIN,
151
+ [DOMAINS.EXECUTIVE]: EXECUTIVE_DOMAIN,
152
+ [DOMAINS.TESTING]: TESTING_DOMAIN,
153
+ [DOMAINS.INTERNAL]: INTERNAL_DOMAIN,
154
+ [DOMAINS.INSTANTLY]: INSTANTLY_DOMAIN,
155
+ [DOMAINS.INTEGRATION]: INTEGRATION_DOMAIN,
156
+ [DOMAINS.UTILITY]: UTILITY_DOMAIN,
157
+ [DOMAINS.DIAGNOSTIC]: DIAGNOSTIC_DOMAIN
158
+ }
159
+
160
+ /**
161
+ * Get domain definition by ID
162
+ */
163
+ export function getDomainDefinition(id: ResourceDomain): DomainDefinition {
164
+ return DOMAIN_MAP[id]
165
+ }
@@ -0,0 +1,93 @@
1
+ /**
2
+ * Resource Registry exports
3
+ */
4
+
5
+ export * from './domains'
6
+
7
+ export { RESERVED_RESOURCE_IDS, SYSTEM_RESOURCE_IDS, isReservedResourceId } from './reserved'
8
+
9
+ export { ResourceRegistry } from './resource-registry'
10
+ export type { DeploymentSpec, OrganizationRegistry, RemoteOrgConfig } from './resource-registry'
11
+
12
+ // Validation utilities
13
+ export {
14
+ validateDeploymentSpec,
15
+ validateRelationships,
16
+ validateExecutionInterface,
17
+ RegistryValidationError
18
+ } from './validation'
19
+
20
+ // Serialization utilities
21
+ export { serializeAllOrganizations, serializeOrganization, buildEdges } from './serialization'
22
+
23
+ // Types
24
+ export type {
25
+ ResourceStatus,
26
+ ResourceType,
27
+ ExecutableResourceType,
28
+ ResourceDefinition,
29
+ ResourceList,
30
+ TriggerDefinition,
31
+ IntegrationDefinition,
32
+ RelationshipDeclaration,
33
+ ResourceRelationships,
34
+ ExternalPlatform,
35
+ ExternalResourceDefinition,
36
+ HumanCheckpointDefinition,
37
+ DomainDefinition,
38
+ WebhookProviderType,
39
+ WebhookTriggerConfig,
40
+ ScheduleTriggerConfig,
41
+ EventTriggerConfig,
42
+ TriggerConfig
43
+ } from './types'
44
+
45
+ // Serialized Types (for API responses)
46
+ export type {
47
+ SerializedAgentDefinition,
48
+ SerializedWorkflowDefinition,
49
+ SerializedExecutionInterface,
50
+ SerializedExecutionFormSchema,
51
+ SerializedFormField,
52
+ SerializedFormSchema,
53
+ SerializedOrganizationData
54
+ } from './serialized-types'
55
+
56
+ // Command View Types (for graph visualization)
57
+ export type {
58
+ CommandViewAgent,
59
+ CommandViewWorkflow,
60
+ CommandViewNode,
61
+ CommandViewNodeType,
62
+ CommandViewEdge,
63
+ CommandViewData,
64
+ RelationshipType
65
+ } from './command-view'
66
+
67
+ // Command View Utilities
68
+ export {
69
+ isAgent,
70
+ isWorkflow,
71
+ isTrigger,
72
+ isIntegration,
73
+ isExternalResource,
74
+ isHumanCheckpoint,
75
+ getNodeId,
76
+ getNodeType
77
+ } from './command-view'
78
+
79
+ // Command View Stats types (moved from command-view/)
80
+ export type {
81
+ StatsTimeRange,
82
+ ResourceStats,
83
+ ResourceErrorsResponse,
84
+ ErrorSummary,
85
+ CommandViewExecution,
86
+ ResourceExecutionsResponse,
87
+ HumanCheckpointStats,
88
+ CommandViewStatsResponse
89
+ } from './stats-types'
90
+
91
+ // Resource Metadata (icon names, colors)
92
+ export type { ResourceDefinitionType, NodeColorType } from './resource-metadata'
93
+ export { resourceTypeIconNames, resourceTypeColors, getResourceIconName, getResourceColor } from './resource-metadata'
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Reserved Resource IDs
3
+ * Resource IDs reserved for built-in platform resources.
4
+ * External SDK deployments cannot use these IDs.
5
+ */
6
+
7
+ /**
8
+ * Set of resource IDs reserved for built-in platform resources.
9
+ * These IDs cannot be used by external SDK deployments.
10
+ */
11
+ export const RESERVED_RESOURCE_IDS = new Set(['command-center-assistant'])
12
+
13
+ /**
14
+ * Array form of RESERVED_RESOURCE_IDS for Supabase query filtering.
15
+ * Supabase `.not('col', 'in', ...)` requires an array, not a Set.
16
+ */
17
+ export const SYSTEM_RESOURCE_IDS = Array.from(RESERVED_RESOURCE_IDS)
18
+
19
+ /**
20
+ * Check if a resource ID is reserved for platform use
21
+ */
22
+ export function isReservedResourceId(resourceId: string): boolean {
23
+ return RESERVED_RESOURCE_IDS.has(resourceId)
24
+ }
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Resource Type Metadata
3
+ *
4
+ * Centralized metadata for ResourceDefinition types including icon names and colors.
5
+ * Icon names reference @tabler/icons-react - UI layer maps these to actual components.
6
+ */
7
+
8
+ import type { ResourceDefinition } from './types'
9
+
10
+ /**
11
+ * All valid resource types from ResourceDefinition
12
+ * Derived from the base interface to ensure consistency
13
+ */
14
+ export type ResourceDefinitionType = ResourceDefinition['type']
15
+
16
+ /**
17
+ * Node color types for graph visualization
18
+ * Used by both @repo/core (metadata) and @repo/ui (components)
19
+ */
20
+ export type NodeColorType = 'violet' | 'blue' | 'orange' | 'teal' | 'gray' | 'yellow'
21
+
22
+ /**
23
+ * Tabler icon names for each resource type
24
+ * UI packages map these strings to actual icon components
25
+ */
26
+ export const resourceTypeIconNames: Record<ResourceDefinitionType, string> = {
27
+ agent: 'IconBrain',
28
+ workflow: 'IconGitBranch',
29
+ trigger: 'IconBolt',
30
+ integration: 'IconPlug',
31
+ external: 'IconExternalLink',
32
+ human: 'IconUser'
33
+ }
34
+
35
+ /**
36
+ * Mantine color names for each resource type
37
+ */
38
+ export const resourceTypeColors: Record<ResourceDefinitionType, NodeColorType> = {
39
+ agent: 'violet',
40
+ workflow: 'blue',
41
+ trigger: 'orange',
42
+ integration: 'teal',
43
+ external: 'gray',
44
+ human: 'yellow'
45
+ }
46
+
47
+ /**
48
+ * Get icon name for a resource type
49
+ */
50
+ export function getResourceIconName(type: ResourceDefinitionType): string {
51
+ return resourceTypeIconNames[type]
52
+ }
53
+
54
+ /**
55
+ * Get color for a resource type
56
+ */
57
+ export function getResourceColor(type: ResourceDefinitionType): NodeColorType {
58
+ return resourceTypeColors[type]
59
+ }
@@ -0,0 +1,129 @@
1
+ /**
2
+ * Tests for Human Checkpoints in ResourceRegistry
3
+ */
4
+
5
+ import { describe, it, expect, beforeEach } from 'vitest'
6
+ import { ResourceRegistry } from './resource-registry'
7
+ import type { DeploymentSpec } from './resource-registry'
8
+ import type { HumanCheckpointDefinition } from './types'
9
+ import type { AgentDefinition, WorkflowDefinition } from '../../execution/engine'
10
+
11
+ // Mock agent
12
+ const mockAgent: AgentDefinition = {
13
+ config: {
14
+ resourceId: 'test-agent',
15
+ name: 'Test Agent',
16
+ description: 'Test agent',
17
+ version: '1.0.0',
18
+ type: 'agent',
19
+ status: 'dev'
20
+ },
21
+ modelConfig: {
22
+ provider: 'openai',
23
+ model: 'gpt-5.4-mini',
24
+ apiKey: 'test-key',
25
+ temperature: 1
26
+ },
27
+ tools: [],
28
+ systemPrompt: 'Test prompt'
29
+ }
30
+
31
+ // Mock workflow
32
+ const mockWorkflow: WorkflowDefinition = {
33
+ config: {
34
+ resourceId: 'test-workflow',
35
+ name: 'Test Workflow',
36
+ description: 'Test workflow',
37
+ version: '1.0.0',
38
+ type: 'workflow',
39
+ status: 'dev'
40
+ },
41
+ entryPoint: 'start',
42
+ steps: {}
43
+ }
44
+
45
+ describe('ResourceRegistry - Human Checkpoints', () => {
46
+ let registry: ResourceRegistry
47
+
48
+ beforeEach(() => {
49
+ const humanCheckpoint: HumanCheckpointDefinition = {
50
+ resourceId: 'test-approval',
51
+ type: 'human',
52
+ version: '1.0.0',
53
+ name: 'Test Approval',
54
+ description: 'Test human checkpoint',
55
+ status: 'dev',
56
+ requestedBy: {
57
+ agents: ['test-agent']
58
+ },
59
+ routesTo: {
60
+ workflows: ['test-workflow']
61
+ }
62
+ }
63
+
64
+ const resources: DeploymentSpec = {
65
+ agents: [mockAgent],
66
+ workflows: [mockWorkflow],
67
+ humanCheckpoints: [humanCheckpoint]
68
+ }
69
+
70
+ registry = new ResourceRegistry({
71
+ 'test-org': resources
72
+ })
73
+ })
74
+
75
+ describe('getHumanCheckpoints', () => {
76
+ it('should return all human checkpoints for an organization', () => {
77
+ const humanCheckpoints = registry.getHumanCheckpoints('test-org')
78
+ expect(humanCheckpoints).toHaveLength(1)
79
+ expect(humanCheckpoints[0].resourceId).toBe('test-approval')
80
+ })
81
+
82
+ it('should return empty array for org without human checkpoints', () => {
83
+ const humanCheckpoints = registry.getHumanCheckpoints('non-existent-org')
84
+ expect(humanCheckpoints).toEqual([])
85
+ })
86
+ })
87
+
88
+ describe('getHumanCheckpoint', () => {
89
+ it('should return specific human checkpoint by ID', () => {
90
+ const humanCheckpoint = registry.getHumanCheckpoint('test-org', 'test-approval')
91
+ expect(humanCheckpoint).not.toBeNull()
92
+ expect(humanCheckpoint?.resourceId).toBe('test-approval')
93
+ expect(humanCheckpoint?.name).toBe('Test Approval')
94
+ })
95
+
96
+ it('should return null for non-existent human checkpoint', () => {
97
+ const humanCheckpoint = registry.getHumanCheckpoint('test-org', 'non-existent')
98
+ expect(humanCheckpoint).toBeNull()
99
+ })
100
+ })
101
+
102
+ describe('serializeOrganization', () => {
103
+ it('should include human checkpoints in command view data', () => {
104
+ const commandView = registry.getCommandViewData('test-org')
105
+ expect(commandView.humanCheckpoints).toHaveLength(1)
106
+ expect(commandView.humanCheckpoints[0].resourceId).toBe('test-approval')
107
+ })
108
+ })
109
+
110
+ describe('buildEdges', () => {
111
+ it('should create approval edges from requestedBy', () => {
112
+ const commandView = registry.getCommandViewData('test-org')
113
+ const approvalEdges = commandView.edges.filter((e) => e.relationship === 'approval')
114
+ expect(approvalEdges).toHaveLength(1)
115
+ expect(approvalEdges[0].source).toBe('test-agent')
116
+ expect(approvalEdges[0].target).toBe('test-approval')
117
+ })
118
+
119
+ it('should create triggers edges to routesTo', () => {
120
+ const commandView = registry.getCommandViewData('test-org')
121
+ const triggerEdges = commandView.edges.filter(
122
+ (e) => e.source === 'test-approval' && e.relationship === 'triggers'
123
+ )
124
+ expect(triggerEdges).toHaveLength(1)
125
+ expect(triggerEdges[0].source).toBe('test-approval')
126
+ expect(triggerEdges[0].target).toBe('test-workflow')
127
+ })
128
+ })
129
+ })