gthinking 1.0.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 (53) hide show
  1. package/README.md +283 -0
  2. package/analysis.ts +986 -0
  3. package/creativity.ts +1002 -0
  4. package/dist/analysis.d.ts +52 -0
  5. package/dist/analysis.d.ts.map +1 -0
  6. package/dist/analysis.js +792 -0
  7. package/dist/analysis.js.map +1 -0
  8. package/dist/creativity.d.ts +80 -0
  9. package/dist/creativity.d.ts.map +1 -0
  10. package/dist/creativity.js +778 -0
  11. package/dist/creativity.js.map +1 -0
  12. package/dist/engine.d.ts +76 -0
  13. package/dist/engine.d.ts.map +1 -0
  14. package/dist/engine.js +675 -0
  15. package/dist/engine.js.map +1 -0
  16. package/dist/examples.d.ts +7 -0
  17. package/dist/examples.d.ts.map +1 -0
  18. package/dist/examples.js +506 -0
  19. package/dist/examples.js.map +1 -0
  20. package/dist/index.d.ts +38 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +126 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/learning.d.ts +72 -0
  25. package/dist/learning.d.ts.map +1 -0
  26. package/dist/learning.js +615 -0
  27. package/dist/learning.js.map +1 -0
  28. package/dist/planning.d.ts +58 -0
  29. package/dist/planning.d.ts.map +1 -0
  30. package/dist/planning.js +824 -0
  31. package/dist/planning.js.map +1 -0
  32. package/dist/reasoning.d.ts +72 -0
  33. package/dist/reasoning.d.ts.map +1 -0
  34. package/dist/reasoning.js +792 -0
  35. package/dist/reasoning.js.map +1 -0
  36. package/dist/search-discovery.d.ts +73 -0
  37. package/dist/search-discovery.d.ts.map +1 -0
  38. package/dist/search-discovery.js +505 -0
  39. package/dist/search-discovery.js.map +1 -0
  40. package/dist/types.d.ts +535 -0
  41. package/dist/types.d.ts.map +1 -0
  42. package/dist/types.js +77 -0
  43. package/dist/types.js.map +1 -0
  44. package/engine.ts +928 -0
  45. package/examples.ts +717 -0
  46. package/index.ts +106 -0
  47. package/learning.ts +779 -0
  48. package/package.json +51 -0
  49. package/planning.ts +1028 -0
  50. package/reasoning.ts +1019 -0
  51. package/search-discovery.ts +654 -0
  52. package/tsconfig.json +25 -0
  53. package/types.ts +674 -0
@@ -0,0 +1,615 @@
1
+ "use strict";
2
+ /**
3
+ * Learning Module
4
+ * Context memory, pattern recognition, feedback integration, and knowledge base management
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.learningEngine = exports.LearningEngine = void 0;
8
+ const types_1 = require("./types");
9
+ const events_1 = require("events");
10
+ // ============================================================================
11
+ // PATTERN RECOGNITION ENGINE
12
+ // ============================================================================
13
+ class PatternRecognitionEngine {
14
+ constructor() {
15
+ this.patterns = new Map();
16
+ }
17
+ recognize(input, context) {
18
+ const matchedPatterns = [];
19
+ this.patterns.forEach(pattern => {
20
+ const matchScore = this.calculateMatchScore(input, pattern.pattern);
21
+ if (matchScore > 0.7) {
22
+ matchedPatterns.push({
23
+ ...pattern,
24
+ frequency: pattern.frequency + 1,
25
+ lastObserved: new Date()
26
+ });
27
+ }
28
+ });
29
+ // Also extract new patterns from input
30
+ const newPatterns = this.extractPatterns(input, context);
31
+ newPatterns.forEach(p => {
32
+ if (!this.patterns.has(p.id)) {
33
+ this.patterns.set(p.id, p);
34
+ matchedPatterns.push(p);
35
+ }
36
+ });
37
+ return matchedPatterns.sort((a, b) => b.successRate - a.successRate);
38
+ }
39
+ updatePatternSuccess(patternId, success) {
40
+ const pattern = this.patterns.get(patternId);
41
+ if (pattern) {
42
+ // Update success rate using exponential moving average
43
+ const alpha = 0.3;
44
+ pattern.successRate = alpha * (success ? 1 : 0) + (1 - alpha) * pattern.successRate;
45
+ pattern.lastObserved = new Date();
46
+ }
47
+ }
48
+ calculateMatchScore(input, pattern) {
49
+ const inputWords = input.toLowerCase().split(/\s+/);
50
+ const patternWords = pattern.toLowerCase().split(/\s+/);
51
+ const matches = patternWords.filter(pw => inputWords.some(iw => iw.includes(pw) || pw.includes(iw))).length;
52
+ return matches / Math.max(patternWords.length, 1);
53
+ }
54
+ extractPatterns(input, context) {
55
+ const patterns = [];
56
+ // Extract query patterns
57
+ const queryPattern = this.extractQueryPattern(input);
58
+ if (queryPattern) {
59
+ patterns.push(queryPattern);
60
+ }
61
+ // Extract context patterns
62
+ const contextPattern = this.extractContextPattern(context);
63
+ if (contextPattern) {
64
+ patterns.push(contextPattern);
65
+ }
66
+ return patterns;
67
+ }
68
+ extractQueryPattern(input) {
69
+ // Extract key terms that form a pattern
70
+ const keyTerms = input
71
+ .toLowerCase()
72
+ .split(/\s+/)
73
+ .filter(w => w.length > 4 && !this.isStopWord(w));
74
+ if (keyTerms.length < 2)
75
+ return null;
76
+ return {
77
+ id: `pattern_query_${keyTerms.join('_')}`,
78
+ type: 'query_pattern',
79
+ pattern: keyTerms.join(' '),
80
+ frequency: 1,
81
+ successRate: 0.5,
82
+ lastObserved: new Date()
83
+ };
84
+ }
85
+ extractContextPattern(context) {
86
+ const topics = this.extractTopics(context);
87
+ if (topics.length < 2)
88
+ return null;
89
+ return {
90
+ id: `pattern_context_${topics.join('_')}`,
91
+ type: 'response_pattern',
92
+ pattern: topics.join(' '),
93
+ frequency: 1,
94
+ successRate: 0.5,
95
+ lastObserved: new Date()
96
+ };
97
+ }
98
+ isStopWord(word) {
99
+ const stopWords = new Set(['what', 'how', 'when', 'where', 'why', 'who', 'which', 'this', 'that', 'these', 'those']);
100
+ return stopWords.has(word.toLowerCase());
101
+ }
102
+ extractTopics(text) {
103
+ return text
104
+ .toLowerCase()
105
+ .match(/\b\w{5,}\b/g)
106
+ ?.filter((w, i, arr) => arr.indexOf(w) === i)
107
+ ?.slice(0, 5) || [];
108
+ }
109
+ getPatternsByType(type) {
110
+ return Array.from(this.patterns.values()).filter(p => p.type === type);
111
+ }
112
+ getTopPatterns(limit = 10) {
113
+ return Array.from(this.patterns.values())
114
+ .sort((a, b) => b.successRate * b.frequency - a.successRate * a.frequency)
115
+ .slice(0, limit);
116
+ }
117
+ }
118
+ // ============================================================================
119
+ // KNOWLEDGE GRAPH MANAGER
120
+ // ============================================================================
121
+ class KnowledgeGraphManager {
122
+ constructor() {
123
+ this.graph = {
124
+ nodes: [],
125
+ edges: [],
126
+ version: 1,
127
+ lastUpdated: new Date()
128
+ };
129
+ }
130
+ addNode(node) {
131
+ const newNode = {
132
+ ...node,
133
+ id: `node_${Date.now()}_${Math.random().toString(36).substr(2, 5)}`
134
+ };
135
+ // Check for similar existing nodes
136
+ const existingNode = this.findSimilarNode(newNode);
137
+ if (existingNode) {
138
+ // Merge with existing node
139
+ this.mergeNodes(existingNode, newNode);
140
+ return existingNode;
141
+ }
142
+ this.graph.nodes.push(newNode);
143
+ this.updateGraph();
144
+ return newNode;
145
+ }
146
+ addEdge(from, to, relation, strength, evidence) {
147
+ // Check if edge already exists
148
+ const existingEdge = this.graph.edges.find(e => e.from === from && e.to === to && e.relation === relation);
149
+ if (existingEdge) {
150
+ // Update existing edge strength
151
+ existingEdge.strength = Math.min(1, existingEdge.strength + strength * 0.1);
152
+ existingEdge.evidence = [...new Set([...existingEdge.evidence, ...evidence])];
153
+ }
154
+ else {
155
+ this.graph.edges.push({
156
+ from,
157
+ to,
158
+ relation,
159
+ strength,
160
+ evidence
161
+ });
162
+ }
163
+ this.updateGraph();
164
+ }
165
+ findRelated(nodeId, maxDepth = 2) {
166
+ const related = new Set();
167
+ const visited = new Set();
168
+ const traverse = (currentId, depth) => {
169
+ if (depth > maxDepth || visited.has(currentId))
170
+ return;
171
+ visited.add(currentId);
172
+ this.graph.edges
173
+ .filter(e => e.from === currentId || e.to === currentId)
174
+ .forEach(e => {
175
+ const relatedId = e.from === currentId ? e.to : e.from;
176
+ related.add(relatedId);
177
+ traverse(relatedId, depth + 1);
178
+ });
179
+ };
180
+ traverse(nodeId, 0);
181
+ return this.graph.nodes.filter(n => related.has(n.id));
182
+ }
183
+ query(query) {
184
+ const queryWords = query.toLowerCase().split(/\s+/);
185
+ return this.graph.nodes
186
+ .map(node => ({
187
+ node,
188
+ score: this.calculateRelevance(node, queryWords)
189
+ }))
190
+ .filter(({ score }) => score > 0.3)
191
+ .sort((a, b) => b.score - a.score)
192
+ .map(({ node }) => node);
193
+ }
194
+ infer(fromNodeId, relationType) {
195
+ const edges = this.graph.edges.filter(e => e.from === fromNodeId &&
196
+ (relationType ? e.relation === relationType : true) &&
197
+ e.strength > 0.5);
198
+ return edges.map(e => this.graph.nodes.find(n => n.id === e.to)).filter(Boolean);
199
+ }
200
+ findSimilarNode(node) {
201
+ return this.graph.nodes.find(n => {
202
+ const labelSimilarity = this.calculateSimilarity(n.label, node.label);
203
+ return labelSimilarity > 0.8;
204
+ });
205
+ }
206
+ mergeNodes(existing, newNode) {
207
+ // Merge properties
208
+ existing.properties = { ...existing.properties, ...newNode.properties };
209
+ // Update confidence
210
+ existing.confidence = Math.max(existing.confidence, newNode.confidence);
211
+ // Merge sources
212
+ existing.sources = [...new Set([...existing.sources, ...newNode.sources])];
213
+ }
214
+ calculateRelevance(node, queryWords) {
215
+ const nodeText = `${node.label} ${JSON.stringify(node.properties)}`.toLowerCase();
216
+ const matches = queryWords.filter(qw => nodeText.includes(qw)).length;
217
+ return matches / queryWords.length * node.confidence;
218
+ }
219
+ calculateSimilarity(str1, str2) {
220
+ const words1 = str1.toLowerCase().split(/\s+/);
221
+ const words2 = str2.toLowerCase().split(/\s+/);
222
+ const intersection = words1.filter(w => words2.includes(w));
223
+ const union = [...new Set([...words1, ...words2])];
224
+ return intersection.length / union.length;
225
+ }
226
+ updateGraph() {
227
+ this.graph.version++;
228
+ this.graph.lastUpdated = new Date();
229
+ }
230
+ getGraph() {
231
+ return { ...this.graph };
232
+ }
233
+ exportGraph() {
234
+ return JSON.stringify(this.graph, null, 2);
235
+ }
236
+ importGraph(json) {
237
+ this.graph = JSON.parse(json);
238
+ }
239
+ }
240
+ // ============================================================================
241
+ // PREFERENCE LEARNING ENGINE
242
+ // ============================================================================
243
+ class PreferenceLearningEngine {
244
+ constructor() {
245
+ this.preferences = new Map();
246
+ this.defaultPreferences = {
247
+ responseStyle: 'detailed',
248
+ preferredSources: [],
249
+ topicInterests: [],
250
+ excludedTopics: [],
251
+ language: 'en'
252
+ };
253
+ }
254
+ getPreferences(userId) {
255
+ if (userId && this.preferences.has(userId)) {
256
+ return this.preferences.get(userId);
257
+ }
258
+ return { ...this.defaultPreferences };
259
+ }
260
+ updatePreferences(userId, updates) {
261
+ const current = this.getPreferences(userId);
262
+ this.preferences.set(userId, { ...current, ...updates });
263
+ }
264
+ learnFromInteraction(userId, interaction) {
265
+ const prefs = this.getPreferences(userId);
266
+ // Learn from query patterns
267
+ const queryTopics = this.extractTopics(interaction.query);
268
+ prefs.topicInterests = [...new Set([...prefs.topicInterests, ...queryTopics])];
269
+ // Learn from feedback
270
+ if (interaction.feedback) {
271
+ this.learnFromFeedback(userId, interaction.feedback);
272
+ }
273
+ // Infer response style preference
274
+ if (interaction.response.length < 100) {
275
+ prefs.responseStyle = 'concise';
276
+ }
277
+ else if (interaction.response.length > 500) {
278
+ prefs.responseStyle = 'detailed';
279
+ }
280
+ this.preferences.set(userId, prefs);
281
+ }
282
+ learnFromFeedback(userId, feedback) {
283
+ const prefs = this.getPreferences(userId);
284
+ if (feedback.rating >= 4) {
285
+ // User liked the response - reinforce current style
286
+ }
287
+ else if (feedback.rating <= 2) {
288
+ // User didn't like it - try different approach
289
+ prefs.responseStyle = prefs.responseStyle === 'detailed' ? 'concise' : 'detailed';
290
+ }
291
+ // Process corrections
292
+ if (feedback.corrections && feedback.corrections.length > 0) {
293
+ // Learn from corrections
294
+ }
295
+ this.preferences.set(userId, prefs);
296
+ }
297
+ extractTopics(text) {
298
+ return text
299
+ .toLowerCase()
300
+ .match(/\b\w{5,}\b/g)
301
+ ?.filter((w, i, arr) => arr.indexOf(w) === i)
302
+ ?.slice(0, 3) || [];
303
+ }
304
+ recommendPreferences(userId) {
305
+ const prefs = this.getPreferences(userId);
306
+ const recommendations = {};
307
+ // Recommend based on interaction history
308
+ if (prefs.topicInterests.length > 5) {
309
+ recommendations.topicInterests = prefs.topicInterests.slice(0, 10);
310
+ }
311
+ return recommendations;
312
+ }
313
+ }
314
+ // ============================================================================
315
+ // CONTEXT MEMORY MANAGER
316
+ // ============================================================================
317
+ class ContextMemoryManager {
318
+ constructor() {
319
+ this.interactions = new Map();
320
+ this.maxContextSize = 10;
321
+ }
322
+ addInteraction(sessionId, interaction) {
323
+ if (!this.interactions.has(sessionId)) {
324
+ this.interactions.set(sessionId, []);
325
+ }
326
+ const sessionInteractions = this.interactions.get(sessionId);
327
+ sessionInteractions.push(interaction);
328
+ // Keep only recent interactions
329
+ if (sessionInteractions.length > this.maxContextSize) {
330
+ sessionInteractions.shift();
331
+ }
332
+ }
333
+ getContext(sessionId) {
334
+ return this.interactions.get(sessionId) || [];
335
+ }
336
+ getRelevantContext(sessionId, query) {
337
+ const allContext = this.getContext(sessionId);
338
+ const queryWords = query.toLowerCase().split(/\s+/);
339
+ return allContext
340
+ .map(interaction => ({
341
+ interaction,
342
+ relevance: this.calculateRelevance(interaction, queryWords)
343
+ }))
344
+ .filter(({ relevance }) => relevance > 0.3)
345
+ .sort((a, b) => b.relevance - a.relevance)
346
+ .map(({ interaction }) => interaction);
347
+ }
348
+ summarizeContext(sessionId) {
349
+ const context = this.getContext(sessionId);
350
+ if (context.length === 0)
351
+ return '';
352
+ const topics = new Set();
353
+ const keyPoints = [];
354
+ context.forEach(interaction => {
355
+ const queryTopics = this.extractTopics(interaction.query);
356
+ queryTopics.forEach(t => topics.add(t));
357
+ if (interaction.feedback?.helpful) {
358
+ keyPoints.push(interaction.response.substring(0, 100));
359
+ }
360
+ });
361
+ return `Previous topics: ${Array.from(topics).join(', ')}. ` +
362
+ `Key points: ${keyPoints.join('; ')}`;
363
+ }
364
+ clearContext(sessionId) {
365
+ this.interactions.delete(sessionId);
366
+ }
367
+ calculateRelevance(interaction, queryWords) {
368
+ const text = `${interaction.query} ${interaction.response}`.toLowerCase();
369
+ const matches = queryWords.filter(qw => text.includes(qw)).length;
370
+ return matches / queryWords.length;
371
+ }
372
+ extractTopics(text) {
373
+ return text
374
+ .toLowerCase()
375
+ .match(/\b\w{5,}\b/g)
376
+ ?.filter((w, i, arr) => arr.indexOf(w) === i)
377
+ ?.slice(0, 5) || [];
378
+ }
379
+ }
380
+ // ============================================================================
381
+ // MAIN LEARNING ENGINE
382
+ // ============================================================================
383
+ class LearningEngine extends events_1.EventEmitter {
384
+ constructor() {
385
+ super();
386
+ this.contexts = new Map();
387
+ this.patternEngine = new PatternRecognitionEngine();
388
+ this.knowledgeGraph = new KnowledgeGraphManager();
389
+ this.preferenceEngine = new PreferenceLearningEngine();
390
+ this.contextManager = new ContextMemoryManager();
391
+ }
392
+ /**
393
+ * Create or get learning context for a session
394
+ */
395
+ getOrCreateContext(sessionId, userId) {
396
+ if (this.contexts.has(sessionId)) {
397
+ return this.contexts.get(sessionId);
398
+ }
399
+ const context = {
400
+ id: `ctx_${Date.now()}`,
401
+ sessionId,
402
+ userId,
403
+ topic: '',
404
+ previousInteractions: [],
405
+ learnedPatterns: [],
406
+ knowledgeGraph: this.knowledgeGraph.getGraph(),
407
+ preferences: this.preferenceEngine.getPreferences(userId)
408
+ };
409
+ this.contexts.set(sessionId, context);
410
+ return context;
411
+ }
412
+ /**
413
+ * Record an interaction and learn from it
414
+ */
415
+ recordInteraction(sessionId, query, response, feedback) {
416
+ const context = this.getOrCreateContext(sessionId);
417
+ const interaction = {
418
+ id: `int_${Date.now()}`,
419
+ timestamp: new Date(),
420
+ query,
421
+ response,
422
+ feedback,
423
+ contextSnapshot: { ...context }
424
+ };
425
+ // Add to context memory
426
+ this.contextManager.addInteraction(sessionId, interaction);
427
+ context.previousInteractions.push(interaction);
428
+ // Learn patterns
429
+ const patterns = this.patternEngine.recognize(query, response);
430
+ context.learnedPatterns.push(...patterns);
431
+ // Update preferences if userId exists
432
+ if (context.userId) {
433
+ this.preferenceEngine.learnFromInteraction(context.userId, interaction);
434
+ context.preferences = this.preferenceEngine.getPreferences(context.userId);
435
+ }
436
+ // Extract and add knowledge
437
+ this.extractAndAddKnowledge(query, response);
438
+ this.emit('interaction_recorded', {
439
+ id: interaction.id,
440
+ stage: types_1.ThinkingStage.LEARNING,
441
+ timestamp: new Date(),
442
+ data: { sessionId, patternsFound: patterns.length }
443
+ });
444
+ return interaction;
445
+ }
446
+ /**
447
+ * Get relevant context for a query
448
+ */
449
+ getRelevantContext(sessionId, query) {
450
+ const context = this.getOrCreateContext(sessionId);
451
+ // Get relevant interactions
452
+ const interactions = this.contextManager.getRelevantContext(sessionId, query);
453
+ // Get relevant patterns
454
+ const patterns = this.patternEngine.recognize(query, '');
455
+ // Get relevant knowledge
456
+ const knowledge = this.knowledgeGraph.query(query);
457
+ // Get context summary
458
+ const summary = this.contextManager.summarizeContext(sessionId);
459
+ return { interactions, patterns, knowledge, summary };
460
+ }
461
+ /**
462
+ * Add knowledge to the knowledge graph
463
+ */
464
+ addKnowledge(label, type, properties, sources) {
465
+ const node = this.knowledgeGraph.addNode({
466
+ label,
467
+ type,
468
+ properties,
469
+ confidence: 0.8,
470
+ sources
471
+ });
472
+ this.emit('knowledge_added', {
473
+ id: node.id,
474
+ stage: types_1.ThinkingStage.LEARNING,
475
+ timestamp: new Date(),
476
+ data: { label, type }
477
+ });
478
+ return node;
479
+ }
480
+ /**
481
+ * Connect knowledge nodes
482
+ */
483
+ connectKnowledge(fromId, toId, relation, strength, evidence) {
484
+ this.knowledgeGraph.addEdge(fromId, toId, relation, strength, evidence);
485
+ }
486
+ /**
487
+ * Query knowledge graph
488
+ */
489
+ queryKnowledge(query) {
490
+ return this.knowledgeGraph.query(query);
491
+ }
492
+ /**
493
+ * Infer new knowledge
494
+ */
495
+ inferKnowledge(fromNodeId, relationType) {
496
+ return this.knowledgeGraph.infer(fromNodeId, relationType);
497
+ }
498
+ /**
499
+ * Update user preferences
500
+ */
501
+ updatePreferences(userId, updates) {
502
+ this.preferenceEngine.updatePreferences(userId, updates);
503
+ }
504
+ /**
505
+ * Get user preferences
506
+ */
507
+ getPreferences(userId) {
508
+ return this.preferenceEngine.getPreferences(userId);
509
+ }
510
+ /**
511
+ * Get top patterns
512
+ */
513
+ getTopPatterns(limit) {
514
+ return this.patternEngine.getTopPatterns(limit);
515
+ }
516
+ /**
517
+ * Export knowledge graph
518
+ */
519
+ exportKnowledgeGraph() {
520
+ return this.knowledgeGraph.exportGraph();
521
+ }
522
+ /**
523
+ * Import knowledge graph
524
+ */
525
+ importKnowledgeGraph(json) {
526
+ this.knowledgeGraph.importGraph(json);
527
+ }
528
+ extractAndAddKnowledge(query, response) {
529
+ // Extract entities from query and response
530
+ const entities = this.extractEntities(`${query} ${response}`);
531
+ entities.forEach(entity => {
532
+ // Check if entity already exists
533
+ const existing = this.knowledgeGraph.query(entity);
534
+ if (existing.length === 0) {
535
+ this.addKnowledge(entity, 'entity', { firstSeen: new Date().toISOString() }, ['interaction']);
536
+ }
537
+ });
538
+ // Extract concepts
539
+ const concepts = this.extractConcepts(response);
540
+ concepts.forEach(concept => {
541
+ this.addKnowledge(concept, 'concept', { extractedFrom: 'response' }, ['learning_engine']);
542
+ });
543
+ }
544
+ extractEntities(text) {
545
+ const capitalizedWords = text.match(/\b[A-Z][a-z]+(?:\s+[A-Z][a-z]+)*\b/g) || [];
546
+ return [...new Set(capitalizedWords)];
547
+ }
548
+ extractConcepts(text) {
549
+ return text
550
+ .toLowerCase()
551
+ .match(/\b\w{6,}\b/g)
552
+ ?.filter((w, i, arr) => arr.indexOf(w) === i)
553
+ ?.slice(0, 5) || [];
554
+ }
555
+ }
556
+ exports.LearningEngine = LearningEngine;
557
+ // ============================================================================
558
+ // EXPORT SINGLETON INSTANCE
559
+ // ============================================================================
560
+ exports.learningEngine = new LearningEngine();
561
+ // ============================================================================
562
+ // EXAMPLE USAGE
563
+ // ============================================================================
564
+ /*
565
+ // Create learning context
566
+ const context = learningEngine.getOrCreateContext('session_123', 'user_456');
567
+
568
+ // Record interactions
569
+ const interaction1 = learningEngine.recordInteraction(
570
+ 'session_123',
571
+ 'What are the benefits of TypeScript?',
572
+ 'TypeScript offers type safety, better IDE support, and easier refactoring...'
573
+ );
574
+
575
+ // Add feedback
576
+ learningEngine.recordInteraction(
577
+ 'session_123',
578
+ 'How do I set up TypeScript?',
579
+ 'To set up TypeScript, first install it with npm...',
580
+ { rating: 5, helpful: true, comments: 'Very helpful!' }
581
+ );
582
+
583
+ // Get relevant context
584
+ const relevant = learningEngine.getRelevantContext(
585
+ 'session_123',
586
+ 'TypeScript configuration'
587
+ );
588
+
589
+ // Add knowledge
590
+ const node = learningEngine.addKnowledge(
591
+ 'TypeScript',
592
+ 'concept',
593
+ { category: 'programming_language', creator: 'Microsoft' },
594
+ ['official_documentation']
595
+ );
596
+
597
+ // Connect knowledge
598
+ learningEngine.connectKnowledge(
599
+ node.id,
600
+ 'node_javascript',
601
+ 'superset_of',
602
+ 0.95,
603
+ ['TypeScript extends JavaScript']
604
+ );
605
+
606
+ // Query knowledge
607
+ const results = learningEngine.queryKnowledge('programming');
608
+
609
+ // Get patterns
610
+ const patterns = learningEngine.getTopPatterns(5);
611
+
612
+ // Export knowledge graph
613
+ const graphJson = learningEngine.exportKnowledgeGraph();
614
+ */
615
+ //# sourceMappingURL=learning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning.js","sourceRoot":"","sources":["../learning.ts"],"names":[],"mappings":"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"}