@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
@@ -568,6 +568,127 @@ class DataContextService {
568
568
  return this.metrics.getAggregatedMetrics();
569
569
  }
570
570
  // ============================================================
571
+ // Glossary (Business Terms)
572
+ // ============================================================
573
+ /**
574
+ * Get all business terms
575
+ */
576
+ getBusinessTerms() {
577
+ return this.knowledge.getBusinessTerms();
578
+ }
579
+ /**
580
+ * Find terms matching a query
581
+ */
582
+ findMatchingTerms(query) {
583
+ return this.knowledge.findMatchingTerms(query);
584
+ }
585
+ /**
586
+ * Add a business term manually
587
+ */
588
+ async addBusinessTerm(term, definition, options = {}) {
589
+ return this.knowledge.addBusinessTerm(term, definition, options);
590
+ }
591
+ /**
592
+ * Delete a business term
593
+ */
594
+ async deleteBusinessTerm(id) {
595
+ return this.knowledge.deleteBusinessTerm(id);
596
+ }
597
+ /**
598
+ * Enhance a natural language query using the glossary
599
+ *
600
+ * Matches terms from the glossary and suggests SQL conditions.
601
+ * Uses local matching first, then AI if available.
602
+ *
603
+ * @param query - Natural language query
604
+ * @returns Enhancement result with suggested conditions
605
+ */
606
+ async enhanceQuery(query) {
607
+ // Try local matching first
608
+ const localMatches = this.knowledge.findMatchingTerms(query);
609
+ if (localMatches.length > 0) {
610
+ return {
611
+ query,
612
+ enhancedQuery: query,
613
+ usedTerms: localMatches.map(t => t.term),
614
+ suggestedConditions: localMatches
615
+ .filter(t => t.sqlExpression)
616
+ .map(t => t.sqlExpression),
617
+ method: 'local',
618
+ };
619
+ }
620
+ // Try AI enhancement if available
621
+ const { isLLMAvailable, createLLMService } = await import('./llm-service.js');
622
+ if (!isLLMAvailable()) {
623
+ return {
624
+ query,
625
+ enhancedQuery: query,
626
+ usedTerms: [],
627
+ suggestedConditions: [],
628
+ method: 'local',
629
+ };
630
+ }
631
+ const terms = this.knowledge.getActiveTerms();
632
+ if (terms.length === 0) {
633
+ return {
634
+ query,
635
+ enhancedQuery: query,
636
+ usedTerms: [],
637
+ suggestedConditions: [],
638
+ method: 'local',
639
+ };
640
+ }
641
+ const llm = createLLMService();
642
+ const result = await llm.enhanceQueryWithGlossary(query, terms);
643
+ return {
644
+ query,
645
+ enhancedQuery: result.enhancedQuery,
646
+ usedTerms: result.usedTerms,
647
+ suggestedConditions: result.suggestedConditions,
648
+ method: 'ai',
649
+ };
650
+ }
651
+ /**
652
+ * Generate glossary from raw terms using AI
653
+ *
654
+ * Takes natural language term definitions and uses Claude to generate
655
+ * structured BusinessTerm entries with SQL expressions.
656
+ *
657
+ * @param rawTerms - User's term definitions in natural language
658
+ * @returns Generated BusinessTerm entries
659
+ *
660
+ * @example
661
+ * ```typescript
662
+ * const terms = await service.generateGlossary(
663
+ * "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문"
664
+ * );
665
+ * console.log(`Generated ${terms.length} terms`);
666
+ * ```
667
+ */
668
+ async generateGlossary(rawTerms) {
669
+ const { isLLMAvailable, createLLMService } = await import('./llm-service.js');
670
+ if (!isLLMAvailable()) {
671
+ throw new Error('ANTHROPIC_API_KEY not configured. Set the environment variable to use AI-powered glossary generation.');
672
+ }
673
+ // Get schema context
674
+ const schemaInfo = await this.adapter.getSchema();
675
+ const schemaContext = {
676
+ tables: schemaInfo.tables.slice(0, 20).map(table => ({
677
+ name: table.name,
678
+ columns: table.columns.map(c => ({
679
+ name: c.name,
680
+ type: c.dataType,
681
+ nullable: c.isNullable,
682
+ })),
683
+ })),
684
+ existingTerms: this.knowledge.getBusinessTerms(),
685
+ };
686
+ const llm = createLLMService();
687
+ const generatedTerms = await llm.generateGlossary(rawTerms, schemaContext, this.knowledge.getSchemaHash());
688
+ // Add to knowledge store
689
+ return this.knowledge.addBusinessTerms(generatedTerms);
690
+ }
691
+ // ============================================================
571
692
  // Lifecycle
572
693
  // ============================================================
573
694
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"context-service.js","sourceRoot":"","sources":["../../src/core/context-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-service.js","sourceRoot":"","sources":["../../src/core/context-service.ts"],"names":[],"mappings":"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"}
@@ -7,5 +7,7 @@ export { Harvester, createHarvester } from './harvester.js';
7
7
  export { FeedbackManager, createFeedbackManager } from './feedback.js';
8
8
  export { MetricsCollector, createMetricsCollector } from './metrics.js';
9
9
  export { CostEstimator, createCostEstimator } from './cost-estimator.js';
10
+ export { LLMService, createLLMService, isLLMAvailable } from './llm-service.js';
10
11
  export type { QueryResult, QueryFeedback, QueryMetrics, CostEstimation, AggregatedMetrics, ContextReference, HarvestedMetadata, DataContextConfig, } from './types.js';
12
+ export type { LLMServiceConfig, SchemaContext, GeneratedTerm, } from './llm-service.js';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGhF,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Platform-agnostic services for DataContext
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createCostEstimator = exports.CostEstimator = exports.createMetricsCollector = exports.MetricsCollector = exports.createFeedbackManager = exports.FeedbackManager = exports.createHarvester = exports.Harvester = exports.createDataContextService = exports.DataContextService = void 0;
7
+ exports.isLLMAvailable = exports.createLLMService = exports.LLMService = exports.createCostEstimator = exports.CostEstimator = exports.createMetricsCollector = exports.MetricsCollector = exports.createFeedbackManager = exports.FeedbackManager = exports.createHarvester = exports.Harvester = exports.createDataContextService = exports.DataContextService = void 0;
8
8
  // Main service
9
9
  var context_service_js_1 = require("./context-service.js");
10
10
  Object.defineProperty(exports, "DataContextService", { enumerable: true, get: function () { return context_service_js_1.DataContextService; } });
@@ -22,4 +22,8 @@ Object.defineProperty(exports, "createMetricsCollector", { enumerable: true, get
22
22
  var cost_estimator_js_1 = require("./cost-estimator.js");
23
23
  Object.defineProperty(exports, "CostEstimator", { enumerable: true, get: function () { return cost_estimator_js_1.CostEstimator; } });
24
24
  Object.defineProperty(exports, "createCostEstimator", { enumerable: true, get: function () { return cost_estimator_js_1.createCostEstimator; } });
25
+ var llm_service_js_1 = require("./llm-service.js");
26
+ Object.defineProperty(exports, "LLMService", { enumerable: true, get: function () { return llm_service_js_1.LLMService; } });
27
+ Object.defineProperty(exports, "createLLMService", { enumerable: true, get: function () { return llm_service_js_1.createLLMService; } });
28
+ Object.defineProperty(exports, "isLLMAvailable", { enumerable: true, get: function () { return llm_service_js_1.isLLMAvailable; } });
25
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,eAAe;AACf,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAErD,wBAAwB;AACxB,+CAA4D;AAAnD,yGAAA,SAAS,OAAA;AAAE,+GAAA,eAAe,OAAA;AACnC,6CAAuE;AAA9D,8GAAA,eAAe,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAC/C,2CAAwE;AAA/D,8GAAA,gBAAgB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACjD,yDAAyE;AAAhE,kHAAA,aAAa,OAAA;AAAE,wHAAA,mBAAmB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,eAAe;AACf,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAErD,wBAAwB;AACxB,+CAA4D;AAAnD,yGAAA,SAAS,OAAA;AAAE,+GAAA,eAAe,OAAA;AACnC,6CAAuE;AAA9D,8GAAA,eAAe,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAC/C,2CAAwE;AAA/D,8GAAA,gBAAgB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACjD,yDAAyE;AAAhE,kHAAA,aAAa,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC3C,mDAAgF;AAAvE,4GAAA,UAAU,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAAE,gHAAA,cAAc,OAAA"}
@@ -0,0 +1,141 @@
1
+ /**
2
+ * LLM Service Module
3
+ *
4
+ * Provides AI-powered features using Claude API.
5
+ * Used for auto-generating glossary terms, descriptions, and query suggestions.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const llm = createLLMService();
10
+ *
11
+ * // Generate glossary from user's raw terms
12
+ * const terms = await llm.generateGlossary(
13
+ * "활성 사용자, 최근 주문, VIP 고객",
14
+ * schemaContext
15
+ * );
16
+ *
17
+ * // Generate table descriptions
18
+ * const descriptions = await llm.generateTableDescriptions(tableInfo);
19
+ * ```
20
+ */
21
+ import type { BusinessTerm, TermCategory, TableDescription } from '../knowledge/types.js';
22
+ /** LLM service configuration */
23
+ export interface LLMServiceConfig {
24
+ /** Anthropic API key (defaults to ANTHROPIC_API_KEY env var) */
25
+ apiKey?: string;
26
+ /** Model to use (defaults to claude-sonnet-4-20250514) */
27
+ model?: string;
28
+ /** Maximum tokens for response */
29
+ maxTokens?: number;
30
+ }
31
+ /** Schema context for LLM prompts */
32
+ export interface SchemaContext {
33
+ tables: Array<{
34
+ name: string;
35
+ columns: Array<{
36
+ name: string;
37
+ type: string;
38
+ nullable: boolean;
39
+ }>;
40
+ }>;
41
+ existingTerms?: BusinessTerm[];
42
+ existingRules?: Array<{
43
+ name: string;
44
+ description: string;
45
+ }>;
46
+ }
47
+ /** Generated term from LLM */
48
+ export interface GeneratedTerm {
49
+ term: string;
50
+ synonyms: string[];
51
+ definition: string;
52
+ sqlExpression?: string;
53
+ appliesTo?: {
54
+ tables?: string[];
55
+ columns?: string[];
56
+ };
57
+ category?: TermCategory;
58
+ examples?: string[];
59
+ }
60
+ /** LLM Service class */
61
+ export declare class LLMService {
62
+ private client;
63
+ private model;
64
+ private maxTokens;
65
+ constructor(config?: LLMServiceConfig);
66
+ /**
67
+ * Generate glossary terms from user's raw input
68
+ *
69
+ * Takes natural language terms and generates structured BusinessTerm entries
70
+ * with SQL expressions and proper categorization.
71
+ *
72
+ * @param rawTerms - User's raw term input (comma-separated, YAML, or natural language)
73
+ * @param context - Database schema context
74
+ * @param schemaHash - Current schema hash for metadata
75
+ * @returns Array of generated BusinessTerm entries
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * const terms = await llm.generateGlossary(
80
+ * "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문",
81
+ * { tables: [{ name: 'users', columns: [...] }] },
82
+ * "abc123"
83
+ * );
84
+ * ```
85
+ */
86
+ generateGlossary(rawTerms: string, context: SchemaContext, schemaHash?: string): Promise<BusinessTerm[]>;
87
+ /**
88
+ * Generate table/column descriptions from schema
89
+ *
90
+ * Analyzes table and column names to generate meaningful descriptions.
91
+ * Useful for cold-start when no documentation exists.
92
+ *
93
+ * @param tableInfo - Table schema information
94
+ * @param schemaHash - Current schema hash
95
+ * @returns Generated TableDescription
96
+ */
97
+ generateTableDescription(tableInfo: {
98
+ name: string;
99
+ columns: Array<{
100
+ name: string;
101
+ type: string;
102
+ nullable: boolean;
103
+ }>;
104
+ sampleData?: Record<string, unknown>[];
105
+ }, schemaHash?: string): Promise<Omit<TableDescription, keyof import('../knowledge/types.js').KnowledgeMeta | 'type'>>;
106
+ /**
107
+ * Enhance a user query with glossary context
108
+ *
109
+ * Takes a natural language query and returns an enhanced version
110
+ * with term definitions resolved.
111
+ *
112
+ * @param query - User's natural language query
113
+ * @param terms - Available business terms
114
+ * @returns Enhanced query with context
115
+ */
116
+ enhanceQueryWithGlossary(query: string, terms: BusinessTerm[]): Promise<{
117
+ enhancedQuery: string;
118
+ usedTerms: string[];
119
+ suggestedConditions: string[];
120
+ }>;
121
+ /**
122
+ * Parse JSON response from Claude, handling markdown code blocks
123
+ */
124
+ private parseJsonResponse;
125
+ /**
126
+ * Format schema context for prompts
127
+ */
128
+ private formatSchemaContext;
129
+ }
130
+ /**
131
+ * Create an LLM service instance
132
+ *
133
+ * @param config - Service configuration
134
+ * @returns LLMService instance
135
+ */
136
+ export declare function createLLMService(config?: LLMServiceConfig): LLMService;
137
+ /**
138
+ * Check if LLM service is available (API key configured)
139
+ */
140
+ export declare function isLLMAvailable(): boolean;
141
+ //# sourceMappingURL=llm-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm-service.d.ts","sourceRoot":"","sources":["../../src/core/llm-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAwB;AACxB,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,GAAE,gBAAqB;IAczC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EACtB,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAuE1B;;;;;;;;;OASG;IACG,wBAAwB,CAC5B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAClE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACxC,EACD,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,OAAO,uBAAuB,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;IA4ChG;;;;;;;;;OASG;IACG,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EAAE,GACpB,OAAO,CAAC;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IAgDF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAU5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,UAAU,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
@@ -0,0 +1,284 @@
1
+ "use strict";
2
+ /**
3
+ * LLM Service Module
4
+ *
5
+ * Provides AI-powered features using Claude API.
6
+ * Used for auto-generating glossary terms, descriptions, and query suggestions.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const llm = createLLMService();
11
+ *
12
+ * // Generate glossary from user's raw terms
13
+ * const terms = await llm.generateGlossary(
14
+ * "활성 사용자, 최근 주문, VIP 고객",
15
+ * schemaContext
16
+ * );
17
+ *
18
+ * // Generate table descriptions
19
+ * const descriptions = await llm.generateTableDescriptions(tableInfo);
20
+ * ```
21
+ */
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.LLMService = void 0;
27
+ exports.createLLMService = createLLMService;
28
+ exports.isLLMAvailable = isLLMAvailable;
29
+ const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
30
+ const types_js_1 = require("../knowledge/types.js");
31
+ /** LLM Service class */
32
+ class LLMService {
33
+ client;
34
+ model;
35
+ maxTokens;
36
+ constructor(config = {}) {
37
+ const apiKey = config.apiKey || process.env.ANTHROPIC_API_KEY;
38
+ if (!apiKey) {
39
+ throw new Error('Anthropic API key not found. Set ANTHROPIC_API_KEY environment variable or pass apiKey in config.');
40
+ }
41
+ this.client = new sdk_1.default({ apiKey });
42
+ this.model = config.model || process.env.ANTHROPIC_MODEL || 'claude-sonnet-4-20250514';
43
+ this.maxTokens = config.maxTokens || 4096;
44
+ }
45
+ /**
46
+ * Generate glossary terms from user's raw input
47
+ *
48
+ * Takes natural language terms and generates structured BusinessTerm entries
49
+ * with SQL expressions and proper categorization.
50
+ *
51
+ * @param rawTerms - User's raw term input (comma-separated, YAML, or natural language)
52
+ * @param context - Database schema context
53
+ * @param schemaHash - Current schema hash for metadata
54
+ * @returns Array of generated BusinessTerm entries
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * const terms = await llm.generateGlossary(
59
+ * "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문",
60
+ * { tables: [{ name: 'users', columns: [...] }] },
61
+ * "abc123"
62
+ * );
63
+ * ```
64
+ */
65
+ async generateGlossary(rawTerms, context, schemaHash = '') {
66
+ const systemPrompt = `You are a database context expert. Your job is to analyze user-provided business terms and generate structured glossary entries that can be used to translate natural language queries into accurate SQL.
67
+
68
+ IMPORTANT RULES:
69
+ 1. Generate SQL expressions that are syntactically correct for the given schema
70
+ 2. Match terms to actual table/column names in the schema
71
+ 3. Be precise with data types (e.g., integer status codes, date intervals)
72
+ 4. Include synonyms in multiple languages if the term suggests it
73
+ 5. Categorize terms appropriately: status, time, money, entity, metric, filter, custom
74
+
75
+ OUTPUT FORMAT: Return a JSON array of term objects. Each object must have:
76
+ - term: The primary term name
77
+ - synonyms: Array of alternative names (include English, Korean if applicable)
78
+ - definition: Clear explanation of what this term means
79
+ - sqlExpression: SQL condition or expression (if applicable)
80
+ - appliesTo: { tables?: string[], columns?: string[] }
81
+ - category: One of: status, time, money, entity, metric, filter, custom
82
+ - examples: Array of example usage in natural language queries
83
+
84
+ Return ONLY the JSON array, no other text.`;
85
+ const schemaInfo = this.formatSchemaContext(context);
86
+ const userPrompt = `DATABASE SCHEMA:
87
+ ${schemaInfo}
88
+
89
+ ${context.existingTerms?.length ? `EXISTING TERMS (avoid duplicates):
90
+ ${context.existingTerms.map(t => `- ${t.term}: ${t.definition}`).join('\n')}
91
+ ` : ''}
92
+
93
+ USER'S RAW TERMS TO PROCESS:
94
+ ${rawTerms}
95
+
96
+ Generate structured glossary entries for these terms. Match them to the actual schema above.`;
97
+ try {
98
+ const response = await this.client.messages.create({
99
+ model: this.model,
100
+ max_tokens: this.maxTokens,
101
+ messages: [
102
+ { role: 'user', content: userPrompt }
103
+ ],
104
+ system: systemPrompt,
105
+ });
106
+ const content = response.content[0];
107
+ if (content.type !== 'text') {
108
+ throw new Error('Unexpected response type from Claude');
109
+ }
110
+ // Parse JSON response
111
+ const generated = this.parseJsonResponse(content.text);
112
+ // Convert to BusinessTerm with metadata
113
+ return generated.map(term => ({
114
+ ...(0, types_js_1.createKnowledgeMeta)('auto', schemaHash),
115
+ type: 'business_term',
116
+ term: term.term,
117
+ synonyms: term.synonyms || [],
118
+ definition: term.definition,
119
+ sqlExpression: term.sqlExpression,
120
+ appliesTo: term.appliesTo,
121
+ category: term.category,
122
+ examples: term.examples,
123
+ isActive: true,
124
+ }));
125
+ }
126
+ catch (error) {
127
+ throw new Error(`Failed to generate glossary: ${error instanceof Error ? error.message : String(error)}`);
128
+ }
129
+ }
130
+ /**
131
+ * Generate table/column descriptions from schema
132
+ *
133
+ * Analyzes table and column names to generate meaningful descriptions.
134
+ * Useful for cold-start when no documentation exists.
135
+ *
136
+ * @param tableInfo - Table schema information
137
+ * @param schemaHash - Current schema hash
138
+ * @returns Generated TableDescription
139
+ */
140
+ async generateTableDescription(tableInfo, schemaHash = '') {
141
+ const systemPrompt = `You are a database documentation expert. Analyze the table structure and generate clear, useful descriptions.
142
+
143
+ OUTPUT FORMAT: Return a JSON object with:
144
+ - description: One sentence describing the table's purpose
145
+ - purpose: Detailed explanation of the table's role
146
+ - columns: Array of { name: string, description: string, valueMappings?: Record<string, string> }
147
+ - tags: Array of relevant tags
148
+
149
+ Return ONLY the JSON object, no other text.`;
150
+ const sampleDataStr = tableInfo.sampleData
151
+ ? `\n\nSAMPLE DATA:\n${JSON.stringify(tableInfo.sampleData.slice(0, 3), null, 2)}`
152
+ : '';
153
+ const userPrompt = `TABLE: ${tableInfo.name}
154
+
155
+ COLUMNS:
156
+ ${tableInfo.columns.map(c => `- ${c.name} (${c.type}${c.nullable ? ', nullable' : ''})`).join('\n')}
157
+ ${sampleDataStr}
158
+
159
+ Generate descriptions for this table and its columns.`;
160
+ try {
161
+ const response = await this.client.messages.create({
162
+ model: this.model,
163
+ max_tokens: this.maxTokens,
164
+ messages: [
165
+ { role: 'user', content: userPrompt }
166
+ ],
167
+ system: systemPrompt,
168
+ });
169
+ const content = response.content[0];
170
+ if (content.type !== 'text') {
171
+ throw new Error('Unexpected response type from Claude');
172
+ }
173
+ return this.parseJsonResponse(content.text);
174
+ }
175
+ catch (error) {
176
+ throw new Error(`Failed to generate table description: ${error instanceof Error ? error.message : String(error)}`);
177
+ }
178
+ }
179
+ /**
180
+ * Enhance a user query with glossary context
181
+ *
182
+ * Takes a natural language query and returns an enhanced version
183
+ * with term definitions resolved.
184
+ *
185
+ * @param query - User's natural language query
186
+ * @param terms - Available business terms
187
+ * @returns Enhanced query with context
188
+ */
189
+ async enhanceQueryWithGlossary(query, terms) {
190
+ if (terms.length === 0) {
191
+ return { enhancedQuery: query, usedTerms: [], suggestedConditions: [] };
192
+ }
193
+ const systemPrompt = `You are a query enhancement assistant. Your job is to identify business terms in user queries and suggest SQL conditions based on the glossary.
194
+
195
+ OUTPUT FORMAT: Return a JSON object with:
196
+ - enhancedQuery: The query with term definitions inline
197
+ - usedTerms: Array of term names that were found in the query
198
+ - suggestedConditions: Array of SQL conditions to apply
199
+
200
+ Return ONLY the JSON object, no other text.`;
201
+ const glossaryStr = terms
202
+ .filter(t => t.isActive)
203
+ .map(t => `- "${t.term}" (${t.synonyms.join(', ')}): ${t.definition}${t.sqlExpression ? ` → SQL: ${t.sqlExpression}` : ''}`)
204
+ .join('\n');
205
+ const userPrompt = `GLOSSARY:
206
+ ${glossaryStr}
207
+
208
+ USER QUERY:
209
+ ${query}
210
+
211
+ Identify any terms from the glossary used in this query and suggest SQL conditions.`;
212
+ try {
213
+ const response = await this.client.messages.create({
214
+ model: this.model,
215
+ max_tokens: 1024,
216
+ messages: [
217
+ { role: 'user', content: userPrompt }
218
+ ],
219
+ system: systemPrompt,
220
+ });
221
+ const content = response.content[0];
222
+ if (content.type !== 'text') {
223
+ return { enhancedQuery: query, usedTerms: [], suggestedConditions: [] };
224
+ }
225
+ return this.parseJsonResponse(content.text);
226
+ }
227
+ catch {
228
+ return { enhancedQuery: query, usedTerms: [], suggestedConditions: [] };
229
+ }
230
+ }
231
+ /**
232
+ * Parse JSON response from Claude, handling markdown code blocks
233
+ */
234
+ parseJsonResponse(text) {
235
+ // Remove markdown code blocks if present
236
+ let cleaned = text.trim();
237
+ if (cleaned.startsWith('```json')) {
238
+ cleaned = cleaned.slice(7);
239
+ }
240
+ else if (cleaned.startsWith('```')) {
241
+ cleaned = cleaned.slice(3);
242
+ }
243
+ if (cleaned.endsWith('```')) {
244
+ cleaned = cleaned.slice(0, -3);
245
+ }
246
+ cleaned = cleaned.trim();
247
+ try {
248
+ return JSON.parse(cleaned);
249
+ }
250
+ catch {
251
+ throw new Error(`Failed to parse JSON response: ${text.slice(0, 200)}...`);
252
+ }
253
+ }
254
+ /**
255
+ * Format schema context for prompts
256
+ */
257
+ formatSchemaContext(context) {
258
+ return context.tables
259
+ .map(table => {
260
+ const cols = table.columns
261
+ .map(c => ` - ${c.name} (${c.type}${c.nullable ? ', nullable' : ''})`)
262
+ .join('\n');
263
+ return `Table: ${table.name}\n${cols}`;
264
+ })
265
+ .join('\n\n');
266
+ }
267
+ }
268
+ exports.LLMService = LLMService;
269
+ /**
270
+ * Create an LLM service instance
271
+ *
272
+ * @param config - Service configuration
273
+ * @returns LLMService instance
274
+ */
275
+ function createLLMService(config = {}) {
276
+ return new LLMService(config);
277
+ }
278
+ /**
279
+ * Check if LLM service is available (API key configured)
280
+ */
281
+ function isLLMAvailable() {
282
+ return !!process.env.ANTHROPIC_API_KEY;
283
+ }
284
+ //# sourceMappingURL=llm-service.js.map