@contractspec/module.examples 1.44.1 → 1.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builtins.js.map +1 -1
- package/dist/index.d.ts +2 -5
- package/dist/index.js +3 -4
- package/dist/libs/contracts/dist/_virtual/rolldown_runtime.js +6 -0
- package/dist/libs/contracts/dist/_virtual/rolldown_runtime.js.map +1 -0
- package/dist/libs/contracts/dist/app-config/spec.js +1 -0
- package/dist/libs/contracts/dist/capabilities/capabilities.js +1 -0
- package/dist/libs/contracts/dist/capabilities/index.js +2 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js +89 -0
- package/dist/libs/contracts/dist/capabilities/openbanking.js.map +1 -0
- package/dist/libs/contracts/dist/client/index.js +5 -0
- package/dist/libs/contracts/dist/client/react/feature-render.js +3 -0
- package/dist/libs/contracts/dist/client/react/form-render.js +6 -0
- package/dist/libs/contracts/dist/client/react/index.js +4 -0
- package/dist/libs/contracts/dist/contract-registry/index.js +1 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js +61 -0
- package/dist/libs/contracts/dist/contract-registry/schemas.js.map +1 -0
- package/dist/libs/contracts/dist/data-views/index.js +1 -0
- package/dist/libs/contracts/dist/data-views/registry.js +1 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/accessibility_wcag_compliance_specs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/index.js +27 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js +30 -0
- package/dist/libs/contracts/dist/docs/meta.docs.js.map +1 -0
- package/dist/libs/contracts/dist/docs/presentations.js +57 -0
- package/dist/libs/contracts/dist/docs/presentations.js.map +1 -0
- package/dist/libs/contracts/dist/docs/registry.js +45 -0
- package/dist/libs/contracts/dist/docs/registry.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js +81 -0
- package/dist/libs/contracts/dist/docs/tech/auth/better-auth-nextjs.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js +58 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-export.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-import.docblock.js +65 -0
- package/dist/libs/contracts/dist/docs/tech/contracts/openapi-import.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/tech/lifecycle-stage-system.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js +358 -0
- package/dist/libs/contracts/dist/docs/tech/llm/llm-integration.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js +38 -0
- package/dist/libs/contracts/dist/docs/tech/mcp-endpoints.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js +17 -0
- package/dist/libs/contracts/dist/docs/tech/presentation-runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/schema/README.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js +49 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-events.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js +80 -0
- package/dist/libs/contracts/dist/docs/tech/studio/learning-journeys.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js +85 -0
- package/dist/libs/contracts/dist/docs/tech/studio/platform-admin-panel.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js +46 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-access-teams.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js +68 -0
- package/dist/libs/contracts/dist/docs/tech/studio/project-routing.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js +41 -0
- package/dist/libs/contracts/dist/docs/tech/studio/sandbox-unlogged.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js +70 -0
- package/dist/libs/contracts/dist/docs/tech/studio/team-invitations.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js +48 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspace-ops.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js +63 -0
- package/dist/libs/contracts/dist/docs/tech/studio/workspaces.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js +156 -0
- package/dist/libs/contracts/dist/docs/tech/telemetry-ingest.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js +21 -0
- package/dist/libs/contracts/dist/docs/tech/templates/runtime.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js +102 -0
- package/dist/libs/contracts/dist/docs/tech/vscode-extension.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js +97 -0
- package/dist/libs/contracts/dist/docs/tech-contracts.docs.js.map +1 -0
- package/dist/libs/contracts/dist/events.js +2 -0
- package/dist/libs/contracts/dist/examples/index.js +3 -0
- package/dist/libs/contracts/dist/examples/registry.js +145 -0
- package/dist/libs/contracts/dist/examples/registry.js.map +1 -0
- package/dist/libs/contracts/dist/examples/schema.js +102 -0
- package/dist/libs/contracts/dist/examples/schema.js.map +1 -0
- package/dist/libs/contracts/dist/examples/validation.js +1 -0
- package/dist/libs/contracts/dist/experiments/evaluator.js +1 -0
- package/dist/libs/contracts/dist/experiments/spec.js +1 -0
- package/dist/libs/contracts/dist/features/index.js +1 -0
- package/dist/libs/contracts/dist/features/registry.js +7 -0
- package/dist/libs/contracts/dist/features/registry.js.map +1 -0
- package/dist/libs/contracts/dist/forms/forms.js +2 -0
- package/dist/libs/contracts/dist/forms/index.js +1 -0
- package/dist/libs/contracts/dist/index.js +109 -0
- package/dist/libs/contracts/dist/index.js.map +1 -0
- package/dist/libs/contracts/dist/install.js +2 -0
- package/dist/libs/contracts/dist/integrations/index.js +19 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js +230 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/accounts.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js +161 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/balances.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/index.js +3 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js +212 -0
- package/dist/libs/contracts/dist/integrations/openbanking/contracts/transactions.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js +243 -0
- package/dist/libs/contracts/dist/integrations/openbanking/models.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js +14 -0
- package/dist/libs/contracts/dist/integrations/openbanking/telemetry.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/operations.js +384 -0
- package/dist/libs/contracts/dist/integrations/operations.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js +52 -0
- package/dist/libs/contracts/dist/integrations/providers/elevenlabs.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js +75 -0
- package/dist/libs/contracts/dist/integrations/providers/gcs-storage.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js +87 -0
- package/dist/libs/contracts/dist/integrations/providers/gmail.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js +66 -0
- package/dist/libs/contracts/dist/integrations/providers/google-calendar.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/index.js +11 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js +68 -0
- package/dist/libs/contracts/dist/integrations/providers/mistral.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js +68 -0
- package/dist/libs/contracts/dist/integrations/providers/postmark.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js +116 -0
- package/dist/libs/contracts/dist/integrations/providers/powens.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js +73 -0
- package/dist/libs/contracts/dist/integrations/providers/qdrant.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/registry.js +11 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js +83 -0
- package/dist/libs/contracts/dist/integrations/providers/stripe.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js +61 -0
- package/dist/libs/contracts/dist/integrations/providers/twilio-sms.js.map +1 -0
- package/dist/libs/contracts/dist/integrations/spec.js +1 -0
- package/dist/libs/contracts/dist/jsonschema.js +1 -0
- package/dist/libs/contracts/dist/knowledge/index.js +8 -0
- package/dist/libs/contracts/dist/knowledge/operations.js +313 -0
- package/dist/libs/contracts/dist/knowledge/operations.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/email-threads.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js +38 -0
- package/dist/libs/contracts/dist/knowledge/spaces/financial-overview.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/index.js +6 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/product-canon.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js +37 -0
- package/dist/libs/contracts/dist/knowledge/spaces/support-faq.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js +34 -0
- package/dist/libs/contracts/dist/knowledge/spaces/uploaded-docs.js.map +1 -0
- package/dist/libs/contracts/dist/knowledge/spec.js +1 -0
- package/dist/libs/contracts/dist/llm/exporters.js +21 -0
- package/dist/libs/contracts/dist/llm/exporters.js.map +1 -0
- package/dist/libs/contracts/dist/llm/index.js +2 -0
- package/dist/libs/contracts/dist/llm/prompts.js +1 -0
- package/dist/libs/contracts/dist/migrations.js +1 -0
- package/dist/libs/contracts/dist/model-registry.js +1 -0
- package/dist/libs/contracts/dist/onboarding-base.js +198 -0
- package/dist/libs/contracts/dist/onboarding-base.js.map +1 -0
- package/dist/libs/contracts/dist/openapi.js +2 -0
- package/dist/libs/contracts/dist/operations/index.js +2 -0
- package/dist/libs/contracts/dist/operations/operation.js +35 -0
- package/dist/libs/contracts/dist/operations/operation.js.map +1 -0
- package/dist/libs/contracts/dist/operations/registry.js +2 -0
- package/dist/libs/contracts/dist/ownership.js +22 -0
- package/dist/libs/contracts/dist/ownership.js.map +1 -0
- package/dist/libs/contracts/dist/policy/engine.js +1 -0
- package/dist/libs/contracts/dist/policy/index.js +2 -0
- package/dist/libs/contracts/dist/policy/registry.js +1 -0
- package/dist/libs/contracts/dist/presentations/index.js +2 -0
- package/dist/libs/contracts/dist/presentations/registry.js +1 -0
- package/dist/libs/contracts/dist/presentations/transform-engine.js +13 -0
- package/dist/libs/contracts/dist/presentations/transform-engine.js.map +1 -0
- package/dist/libs/contracts/dist/prompt.js +1 -0
- package/dist/libs/contracts/dist/promptRegistry.js +2 -0
- package/dist/libs/contracts/dist/regenerator/index.js +1 -0
- package/dist/libs/contracts/dist/regenerator/service.js +5 -0
- package/dist/libs/contracts/dist/regenerator/service.js.map +1 -0
- package/dist/libs/contracts/dist/registry-utils.js +71 -0
- package/dist/libs/contracts/dist/registry-utils.js.map +1 -0
- package/dist/libs/contracts/dist/registry.js +8 -0
- package/dist/libs/contracts/dist/registry.js.map +1 -0
- package/dist/libs/contracts/dist/resources.js +1 -0
- package/dist/libs/contracts/dist/schema-to-markdown.js +1 -0
- package/dist/libs/contracts/dist/server/contracts-adapter-input.js +1 -0
- package/dist/libs/contracts/dist/server/graphql-pothos.js +8 -0
- package/dist/libs/contracts/dist/server/index.js +8 -0
- package/dist/libs/contracts/dist/server/mcp/createMcpServer.js +4 -0
- package/dist/libs/contracts/dist/server/mcp/registerPresentations.js +2 -0
- package/dist/libs/contracts/dist/server/mcp/registerPrompts.js +1 -0
- package/dist/libs/contracts/dist/server/mcp/registerResources.js +2 -0
- package/dist/libs/contracts/dist/server/mcp/registerTools.js +1 -0
- package/dist/libs/contracts/dist/server/provider-mcp.js +1 -0
- package/dist/libs/contracts/dist/server/rest-elysia.js +1 -0
- package/dist/libs/contracts/dist/server/rest-express.js +1 -0
- package/dist/libs/contracts/dist/server/rest-generic.js +1 -0
- package/dist/libs/contracts/dist/server/rest-next-app.js +1 -0
- package/dist/libs/contracts/dist/server/rest-next-pages.js +1 -0
- package/dist/libs/contracts/dist/telemetry/index.js +2 -0
- package/dist/libs/contracts/dist/telemetry/spec.js +2 -0
- package/dist/libs/contracts/dist/telemetry/tracker.js +1 -0
- package/dist/libs/contracts/dist/tests/index.js +2 -0
- package/dist/libs/contracts/dist/tests/runner.js +2 -0
- package/dist/libs/contracts/dist/tests/spec.js +1 -0
- package/dist/libs/contracts/dist/themes.js +1 -0
- package/dist/libs/contracts/dist/workflow/index.js +2 -0
- package/dist/libs/contracts/dist/workflow/overview.docblock.js +21 -0
- package/dist/libs/contracts/dist/workflow/overview.docblock.js.map +1 -0
- package/dist/libs/contracts/dist/workflow/runner.js +1 -0
- package/dist/libs/contracts/dist/workflow/spec.js +1 -0
- package/dist/libs/contracts/dist/workspace-config/contractsrc-schema.js +263 -0
- package/dist/libs/contracts/dist/workspace-config/contractsrc-schema.js.map +1 -0
- package/dist/libs/contracts/dist/workspace-config/index.js +1 -0
- package/dist/libs/contracts/dist/workspace-config/workspace-config.docblock.js +45 -0
- package/dist/libs/contracts/dist/workspace-config/workspace-config.docblock.js.map +1 -0
- package/dist/libs/schema/dist/EnumType.js +2 -0
- package/dist/libs/schema/dist/FieldType.js +50 -0
- package/dist/libs/schema/dist/FieldType.js.map +1 -0
- package/dist/libs/schema/dist/GraphQLSchemaType.js +1 -0
- package/dist/libs/schema/dist/JsonSchemaType.js +1 -0
- package/dist/libs/schema/dist/ScalarTypeEnum.js +237 -0
- package/dist/libs/schema/dist/ScalarTypeEnum.js.map +1 -0
- package/dist/libs/schema/dist/SchemaModel.js +35 -0
- package/dist/libs/schema/dist/SchemaModel.js.map +1 -0
- package/dist/libs/schema/dist/ZodSchemaType.js +1 -0
- package/dist/libs/schema/dist/entity/defineEntity.js +1 -0
- package/dist/libs/schema/dist/entity/index.js +2 -0
- package/dist/libs/schema/dist/entity/types.js +1 -0
- package/dist/libs/schema/dist/index.js +9 -0
- package/dist/registry.d.ts +20 -6
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +24 -10
- package/dist/registry.js.map +1 -1
- package/package.json +37 -37
- package/dist/builtins.d.ts +0 -7
- package/dist/builtins.d.ts.map +0 -1
- package/dist/types.d.ts +0 -53
- package/dist/types.d.ts.map +0 -1
- package/dist/validate.d.ts +0 -19
- package/dist/validate.d.ts.map +0 -1
- package/dist/validate.js +0 -90
- package/dist/validate.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operations.js","names":[],"sources":["../../../../../../../libs/contracts/dist/integrations/operations.js"],"sourcesContent":["import { defineCommand, defineQuery } from \"../operations/operation.js\";\nimport \"../operations/index.js\";\nimport { ScalarTypeEnum, SchemaModel } from \"@contractspec/lib.schema\";\n\n//#region src/integrations/operations.ts\nconst IntegrationConnectionRecord = new SchemaModel({\n\tname: \"IntegrationConnectionRecord\",\n\tfields: {\n\t\tid: {\n\t\t\ttype: ScalarTypeEnum.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\ttenantId: {\n\t\t\ttype: ScalarTypeEnum.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationKey: {\n\t\t\ttype: ScalarTypeEnum.NonEmptyString(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationVersion: {\n\t\t\ttype: ScalarTypeEnum.Int_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tlabel: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\townershipMode: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\texternalAccountId: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretProvider: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tsecretRef: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tstatus: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tenvironment: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthStatus: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthCheckedAt: {\n\t\t\ttype: ScalarTypeEnum.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthLatencyMs: {\n\t\t\ttype: ScalarTypeEnum.Float_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthErrorCode: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\thealthErrorMessage: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageRequestCount: {\n\t\t\ttype: ScalarTypeEnum.Int_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageSuccessCount: {\n\t\t\ttype: ScalarTypeEnum.Int_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageErrorCount: {\n\t\t\ttype: ScalarTypeEnum.Int_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageLastUsedAt: {\n\t\t\ttype: ScalarTypeEnum.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageLastErrorAt: {\n\t\t\ttype: ScalarTypeEnum.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tusageLastErrorCode: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tcreatedAt: {\n\t\t\ttype: ScalarTypeEnum.DateTime(),\n\t\t\tisOptional: true\n\t\t},\n\t\tupdatedAt: {\n\t\t\ttype: ScalarTypeEnum.DateTime(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst CreateIntegrationConnectionInput = new SchemaModel({\n\tname: \"CreateIntegrationConnectionInput\",\n\tfields: {\n\t\ttenantId: {\n\t\t\ttype: ScalarTypeEnum.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationKey: {\n\t\t\ttype: ScalarTypeEnum.NonEmptyString(),\n\t\t\tisOptional: false\n\t\t},\n\t\tintegrationVersion: {\n\t\t\ttype: ScalarTypeEnum.Int_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tlabel: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\townershipMode: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\texternalAccountId: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretProvider: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tsecretRef: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: false\n\t\t},\n\t\tenvironment: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tconfig: {\n\t\t\ttype: ScalarTypeEnum.JSONObject(),\n\t\t\tisOptional: false\n\t\t}\n\t}\n});\nconst UpdateIntegrationConnectionInput = new SchemaModel({\n\tname: \"UpdateIntegrationConnectionInput\",\n\tfields: {\n\t\tconnectionId: {\n\t\t\ttype: ScalarTypeEnum.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tlabel: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tstatus: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\townershipMode: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\texternalAccountId: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretProvider: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tsecretRef: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tconfig: {\n\t\t\ttype: ScalarTypeEnum.JSONObject(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst DeleteIntegrationConnectionInput = new SchemaModel({\n\tname: \"DeleteIntegrationConnectionInput\",\n\tfields: { connectionId: {\n\t\ttype: ScalarTypeEnum.ID(),\n\t\tisOptional: false\n\t} }\n});\nconst ListIntegrationConnectionsInput = new SchemaModel({\n\tname: \"ListIntegrationConnectionsInput\",\n\tfields: {\n\t\ttenantId: {\n\t\t\ttype: ScalarTypeEnum.ID(),\n\t\t\tisOptional: false\n\t\t},\n\t\tcategory: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tstatus: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst ListIntegrationConnectionsOutput = new SchemaModel({\n\tname: \"ListIntegrationConnectionsOutput\",\n\tfields: { connections: {\n\t\ttype: IntegrationConnectionRecord,\n\t\tisOptional: false,\n\t\tisArray: true\n\t} }\n});\nconst TestIntegrationConnectionInput = new SchemaModel({\n\tname: \"TestIntegrationConnectionInput\",\n\tfields: { connectionId: {\n\t\ttype: ScalarTypeEnum.ID(),\n\t\tisOptional: false\n\t} }\n});\nconst TestIntegrationConnectionOutput = new SchemaModel({\n\tname: \"TestIntegrationConnectionOutput\",\n\tfields: {\n\t\tsuccess: {\n\t\t\ttype: ScalarTypeEnum.Boolean(),\n\t\t\tisOptional: false\n\t\t},\n\t\tstatus: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\tlatencyMs: {\n\t\t\ttype: ScalarTypeEnum.Float_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\terror: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t},\n\t\terrorCode: {\n\t\t\ttype: ScalarTypeEnum.String_unsecure(),\n\t\t\tisOptional: true\n\t\t}\n\t}\n});\nconst DeleteIntegrationConnectionOutput = new SchemaModel({\n\tname: \"DeleteIntegrationConnectionOutput\",\n\tfields: { success: {\n\t\ttype: ScalarTypeEnum.Boolean(),\n\t\tisOptional: false\n\t} }\n});\nconst CreateIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tkey: \"integrations.connection.create\",\n\t\ttitle: \"Create Integration Connection\",\n\t\tversion: \"1.0.0\",\n\t\tdescription: \"Create a new integration connection for a tenant.\",\n\t\tgoal: \"Provision a tenant-scoped connection to an external provider.\",\n\t\tcontext: \"Used by Ops or the App Studio to configure external integrations such as Stripe or Qdrant.\",\n\t\towners: [\"@platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: CreateIntegrationConnectionInput,\n\t\toutput: IntegrationConnectionRecord\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tkey: \"platform.integration.manage\",\n\t\t\tversion: \"1.0.0\"\n\t\t}]\n\t}\n});\nconst UpdateIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tkey: \"integrations.connection.update\",\n\t\ttitle: \"Update Integration Connection\",\n\t\tversion: \"1.0.0\",\n\t\tdescription: \"Update metadata or credentials for an integration connection.\",\n\t\tgoal: \"Allow secure rotation of credentials and metadata adjustments.\",\n\t\tcontext: \"Supports rotating API keys, toggling status, or updating labels for tenant integrations.\",\n\t\towners: [\"@platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: UpdateIntegrationConnectionInput,\n\t\toutput: IntegrationConnectionRecord\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tkey: \"platform.integration.manage\",\n\t\t\tversion: \"1.0.0\"\n\t\t}]\n\t}\n});\nconst DeleteIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tkey: \"integrations.connection.delete\",\n\t\ttitle: \"Delete Integration Connection\",\n\t\tversion: \"1.0.0\",\n\t\tdescription: \"Delete an integration connection for a tenant.\",\n\t\tgoal: \"Safely remove credentials and disable connector usage.\",\n\t\tcontext: \"Ensures connections are de-provisioned when no longer needed or breached.\",\n\t\towners: [\"@platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: DeleteIntegrationConnectionInput,\n\t\toutput: DeleteIntegrationConnectionOutput\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tkey: \"platform.integration.manage\",\n\t\t\tversion: \"1.0.0\"\n\t\t}]\n\t}\n});\nconst ListIntegrationConnections = defineQuery({\n\tmeta: {\n\t\tkey: \"integrations.connection.list\",\n\t\ttitle: \"List Integration Connections\",\n\t\tversion: \"1.0.0\",\n\t\tdescription: \"List integration connections for a tenant.\",\n\t\tgoal: \"Provide visibility into configured integrations and their status.\",\n\t\tcontext: \"Used by the App Studio and Ops flows to show bindings and health.\",\n\t\towners: [\"@platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: ListIntegrationConnectionsInput,\n\t\toutput: ListIntegrationConnectionsOutput\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tkey: \"platform.integration.read\",\n\t\t\tversion: \"1.0.0\"\n\t\t}]\n\t}\n});\nconst TestIntegrationConnection = defineCommand({\n\tmeta: {\n\t\tkey: \"integrations.connection.test\",\n\t\ttitle: \"Test Integration Connection\",\n\t\tversion: \"1.0.0\",\n\t\tdescription: \"Run a health check against a configured integration connection.\",\n\t\tgoal: \"Validate credentials and connectivity for external providers.\",\n\t\tcontext: \"Triggered manually or by background monitors to confirm provider availability.\",\n\t\towners: [\"@platform.integrations\"],\n\t\ttags: [\"integration\", \"connections\"],\n\t\tstability: \"experimental\"\n\t},\n\tio: {\n\t\tinput: TestIntegrationConnectionInput,\n\t\toutput: TestIntegrationConnectionOutput\n\t},\n\tpolicy: {\n\t\tauth: \"admin\",\n\t\tpolicies: [{\n\t\t\tkey: \"platform.integration.manage\",\n\t\t\tversion: \"1.0.0\"\n\t\t}]\n\t}\n});\nconst integrationContracts = {\n\tCreateIntegrationConnection,\n\tUpdateIntegrationConnection,\n\tDeleteIntegrationConnection,\n\tListIntegrationConnections,\n\tTestIntegrationConnection\n};\nfunction registerIntegrationContracts(registry) {\n\treturn registry.register(CreateIntegrationConnection).register(UpdateIntegrationConnection).register(DeleteIntegrationConnection).register(ListIntegrationConnections).register(TestIntegrationConnection);\n}\n\n//#endregion\nexport { CreateIntegrationConnection, DeleteIntegrationConnection, ListIntegrationConnections, TestIntegrationConnection, UpdateIntegrationConnection, integrationContracts, registerIntegrationContracts };"],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/elevenlabs.js
|
|
4
|
+
const elevenLabsIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "ai-voice.elevenlabs",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "ai-voice",
|
|
9
|
+
title: "ElevenLabs Text-to-Speech",
|
|
10
|
+
description: "ElevenLabs integration for neural voice synthesis and voice catalog access.",
|
|
11
|
+
domain: "ai",
|
|
12
|
+
owners: ["platform.ai"],
|
|
13
|
+
tags: ["voice", "tts"],
|
|
14
|
+
stability: StabilityEnum.Beta
|
|
15
|
+
},
|
|
16
|
+
supportedModes: ["managed", "byok"],
|
|
17
|
+
capabilities: { provides: [{
|
|
18
|
+
key: "ai.voice.synthesis",
|
|
19
|
+
version: "1.0.0"
|
|
20
|
+
}] },
|
|
21
|
+
configSchema: {
|
|
22
|
+
schema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: { defaultVoiceId: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Optional default voice identifier for synthesis requests."
|
|
27
|
+
} }
|
|
28
|
+
},
|
|
29
|
+
example: { defaultVoiceId: "pNInz6obpgDQGcFmaJgB" }
|
|
30
|
+
},
|
|
31
|
+
secretSchema: {
|
|
32
|
+
schema: {
|
|
33
|
+
type: "object",
|
|
34
|
+
required: ["apiKey"],
|
|
35
|
+
properties: { apiKey: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "ElevenLabs API key with text-to-speech permissions."
|
|
38
|
+
} }
|
|
39
|
+
},
|
|
40
|
+
example: { apiKey: "eleven-***" }
|
|
41
|
+
},
|
|
42
|
+
healthCheck: {
|
|
43
|
+
method: "custom",
|
|
44
|
+
timeoutMs: 4e3
|
|
45
|
+
},
|
|
46
|
+
docsUrl: "https://elevenlabs.io/docs/api-reference/text-to-speech",
|
|
47
|
+
constraints: { rateLimit: { rpm: 120 } },
|
|
48
|
+
byokSetup: { setupInstructions: "Create an ElevenLabs API key and ensure the desired voices are accessible to the key scope." }
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
//#endregion
|
|
52
|
+
//# sourceMappingURL=elevenlabs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"elevenlabs.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/elevenlabs.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/elevenlabs.ts\nconst elevenLabsIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"ai-voice.elevenlabs\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"ai-voice\",\n\t\ttitle: \"ElevenLabs Text-to-Speech\",\n\t\tdescription: \"ElevenLabs integration for neural voice synthesis and voice catalog access.\",\n\t\tdomain: \"ai\",\n\t\towners: [\"platform.ai\"],\n\t\ttags: [\"voice\", \"tts\"],\n\t\tstability: StabilityEnum.Beta\n\t},\n\tsupportedModes: [\"managed\", \"byok\"],\n\tcapabilities: { provides: [{\n\t\tkey: \"ai.voice.synthesis\",\n\t\tversion: \"1.0.0\"\n\t}] },\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: { defaultVoiceId: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"Optional default voice identifier for synthesis requests.\"\n\t\t\t} }\n\t\t},\n\t\texample: { defaultVoiceId: \"pNInz6obpgDQGcFmaJgB\" }\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"apiKey\"],\n\t\t\tproperties: { apiKey: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"ElevenLabs API key with text-to-speech permissions.\"\n\t\t\t} }\n\t\t},\n\t\texample: { apiKey: \"eleven-***\" }\n\t},\n\thealthCheck: {\n\t\tmethod: \"custom\",\n\t\ttimeoutMs: 4e3\n\t},\n\tdocsUrl: \"https://elevenlabs.io/docs/api-reference/text-to-speech\",\n\tconstraints: { rateLimit: { rpm: 120 } },\n\tbyokSetup: { setupInstructions: \"Create an ElevenLabs API key and ensure the desired voices are accessible to the key scope.\" }\n};\nfunction registerElevenLabsIntegration(registry) {\n\treturn registry.register(elevenLabsIntegrationSpec);\n}\n\n//#endregion\nexport { elevenLabsIntegrationSpec, registerElevenLabsIntegration };"],"mappings":";;;AAGA,MAAM,4BAA4B;CACjC,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,cAAc;EACvB,MAAM,CAAC,SAAS,MAAM;EACtB,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EAAE,UAAU,CAAC;EAC1B,KAAK;EACL,SAAS;EACT,CAAC,EAAE;CACJ,cAAc;EACb,QAAQ;GACP,MAAM;GACN,YAAY,EAAE,gBAAgB;IAC7B,MAAM;IACN,aAAa;IACb,EAAE;GACH;EACD,SAAS,EAAE,gBAAgB,wBAAwB;EACnD;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,SAAS;GACpB,YAAY,EAAE,QAAQ;IACrB,MAAM;IACN,aAAa;IACb,EAAE;GACH;EACD,SAAS,EAAE,QAAQ,cAAc;EACjC;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE;CACxC,WAAW,EAAE,mBAAmB,+FAA+F;CAC/H"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/gcs-storage.js
|
|
4
|
+
const gcsStorageIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "storage.gcs",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "storage",
|
|
9
|
+
title: "Google Cloud Storage Buckets",
|
|
10
|
+
description: "Google Cloud Storage integration for object storage and retrieval.",
|
|
11
|
+
domain: "infrastructure",
|
|
12
|
+
owners: ["platform.infrastructure"],
|
|
13
|
+
tags: [
|
|
14
|
+
"storage",
|
|
15
|
+
"gcs",
|
|
16
|
+
"google-cloud"
|
|
17
|
+
],
|
|
18
|
+
stability: StabilityEnum.Beta
|
|
19
|
+
},
|
|
20
|
+
supportedModes: ["managed", "byok"],
|
|
21
|
+
capabilities: { provides: [{
|
|
22
|
+
key: "storage.objects",
|
|
23
|
+
version: "1.0.0"
|
|
24
|
+
}] },
|
|
25
|
+
configSchema: {
|
|
26
|
+
schema: {
|
|
27
|
+
type: "object",
|
|
28
|
+
required: ["bucket"],
|
|
29
|
+
properties: {
|
|
30
|
+
bucket: {
|
|
31
|
+
type: "string",
|
|
32
|
+
description: "Primary bucket name used for storing objects."
|
|
33
|
+
},
|
|
34
|
+
prefix: {
|
|
35
|
+
type: "string",
|
|
36
|
+
description: "Optional prefix applied to object keys."
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
example: {
|
|
41
|
+
bucket: "pfo-tenant-assets",
|
|
42
|
+
prefix: "documents/"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
secretSchema: {
|
|
46
|
+
schema: {
|
|
47
|
+
type: "object",
|
|
48
|
+
properties: {
|
|
49
|
+
type: {
|
|
50
|
+
type: "string",
|
|
51
|
+
description: "Service account type field from Google credentials JSON (if provided)."
|
|
52
|
+
},
|
|
53
|
+
client_email: { type: "string" },
|
|
54
|
+
private_key: { type: "string" },
|
|
55
|
+
project_id: { type: "string" }
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
example: {
|
|
59
|
+
type: "service_account",
|
|
60
|
+
client_email: "svc-account@example.iam.gserviceaccount.com",
|
|
61
|
+
private_key: "-----BEGIN PRIVATE KEY-----...",
|
|
62
|
+
project_id: "example-project"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
healthCheck: {
|
|
66
|
+
method: "ping",
|
|
67
|
+
timeoutMs: 4e3
|
|
68
|
+
},
|
|
69
|
+
docsUrl: "https://cloud.google.com/storage/docs/apis",
|
|
70
|
+
constraints: { quotas: { storageGb: 5120 } },
|
|
71
|
+
byokSetup: { setupInstructions: "Create a Google Cloud service account with Storage Object Admin role and upload the JSON credentials to the secret store." }
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
//#endregion
|
|
75
|
+
//# sourceMappingURL=gcs-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gcs-storage.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/gcs-storage.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/gcs-storage.ts\nconst gcsStorageIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"storage.gcs\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"storage\",\n\t\ttitle: \"Google Cloud Storage Buckets\",\n\t\tdescription: \"Google Cloud Storage integration for object storage and retrieval.\",\n\t\tdomain: \"infrastructure\",\n\t\towners: [\"platform.infrastructure\"],\n\t\ttags: [\n\t\t\t\"storage\",\n\t\t\t\"gcs\",\n\t\t\t\"google-cloud\"\n\t\t],\n\t\tstability: StabilityEnum.Beta\n\t},\n\tsupportedModes: [\"managed\", \"byok\"],\n\tcapabilities: { provides: [{\n\t\tkey: \"storage.objects\",\n\t\tversion: \"1.0.0\"\n\t}] },\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"bucket\"],\n\t\t\tproperties: {\n\t\t\t\tbucket: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Primary bucket name used for storing objects.\"\n\t\t\t\t},\n\t\t\t\tprefix: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional prefix applied to object keys.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tbucket: \"pfo-tenant-assets\",\n\t\t\tprefix: \"documents/\"\n\t\t}\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\ttype: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Service account type field from Google credentials JSON (if provided).\"\n\t\t\t\t},\n\t\t\t\tclient_email: { type: \"string\" },\n\t\t\t\tprivate_key: { type: \"string\" },\n\t\t\t\tproject_id: { type: \"string\" }\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\ttype: \"service_account\",\n\t\t\tclient_email: \"svc-account@example.iam.gserviceaccount.com\",\n\t\t\tprivate_key: \"-----BEGIN PRIVATE KEY-----...\",\n\t\t\tproject_id: \"example-project\"\n\t\t}\n\t},\n\thealthCheck: {\n\t\tmethod: \"ping\",\n\t\ttimeoutMs: 4e3\n\t},\n\tdocsUrl: \"https://cloud.google.com/storage/docs/apis\",\n\tconstraints: { quotas: { storageGb: 5120 } },\n\tbyokSetup: { setupInstructions: \"Create a Google Cloud service account with Storage Object Admin role and upload the JSON credentials to the secret store.\" }\n};\nfunction registerGcsStorageIntegration(registry) {\n\treturn registry.register(gcsStorageIntegrationSpec);\n}\n\n//#endregion\nexport { gcsStorageIntegrationSpec, registerGcsStorageIntegration };"],"mappings":";;;AAGA,MAAM,4BAA4B;CACjC,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,0BAA0B;EACnC,MAAM;GACL;GACA;GACA;GACA;EACD,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EAAE,UAAU,CAAC;EAC1B,KAAK;EACL,SAAS;EACT,CAAC,EAAE;CACJ,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,SAAS;GACpB,YAAY;IACX,QAAQ;KACP,MAAM;KACN,aAAa;KACb;IACD,QAAQ;KACP,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,QAAQ;GACR,QAAQ;GACR;EACD;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,YAAY;IACX,MAAM;KACL,MAAM;KACN,aAAa;KACb;IACD,cAAc,EAAE,MAAM,UAAU;IAChC,aAAa,EAAE,MAAM,UAAU;IAC/B,YAAY,EAAE,MAAM,UAAU;IAC9B;GACD;EACD,SAAS;GACR,MAAM;GACN,cAAc;GACd,aAAa;GACb,YAAY;GACZ;EACD;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE,QAAQ,EAAE,WAAW,MAAM,EAAE;CAC5C,WAAW,EAAE,mBAAmB,6HAA6H;CAC7J"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/gmail.js
|
|
4
|
+
const gmailIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "email.gmail",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "email",
|
|
9
|
+
title: "Google Gmail API",
|
|
10
|
+
description: "Gmail integration supporting inbound thread ingestion and outbound transactional email.",
|
|
11
|
+
domain: "communications",
|
|
12
|
+
owners: ["platform.messaging"],
|
|
13
|
+
tags: ["email", "gmail"],
|
|
14
|
+
stability: StabilityEnum.Beta
|
|
15
|
+
},
|
|
16
|
+
supportedModes: ["managed", "byok"],
|
|
17
|
+
capabilities: { provides: [{
|
|
18
|
+
key: "email.inbound",
|
|
19
|
+
version: "1.0.0"
|
|
20
|
+
}, {
|
|
21
|
+
key: "email.outbound",
|
|
22
|
+
version: "1.0.0"
|
|
23
|
+
}] },
|
|
24
|
+
configSchema: {
|
|
25
|
+
schema: {
|
|
26
|
+
type: "object",
|
|
27
|
+
properties: {
|
|
28
|
+
labelIds: {
|
|
29
|
+
type: "array",
|
|
30
|
+
items: { type: "string" },
|
|
31
|
+
description: "Optional list of label IDs to scope inbound sync."
|
|
32
|
+
},
|
|
33
|
+
includeSpamTrash: {
|
|
34
|
+
type: "boolean",
|
|
35
|
+
description: "Whether to include spam or trash messages during sync."
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
example: {
|
|
40
|
+
labelIds: ["INBOX"],
|
|
41
|
+
includeSpamTrash: false
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
secretSchema: {
|
|
45
|
+
schema: {
|
|
46
|
+
type: "object",
|
|
47
|
+
required: [
|
|
48
|
+
"clientId",
|
|
49
|
+
"clientSecret",
|
|
50
|
+
"refreshToken"
|
|
51
|
+
],
|
|
52
|
+
properties: {
|
|
53
|
+
clientId: {
|
|
54
|
+
type: "string",
|
|
55
|
+
description: "OAuth client ID for the Google Cloud project."
|
|
56
|
+
},
|
|
57
|
+
clientSecret: {
|
|
58
|
+
type: "string",
|
|
59
|
+
description: "OAuth client secret for the Google Cloud project."
|
|
60
|
+
},
|
|
61
|
+
refreshToken: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: "OAuth refresh token for delegated Gmail access."
|
|
64
|
+
},
|
|
65
|
+
redirectUri: {
|
|
66
|
+
type: "string",
|
|
67
|
+
description: "Optional redirect URI used when issuing the refresh token."
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
example: {
|
|
72
|
+
clientId: "xxx.apps.googleusercontent.com",
|
|
73
|
+
clientSecret: "secret",
|
|
74
|
+
refreshToken: "refresh-token"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
healthCheck: {
|
|
78
|
+
method: "custom",
|
|
79
|
+
timeoutMs: 4e3
|
|
80
|
+
},
|
|
81
|
+
docsUrl: "https://developers.google.com/gmail/api",
|
|
82
|
+
constraints: { rateLimit: { rpm: 600 } },
|
|
83
|
+
byokSetup: { setupInstructions: "Create an OAuth consent screen and credentials within Google Cloud Console, then authorize the Gmail scopes and store the resulting refresh token." }
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
//# sourceMappingURL=gmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gmail.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/gmail.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/gmail.ts\nconst gmailIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"email.gmail\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"email\",\n\t\ttitle: \"Google Gmail API\",\n\t\tdescription: \"Gmail integration supporting inbound thread ingestion and outbound transactional email.\",\n\t\tdomain: \"communications\",\n\t\towners: [\"platform.messaging\"],\n\t\ttags: [\"email\", \"gmail\"],\n\t\tstability: StabilityEnum.Beta\n\t},\n\tsupportedModes: [\"managed\", \"byok\"],\n\tcapabilities: { provides: [{\n\t\tkey: \"email.inbound\",\n\t\tversion: \"1.0.0\"\n\t}, {\n\t\tkey: \"email.outbound\",\n\t\tversion: \"1.0.0\"\n\t}] },\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tlabelIds: {\n\t\t\t\t\ttype: \"array\",\n\t\t\t\t\titems: { type: \"string\" },\n\t\t\t\t\tdescription: \"Optional list of label IDs to scope inbound sync.\"\n\t\t\t\t},\n\t\t\t\tincludeSpamTrash: {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\tdescription: \"Whether to include spam or trash messages during sync.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tlabelIds: [\"INBOX\"],\n\t\t\tincludeSpamTrash: false\n\t\t}\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\n\t\t\t\t\"clientId\",\n\t\t\t\t\"clientSecret\",\n\t\t\t\t\"refreshToken\"\n\t\t\t],\n\t\t\tproperties: {\n\t\t\t\tclientId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"OAuth client ID for the Google Cloud project.\"\n\t\t\t\t},\n\t\t\t\tclientSecret: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"OAuth client secret for the Google Cloud project.\"\n\t\t\t\t},\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"OAuth refresh token for delegated Gmail access.\"\n\t\t\t\t},\n\t\t\t\tredirectUri: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional redirect URI used when issuing the refresh token.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tclientId: \"xxx.apps.googleusercontent.com\",\n\t\t\tclientSecret: \"secret\",\n\t\t\trefreshToken: \"refresh-token\"\n\t\t}\n\t},\n\thealthCheck: {\n\t\tmethod: \"custom\",\n\t\ttimeoutMs: 4e3\n\t},\n\tdocsUrl: \"https://developers.google.com/gmail/api\",\n\tconstraints: { rateLimit: { rpm: 600 } },\n\tbyokSetup: { setupInstructions: \"Create an OAuth consent screen and credentials within Google Cloud Console, then authorize the Gmail scopes and store the resulting refresh token.\" }\n};\nfunction registerGmailIntegration(registry) {\n\treturn registry.register(gmailIntegrationSpec);\n}\n\n//#endregion\nexport { gmailIntegrationSpec, registerGmailIntegration };"],"mappings":";;;AAGA,MAAM,uBAAuB;CAC5B,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,SAAS,QAAQ;EACxB,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EAAE,UAAU,CAAC;EAC1B,KAAK;EACL,SAAS;EACT,EAAE;EACF,KAAK;EACL,SAAS;EACT,CAAC,EAAE;CACJ,cAAc;EACb,QAAQ;GACP,MAAM;GACN,YAAY;IACX,UAAU;KACT,MAAM;KACN,OAAO,EAAE,MAAM,UAAU;KACzB,aAAa;KACb;IACD,kBAAkB;KACjB,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,UAAU,CAAC,QAAQ;GACnB,kBAAkB;GAClB;EACD;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU;IACT;IACA;IACA;IACA;GACD,YAAY;IACX,UAAU;KACT,MAAM;KACN,aAAa;KACb;IACD,cAAc;KACb,MAAM;KACN,aAAa;KACb;IACD,cAAc;KACb,MAAM;KACN,aAAa;KACb;IACD,aAAa;KACZ,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,UAAU;GACV,cAAc;GACd,cAAc;GACd;EACD;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE;CACxC,WAAW,EAAE,mBAAmB,sJAAsJ;CACtL"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/google-calendar.js
|
|
4
|
+
const googleCalendarIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "calendar.google",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "calendar",
|
|
9
|
+
title: "Google Calendar API",
|
|
10
|
+
description: "Google Calendar integration for event creation, updates, and scheduling automations.",
|
|
11
|
+
domain: "productivity",
|
|
12
|
+
owners: ["platform.messaging"],
|
|
13
|
+
tags: ["calendar", "google"],
|
|
14
|
+
stability: StabilityEnum.Beta
|
|
15
|
+
},
|
|
16
|
+
supportedModes: ["managed", "byok"],
|
|
17
|
+
capabilities: { provides: [{
|
|
18
|
+
key: "calendar.events",
|
|
19
|
+
version: "1.0.0"
|
|
20
|
+
}] },
|
|
21
|
+
configSchema: {
|
|
22
|
+
schema: {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: { calendarId: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Default calendar identifier (defaults to primary)."
|
|
27
|
+
} }
|
|
28
|
+
},
|
|
29
|
+
example: { calendarId: "primary" }
|
|
30
|
+
},
|
|
31
|
+
secretSchema: {
|
|
32
|
+
schema: {
|
|
33
|
+
type: "object",
|
|
34
|
+
required: ["clientEmail", "privateKey"],
|
|
35
|
+
properties: {
|
|
36
|
+
clientEmail: {
|
|
37
|
+
type: "string",
|
|
38
|
+
description: "Service account client email."
|
|
39
|
+
},
|
|
40
|
+
privateKey: {
|
|
41
|
+
type: "string",
|
|
42
|
+
description: "Service account private key."
|
|
43
|
+
},
|
|
44
|
+
projectId: {
|
|
45
|
+
type: "string",
|
|
46
|
+
description: "Google Cloud project ID."
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
example: {
|
|
51
|
+
clientEmail: "svc-calendar@example.iam.gserviceaccount.com",
|
|
52
|
+
privateKey: "-----BEGIN PRIVATE KEY-----...",
|
|
53
|
+
projectId: "calendar-project"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
healthCheck: {
|
|
57
|
+
method: "custom",
|
|
58
|
+
timeoutMs: 4e3
|
|
59
|
+
},
|
|
60
|
+
docsUrl: "https://developers.google.com/calendar/api",
|
|
61
|
+
constraints: {},
|
|
62
|
+
byokSetup: { setupInstructions: "Create a Google service account with Calendar access and share the target calendars with the service account email." }
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//#endregion
|
|
66
|
+
//# sourceMappingURL=google-calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"google-calendar.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/google-calendar.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/google-calendar.ts\nconst googleCalendarIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"calendar.google\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"calendar\",\n\t\ttitle: \"Google Calendar API\",\n\t\tdescription: \"Google Calendar integration for event creation, updates, and scheduling automations.\",\n\t\tdomain: \"productivity\",\n\t\towners: [\"platform.messaging\"],\n\t\ttags: [\"calendar\", \"google\"],\n\t\tstability: StabilityEnum.Beta\n\t},\n\tsupportedModes: [\"managed\", \"byok\"],\n\tcapabilities: { provides: [{\n\t\tkey: \"calendar.events\",\n\t\tversion: \"1.0.0\"\n\t}] },\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: { calendarId: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"Default calendar identifier (defaults to primary).\"\n\t\t\t} }\n\t\t},\n\t\texample: { calendarId: \"primary\" }\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"clientEmail\", \"privateKey\"],\n\t\t\tproperties: {\n\t\t\t\tclientEmail: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Service account client email.\"\n\t\t\t\t},\n\t\t\t\tprivateKey: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Service account private key.\"\n\t\t\t\t},\n\t\t\t\tprojectId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Google Cloud project ID.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tclientEmail: \"svc-calendar@example.iam.gserviceaccount.com\",\n\t\t\tprivateKey: \"-----BEGIN PRIVATE KEY-----...\",\n\t\t\tprojectId: \"calendar-project\"\n\t\t}\n\t},\n\thealthCheck: {\n\t\tmethod: \"custom\",\n\t\ttimeoutMs: 4e3\n\t},\n\tdocsUrl: \"https://developers.google.com/calendar/api\",\n\tconstraints: {},\n\tbyokSetup: { setupInstructions: \"Create a Google service account with Calendar access and share the target calendars with the service account email.\" }\n};\nfunction registerGoogleCalendarIntegration(registry) {\n\treturn registry.register(googleCalendarIntegrationSpec);\n}\n\n//#endregion\nexport { googleCalendarIntegrationSpec, registerGoogleCalendarIntegration };"],"mappings":";;;AAGA,MAAM,gCAAgC;CACrC,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,YAAY,SAAS;EAC5B,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EAAE,UAAU,CAAC;EAC1B,KAAK;EACL,SAAS;EACT,CAAC,EAAE;CACJ,cAAc;EACb,QAAQ;GACP,MAAM;GACN,YAAY,EAAE,YAAY;IACzB,MAAM;IACN,aAAa;IACb,EAAE;GACH;EACD,SAAS,EAAE,YAAY,WAAW;EAClC;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,eAAe,aAAa;GACvC,YAAY;IACX,aAAa;KACZ,MAAM;KACN,aAAa;KACb;IACD,YAAY;KACX,MAAM;KACN,aAAa;KACb;IACD,WAAW;KACV,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,aAAa;GACb,YAAY;GACZ,WAAW;GACX;EACD;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE;CACf,WAAW,EAAE,mBAAmB,uHAAuH;CACvJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "./stripe.js";
|
|
2
|
+
import "./postmark.js";
|
|
3
|
+
import "./qdrant.js";
|
|
4
|
+
import "./mistral.js";
|
|
5
|
+
import "./elevenlabs.js";
|
|
6
|
+
import "./gmail.js";
|
|
7
|
+
import "./google-calendar.js";
|
|
8
|
+
import "./twilio-sms.js";
|
|
9
|
+
import "./gcs-storage.js";
|
|
10
|
+
import "./powens.js";
|
|
11
|
+
import "./registry.js";
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/mistral.js
|
|
4
|
+
const mistralIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "ai-llm.mistral",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "ai-llm",
|
|
9
|
+
title: "Mistral Large Language Model",
|
|
10
|
+
description: "Mistral integration providing chat completions and embedding generation.",
|
|
11
|
+
domain: "ai",
|
|
12
|
+
owners: ["platform.ai"],
|
|
13
|
+
tags: [
|
|
14
|
+
"ai",
|
|
15
|
+
"llm",
|
|
16
|
+
"embeddings"
|
|
17
|
+
],
|
|
18
|
+
stability: StabilityEnum.Experimental
|
|
19
|
+
},
|
|
20
|
+
supportedModes: ["managed", "byok"],
|
|
21
|
+
capabilities: { provides: [{
|
|
22
|
+
key: "ai.chat",
|
|
23
|
+
version: "1.0.0"
|
|
24
|
+
}, {
|
|
25
|
+
key: "ai.embeddings",
|
|
26
|
+
version: "1.0.0"
|
|
27
|
+
}] },
|
|
28
|
+
configSchema: {
|
|
29
|
+
schema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
model: {
|
|
33
|
+
type: "string",
|
|
34
|
+
description: "Default chat completion model (e.g., mistral-large-latest)."
|
|
35
|
+
},
|
|
36
|
+
embeddingModel: {
|
|
37
|
+
type: "string",
|
|
38
|
+
description: "Embedding model identifier."
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
example: {
|
|
43
|
+
model: "mistral-large-latest",
|
|
44
|
+
embeddingModel: "mistral-embed"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
secretSchema: {
|
|
48
|
+
schema: {
|
|
49
|
+
type: "object",
|
|
50
|
+
required: ["apiKey"],
|
|
51
|
+
properties: { apiKey: {
|
|
52
|
+
type: "string",
|
|
53
|
+
description: "Mistral API key with access to chat and embeddings endpoints."
|
|
54
|
+
} }
|
|
55
|
+
},
|
|
56
|
+
example: { apiKey: "mistral-***" }
|
|
57
|
+
},
|
|
58
|
+
healthCheck: {
|
|
59
|
+
method: "custom",
|
|
60
|
+
timeoutMs: 5e3
|
|
61
|
+
},
|
|
62
|
+
docsUrl: "https://docs.mistral.ai/platform/endpoints",
|
|
63
|
+
constraints: { rateLimit: { rpm: 600 } },
|
|
64
|
+
byokSetup: { setupInstructions: "Generate an API key within the Mistral console and ensure the selected models are enabled for the account." }
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
//#endregion
|
|
68
|
+
//# sourceMappingURL=mistral.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mistral.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/mistral.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/mistral.ts\nconst mistralIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"ai-llm.mistral\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"ai-llm\",\n\t\ttitle: \"Mistral Large Language Model\",\n\t\tdescription: \"Mistral integration providing chat completions and embedding generation.\",\n\t\tdomain: \"ai\",\n\t\towners: [\"platform.ai\"],\n\t\ttags: [\n\t\t\t\"ai\",\n\t\t\t\"llm\",\n\t\t\t\"embeddings\"\n\t\t],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tsupportedModes: [\"managed\", \"byok\"],\n\tcapabilities: { provides: [{\n\t\tkey: \"ai.chat\",\n\t\tversion: \"1.0.0\"\n\t}, {\n\t\tkey: \"ai.embeddings\",\n\t\tversion: \"1.0.0\"\n\t}] },\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tmodel: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Default chat completion model (e.g., mistral-large-latest).\"\n\t\t\t\t},\n\t\t\t\tembeddingModel: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Embedding model identifier.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tmodel: \"mistral-large-latest\",\n\t\t\tembeddingModel: \"mistral-embed\"\n\t\t}\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"apiKey\"],\n\t\t\tproperties: { apiKey: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"Mistral API key with access to chat and embeddings endpoints.\"\n\t\t\t} }\n\t\t},\n\t\texample: { apiKey: \"mistral-***\" }\n\t},\n\thealthCheck: {\n\t\tmethod: \"custom\",\n\t\ttimeoutMs: 5e3\n\t},\n\tdocsUrl: \"https://docs.mistral.ai/platform/endpoints\",\n\tconstraints: { rateLimit: { rpm: 600 } },\n\tbyokSetup: { setupInstructions: \"Generate an API key within the Mistral console and ensure the selected models are enabled for the account.\" }\n};\nfunction registerMistralIntegration(registry) {\n\treturn registry.register(mistralIntegrationSpec);\n}\n\n//#endregion\nexport { mistralIntegrationSpec, registerMistralIntegration };"],"mappings":";;;AAGA,MAAM,yBAAyB;CAC9B,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,cAAc;EACvB,MAAM;GACL;GACA;GACA;GACA;EACD,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc,EAAE,UAAU,CAAC;EAC1B,KAAK;EACL,SAAS;EACT,EAAE;EACF,KAAK;EACL,SAAS;EACT,CAAC,EAAE;CACJ,cAAc;EACb,QAAQ;GACP,MAAM;GACN,YAAY;IACX,OAAO;KACN,MAAM;KACN,aAAa;KACb;IACD,gBAAgB;KACf,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,OAAO;GACP,gBAAgB;GAChB;EACD;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,SAAS;GACpB,YAAY,EAAE,QAAQ;IACrB,MAAM;IACN,aAAa;IACb,EAAE;GACH;EACD,SAAS,EAAE,QAAQ,eAAe;EAClC;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE;CACxC,WAAW,EAAE,mBAAmB,8GAA8G;CAC9I"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/postmark.js
|
|
4
|
+
const postmarkIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "email.postmark",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "email",
|
|
9
|
+
title: "Postmark Transactional Email",
|
|
10
|
+
description: "Postmark integration for transactional email delivery.",
|
|
11
|
+
domain: "communications",
|
|
12
|
+
owners: ["platform.messaging"],
|
|
13
|
+
tags: ["email", "transactional"],
|
|
14
|
+
stability: StabilityEnum.Stable
|
|
15
|
+
},
|
|
16
|
+
supportedModes: ["managed", "byok"],
|
|
17
|
+
capabilities: {
|
|
18
|
+
provides: [{
|
|
19
|
+
key: "email.transactional",
|
|
20
|
+
version: "1.0.0"
|
|
21
|
+
}],
|
|
22
|
+
requires: [{
|
|
23
|
+
key: "platform.webhooks",
|
|
24
|
+
optional: true,
|
|
25
|
+
reason: "Optional for inbound bounce handling"
|
|
26
|
+
}]
|
|
27
|
+
},
|
|
28
|
+
configSchema: {
|
|
29
|
+
schema: {
|
|
30
|
+
type: "object",
|
|
31
|
+
properties: {
|
|
32
|
+
messageStream: {
|
|
33
|
+
type: "string",
|
|
34
|
+
description: "Optional message stream identifier (e.g., transactional)."
|
|
35
|
+
},
|
|
36
|
+
fromEmail: {
|
|
37
|
+
type: "string",
|
|
38
|
+
description: "Default From address used for outbound messages."
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
example: {
|
|
43
|
+
messageStream: "outbound",
|
|
44
|
+
fromEmail: "notifications@example.com"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
secretSchema: {
|
|
48
|
+
schema: {
|
|
49
|
+
type: "object",
|
|
50
|
+
required: ["serverToken"],
|
|
51
|
+
properties: { serverToken: {
|
|
52
|
+
type: "string",
|
|
53
|
+
description: "Server token for the Postmark account."
|
|
54
|
+
} }
|
|
55
|
+
},
|
|
56
|
+
example: { serverToken: "server-***" }
|
|
57
|
+
},
|
|
58
|
+
healthCheck: {
|
|
59
|
+
method: "ping",
|
|
60
|
+
timeoutMs: 3e3
|
|
61
|
+
},
|
|
62
|
+
docsUrl: "https://postmarkapp.com/developer",
|
|
63
|
+
constraints: { rateLimit: { rpm: 500 } },
|
|
64
|
+
byokSetup: { setupInstructions: "Create a Postmark server token with outbound send permissions and configure allowed from addresses." }
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
//#endregion
|
|
68
|
+
//# sourceMappingURL=postmark.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postmark.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/postmark.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/postmark.ts\nconst postmarkIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"email.postmark\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"email\",\n\t\ttitle: \"Postmark Transactional Email\",\n\t\tdescription: \"Postmark integration for transactional email delivery.\",\n\t\tdomain: \"communications\",\n\t\towners: [\"platform.messaging\"],\n\t\ttags: [\"email\", \"transactional\"],\n\t\tstability: StabilityEnum.Stable\n\t},\n\tsupportedModes: [\"managed\", \"byok\"],\n\tcapabilities: {\n\t\tprovides: [{\n\t\t\tkey: \"email.transactional\",\n\t\t\tversion: \"1.0.0\"\n\t\t}],\n\t\trequires: [{\n\t\t\tkey: \"platform.webhooks\",\n\t\t\toptional: true,\n\t\t\treason: \"Optional for inbound bounce handling\"\n\t\t}]\n\t},\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\tproperties: {\n\t\t\t\tmessageStream: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional message stream identifier (e.g., transactional).\"\n\t\t\t\t},\n\t\t\t\tfromEmail: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Default From address used for outbound messages.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tmessageStream: \"outbound\",\n\t\t\tfromEmail: \"notifications@example.com\"\n\t\t}\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"serverToken\"],\n\t\t\tproperties: { serverToken: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"Server token for the Postmark account.\"\n\t\t\t} }\n\t\t},\n\t\texample: { serverToken: \"server-***\" }\n\t},\n\thealthCheck: {\n\t\tmethod: \"ping\",\n\t\ttimeoutMs: 3e3\n\t},\n\tdocsUrl: \"https://postmarkapp.com/developer\",\n\tconstraints: { rateLimit: { rpm: 500 } },\n\tbyokSetup: { setupInstructions: \"Create a Postmark server token with outbound send permissions and configure allowed from addresses.\" }\n};\nfunction registerPostmarkIntegration(registry) {\n\treturn registry.register(postmarkIntegrationSpec);\n}\n\n//#endregion\nexport { postmarkIntegrationSpec, registerPostmarkIntegration };"],"mappings":";;;AAGA,MAAM,0BAA0B;CAC/B,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,qBAAqB;EAC9B,MAAM,CAAC,SAAS,gBAAgB;EAChC,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,WAAW,OAAO;CACnC,cAAc;EACb,UAAU,CAAC;GACV,KAAK;GACL,SAAS;GACT,CAAC;EACF,UAAU,CAAC;GACV,KAAK;GACL,UAAU;GACV,QAAQ;GACR,CAAC;EACF;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,YAAY;IACX,eAAe;KACd,MAAM;KACN,aAAa;KACb;IACD,WAAW;KACV,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,eAAe;GACf,WAAW;GACX;EACD;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,cAAc;GACzB,YAAY,EAAE,aAAa;IAC1B,MAAM;IACN,aAAa;IACb,EAAE;GACH;EACD,SAAS,EAAE,aAAa,cAAc;EACtC;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE,WAAW,EAAE,KAAK,KAAK,EAAE;CACxC,WAAW,EAAE,mBAAmB,uGAAuG;CACvI"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { StabilityEnum } from "../../ownership.js";
|
|
2
|
+
|
|
3
|
+
//#region ../../libs/contracts/dist/integrations/providers/powens.js
|
|
4
|
+
const powensIntegrationSpec = {
|
|
5
|
+
meta: {
|
|
6
|
+
key: "openbanking.powens",
|
|
7
|
+
version: "1.0.0",
|
|
8
|
+
category: "open-banking",
|
|
9
|
+
title: "Powens Open Banking (Read)",
|
|
10
|
+
description: "Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.",
|
|
11
|
+
domain: "finance",
|
|
12
|
+
owners: ["platform.finance"],
|
|
13
|
+
tags: [
|
|
14
|
+
"open-banking",
|
|
15
|
+
"powens",
|
|
16
|
+
"finance"
|
|
17
|
+
],
|
|
18
|
+
stability: StabilityEnum.Experimental
|
|
19
|
+
},
|
|
20
|
+
supportedModes: ["byok"],
|
|
21
|
+
capabilities: { provides: [
|
|
22
|
+
{
|
|
23
|
+
key: "openbanking.accounts.read",
|
|
24
|
+
version: "1.0.0"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
key: "openbanking.transactions.read",
|
|
28
|
+
version: "1.0.0"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
key: "openbanking.balances.read",
|
|
32
|
+
version: "1.0.0"
|
|
33
|
+
}
|
|
34
|
+
] },
|
|
35
|
+
configSchema: {
|
|
36
|
+
schema: {
|
|
37
|
+
type: "object",
|
|
38
|
+
required: ["environment"],
|
|
39
|
+
properties: {
|
|
40
|
+
environment: {
|
|
41
|
+
type: "string",
|
|
42
|
+
enum: ["sandbox", "production"],
|
|
43
|
+
description: "Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints."
|
|
44
|
+
},
|
|
45
|
+
baseUrl: {
|
|
46
|
+
type: "string",
|
|
47
|
+
description: "Optional override for the Powens API base URL. Defaults to Powens environment defaults."
|
|
48
|
+
},
|
|
49
|
+
region: {
|
|
50
|
+
type: "string",
|
|
51
|
+
description: "Optional Powens region identifier when targeting a specific data residency cluster."
|
|
52
|
+
},
|
|
53
|
+
pollingIntervalMs: {
|
|
54
|
+
type: "number",
|
|
55
|
+
description: "Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard)."
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
example: {
|
|
60
|
+
environment: "sandbox",
|
|
61
|
+
baseUrl: "https://api-sandbox.powens.com/v2",
|
|
62
|
+
region: "eu-west-1",
|
|
63
|
+
pollingIntervalMs: 3e5
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
secretSchema: {
|
|
67
|
+
schema: {
|
|
68
|
+
type: "object",
|
|
69
|
+
required: ["clientId", "clientSecret"],
|
|
70
|
+
properties: {
|
|
71
|
+
clientId: {
|
|
72
|
+
type: "string",
|
|
73
|
+
description: "Powens OAuth client identifier obtained from the Powens Console (BYOK project)."
|
|
74
|
+
},
|
|
75
|
+
clientSecret: {
|
|
76
|
+
type: "string",
|
|
77
|
+
description: "Powens OAuth client secret used to exchange for access tokens."
|
|
78
|
+
},
|
|
79
|
+
apiKey: {
|
|
80
|
+
type: "string",
|
|
81
|
+
description: "Optional Powens API key (if the tenant project exposes a dedicated API token)."
|
|
82
|
+
},
|
|
83
|
+
webhookSecret: {
|
|
84
|
+
type: "string",
|
|
85
|
+
description: "Optional webhook signing secret used to verify Powens webhook payloads."
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
example: {
|
|
90
|
+
clientId: "powens-client-id",
|
|
91
|
+
clientSecret: "powens-client-secret",
|
|
92
|
+
apiKey: "powens-api-key",
|
|
93
|
+
webhookSecret: "powens-webhook-secret"
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
healthCheck: {
|
|
97
|
+
method: "ping",
|
|
98
|
+
timeoutMs: 8e3
|
|
99
|
+
},
|
|
100
|
+
docsUrl: "https://docs.powens.com/",
|
|
101
|
+
constraints: { rateLimit: {
|
|
102
|
+
rph: 1e4,
|
|
103
|
+
rpm: 600
|
|
104
|
+
} },
|
|
105
|
+
byokSetup: {
|
|
106
|
+
setupInstructions: "Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.",
|
|
107
|
+
requiredScopes: [
|
|
108
|
+
"accounts:read",
|
|
109
|
+
"transactions:read",
|
|
110
|
+
"balances:read"
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
|
|
115
|
+
//#endregion
|
|
116
|
+
//# sourceMappingURL=powens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"powens.js","names":[],"sources":["../../../../../../../../libs/contracts/dist/integrations/providers/powens.js"],"sourcesContent":["import { StabilityEnum } from \"../../ownership.js\";\n\n//#region src/integrations/providers/powens.ts\nconst powensIntegrationSpec = {\n\tmeta: {\n\t\tkey: \"openbanking.powens\",\n\t\tversion: \"1.0.0\",\n\t\tcategory: \"open-banking\",\n\t\ttitle: \"Powens Open Banking (Read)\",\n\t\tdescription: \"Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.\",\n\t\tdomain: \"finance\",\n\t\towners: [\"platform.finance\"],\n\t\ttags: [\n\t\t\t\"open-banking\",\n\t\t\t\"powens\",\n\t\t\t\"finance\"\n\t\t],\n\t\tstability: StabilityEnum.Experimental\n\t},\n\tsupportedModes: [\"byok\"],\n\tcapabilities: { provides: [\n\t\t{\n\t\t\tkey: \"openbanking.accounts.read\",\n\t\t\tversion: \"1.0.0\"\n\t\t},\n\t\t{\n\t\t\tkey: \"openbanking.transactions.read\",\n\t\t\tversion: \"1.0.0\"\n\t\t},\n\t\t{\n\t\t\tkey: \"openbanking.balances.read\",\n\t\t\tversion: \"1.0.0\"\n\t\t}\n\t] },\n\tconfigSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"environment\"],\n\t\t\tproperties: {\n\t\t\t\tenvironment: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tenum: [\"sandbox\", \"production\"],\n\t\t\t\t\tdescription: \"Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints.\"\n\t\t\t\t},\n\t\t\t\tbaseUrl: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional override for the Powens API base URL. Defaults to Powens environment defaults.\"\n\t\t\t\t},\n\t\t\t\tregion: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional Powens region identifier when targeting a specific data residency cluster.\"\n\t\t\t\t},\n\t\t\t\tpollingIntervalMs: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tdescription: \"Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard).\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tenvironment: \"sandbox\",\n\t\t\tbaseUrl: \"https://api-sandbox.powens.com/v2\",\n\t\t\tregion: \"eu-west-1\",\n\t\t\tpollingIntervalMs: 3e5\n\t\t}\n\t},\n\tsecretSchema: {\n\t\tschema: {\n\t\t\ttype: \"object\",\n\t\t\trequired: [\"clientId\", \"clientSecret\"],\n\t\t\tproperties: {\n\t\t\t\tclientId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Powens OAuth client identifier obtained from the Powens Console (BYOK project).\"\n\t\t\t\t},\n\t\t\t\tclientSecret: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Powens OAuth client secret used to exchange for access tokens.\"\n\t\t\t\t},\n\t\t\t\tapiKey: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional Powens API key (if the tenant project exposes a dedicated API token).\"\n\t\t\t\t},\n\t\t\t\twebhookSecret: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tdescription: \"Optional webhook signing secret used to verify Powens webhook payloads.\"\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\texample: {\n\t\t\tclientId: \"powens-client-id\",\n\t\t\tclientSecret: \"powens-client-secret\",\n\t\t\tapiKey: \"powens-api-key\",\n\t\t\twebhookSecret: \"powens-webhook-secret\"\n\t\t}\n\t},\n\thealthCheck: {\n\t\tmethod: \"ping\",\n\t\ttimeoutMs: 8e3\n\t},\n\tdocsUrl: \"https://docs.powens.com/\",\n\tconstraints: { rateLimit: {\n\t\trph: 1e4,\n\t\trpm: 600\n\t} },\n\tbyokSetup: {\n\t\tsetupInstructions: \"Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.\",\n\t\trequiredScopes: [\n\t\t\t\"accounts:read\",\n\t\t\t\"transactions:read\",\n\t\t\t\"balances:read\"\n\t\t]\n\t}\n};\nfunction registerPowensIntegration(registry) {\n\treturn registry.register(powensIntegrationSpec);\n}\n\n//#endregion\nexport { powensIntegrationSpec, registerPowensIntegration };"],"mappings":";;;AAGA,MAAM,wBAAwB;CAC7B,MAAM;EACL,KAAK;EACL,SAAS;EACT,UAAU;EACV,OAAO;EACP,aAAa;EACb,QAAQ;EACR,QAAQ,CAAC,mBAAmB;EAC5B,MAAM;GACL;GACA;GACA;GACA;EACD,WAAW,cAAc;EACzB;CACD,gBAAgB,CAAC,OAAO;CACxB,cAAc,EAAE,UAAU;EACzB;GACC,KAAK;GACL,SAAS;GACT;EACD;GACC,KAAK;GACL,SAAS;GACT;EACD;GACC,KAAK;GACL,SAAS;GACT;EACD,EAAE;CACH,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,cAAc;GACzB,YAAY;IACX,aAAa;KACZ,MAAM;KACN,MAAM,CAAC,WAAW,aAAa;KAC/B,aAAa;KACb;IACD,SAAS;KACR,MAAM;KACN,aAAa;KACb;IACD,QAAQ;KACP,MAAM;KACN,aAAa;KACb;IACD,mBAAmB;KAClB,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,aAAa;GACb,SAAS;GACT,QAAQ;GACR,mBAAmB;GACnB;EACD;CACD,cAAc;EACb,QAAQ;GACP,MAAM;GACN,UAAU,CAAC,YAAY,eAAe;GACtC,YAAY;IACX,UAAU;KACT,MAAM;KACN,aAAa;KACb;IACD,cAAc;KACb,MAAM;KACN,aAAa;KACb;IACD,QAAQ;KACP,MAAM;KACN,aAAa;KACb;IACD,eAAe;KACd,MAAM;KACN,aAAa;KACb;IACD;GACD;EACD,SAAS;GACR,UAAU;GACV,cAAc;GACd,QAAQ;GACR,eAAe;GACf;EACD;CACD,aAAa;EACZ,QAAQ;EACR,WAAW;EACX;CACD,SAAS;CACT,aAAa,EAAE,WAAW;EACzB,KAAK;EACL,KAAK;EACL,EAAE;CACH,WAAW;EACV,mBAAmB;EACnB,gBAAgB;GACf;GACA;GACA;GACA;EACD;CACD"}
|