@zackbart/connecta 0.34.1 → 0.36.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/CHANGELOG.md +418 -0
- package/README.md +65 -105
- package/SECURITY.md +3 -2
- package/bin/connecta.mjs +41 -16
- package/bin/version.mjs +1 -1
- package/dist/access-tokens.d.ts +2 -1
- package/dist/access-tokens.js +66 -30
- package/dist/activity.d.ts +1 -1
- package/dist/activity.js +2 -0
- package/dist/agent-config.d.ts +23 -0
- package/dist/agent-config.js +59 -0
- package/dist/agent-description.js +16 -0
- package/dist/agent-identity.js +4 -4
- package/dist/agent-observation.js +39 -0
- package/dist/auth/clerk-sdk/client.d.ts +2 -0
- package/dist/auth/clerk-sdk/generated.js +554 -563
- package/dist/auth/clerk-transport.js +70 -3
- package/dist/auth/clerk.d.ts +13 -0
- package/dist/auth/clerk.js +653 -246
- package/dist/auth/cloudflare-access.js +46 -42
- package/dist/auth/downstream-client-metadata.js +2 -2
- package/dist/auth/downstream-oauth.js +2044 -1161
- package/dist/auth/downstream-revocation.js +88 -88
- package/dist/auth/native-call.js +20 -0
- package/dist/auth/native.js +184 -0
- package/dist/auth/oauth-start-reset.js +11 -5
- package/dist/auth/oauth-token-response.js +121 -102
- package/dist/auth/oauth-v2-migration.js +97 -78
- package/dist/auth/renewable-grant.js +10 -0
- package/dist/auth/static-oauth.js +751 -281
- package/dist/auth/vercel-agent.js +266 -0
- package/dist/auth-admission.js +204 -0
- package/dist/auth-elicitation.js +350 -241
- package/dist/authorization-handoff.js +164 -90
- package/dist/call-admission-context.js +3 -10
- package/dist/call-admission.js +2 -0
- package/dist/call-classification.js +9 -0
- package/dist/call-recovery.js +32 -13
- package/dist/canonical-json.js +8 -0
- package/dist/catalog-cache.js +369 -213
- package/dist/catalog-service.js +659 -530
- package/dist/catalog.js +5 -1
- package/dist/concurrency.js +0 -25
- package/dist/config-defaults.d.ts +1 -0
- package/dist/config-defaults.js +1 -0
- package/dist/config-schema.d.ts +3 -1
- package/dist/config-schema.js +13 -3
- package/dist/config.d.ts +40 -6
- package/dist/config.js +40 -26
- package/dist/connector-caller.d.ts +4 -0
- package/dist/connector-caller.js +17 -4
- package/dist/connectors/api-connector.d.ts +29 -7
- package/dist/connectors/api-connector.js +145 -57
- package/dist/connectors/guarded-fetch.d.ts +51 -17
- package/dist/connectors/guarded-fetch.js +215 -121
- package/dist/connectors/negotiation-cache.js +20 -10
- package/dist/connectors/remote-mcp.d.ts +10 -30
- package/dist/connectors/remote-mcp.js +955 -563
- package/dist/d1.js +10 -243
- package/dist/derived-context.js +5 -0
- package/dist/describe-config.d.ts +3 -1
- package/dist/describe-config.js +2 -0
- package/dist/downstream-input.js +347 -260
- package/dist/errors.d.ts +87 -6
- package/dist/errors.js +114 -4
- package/dist/execute.js +87 -50
- package/dist/executor-admission.js +3 -0
- package/dist/executors/quickjs.js +163 -112
- package/dist/guarded-transport.js +50 -0
- package/dist/guest-runtime.js +1 -1
- package/dist/http/client.js +439 -0
- package/dist/http/errors.js +558 -0
- package/dist/http/fields.js +49 -0
- package/dist/http/hatch-paging.js +318 -0
- package/dist/http/hatch.js +1279 -0
- package/dist/http/json-schema.js +267 -0
- package/dist/http/node-transport.js +241 -0
- package/dist/http/oauth.js +162 -0
- package/dist/http/paging.js +227 -0
- package/dist/http/provider.js +221 -0
- package/dist/http/safety.js +82 -0
- package/dist/http/services.js +79 -0
- package/dist/http/tools.js +379 -0
- package/dist/http/vendor-index.js +138 -0
- package/dist/http/vendor.js +448 -0
- package/dist/http/write-request.js +66 -0
- package/dist/http-policy.d.ts +11 -0
- package/dist/http-policy.js +45 -0
- package/dist/inbound-credential.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -0
- package/dist/invocation-auth.js +30 -19
- package/dist/invocation.js +218 -85
- package/dist/mcp-result.js +0 -4
- package/dist/membership.d.ts +4 -0
- package/dist/meta-output.js +1 -1
- package/dist/meta-tools.js +531 -406
- package/dist/native-recovery.js +52 -0
- package/dist/native-tools.js +382 -0
- package/dist/node.d.ts +4 -3
- package/dist/node.js +45 -8
- package/dist/oauth-handoff.js +177 -104
- package/dist/oauth-partition.js +6 -20
- package/dist/oauth-sealing.js +6 -7
- package/dist/operation-vocabulary.js +101 -0
- package/dist/operator-record.d.ts +2 -2
- package/dist/operator-record.js +17 -4
- package/dist/operator-ui/contract.d.ts +8 -3
- package/dist/operator-ui/generated.js +4 -4
- package/dist/operator-ui/model.d.ts +2 -3
- package/dist/program-writes.js +47 -26
- package/dist/provider-call-facts.d.ts +115 -0
- package/dist/provider-call-facts.js +182 -0
- package/dist/provider-call.d.ts +112 -0
- package/dist/provider-call.js +271 -0
- package/dist/provider.d.ts +65 -31
- package/dist/provider.js +116 -39
- package/dist/providers/_shared/google/hatch.js +91 -0
- package/dist/providers/_shared/google/kit.js +427 -0
- package/dist/providers/_shared/google/result-size.js +15 -2
- package/dist/providers/_shared/google/service-account.d.ts +2 -1
- package/dist/providers/_shared/google/service-account.js +8 -4
- package/dist/providers/_shared/google/workspace.d.ts +6 -210
- package/dist/providers/_shared/google/workspace.js +6 -425
- package/dist/providers/_shared/rest/compact-index.js +86 -0
- package/dist/providers/_shared/rest/kit.js +146 -0
- package/dist/providers/_shared/rest/operation-index.js +230 -14
- package/dist/providers/_shared/rest/response-media.js +11 -0
- package/dist/providers/_shared/rest/value-safety.js +353 -195
- package/dist/providers/_shared/sensitive-fields.js +27 -0
- package/dist/providers/breeze/api.js +584 -0
- package/dist/providers/breeze/index.d.ts +1 -3
- package/dist/providers/breeze/index.js +67 -1420
- package/dist/providers/breeze/openapi.generated.js +60 -0
- package/dist/providers/breeze/skill.generated.js +2 -6
- package/dist/providers/breeze/tools.js +696 -0
- package/dist/providers/ccb/api.js +496 -0
- package/dist/providers/ccb/index.d.ts +15 -37
- package/dist/providers/ccb/index.js +77 -1702
- package/dist/providers/ccb/lib/constants.d.ts +34 -0
- package/dist/providers/ccb/lib/constants.js +74 -0
- package/dist/providers/ccb/lib/guide.js +9 -0
- package/dist/providers/ccb/lib/verdicts.js +387 -0
- package/dist/providers/ccb/openapi.generated.js +397 -0
- package/dist/providers/ccb/safety.js +295 -0
- package/dist/providers/ccb/skill.generated.js +2 -6
- package/dist/providers/ccb/tools.js +853 -0
- package/dist/providers/cloudflare/api.js +1066 -0
- package/dist/providers/cloudflare/index.d.ts +5 -22
- package/dist/providers/cloudflare/index.js +79 -197
- package/dist/providers/cloudflare/lib/config.d.ts +16 -0
- package/dist/providers/cloudflare/lib/config.js +2 -0
- package/dist/providers/cloudflare/lib/discovery.js +29 -0
- package/dist/providers/cloudflare/{graphql.js → lib/graphql.js} +1 -1
- package/dist/providers/cloudflare/lib/hatch.js +103 -0
- package/dist/providers/cloudflare/lib/path-bounds.js +28 -0
- package/dist/providers/cloudflare/lib/response-media.js +75 -0
- package/dist/providers/cloudflare/openapi.generated.js +4 -3
- package/dist/providers/cloudflare/{value-safety.js → safety.js} +487 -0
- package/dist/providers/cloudflare/skill.generated.js +2 -10
- package/dist/providers/cloudflare/tools.js +360 -0
- package/dist/providers/docs/api.js +51 -0
- package/dist/providers/docs/index.d.ts +1 -12
- package/dist/providers/docs/index.js +53 -1165
- package/dist/providers/docs/lib/constants.d.ts +18 -0
- package/dist/providers/docs/lib/constants.js +18 -0
- package/dist/providers/docs/lib/discovery.js +26 -0
- package/dist/providers/docs/lib/requests.js +48 -0
- package/dist/providers/docs/lib/schemas.js +168 -0
- package/dist/providers/docs/openapi.generated.js +16 -0
- package/dist/providers/docs/safety.js +54 -0
- package/dist/providers/docs/skill.generated.js +2 -6
- package/dist/providers/docs/tools.js +801 -0
- package/dist/providers/drive/api.js +177 -0
- package/dist/providers/drive/index.d.ts +1 -12
- package/dist/providers/drive/index.js +38 -1448
- package/dist/providers/drive/lib/constants.d.ts +6 -0
- package/dist/providers/drive/lib/constants.js +6 -0
- package/dist/providers/drive/lib/contracts.js +532 -0
- package/dist/providers/drive/lib/hatch.js +197 -0
- package/dist/providers/drive/openapi.generated.js +77 -0
- package/dist/providers/drive/safety.js +90 -0
- package/dist/providers/drive/skill.generated.js +2 -6
- package/dist/providers/drive/tools.js +1290 -0
- package/dist/providers/forms/api.js +71 -0
- package/dist/providers/forms/index.d.ts +1 -12
- package/dist/providers/forms/index.js +49 -1145
- package/dist/providers/forms/lib/constants.d.ts +14 -0
- package/dist/providers/forms/lib/constants.js +19 -0
- package/dist/providers/forms/lib/hatch.js +72 -0
- package/dist/providers/forms/openapi.generated.js +23 -0
- package/dist/providers/forms/safety.js +34 -0
- package/dist/providers/forms/skill.generated.js +2 -8
- package/dist/providers/forms/tools.js +1023 -0
- package/dist/providers/github/api.js +150 -0
- package/dist/providers/github/index.d.ts +4 -5
- package/dist/providers/github/index.js +30 -87
- package/dist/providers/github/{auth.d.ts → lib/auth.d.ts} +5 -3
- package/dist/providers/github/{auth.js → lib/auth.js} +40 -43
- package/dist/providers/github/lib/discovery.js +132 -0
- package/dist/providers/github/lib/operations.js +58 -0
- package/dist/providers/github/{scope.d.ts → lib/scope.d.ts} +2 -0
- package/dist/providers/github/{scope.js → lib/scope.js} +25 -1
- package/dist/providers/github/openapi.generated.js +1216 -0
- package/dist/providers/github/safety.js +216 -0
- package/dist/providers/github/skill.generated.js +2 -5
- package/dist/providers/github/tools.js +506 -0
- package/dist/providers/gmail/api.js +114 -0
- package/dist/providers/gmail/index.d.ts +1 -12
- package/dist/providers/gmail/index.js +73 -1621
- package/dist/providers/gmail/lib/constants.d.ts +13 -0
- package/dist/providers/gmail/lib/constants.js +16 -0
- package/dist/providers/gmail/lib/index.js +173 -0
- package/dist/providers/gmail/lib/schemas.js +176 -0
- package/dist/providers/gmail/lib/threading.js +120 -0
- package/dist/providers/gmail/openapi.generated.js +92 -0
- package/dist/providers/gmail/safety.js +21 -0
- package/dist/providers/gmail/skill.generated.js +2 -6
- package/dist/providers/gmail/tools.js +1435 -0
- package/dist/providers/overflow/api.js +1008 -0
- package/dist/providers/overflow/index.d.ts +1 -17
- package/dist/providers/overflow/index.js +60 -1488
- package/dist/providers/overflow/skill.generated.js +2 -5
- package/dist/providers/overflow/tools.js +873 -0
- package/dist/providers/planning-center/api.js +467 -0
- package/dist/providers/planning-center/index.d.ts +4 -35
- package/dist/providers/planning-center/index.js +69 -2445
- package/dist/providers/planning-center/lib/constants.d.ts +58 -0
- package/dist/providers/planning-center/lib/constants.js +83 -0
- package/dist/providers/planning-center/lib/discovery.js +40 -0
- package/dist/providers/planning-center/lib/guide.js +39 -0
- package/dist/providers/planning-center/lib/json-api.js +83 -0
- package/dist/providers/planning-center/lib/verdicts.js +1758 -0
- package/dist/providers/planning-center/openapi.generated.js +1764 -0
- package/dist/providers/planning-center/safety.js +188 -0
- package/dist/providers/planning-center/skill.generated.js +2 -27
- package/dist/providers/planning-center/tools.js +1010 -0
- package/dist/providers/quickbooks/api.js +299 -0
- package/dist/providers/quickbooks/index.d.ts +13 -0
- package/dist/providers/quickbooks/index.js +93 -0
- package/dist/providers/quickbooks/lib/query.js +118 -0
- package/dist/providers/quickbooks/lib/writes.js +168 -0
- package/dist/providers/quickbooks/safety.js +222 -0
- package/dist/providers/quickbooks/skill.generated.js +5 -0
- package/dist/providers/quickbooks/tools.js +117 -0
- package/dist/providers/sheets/api.js +133 -0
- package/dist/providers/sheets/index.d.ts +4 -16
- package/dist/providers/sheets/index.js +61 -1172
- package/dist/providers/sheets/lib/constants.d.ts +14 -0
- package/dist/providers/sheets/lib/constants.js +14 -0
- package/dist/providers/sheets/lib/hatch.js +163 -0
- package/dist/providers/sheets/lib/requests.js +105 -0
- package/dist/providers/sheets/lib/schemas.js +138 -0
- package/dist/providers/sheets/openapi.generated.js +30 -0
- package/dist/providers/sheets/safety.js +27 -0
- package/dist/providers/sheets/skill.generated.js +2 -7
- package/dist/providers/sheets/tools.js +733 -0
- package/dist/providers/slides/api.js +147 -0
- package/dist/providers/slides/index.d.ts +2 -10
- package/dist/providers/slides/index.js +48 -2555
- package/dist/providers/slides/lib/constants.d.ts +11 -0
- package/dist/providers/slides/lib/constants.js +11 -0
- package/dist/providers/slides/lib/requests.js +60 -0
- package/dist/providers/slides/lib/schemas.js +565 -0
- package/dist/providers/slides/openapi.generated.js +18 -0
- package/dist/providers/slides/skill.generated.js +2 -6
- package/dist/providers/slides/tools.js +1968 -0
- package/dist/providers/stripe/api.js +401 -0
- package/dist/providers/stripe/index.d.ts +5 -27
- package/dist/providers/stripe/index.js +74 -210
- package/dist/providers/stripe/lib/config.d.ts +4 -0
- package/dist/providers/stripe/lib/config.js +2 -0
- package/dist/providers/stripe/openapi.generated.js +4 -3
- package/dist/providers/stripe/{value-safety.js → safety.js} +5 -5
- package/dist/providers/stripe/skill.generated.js +2 -11
- package/dist/providers/stripe/tools.js +77 -0
- package/dist/providers/tithely/api.js +531 -0
- package/dist/providers/tithely/index.d.ts +17 -0
- package/dist/providers/tithely/index.js +86 -965
- package/dist/providers/tithely/skill.generated.js +2 -5
- package/dist/providers/tithely/tools.js +426 -0
- package/dist/providers/vercel/api.js +551 -0
- package/dist/providers/vercel/index.d.ts +9 -25
- package/dist/providers/vercel/index.js +65 -260
- package/dist/providers/vercel/lib/config.d.ts +2 -0
- package/dist/providers/vercel/lib/config.js +2 -0
- package/dist/providers/vercel/lib/index.js +117 -0
- package/dist/providers/vercel/lib/logs.js +100 -0
- package/dist/providers/vercel/lib/pin.js +270 -0
- package/dist/providers/vercel/openapi.generated.js +10 -5
- package/dist/providers/vercel/{value-safety.js → safety.js} +247 -38
- package/dist/providers/vercel/skill.generated.js +2 -7
- package/dist/providers/vercel/tools.js +642 -0
- package/dist/redaction-identity.js +47 -0
- package/dist/redaction-marker.js +125 -0
- package/dist/registry.d.ts +21 -15
- package/dist/registry.js +409 -376
- package/dist/routes/access-tokens.js +1 -1
- package/dist/routes/actor-labels.js +1 -1
- package/dist/routes/connect.js +1 -1
- package/dist/routes/dispatch.js +103 -0
- package/dist/routes/mcp.js +170 -79
- package/dist/routes/oauth.js +6 -1
- package/dist/routes/operator.js +2 -2
- package/dist/routes/shared.d.ts +5 -4
- package/dist/routes/shared.js +244 -177
- package/dist/routes/skills.js +10 -8
- package/dist/routes/ui-config.js +27 -3
- package/dist/routes/ui-data.js +21 -20
- package/dist/routes/ui.js +1 -1
- package/dist/runtime/call-admission.js +0 -26
- package/dist/runtime/call-entry.js +30 -0
- package/dist/runtime/call.js +552 -0
- package/dist/runtime/connector-scope.js +7 -0
- package/dist/runtime/credential-probe.js +34 -0
- package/dist/runtime/executor.js +40 -0
- package/dist/runtime/native-storage.js +63 -0
- package/dist/runtime/registry.js +27 -0
- package/dist/runtime/request-scope.js +72 -0
- package/dist/runtime/run.js +15 -7
- package/dist/runtime/shared-read.js +34 -5
- package/dist/runtime/storage.js +34 -21
- package/dist/sent-secrets.d.ts +194 -37
- package/dist/sent-secrets.js +1743 -340
- package/dist/server.js +5 -56
- package/dist/skills.js +322 -223
- package/dist/sqlite.js +15 -14
- package/dist/storage/d1-copy.js +255 -0
- package/dist/storage/d1-driver.js +15 -0
- package/dist/storage/keys.js +28 -0
- package/dist/storage/sql-driver.js +88 -0
- package/dist/storage/sql-native.js +544 -0
- package/dist/storage/sql-schema.d.ts +6 -0
- package/dist/storage/sql-schema.js +15 -0
- package/dist/storage/sql.d.ts +14 -20
- package/dist/storage/sql.js +29 -535
- package/dist/timeout.js +0 -26
- package/dist/tool-safety.js +20 -10
- package/dist/types.d.ts +9 -109
- package/dist/ui.d.ts +1 -1
- package/dist/ui.js +0 -1
- package/dist/upward.js +3 -0
- package/dist/usage-guide.js +3 -1
- package/dist/validate.d.ts +4 -2
- package/dist/validate.js +86 -9
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/worker.js +312 -292
- package/dist/workspace-subject.js +5 -1
- package/dist/write-outcome.js +454 -34
- package/documentation/README.md +28 -7
- package/documentation/architecture.md +2409 -255
- package/documentation/auth.md +867 -114
- package/documentation/code-mode.md +49 -16
- package/documentation/deploying.md +164 -20
- package/documentation/hosted-mcp-migration.md +460 -0
- package/documentation/integrating.md +129 -144
- package/documentation/meta-tools.md +409 -32
- package/documentation/operating.md +27 -3
- package/documentation/operator-tests.md +3 -0
- package/documentation/operator-ui.md +84 -48
- package/documentation/provider-auth-migration.md +16 -63
- package/documentation/provider-migration-0.29.md +10 -5
- package/documentation/provider-migration-0.35.md +975 -0
- package/documentation/providers.md +1347 -0
- package/examples/worker/AGENTS.md +23 -9
- package/examples/worker/README.md +254 -135
- package/examples/worker/alchemy.run.ts +116 -0
- package/examples/worker/gitignore +10 -0
- package/examples/worker/src/connecta.config.ts +23 -21
- package/examples/worker/wrangler.jsonc +14 -5
- package/guides/connecting-agents.md +157 -0
- package/guides/how-it-works.md +156 -0
- package/guides/safety-and-trust.md +153 -0
- package/package.json +30 -50
- package/templates/node/.env.example +3 -0
- package/templates/node/README.md +22 -2
- package/templates/node/docker-compose.yml +1 -0
- package/templates/node/package.json +3 -2
- package/templates/node/src/connecta.config.ts +8 -0
- package/dist/catalog-drift.d.ts +0 -138
- package/dist/catalog-drift.js +0 -578
- package/dist/operator-ui/agents.d.ts +0 -74
- package/dist/operator-ui/agents.js +0 -104
- package/dist/operator-ui/config-summary.js +0 -565
- package/dist/operator-ui/connection-map.js +0 -376
- package/dist/operator-ui/endpoints.js +0 -221
- package/dist/operator-ui/fix-prompts.d.ts +0 -18
- package/dist/operator-ui/fix-prompts.js +0 -87
- package/dist/operator-ui/health.js +0 -52
- package/dist/operator-ui/member-page.js +0 -97
- package/dist/operator-ui/overview.js +0 -123
- package/dist/operator-ui/setup-commands.js +0 -51
- package/dist/operator-ui/view.d.ts +0 -401
- package/dist/operator-ui/view.js +0 -705
- package/dist/providers/_shared/request-token.js +0 -83
- package/dist/providers/_shared/rest/dispatch.js +0 -41
- package/dist/providers/_shared/rest/operation-index.d.ts +0 -133
- package/dist/providers/_shared/rest/tools.d.ts +0 -141
- package/dist/providers/_shared/rest/tools.js +0 -569
- package/dist/providers/_shared/rest/value-safety.d.ts +0 -201
- package/dist/providers/basecamp/index.d.ts +0 -45
- package/dist/providers/basecamp/index.js +0 -997
- package/dist/providers/basecamp/skill.generated.js +0 -9
- package/dist/providers/cloudflare/rest.d.ts +0 -37
- package/dist/providers/cloudflare/rest.js +0 -1097
- package/dist/providers/github/hosted.js +0 -218
- package/dist/providers/github/rest.js +0 -321
- package/dist/providers/infisical/index.d.ts +0 -7
- package/dist/providers/infisical/index.js +0 -713
- package/dist/providers/infisical/skill.generated.js +0 -8
- package/dist/providers/intercom/index.d.ts +0 -24
- package/dist/providers/intercom/index.js +0 -121
- package/dist/providers/intercom/skill.generated.js +0 -8
- package/dist/providers/linear/index.d.ts +0 -55
- package/dist/providers/linear/index.js +0 -537
- package/dist/providers/linear/skill.generated.js +0 -8
- package/dist/providers/mixpanel/index.d.ts +0 -59
- package/dist/providers/mixpanel/index.js +0 -472
- package/dist/providers/mixpanel/operations.js +0 -20
- package/dist/providers/mixpanel/rest.js +0 -603
- package/dist/providers/mixpanel/skill.generated.js +0 -10
- package/dist/providers/mixpanel/value-safety.js +0 -16
- package/dist/providers/notion/index.d.ts +0 -67
- package/dist/providers/notion/index.js +0 -368
- package/dist/providers/notion/openapi.generated.js +0 -75
- package/dist/providers/notion/rest.d.ts +0 -24
- package/dist/providers/notion/rest.js +0 -1226
- package/dist/providers/notion/skill.generated.js +0 -11
- package/dist/providers/notion/value-safety.js +0 -56
- package/dist/providers/revenuecat/index.d.ts +0 -51
- package/dist/providers/revenuecat/index.js +0 -697
- package/dist/providers/revenuecat/skill.generated.js +0 -11
- package/dist/providers/stripe/rest.d.ts +0 -14
- package/dist/providers/stripe/rest.js +0 -402
- package/dist/providers/vercel/rest.d.ts +0 -20
- package/dist/providers/vercel/rest.js +0 -1020
- package/dist/providers/wispr-flow/index.d.ts +0 -14
- package/dist/providers/wispr-flow/index.js +0 -117
- package/dist/providers/wispr-flow/skill.generated.js +0 -8
- /package/dist/providers/github/{key.js → lib/key.js} +0 -0
|
@@ -93,22 +93,9 @@ the deployment constructs its registry.
|
|
|
93
93
|
|
|
94
94
|
## Maintained integrations
|
|
95
95
|
|
|
96
|
-
Import a provider individually
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
```ts
|
|
100
|
-
import { linear } from "@zackbart/connecta/providers/linear";
|
|
101
|
-
|
|
102
|
-
const tracker = linear("tracker", {
|
|
103
|
-
purpose: "Engineering issues in our workspace",
|
|
104
|
-
access: "read-only",
|
|
105
|
-
});
|
|
106
|
-
// Add tracker to the deployment's connectors array.
|
|
107
|
-
```
|
|
108
|
-
|
|
109
|
-
Linear defaults to OAuth; its read-only endpoint requests only the downstream
|
|
110
|
-
read scope. That is separate from Connecta endpoint or connector `readOnly`. Read the installed `dist/providers/linear/index.d.ts` for API-key framing,
|
|
111
|
-
workspace instructions, and admission choices.
|
|
96
|
+
Import a provider individually from its published subpath. For removed presets
|
|
97
|
+
or a provider's former hosted mode, use the
|
|
98
|
+
[hosted MCP migration guide](./hosted-mcp-migration.md).
|
|
112
99
|
|
|
113
100
|
The [human README](../README.md#what-you-can-connect) lists available
|
|
114
101
|
integrations. In the installed package, `dist/providers/<name>/index.d.ts`
|
|
@@ -120,115 +107,37 @@ providers require administrator-managed domain-wide delegation and a deployment
|
|
|
120
107
|
mapping from admitted identity to the downstream account; an agent acts as its
|
|
121
108
|
pool's `owner` instead ([auth guide](auth.md#pool-owners-for-google-workspace)).
|
|
122
109
|
A request must not choose its own account. Gmail never sends mail, and Drive never permanently
|
|
123
|
-
deletes files.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
`@zackbart/connecta/providers/wispr-flow`. It reaches the authorized account's
|
|
155
|
-
Notetaker content, with personal and work accounts holding separate data.
|
|
156
|
-
Its runtime guide, available through `connecta.skill("connector:<id>")` in `execute_code`, describes account access,
|
|
157
|
-
search limits, transcript permissions and paging. The
|
|
158
|
-
reviewed classification includes task writes listed in Claude's directory even
|
|
159
|
-
though Wispr's public help describes read-only access; discover the account's
|
|
160
|
-
actual tools before assuming those writes exist.
|
|
161
|
-
|
|
162
|
-
For minimal Stripe OAuth/API-key examples with and without connector `readOnly`, see [Stripe setup](./provider-auth-migration.md#stripe). With an API key, prefer a restricted `rk_` key with only read permissions for read-only access; Stripe enforces it too.
|
|
163
|
-
|
|
164
|
-
Stripe requires `auth`: `{ type: "oauth" }` reaches Stripe's hosted MCP
|
|
165
|
-
server, and `{ type: "apiKey" }` with `mode` reaches Connecta's REST connector
|
|
166
|
-
with an operator-managed key. Notion requires `auth` the same way:
|
|
167
|
-
`{ type: "oauth" }` acts as the signed-in user over Notion's hosted MCP, and
|
|
168
|
-
`{ type: "token" }` acts as an internal integration over Connecta's REST
|
|
169
|
-
connector. Cloudflare requires `auth` too: `{ type: "oauth" }` reaches its
|
|
170
|
-
hosted MCP server, and `{ type: "apiToken" }` or `{ type: "globalApiKey" }`
|
|
171
|
-
reaches Connecta's REST connector, with an optional `pin` of accounts and zones
|
|
172
|
-
(required for a Global API Key unless `unpinned: true`). Vercel requires `auth`
|
|
173
|
-
as well: `{ type: "oauth" }` reaches Vercel's hosted MCP server, and
|
|
174
|
-
`{ type: "token" }` with an optional `teamId` reaches Connecta's REST connector
|
|
175
|
-
with an operator-managed access token. Vercel admits only reviewed and approved
|
|
176
|
-
MCP clients to its hosted server, an operational gate outside Connecta. See the
|
|
177
|
-
[provider auth migration](./provider-auth-migration.md).
|
|
178
|
-
To use both implementations of one provider, configure two connector ids with
|
|
179
|
-
independent credentials.
|
|
180
|
-
|
|
181
|
-
Both Notion auth variants accept optional `callAdmission`. For a token
|
|
182
|
-
connector it replaces the whole per-runtime default of 180 calls per minute
|
|
183
|
-
and 3 concurrent. Notion's [request limits](https://developers.notion.com/reference/request-limits)
|
|
184
|
-
allow 600 requests per minute per connection on Business and Enterprise and
|
|
185
|
-
180 on other plans. A separate workspace-wide limit is shared by all
|
|
186
|
-
connections. Size an override for other runtime traffic and tools that make
|
|
187
|
-
multiple HTTP requests. Only an omitted or `undefined` policy selects the
|
|
188
|
-
default; malformed policies, including `false`, `null`, `0`, and `""`, throw
|
|
189
|
-
at construction on both auth variants.
|
|
190
|
-
|
|
191
|
-
Planning Center's `excludeApps` removes whole products from a connection, for
|
|
192
|
-
example `planningCenter("pco", { purpose, excludeApps: ["giving"] })` for a
|
|
193
|
-
deployment that keeps agents away from donor and financial data. Excluded
|
|
194
|
-
products lose their named tools, guide text, and version pins, and the
|
|
195
|
-
`pco_api_get` and `pco_api_mutate` hatches refuse their paths before sending.
|
|
196
|
-
The check reads the exact URL the transport would fetch, and while any product
|
|
197
|
-
is excluded a hatch path must be literal: dot segments, empty segments,
|
|
198
|
-
backslashes, whitespace, and percent-encoded `/`, `\`, `?`, `#`, or `%` are
|
|
199
|
-
refused rather than normalized.
|
|
200
|
-
|
|
201
|
-
Exclusion also closes the routes through which the excluded product's data is
|
|
202
|
-
reachable through another product. While any product is excluded the connection removes
|
|
203
|
-
`list_lists`, `list_list_people`, and `run_list` and refuses every People list,
|
|
204
|
-
list result, rule, and condition, by path or `include`, because a list's
|
|
205
|
-
conditions can draw on any product, such as a donor list built from Giving
|
|
206
|
-
donations, and lists can depend on other lists. Planning Center publishes a
|
|
207
|
-
list's conditions, but a reliable check would have to follow every nested list,
|
|
208
|
-
so the connection does not attempt one. It refuses webhook event and delivery
|
|
209
|
-
payloads, since a payload can carry any product's records, and every change to
|
|
210
|
-
an existing webhook subscription by id, since the id does not name its product.
|
|
211
|
-
A new subscription must name a reachable product's event. People cannot be
|
|
212
|
-
excluded.
|
|
213
|
-
|
|
214
|
-
What exclusion guarantees is that agents reach none of the excluded product's
|
|
215
|
-
endpoints, no live cross-product query such as a People list, and no webhook
|
|
216
|
-
payload or change to an existing subscription. It does not hide records that the church's own
|
|
217
|
-
automations or staff have copied into a reachable product. A
|
|
218
|
-
[Giving automation](https://help.planningcenter.com/en/144355-automations-in-giving.html)
|
|
219
|
-
can add first-time donors to a People workflow, and those workflow cards stay
|
|
220
|
-
readable, as do donor details recorded in notes, custom fields, or form
|
|
221
|
-
answers. Those are People data once written, so the connection does not refuse
|
|
222
|
-
them by guessing at their origin.
|
|
223
|
-
|
|
224
|
-
For a hard boundary, give the connection a personal access token belonging to a
|
|
225
|
-
Planning Center user with No Access in the excluded product. Planning Center
|
|
226
|
-
sets permissions per product for each user, does not grant Giving to
|
|
227
|
-
organization administrators automatically, and lets People workflows be shared
|
|
228
|
-
per workflow; a token carries its user's permissions, so Planning Center itself
|
|
229
|
-
refuses what that user cannot see. `excludeApps` is defense in depth on top of
|
|
230
|
-
that boundary: it narrows what Connecta exposes, not what the token can do
|
|
231
|
-
elsewhere.
|
|
110
|
+
deletes files. Google Docs setup and hatch limits are in
|
|
111
|
+
[Google Docs setup](./providers.md#google-docs). Slides setup is in
|
|
112
|
+
[Google Slides setup](./providers.md#google-slides).
|
|
113
|
+
|
|
114
|
+
Stripe, Vercel, and Cloudflare vendor only their APIs. Cloudflare setup is in
|
|
115
|
+
[Maintained provider setup](./providers.md#cloudflare).
|
|
116
|
+
Keep their existing API auth choices. For token setup, team routing, bounded logs
|
|
117
|
+
and upload limits, see [Vercel setup](./providers.md#vercel).
|
|
118
|
+
GitHub provides scoped App-authenticated repository reads, release writes and guarded merges; see [GitHub setup](./providers.md#github). Hosted servers use distinct
|
|
119
|
+
`remoteMcp()` entries, separate from maintained API providers.
|
|
120
|
+
|
|
121
|
+
For Stripe API-key setup, see [Stripe setup](./providers.md#stripe).
|
|
122
|
+
Prefer a restricted `rk_` key with only read permissions for read-only access;
|
|
123
|
+
Stripe enforces it too.
|
|
124
|
+
|
|
125
|
+
For Planning Center construction, token permissions, product exclusions,
|
|
126
|
+
per-product versions and rate/admission limits, see
|
|
127
|
+
[Planning Center setup](./providers.md#planning-center). Its `pco_api_search`
|
|
128
|
+
and `pco_api_details` discover reviewed operations; `pco_api_read` reads them,
|
|
129
|
+
and `pco_api_write` sends approved writes.
|
|
130
|
+
|
|
131
|
+
Church Community Builder's `sensitiveFields` option controls the documented
|
|
132
|
+
sensitive response fields. Advanced search can still filter on dropped sensitive
|
|
133
|
+
fields, so matching rows can reveal their values by inference. Where that
|
|
134
|
+
matters, omit `read:advanced_searches` from the exact configured OAuth scopes.
|
|
135
|
+
See [Church Community Builder](./providers.md#church-community-builder)
|
|
136
|
+
for OAuth setup, scope boundaries, permanent withholding, paging and limits.
|
|
137
|
+
Tithe.ly's option works the same way; see [Tithe.ly](./providers.md#tithely).
|
|
138
|
+
|
|
139
|
+
For delegated Google Forms setup, scopes, response privacy and refused publish/watch
|
|
140
|
+
operations, see [Google Forms setup](./providers.md#google-forms).
|
|
232
141
|
|
|
233
142
|
## Another remote MCP server
|
|
234
143
|
|
|
@@ -256,24 +165,69 @@ also supports OAuth, static headers, and request-local token resolution. Use
|
|
|
256
165
|
for those cases. Secrets belong in deployment secret storage or the vault,
|
|
257
166
|
not source literals.
|
|
258
167
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
`
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
168
|
+
Use optional top-level `headers` for non-secret resource context:
|
|
169
|
+
`remoteMcp("crm", { url: "https://crm.example/mcp", headers: {
|
|
170
|
+
"X-MCP-Toolsets": "tickets,notes" }, readOnly: true })`. These headers apply to
|
|
171
|
+
MCP handshake, catalog and call requests at the exact resource URL path, never OAuth
|
|
172
|
+
metadata, token or registration requests. Values are included in cache and
|
|
173
|
+
negotiation identities; values of at least eight characters are redacted if echoed. Configuration descriptions
|
|
174
|
+
show only names. Never put credentials here. Use `auth` for secrets. Extra
|
|
175
|
+
headers cannot be combined with `auth.type: "headers"`, collide with an
|
|
176
|
+
auth-owned name, or set HTTP transport/session headers
|
|
177
|
+
(`Accept`, `Cookie`, `Host`, `Content-*`, hop-by-hop headers, `Last-Event-ID`,
|
|
178
|
+
`Mcp-*`), OAuth client-auth headers, or credential-named headers such as
|
|
179
|
+
`X-Api-Key`. Names are case-insensitive.
|
|
180
|
+
|
|
181
|
+
Runtime-discovered tools default to read exactly when `readOnlyHint === true &&
|
|
182
|
+
destructiveHint !== true`; otherwise they are writes. Override individual tools
|
|
183
|
+
only in deployment code through the existing `classification` map:
|
|
184
|
+
|
|
185
|
+
```ts
|
|
186
|
+
classification: {
|
|
187
|
+
crm: { list_tickets: "read", update_ticket: "write", internal_export: "hidden" },
|
|
188
|
+
},
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
`"write"` requires the host's approval path. `"hidden"` omits a tool from search
|
|
192
|
+
and describe and refuses guessed-name calls, including programs. An absent
|
|
193
|
+
runtime tool leaves its override dormant with an operator warning once per catalog change; the override
|
|
194
|
+
applies if that exact name returns. Unknown static tool names fail construction.
|
|
195
|
+
No argument can change these rules. A write-to-read override changes exposure
|
|
196
|
+
and approval. Replay and failure decisions treat a call as a write when either its
|
|
197
|
+
effective class or its source class is write. The source class is the verified
|
|
198
|
+
server annotations;
|
|
199
|
+
deployment overrides never change it. A write gets one wire attempt across
|
|
200
|
+
OAuth renewal, reconnect, transport and authorization recovery, including program re-runs. After possible dispatch, its
|
|
201
|
+
failure also reports an unknown outcome with no retry or wait advice; a proven
|
|
202
|
+
unsent failure retains its own recovery advice. Connector `readOnly` remains
|
|
203
|
+
optional and composes with endpoint policy.
|
|
204
|
+
|
|
205
|
+
On Node, serve with `listen` from `@zackbart/connecta/node`: it installs the
|
|
206
|
+
owned transport that prevents native fetch or a host-configured dispatcher
|
|
207
|
+
from silently resending a remote MCP write. Without that transport, Node
|
|
208
|
+
refuses remote writes before dispatch. Downstream OAuth token, registration and
|
|
209
|
+
revocation POSTs also require the owned sender. Read calls and OAuth discovery
|
|
210
|
+
GETs keep native fetch. Workers
|
|
211
|
+
use their native fetch with manual redirects; transport failures after
|
|
212
|
+
dispatch remain unknown and non-retryable.
|
|
213
|
+
|
|
214
|
+
The owned sender connects directly by default. For HTTP(S) CONNECT proxy egress,
|
|
215
|
+
configure `listen(connecta, { port: 3000, proxy: "http://proxy.example.com:8080" })`.
|
|
216
|
+
This controls maintained-provider requests, remote MCP writes and OAuth
|
|
217
|
+
credential POSTs; it ignores `NODE_USE_ENV_PROXY`, `HTTP_PROXY`, `HTTPS_PROXY`
|
|
218
|
+
and host proxy dispatchers. Remote MCP reads and OAuth discovery GETs retain
|
|
219
|
+
native fetch and need their own host proxy policy. An uncertain refresh requires
|
|
220
|
+
fresh authorization rather than replaying the spent token. See
|
|
221
|
+
[Node startup](./deploying.md#start-on-node) for the proxy URL, credentials and
|
|
222
|
+
TLS trust rules.
|
|
223
|
+
|
|
224
|
+
Remote catalogs evolve. Discovery, direct calls, and programs enforce the
|
|
225
|
+
current annotations and `ConnectaConfig.classification` overrides. A leftover
|
|
226
|
+
`classify` option throws at construction and names that map. Provider reviews,
|
|
227
|
+
schema pins, `optional`, and `unlisted: "hide"` are removed. Missing or
|
|
228
|
+
contradictory hints make the source class write, even when an override makes
|
|
229
|
+
the effective class read. Review behavior before setting a read override;
|
|
230
|
+
classification does not replace downstream scopes or caller grants.
|
|
277
231
|
|
|
278
232
|
## A hand-written HTTP capability
|
|
279
233
|
|
|
@@ -316,6 +270,27 @@ writes use `call_destructive_tool` or a program, within the caller's grants; a
|
|
|
316
270
|
tool definition. Use declared output
|
|
317
271
|
schemas when known; runtime observations cannot replace them.
|
|
318
272
|
|
|
273
|
+
A write leaves once. Once a write-classified tool's handler has run, any
|
|
274
|
+
failure it ends with is non-retryable with `writeOutcome: "unknown"`, whatever
|
|
275
|
+
its code: a handler can reach the network in ways `api()` cannot observe, so
|
|
276
|
+
nothing it reports proves its write was not sent. A raw network error or an
|
|
277
|
+
`unavailable` becomes `connector_call_failed`; any other `ConnectorCallError`
|
|
278
|
+
keeps its code. Failures before
|
|
279
|
+
the handler runs stay ordinary refusals: argument validation against
|
|
280
|
+
`inputSchema` and missing authorization. Declare input constraints in
|
|
281
|
+
`inputSchema` so a malformed write is refused before the handler starts. In-process
|
|
282
|
+
calls treat undefined properties of plain objects as absent during validation,
|
|
283
|
+
including records nested in arrays. Other objects, such as dates, byte arrays
|
|
284
|
+
and class instances, retain their identity. For example, `{ title: "Minutes", cursor: undefined }` validates
|
|
285
|
+
like `{ title: "Minutes" }`. Validation leaves the caller's arguments intact;
|
|
286
|
+
handlers receive the normalized input. One input evaluation failure cannot
|
|
287
|
+
disable validation for later calls. A
|
|
288
|
+
read's failure keeps its own advice, so a network error stays a retryable
|
|
289
|
+
`unavailable`. `ctx.oauth.fetch` never resends a write the API answered with
|
|
290
|
+
HTTP 401 (see [Downstream OAuth on api()](./auth.md#downstream-oauth-on-api)).
|
|
291
|
+
When the handler settles, the call ends: a `ctx.fetch` or `ctx.oauth.fetch`
|
|
292
|
+
request it starts afterwards fails without being sent.
|
|
293
|
+
|
|
319
294
|
## Separate ownership from visibility
|
|
320
295
|
|
|
321
296
|
`authScope: "shared"` uses deployment-owned downstream auth; `"personal"` uses
|
|
@@ -346,5 +321,15 @@ and [provider construction](https://github.com/zackbart/connecta/blob/main/src/p
|
|
|
346
321
|
[Remote tests](https://github.com/zackbart/connecta/blob/main/test/remote-mcp.test.ts),
|
|
347
322
|
[API tests](https://github.com/zackbart/connecta/blob/main/test/api-connector.test.ts),
|
|
348
323
|
[provider contracts](https://github.com/zackbart/connecta/blob/main/test/provider-contracts.test.ts),
|
|
349
|
-
and [
|
|
324
|
+
and the [write-once tests](https://github.com/zackbart/connecta/blob/main/test/remote-mcp-write-once.test.ts)
|
|
350
325
|
check shared behavior. Provider-specific tests remain beside each provider.
|
|
326
|
+
|
|
327
|
+
## Connect an Eve agent
|
|
328
|
+
|
|
329
|
+
Use [`@zackbart/connecta-eve`](https://github.com/zackbart/connecta/blob/main/packages/connecta-eve/README.md)
|
|
330
|
+
in the Eve app for an app-owned connection and endpoint instructions refreshed
|
|
331
|
+
once per turn. It requires Node 24 and Eve 0.84.x, and installs separately from
|
|
332
|
+
Connecta. Follow its README for the two agent files, token environment variables,
|
|
333
|
+
optional write approval and Vercel OIDC token source. Configure the server's
|
|
334
|
+
[agent and pool membership](./auth.md#issue-rotate-or-revoke-an-agent-token)
|
|
335
|
+
before connecting.
|