@elevasis/core 0.7.1 → 0.8.2
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/dist/test-utils/index.d.ts +3122 -0
- package/dist/test-utils/index.js +386 -0
- package/package.json +6 -1
- package/src/README.md +39 -36
- package/src/__tests__/publish.test.ts +18 -13
- 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 +47 -36
- 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 +30 -138
- 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 +7 -8
- 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/published.ts +4 -0
- package/src/test-utils/rls/RLSTestContext.ts +554 -554
- package/src/test-utils/rls/index.ts +1 -1
package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-note/index.ts
CHANGED
|
@@ -1,86 +1,86 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Attio Delete Note - Native Fetch Implementation
|
|
3
|
-
*
|
|
4
|
-
* Deletes a single note by ID using native Node.js fetch API.
|
|
5
|
-
*
|
|
6
|
-
* API Endpoint: DELETE /v2/notes/{noteId}
|
|
7
|
-
* Documentation: https://docs.attio.com/rest-api/endpoint-reference/notes/delete-a-note
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { ToolingError } from '../../../../../../types'
|
|
11
|
-
import type { ExecutionContext } from '../../../../../../../base/types'
|
|
12
|
-
import { withRetry, createHttpError, DEFAULT_RETRY_POLICY } from '../../../../../../../../../platform/resilience'
|
|
13
|
-
import type { AttioCredentials, DeleteNoteParams, DeleteNoteResult } from '../utils/types'
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Delete a note by ID from Attio
|
|
17
|
-
*
|
|
18
|
-
* @param credentials - Attio API credentials (apiKey)
|
|
19
|
-
* @param params - Note ID to delete
|
|
20
|
-
* @param context - Execution context for logging
|
|
21
|
-
* @returns Deleted note ID and success status
|
|
22
|
-
* @throws ToolingError if deletion fails
|
|
23
|
-
*/
|
|
24
|
-
export async function deleteNote(
|
|
25
|
-
credentials: AttioCredentials,
|
|
26
|
-
params: DeleteNoteParams,
|
|
27
|
-
context?: ExecutionContext
|
|
28
|
-
): Promise<DeleteNoteResult> {
|
|
29
|
-
const { apiKey } = credentials
|
|
30
|
-
const { noteId } = params
|
|
31
|
-
|
|
32
|
-
if (!apiKey) {
|
|
33
|
-
throw new ToolingError('credentials_invalid', 'Attio API credentials must include apiKey', {
|
|
34
|
-
integration: 'attio',
|
|
35
|
-
method: 'deleteNote'
|
|
36
|
-
})
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
if (!noteId) {
|
|
40
|
-
throw new ToolingError('validation_error', 'noteId is required', {
|
|
41
|
-
integration: 'attio',
|
|
42
|
-
method: 'deleteNote',
|
|
43
|
-
params: { noteId }
|
|
44
|
-
})
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const url = `https://api.attio.com/v2/notes/${encodeURIComponent(noteId)}`
|
|
48
|
-
|
|
49
|
-
try {
|
|
50
|
-
await withRetry(async () => {
|
|
51
|
-
const response = await fetch(url, {
|
|
52
|
-
method: 'DELETE',
|
|
53
|
-
headers: {
|
|
54
|
-
Authorization: `Bearer ${apiKey}`,
|
|
55
|
-
Accept: 'application/json'
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
|
|
59
|
-
if (!response.ok) {
|
|
60
|
-
throw await createHttpError(response, {
|
|
61
|
-
integration: 'attio',
|
|
62
|
-
method: 'deleteNote',
|
|
63
|
-
organizationId: context?.organizationId
|
|
64
|
-
})
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return await response.json()
|
|
68
|
-
}, DEFAULT_RETRY_POLICY)
|
|
69
|
-
|
|
70
|
-
if (context?.logger) {
|
|
71
|
-
context.logger.info(`[AttioAdapter] Note deleted: noteId=${noteId} executionId=${context.executionId}`)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return { noteId, success: true }
|
|
75
|
-
} catch (error) {
|
|
76
|
-
if (error instanceof ToolingError) throw error
|
|
77
|
-
|
|
78
|
-
throw new ToolingError('api_error', `Failed to delete Attio note: ${(error as Error).message}`, {
|
|
79
|
-
integration: 'attio',
|
|
80
|
-
method: 'deleteNote',
|
|
81
|
-
organizationId: context?.organizationId,
|
|
82
|
-
params: { noteId },
|
|
83
|
-
originalError: error
|
|
84
|
-
})
|
|
85
|
-
}
|
|
86
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Attio Delete Note - Native Fetch Implementation
|
|
3
|
+
*
|
|
4
|
+
* Deletes a single note by ID using native Node.js fetch API.
|
|
5
|
+
*
|
|
6
|
+
* API Endpoint: DELETE /v2/notes/{noteId}
|
|
7
|
+
* Documentation: https://docs.attio.com/rest-api/endpoint-reference/notes/delete-a-note
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { ToolingError } from '../../../../../../types'
|
|
11
|
+
import type { ExecutionContext } from '../../../../../../../base/types'
|
|
12
|
+
import { withRetry, createHttpError, DEFAULT_RETRY_POLICY } from '../../../../../../../../../platform/resilience'
|
|
13
|
+
import type { AttioCredentials, DeleteNoteParams, DeleteNoteResult } from '../utils/types'
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Delete a note by ID from Attio
|
|
17
|
+
*
|
|
18
|
+
* @param credentials - Attio API credentials (apiKey)
|
|
19
|
+
* @param params - Note ID to delete
|
|
20
|
+
* @param context - Execution context for logging
|
|
21
|
+
* @returns Deleted note ID and success status
|
|
22
|
+
* @throws ToolingError if deletion fails
|
|
23
|
+
*/
|
|
24
|
+
export async function deleteNote(
|
|
25
|
+
credentials: AttioCredentials,
|
|
26
|
+
params: DeleteNoteParams,
|
|
27
|
+
context?: ExecutionContext
|
|
28
|
+
): Promise<DeleteNoteResult> {
|
|
29
|
+
const { apiKey } = credentials
|
|
30
|
+
const { noteId } = params
|
|
31
|
+
|
|
32
|
+
if (!apiKey) {
|
|
33
|
+
throw new ToolingError('credentials_invalid', 'Attio API credentials must include apiKey', {
|
|
34
|
+
integration: 'attio',
|
|
35
|
+
method: 'deleteNote'
|
|
36
|
+
})
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (!noteId) {
|
|
40
|
+
throw new ToolingError('validation_error', 'noteId is required', {
|
|
41
|
+
integration: 'attio',
|
|
42
|
+
method: 'deleteNote',
|
|
43
|
+
params: { noteId }
|
|
44
|
+
})
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const url = `https://api.attio.com/v2/notes/${encodeURIComponent(noteId)}`
|
|
48
|
+
|
|
49
|
+
try {
|
|
50
|
+
await withRetry(async () => {
|
|
51
|
+
const response = await fetch(url, {
|
|
52
|
+
method: 'DELETE',
|
|
53
|
+
headers: {
|
|
54
|
+
Authorization: `Bearer ${apiKey}`,
|
|
55
|
+
Accept: 'application/json'
|
|
56
|
+
}
|
|
57
|
+
})
|
|
58
|
+
|
|
59
|
+
if (!response.ok) {
|
|
60
|
+
throw await createHttpError(response, {
|
|
61
|
+
integration: 'attio',
|
|
62
|
+
method: 'deleteNote',
|
|
63
|
+
organizationId: context?.organizationId
|
|
64
|
+
})
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return await response.json()
|
|
68
|
+
}, DEFAULT_RETRY_POLICY)
|
|
69
|
+
|
|
70
|
+
if (context?.logger) {
|
|
71
|
+
context.logger.info(`[AttioAdapter] Note deleted: noteId=${noteId} executionId=${context.executionId}`)
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
return { noteId, success: true }
|
|
75
|
+
} catch (error) {
|
|
76
|
+
if (error instanceof ToolingError) throw error
|
|
77
|
+
|
|
78
|
+
throw new ToolingError('api_error', `Failed to delete Attio note: ${(error as Error).message}`, {
|
|
79
|
+
integration: 'attio',
|
|
80
|
+
method: 'deleteNote',
|
|
81
|
+
organizationId: context?.organizationId,
|
|
82
|
+
params: { noteId },
|
|
83
|
+
originalError: error
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
}
|
package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-record/index.ts
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Attio Delete Record - Native Fetch Implementation
|
|
3
|
-
*
|
|
4
|
-
* Deletes a single record by ID from an Attio object using native Node.js fetch API.
|
|
5
|
-
* Supports all object types: people, companies, deals, and custom objects.
|
|
6
|
-
*
|
|
7
|
-
* API Endpoint: DELETE /v2/objects/{object}/records/{recordId}
|
|
8
|
-
* Documentation: https://docs.attio.com/rest-api/endpoint-reference/records/delete-a-record
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { ToolingError } from '../../../../../../types'
|
|
12
|
-
import { withRetry, createHttpError, DEFAULT_RETRY_POLICY } from '../../../../../../../../../platform/resilience'
|
|
13
|
-
import type { ExecutionContext } from '../../../../../../../base/types'
|
|
14
|
-
import type { AttioCredentials, DeleteRecordParams, DeleteRecordResult } from '../utils/types'
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Delete a single record by ID from an Attio object
|
|
18
|
-
*
|
|
19
|
-
* Uses native Node.js fetch API with retry logic for resilience.
|
|
20
|
-
*
|
|
21
|
-
* @param credentials - Attio API credentials (Bearer token)
|
|
22
|
-
* @param params - Object type and record ID
|
|
23
|
-
* @param context - Execution context for logging
|
|
24
|
-
* @returns Success status with deleted record ID
|
|
25
|
-
* @throws ToolingError on API errors
|
|
26
|
-
*/
|
|
27
|
-
export async function deleteRecord(
|
|
28
|
-
credentials: AttioCredentials,
|
|
29
|
-
params: DeleteRecordParams,
|
|
30
|
-
context?: ExecutionContext
|
|
31
|
-
): Promise<DeleteRecordResult> {
|
|
32
|
-
const { object, recordId } = params
|
|
33
|
-
const { apiKey } = credentials
|
|
34
|
-
|
|
35
|
-
// Validate credentials
|
|
36
|
-
if (!apiKey) {
|
|
37
|
-
throw new ToolingError('credentials_invalid', 'Missing Attio API key', {
|
|
38
|
-
integration: 'attio',
|
|
39
|
-
method: 'deleteRecord'
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Validate parameters
|
|
44
|
-
if (!object || !recordId) {
|
|
45
|
-
throw new ToolingError('validation_error', 'Missing required parameters: object and recordId', {
|
|
46
|
-
integration: 'attio',
|
|
47
|
-
method: 'deleteRecord',
|
|
48
|
-
params: { object, recordId }
|
|
49
|
-
})
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Build API URL
|
|
53
|
-
const url = `https://api.attio.com/v2/objects/${object}/records/${recordId}`
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
// Execute with retry logic
|
|
57
|
-
await withRetry(async () => {
|
|
58
|
-
const response = await fetch(url, {
|
|
59
|
-
method: 'DELETE',
|
|
60
|
-
headers: {
|
|
61
|
-
Authorization: `Bearer ${apiKey}`,
|
|
62
|
-
Accept: 'application/json'
|
|
63
|
-
}
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
// Handle HTTP errors
|
|
67
|
-
if (!response.ok) {
|
|
68
|
-
throw await createHttpError(response, {
|
|
69
|
-
integration: 'attio',
|
|
70
|
-
method: 'deleteRecord',
|
|
71
|
-
organizationId: context?.organizationId
|
|
72
|
-
})
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Successful deletion returns empty object {}
|
|
76
|
-
return await response.json()
|
|
77
|
-
}, DEFAULT_RETRY_POLICY)
|
|
78
|
-
|
|
79
|
-
// Log success
|
|
80
|
-
if (context?.logger) {
|
|
81
|
-
context.logger.info(
|
|
82
|
-
`[AttioAdapter] Record deleted: object=${object} recordId=${recordId} executionId=${context.executionId}`
|
|
83
|
-
)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Return success result
|
|
87
|
-
return {
|
|
88
|
-
recordId,
|
|
89
|
-
success: true
|
|
90
|
-
}
|
|
91
|
-
} catch (error) {
|
|
92
|
-
// Re-throw ToolingError as-is
|
|
93
|
-
if (error instanceof ToolingError) {
|
|
94
|
-
throw error
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Wrap unknown errors
|
|
98
|
-
throw new ToolingError('api_error', `Failed to delete Attio record: ${(error as Error).message}`, {
|
|
99
|
-
integration: 'attio',
|
|
100
|
-
method: 'deleteRecord',
|
|
101
|
-
organizationId: context?.organizationId,
|
|
102
|
-
params: { object, recordId }
|
|
103
|
-
})
|
|
104
|
-
}
|
|
105
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Attio Delete Record - Native Fetch Implementation
|
|
3
|
+
*
|
|
4
|
+
* Deletes a single record by ID from an Attio object using native Node.js fetch API.
|
|
5
|
+
* Supports all object types: people, companies, deals, and custom objects.
|
|
6
|
+
*
|
|
7
|
+
* API Endpoint: DELETE /v2/objects/{object}/records/{recordId}
|
|
8
|
+
* Documentation: https://docs.attio.com/rest-api/endpoint-reference/records/delete-a-record
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { ToolingError } from '../../../../../../types'
|
|
12
|
+
import { withRetry, createHttpError, DEFAULT_RETRY_POLICY } from '../../../../../../../../../platform/resilience'
|
|
13
|
+
import type { ExecutionContext } from '../../../../../../../base/types'
|
|
14
|
+
import type { AttioCredentials, DeleteRecordParams, DeleteRecordResult } from '../utils/types'
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Delete a single record by ID from an Attio object
|
|
18
|
+
*
|
|
19
|
+
* Uses native Node.js fetch API with retry logic for resilience.
|
|
20
|
+
*
|
|
21
|
+
* @param credentials - Attio API credentials (Bearer token)
|
|
22
|
+
* @param params - Object type and record ID
|
|
23
|
+
* @param context - Execution context for logging
|
|
24
|
+
* @returns Success status with deleted record ID
|
|
25
|
+
* @throws ToolingError on API errors
|
|
26
|
+
*/
|
|
27
|
+
export async function deleteRecord(
|
|
28
|
+
credentials: AttioCredentials,
|
|
29
|
+
params: DeleteRecordParams,
|
|
30
|
+
context?: ExecutionContext
|
|
31
|
+
): Promise<DeleteRecordResult> {
|
|
32
|
+
const { object, recordId } = params
|
|
33
|
+
const { apiKey } = credentials
|
|
34
|
+
|
|
35
|
+
// Validate credentials
|
|
36
|
+
if (!apiKey) {
|
|
37
|
+
throw new ToolingError('credentials_invalid', 'Missing Attio API key', {
|
|
38
|
+
integration: 'attio',
|
|
39
|
+
method: 'deleteRecord'
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Validate parameters
|
|
44
|
+
if (!object || !recordId) {
|
|
45
|
+
throw new ToolingError('validation_error', 'Missing required parameters: object and recordId', {
|
|
46
|
+
integration: 'attio',
|
|
47
|
+
method: 'deleteRecord',
|
|
48
|
+
params: { object, recordId }
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Build API URL
|
|
53
|
+
const url = `https://api.attio.com/v2/objects/${object}/records/${recordId}`
|
|
54
|
+
|
|
55
|
+
try {
|
|
56
|
+
// Execute with retry logic
|
|
57
|
+
await withRetry(async () => {
|
|
58
|
+
const response = await fetch(url, {
|
|
59
|
+
method: 'DELETE',
|
|
60
|
+
headers: {
|
|
61
|
+
Authorization: `Bearer ${apiKey}`,
|
|
62
|
+
Accept: 'application/json'
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
// Handle HTTP errors
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
throw await createHttpError(response, {
|
|
69
|
+
integration: 'attio',
|
|
70
|
+
method: 'deleteRecord',
|
|
71
|
+
organizationId: context?.organizationId
|
|
72
|
+
})
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Successful deletion returns empty object {}
|
|
76
|
+
return await response.json()
|
|
77
|
+
}, DEFAULT_RETRY_POLICY)
|
|
78
|
+
|
|
79
|
+
// Log success
|
|
80
|
+
if (context?.logger) {
|
|
81
|
+
context.logger.info(
|
|
82
|
+
`[AttioAdapter] Record deleted: object=${object} recordId=${recordId} executionId=${context.executionId}`
|
|
83
|
+
)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Return success result
|
|
87
|
+
return {
|
|
88
|
+
recordId,
|
|
89
|
+
success: true
|
|
90
|
+
}
|
|
91
|
+
} catch (error) {
|
|
92
|
+
// Re-throw ToolingError as-is
|
|
93
|
+
if (error instanceof ToolingError) {
|
|
94
|
+
throw error
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Wrap unknown errors
|
|
98
|
+
throw new ToolingError('api_error', `Failed to delete Attio record: ${(error as Error).message}`, {
|
|
99
|
+
integration: 'attio',
|
|
100
|
+
method: 'deleteRecord',
|
|
101
|
+
organizationId: context?.organizationId,
|
|
102
|
+
params: { object, recordId }
|
|
103
|
+
})
|
|
104
|
+
}
|
|
105
|
+
}
|
package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.ts
CHANGED
|
@@ -1,118 +1,118 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Attio Get Record - Native Fetch Implementation
|
|
3
|
-
*
|
|
4
|
-
* Fetches a single record by ID from an Attio object using native Node.js fetch API.
|
|
5
|
-
* Supports all object types: people, companies, deals, and custom objects.
|
|
6
|
-
*
|
|
7
|
-
* API Endpoint: GET /v2/objects/{object}/records/{recordId}
|
|
8
|
-
* Documentation: https://developers.attio.com/reference/get-record
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import { ToolingError } from '../../../../../../types'
|
|
12
|
-
import { withRetry, createHttpError, DEFAULT_RETRY_POLICY } from '../../../../../../../../../platform/resilience'
|
|
13
|
-
import type { ExecutionContext } from '../../../../../../../base/types'
|
|
14
|
-
import type { AttioCredentials, GetRecordParams, GetRecordResult, AttioRecordResponse } from '../utils/types'
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Get a single record by ID from an Attio object
|
|
18
|
-
*
|
|
19
|
-
* Uses native Node.js fetch API with retry logic for resilience.
|
|
20
|
-
*
|
|
21
|
-
* @param credentials - Attio API credentials (Bearer token)
|
|
22
|
-
* @param params - Object type and record ID
|
|
23
|
-
* @param context - Execution context for logging
|
|
24
|
-
* @returns Record data with ID, values, createdAt, and webUrl
|
|
25
|
-
* @throws ToolingError on API errors
|
|
26
|
-
*/
|
|
27
|
-
export async function getRecord(
|
|
28
|
-
credentials: AttioCredentials,
|
|
29
|
-
params: GetRecordParams,
|
|
30
|
-
context?: ExecutionContext
|
|
31
|
-
): Promise<GetRecordResult> {
|
|
32
|
-
const { object, recordId } = params
|
|
33
|
-
const { apiKey } = credentials
|
|
34
|
-
|
|
35
|
-
// Validate credentials
|
|
36
|
-
if (!apiKey) {
|
|
37
|
-
throw new ToolingError('credentials_invalid', 'Missing Attio API key', {
|
|
38
|
-
integration: 'attio',
|
|
39
|
-
method: 'getRecord'
|
|
40
|
-
})
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
// Validate parameters
|
|
44
|
-
if (!object || !recordId) {
|
|
45
|
-
throw new ToolingError('validation_error', 'Missing required parameters: object and recordId', {
|
|
46
|
-
integration: 'attio',
|
|
47
|
-
method: 'getRecord',
|
|
48
|
-
params: { object, recordId }
|
|
49
|
-
})
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
// Build API URL
|
|
53
|
-
const url = `https://api.attio.com/v2/objects/${object}/records/${recordId}`
|
|
54
|
-
|
|
55
|
-
try {
|
|
56
|
-
// Execute with retry logic
|
|
57
|
-
const data = await withRetry(async () => {
|
|
58
|
-
const response = await fetch(url, {
|
|
59
|
-
method: 'GET',
|
|
60
|
-
headers: {
|
|
61
|
-
Authorization: `Bearer ${apiKey}`,
|
|
62
|
-
Accept: 'application/json'
|
|
63
|
-
}
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
// Handle HTTP errors
|
|
67
|
-
if (!response.ok) {
|
|
68
|
-
throw await createHttpError(response, {
|
|
69
|
-
integration: 'attio',
|
|
70
|
-
method: 'getRecord',
|
|
71
|
-
organizationId: context?.organizationId
|
|
72
|
-
})
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Parse response
|
|
76
|
-
const responseData = (await response.json()) as AttioRecordResponse
|
|
77
|
-
|
|
78
|
-
// Validate response structure
|
|
79
|
-
if (!responseData.data || !responseData.data.id || !responseData.data.id.record_id) {
|
|
80
|
-
throw new ToolingError('api_error', 'Invalid response format: missing record ID', {
|
|
81
|
-
integration: 'attio',
|
|
82
|
-
method: 'getRecord',
|
|
83
|
-
responseData
|
|
84
|
-
})
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
return responseData
|
|
88
|
-
}, DEFAULT_RETRY_POLICY)
|
|
89
|
-
|
|
90
|
-
// Log success
|
|
91
|
-
if (context?.logger) {
|
|
92
|
-
context.logger.info(
|
|
93
|
-
`[AttioAdapter] Record retrieved: object=${object} recordId=${data.data.id.record_id} executionId=${context.executionId}`
|
|
94
|
-
)
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
// Transform to result format
|
|
98
|
-
return {
|
|
99
|
-
id: data.data.id.record_id,
|
|
100
|
-
values: data.data.values,
|
|
101
|
-
createdAt: data.data.created_at,
|
|
102
|
-
webUrl: data.data.web_url
|
|
103
|
-
}
|
|
104
|
-
} catch (error) {
|
|
105
|
-
// Re-throw ToolingError as-is
|
|
106
|
-
if (error instanceof ToolingError) {
|
|
107
|
-
throw error
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// Wrap unknown errors
|
|
111
|
-
throw new ToolingError('api_error', `Failed to get Attio record: ${(error as Error).message}`, {
|
|
112
|
-
integration: 'attio',
|
|
113
|
-
method: 'getRecord',
|
|
114
|
-
organizationId: context?.organizationId,
|
|
115
|
-
params: { object, recordId }
|
|
116
|
-
})
|
|
117
|
-
}
|
|
118
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Attio Get Record - Native Fetch Implementation
|
|
3
|
+
*
|
|
4
|
+
* Fetches a single record by ID from an Attio object using native Node.js fetch API.
|
|
5
|
+
* Supports all object types: people, companies, deals, and custom objects.
|
|
6
|
+
*
|
|
7
|
+
* API Endpoint: GET /v2/objects/{object}/records/{recordId}
|
|
8
|
+
* Documentation: https://developers.attio.com/reference/get-record
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { ToolingError } from '../../../../../../types'
|
|
12
|
+
import { withRetry, createHttpError, DEFAULT_RETRY_POLICY } from '../../../../../../../../../platform/resilience'
|
|
13
|
+
import type { ExecutionContext } from '../../../../../../../base/types'
|
|
14
|
+
import type { AttioCredentials, GetRecordParams, GetRecordResult, AttioRecordResponse } from '../utils/types'
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Get a single record by ID from an Attio object
|
|
18
|
+
*
|
|
19
|
+
* Uses native Node.js fetch API with retry logic for resilience.
|
|
20
|
+
*
|
|
21
|
+
* @param credentials - Attio API credentials (Bearer token)
|
|
22
|
+
* @param params - Object type and record ID
|
|
23
|
+
* @param context - Execution context for logging
|
|
24
|
+
* @returns Record data with ID, values, createdAt, and webUrl
|
|
25
|
+
* @throws ToolingError on API errors
|
|
26
|
+
*/
|
|
27
|
+
export async function getRecord(
|
|
28
|
+
credentials: AttioCredentials,
|
|
29
|
+
params: GetRecordParams,
|
|
30
|
+
context?: ExecutionContext
|
|
31
|
+
): Promise<GetRecordResult> {
|
|
32
|
+
const { object, recordId } = params
|
|
33
|
+
const { apiKey } = credentials
|
|
34
|
+
|
|
35
|
+
// Validate credentials
|
|
36
|
+
if (!apiKey) {
|
|
37
|
+
throw new ToolingError('credentials_invalid', 'Missing Attio API key', {
|
|
38
|
+
integration: 'attio',
|
|
39
|
+
method: 'getRecord'
|
|
40
|
+
})
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Validate parameters
|
|
44
|
+
if (!object || !recordId) {
|
|
45
|
+
throw new ToolingError('validation_error', 'Missing required parameters: object and recordId', {
|
|
46
|
+
integration: 'attio',
|
|
47
|
+
method: 'getRecord',
|
|
48
|
+
params: { object, recordId }
|
|
49
|
+
})
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// Build API URL
|
|
53
|
+
const url = `https://api.attio.com/v2/objects/${object}/records/${recordId}`
|
|
54
|
+
|
|
55
|
+
try {
|
|
56
|
+
// Execute with retry logic
|
|
57
|
+
const data = await withRetry(async () => {
|
|
58
|
+
const response = await fetch(url, {
|
|
59
|
+
method: 'GET',
|
|
60
|
+
headers: {
|
|
61
|
+
Authorization: `Bearer ${apiKey}`,
|
|
62
|
+
Accept: 'application/json'
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
|
|
66
|
+
// Handle HTTP errors
|
|
67
|
+
if (!response.ok) {
|
|
68
|
+
throw await createHttpError(response, {
|
|
69
|
+
integration: 'attio',
|
|
70
|
+
method: 'getRecord',
|
|
71
|
+
organizationId: context?.organizationId
|
|
72
|
+
})
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Parse response
|
|
76
|
+
const responseData = (await response.json()) as AttioRecordResponse
|
|
77
|
+
|
|
78
|
+
// Validate response structure
|
|
79
|
+
if (!responseData.data || !responseData.data.id || !responseData.data.id.record_id) {
|
|
80
|
+
throw new ToolingError('api_error', 'Invalid response format: missing record ID', {
|
|
81
|
+
integration: 'attio',
|
|
82
|
+
method: 'getRecord',
|
|
83
|
+
responseData
|
|
84
|
+
})
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return responseData
|
|
88
|
+
}, DEFAULT_RETRY_POLICY)
|
|
89
|
+
|
|
90
|
+
// Log success
|
|
91
|
+
if (context?.logger) {
|
|
92
|
+
context.logger.info(
|
|
93
|
+
`[AttioAdapter] Record retrieved: object=${object} recordId=${data.data.id.record_id} executionId=${context.executionId}`
|
|
94
|
+
)
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Transform to result format
|
|
98
|
+
return {
|
|
99
|
+
id: data.data.id.record_id,
|
|
100
|
+
values: data.data.values,
|
|
101
|
+
createdAt: data.data.created_at,
|
|
102
|
+
webUrl: data.data.web_url
|
|
103
|
+
}
|
|
104
|
+
} catch (error) {
|
|
105
|
+
// Re-throw ToolingError as-is
|
|
106
|
+
if (error instanceof ToolingError) {
|
|
107
|
+
throw error
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Wrap unknown errors
|
|
111
|
+
throw new ToolingError('api_error', `Failed to get Attio record: ${(error as Error).message}`, {
|
|
112
|
+
integration: 'attio',
|
|
113
|
+
method: 'getRecord',
|
|
114
|
+
organizationId: context?.organizationId,
|
|
115
|
+
params: { object, recordId }
|
|
116
|
+
})
|
|
117
|
+
}
|
|
118
|
+
}
|