@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
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The API and upload roots remain separately confined. */
|
|
2
|
+
export declare const DRIVE_API_BASE_URL = "https://www.googleapis.com/drive/v3";
|
|
3
|
+
/** Full Drive access as the delegated user; narrower scopes cannot serve these writes. */
|
|
4
|
+
export declare const DRIVE_SCOPES: readonly ["https://www.googleapis.com/auth/drive"];
|
|
5
|
+
/** Drive's export ceiling is 10 MB. */
|
|
6
|
+
export declare const DRIVE_MAX_RESPONSE_BYTES: number;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/** The API and upload roots remain separately confined. */
|
|
2
|
+
export const DRIVE_API_BASE_URL = "https://www.googleapis.com/drive/v3";
|
|
3
|
+
/** Full Drive access as the delegated user; narrower scopes cannot serve these writes. */
|
|
4
|
+
export const DRIVE_SCOPES = ["https://www.googleapis.com/auth/drive"];
|
|
5
|
+
/** Drive's export ceiling is 10 MB. */
|
|
6
|
+
export const DRIVE_MAX_RESPONSE_BYTES = 16 * 1024 * 1024;
|
|
@@ -0,0 +1,532 @@
|
|
|
1
|
+
// Drive named tool contracts, kept separate from the workflow programs.
|
|
2
|
+
import { Schema } from "effect";
|
|
3
|
+
import { Integer, isMinChars, isMaxChars } from "../../../http/json-schema.js";
|
|
4
|
+
const matchesPattern = (pattern) => Schema.makeFilter((value) => pattern.test(value), {
|
|
5
|
+
expected: `a string matching ${pattern.source}`,
|
|
6
|
+
toJsonSchema: () => ({ pattern: pattern.source }),
|
|
7
|
+
});
|
|
8
|
+
export const search_files = {
|
|
9
|
+
input: Schema.Struct({
|
|
10
|
+
"query": Schema.optionalKey(Schema.String.check(isMaxChars(2048)).annotate({
|
|
11
|
+
"description": "Drive query: name contains 'budget', fullText contains 'elders', mimeType = 'application/pdf', modifiedTime > '2026-01-01T00:00:00', 'me' in owners. Omit for everything.",
|
|
12
|
+
})),
|
|
13
|
+
"corpora": Schema.optionalKey(Schema.Literals(["user", "domain", "drive", "allDrives"]).annotate({
|
|
14
|
+
"description": "Where to look: user (default; My Drive and shared with me), drive (one shared drive, with driveId), allDrives (slower, may be incomplete), domain.",
|
|
15
|
+
})),
|
|
16
|
+
"driveId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
17
|
+
"description": "Shared drive id from list_shared_drives; required with corpora drive, refused otherwise.",
|
|
18
|
+
})),
|
|
19
|
+
"orderBy": Schema.optionalKey(Schema.Literals([
|
|
20
|
+
"modifiedTime desc",
|
|
21
|
+
"modifiedTime",
|
|
22
|
+
"name",
|
|
23
|
+
"name desc",
|
|
24
|
+
"createdTime desc",
|
|
25
|
+
"folder,name",
|
|
26
|
+
]).annotate({
|
|
27
|
+
"description": "Sort order. Drive refuses any sort on a fullText query, which comes back by relevance.",
|
|
28
|
+
})),
|
|
29
|
+
"includeTrashed": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Include trashed files, which are left out by default." })),
|
|
30
|
+
"limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100)).annotate({
|
|
31
|
+
"description": "Rows per page, 1 to 100; defaults to 25. Connecta's cap, below Drive's 1,000.",
|
|
32
|
+
"default": 25,
|
|
33
|
+
})),
|
|
34
|
+
"cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(32768), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
35
|
+
"description": "Opaque page.nextCursor from the previous page. Pass it back unchanged with the same arguments.",
|
|
36
|
+
})),
|
|
37
|
+
"maxBytes": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(65536), Schema.isLessThanOrEqualTo(4194304)).annotate({
|
|
38
|
+
"description": "Serialized bytes of the whole result; defaults to 196608, what execute_code can receive. Raise it, to 4194304, only for a direct call_tool read.",
|
|
39
|
+
})),
|
|
40
|
+
}),
|
|
41
|
+
output: Schema.Struct({
|
|
42
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
43
|
+
"items": Schema.Array(Schema.Struct({
|
|
44
|
+
"id": Schema.optionalKey(Schema.String),
|
|
45
|
+
"name": Schema.optionalKey(Schema.String),
|
|
46
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
47
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
48
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
49
|
+
"size": Schema.optionalKey(Integer),
|
|
50
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
51
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
52
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
53
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
54
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
55
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
56
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
57
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
58
|
+
})),
|
|
59
|
+
})),
|
|
60
|
+
"incompleteSearch": Schema.optionalKey(Schema.Boolean),
|
|
61
|
+
"page": Schema.Struct({ "hasMore": Schema.Boolean, "nextCursor": Schema.optionalKey(Schema.String) }),
|
|
62
|
+
}),
|
|
63
|
+
};
|
|
64
|
+
export const list_folder_items = {
|
|
65
|
+
input: Schema.Struct({
|
|
66
|
+
"folderId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Folder id, a shared drive id for its top level, or root for My Drive." }),
|
|
67
|
+
"orderBy": Schema.optionalKey(Schema.Literals([
|
|
68
|
+
"modifiedTime desc",
|
|
69
|
+
"modifiedTime",
|
|
70
|
+
"name",
|
|
71
|
+
"name desc",
|
|
72
|
+
"createdTime desc",
|
|
73
|
+
"folder,name",
|
|
74
|
+
]).annotate({ "description": "Sort order; defaults to folders first, then by name." })),
|
|
75
|
+
"includeTrashed": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Include trashed files, which are left out by default." })),
|
|
76
|
+
"limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100)).annotate({
|
|
77
|
+
"description": "Rows per page, 1 to 100; defaults to 25. Connecta's cap, below Drive's 1,000.",
|
|
78
|
+
"default": 25,
|
|
79
|
+
})),
|
|
80
|
+
"cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(32768), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
81
|
+
"description": "Opaque page.nextCursor from the previous page. Pass it back unchanged with the same arguments.",
|
|
82
|
+
})),
|
|
83
|
+
"maxBytes": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(65536), Schema.isLessThanOrEqualTo(4194304)).annotate({
|
|
84
|
+
"description": "Serialized bytes of the whole result; defaults to 196608, what execute_code can receive. Raise it, to 4194304, only for a direct call_tool read.",
|
|
85
|
+
})),
|
|
86
|
+
}),
|
|
87
|
+
output: Schema.Struct({
|
|
88
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
89
|
+
"items": Schema.Array(Schema.Struct({
|
|
90
|
+
"id": Schema.optionalKey(Schema.String),
|
|
91
|
+
"name": Schema.optionalKey(Schema.String),
|
|
92
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
93
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
94
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
95
|
+
"size": Schema.optionalKey(Integer),
|
|
96
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
97
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
98
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
99
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
100
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
101
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
102
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
103
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
104
|
+
})),
|
|
105
|
+
})),
|
|
106
|
+
"incompleteSearch": Schema.optionalKey(Schema.Boolean),
|
|
107
|
+
"page": Schema.Struct({ "hasMore": Schema.Boolean, "nextCursor": Schema.optionalKey(Schema.String) }),
|
|
108
|
+
}),
|
|
109
|
+
};
|
|
110
|
+
export const get_file = {
|
|
111
|
+
input: Schema.Struct({
|
|
112
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
113
|
+
}),
|
|
114
|
+
output: Schema.Struct({
|
|
115
|
+
"id": Schema.optionalKey(Schema.String),
|
|
116
|
+
"name": Schema.optionalKey(Schema.String),
|
|
117
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
118
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
119
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
120
|
+
"size": Schema.optionalKey(Integer),
|
|
121
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
122
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
123
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
124
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
125
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
126
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
127
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
128
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
129
|
+
})),
|
|
130
|
+
"description": Schema.optionalKey(Schema.String),
|
|
131
|
+
"createdTime": Schema.optionalKey(Schema.String),
|
|
132
|
+
"modifiedBy": Schema.optionalKey(Schema.String),
|
|
133
|
+
"shared": Schema.optionalKey(Schema.Boolean),
|
|
134
|
+
"starred": Schema.optionalKey(Schema.Boolean),
|
|
135
|
+
"capabilities": Schema.optionalKey(Schema.Struct({
|
|
136
|
+
"canEdit": Schema.optionalKey(Schema.Boolean),
|
|
137
|
+
"canComment": Schema.optionalKey(Schema.Boolean),
|
|
138
|
+
"canShare": Schema.optionalKey(Schema.Boolean),
|
|
139
|
+
"canDownload": Schema.optionalKey(Schema.Boolean),
|
|
140
|
+
"canTrash": Schema.optionalKey(Schema.Boolean),
|
|
141
|
+
"canRename": Schema.optionalKey(Schema.Boolean),
|
|
142
|
+
"canAddChildren": Schema.optionalKey(Schema.Boolean),
|
|
143
|
+
})),
|
|
144
|
+
}),
|
|
145
|
+
};
|
|
146
|
+
export const get_file_content = {
|
|
147
|
+
input: Schema.Struct({
|
|
148
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
149
|
+
"maxChars": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100000)).annotate({
|
|
150
|
+
"description": "Characters (code points) of text kept, 1 to 100000; defaults to 20000. Longer text ends with a truncation marker. Binaries ignore it.",
|
|
151
|
+
})),
|
|
152
|
+
"maxBytes": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(65536), Schema.isLessThanOrEqualTo(4194304)).annotate({
|
|
153
|
+
"description": "Serialized bytes of the whole result; defaults to 196608, what execute_code can receive. Raise it, to 4194304, only for a direct call_tool read.",
|
|
154
|
+
})),
|
|
155
|
+
}),
|
|
156
|
+
output: Schema.Struct({
|
|
157
|
+
"id": Schema.optionalKey(Schema.String),
|
|
158
|
+
"name": Schema.optionalKey(Schema.String),
|
|
159
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
160
|
+
"size": Schema.optionalKey(Integer),
|
|
161
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
162
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
163
|
+
"format": Schema.optionalKey(Schema.Literals(["markdown", "csv", "text", "base64", "unavailable"])),
|
|
164
|
+
"exportedAs": Schema.optionalKey(Schema.String),
|
|
165
|
+
"content": Schema.optionalKey(Schema.String),
|
|
166
|
+
"note": Schema.optionalKey(Schema.String),
|
|
167
|
+
}),
|
|
168
|
+
};
|
|
169
|
+
export const list_permissions = {
|
|
170
|
+
input: Schema.Struct({
|
|
171
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
172
|
+
"limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100)).annotate({
|
|
173
|
+
"description": "Rows per page, 1 to 100; defaults to 25. Connecta's cap, below Drive's 1,000.",
|
|
174
|
+
"default": 25,
|
|
175
|
+
})),
|
|
176
|
+
"cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(32768), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
177
|
+
"description": "Opaque page.nextCursor from the previous page. Pass it back unchanged with the same arguments.",
|
|
178
|
+
})),
|
|
179
|
+
"maxBytes": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(65536), Schema.isLessThanOrEqualTo(4194304)).annotate({
|
|
180
|
+
"description": "Serialized bytes of the whole result; defaults to 196608, what execute_code can receive. Raise it, to 4194304, only for a direct call_tool read.",
|
|
181
|
+
})),
|
|
182
|
+
}),
|
|
183
|
+
output: Schema.Struct({
|
|
184
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
185
|
+
"items": Schema.Array(Schema.Struct({
|
|
186
|
+
"id": Schema.optionalKey(Schema.String),
|
|
187
|
+
"type": Schema.optionalKey(Schema.Literals(["user", "group", "domain", "anyone"])),
|
|
188
|
+
"role": Schema.optionalKey(Schema.String),
|
|
189
|
+
"emailAddress": Schema.optionalKey(Schema.String),
|
|
190
|
+
"domain": Schema.optionalKey(Schema.String),
|
|
191
|
+
"displayName": Schema.optionalKey(Schema.String),
|
|
192
|
+
"allowFileDiscovery": Schema.optionalKey(Schema.Boolean),
|
|
193
|
+
"expirationTime": Schema.optionalKey(Schema.String),
|
|
194
|
+
"inherited": Schema.optionalKey(Schema.Boolean),
|
|
195
|
+
"inheritedFrom": Schema.optionalKey(Schema.String),
|
|
196
|
+
"deleted": Schema.optionalKey(Schema.Boolean),
|
|
197
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
198
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
199
|
+
})),
|
|
200
|
+
})),
|
|
201
|
+
"page": Schema.Struct({ "hasMore": Schema.Boolean, "nextCursor": Schema.optionalKey(Schema.String) }),
|
|
202
|
+
}),
|
|
203
|
+
};
|
|
204
|
+
export const list_shared_drives = {
|
|
205
|
+
input: Schema.Struct({
|
|
206
|
+
"query": Schema.optionalKey(Schema.String.check(isMaxChars(1024)).annotate({
|
|
207
|
+
"description": "Shared drive query, e.g. name contains 'Finance'. Omit for every drive.",
|
|
208
|
+
})),
|
|
209
|
+
"limit": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(100)).annotate({
|
|
210
|
+
"description": "Rows per page, 1 to 100; defaults to 25. Connecta's cap, below Drive's 1,000.",
|
|
211
|
+
"default": 25,
|
|
212
|
+
})),
|
|
213
|
+
"cursor": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(32768), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
214
|
+
"description": "Opaque page.nextCursor from the previous page. Pass it back unchanged with the same arguments.",
|
|
215
|
+
})),
|
|
216
|
+
"maxBytes": Schema.optionalKey(Integer.check(Schema.isGreaterThanOrEqualTo(65536), Schema.isLessThanOrEqualTo(4194304)).annotate({
|
|
217
|
+
"description": "Serialized bytes of the whole result; defaults to 196608, what execute_code can receive. Raise it, to 4194304, only for a direct call_tool read.",
|
|
218
|
+
})),
|
|
219
|
+
}),
|
|
220
|
+
output: Schema.Struct({
|
|
221
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
222
|
+
"items": Schema.Array(Schema.Struct({
|
|
223
|
+
"id": Schema.optionalKey(Schema.String),
|
|
224
|
+
"name": Schema.optionalKey(Schema.String),
|
|
225
|
+
"hidden": Schema.optionalKey(Schema.Boolean),
|
|
226
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
227
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
228
|
+
})),
|
|
229
|
+
})),
|
|
230
|
+
"page": Schema.Struct({ "hasMore": Schema.Boolean, "nextCursor": Schema.optionalKey(Schema.String) }),
|
|
231
|
+
}),
|
|
232
|
+
};
|
|
233
|
+
export const create_folder = {
|
|
234
|
+
input: Schema.Struct({
|
|
235
|
+
"name": Schema.String.check(isMinChars(1), isMaxChars(1000), matchesPattern(new RegExp("^[^\\r\\n]*$"))).annotate({
|
|
236
|
+
"description": "File name as Drive shows it, extension included where it has one.",
|
|
237
|
+
}),
|
|
238
|
+
"parentId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
239
|
+
"description": "Folder id to place it in, or root for My Drive; defaults to My Drive.",
|
|
240
|
+
})),
|
|
241
|
+
"description": Schema.optionalKey(Schema.String.check(isMaxChars(10000)).annotate({
|
|
242
|
+
"description": "Free-text description shown in Drive's details pane.",
|
|
243
|
+
})),
|
|
244
|
+
}),
|
|
245
|
+
output: Schema.Struct({
|
|
246
|
+
"id": Schema.optionalKey(Schema.String),
|
|
247
|
+
"name": Schema.optionalKey(Schema.String),
|
|
248
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
249
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
250
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
251
|
+
"size": Schema.optionalKey(Integer),
|
|
252
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
253
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
254
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
255
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
256
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
257
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
258
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
259
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
260
|
+
})),
|
|
261
|
+
}),
|
|
262
|
+
};
|
|
263
|
+
export const create_file = {
|
|
264
|
+
input: Schema.Struct({
|
|
265
|
+
"name": Schema.String.check(isMinChars(1), isMaxChars(1000), matchesPattern(new RegExp("^[^\\r\\n]*$"))).annotate({
|
|
266
|
+
"description": "File name as Drive shows it, extension included where it has one.",
|
|
267
|
+
}),
|
|
268
|
+
"parentId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
269
|
+
"description": "Folder id to place it in, or root for My Drive; defaults to My Drive.",
|
|
270
|
+
})),
|
|
271
|
+
"content": Schema.optionalKey(Schema.String.check(isMaxChars(1000000)).annotate({
|
|
272
|
+
"description": "Text content, up to 1000000 characters (connecta's cap). Exclusive with contentBase64.",
|
|
273
|
+
})),
|
|
274
|
+
"contentBase64": Schema.optionalKey(Schema.String.check(isMaxChars(1398104), matchesPattern(new RegExp("^[A-Za-z0-9+/]*={0,2}$"))).annotate({
|
|
275
|
+
"description": "Binary content as base64, up to 1048576 bytes decoded (connecta's cap; Drive allows 5 MB). Exclusive with content.",
|
|
276
|
+
})),
|
|
277
|
+
"mimeType": Schema.optionalKey(Schema.String.check(isMaxChars(255), matchesPattern(new RegExp("^[A-Za-z0-9][\\w.+-]*/[A-Za-z0-9][\\w.+-]*$"))).annotate({
|
|
278
|
+
"description": "Media type of the content: text/plain, text/markdown, text/csv, application/pdf. Never a Google type. Defaults to text/plain or application/octet-stream.",
|
|
279
|
+
})),
|
|
280
|
+
"convertTo": Schema.optionalKey(Schema.Literals(["document", "spreadsheet", "presentation"]).annotate({
|
|
281
|
+
"description": "Import as a Google type: markdown, HTML, or text to document; CSV to spreadsheet. Without content, an empty one.",
|
|
282
|
+
})),
|
|
283
|
+
"description": Schema.optionalKey(Schema.String.check(isMaxChars(10000)).annotate({
|
|
284
|
+
"description": "Free-text description shown in Drive's details pane.",
|
|
285
|
+
})),
|
|
286
|
+
}),
|
|
287
|
+
output: Schema.Struct({
|
|
288
|
+
"id": Schema.optionalKey(Schema.String),
|
|
289
|
+
"name": Schema.optionalKey(Schema.String),
|
|
290
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
291
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
292
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
293
|
+
"size": Schema.optionalKey(Integer),
|
|
294
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
295
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
296
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
297
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
298
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
299
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
300
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
301
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
302
|
+
})),
|
|
303
|
+
}),
|
|
304
|
+
};
|
|
305
|
+
export const update_file_content = {
|
|
306
|
+
input: Schema.Struct({
|
|
307
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
308
|
+
"content": Schema.optionalKey(Schema.String.check(isMaxChars(1000000)).annotate({
|
|
309
|
+
"description": "Text content, up to 1000000 characters (connecta's cap). Exclusive with contentBase64.",
|
|
310
|
+
})),
|
|
311
|
+
"contentBase64": Schema.optionalKey(Schema.String.check(isMaxChars(1398104), matchesPattern(new RegExp("^[A-Za-z0-9+/]*={0,2}$"))).annotate({
|
|
312
|
+
"description": "Binary content as base64, up to 1048576 bytes decoded (connecta's cap; Drive allows 5 MB). Exclusive with content.",
|
|
313
|
+
})),
|
|
314
|
+
"mimeType": Schema.String.check(isMaxChars(255), matchesPattern(new RegExp("^[A-Za-z0-9][\\w.+-]*/[A-Za-z0-9][\\w.+-]*$"))).annotate({
|
|
315
|
+
"description": "Media type of the new content: usually the file's own, text/markdown for a Google Doc, text/csv for a Sheet (replacing every tab).",
|
|
316
|
+
}),
|
|
317
|
+
}),
|
|
318
|
+
output: Schema.Struct({
|
|
319
|
+
"id": Schema.optionalKey(Schema.String),
|
|
320
|
+
"name": Schema.optionalKey(Schema.String),
|
|
321
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
322
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
323
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
324
|
+
"size": Schema.optionalKey(Integer),
|
|
325
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
326
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
327
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
328
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
329
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
330
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
331
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
332
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
333
|
+
})),
|
|
334
|
+
}),
|
|
335
|
+
};
|
|
336
|
+
export const update_file = {
|
|
337
|
+
input: Schema.Struct({
|
|
338
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
339
|
+
"name": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(1000), matchesPattern(new RegExp("^[^\\r\\n]*$"))).annotate({
|
|
340
|
+
"description": "File name as Drive shows it, extension included where it has one.",
|
|
341
|
+
})),
|
|
342
|
+
"description": Schema.optionalKey(Schema.String.check(isMaxChars(10000)).annotate({
|
|
343
|
+
"description": "Free-text description shown in Drive's details pane.",
|
|
344
|
+
})),
|
|
345
|
+
}),
|
|
346
|
+
output: Schema.Struct({
|
|
347
|
+
"id": Schema.optionalKey(Schema.String),
|
|
348
|
+
"name": Schema.optionalKey(Schema.String),
|
|
349
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
350
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
351
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
352
|
+
"size": Schema.optionalKey(Integer),
|
|
353
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
354
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
355
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
356
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
357
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
358
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
359
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
360
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
361
|
+
})),
|
|
362
|
+
}),
|
|
363
|
+
};
|
|
364
|
+
export const move_file = {
|
|
365
|
+
input: Schema.Struct({
|
|
366
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
367
|
+
"folderId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Destination folder id, a shared drive id for its top level, or root for My Drive." }),
|
|
368
|
+
}),
|
|
369
|
+
output: Schema.Struct({
|
|
370
|
+
"id": Schema.optionalKey(Schema.String),
|
|
371
|
+
"name": Schema.optionalKey(Schema.String),
|
|
372
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
373
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
374
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
375
|
+
"size": Schema.optionalKey(Integer),
|
|
376
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
377
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
378
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
379
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
380
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
381
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
382
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
383
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
384
|
+
})),
|
|
385
|
+
}),
|
|
386
|
+
};
|
|
387
|
+
export const copy_file = {
|
|
388
|
+
input: Schema.Struct({
|
|
389
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
390
|
+
"name": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(1000), matchesPattern(new RegExp("^[^\\r\\n]*$"))).annotate({
|
|
391
|
+
"description": 'Name of the copy; defaults to Drive\'s "Copy of \u2026".',
|
|
392
|
+
})),
|
|
393
|
+
"parentId": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({
|
|
394
|
+
"description": "Folder for the copy; defaults to the original's.",
|
|
395
|
+
})),
|
|
396
|
+
}),
|
|
397
|
+
output: Schema.Struct({
|
|
398
|
+
"id": Schema.optionalKey(Schema.String),
|
|
399
|
+
"name": Schema.optionalKey(Schema.String),
|
|
400
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
401
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
402
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
403
|
+
"size": Schema.optionalKey(Integer),
|
|
404
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
405
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
406
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
407
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
408
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
409
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
410
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
411
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
412
|
+
})),
|
|
413
|
+
}),
|
|
414
|
+
};
|
|
415
|
+
export const trash_file = {
|
|
416
|
+
input: Schema.Struct({
|
|
417
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
418
|
+
}),
|
|
419
|
+
output: Schema.Struct({
|
|
420
|
+
"id": Schema.optionalKey(Schema.String),
|
|
421
|
+
"name": Schema.optionalKey(Schema.String),
|
|
422
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
423
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
424
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
425
|
+
"size": Schema.optionalKey(Integer),
|
|
426
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
427
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
428
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
429
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
430
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
431
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
432
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
433
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
434
|
+
})),
|
|
435
|
+
}),
|
|
436
|
+
};
|
|
437
|
+
export const restore_file = {
|
|
438
|
+
input: Schema.Struct({
|
|
439
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
440
|
+
}),
|
|
441
|
+
output: Schema.Struct({
|
|
442
|
+
"id": Schema.optionalKey(Schema.String),
|
|
443
|
+
"name": Schema.optionalKey(Schema.String),
|
|
444
|
+
"mimeType": Schema.optionalKey(Schema.String),
|
|
445
|
+
"parents": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
446
|
+
"driveId": Schema.optionalKey(Schema.String),
|
|
447
|
+
"size": Schema.optionalKey(Integer),
|
|
448
|
+
"modifiedTime": Schema.optionalKey(Schema.String),
|
|
449
|
+
"owners": Schema.optionalKey(Schema.Array(Schema.String)),
|
|
450
|
+
"trashed": Schema.optionalKey(Schema.Boolean),
|
|
451
|
+
"webViewLink": Schema.optionalKey(Schema.String),
|
|
452
|
+
"shortcutTargetId": Schema.optionalKey(Schema.String),
|
|
453
|
+
"shortcutTargetMimeType": Schema.optionalKey(Schema.String),
|
|
454
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
455
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
456
|
+
})),
|
|
457
|
+
}),
|
|
458
|
+
};
|
|
459
|
+
export const share_file = {
|
|
460
|
+
input: Schema.Struct({
|
|
461
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
462
|
+
"type": Schema.Literals(["user", "group", "domain", "anyone"]).annotate({
|
|
463
|
+
"description": "Grantee kind: user or group needs emailAddress, domain needs domain, anyone means anyone with the link.",
|
|
464
|
+
}),
|
|
465
|
+
"role": Schema.Literals(["reader", "commenter", "writer", "fileOrganizer", "organizer"]).annotate({
|
|
466
|
+
"description": "Access granted. fileOrganizer and organizer exist only on shared drives. Ownership is never granted here.",
|
|
467
|
+
}),
|
|
468
|
+
"emailAddress": Schema.optionalKey(Schema.String.check(isMinChars(3), isMaxChars(320), matchesPattern(new RegExp("^[^\\s@]+@[^\\s@]+$"))).annotate({
|
|
469
|
+
"description": "The user's or group's email address, for type user or group only.",
|
|
470
|
+
})),
|
|
471
|
+
"domain": Schema.optionalKey(Schema.String.check(isMinChars(1), isMaxChars(253), matchesPattern(new RegExp("^[A-Za-z0-9.-]+$"))).annotate({
|
|
472
|
+
"description": "The Workspace domain, for type domain only.",
|
|
473
|
+
})),
|
|
474
|
+
"allowFileDiscovery": Schema.optionalKey(Schema.Boolean.annotate({
|
|
475
|
+
"description": "For domain or anyone: whether it appears in search rather than needing the link. Defaults to false.",
|
|
476
|
+
})),
|
|
477
|
+
"sendNotificationEmail": Schema.optionalKey(Schema.Boolean.annotate({
|
|
478
|
+
"description": "Email a user or group that it was shared. Defaults to false; Drive requires it for a non-Google address.",
|
|
479
|
+
})),
|
|
480
|
+
"emailMessage": Schema.optionalKey(Schema.String.check(isMaxChars(2000)).annotate({
|
|
481
|
+
"description": "Message in the notification email; only with sendNotificationEmail true.",
|
|
482
|
+
})),
|
|
483
|
+
}),
|
|
484
|
+
output: Schema.Struct({
|
|
485
|
+
"id": Schema.optionalKey(Schema.String),
|
|
486
|
+
"type": Schema.optionalKey(Schema.Literals(["user", "group", "domain", "anyone"])),
|
|
487
|
+
"role": Schema.optionalKey(Schema.String),
|
|
488
|
+
"emailAddress": Schema.optionalKey(Schema.String),
|
|
489
|
+
"domain": Schema.optionalKey(Schema.String),
|
|
490
|
+
"displayName": Schema.optionalKey(Schema.String),
|
|
491
|
+
"allowFileDiscovery": Schema.optionalKey(Schema.Boolean),
|
|
492
|
+
"expirationTime": Schema.optionalKey(Schema.String),
|
|
493
|
+
"inherited": Schema.optionalKey(Schema.Boolean),
|
|
494
|
+
"inheritedFrom": Schema.optionalKey(Schema.String),
|
|
495
|
+
"deleted": Schema.optionalKey(Schema.Boolean),
|
|
496
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
497
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
498
|
+
})),
|
|
499
|
+
}),
|
|
500
|
+
};
|
|
501
|
+
export const update_permission = {
|
|
502
|
+
input: Schema.Struct({
|
|
503
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
504
|
+
"permissionId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Permission id from list_permissions." }),
|
|
505
|
+
"role": Schema.Literals(["reader", "commenter", "writer", "fileOrganizer", "organizer"]).annotate({
|
|
506
|
+
"description": "Access granted. fileOrganizer and organizer exist only on shared drives. Ownership is never granted here.",
|
|
507
|
+
}),
|
|
508
|
+
}),
|
|
509
|
+
output: Schema.Struct({
|
|
510
|
+
"id": Schema.optionalKey(Schema.String),
|
|
511
|
+
"type": Schema.optionalKey(Schema.Literals(["user", "group", "domain", "anyone"])),
|
|
512
|
+
"role": Schema.optionalKey(Schema.String),
|
|
513
|
+
"emailAddress": Schema.optionalKey(Schema.String),
|
|
514
|
+
"domain": Schema.optionalKey(Schema.String),
|
|
515
|
+
"displayName": Schema.optionalKey(Schema.String),
|
|
516
|
+
"allowFileDiscovery": Schema.optionalKey(Schema.Boolean),
|
|
517
|
+
"expirationTime": Schema.optionalKey(Schema.String),
|
|
518
|
+
"inherited": Schema.optionalKey(Schema.Boolean),
|
|
519
|
+
"inheritedFrom": Schema.optionalKey(Schema.String),
|
|
520
|
+
"deleted": Schema.optionalKey(Schema.Boolean),
|
|
521
|
+
"truncated": Schema.optionalKey(Schema.Array(Schema.String).annotate({
|
|
522
|
+
"description": "Fields this result shortened (a string ending in \u2026), capped (a list past ten), or left out (a malformed id). get_file keeps longer names.",
|
|
523
|
+
})),
|
|
524
|
+
}),
|
|
525
|
+
};
|
|
526
|
+
export const delete_permission = {
|
|
527
|
+
input: Schema.Struct({
|
|
528
|
+
"fileId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "File or folder id, from search_files, list_folder_items, or a Drive URL's /d/<id>." }),
|
|
529
|
+
"permissionId": Schema.String.check(isMinChars(1), isMaxChars(256), matchesPattern(new RegExp("^[A-Za-z0-9_-]+$"))).annotate({ "description": "Permission id from list_permissions." }),
|
|
530
|
+
}),
|
|
531
|
+
output: Schema.Struct({ "fileId": Schema.String, "permissionId": Schema.String, "deleted": Schema.Literal(true) }),
|
|
532
|
+
};
|