@zackbart/connecta 0.34.1 → 0.35.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 +363 -0
- package/README.md +62 -106
- 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 +2051 -1160
- 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 +663 -271
- 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 +12 -7
- package/dist/connectors/api-connector.js +142 -56
- 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 +228 -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 +383 -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/agents.d.ts +5 -4
- package/dist/operator-ui/agents.js +17 -7
- package/dist/operator-ui/config-summary.js +5 -4
- package/dist/operator-ui/connection-map.js +7 -5
- package/dist/operator-ui/contract.d.ts +7 -3
- package/dist/operator-ui/endpoints.js +4 -13
- package/dist/operator-ui/fix-prompts.d.ts +1 -1
- package/dist/operator-ui/fix-prompts.js +0 -8
- package/dist/operator-ui/generated.js +3 -3
- package/dist/operator-ui/model.d.ts +2 -3
- package/dist/operator-ui/overview.js +5 -2
- package/dist/operator-ui/setup-commands.js +0 -4
- package/dist/operator-ui/view.d.ts +2 -25
- package/dist/operator-ui/view.js +2 -76
- 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 +537 -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/dispatch.js +3 -23
- package/dist/providers/_shared/rest/kit.js +546 -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/tools.js +101 -78
- 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 +802 -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 +1024 -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/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 +734 -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 +66 -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 +3 -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 +556 -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 -222
- 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 +7 -109
- 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 +27 -7
- package/documentation/architecture.md +2547 -226
- package/documentation/auth.md +821 -98
- 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 +68 -45
- 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 +965 -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 +27 -46
- 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/providers/_shared/request-token.js +0 -83
- 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/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
package/dist/sent-secrets.d.ts
CHANGED
|
@@ -4,68 +4,200 @@ export declare function shortSecretWarning(): (value: string | undefined, logger
|
|
|
4
4
|
export declare class SentSecrets {
|
|
5
5
|
/** Normalized form to its strongest kind. */
|
|
6
6
|
private readonly forms;
|
|
7
|
+
/** A form's leading units that encode only public auth framing; absent is none. */
|
|
8
|
+
private readonly frames;
|
|
7
9
|
private readonly recipients;
|
|
10
|
+
private readonly mintedStates;
|
|
11
|
+
/** Encoded content this set already found clean, and whether under payload rules, which
|
|
12
|
+
* cover envelope ones. Cleared whenever the set changes. */
|
|
13
|
+
private memo;
|
|
8
14
|
private privateChars;
|
|
15
|
+
/** The longest form; whether any comes from a value shorter than K; whether any is not ASCII. */
|
|
16
|
+
private widestForm;
|
|
17
|
+
private smallForms;
|
|
18
|
+
private unicodeForms;
|
|
9
19
|
/** The shortest form left unregistered; any string this long might contain it. */
|
|
10
20
|
private unmatched;
|
|
11
|
-
private unicode;
|
|
12
21
|
private views;
|
|
13
22
|
private store;
|
|
14
23
|
private unregistered;
|
|
24
|
+
/** Every form of `value`. Its first `frame` units are public auth framing, which no form's
|
|
25
|
+
* fragment index starts in: a base64 form's framing ends at its last unit encoding only it. */
|
|
15
26
|
private register;
|
|
16
27
|
/** The request receives existing and future secrets from every context. */
|
|
17
28
|
include(source: SentSecrets): void;
|
|
18
|
-
|
|
29
|
+
/** A credential, as sent and in the auth framings a vendor may echo it with. Its first
|
|
30
|
+
* `frame` units, such as a header's `Basic `, are framing too. */
|
|
31
|
+
add(value: string, frame?: number): void;
|
|
19
32
|
/** Explicit secrets use the same floor as every other credential. */
|
|
20
33
|
secret(value: string): void;
|
|
34
|
+
/** An identifier sent beside a credential, such as a confidential client's ID or a Basic
|
|
35
|
+
* username: matched whole only, since consent URLs and metadata carry its parts by design. */
|
|
36
|
+
identifier(value: string): void;
|
|
21
37
|
/** Submitted writeOnly strings and numbers join this request's set, including property
|
|
22
38
|
* names inside a private object. Empty strings, booleans, and null carry no text. */
|
|
23
39
|
arguments(args: unknown, schema: JsonSchema | undefined): void;
|
|
24
|
-
/** Structural fields must be refused, never repaired into different URLs.
|
|
40
|
+
/** Structural fields must be refused, never repaired into different URLs. A field the checker
|
|
41
|
+
* would change under the boundary's rules is refused: one holding a whole form or any K-unit
|
|
42
|
+
* run of one, in any view of the lattice. With `ignoreCase`, as for a host URL parsing
|
|
43
|
+
* lowercased, the lowercased field is also checked against lowercased forms. */
|
|
25
44
|
contains(value: string, ignoreCase?: boolean): boolean;
|
|
26
45
|
containsUrl(value: string): boolean;
|
|
27
46
|
header(value: string): void;
|
|
28
47
|
request(input: RequestInfo | URL, init?: RequestInit): void;
|
|
29
48
|
/** Serialized wire text about to be returned, stored, or paged, under payload rules. */
|
|
30
49
|
text(value: string): string;
|
|
31
|
-
/**
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
|
|
50
|
+
/** A plain-data snapshot of `value` with every match removed: own enumerable data properties
|
|
51
|
+
* (an error's own fields, non-enumerable ones included), read once each. Accessors are never
|
|
52
|
+
* invoked, except an error's stack and the accessors its class defines, read once into the
|
|
53
|
+
* copy. The original object is never returned, so nothing read later can differ from what was
|
|
54
|
+
* checked. Payload rules apply where downstream or guest data enters; the envelope pass at the
|
|
55
|
+
* agent boundary repeats every check except short private values, which would rewrite
|
|
56
|
+
* Connecta's own identifiers, counts and addresses. `values` applies payload rules to every
|
|
57
|
+
* value of a parsed vendor body but keeps its object keys, which result safety and projections
|
|
58
|
+
* match by name: a renamed key would hide a field from the rule that withholds it. JSON inside
|
|
59
|
+
* a string is a value, so its keys are still checked. The connector's result and failures are
|
|
60
|
+
* checked again under payload rules, keys included, at the `api()` boundary and the invocation. */
|
|
61
|
+
redact<T>(value: T, mode?: "payload" | "envelope" | "values"): T;
|
|
62
|
+
/** Whether payload redaction would change anything in `value`, for fields that must be
|
|
63
|
+
* refused rather than rewritten. */
|
|
64
|
+
changes(value: unknown): boolean;
|
|
65
|
+
/** Relay state and links Connecta minted and authenticates are framing, not payload: they
|
|
66
|
+
* hold sealed downstream state or Connecta's own facts, never downstream text or arguments,
|
|
67
|
+
* and a coincidental match must not corrupt them. Never admit downstream-authored state
|
|
68
|
+
* here. Exact value membership survives JSON serialization within this request. */
|
|
69
|
+
mintedState(value: string): string;
|
|
70
|
+
/** Base64, or base64url with `url`, of bytes Connecta returns to an agent. No later pass
|
|
71
|
+
* reads through an encoding the output does not declare, so the bytes are checked first: as
|
|
72
|
+
* byte-valued units, as UTF-8 text, and through any base64 they carry, then the encoding
|
|
73
|
+
* itself. Content holding a match encodes the placeholder instead. Downstream content takes
|
|
74
|
+
* payload rules. `claims` is JSON Connecta assembled, such as a page cursor: its own names,
|
|
75
|
+
* counts and fingerprints beside downstream values it already redacted under payload rules.
|
|
76
|
+
* Every string in it is checked under payload rules, since each downstream value a cursor
|
|
77
|
+
* holds is one, and the whole text and its encoding under the boundary's, so Connecta's keys
|
|
78
|
+
* and counts never meet a short private value. Checked so, it is remembered as clean for later
|
|
79
|
+
* passes over the same set. */
|
|
80
|
+
encode(bytes: Uint8Array, { url, claims }?: {
|
|
81
|
+
url?: boolean;
|
|
82
|
+
claims?: boolean;
|
|
83
|
+
}): string;
|
|
84
|
+
/** Text pieces a provider reads as one lane, such as rich-text runs with metadata between
|
|
85
|
+
* them: checked joined, each match replaced in every piece it touches. */
|
|
86
|
+
parts(parts: string[]): string[];
|
|
87
|
+
/** Complete and unfinished forms in bounded text, all found against its original bytes.
|
|
88
|
+
* Replacing a complete match first could hide a longer open match containing it. Even a
|
|
89
|
+
* one-unit shared prefix is withheld: a read boundary gives no evidence it is public text.
|
|
90
|
+
* Each decoded layer sets aside a trailing escape the read cut short, which is withheld. */
|
|
91
|
+
redactOpenTail(text: string): string;
|
|
35
92
|
/** Credentials alone: later calls keep the private arguments they submit, and cached
|
|
36
93
|
* catalogs never depend on one request's arguments. */
|
|
37
94
|
redactCredentials<T>(value: T): T;
|
|
38
95
|
private idle;
|
|
39
96
|
private scan;
|
|
40
97
|
private matcher;
|
|
98
|
+
/** Short private forms, matched as substrings of payload text. */
|
|
99
|
+
private shortMatcher;
|
|
100
|
+
/** Forms with no indexed fragment, such as identifiers, matched whole. */
|
|
101
|
+
private wholeMatcher;
|
|
102
|
+
private fragments;
|
|
41
103
|
private credentials;
|
|
42
|
-
/**
|
|
43
|
-
private
|
|
44
|
-
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
private
|
|
49
|
-
/**
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
private
|
|
54
|
-
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
private
|
|
62
|
-
/**
|
|
63
|
-
*
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
104
|
+
/** Every form lowercased, for fields such as hosts that reach output lowercased. */
|
|
105
|
+
private folded;
|
|
106
|
+
/** The shortest text that might hold something this set cannot check, which is withheld: a
|
|
107
|
+
* K-unit run of a value too large to register (or a whole short one), or of a form past the
|
|
108
|
+
* fragment index's or a matcher's capacity. Envelope scans rely on the payload scans for
|
|
109
|
+
* unregistered values. */
|
|
110
|
+
private limit;
|
|
111
|
+
/** Whether an open tail could begin a form this set never registered or indexed. */
|
|
112
|
+
private uncheckedTail;
|
|
113
|
+
/** A form whole: a leaf, key, number, boolean or decoded view equal to one, as it stands or
|
|
114
|
+
* under JSON escapes. This is how a tiny private value is matched. */
|
|
115
|
+
private whole;
|
|
116
|
+
/** Every K-unit run of a registered form, every identifier form, and in payload text every
|
|
117
|
+
* short private form, in the raw text and each JSON-unescaped layer, mapped to source spans
|
|
118
|
+
* before any replacement. A layer decodes while the one above holds an escape; each is scanned
|
|
119
|
+
* only around the escapes it decoded, since any other match was found a layer up. Work beyond
|
|
120
|
+
* the call's budget returns undefined, which withholds the text. */
|
|
121
|
+
private spansOf;
|
|
122
|
+
/** Add the span of an unfinished form the text ends inside, at any decoded layer. */
|
|
123
|
+
private openSpans;
|
|
124
|
+
/** The one string checker. Every string that can reach an agent, an executor or storage is
|
|
125
|
+
* checked here, under the whole lattice: projection leaves and numbers, object keys, declared
|
|
126
|
+
* binary fields, the bytes of typed arrays and ArrayBuffers, cursor claims and every encoding
|
|
127
|
+
* Connecta produces, error fields, provider lanes, bounded reads and structural fields.
|
|
128
|
+
* `parts` is one lane: matched joined, raw and through its JSON layers, each match replaced in
|
|
129
|
+
* every part it touches, a tiny private value withholding a part it equals, and every part
|
|
130
|
+
* withheld that the set cannot fully check. Then every text and declared binary part is
|
|
131
|
+
* decoded in each of its text views (see textViews), its base64 and base64url runs and a
|
|
132
|
+
* declared field's whole content are decoded and checked as bytes, UTF-8 and nested base64,
|
|
133
|
+
* and so are byte parts; a part a decoded view matches is withheld whole. Each decode is
|
|
134
|
+
* charged to the call's budget, and a part it cannot pay for is withheld. A `bounded` lane is
|
|
135
|
+
* text cut short, which also loses an unfinished tail. Nothing else matches a string that is
|
|
136
|
+
* returned: the matching steps below are called only from here. */
|
|
137
|
+
private checked;
|
|
138
|
+
/** Cursor claims: the whole text and its encoding under the boundary's rules, then every
|
|
139
|
+
* string in the JSON under payload rules. Keys and numbers are Connecta's own names and
|
|
140
|
+
* counts: a downstream value enters a cursor only as a string. */
|
|
141
|
+
private claimsClean;
|
|
142
|
+
/** The shortest base64 run inside a view that is decoded: long enough to carry the smallest
|
|
143
|
+
* piece this scan matches (see SHORT_RUN_UNITS). */
|
|
144
|
+
private runUnits;
|
|
145
|
+
/** The text views base64 is found in: the text; one layer of its JSON escapes decoded; its
|
|
146
|
+
* percent escapes decoded; and its form decoding, a `+` read as a space with any percent
|
|
147
|
+
* escapes decoded, whether or not it holds one. Two decodes chained, such as percent escapes
|
|
148
|
+
* inside JSON escapes, are not a view. Undefined when the work budget cannot pay for them. */
|
|
149
|
+
private textViews;
|
|
150
|
+
/** Text and declared binary parts carrying base64 or base64url, in any text view, the whole
|
|
151
|
+
* view or a run inside it, and byte parts, whose decoded bytes or their UTF-8 text hold a
|
|
152
|
+
* match are withheld whole: no later pass reads through an encoding the output does not
|
|
153
|
+
* declare. A declared field is also decoded whole, as its reader decodes it. Every part's
|
|
154
|
+
* decoded views are matched together, as one lane between unmatched separators. Each decode
|
|
155
|
+
* is paid for from the call's work budget; a part the budget cannot check is withheld. */
|
|
156
|
+
private encodedLeaves;
|
|
157
|
+
/** The parts' joined text, matched once, with each part's replacement. A tiny or short
|
|
158
|
+
* private value equal to a whole part withholds it. A number or a serialized container that
|
|
159
|
+
* a match touches is withheld whole. A bounded lane also loses an unfinished tail, and is
|
|
160
|
+
* withheld whole when the set could not tell where one begins. */
|
|
161
|
+
private safeParts;
|
|
162
|
+
/** Leaves too large to match joined within the work budget: each is matched alone, in order,
|
|
163
|
+
* and one that does not fit is withheld without spending what a smaller one needs. A run
|
|
164
|
+
* crossing from one kept leaf into the next, through any short leaves between them, is then
|
|
165
|
+
* matched SEAM_UNITS deep on each side of the seam. */
|
|
166
|
+
private leafByLeaf;
|
|
167
|
+
/** Serialized JSON whose keys, syntax and leaves together hold a K-unit run of a form: one
|
|
168
|
+
* spanning tokens, which no leaf holds alone, withholds the whole text. A run inside one
|
|
169
|
+
* string or number is a leaf's, already matched in the projection. */
|
|
170
|
+
private spansTokens;
|
|
171
|
+
/** The output boundary. One walk reads every field once, from its descriptor, and projects
|
|
172
|
+
* every string and number leaf in serialization order, nested JSON strings parsed and errors'
|
|
173
|
+
* own fields included, declared binary fields and the bytes and numbers typed binary holds
|
|
174
|
+
* among them; the one checker matches the joined projection, so a form split across adjacent
|
|
175
|
+
* leaves is found, and only the affected piece of each leaf is written back. Keys and scalars
|
|
176
|
+
* go through the same checker alone. Fixed framing words and tags, outcome booleans, and on an
|
|
177
|
+
* error its classification code and a name its registered class gives it (redaction-identity's
|
|
178
|
+
* fixed allowlist) are kept: nothing downstream chooses them. Every other field is matched,
|
|
179
|
+
* whatever its name; an error's other name is projected like any field and withheld whole when
|
|
180
|
+
* anything changes any part of it.
|
|
181
|
+
*
|
|
182
|
+
* What returns is what was checked, and only JSON data: strings, numbers, booleans, null,
|
|
183
|
+
* plain objects and arrays, a fresh built-in Uint8Array, and error copies. A caller's container
|
|
184
|
+
* is returned as it stands only as verified plain data, so a later read returns the same
|
|
185
|
+
* values: its prototype is Object.prototype, Array.prototype or null, nothing on its chain is a
|
|
186
|
+
* toJSON, it holds no symbol field and an array no field but its indices (a hole checked
|
|
187
|
+
* through its prototypes), every field is a data property this walk read, and nothing in it
|
|
188
|
+
* changed. Anything else is a copy. An error always is, of its own class, with the accessors in
|
|
189
|
+
* ERROR_ACCESSORS and those its chain defines read once into fields and a toJSON shadowed, never
|
|
190
|
+
* read; an object of any other class is plain data, its chain's accessors unread; an array that
|
|
191
|
+
* is not plain is a plain array of its indices; a String, Number or Boolean wrapper is its
|
|
192
|
+
* primitive. A typed array, DataView or ArrayBuffer becomes a fresh Uint8Array of the bytes it
|
|
193
|
+
* held, which are checked as bytes, and as numbers with any other elements it held. A function
|
|
194
|
+
* or symbol is withheld. A container's own accessor is never invoked: its copy leaves it out,
|
|
195
|
+
* or holds the placeholder at an array index. A toJSON is called once, as serialization would,
|
|
196
|
+
* and replaced by its checked result. A change copies every container on its path on first
|
|
197
|
+
* write, so no caller's value is ever mutated, and a container past the node budget is
|
|
198
|
+
* withheld whole. Copies hold writable, configurable data properties and keep the identity
|
|
199
|
+
* facts registered in redaction-identity. */
|
|
200
|
+
private project;
|
|
69
201
|
}
|
|
70
202
|
export declare function sentSecretsFor(ctx: ConnectorContext): SentSecrets;
|
|
71
203
|
/** One identity per upstream request, including all discovery and call work. */
|
|
@@ -73,16 +205,41 @@ export declare function sentSecretsForRequest(scope: object, secrets?: SentSecre
|
|
|
73
205
|
/** The agent-facing choke point. Apply to values before bridge serialization
|
|
74
206
|
* and to serialized wire text, so JSON escapes and structured strings share
|
|
75
207
|
* the same rule. Payloads were redacted where they entered; this boundary
|
|
76
|
-
* repeats
|
|
77
|
-
*
|
|
208
|
+
* repeats every check but short private values around Connecta's own
|
|
209
|
+
* envelopes, whose identifiers and counts are never private data. */
|
|
78
210
|
export declare function redactAgentOutput<T>(secrets: SentSecrets, value: T): T;
|
|
79
211
|
/** Wrap the complete operation table, including rejections. Adding an operation
|
|
80
212
|
* cannot add an unredacted exit. A direct invocation owns a fresh scope unless
|
|
81
213
|
* its HTTP request supplied one. */
|
|
82
214
|
export declare function agentOutputOperations<T extends Record<string, (...args: never[]) => Promise<unknown>>>(create: (scope: object) => T, requestScope?: object): T;
|
|
83
|
-
/** Slot reads cover custom handlers too, including keys put in query strings.
|
|
215
|
+
/** Slot reads cover custom handlers too, including keys put in query strings. A field named
|
|
216
|
+
* as an identifier (an application or client ID, a username, a public key) is matched whole. */
|
|
217
|
+
export declare function registerCredentialValues(secrets: SentSecrets, values: import("./types.js").ConnectorCredentialValues | null): void;
|
|
84
218
|
export declare function trackCredentialReads(ctx: ConnectorContext): void;
|
|
219
|
+
/** A connector's result or error as it enters: every connector's credentials and the
|
|
220
|
+
* request's private arguments, under payload rules. */
|
|
85
221
|
export declare function redactSentSecrets<T>(ctx: ConnectorContext, value: T): T;
|
|
222
|
+
/** Everything the context's request sent: every connector's credentials and the
|
|
223
|
+
* request's private arguments, which a context's own set does not hold. */
|
|
224
|
+
export declare function requestSentSecrets(ctx: ConnectorContext): SentSecrets;
|
|
225
|
+
/** Downstream text, or a parsed body, about to be cut short, trimmed, normalized or
|
|
226
|
+
* extracted from. Redact it whole first: a cut through an echoed form can leave a remnant
|
|
227
|
+
* shorter than any fragment the output boundary matches, and a normalized number or
|
|
228
|
+
* extracted substring may no longer hold the form at all. */
|
|
229
|
+
export declare function redactBeforeCut<T>(ctx: ConnectorContext, value: T): T;
|
|
230
|
+
/** Base64, or base64url with `url`, of bytes or UTF-8 text Connecta returns to an agent: a
|
|
231
|
+
* download, an attachment, a REST body, a page cursor. Every such encoding goes through here,
|
|
232
|
+
* since no later pass reads through an encoding the output does not declare: the content is
|
|
233
|
+
* checked first with the request's set, and content holding a match encodes the placeholder.
|
|
234
|
+
* A cursor passes `claims`: connecta's own counts and fingerprints beside downstream values it
|
|
235
|
+
* already redacted (`redactSentSecrets`), checked under the boundary's rules. */
|
|
236
|
+
export declare function encodeForAgent(ctx: ConnectorContext, content: Uint8Array | string, options?: {
|
|
237
|
+
url?: boolean;
|
|
238
|
+
claims?: boolean;
|
|
239
|
+
}): string;
|
|
240
|
+
/** Downstream text read only up to a bound, as a field an agent reads: whole forms are
|
|
241
|
+
* replaced, and so is a tail that begins one the read stopped inside. */
|
|
242
|
+
export declare function redactBoundedRead(ctx: ConnectorContext, text: string): string;
|
|
86
243
|
/** Sanitize listing facts before any cache or consumer receives them. A name
|
|
87
244
|
* cannot be rewritten without changing dispatch, and dropping one entry would
|
|
88
245
|
* publish a partial catalog, so refuse the complete listing instead. */
|