@nahisaho/yata-local 1.6.6

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 (77) hide show
  1. package/dist/auto-updater.d.ts +101 -0
  2. package/dist/auto-updater.d.ts.map +1 -0
  3. package/dist/auto-updater.js +402 -0
  4. package/dist/auto-updater.js.map +1 -0
  5. package/dist/database.d.ts +229 -0
  6. package/dist/database.d.ts.map +1 -0
  7. package/dist/database.js +959 -0
  8. package/dist/database.js.map +1 -0
  9. package/dist/index.d.ts +298 -0
  10. package/dist/index.d.ts.map +1 -0
  11. package/dist/index.js +436 -0
  12. package/dist/index.js.map +1 -0
  13. package/dist/io.d.ts +77 -0
  14. package/dist/io.d.ts.map +1 -0
  15. package/dist/io.js +403 -0
  16. package/dist/io.js.map +1 -0
  17. package/dist/kgpr/diff-engine.d.ts +110 -0
  18. package/dist/kgpr/diff-engine.d.ts.map +1 -0
  19. package/dist/kgpr/diff-engine.js +335 -0
  20. package/dist/kgpr/diff-engine.js.map +1 -0
  21. package/dist/kgpr/index.d.ts +16 -0
  22. package/dist/kgpr/index.d.ts.map +1 -0
  23. package/dist/kgpr/index.js +14 -0
  24. package/dist/kgpr/index.js.map +1 -0
  25. package/dist/kgpr/kgpr-manager.d.ts +122 -0
  26. package/dist/kgpr/kgpr-manager.d.ts.map +1 -0
  27. package/dist/kgpr/kgpr-manager.js +344 -0
  28. package/dist/kgpr/kgpr-manager.js.map +1 -0
  29. package/dist/kgpr/privacy-filter.d.ts +109 -0
  30. package/dist/kgpr/privacy-filter.d.ts.map +1 -0
  31. package/dist/kgpr/privacy-filter.js +295 -0
  32. package/dist/kgpr/privacy-filter.js.map +1 -0
  33. package/dist/kgpr/types.d.ts +234 -0
  34. package/dist/kgpr/types.d.ts.map +1 -0
  35. package/dist/kgpr/types.js +54 -0
  36. package/dist/kgpr/types.js.map +1 -0
  37. package/dist/query-engine.d.ts +78 -0
  38. package/dist/query-engine.d.ts.map +1 -0
  39. package/dist/query-engine.js +368 -0
  40. package/dist/query-engine.js.map +1 -0
  41. package/dist/reasoning.d.ts +112 -0
  42. package/dist/reasoning.d.ts.map +1 -0
  43. package/dist/reasoning.js +455 -0
  44. package/dist/reasoning.js.map +1 -0
  45. package/dist/types.d.ts +580 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +37 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/wake-sleep/cycle-manager.d.ts +76 -0
  50. package/dist/wake-sleep/cycle-manager.d.ts.map +1 -0
  51. package/dist/wake-sleep/cycle-manager.js +291 -0
  52. package/dist/wake-sleep/cycle-manager.js.map +1 -0
  53. package/dist/wake-sleep/index.d.ts +15 -0
  54. package/dist/wake-sleep/index.d.ts.map +1 -0
  55. package/dist/wake-sleep/index.js +19 -0
  56. package/dist/wake-sleep/index.js.map +1 -0
  57. package/dist/wake-sleep/pattern-compressor.d.ts +86 -0
  58. package/dist/wake-sleep/pattern-compressor.d.ts.map +1 -0
  59. package/dist/wake-sleep/pattern-compressor.js +333 -0
  60. package/dist/wake-sleep/pattern-compressor.js.map +1 -0
  61. package/dist/wake-sleep/sleep-phase.d.ts +79 -0
  62. package/dist/wake-sleep/sleep-phase.d.ts.map +1 -0
  63. package/dist/wake-sleep/sleep-phase.js +329 -0
  64. package/dist/wake-sleep/sleep-phase.js.map +1 -0
  65. package/dist/wake-sleep/types.d.ts +244 -0
  66. package/dist/wake-sleep/types.d.ts.map +1 -0
  67. package/dist/wake-sleep/types.js +35 -0
  68. package/dist/wake-sleep/types.js.map +1 -0
  69. package/dist/wake-sleep/wake-phase.d.ts +83 -0
  70. package/dist/wake-sleep/wake-phase.d.ts.map +1 -0
  71. package/dist/wake-sleep/wake-phase.js +457 -0
  72. package/dist/wake-sleep/wake-phase.js.map +1 -0
  73. package/dist/yata-bridge.d.ts +78 -0
  74. package/dist/yata-bridge.d.ts.map +1 -0
  75. package/dist/yata-bridge.js +193 -0
  76. package/dist/yata-bridge.js.map +1 -0
  77. package/package.json +60 -0
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @fileoverview Wake Phase Implementation for YATA Local
3
+ * @module @nahisaho/yata-local/wake-sleep
4
+ * @version 0.1.0
5
+ * @license MIT
6
+ *
7
+ * Trace: REQ-WSL-001, TSK-WSL-001
8
+ */
9
+ import type { LocalPatternCandidate, WakeObserveOptions, WakeObserveResult } from './types.js';
10
+ /**
11
+ * Wake Phase - Pattern Observation and Extraction
12
+ *
13
+ * Responsible for:
14
+ * - Scanning source files
15
+ * - Extracting pattern candidates
16
+ * - Computing initial confidence scores
17
+ */
18
+ export declare class LocalWakePhase {
19
+ private readonly options;
20
+ constructor(options?: Partial<WakeObserveOptions>);
21
+ /**
22
+ * Observe a single file and extract pattern candidates
23
+ */
24
+ observe(filePath: string): Promise<LocalPatternCandidate[]>;
25
+ /**
26
+ * Observe a directory recursively
27
+ */
28
+ observeDirectory(dirPath: string): Promise<WakeObserveResult>;
29
+ /**
30
+ * Detect language from file extension
31
+ */
32
+ private detectLanguage;
33
+ /**
34
+ * Extract patterns from source content
35
+ * Uses simple regex-based parsing for lightweight extraction
36
+ */
37
+ private extractPatterns;
38
+ /**
39
+ * Extract function patterns
40
+ */
41
+ private extractFunctions;
42
+ /**
43
+ * Extract class patterns
44
+ */
45
+ private extractClasses;
46
+ /**
47
+ * Extract interface patterns (TypeScript)
48
+ */
49
+ private extractInterfaces;
50
+ /**
51
+ * Extract type patterns (TypeScript)
52
+ */
53
+ private extractTypes;
54
+ /**
55
+ * Extract import patterns
56
+ */
57
+ private extractImports;
58
+ /**
59
+ * Extract export patterns
60
+ */
61
+ private extractExports;
62
+ /**
63
+ * Extract a code block (braces-delimited)
64
+ */
65
+ private extractBlock;
66
+ /**
67
+ * Calculate confidence score for a pattern
68
+ */
69
+ private calculateConfidence;
70
+ /**
71
+ * Create a pattern candidate with computed signature
72
+ */
73
+ private createCandidate;
74
+ /**
75
+ * Compute a signature for similarity matching
76
+ */
77
+ private computeSignature;
78
+ }
79
+ /**
80
+ * Factory function to create a LocalWakePhase instance
81
+ */
82
+ export declare function createLocalWakePhase(options?: Partial<WakeObserveOptions>): LocalWakePhase;
83
+ //# sourceMappingURL=wake-phase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wake-phase.d.ts","sourceRoot":"","sources":["../../src/wake-sleep/wake-phase.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,qBAAqB,EAErB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAEpB;;;;;;;GAOG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA+B;gBAE3C,OAAO,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAUrD;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAoBjE;;OAEG;IACG,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+DnE;;OAEG;IACH,OAAO,CAAC,cAAc;IAgBtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA2CxB;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA+BzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAwCpB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,OAAO,CAAC,YAAY;IA6CpB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAgD3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,gBAAgB;CAyBzB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,cAAc,CAE1F"}
@@ -0,0 +1,457 @@
1
+ /**
2
+ * @fileoverview Wake Phase Implementation for YATA Local
3
+ * @module @nahisaho/yata-local/wake-sleep
4
+ * @version 0.1.0
5
+ * @license MIT
6
+ *
7
+ * Trace: REQ-WSL-001, TSK-WSL-001
8
+ */
9
+ import { randomUUID } from 'crypto';
10
+ import * as fs from 'fs/promises';
11
+ import * as path from 'path';
12
+ /**
13
+ * Wake Phase - Pattern Observation and Extraction
14
+ *
15
+ * Responsible for:
16
+ * - Scanning source files
17
+ * - Extracting pattern candidates
18
+ * - Computing initial confidence scores
19
+ */
20
+ export class LocalWakePhase {
21
+ options;
22
+ constructor(options = {}) {
23
+ this.options = {
24
+ extensions: options.extensions ?? ['.ts', '.tsx', '.js', '.jsx'],
25
+ excludeDirs: options.excludeDirs ?? ['node_modules', 'dist', 'build', '.git'],
26
+ minConfidence: options.minConfidence ?? 0.3,
27
+ maxCandidates: options.maxCandidates ?? 1000,
28
+ includePrivate: options.includePrivate ?? false,
29
+ };
30
+ }
31
+ /**
32
+ * Observe a single file and extract pattern candidates
33
+ */
34
+ async observe(filePath) {
35
+ const candidates = [];
36
+ try {
37
+ const content = await fs.readFile(filePath, 'utf-8');
38
+ const language = this.detectLanguage(filePath);
39
+ const extracted = this.extractPatterns(content, filePath, language);
40
+ for (const pattern of extracted) {
41
+ if (pattern.confidence >= this.options.minConfidence) {
42
+ candidates.push(pattern);
43
+ }
44
+ }
45
+ }
46
+ catch (_error) {
47
+ // File read error - skip silently
48
+ }
49
+ return candidates.slice(0, this.options.maxCandidates);
50
+ }
51
+ /**
52
+ * Observe a directory recursively
53
+ */
54
+ async observeDirectory(dirPath) {
55
+ const startTime = Date.now();
56
+ const candidates = [];
57
+ const errors = [];
58
+ let filesScanned = 0;
59
+ let skippedFiles = 0;
60
+ const processDir = async (currentPath) => {
61
+ try {
62
+ const entries = await fs.readdir(currentPath, { withFileTypes: true });
63
+ for (const entry of entries) {
64
+ const fullPath = path.join(currentPath, entry.name);
65
+ if (entry.isDirectory()) {
66
+ if (!this.options.excludeDirs.includes(entry.name)) {
67
+ await processDir(fullPath);
68
+ }
69
+ else {
70
+ skippedFiles++;
71
+ }
72
+ }
73
+ else if (entry.isFile()) {
74
+ const ext = path.extname(entry.name);
75
+ if (this.options.extensions.includes(ext)) {
76
+ try {
77
+ const filePatterns = await this.observe(fullPath);
78
+ candidates.push(...filePatterns);
79
+ filesScanned++;
80
+ }
81
+ catch (error) {
82
+ errors.push({
83
+ file: fullPath,
84
+ error: error instanceof Error ? error.message : String(error),
85
+ });
86
+ }
87
+ }
88
+ else {
89
+ skippedFiles++;
90
+ }
91
+ }
92
+ }
93
+ }
94
+ catch (error) {
95
+ errors.push({
96
+ file: currentPath,
97
+ error: error instanceof Error ? error.message : String(error),
98
+ });
99
+ }
100
+ };
101
+ await processDir(dirPath);
102
+ // Limit total candidates
103
+ const limitedCandidates = candidates.slice(0, this.options.maxCandidates);
104
+ return {
105
+ candidates: limitedCandidates,
106
+ stats: {
107
+ filesScanned,
108
+ candidatesFound: limitedCandidates.length,
109
+ skippedFiles,
110
+ processingTimeMs: Date.now() - startTime,
111
+ },
112
+ errors,
113
+ };
114
+ }
115
+ /**
116
+ * Detect language from file extension
117
+ */
118
+ detectLanguage(filePath) {
119
+ const ext = path.extname(filePath).toLowerCase();
120
+ switch (ext) {
121
+ case '.ts':
122
+ case '.tsx':
123
+ return 'typescript';
124
+ case '.js':
125
+ case '.jsx':
126
+ return 'javascript';
127
+ case '.py':
128
+ return 'python';
129
+ default:
130
+ return 'other';
131
+ }
132
+ }
133
+ /**
134
+ * Extract patterns from source content
135
+ * Uses simple regex-based parsing for lightweight extraction
136
+ */
137
+ extractPatterns(content, filePath, language) {
138
+ const patterns = [];
139
+ const lines = content.split('\n');
140
+ // Extract functions/methods
141
+ patterns.push(...this.extractFunctions(lines, filePath, language));
142
+ // Extract classes
143
+ patterns.push(...this.extractClasses(lines, filePath, language));
144
+ // Extract interfaces (TypeScript)
145
+ if (language === 'typescript') {
146
+ patterns.push(...this.extractInterfaces(lines, filePath, language));
147
+ patterns.push(...this.extractTypes(lines, filePath, language));
148
+ }
149
+ // Extract imports
150
+ patterns.push(...this.extractImports(lines, filePath, language));
151
+ // Extract exports
152
+ patterns.push(...this.extractExports(lines, filePath, language));
153
+ return patterns;
154
+ }
155
+ /**
156
+ * Extract function patterns
157
+ */
158
+ extractFunctions(lines, filePath, language) {
159
+ const patterns = [];
160
+ // Match: function name(), async function name(), const name = () =>, etc.
161
+ const functionPatterns = [
162
+ /^(?:export\s+)?(?:async\s+)?function\s+(\w+)/,
163
+ /^(?:export\s+)?const\s+(\w+)\s*=\s*(?:async\s+)?(?:\([^)]*\)|[a-zA-Z_]\w*)\s*=>/,
164
+ /^(?:export\s+)?(?:async\s+)?(\w+)\s*\([^)]*\)\s*(?::\s*\S+)?\s*\{/,
165
+ ];
166
+ for (let i = 0; i < lines.length; i++) {
167
+ const line = lines[i].trim();
168
+ for (const pattern of functionPatterns) {
169
+ const match = line.match(pattern);
170
+ if (match) {
171
+ const name = match[1];
172
+ if (!this.options.includePrivate && name.startsWith('_'))
173
+ continue;
174
+ // Find function end (simple brace counting)
175
+ const { endLine, content } = this.extractBlock(lines, i);
176
+ patterns.push(this.createCandidate({
177
+ type: 'function_signature',
178
+ name,
179
+ content,
180
+ sourcePath: filePath,
181
+ lineRange: { start: i + 1, end: endLine + 1 },
182
+ language,
183
+ confidence: this.calculateConfidence('function_signature', content),
184
+ }));
185
+ break;
186
+ }
187
+ }
188
+ }
189
+ return patterns;
190
+ }
191
+ /**
192
+ * Extract class patterns
193
+ */
194
+ extractClasses(lines, filePath, language) {
195
+ const patterns = [];
196
+ const classPattern = /^(?:export\s+)?(?:abstract\s+)?class\s+(\w+)/;
197
+ for (let i = 0; i < lines.length; i++) {
198
+ const line = lines[i].trim();
199
+ const match = line.match(classPattern);
200
+ if (match) {
201
+ const name = match[1];
202
+ const { endLine, content } = this.extractBlock(lines, i);
203
+ // Determine class type
204
+ let type = 'class_structure';
205
+ if (name.endsWith('Repository'))
206
+ type = 'repository_pattern';
207
+ else if (name.endsWith('Service'))
208
+ type = 'service_pattern';
209
+ else if (name.endsWith('Factory'))
210
+ type = 'factory_pattern';
211
+ else if (name.endsWith('Entity'))
212
+ type = 'entity';
213
+ else if (name.endsWith('ValueObject') || content.includes('readonly'))
214
+ type = 'value_object';
215
+ patterns.push(this.createCandidate({
216
+ type,
217
+ name,
218
+ content,
219
+ sourcePath: filePath,
220
+ lineRange: { start: i + 1, end: endLine + 1 },
221
+ language,
222
+ confidence: this.calculateConfidence(type, content),
223
+ }));
224
+ }
225
+ }
226
+ return patterns;
227
+ }
228
+ /**
229
+ * Extract interface patterns (TypeScript)
230
+ */
231
+ extractInterfaces(lines, filePath, language) {
232
+ const patterns = [];
233
+ const interfacePattern = /^(?:export\s+)?interface\s+(\w+)/;
234
+ for (let i = 0; i < lines.length; i++) {
235
+ const line = lines[i].trim();
236
+ const match = line.match(interfacePattern);
237
+ if (match) {
238
+ const name = match[1];
239
+ const { endLine, content } = this.extractBlock(lines, i);
240
+ patterns.push(this.createCandidate({
241
+ type: 'interface_definition',
242
+ name,
243
+ content,
244
+ sourcePath: filePath,
245
+ lineRange: { start: i + 1, end: endLine + 1 },
246
+ language,
247
+ confidence: this.calculateConfidence('interface_definition', content),
248
+ }));
249
+ }
250
+ }
251
+ return patterns;
252
+ }
253
+ /**
254
+ * Extract type patterns (TypeScript)
255
+ */
256
+ extractTypes(lines, filePath, language) {
257
+ const patterns = [];
258
+ const typePattern = /^(?:export\s+)?type\s+(\w+)\s*=/;
259
+ for (let i = 0; i < lines.length; i++) {
260
+ const line = lines[i].trim();
261
+ const match = line.match(typePattern);
262
+ if (match) {
263
+ const name = match[1];
264
+ // Types can be single line or multiline
265
+ let endLine = i;
266
+ let content = line;
267
+ // Check if multiline (ends with = but no semicolon)
268
+ if (!line.endsWith(';')) {
269
+ const result = this.extractBlock(lines, i, true);
270
+ endLine = result.endLine;
271
+ content = result.content;
272
+ }
273
+ patterns.push(this.createCandidate({
274
+ type: 'type_definition',
275
+ name,
276
+ content,
277
+ sourcePath: filePath,
278
+ lineRange: { start: i + 1, end: endLine + 1 },
279
+ language,
280
+ confidence: this.calculateConfidence('type_definition', content),
281
+ }));
282
+ }
283
+ }
284
+ return patterns;
285
+ }
286
+ /**
287
+ * Extract import patterns
288
+ */
289
+ extractImports(lines, filePath, language) {
290
+ const patterns = [];
291
+ const importPattern = /^import\s+(?:{[^}]+}|\*\s+as\s+\w+|\w+)\s+from\s+['"]([^'"]+)['"]/;
292
+ for (let i = 0; i < lines.length; i++) {
293
+ const line = lines[i].trim();
294
+ const match = line.match(importPattern);
295
+ if (match) {
296
+ patterns.push(this.createCandidate({
297
+ type: 'import_pattern',
298
+ name: `import:${match[1]}`,
299
+ content: line,
300
+ sourcePath: filePath,
301
+ lineRange: { start: i + 1, end: i + 1 },
302
+ language,
303
+ confidence: 0.5, // Lower confidence for imports
304
+ }));
305
+ }
306
+ }
307
+ return patterns;
308
+ }
309
+ /**
310
+ * Extract export patterns
311
+ */
312
+ extractExports(lines, filePath, language) {
313
+ const patterns = [];
314
+ const exportPattern = /^export\s+(?:default\s+)?(?:{[^}]+}|(?:const|let|var|function|class|interface|type)\s+(\w+))/;
315
+ for (let i = 0; i < lines.length; i++) {
316
+ const line = lines[i].trim();
317
+ const match = line.match(exportPattern);
318
+ if (match && match[1]) {
319
+ patterns.push(this.createCandidate({
320
+ type: 'export_pattern',
321
+ name: `export:${match[1]}`,
322
+ content: line,
323
+ sourcePath: filePath,
324
+ lineRange: { start: i + 1, end: i + 1 },
325
+ language,
326
+ confidence: 0.5, // Lower confidence for exports
327
+ }));
328
+ }
329
+ }
330
+ return patterns;
331
+ }
332
+ /**
333
+ * Extract a code block (braces-delimited)
334
+ */
335
+ extractBlock(lines, startLine, isType = false) {
336
+ let braceCount = 0;
337
+ let parenCount = 0;
338
+ let endLine = startLine;
339
+ const contentLines = [];
340
+ for (let i = startLine; i < lines.length; i++) {
341
+ const line = lines[i];
342
+ contentLines.push(line);
343
+ for (const char of line) {
344
+ if (char === '{')
345
+ braceCount++;
346
+ else if (char === '}')
347
+ braceCount--;
348
+ else if (char === '(')
349
+ parenCount++;
350
+ else if (char === ')')
351
+ parenCount--;
352
+ }
353
+ endLine = i;
354
+ // For types, also check for semicolon
355
+ if (isType && line.trim().endsWith(';')) {
356
+ break;
357
+ }
358
+ // End when braces are balanced and we've seen at least one open brace
359
+ if (braceCount === 0 && contentLines.length > 1) {
360
+ break;
361
+ }
362
+ // Safety limit
363
+ if (contentLines.length > 500) {
364
+ break;
365
+ }
366
+ }
367
+ return {
368
+ endLine,
369
+ content: contentLines.join('\n'),
370
+ };
371
+ }
372
+ /**
373
+ * Calculate confidence score for a pattern
374
+ */
375
+ calculateConfidence(type, content) {
376
+ let confidence = 0.5; // Base confidence
377
+ // Boost for well-documented code
378
+ if (content.includes('/**') || content.includes('* @')) {
379
+ confidence += 0.1;
380
+ }
381
+ // Boost for type annotations
382
+ if (content.includes(': ') || content.includes('<') || content.includes('>')) {
383
+ confidence += 0.1;
384
+ }
385
+ // Boost for error handling
386
+ if (content.includes('try') || content.includes('catch') || content.includes('Result<')) {
387
+ confidence += 0.1;
388
+ }
389
+ // Boost for tests
390
+ if (content.includes('describe') || content.includes('it(') || content.includes('expect(')) {
391
+ confidence += 0.1;
392
+ }
393
+ // Type-specific adjustments
394
+ switch (type) {
395
+ case 'repository_pattern':
396
+ case 'service_pattern':
397
+ case 'factory_pattern':
398
+ confidence += 0.15; // Design patterns are valuable
399
+ break;
400
+ case 'value_object':
401
+ case 'entity':
402
+ confidence += 0.1; // DDD patterns
403
+ break;
404
+ case 'test_pattern':
405
+ confidence += 0.05;
406
+ break;
407
+ }
408
+ // Content length bonus (but not too long)
409
+ const lineCount = content.split('\n').length;
410
+ if (lineCount >= 5 && lineCount <= 50) {
411
+ confidence += 0.05;
412
+ }
413
+ return Math.min(1.0, Math.max(0.0, confidence));
414
+ }
415
+ /**
416
+ * Create a pattern candidate with computed signature
417
+ */
418
+ createCandidate(params) {
419
+ return {
420
+ ...params,
421
+ tempId: `TEMP-${Date.now()}-${randomUUID().substring(0, 8)}`,
422
+ signature: this.computeSignature(params.content, params.type),
423
+ extractedAt: new Date(),
424
+ };
425
+ }
426
+ /**
427
+ * Compute a signature for similarity matching
428
+ */
429
+ computeSignature(content, type) {
430
+ // Remove comments and whitespace for normalization
431
+ const normalized = content
432
+ .replace(/\/\*[\s\S]*?\*\//g, '') // Block comments
433
+ .replace(/\/\/.*$/gm, '') // Line comments
434
+ .replace(/\s+/g, ' ') // Normalize whitespace
435
+ .trim();
436
+ // Extract structural elements
437
+ const tokens = [];
438
+ // Extract keywords
439
+ const keywords = normalized.match(/\b(function|class|interface|type|const|let|var|async|await|export|import|extends|implements|return|if|else|for|while|try|catch|throw)\b/g);
440
+ if (keywords) {
441
+ tokens.push(...keywords);
442
+ }
443
+ // Extract type annotations (simplified)
444
+ const types = normalized.match(/:\s*(\w+(?:<[^>]+>)?)/g);
445
+ if (types) {
446
+ tokens.push(...types.map(t => t.replace(/:\s*/, 'T:')));
447
+ }
448
+ return `${type}:${tokens.join('|')}`;
449
+ }
450
+ }
451
+ /**
452
+ * Factory function to create a LocalWakePhase instance
453
+ */
454
+ export function createLocalWakePhase(options) {
455
+ return new LocalWakePhase(options);
456
+ }
457
+ //# sourceMappingURL=wake-phase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wake-phase.js","sourceRoot":"","sources":["../../src/wake-sleep/wake-phase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * YATA Local - YATA Bridge for MCP Integration
3
+ *
4
+ * Provides integration between YATA Local and MCP Server
5
+ * for automatic knowledge graph updates.
6
+ *
7
+ * @packageDocumentation
8
+ * @module @nahisaho/yata-local
9
+ * @see REQ-YATA-AUTO-002
10
+ */
11
+ import type { YataLocal } from './index.js';
12
+ import type { Entity } from './types.js';
13
+ import { type CodeAnalysisResult, type UpdateResult } from './auto-updater.js';
14
+ /**
15
+ * Bridge configuration
16
+ */
17
+ export interface YataBridgeConfig {
18
+ /** Auto-infer after updates */
19
+ autoInfer?: boolean;
20
+ /** Auto-validate after updates */
21
+ autoValidate?: boolean;
22
+ /** Batch size for bulk updates */
23
+ batchSize?: number;
24
+ /** Delete old entities before update */
25
+ cleanBeforeUpdate?: boolean;
26
+ }
27
+ /**
28
+ * YATA Bridge for MCP Integration
29
+ *
30
+ * Connects code analysis to YATA Local knowledge graph.
31
+ */
32
+ export declare class YataBridge {
33
+ private yata;
34
+ private updater;
35
+ private config;
36
+ private entityNameIndex;
37
+ constructor(yata: YataLocal, config?: YataBridgeConfig);
38
+ /**
39
+ * Analyze code and update knowledge graph
40
+ */
41
+ updateFromCode(content: string, filePath: string): Promise<UpdateResult>;
42
+ /**
43
+ * Bulk update from multiple files
44
+ */
45
+ updateFromFiles(files: Array<{
46
+ content: string;
47
+ filePath: string;
48
+ }>): Promise<UpdateResult>;
49
+ /**
50
+ * Analyze code without updating (preview)
51
+ */
52
+ analyzeOnly(content: string, filePath: string): CodeAnalysisResult;
53
+ /**
54
+ * Add entities to knowledge graph
55
+ */
56
+ private addEntities;
57
+ /**
58
+ * Add relationships to knowledge graph
59
+ */
60
+ private addRelationships;
61
+ /**
62
+ * Refresh entity name index from database
63
+ */
64
+ private refreshEntityIndex;
65
+ /**
66
+ * Get entity by name and namespace
67
+ */
68
+ getEntityByName(name: string, namespace: string): Promise<Entity | null>;
69
+ /**
70
+ * Search entities by name pattern
71
+ */
72
+ searchByName(pattern: string): Promise<Entity[]>;
73
+ }
74
+ /**
75
+ * Factory function
76
+ */
77
+ export declare function createYataBridge(yata: YataLocal, config?: YataBridgeConfig): YataBridge;
78
+ //# sourceMappingURL=yata-bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yata-bridge.d.ts","sourceRoot":"","sources":["../src/yata-bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EACV,MAAM,EACP,MAAM,YAAY,CAAC;AACpB,OAAO,EAEL,KAAK,kBAAkB,EAGvB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kCAAkC;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AASD;;;;GAIG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,MAAM,CAA6B;IAC3C,OAAO,CAAC,eAAe,CAAkC;gBAE7C,IAAI,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,gBAAgB;IAMtD;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA2D9E;;OAEG;IACG,eAAe,CACnB,KAAK,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,GAClD,OAAO,CAAC,YAAY,CAAC;IAiCxB;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,kBAAkB;IAIlE;;OAEG;YACW,WAAW;IAyBzB;;OAEG;YACW,gBAAgB;IA2B9B;;OAEG;YACW,kBAAkB;IAUhC;;OAEG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAWzB;;OAEG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAGvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,MAAM,CAAC,EAAE,gBAAgB,GACxB,UAAU,CAEZ"}