@steno-ai/supabase-adapter 0.1.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 (53) hide show
  1. package/dist/client.d.ts +7 -0
  2. package/dist/client.d.ts.map +1 -0
  3. package/dist/client.js +8 -0
  4. package/dist/client.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/storage.d.ts +126 -0
  10. package/dist/storage.d.ts.map +1 -0
  11. package/dist/storage.js +990 -0
  12. package/dist/storage.js.map +1 -0
  13. package/package.json +33 -0
  14. package/src/client.d.ts +7 -0
  15. package/src/client.d.ts.map +1 -0
  16. package/src/client.js +8 -0
  17. package/src/client.js.map +1 -0
  18. package/src/client.ts +13 -0
  19. package/src/index.d.ts +3 -0
  20. package/src/index.d.ts.map +1 -0
  21. package/src/index.js +3 -0
  22. package/src/index.js.map +1 -0
  23. package/src/index.ts +2 -0
  24. package/src/migrations/001_extensions.sql +4 -0
  25. package/src/migrations/002_create_tenants.sql +14 -0
  26. package/src/migrations/003_create_api_keys.sql +15 -0
  27. package/src/migrations/004_create_sessions.sql +18 -0
  28. package/src/migrations/005_create_extractions.sql +34 -0
  29. package/src/migrations/006_create_facts.sql +68 -0
  30. package/src/migrations/007_create_entities.sql +26 -0
  31. package/src/migrations/008_create_fact_entities.sql +9 -0
  32. package/src/migrations/009_create_edges.sql +22 -0
  33. package/src/migrations/010_create_triggers.sql +18 -0
  34. package/src/migrations/011_create_memory_accesses.sql +20 -0
  35. package/src/migrations/012_create_usage_records.sql +16 -0
  36. package/src/migrations/013_create_functions.sql +19 -0
  37. package/src/migrations/014_create_rls_policies.sql +50 -0
  38. package/src/migrations/015_create_rpc_functions.sql +109 -0
  39. package/src/migrations/016_alter_source_ref.sql +2 -0
  40. package/src/migrations/017_keyword_search_rpc.sql +75 -0
  41. package/src/migrations/018_graph_traverse_rpc.sql +106 -0
  42. package/src/migrations/019_create_webhooks.sql +22 -0
  43. package/src/migrations/020_compound_search_rpc.sql +100 -0
  44. package/src/migrations/021_match_entities_rpc.sql +39 -0
  45. package/src/migrations/022_get_facts_for_entities_rpc.sql +123 -0
  46. package/src/migrations/023_add_event_date.sql +8 -0
  47. package/src/migrations/024_add_source_chunk.sql +3 -0
  48. package/src/migrations/025_update_edge_types_add_signing_key.sql +14 -0
  49. package/src/storage.d.ts +126 -0
  50. package/src/storage.d.ts.map +1 -0
  51. package/src/storage.js +990 -0
  52. package/src/storage.js.map +1 -0
  53. package/src/storage.ts +1180 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../src/storage.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "@steno-ai/supabase-adapter",
3
+ "version": "0.1.0",
4
+ "description": "Supabase/PostgreSQL storage adapter for Steno",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/SankrityaT/steno-ai.git",
9
+ "directory": "packages/supabase-adapter"
10
+ },
11
+ "type": "module",
12
+ "exports": {
13
+ ".": {
14
+ "import": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "development": "./src/index.ts"
17
+ }
18
+ },
19
+ "types": "./dist/index.d.ts",
20
+ "files": ["dist", "src", "README.md"],
21
+ "scripts": {
22
+ "test": "vitest run --passWithNoTests",
23
+ "test:watch": "vitest watch",
24
+ "typecheck": "tsc --noEmit",
25
+ "build": "tsc",
26
+ "clean": "rm -rf dist"
27
+ },
28
+ "dependencies": {
29
+ "@steno-ai/engine": "workspace:*",
30
+ "@supabase/supabase-js": "^2"
31
+ },
32
+ "devDependencies": { "typescript": "^5.7", "vitest": "^3" }
33
+ }
@@ -0,0 +1,7 @@
1
+ import { type SupabaseClient } from '@supabase/supabase-js';
2
+ export interface SupabaseConfig {
3
+ url: string;
4
+ serviceRoleKey: string;
5
+ }
6
+ export declare function createSupabaseClient(config: SupabaseConfig): SupabaseClient;
7
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE1E,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,GAAG,cAAc,CAK3E"}
package/src/client.js ADDED
@@ -0,0 +1,8 @@
1
+ import { createClient } from '@supabase/supabase-js';
2
+ export function createSupabaseClient(config) {
3
+ return createClient(config.url, config.serviceRoleKey, {
4
+ auth: { persistSession: false },
5
+ db: { schema: 'public' },
6
+ });
7
+ }
8
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,uBAAuB,CAAC;AAO1E,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,cAAc,EAAE;QACrD,IAAI,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE;QAC/B,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE;KACzB,CAAC,CAAC;AACL,CAAC"}
package/src/client.ts ADDED
@@ -0,0 +1,13 @@
1
+ import { createClient, type SupabaseClient } from '@supabase/supabase-js';
2
+
3
+ export interface SupabaseConfig {
4
+ url: string;
5
+ serviceRoleKey: string;
6
+ }
7
+
8
+ export function createSupabaseClient(config: SupabaseConfig): SupabaseClient {
9
+ return createClient(config.url, config.serviceRoleKey, {
10
+ auth: { persistSession: false },
11
+ db: { schema: 'public' },
12
+ });
13
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export { SupabaseStorageAdapter } from './storage.js';
2
+ export { createSupabaseClient, type SupabaseConfig } from './client.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { SupabaseStorageAdapter } from './storage.js';
2
+ export { createSupabaseClient } from './client.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAuB,MAAM,aAAa,CAAC"}
package/src/index.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { SupabaseStorageAdapter } from './storage.js';
2
+ export { createSupabaseClient, type SupabaseConfig } from './client.js';
@@ -0,0 +1,4 @@
1
+ -- Required extensions
2
+ CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
3
+ CREATE EXTENSION IF NOT EXISTS "vector";
4
+ CREATE EXTENSION IF NOT EXISTS "pg_trgm";
@@ -0,0 +1,14 @@
1
+ CREATE TABLE tenants (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ name TEXT NOT NULL,
4
+ slug TEXT NOT NULL UNIQUE,
5
+ config JSONB NOT NULL DEFAULT '{}',
6
+ plan TEXT NOT NULL DEFAULT 'free',
7
+ token_limit_monthly BIGINT NOT NULL DEFAULT 1000000,
8
+ query_limit_monthly BIGINT NOT NULL DEFAULT 10000,
9
+ stripe_customer_id TEXT,
10
+ stripe_subscription_id TEXT,
11
+ active BOOLEAN NOT NULL DEFAULT TRUE,
12
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
13
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
14
+ );
@@ -0,0 +1,15 @@
1
+ CREATE TABLE api_keys (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ key_hash TEXT NOT NULL,
5
+ key_prefix TEXT NOT NULL,
6
+ name TEXT NOT NULL,
7
+ scopes TEXT[] NOT NULL DEFAULT '{}',
8
+ expires_at TIMESTAMPTZ,
9
+ last_used_at TIMESTAMPTZ,
10
+ active BOOLEAN NOT NULL DEFAULT TRUE,
11
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
12
+ );
13
+
14
+ CREATE INDEX idx_api_keys_tenant_id ON api_keys (tenant_id);
15
+ CREATE INDEX idx_api_keys_active_tenant ON api_keys (tenant_id, active);
@@ -0,0 +1,18 @@
1
+ CREATE TABLE sessions (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ scope TEXT NOT NULL CHECK (scope IN ('user', 'agent', 'hive')),
5
+ scope_id TEXT NOT NULL,
6
+ started_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
7
+ ended_at TIMESTAMPTZ,
8
+ summary TEXT,
9
+ topics TEXT[] NOT NULL DEFAULT '{}',
10
+ message_count INTEGER NOT NULL DEFAULT 0,
11
+ fact_count INTEGER NOT NULL DEFAULT 0,
12
+ metadata JSONB NOT NULL DEFAULT '{}',
13
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
14
+ );
15
+
16
+ CREATE INDEX idx_sessions_tenant_id ON sessions (tenant_id);
17
+ CREATE INDEX idx_sessions_scope_scope_id ON sessions (scope, scope_id);
18
+ CREATE INDEX idx_sessions_started_at ON sessions (started_at);
@@ -0,0 +1,34 @@
1
+ CREATE TABLE extractions (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ status TEXT NOT NULL DEFAULT 'queued'
5
+ CHECK (status IN ('queued', 'processing', 'completed', 'failed', 'deduped')),
6
+ input_type TEXT NOT NULL,
7
+ input_data TEXT NOT NULL,
8
+ input_hash TEXT NOT NULL,
9
+ input_size INTEGER NOT NULL DEFAULT 0,
10
+ scope TEXT,
11
+ scope_id TEXT,
12
+ session_id UUID REFERENCES sessions(id) ON DELETE SET NULL,
13
+ tier_used TEXT,
14
+ llm_model TEXT,
15
+ facts_created INTEGER NOT NULL DEFAULT 0,
16
+ facts_updated INTEGER NOT NULL DEFAULT 0,
17
+ facts_invalidated INTEGER NOT NULL DEFAULT 0,
18
+ entities_created INTEGER NOT NULL DEFAULT 0,
19
+ edges_created INTEGER NOT NULL DEFAULT 0,
20
+ cost_tokens_input BIGINT NOT NULL DEFAULT 0,
21
+ cost_tokens_output BIGINT NOT NULL DEFAULT 0,
22
+ cost_usd NUMERIC(12, 6) NOT NULL DEFAULT 0,
23
+ duration_ms INTEGER,
24
+ error TEXT,
25
+ retry_count INTEGER NOT NULL DEFAULT 0,
26
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
27
+ completed_at TIMESTAMPTZ,
28
+ UNIQUE (tenant_id, input_hash)
29
+ );
30
+
31
+ CREATE INDEX idx_extractions_tenant_id ON extractions (tenant_id);
32
+ CREATE INDEX idx_extractions_session_id ON extractions (session_id);
33
+ CREATE INDEX idx_extractions_scope_scope_id ON extractions (scope, scope_id);
34
+ CREATE INDEX idx_extractions_status ON extractions (status);
@@ -0,0 +1,68 @@
1
+ -- Embedding dimension placeholder: {EMBEDDING_DIM}
2
+ -- Replace at migration time, e.g.: sed 's/{EMBEDDING_DIM}/1536/g' 006_create_facts.sql
3
+
4
+ CREATE TABLE facts (
5
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
6
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
7
+ scope TEXT NOT NULL CHECK (scope IN ('user', 'agent', 'session', 'hive')),
8
+ scope_id TEXT NOT NULL,
9
+ session_id UUID REFERENCES sessions(id) ON DELETE SET NULL,
10
+ content TEXT NOT NULL,
11
+ embedding VECTOR({EMBEDDING_DIM}),
12
+ embedding_model TEXT,
13
+ embedding_dim INTEGER,
14
+ search_vector TSVECTOR GENERATED ALWAYS AS (to_tsvector('english', content)) STORED,
15
+ version INTEGER NOT NULL DEFAULT 1,
16
+ lineage_id UUID NOT NULL DEFAULT uuid_generate_v4(),
17
+ valid_from TIMESTAMPTZ NOT NULL DEFAULT NOW(),
18
+ valid_until TIMESTAMPTZ,
19
+ operation TEXT NOT NULL DEFAULT 'create',
20
+ parent_id UUID REFERENCES facts(id) ON DELETE SET NULL,
21
+ importance NUMERIC(5, 4) NOT NULL DEFAULT 0.5 CHECK (importance >= 0 AND importance <= 1),
22
+ frequency INTEGER NOT NULL DEFAULT 1,
23
+ last_accessed TIMESTAMPTZ NOT NULL DEFAULT NOW(),
24
+ decay_score NUMERIC(8, 6) NOT NULL DEFAULT 1.0,
25
+ contradiction_status TEXT NOT NULL DEFAULT 'none',
26
+ contradicts_id UUID REFERENCES facts(id) ON DELETE SET NULL,
27
+ source_type TEXT,
28
+ source_ref TEXT,
29
+ confidence NUMERIC(5, 4) NOT NULL DEFAULT 1.0 CHECK (confidence >= 0 AND confidence <= 1),
30
+ original_content TEXT,
31
+ -- extraction_id: intentionally no FK; enforced at application level
32
+ extraction_id UUID,
33
+ extraction_tier TEXT,
34
+ modality TEXT,
35
+ tags TEXT[] NOT NULL DEFAULT '{}',
36
+ metadata JSONB NOT NULL DEFAULT '{}',
37
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
38
+ );
39
+
40
+ -- HNSW vector index (approximate nearest neighbour search)
41
+ CREATE INDEX idx_facts_embedding_hnsw
42
+ ON facts USING hnsw (embedding vector_cosine_ops);
43
+
44
+ -- GIN indexes for full-text search and array columns
45
+ CREATE INDEX idx_facts_search_vector ON facts USING gin (search_vector);
46
+ CREATE INDEX idx_facts_tags ON facts USING gin (tags);
47
+
48
+ -- B-tree indexes: FK lookups
49
+ CREATE INDEX idx_facts_tenant_id ON facts (tenant_id);
50
+ CREATE INDEX idx_facts_session_id ON facts (session_id);
51
+ CREATE INDEX idx_facts_parent_id ON facts (parent_id);
52
+ CREATE INDEX idx_facts_contradicts_id ON facts (contradicts_id);
53
+
54
+ -- B-tree indexes: scope / scope_id lookups
55
+ CREATE INDEX idx_facts_scope_scope_id ON facts (scope, scope_id);
56
+ CREATE INDEX idx_facts_lineage_id ON facts (lineage_id);
57
+
58
+ -- B-tree indexes: temporal / validity queries
59
+ CREATE INDEX idx_facts_valid_from ON facts (valid_from);
60
+ CREATE INDEX idx_facts_valid_until ON facts (valid_until);
61
+
62
+ -- B-tree indexes: decay / access frequency
63
+ CREATE INDEX idx_facts_decay_score ON facts (decay_score);
64
+ CREATE INDEX idx_facts_last_accessed ON facts (last_accessed);
65
+ CREATE INDEX idx_facts_importance ON facts (importance);
66
+
67
+ -- B-tree indexes: status lookups
68
+ CREATE INDEX idx_facts_contradiction_status ON facts (contradiction_status);
@@ -0,0 +1,26 @@
1
+ -- Embedding dimension placeholder: {EMBEDDING_DIM}
2
+ -- Replace at migration time, e.g.: sed 's/{EMBEDDING_DIM}/1536/g' 007_create_entities.sql
3
+
4
+ CREATE TABLE entities (
5
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
6
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
7
+ name TEXT NOT NULL,
8
+ entity_type TEXT NOT NULL,
9
+ canonical_name TEXT NOT NULL,
10
+ properties JSONB NOT NULL DEFAULT '{}',
11
+ embedding VECTOR({EMBEDDING_DIM}),
12
+ embedding_model TEXT,
13
+ embedding_dim INTEGER,
14
+ merge_target_id UUID REFERENCES entities(id) ON DELETE SET NULL,
15
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
16
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
17
+ UNIQUE (tenant_id, canonical_name, entity_type)
18
+ );
19
+
20
+ -- HNSW vector index (approximate nearest neighbour search)
21
+ CREATE INDEX idx_entities_embedding_hnsw
22
+ ON entities USING hnsw (embedding vector_cosine_ops);
23
+
24
+ -- B-tree indexes
25
+ CREATE INDEX idx_entities_tenant_id ON entities (tenant_id);
26
+ CREATE INDEX idx_entities_merge_target_id ON entities (merge_target_id);
@@ -0,0 +1,9 @@
1
+ CREATE TABLE fact_entities (
2
+ fact_id UUID NOT NULL REFERENCES facts(id) ON DELETE CASCADE,
3
+ entity_id UUID NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
4
+ role TEXT,
5
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
6
+ PRIMARY KEY (fact_id, entity_id)
7
+ );
8
+
9
+ CREATE INDEX idx_fact_entities_entity_id ON fact_entities (entity_id);
@@ -0,0 +1,22 @@
1
+ CREATE TABLE edges (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ source_id UUID NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
5
+ target_id UUID NOT NULL REFERENCES entities(id) ON DELETE CASCADE,
6
+ relation TEXT NOT NULL,
7
+ edge_type TEXT NOT NULL CHECK (edge_type IN ('semantic', 'causal', 'temporal', 'hierarchical', 'associative', 'contradicts', 'supports')),
8
+ weight NUMERIC(5, 4) NOT NULL DEFAULT 1.0 CHECK (weight >= 0 AND weight <= 1),
9
+ valid_from TIMESTAMPTZ NOT NULL DEFAULT NOW(),
10
+ valid_until TIMESTAMPTZ,
11
+ fact_id UUID REFERENCES facts(id) ON DELETE SET NULL,
12
+ confidence NUMERIC(5, 4) NOT NULL DEFAULT 1.0 CHECK (confidence >= 0 AND confidence <= 1),
13
+ metadata JSONB NOT NULL DEFAULT '{}',
14
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
15
+ );
16
+
17
+ CREATE INDEX idx_edges_tenant_id ON edges (tenant_id);
18
+ CREATE INDEX idx_edges_source_id ON edges (source_id);
19
+ CREATE INDEX idx_edges_target_id ON edges (target_id);
20
+ CREATE INDEX idx_edges_fact_id ON edges (fact_id);
21
+ CREATE INDEX idx_edges_valid_from ON edges (valid_from);
22
+ CREATE INDEX idx_edges_valid_until ON edges (valid_until);
@@ -0,0 +1,18 @@
1
+ CREATE TABLE triggers (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ scope TEXT,
5
+ scope_id TEXT,
6
+ condition JSONB NOT NULL DEFAULT '{}',
7
+ fact_ids UUID[] NOT NULL DEFAULT '{}',
8
+ entity_ids UUID[] NOT NULL DEFAULT '{}',
9
+ query_template TEXT,
10
+ priority INTEGER NOT NULL DEFAULT 5,
11
+ active BOOLEAN NOT NULL DEFAULT TRUE,
12
+ times_fired INTEGER NOT NULL DEFAULT 0,
13
+ last_fired_at TIMESTAMPTZ,
14
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
15
+ );
16
+
17
+ CREATE INDEX idx_triggers_tenant_id ON triggers (tenant_id);
18
+ CREATE INDEX idx_triggers_scope_scope_id ON triggers (scope, scope_id);
@@ -0,0 +1,20 @@
1
+ CREATE TABLE memory_accesses (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ fact_id UUID NOT NULL REFERENCES facts(id) ON DELETE CASCADE,
5
+ query TEXT,
6
+ retrieval_method TEXT,
7
+ similarity_score NUMERIC(8, 6),
8
+ rank_position INTEGER,
9
+ was_useful BOOLEAN,
10
+ was_corrected BOOLEAN,
11
+ feedback_type TEXT,
12
+ feedback_detail TEXT,
13
+ trigger_id UUID REFERENCES triggers(id) ON DELETE SET NULL,
14
+ accessed_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
15
+ );
16
+
17
+ CREATE INDEX idx_memory_accesses_tenant_id ON memory_accesses (tenant_id);
18
+ CREATE INDEX idx_memory_accesses_fact_id ON memory_accesses (fact_id);
19
+ CREATE INDEX idx_memory_accesses_trigger_id ON memory_accesses (trigger_id);
20
+ CREATE INDEX idx_memory_accesses_accessed_at ON memory_accesses (accessed_at);
@@ -0,0 +1,16 @@
1
+ CREATE TABLE usage_records (
2
+ id UUID PRIMARY KEY DEFAULT uuid_generate_v4(),
3
+ tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE,
4
+ period_start TIMESTAMPTZ NOT NULL,
5
+ period_end TIMESTAMPTZ NOT NULL,
6
+ tokens_used BIGINT NOT NULL DEFAULT 0,
7
+ queries_used BIGINT NOT NULL DEFAULT 0,
8
+ extractions_count BIGINT NOT NULL DEFAULT 0,
9
+ cost_usd NUMERIC(12, 6) NOT NULL DEFAULT 0,
10
+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
11
+ updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
12
+ UNIQUE (tenant_id, period_start)
13
+ );
14
+
15
+ CREATE INDEX idx_usage_records_tenant_id ON usage_records (tenant_id);
16
+ CREATE INDEX idx_usage_records_period_start ON usage_records (period_start);
@@ -0,0 +1,19 @@
1
+ CREATE OR REPLACE FUNCTION update_updated_at()
2
+ RETURNS TRIGGER AS $$
3
+ BEGIN
4
+ NEW.updated_at = NOW();
5
+ RETURN NEW;
6
+ END;
7
+ $$ LANGUAGE plpgsql;
8
+
9
+ CREATE TRIGGER trg_tenants_updated_at
10
+ BEFORE UPDATE ON tenants
11
+ FOR EACH ROW EXECUTE FUNCTION update_updated_at();
12
+
13
+ CREATE TRIGGER trg_entities_updated_at
14
+ BEFORE UPDATE ON entities
15
+ FOR EACH ROW EXECUTE FUNCTION update_updated_at();
16
+
17
+ CREATE TRIGGER trg_usage_records_updated_at
18
+ BEFORE UPDATE ON usage_records
19
+ FOR EACH ROW EXECUTE FUNCTION update_updated_at();
@@ -0,0 +1,50 @@
1
+ ALTER TABLE tenants ENABLE ROW LEVEL SECURITY;
2
+ ALTER TABLE api_keys ENABLE ROW LEVEL SECURITY;
3
+ ALTER TABLE sessions ENABLE ROW LEVEL SECURITY;
4
+ ALTER TABLE extractions ENABLE ROW LEVEL SECURITY;
5
+ ALTER TABLE facts ENABLE ROW LEVEL SECURITY;
6
+ ALTER TABLE entities ENABLE ROW LEVEL SECURITY;
7
+ ALTER TABLE fact_entities ENABLE ROW LEVEL SECURITY;
8
+ ALTER TABLE edges ENABLE ROW LEVEL SECURITY;
9
+ ALTER TABLE triggers ENABLE ROW LEVEL SECURITY;
10
+ ALTER TABLE memory_accesses ENABLE ROW LEVEL SECURITY;
11
+ ALTER TABLE usage_records ENABLE ROW LEVEL SECURITY;
12
+
13
+ CREATE POLICY tenant_isolation ON tenants
14
+ USING (id = current_setting('app.current_tenant_id')::uuid);
15
+
16
+ CREATE POLICY tenant_isolation ON api_keys
17
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
18
+
19
+ CREATE POLICY tenant_isolation ON sessions
20
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
21
+
22
+ CREATE POLICY tenant_isolation ON extractions
23
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
24
+
25
+ CREATE POLICY tenant_isolation ON facts
26
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
27
+
28
+ CREATE POLICY tenant_isolation ON entities
29
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
30
+
31
+ -- fact_entities has no tenant_id column; join through facts
32
+ CREATE POLICY tenant_isolation ON fact_entities
33
+ USING (
34
+ fact_id IN (
35
+ SELECT id FROM facts
36
+ WHERE tenant_id = current_setting('app.current_tenant_id')::uuid
37
+ )
38
+ );
39
+
40
+ CREATE POLICY tenant_isolation ON edges
41
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
42
+
43
+ CREATE POLICY tenant_isolation ON triggers
44
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
45
+
46
+ CREATE POLICY tenant_isolation ON memory_accesses
47
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
48
+
49
+ CREATE POLICY tenant_isolation ON usage_records
50
+ USING (tenant_id = current_setting('app.current_tenant_id')::uuid);
@@ -0,0 +1,109 @@
1
+ -- =============================================================================
2
+ -- RPC Functions for Supabase .rpc() calls
3
+ -- =============================================================================
4
+
5
+ -- Atomic usage increment function
6
+ -- Called by SupabaseStorageAdapter.incrementUsage()
7
+ -- Uses INSERT ... ON CONFLICT DO UPDATE to atomically add to existing totals
8
+ -- rather than replacing them (which .upsert() does by default).
9
+ CREATE OR REPLACE FUNCTION increment_usage(
10
+ p_tenant_id UUID,
11
+ p_tokens INT,
12
+ p_queries INT,
13
+ p_extractions INT,
14
+ p_cost_usd FLOAT
15
+ )
16
+ RETURNS VOID
17
+ LANGUAGE plpgsql
18
+ AS $$
19
+ DECLARE
20
+ p_start DATE := date_trunc('month', CURRENT_DATE)::date;
21
+ p_end DATE := (date_trunc('month', CURRENT_DATE) + interval '1 month' - interval '1 day')::date;
22
+ BEGIN
23
+ INSERT INTO usage_records (id, tenant_id, period_start, period_end, tokens_used, queries_used, extractions_count, cost_usd)
24
+ VALUES (gen_random_uuid(), p_tenant_id, p_start, p_end, p_tokens, p_queries, p_extractions, p_cost_usd)
25
+ ON CONFLICT (tenant_id, period_start)
26
+ DO UPDATE SET
27
+ tokens_used = usage_records.tokens_used + EXCLUDED.tokens_used,
28
+ queries_used = usage_records.queries_used + EXCLUDED.queries_used,
29
+ extractions_count = usage_records.extractions_count + EXCLUDED.extractions_count,
30
+ cost_usd = usage_records.cost_usd + EXCLUDED.cost_usd,
31
+ updated_at = NOW();
32
+ END;
33
+ $$;
34
+
35
+ -- Vector similarity search function
36
+ -- Called by SupabaseStorageAdapter.vectorSearch()
37
+ CREATE OR REPLACE FUNCTION match_facts(
38
+ query_embedding TEXT,
39
+ match_tenant_id UUID,
40
+ match_scope TEXT,
41
+ match_scope_id TEXT,
42
+ match_count INT,
43
+ min_similarity FLOAT DEFAULT 0,
44
+ match_as_of TIMESTAMPTZ DEFAULT NULL
45
+ )
46
+ RETURNS TABLE (
47
+ id UUID,
48
+ tenant_id UUID,
49
+ scope TEXT,
50
+ scope_id TEXT,
51
+ session_id UUID,
52
+ content TEXT,
53
+ embedding_model TEXT,
54
+ embedding_dim INT,
55
+ version INT,
56
+ lineage_id UUID,
57
+ valid_from TIMESTAMPTZ,
58
+ valid_until TIMESTAMPTZ,
59
+ operation TEXT,
60
+ parent_id UUID,
61
+ importance FLOAT,
62
+ frequency INT,
63
+ last_accessed TIMESTAMPTZ,
64
+ decay_score FLOAT,
65
+ contradiction_status TEXT,
66
+ contradicts_id UUID,
67
+ source_type TEXT,
68
+ source_ref JSONB,
69
+ confidence FLOAT,
70
+ original_content TEXT,
71
+ extraction_id UUID,
72
+ extraction_tier TEXT,
73
+ modality TEXT,
74
+ tags TEXT[],
75
+ metadata JSONB,
76
+ created_at TIMESTAMPTZ,
77
+ similarity FLOAT
78
+ )
79
+ LANGUAGE plpgsql
80
+ AS $$
81
+ BEGIN
82
+ RETURN QUERY
83
+ SELECT
84
+ f.id, f.tenant_id, f.scope, f.scope_id, f.session_id,
85
+ f.content, f.embedding_model, f.embedding_dim,
86
+ f.version, f.lineage_id, f.valid_from, f.valid_until,
87
+ f.operation, f.parent_id, f.importance, f.frequency,
88
+ f.last_accessed, f.decay_score, f.contradiction_status,
89
+ f.contradicts_id, f.source_type, f.source_ref, f.confidence,
90
+ f.original_content, f.extraction_id, f.extraction_tier,
91
+ f.modality, f.tags, f.metadata, f.created_at,
92
+ (1 - (f.embedding <=> query_embedding::vector)) AS similarity
93
+ FROM facts f
94
+ WHERE f.tenant_id = match_tenant_id
95
+ AND f.scope = match_scope
96
+ AND f.scope_id = match_scope_id
97
+ AND (
98
+ CASE
99
+ WHEN match_as_of IS NOT NULL THEN
100
+ f.valid_from <= match_as_of AND (f.valid_until IS NULL OR f.valid_until > match_as_of)
101
+ ELSE
102
+ f.valid_until IS NULL
103
+ END
104
+ )
105
+ AND (1 - (f.embedding <=> query_embedding::vector)) >= min_similarity
106
+ ORDER BY f.embedding <=> query_embedding::vector
107
+ LIMIT match_count;
108
+ END;
109
+ $$;
@@ -0,0 +1,2 @@
1
+ -- Alter facts.source_ref from TEXT to JSONB
2
+ ALTER TABLE facts ALTER COLUMN source_ref TYPE JSONB USING source_ref::jsonb;