@kiyeonjeon21/datacontext 0.2.0 → 0.3.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 (51) hide show
  1. package/.cursorrules +12 -0
  2. package/.env.example +8 -0
  3. package/.github/workflows/ci.yml +21 -1
  4. package/.github/workflows/publish.yml +21 -1
  5. package/CHANGELOG.md +41 -0
  6. package/README.md +247 -239
  7. package/datacontext.db +0 -0
  8. package/dist/api/server.d.ts.map +1 -1
  9. package/dist/api/server.js +145 -0
  10. package/dist/api/server.js.map +1 -1
  11. package/dist/api/start-server.d.ts +10 -0
  12. package/dist/api/start-server.d.ts.map +1 -0
  13. package/dist/api/start-server.js +73 -0
  14. package/dist/api/start-server.js.map +1 -0
  15. package/dist/cli/index.js +462 -0
  16. package/dist/cli/index.js.map +1 -1
  17. package/dist/core/context-service.d.ts +58 -0
  18. package/dist/core/context-service.d.ts.map +1 -1
  19. package/dist/core/context-service.js +121 -0
  20. package/dist/core/context-service.js.map +1 -1
  21. package/dist/core/index.d.ts +2 -0
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +5 -1
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/llm-service.d.ts +141 -0
  26. package/dist/core/llm-service.d.ts.map +1 -0
  27. package/dist/core/llm-service.js +284 -0
  28. package/dist/core/llm-service.js.map +1 -0
  29. package/dist/knowledge/store.d.ts +56 -3
  30. package/dist/knowledge/store.d.ts.map +1 -1
  31. package/dist/knowledge/store.js +193 -7
  32. package/dist/knowledge/store.js.map +1 -1
  33. package/dist/knowledge/types.d.ts +43 -1
  34. package/dist/knowledge/types.d.ts.map +1 -1
  35. package/dist/knowledge/types.js.map +1 -1
  36. package/dist/mcp/tools.d.ts.map +1 -1
  37. package/dist/mcp/tools.js +365 -0
  38. package/dist/mcp/tools.js.map +1 -1
  39. package/docs/API.md +173 -0
  40. package/docs/DEMO_SCRIPT.md +210 -0
  41. package/docs/SYNC_GUIDE.md +242 -0
  42. package/package.json +4 -1
  43. package/src/api/server.ts +160 -0
  44. package/src/api/start-server.ts +78 -0
  45. package/src/cli/index.ts +534 -0
  46. package/src/core/context-service.ts +157 -0
  47. package/src/core/index.ts +7 -0
  48. package/src/core/llm-service.ts +359 -0
  49. package/src/knowledge/store.ts +232 -7
  50. package/src/knowledge/types.ts +45 -1
  51. package/src/mcp/tools.ts +415 -0
package/dist/mcp/tools.js CHANGED
@@ -244,6 +244,98 @@ function getMcpTools() {
244
244
  required: ['name', 'description', 'tables'],
245
245
  },
246
246
  },
247
+ // === Glossary Tools ===
248
+ {
249
+ name: 'generate_glossary',
250
+ description: 'Generate business glossary/terms from user input using AI. Takes natural language term definitions and creates structured SQL-ready glossary entries. Requires ANTHROPIC_API_KEY to be set.',
251
+ inputSchema: {
252
+ type: 'object',
253
+ properties: {
254
+ terms: {
255
+ type: 'string',
256
+ description: 'Raw term definitions in natural language. Can be comma-separated, one per line, or structured (YAML-like). Example: "활성 사용자 = status가 1인 사용자\\n최근 주문 = 30일 이내 주문\\nVIP = 주문 10건 이상"',
257
+ },
258
+ },
259
+ required: ['terms'],
260
+ },
261
+ },
262
+ {
263
+ name: 'add_term',
264
+ description: 'Add a single business term to the glossary manually.',
265
+ inputSchema: {
266
+ type: 'object',
267
+ properties: {
268
+ term: {
269
+ type: 'string',
270
+ description: 'The business term (e.g., "활성 사용자", "active user").',
271
+ },
272
+ definition: {
273
+ type: 'string',
274
+ description: 'Human-readable definition of the term.',
275
+ },
276
+ sql: {
277
+ type: 'string',
278
+ description: 'SQL expression for this term (e.g., "status = 1").',
279
+ },
280
+ synonyms: {
281
+ type: 'array',
282
+ items: { type: 'string' },
283
+ description: 'Alternative names for this term.',
284
+ },
285
+ tables: {
286
+ type: 'array',
287
+ items: { type: 'string' },
288
+ description: 'Tables this term applies to.',
289
+ },
290
+ },
291
+ required: ['term', 'definition'],
292
+ },
293
+ },
294
+ {
295
+ name: 'list_terms',
296
+ description: 'List all business terms in the glossary.',
297
+ inputSchema: {
298
+ type: 'object',
299
+ properties: {
300
+ category: {
301
+ type: 'string',
302
+ description: 'Filter by category (status, time, money, entity, metric, filter, custom).',
303
+ },
304
+ table: {
305
+ type: 'string',
306
+ description: 'Filter by table name.',
307
+ },
308
+ },
309
+ },
310
+ },
311
+ {
312
+ name: 'search_terms',
313
+ description: 'Search for business terms that match a query. Useful for finding relevant terms before generating SQL.',
314
+ inputSchema: {
315
+ type: 'object',
316
+ properties: {
317
+ query: {
318
+ type: 'string',
319
+ description: 'Search query to match against term names and synonyms.',
320
+ },
321
+ },
322
+ required: ['query'],
323
+ },
324
+ },
325
+ {
326
+ name: 'enhance_query',
327
+ description: 'Enhance a natural language query by matching it against the business glossary. Returns suggested SQL conditions based on matched terms. Requires ANTHROPIC_API_KEY.',
328
+ inputSchema: {
329
+ type: 'object',
330
+ properties: {
331
+ query: {
332
+ type: 'string',
333
+ description: 'Natural language query to enhance (e.g., "활성 사용자 중 최근 주문한 VIP 고객")',
334
+ },
335
+ },
336
+ required: ['query'],
337
+ },
338
+ },
247
339
  ];
248
340
  }
249
341
  /**
@@ -274,6 +366,17 @@ async function handleToolCall(name, args, context) {
274
366
  return handleAddQueryExample(args, context);
275
367
  case 'add_business_rule':
276
368
  return handleAddBusinessRule(args, context);
369
+ // === Glossary Tools ===
370
+ case 'generate_glossary':
371
+ return handleGenerateGlossary(args, context);
372
+ case 'add_term':
373
+ return handleAddTerm(args, context);
374
+ case 'list_terms':
375
+ return handleListTerms(args, context);
376
+ case 'search_terms':
377
+ return handleSearchTerms(args, context);
378
+ case 'enhance_query':
379
+ return handleEnhanceQuery(args, context);
277
380
  default:
278
381
  throw new Error(`Unknown tool: ${name}`);
279
382
  }
@@ -705,6 +808,268 @@ async function handleAddBusinessRule(args, context) {
705
808
  };
706
809
  }
707
810
  // ============================================================
811
+ // Glossary Tool Handlers
812
+ // ============================================================
813
+ /**
814
+ * Handle generate_glossary tool - AI-powered glossary generation
815
+ */
816
+ async function handleGenerateGlossary(args, context) {
817
+ const terms = args.terms;
818
+ if (!terms) {
819
+ throw new Error('terms is required');
820
+ }
821
+ // Check if LLM is available
822
+ const { isLLMAvailable, createLLMService } = await import('../core/llm-service.js');
823
+ if (!isLLMAvailable()) {
824
+ return {
825
+ success: false,
826
+ error: 'ANTHROPIC_API_KEY not configured. Set the environment variable to use AI-powered glossary generation.',
827
+ tip: 'You can still add terms manually using the add_term tool.',
828
+ };
829
+ }
830
+ try {
831
+ // Get schema context
832
+ const schemaInfo = await context.adapter.getSchema();
833
+ const schemaContext = {
834
+ tables: schemaInfo.tables.slice(0, 20).map(table => ({
835
+ name: table.name,
836
+ columns: table.columns.map(c => ({
837
+ name: c.name,
838
+ type: c.dataType,
839
+ nullable: c.isNullable,
840
+ })),
841
+ })),
842
+ existingTerms: context.knowledge.getBusinessTerms(),
843
+ };
844
+ const llm = createLLMService();
845
+ const generatedTerms = await llm.generateGlossary(terms, schemaContext, context.knowledge.getSchemaHash());
846
+ // Add to knowledge store
847
+ const added = await context.knowledge.addBusinessTerms(generatedTerms);
848
+ return {
849
+ success: true,
850
+ generated: added.length,
851
+ terms: added.map(t => ({
852
+ term: t.term,
853
+ definition: t.definition,
854
+ sql: t.sqlExpression,
855
+ category: t.category,
856
+ tables: t.appliesTo?.tables,
857
+ })),
858
+ message: `Generated and added ${added.length} business term(s) to glossary.`,
859
+ tip: 'These terms will now be used to enhance query understanding.',
860
+ };
861
+ }
862
+ catch (error) {
863
+ return {
864
+ success: false,
865
+ error: error instanceof Error ? error.message : String(error),
866
+ tip: 'Check your API key and try again with simpler term definitions.',
867
+ };
868
+ }
869
+ }
870
+ /**
871
+ * Handle add_term tool - manual term addition
872
+ */
873
+ async function handleAddTerm(args, context) {
874
+ const term = args.term;
875
+ const definition = args.definition;
876
+ const sql = args.sql;
877
+ const synonyms = args.synonyms;
878
+ const tables = args.tables;
879
+ if (!term)
880
+ throw new Error('term is required');
881
+ if (!definition)
882
+ throw new Error('definition is required');
883
+ const added = await context.knowledge.addBusinessTerm(term, definition, {
884
+ sqlExpression: sql,
885
+ synonyms,
886
+ appliesTo: tables ? { tables } : undefined,
887
+ });
888
+ return {
889
+ success: true,
890
+ term: added.term,
891
+ definition: added.definition,
892
+ sql: added.sqlExpression,
893
+ synonyms: added.synonyms,
894
+ tables: added.appliesTo?.tables,
895
+ message: `Added term "${term}" to glossary.`,
896
+ tip: 'This term will be used in query context when relevant.',
897
+ };
898
+ }
899
+ /**
900
+ * Handle list_terms tool
901
+ */
902
+ async function handleListTerms(args, context) {
903
+ const category = args.category;
904
+ const table = args.table;
905
+ let terms = context.knowledge.getActiveTerms();
906
+ // Apply filters
907
+ if (category) {
908
+ terms = terms.filter(t => t.category === category);
909
+ }
910
+ if (table) {
911
+ terms = terms.filter(t => t.appliesTo?.tables?.includes(table));
912
+ }
913
+ if (terms.length === 0) {
914
+ return {
915
+ count: 0,
916
+ terms: [],
917
+ message: 'No business terms found.',
918
+ tip: 'Add terms using add_term or generate_glossary.',
919
+ };
920
+ }
921
+ return {
922
+ count: terms.length,
923
+ terms: terms.map(t => ({
924
+ id: t.id,
925
+ term: t.term,
926
+ synonyms: t.synonyms,
927
+ definition: t.definition,
928
+ sql: t.sqlExpression,
929
+ category: t.category,
930
+ tables: t.appliesTo?.tables,
931
+ isActive: t.isActive,
932
+ })),
933
+ categories: [...new Set(terms.map(t => t.category).filter(Boolean))],
934
+ };
935
+ }
936
+ /**
937
+ * Handle search_terms tool
938
+ */
939
+ async function handleSearchTerms(args, context) {
940
+ const query = args.query;
941
+ if (!query) {
942
+ throw new Error('query is required');
943
+ }
944
+ const terms = context.knowledge.findMatchingTerms(query);
945
+ if (terms.length === 0) {
946
+ return {
947
+ count: 0,
948
+ terms: [],
949
+ message: `No terms found matching "${query}".`,
950
+ tip: 'Try a broader search or check available terms with list_terms.',
951
+ };
952
+ }
953
+ return {
954
+ query,
955
+ count: terms.length,
956
+ terms: terms.map(t => ({
957
+ term: t.term,
958
+ synonyms: t.synonyms,
959
+ definition: t.definition,
960
+ sql: t.sqlExpression,
961
+ category: t.category,
962
+ relevance: calculateTermRelevance(query, t),
963
+ })),
964
+ suggestedConditions: terms
965
+ .filter(t => t.sqlExpression)
966
+ .map(t => t.sqlExpression),
967
+ message: `Found ${terms.length} term(s) matching "${query}".`,
968
+ };
969
+ }
970
+ /**
971
+ * Handle enhance_query tool - AI-powered query enhancement
972
+ */
973
+ async function handleEnhanceQuery(args, context) {
974
+ const query = args.query;
975
+ if (!query) {
976
+ throw new Error('query is required');
977
+ }
978
+ // First try local matching (no LLM)
979
+ const localMatches = context.knowledge.findMatchingTerms(query);
980
+ if (localMatches.length > 0) {
981
+ const suggestedConditions = localMatches
982
+ .filter(t => t.sqlExpression)
983
+ .map(t => t.sqlExpression);
984
+ return {
985
+ success: true,
986
+ method: 'local',
987
+ query,
988
+ enhancedQuery: query,
989
+ usedTerms: localMatches.map(t => t.term),
990
+ suggestedConditions,
991
+ terms: localMatches.map(t => ({
992
+ term: t.term,
993
+ sql: t.sqlExpression,
994
+ category: t.category,
995
+ })),
996
+ tip: 'Use these SQL conditions in your WHERE clause.',
997
+ };
998
+ }
999
+ // Try LLM enhancement if available
1000
+ const { isLLMAvailable, createLLMService } = await import('../core/llm-service.js');
1001
+ if (!isLLMAvailable()) {
1002
+ return {
1003
+ success: true,
1004
+ method: 'local',
1005
+ query,
1006
+ enhancedQuery: query,
1007
+ usedTerms: [],
1008
+ suggestedConditions: [],
1009
+ message: 'No matching terms found locally. Configure ANTHROPIC_API_KEY for AI-powered enhancement.',
1010
+ };
1011
+ }
1012
+ try {
1013
+ const terms = context.knowledge.getActiveTerms();
1014
+ if (terms.length === 0) {
1015
+ return {
1016
+ success: true,
1017
+ method: 'local',
1018
+ query,
1019
+ enhancedQuery: query,
1020
+ usedTerms: [],
1021
+ suggestedConditions: [],
1022
+ message: 'No terms in glossary. Add terms using add_term or generate_glossary.',
1023
+ };
1024
+ }
1025
+ const llm = createLLMService();
1026
+ const result = await llm.enhanceQueryWithGlossary(query, terms);
1027
+ return {
1028
+ success: true,
1029
+ method: 'ai',
1030
+ query,
1031
+ enhancedQuery: result.enhancedQuery,
1032
+ usedTerms: result.usedTerms,
1033
+ suggestedConditions: result.suggestedConditions,
1034
+ message: result.usedTerms.length > 0
1035
+ ? `Found ${result.usedTerms.length} matching term(s): ${result.usedTerms.join(', ')}`
1036
+ : 'No matching terms found.',
1037
+ tip: 'Apply suggestedConditions to your SQL WHERE clause.',
1038
+ };
1039
+ }
1040
+ catch (error) {
1041
+ return {
1042
+ success: false,
1043
+ error: error instanceof Error ? error.message : String(error),
1044
+ tip: 'Fallback to local term matching.',
1045
+ };
1046
+ }
1047
+ }
1048
+ /**
1049
+ * Calculate term relevance score
1050
+ */
1051
+ function calculateTermRelevance(query, term) {
1052
+ const lowerQuery = query.toLowerCase();
1053
+ const lowerTerm = term.term.toLowerCase();
1054
+ // Exact match = 1.0
1055
+ if (lowerTerm === lowerQuery)
1056
+ return 1.0;
1057
+ // Term contains query = 0.8
1058
+ if (lowerTerm.includes(lowerQuery))
1059
+ return 0.8;
1060
+ // Query contains term = 0.7
1061
+ if (lowerQuery.includes(lowerTerm))
1062
+ return 0.7;
1063
+ // Synonym match
1064
+ for (const syn of term.synonyms) {
1065
+ if (syn.toLowerCase() === lowerQuery)
1066
+ return 0.9;
1067
+ if (syn.toLowerCase().includes(lowerQuery))
1068
+ return 0.6;
1069
+ }
1070
+ return 0.5;
1071
+ }
1072
+ // ============================================================
708
1073
  // Utility Functions
709
1074
  // ============================================================
710
1075
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
package/docs/API.md CHANGED
@@ -460,6 +460,179 @@ GET /api/rules/candidates
460
460
 
461
461
  ---
462
462
 
463
+ ## Glossary (Business Terms)
464
+
465
+ ### List Terms
466
+
467
+ ```
468
+ GET /api/terms?category=status&table=users
469
+ ```
470
+
471
+ **Query Parameters:**
472
+ - `category` (optional) - Filter by category: `status`, `time`, `money`, `entity`, `metric`, `filter`, `custom`
473
+ - `table` (optional) - Filter by table name
474
+
475
+ **Response:**
476
+ ```json
477
+ {
478
+ "count": 2,
479
+ "terms": [
480
+ {
481
+ "id": "1234567890-abc",
482
+ "term": "활성 사용자",
483
+ "synonyms": ["active user", "활성화된 사용자"],
484
+ "definition": "status 컬럼이 1인 사용자",
485
+ "sqlExpression": "status = 1",
486
+ "appliesTo": { "tables": ["users"] },
487
+ "category": "status",
488
+ "isActive": true
489
+ }
490
+ ]
491
+ }
492
+ ```
493
+
494
+ ---
495
+
496
+ ### Search Terms
497
+
498
+ ```
499
+ GET /api/terms/search?q=활성
500
+ ```
501
+
502
+ **Query Parameters:**
503
+ - `q` (required) - Search query
504
+
505
+ **Response:**
506
+ ```json
507
+ {
508
+ "query": "활성",
509
+ "count": 1,
510
+ "terms": [...],
511
+ "suggestedConditions": ["status = 1"]
512
+ }
513
+ ```
514
+
515
+ ---
516
+
517
+ ### Add Term (Manual)
518
+
519
+ ```
520
+ POST /api/terms
521
+ ```
522
+
523
+ **Request Body:**
524
+ ```json
525
+ {
526
+ "term": "활성 사용자",
527
+ "definition": "status 컬럼이 1인 사용자",
528
+ "sql": "status = 1",
529
+ "synonyms": ["active user"],
530
+ "tables": ["users"],
531
+ "category": "status"
532
+ }
533
+ ```
534
+
535
+ **Response:**
536
+ ```json
537
+ {
538
+ "success": true,
539
+ "term": { ... }
540
+ }
541
+ ```
542
+
543
+ ---
544
+
545
+ ### Generate Glossary (AI)
546
+
547
+ ```
548
+ POST /api/terms/generate
549
+ ```
550
+
551
+ Uses Claude API to automatically generate structured glossary entries from natural language.
552
+
553
+ **Request Body:**
554
+ ```json
555
+ {
556
+ "terms": "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문\nVIP = 주문 10건 이상"
557
+ }
558
+ ```
559
+
560
+ **Response:**
561
+ ```json
562
+ {
563
+ "success": true,
564
+ "generated": 3,
565
+ "terms": [
566
+ {
567
+ "term": "활성 사용자",
568
+ "definition": "status 컬럼이 1인 사용자",
569
+ "sqlExpression": "status = 1",
570
+ "category": "status",
571
+ "appliesTo": { "tables": ["users"] }
572
+ }
573
+ ]
574
+ }
575
+ ```
576
+
577
+ **Note:** Requires `ANTHROPIC_API_KEY` environment variable.
578
+
579
+ ---
580
+
581
+ ### Delete Term
582
+
583
+ ```
584
+ DELETE /api/terms/:id
585
+ ```
586
+
587
+ **Response:**
588
+ ```json
589
+ {
590
+ "success": true,
591
+ "deleted": "1234567890-abc"
592
+ }
593
+ ```
594
+
595
+ ---
596
+
597
+ ### Enhance Query
598
+
599
+ ```
600
+ POST /api/terms/enhance
601
+ ```
602
+
603
+ Enhance a natural language query by matching it against the business glossary.
604
+ Returns suggested SQL conditions based on matched terms.
605
+
606
+ **Request Body:**
607
+ ```json
608
+ {
609
+ "query": "활성 사용자 중 최근 주문한 VIP 고객"
610
+ }
611
+ ```
612
+
613
+ **Response:**
614
+ ```json
615
+ {
616
+ "query": "활성 사용자 중 최근 주문한 VIP 고객",
617
+ "enhancedQuery": "활성 사용자 중 최근 주문한 VIP 고객",
618
+ "usedTerms": ["활성 사용자", "최근 주문", "VIP 고객"],
619
+ "suggestedConditions": [
620
+ "status = 1",
621
+ "order_date >= CURRENT_DATE - INTERVAL '30 days'",
622
+ "COUNT(order_id) >= 10"
623
+ ],
624
+ "method": "ai"
625
+ }
626
+ ```
627
+
628
+ **Notes:**
629
+ - Uses local term matching first (no API key required)
630
+ - Falls back to AI enhancement if `ANTHROPIC_API_KEY` is set
631
+ - `method` indicates whether local or AI matching was used
632
+ - Apply `suggestedConditions` to your SQL WHERE clause
633
+
634
+ ---
635
+
463
636
  ## Error Responses
464
637
 
465
638
  All error responses follow this format: