@zackbart/connecta 0.28.1 → 0.29.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 +788 -5
- package/README.md +62 -42
- package/bin/connecta.mjs +110 -139
- package/bin/meta-tool-names.d.mts +2 -0
- package/bin/meta-tool-names.mjs +9 -0
- package/bin/version.mjs +3 -0
- package/dist/access-tokens.js +53 -63
- package/dist/activity-request.js +8 -0
- package/dist/activity.d.ts +76 -42
- package/dist/activity.js +110 -42
- package/dist/auth/clerk-sdk/client.d.ts +65 -0
- package/dist/auth/clerk-sdk/client.js +5 -0
- package/dist/auth/clerk-sdk/generated.js +1845 -0
- package/dist/auth/clerk-transport.js +19 -0
- package/dist/auth/clerk.d.ts +17 -7
- package/dist/auth/clerk.js +189 -107
- package/dist/auth/cloudflare-access.js +25 -26
- package/dist/auth/downstream-client-metadata.d.ts +29 -0
- package/dist/auth/downstream-client-metadata.js +133 -0
- package/dist/auth/downstream-oauth.js +1584 -1580
- package/dist/auth/downstream-revocation.js +106 -0
- package/dist/auth/oauth-token-response.js +231 -0
- package/dist/auth/oauth-v2-migration.js +116 -0
- package/dist/auth/static-oauth.js +93 -71
- package/dist/auth-elicitation.js +283 -0
- package/dist/branding.d.ts +8 -16
- package/dist/branding.js +26 -59
- package/dist/byte-read-response.js +39 -0
- package/dist/call-admission.js +12 -16
- package/dist/catalog-cache.js +739 -0
- package/dist/catalog-drift.d.ts +50 -15
- package/dist/catalog-drift.js +365 -128
- package/dist/catalog-fingerprint.js +2 -4
- package/dist/catalog-freshness.js +13 -0
- package/dist/catalog-limits.js +2 -2
- package/dist/catalog-service.js +368 -224
- package/dist/catalog.js +43 -84
- package/dist/concurrency.js +3 -4
- package/dist/config-defaults.d.ts +39 -0
- package/dist/config-defaults.js +46 -0
- package/dist/config-schema.d.ts +181 -0
- package/dist/config-schema.js +435 -0
- package/dist/config-value-sources.js +102 -0
- package/dist/config.d.ts +631 -0
- package/dist/config.js +503 -0
- package/dist/connector-access.d.ts +1 -0
- package/dist/connector-access.js +13 -15
- package/dist/connector-caller.d.ts +8 -0
- package/dist/connector-caller.js +15 -6
- package/dist/connector-scope.js +1 -1
- package/dist/connectors/api-connector.d.ts +59 -7
- package/dist/connectors/api-connector.js +106 -19
- package/dist/connectors/api.js +4 -1
- package/dist/connectors/guarded-fetch.d.ts +144 -0
- package/dist/connectors/guarded-fetch.js +84 -35
- package/dist/connectors/negotiation-cache.js +46 -0
- package/dist/connectors/option-shapes.js +27 -0
- package/dist/connectors/remote-mcp.d.ts +30 -4
- package/dist/connectors/remote-mcp.js +1774 -320
- package/dist/connectors/resource-uri.js +335 -0
- package/dist/credential-contract.d.ts +10 -0
- package/dist/credential-rules.js +1 -3
- package/dist/credential-url.js +108 -0
- package/dist/credentials.d.ts +6 -1
- package/dist/credentials.js +27 -18
- package/dist/d1.d.ts +130 -0
- package/dist/d1.js +290 -0
- package/dist/describe-config.d.ts +165 -0
- package/dist/describe-config.js +315 -0
- package/dist/described.js +106 -0
- package/dist/downstream-input-context.js +119 -0
- package/dist/downstream-input.js +323 -0
- package/dist/errors.d.ts +97 -20
- package/dist/errors.js +158 -80
- package/dist/execute.js +453 -305
- package/dist/executor-admission.d.ts +1 -0
- package/dist/executor-admission.js +11 -15
- package/dist/executor-contract.d.ts +20 -0
- package/dist/executor-contract.js +48 -0
- package/dist/executor-result.js +24 -9
- package/dist/executors/quickjs-child.js +3 -4
- package/dist/executors/quickjs-runtime.js +147 -59
- package/dist/executors/quickjs.js +29 -35
- package/dist/favicon.js +1 -2
- package/dist/fix-prompt.js +1 -3
- package/dist/guest-runtime.js +188 -0
- package/dist/guest-types.d.ts +176 -0
- package/dist/guest-types.js +1 -0
- package/dist/html-security.js +24 -0
- package/dist/identity.js +1 -3
- package/dist/inbound-credential.js +52 -0
- package/dist/index.d.ts +24 -256
- package/dist/index.js +65 -478
- package/dist/invocation-auth.js +69 -0
- package/dist/invocation.js +230 -73
- package/dist/json-schema.d.ts +1 -1
- package/dist/mcp-client-context.js +35 -0
- package/dist/mcp-result.js +11 -7
- package/dist/meta-output.js +76 -0
- package/dist/meta-tool-names.d.ts +2 -0
- package/dist/meta-tool-names.js +3 -0
- package/dist/meta-tools.js +285 -209
- package/dist/module-contracts.d.ts +8 -23
- package/dist/node.d.ts +0 -2
- package/dist/node.js +2 -2
- package/dist/oauth-callback-outcome.js +1 -3
- package/dist/oauth-handoff.js +117 -0
- package/dist/oauth-sealing.js +20 -0
- package/dist/operator-record.d.ts +137 -0
- package/dist/operator-record.js +420 -0
- package/dist/operator-ui/assets.js +31 -0
- package/dist/operator-ui/contract.d.ts +72 -0
- package/dist/operator-ui/contract.js +1 -0
- package/dist/operator-ui/fix-prompts.d.ts +18 -0
- package/dist/operator-ui/generated.js +5 -4
- package/dist/operator-ui/model.d.ts +12 -87
- package/dist/operator-ui/model.js +2 -9
- package/dist/operator-ui/setup-commands.js +1 -3
- package/dist/operator-ui/view.d.ts +323 -0
- package/dist/operator-ui/view.js +62 -189
- package/dist/page-styles.js +2 -3
- package/dist/program-source.js +14 -2
- package/dist/{exempt-writes.js → program-writes.js} +55 -18
- package/dist/provider.d.ts +142 -0
- package/dist/provider.js +187 -0
- package/dist/providers/_shared/google/result-size.js +57 -0
- package/dist/providers/_shared/google/service-account.d.ts +58 -0
- package/dist/providers/_shared/google/service-account.js +500 -0
- package/dist/providers/_shared/google/workspace.d.ts +276 -0
- package/dist/providers/_shared/google/workspace.js +518 -0
- package/dist/providers/{basecamp.d.ts → basecamp/index.d.ts} +6 -28
- package/dist/providers/basecamp/index.js +997 -0
- package/dist/providers/basecamp/skill.generated.js +9 -0
- package/dist/providers/{breeze.d.ts → breeze/index.d.ts} +2 -2
- package/dist/providers/{breeze.js → breeze/index.js} +184 -140
- package/dist/providers/breeze/skill.generated.js +9 -0
- package/dist/providers/{ccb.d.ts → ccb/index.d.ts} +2 -2
- package/dist/providers/{ccb.js → ccb/index.js} +271 -116
- package/dist/providers/ccb/skill.generated.js +9 -0
- package/dist/providers/{cloudflare.d.ts → cloudflare/index.d.ts} +8 -7
- package/dist/providers/{cloudflare.js → cloudflare/index.js} +171 -738
- package/dist/providers/cloudflare/skill.generated.js +10 -0
- package/dist/providers/docs/index.d.ts +54 -0
- package/dist/providers/docs/index.js +1237 -0
- package/dist/providers/docs/skill.generated.js +9 -0
- package/dist/providers/drive/index.d.ts +53 -0
- package/dist/providers/drive/index.js +1523 -0
- package/dist/providers/drive/skill.generated.js +9 -0
- package/dist/providers/forms/index.d.ts +54 -0
- package/dist/providers/forms/index.js +1217 -0
- package/dist/providers/forms/skill.generated.js +11 -0
- package/dist/providers/github/auth.d.ts +32 -0
- package/dist/providers/github/auth.js +361 -0
- package/dist/providers/github/hosted.js +218 -0
- package/dist/providers/github/index.d.ts +13 -0
- package/dist/providers/github/index.js +140 -0
- package/dist/providers/github/key.js +100 -0
- package/dist/providers/github/rest.js +321 -0
- package/dist/providers/github/scope.d.ts +29 -0
- package/dist/providers/github/scope.js +124 -0
- package/dist/providers/github/skill.generated.js +8 -0
- package/dist/providers/gmail/index.d.ts +51 -0
- package/dist/providers/gmail/index.js +1436 -0
- package/dist/providers/gmail/skill.generated.js +9 -0
- package/dist/providers/{linear.d.ts → linear/index.d.ts} +11 -14
- package/dist/providers/linear/index.js +352 -0
- package/dist/providers/linear/skill.generated.js +8 -0
- package/dist/providers/{mixpanel.d.ts → mixpanel/index.d.ts} +5 -10
- package/dist/providers/mixpanel/index.js +416 -0
- package/dist/providers/mixpanel/skill.generated.js +9 -0
- package/dist/providers/{notion.d.ts → notion/index.d.ts} +8 -8
- package/dist/providers/{notion.js → notion/index.js} +226 -239
- package/dist/providers/notion/skill.generated.js +10 -0
- package/dist/providers/{overflow.d.ts → overflow/index.d.ts} +2 -2
- package/dist/providers/{overflow.js → overflow/index.js} +74 -111
- package/dist/providers/overflow/skill.generated.js +8 -0
- package/dist/providers/{planning-center.d.ts → planning-center/index.d.ts} +2 -2
- package/dist/providers/{planning-center.js → planning-center/index.js} +264 -104
- package/dist/providers/planning-center/skill.generated.js +10 -0
- package/dist/providers/{revenuecat.d.ts → revenuecat/index.d.ts} +5 -10
- package/dist/providers/revenuecat/index.js +557 -0
- package/dist/providers/revenuecat/skill.generated.js +11 -0
- package/dist/providers/sheets/index.d.ts +54 -0
- package/dist/providers/sheets/index.js +1237 -0
- package/dist/providers/sheets/skill.generated.js +10 -0
- package/dist/providers/slides/index.d.ts +53 -0
- package/dist/providers/slides/index.js +2645 -0
- package/dist/providers/slides/skill.generated.js +9 -0
- package/dist/providers/{stripe.d.ts → stripe/index.d.ts} +5 -12
- package/dist/providers/stripe/index.js +266 -0
- package/dist/providers/stripe/skill.generated.js +11 -0
- package/dist/providers/{tithely.d.ts → tithely/index.d.ts} +2 -2
- package/dist/providers/{tithely.js → tithely/index.js} +60 -91
- package/dist/providers/tithely/skill.generated.js +8 -0
- package/dist/providers/{vercel.d.ts → vercel/index.d.ts} +8 -8
- package/dist/providers/vercel/index.js +1038 -0
- package/dist/providers/vercel/mcp-ownership.js +212 -0
- package/dist/providers/vercel/skill.generated.js +11 -0
- package/dist/registry.d.ts +108 -171
- package/dist/registry.js +513 -925
- package/dist/request-state.js +21 -0
- package/dist/resource-read.js +100 -0
- package/dist/result-shapes.js +17 -49
- package/dist/retired-toolkits.js +1 -1
- package/dist/routes/access-tokens.js +3 -6
- package/dist/routes/activity-context.js +21 -0
- package/dist/routes/activity-disclosure.js +40 -0
- package/dist/routes/activity.js +59 -21
- package/dist/routes/actor-labels.js +3 -50
- package/dist/routes/connect.js +221 -0
- package/dist/routes/credentials.js +15 -27
- package/dist/routes/mcp.js +356 -130
- package/dist/routes/oauth-client-metadata.js +15 -0
- package/dist/routes/oauth-management.js +45 -107
- package/dist/routes/oauth.js +110 -57
- package/dist/routes/operator.js +3 -3
- package/dist/routes/shared.d.ts +25 -64
- package/dist/routes/shared.js +160 -80
- package/dist/routes/skills.js +30 -0
- package/dist/routes/ui-config.js +225 -0
- package/dist/routes/ui-data.js +40 -35
- package/dist/routes/ui.js +66 -56
- package/dist/runtime/admission.js +4 -2
- package/dist/runtime/call-admission.js +3 -1
- package/dist/runtime/connector-scope.js +1 -4
- package/dist/runtime/run.js +10 -39
- package/dist/runtime/services.js +12 -117
- package/dist/runtime/shared-read.js +1 -3
- package/dist/runtime/storage.js +8 -1
- package/dist/sent-secrets.d.ts +52 -0
- package/dist/sent-secrets.js +474 -0
- package/dist/server.js +28 -71
- package/dist/skills.js +406 -174
- package/dist/sqlite.d.ts +48 -0
- package/dist/sqlite.js +166 -0
- package/dist/storage/keys.js +428 -0
- package/dist/storage/memory.js +7 -0
- package/dist/storage/sql.d.ts +66 -0
- package/dist/storage/sql.js +534 -0
- package/dist/timeout.js +4 -2
- package/dist/tool-name.js +17 -0
- package/dist/tool-safety.d.ts +9 -35
- package/dist/tool-safety.js +20 -40
- package/dist/types.d.ts +320 -54
- package/dist/types.js +0 -1
- package/dist/ui.d.ts +7 -19
- package/dist/ui.js +76 -90
- package/dist/url-safety.js +3 -6
- package/dist/usage-guide.js +137 -0
- package/dist/validate.d.ts +7 -0
- package/dist/validate.js +309 -47
- package/dist/version.d.ts +1 -7
- package/dist/version.js +3 -7
- package/dist/worker.d.ts +11 -0
- package/dist/worker.js +434 -0
- package/documentation/architecture.md +664 -231
- package/documentation/auth.md +936 -546
- package/documentation/code-mode.md +501 -312
- package/documentation/meta-tools.md +449 -200
- package/documentation/operator-tests.md +93 -0
- package/documentation/provider-migration-0.29.md +60 -0
- package/examples/worker/AGENTS.md +34 -12
- package/examples/worker/README.md +286 -255
- package/examples/worker/kv-to-d1.wrangler.jsonc +26 -0
- package/examples/worker/scripts/copy-kv-to-d1.mjs +162 -0
- package/examples/worker/src/connecta.config.ts +151 -0
- package/examples/worker/src/index.ts +14 -197
- package/examples/worker/wrangler.jsonc +15 -35
- package/package.json +120 -54
- package/templates/node/.dockerignore +1 -2
- package/templates/node/.env.example +20 -21
- package/templates/node/AGENTS.md +21 -17
- package/templates/node/Dockerfile +3 -5
- package/templates/node/README.md +133 -58
- package/templates/node/docker-compose.yml +11 -12
- package/templates/node/package.json +4 -2
- package/templates/node/src/connecta.config.ts +119 -0
- package/templates/node/src/index.ts +9 -154
- package/templates/node/src/provision-token.ts +17 -0
- package/AGENTS.md +0 -170
- package/dist/artifacts/connector.d.ts +0 -58
- package/dist/artifacts/connector.js +0 -730
- package/dist/artifacts/document.js +0 -86
- package/dist/artifacts/guide.js +0 -140
- package/dist/artifacts/html-scan.js +0 -329
- package/dist/artifacts/json.js +0 -78
- package/dist/artifacts/kv-store.d.ts +0 -20
- package/dist/artifacts/kv-store.js +0 -140
- package/dist/artifacts/markdown.js +0 -478
- package/dist/artifacts/module.d.ts +0 -37
- package/dist/artifacts/module.js +0 -66
- package/dist/artifacts/operations.d.ts +0 -197
- package/dist/artifacts/operations.js +0 -1002
- package/dist/artifacts/refresh.d.ts +0 -55
- package/dist/artifacts/refresh.js +0 -236
- package/dist/artifacts/routes.js +0 -206
- package/dist/artifacts/types.d.ts +0 -214
- package/dist/artifacts/types.js +0 -22
- package/dist/artifacts/validate.d.ts +0 -62
- package/dist/artifacts/validate.js +0 -651
- package/dist/artifacts.d.ts +0 -6
- package/dist/artifacts.js +0 -9
- package/dist/auth/bearer.d.ts +0 -11
- package/dist/auth/bearer.js +0 -50
- package/dist/providers/basecamp.js +0 -445
- package/dist/providers/linear.js +0 -217
- package/dist/providers/mixpanel.js +0 -247
- package/dist/providers/revenuecat.js +0 -317
- package/dist/providers/stripe.js +0 -253
- package/dist/providers/vercel.js +0 -1253
- package/dist/storage/file.d.ts +0 -15
- package/dist/storage/file.js +0 -455
- package/ethos.md +0 -93
- package/examples/worker/src/cloudflare-kv.ts +0 -43
- package/examples/worker/src/d1-activity-row.ts +0 -155
- package/examples/worker/src/d1-activity.ts +0 -147
- package/examples/worker/src/d1-storage.ts +0 -138
- package/examples/worker/src/r2-artifact-blobs.ts +0 -29
- package/templates/node/src/file-activity.ts +0 -182
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zackbart/connecta",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.29.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
|
-
"description": "One MCP to rule them all — a single MCP endpoint aggregating many downstream connectors behind a code-first surface of
|
|
6
|
+
"description": "One MCP to rule them all — a single MCP endpoint aggregating many downstream connectors behind a code-first surface of six meta-tools.",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"engines": {
|
|
9
|
-
"node": ">=22.
|
|
9
|
+
"node": ">=22.13.0"
|
|
10
10
|
},
|
|
11
11
|
"publishConfig": {
|
|
12
12
|
"access": "public"
|
|
@@ -34,8 +34,6 @@
|
|
|
34
34
|
"documentation",
|
|
35
35
|
"examples/worker",
|
|
36
36
|
"templates",
|
|
37
|
-
"AGENTS.md",
|
|
38
|
-
"ethos.md",
|
|
39
37
|
"README.md",
|
|
40
38
|
"CHANGELOG.md",
|
|
41
39
|
"SECURITY.md",
|
|
@@ -51,6 +49,14 @@
|
|
|
51
49
|
"types": "./dist/node.d.ts",
|
|
52
50
|
"import": "./dist/node.js"
|
|
53
51
|
},
|
|
52
|
+
"./sqlite": {
|
|
53
|
+
"types": "./dist/sqlite.d.ts",
|
|
54
|
+
"import": "./dist/sqlite.js"
|
|
55
|
+
},
|
|
56
|
+
"./d1": {
|
|
57
|
+
"types": "./dist/d1.d.ts",
|
|
58
|
+
"import": "./dist/d1.js"
|
|
59
|
+
},
|
|
54
60
|
"./json-schema": {
|
|
55
61
|
"types": "./dist/json-schema.d.ts",
|
|
56
62
|
"import": "./dist/json-schema.js"
|
|
@@ -67,57 +73,85 @@
|
|
|
67
73
|
"types": "./dist/auth/cloudflare-access.d.ts",
|
|
68
74
|
"import": "./dist/auth/cloudflare-access.js"
|
|
69
75
|
},
|
|
76
|
+
"./providers/basecamp": {
|
|
77
|
+
"types": "./dist/providers/basecamp/index.d.ts",
|
|
78
|
+
"import": "./dist/providers/basecamp/index.js"
|
|
79
|
+
},
|
|
70
80
|
"./providers/breeze": {
|
|
71
|
-
"types": "./dist/providers/breeze.d.ts",
|
|
72
|
-
"import": "./dist/providers/breeze.js"
|
|
81
|
+
"types": "./dist/providers/breeze/index.d.ts",
|
|
82
|
+
"import": "./dist/providers/breeze/index.js"
|
|
73
83
|
},
|
|
74
|
-
"./providers/
|
|
75
|
-
"types": "./dist/providers/
|
|
76
|
-
"import": "./dist/providers/
|
|
84
|
+
"./providers/ccb": {
|
|
85
|
+
"types": "./dist/providers/ccb/index.d.ts",
|
|
86
|
+
"import": "./dist/providers/ccb/index.js"
|
|
77
87
|
},
|
|
78
88
|
"./providers/cloudflare": {
|
|
79
|
-
"types": "./dist/providers/cloudflare.d.ts",
|
|
80
|
-
"import": "./dist/providers/cloudflare.js"
|
|
89
|
+
"types": "./dist/providers/cloudflare/index.d.ts",
|
|
90
|
+
"import": "./dist/providers/cloudflare/index.js"
|
|
91
|
+
},
|
|
92
|
+
"./providers/docs": {
|
|
93
|
+
"types": "./dist/providers/docs/index.d.ts",
|
|
94
|
+
"import": "./dist/providers/docs/index.js"
|
|
95
|
+
},
|
|
96
|
+
"./providers/drive": {
|
|
97
|
+
"types": "./dist/providers/drive/index.d.ts",
|
|
98
|
+
"import": "./dist/providers/drive/index.js"
|
|
99
|
+
},
|
|
100
|
+
"./providers/forms": {
|
|
101
|
+
"types": "./dist/providers/forms/index.d.ts",
|
|
102
|
+
"import": "./dist/providers/forms/index.js"
|
|
103
|
+
},
|
|
104
|
+
"./providers/github": {
|
|
105
|
+
"types": "./dist/providers/github/index.d.ts",
|
|
106
|
+
"import": "./dist/providers/github/index.js"
|
|
107
|
+
},
|
|
108
|
+
"./providers/gmail": {
|
|
109
|
+
"types": "./dist/providers/gmail/index.d.ts",
|
|
110
|
+
"import": "./dist/providers/gmail/index.js"
|
|
81
111
|
},
|
|
82
112
|
"./providers/linear": {
|
|
83
|
-
"types": "./dist/providers/linear.d.ts",
|
|
84
|
-
"import": "./dist/providers/linear.js"
|
|
113
|
+
"types": "./dist/providers/linear/index.d.ts",
|
|
114
|
+
"import": "./dist/providers/linear/index.js"
|
|
85
115
|
},
|
|
86
116
|
"./providers/mixpanel": {
|
|
87
|
-
"types": "./dist/providers/mixpanel.d.ts",
|
|
88
|
-
"import": "./dist/providers/mixpanel.js"
|
|
117
|
+
"types": "./dist/providers/mixpanel/index.d.ts",
|
|
118
|
+
"import": "./dist/providers/mixpanel/index.js"
|
|
89
119
|
},
|
|
90
120
|
"./providers/notion": {
|
|
91
|
-
"types": "./dist/providers/notion.d.ts",
|
|
92
|
-
"import": "./dist/providers/notion.js"
|
|
121
|
+
"types": "./dist/providers/notion/index.d.ts",
|
|
122
|
+
"import": "./dist/providers/notion/index.js"
|
|
93
123
|
},
|
|
94
|
-
"./providers/
|
|
95
|
-
"types": "./dist/providers/
|
|
96
|
-
"import": "./dist/providers/
|
|
124
|
+
"./providers/overflow": {
|
|
125
|
+
"types": "./dist/providers/overflow/index.d.ts",
|
|
126
|
+
"import": "./dist/providers/overflow/index.js"
|
|
97
127
|
},
|
|
98
|
-
"./providers/
|
|
99
|
-
"types": "./dist/providers/
|
|
100
|
-
"import": "./dist/providers/
|
|
128
|
+
"./providers/planning-center": {
|
|
129
|
+
"types": "./dist/providers/planning-center/index.d.ts",
|
|
130
|
+
"import": "./dist/providers/planning-center/index.js"
|
|
101
131
|
},
|
|
102
|
-
"./providers/
|
|
103
|
-
"types": "./dist/providers/
|
|
104
|
-
"import": "./dist/providers/
|
|
132
|
+
"./providers/revenuecat": {
|
|
133
|
+
"types": "./dist/providers/revenuecat/index.d.ts",
|
|
134
|
+
"import": "./dist/providers/revenuecat/index.js"
|
|
105
135
|
},
|
|
106
|
-
"./providers/
|
|
107
|
-
"types": "./dist/providers/
|
|
108
|
-
"import": "./dist/providers/
|
|
136
|
+
"./providers/sheets": {
|
|
137
|
+
"types": "./dist/providers/sheets/index.d.ts",
|
|
138
|
+
"import": "./dist/providers/sheets/index.js"
|
|
109
139
|
},
|
|
110
|
-
"./providers/
|
|
111
|
-
"types": "./dist/providers/
|
|
112
|
-
"import": "./dist/providers/
|
|
140
|
+
"./providers/slides": {
|
|
141
|
+
"types": "./dist/providers/slides/index.d.ts",
|
|
142
|
+
"import": "./dist/providers/slides/index.js"
|
|
113
143
|
},
|
|
114
|
-
"./providers/
|
|
115
|
-
"types": "./dist/providers/
|
|
116
|
-
"import": "./dist/providers/
|
|
144
|
+
"./providers/stripe": {
|
|
145
|
+
"types": "./dist/providers/stripe/index.d.ts",
|
|
146
|
+
"import": "./dist/providers/stripe/index.js"
|
|
117
147
|
},
|
|
118
148
|
"./providers/tithely": {
|
|
119
|
-
"types": "./dist/providers/tithely.d.ts",
|
|
120
|
-
"import": "./dist/providers/tithely.js"
|
|
149
|
+
"types": "./dist/providers/tithely/index.d.ts",
|
|
150
|
+
"import": "./dist/providers/tithely/index.js"
|
|
151
|
+
},
|
|
152
|
+
"./providers/vercel": {
|
|
153
|
+
"types": "./dist/providers/vercel/index.d.ts",
|
|
154
|
+
"import": "./dist/providers/vercel/index.js"
|
|
121
155
|
},
|
|
122
156
|
"./ui": {
|
|
123
157
|
"types": "./dist/ui.d.ts",
|
|
@@ -131,28 +165,27 @@
|
|
|
131
165
|
"types": "./dist/activity.d.ts",
|
|
132
166
|
"import": "./dist/activity.js"
|
|
133
167
|
},
|
|
134
|
-
"./auth/bearer": {
|
|
135
|
-
"types": "./dist/auth/bearer.d.ts",
|
|
136
|
-
"import": "./dist/auth/bearer.js"
|
|
137
|
-
},
|
|
138
|
-
"./artifacts": {
|
|
139
|
-
"types": "./dist/artifacts.d.ts",
|
|
140
|
-
"import": "./dist/artifacts.js"
|
|
141
|
-
},
|
|
142
168
|
"./auth/access-tokens": {
|
|
143
169
|
"types": "./dist/access-tokens.d.ts",
|
|
144
170
|
"import": "./dist/access-tokens.js"
|
|
171
|
+
},
|
|
172
|
+
"./worker": {
|
|
173
|
+
"types": "./dist/worker.d.ts",
|
|
174
|
+
"import": "./dist/worker.js"
|
|
145
175
|
}
|
|
146
176
|
},
|
|
147
177
|
"scripts": {
|
|
148
178
|
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
149
179
|
"build:operator-ui": "node scripts/build-operator-ui.mjs",
|
|
150
180
|
"check:operator-ui": "node scripts/build-operator-ui.mjs --check",
|
|
151
|
-
"
|
|
181
|
+
"check:clerk-sdk": "node scripts/build-clerk-sdk.mjs --check",
|
|
182
|
+
"build": "npm run providers:generate && npm run clean && tsc -p tsconfig.build.json && node scripts/prune-declarations.mjs",
|
|
152
183
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.operator-ui.json --noEmit",
|
|
153
184
|
"test": "vitest run",
|
|
154
185
|
"test:browser:install": "playwright install chromium",
|
|
155
186
|
"test:browser": "playwright test",
|
|
187
|
+
"test:browser:snapshots": "node scripts/update-operator-snapshots.mjs",
|
|
188
|
+
"pretest:browser:snapshots": "npm run build:operator-ui",
|
|
156
189
|
"test:node": "vitest run --project node",
|
|
157
190
|
"test:workers": "vitest run --project workers",
|
|
158
191
|
"check:docs": "node scripts/check-doc-links.mjs",
|
|
@@ -170,15 +203,33 @@
|
|
|
170
203
|
"eval:smoke": "tsx eval/run-smoke.ts",
|
|
171
204
|
"eval:perf": "tsx eval/run-perf.ts",
|
|
172
205
|
"eval:report": "tsx eval/report.ts",
|
|
173
|
-
"check": "npm run check:docs && npm run check:operator-ui && npm run check:
|
|
206
|
+
"check:core": "npm run format:check && npm run check:providers-generated && npm run check:docs && npm run check:changes && npm run check:operator-ui && npm run check:clerk-sdk && npm run check:lint && npm run check:unused && npm run typecheck && npm run test && npm run build && npm run check:declarations && npm run check:bundle && npm run check:examples",
|
|
207
|
+
"check:fast": "node scripts/check-fast.mjs",
|
|
208
|
+
"check": "npm run check:core && npm run test:browser",
|
|
174
209
|
"release:check": "npm run check && npm run check:security && npm run check:package",
|
|
175
|
-
"prepack": "npm run check"
|
|
210
|
+
"prepack": "npm run check",
|
|
211
|
+
"check:changes": "node scripts/changelog.mjs --check && node scripts/check-node-suites.mjs && node --test scripts/changelog.test.mjs",
|
|
212
|
+
"changelog:assemble": "node scripts/changelog.mjs",
|
|
213
|
+
"providers:generate": "tsx scripts/generate-providers.mjs",
|
|
214
|
+
"check:providers-generated": "tsx scripts/generate-providers.mjs --check",
|
|
215
|
+
"prebuild": "node scripts/generate-version.mjs && npm run build:operator-ui",
|
|
216
|
+
"pretest": "node scripts/generate-version.mjs && npm run build:operator-ui",
|
|
217
|
+
"pretest:node": "node scripts/generate-version.mjs && npm run build:operator-ui",
|
|
218
|
+
"pretest:workers": "node scripts/generate-version.mjs && npm run build:operator-ui",
|
|
219
|
+
"pretest:browser": "npm run build:operator-ui",
|
|
220
|
+
"pretypecheck": "node scripts/generate-version.mjs && npm run build:operator-ui",
|
|
221
|
+
"precheck:bundle": "npm run build:operator-ui",
|
|
222
|
+
"precheck:fast": "npm run check:operator-ui",
|
|
223
|
+
"eval:regrade": "tsx eval/regrade.ts",
|
|
224
|
+
"format": "oxfmt --write .",
|
|
225
|
+
"format:check": "oxfmt --check ."
|
|
176
226
|
},
|
|
177
227
|
"dependencies": {
|
|
178
228
|
"@cfworker/json-schema": "^4.1.1",
|
|
179
|
-
"@modelcontextprotocol/client": "2.
|
|
180
|
-
"@modelcontextprotocol/server": "2.
|
|
181
|
-
"
|
|
229
|
+
"@modelcontextprotocol/client": "2.3.1",
|
|
230
|
+
"@modelcontextprotocol/server": "2.3.1",
|
|
231
|
+
"acorn": "^8.19.0",
|
|
232
|
+
"effect": "^4.0.0",
|
|
182
233
|
"zod": "^4.4.3"
|
|
183
234
|
},
|
|
184
235
|
"peerDependencies": {
|
|
@@ -198,17 +249,32 @@
|
|
|
198
249
|
}
|
|
199
250
|
},
|
|
200
251
|
"devDependencies": {
|
|
201
|
-
"@clerk/backend": "
|
|
252
|
+
"@clerk/backend": "3.12.0",
|
|
202
253
|
"@cloudflare/codemode": "^0.5.0",
|
|
203
254
|
"@cloudflare/vitest-pool-workers": "^0.18.8",
|
|
204
255
|
"@cloudflare/workers-types": "^4.20250101.0 || ^5.0.0",
|
|
256
|
+
"@fontsource-variable/inter": "^5.3.0",
|
|
205
257
|
"@playwright/test": "^1.62.0",
|
|
258
|
+
"@radix-ui/react-dialog": "^1.2.0",
|
|
259
|
+
"@radix-ui/react-slot": "^1.4.0",
|
|
260
|
+
"@radix-ui/react-tabs": "^1.1.22",
|
|
261
|
+
"@tailwindcss/node": "^4.3.3",
|
|
262
|
+
"@tailwindcss/oxide": "^4.3.3",
|
|
263
|
+
"@tanstack/react-query": "^5.104.1",
|
|
264
|
+
"@tanstack/react-router": "^1.170.41",
|
|
265
|
+
"@tanstack/react-table": "^8.21.3",
|
|
206
266
|
"@types/node": "^22.0.0",
|
|
267
|
+
"@types/react": "^19.3.0",
|
|
268
|
+
"@types/react-dom": "^19.3.0",
|
|
269
|
+
"cmdk": "^1.1.1",
|
|
207
270
|
"esbuild": "^0.28.0",
|
|
208
271
|
"knip": "^6.29.0",
|
|
272
|
+
"oxfmt": "0.72.0",
|
|
209
273
|
"oxlint": "^1.76.0",
|
|
210
|
-
"preact": "^10.29.8",
|
|
211
274
|
"quickjs-emscripten": "^0.32.0",
|
|
275
|
+
"react": "^19.3.0",
|
|
276
|
+
"react-dom": "^19.3.0",
|
|
277
|
+
"tailwindcss": "^4.3.3",
|
|
212
278
|
"tsx": "^4.23.1",
|
|
213
279
|
"typescript": "^5.9.3",
|
|
214
280
|
"vitest": "^4.1.6",
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
# of source control:
|
|
5
|
-
# node -e "console.log(crypto.randomBytes(32).toString('base64url'))"
|
|
1
|
+
# Client/doctor credential only. Provision a stored cta_ token with the trusted
|
|
2
|
+
# local command in README.md. This variable never configures server auth and
|
|
3
|
+
# is not passed to the container. An empty database refuses all machine clients.
|
|
6
4
|
CONNECTA_TOKEN=
|
|
7
5
|
|
|
8
6
|
# Optional. Defaults to 8787. Compose publishes this port on the host too.
|
|
@@ -13,30 +11,31 @@ PORT=8787
|
|
|
13
11
|
# <PUBLIC_URL>/oauth/callback/<connectorId>. Defaults to http://localhost:<PORT>.
|
|
14
12
|
PUBLIC_URL=
|
|
15
13
|
|
|
16
|
-
# Optional.
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
#
|
|
20
|
-
|
|
14
|
+
# Optional. The one SQLite file that holds every piece of state: downstream
|
|
15
|
+
# OAuth grants, sealed credentials, catalogs, access tokens, and activity.
|
|
16
|
+
# Defaults to ./.connecta.sqlite locally and /data/connecta.sqlite in the
|
|
17
|
+
# container — keep the container path under /data so state lands on the named
|
|
18
|
+
# volume and survives a rebuild.
|
|
19
|
+
CONNECTA_DATABASE=
|
|
21
20
|
|
|
22
|
-
# ---
|
|
23
|
-
# Each
|
|
24
|
-
#
|
|
21
|
+
# --- Optional modules ---------------------------------------------------
|
|
22
|
+
# Each switches on the matching module in src/connecta.config.ts when set and
|
|
23
|
+
# leaves it off when empty. Nothing here needs a source edit.
|
|
25
24
|
|
|
26
|
-
# Operator sign-in with Clerk. Only a signed-in operator
|
|
27
|
-
#
|
|
28
|
-
# Also run `npm install @clerk/backend` — it is an optional peer.
|
|
25
|
+
# Operator sign-in with Clerk. Set both, or neither. Only a signed-in operator
|
|
26
|
+
# may write a credential; machine access tokens grant no interactive authority.
|
|
29
27
|
CLERK_PUBLISHABLE_KEY=
|
|
30
28
|
CLERK_SECRET_KEY=
|
|
31
29
|
|
|
32
30
|
# Credential vault. Base64-encoded 32-byte AES key encrypting the values an
|
|
33
31
|
# operator saves inside a connection on /. Generate one with:
|
|
34
32
|
# node -e "console.log(crypto.randomBytes(32).toString('base64'))"
|
|
35
|
-
# Keep it here or in a secret store — never in the
|
|
33
|
+
# Keep it here or in a secret store — never in the database it protects, and
|
|
36
34
|
# never in source control. Losing it makes stored credentials unreadable.
|
|
37
35
|
CONNECTA_CREDENTIAL_KEY=
|
|
38
36
|
|
|
39
|
-
# Payload-free activity history
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
|
|
37
|
+
# Payload-free activity history at /activity, in the database above. Set to
|
|
38
|
+
# "on". Rows older than 90 days are pruned as new ones are written; change
|
|
39
|
+
# `retentionDays` in src/connecta.config.ts to keep more or less.
|
|
40
|
+
CONNECTA_ACTIVITY=
|
|
41
|
+
|
package/templates/node/AGENTS.md
CHANGED
|
@@ -2,36 +2,40 @@
|
|
|
2
2
|
|
|
3
3
|
This repository is deployment configuration, not a copy of Connecta itself.
|
|
4
4
|
|
|
5
|
-
- Edit `src/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
- Edit `src/connecta.config.ts` for connectors, authentication, storage, public
|
|
6
|
+
URL, and optional modules. `src/index.ts` only starts it.
|
|
7
|
+
- Keep `executor: quickJsExecutor()` for the prescribed six-tool code-first
|
|
8
|
+
surface. Root and named pools default to `trust: "read-only"`: programs
|
|
9
|
+
may read, and writes use `call_destructive_tool`. Explicit `trusted` pools
|
|
10
|
+
also permit program writes and annotate `execute_code` as a write. Approval
|
|
11
|
+
belongs to the MCP host. Do not configure the removed `execute.approval`.
|
|
10
12
|
- Keep credentials in environment variables or an external secret store.
|
|
11
|
-
Never commit `.env`, `.connecta
|
|
13
|
+
Never commit `.env`, `.connecta.sqlite` (and its `-wal`/`-shm` files),
|
|
12
14
|
tokens, or credential values.
|
|
13
15
|
- Add application logic only inside deliberate `api()` connector handlers.
|
|
14
16
|
Do not copy or modify Connecta package internals here.
|
|
15
17
|
- Prefer `api()` when the agent must see an exact reviewed capability surface;
|
|
16
18
|
`remoteMcp()` follows the downstream server's evolving tool catalog.
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
Follow README "Select optional modules". Auth management requires explicit
|
|
19
|
+
- Optional modules (Clerk sign-in, credential vault, activity history) are type-checked code in `src/connecta.config.ts`, switched on by
|
|
20
|
+
their environment variables. Follow README "Select optional modules". Auth management requires explicit
|
|
20
21
|
`credentialAdministration` or `personalConnection` permissions; visibility
|
|
21
|
-
alone never grants it.
|
|
22
|
-
|
|
23
|
-
`
|
|
22
|
+
alone never grants it. Clerk supplies human identity; `cta_` access tokens cover machine clients.
|
|
23
|
+
Keep `accessTokens(storage)` installed even before the first token exists.
|
|
24
|
+
Bootstrap machines with `npm run provision-token -- "machine-name"` against
|
|
25
|
+
the same database the server uses. `CONNECTA_TOKEN` is only for clients and
|
|
26
|
+
doctor; never add a configured static bearer or an open startup mode.
|
|
27
|
+
All state, activity included, lives in the one SQLite file `CONNECTA_DATABASE`
|
|
28
|
+
names, through `@zackbart/connecta/sqlite`.
|
|
24
29
|
- Brand the operator UI in `operatorUi({ branding })`: product and owner names,
|
|
25
30
|
description, favicon, and `theme` (`accent`, `radius`, `fontFamily`,
|
|
26
31
|
`monoFamily`, `colorScheme`). Ask the deployment's owner for their brand
|
|
27
|
-
rather than leaving the default.
|
|
28
|
-
|
|
29
|
-
modules" covers the rest.
|
|
32
|
+
rather than leaving the default. README "Select optional modules" shows the
|
|
33
|
+
shape.
|
|
30
34
|
- Run `npm run typecheck` after configuration changes. With the server running,
|
|
31
35
|
run `CONNECTA_TOKEN=... npm run doctor` before calling setup complete.
|
|
32
|
-
- `Dockerfile` and `docker-compose.yml` containerize
|
|
36
|
+
- `Dockerfile` and `docker-compose.yml` containerize _this_ source; they are
|
|
33
37
|
the same deployment, not a second one. Configuration belongs in `.env` and
|
|
34
|
-
`src/
|
|
38
|
+
`src/connecta.config.ts`, never in a divergent container entrypoint.
|
|
35
39
|
- Moving this deployment to a newer Connecta is its own procedure, and it is
|
|
36
40
|
not a re-`init` — `connecta init` refuses to merge into an existing path on
|
|
37
41
|
purpose. Bump the exact `@zackbart/connecta` pin in `package.json`, then read
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
# image installs @zackbart/connecta from the registry exactly like any other
|
|
3
3
|
# consumer, so nothing here depends on the Connecta repository.
|
|
4
4
|
#
|
|
5
|
-
#
|
|
5
|
+
# Provision a stored machine token on the volume first; README.md gives the
|
|
6
|
+
# exact build, provisioning, and startup commands. Empty storage is fail-closed.
|
|
6
7
|
FROM node:22-slim
|
|
7
8
|
|
|
8
9
|
WORKDIR /app
|
|
@@ -32,10 +33,7 @@ USER node
|
|
|
32
33
|
|
|
33
34
|
ENV NODE_ENV=production
|
|
34
35
|
ENV PORT=8787
|
|
35
|
-
ENV
|
|
36
|
-
# Read only once the activity block in src/index.ts is uncommented; defaulted
|
|
37
|
-
# here so history lands on the volume rather than inside the container layer.
|
|
38
|
-
ENV CONNECTA_ACTIVITY_FILE=/data/connecta-activity.jsonl
|
|
36
|
+
ENV CONNECTA_DATABASE=/data/connecta.sqlite
|
|
39
37
|
EXPOSE 8787
|
|
40
38
|
|
|
41
39
|
# /health is always open, so the probe never carries the bearer token and
|