@ninebix/nmt-system 1.0.4 → 1.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 (91) hide show
  1. package/dashboard-lite/index.html +458 -0
  2. package/dist/bin/nmt.js +111 -0
  3. package/dist/bin/nmt.js.map +1 -1
  4. package/dist/src/api/cli-server.d.ts.map +1 -1
  5. package/dist/src/api/cli-server.js +229 -30
  6. package/dist/src/api/cli-server.js.map +1 -1
  7. package/dist/src/cli/commands/db.d.ts +33 -0
  8. package/dist/src/cli/commands/db.d.ts.map +1 -0
  9. package/dist/src/cli/commands/db.js +197 -0
  10. package/dist/src/cli/commands/db.js.map +1 -0
  11. package/dist/src/cli/commands/infer.d.ts.map +1 -1
  12. package/dist/src/cli/commands/infer.js +8 -2
  13. package/dist/src/cli/commands/infer.js.map +1 -1
  14. package/dist/src/cli/commands/learn.d.ts.map +1 -1
  15. package/dist/src/cli/commands/learn.js +25 -1
  16. package/dist/src/cli/commands/learn.js.map +1 -1
  17. package/dist/src/cli/commands/sync.d.ts +14 -0
  18. package/dist/src/cli/commands/sync.d.ts.map +1 -1
  19. package/dist/src/cli/commands/sync.js +12 -7
  20. package/dist/src/cli/commands/sync.js.map +1 -1
  21. package/dist/src/connectors/index.d.ts +11 -0
  22. package/dist/src/connectors/index.d.ts.map +1 -0
  23. package/dist/src/connectors/index.js +24 -0
  24. package/dist/src/connectors/index.js.map +1 -0
  25. package/dist/src/connectors/mongodb-connector.d.ts +29 -0
  26. package/dist/src/connectors/mongodb-connector.d.ts.map +1 -0
  27. package/dist/src/connectors/mongodb-connector.js +286 -0
  28. package/dist/src/connectors/mongodb-connector.js.map +1 -0
  29. package/dist/src/connectors/mysql-connector.d.ts +29 -0
  30. package/dist/src/connectors/mysql-connector.d.ts.map +1 -0
  31. package/dist/src/connectors/mysql-connector.js +357 -0
  32. package/dist/src/connectors/mysql-connector.js.map +1 -0
  33. package/dist/src/connectors/types.d.ts +174 -0
  34. package/dist/src/connectors/types.d.ts.map +1 -0
  35. package/dist/src/connectors/types.js +6 -0
  36. package/dist/src/connectors/types.js.map +1 -0
  37. package/dist/src/core/attractor-model.d.ts +6 -2
  38. package/dist/src/core/attractor-model.d.ts.map +1 -1
  39. package/dist/src/core/attractor-model.js +260 -16
  40. package/dist/src/core/attractor-model.js.map +1 -1
  41. package/dist/src/core/hnsw-index.d.ts.map +1 -1
  42. package/dist/src/core/hnsw-index.js +16 -9
  43. package/dist/src/core/hnsw-index.js.map +1 -1
  44. package/dist/src/core/neuron-graph.d.ts +10 -1
  45. package/dist/src/core/neuron-graph.d.ts.map +1 -1
  46. package/dist/src/core/neuron-graph.js +10 -1
  47. package/dist/src/core/neuron-graph.js.map +1 -1
  48. package/dist/src/core/probabilistic-neuron.d.ts.map +1 -1
  49. package/dist/src/core/probabilistic-neuron.js +24 -4
  50. package/dist/src/core/probabilistic-neuron.js.map +1 -1
  51. package/dist/src/core/probabilistic-orchestrator.d.ts.map +1 -1
  52. package/dist/src/core/probabilistic-orchestrator.js +17 -13
  53. package/dist/src/core/probabilistic-orchestrator.js.map +1 -1
  54. package/dist/src/extensions/clustering/index.d.ts +0 -7
  55. package/dist/src/extensions/clustering/index.d.ts.map +1 -1
  56. package/dist/src/extensions/clustering/index.js.map +1 -1
  57. package/dist/src/mcp/server.js +4 -0
  58. package/dist/src/mcp/server.js.map +1 -1
  59. package/dist/src/services/db-bridge.d.ts +46 -0
  60. package/dist/src/services/db-bridge.d.ts.map +1 -0
  61. package/dist/src/services/db-bridge.js +524 -0
  62. package/dist/src/services/db-bridge.js.map +1 -0
  63. package/dist/src/services/four-stage-learning.d.ts.map +1 -1
  64. package/dist/src/services/four-stage-learning.js +20 -9
  65. package/dist/src/services/four-stage-learning.js.map +1 -1
  66. package/dist/src/services/ingestion.d.ts +10 -1
  67. package/dist/src/services/ingestion.d.ts.map +1 -1
  68. package/dist/src/services/ingestion.js +20 -2
  69. package/dist/src/services/ingestion.js.map +1 -1
  70. package/dist/src/services/text-embedding.d.ts +1 -1
  71. package/dist/src/services/text-embedding.d.ts.map +1 -1
  72. package/dist/src/services/text-embedding.js +62 -3
  73. package/dist/src/services/text-embedding.js.map +1 -1
  74. package/dist/src/storage/neuron-store.d.ts +10 -1
  75. package/dist/src/storage/neuron-store.d.ts.map +1 -1
  76. package/dist/src/storage/neuron-store.js +10 -1
  77. package/dist/src/storage/neuron-store.js.map +1 -1
  78. package/dist/src/sync/change-journal.d.ts.map +1 -1
  79. package/dist/src/sync/change-journal.js +63 -37
  80. package/dist/src/sync/change-journal.js.map +1 -1
  81. package/dist/src/sync/state-sync.d.ts +5 -0
  82. package/dist/src/sync/state-sync.d.ts.map +1 -1
  83. package/dist/src/sync/state-sync.js +9 -2
  84. package/dist/src/sync/state-sync.js.map +1 -1
  85. package/dist/src/types/index.d.ts +59 -2
  86. package/dist/src/types/index.d.ts.map +1 -1
  87. package/dist/src/types/index.js.map +1 -1
  88. package/dist/src/utils/hash.d.ts.map +1 -1
  89. package/dist/src/utils/hash.js +3 -3
  90. package/dist/src/utils/hash.js.map +1 -1
  91. package/package.json +5 -1
@@ -0,0 +1,357 @@
1
+ /**
2
+ * MySQL/MariaDB Connector
3
+ * @module connectors/mysql-connector
4
+ */
5
+ /**
6
+ * MySQL/MariaDB connector using mysql2/promise
7
+ */
8
+ export class MySQLConnector {
9
+ pool = null;
10
+ config = null;
11
+ async connect(config) {
12
+ this.config = config;
13
+ let mysql2;
14
+ try {
15
+ mysql2 = await import('mysql2/promise');
16
+ }
17
+ catch {
18
+ throw new Error('mysql2 package not installed. Run: npm install mysql2');
19
+ }
20
+ this.pool = mysql2.createPool({
21
+ host: config.host ?? 'localhost',
22
+ port: config.port ?? 3306,
23
+ user: config.user ?? 'root',
24
+ password: config.password ?? '',
25
+ database: config.database,
26
+ waitForConnections: true,
27
+ connectionLimit: 10,
28
+ connectTimeout: 10000,
29
+ ...config.options,
30
+ });
31
+ // Test connection
32
+ const conn = await this.pool.getConnection();
33
+ conn.release();
34
+ }
35
+ async disconnect() {
36
+ if (this.pool) {
37
+ await this.pool.end();
38
+ this.pool = null;
39
+ }
40
+ }
41
+ async getSchema() {
42
+ this.ensureConnected();
43
+ const [tables] = await this.pool.query(`SELECT TABLE_NAME, TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES
44
+ WHERE TABLE_SCHEMA = ? AND TABLE_TYPE = 'BASE TABLE'`, [this.config.database]);
45
+ const tableSchemas = [];
46
+ for (const t of tables) {
47
+ const schema = await this.getTableSchema(t.TABLE_NAME);
48
+ schema.rowCount = Number(t.TABLE_ROWS) || 0;
49
+ tableSchemas.push(schema);
50
+ }
51
+ return {
52
+ name: this.config.database,
53
+ tables: tableSchemas,
54
+ driver: this.config.driver,
55
+ };
56
+ }
57
+ async getTableSchema(table) {
58
+ this.ensureConnected();
59
+ this.validateIdentifier(table, 'table name');
60
+ // Get columns (COLUMN_TYPE preserves full precision: varchar(255), decimal(10,2), enum(...))
61
+ const [columns] = await this.pool.query(`SELECT COLUMN_NAME, COLUMN_TYPE, DATA_TYPE, IS_NULLABLE, COLUMN_KEY, COLUMN_DEFAULT,
62
+ EXTRA, CHARACTER_MAXIMUM_LENGTH
63
+ FROM INFORMATION_SCHEMA.COLUMNS
64
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
65
+ ORDER BY ORDINAL_POSITION`, [this.config.database, table]);
66
+ // Get foreign keys
67
+ const [fks] = await this.pool.query(`SELECT COLUMN_NAME, REFERENCED_TABLE_NAME, REFERENCED_COLUMN_NAME
68
+ FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
69
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
70
+ AND REFERENCED_TABLE_NAME IS NOT NULL`, [this.config.database, table]);
71
+ // Get indexes (non-primary)
72
+ const [idxRows] = await this.pool.query(`SELECT INDEX_NAME, COLUMN_NAME, NON_UNIQUE, SEQ_IN_INDEX
73
+ FROM INFORMATION_SCHEMA.STATISTICS
74
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?
75
+ AND INDEX_NAME != 'PRIMARY'
76
+ ORDER BY INDEX_NAME, SEQ_IN_INDEX`, [this.config.database, table]);
77
+ // Get table engine & charset
78
+ const [tableInfo] = await this.pool.query(`SELECT ENGINE, TABLE_COLLATION
79
+ FROM INFORMATION_SCHEMA.TABLES
80
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?`, [this.config.database, table]);
81
+ const engine = tableInfo[0]?.ENGINE;
82
+ const collation = tableInfo[0]?.TABLE_COLLATION;
83
+ const charset = collation?.split('_')[0]; // e.g. utf8mb4_general_ci → utf8mb4
84
+ const fkMap = new Map();
85
+ for (const fk of fks) {
86
+ fkMap.set(fk.COLUMN_NAME, {
87
+ refTable: fk.REFERENCED_TABLE_NAME,
88
+ refColumn: fk.REFERENCED_COLUMN_NAME,
89
+ });
90
+ }
91
+ // Build index map (INDEX_NAME → { columns, unique })
92
+ const indexMap = new Map();
93
+ for (const row of idxRows) {
94
+ const name = row.INDEX_NAME;
95
+ if (!indexMap.has(name)) {
96
+ indexMap.set(name, { columns: [], unique: row.NON_UNIQUE === 0 });
97
+ }
98
+ indexMap.get(name).columns.push(row.COLUMN_NAME);
99
+ }
100
+ // Collect unique column set from indexes for isUnique single-column detection
101
+ const uniqueSingleCols = new Set();
102
+ for (const [, idx] of indexMap) {
103
+ if (idx.unique && idx.columns.length === 1) {
104
+ uniqueSingleCols.add(idx.columns[0]);
105
+ }
106
+ }
107
+ const columnSchemas = columns.map((col) => {
108
+ const fk = fkMap.get(col.COLUMN_NAME);
109
+ const extra = col.EXTRA;
110
+ return {
111
+ name: col.COLUMN_NAME,
112
+ type: col.COLUMN_TYPE.toUpperCase(),
113
+ nullable: col.IS_NULLABLE === 'YES',
114
+ isPrimary: col.COLUMN_KEY === 'PRI',
115
+ isForeign: !!fk,
116
+ foreignTable: fk?.refTable,
117
+ foreignColumn: fk?.refColumn,
118
+ defaultValue: col.COLUMN_DEFAULT,
119
+ autoIncrement: extra?.includes('auto_increment') ?? false,
120
+ isUnique: col.COLUMN_KEY === 'UNI' || uniqueSingleCols.has(col.COLUMN_NAME),
121
+ maxLength: col.CHARACTER_MAXIMUM_LENGTH != null ? Number(col.CHARACTER_MAXIMUM_LENGTH) : undefined,
122
+ extra: extra || undefined,
123
+ };
124
+ });
125
+ const primaryKey = columnSchemas
126
+ .filter((c) => c.isPrimary)
127
+ .map((c) => c.name);
128
+ const foreignKeys = columnSchemas
129
+ .filter((c) => c.isForeign)
130
+ .map((c) => ({
131
+ column: c.name,
132
+ refTable: c.foreignTable,
133
+ refColumn: c.foreignColumn,
134
+ }));
135
+ const indexes = Array.from(indexMap.entries()).map(([name, idx]) => ({
136
+ name,
137
+ columns: idx.columns,
138
+ unique: idx.unique,
139
+ }));
140
+ // Get CHECK constraints (MySQL 8.0.16+, graceful fallback)
141
+ let checks = [];
142
+ try {
143
+ const [checkRows] = await this.pool.query(`SELECT cc.CONSTRAINT_NAME, cc.CHECK_CLAUSE
144
+ FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS cc
145
+ JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS tc
146
+ ON cc.CONSTRAINT_NAME = tc.CONSTRAINT_NAME
147
+ AND cc.CONSTRAINT_SCHEMA = tc.CONSTRAINT_SCHEMA
148
+ WHERE tc.TABLE_SCHEMA = ? AND tc.TABLE_NAME = ?
149
+ AND tc.CONSTRAINT_TYPE = 'CHECK'`, [this.config.database, table]);
150
+ checks = checkRows.map((r) => ({
151
+ name: r.CONSTRAINT_NAME,
152
+ clause: r.CHECK_CLAUSE,
153
+ }));
154
+ }
155
+ catch {
156
+ // CHECK_CONSTRAINTS not available (MySQL < 8.0.16)
157
+ }
158
+ // Get triggers
159
+ let triggers = [];
160
+ try {
161
+ const [trigRows] = await this.pool.query(`SELECT TRIGGER_NAME, ACTION_TIMING, EVENT_MANIPULATION, ACTION_STATEMENT
162
+ FROM INFORMATION_SCHEMA.TRIGGERS
163
+ WHERE TRIGGER_SCHEMA = ? AND EVENT_OBJECT_TABLE = ?`, [this.config.database, table]);
164
+ triggers = trigRows.map((r) => ({
165
+ name: r.TRIGGER_NAME,
166
+ timing: r.ACTION_TIMING,
167
+ event: r.EVENT_MANIPULATION,
168
+ body: r.ACTION_STATEMENT,
169
+ }));
170
+ }
171
+ catch {
172
+ // Triggers query failed (permissions or version)
173
+ }
174
+ // Get row count
175
+ const [[countResult]] = await this.pool.query(`SELECT COUNT(*) as cnt FROM \`${table}\``);
176
+ return {
177
+ name: table,
178
+ columns: columnSchemas,
179
+ primaryKey,
180
+ foreignKeys,
181
+ indexes,
182
+ checks,
183
+ triggers,
184
+ engine,
185
+ charset,
186
+ rowCount: Number(countResult.cnt),
187
+ };
188
+ }
189
+ async *readRows(table, options = {}) {
190
+ this.ensureConnected();
191
+ this.validateIdentifier(table, 'table name');
192
+ const batchSize = options.batchSize ?? 1000;
193
+ const limit = options.limit;
194
+ let offset = options.offset ?? 0;
195
+ let totalRead = 0;
196
+ while (true) {
197
+ const currentBatch = limit
198
+ ? Math.min(batchSize, limit - totalRead)
199
+ : batchSize;
200
+ if (currentBatch <= 0)
201
+ break;
202
+ let query = `SELECT * FROM \`${table}\``;
203
+ const params = [];
204
+ // Note: raw WHERE clause is intentionally not supported to prevent SQL injection.
205
+ // Use structured filters or application-level filtering instead.
206
+ query += ` LIMIT ? OFFSET ?`;
207
+ params.push(currentBatch, offset);
208
+ const [rows] = await this.pool.query(query, params);
209
+ const batch = rows;
210
+ if (batch.length === 0)
211
+ break;
212
+ yield batch;
213
+ totalRead += batch.length;
214
+ offset += batch.length;
215
+ if (batch.length < currentBatch)
216
+ break;
217
+ }
218
+ }
219
+ async writeRows(table, rows) {
220
+ this.ensureConnected();
221
+ this.validateIdentifier(table, 'table name');
222
+ if (rows.length === 0)
223
+ return 0;
224
+ const columns = Object.keys(rows[0]);
225
+ const placeholders = columns.map(() => '?').join(', ');
226
+ const columnList = columns.map((c) => `\`${c}\``).join(', ');
227
+ let inserted = 0;
228
+ const batchSize = 500;
229
+ for (let i = 0; i < rows.length; i += batchSize) {
230
+ const batch = rows.slice(i, i + batchSize);
231
+ const values = batch.map((row) => columns.map((c) => row[c]));
232
+ const multiPlaceholders = batch
233
+ .map(() => `(${placeholders})`)
234
+ .join(', ');
235
+ await this.pool.query(`INSERT INTO \`${table}\` (${columnList}) VALUES ${multiPlaceholders}`, values.flat());
236
+ inserted += batch.length;
237
+ }
238
+ return inserted;
239
+ }
240
+ async createTable(schema) {
241
+ this.ensureConnected();
242
+ this.validateIdentifier(schema.name, 'table name');
243
+ const columnDefs = schema.columns.map((col) => {
244
+ let def = `\`${col.name}\` ${this.mapColumnType(col.type)}`;
245
+ if (!col.nullable)
246
+ def += ' NOT NULL';
247
+ if (col.autoIncrement)
248
+ def += ' AUTO_INCREMENT';
249
+ if (col.defaultValue !== undefined && col.defaultValue !== null) {
250
+ def += ` DEFAULT ${this.escapeDefault(col.defaultValue)}`;
251
+ }
252
+ // Restore ON UPDATE clause from extra (e.g. "on update CURRENT_TIMESTAMP")
253
+ if (col.extra) {
254
+ const extraLower = col.extra.toLowerCase();
255
+ const onUpdateIdx = extraLower.indexOf('on update');
256
+ if (onUpdateIdx !== -1) {
257
+ def += ` ${col.extra.substring(onUpdateIdx)}`;
258
+ }
259
+ }
260
+ return def;
261
+ });
262
+ if (schema.primaryKey.length > 0) {
263
+ columnDefs.push(`PRIMARY KEY (${schema.primaryKey.map((k) => `\`${k}\``).join(', ')})`);
264
+ }
265
+ // Add UNIQUE/INDEX constraints from indexes
266
+ if (schema.indexes) {
267
+ for (const idx of schema.indexes) {
268
+ const cols = idx.columns.map((c) => `\`${c}\``).join(', ');
269
+ if (idx.unique) {
270
+ columnDefs.push(`UNIQUE KEY \`${idx.name}\` (${cols})`);
271
+ }
272
+ else {
273
+ columnDefs.push(`KEY \`${idx.name}\` (${cols})`);
274
+ }
275
+ }
276
+ }
277
+ for (const fk of schema.foreignKeys) {
278
+ columnDefs.push(`FOREIGN KEY (\`${fk.column}\`) REFERENCES \`${fk.refTable}\`(\`${fk.refColumn}\`)`);
279
+ }
280
+ // Add CHECK constraints inline
281
+ if (schema.checks) {
282
+ for (const chk of schema.checks) {
283
+ columnDefs.push(`CONSTRAINT \`${chk.name}\` CHECK (${chk.clause})`);
284
+ }
285
+ }
286
+ const engine = schema.engine ?? 'InnoDB';
287
+ const charset = schema.charset ?? 'utf8mb4';
288
+ const ddl = `CREATE TABLE IF NOT EXISTS \`${schema.name}\` (\n ${columnDefs.join(',\n ')}\n) ENGINE=${engine} DEFAULT CHARSET=${charset}`;
289
+ await this.pool.query(ddl);
290
+ // Create triggers (must be separate statements after table creation)
291
+ if (schema.triggers) {
292
+ for (const trig of schema.triggers) {
293
+ const trigDdl = `CREATE TRIGGER \`${trig.name}\` ${trig.timing} ${trig.event} ON \`${schema.name}\` FOR EACH ROW ${trig.body}`;
294
+ await this.pool.query(trigDdl);
295
+ }
296
+ }
297
+ }
298
+ async tableExists(table) {
299
+ this.ensureConnected();
300
+ this.validateIdentifier(table, 'table name');
301
+ const [rows] = await this.pool.query(`SELECT 1 FROM INFORMATION_SCHEMA.TABLES
302
+ WHERE TABLE_SCHEMA = ? AND TABLE_NAME = ?`, [this.config.database, table]);
303
+ return rows.length > 0;
304
+ }
305
+ ensureConnected() {
306
+ if (!this.pool) {
307
+ throw new Error('Not connected. Call connect() first.');
308
+ }
309
+ }
310
+ /**
311
+ * Validate identifier (table/column name) to prevent SQL injection.
312
+ * Only allows alphanumeric, underscores, hyphens, and dots.
313
+ */
314
+ validateIdentifier(name, label = 'identifier') {
315
+ if (!name || !/^[a-zA-Z0-9_\-\.]+$/.test(name)) {
316
+ throw new Error(`Invalid ${label}: "${name}". Only alphanumeric, underscores, hyphens, and dots are allowed.`);
317
+ }
318
+ }
319
+ mapColumnType(type) {
320
+ const t = type.toUpperCase();
321
+ // Pass through common MySQL types; add BLOB for binary
322
+ const typeMap = {
323
+ STRING: 'TEXT',
324
+ NUMBER: 'DOUBLE',
325
+ BOOLEAN: 'BOOLEAN',
326
+ BLOB: 'LONGBLOB',
327
+ ARRAY: 'JSON',
328
+ OBJECT: 'JSON',
329
+ };
330
+ return typeMap[t] ?? t;
331
+ }
332
+ escapeDefault(value) {
333
+ if (typeof value === 'string') {
334
+ // Known SQL functions/keywords that must NOT be quoted
335
+ const upper = value.toUpperCase().trim();
336
+ if (upper === 'CURRENT_TIMESTAMP' ||
337
+ upper === 'CURRENT_DATE' ||
338
+ upper === 'CURRENT_TIME' ||
339
+ upper === 'NOW()' ||
340
+ upper === 'UUID()' ||
341
+ upper === 'NULL' ||
342
+ upper === 'TRUE' ||
343
+ upper === 'FALSE' ||
344
+ upper.startsWith('(') // Expression defaults e.g. (UUID()), (0)
345
+ ) {
346
+ return value;
347
+ }
348
+ return `'${value.replace(/'/g, "''")}'`;
349
+ }
350
+ if (typeof value === 'number')
351
+ return String(value);
352
+ if (typeof value === 'boolean')
353
+ return value ? 'TRUE' : 'FALSE';
354
+ return 'NULL';
355
+ }
356
+ }
357
+ //# sourceMappingURL=mysql-connector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mysql-connector.js","sourceRoot":"","sources":["../../../src/connectors/mysql-connector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,174 @@
1
+ /**
2
+ * DB Connector Types — Common interfaces for external database connectors
3
+ * @module connectors/types
4
+ */
5
+ /**
6
+ * Supported database driver types
7
+ */
8
+ export type DriverType = 'mysql' | 'mariadb' | 'mongodb';
9
+ /**
10
+ * Database connection configuration
11
+ */
12
+ export interface DBConnectionConfig {
13
+ driver: DriverType;
14
+ host?: string;
15
+ port?: number;
16
+ user?: string;
17
+ password?: string;
18
+ database: string;
19
+ uri?: string;
20
+ options?: Record<string, unknown>;
21
+ }
22
+ /**
23
+ * Column schema information
24
+ */
25
+ export interface ColumnSchema {
26
+ name: string;
27
+ type: string;
28
+ nullable: boolean;
29
+ isPrimary: boolean;
30
+ isForeign: boolean;
31
+ foreignTable?: string;
32
+ foreignColumn?: string;
33
+ defaultValue?: unknown;
34
+ autoIncrement?: boolean;
35
+ isUnique?: boolean;
36
+ maxLength?: number;
37
+ extra?: string;
38
+ }
39
+ /**
40
+ * Table index/unique constraint
41
+ */
42
+ export interface TableIndex {
43
+ name: string;
44
+ columns: string[];
45
+ unique: boolean;
46
+ }
47
+ /**
48
+ * CHECK constraint
49
+ */
50
+ export interface CheckConstraint {
51
+ name: string;
52
+ clause: string;
53
+ }
54
+ /**
55
+ * Table trigger
56
+ */
57
+ export interface TableTrigger {
58
+ name: string;
59
+ timing: 'BEFORE' | 'AFTER';
60
+ event: 'INSERT' | 'UPDATE' | 'DELETE';
61
+ body: string;
62
+ }
63
+ /**
64
+ * Table/collection schema
65
+ */
66
+ export interface TableSchema {
67
+ name: string;
68
+ columns: ColumnSchema[];
69
+ primaryKey: string[];
70
+ foreignKeys: Array<{
71
+ column: string;
72
+ refTable: string;
73
+ refColumn: string;
74
+ }>;
75
+ indexes?: TableIndex[];
76
+ checks?: CheckConstraint[];
77
+ triggers?: TableTrigger[];
78
+ engine?: string;
79
+ charset?: string;
80
+ rowCount: number;
81
+ }
82
+ /**
83
+ * Full database schema
84
+ */
85
+ export interface DatabaseSchema {
86
+ name: string;
87
+ tables: TableSchema[];
88
+ driver: DriverType;
89
+ }
90
+ /**
91
+ * Generic database row
92
+ */
93
+ export interface DBRow {
94
+ [column: string]: unknown;
95
+ }
96
+ /**
97
+ * Read options for row streaming
98
+ */
99
+ export interface ReadOptions {
100
+ limit?: number;
101
+ offset?: number;
102
+ /**
103
+ * @deprecated Raw where clauses are disabled to prevent SQL/NoSQL injection.
104
+ * Use application-level filtering instead. MongoDB connector sanitizes operator keys.
105
+ */
106
+ where?: string;
107
+ batchSize?: number;
108
+ }
109
+ /**
110
+ * Database connector interface — all drivers implement this
111
+ */
112
+ export interface IDBConnector {
113
+ /** Connect to the database */
114
+ connect(config: DBConnectionConfig): Promise<void>;
115
+ /** Disconnect from the database */
116
+ disconnect(): Promise<void>;
117
+ /** Get full database schema (all tables/collections) */
118
+ getSchema(): Promise<DatabaseSchema>;
119
+ /** Get schema for a single table/collection */
120
+ getTableSchema(table: string): Promise<TableSchema>;
121
+ /** Stream rows in batches from a table */
122
+ readRows(table: string, options?: ReadOptions): AsyncGenerator<DBRow[], void, unknown>;
123
+ /** Write rows to a table (returns inserted count) */
124
+ writeRows(table: string, rows: DBRow[]): Promise<number>;
125
+ /** Create a table from schema definition */
126
+ createTable(schema: TableSchema): Promise<void>;
127
+ /** Check if a table exists */
128
+ tableExists(table: string): Promise<boolean>;
129
+ }
130
+ /**
131
+ * Import options
132
+ */
133
+ export interface ImportOptions {
134
+ table: string;
135
+ limit?: number;
136
+ batchSize?: number;
137
+ tags?: string[];
138
+ autoConnect?: boolean;
139
+ }
140
+ /**
141
+ * Import result
142
+ */
143
+ export interface ImportResult {
144
+ neuronsCreated: number;
145
+ synapsesCreated: number;
146
+ rowsProcessed: number;
147
+ errors: string[];
148
+ duration: number;
149
+ sourceTable: string;
150
+ }
151
+ /**
152
+ * Export options
153
+ */
154
+ export interface ExportOptions {
155
+ table?: string;
156
+ tags?: string[];
157
+ limit?: number;
158
+ includeEmbeddings?: boolean;
159
+ includeSynapses?: boolean;
160
+ /** Export original source columns instead of neuron metadata */
161
+ restoreSourceData?: boolean;
162
+ }
163
+ /**
164
+ * Export result
165
+ */
166
+ export interface ExportResult {
167
+ neuronsExported: number;
168
+ synapsesExported: number;
169
+ tablesCreated: string[];
170
+ duration: number;
171
+ /** Number of neurons exported with original source data */
172
+ sourceDataRestored?: number;
173
+ }
174
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/connectors/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * DB Connector Types — Common interfaces for external database connectors
3
+ * @module connectors/types
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/connectors/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -282,13 +282,17 @@ export declare class AttractorModel {
282
282
  */
283
283
  findAlternativePaths(currentNeuronId: UUID, attractorId: UUID, k?: number, maxDepth?: number): Promise<AStarResult[]>;
284
284
  /**
285
- * A* search with path exclusion for k-best paths
285
+ * A* search with path exclusion for k-best paths (Yen's algorithm variant)
286
+ *
287
+ * Penalizes edges used by excluded paths to force exploration of alternatives.
286
288
  */
287
289
  private aStarSearchWithExclusion;
288
290
  /**
289
291
  * Bidirectional A* search for faster pathfinding
290
292
  *
291
- * Searches from both start and goal simultaneously
293
+ * Runs forward A* from start and backward BFS from the goal's nearest neurons,
294
+ * meeting in the middle for faster convergence on large graphs.
295
+ * Falls back to standard A* when no backward anchors can be identified.
292
296
  */
293
297
  bidirectionalAStarSearch(startId: UUID, attractorId: UUID, maxDepth?: number): Promise<AStarResult>;
294
298
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"attractor-model.d.ts","sourceRoot":"","sources":["../../../src/core/attractor-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attractor-model.d.ts","sourceRoot":"","sources":["../../../src/core/attractor-model.ts"],"names":[],"mappings":"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"}