@elevasis/core 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +435 -0
- package/dist/index.js +403 -0
- package/dist/organization-model/index.d.ts +435 -0
- package/dist/organization-model/index.js +403 -0
- package/package.json +62 -0
- package/src/README.md +34 -0
- package/src/__tests__/observability-exports.test.ts +36 -0
- package/src/__tests__/publish.test.ts +18 -0
- package/src/__tests__/template-foundations-compatibility.test.ts +34 -0
- package/src/auth/index.ts +8 -0
- package/src/auth/multi-tenancy/credentials/README.md +38 -0
- package/src/auth/multi-tenancy/credentials/__tests__/encryption.test.ts +216 -0
- package/src/auth/multi-tenancy/credentials/__tests__/service.test.ts +174 -0
- package/src/auth/multi-tenancy/credentials/index.ts +6 -0
- package/src/auth/multi-tenancy/credentials/server/encryption.ts +39 -0
- package/src/auth/multi-tenancy/credentials/server/service.ts +60 -0
- package/src/auth/multi-tenancy/index.ts +17 -0
- package/src/auth/multi-tenancy/invitations/__tests__/invitation.test.ts +237 -0
- package/src/auth/multi-tenancy/invitations/api-schemas.ts +107 -0
- package/src/auth/multi-tenancy/invitations/index.ts +38 -0
- package/src/auth/multi-tenancy/invitations/invitation.ts +86 -0
- package/src/auth/multi-tenancy/invitations/server/index.ts +25 -0
- package/src/auth/multi-tenancy/invitations/server/transforms.ts +24 -0
- package/src/auth/multi-tenancy/invitations/server/workos.ts +24 -0
- package/src/auth/multi-tenancy/invitations/supabase.ts +50 -0
- package/src/auth/multi-tenancy/memberships/__tests__/membership.test.ts +227 -0
- package/src/auth/multi-tenancy/memberships/__tests__/supabase-transforms.test.ts +88 -0
- package/src/auth/multi-tenancy/memberships/__tests__/workos-transforms.test.ts +139 -0
- package/src/auth/multi-tenancy/memberships/api-schemas.ts +126 -0
- package/src/auth/multi-tenancy/memberships/index.ts +22 -0
- package/src/auth/multi-tenancy/memberships/membership.ts +138 -0
- package/src/auth/multi-tenancy/memberships/server/index.ts +15 -0
- package/src/auth/multi-tenancy/memberships/server/transforms.ts +32 -0
- package/src/auth/multi-tenancy/memberships/server/workos.ts +21 -0
- package/src/auth/multi-tenancy/memberships/supabase.ts +46 -0
- package/src/auth/multi-tenancy/organizations/__tests__/organization.test.ts +249 -0
- package/src/auth/multi-tenancy/organizations/api-schemas.ts +128 -0
- package/src/auth/multi-tenancy/organizations/index.ts +23 -0
- package/src/auth/multi-tenancy/organizations/organization.ts +25 -0
- package/src/auth/multi-tenancy/organizations/server/index.ts +10 -0
- package/src/auth/multi-tenancy/organizations/server/transforms.ts +35 -0
- package/src/auth/multi-tenancy/organizations/server/workos.ts +20 -0
- package/src/auth/multi-tenancy/types.ts +89 -0
- package/src/auth/multi-tenancy/users/__tests__/user.test.ts +208 -0
- package/src/auth/multi-tenancy/users/api-schemas.ts +194 -0
- package/src/auth/multi-tenancy/users/index.ts +28 -0
- package/src/auth/multi-tenancy/users/server/index.ts +19 -0
- package/src/auth/multi-tenancy/users/server/transforms.ts +21 -0
- package/src/auth/multi-tenancy/users/server/workos.ts +16 -0
- package/src/auth/multi-tenancy/users/user.ts +65 -0
- package/src/business/acquisition/api-schemas.ts +759 -0
- package/src/business/acquisition/index.ts +109 -0
- package/src/business/acquisition/types.ts +400 -0
- package/src/business/crm/api-schemas.ts +75 -0
- package/src/business/delivery/index.ts +1 -0
- package/src/business/delivery/types.ts +89 -0
- package/src/business/index.ts +12 -0
- package/src/business/pdf/assets/ElevasisLogo.png +0 -0
- package/src/business/pdf/browser/image-utils.ts +74 -0
- package/src/business/pdf/browser/index.ts +16 -0
- package/src/business/pdf/browser/pdfmake-browser.ts +229 -0
- package/src/business/pdf/index.ts +10 -0
- package/src/business/pdf/sections/acceptance.ts +112 -0
- package/src/business/pdf/sections/automation.ts +56 -0
- package/src/business/pdf/sections/cover.ts +51 -0
- package/src/business/pdf/sections/index.ts +57 -0
- package/src/business/pdf/sections/investment.ts +69 -0
- package/src/business/pdf/sections/proposal-document.ts +200 -0
- package/src/business/pdf/sections/summary-investment.ts +124 -0
- package/src/business/pdf/sections/summary.ts +55 -0
- package/src/business/pdf/sections/table-summary.ts +59 -0
- package/src/business/pdf/sections/types.ts +124 -0
- package/src/business/pdf/server/__tests__/pdfmake-test.ts +219 -0
- package/src/business/pdf/server/index.ts +21 -0
- package/src/business/pdf/server/pdfmake-service.ts +237 -0
- package/src/business/pdf/server/themes/default.ts +8 -0
- package/src/business/pdf/server/themes/index.ts +9 -0
- package/src/business/pdf/server/themes/types.ts +8 -0
- package/src/business/pdf/shared/convert.ts +514 -0
- package/src/business/pdf/shared/index.ts +12 -0
- package/src/business/pdf/themes.ts +78 -0
- package/src/business/pdf/types.ts +272 -0
- package/src/business/seo/__tests__/linking.test.ts +549 -0
- package/src/business/seo/__tests__/types.test.ts +404 -0
- package/src/business/seo/index.ts +2 -0
- package/src/business/seo/linking.ts +281 -0
- package/src/business/seo/types.ts +199 -0
- package/src/commands/index.ts +8 -0
- package/src/commands/queue/index.ts +3 -0
- package/src/commands/queue/schemas.test.ts +593 -0
- package/src/commands/queue/schemas.ts +125 -0
- package/src/commands/queue/sse-events.ts +61 -0
- package/src/commands/queue/types/action.ts +52 -0
- package/src/commands/queue/types/checkpoint.ts +44 -0
- package/src/commands/queue/types/index.ts +7 -0
- package/src/commands/queue/types/task.ts +116 -0
- package/src/commands/queue/types.ts +14 -0
- package/src/content/distribution-metadata.ts +61 -0
- package/src/content/index.ts +10 -0
- package/src/deployments/index.ts +22 -0
- package/src/execution/calibration/__tests__/schemas.test.ts +320 -0
- package/src/execution/calibration/index.ts +3 -0
- package/src/execution/calibration/schemas.ts +121 -0
- package/src/execution/calibration/sse-events.ts +125 -0
- package/src/execution/calibration/types.ts +190 -0
- package/src/execution/core/__tests__/api-schemas.test.ts +667 -0
- package/src/execution/core/__tests__/archived-logs.test.ts +72 -0
- package/src/execution/core/api-schemas.ts +312 -0
- package/src/execution/core/index.ts +11 -0
- package/src/execution/core/resource-validator.test.ts +63 -0
- package/src/execution/core/runner-types.ts +80 -0
- package/src/execution/core/server/environment.ts +31 -0
- package/src/execution/core/sse-executions.ts +119 -0
- package/src/execution/core/types.ts +29 -0
- package/src/execution/engine/__tests__/fixtures/index.ts +2 -0
- package/src/execution/engine/__tests__/fixtures/mock-scenarios.ts +60 -0
- package/src/execution/engine/__tests__/fixtures/test-agents.ts +85 -0
- package/src/execution/engine/__tests__/integration/agent-framework.integration.test.ts +1031 -0
- package/src/execution/engine/__tests__/timeout.test.ts +565 -0
- package/src/execution/engine/agent/__tests__/errors.test.ts +508 -0
- package/src/execution/engine/agent/actions/__tests__/processor.test.ts +531 -0
- package/src/execution/engine/agent/actions/executor.ts +205 -0
- package/src/execution/engine/agent/actions/navigate-knowledge-executor.ts +230 -0
- package/src/execution/engine/agent/actions/processor.ts +116 -0
- package/src/execution/engine/agent/actions/types.ts +70 -0
- package/src/execution/engine/agent/core/__tests__/agent.test.ts +614 -0
- package/src/execution/engine/agent/core/__tests__/error-passthrough.test.ts +134 -0
- package/src/execution/engine/agent/core/agent.ts +810 -0
- package/src/execution/engine/agent/core/types.ts +155 -0
- package/src/execution/engine/agent/errors.ts +251 -0
- package/src/execution/engine/agent/index.ts +78 -0
- package/src/execution/engine/agent/knowledge-map/__tests__/navigate-knowledge-executor.test.ts +580 -0
- package/src/execution/engine/agent/knowledge-map/__tests__/utils.test.ts +622 -0
- package/src/execution/engine/agent/knowledge-map/types.ts +106 -0
- package/src/execution/engine/agent/knowledge-map/utils.ts +101 -0
- package/src/execution/engine/agent/memory/__tests__/domains.test.ts +72 -0
- package/src/execution/engine/agent/memory/__tests__/manager.test.ts +754 -0
- package/src/execution/engine/agent/memory/__tests__/utils.test.ts +285 -0
- package/src/execution/engine/agent/memory/domains.ts +99 -0
- package/src/execution/engine/agent/memory/manager.ts +365 -0
- package/src/execution/engine/agent/memory/processor.ts +66 -0
- package/src/execution/engine/agent/memory/types.ts +90 -0
- package/src/execution/engine/agent/memory/utils.ts +134 -0
- package/src/execution/engine/agent/observability/logging.ts +467 -0
- package/src/execution/engine/agent/observability/types.ts +64 -0
- package/src/execution/engine/agent/reasoning/__tests__/request-builder.test.ts +209 -0
- package/src/execution/engine/agent/reasoning/adapters/agent-adapter-helpers.ts +349 -0
- package/src/execution/engine/agent/reasoning/processor.ts +92 -0
- package/src/execution/engine/agent/reasoning/prompt-sections/base-actions.ts +134 -0
- package/src/execution/engine/agent/reasoning/prompt-sections/completion.ts +49 -0
- package/src/execution/engine/agent/reasoning/prompt-sections/knowledge-map.ts +93 -0
- package/src/execution/engine/agent/reasoning/prompt-sections/memory.ts +65 -0
- package/src/execution/engine/agent/reasoning/prompt-sections/security.ts +32 -0
- package/src/execution/engine/agent/reasoning/prompt-sections/tools.ts +44 -0
- package/src/execution/engine/agent/reasoning/request-builder.ts +169 -0
- package/src/execution/engine/agent/reasoning/types.ts +18 -0
- package/src/execution/engine/base/__tests__/errors.test.ts +246 -0
- package/src/execution/engine/base/__tests__/serialization.test.ts +670 -0
- package/src/execution/engine/base/__tests__/utils.test.ts +45 -0
- package/src/execution/engine/base/errors.ts +118 -0
- package/src/execution/engine/base/index.ts +2 -0
- package/src/execution/engine/base/logging.ts +31 -0
- package/src/execution/engine/base/serialization.ts +324 -0
- package/src/execution/engine/base/types.ts +126 -0
- package/src/execution/engine/base/utils.ts +41 -0
- package/src/execution/engine/index.ts +440 -0
- package/src/execution/engine/interface/index.ts +1 -0
- package/src/execution/engine/interface/types.ts +62 -0
- package/src/execution/engine/llm/__tests__/errors.test.ts +318 -0
- package/src/execution/engine/llm/__tests__/input-sanitizer.test.ts +286 -0
- package/src/execution/engine/llm/__tests__/model-info.test.ts +50 -0
- package/src/execution/engine/llm/__tests__/model-validation.test.ts +321 -0
- package/src/execution/engine/llm/__tests__/response-schema-validator.test.ts +115 -0
- package/src/execution/engine/llm/adapters/__tests__/adapter-factory.test.ts +375 -0
- package/src/execution/engine/llm/adapters/__tests__/anthropic-adapter.test.ts +463 -0
- package/src/execution/engine/llm/adapters/__tests__/anthropic.integration.test.ts +177 -0
- package/src/execution/engine/llm/adapters/__tests__/circuit-breaker-error.test.ts +94 -0
- package/src/execution/engine/llm/adapters/__tests__/google-adapter.test.ts +722 -0
- package/src/execution/engine/llm/adapters/__tests__/google.integration.test.ts +376 -0
- package/src/execution/engine/llm/adapters/__tests__/mock-adapter.test.ts +432 -0
- package/src/execution/engine/llm/adapters/__tests__/openai-adapter.test.ts +551 -0
- package/src/execution/engine/llm/adapters/__tests__/openrouter-adapter.test.ts +563 -0
- package/src/execution/engine/llm/adapters/__tests__/openrouter.integration.test.ts +105 -0
- package/src/execution/engine/llm/adapters/__tests__/universal-adapter.test.ts +537 -0
- package/src/execution/engine/llm/adapters/circuit-breaker.ts +147 -0
- package/src/execution/engine/llm/adapters/index.ts +17 -0
- package/src/execution/engine/llm/adapters/mock-adapter.ts +116 -0
- package/src/execution/engine/llm/adapters/server/adapter-factory.ts +130 -0
- package/src/execution/engine/llm/adapters/server/anthropic.ts +137 -0
- package/src/execution/engine/llm/adapters/server/compose-signal.ts +18 -0
- package/src/execution/engine/llm/adapters/server/google.ts +283 -0
- package/src/execution/engine/llm/adapters/server/index.ts +12 -0
- package/src/execution/engine/llm/adapters/server/openai.ts +206 -0
- package/src/execution/engine/llm/adapters/server/openrouter.ts +235 -0
- package/src/execution/engine/llm/adapters/universal-adapter.ts +230 -0
- package/src/execution/engine/llm/errors.ts +186 -0
- package/src/execution/engine/llm/input-sanitizer.ts +129 -0
- package/src/execution/engine/llm/model-info.ts +332 -0
- package/src/execution/engine/llm/response-schema-validator.ts +113 -0
- package/src/execution/engine/llm/types.ts +86 -0
- package/src/execution/engine/test-utils/index.ts +6 -0
- package/src/execution/engine/test-utils/mocks.ts +56 -0
- package/src/execution/engine/tools/__tests__/tooling-error.test.ts +265 -0
- package/src/execution/engine/tools/__tests__/types.test.ts +47 -0
- package/src/execution/engine/tools/integration/base-integration-adapter.ts +50 -0
- package/src/execution/engine/tools/integration/index.ts +53 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-adapter.ts +73 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/anymailfinder-tools.ts +209 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-company-email/index.ts +82 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-decision-maker-email/index.ts +122 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/find-person-email/index.ts +89 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/fetch/verify-email/index.ts +84 -0
- package/src/execution/engine/tools/integration/server/adapters/anymailfinder/index.ts +16 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/__tests__/apify-run-actor.integration.test.ts +293 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-adapter.ts +100 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/apify-tools.ts +217 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/get-dataset-items/index.ts +92 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/run-actor/index.ts +218 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/fetch/start-actor/index.ts +87 -0
- package/src/execution/engine/tools/integration/server/adapters/apify/index.ts +11 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/__tests__/attio-crud.integration.test.ts +362 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-adapter.ts +162 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/attio-tools.ts +594 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/README.md +632 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-attribute/index.ts +214 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-note/index.ts +152 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/create-record/index.ts +141 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-note/index.ts +86 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/delete-record/index.ts +105 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.test.ts +186 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/get-record/index.ts +118 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-attributes/index.ts +165 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-notes/index.ts +96 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-objects/index.ts +104 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.test.ts +338 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/list-records/index.ts +156 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-attribute/index.ts +220 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/update-record/index.ts +140 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/fetch/utils/types.ts +147 -0
- package/src/execution/engine/tools/integration/server/adapters/attio/index.ts +31 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/__tests__/dropbox-adapter.test.ts +409 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/dropbox-adapter.ts +281 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/dropbox-tools.ts +106 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/create-folder/__tests__/index.test.ts +451 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/create-folder/index.ts +114 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/upload-file/__tests__/index.test.ts +415 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/fetch/upload-file/index.ts +111 -0
- package/src/execution/engine/tools/integration/server/adapters/dropbox/index.ts +25 -0
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-adapter.ts +210 -0
- package/src/execution/engine/tools/integration/server/adapters/gmail/gmail-tools.ts +104 -0
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/__tests__/google-sheets.integration.test.ts +261 -0
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-adapter.ts +1189 -0
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/google-sheets-tools.ts +641 -0
- package/src/execution/engine/tools/integration/server/adapters/google-sheets/index.ts +18 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/activate-campaign/index.ts +86 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/__tests__/index.test.ts +289 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/add-to-campaign/index.ts +154 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/__tests__/index.test.ts +325 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-add-leads/index.ts +153 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/bulk-delete-leads/index.ts +84 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-campaign/index.ts +125 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/create-inbox-test/index.ts +107 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/delete-campaign/index.ts +85 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-account-health/index.ts +91 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign/index.ts +92 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/__tests__/index.test.ts +195 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-campaign-analytics/index.ts +113 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-daily-campaign-analytics/index.ts +104 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-emails/index.ts +155 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/__tests__/index.test.ts +196 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/get-step-analytics/index.ts +102 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/__tests__/index.test.ts +189 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-campaigns/index.ts +87 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/list-leads/index.ts +112 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/patch-lead/index.ts +76 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/pause-campaign/index.ts +86 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/remove-from-subsequence/index.ts +98 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/send-reply/index.ts +126 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/__tests__/index.test.ts +193 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-campaign/index.ts +99 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/__tests__/index.test.ts +621 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/fetch/update-interest-status/index.ts +125 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/index.ts +29 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-adapter.ts +178 -0
- package/src/execution/engine/tools/integration/server/adapters/instantly/instantly-tools.ts +1473 -0
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/check-credits/index.ts +59 -0
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/fetch/verify-email/index.ts +102 -0
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/index.ts +17 -0
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-adapter.ts +80 -0
- package/src/execution/engine/tools/integration/server/adapters/millionverifier/millionverifier-tools.ts +102 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/get-email/index.ts +102 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/send-email/index.ts +134 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/fetch/utils/types.ts +75 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/index.ts +27 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-adapter.ts +108 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/resend-tools.ts +132 -0
- package/src/execution/engine/tools/integration/server/adapters/resend/types.ts +44 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/create-envelope/index.ts +274 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/download-document/index.ts +230 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/get-envelope/index.ts +133 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/utils/types.ts +246 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/fetch/void-envelope/index.ts +90 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/index.ts +38 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-adapter.ts +87 -0
- package/src/execution/engine/tools/integration/server/adapters/signature-api/signature-api-tools.ts +179 -0
- package/src/execution/engine/tools/integration/server/adapters/stripe/fetch/utils/types.ts +210 -0
- package/src/execution/engine/tools/integration/server/adapters/stripe/index.ts +44 -0
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-adapter.ts +517 -0
- package/src/execution/engine/tools/integration/server/adapters/stripe/stripe-tools.ts +309 -0
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/domain-search/index.ts +133 -0
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-finder/index.ts +122 -0
- package/src/execution/engine/tools/integration/server/adapters/tomba/fetch/email-verifier/index.ts +111 -0
- package/src/execution/engine/tools/integration/server/adapters/tomba/index.ts +11 -0
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-adapter.ts +78 -0
- package/src/execution/engine/tools/integration/server/adapters/tomba/tomba-tools.ts +222 -0
- package/src/execution/engine/tools/integration/server/index.ts +61 -0
- package/src/execution/engine/tools/integration/service.ts +161 -0
- package/src/execution/engine/tools/integration/tool.ts +253 -0
- package/src/execution/engine/tools/integration/types/anymailfinder.ts +74 -0
- package/src/execution/engine/tools/integration/types/apify.ts +92 -0
- package/src/execution/engine/tools/integration/types/attio.ts +354 -0
- package/src/execution/engine/tools/integration/types/dropbox.ts +64 -0
- package/src/execution/engine/tools/integration/types/gmail.ts +35 -0
- package/src/execution/engine/tools/integration/types/google-sheets.ts +303 -0
- package/src/execution/engine/tools/integration/types/index.ts +19 -0
- package/src/execution/engine/tools/integration/types/instantly.ts +557 -0
- package/src/execution/engine/tools/integration/types/millionverifier.ts +56 -0
- package/src/execution/engine/tools/integration/types/resend.ts +63 -0
- package/src/execution/engine/tools/integration/types/signature-api.ts +164 -0
- package/src/execution/engine/tools/integration/types/stripe.ts +162 -0
- package/src/execution/engine/tools/integration/types/tomba.ts +94 -0
- package/src/execution/engine/tools/lead-service-types.ts +884 -0
- package/src/execution/engine/tools/llm/index.ts +11 -0
- package/src/execution/engine/tools/llm/server/index.ts +8 -0
- package/src/execution/engine/tools/llm/server/llm-call-tool.ts +118 -0
- package/src/execution/engine/tools/platform/__tests__/approval.test.ts +242 -0
- package/src/execution/engine/tools/platform/__tests__/email.test.ts +482 -0
- package/src/execution/engine/tools/platform/__tests__/hitl-cancel.test.ts +97 -0
- package/src/execution/engine/tools/platform/__tests__/notification.test.ts +208 -0
- package/src/execution/engine/tools/platform/__tests__/pdf.test.ts +441 -0
- package/src/execution/engine/tools/platform/__tests__/scheduler.test.ts +189 -0
- package/src/execution/engine/tools/platform/__tests__/schedules.test.ts +336 -0
- package/src/execution/engine/tools/platform/acquisition/company-tools.ts +248 -0
- package/src/execution/engine/tools/platform/acquisition/contact-tools.ts +319 -0
- package/src/execution/engine/tools/platform/acquisition/index.ts +43 -0
- package/src/execution/engine/tools/platform/acquisition/list-tools.ts +148 -0
- package/src/execution/engine/tools/platform/acquisition/types.ts +260 -0
- package/src/execution/engine/tools/platform/approval/cancel-by-metadata.ts +65 -0
- package/src/execution/engine/tools/platform/approval/index.ts +4 -0
- package/src/execution/engine/tools/platform/approval/tool.ts +99 -0
- package/src/execution/engine/tools/platform/email/index.ts +122 -0
- package/src/execution/engine/tools/platform/email/types.ts +96 -0
- package/src/execution/engine/tools/platform/index.ts +181 -0
- package/src/execution/engine/tools/platform/notification.ts +81 -0
- package/src/execution/engine/tools/platform/pdf/index.ts +110 -0
- package/src/execution/engine/tools/platform/pdf/types.ts +77 -0
- package/src/execution/engine/tools/platform/resource-invocation/__tests__/edge-cases.test.ts +507 -0
- package/src/execution/engine/tools/platform/resource-invocation/__tests__/resource-invocation-service.test.ts +500 -0
- package/src/execution/engine/tools/platform/resource-invocation/__tests__/tool.test.ts +555 -0
- package/src/execution/engine/tools/platform/resource-invocation/dynamic-tool.ts +94 -0
- package/src/execution/engine/tools/platform/resource-invocation/index.ts +14 -0
- package/src/execution/engine/tools/platform/resource-invocation/resource-invocation-service.ts +147 -0
- package/src/execution/engine/tools/platform/resource-invocation/tool.ts +115 -0
- package/src/execution/engine/tools/platform/resource-invocation/types.ts +31 -0
- package/src/execution/engine/tools/platform/scheduler.ts +87 -0
- package/src/execution/engine/tools/platform/schedules/cancel-by-key-tool.ts +48 -0
- package/src/execution/engine/tools/platform/schedules/cancel-by-metadata-tool.ts +42 -0
- package/src/execution/engine/tools/platform/schedules/delete-by-key-tool.ts +43 -0
- package/src/execution/engine/tools/platform/schedules/index.ts +13 -0
- package/src/execution/engine/tools/platform/schedules/list-tool.ts +56 -0
- package/src/execution/engine/tools/platform/schedules/types.ts +88 -0
- package/src/execution/engine/tools/platform/storage/__tests__/storage.test.ts +998 -0
- package/src/execution/engine/tools/platform/storage/index.ts +370 -0
- package/src/execution/engine/tools/platform/storage/types.ts +128 -0
- package/src/execution/engine/tools/platform/types.ts +148 -0
- package/src/execution/engine/tools/registry.ts +590 -0
- package/src/execution/engine/tools/tool-maps.ts +694 -0
- package/src/execution/engine/tools/types.ts +233 -0
- package/src/execution/engine/workflow/__tests__/errors.test.ts +139 -0
- package/src/execution/engine/workflow/__tests__/utils.test.ts +645 -0
- package/src/execution/engine/workflow/__tests__/workflow.test.ts +818 -0
- package/src/execution/engine/workflow/errors.ts +63 -0
- package/src/execution/engine/workflow/helpers/index.ts +11 -0
- package/src/execution/engine/workflow/helpers/server/index.ts +8 -0
- package/src/execution/engine/workflow/helpers/server/llm-call.ts +93 -0
- package/src/execution/engine/workflow/index.ts +19 -0
- package/src/execution/engine/workflow/log-truncate.ts +26 -0
- package/src/execution/engine/workflow/logging.ts +191 -0
- package/src/execution/engine/workflow/types.ts +183 -0
- package/src/execution/engine/workflow/utils.ts +280 -0
- package/src/execution/engine/workflow/workflow.ts +168 -0
- package/src/execution/index.ts +20 -0
- package/src/execution/scheduler/__tests__/api-schemas.test.ts +733 -0
- package/src/execution/scheduler/__tests__/retry.test.ts +37 -0
- package/src/execution/scheduler/__tests__/utils.test.ts +1009 -0
- package/src/execution/scheduler/api-schemas.ts +296 -0
- package/src/execution/scheduler/index.ts +50 -0
- package/src/execution/scheduler/schemas.ts +264 -0
- package/src/execution/scheduler/types.ts +111 -0
- package/src/execution/scheduler/utils.ts +364 -0
- package/src/forms/index.ts +7 -0
- package/src/forms/schemas.test.ts +113 -0
- package/src/forms/schemas.ts +69 -0
- package/src/forms/types.ts +70 -0
- package/src/index.ts +54 -0
- package/src/integrations/credentials/__tests__/api-schemas.test.ts +496 -0
- package/src/integrations/credentials/__tests__/schemas.test.ts +82 -0
- package/src/integrations/credentials/__tests__/utils.test.ts +144 -0
- package/src/integrations/credentials/api-schemas.ts +143 -0
- package/src/integrations/credentials/index.ts +32 -0
- package/src/integrations/credentials/schemas.ts +164 -0
- package/src/integrations/credentials/utils.ts +59 -0
- package/src/integrations/oauth/__tests__/provider-registry.test.ts +59 -0
- package/src/integrations/oauth/api-schemas.ts +92 -0
- package/src/integrations/oauth/index.ts +19 -0
- package/src/integrations/oauth/provider-registry.ts +61 -0
- package/src/integrations/oauth/server/__tests__/refresh-concurrent.test.ts +183 -0
- package/src/integrations/oauth/server/__tests__/refresh.integration.test.ts +257 -0
- package/src/integrations/oauth/server/__tests__/refresh.test.ts +577 -0
- package/src/integrations/oauth/server/credentials.ts +39 -0
- package/src/integrations/oauth/server/refresh.ts +214 -0
- package/src/integrations/oauth/types.ts +34 -0
- package/src/integrations/webhook-endpoints/__tests__/api-schemas.test.ts +318 -0
- package/src/integrations/webhook-endpoints/api-schemas.ts +102 -0
- package/src/integrations/webhook-endpoints/index.ts +28 -0
- package/src/integrations/webhook-endpoints/types.ts +51 -0
- package/src/operations/activities/api-schemas.ts +79 -0
- package/src/operations/activities/index.ts +9 -0
- package/src/operations/activities/sse-events.ts +30 -0
- package/src/operations/activities/types.ts +63 -0
- package/src/operations/debug-logs/client.ts +60 -0
- package/src/operations/debug-logs/debug-logger.ts +83 -0
- package/src/operations/debug-logs/index.ts +8 -0
- package/src/operations/debug-logs/server.ts +19 -0
- package/src/operations/debug-logs/types.ts +33 -0
- package/src/operations/index.ts +50 -0
- package/src/operations/notifications/__tests__/api-schemas.test.ts +216 -0
- package/src/operations/notifications/api-schemas.ts +91 -0
- package/src/operations/notifications/index.ts +3 -0
- package/src/operations/notifications/sse-events.ts +21 -0
- package/src/operations/notifications/types.ts +47 -0
- package/src/operations/observability/__tests__/openrouter-cost-flow.test.ts +297 -0
- package/src/operations/observability/__tests__/schemas.test.ts +151 -0
- package/src/operations/observability/__tests__/types.test.ts +109 -0
- package/src/operations/observability/__tests__/utils.test.ts +54 -0
- package/src/operations/observability/ai-usage-collector.ts +64 -0
- package/src/operations/observability/index.ts +13 -0
- package/src/operations/observability/metrics-collector.ts +49 -0
- package/src/operations/observability/schemas.ts +39 -0
- package/src/operations/observability/types.ts +463 -0
- package/src/operations/observability/utils.ts +77 -0
- package/src/operations/sessions/__tests__/api-schemas.test.ts +361 -0
- package/src/operations/sessions/__tests__/manager.test.ts +821 -0
- package/src/operations/sessions/api-schemas.ts +166 -0
- package/src/operations/sessions/index.ts +26 -0
- package/src/operations/sessions/server/manager.ts +90 -0
- package/src/operations/sessions/server/session.ts +180 -0
- package/src/operations/sessions/types.ts +98 -0
- package/src/operations/triggers/index.ts +12 -0
- package/src/operations/triggers/webhook/definitions/__tests__/instantly-reply-received.test.ts +72 -0
- package/src/operations/triggers/webhook/definitions/instantly-account-error.ts +44 -0
- package/src/operations/triggers/webhook/definitions/instantly-auto-reply-received.ts +51 -0
- package/src/operations/triggers/webhook/definitions/instantly-campaign-completed.ts +45 -0
- package/src/operations/triggers/webhook/definitions/instantly-email-bounced.ts +49 -0
- package/src/operations/triggers/webhook/definitions/instantly-lead-unsubscribed.ts +45 -0
- package/src/operations/triggers/webhook/definitions/instantly-reply-received.ts +54 -0
- package/src/operations/triggers/webhook/index.ts +35 -0
- package/src/operations/triggers/webhook/types.ts +74 -0
- package/src/organization-model/README.md +79 -0
- package/src/organization-model/__tests__/graph.test.ts +250 -0
- package/src/organization-model/__tests__/resolve.test.ts +47 -0
- package/src/organization-model/defaults.ts +60 -0
- package/src/organization-model/domains/branding.ts +22 -0
- package/src/organization-model/domains/crm.ts +46 -0
- package/src/organization-model/domains/delivery.ts +48 -0
- package/src/organization-model/domains/features.ts +57 -0
- package/src/organization-model/domains/lead-gen.ts +33 -0
- package/src/organization-model/domains/navigation.ts +103 -0
- package/src/organization-model/domains/shared.ts +42 -0
- package/src/organization-model/graph/build.ts +432 -0
- package/src/organization-model/graph/index.ts +4 -0
- package/src/organization-model/graph/schema.ts +50 -0
- package/src/organization-model/graph/types.ts +52 -0
- package/src/organization-model/index.ts +11 -0
- package/src/organization-model/published.ts +18 -0
- package/src/organization-model/resolve.ts +42 -0
- package/src/organization-model/schema.ts +21 -0
- package/src/organization-model/types.ts +27 -0
- package/src/platform/api/index.ts +1 -0
- package/src/platform/api/types.ts +35 -0
- package/src/platform/constants/http.ts +37 -0
- package/src/platform/constants/index.ts +5 -0
- package/src/platform/constants/limits.ts +32 -0
- package/src/platform/constants/resilience.ts +51 -0
- package/src/platform/constants/timeouts.ts +20 -0
- package/src/platform/constants/versions.ts +3 -0
- package/src/platform/index.ts +27 -0
- package/src/platform/registry/__tests__/command-view.test.ts +410 -0
- package/src/platform/registry/__tests__/resource-registry-static.test.ts +347 -0
- package/src/platform/registry/__tests__/resource-registry.integration.test.ts +1004 -0
- package/src/platform/registry/__tests__/resource-registry.list-executable.test.ts +393 -0
- package/src/platform/registry/__tests__/resource-registry.test.ts +1942 -0
- package/src/platform/registry/__tests__/serialization.test.ts +1127 -0
- package/src/platform/registry/__tests__/validation.test.ts +1086 -0
- package/src/platform/registry/command-view.ts +180 -0
- package/src/platform/registry/domains.ts +165 -0
- package/src/platform/registry/index.ts +93 -0
- package/src/platform/registry/reserved.ts +24 -0
- package/src/platform/registry/resource-metadata.ts +59 -0
- package/src/platform/registry/resource-registry.command-queue-groups.test.ts +129 -0
- package/src/platform/registry/resource-registry.ts +788 -0
- package/src/platform/registry/serialization.ts +273 -0
- package/src/platform/registry/serialized-types.ts +231 -0
- package/src/platform/registry/stats-types.ts +66 -0
- package/src/platform/registry/types.ts +404 -0
- package/src/platform/registry/validation.ts +513 -0
- package/src/platform/resilience/__tests__/circuit-breaker.test.ts +291 -0
- package/src/platform/resilience/__tests__/http-error-mapper.test.ts +173 -0
- package/src/platform/resilience/__tests__/rate-limiter.test.ts +471 -0
- package/src/platform/resilience/__tests__/retry.test.ts +380 -0
- package/src/platform/resilience/__tests__/timeout.test.ts +219 -0
- package/src/platform/resilience/circuit-breaker.ts +164 -0
- package/src/platform/resilience/errors.ts +68 -0
- package/src/platform/resilience/http-error-mapper.ts +129 -0
- package/src/platform/resilience/index.ts +93 -0
- package/src/platform/resilience/rate-limiter-types.ts +46 -0
- package/src/platform/resilience/rate-limiter.ts +140 -0
- package/src/platform/resilience/retry.ts +89 -0
- package/src/platform/resilience/timeout.ts +63 -0
- package/src/platform/sse/events.ts +67 -0
- package/src/platform/sse/index.ts +7 -0
- package/src/platform/utils/__tests__/currency.test.ts +77 -0
- package/src/platform/utils/__tests__/validation.test.ts +1083 -0
- package/src/platform/utils/currency.ts +96 -0
- package/src/platform/utils/debounce.ts +52 -0
- package/src/platform/utils/error.ts +42 -0
- package/src/platform/utils/hmac.test.ts +97 -0
- package/src/platform/utils/index.ts +32 -0
- package/src/platform/utils/server/betterstack-logger.ts +210 -0
- package/src/platform/utils/server/hmac.ts +44 -0
- package/src/platform/utils/server/unsubscribe.ts +111 -0
- package/src/platform/utils/token-counter.ts +96 -0
- package/src/platform/utils/validation.ts +425 -0
- package/src/projects/api-schemas.ts +265 -0
- package/src/published.ts +1 -0
- package/src/server.ts +273 -0
- package/src/supabase/__tests__/helpers.test.ts +51 -0
- package/src/supabase/database.types.ts +2674 -0
- package/src/supabase/helpers.ts +20 -0
- package/src/supabase/index.ts +52 -0
- package/src/supabase/server/client.ts +58 -0
- package/src/test-utils/README.md +150 -0
- package/src/test-utils/browser-mocks.ts +54 -0
- package/src/test-utils/fixtures/api-keys.ts +52 -0
- package/src/test-utils/fixtures/index.ts +4 -0
- package/src/test-utils/fixtures/memberships.ts +80 -0
- package/src/test-utils/fixtures/organizations.ts +69 -0
- package/src/test-utils/fixtures/users.ts +79 -0
- package/src/test-utils/index.ts +11 -0
- package/src/test-utils/mocks/index.ts +2 -0
- package/src/test-utils/mocks/supabase.ts +142 -0
- package/src/test-utils/mocks/workos.ts +108 -0
- package/src/test-utils/rls/RLSTestContext.ts +586 -0
- package/src/test-utils/rls/index.ts +1 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
import { getToolServices } from '../../registry'
|
|
2
|
+
import { serviceUnavailable } from '../../types'
|
|
3
|
+
import type { Tool } from '../../types'
|
|
4
|
+
import {
|
|
5
|
+
CreateCompanyInputSchema,
|
|
6
|
+
UpdateCompanyInputSchema,
|
|
7
|
+
UpsertCompanyInputSchema,
|
|
8
|
+
GetCompanyInputSchema,
|
|
9
|
+
ListCompaniesInputSchema,
|
|
10
|
+
DeleteCompanyInputSchema,
|
|
11
|
+
CompanyOutputSchema,
|
|
12
|
+
CompanyArrayOutputSchema,
|
|
13
|
+
DeleteResultSchema,
|
|
14
|
+
type CreateCompanyInput,
|
|
15
|
+
type UpdateCompanyInput,
|
|
16
|
+
type UpsertCompanyInput,
|
|
17
|
+
type GetCompanyInput,
|
|
18
|
+
type ListCompaniesInput,
|
|
19
|
+
type DeleteCompanyInput
|
|
20
|
+
} from './types'
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Helper to transform company result to output format
|
|
24
|
+
* Converts Date objects to ISO strings for consistent API responses
|
|
25
|
+
*/
|
|
26
|
+
function toCompanyOutput(result: any) {
|
|
27
|
+
return {
|
|
28
|
+
id: result.id,
|
|
29
|
+
organizationId: result.organizationId,
|
|
30
|
+
name: result.name,
|
|
31
|
+
domain: result.domain,
|
|
32
|
+
linkedinUrl: result.linkedinUrl,
|
|
33
|
+
website: result.website,
|
|
34
|
+
numEmployees: result.numEmployees,
|
|
35
|
+
foundedYear: result.foundedYear,
|
|
36
|
+
locationCity: result.locationCity,
|
|
37
|
+
locationState: result.locationState,
|
|
38
|
+
category: result.category,
|
|
39
|
+
categoryPain: result.categoryPain ?? null,
|
|
40
|
+
segment: result.segment,
|
|
41
|
+
pipelineStatus: result.pipelineStatus,
|
|
42
|
+
enrichmentData: result.enrichmentData,
|
|
43
|
+
tags: result.tags,
|
|
44
|
+
source: result.source,
|
|
45
|
+
batchId: result.batchId ?? null,
|
|
46
|
+
status: result.status,
|
|
47
|
+
createdAt: result.createdAt instanceof Date ? result.createdAt.toISOString() : result.createdAt,
|
|
48
|
+
updatedAt: result.updatedAt instanceof Date ? result.updatedAt.toISOString() : result.updatedAt
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Create a tool for creating new company records
|
|
54
|
+
*
|
|
55
|
+
* @returns Tool that creates a company
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* const tool = createAcqCompanyCreateTool()
|
|
59
|
+
* const result = await tool.execute({
|
|
60
|
+
* input: { name: 'Acme Corp', domain: 'acme.com' },
|
|
61
|
+
* executionContext: { organizationId: 'org-123', ... }
|
|
62
|
+
* })
|
|
63
|
+
*/
|
|
64
|
+
export function createAcqCompanyCreateTool(): Tool {
|
|
65
|
+
return {
|
|
66
|
+
name: 'acq_company_create',
|
|
67
|
+
description: 'Create a new company record for lead tracking.',
|
|
68
|
+
inputSchema: CreateCompanyInputSchema,
|
|
69
|
+
outputSchema: CompanyOutputSchema,
|
|
70
|
+
execute: async ({ input, executionContext }) => {
|
|
71
|
+
const leadService = getToolServices().leadService
|
|
72
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
73
|
+
if (!executionContext?.organizationId)
|
|
74
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
75
|
+
|
|
76
|
+
const typedInput = input as CreateCompanyInput
|
|
77
|
+
const result = await leadService.createCompany({
|
|
78
|
+
organizationId: executionContext.organizationId,
|
|
79
|
+
...typedInput
|
|
80
|
+
})
|
|
81
|
+
|
|
82
|
+
return toCompanyOutput(result)
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Create a tool for updating existing company records
|
|
89
|
+
*
|
|
90
|
+
* @returns Tool that updates a company
|
|
91
|
+
*
|
|
92
|
+
* @example
|
|
93
|
+
* const tool = createAcqCompanyUpdateTool()
|
|
94
|
+
* const result = await tool.execute({
|
|
95
|
+
* input: { id: 'company-123', numEmployees: 500 },
|
|
96
|
+
* executionContext: { organizationId: 'org-123', ... }
|
|
97
|
+
* })
|
|
98
|
+
*/
|
|
99
|
+
export function createAcqCompanyUpdateTool(): Tool {
|
|
100
|
+
return {
|
|
101
|
+
name: 'acq_company_update',
|
|
102
|
+
description: 'Update an existing company record with new data (e.g., enrichment data, firmographics).',
|
|
103
|
+
inputSchema: UpdateCompanyInputSchema,
|
|
104
|
+
outputSchema: CompanyOutputSchema,
|
|
105
|
+
execute: async ({ input, executionContext }) => {
|
|
106
|
+
const leadService = getToolServices().leadService
|
|
107
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
108
|
+
if (!executionContext?.organizationId)
|
|
109
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
110
|
+
|
|
111
|
+
const typedInput = input as UpdateCompanyInput
|
|
112
|
+
const { id, ...params } = typedInput
|
|
113
|
+
const result = await leadService.updateCompany(id, params)
|
|
114
|
+
|
|
115
|
+
return toCompanyOutput(result)
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Create a tool for upserting companies by domain
|
|
122
|
+
* Creates new record if domain does not exist, otherwise updates existing
|
|
123
|
+
*
|
|
124
|
+
* @returns Tool that upserts a company
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* const tool = createAcqCompanyUpsertTool()
|
|
128
|
+
* const result = await tool.execute({
|
|
129
|
+
* input: { name: 'Acme Corp', domain: 'acme.com' },
|
|
130
|
+
* executionContext: { organizationId: 'org-123', ... }
|
|
131
|
+
* })
|
|
132
|
+
*/
|
|
133
|
+
export function createAcqCompanyUpsertTool(): Tool {
|
|
134
|
+
return {
|
|
135
|
+
name: 'acq_company_upsert',
|
|
136
|
+
description: 'Upsert a company by domain. Creates new record if domain does not exist, otherwise updates existing.',
|
|
137
|
+
inputSchema: UpsertCompanyInputSchema,
|
|
138
|
+
outputSchema: CompanyOutputSchema,
|
|
139
|
+
execute: async ({ input, executionContext }) => {
|
|
140
|
+
const leadService = getToolServices().leadService
|
|
141
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
142
|
+
if (!executionContext?.organizationId)
|
|
143
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
144
|
+
|
|
145
|
+
const typedInput = input as UpsertCompanyInput
|
|
146
|
+
const result = await leadService.upsertCompany({
|
|
147
|
+
organizationId: executionContext.organizationId,
|
|
148
|
+
...typedInput
|
|
149
|
+
})
|
|
150
|
+
|
|
151
|
+
return toCompanyOutput(result)
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Create a tool for getting a single company by ID
|
|
158
|
+
*
|
|
159
|
+
* @returns Tool that retrieves a company
|
|
160
|
+
*
|
|
161
|
+
* @example
|
|
162
|
+
* const tool = createAcqCompanyGetTool()
|
|
163
|
+
* const result = await tool.execute({
|
|
164
|
+
* input: { id: 'company-123' },
|
|
165
|
+
* executionContext: { organizationId: 'org-123', ... }
|
|
166
|
+
* })
|
|
167
|
+
*/
|
|
168
|
+
export function createAcqCompanyGetTool(): Tool {
|
|
169
|
+
return {
|
|
170
|
+
name: 'acq_company_get',
|
|
171
|
+
description: 'Get a single company by ID.',
|
|
172
|
+
inputSchema: GetCompanyInputSchema,
|
|
173
|
+
outputSchema: CompanyOutputSchema.nullable(),
|
|
174
|
+
execute: async ({ input, executionContext }) => {
|
|
175
|
+
const leadService = getToolServices().leadService
|
|
176
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
177
|
+
if (!executionContext?.organizationId)
|
|
178
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
179
|
+
|
|
180
|
+
const typedInput = input as GetCompanyInput
|
|
181
|
+
const result = await leadService.getCompany(typedInput.id, executionContext.organizationId)
|
|
182
|
+
return result ? toCompanyOutput(result) : null
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Create a tool for listing companies with optional filters
|
|
189
|
+
*
|
|
190
|
+
* @returns Tool that lists companies
|
|
191
|
+
*
|
|
192
|
+
* @example
|
|
193
|
+
* const tool = createAcqCompanyListTool()
|
|
194
|
+
* const result = await tool.execute({
|
|
195
|
+
* input: { segment: 'smb', category: 'saas' },
|
|
196
|
+
* executionContext: { organizationId: 'org-123', ... }
|
|
197
|
+
* })
|
|
198
|
+
*/
|
|
199
|
+
export function createAcqCompanyListTool(): Tool {
|
|
200
|
+
return {
|
|
201
|
+
name: 'acq_company_list',
|
|
202
|
+
description: 'List companies with optional filters for category, segment, or pipeline status.',
|
|
203
|
+
inputSchema: ListCompaniesInputSchema,
|
|
204
|
+
outputSchema: CompanyArrayOutputSchema,
|
|
205
|
+
execute: async ({ input, executionContext }) => {
|
|
206
|
+
const leadService = getToolServices().leadService
|
|
207
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
208
|
+
if (!executionContext?.organizationId)
|
|
209
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
210
|
+
|
|
211
|
+
const typedInput = input as ListCompaniesInput
|
|
212
|
+
const results = await leadService.listCompanies(executionContext.organizationId, typedInput)
|
|
213
|
+
return results.map(toCompanyOutput)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
/**
|
|
219
|
+
* Create a tool for deleting company records
|
|
220
|
+
* Associated contacts will have their company_id set to null
|
|
221
|
+
*
|
|
222
|
+
* @returns Tool that deletes a company
|
|
223
|
+
*
|
|
224
|
+
* @example
|
|
225
|
+
* const tool = createAcqCompanyDeleteTool()
|
|
226
|
+
* const result = await tool.execute({
|
|
227
|
+
* input: { id: 'company-123' },
|
|
228
|
+
* executionContext: { organizationId: 'org-123', ... }
|
|
229
|
+
* })
|
|
230
|
+
*/
|
|
231
|
+
export function createAcqCompanyDeleteTool(): Tool {
|
|
232
|
+
return {
|
|
233
|
+
name: 'acq_company_delete',
|
|
234
|
+
description: 'Delete a company record. Associated contacts will have their company_id set to null.',
|
|
235
|
+
inputSchema: DeleteCompanyInputSchema,
|
|
236
|
+
outputSchema: DeleteResultSchema,
|
|
237
|
+
execute: async ({ input, executionContext }) => {
|
|
238
|
+
const leadService = getToolServices().leadService
|
|
239
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
240
|
+
if (!executionContext?.organizationId)
|
|
241
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
242
|
+
|
|
243
|
+
const typedInput = input as DeleteCompanyInput
|
|
244
|
+
await leadService.deleteCompany(typedInput.id, executionContext.organizationId)
|
|
245
|
+
return { success: true }
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
@@ -0,0 +1,319 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Contact Platform Tools
|
|
3
|
+
*
|
|
4
|
+
* Platform tools for contact CRUD operations in the acquisition domain.
|
|
5
|
+
* Used by AI agents to manage contact records with multi-tenant isolation.
|
|
6
|
+
*
|
|
7
|
+
* All operations require organizationId from ExecutionContext for RLS enforcement.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import { getToolServices } from '../../registry'
|
|
11
|
+
import { serviceUnavailable } from '../../types'
|
|
12
|
+
import type { Tool } from '../../types'
|
|
13
|
+
import {
|
|
14
|
+
CreateContactInputSchema,
|
|
15
|
+
UpdateContactInputSchema,
|
|
16
|
+
UpsertContactInputSchema,
|
|
17
|
+
GetContactInputSchema,
|
|
18
|
+
ListContactsInputSchema,
|
|
19
|
+
DeleteContactInputSchema,
|
|
20
|
+
BulkImportInputSchema,
|
|
21
|
+
ContactOutputSchema,
|
|
22
|
+
PaginatedContactsOutputSchema,
|
|
23
|
+
BulkImportResultSchema,
|
|
24
|
+
DeleteResultSchema,
|
|
25
|
+
DeactivateContactsByCompanyInputSchema,
|
|
26
|
+
DeactivateContactsByCompanyResultSchema
|
|
27
|
+
} from './types'
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Transform contact result to output format
|
|
31
|
+
* Converts Date objects to ISO strings for JSON serialization
|
|
32
|
+
*/
|
|
33
|
+
function toContactOutput(result: any) {
|
|
34
|
+
return {
|
|
35
|
+
id: result.id,
|
|
36
|
+
organizationId: result.organizationId,
|
|
37
|
+
companyId: result.companyId,
|
|
38
|
+
email: result.email,
|
|
39
|
+
emailValid: result.emailValid,
|
|
40
|
+
firstName: result.firstName,
|
|
41
|
+
lastName: result.lastName,
|
|
42
|
+
linkedinUrl: result.linkedinUrl,
|
|
43
|
+
title: result.title,
|
|
44
|
+
headline: result.headline,
|
|
45
|
+
filterReason: result.filterReason,
|
|
46
|
+
openingLine: result.openingLine,
|
|
47
|
+
source: result.source,
|
|
48
|
+
sourceId: result.sourceId,
|
|
49
|
+
pipelineStatus: result.pipelineStatus,
|
|
50
|
+
enrichmentData: result.enrichmentData,
|
|
51
|
+
tags: result.tags,
|
|
52
|
+
batchId: result.batchId ?? null,
|
|
53
|
+
status: result.status ?? 'active',
|
|
54
|
+
createdAt: result.createdAt instanceof Date ? result.createdAt.toISOString() : result.createdAt,
|
|
55
|
+
updatedAt: result.updatedAt instanceof Date ? result.updatedAt.toISOString() : result.updatedAt
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Create a new contact record
|
|
61
|
+
*
|
|
62
|
+
* @returns Tool for creating contacts
|
|
63
|
+
*/
|
|
64
|
+
export function createAcqContactCreateTool(): Tool {
|
|
65
|
+
return {
|
|
66
|
+
name: 'acq_contact_create',
|
|
67
|
+
description: 'Create a new contact record.',
|
|
68
|
+
inputSchema: CreateContactInputSchema,
|
|
69
|
+
outputSchema: ContactOutputSchema,
|
|
70
|
+
execute: async ({ input, executionContext }) => {
|
|
71
|
+
const leadService = getToolServices().leadService
|
|
72
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
73
|
+
if (!executionContext?.organizationId)
|
|
74
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
75
|
+
|
|
76
|
+
const validated = input as {
|
|
77
|
+
email: string
|
|
78
|
+
companyId?: string
|
|
79
|
+
firstName?: string
|
|
80
|
+
lastName?: string
|
|
81
|
+
linkedinUrl?: string
|
|
82
|
+
title?: string
|
|
83
|
+
source?: string
|
|
84
|
+
sourceId?: string
|
|
85
|
+
batchId?: string
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const result = await leadService.createContact({
|
|
89
|
+
organizationId: executionContext.organizationId,
|
|
90
|
+
...validated
|
|
91
|
+
})
|
|
92
|
+
|
|
93
|
+
return toContactOutput(result)
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Update an existing contact with new data
|
|
100
|
+
*
|
|
101
|
+
* @returns Tool for updating contacts (enrichment, personalization, campaign status)
|
|
102
|
+
*/
|
|
103
|
+
export function createAcqContactUpdateTool(): Tool {
|
|
104
|
+
return {
|
|
105
|
+
name: 'acq_contact_update',
|
|
106
|
+
description: 'Update an existing contact with new data (enrichment, personalization, campaign status).',
|
|
107
|
+
inputSchema: UpdateContactInputSchema,
|
|
108
|
+
outputSchema: ContactOutputSchema,
|
|
109
|
+
execute: async ({ input, executionContext }) => {
|
|
110
|
+
const leadService = getToolServices().leadService
|
|
111
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
112
|
+
if (!executionContext?.organizationId)
|
|
113
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
114
|
+
|
|
115
|
+
const { id, ...params } = input as { id: string; [key: string]: unknown }
|
|
116
|
+
const result = await leadService.updateContact(id, params)
|
|
117
|
+
|
|
118
|
+
return toContactOutput(result)
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
/**
|
|
124
|
+
* Upsert a contact by email
|
|
125
|
+
*
|
|
126
|
+
* @returns Tool for upserting contacts (creates new or updates existing by email)
|
|
127
|
+
*/
|
|
128
|
+
export function createAcqContactUpsertTool(): Tool {
|
|
129
|
+
return {
|
|
130
|
+
name: 'acq_contact_upsert',
|
|
131
|
+
description: 'Upsert a contact by email. Creates new contact if email does not exist, otherwise updates existing.',
|
|
132
|
+
inputSchema: UpsertContactInputSchema,
|
|
133
|
+
outputSchema: ContactOutputSchema,
|
|
134
|
+
execute: async ({ input, executionContext }) => {
|
|
135
|
+
const leadService = getToolServices().leadService
|
|
136
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
137
|
+
if (!executionContext?.organizationId)
|
|
138
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
139
|
+
|
|
140
|
+
const validated = input as {
|
|
141
|
+
email: string
|
|
142
|
+
companyId?: string
|
|
143
|
+
firstName?: string
|
|
144
|
+
lastName?: string
|
|
145
|
+
linkedinUrl?: string
|
|
146
|
+
title?: string
|
|
147
|
+
source?: string
|
|
148
|
+
sourceId?: string
|
|
149
|
+
batchId?: string
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
const result = await leadService.upsertContact({
|
|
153
|
+
organizationId: executionContext.organizationId,
|
|
154
|
+
...validated
|
|
155
|
+
})
|
|
156
|
+
|
|
157
|
+
return toContactOutput(result)
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Get a single contact by ID
|
|
164
|
+
*
|
|
165
|
+
* @returns Tool for retrieving a contact by ID
|
|
166
|
+
*/
|
|
167
|
+
export function createAcqContactGetTool(): Tool {
|
|
168
|
+
return {
|
|
169
|
+
name: 'acq_contact_get',
|
|
170
|
+
description: 'Get a single contact by ID.',
|
|
171
|
+
inputSchema: GetContactInputSchema,
|
|
172
|
+
outputSchema: ContactOutputSchema.nullable(),
|
|
173
|
+
execute: async ({ input, executionContext }) => {
|
|
174
|
+
const leadService = getToolServices().leadService
|
|
175
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
176
|
+
if (!executionContext?.organizationId)
|
|
177
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
178
|
+
|
|
179
|
+
const { id } = input as { id: string }
|
|
180
|
+
const result = await leadService.getContact(id, executionContext.organizationId)
|
|
181
|
+
return result ? toContactOutput(result) : null
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* List contacts with filters and pagination
|
|
188
|
+
*
|
|
189
|
+
* @returns Tool for listing contacts with optional filters (list, qualification, campaign)
|
|
190
|
+
*/
|
|
191
|
+
export function createAcqContactListTool(): Tool {
|
|
192
|
+
return {
|
|
193
|
+
name: 'acq_contact_list',
|
|
194
|
+
description: 'List contacts with optional filters (list, qualification, campaign) and pagination.',
|
|
195
|
+
inputSchema: ListContactsInputSchema,
|
|
196
|
+
outputSchema: PaginatedContactsOutputSchema,
|
|
197
|
+
execute: async ({ input, executionContext }) => {
|
|
198
|
+
const leadService = getToolServices().leadService
|
|
199
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
200
|
+
if (!executionContext?.organizationId)
|
|
201
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
202
|
+
|
|
203
|
+
const { limit, offset, ...filters } = input as {
|
|
204
|
+
limit?: number
|
|
205
|
+
offset?: number
|
|
206
|
+
openingLineIsNull?: boolean
|
|
207
|
+
batchId?: string
|
|
208
|
+
contactStatus?: 'active' | 'invalid'
|
|
209
|
+
}
|
|
210
|
+
const result = await leadService.listContacts(executionContext.organizationId, filters, {
|
|
211
|
+
limit: limit ?? 100,
|
|
212
|
+
offset: offset ?? 0
|
|
213
|
+
})
|
|
214
|
+
|
|
215
|
+
return {
|
|
216
|
+
data: result.data.map(toContactOutput),
|
|
217
|
+
total: result.total,
|
|
218
|
+
limit: result.limit,
|
|
219
|
+
offset: result.offset
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Delete a contact record
|
|
227
|
+
*
|
|
228
|
+
* @returns Tool for deleting contacts
|
|
229
|
+
*/
|
|
230
|
+
export function createAcqContactDeleteTool(): Tool {
|
|
231
|
+
return {
|
|
232
|
+
name: 'acq_contact_delete',
|
|
233
|
+
description: 'Delete a contact record.',
|
|
234
|
+
inputSchema: DeleteContactInputSchema,
|
|
235
|
+
outputSchema: DeleteResultSchema,
|
|
236
|
+
execute: async ({ input, executionContext }) => {
|
|
237
|
+
const leadService = getToolServices().leadService
|
|
238
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
239
|
+
if (!executionContext?.organizationId)
|
|
240
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
241
|
+
|
|
242
|
+
const { id } = input as { id: string }
|
|
243
|
+
await leadService.deleteContact(id, executionContext.organizationId)
|
|
244
|
+
return { success: true }
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Batch import contacts with automatic deduplication
|
|
251
|
+
*
|
|
252
|
+
* @returns Tool for bulk importing contacts (creates new or updates existing by email)
|
|
253
|
+
*/
|
|
254
|
+
export function createAcqContactBulkImportTool(): Tool {
|
|
255
|
+
return {
|
|
256
|
+
name: 'acq_contact_bulk_import',
|
|
257
|
+
description:
|
|
258
|
+
'Batch import contacts with automatic deduplication. Creates new contacts or updates existing by email.',
|
|
259
|
+
inputSchema: BulkImportInputSchema,
|
|
260
|
+
outputSchema: BulkImportResultSchema,
|
|
261
|
+
execute: async ({ input, executionContext }) => {
|
|
262
|
+
const leadService = getToolServices().leadService
|
|
263
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
264
|
+
if (!executionContext?.organizationId)
|
|
265
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
266
|
+
|
|
267
|
+
const { contacts } = input as {
|
|
268
|
+
contacts: Array<{
|
|
269
|
+
email: string
|
|
270
|
+
companyId?: string
|
|
271
|
+
firstName?: string
|
|
272
|
+
lastName?: string
|
|
273
|
+
linkedinUrl?: string
|
|
274
|
+
title?: string
|
|
275
|
+
source?: string
|
|
276
|
+
sourceId?: string
|
|
277
|
+
batchId?: string
|
|
278
|
+
}>
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
const result = await leadService.bulkImportContacts({
|
|
282
|
+
organizationId: executionContext.organizationId,
|
|
283
|
+
contacts: contacts.map((c) => ({
|
|
284
|
+
organizationId: executionContext.organizationId,
|
|
285
|
+
...c
|
|
286
|
+
}))
|
|
287
|
+
})
|
|
288
|
+
|
|
289
|
+
return result
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
/**
|
|
295
|
+
* Deactivate all active contacts belonging to a company.
|
|
296
|
+
* Used by qualification workflow to cascade company disqualification.
|
|
297
|
+
*
|
|
298
|
+
* @returns Tool for bulk deactivating contacts by company
|
|
299
|
+
*/
|
|
300
|
+
export function createAcqContactDeactivateByCompanyTool(): Tool {
|
|
301
|
+
return {
|
|
302
|
+
name: 'acq_contact_deactivate_by_company',
|
|
303
|
+
description: 'Deactivate all active contacts belonging to a company. Used to cascade company disqualification.',
|
|
304
|
+
inputSchema: DeactivateContactsByCompanyInputSchema,
|
|
305
|
+
outputSchema: DeactivateContactsByCompanyResultSchema,
|
|
306
|
+
execute: async ({ input, executionContext }) => {
|
|
307
|
+
const leadService = getToolServices().leadService
|
|
308
|
+
if (!leadService) throw serviceUnavailable('LeadService')
|
|
309
|
+
if (!executionContext?.organizationId)
|
|
310
|
+
throw serviceUnavailable('ExecutionContext', { reason: 'organizationId required for multi-tenant isolation' })
|
|
311
|
+
|
|
312
|
+
const { companyId } = input as { companyId: string }
|
|
313
|
+
return leadService.deactivateContactsByCompany({
|
|
314
|
+
organizationId: executionContext.organizationId,
|
|
315
|
+
companyId
|
|
316
|
+
})
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Acquisition Platform Tools
|
|
3
|
+
* Tools for managing leads, companies, and contacts in the acquisition database.
|
|
4
|
+
*
|
|
5
|
+
* These tools are used by agents and workflows for:
|
|
6
|
+
* - Organizing contacts into lists
|
|
7
|
+
* - Managing company records and enrichment
|
|
8
|
+
* - Tracking contact personalization and campaigns
|
|
9
|
+
* - Bulk importing leads
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
// Export all types and schemas
|
|
13
|
+
export * from './types'
|
|
14
|
+
|
|
15
|
+
// List tools
|
|
16
|
+
export {
|
|
17
|
+
createAcqListCreateTool,
|
|
18
|
+
createAcqListUpdateTool,
|
|
19
|
+
createAcqListDeleteTool,
|
|
20
|
+
createAcqListListTool
|
|
21
|
+
} from './list-tools'
|
|
22
|
+
|
|
23
|
+
// Company tools
|
|
24
|
+
export {
|
|
25
|
+
createAcqCompanyCreateTool,
|
|
26
|
+
createAcqCompanyUpdateTool,
|
|
27
|
+
createAcqCompanyUpsertTool,
|
|
28
|
+
createAcqCompanyGetTool,
|
|
29
|
+
createAcqCompanyListTool,
|
|
30
|
+
createAcqCompanyDeleteTool
|
|
31
|
+
} from './company-tools'
|
|
32
|
+
|
|
33
|
+
// Contact tools
|
|
34
|
+
export {
|
|
35
|
+
createAcqContactCreateTool,
|
|
36
|
+
createAcqContactUpdateTool,
|
|
37
|
+
createAcqContactUpsertTool,
|
|
38
|
+
createAcqContactGetTool,
|
|
39
|
+
createAcqContactListTool,
|
|
40
|
+
createAcqContactDeleteTool,
|
|
41
|
+
createAcqContactBulkImportTool,
|
|
42
|
+
createAcqContactDeactivateByCompanyTool
|
|
43
|
+
} from './contact-tools'
|