@lssm/lib.contracts-integrations 9.0.1
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/LICENSE +21 -0
- package/README.md +536 -0
- package/dist/contracts-integrations.feature.d.ts +1 -0
- package/dist/contracts-integrations.feature.js +2 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.js +22 -0
- package/dist/integrations/advertising/index.d.ts +4 -0
- package/dist/integrations/advertising/index.js +2 -0
- package/dist/integrations/advertising/recipe-schema.d.ts +114 -0
- package/dist/integrations/advertising/recipe-schema.js +2 -0
- package/dist/integrations/advertising/recipe.d.ts +53 -0
- package/dist/integrations/advertising/recipe.js +1 -0
- package/dist/integrations/advertising/specs.d.ts +5 -0
- package/dist/integrations/advertising/specs.js +2 -0
- package/dist/integrations/advertising/types.d.ts +97 -0
- package/dist/integrations/advertising/types.js +2 -0
- package/dist/integrations/attio/events.d.ts +4 -0
- package/dist/integrations/attio/events.js +2 -0
- package/dist/integrations/attio/events.test.d.ts +1 -0
- package/dist/integrations/attio/index.d.ts +2 -0
- package/dist/integrations/attio/index.js +2 -0
- package/dist/integrations/attio/operations.d.ts +4 -0
- package/dist/integrations/attio/operations.js +2 -0
- package/dist/integrations/attio/operations.test.d.ts +1 -0
- package/dist/integrations/auth-helpers.d.ts +58 -0
- package/dist/integrations/auth-helpers.js +2 -0
- package/dist/integrations/auth-helpers.test.d.ts +1 -0
- package/dist/integrations/auth.d.ts +96 -0
- package/dist/integrations/auth.js +2 -0
- package/dist/integrations/auth.test.d.ts +1 -0
- package/dist/integrations/binding.d.ts +1 -0
- package/dist/integrations/binding.js +1 -0
- package/dist/integrations/byok.d.ts +75 -0
- package/dist/integrations/byok.js +2 -0
- package/dist/integrations/byok.test.d.ts +1 -0
- package/dist/integrations/catalog.d.ts +84 -0
- package/dist/integrations/catalog.js +2 -0
- package/dist/integrations/catalog.test.d.ts +1 -0
- package/dist/integrations/clay/events.d.ts +93 -0
- package/dist/integrations/clay/events.js +2 -0
- package/dist/integrations/clay/events.test.d.ts +1 -0
- package/dist/integrations/clay/index.d.ts +2 -0
- package/dist/integrations/clay/index.js +2 -0
- package/dist/integrations/clay/operations.d.ts +4 -0
- package/dist/integrations/clay/operations.js +2 -0
- package/dist/integrations/clay/operations.test.d.ts +1 -0
- package/dist/integrations/connection.d.ts +68 -0
- package/dist/integrations/connection.js +1 -0
- package/dist/integrations/credentials.d.ts +56 -0
- package/dist/integrations/credentials.js +2 -0
- package/dist/integrations/credentials.test.d.ts +1 -0
- package/dist/integrations/deployment-topology-model.d.ts +75 -0
- package/dist/integrations/deployment-topology-model.js +2 -0
- package/dist/integrations/deployment-topology-receipt.d.ts +8 -0
- package/dist/integrations/deployment-topology-receipt.js +2 -0
- package/dist/integrations/deployment-topology-validation.d.ts +5 -0
- package/dist/integrations/deployment-topology-validation.js +2 -0
- package/dist/integrations/deployment-topology.d.ts +3 -0
- package/dist/integrations/deployment-topology.js +2 -0
- package/dist/integrations/deployment-topology.test.d.ts +1 -0
- package/dist/integrations/docs/integrations.docblock.d.ts +2 -0
- package/dist/integrations/docs/integrations.docblock.js +101 -0
- package/dist/integrations/email-operations.d.ts +152 -0
- package/dist/integrations/email-operations.js +2 -0
- package/dist/integrations/gtm/capability-ledger.d.ts +48 -0
- package/dist/integrations/gtm/capability-ledger.fixture-helpers.d.ts +9 -0
- package/dist/integrations/gtm/capability-ledger.fixture-helpers.js +2 -0
- package/dist/integrations/gtm/capability-ledger.fixtures.d.ts +5 -0
- package/dist/integrations/gtm/capability-ledger.fixtures.js +2 -0
- package/dist/integrations/gtm/capability-ledger.js +2 -0
- package/dist/integrations/gtm/capability-ledger.test.d.ts +1 -0
- package/dist/integrations/gtm/hosted-mcp.d.ts +12 -0
- package/dist/integrations/gtm/hosted-mcp.js +2 -0
- package/dist/integrations/gtm/index.d.ts +5 -0
- package/dist/integrations/gtm/index.js +2 -0
- package/dist/integrations/gtm/inventory/attio.d.ts +2 -0
- package/dist/integrations/gtm/inventory/attio.js +2 -0
- package/dist/integrations/gtm/inventory/clay.d.ts +2 -0
- package/dist/integrations/gtm/inventory/clay.js +2 -0
- package/dist/integrations/gtm/inventory/fullenrich.d.ts +2 -0
- package/dist/integrations/gtm/inventory/fullenrich.js +2 -0
- package/dist/integrations/gtm/inventory/index.d.ts +4 -0
- package/dist/integrations/gtm/inventory/index.js +2 -0
- package/dist/integrations/gtm/inventory/inventory.test.d.ts +1 -0
- package/dist/integrations/gtm/inventory/types.d.ts +26 -0
- package/dist/integrations/gtm/inventory/types.js +1 -0
- package/dist/integrations/gtm/preflight.d.ts +20 -0
- package/dist/integrations/gtm/preflight.js +2 -0
- package/dist/integrations/gtm/preflight.test.d.ts +1 -0
- package/dist/integrations/gtm/schemas.d.ts +291 -0
- package/dist/integrations/gtm/schemas.js +2 -0
- package/dist/integrations/gtm/webhook-ingress.d.ts +37 -0
- package/dist/integrations/gtm/webhook-ingress.js +2 -0
- package/dist/integrations/gtm/webhook-ingress.test.d.ts +1 -0
- package/dist/integrations/health/contracts/activities.d.ts +162 -0
- package/dist/integrations/health/contracts/activities.js +2 -0
- package/dist/integrations/health/contracts/biometrics.d.ts +156 -0
- package/dist/integrations/health/contracts/biometrics.js +2 -0
- package/dist/integrations/health/contracts/contracts.test.d.ts +1 -0
- package/dist/integrations/health/contracts/index.d.ts +10 -0
- package/dist/integrations/health/contracts/index.js +2 -0
- package/dist/integrations/health/contracts/nutrition.d.ts +162 -0
- package/dist/integrations/health/contracts/nutrition.js +2 -0
- package/dist/integrations/health/contracts/sleep.d.ts +166 -0
- package/dist/integrations/health/contracts/sleep.js +2 -0
- package/dist/integrations/health/contracts/webhooks.d.ts +73 -0
- package/dist/integrations/health/contracts/webhooks.js +2 -0
- package/dist/integrations/health/contracts/workouts.d.ts +166 -0
- package/dist/integrations/health/contracts/workouts.js +2 -0
- package/dist/integrations/health/guards.d.ts +8 -0
- package/dist/integrations/health/guards.js +2 -0
- package/dist/integrations/health/guards.test.d.ts +1 -0
- package/dist/integrations/health/health.capability.d.ts +1 -0
- package/dist/integrations/health/health.capability.js +2 -0
- package/dist/integrations/health/health.feature.d.ts +1 -0
- package/dist/integrations/health/health.feature.js +2 -0
- package/dist/integrations/health/models.d.ts +361 -0
- package/dist/integrations/health/models.js +2 -0
- package/dist/integrations/health/telemetry.d.ts +17 -0
- package/dist/integrations/health/telemetry.js +2 -0
- package/dist/integrations/health/telemetry.test.d.ts +1 -0
- package/dist/integrations/health.d.ts +17 -0
- package/dist/integrations/health.js +2 -0
- package/dist/integrations/health.test.d.ts +1 -0
- package/dist/integrations/index.d.ts +30 -0
- package/dist/integrations/index.js +22 -0
- package/dist/integrations/integrations.capability.d.ts +1 -0
- package/dist/integrations/integrations.capability.js +2 -0
- package/dist/integrations/integrations.feature.d.ts +5 -0
- package/dist/integrations/integrations.feature.js +2 -0
- package/dist/integrations/linkedin/advertising.d.ts +52 -0
- package/dist/integrations/linkedin/advertising.js +1 -0
- package/dist/integrations/linkedin/analytics.d.ts +25 -0
- package/dist/integrations/linkedin/analytics.js +1 -0
- package/dist/integrations/linkedin/capabilities.d.ts +54 -0
- package/dist/integrations/linkedin/capabilities.js +2 -0
- package/dist/integrations/linkedin/capability-evaluation.test.d.ts +1 -0
- package/dist/integrations/linkedin/community.d.ts +77 -0
- package/dist/integrations/linkedin/community.js +1 -0
- package/dist/integrations/linkedin/credentials.d.ts +17 -0
- package/dist/integrations/linkedin/credentials.js +2 -0
- package/dist/integrations/linkedin/host.d.ts +53 -0
- package/dist/integrations/linkedin/host.js +2 -0
- package/dist/integrations/linkedin/host.test.d.ts +1 -0
- package/dist/integrations/linkedin/identity.d.ts +29 -0
- package/dist/integrations/linkedin/identity.js +1 -0
- package/dist/integrations/linkedin/index.d.ts +16 -0
- package/dist/integrations/linkedin/index.js +2 -0
- package/dist/integrations/linkedin/installation.d.ts +54 -0
- package/dist/integrations/linkedin/installation.js +2 -0
- package/dist/integrations/linkedin/linkedin.test.d.ts +1 -0
- package/dist/integrations/linkedin/media-job-state.d.ts +70 -0
- package/dist/integrations/linkedin/media-job-state.js +2 -0
- package/dist/integrations/linkedin/media-job.d.ts +88 -0
- package/dist/integrations/linkedin/media-job.js +2 -0
- package/dist/integrations/linkedin/media-session.d.ts +37 -0
- package/dist/integrations/linkedin/media-session.js +2 -0
- package/dist/integrations/linkedin/media.d.ts +51 -0
- package/dist/integrations/linkedin/media.js +2 -0
- package/dist/integrations/linkedin/messaging.d.ts +70 -0
- package/dist/integrations/linkedin/messaging.js +1 -0
- package/dist/integrations/linkedin/models.d.ts +42 -0
- package/dist/integrations/linkedin/models.js +1 -0
- package/dist/integrations/linkedin/native-publication.d.ts +43 -0
- package/dist/integrations/linkedin/native-publication.js +2 -0
- package/dist/integrations/linkedin/native-withdrawal.d.ts +12 -0
- package/dist/integrations/linkedin/native-withdrawal.js +2 -0
- package/dist/integrations/linkedin/operation-catalog.d.ts +314 -0
- package/dist/integrations/linkedin/operation-catalog.js +2 -0
- package/dist/integrations/linkedin/operations.d.ts +66 -0
- package/dist/integrations/linkedin/operations.js +2 -0
- package/dist/integrations/linkedin/provider.d.ts +72 -0
- package/dist/integrations/linkedin/provider.js +2 -0
- package/dist/integrations/linkedin/sales.d.ts +57 -0
- package/dist/integrations/linkedin/sales.js +1 -0
- package/dist/integrations/linkedin/sync.d.ts +41 -0
- package/dist/integrations/linkedin/sync.js +1 -0
- package/dist/integrations/linkedin/webhooks.d.ts +38 -0
- package/dist/integrations/linkedin/webhooks.js +1 -0
- package/dist/integrations/meeting-recorder/contracts/index.d.ts +7 -0
- package/dist/integrations/meeting-recorder/contracts/index.js +2 -0
- package/dist/integrations/meeting-recorder/contracts/meetings.d.ts +451 -0
- package/dist/integrations/meeting-recorder/contracts/meetings.js +2 -0
- package/dist/integrations/meeting-recorder/contracts/transcripts.d.ts +166 -0
- package/dist/integrations/meeting-recorder/contracts/transcripts.js +2 -0
- package/dist/integrations/meeting-recorder/contracts/webhooks.d.ts +85 -0
- package/dist/integrations/meeting-recorder/contracts/webhooks.js +2 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.capability.d.ts +1 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.capability.js +2 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.feature.d.ts +5 -0
- package/dist/integrations/meeting-recorder/meeting-recorder.feature.js +2 -0
- package/dist/integrations/meeting-recorder/models.d.ts +402 -0
- package/dist/integrations/meeting-recorder/models.js +2 -0
- package/dist/integrations/meeting-recorder/telemetry.d.ts +13 -0
- package/dist/integrations/meeting-recorder/telemetry.js +2 -0
- package/dist/integrations/openbanking/contracts/accounts.d.ts +282 -0
- package/dist/integrations/openbanking/contracts/accounts.js +2 -0
- package/dist/integrations/openbanking/contracts/balances.d.ts +158 -0
- package/dist/integrations/openbanking/contracts/balances.js +2 -0
- package/dist/integrations/openbanking/contracts/index.d.ts +7 -0
- package/dist/integrations/openbanking/contracts/index.js +2 -0
- package/dist/integrations/openbanking/contracts/transactions.d.ts +206 -0
- package/dist/integrations/openbanking/contracts/transactions.js +2 -0
- package/dist/integrations/openbanking/guards.d.ts +8 -0
- package/dist/integrations/openbanking/guards.js +2 -0
- package/dist/integrations/openbanking/guards.test.d.ts +1 -0
- package/dist/integrations/openbanking/models.d.ts +223 -0
- package/dist/integrations/openbanking/models.js +2 -0
- package/dist/integrations/openbanking/openbanking.capability.d.ts +1 -0
- package/dist/integrations/openbanking/openbanking.capability.js +2 -0
- package/dist/integrations/openbanking/openbanking.feature.d.ts +5 -0
- package/dist/integrations/openbanking/openbanking.feature.js +2 -0
- package/dist/integrations/openbanking/telemetry.d.ts +12 -0
- package/dist/integrations/openbanking/telemetry.js +2 -0
- package/dist/integrations/operations.d.ts +430 -0
- package/dist/integrations/operations.js +22 -0
- package/dist/integrations/operations.test.d.ts +1 -0
- package/dist/integrations/providers/analytics-reader.d.ts +103 -0
- package/dist/integrations/providers/analytics-reader.js +1 -0
- package/dist/integrations/providers/analytics-writer.d.ts +6 -0
- package/dist/integrations/providers/analytics-writer.js +1 -0
- package/dist/integrations/providers/analytics.d.ts +47 -0
- package/dist/integrations/providers/analytics.js +1 -0
- package/dist/integrations/providers/apify.d.ts +3 -0
- package/dist/integrations/providers/apify.js +2 -0
- package/dist/integrations/providers/apple-health.d.ts +3 -0
- package/dist/integrations/providers/apple-health.js +2 -0
- package/dist/integrations/providers/async-media-record.d.ts +26 -0
- package/dist/integrations/providers/async-media-record.js +2 -0
- package/dist/integrations/providers/async-media.d.ts +112 -0
- package/dist/integrations/providers/async-media.js +1 -0
- package/dist/integrations/providers/attio.d.ts +4 -0
- package/dist/integrations/providers/attio.js +2 -0
- package/dist/integrations/providers/bright-data.d.ts +3 -0
- package/dist/integrations/providers/bright-data.js +2 -0
- package/dist/integrations/providers/browserbase.d.ts +3 -0
- package/dist/integrations/providers/browserbase.js +2 -0
- package/dist/integrations/providers/calendar.d.js +1 -0
- package/dist/integrations/providers/calendar.d.ts +81 -0
- package/dist/integrations/providers/calendar.js +1 -0
- package/dist/integrations/providers/catalog.d.ts +2 -0
- package/dist/integrations/providers/catalog.js +2 -0
- package/dist/integrations/providers/clay.d.ts +4 -0
- package/dist/integrations/providers/clay.js +2 -0
- package/dist/integrations/providers/communication-channel.d.ts +45 -0
- package/dist/integrations/providers/communication-channel.js +2 -0
- package/dist/integrations/providers/communication-channel.test.d.ts +1 -0
- package/dist/integrations/providers/composio.d.ts +3 -0
- package/dist/integrations/providers/composio.js +2 -0
- package/dist/integrations/providers/crm-external-profiles.test.d.ts +1 -0
- package/dist/integrations/providers/crm-fixture-core.d.ts +20 -0
- package/dist/integrations/providers/crm-fixture-core.js +2 -0
- package/dist/integrations/providers/crm-hubspot-fixture.d.ts +14 -0
- package/dist/integrations/providers/crm-hubspot-fixture.js +2 -0
- package/dist/integrations/providers/crm-salesforce-fixture.d.ts +17 -0
- package/dist/integrations/providers/crm-salesforce-fixture.js +2 -0
- package/dist/integrations/providers/crm-write-proposal-types.d.ts +83 -0
- package/dist/integrations/providers/crm-write-proposal-types.js +2 -0
- package/dist/integrations/providers/crm-write-proposal.d.ts +7 -0
- package/dist/integrations/providers/crm-write-proposal.js +2 -0
- package/dist/integrations/providers/crm-write-proposal.test.d.ts +1 -0
- package/dist/integrations/providers/crm.d.ts +94 -0
- package/dist/integrations/providers/crm.js +2 -0
- package/dist/integrations/providers/crm.test.d.ts +1 -0
- package/dist/integrations/providers/database.d.ts +12 -0
- package/dist/integrations/providers/database.js +1 -0
- package/dist/integrations/providers/deepgram.d.ts +3 -0
- package/dist/integrations/providers/deepgram.js +2 -0
- package/dist/integrations/providers/direct-fetch.d.ts +3 -0
- package/dist/integrations/providers/direct-fetch.js +2 -0
- package/dist/integrations/providers/eightsleep.d.ts +3 -0
- package/dist/integrations/providers/eightsleep.js +2 -0
- package/dist/integrations/providers/elevenlabs.d.ts +3 -0
- package/dist/integrations/providers/elevenlabs.js +2 -0
- package/dist/integrations/providers/email-delivery-events.d.ts +22 -0
- package/dist/integrations/providers/email-delivery-events.js +1 -0
- package/dist/integrations/providers/email.d.ts +187 -0
- package/dist/integrations/providers/email.js +1 -0
- package/dist/integrations/providers/embedding.d.ts +52 -0
- package/dist/integrations/providers/embedding.js +1 -0
- package/dist/integrations/providers/embedding.test.d.ts +1 -0
- package/dist/integrations/providers/fal-image.d.ts +3 -0
- package/dist/integrations/providers/fal-image.js +2 -0
- package/dist/integrations/providers/fal.d.ts +3 -0
- package/dist/integrations/providers/fal.js +2 -0
- package/dist/integrations/providers/fathom.d.ts +3 -0
- package/dist/integrations/providers/fathom.js +2 -0
- package/dist/integrations/providers/firecrawl.d.ts +3 -0
- package/dist/integrations/providers/firecrawl.js +2 -0
- package/dist/integrations/providers/fireflies.d.ts +3 -0
- package/dist/integrations/providers/fireflies.js +2 -0
- package/dist/integrations/providers/fitbit.d.ts +3 -0
- package/dist/integrations/providers/fitbit.js +2 -0
- package/dist/integrations/providers/fullenrich.d.ts +3 -0
- package/dist/integrations/providers/fullenrich.js +2 -0
- package/dist/integrations/providers/garmin.d.ts +3 -0
- package/dist/integrations/providers/garmin.js +2 -0
- package/dist/integrations/providers/gcs-storage.d.ts +3 -0
- package/dist/integrations/providers/gcs-storage.js +2 -0
- package/dist/integrations/providers/gmail.d.ts +3 -0
- package/dist/integrations/providers/gmail.js +2 -0
- package/dist/integrations/providers/google-calendar.d.ts +3 -0
- package/dist/integrations/providers/google-calendar.js +2 -0
- package/dist/integrations/providers/google-drive.d.ts +54 -0
- package/dist/integrations/providers/google-drive.js +2 -0
- package/dist/integrations/providers/gradium.d.ts +3 -0
- package/dist/integrations/providers/gradium.js +2 -0
- package/dist/integrations/providers/granola.d.ts +3 -0
- package/dist/integrations/providers/granola.js +2 -0
- package/dist/integrations/providers/gtm-providers.test.d.ts +1 -0
- package/dist/integrations/providers/health-provider-shared.d.ts +28 -0
- package/dist/integrations/providers/health-provider-shared.js +2 -0
- package/dist/integrations/providers/health-providers.test.d.ts +1 -0
- package/dist/integrations/providers/health.d.ts +186 -0
- package/dist/integrations/providers/health.js +1 -0
- package/dist/integrations/providers/higgsfield.d.ts +3 -0
- package/dist/integrations/providers/higgsfield.js +2 -0
- package/dist/integrations/providers/image.d.ts +85 -0
- package/dist/integrations/providers/image.js +2 -0
- package/dist/integrations/providers/index.d.ts +101 -0
- package/dist/integrations/providers/index.js +2 -0
- package/dist/integrations/providers/jira.d.ts +3 -0
- package/dist/integrations/providers/jira.js +2 -0
- package/dist/integrations/providers/linear.d.ts +3 -0
- package/dist/integrations/providers/linear.js +2 -0
- package/dist/integrations/providers/linkedin-community.d.ts +3 -0
- package/dist/integrations/providers/linkedin-community.js +2 -0
- package/dist/integrations/providers/linkedin-marketing.d.ts +3 -0
- package/dist/integrations/providers/linkedin-marketing.js +2 -0
- package/dist/integrations/providers/linkedin-member.d.ts +3 -0
- package/dist/integrations/providers/linkedin-member.js +2 -0
- package/dist/integrations/providers/linkedin-messaging.d.ts +3 -0
- package/dist/integrations/providers/linkedin-messaging.js +2 -0
- package/dist/integrations/providers/linkedin-providers.test.d.ts +1 -0
- package/dist/integrations/providers/linkedin-sales-navigator.d.ts +3 -0
- package/dist/integrations/providers/linkedin-sales-navigator.js +2 -0
- package/dist/integrations/providers/linkedin-spec-shared.d.ts +16 -0
- package/dist/integrations/providers/linkedin-spec-shared.js +2 -0
- package/dist/integrations/providers/linkup.d.ts +3 -0
- package/dist/integrations/providers/linkup.js +2 -0
- package/dist/integrations/providers/llm.d.ts +79 -0
- package/dist/integrations/providers/llm.js +1 -0
- package/dist/integrations/providers/massive.d.ts +5 -0
- package/dist/integrations/providers/massive.js +2 -0
- package/dist/integrations/providers/meeting-capture.d.ts +56 -0
- package/dist/integrations/providers/meeting-capture.js +1 -0
- package/dist/integrations/providers/meeting-recorder.d.ts +129 -0
- package/dist/integrations/providers/meeting-recorder.js +1 -0
- package/dist/integrations/providers/messaging-github.d.ts +9 -0
- package/dist/integrations/providers/messaging-github.js +2 -0
- package/dist/integrations/providers/messaging-matrix.d.ts +3 -0
- package/dist/integrations/providers/messaging-matrix.js +2 -0
- package/dist/integrations/providers/messaging-slack.d.ts +9 -0
- package/dist/integrations/providers/messaging-slack.js +2 -0
- package/dist/integrations/providers/messaging-teams.d.ts +10 -0
- package/dist/integrations/providers/messaging-teams.js +2 -0
- package/dist/integrations/providers/messaging-telegram.d.ts +3 -0
- package/dist/integrations/providers/messaging-telegram.js +2 -0
- package/dist/integrations/providers/messaging-whatsapp-meta.d.ts +3 -0
- package/dist/integrations/providers/messaging-whatsapp-meta.js +2 -0
- package/dist/integrations/providers/messaging-whatsapp-twilio.d.ts +3 -0
- package/dist/integrations/providers/messaging-whatsapp-twilio.js +2 -0
- package/dist/integrations/providers/messaging.d.ts +30 -0
- package/dist/integrations/providers/messaging.js +1 -0
- package/dist/integrations/providers/mistral-conversational.d.ts +3 -0
- package/dist/integrations/providers/mistral-conversational.js +2 -0
- package/dist/integrations/providers/mistral-stt.d.ts +3 -0
- package/dist/integrations/providers/mistral-stt.js +2 -0
- package/dist/integrations/providers/mistral.d.ts +3 -0
- package/dist/integrations/providers/mistral.js +2 -0
- package/dist/integrations/providers/mode-exemptions.d.ts +10 -0
- package/dist/integrations/providers/mode-exemptions.js +2 -0
- package/dist/integrations/providers/myfitnesspal.d.ts +3 -0
- package/dist/integrations/providers/myfitnesspal.js +2 -0
- package/dist/integrations/providers/notion.d.ts +9 -0
- package/dist/integrations/providers/notion.js +2 -0
- package/dist/integrations/providers/openai-image.d.ts +3 -0
- package/dist/integrations/providers/openai-image.js +2 -0
- package/dist/integrations/providers/openai-realtime.d.ts +3 -0
- package/dist/integrations/providers/openai-realtime.js +2 -0
- package/dist/integrations/providers/openbanking.d.ts +125 -0
- package/dist/integrations/providers/openbanking.js +1 -0
- package/dist/integrations/providers/openwearables.d.ts +3 -0
- package/dist/integrations/providers/openwearables.js +2 -0
- package/dist/integrations/providers/oura.d.ts +3 -0
- package/dist/integrations/providers/oura.js +2 -0
- package/dist/integrations/providers/oxylabs.d.ts +3 -0
- package/dist/integrations/providers/oxylabs.js +2 -0
- package/dist/integrations/providers/payments/capabilities-billing.d.ts +67 -0
- package/dist/integrations/providers/payments/capabilities-billing.js +1 -0
- package/dist/integrations/providers/payments/capabilities-payments.d.ts +57 -0
- package/dist/integrations/providers/payments/capabilities-payments.js +1 -0
- package/dist/integrations/providers/payments/capabilities.d.ts +2 -0
- package/dist/integrations/providers/payments/capabilities.js +1 -0
- package/dist/integrations/providers/payments/context.d.ts +75 -0
- package/dist/integrations/providers/payments/context.js +2 -0
- package/dist/integrations/providers/payments/provider.d.ts +22 -0
- package/dist/integrations/providers/payments/provider.js +1 -0
- package/dist/integrations/providers/payments/resources.d.ts +97 -0
- package/dist/integrations/providers/payments/resources.js +1 -0
- package/dist/integrations/providers/payments/shared.d.ts +61 -0
- package/dist/integrations/providers/payments/shared.js +2 -0
- package/dist/integrations/providers/payments.d.ts +5 -0
- package/dist/integrations/providers/payments.js +2 -0
- package/dist/integrations/providers/payments.test.d.ts +1 -0
- package/dist/integrations/providers/paypal.d.ts +3 -0
- package/dist/integrations/providers/paypal.js +2 -0
- package/dist/integrations/providers/peloton.d.ts +3 -0
- package/dist/integrations/providers/peloton.js +2 -0
- package/dist/integrations/providers/posthog-llm-telemetry.d.ts +51 -0
- package/dist/integrations/providers/posthog-llm-telemetry.js +2 -0
- package/dist/integrations/providers/posthog.d.ts +3 -0
- package/dist/integrations/providers/posthog.js +2 -0
- package/dist/integrations/providers/postmark.d.ts +3 -0
- package/dist/integrations/providers/postmark.js +2 -0
- package/dist/integrations/providers/powens.d.ts +3 -0
- package/dist/integrations/providers/powens.js +2 -0
- package/dist/integrations/providers/project-management.d.ts +196 -0
- package/dist/integrations/providers/project-management.js +2 -0
- package/dist/integrations/providers/provider-delta.d.ts +45 -0
- package/dist/integrations/providers/provider-delta.js +2 -0
- package/dist/integrations/providers/provider-delta.test.d.ts +1 -0
- package/dist/integrations/providers/provider-modes-coverage.test.d.ts +1 -0
- package/dist/integrations/providers/providers.test.d.ts +1 -0
- package/dist/integrations/providers/qdrant.d.ts +3 -0
- package/dist/integrations/providers/qdrant.js +2 -0
- package/dist/integrations/providers/registry.d.ts +24 -0
- package/dist/integrations/providers/registry.js +2 -0
- package/dist/integrations/providers/reworkd.d.ts +3 -0
- package/dist/integrations/providers/reworkd.js +2 -0
- package/dist/integrations/providers/serper.d.ts +3 -0
- package/dist/integrations/providers/serper.js +2 -0
- package/dist/integrations/providers/sillage.d.ts +4 -0
- package/dist/integrations/providers/sillage.js +2 -0
- package/dist/integrations/providers/slng.d.ts +3 -0
- package/dist/integrations/providers/slng.js +2 -0
- package/dist/integrations/providers/sms.d.ts +31 -0
- package/dist/integrations/providers/sms.js +1 -0
- package/dist/integrations/providers/social.d.ts +8 -0
- package/dist/integrations/providers/social.js +2 -0
- package/dist/integrations/providers/storage.d.ts +65 -0
- package/dist/integrations/providers/storage.js +1 -0
- package/dist/integrations/providers/strava.d.ts +3 -0
- package/dist/integrations/providers/strava.js +2 -0
- package/dist/integrations/providers/stripe.d.ts +3 -0
- package/dist/integrations/providers/stripe.js +2 -0
- package/dist/integrations/providers/supabase-postgres.d.ts +3 -0
- package/dist/integrations/providers/supabase-postgres.js +2 -0
- package/dist/integrations/providers/supabase-vector.d.ts +3 -0
- package/dist/integrations/providers/supabase-vector.js +2 -0
- package/dist/integrations/providers/tavily.d.ts +8 -0
- package/dist/integrations/providers/tavily.js +2 -0
- package/dist/integrations/providers/tldv.d.ts +3 -0
- package/dist/integrations/providers/tldv.js +2 -0
- package/dist/integrations/providers/twilio-sms.d.ts +3 -0
- package/dist/integrations/providers/twilio-sms.js +2 -0
- package/dist/integrations/providers/vector-store.d.ts +39 -0
- package/dist/integrations/providers/vector-store.js +1 -0
- package/dist/integrations/providers/video.d.ts +181 -0
- package/dist/integrations/providers/video.js +2 -0
- package/dist/integrations/providers/voice-video-sync.d.ts +29 -0
- package/dist/integrations/providers/voice-video-sync.js +1 -0
- package/dist/integrations/providers/voice.d.ts +180 -0
- package/dist/integrations/providers/voice.js +1 -0
- package/dist/integrations/providers/web-access-shared.d.ts +18 -0
- package/dist/integrations/providers/web-access-shared.js +2 -0
- package/dist/integrations/providers/whoop.d.ts +3 -0
- package/dist/integrations/providers/whoop.js +2 -0
- package/dist/integrations/runtime-transport.test.d.ts +1 -0
- package/dist/integrations/runtime.d.ts +140 -0
- package/dist/integrations/runtime.js +2 -0
- package/dist/integrations/runtime.test.d.ts +1 -0
- package/dist/integrations/sales-intelligence/events.d.ts +182 -0
- package/dist/integrations/sales-intelligence/events.js +2 -0
- package/dist/integrations/sales-intelligence/events.test.d.ts +1 -0
- package/dist/integrations/sales-intelligence/fullenrich-cancel-operation.d.ts +39 -0
- package/dist/integrations/sales-intelligence/fullenrich-cancel-operation.js +2 -0
- package/dist/integrations/sales-intelligence/index.d.ts +7 -0
- package/dist/integrations/sales-intelligence/index.js +2 -0
- package/dist/integrations/sales-intelligence/operation-helpers.d.ts +4 -0
- package/dist/integrations/sales-intelligence/operation-helpers.js +2 -0
- package/dist/integrations/sales-intelligence/operations.d.ts +873 -0
- package/dist/integrations/sales-intelligence/operations.js +2 -0
- package/dist/integrations/sales-intelligence/operations.test.d.ts +1 -0
- package/dist/integrations/sales-intelligence/schemas-events.d.ts +78 -0
- package/dist/integrations/sales-intelligence/schemas-events.js +2 -0
- package/dist/integrations/sales-intelligence/schemas-results.d.ts +69 -0
- package/dist/integrations/sales-intelligence/schemas-results.js +2 -0
- package/dist/integrations/sales-intelligence/schemas.d.ts +73 -0
- package/dist/integrations/sales-intelligence/schemas.js +2 -0
- package/dist/integrations/secrets/aws-secret-manager.d.ts +28 -0
- package/dist/integrations/secrets/aws-secret-manager.js +2 -0
- package/dist/integrations/secrets/env-secret-provider.d.ts +28 -0
- package/dist/integrations/secrets/env-secret-provider.js +2 -0
- package/dist/integrations/secrets/gcp-secret-manager.d.ts +29 -0
- package/dist/integrations/secrets/gcp-secret-manager.js +2 -0
- package/dist/integrations/secrets/index.d.ts +6 -0
- package/dist/integrations/secrets/index.js +2 -0
- package/dist/integrations/secrets/manager.d.ts +44 -0
- package/dist/integrations/secrets/manager.js +2 -0
- package/dist/integrations/secrets/provider.d.ts +49 -0
- package/dist/integrations/secrets/provider.js +2 -0
- package/dist/integrations/secrets/provider.test.d.ts +1 -0
- package/dist/integrations/secrets/scaleway-secret-manager.d.ts +35 -0
- package/dist/integrations/secrets/scaleway-secret-manager.js +2 -0
- package/dist/integrations/secrets-types.d.ts +14 -0
- package/dist/integrations/secrets-types.js +1 -0
- package/dist/integrations/social/index.d.ts +7 -0
- package/dist/integrations/social/index.js +2 -0
- package/dist/integrations/social/instagram.d.ts +86 -0
- package/dist/integrations/social/instagram.js +1 -0
- package/dist/integrations/social/models.d.ts +107 -0
- package/dist/integrations/social/models.js +1 -0
- package/dist/integrations/social/provider.d.ts +46 -0
- package/dist/integrations/social/provider.js +2 -0
- package/dist/integrations/social/social.test.d.ts +1 -0
- package/dist/integrations/social/tracking-models.d.ts +153 -0
- package/dist/integrations/social/tracking-models.js +2 -0
- package/dist/integrations/social/tracking-provider.d.ts +53 -0
- package/dist/integrations/social/tracking-provider.js +1 -0
- package/dist/integrations/social/tracking-store.d.ts +78 -0
- package/dist/integrations/social/tracking-store.js +1 -0
- package/dist/integrations/social/x-publication.d.ts +143 -0
- package/dist/integrations/social/x-publication.js +2 -0
- package/dist/integrations/social/x-upload-state.d.ts +53 -0
- package/dist/integrations/social/x-upload-state.js +2 -0
- package/dist/integrations/social/x-upload.d.ts +111 -0
- package/dist/integrations/social/x-upload.js +2 -0
- package/dist/integrations/social/x-withdrawal.d.ts +13 -0
- package/dist/integrations/social/x-withdrawal.js +2 -0
- package/dist/integrations/social/x.d.ts +84 -0
- package/dist/integrations/social/x.js +1 -0
- package/dist/integrations/spec.d.ts +119 -0
- package/dist/integrations/spec.js +2 -0
- package/dist/integrations/spec.test.d.ts +1 -0
- package/dist/integrations/transport.d.ts +115 -0
- package/dist/integrations/transport.js +2 -0
- package/dist/integrations/transport.test.d.ts +1 -0
- package/dist/integrations/versioning.d.ts +51 -0
- package/dist/integrations/versioning.js +2 -0
- package/dist/integrations/versioning.test.d.ts +1 -0
- package/dist/integrations/web-access/browser-automation.d.ts +134 -0
- package/dist/integrations/web-access/browser-automation.js +2 -0
- package/dist/integrations/web-access/capability-ledger.d.ts +50 -0
- package/dist/integrations/web-access/capability-ledger.js +2 -0
- package/dist/integrations/web-access/capability-ledger.test.d.ts +1 -0
- package/dist/integrations/web-access/events.d.ts +105 -0
- package/dist/integrations/web-access/events.js +2 -0
- package/dist/integrations/web-access/index.d.ts +16 -0
- package/dist/integrations/web-access/index.js +22 -0
- package/dist/integrations/web-access/inventory-definitions-expanded.d.ts +2 -0
- package/dist/integrations/web-access/inventory-definitions-expanded.js +2 -0
- package/dist/integrations/web-access/inventory-definitions.d.ts +17 -0
- package/dist/integrations/web-access/inventory-definitions.js +2 -0
- package/dist/integrations/web-access/inventory-evidence.d.ts +24 -0
- package/dist/integrations/web-access/inventory-evidence.js +2 -0
- package/dist/integrations/web-access/inventory-mappings-browserbase.d.ts +2 -0
- package/dist/integrations/web-access/inventory-mappings-browserbase.js +2 -0
- package/dist/integrations/web-access/inventory-mappings.d.ts +54 -0
- package/dist/integrations/web-access/inventory-mappings.js +2 -0
- package/dist/integrations/web-access/inventory.d.ts +4 -0
- package/dist/integrations/web-access/inventory.js +2 -0
- package/dist/integrations/web-access/models.d.ts +145 -0
- package/dist/integrations/web-access/models.js +2 -0
- package/dist/integrations/web-access/operation-definitions.d.ts +19 -0
- package/dist/integrations/web-access/operation-definitions.js +2 -0
- package/dist/integrations/web-access/operation-errors.d.ts +56 -0
- package/dist/integrations/web-access/operation-errors.js +2 -0
- package/dist/integrations/web-access/operation-output-models.d.ts +177 -0
- package/dist/integrations/web-access/operation-output-models.js +2 -0
- package/dist/integrations/web-access/operation-schema-models.d.ts +453 -0
- package/dist/integrations/web-access/operation-schema-models.js +2 -0
- package/dist/integrations/web-access/operation-schemas.d.ts +165 -0
- package/dist/integrations/web-access/operation-schemas.js +2 -0
- package/dist/integrations/web-access/operations.d.ts +22 -0
- package/dist/integrations/web-access/operations.js +22 -0
- package/dist/integrations/web-access/operations.test.d.ts +1 -0
- package/dist/integrations/web-access/providers.d.ts +56 -0
- package/dist/integrations/web-access/providers.js +1 -0
- package/dist/integrations/web-access/providers.test.d.ts +1 -0
- package/dist/integrations/web-access/schemas.d.ts +118 -0
- package/dist/integrations/web-access/schemas.js +2 -0
- package/dist/node/contracts-integrations.feature.js +1 -0
- package/dist/node/index.js +21 -0
- package/dist/node/integrations/advertising/index.js +1 -0
- package/dist/node/integrations/advertising/recipe-schema.js +1 -0
- package/dist/node/integrations/advertising/recipe.js +0 -0
- package/dist/node/integrations/advertising/specs.js +1 -0
- package/dist/node/integrations/advertising/types.js +1 -0
- package/dist/node/integrations/attio/events.js +1 -0
- package/dist/node/integrations/attio/index.js +1 -0
- package/dist/node/integrations/attio/operations.js +1 -0
- package/dist/node/integrations/auth-helpers.js +1 -0
- package/dist/node/integrations/auth.js +1 -0
- package/dist/node/integrations/binding.js +0 -0
- package/dist/node/integrations/byok.js +1 -0
- package/dist/node/integrations/catalog.js +1 -0
- package/dist/node/integrations/clay/events.js +1 -0
- package/dist/node/integrations/clay/index.js +1 -0
- package/dist/node/integrations/clay/operations.js +1 -0
- package/dist/node/integrations/connection.js +0 -0
- package/dist/node/integrations/credentials.js +1 -0
- package/dist/node/integrations/deployment-topology-model.js +1 -0
- package/dist/node/integrations/deployment-topology-receipt.js +1 -0
- package/dist/node/integrations/deployment-topology-validation.js +1 -0
- package/dist/node/integrations/deployment-topology.js +1 -0
- package/dist/node/integrations/docs/integrations.docblock.js +100 -0
- package/dist/node/integrations/email-operations.js +1 -0
- package/dist/node/integrations/gtm/capability-ledger.fixture-helpers.js +1 -0
- package/dist/node/integrations/gtm/capability-ledger.fixtures.js +1 -0
- package/dist/node/integrations/gtm/capability-ledger.js +1 -0
- package/dist/node/integrations/gtm/hosted-mcp.js +1 -0
- package/dist/node/integrations/gtm/index.js +1 -0
- package/dist/node/integrations/gtm/inventory/attio.js +1 -0
- package/dist/node/integrations/gtm/inventory/clay.js +1 -0
- package/dist/node/integrations/gtm/inventory/fullenrich.js +1 -0
- package/dist/node/integrations/gtm/inventory/index.js +1 -0
- package/dist/node/integrations/gtm/inventory/types.js +0 -0
- package/dist/node/integrations/gtm/preflight.js +1 -0
- package/dist/node/integrations/gtm/schemas.js +1 -0
- package/dist/node/integrations/gtm/webhook-ingress.js +1 -0
- package/dist/node/integrations/health/contracts/activities.js +1 -0
- package/dist/node/integrations/health/contracts/biometrics.js +1 -0
- package/dist/node/integrations/health/contracts/index.js +1 -0
- package/dist/node/integrations/health/contracts/nutrition.js +1 -0
- package/dist/node/integrations/health/contracts/sleep.js +1 -0
- package/dist/node/integrations/health/contracts/webhooks.js +1 -0
- package/dist/node/integrations/health/contracts/workouts.js +1 -0
- package/dist/node/integrations/health/guards.js +1 -0
- package/dist/node/integrations/health/health.capability.js +1 -0
- package/dist/node/integrations/health/health.feature.js +1 -0
- package/dist/node/integrations/health/models.js +1 -0
- package/dist/node/integrations/health/telemetry.js +1 -0
- package/dist/node/integrations/health.js +1 -0
- package/dist/node/integrations/index.js +21 -0
- package/dist/node/integrations/integrations.capability.js +1 -0
- package/dist/node/integrations/integrations.feature.js +1 -0
- package/dist/node/integrations/linkedin/advertising.js +0 -0
- package/dist/node/integrations/linkedin/analytics.js +0 -0
- package/dist/node/integrations/linkedin/capabilities.js +1 -0
- package/dist/node/integrations/linkedin/community.js +0 -0
- package/dist/node/integrations/linkedin/credentials.js +1 -0
- package/dist/node/integrations/linkedin/host.js +1 -0
- package/dist/node/integrations/linkedin/identity.js +0 -0
- package/dist/node/integrations/linkedin/index.js +1 -0
- package/dist/node/integrations/linkedin/installation.js +1 -0
- package/dist/node/integrations/linkedin/media-job-state.js +1 -0
- package/dist/node/integrations/linkedin/media-job.js +1 -0
- package/dist/node/integrations/linkedin/media-session.js +1 -0
- package/dist/node/integrations/linkedin/media.js +1 -0
- package/dist/node/integrations/linkedin/messaging.js +0 -0
- package/dist/node/integrations/linkedin/models.js +0 -0
- package/dist/node/integrations/linkedin/native-publication.js +1 -0
- package/dist/node/integrations/linkedin/native-withdrawal.js +1 -0
- package/dist/node/integrations/linkedin/operation-catalog.js +1 -0
- package/dist/node/integrations/linkedin/operations.js +1 -0
- package/dist/node/integrations/linkedin/provider.js +1 -0
- package/dist/node/integrations/linkedin/sales.js +0 -0
- package/dist/node/integrations/linkedin/sync.js +0 -0
- package/dist/node/integrations/linkedin/webhooks.js +0 -0
- package/dist/node/integrations/meeting-recorder/contracts/index.js +1 -0
- package/dist/node/integrations/meeting-recorder/contracts/meetings.js +1 -0
- package/dist/node/integrations/meeting-recorder/contracts/transcripts.js +1 -0
- package/dist/node/integrations/meeting-recorder/contracts/webhooks.js +1 -0
- package/dist/node/integrations/meeting-recorder/meeting-recorder.capability.js +1 -0
- package/dist/node/integrations/meeting-recorder/meeting-recorder.feature.js +1 -0
- package/dist/node/integrations/meeting-recorder/models.js +1 -0
- package/dist/node/integrations/meeting-recorder/telemetry.js +1 -0
- package/dist/node/integrations/openbanking/contracts/accounts.js +1 -0
- package/dist/node/integrations/openbanking/contracts/balances.js +1 -0
- package/dist/node/integrations/openbanking/contracts/index.js +1 -0
- package/dist/node/integrations/openbanking/contracts/transactions.js +1 -0
- package/dist/node/integrations/openbanking/guards.js +1 -0
- package/dist/node/integrations/openbanking/models.js +1 -0
- package/dist/node/integrations/openbanking/openbanking.capability.js +1 -0
- package/dist/node/integrations/openbanking/openbanking.feature.js +1 -0
- package/dist/node/integrations/openbanking/telemetry.js +1 -0
- package/dist/node/integrations/operations.js +21 -0
- package/dist/node/integrations/providers/analytics-reader.js +0 -0
- package/dist/node/integrations/providers/analytics-writer.js +0 -0
- package/dist/node/integrations/providers/analytics.js +0 -0
- package/dist/node/integrations/providers/apify.js +1 -0
- package/dist/node/integrations/providers/apple-health.js +1 -0
- package/dist/node/integrations/providers/async-media-record.js +1 -0
- package/dist/node/integrations/providers/async-media.js +0 -0
- package/dist/node/integrations/providers/attio.js +1 -0
- package/dist/node/integrations/providers/bright-data.js +1 -0
- package/dist/node/integrations/providers/browserbase.js +1 -0
- package/dist/node/integrations/providers/calendar.d.js +0 -0
- package/dist/node/integrations/providers/calendar.js +0 -0
- package/dist/node/integrations/providers/catalog.js +1 -0
- package/dist/node/integrations/providers/clay.js +1 -0
- package/dist/node/integrations/providers/communication-channel.js +1 -0
- package/dist/node/integrations/providers/composio.js +1 -0
- package/dist/node/integrations/providers/crm-fixture-core.js +1 -0
- package/dist/node/integrations/providers/crm-hubspot-fixture.js +1 -0
- package/dist/node/integrations/providers/crm-salesforce-fixture.js +1 -0
- package/dist/node/integrations/providers/crm-write-proposal-types.js +1 -0
- package/dist/node/integrations/providers/crm-write-proposal.js +1 -0
- package/dist/node/integrations/providers/crm.js +1 -0
- package/dist/node/integrations/providers/database.js +0 -0
- package/dist/node/integrations/providers/deepgram.js +1 -0
- package/dist/node/integrations/providers/direct-fetch.js +1 -0
- package/dist/node/integrations/providers/eightsleep.js +1 -0
- package/dist/node/integrations/providers/elevenlabs.js +1 -0
- package/dist/node/integrations/providers/email-delivery-events.js +0 -0
- package/dist/node/integrations/providers/email.js +0 -0
- package/dist/node/integrations/providers/embedding.js +0 -0
- package/dist/node/integrations/providers/fal-image.js +1 -0
- package/dist/node/integrations/providers/fal.js +1 -0
- package/dist/node/integrations/providers/fathom.js +1 -0
- package/dist/node/integrations/providers/firecrawl.js +1 -0
- package/dist/node/integrations/providers/fireflies.js +1 -0
- package/dist/node/integrations/providers/fitbit.js +1 -0
- package/dist/node/integrations/providers/fullenrich.js +1 -0
- package/dist/node/integrations/providers/garmin.js +1 -0
- package/dist/node/integrations/providers/gcs-storage.js +1 -0
- package/dist/node/integrations/providers/gmail.js +1 -0
- package/dist/node/integrations/providers/google-calendar.js +1 -0
- package/dist/node/integrations/providers/google-drive.js +1 -0
- package/dist/node/integrations/providers/gradium.js +1 -0
- package/dist/node/integrations/providers/granola.js +1 -0
- package/dist/node/integrations/providers/health-provider-shared.js +1 -0
- package/dist/node/integrations/providers/health.js +0 -0
- package/dist/node/integrations/providers/higgsfield.js +1 -0
- package/dist/node/integrations/providers/image.js +1 -0
- package/dist/node/integrations/providers/index.js +1 -0
- package/dist/node/integrations/providers/jira.js +1 -0
- package/dist/node/integrations/providers/linear.js +1 -0
- package/dist/node/integrations/providers/linkedin-community.js +1 -0
- package/dist/node/integrations/providers/linkedin-marketing.js +1 -0
- package/dist/node/integrations/providers/linkedin-member.js +1 -0
- package/dist/node/integrations/providers/linkedin-messaging.js +1 -0
- package/dist/node/integrations/providers/linkedin-sales-navigator.js +1 -0
- package/dist/node/integrations/providers/linkedin-spec-shared.js +1 -0
- package/dist/node/integrations/providers/linkup.js +1 -0
- package/dist/node/integrations/providers/llm.js +0 -0
- package/dist/node/integrations/providers/massive.js +1 -0
- package/dist/node/integrations/providers/meeting-capture.js +0 -0
- package/dist/node/integrations/providers/meeting-recorder.js +0 -0
- package/dist/node/integrations/providers/messaging-github.js +1 -0
- package/dist/node/integrations/providers/messaging-matrix.js +1 -0
- package/dist/node/integrations/providers/messaging-slack.js +1 -0
- package/dist/node/integrations/providers/messaging-teams.js +1 -0
- package/dist/node/integrations/providers/messaging-telegram.js +1 -0
- package/dist/node/integrations/providers/messaging-whatsapp-meta.js +1 -0
- package/dist/node/integrations/providers/messaging-whatsapp-twilio.js +1 -0
- package/dist/node/integrations/providers/messaging.js +0 -0
- package/dist/node/integrations/providers/mistral-conversational.js +1 -0
- package/dist/node/integrations/providers/mistral-stt.js +1 -0
- package/dist/node/integrations/providers/mistral.js +1 -0
- package/dist/node/integrations/providers/mode-exemptions.js +1 -0
- package/dist/node/integrations/providers/myfitnesspal.js +1 -0
- package/dist/node/integrations/providers/notion.js +1 -0
- package/dist/node/integrations/providers/openai-image.js +1 -0
- package/dist/node/integrations/providers/openai-realtime.js +1 -0
- package/dist/node/integrations/providers/openbanking.js +0 -0
- package/dist/node/integrations/providers/openwearables.js +1 -0
- package/dist/node/integrations/providers/oura.js +1 -0
- package/dist/node/integrations/providers/oxylabs.js +1 -0
- package/dist/node/integrations/providers/payments/capabilities-billing.js +0 -0
- package/dist/node/integrations/providers/payments/capabilities-payments.js +0 -0
- package/dist/node/integrations/providers/payments/capabilities.js +0 -0
- package/dist/node/integrations/providers/payments/context.js +1 -0
- package/dist/node/integrations/providers/payments/provider.js +0 -0
- package/dist/node/integrations/providers/payments/resources.js +0 -0
- package/dist/node/integrations/providers/payments/shared.js +1 -0
- package/dist/node/integrations/providers/payments.js +1 -0
- package/dist/node/integrations/providers/paypal.js +1 -0
- package/dist/node/integrations/providers/peloton.js +1 -0
- package/dist/node/integrations/providers/posthog-llm-telemetry.js +1 -0
- package/dist/node/integrations/providers/posthog.js +1 -0
- package/dist/node/integrations/providers/postmark.js +1 -0
- package/dist/node/integrations/providers/powens.js +1 -0
- package/dist/node/integrations/providers/project-management.js +1 -0
- package/dist/node/integrations/providers/provider-delta.js +1 -0
- package/dist/node/integrations/providers/qdrant.js +1 -0
- package/dist/node/integrations/providers/registry.js +1 -0
- package/dist/node/integrations/providers/reworkd.js +1 -0
- package/dist/node/integrations/providers/serper.js +1 -0
- package/dist/node/integrations/providers/sillage.js +1 -0
- package/dist/node/integrations/providers/slng.js +1 -0
- package/dist/node/integrations/providers/sms.js +0 -0
- package/dist/node/integrations/providers/social.js +1 -0
- package/dist/node/integrations/providers/storage.js +0 -0
- package/dist/node/integrations/providers/strava.js +1 -0
- package/dist/node/integrations/providers/stripe.js +1 -0
- package/dist/node/integrations/providers/supabase-postgres.js +1 -0
- package/dist/node/integrations/providers/supabase-vector.js +1 -0
- package/dist/node/integrations/providers/tavily.js +1 -0
- package/dist/node/integrations/providers/tldv.js +1 -0
- package/dist/node/integrations/providers/twilio-sms.js +1 -0
- package/dist/node/integrations/providers/vector-store.js +0 -0
- package/dist/node/integrations/providers/video.js +1 -0
- package/dist/node/integrations/providers/voice-video-sync.js +0 -0
- package/dist/node/integrations/providers/voice.js +0 -0
- package/dist/node/integrations/providers/web-access-shared.js +1 -0
- package/dist/node/integrations/providers/whoop.js +1 -0
- package/dist/node/integrations/runtime.js +1 -0
- package/dist/node/integrations/sales-intelligence/events.js +1 -0
- package/dist/node/integrations/sales-intelligence/fullenrich-cancel-operation.js +1 -0
- package/dist/node/integrations/sales-intelligence/index.js +1 -0
- package/dist/node/integrations/sales-intelligence/operation-helpers.js +1 -0
- package/dist/node/integrations/sales-intelligence/operations.js +1 -0
- package/dist/node/integrations/sales-intelligence/schemas-events.js +1 -0
- package/dist/node/integrations/sales-intelligence/schemas-results.js +1 -0
- package/dist/node/integrations/sales-intelligence/schemas.js +1 -0
- package/dist/node/integrations/secrets/aws-secret-manager.js +1 -0
- package/dist/node/integrations/secrets/env-secret-provider.js +1 -0
- package/dist/node/integrations/secrets/gcp-secret-manager.js +1 -0
- package/dist/node/integrations/secrets/index.js +1 -0
- package/dist/node/integrations/secrets/manager.js +1 -0
- package/dist/node/integrations/secrets/provider.js +1 -0
- package/dist/node/integrations/secrets/scaleway-secret-manager.js +1 -0
- package/dist/node/integrations/secrets-types.js +0 -0
- package/dist/node/integrations/social/index.js +1 -0
- package/dist/node/integrations/social/instagram.js +0 -0
- package/dist/node/integrations/social/models.js +0 -0
- package/dist/node/integrations/social/provider.js +1 -0
- package/dist/node/integrations/social/tracking-models.js +1 -0
- package/dist/node/integrations/social/tracking-provider.js +0 -0
- package/dist/node/integrations/social/tracking-store.js +0 -0
- package/dist/node/integrations/social/x-publication.js +1 -0
- package/dist/node/integrations/social/x-upload-state.js +1 -0
- package/dist/node/integrations/social/x-upload.js +1 -0
- package/dist/node/integrations/social/x-withdrawal.js +1 -0
- package/dist/node/integrations/social/x.js +0 -0
- package/dist/node/integrations/spec.js +1 -0
- package/dist/node/integrations/transport.js +1 -0
- package/dist/node/integrations/versioning.js +1 -0
- package/dist/node/integrations/web-access/browser-automation.js +1 -0
- package/dist/node/integrations/web-access/capability-ledger.js +1 -0
- package/dist/node/integrations/web-access/events.js +1 -0
- package/dist/node/integrations/web-access/index.js +21 -0
- package/dist/node/integrations/web-access/inventory-definitions-expanded.js +1 -0
- package/dist/node/integrations/web-access/inventory-definitions.js +1 -0
- package/dist/node/integrations/web-access/inventory-evidence.js +1 -0
- package/dist/node/integrations/web-access/inventory-mappings-browserbase.js +1 -0
- package/dist/node/integrations/web-access/inventory-mappings.js +1 -0
- package/dist/node/integrations/web-access/inventory.js +1 -0
- package/dist/node/integrations/web-access/models.js +1 -0
- package/dist/node/integrations/web-access/operation-definitions.js +1 -0
- package/dist/node/integrations/web-access/operation-errors.js +1 -0
- package/dist/node/integrations/web-access/operation-output-models.js +1 -0
- package/dist/node/integrations/web-access/operation-schema-models.js +1 -0
- package/dist/node/integrations/web-access/operation-schemas.js +1 -0
- package/dist/node/integrations/web-access/operations.js +21 -0
- package/dist/node/integrations/web-access/providers.js +0 -0
- package/dist/node/integrations/web-access/schemas.js +1 -0
- package/package.json +3606 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var p="crm.read.v1";function w(e){if([e.providerKey,e.externalId,e.capturedAt,e.provenanceRefId,e.retentionPolicyRefId,e.dedupeKey,e.idempotencyKey].some((r)=>r.trim().length===0))throw new i("External profiles require complete identity and governance metadata");if(e.evidenceRefIds.length===0)throw new i("External profiles require at least one evidence reference");if(e.legalBasis==="consent"&&!e.consentRefId)throw new i("Consent legal basis requires a consent reference");let t;try{t=new URL(e.canonicalUrl)}catch{throw new i("External profile URL is invalid")}if(t.protocol!=="https:"||t.username!==""||t.password!==""||t.search!==""||t.hash!=="")throw new i("External profile URL must be a canonical HTTPS URL");if(e.providerKey==="linkedin"){let r=t.hostname==="linkedin.com"||t.hostname==="www.linkedin.com",a=e.kind==="professional-profile"?"/in/":"/company/";if(!r||!t.pathname.startsWith(a))throw new i("LinkedIn profile URL does not match its governed profile kind")}}class i extends Error{constructor(e){super(e);this.name="CrmReadContractError"}}function m(e){if(e.contractVersion!=="crm.read.v1")throw new i("Unsupported CRM read contract version");if([e.requestId,e.tenant.tenantId,e.tenant.workspaceId,e.tenant.actorPrincipalId,e.tenant.authorityEvaluationRefId,e.legal.retentionPolicyRefId].some((r)=>r.trim().length===0))throw new i("CRM reads require complete tenant governance");if(e.legal.legalBasis==="consent"&&!e.legal.consentRefId)throw new i("Consent legal basis requires a consent reference");if(e.entityKinds.length===0)throw new i("At least one CRM entity kind is required");let t=new Set(["contact","company","deal"]);if(e.entityKinds.length>t.size||new Set(e.entityKinds).size!==e.entityKinds.length||e.entityKinds.some((r)=>!t.has(r)))throw new i("CRM entity kinds must be unique and supported");if(!Number.isInteger(e.pageSize)||e.pageSize<1||e.pageSize>100)throw new i("CRM page size must be an integer from 1 to 100")}function g(e){let n=e.records.map((t)=>({...t}));return I(n),{providerKey:e.providerKey,readPage:(t)=>f(e,n,t)}}function f(e,n,t){m(t),R(n,t.tenant.tenantId);let r=[...new Set(t.entityKinds)].sort().join(","),a=x(e.providerKey,t,r),s=n.filter((o)=>!o.tombstoned&&t.entityKinds.includes(o.kind)),d=s.slice(a,a+t.pageSize),c=a+d.length,l=c<s.length;return{contractVersion:p,requestId:t.requestId,providerKey:e.providerKey,tenantId:t.tenant.tenantId,workspaceId:t.tenant.workspaceId,items:d.map((o)=>y(e,t,o)),nextCursor:l?C(e.providerKey,t,r,c):void 0,hasMore:l,readOnly:!0}}function y(e,n,t){let r=`${e.providerKey}:${t.kind}:${t.sourceObjectId}`;return{id:r,kind:t.kind,tenantId:n.tenant.tenantId,workspaceId:n.tenant.workspaceId,displayName:t.displayName,attributes:{...t.attributes},provenance:{providerKey:e.providerKey,sourceObjectType:t.sourceObjectType,sourceObjectId:t.sourceObjectId,sourceRevision:t.sourceRevision,sourceUpdatedAt:t.sourceUpdatedAt,capturedAt:e.capturedAt,evidenceRefIds:[...t.evidenceRefIds]},legal:{...n.legal},dedupeKey:`${n.tenant.tenantId}:${r}`,idempotencyKey:`${n.tenant.tenantId}:${r}:${t.sourceRevision}`}}function R(e,n){if(e.some((t)=>t.tenantId!==n))throw new i("CRM fixture crossed the requested tenant boundary")}function I(e){if(e.some((n)=>n.sourceObjectId.trim().length===0||n.sourceRevision.trim().length===0||n.displayName.trim().length===0||n.evidenceRefIds.length===0||Number.isNaN(Date.parse(n.sourceUpdatedAt))))throw new i("CRM fixtures require complete provenance and evidence")}function C(e,n,t,r){return[p,e,n.tenant.tenantId,n.tenant.workspaceId,t,r].map(encodeURIComponent).join("|")}function x(e,n,t){if(!n.cursor)return 0;let r=n.cursor.split("|").map(decodeURIComponent),[a,s,d,c,l,o]=r;if(r.length!==6||a!==p||s!==e||d!==n.tenant.tenantId||c!==n.tenant.workspaceId||l!==t)throw new i("CRM cursor is outside the requested read scope");let u=Number(o);if(!Number.isInteger(u)||u<0)throw new i("CRM cursor offset is invalid");return u}function E(e){return g({providerKey:"hubspot-fixture",capturedAt:e.capturedAt,records:e.records.map(v)})}function v(e){let n={contacts:"contact",companies:"company",deals:"deal"};return{tenantId:e.tenantId,kind:n[e.objectType],sourceObjectType:e.objectType,sourceObjectId:e.id,sourceRevision:e.revision,sourceUpdatedAt:e.updatedAt,evidenceRefIds:[...e.evidenceRefIds],displayName:h(e.properties),attributes:{...e.properties},tombstoned:e.archived}}function h(e){let n=[e.firstname,e.lastname].filter(Boolean).join(" "),t=e.name??e.dealname??n;if(typeof t!=="string"||t.length===0)throw Error("HubSpot-shaped CRM fixture requires a display name");return t}export{E as createHubSpotCrmFixtureAdapter};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export interface SalesforceCrmFixtureRecord {
|
|
2
|
+
tenantId: string;
|
|
3
|
+
attributes: {
|
|
4
|
+
type: 'Contact' | 'Account' | 'Opportunity';
|
|
5
|
+
};
|
|
6
|
+
Id: string;
|
|
7
|
+
Name: string;
|
|
8
|
+
LastModifiedDate: string;
|
|
9
|
+
revision: string;
|
|
10
|
+
evidenceRefIds: readonly string[];
|
|
11
|
+
fields: Readonly<Record<string, string | number | boolean | null>>;
|
|
12
|
+
IsDeleted?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export declare function createSalesforceCrmFixtureAdapter(options: {
|
|
15
|
+
capturedAt: string;
|
|
16
|
+
records: readonly SalesforceCrmFixtureRecord[];
|
|
17
|
+
}): import("./crm").SynchronousCrmReadProvider;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var p="crm.read.v1";function w(e){if([e.providerKey,e.externalId,e.capturedAt,e.provenanceRefId,e.retentionPolicyRefId,e.dedupeKey,e.idempotencyKey].some((r)=>r.trim().length===0))throw new i("External profiles require complete identity and governance metadata");if(e.evidenceRefIds.length===0)throw new i("External profiles require at least one evidence reference");if(e.legalBasis==="consent"&&!e.consentRefId)throw new i("Consent legal basis requires a consent reference");let t;try{t=new URL(e.canonicalUrl)}catch{throw new i("External profile URL is invalid")}if(t.protocol!=="https:"||t.username!==""||t.password!==""||t.search!==""||t.hash!=="")throw new i("External profile URL must be a canonical HTTPS URL");if(e.providerKey==="linkedin"){let r=t.hostname==="linkedin.com"||t.hostname==="www.linkedin.com",a=e.kind==="professional-profile"?"/in/":"/company/";if(!r||!t.pathname.startsWith(a))throw new i("LinkedIn profile URL does not match its governed profile kind")}}class i extends Error{constructor(e){super(e);this.name="CrmReadContractError"}}function f(e){if(e.contractVersion!=="crm.read.v1")throw new i("Unsupported CRM read contract version");if([e.requestId,e.tenant.tenantId,e.tenant.workspaceId,e.tenant.actorPrincipalId,e.tenant.authorityEvaluationRefId,e.legal.retentionPolicyRefId].some((r)=>r.trim().length===0))throw new i("CRM reads require complete tenant governance");if(e.legal.legalBasis==="consent"&&!e.legal.consentRefId)throw new i("Consent legal basis requires a consent reference");if(e.entityKinds.length===0)throw new i("At least one CRM entity kind is required");let t=new Set(["contact","company","deal"]);if(e.entityKinds.length>t.size||new Set(e.entityKinds).size!==e.entityKinds.length||e.entityKinds.some((r)=>!t.has(r)))throw new i("CRM entity kinds must be unique and supported");if(!Number.isInteger(e.pageSize)||e.pageSize<1||e.pageSize>100)throw new i("CRM page size must be an integer from 1 to 100")}function g(e){let n=e.records.map((t)=>({...t}));return I(n),{providerKey:e.providerKey,readPage:(t)=>m(e,n,t)}}function m(e,n,t){f(t),R(n,t.tenant.tenantId);let r=[...new Set(t.entityKinds)].sort().join(","),a=x(e.providerKey,t,r),s=n.filter((o)=>!o.tombstoned&&t.entityKinds.includes(o.kind)),d=s.slice(a,a+t.pageSize),c=a+d.length,l=c<s.length;return{contractVersion:p,requestId:t.requestId,providerKey:e.providerKey,tenantId:t.tenant.tenantId,workspaceId:t.tenant.workspaceId,items:d.map((o)=>y(e,t,o)),nextCursor:l?C(e.providerKey,t,r,c):void 0,hasMore:l,readOnly:!0}}function y(e,n,t){let r=`${e.providerKey}:${t.kind}:${t.sourceObjectId}`;return{id:r,kind:t.kind,tenantId:n.tenant.tenantId,workspaceId:n.tenant.workspaceId,displayName:t.displayName,attributes:{...t.attributes},provenance:{providerKey:e.providerKey,sourceObjectType:t.sourceObjectType,sourceObjectId:t.sourceObjectId,sourceRevision:t.sourceRevision,sourceUpdatedAt:t.sourceUpdatedAt,capturedAt:e.capturedAt,evidenceRefIds:[...t.evidenceRefIds]},legal:{...n.legal},dedupeKey:`${n.tenant.tenantId}:${r}`,idempotencyKey:`${n.tenant.tenantId}:${r}:${t.sourceRevision}`}}function R(e,n){if(e.some((t)=>t.tenantId!==n))throw new i("CRM fixture crossed the requested tenant boundary")}function I(e){if(e.some((n)=>n.sourceObjectId.trim().length===0||n.sourceRevision.trim().length===0||n.displayName.trim().length===0||n.evidenceRefIds.length===0||Number.isNaN(Date.parse(n.sourceUpdatedAt))))throw new i("CRM fixtures require complete provenance and evidence")}function C(e,n,t,r){return[p,e,n.tenant.tenantId,n.tenant.workspaceId,t,r].map(encodeURIComponent).join("|")}function x(e,n,t){if(!n.cursor)return 0;let r=n.cursor.split("|").map(decodeURIComponent),[a,s,d,c,l,o]=r;if(r.length!==6||a!==p||s!==e||d!==n.tenant.tenantId||c!==n.tenant.workspaceId||l!==t)throw new i("CRM cursor is outside the requested read scope");let u=Number(o);if(!Number.isInteger(u)||u<0)throw new i("CRM cursor offset is invalid");return u}function A(e){return g({providerKey:"salesforce-fixture",capturedAt:e.capturedAt,records:e.records.map(v)})}function v(e){let n={Contact:"contact",Account:"company",Opportunity:"deal"};return{tenantId:e.tenantId,kind:n[e.attributes.type],sourceObjectType:e.attributes.type,sourceObjectId:e.Id,sourceRevision:e.revision,sourceUpdatedAt:e.LastModifiedDate,evidenceRefIds:[...e.evidenceRefIds],displayName:e.Name,attributes:{...e.fields},tombstoned:e.IsDeleted}}export{A as createSalesforceCrmFixtureAdapter};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { CrmEntityKind, CrmLegalMetadata, CrmScalar, CrmTenantBoundary } from './crm.js';
|
|
2
|
+
export declare const CRM_WRITE_PROPOSAL_CONTRACT_VERSION: 'crm.write-proposal.v1';
|
|
3
|
+
export declare const CRM_WRITE_PROPOSAL_SCHEMA_IDENTITY: 'crm.write-proposal.v1|tenant,legal,freshness,evidence,cost,create,update,link,diff,receipt|proposal-only,dry-run,no-mutation';
|
|
4
|
+
export declare const CRM_WRITE_PROPOSAL_SCHEMA_FINGERPRINT: 'sha256:facdf429a5eaa779ebfde3d0a781dbdd777d694398e7f23ed5a652249bad988e';
|
|
5
|
+
export interface CrmWriteEvidenceMetadata {
|
|
6
|
+
sourceRefIds: readonly string[];
|
|
7
|
+
evidenceRefIds: readonly string[];
|
|
8
|
+
deletionEvidenceRefIds: readonly string[];
|
|
9
|
+
}
|
|
10
|
+
export interface CrmWriteFreshnessMetadata {
|
|
11
|
+
observedAt: string;
|
|
12
|
+
expiresAt: string;
|
|
13
|
+
}
|
|
14
|
+
export interface CrmWriteCostMetadata {
|
|
15
|
+
currency: string;
|
|
16
|
+
estimatedMinorUnits: number;
|
|
17
|
+
pricingRefId: string;
|
|
18
|
+
}
|
|
19
|
+
export interface CrmWriteTargetRef {
|
|
20
|
+
providerKey: string;
|
|
21
|
+
entityKind: CrmEntityKind;
|
|
22
|
+
sourceObjectId: string;
|
|
23
|
+
expectedSourceRevision: string;
|
|
24
|
+
}
|
|
25
|
+
export type CrmWriteProposalIntent = {
|
|
26
|
+
kind: 'create';
|
|
27
|
+
entityKind: CrmEntityKind;
|
|
28
|
+
externalKey: string;
|
|
29
|
+
attributes: Readonly<Record<string, CrmScalar>>;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'update';
|
|
32
|
+
target: CrmWriteTargetRef;
|
|
33
|
+
desiredAttributes: Readonly<Record<string, CrmScalar>>;
|
|
34
|
+
} | {
|
|
35
|
+
kind: 'link';
|
|
36
|
+
relation: string;
|
|
37
|
+
from: CrmWriteTargetRef;
|
|
38
|
+
to: CrmWriteTargetRef;
|
|
39
|
+
};
|
|
40
|
+
export interface CrmWriteProposal {
|
|
41
|
+
contractVersion: typeof CRM_WRITE_PROPOSAL_CONTRACT_VERSION;
|
|
42
|
+
proposalId: string;
|
|
43
|
+
createdAt: string;
|
|
44
|
+
tenant: CrmTenantBoundary;
|
|
45
|
+
legal: CrmLegalMetadata;
|
|
46
|
+
freshness: CrmWriteFreshnessMetadata;
|
|
47
|
+
evidence: CrmWriteEvidenceMetadata;
|
|
48
|
+
cost: CrmWriteCostMetadata;
|
|
49
|
+
intent: CrmWriteProposalIntent;
|
|
50
|
+
}
|
|
51
|
+
export interface CrmObservedEntity {
|
|
52
|
+
target: Omit<CrmWriteTargetRef, 'expectedSourceRevision'> & {
|
|
53
|
+
sourceRevision: string;
|
|
54
|
+
};
|
|
55
|
+
externalKey?: string;
|
|
56
|
+
attributes: Readonly<Record<string, CrmScalar>>;
|
|
57
|
+
deletionState: 'active' | 'tombstoned';
|
|
58
|
+
links: readonly {
|
|
59
|
+
relation: string;
|
|
60
|
+
targetSourceObjectId: string;
|
|
61
|
+
}[];
|
|
62
|
+
}
|
|
63
|
+
export interface CrmWriteDryRunChange {
|
|
64
|
+
operation: 'create' | 'set' | 'link';
|
|
65
|
+
path: string;
|
|
66
|
+
before?: CrmScalar;
|
|
67
|
+
after?: CrmScalar;
|
|
68
|
+
}
|
|
69
|
+
export interface CrmWriteDryRunReceipt {
|
|
70
|
+
contractVersion: typeof CRM_WRITE_PROPOSAL_CONTRACT_VERSION;
|
|
71
|
+
receiptId: string;
|
|
72
|
+
proposalId: string;
|
|
73
|
+
status: 'ready' | 'conflict' | 'stale';
|
|
74
|
+
reasons: readonly string[];
|
|
75
|
+
changes: readonly CrmWriteDryRunChange[];
|
|
76
|
+
diffFingerprint: string;
|
|
77
|
+
mutationPerformed: false;
|
|
78
|
+
tenant: CrmTenantBoundary;
|
|
79
|
+
legal: CrmLegalMetadata;
|
|
80
|
+
freshness: CrmWriteFreshnessMetadata;
|
|
81
|
+
evidence: CrmWriteEvidenceMetadata;
|
|
82
|
+
cost: CrmWriteCostMetadata;
|
|
83
|
+
}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var e="crm.write-proposal.v1",t="crm.write-proposal.v1|tenant,legal,freshness,evidence,cost,create,update,link,diff,receipt|proposal-only,dry-run,no-mutation",r="sha256:facdf429a5eaa779ebfde3d0a781dbdd777d694398e7f23ed5a652249bad988e";export{e as CRM_WRITE_PROPOSAL_CONTRACT_VERSION,r as CRM_WRITE_PROPOSAL_SCHEMA_FINGERPRINT,t as CRM_WRITE_PROPOSAL_SCHEMA_IDENTITY};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type CrmObservedEntity, type CrmWriteDryRunReceipt, type CrmWriteProposal } from './crm-write-proposal-types.js';
|
|
2
|
+
export * from './crm-write-proposal-types.js';
|
|
3
|
+
export declare function createCrmWriteDryRun(input: {
|
|
4
|
+
proposal: CrmWriteProposal;
|
|
5
|
+
observed: readonly CrmObservedEntity[];
|
|
6
|
+
evaluatedAt: string;
|
|
7
|
+
}): Promise<CrmWriteDryRunReceipt>;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{canonicalJsonString as f}from"@lssm/lib.contracts-spec/rich-reference/canonical-serializer";var c="crm.write-proposal.v1",u="crm.write-proposal.v1|tenant,legal,freshness,evidence,cost,create,update,link,diff,receipt|proposal-only,dry-run,no-mutation",C="sha256:facdf429a5eaa779ebfde3d0a781dbdd777d694398e7f23ed5a652249bad988e";async function v(e){m(e.proposal);let r=Date.parse(e.evaluatedAt)>Date.parse(e.proposal.freshness.expiresAt)?{status:"stale",reasons:["freshness_expired"],changes:[]}:l(e.proposal.intent,e.observed),a={status:r.status,reasons:[...r.reasons].sort(),changes:[...r.changes].sort((s,i)=>`${s.operation}:${s.path}`.localeCompare(`${i.operation}:${i.path}`))},t=await p(f(a));return{contractVersion:c,receiptId:`crm-write-dry-run:${e.proposal.proposalId}:${t}`,proposalId:e.proposal.proposalId,...a,diffFingerprint:t,mutationPerformed:!1,tenant:{...e.proposal.tenant},legal:{...e.proposal.legal},freshness:{...e.proposal.freshness},evidence:g(e.proposal.evidence),cost:{...e.proposal.cost}}}function l(e,n){if(e.kind==="create"){if(n.some((t)=>t.externalKey===e.externalKey))return o("external_key_exists");return{status:"ready",reasons:[],changes:Object.entries(e.attributes).map(([t,s])=>({operation:"create",path:t,after:s}))}}if(e.kind==="update"){let t=d(e.target,n);if(typeof t==="string")return o(t);return{status:"ready",reasons:[],changes:Object.entries(e.desiredAttributes).filter(([s,i])=>t.attributes[s]!==i).map(([s,i])=>({operation:"set",path:s,before:t.attributes[s],after:i}))}}let r=d(e.from,n),a=d(e.to,n);if(typeof r==="string"||typeof a==="string")return o(typeof r==="string"?r:a);if(r.links.some((t)=>t.relation===e.relation&&t.targetSourceObjectId===e.to.sourceObjectId))return o("link_already_exists");return{status:"ready",reasons:[],changes:[{operation:"link",path:`${e.from.sourceObjectId}.${e.relation}`,after:e.to.sourceObjectId}]}}function d(e,n){let r=n.find((a)=>a.target.providerKey===e.providerKey&&a.target.sourceObjectId===e.sourceObjectId);if(!r)return"target_missing";if(r.deletionState==="tombstoned")return"target_tombstoned";if(r.target.sourceRevision!==e.expectedSourceRevision)return"source_revision_conflict";return r}function m(e){let n=[e.proposalId,e.tenant.tenantId,e.tenant.workspaceId,e.tenant.actorPrincipalId,e.tenant.authorityEvaluationRefId,e.legal.retentionPolicyRefId,e.cost.currency,e.cost.pricingRefId];if(e.contractVersion!==c||n.some((r)=>r.trim().length===0)||e.evidence.sourceRefIds.length===0||e.evidence.evidenceRefIds.length===0||!Number.isInteger(e.cost.estimatedMinorUnits)||e.cost.estimatedMinorUnits<0||Number.isNaN(Date.parse(e.freshness.observedAt))||Number.isNaN(Date.parse(e.freshness.expiresAt)))throw Error("CRM write proposals require complete governance metadata");if(e.legal.legalBasis==="consent"&&!e.legal.consentRefId)throw Error("Consent legal basis requires a consent reference")}function o(e){return{status:"conflict",reasons:[e],changes:[]}}function g(e){return{sourceRefIds:[...e.sourceRefIds],evidenceRefIds:[...e.evidenceRefIds],deletionEvidenceRefIds:[...e.deletionEvidenceRefIds]}}async function p(e){let n=await crypto.subtle.digest("SHA-256",new TextEncoder().encode(e));return Array.from(new Uint8Array(n),(r)=>r.toString(16).padStart(2,"0")).join("")}export{c as CRM_WRITE_PROPOSAL_CONTRACT_VERSION,C as CRM_WRITE_PROPOSAL_SCHEMA_FINGERPRINT,u as CRM_WRITE_PROPOSAL_SCHEMA_IDENTITY,v as createCrmWriteDryRun};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
export declare const CRM_READ_CONTRACT_VERSION: 'crm.read.v1';
|
|
2
|
+
export type CrmEntityKind = 'contact' | 'company' | 'deal';
|
|
3
|
+
export type CrmLegalBasis = 'contract' | 'legal_obligation' | 'legitimate_interest' | 'consent';
|
|
4
|
+
export interface CrmTenantBoundary {
|
|
5
|
+
tenantId: string;
|
|
6
|
+
workspaceId: string;
|
|
7
|
+
actorPrincipalId: string;
|
|
8
|
+
authorityEvaluationRefId: string;
|
|
9
|
+
}
|
|
10
|
+
export interface CrmLegalMetadata {
|
|
11
|
+
legalBasis: CrmLegalBasis;
|
|
12
|
+
consentRefId?: string;
|
|
13
|
+
retentionPolicyRefId: string;
|
|
14
|
+
}
|
|
15
|
+
export interface CrmReadRequest {
|
|
16
|
+
contractVersion: typeof CRM_READ_CONTRACT_VERSION;
|
|
17
|
+
requestId: string;
|
|
18
|
+
tenant: CrmTenantBoundary;
|
|
19
|
+
legal: CrmLegalMetadata;
|
|
20
|
+
entityKinds: readonly CrmEntityKind[];
|
|
21
|
+
pageSize: number;
|
|
22
|
+
cursor?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface CrmEntityProvenance {
|
|
25
|
+
providerKey: string;
|
|
26
|
+
sourceObjectType: string;
|
|
27
|
+
sourceObjectId: string;
|
|
28
|
+
sourceRevision: string;
|
|
29
|
+
sourceUpdatedAt: string;
|
|
30
|
+
capturedAt: string;
|
|
31
|
+
evidenceRefIds: readonly string[];
|
|
32
|
+
}
|
|
33
|
+
interface ExternalProfileRefBase {
|
|
34
|
+
providerKey: string;
|
|
35
|
+
canonicalUrl: string;
|
|
36
|
+
externalId: string;
|
|
37
|
+
externalUrn?: string;
|
|
38
|
+
vanityIdentifier?: string;
|
|
39
|
+
verifiedAt?: string;
|
|
40
|
+
capturedAt: string;
|
|
41
|
+
provenanceRefId: string;
|
|
42
|
+
evidenceRefIds: readonly string[];
|
|
43
|
+
legalBasis: CrmLegalBasis;
|
|
44
|
+
consentRefId?: string;
|
|
45
|
+
retentionPolicyRefId: string;
|
|
46
|
+
dedupeKey: string;
|
|
47
|
+
idempotencyKey: string;
|
|
48
|
+
}
|
|
49
|
+
export interface ExternalProfessionalProfileRef extends ExternalProfileRefBase {
|
|
50
|
+
kind: 'professional-profile';
|
|
51
|
+
}
|
|
52
|
+
export interface ExternalOrganizationProfileRef extends ExternalProfileRefBase {
|
|
53
|
+
kind: 'organization-profile';
|
|
54
|
+
}
|
|
55
|
+
export type ExternalProfileRef = ExternalProfessionalProfileRef | ExternalOrganizationProfileRef;
|
|
56
|
+
export type CrmScalar = string | number | boolean | null;
|
|
57
|
+
export interface CrmEntityProjection {
|
|
58
|
+
id: string;
|
|
59
|
+
kind: CrmEntityKind;
|
|
60
|
+
tenantId: string;
|
|
61
|
+
workspaceId: string;
|
|
62
|
+
displayName: string;
|
|
63
|
+
attributes: Readonly<Record<string, CrmScalar>>;
|
|
64
|
+
externalProfiles?: readonly ExternalProfileRef[];
|
|
65
|
+
provenance: CrmEntityProvenance;
|
|
66
|
+
legal: CrmLegalMetadata;
|
|
67
|
+
dedupeKey: string;
|
|
68
|
+
idempotencyKey: string;
|
|
69
|
+
}
|
|
70
|
+
export declare function assertExternalProfileRef(profile: ExternalProfileRef): void;
|
|
71
|
+
export interface CrmReadPage {
|
|
72
|
+
contractVersion: typeof CRM_READ_CONTRACT_VERSION;
|
|
73
|
+
requestId: string;
|
|
74
|
+
providerKey: string;
|
|
75
|
+
tenantId: string;
|
|
76
|
+
workspaceId: string;
|
|
77
|
+
items: readonly CrmEntityProjection[];
|
|
78
|
+
nextCursor?: string;
|
|
79
|
+
hasMore: boolean;
|
|
80
|
+
readOnly: true;
|
|
81
|
+
}
|
|
82
|
+
export interface CrmReadProvider {
|
|
83
|
+
readonly providerKey: string;
|
|
84
|
+
readPage(request: CrmReadRequest): CrmReadPage | Promise<CrmReadPage>;
|
|
85
|
+
}
|
|
86
|
+
/** Narrow compatibility surface for deterministic fixture and in-memory readers. */
|
|
87
|
+
export interface SynchronousCrmReadProvider extends CrmReadProvider {
|
|
88
|
+
readPage(request: CrmReadRequest): CrmReadPage;
|
|
89
|
+
}
|
|
90
|
+
export declare class CrmReadContractError extends Error {
|
|
91
|
+
constructor(message: string);
|
|
92
|
+
}
|
|
93
|
+
export declare function assertCrmReadRequest(request: CrmReadRequest): void;
|
|
94
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var o="crm.read.v1";function s(e){if([e.providerKey,e.externalId,e.capturedAt,e.provenanceRefId,e.retentionPolicyRefId,e.dedupeKey,e.idempotencyKey].some((i)=>i.trim().length===0))throw new n("External profiles require complete identity and governance metadata");if(e.evidenceRefIds.length===0)throw new n("External profiles require at least one evidence reference");if(e.legalBasis==="consent"&&!e.consentRefId)throw new n("Consent legal basis requires a consent reference");let t;try{t=new URL(e.canonicalUrl)}catch{throw new n("External profile URL is invalid")}if(t.protocol!=="https:"||t.username!==""||t.password!==""||t.search!==""||t.hash!=="")throw new n("External profile URL must be a canonical HTTPS URL");if(e.providerKey==="linkedin"){let i=t.hostname==="linkedin.com"||t.hostname==="www.linkedin.com",a=e.kind==="professional-profile"?"/in/":"/company/";if(!i||!t.pathname.startsWith(a))throw new n("LinkedIn profile URL does not match its governed profile kind")}}class n extends Error{constructor(e){super(e);this.name="CrmReadContractError"}}function d(e){if(e.contractVersion!=="crm.read.v1")throw new n("Unsupported CRM read contract version");if([e.requestId,e.tenant.tenantId,e.tenant.workspaceId,e.tenant.actorPrincipalId,e.tenant.authorityEvaluationRefId,e.legal.retentionPolicyRefId].some((i)=>i.trim().length===0))throw new n("CRM reads require complete tenant governance");if(e.legal.legalBasis==="consent"&&!e.legal.consentRefId)throw new n("Consent legal basis requires a consent reference");if(e.entityKinds.length===0)throw new n("At least one CRM entity kind is required");let t=new Set(["contact","company","deal"]);if(e.entityKinds.length>t.size||new Set(e.entityKinds).size!==e.entityKinds.length||e.entityKinds.some((i)=>!t.has(i)))throw new n("CRM entity kinds must be unique and supported");if(!Number.isInteger(e.pageSize)||e.pageSize<1||e.pageSize>100)throw new n("CRM page size must be an integer from 1 to 100")}export{o as CRM_READ_CONTRACT_VERSION,n as CrmReadContractError,d as assertCrmReadRequest,s as assertExternalProfileRef};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type DatabaseStatementParam = string | number | boolean | bigint | Date | Uint8Array | null | Record<string, unknown> | readonly unknown[];
|
|
2
|
+
export type DatabaseRow = Record<string, unknown>;
|
|
3
|
+
export interface DatabaseQueryResult<TRow extends DatabaseRow = DatabaseRow> {
|
|
4
|
+
rows: TRow[];
|
|
5
|
+
rowCount: number;
|
|
6
|
+
}
|
|
7
|
+
export interface DatabaseProvider {
|
|
8
|
+
query<TRow extends DatabaseRow = DatabaseRow>(statement: string, params?: readonly DatabaseStatementParam[]): Promise<DatabaseQueryResult<TRow>>;
|
|
9
|
+
execute(statement: string, params?: readonly DatabaseStatementParam[]): Promise<void>;
|
|
10
|
+
transaction<T>(run: (database: DatabaseProvider) => Promise<T>): Promise<T>;
|
|
11
|
+
close(): Promise<void>;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{StabilityEnum as d}from"@lssm/lib.contracts-spec/ownership";import{SpecContractRegistry as s}from"@lssm/lib.contracts-spec/registry";var g=(e)=>`${e.key}.v${e.version}`;class c extends s{constructor(e){super("integration",e)}getByCategory(e){return this.list().filter((t)=>t.meta.category===e)}}function y(e){return g(e)}var a=(e)=>e;function o({unsupportedModeReason:e,configFields:t,secretFields:n,rotationSupported:p=!1,setupSteps:i}){let r={mode:"byok",validationStrategy:"byok-lifecycle",rotation:{supported:p}};if(t)r.configFields=t;if(n)r.secretFields=n;if(i)r.setupSteps=i;return{modes:{byok:r},exempt:!0,exemptionReason:e}}var m=a({meta:{key:"ai-voice-stt.deepgram",version:"1.0.0",category:"ai-voice-stt",title:"Deepgram Speech-to-Text",description:"Deepgram integration for real-time and batch speech-to-text transcription with speaker diarization.",domain:"ai",owners:["platform.ai"],tags:["voice","stt","transcription","diarization"],stability:d.Experimental},supportedModes:["byok"],credentialManifest:o({unsupportedModeReason:"Managed Deepgram credentials are not declared because speech-to-text access depends on tenant-owned Deepgram API keys; ContractSpec does not provide a first-party Deepgram managed account.",secretFields:[{key:"apiKey",required:!0}],rotationSupported:!0}),transports:[{type:"rest",baseUrl:"https://api.deepgram.com"},{type:"sdk",packageName:"@deepgram/sdk"}],preferredTransport:"sdk",supportedAuthMethods:[{type:"api-key",headerName:"Authorization",prefix:"Token "}],capabilities:{provides:[{key:"ai.voice.stt",version:"1.0.0"},{key:"ai.voice.conversational",version:"1.0.0"}]},configSchema:{schema:{type:"object",properties:{model:{type:"string",description:"Deepgram model to use (e.g. nova-3, nova-2, enhanced)."},language:{type:"string",description:"Default language code for transcription (e.g. en-US)."},enableDiarization:{type:"boolean",description:"Enable speaker diarization by default."},enableSmartFormat:{type:"boolean",description:"Enable smart formatting (punctuation, capitalization)."}}},example:{model:"nova-3",language:"en-US",enableDiarization:!0,enableSmartFormat:!0}},secretSchema:{schema:{type:"object",required:["apiKey"],properties:{apiKey:{type:"string",description:"Deepgram API key with transcription permissions."}}},example:{apiKey:"dg_***"}},healthCheck:{method:"custom",timeoutMs:5000},docsUrl:"https://developers.deepgram.com/docs",byokSetup:{setupInstructions:"Create a Deepgram API key with speech-to-text permissions and store it in your secret provider.",keyRotationSupported:!0,quotaTrackingSupported:!0}});function k(e){return e.register(m)}export{m as deepgramIntegrationSpec,k as registerDeepgramIntegration};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{StabilityEnum as a}from"@lssm/lib.contracts-spec/ownership";import{SpecContractRegistry as n}from"@lssm/lib.contracts-spec/registry";var i=(e)=>`${e.key}.v${e.version}`;class o extends n{constructor(e){super("integration",e)}getByCategory(e){return this.list().filter((r)=>r.meta.category===e)}}function c(e){return i(e)}var t=(e)=>e;var p=t({meta:{key:"web-access.direct-fetch",version:"1.0.0",category:"custom",title:"Direct Public Web Fetch",description:"Credential-free HTTP fetching with mandatory public-network and redirect validation.",domain:"knowledge",owners:["platform.ai"],tags:["web-access","fetch","public-network"],stability:a.Experimental},supportedModes:["managed","byok"],transports:[{type:"rest"}],preferredTransport:"rest",supportedAuthMethods:[],capabilities:{provides:[{key:"web.fetch",version:"1.0.0"}]},configSchema:{schema:{type:"object",properties:{policyMode:{type:"string",enum:["governed","provider-pass-through","public-only"]}}}},secretSchema:{schema:{type:"object",properties:{}},example:{}},healthCheck:{method:"custom",timeoutMs:5000},docsUrl:"https://github.com/lssm-tech/contractspec/tree/main/packages/integrations/provider-web-access"});function h(e){return e.register(p)}export{p as directFetchIntegrationSpec,h as registerDirectFetchIntegration};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{StabilityEnum as g}from"@lssm/lib.contracts-spec/ownership";import{SpecContractRegistry as s}from"@lssm/lib.contracts-spec/registry";var p=(e)=>`${e.key}.v${e.version}`;class c extends s{constructor(e){super("integration",e)}getByCategory(e){return this.list().filter((t)=>t.meta.category===e)}}function u(e){return p(e)}var i=(e)=>e;var o=["official-api","official-mcp","aggregator-api","aggregator-mcp","unofficial"],l=[{key:"health.activities.read",version:"1.0.0"},{key:"health.workouts.read",version:"1.0.0"},{key:"health.sleep.read",version:"1.0.0"},{key:"health.biometrics.read",version:"1.0.0"}],d=[{type:"rest"},{type:"mcp",transport:"http"},{type:"webhook",inbound:{signatureHeader:"x-webhook-signature",signingAlgorithm:"hmac-sha256"}}],n=[{type:"oauth2",grantType:"authorization_code",tokenUrl:"",scopes:[]},{type:"api-key"},{type:"bearer"},{type:"basic"}];function a(e){let t=e.supportedAuthMethods??f(e);return i({meta:{key:e.key,version:"1.0.0",category:"health",title:e.title,description:e.description,domain:"health",owners:["platform.integrations"],tags:["health","wearables",...e.tags],stability:e.stability??g.Experimental},supportedModes:e.supportedModes??["managed","byok"],transports:e.transports??d,preferredTransport:"rest",supportedAuthMethods:t,capabilities:{provides:e.capabilities??[...l]},configSchema:{schema:{type:"object",properties:{apiBaseUrl:{type:"string",description:"Optional API base URL override for provider-specific regional or partner endpoints."},mcpUrl:{type:"string",description:"Optional MCP endpoint URL for provider tool transport."},oauthTokenUrl:{type:"string",description:"Optional OAuth token endpoint override used for access-token refresh flows."},defaultTransport:{type:"string",enum:[...o],description:"Preferred transport strategy used before fallbacks are attempted."},strategyOrder:{type:"array",items:{type:"string",enum:[...o]},description:"Ordered transport fallback strategy. Defaults to official API -> official MCP -> aggregator API -> aggregator MCP -> unofficial."},allowUnofficial:{type:"boolean",description:"Must be true to allow unofficial/automation connectors as fallback."},unofficialAllowList:{type:"array",items:{type:"string"},description:"Optional allowlist of provider keys allowed to use unofficial connectors."}}},example:{defaultTransport:e.defaultTransport??"official-api",strategyOrder:[...o],allowUnofficial:!1,unofficialAllowList:[]}},secretSchema:{schema:{type:"object",properties:{apiKey:{type:"string"},accessToken:{type:"string"},refreshToken:{type:"string"},tokenExpiresAt:{type:"string"},clientId:{type:"string"},clientSecret:{type:"string"},mcpAccessToken:{type:"string"},username:{type:"string"},password:{type:"string"}}},example:{apiKey:"provider-api-key",accessToken:"oauth-access-token",refreshToken:"oauth-refresh-token"}},healthCheck:{method:"list",timeoutMs:1e4},docsUrl:e.docsUrl,byokSetup:{setupInstructions:e.byokSetupInstructions??"Create provider credentials, set allowed scopes, and store credentials in secret provider.",requiredScopes:e.byokScopes,keyRotationSupported:!1,quotaTrackingSupported:!1}})}function f(e){if(e.oauthTokenUrl){let t=e.oauthTokenUrl;return n.map((r)=>{if(r.type==="oauth2")return{...r,tokenUrl:t,scopes:e.byokScopes??[]};return r})}return[...n]}var y=a({key:"health.eightsleep",title:"Eight Sleep",description:"Eight Sleep integration for sleep sessions and biometrics via official, aggregator, or opt-in unofficial connectors.",docsUrl:"https://www.eightsleep.com/",tags:["eightsleep","sleep","unofficial"],capabilities:[{key:"health.sleep.read",version:"1.0.0"},{key:"health.biometrics.read",version:"1.0.0"}],defaultTransport:"aggregator-api"});function T(e){return e.register(y)}export{y as eightSleepIntegrationSpec,T as registerEightSleepIntegration};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{StabilityEnum as o}from"@lssm/lib.contracts-spec/ownership";import{SpecContractRegistry as i}from"@lssm/lib.contracts-spec/registry";var n=(e)=>`${e.key}.v${e.version}`;class a extends i{constructor(e){super("integration",e)}getByCategory(e){return this.list().filter((r)=>r.meta.category===e)}}function g(e){return n(e)}var t=(e)=>e;var s=t({meta:{key:"ai-voice.elevenlabs",version:"1.0.0",category:"ai-voice-tts",title:"ElevenLabs Text-to-Speech",description:"ElevenLabs integration for neural voice synthesis and voice catalog access.",domain:"ai",owners:["platform.ai"],tags:["voice","tts","stt"],stability:o.Beta},supportedModes:["managed","byok"],transports:[{type:"rest",baseUrl:"https://api.elevenlabs.io"},{type:"sdk",packageName:"elevenlabs"}],preferredTransport:"rest",supportedAuthMethods:[{type:"header",headerName:"xi-api-key"}],capabilities:{provides:[{key:"ai.voice.tts",version:"1.0.0"},{key:"ai.voice.stt",version:"1.0.0"}]},configSchema:{schema:{type:"object",properties:{defaultVoiceId:{type:"string",description:"Optional default voice identifier for synthesis requests."}}},example:{defaultVoiceId:"pNInz6obpgDQGcFmaJgB"}},secretSchema:{schema:{type:"object",required:["apiKey"],properties:{apiKey:{type:"string",description:"ElevenLabs API key with text-to-speech permissions."}}},example:{apiKey:"eleven-***"}},healthCheck:{method:"custom",timeoutMs:4000},docsUrl:"https://elevenlabs.io/docs/api-reference/text-to-speech",constraints:{rateLimit:{rpm:120}},byokSetup:{setupInstructions:"Create an ElevenLabs API key and ensure the desired voices are accessible to the key scope.",keyRotationSupported:!1,quotaTrackingSupported:!0}});function y(e){return e.register(s)}export{s as elevenLabsIntegrationSpec,y as registerElevenLabsIntegration};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export type EmailProviderDeliveryStatus = 'accepted' | 'delivered' | 'delivery_delayed' | 'bounced' | 'complained';
|
|
2
|
+
/** Provider-authenticated delivery event before caller-owned durable projection. */
|
|
3
|
+
export interface EmailProviderDeliveryEvent {
|
|
4
|
+
eventId: string;
|
|
5
|
+
/** Transient provider identity. Durable stores must bind only a redacted ref. */
|
|
6
|
+
providerMessageId: string;
|
|
7
|
+
status: EmailProviderDeliveryStatus;
|
|
8
|
+
occurredAt: Date;
|
|
9
|
+
}
|
|
10
|
+
export interface EmailProviderDeliveryEventResult {
|
|
11
|
+
eventId: string;
|
|
12
|
+
/** Deterministic redacted reference; never the raw provider message id. */
|
|
13
|
+
providerMessageRef: string;
|
|
14
|
+
status: EmailProviderDeliveryStatus;
|
|
15
|
+
occurredAt: Date;
|
|
16
|
+
replayed: boolean;
|
|
17
|
+
/** False when an authenticated event is older than the current projection. */
|
|
18
|
+
statusApplied: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface EmailProviderDeliveryEventStore {
|
|
21
|
+
apply(event: EmailProviderDeliveryEvent): Promise<EmailProviderDeliveryEventResult>;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
import type { ProviderDeltaSyncState } from './provider-delta.js';
|
|
2
|
+
export type { EmailProviderDeliveryEvent, EmailProviderDeliveryEventResult, EmailProviderDeliveryEventStore, EmailProviderDeliveryStatus, } from './email-delivery-events.js';
|
|
3
|
+
export interface EmailAddress {
|
|
4
|
+
email: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface EmailAttachment {
|
|
8
|
+
id: string;
|
|
9
|
+
filename: string;
|
|
10
|
+
contentType: string;
|
|
11
|
+
disposition?: 'attachment' | 'inline';
|
|
12
|
+
contentId?: string;
|
|
13
|
+
sizeBytes?: number;
|
|
14
|
+
data?: Uint8Array;
|
|
15
|
+
downloadUrl?: string;
|
|
16
|
+
}
|
|
17
|
+
export type EmailPersonalizationValue = string | number | boolean | null | readonly EmailPersonalizationValue[] | {
|
|
18
|
+
readonly [key: string]: EmailPersonalizationValue;
|
|
19
|
+
};
|
|
20
|
+
export interface EmailRecipientPersonalization {
|
|
21
|
+
recipient: string;
|
|
22
|
+
data: Readonly<Record<string, EmailPersonalizationValue>>;
|
|
23
|
+
}
|
|
24
|
+
/** Provider-neutral advanced email surface for template or raw-content sends. */
|
|
25
|
+
export interface EmailAdvancedOutboundMessage {
|
|
26
|
+
from?: EmailAddress;
|
|
27
|
+
to: EmailAddress[];
|
|
28
|
+
cc?: EmailAddress[];
|
|
29
|
+
bcc?: EmailAddress[];
|
|
30
|
+
replyTo?: EmailAddress;
|
|
31
|
+
subject?: string;
|
|
32
|
+
textBody?: string;
|
|
33
|
+
htmlBody?: string;
|
|
34
|
+
templateId?: string;
|
|
35
|
+
templateVersionId?: string;
|
|
36
|
+
personalization?: EmailRecipientPersonalization[];
|
|
37
|
+
tags?: string[];
|
|
38
|
+
sendAt?: Date;
|
|
39
|
+
precedenceBulk?: boolean;
|
|
40
|
+
headers?: Record<string, string>;
|
|
41
|
+
attachments?: EmailAttachment[];
|
|
42
|
+
metadata?: Record<string, string>;
|
|
43
|
+
}
|
|
44
|
+
export interface EmailOutboundMessage {
|
|
45
|
+
/** Stable 1–256 character provider retry key without recipient data or secrets. */
|
|
46
|
+
idempotencyKey?: string;
|
|
47
|
+
from: EmailAddress;
|
|
48
|
+
to: EmailAddress[];
|
|
49
|
+
cc?: EmailAddress[];
|
|
50
|
+
bcc?: EmailAddress[];
|
|
51
|
+
replyTo?: EmailAddress;
|
|
52
|
+
subject: string;
|
|
53
|
+
textBody?: string;
|
|
54
|
+
htmlBody?: string;
|
|
55
|
+
headers?: Record<string, string>;
|
|
56
|
+
attachments?: EmailAttachment[];
|
|
57
|
+
metadata?: Record<string, string>;
|
|
58
|
+
}
|
|
59
|
+
export interface EmailOutboundResult {
|
|
60
|
+
id: string;
|
|
61
|
+
providerMessageId?: string;
|
|
62
|
+
queuedAt?: Date;
|
|
63
|
+
deliveredAt?: Date;
|
|
64
|
+
}
|
|
65
|
+
/** Stable delivery ownership used to keep email paths separate. */
|
|
66
|
+
export type EmailDeliveryPurpose = 'auth' | 'booking' | 'calendar-intelligence';
|
|
67
|
+
/** Parsed-once sender configuration for one owned delivery purpose. */
|
|
68
|
+
export interface EmailPurposeSender {
|
|
69
|
+
purpose: EmailDeliveryPurpose;
|
|
70
|
+
from: EmailAddress;
|
|
71
|
+
replyTo: EmailAddress;
|
|
72
|
+
}
|
|
73
|
+
export interface EmailThread {
|
|
74
|
+
id: string;
|
|
75
|
+
subject?: string;
|
|
76
|
+
snippet?: string;
|
|
77
|
+
participants: EmailAddress[];
|
|
78
|
+
messages: EmailMessage[];
|
|
79
|
+
updatedAt: Date;
|
|
80
|
+
labels?: string[];
|
|
81
|
+
metadata?: Record<string, string>;
|
|
82
|
+
delta?: ProviderDeltaSyncState;
|
|
83
|
+
}
|
|
84
|
+
export interface EmailMessage {
|
|
85
|
+
id: string;
|
|
86
|
+
threadId: string;
|
|
87
|
+
subject?: string;
|
|
88
|
+
from: EmailAddress;
|
|
89
|
+
to: EmailAddress[];
|
|
90
|
+
cc?: EmailAddress[];
|
|
91
|
+
bcc?: EmailAddress[];
|
|
92
|
+
replyTo?: EmailAddress;
|
|
93
|
+
sentAt: Date;
|
|
94
|
+
receivedAt?: Date;
|
|
95
|
+
textBody?: string;
|
|
96
|
+
htmlBody?: string;
|
|
97
|
+
attachments?: EmailAttachment[];
|
|
98
|
+
headers?: Record<string, string>;
|
|
99
|
+
metadata?: Record<string, string>;
|
|
100
|
+
}
|
|
101
|
+
export interface EmailInboundWebhookEvent {
|
|
102
|
+
eventId: string;
|
|
103
|
+
inboundRouteId: string;
|
|
104
|
+
receivedAt: Date;
|
|
105
|
+
message: EmailMessage;
|
|
106
|
+
rawMessage?: string;
|
|
107
|
+
authentication: {
|
|
108
|
+
spf?: string;
|
|
109
|
+
dkim?: boolean;
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export interface EmailInboundWebhookEventResult {
|
|
113
|
+
eventId: string;
|
|
114
|
+
messageRef: string;
|
|
115
|
+
replayed: boolean;
|
|
116
|
+
}
|
|
117
|
+
export interface EmailInboundWebhookEventStore {
|
|
118
|
+
apply(event: EmailInboundWebhookEvent): Promise<EmailInboundWebhookEventResult>;
|
|
119
|
+
}
|
|
120
|
+
export interface EmailThreadListQuery {
|
|
121
|
+
label?: string;
|
|
122
|
+
query?: string;
|
|
123
|
+
pageSize?: number;
|
|
124
|
+
pageToken?: string;
|
|
125
|
+
includeArchived?: boolean;
|
|
126
|
+
updatedSince?: Date;
|
|
127
|
+
delta?: ProviderDeltaSyncState;
|
|
128
|
+
}
|
|
129
|
+
export interface EmailMessagesSinceQuery {
|
|
130
|
+
label?: string;
|
|
131
|
+
since?: Date;
|
|
132
|
+
pageSize?: number;
|
|
133
|
+
pageToken?: string;
|
|
134
|
+
delta?: ProviderDeltaSyncState;
|
|
135
|
+
}
|
|
136
|
+
export interface EmailOutboundProvider {
|
|
137
|
+
sendEmail(message: EmailOutboundMessage): Promise<EmailOutboundResult>;
|
|
138
|
+
}
|
|
139
|
+
export interface EmailAdvancedOutboundProvider extends EmailOutboundProvider {
|
|
140
|
+
sendAdvancedEmail(message: EmailAdvancedOutboundMessage): Promise<EmailOutboundResult>;
|
|
141
|
+
}
|
|
142
|
+
export type EmailInboundForward = {
|
|
143
|
+
type: 'email';
|
|
144
|
+
value: string;
|
|
145
|
+
} | {
|
|
146
|
+
type: 'webhook';
|
|
147
|
+
value: string;
|
|
148
|
+
};
|
|
149
|
+
export type EmailInboundFilterComparer = 'equal' | 'not-equal' | 'contains' | 'not-contains' | 'starts-with' | 'ends-with' | 'not-starts-with' | 'not-ends-with';
|
|
150
|
+
export interface EmailInboundFilterRule {
|
|
151
|
+
comparer: EmailInboundFilterComparer;
|
|
152
|
+
value: string;
|
|
153
|
+
key?: string;
|
|
154
|
+
}
|
|
155
|
+
export interface EmailInboundRoute {
|
|
156
|
+
id: string;
|
|
157
|
+
domainId: string;
|
|
158
|
+
name: string;
|
|
159
|
+
enabled: boolean;
|
|
160
|
+
inboundDomain?: string;
|
|
161
|
+
priority?: number;
|
|
162
|
+
forwards: EmailInboundForward[];
|
|
163
|
+
metadata?: Record<string, string>;
|
|
164
|
+
}
|
|
165
|
+
export interface EmailInboundRouteDraft extends Omit<EmailInboundRoute, 'id'> {
|
|
166
|
+
matchType: 'all' | 'sender' | 'domain' | 'header';
|
|
167
|
+
matchRules?: EmailInboundFilterRule[];
|
|
168
|
+
catchType?: 'all' | 'recipient';
|
|
169
|
+
catchRules?: EmailInboundFilterRule[];
|
|
170
|
+
}
|
|
171
|
+
export interface EmailInboundRouteProvider {
|
|
172
|
+
listInboundRoutes(domainId: string): Promise<EmailInboundRoute[]>;
|
|
173
|
+
getInboundRoute(routeId: string): Promise<EmailInboundRoute | null>;
|
|
174
|
+
createInboundRoute(route: EmailInboundRouteDraft): Promise<EmailInboundRoute>;
|
|
175
|
+
updateInboundRoute(routeId: string, route: EmailInboundRouteDraft): Promise<EmailInboundRoute>;
|
|
176
|
+
deleteInboundRoute(routeId: string): Promise<void>;
|
|
177
|
+
}
|
|
178
|
+
export interface EmailInboundProvider {
|
|
179
|
+
listThreads(query?: EmailThreadListQuery): Promise<EmailThread[]>;
|
|
180
|
+
getThread(threadId: string): Promise<EmailThread | null>;
|
|
181
|
+
listMessagesSince(query: EmailMessagesSinceQuery): Promise<{
|
|
182
|
+
messages: EmailMessage[];
|
|
183
|
+
nextPageToken?: string;
|
|
184
|
+
/** False when nextPageToken is a durable terminal delta cursor. */
|
|
185
|
+
hasMore?: boolean;
|
|
186
|
+
}>;
|
|
187
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
export type EmbeddingVector = number[];
|
|
2
|
+
export interface EmbeddingDocument {
|
|
3
|
+
id: string;
|
|
4
|
+
text: string;
|
|
5
|
+
metadata?: Record<string, string | number | boolean>;
|
|
6
|
+
}
|
|
7
|
+
/** Auditable cost state; adapters must never infer a price without a pinned table. */
|
|
8
|
+
export type EmbeddingCostReceipt = {
|
|
9
|
+
state: 'recorded';
|
|
10
|
+
amountMicros: number;
|
|
11
|
+
currency: string;
|
|
12
|
+
pricingRef: string;
|
|
13
|
+
} | {
|
|
14
|
+
state: 'unavailable';
|
|
15
|
+
reason: 'pricing_not_configured';
|
|
16
|
+
};
|
|
17
|
+
/** Provider-reported token use and explicitly recorded or unavailable cost. */
|
|
18
|
+
export interface EmbeddingUsageReceipt {
|
|
19
|
+
provider: string;
|
|
20
|
+
model: string;
|
|
21
|
+
inputTokens: number;
|
|
22
|
+
totalTokens: number;
|
|
23
|
+
requestCount: number;
|
|
24
|
+
documentCount: number;
|
|
25
|
+
dimensions: number;
|
|
26
|
+
cost: EmbeddingCostReceipt;
|
|
27
|
+
}
|
|
28
|
+
export type EmbeddingTokenCounter = (text: string, model: string) => number;
|
|
29
|
+
export type EmbeddingCostCalculator = (usage: Omit<EmbeddingUsageReceipt, 'cost'>) => Extract<EmbeddingCostReceipt, {
|
|
30
|
+
state: 'recorded';
|
|
31
|
+
}>;
|
|
32
|
+
export interface EmbeddingResult {
|
|
33
|
+
id: string;
|
|
34
|
+
vector: EmbeddingVector;
|
|
35
|
+
dimensions: number;
|
|
36
|
+
model: string;
|
|
37
|
+
metadata?: Record<string, string>;
|
|
38
|
+
/** Additive provider receipt. Legacy providers may omit it. */
|
|
39
|
+
usage?: EmbeddingUsageReceipt;
|
|
40
|
+
}
|
|
41
|
+
export interface EmbeddingProvider {
|
|
42
|
+
embedDocuments(documents: EmbeddingDocument[], options?: {
|
|
43
|
+
model?: string;
|
|
44
|
+
dimensions?: number;
|
|
45
|
+
signal?: AbortSignal;
|
|
46
|
+
}): Promise<EmbeddingResult[]>;
|
|
47
|
+
embedQuery(query: string, options?: {
|
|
48
|
+
model?: string;
|
|
49
|
+
dimensions?: number;
|
|
50
|
+
signal?: AbortSignal;
|
|
51
|
+
}): Promise<EmbeddingResult>;
|
|
52
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
// @bun
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{StabilityEnum as d}from"@lssm/lib.contracts-spec/ownership";import{SpecContractRegistry as p}from"@lssm/lib.contracts-spec/registry";var g=(e)=>`${e.key}.v${e.version}`;class c extends p{constructor(e){super("integration",e)}getByCategory(e){return this.list().filter((t)=>t.meta.category===e)}}function f(e){return g(e)}var a=(e)=>e;function o({unsupportedModeReason:e,configFields:t,secretFields:r,rotationSupported:s=!1,setupSteps:i}){let n={mode:"byok",validationStrategy:"byok-lifecycle",rotation:{supported:s}};if(t)n.configFields=t;if(r)n.secretFields=r;if(i)n.setupSteps=i;return{modes:{byok:n},exempt:!0,exemptionReason:e}}var l=a({meta:{key:"ai-image.fal",version:"1.0.0",category:"ai-image",title:"Fal Image Generation",description:"Fal integration for AI image generation using Flux and Stable Diffusion models.",domain:"ai",owners:["platform.ai"],tags:["image","generation","flux","stable-diffusion"],stability:d.Experimental},supportedModes:["byok"],credentialManifest:o({unsupportedModeReason:"Managed Fal image credentials are not declared because image generation access depends on tenant-owned FAL_KEY/API-key credentials; ContractSpec does not provision a first-party Fal account for tenants.",secretFields:[{key:"apiKey",required:!0}],rotationSupported:!1}),transports:[{type:"rest",baseUrl:"https://fal.run"},{type:"sdk",packageName:"@fal-ai/client"}],preferredTransport:"rest",supportedAuthMethods:[{type:"header",headerName:"Authorization",valuePrefix:"Key "}],capabilities:{provides:[{key:"ai.image.generation",version:"1.0.0"}]},configSchema:{schema:{type:"object",properties:{modelId:{type:"string",description:"Fal model endpoint (e.g. fal-ai/flux/dev)."},defaultFormat:{type:"string",enum:["png","jpg","webp"]},defaultGuidanceScale:{type:"number",minimum:1,maximum:20}}},example:{modelId:"fal-ai/flux/dev",defaultFormat:"png",defaultGuidanceScale:7.5}},secretSchema:{schema:{type:"object",required:["apiKey"],properties:{apiKey:{type:"string",description:"Fal API key (FAL_KEY)."}}},example:{apiKey:"key-id:key-secret"}},healthCheck:{method:"custom",timeoutMs:7000},docsUrl:"https://fal.ai/models",byokSetup:{setupInstructions:"Create a Fal API key and ensure image generation model access is enabled.",keyRotationSupported:!1,quotaTrackingSupported:!0}});function M(e){return e.register(l)}export{l as falImageIntegrationSpec,M as registerFalImageIntegration};
|