@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,35 @@
1
+ /**
2
+ * Standard API error response format
3
+ * Returned by APIError.toJSON() in apps/api
4
+ * Consumed by Command Center UI for type-safe error handling
5
+ */
6
+ export interface APIErrorResponse {
7
+ /** Human-readable error message */
8
+ error: string
9
+
10
+ /** Machine-readable error code */
11
+ code: APIErrorCode
12
+
13
+ /** Request ID for debugging (optional) */
14
+ requestId?: string
15
+
16
+ /** Field-level validation errors (only present for VALIDATION_ERROR code) */
17
+ fields?: Record<string, string[]>
18
+
19
+ /** Seconds until the rate limit resets (only present for RATE_LIMIT_EXCEEDED code) */
20
+ retryAfter?: number
21
+ }
22
+
23
+ /**
24
+ * Type-safe error codes
25
+ * MUST match API_ERROR_CODES in apps/api/src/errors/error-codes.ts
26
+ */
27
+ export type APIErrorCode =
28
+ | 'VALIDATION_ERROR'
29
+ | 'AUTHENTICATION_FAILED'
30
+ | 'FORBIDDEN'
31
+ | 'NOT_FOUND'
32
+ | 'CONFLICT'
33
+ | 'RATE_LIMIT_EXCEEDED'
34
+ | 'INTERNAL_SERVER_ERROR'
35
+ | 'SERVICE_UNAVAILABLE'
@@ -0,0 +1,37 @@
1
+ /**
2
+ * HTTP-related constants used across the application
3
+ */
4
+
5
+ /**
6
+ * HTTP Headers
7
+ */
8
+ export const HTTP_HEADERS = {
9
+ /**
10
+ * Organization context header
11
+ * Note: Node.js normalizes all headers to lowercase, so we use lowercase consistently
12
+ */
13
+ WORKOS_ORGANIZATION_ID: 'workos-organization-id',
14
+ AGENT_ORGANIZATION: 'x-agent-organization',
15
+ AGENT_MODE: 'x-agent-mode'
16
+ } as const
17
+
18
+ /**
19
+ * HTTP Status Codes for organization-related operations
20
+ */
21
+ export const ORG_HTTP_STATUS = {
22
+ ORG_ACCESS_DENIED: 403,
23
+ ORG_CONTEXT_REQUIRED: 400,
24
+ USER_NOT_FOUND: 404,
25
+ ORG_NOT_FOUND: 404
26
+ } as const
27
+
28
+ /**
29
+ * Organization-related error codes
30
+ */
31
+ export const ORG_ERROR_CODES = {
32
+ ORG_ACCESS_DENIED: 'ORG_ACCESS_DENIED',
33
+ ORG_CONTEXT_REQUIRED: 'ORG_CONTEXT_REQUIRED',
34
+ USER_NOT_FOUND: 'USER_NOT_FOUND',
35
+ AUTH_REQUIRED: 'AUTH_REQUIRED',
36
+ ORG_NOT_FOUND: 'ORG_NOT_FOUND'
37
+ } as const
@@ -0,0 +1,5 @@
1
+ export * from './versions'
2
+ export * from './http'
3
+ export * from './timeouts'
4
+ export * from './limits'
5
+ export * from './resilience'
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Limit Constants
3
+ * All "how many before we stop?" defaults.
4
+ * Quantities (not durations).
5
+ */
6
+
7
+ /** Max concurrent session memory keys before oldest are evicted. */
8
+ export const MAX_SESSION_MEMORY_KEYS = 25
9
+
10
+ /** Total token budget for agent memory (history + session). */
11
+ export const MAX_MEMORY_TOKENS = 32_000
12
+
13
+ /** Max tokens for a single memory entry before truncation. */
14
+ export const MAX_SINGLE_ENTRY_TOKENS = 2_000
15
+
16
+ /** Max tokens for a single tool result stored in history before truncation. */
17
+ export const MAX_TOOL_RESULT_TOKENS = 4_000
18
+
19
+ /** Max execution requests per org per minute (token bucket refill rate + capacity). */
20
+ export const EXECUTION_RATE_LIMIT_PER_MINUTE = 120
21
+
22
+ /** Global WebSocket connection limit across all orgs. */
23
+ export const WS_MAX_GLOBAL_CONNECTIONS = 5_000
24
+
25
+ /** Max WebSocket connections per session (covers tabs, reconnect overlap). */
26
+ export const WS_MAX_CONNECTIONS_PER_SESSION = 5
27
+
28
+ /** Max inbound WebSocket messages per connection per minute. */
29
+ export const WS_MAX_MESSAGES_PER_MINUTE = 60
30
+
31
+ /** Minimum interval between WebSocket messages in ms (burst protection). */
32
+ export const WS_MIN_MESSAGE_INTERVAL_MS = 1_000
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Resilience Constants
3
+ * All "how do we recover from failure?" defaults.
4
+ * Retry policies, backoff, rate limiting, circuit breaker thresholds.
5
+ *
6
+ * Note: import type avoids runtime circular dependency with ../resilience/
7
+ * (constants/ provides values, resilience/ provides types).
8
+ */
9
+
10
+ import type { RetryPolicy } from '../resilience/rate-limiter-types'
11
+
12
+ /** Max LLM call attempts (initial + retries). */
13
+ export const LLM_MAX_ATTEMPTS = 3
14
+
15
+ /** Exponential backoff delays between LLM retries. */
16
+ export const LLM_RETRY_DELAYS = [1_000, 2_000, 4_000] as const // 1s, 2s, 4s
17
+
18
+ /** Default retry policy for rate-limited operations. */
19
+ export const DEFAULT_RETRY_POLICY: RetryPolicy = {
20
+ maxRetries: 3,
21
+ initialDelayMs: 1_000,
22
+ maxDelayMs: 10_000,
23
+ jitterFactor: 0.3
24
+ }
25
+
26
+ /** Default rate limiter bucket capacity (requests per window). */
27
+ export const DEFAULT_RATE_LIMIT_CAPACITY = 300
28
+
29
+ /** Integration service rate limit: requests per org per integration per window. */
30
+ export const INTEGRATION_RATE_LIMIT_CAPACITY = 300
31
+
32
+ /** Integration service rate limit window. */
33
+ export const INTEGRATION_RATE_LIMIT_WINDOW_MS = 60_000 // 1min
34
+
35
+ /** Rate limiter refill window. */
36
+ export const DEFAULT_RATE_LIMIT_WINDOW_MS = 60_000 // 1min
37
+
38
+ /** Rate limiter: evict buckets inactive for N * refill interval. */
39
+ export const STALE_BUCKET_MULTIPLIER = 5
40
+
41
+ /** Circuit breaker: failures before opening. */
42
+ export const CIRCUIT_BREAKER_FAILURE_THRESHOLD = 5
43
+
44
+ /** Circuit breaker: cooldown before half-open probe. */
45
+ export const CIRCUIT_BREAKER_COOLDOWN_MS = 60_000 // 60s
46
+
47
+ /** Circuit breaker: successes in half-open to close. */
48
+ export const CIRCUIT_BREAKER_SUCCESS_THRESHOLD = 2
49
+
50
+ /** Circuit breaker: max concurrent requests in half-open state. */
51
+ export const CIRCUIT_BREAKER_HALF_OPEN_MAX_REQUESTS = 3
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Timeout Constants
3
+ * All "how long before we give up?" defaults.
4
+ * Values in milliseconds.
5
+ *
6
+ * Philosophy: "Detect failure, not limit duration."
7
+ * @see /in-progress/active-development/execution-engine-audit/timeout-strategy
8
+ */
9
+
10
+ /** LLM API call timeout. Reasoning models + structured output take 60-180s. Matches SDK vendor default. */
11
+ export const DEFAULT_LLM_TIMEOUT = 600_000 // 10min
12
+
13
+ /** Tool execution timeout. Most HTTP tools complete in 5-30s. Integration tools that poll external services (e.g. Apify) may need up to 30min. */
14
+ export const DEFAULT_TOOL_TIMEOUT = 1_800_000 // 30min
15
+
16
+ /** Nested agent/workflow execution timeout. */
17
+ export const DEFAULT_RESOURCE_INVOCATION_TIMEOUT = 1_800_000 // 30min
18
+
19
+ /** Agent execution ceiling. Safety net for runaway loops. Override via constraints.timeout. */
20
+ export const DEFAULT_EXECUTION_TIMEOUT = 7_200_000 // 2hr
@@ -0,0 +1,3 @@
1
+ export const VERSION = {
2
+ CURRENT: '1.5.5'
3
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Platform group barrel - browser-safe exports
3
+ *
4
+ * Infrastructure foundation: constants, utilities, registry, SSE, API types
5
+ */
6
+
7
+ // Shared constants
8
+ export * from './constants/index'
9
+
10
+ // Core utilities
11
+ export * from './utils/index'
12
+
13
+ // Resource Registry
14
+ export * from './registry/index'
15
+
16
+ // Serialized types (for CLI and frontend usage)
17
+ export type {
18
+ SerializedAgentDefinition,
19
+ SerializedWorkflowDefinition,
20
+ SerializedExecutionInterface
21
+ } from './registry/serialized-types'
22
+
23
+ // SSE event types (shared between backend and frontend)
24
+ export * from './sse/index'
25
+
26
+ // API types (error responses shared with frontend)
27
+ export * from './api/index'
@@ -0,0 +1,410 @@
1
+ /**
2
+ * Test: Command View Type Guards and Helper Functions
3
+ * Tests for type guards and utility functions in command-view.ts
4
+ */
5
+
6
+ import { describe, it, expect } from 'vitest'
7
+ import {
8
+ isAgent,
9
+ isWorkflow,
10
+ isTrigger,
11
+ isIntegration,
12
+ isExternalResource,
13
+ isHumanCheckpoint,
14
+ getNodeId,
15
+ getNodeType,
16
+ type CommandViewAgent,
17
+ type CommandViewWorkflow,
18
+ type CommandViewNode
19
+ } from '../command-view'
20
+ import type {
21
+ TriggerDefinition,
22
+ IntegrationDefinition,
23
+ ExternalResourceDefinition,
24
+ HumanCheckpointDefinition
25
+ } from '../types'
26
+
27
+ // ============================================================================
28
+ // Mock Data - All resources follow new unified schema
29
+ // ============================================================================
30
+
31
+ const mockAgent: CommandViewAgent = {
32
+ resourceId: 'test-agent-123',
33
+ name: 'Test Agent',
34
+ description: 'A test agent for unit testing',
35
+ version: '1.0.0',
36
+ type: 'agent',
37
+ status: 'dev',
38
+ modelProvider: 'anthropic',
39
+ modelId: 'claude-sonnet-4-20250514',
40
+ toolCount: 5,
41
+ hasKnowledgeMap: true,
42
+ hasMemory: false,
43
+ domains: ['support', 'sales']
44
+ }
45
+
46
+ const mockWorkflow: CommandViewWorkflow = {
47
+ resourceId: 'test-workflow-456',
48
+ name: 'Test Workflow',
49
+ description: 'A test workflow for unit testing',
50
+ version: '2.1.0',
51
+ type: 'workflow',
52
+ status: 'prod',
53
+ stepCount: 3,
54
+ entryPoint: 'start',
55
+ domains: ['support']
56
+ }
57
+
58
+ const mockTrigger: TriggerDefinition = {
59
+ resourceId: 'test-trigger-789',
60
+ name: 'Test Webhook Trigger',
61
+ description: 'A test webhook trigger',
62
+ version: '1.0.0',
63
+ type: 'trigger',
64
+ status: 'prod',
65
+ triggerType: 'webhook',
66
+ webhookPath: '/webhooks/shopify/orders',
67
+ triggers: {
68
+ workflows: ['test-workflow-456']
69
+ }
70
+ }
71
+
72
+ const mockIntegration: IntegrationDefinition = {
73
+ resourceId: 'integration-shopify-prod',
74
+ name: 'Shopify Production',
75
+ description: 'E-commerce platform integration',
76
+ version: '1.0.0',
77
+ type: 'integration',
78
+ status: 'prod',
79
+ provider: 'shopify',
80
+ credentialName: 'shopify-prod'
81
+ }
82
+
83
+ const mockExternalResource: ExternalResourceDefinition = {
84
+ resourceId: 'external-n8n-sync',
85
+ name: 'N8N Order Sync',
86
+ description: 'Legacy n8n workflow for syncing orders',
87
+ version: '1.0.0',
88
+ type: 'external',
89
+ status: 'prod',
90
+ platform: 'n8n',
91
+ platformUrl: 'https://n8n.client.com/workflow/123',
92
+ externalId: 'n8n-workflow-123',
93
+ triggers: {
94
+ workflows: ['test-workflow-456']
95
+ },
96
+ uses: {
97
+ integrations: ['integration-shopify-prod']
98
+ }
99
+ }
100
+
101
+ const mockHumanCheckpoint: HumanCheckpointDefinition = {
102
+ resourceId: 'sales-approval',
103
+ name: 'Sales Approval Queue',
104
+ description: 'High-value order approvals for sales team',
105
+ version: '1.0.0',
106
+ type: 'human',
107
+ status: 'prod',
108
+ requestedBy: {
109
+ agents: ['test-agent-123']
110
+ },
111
+ routesTo: {
112
+ workflows: ['test-workflow-456']
113
+ }
114
+ }
115
+
116
+ // ============================================================================
117
+ // Type Guard Tests
118
+ // ============================================================================
119
+
120
+ describe('Command View Type Guards', () => {
121
+ describe('isAgent', () => {
122
+ it('returns true for agent nodes', () => {
123
+ expect(isAgent(mockAgent)).toBe(true)
124
+ })
125
+
126
+ it('returns false for workflow nodes', () => {
127
+ expect(isAgent(mockWorkflow)).toBe(false)
128
+ })
129
+
130
+ it('returns false for trigger nodes', () => {
131
+ expect(isAgent(mockTrigger)).toBe(false)
132
+ })
133
+
134
+ it('returns false for integration nodes', () => {
135
+ expect(isAgent(mockIntegration)).toBe(false)
136
+ })
137
+
138
+ it('returns false for external resource nodes', () => {
139
+ expect(isAgent(mockExternalResource)).toBe(false)
140
+ })
141
+
142
+ it('returns false for human checkpoint nodes', () => {
143
+ expect(isAgent(mockHumanCheckpoint)).toBe(false)
144
+ })
145
+ })
146
+
147
+ describe('isWorkflow', () => {
148
+ it('returns true for workflow nodes', () => {
149
+ expect(isWorkflow(mockWorkflow)).toBe(true)
150
+ })
151
+
152
+ it('returns false for agent nodes', () => {
153
+ expect(isWorkflow(mockAgent)).toBe(false)
154
+ })
155
+
156
+ it('returns false for trigger nodes', () => {
157
+ expect(isWorkflow(mockTrigger)).toBe(false)
158
+ })
159
+
160
+ it('returns false for integration nodes', () => {
161
+ expect(isWorkflow(mockIntegration)).toBe(false)
162
+ })
163
+
164
+ it('returns false for external resource nodes', () => {
165
+ expect(isWorkflow(mockExternalResource)).toBe(false)
166
+ })
167
+
168
+ it('returns false for human checkpoint nodes', () => {
169
+ expect(isWorkflow(mockHumanCheckpoint)).toBe(false)
170
+ })
171
+ })
172
+
173
+ describe('isTrigger', () => {
174
+ it('returns true for webhook trigger nodes', () => {
175
+ expect(isTrigger(mockTrigger)).toBe(true)
176
+ })
177
+
178
+ it('verifies trigger detection uses triggerType field', () => {
179
+ // Trigger is identified by presence of triggerType field
180
+ expect('triggerType' in mockTrigger).toBe(true)
181
+ expect(mockTrigger.triggerType).toBe('webhook')
182
+ })
183
+
184
+ it('returns false for agent nodes', () => {
185
+ expect(isTrigger(mockAgent)).toBe(false)
186
+ })
187
+
188
+ it('returns false for workflow nodes', () => {
189
+ expect(isTrigger(mockWorkflow)).toBe(false)
190
+ })
191
+
192
+ it('returns false for integration nodes', () => {
193
+ expect(isTrigger(mockIntegration)).toBe(false)
194
+ })
195
+
196
+ it('returns false for external resource nodes', () => {
197
+ expect(isTrigger(mockExternalResource)).toBe(false)
198
+ })
199
+
200
+ it('returns false for human checkpoint nodes', () => {
201
+ expect(isTrigger(mockHumanCheckpoint)).toBe(false)
202
+ })
203
+ })
204
+
205
+ describe('isIntegration', () => {
206
+ it('returns true for integration nodes (type === integration)', () => {
207
+ expect(isIntegration(mockIntegration)).toBe(true)
208
+ expect(mockIntegration.type).toBe('integration')
209
+ })
210
+
211
+ it('returns false for agent nodes', () => {
212
+ expect(isIntegration(mockAgent)).toBe(false)
213
+ })
214
+
215
+ it('returns false for workflow nodes', () => {
216
+ expect(isIntegration(mockWorkflow)).toBe(false)
217
+ })
218
+
219
+ it('returns false for trigger nodes', () => {
220
+ expect(isIntegration(mockTrigger)).toBe(false)
221
+ })
222
+
223
+ it('returns false for external resource nodes', () => {
224
+ expect(isIntegration(mockExternalResource)).toBe(false)
225
+ })
226
+
227
+ it('returns false for human checkpoint nodes', () => {
228
+ expect(isIntegration(mockHumanCheckpoint)).toBe(false)
229
+ })
230
+ })
231
+
232
+ describe('isExternalResource', () => {
233
+ it('returns true for external resource nodes (has platform)', () => {
234
+ expect(isExternalResource(mockExternalResource)).toBe(true)
235
+ expect('platform' in mockExternalResource).toBe(true)
236
+ expect(mockExternalResource.platform).toBe('n8n')
237
+ })
238
+
239
+ it('returns false for agent nodes', () => {
240
+ expect(isExternalResource(mockAgent)).toBe(false)
241
+ })
242
+
243
+ it('returns false for workflow nodes', () => {
244
+ expect(isExternalResource(mockWorkflow)).toBe(false)
245
+ })
246
+
247
+ it('returns false for trigger nodes', () => {
248
+ expect(isExternalResource(mockTrigger)).toBe(false)
249
+ })
250
+
251
+ it('returns false for integration nodes', () => {
252
+ expect(isExternalResource(mockIntegration)).toBe(false)
253
+ })
254
+
255
+ it('returns false for human checkpoint nodes', () => {
256
+ expect(isExternalResource(mockHumanCheckpoint)).toBe(false)
257
+ })
258
+ })
259
+
260
+ describe('isHumanCheckpoint', () => {
261
+ it('returns true for human checkpoint nodes with requestedBy', () => {
262
+ const checkpoint: HumanCheckpointDefinition = {
263
+ resourceId: 'checkpoint-1',
264
+ name: 'Approval',
265
+ description: 'Approval checkpoint',
266
+ version: '1.0.0',
267
+ type: 'human',
268
+ status: 'prod',
269
+ requestedBy: {
270
+ agents: ['test-agent-123']
271
+ }
272
+ }
273
+ expect(isHumanCheckpoint(checkpoint)).toBe(true)
274
+ })
275
+
276
+ it('returns true for human checkpoint nodes with routesTo', () => {
277
+ const checkpoint: HumanCheckpointDefinition = {
278
+ resourceId: 'checkpoint-2',
279
+ name: 'Router',
280
+ description: 'Routing checkpoint',
281
+ version: '1.0.0',
282
+ type: 'human',
283
+ status: 'prod',
284
+ routesTo: {
285
+ workflows: ['test-workflow-456']
286
+ }
287
+ }
288
+ expect(isHumanCheckpoint(checkpoint)).toBe(true)
289
+ })
290
+
291
+ it('returns true for human checkpoint nodes with both requestedBy and routesTo', () => {
292
+ expect(isHumanCheckpoint(mockHumanCheckpoint)).toBe(true)
293
+ expect('requestedBy' in mockHumanCheckpoint).toBe(true)
294
+ expect('routesTo' in mockHumanCheckpoint).toBe(true)
295
+ })
296
+
297
+ it('returns false for agent nodes', () => {
298
+ expect(isHumanCheckpoint(mockAgent)).toBe(false)
299
+ })
300
+
301
+ it('returns false for workflow nodes', () => {
302
+ expect(isHumanCheckpoint(mockWorkflow)).toBe(false)
303
+ })
304
+
305
+ it('returns false for trigger nodes', () => {
306
+ expect(isHumanCheckpoint(mockTrigger)).toBe(false)
307
+ })
308
+
309
+ it('returns false for integration nodes', () => {
310
+ expect(isHumanCheckpoint(mockIntegration)).toBe(false)
311
+ })
312
+
313
+ it('returns false for external resource nodes', () => {
314
+ expect(isHumanCheckpoint(mockExternalResource)).toBe(false)
315
+ })
316
+ })
317
+ })
318
+
319
+ // ============================================================================
320
+ // Helper Function Tests
321
+ // ============================================================================
322
+
323
+ describe('Command View Helper Functions', () => {
324
+ describe('getNodeId', () => {
325
+ it('returns resourceId for agent nodes', () => {
326
+ expect(getNodeId(mockAgent)).toBe('test-agent-123')
327
+ })
328
+
329
+ it('returns resourceId for workflow nodes', () => {
330
+ expect(getNodeId(mockWorkflow)).toBe('test-workflow-456')
331
+ })
332
+
333
+ it('returns resourceId for trigger nodes', () => {
334
+ expect(getNodeId(mockTrigger)).toBe('test-trigger-789')
335
+ })
336
+
337
+ it('returns resourceId for integration nodes', () => {
338
+ expect(getNodeId(mockIntegration)).toBe('integration-shopify-prod')
339
+ })
340
+
341
+ it('returns resourceId for external resource nodes', () => {
342
+ expect(getNodeId(mockExternalResource)).toBe('external-n8n-sync')
343
+ })
344
+
345
+ it('returns resourceId for human checkpoint nodes', () => {
346
+ expect(getNodeId(mockHumanCheckpoint)).toBe('sales-approval')
347
+ })
348
+
349
+ it('verifies all nodes use unified resourceId field', () => {
350
+ const nodes: CommandViewNode[] = [
351
+ mockAgent,
352
+ mockWorkflow,
353
+ mockTrigger,
354
+ mockIntegration,
355
+ mockExternalResource,
356
+ mockHumanCheckpoint
357
+ ]
358
+
359
+ nodes.forEach((node) => {
360
+ expect(node).toHaveProperty('resourceId')
361
+ expect(typeof node.resourceId).toBe('string')
362
+ expect(node.resourceId.length).toBeGreaterThan(0)
363
+ })
364
+ })
365
+ })
366
+
367
+ describe('getNodeType', () => {
368
+ it('returns "agent" for agent nodes', () => {
369
+ expect(getNodeType(mockAgent)).toBe('agent')
370
+ })
371
+
372
+ it('returns "workflow" for workflow nodes', () => {
373
+ expect(getNodeType(mockWorkflow)).toBe('workflow')
374
+ })
375
+
376
+ it('returns "trigger" for trigger nodes', () => {
377
+ expect(getNodeType(mockTrigger)).toBe('trigger')
378
+ })
379
+
380
+ it('returns "integration" for integration nodes', () => {
381
+ expect(getNodeType(mockIntegration)).toBe('integration')
382
+ })
383
+
384
+ it('returns "external" for external resource nodes', () => {
385
+ expect(getNodeType(mockExternalResource)).toBe('external')
386
+ })
387
+
388
+ it('returns "human" for human checkpoint nodes', () => {
389
+ expect(getNodeType(mockHumanCheckpoint)).toBe('human')
390
+ })
391
+
392
+ it('handles all node types in collection', () => {
393
+ const nodes: CommandViewNode[] = [
394
+ mockAgent,
395
+ mockWorkflow,
396
+ mockTrigger,
397
+ mockIntegration,
398
+ mockExternalResource,
399
+ mockHumanCheckpoint
400
+ ]
401
+
402
+ const expectedTypes = ['agent', 'workflow', 'trigger', 'integration', 'external', 'human']
403
+
404
+ nodes.forEach((node, index) => {
405
+ expect(getNodeType(node)).toBe(expectedTypes[index])
406
+ })
407
+ })
408
+ })
409
+ })
410
+