@contractspec/example.integration-supabase 1.57.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.
Files changed (44) hide show
  1. package/.turbo/turbo-build$colon$bundle.log +42 -0
  2. package/.turbo/turbo-build.log +40 -0
  3. package/CHANGELOG.md +25 -0
  4. package/LICENSE +21 -0
  5. package/README.md +38 -0
  6. package/dist/blueprint.d.ts +7 -0
  7. package/dist/blueprint.d.ts.map +1 -0
  8. package/dist/blueprint.js +75 -0
  9. package/dist/blueprint.js.map +1 -0
  10. package/dist/connection.sample.d.ts +9 -0
  11. package/dist/connection.sample.d.ts.map +1 -0
  12. package/dist/connection.sample.js +50 -0
  13. package/dist/connection.sample.js.map +1 -0
  14. package/dist/docs/index.d.ts +1 -0
  15. package/dist/docs/index.js +1 -0
  16. package/dist/docs/integration-supabase.docblock.d.ts +1 -0
  17. package/dist/docs/integration-supabase.docblock.js +60 -0
  18. package/dist/docs/integration-supabase.docblock.js.map +1 -0
  19. package/dist/example.d.ts +7 -0
  20. package/dist/example.d.ts.map +1 -0
  21. package/dist/example.js +46 -0
  22. package/dist/example.js.map +1 -0
  23. package/dist/index.d.ts +6 -0
  24. package/dist/index.js +8 -0
  25. package/dist/runtime.sample.d.ts +16 -0
  26. package/dist/runtime.sample.d.ts.map +1 -0
  27. package/dist/runtime.sample.js +43 -0
  28. package/dist/runtime.sample.js.map +1 -0
  29. package/dist/tenant.d.ts +7 -0
  30. package/dist/tenant.d.ts.map +1 -0
  31. package/dist/tenant.js +40 -0
  32. package/dist/tenant.js.map +1 -0
  33. package/package.json +64 -0
  34. package/src/blueprint.ts +68 -0
  35. package/src/connection.sample.ts +52 -0
  36. package/src/docs/index.ts +1 -0
  37. package/src/docs/integration-supabase.docblock.ts +58 -0
  38. package/src/example.ts +32 -0
  39. package/src/index.ts +6 -0
  40. package/src/runtime.sample.ts +53 -0
  41. package/src/tenant.ts +41 -0
  42. package/tsconfig.json +9 -0
  43. package/tsconfig.tsbuildinfo +1 -0
  44. package/tsdown.config.js +6 -0
@@ -0,0 +1,42 @@
1
+ $ tsdown
2
+ ℹ tsdown v0.20.3 powered by rolldown v1.0.0-rc.3
3
+ ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/integration-supabase/tsdown.config.js
4
+ ℹ entry: src/blueprint.ts, src/connection.sample.ts, src/example.ts, src/index.ts, src/runtime.sample.ts, src/tenant.ts, src/docs/index.ts, src/docs/integration-supabase.docblock.ts
5
+ ℹ target: esnext
6
+ ℹ tsconfig: tsconfig.json
7
+ ℹ Build start
8
+ ℹ Cleaning 28 files
9
+ ℹ dist/docs/integration-supabase.docblock.js 2.34 kB │ gzip: 1.09 kB
10
+ ℹ dist/blueprint.js 1.84 kB │ gzip: 0.72 kB
11
+ ℹ dist/connection.sample.js 1.43 kB │ gzip: 0.50 kB
12
+ ℹ dist/tenant.js 1.11 kB │ gzip: 0.53 kB
13
+ ℹ dist/runtime.sample.js 1.07 kB │ gzip: 0.54 kB
14
+ ℹ dist/example.js 1.04 kB │ gzip: 0.54 kB
15
+ ℹ dist/index.js 0.56 kB │ gzip: 0.20 kB
16
+ ℹ dist/docs/index.js 0.04 kB │ gzip: 0.07 kB
17
+ ℹ dist/docs/integration-supabase.docblock.js.map 2.92 kB │ gzip: 1.30 kB
18
+ ℹ dist/blueprint.js.map 2.90 kB │ gzip: 1.05 kB
19
+ ℹ dist/runtime.sample.js.map 2.22 kB │ gzip: 0.94 kB
20
+ ℹ dist/connection.sample.js.map 2.19 kB │ gzip: 0.72 kB
21
+ ℹ dist/tenant.js.map 1.80 kB │ gzip: 0.81 kB
22
+ ℹ dist/example.js.map 1.51 kB │ gzip: 0.73 kB
23
+ ℹ dist/runtime.sample.d.ts.map 0.28 kB │ gzip: 0.19 kB
24
+ ℹ dist/connection.sample.d.ts.map 0.20 kB │ gzip: 0.15 kB
25
+ ℹ dist/example.d.ts.map 0.13 kB │ gzip: 0.13 kB
26
+ ℹ dist/blueprint.d.ts.map 0.12 kB │ gzip: 0.12 kB
27
+ ℹ dist/tenant.d.ts.map 0.11 kB │ gzip: 0.12 kB
28
+ ℹ dist/runtime.sample.d.ts 0.73 kB │ gzip: 0.32 kB
29
+ ℹ dist/index.d.ts 0.66 kB │ gzip: 0.21 kB
30
+ ℹ dist/connection.sample.d.ts 0.48 kB │ gzip: 0.21 kB
31
+ ℹ dist/blueprint.d.ts 0.26 kB │ gzip: 0.18 kB
32
+ ℹ dist/tenant.d.ts 0.26 kB │ gzip: 0.18 kB
33
+ ℹ dist/example.d.ts 0.25 kB │ gzip: 0.17 kB
34
+ ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
35
+ ℹ dist/docs/integration-supabase.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
36
+ ℹ 27 files, total: 26.47 kB
37
+ [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugins. Here is a breakdown:
38
+ - rolldown-plugin-dts:generate (65%)
39
+ - tsdown:external (32%)
40
+ See https://rolldown.rs/options/checks#plugintimings for more details.
41
+
42
+ ✔ Build complete in 16194ms
@@ -0,0 +1,40 @@
1
+ $ bun build:types && bun build:bundle
2
+ $ tsc --noEmit
3
+ $ tsdown
4
+ ℹ tsdown v0.20.3 powered by rolldown v1.0.0-rc.3
5
+ ℹ config file: /home/runner/work/contractspec/contractspec/packages/examples/integration-supabase/tsdown.config.js
6
+ ℹ entry: src/blueprint.ts, src/connection.sample.ts, src/example.ts, src/index.ts, src/runtime.sample.ts, src/tenant.ts, src/docs/index.ts, src/docs/integration-supabase.docblock.ts
7
+ ℹ target: esnext
8
+ ℹ tsconfig: tsconfig.json
9
+ ℹ Build start
10
+ ℹ dist/docs/integration-supabase.docblock.js 2.34 kB │ gzip: 1.09 kB
11
+ ℹ dist/blueprint.js 1.84 kB │ gzip: 0.72 kB
12
+ ℹ dist/connection.sample.js 1.43 kB │ gzip: 0.50 kB
13
+ ℹ dist/tenant.js 1.11 kB │ gzip: 0.53 kB
14
+ ℹ dist/runtime.sample.js 1.07 kB │ gzip: 0.54 kB
15
+ ℹ dist/example.js 1.04 kB │ gzip: 0.54 kB
16
+ ℹ dist/index.js 0.56 kB │ gzip: 0.20 kB
17
+ ℹ dist/docs/index.js 0.04 kB │ gzip: 0.07 kB
18
+ ℹ dist/docs/integration-supabase.docblock.js.map 2.92 kB │ gzip: 1.30 kB
19
+ ℹ dist/blueprint.js.map 2.90 kB │ gzip: 1.05 kB
20
+ ℹ dist/runtime.sample.js.map 2.22 kB │ gzip: 0.94 kB
21
+ ℹ dist/connection.sample.js.map 2.19 kB │ gzip: 0.72 kB
22
+ ℹ dist/tenant.js.map 1.80 kB │ gzip: 0.81 kB
23
+ ℹ dist/example.js.map 1.51 kB │ gzip: 0.73 kB
24
+ ℹ dist/runtime.sample.d.ts.map 0.28 kB │ gzip: 0.19 kB
25
+ ℹ dist/connection.sample.d.ts.map 0.20 kB │ gzip: 0.15 kB
26
+ ℹ dist/example.d.ts.map 0.13 kB │ gzip: 0.13 kB
27
+ ℹ dist/blueprint.d.ts.map 0.12 kB │ gzip: 0.12 kB
28
+ ℹ dist/tenant.d.ts.map 0.11 kB │ gzip: 0.12 kB
29
+ ℹ dist/runtime.sample.d.ts 0.73 kB │ gzip: 0.32 kB
30
+ ℹ dist/index.d.ts 0.66 kB │ gzip: 0.21 kB
31
+ ℹ dist/connection.sample.d.ts 0.48 kB │ gzip: 0.21 kB
32
+ ℹ dist/blueprint.d.ts 0.26 kB │ gzip: 0.18 kB
33
+ ℹ dist/tenant.d.ts 0.26 kB │ gzip: 0.18 kB
34
+ ℹ dist/example.d.ts 0.25 kB │ gzip: 0.17 kB
35
+ ℹ dist/docs/index.d.ts 0.01 kB │ gzip: 0.03 kB
36
+ ℹ dist/docs/integration-supabase.docblock.d.ts 0.01 kB │ gzip: 0.03 kB
37
+ ℹ 27 files, total: 26.47 kB
38
+ [PLUGIN_TIMINGS] Warning: Your build spent significant time in plugin `rolldown-plugin-dts:generate`. See https://rolldown.rs/options/checks#plugintimings for more details.
39
+
40
+ ✔ Build complete in 21963ms
package/CHANGELOG.md ADDED
@@ -0,0 +1,25 @@
1
+ # @contractspec/example.integration-supabase
2
+
3
+ ## 1.57.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 4651e06: Add Supabase and voice provider integrations with new runnable examples, and expose these providers across contracts, workspace tooling, and provider factory wiring.
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [8ecf3c1]
12
+ - Updated dependencies [47c48c2]
13
+ - Updated dependencies [a119963]
14
+ - Updated dependencies [4651e06]
15
+ - Updated dependencies [ad9d10a]
16
+ - Updated dependencies [11a5a05]
17
+ - @contractspec/lib.contracts@1.57.0
18
+ - @contractspec/integration.providers-impls@1.57.0
19
+ - @contractspec/integration.runtime@1.57.0
20
+
21
+ ## 1.56.1
22
+
23
+ ### Minor Changes
24
+
25
+ - Add Supabase integration example package with blueprint, tenant bindings, connection samples, and runtime usage.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Chaman Ventures, SASU
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,38 @@
1
+ ### Integration Example - Supabase Vector + Postgres
2
+
3
+ Website: https://contractspec.io/
4
+
5
+ This example shows how to wire two Supabase integrations together:
6
+
7
+ - `vectordb.supabase` for embedding storage and similarity search.
8
+ - `database.supabase` for SQL reads/writes and transactional workloads.
9
+
10
+ Included files:
11
+
12
+ - `blueprint.ts` - App blueprint with two integration slots (`primary-vector-db`, `primary-database`).
13
+ - `tenant.ts` - Tenant config binding both slots to concrete connections.
14
+ - `connection.sample.ts` - Sample `IntegrationConnection` records for both Supabase providers.
15
+ - `runtime.sample.ts` - Runtime sample using `IntegrationProviderFactory` to create and execute both providers.
16
+
17
+ ## Quick start
18
+
19
+ 1. Register integration specs (includes `vectordb.supabase` and `database.supabase`) from `createDefaultIntegrationSpecRegistry()`.
20
+ 2. Persist the sample connections from `connection.sample.ts` via the integrations CRUD flow.
21
+ 3. Publish the tenant config from `tenant.ts` and ensure slot bindings match your connection IDs.
22
+ 4. Use the runtime sample to upsert/search vectors and run SQL queries with the same Supabase project.
23
+
24
+ ## Secret payload format
25
+
26
+ Both connections expect a `databaseUrl` secret value.
27
+
28
+ ```json
29
+ {
30
+ "databaseUrl": "postgresql://postgres.<project-ref>:<password>@aws-0-<region>.pooler.supabase.com:6543/postgres"
31
+ }
32
+ ```
33
+
34
+ ## Notes
35
+
36
+ - Vector provider auto-creates pgvector extension/table/indexes when `createTableIfMissing=true`.
37
+ - Keep non-secret settings in `config`; store credentials only in `secretRef`.
38
+ - The runtime sample is intentionally framework-neutral so it can be reused in API apps, jobs, or workers.
@@ -0,0 +1,7 @@
1
+ import { AppBlueprintSpec } from "@contractspec/lib.contracts/app-config/spec";
2
+
3
+ //#region src/blueprint.d.ts
4
+ declare const supabaseKnowledgeBlueprint: AppBlueprintSpec;
5
+ //#endregion
6
+ export { supabaseKnowledgeBlueprint };
7
+ //# sourceMappingURL=blueprint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint.d.ts","names":[],"sources":["../src/blueprint.ts"],"mappings":";;;cAOa,0BAAA,EAA4B,gBAAA"}
@@ -0,0 +1,75 @@
1
+ import { OwnersEnum, StabilityEnum, TagsEnum } from "@contractspec/lib.contracts/ownership";
2
+
3
+ //#region src/blueprint.ts
4
+ const supabaseKnowledgeBlueprint = {
5
+ meta: {
6
+ key: "knowledge.supabase.dual-store",
7
+ version: "1.0.0",
8
+ appId: "knowledge-assistant",
9
+ title: "Knowledge Assistant - Supabase Dual Store",
10
+ description: "Blueprint that uses Supabase for both vector retrieval and SQL-backed analytics.",
11
+ domain: "knowledge",
12
+ owners: [OwnersEnum.PlatformCore],
13
+ tags: [
14
+ TagsEnum.Automation,
15
+ "knowledge",
16
+ "supabase",
17
+ "vector-db",
18
+ "database"
19
+ ],
20
+ stability: StabilityEnum.Experimental
21
+ },
22
+ capabilities: { enabled: [
23
+ {
24
+ key: "vector-db.search",
25
+ version: "1.0.0"
26
+ },
27
+ {
28
+ key: "vector-db.storage",
29
+ version: "1.0.0"
30
+ },
31
+ {
32
+ key: "database.sql",
33
+ version: "1.0.0"
34
+ }
35
+ ] },
36
+ integrationSlots: [{
37
+ slotId: "primary-vector-db",
38
+ requiredCategory: "vector-db",
39
+ allowedModes: ["managed", "byok"],
40
+ requiredCapabilities: [{
41
+ key: "vector-db.search",
42
+ version: "1.0.0"
43
+ }, {
44
+ key: "vector-db.storage",
45
+ version: "1.0.0"
46
+ }],
47
+ required: true,
48
+ description: "Primary semantic retrieval store for knowledge chunks."
49
+ }, {
50
+ slotId: "primary-database",
51
+ requiredCategory: "database",
52
+ allowedModes: ["managed", "byok"],
53
+ requiredCapabilities: [{
54
+ key: "database.sql",
55
+ version: "1.0.0"
56
+ }],
57
+ required: true,
58
+ description: "Primary SQL database for analytics and transactional reads."
59
+ }],
60
+ workflows: {
61
+ ingestKnowledge: {
62
+ key: "knowledge.ingest.supabase",
63
+ version: "1.0.0"
64
+ },
65
+ refreshMetrics: {
66
+ key: "knowledge.metrics.supabase",
67
+ version: "1.0.0"
68
+ }
69
+ },
70
+ notes: "Bind both slots to Supabase connections when you want shared infra for embeddings and SQL operations."
71
+ };
72
+
73
+ //#endregion
74
+ export { supabaseKnowledgeBlueprint };
75
+ //# sourceMappingURL=blueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blueprint.js","names":[],"sources":["../src/blueprint.ts"],"sourcesContent":["import type { AppBlueprintSpec } from '@contractspec/lib.contracts/app-config/spec';\nimport {\n OwnersEnum,\n StabilityEnum,\n TagsEnum,\n} from '@contractspec/lib.contracts/ownership';\n\nexport const supabaseKnowledgeBlueprint: AppBlueprintSpec = {\n meta: {\n key: 'knowledge.supabase.dual-store',\n version: '1.0.0',\n appId: 'knowledge-assistant',\n title: 'Knowledge Assistant - Supabase Dual Store',\n description:\n 'Blueprint that uses Supabase for both vector retrieval and SQL-backed analytics.',\n domain: 'knowledge',\n owners: [OwnersEnum.PlatformCore],\n tags: [\n TagsEnum.Automation,\n 'knowledge',\n 'supabase',\n 'vector-db',\n 'database',\n ],\n stability: StabilityEnum.Experimental,\n },\n capabilities: {\n enabled: [\n { key: 'vector-db.search', version: '1.0.0' },\n { key: 'vector-db.storage', version: '1.0.0' },\n { key: 'database.sql', version: '1.0.0' },\n ],\n },\n integrationSlots: [\n {\n slotId: 'primary-vector-db',\n requiredCategory: 'vector-db',\n allowedModes: ['managed', 'byok'],\n requiredCapabilities: [\n { key: 'vector-db.search', version: '1.0.0' },\n { key: 'vector-db.storage', version: '1.0.0' },\n ],\n required: true,\n description: 'Primary semantic retrieval store for knowledge chunks.',\n },\n {\n slotId: 'primary-database',\n requiredCategory: 'database',\n allowedModes: ['managed', 'byok'],\n requiredCapabilities: [{ key: 'database.sql', version: '1.0.0' }],\n required: true,\n description:\n 'Primary SQL database for analytics and transactional reads.',\n },\n ],\n workflows: {\n ingestKnowledge: {\n key: 'knowledge.ingest.supabase',\n version: '1.0.0',\n },\n refreshMetrics: {\n key: 'knowledge.metrics.supabase',\n version: '1.0.0',\n },\n },\n notes:\n 'Bind both slots to Supabase connections when you want shared infra for embeddings and SQL operations.',\n};\n"],"mappings":";;;AAOA,MAAa,6BAA+C;CAC1D,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,OAAO;EACP,aACE;EACF,QAAQ;EACR,QAAQ,CAAC,WAAW,aAAa;EACjC,MAAM;GACJ,SAAS;GACT;GACA;GACA;GACA;GACD;EACD,WAAW,cAAc;EAC1B;CACD,cAAc,EACZ,SAAS;EACP;GAAE,KAAK;GAAoB,SAAS;GAAS;EAC7C;GAAE,KAAK;GAAqB,SAAS;GAAS;EAC9C;GAAE,KAAK;GAAgB,SAAS;GAAS;EAC1C,EACF;CACD,kBAAkB,CAChB;EACE,QAAQ;EACR,kBAAkB;EAClB,cAAc,CAAC,WAAW,OAAO;EACjC,sBAAsB,CACpB;GAAE,KAAK;GAAoB,SAAS;GAAS,EAC7C;GAAE,KAAK;GAAqB,SAAS;GAAS,CAC/C;EACD,UAAU;EACV,aAAa;EACd,EACD;EACE,QAAQ;EACR,kBAAkB;EAClB,cAAc,CAAC,WAAW,OAAO;EACjC,sBAAsB,CAAC;GAAE,KAAK;GAAgB,SAAS;GAAS,CAAC;EACjE,UAAU;EACV,aACE;EACH,CACF;CACD,WAAW;EACT,iBAAiB;GACf,KAAK;GACL,SAAS;GACV;EACD,gBAAgB;GACd,KAAK;GACL,SAAS;GACV;EACF;CACD,OACE;CACH"}
@@ -0,0 +1,9 @@
1
+ import { IntegrationConnection } from "@contractspec/lib.contracts/integrations/connection";
2
+
3
+ //#region src/connection.sample.d.ts
4
+ declare const supabaseVectorConnection: IntegrationConnection;
5
+ declare const supabaseDatabaseConnection: IntegrationConnection;
6
+ declare const supabaseConnectionSamples: IntegrationConnection[];
7
+ //#endregion
8
+ export { supabaseConnectionSamples, supabaseDatabaseConnection, supabaseVectorConnection };
9
+ //# sourceMappingURL=connection.sample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.sample.d.ts","names":[],"sources":["../src/connection.sample.ts"],"mappings":";;;cAEa,wBAAA,EAA0B,qBAAA;AAAA,cAyB1B,0BAAA,EAA4B,qBAAA;AAAA,cAqB5B,yBAAA,EAA2B,qBAAA"}
@@ -0,0 +1,50 @@
1
+ //#region src/connection.sample.ts
2
+ const supabaseVectorConnection = {
3
+ meta: {
4
+ id: "conn-supabase-vector",
5
+ tenantId: "acme-knowledge",
6
+ integrationKey: "vectordb.supabase",
7
+ integrationVersion: "1.0.0",
8
+ label: "Supabase Vector Store",
9
+ environment: "production",
10
+ createdAt: "2026-02-06T00:00:00.000Z",
11
+ updatedAt: "2026-02-06T00:00:00.000Z"
12
+ },
13
+ ownershipMode: "managed",
14
+ config: {
15
+ schema: "public",
16
+ table: "contractspec_vectors",
17
+ createTableIfMissing: true,
18
+ distanceMetric: "cosine",
19
+ maxConnections: 5,
20
+ sslMode: "require"
21
+ },
22
+ secretProvider: "vault",
23
+ secretRef: "vault://integrations/acme-knowledge/conn-supabase-vector",
24
+ status: "connected"
25
+ };
26
+ const supabaseDatabaseConnection = {
27
+ meta: {
28
+ id: "conn-supabase-db",
29
+ tenantId: "acme-knowledge",
30
+ integrationKey: "database.supabase",
31
+ integrationVersion: "1.0.0",
32
+ label: "Supabase Postgres",
33
+ environment: "production",
34
+ createdAt: "2026-02-06T00:00:00.000Z",
35
+ updatedAt: "2026-02-06T00:00:00.000Z"
36
+ },
37
+ ownershipMode: "managed",
38
+ config: {
39
+ maxConnections: 10,
40
+ sslMode: "require"
41
+ },
42
+ secretProvider: "vault",
43
+ secretRef: "vault://integrations/acme-knowledge/conn-supabase-db",
44
+ status: "connected"
45
+ };
46
+ const supabaseConnectionSamples = [supabaseVectorConnection, supabaseDatabaseConnection];
47
+
48
+ //#endregion
49
+ export { supabaseConnectionSamples, supabaseDatabaseConnection, supabaseVectorConnection };
50
+ //# sourceMappingURL=connection.sample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.sample.js","names":[],"sources":["../src/connection.sample.ts"],"sourcesContent":["import type { IntegrationConnection } from '@contractspec/lib.contracts/integrations/connection';\n\nexport const supabaseVectorConnection: IntegrationConnection = {\n meta: {\n id: 'conn-supabase-vector',\n tenantId: 'acme-knowledge',\n integrationKey: 'vectordb.supabase',\n integrationVersion: '1.0.0',\n label: 'Supabase Vector Store',\n environment: 'production',\n createdAt: '2026-02-06T00:00:00.000Z',\n updatedAt: '2026-02-06T00:00:00.000Z',\n },\n ownershipMode: 'managed',\n config: {\n schema: 'public',\n table: 'contractspec_vectors',\n createTableIfMissing: true,\n distanceMetric: 'cosine',\n maxConnections: 5,\n sslMode: 'require',\n },\n secretProvider: 'vault',\n secretRef: 'vault://integrations/acme-knowledge/conn-supabase-vector',\n status: 'connected',\n};\n\nexport const supabaseDatabaseConnection: IntegrationConnection = {\n meta: {\n id: 'conn-supabase-db',\n tenantId: 'acme-knowledge',\n integrationKey: 'database.supabase',\n integrationVersion: '1.0.0',\n label: 'Supabase Postgres',\n environment: 'production',\n createdAt: '2026-02-06T00:00:00.000Z',\n updatedAt: '2026-02-06T00:00:00.000Z',\n },\n ownershipMode: 'managed',\n config: {\n maxConnections: 10,\n sslMode: 'require',\n },\n secretProvider: 'vault',\n secretRef: 'vault://integrations/acme-knowledge/conn-supabase-db',\n status: 'connected',\n};\n\nexport const supabaseConnectionSamples: IntegrationConnection[] = [\n supabaseVectorConnection,\n supabaseDatabaseConnection,\n];\n"],"mappings":";AAEA,MAAa,2BAAkD;CAC7D,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,gBAAgB;EAChB,oBAAoB;EACpB,OAAO;EACP,aAAa;EACb,WAAW;EACX,WAAW;EACZ;CACD,eAAe;CACf,QAAQ;EACN,QAAQ;EACR,OAAO;EACP,sBAAsB;EACtB,gBAAgB;EAChB,gBAAgB;EAChB,SAAS;EACV;CACD,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACT;AAED,MAAa,6BAAoD;CAC/D,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,gBAAgB;EAChB,oBAAoB;EACpB,OAAO;EACP,aAAa;EACb,WAAW;EACX,WAAW;EACZ;CACD,eAAe;CACf,QAAQ;EACN,gBAAgB;EAChB,SAAS;EACV;CACD,gBAAgB;CAChB,WAAW;CACX,QAAQ;CACT;AAED,MAAa,4BAAqD,CAChE,0BACA,2BACD"}
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1 @@
1
+ import "./integration-supabase.docblock.js";
@@ -0,0 +1 @@
1
+ export { };
@@ -0,0 +1,60 @@
1
+ import { registerDocBlocks } from "@contractspec/lib.contracts/docs";
2
+
3
+ //#region src/docs/integration-supabase.docblock.ts
4
+ registerDocBlocks([{
5
+ id: "docs.examples.integration-supabase",
6
+ title: "Integration Example - Supabase Vector + Postgres",
7
+ summary: "Reference example wiring Supabase vector and SQL integrations in one tenant configuration.",
8
+ kind: "reference",
9
+ visibility: "public",
10
+ route: "/docs/examples/integration-supabase",
11
+ tags: [
12
+ "supabase",
13
+ "vector-db",
14
+ "database",
15
+ "integration",
16
+ "example"
17
+ ],
18
+ body: `## What this example includes
19
+ - A blueprint declaring two required integration slots:
20
+ - \`primary-vector-db\` bound to \`vectordb.supabase\`
21
+ - \`primary-database\` bound to \`database.supabase\`
22
+ - A tenant config binding both slots.
23
+ - Connection samples with clear \`config\` vs \`secretRef\` separation.
24
+ - A runtime sample that upserts/searches vectors and executes SQL queries.
25
+
26
+ ## Why this pattern
27
+ - Keeps integration concerns explicit and auditable in app-config.
28
+ - Enables shared Supabase infrastructure for retrieval + analytics.
29
+ - Preserves secret management boundaries (no credentials in config/spec).`
30
+ }, {
31
+ id: "docs.examples.integration-supabase.usage",
32
+ title: "Supabase Integration Example - Usage",
33
+ summary: "Step-by-step usage of the Supabase dual-store integration example.",
34
+ kind: "usage",
35
+ visibility: "public",
36
+ route: "/docs/examples/integration-supabase/usage",
37
+ tags: ["supabase", "usage"],
38
+ body: `## Usage
39
+ 1) Register integration specs from \`createDefaultIntegrationSpecRegistry()\`.
40
+ 2) Persist both sample connections from \`connection.sample.ts\`.
41
+ 3) Publish the tenant config from \`tenant.ts\` with matching \`connectionId\` values.
42
+ 4) Use \`runSupabaseKnowledgeRuntime(...)\` to execute vector and SQL calls through \`IntegrationProviderFactory\`.
43
+
44
+ ## Secret payload
45
+ Store the following payload in your secret provider target for each connection:
46
+
47
+ \`\`\`json
48
+ {
49
+ "databaseUrl": "postgresql://postgres.<project-ref>:<password>@aws-0-<region>.pooler.supabase.com:6543/postgres"
50
+ }
51
+ \`\`\`
52
+
53
+ ## Guardrails
54
+ - Never place credentials in \`config\` or source control.
55
+ - Keep operational SQL behind explicit workflows/operations.
56
+ - Restrict DB credentials to least-privilege roles whenever possible.`
57
+ }]);
58
+
59
+ //#endregion
60
+ //# sourceMappingURL=integration-supabase.docblock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integration-supabase.docblock.js","names":[],"sources":["../../src/docs/integration-supabase.docblock.ts"],"sourcesContent":["import type { DocBlock } from '@contractspec/lib.contracts/docs';\nimport { registerDocBlocks } from '@contractspec/lib.contracts/docs';\n\nconst blocks: DocBlock[] = [\n {\n id: 'docs.examples.integration-supabase',\n title: 'Integration Example - Supabase Vector + Postgres',\n summary:\n 'Reference example wiring Supabase vector and SQL integrations in one tenant configuration.',\n kind: 'reference',\n visibility: 'public',\n route: '/docs/examples/integration-supabase',\n tags: ['supabase', 'vector-db', 'database', 'integration', 'example'],\n body: `## What this example includes\n- A blueprint declaring two required integration slots:\n - \\`primary-vector-db\\` bound to \\`vectordb.supabase\\`\n - \\`primary-database\\` bound to \\`database.supabase\\`\n- A tenant config binding both slots.\n- Connection samples with clear \\`config\\` vs \\`secretRef\\` separation.\n- A runtime sample that upserts/searches vectors and executes SQL queries.\n\n## Why this pattern\n- Keeps integration concerns explicit and auditable in app-config.\n- Enables shared Supabase infrastructure for retrieval + analytics.\n- Preserves secret management boundaries (no credentials in config/spec).`,\n },\n {\n id: 'docs.examples.integration-supabase.usage',\n title: 'Supabase Integration Example - Usage',\n summary:\n 'Step-by-step usage of the Supabase dual-store integration example.',\n kind: 'usage',\n visibility: 'public',\n route: '/docs/examples/integration-supabase/usage',\n tags: ['supabase', 'usage'],\n body: `## Usage\n1) Register integration specs from \\`createDefaultIntegrationSpecRegistry()\\`.\n2) Persist both sample connections from \\`connection.sample.ts\\`.\n3) Publish the tenant config from \\`tenant.ts\\` with matching \\`connectionId\\` values.\n4) Use \\`runSupabaseKnowledgeRuntime(...)\\` to execute vector and SQL calls through \\`IntegrationProviderFactory\\`.\n\n## Secret payload\nStore the following payload in your secret provider target for each connection:\n\n\\`\\`\\`json\n{\n \"databaseUrl\": \"postgresql://postgres.<project-ref>:<password>@aws-0-<region>.pooler.supabase.com:6543/postgres\"\n}\n\\`\\`\\`\n\n## Guardrails\n- Never place credentials in \\`config\\` or source control.\n- Keep operational SQL behind explicit workflows/operations.\n- Restrict DB credentials to least-privilege roles whenever possible.`,\n },\n];\n\nregisterDocBlocks(blocks);\n"],"mappings":";;;AAyDA,kBAtD2B,CACzB;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM;EAAC;EAAY;EAAa;EAAY;EAAe;EAAU;CACrE,MAAM;;;;;;;;;;;;CAYP,EACD;CACE,IAAI;CACJ,OAAO;CACP,SACE;CACF,MAAM;CACN,YAAY;CACZ,OAAO;CACP,MAAM,CAAC,YAAY,QAAQ;CAC3B,MAAM;;;;;;;;;;;;;;;;;;;CAmBP,CACF,CAEwB"}
@@ -0,0 +1,7 @@
1
+ import * as _contractspec_lib_contracts0 from "@contractspec/lib.contracts";
2
+
3
+ //#region src/example.d.ts
4
+ declare const example: _contractspec_lib_contracts0.ExampleSpec;
5
+ //#endregion
6
+ export { example as default };
7
+ //# sourceMappingURL=example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.d.ts","names":[],"sources":["../src/example.ts"],"mappings":";;;cAEM,OAAA,EA2BJ,4BAAA,CA3BW,WAAA"}
@@ -0,0 +1,46 @@
1
+ import { defineExample } from "@contractspec/lib.contracts";
2
+
3
+ //#region src/example.ts
4
+ const example = defineExample({
5
+ meta: {
6
+ key: "integration-supabase",
7
+ version: "1.0.0",
8
+ title: "Integration - Supabase Vector + Postgres",
9
+ description: "Wire AppBlueprint and TenantAppConfig to use Supabase for both vector retrieval and SQL workloads.",
10
+ kind: "integration",
11
+ visibility: "public",
12
+ stability: "experimental",
13
+ owners: ["@platform.core"],
14
+ tags: [
15
+ "supabase",
16
+ "pgvector",
17
+ "postgres",
18
+ "integration",
19
+ "knowledge"
20
+ ]
21
+ },
22
+ docs: {
23
+ rootDocId: "docs.examples.integration-supabase",
24
+ usageDocId: "docs.examples.integration-supabase.usage"
25
+ },
26
+ entrypoints: {
27
+ packageName: "@contractspec/example.integration-supabase",
28
+ docs: "./docs"
29
+ },
30
+ surfaces: {
31
+ templates: true,
32
+ sandbox: {
33
+ enabled: true,
34
+ modes: ["markdown", "specs"]
35
+ },
36
+ studio: {
37
+ enabled: true,
38
+ installable: true
39
+ },
40
+ mcp: { enabled: true }
41
+ }
42
+ });
43
+
44
+ //#endregion
45
+ export { example as default };
46
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","names":[],"sources":["../src/example.ts"],"sourcesContent":["import { defineExample } from '@contractspec/lib.contracts';\n\nconst example = defineExample({\n meta: {\n key: 'integration-supabase',\n version: '1.0.0',\n title: 'Integration - Supabase Vector + Postgres',\n description:\n 'Wire AppBlueprint and TenantAppConfig to use Supabase for both vector retrieval and SQL workloads.',\n kind: 'integration',\n visibility: 'public',\n stability: 'experimental',\n owners: ['@platform.core'],\n tags: ['supabase', 'pgvector', 'postgres', 'integration', 'knowledge'],\n },\n docs: {\n rootDocId: 'docs.examples.integration-supabase',\n usageDocId: 'docs.examples.integration-supabase.usage',\n },\n entrypoints: {\n packageName: '@contractspec/example.integration-supabase',\n docs: './docs',\n },\n surfaces: {\n templates: true,\n sandbox: { enabled: true, modes: ['markdown', 'specs'] },\n studio: { enabled: true, installable: true },\n mcp: { enabled: true },\n },\n});\n\nexport default example;\n"],"mappings":";;;AAEA,MAAM,UAAU,cAAc;CAC5B,MAAM;EACJ,KAAK;EACL,SAAS;EACT,OAAO;EACP,aACE;EACF,MAAM;EACN,YAAY;EACZ,WAAW;EACX,QAAQ,CAAC,iBAAiB;EAC1B,MAAM;GAAC;GAAY;GAAY;GAAY;GAAe;GAAY;EACvE;CACD,MAAM;EACJ,WAAW;EACX,YAAY;EACb;CACD,aAAa;EACX,aAAa;EACb,MAAM;EACP;CACD,UAAU;EACR,WAAW;EACX,SAAS;GAAE,SAAS;GAAM,OAAO,CAAC,YAAY,QAAQ;GAAE;EACxD,QAAQ;GAAE,SAAS;GAAM,aAAa;GAAM;EAC5C,KAAK,EAAE,SAAS,MAAM;EACvB;CACF,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { supabaseKnowledgeBlueprint } from "./blueprint.js";
2
+ import { supabaseConnectionSamples, supabaseDatabaseConnection, supabaseVectorConnection } from "./connection.sample.js";
3
+ import example from "./example.js";
4
+ import { supabaseKnowledgeTenantConfig } from "./tenant.js";
5
+ import { SupabaseKnowledgeRuntimeParams, SupabaseKnowledgeRuntimeResult, runSupabaseKnowledgeRuntime } from "./runtime.sample.js";
6
+ export { SupabaseKnowledgeRuntimeParams, SupabaseKnowledgeRuntimeResult, example, runSupabaseKnowledgeRuntime, supabaseConnectionSamples, supabaseDatabaseConnection, supabaseKnowledgeBlueprint, supabaseKnowledgeTenantConfig, supabaseVectorConnection };
package/dist/index.js ADDED
@@ -0,0 +1,8 @@
1
+ import { supabaseKnowledgeBlueprint } from "./blueprint.js";
2
+ import { supabaseConnectionSamples, supabaseDatabaseConnection, supabaseVectorConnection } from "./connection.sample.js";
3
+ import example from "./example.js";
4
+ import { supabaseKnowledgeTenantConfig } from "./tenant.js";
5
+ import { runSupabaseKnowledgeRuntime } from "./runtime.sample.js";
6
+ import "./docs/index.js";
7
+
8
+ export { example, runSupabaseKnowledgeRuntime, supabaseConnectionSamples, supabaseDatabaseConnection, supabaseKnowledgeBlueprint, supabaseKnowledgeTenantConfig, supabaseVectorConnection };
@@ -0,0 +1,16 @@
1
+ import { VectorSearchResult } from "@contractspec/integration.providers-impls/vector-store";
2
+ import { IntegrationContext } from "@contractspec/integration.runtime/runtime";
3
+
4
+ //#region src/runtime.sample.d.ts
5
+ interface SupabaseKnowledgeRuntimeParams {
6
+ vectorContext: IntegrationContext;
7
+ databaseContext: IntegrationContext;
8
+ }
9
+ interface SupabaseKnowledgeRuntimeResult {
10
+ matches: VectorSearchResult[];
11
+ indexedDocumentCount: number;
12
+ }
13
+ declare function runSupabaseKnowledgeRuntime(params: SupabaseKnowledgeRuntimeParams): Promise<SupabaseKnowledgeRuntimeResult>;
14
+ //#endregion
15
+ export { SupabaseKnowledgeRuntimeParams, SupabaseKnowledgeRuntimeResult, runSupabaseKnowledgeRuntime };
16
+ //# sourceMappingURL=runtime.sample.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.sample.d.ts","names":[],"sources":["../src/runtime.sample.ts"],"mappings":";;;;UAIiB,8BAAA;EACf,aAAA,EAAe,kBAAA;EACf,eAAA,EAAiB,kBAAA;AAAA;AAAA,UAGF,8BAAA;EACf,OAAA,EAAS,kBAAA;EACT,oBAAA;AAAA;AAAA,iBAGoB,2BAAA,CACpB,MAAA,EAAQ,8BAAA,GACP,OAAA,CAAQ,8BAAA"}
@@ -0,0 +1,43 @@
1
+ import { IntegrationProviderFactory } from "@contractspec/integration.providers-impls/impls/provider-factory";
2
+
3
+ //#region src/runtime.sample.ts
4
+ async function runSupabaseKnowledgeRuntime(params) {
5
+ const factory = new IntegrationProviderFactory();
6
+ const vectorStore = await factory.createVectorStoreProvider(params.vectorContext);
7
+ const database = await factory.createDatabaseProvider(params.databaseContext);
8
+ await vectorStore.upsert({
9
+ collection: "knowledge_chunks",
10
+ documents: [{
11
+ id: "chunk-1",
12
+ vector: [
13
+ .11,
14
+ .23,
15
+ .45
16
+ ],
17
+ payload: {
18
+ source: "faq",
19
+ locale: "en"
20
+ }
21
+ }]
22
+ });
23
+ const matches = await vectorStore.search({
24
+ collection: "knowledge_chunks",
25
+ vector: [
26
+ .12,
27
+ .22,
28
+ .44
29
+ ],
30
+ topK: 5,
31
+ filter: { source: "faq" }
32
+ });
33
+ const count = await database.query("SELECT COUNT(*)::int AS total FROM knowledge_chunks;");
34
+ await database.close();
35
+ return {
36
+ matches,
37
+ indexedDocumentCount: count.rows[0]?.total ?? 0
38
+ };
39
+ }
40
+
41
+ //#endregion
42
+ export { runSupabaseKnowledgeRuntime };
43
+ //# sourceMappingURL=runtime.sample.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.sample.js","names":[],"sources":["../src/runtime.sample.ts"],"sourcesContent":["import type { VectorSearchResult } from '@contractspec/integration.providers-impls/vector-store';\nimport { IntegrationProviderFactory } from '@contractspec/integration.providers-impls/impls/provider-factory';\nimport type { IntegrationContext } from '@contractspec/integration.runtime/runtime';\n\nexport interface SupabaseKnowledgeRuntimeParams {\n vectorContext: IntegrationContext;\n databaseContext: IntegrationContext;\n}\n\nexport interface SupabaseKnowledgeRuntimeResult {\n matches: VectorSearchResult[];\n indexedDocumentCount: number;\n}\n\nexport async function runSupabaseKnowledgeRuntime(\n params: SupabaseKnowledgeRuntimeParams\n): Promise<SupabaseKnowledgeRuntimeResult> {\n const factory = new IntegrationProviderFactory();\n\n const vectorStore = await factory.createVectorStoreProvider(\n params.vectorContext\n );\n const database = await factory.createDatabaseProvider(params.databaseContext);\n\n await vectorStore.upsert({\n collection: 'knowledge_chunks',\n documents: [\n {\n id: 'chunk-1',\n vector: [0.11, 0.23, 0.45],\n payload: { source: 'faq', locale: 'en' },\n },\n ],\n });\n\n const matches = await vectorStore.search({\n collection: 'knowledge_chunks',\n vector: [0.12, 0.22, 0.44],\n topK: 5,\n filter: { source: 'faq' },\n });\n\n const count = await database.query<{ total: number }>(\n 'SELECT COUNT(*)::int AS total FROM knowledge_chunks;'\n );\n\n await database.close();\n\n return {\n matches,\n indexedDocumentCount: count.rows[0]?.total ?? 0,\n };\n}\n"],"mappings":";;;AAcA,eAAsB,4BACpB,QACyC;CACzC,MAAM,UAAU,IAAI,4BAA4B;CAEhD,MAAM,cAAc,MAAM,QAAQ,0BAChC,OAAO,cACR;CACD,MAAM,WAAW,MAAM,QAAQ,uBAAuB,OAAO,gBAAgB;AAE7E,OAAM,YAAY,OAAO;EACvB,YAAY;EACZ,WAAW,CACT;GACE,IAAI;GACJ,QAAQ;IAAC;IAAM;IAAM;IAAK;GAC1B,SAAS;IAAE,QAAQ;IAAO,QAAQ;IAAM;GACzC,CACF;EACF,CAAC;CAEF,MAAM,UAAU,MAAM,YAAY,OAAO;EACvC,YAAY;EACZ,QAAQ;GAAC;GAAM;GAAM;GAAK;EAC1B,MAAM;EACN,QAAQ,EAAE,QAAQ,OAAO;EAC1B,CAAC;CAEF,MAAM,QAAQ,MAAM,SAAS,MAC3B,uDACD;AAED,OAAM,SAAS,OAAO;AAEtB,QAAO;EACL;EACA,sBAAsB,MAAM,KAAK,IAAI,SAAS;EAC/C"}
@@ -0,0 +1,7 @@
1
+ import { TenantAppConfig } from "@contractspec/lib.contracts/app-config/spec";
2
+
3
+ //#region src/tenant.d.ts
4
+ declare const supabaseKnowledgeTenantConfig: TenantAppConfig;
5
+ //#endregion
6
+ export { supabaseKnowledgeTenantConfig };
7
+ //# sourceMappingURL=tenant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.d.ts","names":[],"sources":["../src/tenant.ts"],"mappings":";;;cAEa,6BAAA,EAA+B,eAAA"}
package/dist/tenant.js ADDED
@@ -0,0 +1,40 @@
1
+ //#region src/tenant.ts
2
+ const supabaseKnowledgeTenantConfig = {
3
+ meta: {
4
+ id: "tenant-config-knowledge-supabase",
5
+ tenantId: "acme-knowledge",
6
+ appId: "knowledge-assistant",
7
+ blueprintName: "knowledge.supabase.dual-store",
8
+ blueprintVersion: "1.0.0",
9
+ environment: "production",
10
+ version: "1.0.0",
11
+ status: "published",
12
+ createdAt: (/* @__PURE__ */ new Date()).toISOString(),
13
+ updatedAt: (/* @__PURE__ */ new Date()).toISOString()
14
+ },
15
+ integrations: [{
16
+ slotId: "primary-vector-db",
17
+ connectionId: "conn-supabase-vector",
18
+ scope: {
19
+ workflows: ["ingestKnowledge"],
20
+ operations: ["knowledge.indexChunks", "knowledge.semanticSearch"]
21
+ }
22
+ }, {
23
+ slotId: "primary-database",
24
+ connectionId: "conn-supabase-db",
25
+ scope: {
26
+ workflows: ["refreshMetrics"],
27
+ operations: ["knowledge.metrics.refresh", "knowledge.metrics.query"]
28
+ }
29
+ }],
30
+ knowledge: [],
31
+ locales: {
32
+ defaultLocale: "en",
33
+ enabledLocales: ["en"]
34
+ },
35
+ notes: "Supabase vector + SQL connections bound for production knowledge flows."
36
+ };
37
+
38
+ //#endregion
39
+ export { supabaseKnowledgeTenantConfig };
40
+ //# sourceMappingURL=tenant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant.js","names":[],"sources":["../src/tenant.ts"],"sourcesContent":["import type { TenantAppConfig } from '@contractspec/lib.contracts/app-config/spec';\n\nexport const supabaseKnowledgeTenantConfig: TenantAppConfig = {\n meta: {\n id: 'tenant-config-knowledge-supabase',\n tenantId: 'acme-knowledge',\n appId: 'knowledge-assistant',\n blueprintName: 'knowledge.supabase.dual-store',\n blueprintVersion: '1.0.0',\n environment: 'production',\n version: '1.0.0',\n status: 'published',\n createdAt: new Date().toISOString(),\n updatedAt: new Date().toISOString(),\n },\n integrations: [\n {\n slotId: 'primary-vector-db',\n connectionId: 'conn-supabase-vector',\n scope: {\n workflows: ['ingestKnowledge'],\n operations: ['knowledge.indexChunks', 'knowledge.semanticSearch'],\n },\n },\n {\n slotId: 'primary-database',\n connectionId: 'conn-supabase-db',\n scope: {\n workflows: ['refreshMetrics'],\n operations: ['knowledge.metrics.refresh', 'knowledge.metrics.query'],\n },\n },\n ],\n knowledge: [],\n locales: {\n defaultLocale: 'en',\n enabledLocales: ['en'],\n },\n notes:\n 'Supabase vector + SQL connections bound for production knowledge flows.',\n};\n"],"mappings":";AAEA,MAAa,gCAAiD;CAC5D,MAAM;EACJ,IAAI;EACJ,UAAU;EACV,OAAO;EACP,eAAe;EACf,kBAAkB;EAClB,aAAa;EACb,SAAS;EACT,QAAQ;EACR,4BAAW,IAAI,MAAM,EAAC,aAAa;EACnC,4BAAW,IAAI,MAAM,EAAC,aAAa;EACpC;CACD,cAAc,CACZ;EACE,QAAQ;EACR,cAAc;EACd,OAAO;GACL,WAAW,CAAC,kBAAkB;GAC9B,YAAY,CAAC,yBAAyB,2BAA2B;GAClE;EACF,EACD;EACE,QAAQ;EACR,cAAc;EACd,OAAO;GACL,WAAW,CAAC,iBAAiB;GAC7B,YAAY,CAAC,6BAA6B,0BAA0B;GACrE;EACF,CACF;CACD,WAAW,EAAE;CACb,SAAS;EACP,eAAe;EACf,gBAAgB,CAAC,KAAK;EACvB;CACD,OACE;CACH"}