@nicia-ai/typegraph 0.14.0 → 0.15.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/dist/backend/postgres/index.cjs +32 -26
- package/dist/backend/postgres/index.cjs.map +1 -1
- package/dist/backend/postgres/index.d.cts +5 -5
- package/dist/backend/postgres/index.d.ts +5 -5
- package/dist/backend/postgres/index.js +14 -8
- package/dist/backend/postgres/index.js.map +1 -1
- package/dist/backend/sqlite/index.cjs +12 -12
- package/dist/backend/sqlite/index.d.cts +5 -5
- package/dist/backend/sqlite/index.d.ts +5 -5
- package/dist/backend/sqlite/index.js +2 -2
- package/dist/backend/sqlite/local.cjs +5 -5
- package/dist/backend/sqlite/local.cjs.map +1 -1
- package/dist/backend/sqlite/local.d.cts +3 -3
- package/dist/backend/sqlite/local.d.ts +3 -3
- package/dist/backend/sqlite/local.js +5 -5
- package/dist/backend/sqlite/local.js.map +1 -1
- package/dist/{chunk-QFZ5QB2J.cjs → chunk-3HQLOKS5.cjs} +25 -3
- package/dist/chunk-3HQLOKS5.cjs.map +1 -0
- package/dist/{chunk-OEKH5PWL.cjs → chunk-56RQFK7U.cjs} +22 -15
- package/dist/chunk-56RQFK7U.cjs.map +1 -0
- package/dist/{chunk-KE2BL3JZ.cjs → chunk-CRMN2NOM.cjs} +179 -179
- package/dist/chunk-CRMN2NOM.cjs.map +1 -0
- package/dist/{chunk-BNIBR5U2.js → chunk-HWWF3FOP.js} +91 -91
- package/dist/chunk-HWWF3FOP.js.map +1 -0
- package/dist/{chunk-KLOSTZDQ.js → chunk-L4ON6RJF.js} +25 -3
- package/dist/chunk-L4ON6RJF.js.map +1 -0
- package/dist/{chunk-RVUEBUBH.js → chunk-XZBAGJJH.js} +15 -8
- package/dist/chunk-XZBAGJJH.js.map +1 -0
- package/dist/{ddl-BJg93HDN.d.cts → ddl-BBo2EcFc.d.cts} +2 -2
- package/dist/{ddl-CsfWcl_B.d.ts → ddl-D4jlcOH_.d.ts} +2 -2
- package/dist/index.cjs +67 -73
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +36 -42
- package/dist/index.js.map +1 -1
- package/dist/indexes/index.d.cts +2 -2
- package/dist/indexes/index.d.ts +2 -2
- package/dist/interchange/index.d.cts +3 -3
- package/dist/interchange/index.d.ts +3 -3
- package/dist/{manager-oh2mTMvy.d.cts → manager-Bj1UEnhE.d.cts} +2 -2
- package/dist/{manager-qRSdnKEO.d.ts → manager-Chhrq1vl.d.ts} +2 -2
- package/dist/profiler/index.d.cts +3 -3
- package/dist/profiler/index.d.ts +3 -3
- package/dist/schema/index.cjs +20 -20
- package/dist/schema/index.d.cts +4 -4
- package/dist/schema/index.d.ts +4 -4
- package/dist/schema/index.js +2 -2
- package/dist/{sqlite-DVca_IIy.d.cts → sqlite-Blq-AhmK.d.ts} +1 -1
- package/dist/{sqlite-H01wIXvB.d.ts → sqlite-DE-6NWtC.d.cts} +1 -1
- package/dist/{store-BJPIoe8u.d.cts → store-BNercm8P.d.cts} +51 -16
- package/dist/{store-B9ItxA-Q.d.ts → store-CD_0yf2s.d.ts} +51 -16
- package/dist/{types-Ckfwgv9l.d.cts → types-B3mmOMJV.d.cts} +8 -0
- package/dist/{types-C8Ra3ROE.d.cts → types-CZd2PEOc.d.cts} +8 -2
- package/dist/{types-CC8eB0PB.d.ts → types-Ceb01czq.d.ts} +8 -2
- package/dist/{types-5t_MIcvv.d.ts → types-ThB4cFLp.d.ts} +8 -0
- package/package.json +1 -1
- package/dist/chunk-BNIBR5U2.js.map +0 -1
- package/dist/chunk-KE2BL3JZ.cjs.map +0 -1
- package/dist/chunk-KLOSTZDQ.js.map +0 -1
- package/dist/chunk-OEKH5PWL.cjs.map +0 -1
- package/dist/chunk-QFZ5QB2J.cjs.map +0 -1
- package/dist/chunk-RVUEBUBH.js.map +0 -1
|
@@ -3,10 +3,30 @@
|
|
|
3
3
|
var chunk44SXEVF4_cjs = require('./chunk-44SXEVF4.cjs');
|
|
4
4
|
var chunkLELLOHJK_cjs = require('./chunk-LELLOHJK.cjs');
|
|
5
5
|
var chunkMME3H4ZF_cjs = require('./chunk-MME3H4ZF.cjs');
|
|
6
|
-
var sqliteCore = require('drizzle-orm/sqlite-core');
|
|
7
6
|
var pgCore = require('drizzle-orm/pg-core');
|
|
7
|
+
var sqliteCore = require('drizzle-orm/sqlite-core');
|
|
8
8
|
var drizzleOrm = require('drizzle-orm');
|
|
9
9
|
|
|
10
|
+
var vector = pgCore.customType({
|
|
11
|
+
dataType(config) {
|
|
12
|
+
return config?.dimensions ? `vector(${config.dimensions})` : "vector";
|
|
13
|
+
},
|
|
14
|
+
toDriver(value) {
|
|
15
|
+
return `[${value.join(",")}]`;
|
|
16
|
+
},
|
|
17
|
+
fromDriver(value) {
|
|
18
|
+
if (Array.isArray(value)) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
const content = value.slice(1, -1);
|
|
22
|
+
if (content === "") {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
return content.split(",").map((s) => Number.parseFloat(s.trim()));
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
// src/backend/drizzle/schema/postgres.ts
|
|
10
30
|
var DEFAULT_TABLE_NAMES = {
|
|
11
31
|
nodes: "typegraph_nodes",
|
|
12
32
|
edges: "typegraph_edges",
|
|
@@ -14,60 +34,60 @@ var DEFAULT_TABLE_NAMES = {
|
|
|
14
34
|
schemaVersions: "typegraph_schema_versions",
|
|
15
35
|
embeddings: "typegraph_node_embeddings"
|
|
16
36
|
};
|
|
17
|
-
function
|
|
37
|
+
function createPostgresTables(names = {}, options = {}) {
|
|
18
38
|
const n = { ...DEFAULT_TABLE_NAMES, ...names };
|
|
19
39
|
const indexes = options.indexes ?? [];
|
|
20
|
-
const nodes3 =
|
|
40
|
+
const nodes3 = pgCore.pgTable(
|
|
21
41
|
n.nodes,
|
|
22
42
|
{
|
|
23
|
-
graphId:
|
|
24
|
-
kind:
|
|
25
|
-
id:
|
|
26
|
-
props:
|
|
27
|
-
version:
|
|
28
|
-
validFrom:
|
|
29
|
-
validTo:
|
|
30
|
-
createdAt:
|
|
31
|
-
updatedAt:
|
|
32
|
-
deletedAt:
|
|
43
|
+
graphId: pgCore.text("graph_id").notNull(),
|
|
44
|
+
kind: pgCore.text("kind").notNull(),
|
|
45
|
+
id: pgCore.text("id").notNull(),
|
|
46
|
+
props: pgCore.jsonb("props").notNull(),
|
|
47
|
+
version: pgCore.integer("version").notNull().default(1),
|
|
48
|
+
validFrom: pgCore.timestamp("valid_from", { withTimezone: true }),
|
|
49
|
+
validTo: pgCore.timestamp("valid_to", { withTimezone: true }),
|
|
50
|
+
createdAt: pgCore.timestamp("created_at", { withTimezone: true }).notNull(),
|
|
51
|
+
updatedAt: pgCore.timestamp("updated_at", { withTimezone: true }).notNull(),
|
|
52
|
+
deletedAt: pgCore.timestamp("deleted_at", { withTimezone: true })
|
|
33
53
|
},
|
|
34
54
|
(t) => [
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
55
|
+
pgCore.primaryKey({ columns: [t.graphId, t.kind, t.id] }),
|
|
56
|
+
pgCore.index(`${n.nodes}_kind_idx`).on(t.graphId, t.kind),
|
|
57
|
+
pgCore.index(`${n.nodes}_kind_created_idx`).on(
|
|
38
58
|
t.graphId,
|
|
39
59
|
t.kind,
|
|
40
60
|
t.deletedAt,
|
|
41
61
|
t.createdAt
|
|
42
62
|
),
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
...chunkLELLOHJK_cjs.
|
|
63
|
+
pgCore.index(`${n.nodes}_deleted_idx`).on(t.graphId, t.deletedAt),
|
|
64
|
+
pgCore.index(`${n.nodes}_valid_idx`).on(t.graphId, t.validFrom, t.validTo),
|
|
65
|
+
...chunkLELLOHJK_cjs.buildPostgresNodeIndexBuilders(t, indexes)
|
|
46
66
|
]
|
|
47
67
|
);
|
|
48
|
-
const edges3 =
|
|
68
|
+
const edges3 = pgCore.pgTable(
|
|
49
69
|
n.edges,
|
|
50
70
|
{
|
|
51
|
-
graphId:
|
|
52
|
-
id:
|
|
53
|
-
kind:
|
|
54
|
-
fromKind:
|
|
55
|
-
fromId:
|
|
56
|
-
toKind:
|
|
57
|
-
toId:
|
|
58
|
-
props:
|
|
59
|
-
validFrom:
|
|
60
|
-
validTo:
|
|
61
|
-
createdAt:
|
|
62
|
-
updatedAt:
|
|
63
|
-
deletedAt:
|
|
71
|
+
graphId: pgCore.text("graph_id").notNull(),
|
|
72
|
+
id: pgCore.text("id").notNull(),
|
|
73
|
+
kind: pgCore.text("kind").notNull(),
|
|
74
|
+
fromKind: pgCore.text("from_kind").notNull(),
|
|
75
|
+
fromId: pgCore.text("from_id").notNull(),
|
|
76
|
+
toKind: pgCore.text("to_kind").notNull(),
|
|
77
|
+
toId: pgCore.text("to_id").notNull(),
|
|
78
|
+
props: pgCore.jsonb("props").notNull(),
|
|
79
|
+
validFrom: pgCore.timestamp("valid_from", { withTimezone: true }),
|
|
80
|
+
validTo: pgCore.timestamp("valid_to", { withTimezone: true }),
|
|
81
|
+
createdAt: pgCore.timestamp("created_at", { withTimezone: true }).notNull(),
|
|
82
|
+
updatedAt: pgCore.timestamp("updated_at", { withTimezone: true }).notNull(),
|
|
83
|
+
deletedAt: pgCore.timestamp("deleted_at", { withTimezone: true })
|
|
64
84
|
},
|
|
65
85
|
(t) => [
|
|
66
|
-
|
|
67
|
-
|
|
86
|
+
pgCore.primaryKey({ columns: [t.graphId, t.id] }),
|
|
87
|
+
pgCore.index(`${n.edges}_kind_idx`).on(t.graphId, t.kind),
|
|
68
88
|
// Directional traversal index (outgoing): supports endpoint lookups
|
|
69
89
|
// and extra filtering by edge kind / target kind.
|
|
70
|
-
|
|
90
|
+
pgCore.index(`${n.edges}_from_idx`).on(
|
|
71
91
|
t.graphId,
|
|
72
92
|
t.fromKind,
|
|
73
93
|
t.fromId,
|
|
@@ -77,7 +97,7 @@ function createSqliteTables(names = {}, options = {}) {
|
|
|
77
97
|
t.validTo
|
|
78
98
|
),
|
|
79
99
|
// Directional traversal index (incoming): mirrors from_idx for reverse traversals.
|
|
80
|
-
|
|
100
|
+
pgCore.index(`${n.edges}_to_idx`).on(
|
|
81
101
|
t.graphId,
|
|
82
102
|
t.toKind,
|
|
83
103
|
t.toId,
|
|
@@ -86,87 +106,83 @@ function createSqliteTables(names = {}, options = {}) {
|
|
|
86
106
|
t.deletedAt,
|
|
87
107
|
t.validTo
|
|
88
108
|
),
|
|
89
|
-
|
|
109
|
+
pgCore.index(`${n.edges}_kind_created_idx`).on(
|
|
90
110
|
t.graphId,
|
|
91
111
|
t.kind,
|
|
92
112
|
t.deletedAt,
|
|
93
113
|
t.createdAt
|
|
94
114
|
),
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
115
|
+
pgCore.index(`${n.edges}_deleted_idx`).on(t.graphId, t.deletedAt),
|
|
116
|
+
pgCore.index(`${n.edges}_valid_idx`).on(t.graphId, t.validFrom, t.validTo),
|
|
117
|
+
pgCore.index(`${n.edges}_cardinality_idx`).on(
|
|
98
118
|
t.graphId,
|
|
99
119
|
t.kind,
|
|
100
120
|
t.fromKind,
|
|
101
121
|
t.fromId,
|
|
102
122
|
t.validTo
|
|
103
123
|
),
|
|
104
|
-
...chunkLELLOHJK_cjs.
|
|
124
|
+
...chunkLELLOHJK_cjs.buildPostgresEdgeIndexBuilders(t, indexes)
|
|
105
125
|
]
|
|
106
126
|
);
|
|
107
|
-
const uniques3 =
|
|
127
|
+
const uniques3 = pgCore.pgTable(
|
|
108
128
|
n.uniques,
|
|
109
129
|
{
|
|
110
|
-
graphId:
|
|
111
|
-
nodeKind:
|
|
112
|
-
constraintName:
|
|
113
|
-
key:
|
|
114
|
-
nodeId:
|
|
115
|
-
concreteKind:
|
|
116
|
-
deletedAt:
|
|
130
|
+
graphId: pgCore.text("graph_id").notNull(),
|
|
131
|
+
nodeKind: pgCore.text("node_kind").notNull(),
|
|
132
|
+
constraintName: pgCore.text("constraint_name").notNull(),
|
|
133
|
+
key: pgCore.text("key").notNull(),
|
|
134
|
+
nodeId: pgCore.text("node_id").notNull(),
|
|
135
|
+
concreteKind: pgCore.text("concrete_kind").notNull(),
|
|
136
|
+
deletedAt: pgCore.timestamp("deleted_at", { withTimezone: true })
|
|
117
137
|
},
|
|
118
138
|
(t) => [
|
|
119
|
-
|
|
139
|
+
pgCore.primaryKey({
|
|
120
140
|
columns: [t.graphId, t.nodeKind, t.constraintName, t.key]
|
|
121
141
|
}),
|
|
122
|
-
|
|
142
|
+
pgCore.index(`${n.uniques}_node_idx`).on(t.graphId, t.concreteKind, t.nodeId)
|
|
123
143
|
]
|
|
124
144
|
);
|
|
125
|
-
const schemaVersions3 =
|
|
145
|
+
const schemaVersions3 = pgCore.pgTable(
|
|
126
146
|
n.schemaVersions,
|
|
127
147
|
{
|
|
128
|
-
graphId:
|
|
129
|
-
version:
|
|
130
|
-
schemaHash:
|
|
131
|
-
schemaDoc:
|
|
132
|
-
createdAt:
|
|
133
|
-
isActive:
|
|
148
|
+
graphId: pgCore.text("graph_id").notNull(),
|
|
149
|
+
version: pgCore.integer("version").notNull(),
|
|
150
|
+
schemaHash: pgCore.text("schema_hash").notNull(),
|
|
151
|
+
schemaDoc: pgCore.jsonb("schema_doc").notNull(),
|
|
152
|
+
createdAt: pgCore.timestamp("created_at", { withTimezone: true }).notNull(),
|
|
153
|
+
isActive: pgCore.boolean("is_active").notNull().default(false)
|
|
134
154
|
},
|
|
135
155
|
(t) => [
|
|
136
|
-
|
|
137
|
-
|
|
156
|
+
pgCore.primaryKey({ columns: [t.graphId, t.version] }),
|
|
157
|
+
pgCore.index(`${n.schemaVersions}_active_idx`).on(t.graphId, t.isActive)
|
|
138
158
|
]
|
|
139
159
|
);
|
|
140
|
-
const embeddings3 =
|
|
160
|
+
const embeddings3 = pgCore.pgTable(
|
|
141
161
|
n.embeddings,
|
|
142
162
|
{
|
|
143
|
-
graphId:
|
|
144
|
-
nodeKind:
|
|
145
|
-
nodeId:
|
|
146
|
-
fieldPath:
|
|
147
|
-
/**
|
|
148
|
-
|
|
149
|
-
* Stored as BLOB for sqlite-vec binary format, or JSON text for fallback.
|
|
150
|
-
* For sqlite-vec: use vec_f32() to convert JSON array to binary.
|
|
151
|
-
*/
|
|
152
|
-
embedding: sqliteCore.blob("embedding", { mode: "buffer" }).notNull(),
|
|
163
|
+
graphId: pgCore.text("graph_id").notNull(),
|
|
164
|
+
nodeKind: pgCore.text("node_kind").notNull(),
|
|
165
|
+
nodeId: pgCore.text("node_id").notNull(),
|
|
166
|
+
fieldPath: pgCore.text("field_path").notNull(),
|
|
167
|
+
/** Embedding vector stored as native pgvector type */
|
|
168
|
+
embedding: vector("embedding").notNull(),
|
|
153
169
|
/** Number of dimensions (for validation) */
|
|
154
|
-
dimensions:
|
|
155
|
-
createdAt:
|
|
156
|
-
updatedAt:
|
|
170
|
+
dimensions: pgCore.integer("dimensions").notNull(),
|
|
171
|
+
createdAt: pgCore.timestamp("created_at", { withTimezone: true }).notNull(),
|
|
172
|
+
updatedAt: pgCore.timestamp("updated_at", { withTimezone: true }).notNull()
|
|
157
173
|
},
|
|
158
174
|
(t) => [
|
|
159
|
-
|
|
175
|
+
pgCore.primaryKey({
|
|
160
176
|
columns: [t.graphId, t.nodeKind, t.nodeId, t.fieldPath]
|
|
161
177
|
}),
|
|
162
178
|
// Index for looking up embeddings by node
|
|
163
|
-
|
|
179
|
+
pgCore.index(`${n.embeddings}_node_idx`).on(
|
|
164
180
|
t.graphId,
|
|
165
181
|
t.nodeKind,
|
|
166
182
|
t.nodeId
|
|
167
183
|
),
|
|
168
184
|
// Index for filtering by kind and field (used in vector search)
|
|
169
|
-
|
|
185
|
+
pgCore.index(`${n.embeddings}_kind_field_idx`).on(
|
|
170
186
|
t.graphId,
|
|
171
187
|
t.nodeKind,
|
|
172
188
|
t.fieldPath
|
|
@@ -175,28 +191,8 @@ function createSqliteTables(names = {}, options = {}) {
|
|
|
175
191
|
);
|
|
176
192
|
return { nodes: nodes3, edges: edges3, uniques: uniques3, schemaVersions: schemaVersions3, embeddings: embeddings3 };
|
|
177
193
|
}
|
|
178
|
-
var tables =
|
|
194
|
+
var tables = createPostgresTables();
|
|
179
195
|
var { nodes, edges, uniques, schemaVersions, embeddings } = tables;
|
|
180
|
-
var vector = pgCore.customType({
|
|
181
|
-
dataType(config) {
|
|
182
|
-
return config?.dimensions ? `vector(${config.dimensions})` : "vector";
|
|
183
|
-
},
|
|
184
|
-
toDriver(value) {
|
|
185
|
-
return `[${value.join(",")}]`;
|
|
186
|
-
},
|
|
187
|
-
fromDriver(value) {
|
|
188
|
-
if (Array.isArray(value)) {
|
|
189
|
-
return value;
|
|
190
|
-
}
|
|
191
|
-
const content = value.slice(1, -1);
|
|
192
|
-
if (content === "") {
|
|
193
|
-
return [];
|
|
194
|
-
}
|
|
195
|
-
return content.split(",").map((s) => Number.parseFloat(s.trim()));
|
|
196
|
-
}
|
|
197
|
-
});
|
|
198
|
-
|
|
199
|
-
// src/backend/drizzle/schema/postgres.ts
|
|
200
196
|
var DEFAULT_TABLE_NAMES2 = {
|
|
201
197
|
nodes: "typegraph_nodes",
|
|
202
198
|
edges: "typegraph_edges",
|
|
@@ -204,60 +200,60 @@ var DEFAULT_TABLE_NAMES2 = {
|
|
|
204
200
|
schemaVersions: "typegraph_schema_versions",
|
|
205
201
|
embeddings: "typegraph_node_embeddings"
|
|
206
202
|
};
|
|
207
|
-
function
|
|
203
|
+
function createSqliteTables(names = {}, options = {}) {
|
|
208
204
|
const n = { ...DEFAULT_TABLE_NAMES2, ...names };
|
|
209
205
|
const indexes = options.indexes ?? [];
|
|
210
|
-
const nodes3 =
|
|
206
|
+
const nodes3 = sqliteCore.sqliteTable(
|
|
211
207
|
n.nodes,
|
|
212
208
|
{
|
|
213
|
-
graphId:
|
|
214
|
-
kind:
|
|
215
|
-
id:
|
|
216
|
-
props:
|
|
217
|
-
version:
|
|
218
|
-
validFrom:
|
|
219
|
-
validTo:
|
|
220
|
-
createdAt:
|
|
221
|
-
updatedAt:
|
|
222
|
-
deletedAt:
|
|
209
|
+
graphId: sqliteCore.text("graph_id").notNull(),
|
|
210
|
+
kind: sqliteCore.text("kind").notNull(),
|
|
211
|
+
id: sqliteCore.text("id").notNull(),
|
|
212
|
+
props: sqliteCore.text("props").notNull(),
|
|
213
|
+
version: sqliteCore.integer("version").notNull().default(1),
|
|
214
|
+
validFrom: sqliteCore.text("valid_from"),
|
|
215
|
+
validTo: sqliteCore.text("valid_to"),
|
|
216
|
+
createdAt: sqliteCore.text("created_at").notNull(),
|
|
217
|
+
updatedAt: sqliteCore.text("updated_at").notNull(),
|
|
218
|
+
deletedAt: sqliteCore.text("deleted_at")
|
|
223
219
|
},
|
|
224
220
|
(t) => [
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
221
|
+
sqliteCore.primaryKey({ columns: [t.graphId, t.kind, t.id] }),
|
|
222
|
+
sqliteCore.index(`${n.nodes}_kind_idx`).on(t.graphId, t.kind),
|
|
223
|
+
sqliteCore.index(`${n.nodes}_kind_created_idx`).on(
|
|
228
224
|
t.graphId,
|
|
229
225
|
t.kind,
|
|
230
226
|
t.deletedAt,
|
|
231
227
|
t.createdAt
|
|
232
228
|
),
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
...chunkLELLOHJK_cjs.
|
|
229
|
+
sqliteCore.index(`${n.nodes}_deleted_idx`).on(t.graphId, t.deletedAt),
|
|
230
|
+
sqliteCore.index(`${n.nodes}_valid_idx`).on(t.graphId, t.validFrom, t.validTo),
|
|
231
|
+
...chunkLELLOHJK_cjs.buildSqliteNodeIndexBuilders(t, indexes)
|
|
236
232
|
]
|
|
237
233
|
);
|
|
238
|
-
const edges3 =
|
|
234
|
+
const edges3 = sqliteCore.sqliteTable(
|
|
239
235
|
n.edges,
|
|
240
236
|
{
|
|
241
|
-
graphId:
|
|
242
|
-
id:
|
|
243
|
-
kind:
|
|
244
|
-
fromKind:
|
|
245
|
-
fromId:
|
|
246
|
-
toKind:
|
|
247
|
-
toId:
|
|
248
|
-
props:
|
|
249
|
-
validFrom:
|
|
250
|
-
validTo:
|
|
251
|
-
createdAt:
|
|
252
|
-
updatedAt:
|
|
253
|
-
deletedAt:
|
|
237
|
+
graphId: sqliteCore.text("graph_id").notNull(),
|
|
238
|
+
id: sqliteCore.text("id").notNull(),
|
|
239
|
+
kind: sqliteCore.text("kind").notNull(),
|
|
240
|
+
fromKind: sqliteCore.text("from_kind").notNull(),
|
|
241
|
+
fromId: sqliteCore.text("from_id").notNull(),
|
|
242
|
+
toKind: sqliteCore.text("to_kind").notNull(),
|
|
243
|
+
toId: sqliteCore.text("to_id").notNull(),
|
|
244
|
+
props: sqliteCore.text("props").notNull(),
|
|
245
|
+
validFrom: sqliteCore.text("valid_from"),
|
|
246
|
+
validTo: sqliteCore.text("valid_to"),
|
|
247
|
+
createdAt: sqliteCore.text("created_at").notNull(),
|
|
248
|
+
updatedAt: sqliteCore.text("updated_at").notNull(),
|
|
249
|
+
deletedAt: sqliteCore.text("deleted_at")
|
|
254
250
|
},
|
|
255
251
|
(t) => [
|
|
256
|
-
|
|
257
|
-
|
|
252
|
+
sqliteCore.primaryKey({ columns: [t.graphId, t.id] }),
|
|
253
|
+
sqliteCore.index(`${n.edges}_kind_idx`).on(t.graphId, t.kind),
|
|
258
254
|
// Directional traversal index (outgoing): supports endpoint lookups
|
|
259
255
|
// and extra filtering by edge kind / target kind.
|
|
260
|
-
|
|
256
|
+
sqliteCore.index(`${n.edges}_from_idx`).on(
|
|
261
257
|
t.graphId,
|
|
262
258
|
t.fromKind,
|
|
263
259
|
t.fromId,
|
|
@@ -267,7 +263,7 @@ function createPostgresTables(names = {}, options = {}) {
|
|
|
267
263
|
t.validTo
|
|
268
264
|
),
|
|
269
265
|
// Directional traversal index (incoming): mirrors from_idx for reverse traversals.
|
|
270
|
-
|
|
266
|
+
sqliteCore.index(`${n.edges}_to_idx`).on(
|
|
271
267
|
t.graphId,
|
|
272
268
|
t.toKind,
|
|
273
269
|
t.toId,
|
|
@@ -276,83 +272,87 @@ function createPostgresTables(names = {}, options = {}) {
|
|
|
276
272
|
t.deletedAt,
|
|
277
273
|
t.validTo
|
|
278
274
|
),
|
|
279
|
-
|
|
275
|
+
sqliteCore.index(`${n.edges}_kind_created_idx`).on(
|
|
280
276
|
t.graphId,
|
|
281
277
|
t.kind,
|
|
282
278
|
t.deletedAt,
|
|
283
279
|
t.createdAt
|
|
284
280
|
),
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
281
|
+
sqliteCore.index(`${n.edges}_deleted_idx`).on(t.graphId, t.deletedAt),
|
|
282
|
+
sqliteCore.index(`${n.edges}_valid_idx`).on(t.graphId, t.validFrom, t.validTo),
|
|
283
|
+
sqliteCore.index(`${n.edges}_cardinality_idx`).on(
|
|
288
284
|
t.graphId,
|
|
289
285
|
t.kind,
|
|
290
286
|
t.fromKind,
|
|
291
287
|
t.fromId,
|
|
292
288
|
t.validTo
|
|
293
289
|
),
|
|
294
|
-
...chunkLELLOHJK_cjs.
|
|
290
|
+
...chunkLELLOHJK_cjs.buildSqliteEdgeIndexBuilders(t, indexes)
|
|
295
291
|
]
|
|
296
292
|
);
|
|
297
|
-
const uniques3 =
|
|
293
|
+
const uniques3 = sqliteCore.sqliteTable(
|
|
298
294
|
n.uniques,
|
|
299
295
|
{
|
|
300
|
-
graphId:
|
|
301
|
-
nodeKind:
|
|
302
|
-
constraintName:
|
|
303
|
-
key:
|
|
304
|
-
nodeId:
|
|
305
|
-
concreteKind:
|
|
306
|
-
deletedAt:
|
|
296
|
+
graphId: sqliteCore.text("graph_id").notNull(),
|
|
297
|
+
nodeKind: sqliteCore.text("node_kind").notNull(),
|
|
298
|
+
constraintName: sqliteCore.text("constraint_name").notNull(),
|
|
299
|
+
key: sqliteCore.text("key").notNull(),
|
|
300
|
+
nodeId: sqliteCore.text("node_id").notNull(),
|
|
301
|
+
concreteKind: sqliteCore.text("concrete_kind").notNull(),
|
|
302
|
+
deletedAt: sqliteCore.text("deleted_at")
|
|
307
303
|
},
|
|
308
304
|
(t) => [
|
|
309
|
-
|
|
305
|
+
sqliteCore.primaryKey({
|
|
310
306
|
columns: [t.graphId, t.nodeKind, t.constraintName, t.key]
|
|
311
307
|
}),
|
|
312
|
-
|
|
308
|
+
sqliteCore.index(`${n.uniques}_node_idx`).on(t.graphId, t.concreteKind, t.nodeId)
|
|
313
309
|
]
|
|
314
310
|
);
|
|
315
|
-
const schemaVersions3 =
|
|
311
|
+
const schemaVersions3 = sqliteCore.sqliteTable(
|
|
316
312
|
n.schemaVersions,
|
|
317
313
|
{
|
|
318
|
-
graphId:
|
|
319
|
-
version:
|
|
320
|
-
schemaHash:
|
|
321
|
-
schemaDoc:
|
|
322
|
-
createdAt:
|
|
323
|
-
isActive:
|
|
314
|
+
graphId: sqliteCore.text("graph_id").notNull(),
|
|
315
|
+
version: sqliteCore.integer("version").notNull(),
|
|
316
|
+
schemaHash: sqliteCore.text("schema_hash").notNull(),
|
|
317
|
+
schemaDoc: sqliteCore.text("schema_doc").notNull(),
|
|
318
|
+
createdAt: sqliteCore.text("created_at").notNull(),
|
|
319
|
+
isActive: sqliteCore.integer("is_active", { mode: "boolean" }).notNull().default(false)
|
|
324
320
|
},
|
|
325
321
|
(t) => [
|
|
326
|
-
|
|
327
|
-
|
|
322
|
+
sqliteCore.primaryKey({ columns: [t.graphId, t.version] }),
|
|
323
|
+
sqliteCore.index(`${n.schemaVersions}_active_idx`).on(t.graphId, t.isActive)
|
|
328
324
|
]
|
|
329
325
|
);
|
|
330
|
-
const embeddings3 =
|
|
326
|
+
const embeddings3 = sqliteCore.sqliteTable(
|
|
331
327
|
n.embeddings,
|
|
332
328
|
{
|
|
333
|
-
graphId:
|
|
334
|
-
nodeKind:
|
|
335
|
-
nodeId:
|
|
336
|
-
fieldPath:
|
|
337
|
-
/**
|
|
338
|
-
|
|
329
|
+
graphId: sqliteCore.text("graph_id").notNull(),
|
|
330
|
+
nodeKind: sqliteCore.text("node_kind").notNull(),
|
|
331
|
+
nodeId: sqliteCore.text("node_id").notNull(),
|
|
332
|
+
fieldPath: sqliteCore.text("field_path").notNull(),
|
|
333
|
+
/**
|
|
334
|
+
* Embedding vector.
|
|
335
|
+
* Stored as BLOB for sqlite-vec binary format, or JSON text for fallback.
|
|
336
|
+
* For sqlite-vec: use vec_f32() to convert JSON array to binary.
|
|
337
|
+
*/
|
|
338
|
+
embedding: sqliteCore.blob("embedding", { mode: "buffer" }).notNull(),
|
|
339
339
|
/** Number of dimensions (for validation) */
|
|
340
|
-
dimensions:
|
|
341
|
-
createdAt:
|
|
342
|
-
updatedAt:
|
|
340
|
+
dimensions: sqliteCore.integer("dimensions").notNull(),
|
|
341
|
+
createdAt: sqliteCore.text("created_at").notNull(),
|
|
342
|
+
updatedAt: sqliteCore.text("updated_at").notNull()
|
|
343
343
|
},
|
|
344
344
|
(t) => [
|
|
345
|
-
|
|
345
|
+
sqliteCore.primaryKey({
|
|
346
346
|
columns: [t.graphId, t.nodeKind, t.nodeId, t.fieldPath]
|
|
347
347
|
}),
|
|
348
348
|
// Index for looking up embeddings by node
|
|
349
|
-
|
|
349
|
+
sqliteCore.index(`${n.embeddings}_node_idx`).on(
|
|
350
350
|
t.graphId,
|
|
351
351
|
t.nodeKind,
|
|
352
352
|
t.nodeId
|
|
353
353
|
),
|
|
354
354
|
// Index for filtering by kind and field (used in vector search)
|
|
355
|
-
|
|
355
|
+
sqliteCore.index(`${n.embeddings}_kind_field_idx`).on(
|
|
356
356
|
t.graphId,
|
|
357
357
|
t.nodeKind,
|
|
358
358
|
t.fieldPath
|
|
@@ -361,7 +361,7 @@ function createPostgresTables(names = {}, options = {}) {
|
|
|
361
361
|
);
|
|
362
362
|
return { nodes: nodes3, edges: edges3, uniques: uniques3, schemaVersions: schemaVersions3, embeddings: embeddings3 };
|
|
363
363
|
}
|
|
364
|
-
var tables2 =
|
|
364
|
+
var tables2 = createSqliteTables();
|
|
365
365
|
var { nodes: nodes2, edges: edges2, uniques: uniques2, schemaVersions: schemaVersions2, embeddings: embeddings2 } = tables2;
|
|
366
366
|
function getSqliteColumnType(column) {
|
|
367
367
|
switch (column.columnType) {
|
|
@@ -481,7 +481,7 @@ function generateSqliteCreateIndexSQL(table) {
|
|
|
481
481
|
}
|
|
482
482
|
return statements;
|
|
483
483
|
}
|
|
484
|
-
function generateSqliteDDL(tables3 =
|
|
484
|
+
function generateSqliteDDL(tables3 = tables2) {
|
|
485
485
|
const statements = [];
|
|
486
486
|
for (const table of Object.values(tables3)) {
|
|
487
487
|
statements.push(generateSqliteCreateTableSQL(table));
|
|
@@ -491,7 +491,7 @@ function generateSqliteDDL(tables3 = tables) {
|
|
|
491
491
|
}
|
|
492
492
|
return statements;
|
|
493
493
|
}
|
|
494
|
-
function generateSqliteMigrationSQL(tables3 =
|
|
494
|
+
function generateSqliteMigrationSQL(tables3 = tables2) {
|
|
495
495
|
return generateSqliteDDL(tables3).join("\n\n");
|
|
496
496
|
}
|
|
497
497
|
function getPgColumnType(column) {
|
|
@@ -573,7 +573,7 @@ function generatePgCreateIndexSQL(table) {
|
|
|
573
573
|
}
|
|
574
574
|
return statements;
|
|
575
575
|
}
|
|
576
|
-
function generatePostgresDDL(tables3 =
|
|
576
|
+
function generatePostgresDDL(tables3 = tables) {
|
|
577
577
|
const statements = [];
|
|
578
578
|
for (const table of Object.values(tables3)) {
|
|
579
579
|
statements.push(generatePgCreateTableSQL(table));
|
|
@@ -583,7 +583,7 @@ function generatePostgresDDL(tables3 = tables2) {
|
|
|
583
583
|
}
|
|
584
584
|
return statements;
|
|
585
585
|
}
|
|
586
|
-
function generatePostgresMigrationSQL(tables3 =
|
|
586
|
+
function generatePostgresMigrationSQL(tables3 = tables) {
|
|
587
587
|
const extensionSql = "-- Enable pgvector extension for vector similarity search\nCREATE EXTENSION IF NOT EXISTS vector;";
|
|
588
588
|
const ddlSql = generatePostgresDDL(tables3).join("\n\n");
|
|
589
589
|
return `${extensionSql}
|
|
@@ -2160,5 +2160,5 @@ exports.tables = tables;
|
|
|
2160
2160
|
exports.tables2 = tables2;
|
|
2161
2161
|
exports.uniques = uniques;
|
|
2162
2162
|
exports.uniques2 = uniques2;
|
|
2163
|
-
//# sourceMappingURL=chunk-
|
|
2164
|
-
//# sourceMappingURL=chunk-
|
|
2163
|
+
//# sourceMappingURL=chunk-CRMN2NOM.cjs.map
|
|
2164
|
+
//# sourceMappingURL=chunk-CRMN2NOM.cjs.map
|