@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,8 +1,46 @@
1
1
  /**
2
2
  * Knowledge Store
3
- * Local JSON-based storage for table descriptions, query examples, and business rules
3
+ *
4
+ * Local JSON-based storage for the Knowledge Graph, including:
5
+ * - Table descriptions (nodes)
6
+ * - Table relationships (edges)
7
+ * - Query examples, business rules, and terms (annotations)
8
+ *
9
+ * ## Architecture
10
+ *
11
+ * The Knowledge Store implements a lightweight graph model:
12
+ *
13
+ * ```
14
+ * ┌─────────────────────────────────────────────────────────────────┐
15
+ * │ Knowledge Store │
16
+ * │ │
17
+ * │ Nodes: │
18
+ * │ - TableDescription (with embedded columns) │
19
+ * │ │
20
+ * │ Edges: │
21
+ * │ - TableRelationship (from → to with join condition) │
22
+ * │ │
23
+ * │ Annotations: │
24
+ * │ - QueryExample, BusinessRule, BusinessTerm │
25
+ * │ │
26
+ * └─────────────────────────────────────────────────────────────────┘
27
+ * ```
28
+ *
29
+ * ## Graph Traversal
30
+ *
31
+ * Provides methods for:
32
+ * - Finding related tables (1-hop)
33
+ * - Finding shortest join path (multi-hop BFS)
34
+ * - Detecting relationship types
35
+ *
36
+ * ## Future: SQLite Migration
37
+ *
38
+ * For larger graphs, consider migrating to SQLite embedded storage
39
+ * for better indexing and query performance.
40
+ *
41
+ * @module knowledge/store
4
42
  */
5
- import type { TableDescription, QueryExample, BusinessRule, BusinessTerm, KnowledgeEntry, ColumnDescription, TermCategory } from './types.js';
43
+ import type { TableDescription, TableRelationship, QueryExample, BusinessRule, BusinessTerm, KnowledgeEntry, ColumnDescription, TermCategory, RelationshipType } from './types.js';
6
44
  export declare class KnowledgeStore {
7
45
  private dataPath;
8
46
  private data;
@@ -10,7 +48,9 @@ export declare class KnowledgeStore {
10
48
  constructor(databaseId: string, workspacePath?: string);
11
49
  private sanitizeFilename;
12
50
  /**
13
- * Load knowledge data from disk
51
+ * Load knowledge data from disk.
52
+ *
53
+ * Includes automatic migration for older data formats.
14
54
  */
15
55
  load(): Promise<void>;
16
56
  /**
@@ -51,6 +91,136 @@ export declare class KnowledgeStore {
51
91
  exampleValues?: string[];
52
92
  valueMappings?: Record<string, string>;
53
93
  }): Promise<void>;
94
+ /**
95
+ * Get all table relationships.
96
+ *
97
+ * @returns All relationships in the knowledge store
98
+ */
99
+ getRelationships(): TableRelationship[];
100
+ /**
101
+ * Get tables related to a given table (1-hop traversal).
102
+ *
103
+ * Returns all relationships where the given table is either
104
+ * the source (from) or target (to).
105
+ *
106
+ * @param tableName - Table name to find relationships for
107
+ * @param schema - Schema name (defaults to 'public')
108
+ * @returns Array of relationships involving this table
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * const related = store.getRelatedTables('orders', 'public');
113
+ * // Returns relationships like:
114
+ * // - orders → users (FK: orders.user_id → users.id)
115
+ * // - orders → products (FK: orders.product_id → products.id)
116
+ * // - order_items → orders (FK: order_items.order_id → orders.id)
117
+ * ```
118
+ */
119
+ getRelatedTables(tableName: string, schema?: string): TableRelationship[];
120
+ /**
121
+ * Get outgoing relationships from a table (where table is the source).
122
+ *
123
+ * @param tableName - Source table name
124
+ * @param schema - Schema name
125
+ * @returns Relationships where this table is the 'from' side
126
+ */
127
+ getOutgoingRelationships(tableName: string, schema?: string): TableRelationship[];
128
+ /**
129
+ * Get incoming relationships to a table (where table is the target).
130
+ *
131
+ * @param tableName - Target table name
132
+ * @param schema - Schema name
133
+ * @returns Relationships where this table is the 'to' side
134
+ */
135
+ getIncomingRelationships(tableName: string, schema?: string): TableRelationship[];
136
+ /**
137
+ * Find the shortest join path between two tables.
138
+ *
139
+ * Uses BFS (Breadth-First Search) to find the shortest path
140
+ * through the relationship graph.
141
+ *
142
+ * @param fromTable - Starting table name
143
+ * @param toTable - Destination table name
144
+ * @param schema - Schema name (defaults to 'public')
145
+ * @returns Array of relationships forming the path, or empty if no path exists
146
+ *
147
+ * @example
148
+ * ```typescript
149
+ * const path = store.findJoinPath('order_items', 'customers');
150
+ * // Returns path like:
151
+ * // [
152
+ * // { from: 'order_items', to: 'orders', joinCondition: '...' },
153
+ * // { from: 'orders', to: 'customers', joinCondition: '...' }
154
+ * // ]
155
+ * ```
156
+ */
157
+ findJoinPath(fromTable: string, toTable: string, schema?: string): TableRelationship[];
158
+ /**
159
+ * Get the relationship between two specific tables (if it exists).
160
+ *
161
+ * @param fromTable - Source table
162
+ * @param toTable - Target table
163
+ * @param schema - Schema name
164
+ * @returns Relationship if found, undefined otherwise
165
+ */
166
+ getRelationshipBetween(fromTable: string, toTable: string, schema?: string): TableRelationship | undefined;
167
+ /**
168
+ * Add a table relationship.
169
+ *
170
+ * @param relationship - Complete relationship object
171
+ * @returns The added relationship
172
+ */
173
+ addRelationship(relationship: TableRelationship): Promise<TableRelationship>;
174
+ /**
175
+ * Add a relationship from FK information (convenience method).
176
+ *
177
+ * @param params - FK parameters
178
+ * @returns The added relationship
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * await store.addRelationshipFromFK({
183
+ * fromTable: 'orders',
184
+ * fromColumn: 'user_id',
185
+ * toTable: 'users',
186
+ * toColumn: 'id',
187
+ * });
188
+ * ```
189
+ */
190
+ addRelationshipFromFK(params: {
191
+ fromTable: string;
192
+ fromSchema?: string;
193
+ fromColumn: string;
194
+ toTable: string;
195
+ toSchema?: string;
196
+ toColumn: string;
197
+ constraintName?: string;
198
+ }): Promise<TableRelationship>;
199
+ /**
200
+ * Add multiple relationships at once (batch operation).
201
+ *
202
+ * @param relationships - Array of relationships to add
203
+ * @returns Number of relationships added
204
+ */
205
+ addRelationships(relationships: TableRelationship[]): Promise<number>;
206
+ /**
207
+ * Delete a relationship by ID.
208
+ *
209
+ * @param id - Relationship ID to delete
210
+ */
211
+ deleteRelationship(id: string): Promise<void>;
212
+ /**
213
+ * Get a summary of the relationship graph.
214
+ *
215
+ * @returns Graph statistics
216
+ */
217
+ getGraphSummary(): {
218
+ nodeCount: number;
219
+ edgeCount: number;
220
+ tablesWithRelationships: number;
221
+ isolatedTables: number;
222
+ relationshipsByType: Record<RelationshipType, number>;
223
+ };
54
224
  /**
55
225
  * Get all query examples
56
226
  */
@@ -161,10 +331,23 @@ export declare class KnowledgeStore {
161
331
  description?: string;
162
332
  }>;
163
333
  }>;
334
+ relationships: TableRelationship[];
164
335
  queryExamples: QueryExample[];
165
336
  businessRules: BusinessRule[];
166
337
  businessTerms: BusinessTerm[];
167
338
  };
339
+ /**
340
+ * Build context including relationships for AI.
341
+ *
342
+ * Enhanced version that includes table relationship information
343
+ * to help AI understand how tables connect.
344
+ *
345
+ * @param tables - Tables to include
346
+ * @param userQuery - Optional user query for term matching
347
+ * @param schema - Optional schema (if not provided, searches all schemas)
348
+ * @returns Formatted context string
349
+ */
350
+ buildContextWithRelationships(tables: string[], userQuery?: string, schema?: string): string;
168
351
  }
169
352
  /**
170
353
  * Create a knowledge store for a database connection
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/knowledge/store.ts"],"names":[],"mappings":"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"}