@elevasis/core 0.7.1 → 0.8.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.
- package/package.json +1 -1
- package/src/README.md +41 -41
- package/src/__tests__/publish.test.ts +18 -18
- package/src/__tests__/{template-foundations-compatibility.test.ts → template-core-compatibility.test.ts} +99 -99
- package/src/_gen/__tests__/__snapshots__/contracts.md.snap +1135 -1131
- package/src/_gen/__tests__/scaffold-contracts.test.ts +53 -53
- package/src/_gen/scaffold-contracts.ts +45 -45
- package/src/auth/multi-tenancy/credentials/README.md +38 -38
- package/src/auth/multi-tenancy/credentials/index.ts +6 -6
- package/src/auth/multi-tenancy/credentials/server/encryption.ts +39 -39
- package/src/auth/multi-tenancy/credentials/server/service.ts +60 -60
- package/src/auth/multi-tenancy/index.ts +17 -17
- package/src/auth/multi-tenancy/invitations/api-schemas.ts +107 -107
- package/src/auth/multi-tenancy/invitations/index.ts +37 -37
- package/src/auth/multi-tenancy/invitations/invitation.ts +86 -86
- package/src/auth/multi-tenancy/invitations/server/index.ts +25 -25
- package/src/auth/multi-tenancy/invitations/server/transforms.ts +24 -24
- package/src/auth/multi-tenancy/invitations/server/workos.ts +24 -24
- package/src/auth/multi-tenancy/invitations/supabase.ts +50 -50
- package/src/auth/multi-tenancy/memberships/api-schemas.ts +126 -126
- package/src/auth/multi-tenancy/memberships/index.ts +21 -21
- package/src/auth/multi-tenancy/memberships/membership.ts +138 -138
- package/src/auth/multi-tenancy/memberships/server/index.ts +15 -15
- package/src/auth/multi-tenancy/memberships/server/transforms.ts +32 -32
- package/src/auth/multi-tenancy/memberships/server/workos.ts +21 -21
- package/src/auth/multi-tenancy/memberships/supabase.ts +46 -46
- package/src/auth/multi-tenancy/organizations/api-schemas.ts +128 -128
- package/src/auth/multi-tenancy/organizations/index.ts +23 -23
- package/src/auth/multi-tenancy/organizations/organization.ts +24 -24
- package/src/auth/multi-tenancy/organizations/server/index.ts +10 -10
- package/src/auth/multi-tenancy/organizations/server/transforms.ts +35 -35
- package/src/auth/multi-tenancy/organizations/server/workos.ts +20 -20
- package/src/auth/multi-tenancy/types.ts +83 -83
- package/src/auth/multi-tenancy/users/api-schemas.ts +194 -194
- package/src/auth/multi-tenancy/users/index.ts +27 -27
- package/src/auth/multi-tenancy/users/server/index.ts +19 -19
- package/src/auth/multi-tenancy/users/server/transforms.ts +21 -21
- package/src/auth/multi-tenancy/users/server/workos.ts +16 -16
- package/src/auth/multi-tenancy/users/user.ts +65 -65
- package/src/business/README.md +52 -52
- package/src/business/__tests__/entities-published.test.ts +33 -33
- package/src/business/acquisition/api-schemas.ts +759 -759
- package/src/business/acquisition/index.ts +109 -109
- package/src/business/acquisition/types.ts +402 -402
- package/src/business/base-entities.test.ts +481 -481
- package/src/business/base-entities.ts +241 -241
- package/src/business/entities-published.ts +24 -24
- package/src/business/index.ts +15 -15
- package/src/business/pdf/browser/pdfmake-browser.ts +229 -229
- package/src/business/pdf/index.ts +10 -10
- package/src/business/pdf/server/index.ts +21 -21
- package/src/business/pdf/server/themes/default.ts +8 -8
- package/src/business/pdf/server/themes/index.ts +9 -9
- package/src/business/pdf/server/themes/types.ts +8 -8
- package/src/business/pdf/types.ts +272 -272
- package/src/business/projects/index.ts +2 -2
- package/src/business/projects/sse-events.ts +21 -21
- package/src/business/projects/types.ts +89 -89
- package/src/business/sales/api-schemas.ts +75 -75
- package/src/business/seo/__tests__/linking.test.ts +549 -549
- package/src/business/seo/__tests__/types.test.ts +404 -404
- package/src/business/seo/index.ts +2 -2
- package/src/business/seo/linking.ts +281 -281
- package/src/business/seo/types.ts +199 -199
- package/src/commands/queue/index.ts +3 -3
- package/src/commands/queue/schemas.test.ts +593 -593
- package/src/commands/queue/schemas.ts +125 -125
- package/src/commands/queue/sse-events.ts +61 -61
- package/src/commands/queue/types/action.ts +52 -52
- package/src/commands/queue/types/checkpoint.ts +44 -44
- package/src/commands/queue/types/index.ts +7 -7
- package/src/commands/queue/types/task.ts +116 -116
- package/src/commands/queue/types.ts +14 -14
- package/src/content/distribution-metadata.ts +61 -61
- package/src/content/index.ts +10 -10
- package/src/deployments/index.ts +22 -22
- package/src/execution/core/__tests__/archived-logs.test.ts +72 -72
- package/src/execution/core/index.ts +11 -11
- package/src/execution/core/runner-types.ts +80 -80
- package/src/execution/core/server/environment.ts +31 -31
- package/src/execution/core/sse-executions.ts +119 -119
- package/src/execution/core/types.ts +29 -29
- package/src/execution/engine/__tests__/fixtures/test-agents.ts +4 -4
- package/src/execution/engine/__tests__/timeout.test.ts +565 -565
- package/src/execution/engine/agent/__tests__/errors.test.ts +508 -508
- package/src/execution/engine/agent/actions/__tests__/processor.test.ts +531 -531
- package/src/execution/engine/agent/actions/executor.ts +205 -205
- package/src/execution/engine/agent/actions/navigate-knowledge-executor.ts +230 -230
- package/src/execution/engine/agent/actions/processor.ts +116 -116
- package/src/execution/engine/agent/actions/types.ts +70 -70
- package/src/execution/engine/agent/core/agent.ts +810 -810
- package/src/execution/engine/agent/core/types.ts +155 -155
- package/src/execution/engine/agent/errors.ts +251 -251
- package/src/execution/engine/agent/index.ts +78 -78
- package/src/execution/engine/agent/knowledge-map/types.ts +106 -106
- package/src/execution/engine/agent/knowledge-map/utils.ts +101 -101
- package/src/execution/engine/agent/memory/__tests__/manager.test.ts +754 -754
- package/src/execution/engine/agent/memory/domains.ts +99 -99
- package/src/execution/engine/agent/memory/manager.ts +365 -365
- package/src/execution/engine/agent/memory/processor.ts +66 -66
- package/src/execution/engine/agent/memory/types.ts +90 -90
- package/src/execution/engine/agent/memory/utils.ts +134 -134
- package/src/execution/engine/agent/observability/logging.ts +467 -467
- package/src/execution/engine/agent/observability/types.ts +64 -64
- package/src/execution/engine/agent/reasoning/adapters/agent-adapter-helpers.ts +349 -349
- package/src/execution/engine/agent/reasoning/processor.ts +92 -92
- package/src/execution/engine/agent/reasoning/prompt-sections/base-actions.ts +134 -134
- package/src/execution/engine/agent/reasoning/prompt-sections/completion.ts +49 -49
- package/src/execution/engine/agent/reasoning/prompt-sections/knowledge-map.ts +93 -93
- package/src/execution/engine/agent/reasoning/prompt-sections/memory.ts +65 -65
- package/src/execution/engine/agent/reasoning/prompt-sections/tools.ts +44 -44
- package/src/execution/engine/agent/reasoning/request-builder.ts +169 -169
- package/src/execution/engine/agent/reasoning/types.ts +18 -18
- package/src/execution/engine/base/errors.ts +118 -118
- package/src/execution/engine/base/index.ts +2 -2
- package/src/execution/engine/base/logging.ts +31 -31
- package/src/execution/engine/base/serialization.ts +324 -324
- package/src/execution/engine/base/types.ts +126 -126
- package/src/execution/engine/base/utils.ts +41 -41
- package/src/execution/engine/index.ts +434 -434
- package/src/execution/engine/interface/index.ts +1 -1
- package/src/execution/engine/interface/types.ts +62 -62
- package/src/execution/engine/llm/__tests__/model-info.test.ts +50 -50
- package/src/execution/engine/llm/__tests__/model-validation.test.ts +321 -321
- package/src/execution/engine/llm/__tests__/response-schema-validator.test.ts +115 -115
- package/src/execution/engine/llm/adapters/__tests__/adapter-factory.test.ts +375 -375
- package/src/execution/engine/llm/adapters/__tests__/anthropic-adapter.test.ts +463 -463
- package/src/execution/engine/llm/adapters/__tests__/anthropic.integration.test.ts +177 -177
- package/src/execution/engine/llm/adapters/__tests__/google-adapter.test.ts +722 -722
- package/src/execution/engine/llm/adapters/__tests__/google.integration.test.ts +376 -376
- package/src/execution/engine/llm/adapters/__tests__/openai-adapter.test.ts +551 -551
- package/src/execution/engine/llm/adapters/__tests__/openrouter-adapter.test.ts +563 -563
- package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +105 -105
- package/src/execution/engine/llm/adapters/__tests__/universal-adapter.test.ts +537 -537
- package/src/execution/engine/llm/adapters/circuit-breaker.ts +147 -147
- package/src/execution/engine/llm/adapters/index.ts +17 -17
- package/src/execution/engine/llm/adapters/mock-adapter.ts +116 -116
- package/src/execution/engine/llm/adapters/server/adapter-factory.ts +130 -130
- package/src/execution/engine/llm/adapters/server/anthropic.ts +137 -137
- package/src/execution/engine/llm/adapters/server/google.ts +283 -283
- package/src/execution/engine/llm/adapters/server/index.ts +12 -12
- package/src/execution/engine/llm/adapters/server/openai.ts +206 -206
- package/src/execution/engine/llm/adapters/server/openrouter.ts +235 -235
- package/src/execution/engine/llm/adapters/universal-adapter.ts +230 -230
- package/src/execution/engine/llm/errors.ts +186 -186
- package/src/execution/engine/llm/model-info.ts +332 -332
- package/src/execution/engine/llm/response-schema-validator.ts +113 -113
- package/src/execution/engine/llm/types.ts +86 -86
- package/src/execution/engine/test-utils/index.ts +6 -6
- package/src/execution/engine/test-utils/mocks.ts +56 -56
- package/src/execution/engine/tools/integration/base-integration-adapter.ts +50 -50
- package/src/execution/engine/tools/integration/index.ts +53 -53
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-adapter.ts +73 -73
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-tools.ts +209 -209
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-company-email/index.ts +82 -82
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-decision-maker-email/index.ts +122 -122
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-person-email/index.ts +89 -89
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/verify-email/index.ts +84 -84
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/index.ts +16 -16
- package/src/execution/engine/tools/integration/server/adapters/apify/__tests__/apify-run-actor.integration.test.ts +293 -293
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.ts +100 -100
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-tools.ts +217 -217
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/get-dataset-items/index.ts +92 -92
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/run-actor/index.ts +218 -218
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/start-actor/index.ts +87 -87
- package/src/execution/engine/tools/integration/server/adapters/apify/index.ts +11 -11
- package/src/execution/engine/tools/integration/server/adapters/attio/__tests__/attio-crud.integration.test.ts +361 -361
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-adapter.ts +162 -162
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-tools.ts +594 -594
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-attribute/index.ts +214 -214
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-note/index.ts +152 -152
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-record/index.ts +141 -141
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-note/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-record/index.ts +105 -105
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.ts +118 -118
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-attributes/index.ts +165 -165
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-notes/index.ts +96 -96
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-objects/index.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.ts +156 -156
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-attribute/index.ts +220 -220
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-record/index.ts +140 -140
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/utils/types.ts +146 -146
- package/src/execution/engine/tools/integration/server/adapters/attio/index.ts +31 -31
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-adapter.ts +210 -210
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -261
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-adapter.ts +1189 -1189
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-tools.ts +641 -641
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/index.ts +18 -18
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/activate-campaign/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/__tests__/index.test.ts +289 -289
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/index.ts +154 -154
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/__tests__/index.test.ts +325 -325
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/index.ts +153 -153
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-delete-leads/index.ts +84 -84
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-campaign/index.ts +125 -125
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-inbox-test/index.ts +107 -107
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/delete-campaign/index.ts +85 -85
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-account-health/index.ts +91 -91
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign/index.ts +92 -92
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/__tests__/index.test.ts +195 -195
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/index.ts +113 -113
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-daily-campaign-analytics/index.ts +104 -104
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-emails/index.ts +155 -155
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/__tests__/index.test.ts +196 -196
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/__tests__/index.test.ts +189 -189
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/index.ts +87 -87
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-leads/index.ts +112 -112
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/patch-lead/index.ts +76 -76
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/pause-campaign/index.ts +86 -86
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/remove-from-subsequence/index.ts +98 -98
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/send-reply/index.ts +126 -126
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/__tests__/index.test.ts +193 -193
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/index.ts +99 -99
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/__tests__/index.test.ts +621 -621
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/index.ts +125 -125
- package/src/execution/engine/tools/integration/server/adapters/instantly/index.ts +29 -29
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-adapter.ts +178 -178
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1473 -1473
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/check-credits/index.ts +59 -59
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/verify-email/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/index.ts +17 -17
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-adapter.ts +80 -80
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/get-email/index.ts +102 -102
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.ts +134 -134
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/utils/types.ts +75 -75
- package/src/execution/engine/tools/integration/server/adapters/resend/index.ts +27 -27
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-adapter.ts +108 -108
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-tools.ts +132 -132
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/create-envelope/index.ts +274 -274
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/download-document/index.ts +230 -230
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/get-envelope/index.ts +133 -133
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/void-envelope/index.ts +90 -90
- package/src/execution/engine/tools/integration/server/adapters/stripe/fetch/utils/types.ts +210 -210
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-adapter.ts +517 -517
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +309 -309
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/domain-search/index.ts +133 -133
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-finder/index.ts +122 -122
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-verifier/index.ts +111 -111
- package/src/execution/engine/tools/integration/server/adapters/tomba/index.ts +11 -11
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-adapter.ts +78 -78
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-tools.ts +222 -222
- package/src/execution/engine/tools/integration/server/index.ts +61 -61
- package/src/execution/engine/tools/integration/service.ts +161 -161
- package/src/execution/engine/tools/integration/tool.ts +253 -253
- package/src/execution/engine/tools/integration/types/anymailfinder.ts +74 -74
- package/src/execution/engine/tools/integration/types/apify.ts +92 -92
- package/src/execution/engine/tools/integration/types/index.ts +19 -19
- package/src/execution/engine/tools/integration/types/instantly.ts +557 -557
- package/src/execution/engine/tools/integration/types/millionverifier.ts +56 -56
- package/src/execution/engine/tools/integration/types/stripe.ts +162 -162
- package/src/execution/engine/tools/integration/types/tomba.ts +94 -94
- package/src/execution/engine/tools/lead-service-types.ts +884 -884
- package/src/execution/engine/tools/llm/index.ts +11 -11
- package/src/execution/engine/tools/llm/server/index.ts +8 -8
- package/src/execution/engine/tools/llm/server/llm-call-tool.ts +118 -118
- package/src/execution/engine/tools/platform/__tests__/pdf.test.ts +441 -441
- package/src/execution/engine/tools/platform/acquisition/company-tools.ts +248 -248
- package/src/execution/engine/tools/platform/acquisition/contact-tools.ts +319 -319
- package/src/execution/engine/tools/platform/acquisition/index.ts +43 -43
- package/src/execution/engine/tools/platform/acquisition/list-tools.ts +148 -148
- package/src/execution/engine/tools/platform/acquisition/types.ts +260 -260
- package/src/execution/engine/tools/platform/email/index.ts +122 -122
- package/src/execution/engine/tools/platform/email/types.ts +96 -96
- package/src/execution/engine/tools/platform/index.ts +157 -157
- package/src/execution/engine/tools/platform/notification.ts +81 -81
- package/src/execution/engine/tools/platform/pdf/index.ts +110 -110
- package/src/execution/engine/tools/platform/pdf/types.ts +77 -77
- package/src/execution/engine/tools/platform/scheduler.ts +87 -87
- package/src/execution/engine/tools/platform/storage/index.ts +370 -370
- package/src/execution/engine/tools/platform/types.ts +148 -148
- package/src/execution/engine/tools/registry.ts +700 -700
- package/src/execution/engine/tools/tool-maps.ts +786 -786
- package/src/execution/engine/tools/types.ts +233 -233
- package/src/execution/engine/workflow/__tests__/errors.test.ts +139 -139
- package/src/execution/engine/workflow/errors.ts +63 -63
- package/src/execution/engine/workflow/helpers/index.ts +11 -11
- package/src/execution/engine/workflow/helpers/server/index.ts +8 -8
- package/src/execution/engine/workflow/helpers/server/llm-call.ts +93 -93
- package/src/execution/engine/workflow/index.ts +19 -19
- package/src/execution/engine/workflow/log-truncate.ts +26 -26
- package/src/execution/engine/workflow/logging.ts +191 -191
- package/src/execution/engine/workflow/types.ts +182 -182
- package/src/execution/engine/workflow/utils.ts +280 -280
- package/src/execution/engine/workflow/workflow.ts +168 -168
- package/src/execution/index.ts +3 -3
- package/src/execution/scheduler/__tests__/api-schemas.test.ts +733 -733
- package/src/execution/scheduler/__tests__/utils.test.ts +1009 -1009
- package/src/execution/scheduler/api-schemas.ts +296 -296
- package/src/execution/scheduler/index.ts +50 -50
- package/src/execution/scheduler/schemas.ts +264 -264
- package/src/execution/scheduler/types.ts +111 -111
- package/src/execution/scheduler/utils.ts +364 -364
- package/src/forms/index.ts +7 -7
- package/src/forms/schemas.ts +69 -69
- package/src/forms/types.ts +70 -70
- package/src/index.ts +71 -60
- package/src/integrations/credentials/__tests__/schemas.test.ts +82 -82
- package/src/integrations/credentials/__tests__/utils.test.ts +144 -144
- package/src/integrations/credentials/api-schemas.ts +143 -143
- package/src/integrations/credentials/index.ts +32 -32
- package/src/integrations/credentials/schemas.ts +164 -164
- package/src/integrations/credentials/utils.ts +59 -59
- package/src/integrations/oauth/__tests__/provider-registry.test.ts +59 -59
- package/src/integrations/oauth/api-schemas.ts +92 -92
- package/src/integrations/oauth/index.ts +19 -19
- package/src/integrations/oauth/provider-registry.ts +61 -61
- package/src/integrations/oauth/server/__tests__/refresh-concurrent.test.ts +183 -183
- package/src/integrations/oauth/server/__tests__/refresh.test.ts +577 -577
- package/src/integrations/oauth/server/credentials.ts +39 -39
- package/src/integrations/oauth/server/refresh.ts +214 -214
- package/src/integrations/oauth/types.ts +34 -34
- package/src/integrations/webhook-endpoints/__tests__/api-schemas.test.ts +318 -318
- package/src/integrations/webhook-endpoints/api-schemas.ts +102 -102
- package/src/integrations/webhook-endpoints/index.ts +28 -28
- package/src/integrations/webhook-endpoints/types.ts +51 -51
- package/src/operations/activities/api-schemas.ts +79 -79
- package/src/operations/activities/index.ts +9 -9
- package/src/operations/activities/sse-events.ts +30 -30
- package/src/operations/activities/types.ts +63 -63
- package/src/operations/debug-logs/client.ts +60 -60
- package/src/operations/debug-logs/debug-logger.ts +83 -83
- package/src/operations/debug-logs/index.ts +8 -8
- package/src/operations/debug-logs/server.ts +19 -19
- package/src/operations/debug-logs/types.ts +33 -33
- package/src/operations/index.ts +50 -50
- package/src/operations/notifications/api-schemas.ts +91 -91
- package/src/operations/notifications/index.ts +3 -3
- package/src/operations/notifications/sse-events.ts +21 -21
- package/src/operations/notifications/types.ts +47 -47
- package/src/operations/observability/__tests__/openrouter-cost-flow.test.ts +297 -297
- package/src/operations/observability/__tests__/utils.test.ts +54 -54
- package/src/operations/observability/ai-usage-collector.ts +64 -64
- package/src/operations/observability/index.ts +13 -13
- package/src/operations/observability/metrics-collector.ts +49 -49
- package/src/operations/observability/schemas.ts +39 -39
- package/src/operations/observability/types.ts +463 -463
- package/src/operations/observability/utils.ts +77 -77
- package/src/operations/sessions/__tests__/manager.test.ts +821 -821
- package/src/operations/sessions/index.ts +26 -26
- package/src/operations/sessions/server/manager.ts +90 -90
- package/src/operations/sessions/server/session.ts +180 -180
- package/src/operations/sessions/types.ts +98 -98
- package/src/operations/triggers/index.ts +12 -12
- package/src/operations/triggers/webhook/definitions/instantly-account-error.ts +44 -44
- package/src/operations/triggers/webhook/definitions/instantly-auto-reply-received.ts +51 -51
- package/src/operations/triggers/webhook/definitions/instantly-campaign-completed.ts +45 -45
- package/src/operations/triggers/webhook/definitions/instantly-email-bounced.ts +49 -49
- package/src/operations/triggers/webhook/definitions/instantly-lead-unsubscribed.ts +45 -45
- package/src/operations/triggers/webhook/definitions/instantly-reply-received.ts +54 -54
- package/src/operations/triggers/webhook/index.ts +35 -35
- package/src/operations/triggers/webhook/types.ts +74 -74
- package/src/organization-model/README.md +97 -97
- package/src/organization-model/__tests__/defaults.test.ts +175 -175
- package/src/organization-model/__tests__/domains/customers.test.ts +295 -295
- package/src/organization-model/__tests__/domains/goals.test.ts +479 -479
- package/src/organization-model/__tests__/domains/identity.test.ts +279 -279
- package/src/organization-model/__tests__/domains/navigation.test.ts +212 -212
- package/src/organization-model/__tests__/domains/offerings.test.ts +419 -419
- package/src/organization-model/__tests__/domains/operations.test.ts +203 -203
- package/src/organization-model/__tests__/domains/resource-mappings.test.ts +362 -362
- package/src/organization-model/__tests__/domains/roles.test.ts +347 -347
- package/src/organization-model/__tests__/domains/statuses.test.ts +243 -243
- package/src/organization-model/__tests__/foundation.test.ts +105 -105
- package/src/organization-model/__tests__/graph.test.ts +894 -894
- package/src/organization-model/__tests__/resolve.test.ts +690 -690
- package/src/organization-model/__tests__/schema.test.ts +407 -407
- package/src/organization-model/contracts.ts +14 -14
- package/src/organization-model/defaults.ts +148 -148
- package/src/organization-model/domains/branding.ts +22 -22
- package/src/organization-model/domains/customers.ts +75 -75
- package/src/organization-model/domains/features.ts +22 -22
- package/src/organization-model/domains/goals.ts +80 -80
- package/src/organization-model/domains/identity.ts +94 -94
- package/src/organization-model/domains/navigation.ts +391 -391
- package/src/organization-model/domains/offerings.ts +66 -66
- package/src/organization-model/domains/operations.ts +85 -85
- package/src/organization-model/domains/projects.ts +48 -48
- package/src/organization-model/domains/prospecting.ts +33 -33
- package/src/organization-model/domains/roles.ts +55 -55
- package/src/organization-model/domains/sales.ts +94 -94
- package/src/organization-model/domains/shared.ts +62 -62
- package/src/organization-model/domains/statuses.ts +130 -130
- package/src/organization-model/foundation.ts +97 -97
- package/src/organization-model/graph/build.ts +399 -399
- package/src/organization-model/graph/index.ts +4 -4
- package/src/organization-model/graph/schema.ts +48 -48
- package/src/organization-model/graph/types.ts +40 -40
- package/src/organization-model/index.ts +13 -13
- package/src/organization-model/organization-graph.mdx +272 -272
- package/src/organization-model/organization-model.mdx +320 -320
- package/src/organization-model/published.ts +85 -85
- package/src/organization-model/resolve.ts +66 -66
- package/src/organization-model/schema.ts +287 -287
- package/src/organization-model/types.ts +46 -46
- package/src/platform/api/index.ts +1 -1
- package/src/platform/api/types.ts +35 -35
- package/src/platform/constants/http.ts +37 -37
- package/src/platform/constants/index.ts +5 -5
- package/src/platform/constants/limits.ts +32 -32
- package/src/platform/constants/resilience.ts +51 -51
- package/src/platform/constants/timeouts.ts +20 -20
- package/src/platform/constants/versions.ts +3 -3
- package/src/platform/registry/__tests__/resource-registry-static.test.ts +347 -347
- package/src/platform/registry/__tests__/resource-registry.integration.test.ts +1028 -1028
- package/src/platform/registry/__tests__/resource-registry.list-executable.test.ts +393 -393
- package/src/platform/registry/__tests__/resource-registry.test.ts +2005 -2005
- package/src/platform/registry/__tests__/serialization.test.ts +1127 -1127
- package/src/platform/registry/command-view.ts +180 -180
- package/src/platform/registry/domains.ts +165 -165
- package/src/platform/registry/index.ts +93 -93
- package/src/platform/registry/reserved.ts +24 -24
- package/src/platform/registry/resource-metadata.ts +59 -59
- package/src/platform/registry/resource-registry.command-queue-groups.test.ts +129 -129
- package/src/platform/registry/resource-registry.ts +876 -876
- package/src/platform/registry/serialization.ts +273 -273
- package/src/platform/registry/serialized-types.ts +231 -231
- package/src/platform/registry/stats-types.ts +66 -66
- package/src/platform/registry/types.ts +404 -404
- package/src/platform/registry/validation.ts +513 -513
- package/src/platform/resilience/__tests__/rate-limiter.test.ts +471 -471
- package/src/platform/resilience/circuit-breaker.ts +164 -164
- package/src/platform/resilience/errors.ts +68 -68
- package/src/platform/resilience/http-error-mapper.ts +129 -129
- package/src/platform/resilience/index.ts +93 -93
- package/src/platform/resilience/rate-limiter-types.ts +46 -46
- package/src/platform/resilience/rate-limiter.ts +140 -140
- package/src/platform/resilience/retry.ts +89 -89
- package/src/platform/resilience/timeout.ts +63 -63
- package/src/platform/sse/events.ts +37 -37
- package/src/platform/sse/index.ts +7 -7
- package/src/platform/utils/__tests__/validation.test.ts +1083 -1083
- package/src/platform/utils/currency.ts +96 -96
- package/src/platform/utils/debounce.ts +52 -52
- package/src/platform/utils/error.ts +41 -41
- package/src/platform/utils/hmac.test.ts +97 -97
- package/src/platform/utils/index.ts +32 -32
- package/src/platform/utils/server/betterstack-logger.ts +210 -210
- package/src/platform/utils/server/hmac.ts +44 -44
- package/src/platform/utils/server/unsubscribe.ts +111 -111
- package/src/platform/utils/token-counter.ts +96 -96
- package/src/platform/utils/validation.ts +425 -425
- package/src/projects/api-schemas.ts +268 -268
- package/src/published.ts +1 -1
- package/src/reference/_generated/contracts.md +607 -607
- package/src/reference/glossary.md +105 -105
- package/src/requests/__tests__/api-schemas.test.ts +277 -277
- package/src/requests/api-schemas.ts +83 -83
- package/src/requests/index.ts +1 -1
- package/src/scaffold-registry/__tests__/index.test.ts +17 -0
- package/src/scaffold-registry/__tests__/schema.test.ts +329 -230
- package/src/scaffold-registry/index.ts +205 -189
- package/src/scaffold-registry/schema.ts +196 -128
- package/src/server.ts +272 -272
- package/src/supabase/database.types.ts +2719 -2719
- package/src/supabase/helpers.ts +20 -20
- package/src/supabase/index.ts +52 -52
- package/src/supabase/server/client.ts +58 -58
- package/src/test-utils/README.md +38 -38
- package/src/test-utils/browser-mocks.ts +54 -54
- package/src/test-utils/fixtures/api-keys.ts +52 -52
- package/src/test-utils/fixtures/index.ts +4 -4
- package/src/test-utils/fixtures/memberships.ts +80 -80
- package/src/test-utils/fixtures/organizations.ts +69 -69
- package/src/test-utils/fixtures/users.ts +79 -79
- package/src/test-utils/index.ts +11 -11
- package/src/test-utils/mocks/index.ts +2 -2
- package/src/test-utils/mocks/supabase.ts +142 -142
- package/src/test-utils/mocks/workos.ts +108 -108
- package/src/test-utils/rls/RLSTestContext.ts +556 -556
- package/src/test-utils/rls/index.ts +1 -1
|
@@ -1,102 +1,102 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
import { UuidSchema, NonEmptyStringSchema, PaginationSchema } from '../../platform/utils/validation'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Webhook Endpoint API Validation Schemas
|
|
6
|
-
*
|
|
7
|
-
* HTTP request/response validation for the webhook endpoints CRUD API.
|
|
8
|
-
* These schemas are browser-safe and shared between API and frontend.
|
|
9
|
-
*
|
|
10
|
-
* Design notes:
|
|
11
|
-
* - Request schemas use `.strict()` to reject unknown fields (mass assignment prevention)
|
|
12
|
-
* - Response schemas do NOT use `.strict()` (allows forward-compatible additions)
|
|
13
|
-
* - Update schema requires at least one field via `.refine()`
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Status enum for webhook endpoints
|
|
18
|
-
*/
|
|
19
|
-
export const WebhookEndpointStatusSchema = z.enum(['active', 'paused'])
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* POST /api/webhook-endpoints - Create a new webhook endpoint
|
|
23
|
-
*
|
|
24
|
-
* The `key` and `id` are generated server-side and not accepted in the request.
|
|
25
|
-
*/
|
|
26
|
-
export const CreateWebhookEndpointRequestSchema = z
|
|
27
|
-
.object({
|
|
28
|
-
/** User-facing label for the endpoint */
|
|
29
|
-
name: NonEmptyStringSchema,
|
|
30
|
-
/** Target workflow resourceId to invoke on inbound requests (can be set later) */
|
|
31
|
-
resourceId: NonEmptyStringSchema.optional(),
|
|
32
|
-
/** Optional description */
|
|
33
|
-
description: z.string().optional()
|
|
34
|
-
})
|
|
35
|
-
.strict()
|
|
36
|
-
|
|
37
|
-
export type CreateWebhookEndpointRequest = z.infer<typeof CreateWebhookEndpointRequestSchema>
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* PATCH /api/webhook-endpoints/:id - Update an existing webhook endpoint
|
|
41
|
-
*
|
|
42
|
-
* At least one field must be provided.
|
|
43
|
-
*/
|
|
44
|
-
export const UpdateWebhookEndpointRequestSchema = z
|
|
45
|
-
.object({
|
|
46
|
-
name: NonEmptyStringSchema.optional(),
|
|
47
|
-
description: z.string().optional(),
|
|
48
|
-
resourceId: NonEmptyStringSchema.optional(),
|
|
49
|
-
status: WebhookEndpointStatusSchema.optional()
|
|
50
|
-
})
|
|
51
|
-
.strict()
|
|
52
|
-
.refine(
|
|
53
|
-
(data) =>
|
|
54
|
-
data.name !== undefined ||
|
|
55
|
-
data.description !== undefined ||
|
|
56
|
-
data.resourceId !== undefined ||
|
|
57
|
-
data.status !== undefined,
|
|
58
|
-
{ message: 'At least one field (name, description, resourceId, or status) must be provided' }
|
|
59
|
-
)
|
|
60
|
-
|
|
61
|
-
export type UpdateWebhookEndpointRequest = z.infer<typeof UpdateWebhookEndpointRequestSchema>
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Response shape for a single webhook endpoint.
|
|
65
|
-
* NOT strict — response schemas allow extra fields for forward compatibility.
|
|
66
|
-
*/
|
|
67
|
-
export const WebhookEndpointResponseSchema = z.object({
|
|
68
|
-
id: UuidSchema,
|
|
69
|
-
organizationId: UuidSchema,
|
|
70
|
-
key: z.string(),
|
|
71
|
-
name: z.string(),
|
|
72
|
-
description: z.string().nullable(),
|
|
73
|
-
resourceId: z.string().nullable(),
|
|
74
|
-
status: WebhookEndpointStatusSchema,
|
|
75
|
-
lastTriggeredAt: z.string().datetime().nullable(),
|
|
76
|
-
requestCount: z.number().int().min(0),
|
|
77
|
-
createdAt: z.string().datetime(),
|
|
78
|
-
updatedAt: z.string().datetime()
|
|
79
|
-
})
|
|
80
|
-
|
|
81
|
-
export type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
* GET /api/webhook-endpoints - List webhook endpoints query params
|
|
85
|
-
*
|
|
86
|
-
* Extends standard pagination with optional status filter.
|
|
87
|
-
*/
|
|
88
|
-
export const ListWebhookEndpointsQuerySchema = PaginationSchema.extend({
|
|
89
|
-
status: WebhookEndpointStatusSchema.optional()
|
|
90
|
-
})
|
|
91
|
-
|
|
92
|
-
export type ListWebhookEndpointsQuery = z.infer<typeof ListWebhookEndpointsQuerySchema>
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Named collection of all webhook endpoint schemas for route registration
|
|
96
|
-
*/
|
|
97
|
-
export const WebhookEndpointSchemas = {
|
|
98
|
-
CreateRequest: CreateWebhookEndpointRequestSchema,
|
|
99
|
-
UpdateRequest: UpdateWebhookEndpointRequestSchema,
|
|
100
|
-
Response: WebhookEndpointResponseSchema,
|
|
101
|
-
ListQuery: ListWebhookEndpointsQuerySchema
|
|
102
|
-
}
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { UuidSchema, NonEmptyStringSchema, PaginationSchema } from '../../platform/utils/validation'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Webhook Endpoint API Validation Schemas
|
|
6
|
+
*
|
|
7
|
+
* HTTP request/response validation for the webhook endpoints CRUD API.
|
|
8
|
+
* These schemas are browser-safe and shared between API and frontend.
|
|
9
|
+
*
|
|
10
|
+
* Design notes:
|
|
11
|
+
* - Request schemas use `.strict()` to reject unknown fields (mass assignment prevention)
|
|
12
|
+
* - Response schemas do NOT use `.strict()` (allows forward-compatible additions)
|
|
13
|
+
* - Update schema requires at least one field via `.refine()`
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Status enum for webhook endpoints
|
|
18
|
+
*/
|
|
19
|
+
export const WebhookEndpointStatusSchema = z.enum(['active', 'paused'])
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* POST /api/webhook-endpoints - Create a new webhook endpoint
|
|
23
|
+
*
|
|
24
|
+
* The `key` and `id` are generated server-side and not accepted in the request.
|
|
25
|
+
*/
|
|
26
|
+
export const CreateWebhookEndpointRequestSchema = z
|
|
27
|
+
.object({
|
|
28
|
+
/** User-facing label for the endpoint */
|
|
29
|
+
name: NonEmptyStringSchema,
|
|
30
|
+
/** Target workflow resourceId to invoke on inbound requests (can be set later) */
|
|
31
|
+
resourceId: NonEmptyStringSchema.optional(),
|
|
32
|
+
/** Optional description */
|
|
33
|
+
description: z.string().optional()
|
|
34
|
+
})
|
|
35
|
+
.strict()
|
|
36
|
+
|
|
37
|
+
export type CreateWebhookEndpointRequest = z.infer<typeof CreateWebhookEndpointRequestSchema>
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* PATCH /api/webhook-endpoints/:id - Update an existing webhook endpoint
|
|
41
|
+
*
|
|
42
|
+
* At least one field must be provided.
|
|
43
|
+
*/
|
|
44
|
+
export const UpdateWebhookEndpointRequestSchema = z
|
|
45
|
+
.object({
|
|
46
|
+
name: NonEmptyStringSchema.optional(),
|
|
47
|
+
description: z.string().optional(),
|
|
48
|
+
resourceId: NonEmptyStringSchema.optional(),
|
|
49
|
+
status: WebhookEndpointStatusSchema.optional()
|
|
50
|
+
})
|
|
51
|
+
.strict()
|
|
52
|
+
.refine(
|
|
53
|
+
(data) =>
|
|
54
|
+
data.name !== undefined ||
|
|
55
|
+
data.description !== undefined ||
|
|
56
|
+
data.resourceId !== undefined ||
|
|
57
|
+
data.status !== undefined,
|
|
58
|
+
{ message: 'At least one field (name, description, resourceId, or status) must be provided' }
|
|
59
|
+
)
|
|
60
|
+
|
|
61
|
+
export type UpdateWebhookEndpointRequest = z.infer<typeof UpdateWebhookEndpointRequestSchema>
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Response shape for a single webhook endpoint.
|
|
65
|
+
* NOT strict — response schemas allow extra fields for forward compatibility.
|
|
66
|
+
*/
|
|
67
|
+
export const WebhookEndpointResponseSchema = z.object({
|
|
68
|
+
id: UuidSchema,
|
|
69
|
+
organizationId: UuidSchema,
|
|
70
|
+
key: z.string(),
|
|
71
|
+
name: z.string(),
|
|
72
|
+
description: z.string().nullable(),
|
|
73
|
+
resourceId: z.string().nullable(),
|
|
74
|
+
status: WebhookEndpointStatusSchema,
|
|
75
|
+
lastTriggeredAt: z.string().datetime().nullable(),
|
|
76
|
+
requestCount: z.number().int().min(0),
|
|
77
|
+
createdAt: z.string().datetime(),
|
|
78
|
+
updatedAt: z.string().datetime()
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
export type WebhookEndpointResponse = z.infer<typeof WebhookEndpointResponseSchema>
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* GET /api/webhook-endpoints - List webhook endpoints query params
|
|
85
|
+
*
|
|
86
|
+
* Extends standard pagination with optional status filter.
|
|
87
|
+
*/
|
|
88
|
+
export const ListWebhookEndpointsQuerySchema = PaginationSchema.extend({
|
|
89
|
+
status: WebhookEndpointStatusSchema.optional()
|
|
90
|
+
})
|
|
91
|
+
|
|
92
|
+
export type ListWebhookEndpointsQuery = z.infer<typeof ListWebhookEndpointsQuerySchema>
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Named collection of all webhook endpoint schemas for route registration
|
|
96
|
+
*/
|
|
97
|
+
export const WebhookEndpointSchemas = {
|
|
98
|
+
CreateRequest: CreateWebhookEndpointRequestSchema,
|
|
99
|
+
UpdateRequest: UpdateWebhookEndpointRequestSchema,
|
|
100
|
+
Response: WebhookEndpointResponseSchema,
|
|
101
|
+
ListQuery: ListWebhookEndpointsQuerySchema
|
|
102
|
+
}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Webhook Endpoints Integration
|
|
3
|
-
*
|
|
4
|
-
* Generic inbound webhook endpoints — provider-agnostic, self-service, revocable.
|
|
5
|
-
* Each endpoint gets a unique opaque URL that maps to a target workflow.
|
|
6
|
-
*
|
|
7
|
-
* @see apps/docs/content/docs/in-progress/active-development/generic-webhook-endpoints/index.mdx
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
// Domain types
|
|
11
|
-
export type { WebhookEndpoint, WebhookEndpointStatus } from './types'
|
|
12
|
-
|
|
13
|
-
// API schemas and inferred types
|
|
14
|
-
export {
|
|
15
|
-
WebhookEndpointStatusSchema,
|
|
16
|
-
CreateWebhookEndpointRequestSchema,
|
|
17
|
-
UpdateWebhookEndpointRequestSchema,
|
|
18
|
-
WebhookEndpointResponseSchema,
|
|
19
|
-
ListWebhookEndpointsQuerySchema,
|
|
20
|
-
WebhookEndpointSchemas
|
|
21
|
-
} from './api-schemas'
|
|
22
|
-
|
|
23
|
-
export type {
|
|
24
|
-
CreateWebhookEndpointRequest,
|
|
25
|
-
UpdateWebhookEndpointRequest,
|
|
26
|
-
WebhookEndpointResponse,
|
|
27
|
-
ListWebhookEndpointsQuery
|
|
28
|
-
} from './api-schemas'
|
|
1
|
+
/**
|
|
2
|
+
* Webhook Endpoints Integration
|
|
3
|
+
*
|
|
4
|
+
* Generic inbound webhook endpoints — provider-agnostic, self-service, revocable.
|
|
5
|
+
* Each endpoint gets a unique opaque URL that maps to a target workflow.
|
|
6
|
+
*
|
|
7
|
+
* @see apps/docs/content/docs/in-progress/active-development/generic-webhook-endpoints/index.mdx
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
// Domain types
|
|
11
|
+
export type { WebhookEndpoint, WebhookEndpointStatus } from './types'
|
|
12
|
+
|
|
13
|
+
// API schemas and inferred types
|
|
14
|
+
export {
|
|
15
|
+
WebhookEndpointStatusSchema,
|
|
16
|
+
CreateWebhookEndpointRequestSchema,
|
|
17
|
+
UpdateWebhookEndpointRequestSchema,
|
|
18
|
+
WebhookEndpointResponseSchema,
|
|
19
|
+
ListWebhookEndpointsQuerySchema,
|
|
20
|
+
WebhookEndpointSchemas
|
|
21
|
+
} from './api-schemas'
|
|
22
|
+
|
|
23
|
+
export type {
|
|
24
|
+
CreateWebhookEndpointRequest,
|
|
25
|
+
UpdateWebhookEndpointRequest,
|
|
26
|
+
WebhookEndpointResponse,
|
|
27
|
+
ListWebhookEndpointsQuery
|
|
28
|
+
} from './api-schemas'
|
|
@@ -1,51 +1,51 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Webhook Endpoint Domain Types
|
|
3
|
-
*
|
|
4
|
-
* Browser-safe domain types for generic inbound webhook endpoints.
|
|
5
|
-
* These are camelCase representations of the `webhook_endpoints` DB table.
|
|
6
|
-
*
|
|
7
|
-
* Transform from snake_case DB rows happens in the API service layer,
|
|
8
|
-
* not here (per core-package.md conventions).
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Lifecycle status of a webhook endpoint.
|
|
13
|
-
* - `active`: Endpoint accepts inbound requests and triggers the target workflow
|
|
14
|
-
* - `paused`: Endpoint exists but rejects inbound requests with 404
|
|
15
|
-
*/
|
|
16
|
-
export type WebhookEndpointStatus = 'active' | 'paused'
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Generic inbound webhook endpoint domain type.
|
|
20
|
-
*
|
|
21
|
-
* Each endpoint gets a unique opaque URL (`/api/webhooks/inbound/:key`)
|
|
22
|
-
* that maps to a target workflow resource within an organization.
|
|
23
|
-
*/
|
|
24
|
-
export interface WebhookEndpoint {
|
|
25
|
-
/** UUID primary key */
|
|
26
|
-
id: string
|
|
27
|
-
/** Organization this endpoint belongs to */
|
|
28
|
-
organizationId: string
|
|
29
|
-
/**
|
|
30
|
-
* Unique opaque key used in the inbound URL.
|
|
31
|
-
* Format: `wh_` + 32 crypto-random hex chars (128 bits of entropy).
|
|
32
|
-
* This key IS the credential — it must be kept secret.
|
|
33
|
-
*/
|
|
34
|
-
key: string
|
|
35
|
-
/** User-facing label (e.g., "Zapier → Lead Intake") */
|
|
36
|
-
name: string
|
|
37
|
-
/** Optional description for the endpoint */
|
|
38
|
-
description: string | null
|
|
39
|
-
/** Target workflow resourceId to invoke on inbound request, or null if not yet assigned */
|
|
40
|
-
resourceId: string | null
|
|
41
|
-
/** Whether the endpoint is accepting requests */
|
|
42
|
-
status: WebhookEndpointStatus
|
|
43
|
-
/** Timestamp of the most recent successful inbound request, or null */
|
|
44
|
-
lastTriggeredAt: string | null
|
|
45
|
-
/** Running total of inbound requests received */
|
|
46
|
-
requestCount: number
|
|
47
|
-
/** ISO 8601 creation timestamp */
|
|
48
|
-
createdAt: string
|
|
49
|
-
/** ISO 8601 last-updated timestamp */
|
|
50
|
-
updatedAt: string
|
|
51
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Webhook Endpoint Domain Types
|
|
3
|
+
*
|
|
4
|
+
* Browser-safe domain types for generic inbound webhook endpoints.
|
|
5
|
+
* These are camelCase representations of the `webhook_endpoints` DB table.
|
|
6
|
+
*
|
|
7
|
+
* Transform from snake_case DB rows happens in the API service layer,
|
|
8
|
+
* not here (per core-package.md conventions).
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Lifecycle status of a webhook endpoint.
|
|
13
|
+
* - `active`: Endpoint accepts inbound requests and triggers the target workflow
|
|
14
|
+
* - `paused`: Endpoint exists but rejects inbound requests with 404
|
|
15
|
+
*/
|
|
16
|
+
export type WebhookEndpointStatus = 'active' | 'paused'
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Generic inbound webhook endpoint domain type.
|
|
20
|
+
*
|
|
21
|
+
* Each endpoint gets a unique opaque URL (`/api/webhooks/inbound/:key`)
|
|
22
|
+
* that maps to a target workflow resource within an organization.
|
|
23
|
+
*/
|
|
24
|
+
export interface WebhookEndpoint {
|
|
25
|
+
/** UUID primary key */
|
|
26
|
+
id: string
|
|
27
|
+
/** Organization this endpoint belongs to */
|
|
28
|
+
organizationId: string
|
|
29
|
+
/**
|
|
30
|
+
* Unique opaque key used in the inbound URL.
|
|
31
|
+
* Format: `wh_` + 32 crypto-random hex chars (128 bits of entropy).
|
|
32
|
+
* This key IS the credential — it must be kept secret.
|
|
33
|
+
*/
|
|
34
|
+
key: string
|
|
35
|
+
/** User-facing label (e.g., "Zapier → Lead Intake") */
|
|
36
|
+
name: string
|
|
37
|
+
/** Optional description for the endpoint */
|
|
38
|
+
description: string | null
|
|
39
|
+
/** Target workflow resourceId to invoke on inbound request, or null if not yet assigned */
|
|
40
|
+
resourceId: string | null
|
|
41
|
+
/** Whether the endpoint is accepting requests */
|
|
42
|
+
status: WebhookEndpointStatus
|
|
43
|
+
/** Timestamp of the most recent successful inbound request, or null */
|
|
44
|
+
lastTriggeredAt: string | null
|
|
45
|
+
/** Running total of inbound requests received */
|
|
46
|
+
requestCount: number
|
|
47
|
+
/** ISO 8601 creation timestamp */
|
|
48
|
+
createdAt: string
|
|
49
|
+
/** ISO 8601 last-updated timestamp */
|
|
50
|
+
updatedAt: string
|
|
51
|
+
}
|
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
import { z } from 'zod'
|
|
2
|
-
import { NonEmptyStringSchema } from '../../platform/utils/validation'
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Activity Log API Validation Schemas
|
|
6
|
-
*
|
|
7
|
-
* Zod schemas for Activity Log endpoints with security controls:
|
|
8
|
-
* - Mass assignment prevention (.strict() mode)
|
|
9
|
-
* - Size limits (title: 200 chars, description: 1000 chars)
|
|
10
|
-
* - Enum validation (activityType, status)
|
|
11
|
-
* - Metadata size limits (50KB)
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
// Activity type enum
|
|
15
|
-
export const ActivityTypeSchema = z.enum([
|
|
16
|
-
'workflow_execution',
|
|
17
|
-
'agent_run',
|
|
18
|
-
'hitl_action',
|
|
19
|
-
'webhook_received',
|
|
20
|
-
'webhook_executed',
|
|
21
|
-
'webhook_failed',
|
|
22
|
-
'credential_change',
|
|
23
|
-
'api_key_change',
|
|
24
|
-
'deployment_change',
|
|
25
|
-
'membership_change'
|
|
26
|
-
])
|
|
27
|
-
|
|
28
|
-
// Activity status enum
|
|
29
|
-
export const ActivityStatusSchema = z.enum(['success', 'failure', 'pending', 'approved', 'rejected', 'completed'])
|
|
30
|
-
|
|
31
|
-
// Metadata schema with size limit (50KB)
|
|
32
|
-
const MetadataSchema = z
|
|
33
|
-
.record(z.string(), z.unknown())
|
|
34
|
-
.refine((val) => JSON.stringify(val).length <= 50_000, 'Metadata exceeds 50KB limit')
|
|
35
|
-
.optional()
|
|
36
|
-
|
|
37
|
-
// POST /api/activities - Create activity
|
|
38
|
-
export const CreateActivitySchema = z
|
|
39
|
-
.object({
|
|
40
|
-
activityType: ActivityTypeSchema,
|
|
41
|
-
status: ActivityStatusSchema,
|
|
42
|
-
title: NonEmptyStringSchema.max(200),
|
|
43
|
-
description: z.string().max(1000).optional(),
|
|
44
|
-
entityType: NonEmptyStringSchema.max(100),
|
|
45
|
-
entityId: NonEmptyStringSchema.max(255),
|
|
46
|
-
entityName: z.string().max(255).optional(),
|
|
47
|
-
metadata: MetadataSchema,
|
|
48
|
-
occurredAt: z.string().datetime().optional(),
|
|
49
|
-
actorId: z.string().uuid().optional(),
|
|
50
|
-
actorType: z.enum(['user', 'system', 'api_key']).optional()
|
|
51
|
-
// NO organizationId (always from JWT/API key context)
|
|
52
|
-
})
|
|
53
|
-
.strict()
|
|
54
|
-
|
|
55
|
-
// GET /api/activities/trend - Activity trend timestamps query params
|
|
56
|
-
export const ActivityTrendQuerySchema = z
|
|
57
|
-
.object({
|
|
58
|
-
activityType: ActivityTypeSchema.optional(),
|
|
59
|
-
entityType: z.string().max(100).optional(),
|
|
60
|
-
entityId: z.string().max(255).optional(),
|
|
61
|
-
startDate: z.string().datetime().optional(),
|
|
62
|
-
endDate: z.string().datetime().optional()
|
|
63
|
-
})
|
|
64
|
-
.strict()
|
|
65
|
-
|
|
66
|
-
// GET /api/activities - List activities query params
|
|
67
|
-
export const ListActivitiesQuerySchema = z
|
|
68
|
-
.object({
|
|
69
|
-
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
70
|
-
offset: z.coerce.number().int().min(0).default(0),
|
|
71
|
-
activityType: ActivityTypeSchema.optional(),
|
|
72
|
-
entityType: z.string().max(100).optional(),
|
|
73
|
-
entityId: z.string().max(255).optional(),
|
|
74
|
-
startDate: z.string().datetime().optional(),
|
|
75
|
-
endDate: z.string().datetime().optional(),
|
|
76
|
-
status: ActivityStatusSchema.optional(),
|
|
77
|
-
search: z.string().max(200).optional()
|
|
78
|
-
})
|
|
79
|
-
.strict()
|
|
1
|
+
import { z } from 'zod'
|
|
2
|
+
import { NonEmptyStringSchema } from '../../platform/utils/validation'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Activity Log API Validation Schemas
|
|
6
|
+
*
|
|
7
|
+
* Zod schemas for Activity Log endpoints with security controls:
|
|
8
|
+
* - Mass assignment prevention (.strict() mode)
|
|
9
|
+
* - Size limits (title: 200 chars, description: 1000 chars)
|
|
10
|
+
* - Enum validation (activityType, status)
|
|
11
|
+
* - Metadata size limits (50KB)
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
// Activity type enum
|
|
15
|
+
export const ActivityTypeSchema = z.enum([
|
|
16
|
+
'workflow_execution',
|
|
17
|
+
'agent_run',
|
|
18
|
+
'hitl_action',
|
|
19
|
+
'webhook_received',
|
|
20
|
+
'webhook_executed',
|
|
21
|
+
'webhook_failed',
|
|
22
|
+
'credential_change',
|
|
23
|
+
'api_key_change',
|
|
24
|
+
'deployment_change',
|
|
25
|
+
'membership_change'
|
|
26
|
+
])
|
|
27
|
+
|
|
28
|
+
// Activity status enum
|
|
29
|
+
export const ActivityStatusSchema = z.enum(['success', 'failure', 'pending', 'approved', 'rejected', 'completed'])
|
|
30
|
+
|
|
31
|
+
// Metadata schema with size limit (50KB)
|
|
32
|
+
const MetadataSchema = z
|
|
33
|
+
.record(z.string(), z.unknown())
|
|
34
|
+
.refine((val) => JSON.stringify(val).length <= 50_000, 'Metadata exceeds 50KB limit')
|
|
35
|
+
.optional()
|
|
36
|
+
|
|
37
|
+
// POST /api/activities - Create activity
|
|
38
|
+
export const CreateActivitySchema = z
|
|
39
|
+
.object({
|
|
40
|
+
activityType: ActivityTypeSchema,
|
|
41
|
+
status: ActivityStatusSchema,
|
|
42
|
+
title: NonEmptyStringSchema.max(200),
|
|
43
|
+
description: z.string().max(1000).optional(),
|
|
44
|
+
entityType: NonEmptyStringSchema.max(100),
|
|
45
|
+
entityId: NonEmptyStringSchema.max(255),
|
|
46
|
+
entityName: z.string().max(255).optional(),
|
|
47
|
+
metadata: MetadataSchema,
|
|
48
|
+
occurredAt: z.string().datetime().optional(),
|
|
49
|
+
actorId: z.string().uuid().optional(),
|
|
50
|
+
actorType: z.enum(['user', 'system', 'api_key']).optional()
|
|
51
|
+
// NO organizationId (always from JWT/API key context)
|
|
52
|
+
})
|
|
53
|
+
.strict()
|
|
54
|
+
|
|
55
|
+
// GET /api/activities/trend - Activity trend timestamps query params
|
|
56
|
+
export const ActivityTrendQuerySchema = z
|
|
57
|
+
.object({
|
|
58
|
+
activityType: ActivityTypeSchema.optional(),
|
|
59
|
+
entityType: z.string().max(100).optional(),
|
|
60
|
+
entityId: z.string().max(255).optional(),
|
|
61
|
+
startDate: z.string().datetime().optional(),
|
|
62
|
+
endDate: z.string().datetime().optional()
|
|
63
|
+
})
|
|
64
|
+
.strict()
|
|
65
|
+
|
|
66
|
+
// GET /api/activities - List activities query params
|
|
67
|
+
export const ListActivitiesQuerySchema = z
|
|
68
|
+
.object({
|
|
69
|
+
limit: z.coerce.number().int().min(1).max(100).default(50),
|
|
70
|
+
offset: z.coerce.number().int().min(0).default(0),
|
|
71
|
+
activityType: ActivityTypeSchema.optional(),
|
|
72
|
+
entityType: z.string().max(100).optional(),
|
|
73
|
+
entityId: z.string().max(255).optional(),
|
|
74
|
+
startDate: z.string().datetime().optional(),
|
|
75
|
+
endDate: z.string().datetime().optional(),
|
|
76
|
+
status: ActivityStatusSchema.optional(),
|
|
77
|
+
search: z.string().max(200).optional()
|
|
78
|
+
})
|
|
79
|
+
.strict()
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Activity Log types and utilities
|
|
3
|
-
*
|
|
4
|
-
* Exports types for activity logging and querying
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
export * from './types'
|
|
8
|
-
export * from './api-schemas'
|
|
9
|
-
export * from './sse-events'
|
|
1
|
+
/**
|
|
2
|
+
* Activity Log types and utilities
|
|
3
|
+
*
|
|
4
|
+
* Exports types for activity logging and querying
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export * from './types'
|
|
8
|
+
export * from './api-schemas'
|
|
9
|
+
export * from './sse-events'
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Activity SSE Event Types
|
|
3
|
-
*
|
|
4
|
-
* Type-safe definitions for activity-related SSE events
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { Activity } from './types'
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Event sent when new activity is created
|
|
11
|
-
*/
|
|
12
|
-
export interface ActivityCreatedEvent {
|
|
13
|
-
type: 'activity'
|
|
14
|
-
timestamp: number
|
|
15
|
-
data: Activity
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Connection confirmation event
|
|
20
|
-
*/
|
|
21
|
-
export interface ActivityConnectedEvent {
|
|
22
|
-
type: 'connected'
|
|
23
|
-
timestamp: number
|
|
24
|
-
data?: undefined
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Union of all activity SSE events
|
|
29
|
-
*/
|
|
30
|
-
export type ActivitySSEEvent = ActivityCreatedEvent | ActivityConnectedEvent
|
|
1
|
+
/**
|
|
2
|
+
* Activity SSE Event Types
|
|
3
|
+
*
|
|
4
|
+
* Type-safe definitions for activity-related SSE events
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import type { Activity } from './types'
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Event sent when new activity is created
|
|
11
|
+
*/
|
|
12
|
+
export interface ActivityCreatedEvent {
|
|
13
|
+
type: 'activity'
|
|
14
|
+
timestamp: number
|
|
15
|
+
data: Activity
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Connection confirmation event
|
|
20
|
+
*/
|
|
21
|
+
export interface ActivityConnectedEvent {
|
|
22
|
+
type: 'connected'
|
|
23
|
+
timestamp: number
|
|
24
|
+
data?: undefined
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Union of all activity SSE events
|
|
29
|
+
*/
|
|
30
|
+
export type ActivitySSEEvent = ActivityCreatedEvent | ActivityConnectedEvent
|