@zackbart/connecta 0.28.0 → 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 +961 -5
- package/README.md +62 -39
- 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 +1632 -1509
- 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 +526 -0
- 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 +220 -0
- package/dist/connectors/api-connector.js +214 -0
- package/dist/connectors/api.d.ts +8 -71
- package/dist/connectors/api.js +13 -99
- package/dist/connectors/guarded-fetch.d.ts +144 -0
- package/dist/connectors/guarded-fetch.js +108 -25
- 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 +1780 -351
- 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 +25 -257
- 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-partition.js +17 -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/index.d.ts +43 -0
- package/dist/providers/basecamp/index.js +997 -0
- package/dist/providers/basecamp/skill.generated.js +9 -0
- package/dist/providers/breeze/index.d.ts +34 -0
- package/dist/providers/breeze/index.js +1446 -0
- package/dist/providers/breeze/skill.generated.js +9 -0
- package/dist/providers/ccb/index.d.ts +103 -0
- package/dist/providers/ccb/index.js +1725 -0
- 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/index.d.ts +60 -0
- package/dist/providers/overflow/index.js +1535 -0
- package/dist/providers/overflow/skill.generated.js +8 -0
- package/dist/providers/planning-center/index.d.ts +59 -0
- package/dist/providers/planning-center/index.js +2199 -0
- 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/index.d.ts +49 -0
- package/dist/providers/tithely/index.js +1003 -0
- 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 +136 -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 +665 -230
- package/documentation/auth.md +962 -458
- 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 +125 -35
- 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/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,33 +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
|
+
},
|
|
80
|
+
"./providers/breeze": {
|
|
81
|
+
"types": "./dist/providers/breeze/index.d.ts",
|
|
82
|
+
"import": "./dist/providers/breeze/index.js"
|
|
83
|
+
},
|
|
84
|
+
"./providers/ccb": {
|
|
85
|
+
"types": "./dist/providers/ccb/index.d.ts",
|
|
86
|
+
"import": "./dist/providers/ccb/index.js"
|
|
87
|
+
},
|
|
70
88
|
"./providers/cloudflare": {
|
|
71
|
-
"types": "./dist/providers/cloudflare.d.ts",
|
|
72
|
-
"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"
|
|
73
111
|
},
|
|
74
112
|
"./providers/linear": {
|
|
75
|
-
"types": "./dist/providers/linear.d.ts",
|
|
76
|
-
"import": "./dist/providers/linear.js"
|
|
113
|
+
"types": "./dist/providers/linear/index.d.ts",
|
|
114
|
+
"import": "./dist/providers/linear/index.js"
|
|
77
115
|
},
|
|
78
116
|
"./providers/mixpanel": {
|
|
79
|
-
"types": "./dist/providers/mixpanel.d.ts",
|
|
80
|
-
"import": "./dist/providers/mixpanel.js"
|
|
117
|
+
"types": "./dist/providers/mixpanel/index.d.ts",
|
|
118
|
+
"import": "./dist/providers/mixpanel/index.js"
|
|
81
119
|
},
|
|
82
120
|
"./providers/notion": {
|
|
83
|
-
"types": "./dist/providers/notion.d.ts",
|
|
84
|
-
"import": "./dist/providers/notion.js"
|
|
121
|
+
"types": "./dist/providers/notion/index.d.ts",
|
|
122
|
+
"import": "./dist/providers/notion/index.js"
|
|
123
|
+
},
|
|
124
|
+
"./providers/overflow": {
|
|
125
|
+
"types": "./dist/providers/overflow/index.d.ts",
|
|
126
|
+
"import": "./dist/providers/overflow/index.js"
|
|
127
|
+
},
|
|
128
|
+
"./providers/planning-center": {
|
|
129
|
+
"types": "./dist/providers/planning-center/index.d.ts",
|
|
130
|
+
"import": "./dist/providers/planning-center/index.js"
|
|
85
131
|
},
|
|
86
132
|
"./providers/revenuecat": {
|
|
87
|
-
"types": "./dist/providers/revenuecat.d.ts",
|
|
88
|
-
"import": "./dist/providers/revenuecat.js"
|
|
133
|
+
"types": "./dist/providers/revenuecat/index.d.ts",
|
|
134
|
+
"import": "./dist/providers/revenuecat/index.js"
|
|
135
|
+
},
|
|
136
|
+
"./providers/sheets": {
|
|
137
|
+
"types": "./dist/providers/sheets/index.d.ts",
|
|
138
|
+
"import": "./dist/providers/sheets/index.js"
|
|
139
|
+
},
|
|
140
|
+
"./providers/slides": {
|
|
141
|
+
"types": "./dist/providers/slides/index.d.ts",
|
|
142
|
+
"import": "./dist/providers/slides/index.js"
|
|
89
143
|
},
|
|
90
144
|
"./providers/stripe": {
|
|
91
|
-
"types": "./dist/providers/stripe.d.ts",
|
|
92
|
-
"import": "./dist/providers/stripe.js"
|
|
145
|
+
"types": "./dist/providers/stripe/index.d.ts",
|
|
146
|
+
"import": "./dist/providers/stripe/index.js"
|
|
147
|
+
},
|
|
148
|
+
"./providers/tithely": {
|
|
149
|
+
"types": "./dist/providers/tithely/index.d.ts",
|
|
150
|
+
"import": "./dist/providers/tithely/index.js"
|
|
93
151
|
},
|
|
94
152
|
"./providers/vercel": {
|
|
95
|
-
"types": "./dist/providers/vercel.d.ts",
|
|
96
|
-
"import": "./dist/providers/vercel.js"
|
|
153
|
+
"types": "./dist/providers/vercel/index.d.ts",
|
|
154
|
+
"import": "./dist/providers/vercel/index.js"
|
|
97
155
|
},
|
|
98
156
|
"./ui": {
|
|
99
157
|
"types": "./dist/ui.d.ts",
|
|
@@ -107,28 +165,27 @@
|
|
|
107
165
|
"types": "./dist/activity.d.ts",
|
|
108
166
|
"import": "./dist/activity.js"
|
|
109
167
|
},
|
|
110
|
-
"./auth/bearer": {
|
|
111
|
-
"types": "./dist/auth/bearer.d.ts",
|
|
112
|
-
"import": "./dist/auth/bearer.js"
|
|
113
|
-
},
|
|
114
|
-
"./artifacts": {
|
|
115
|
-
"types": "./dist/artifacts.d.ts",
|
|
116
|
-
"import": "./dist/artifacts.js"
|
|
117
|
-
},
|
|
118
168
|
"./auth/access-tokens": {
|
|
119
169
|
"types": "./dist/access-tokens.d.ts",
|
|
120
170
|
"import": "./dist/access-tokens.js"
|
|
171
|
+
},
|
|
172
|
+
"./worker": {
|
|
173
|
+
"types": "./dist/worker.d.ts",
|
|
174
|
+
"import": "./dist/worker.js"
|
|
121
175
|
}
|
|
122
176
|
},
|
|
123
177
|
"scripts": {
|
|
124
178
|
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
125
179
|
"build:operator-ui": "node scripts/build-operator-ui.mjs",
|
|
126
180
|
"check:operator-ui": "node scripts/build-operator-ui.mjs --check",
|
|
127
|
-
"
|
|
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",
|
|
128
183
|
"typecheck": "tsc -p tsconfig.json --noEmit && tsc -p tsconfig.operator-ui.json --noEmit",
|
|
129
184
|
"test": "vitest run",
|
|
130
185
|
"test:browser:install": "playwright install chromium",
|
|
131
186
|
"test:browser": "playwright test",
|
|
187
|
+
"test:browser:snapshots": "node scripts/update-operator-snapshots.mjs",
|
|
188
|
+
"pretest:browser:snapshots": "npm run build:operator-ui",
|
|
132
189
|
"test:node": "vitest run --project node",
|
|
133
190
|
"test:workers": "vitest run --project workers",
|
|
134
191
|
"check:docs": "node scripts/check-doc-links.mjs",
|
|
@@ -146,15 +203,33 @@
|
|
|
146
203
|
"eval:smoke": "tsx eval/run-smoke.ts",
|
|
147
204
|
"eval:perf": "tsx eval/run-perf.ts",
|
|
148
205
|
"eval:report": "tsx eval/report.ts",
|
|
149
|
-
"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",
|
|
150
209
|
"release:check": "npm run check && npm run check:security && npm run check:package",
|
|
151
|
-
"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 ."
|
|
152
226
|
},
|
|
153
227
|
"dependencies": {
|
|
154
228
|
"@cfworker/json-schema": "^4.1.1",
|
|
155
|
-
"@modelcontextprotocol/client": "2.
|
|
156
|
-
"@modelcontextprotocol/server": "2.
|
|
157
|
-
"
|
|
229
|
+
"@modelcontextprotocol/client": "2.3.1",
|
|
230
|
+
"@modelcontextprotocol/server": "2.3.1",
|
|
231
|
+
"acorn": "^8.19.0",
|
|
232
|
+
"effect": "^4.0.0",
|
|
158
233
|
"zod": "^4.4.3"
|
|
159
234
|
},
|
|
160
235
|
"peerDependencies": {
|
|
@@ -174,17 +249,32 @@
|
|
|
174
249
|
}
|
|
175
250
|
},
|
|
176
251
|
"devDependencies": {
|
|
177
|
-
"@clerk/backend": "
|
|
252
|
+
"@clerk/backend": "3.12.0",
|
|
178
253
|
"@cloudflare/codemode": "^0.5.0",
|
|
179
254
|
"@cloudflare/vitest-pool-workers": "^0.18.8",
|
|
180
255
|
"@cloudflare/workers-types": "^4.20250101.0 || ^5.0.0",
|
|
256
|
+
"@fontsource-variable/inter": "^5.3.0",
|
|
181
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",
|
|
182
266
|
"@types/node": "^22.0.0",
|
|
267
|
+
"@types/react": "^19.3.0",
|
|
268
|
+
"@types/react-dom": "^19.3.0",
|
|
269
|
+
"cmdk": "^1.1.1",
|
|
183
270
|
"esbuild": "^0.28.0",
|
|
184
271
|
"knip": "^6.29.0",
|
|
272
|
+
"oxfmt": "0.72.0",
|
|
185
273
|
"oxlint": "^1.76.0",
|
|
186
|
-
"preact": "^10.29.8",
|
|
187
274
|
"quickjs-emscripten": "^0.32.0",
|
|
275
|
+
"react": "^19.3.0",
|
|
276
|
+
"react-dom": "^19.3.0",
|
|
277
|
+
"tailwindcss": "^4.3.3",
|
|
188
278
|
"tsx": "^4.23.1",
|
|
189
279
|
"typescript": "^5.9.3",
|
|
190
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
|