@kiyeonjeon21/datacontext 0.3.2 → 0.4.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 (52) hide show
  1. package/dist/adapters/sqlite.d.ts.map +1 -1
  2. package/dist/adapters/sqlite.js +13 -0
  3. package/dist/adapters/sqlite.js.map +1 -1
  4. package/dist/api/server.d.ts.map +1 -1
  5. package/dist/api/server.js +115 -0
  6. package/dist/api/server.js.map +1 -1
  7. package/dist/cli/index.js +58 -14
  8. package/dist/cli/index.js.map +1 -1
  9. package/dist/core/context-service.d.ts +63 -0
  10. package/dist/core/context-service.d.ts.map +1 -1
  11. package/dist/core/context-service.js +66 -0
  12. package/dist/core/context-service.js.map +1 -1
  13. package/dist/core/harvester.d.ts +57 -5
  14. package/dist/core/harvester.d.ts.map +1 -1
  15. package/dist/core/harvester.js +86 -6
  16. package/dist/core/harvester.js.map +1 -1
  17. package/dist/core/types.d.ts +21 -5
  18. package/dist/core/types.d.ts.map +1 -1
  19. package/dist/index.d.ts +2 -1
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +9 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/knowledge/store.d.ts +186 -3
  24. package/dist/knowledge/store.d.ts.map +1 -1
  25. package/dist/knowledge/store.js +389 -5
  26. package/dist/knowledge/store.js.map +1 -1
  27. package/dist/knowledge/types.d.ts +252 -4
  28. package/dist/knowledge/types.d.ts.map +1 -1
  29. package/dist/knowledge/types.js +138 -1
  30. package/dist/knowledge/types.js.map +1 -1
  31. package/dist/mcp/tools.d.ts.map +1 -1
  32. package/dist/mcp/tools.js +231 -3
  33. package/dist/mcp/tools.js.map +1 -1
  34. package/docs/KNOWLEDGE_GRAPH.md +540 -0
  35. package/docs/KNOWLEDGE_TYPES.md +261 -0
  36. package/docs/MULTI_DB_ARCHITECTURE.md +319 -0
  37. package/package.json +1 -1
  38. package/scripts/create-sqlite-testdb.sh +75 -0
  39. package/scripts/test-databases.sh +324 -0
  40. package/sqlite:./test-sqlite.db +0 -0
  41. package/src/adapters/sqlite.ts +16 -0
  42. package/src/api/server.ts +134 -0
  43. package/src/cli/index.ts +57 -16
  44. package/src/core/context-service.ts +70 -0
  45. package/src/core/harvester.ts +120 -8
  46. package/src/core/types.ts +21 -5
  47. package/src/index.ts +19 -1
  48. package/src/knowledge/store.ts +480 -6
  49. package/src/knowledge/types.ts +321 -4
  50. package/src/mcp/tools.ts +273 -3
  51. package/test-sqlite.db +0 -0
  52. package/tests/knowledge-store.test.ts +130 -0
@@ -1,7 +1,45 @@
1
1
  "use strict";
2
2
  /**
3
3
  * Knowledge Store
4
- * Local JSON-based storage for table descriptions, query examples, and business rules
4
+ *
5
+ * Local JSON-based storage for the Knowledge Graph, including:
6
+ * - Table descriptions (nodes)
7
+ * - Table relationships (edges)
8
+ * - Query examples, business rules, and terms (annotations)
9
+ *
10
+ * ## Architecture
11
+ *
12
+ * The Knowledge Store implements a lightweight graph model:
13
+ *
14
+ * ```
15
+ * ┌─────────────────────────────────────────────────────────────────┐
16
+ * │ Knowledge Store │
17
+ * │ │
18
+ * │ Nodes: │
19
+ * │ - TableDescription (with embedded columns) │
20
+ * │ │
21
+ * │ Edges: │
22
+ * │ - TableRelationship (from → to with join condition) │
23
+ * │ │
24
+ * │ Annotations: │
25
+ * │ - QueryExample, BusinessRule, BusinessTerm │
26
+ * │ │
27
+ * └─────────────────────────────────────────────────────────────────┘
28
+ * ```
29
+ *
30
+ * ## Graph Traversal
31
+ *
32
+ * Provides methods for:
33
+ * - Finding related tables (1-hop)
34
+ * - Finding shortest join path (multi-hop BFS)
35
+ * - Detecting relationship types
36
+ *
37
+ * ## Future: SQLite Migration
38
+ *
39
+ * For larger graphs, consider migrating to SQLite embedded storage
40
+ * for better indexing and query performance.
41
+ *
42
+ * @module knowledge/store
5
43
  */
6
44
  Object.defineProperty(exports, "__esModule", { value: true });
7
45
  exports.KnowledgeStore = void 0;
@@ -11,7 +49,8 @@ const fs_1 = require("fs");
11
49
  const path_1 = require("path");
12
50
  const os_1 = require("os");
13
51
  const types_js_1 = require("./types.js");
14
- const KNOWLEDGE_VERSION = '1.0.0';
52
+ /** Current knowledge format version */
53
+ const KNOWLEDGE_VERSION = '2.0.0';
15
54
  class KnowledgeStore {
16
55
  dataPath;
17
56
  data = null;
@@ -28,17 +67,26 @@ class KnowledgeStore {
28
67
  return name.replace(/[^a-zA-Z0-9_-]/g, '_');
29
68
  }
30
69
  /**
31
- * Load knowledge data from disk
70
+ * Load knowledge data from disk.
71
+ *
72
+ * Includes automatic migration for older data formats.
32
73
  */
33
74
  async load() {
34
75
  if ((0, fs_1.existsSync)(this.dataPath)) {
35
76
  try {
36
77
  const content = await (0, promises_1.readFile)(this.dataPath, 'utf-8');
37
78
  const parsed = JSON.parse(content);
38
- // Migration: ensure businessTerms array exists (for old data files)
79
+ // Migration: ensure arrays exist (for old data files)
39
80
  if (!parsed.businessTerms) {
40
81
  parsed.businessTerms = [];
41
82
  }
83
+ if (!parsed.tableRelationships) {
84
+ parsed.tableRelationships = [];
85
+ }
86
+ // Update version if migrating
87
+ if (parsed.version !== KNOWLEDGE_VERSION) {
88
+ parsed.version = KNOWLEDGE_VERSION;
89
+ }
42
90
  this.data = parsed;
43
91
  }
44
92
  catch (error) {
@@ -170,6 +218,276 @@ class KnowledgeStore {
170
218
  tableDesc.updatedAt = new Date().toISOString();
171
219
  await this.save();
172
220
  }
221
+ // ============ Table Relationships (Graph Edges) ============
222
+ /**
223
+ * Get all table relationships.
224
+ *
225
+ * @returns All relationships in the knowledge store
226
+ */
227
+ getRelationships() {
228
+ return this.data?.tableRelationships ?? [];
229
+ }
230
+ /**
231
+ * Get tables related to a given table (1-hop traversal).
232
+ *
233
+ * Returns all relationships where the given table is either
234
+ * the source (from) or target (to).
235
+ *
236
+ * @param tableName - Table name to find relationships for
237
+ * @param schema - Schema name (defaults to 'public')
238
+ * @returns Array of relationships involving this table
239
+ *
240
+ * @example
241
+ * ```typescript
242
+ * const related = store.getRelatedTables('orders', 'public');
243
+ * // Returns relationships like:
244
+ * // - orders → users (FK: orders.user_id → users.id)
245
+ * // - orders → products (FK: orders.product_id → products.id)
246
+ * // - order_items → orders (FK: order_items.order_id → orders.id)
247
+ * ```
248
+ */
249
+ getRelatedTables(tableName, schema = 'public') {
250
+ return this.data?.tableRelationships.filter(rel => (rel.from.table === tableName && rel.from.schema === schema) ||
251
+ (rel.to.table === tableName && rel.to.schema === schema)) ?? [];
252
+ }
253
+ /**
254
+ * Get outgoing relationships from a table (where table is the source).
255
+ *
256
+ * @param tableName - Source table name
257
+ * @param schema - Schema name
258
+ * @returns Relationships where this table is the 'from' side
259
+ */
260
+ getOutgoingRelationships(tableName, schema = 'public') {
261
+ return this.data?.tableRelationships.filter(rel => rel.from.table === tableName && rel.from.schema === schema) ?? [];
262
+ }
263
+ /**
264
+ * Get incoming relationships to a table (where table is the target).
265
+ *
266
+ * @param tableName - Target table name
267
+ * @param schema - Schema name
268
+ * @returns Relationships where this table is the 'to' side
269
+ */
270
+ getIncomingRelationships(tableName, schema = 'public') {
271
+ return this.data?.tableRelationships.filter(rel => rel.to.table === tableName && rel.to.schema === schema) ?? [];
272
+ }
273
+ /**
274
+ * Find the shortest join path between two tables.
275
+ *
276
+ * Uses BFS (Breadth-First Search) to find the shortest path
277
+ * through the relationship graph.
278
+ *
279
+ * @param fromTable - Starting table name
280
+ * @param toTable - Destination table name
281
+ * @param schema - Schema name (defaults to 'public')
282
+ * @returns Array of relationships forming the path, or empty if no path exists
283
+ *
284
+ * @example
285
+ * ```typescript
286
+ * const path = store.findJoinPath('order_items', 'customers');
287
+ * // Returns path like:
288
+ * // [
289
+ * // { from: 'order_items', to: 'orders', joinCondition: '...' },
290
+ * // { from: 'orders', to: 'customers', joinCondition: '...' }
291
+ * // ]
292
+ * ```
293
+ */
294
+ findJoinPath(fromTable, toTable, schema = 'public') {
295
+ if (fromTable === toTable)
296
+ return [];
297
+ const visited = new Set();
298
+ const queue = [
299
+ { table: fromTable, path: [] }
300
+ ];
301
+ while (queue.length > 0) {
302
+ const { table, path } = queue.shift();
303
+ const tableKey = `${schema}.${table}`;
304
+ if (visited.has(tableKey))
305
+ continue;
306
+ visited.add(tableKey);
307
+ // Get all relationships for current table
308
+ const relationships = this.getRelatedTables(table, schema);
309
+ for (const rel of relationships) {
310
+ // Determine the next table in the path
311
+ const isFromCurrent = rel.from.table === table && rel.from.schema === schema;
312
+ const nextTable = isFromCurrent ? rel.to.table : rel.from.table;
313
+ const nextSchema = isFromCurrent ? rel.to.schema : rel.from.schema;
314
+ // Skip if we've already visited
315
+ if (visited.has(`${nextSchema}.${nextTable}`))
316
+ continue;
317
+ const newPath = [...path, rel];
318
+ // Found the destination
319
+ if (nextTable === toTable && nextSchema === schema) {
320
+ return newPath;
321
+ }
322
+ // Add to queue for further exploration
323
+ queue.push({ table: nextTable, path: newPath });
324
+ }
325
+ }
326
+ // No path found
327
+ return [];
328
+ }
329
+ /**
330
+ * Get the relationship between two specific tables (if it exists).
331
+ *
332
+ * @param fromTable - Source table
333
+ * @param toTable - Target table
334
+ * @param schema - Schema name
335
+ * @returns Relationship if found, undefined otherwise
336
+ */
337
+ getRelationshipBetween(fromTable, toTable, schema = 'public') {
338
+ return this.data?.tableRelationships.find(rel => (rel.from.table === fromTable && rel.to.table === toTable &&
339
+ rel.from.schema === schema && rel.to.schema === schema) ||
340
+ (rel.from.table === toTable && rel.to.table === fromTable &&
341
+ rel.from.schema === schema && rel.to.schema === schema));
342
+ }
343
+ /**
344
+ * Add a table relationship.
345
+ *
346
+ * @param relationship - Complete relationship object
347
+ * @returns The added relationship
348
+ */
349
+ async addRelationship(relationship) {
350
+ if (!this.data) {
351
+ throw new Error('Knowledge store not loaded');
352
+ }
353
+ // Initialize if needed (migration)
354
+ if (!this.data.tableRelationships) {
355
+ this.data.tableRelationships = [];
356
+ }
357
+ // Check for duplicates (same from/to tables)
358
+ const existingIndex = this.data.tableRelationships.findIndex(r => (0, types_js_1.tableRefsEqual)(r.from, relationship.from) &&
359
+ (0, types_js_1.tableRefsEqual)(r.to, relationship.to));
360
+ if (existingIndex >= 0) {
361
+ // Update existing
362
+ this.data.tableRelationships[existingIndex] = {
363
+ ...this.data.tableRelationships[existingIndex],
364
+ ...relationship,
365
+ updatedAt: new Date().toISOString(),
366
+ };
367
+ await this.save();
368
+ return this.data.tableRelationships[existingIndex];
369
+ }
370
+ // Add new
371
+ this.data.tableRelationships.push(relationship);
372
+ await this.save();
373
+ return relationship;
374
+ }
375
+ /**
376
+ * Add a relationship from FK information (convenience method).
377
+ *
378
+ * @param params - FK parameters
379
+ * @returns The added relationship
380
+ *
381
+ * @example
382
+ * ```typescript
383
+ * await store.addRelationshipFromFK({
384
+ * fromTable: 'orders',
385
+ * fromColumn: 'user_id',
386
+ * toTable: 'users',
387
+ * toColumn: 'id',
388
+ * });
389
+ * ```
390
+ */
391
+ async addRelationshipFromFK(params) {
392
+ if (!this.data) {
393
+ throw new Error('Knowledge store not loaded');
394
+ }
395
+ const fromSchema = params.fromSchema ?? 'public';
396
+ const toSchema = params.toSchema ?? 'public';
397
+ const relationship = {
398
+ ...(0, types_js_1.createKnowledgeMeta)('auto', this.data.schemaHash),
399
+ type: 'table_relationship',
400
+ from: (0, types_js_1.createTableRef)(params.fromTable, fromSchema),
401
+ to: (0, types_js_1.createTableRef)(params.toTable, toSchema),
402
+ relationshipType: 'foreign_key',
403
+ joinCondition: `${params.fromTable}.${params.fromColumn} = ${params.toTable}.${params.toColumn}`,
404
+ cardinality: 'many-to-one',
405
+ fromColumns: [params.fromColumn],
406
+ toColumns: [params.toColumn],
407
+ isPreferred: true,
408
+ constraintName: params.constraintName,
409
+ };
410
+ return this.addRelationship(relationship);
411
+ }
412
+ /**
413
+ * Add multiple relationships at once (batch operation).
414
+ *
415
+ * @param relationships - Array of relationships to add
416
+ * @returns Number of relationships added
417
+ */
418
+ async addRelationships(relationships) {
419
+ if (!this.data) {
420
+ throw new Error('Knowledge store not loaded');
421
+ }
422
+ if (!this.data.tableRelationships) {
423
+ this.data.tableRelationships = [];
424
+ }
425
+ let addedCount = 0;
426
+ for (const rel of relationships) {
427
+ const existingIndex = this.data.tableRelationships.findIndex(r => (0, types_js_1.tableRefsEqual)(r.from, rel.from) && (0, types_js_1.tableRefsEqual)(r.to, rel.to));
428
+ if (existingIndex >= 0) {
429
+ // Update existing
430
+ this.data.tableRelationships[existingIndex] = {
431
+ ...this.data.tableRelationships[existingIndex],
432
+ ...rel,
433
+ updatedAt: new Date().toISOString(),
434
+ };
435
+ }
436
+ else {
437
+ // Add new
438
+ this.data.tableRelationships.push(rel);
439
+ addedCount++;
440
+ }
441
+ }
442
+ await this.save();
443
+ return addedCount;
444
+ }
445
+ /**
446
+ * Delete a relationship by ID.
447
+ *
448
+ * @param id - Relationship ID to delete
449
+ */
450
+ async deleteRelationship(id) {
451
+ if (!this.data) {
452
+ throw new Error('Knowledge store not loaded');
453
+ }
454
+ const index = this.data.tableRelationships.findIndex(r => r.id === id);
455
+ if (index >= 0) {
456
+ this.data.tableRelationships.splice(index, 1);
457
+ await this.save();
458
+ }
459
+ }
460
+ /**
461
+ * Get a summary of the relationship graph.
462
+ *
463
+ * @returns Graph statistics
464
+ */
465
+ getGraphSummary() {
466
+ const relationships = this.data?.tableRelationships ?? [];
467
+ const tables = this.data?.tableDescriptions ?? [];
468
+ // Find unique tables in relationships
469
+ const tablesInRelationships = new Set();
470
+ for (const rel of relationships) {
471
+ tablesInRelationships.add((0, types_js_1.tableRefToString)(rel.from));
472
+ tablesInRelationships.add((0, types_js_1.tableRefToString)(rel.to));
473
+ }
474
+ // Count by type
475
+ const byType = {
476
+ 'foreign_key': 0,
477
+ 'implicit_join': 0,
478
+ 'manual': 0,
479
+ };
480
+ for (const rel of relationships) {
481
+ byType[rel.relationshipType]++;
482
+ }
483
+ return {
484
+ nodeCount: tables.length,
485
+ edgeCount: relationships.length,
486
+ tablesWithRelationships: tablesInRelationships.size,
487
+ isolatedTables: tables.length - Math.min(tablesInRelationships.size, tables.length),
488
+ relationshipsByType: byType,
489
+ };
490
+ }
173
491
  // ============ Query Examples ============
174
492
  /**
175
493
  * Get all query examples
@@ -412,6 +730,11 @@ class KnowledgeStore {
412
730
  outdated.push(bt);
413
731
  }
414
732
  }
733
+ for (const rel of this.data.tableRelationships ?? []) {
734
+ if (rel.schemaHash !== currentSchemaHash) {
735
+ outdated.push(rel);
736
+ }
737
+ }
415
738
  return outdated;
416
739
  }
417
740
  /**
@@ -518,6 +841,7 @@ class KnowledgeStore {
518
841
  schemaHash: '',
519
842
  lastSyncAt: new Date().toISOString(),
520
843
  tableDescriptions: [],
844
+ tableRelationships: [],
521
845
  queryExamples: [],
522
846
  businessRules: [],
523
847
  businessTerms: [],
@@ -528,7 +852,13 @@ class KnowledgeStore {
528
852
  */
529
853
  getData() {
530
854
  if (!this.data) {
531
- return { tables: [], queryExamples: [], businessRules: [], businessTerms: [] };
855
+ return {
856
+ tables: [],
857
+ relationships: [],
858
+ queryExamples: [],
859
+ businessRules: [],
860
+ businessTerms: []
861
+ };
532
862
  }
533
863
  return {
534
864
  tables: this.data.tableDescriptions.map(td => ({
@@ -537,11 +867,65 @@ class KnowledgeStore {
537
867
  description: td.description,
538
868
  columns: td.columns,
539
869
  })),
870
+ relationships: this.data.tableRelationships ?? [],
540
871
  queryExamples: this.data.queryExamples,
541
872
  businessRules: this.data.businessRules,
542
873
  businessTerms: this.data.businessTerms ?? [],
543
874
  };
544
875
  }
876
+ /**
877
+ * Build context including relationships for AI.
878
+ *
879
+ * Enhanced version that includes table relationship information
880
+ * to help AI understand how tables connect.
881
+ *
882
+ * @param tables - Tables to include
883
+ * @param userQuery - Optional user query for term matching
884
+ * @param schema - Optional schema (if not provided, searches all schemas)
885
+ * @returns Formatted context string
886
+ */
887
+ buildContextWithRelationships(tables, userQuery, schema) {
888
+ let context = this.buildContext(tables, userQuery);
889
+ // Add relationship information
890
+ // If no schema specified, find relationships across all schemas
891
+ const relevantRelationships = [];
892
+ for (const table of tables) {
893
+ // Search relationships that involve this table (in any schema if not specified)
894
+ const allRelationships = this.data?.tableRelationships ?? [];
895
+ const rels = schema
896
+ ? this.getRelatedTables(table, schema)
897
+ : allRelationships.filter(rel => rel.from.table === table || rel.to.table === table);
898
+ for (const rel of rels) {
899
+ // Avoid duplicates
900
+ if (!relevantRelationships.find(r => r.id === rel.id)) {
901
+ relevantRelationships.push(rel);
902
+ }
903
+ }
904
+ }
905
+ if (relevantRelationships.length > 0) {
906
+ const parts = [
907
+ '',
908
+ '## Table Relationships',
909
+ 'Use these relationships when joining tables:',
910
+ '',
911
+ ];
912
+ for (const rel of relevantRelationships) {
913
+ const fromStr = `${rel.from.schema}.${rel.from.table}`;
914
+ const toStr = `${rel.to.schema}.${rel.to.table}`;
915
+ parts.push(`- **${fromStr}** → **${toStr}**`);
916
+ parts.push(` Join: \`${rel.joinCondition}\``);
917
+ if (rel.cardinality) {
918
+ parts.push(` Cardinality: ${rel.cardinality}`);
919
+ }
920
+ if (rel.notes) {
921
+ parts.push(` Note: ${rel.notes}`);
922
+ }
923
+ parts.push('');
924
+ }
925
+ context += '\n' + parts.join('\n');
926
+ }
927
+ return context;
928
+ }
545
929
  }
546
930
  exports.KnowledgeStore = KnowledgeStore;
547
931
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"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"}