gthinking 1.0.0 → 1.2.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.
package/GEMINI.md ADDED
@@ -0,0 +1,68 @@
1
+ # Sequential Thinking System (gthinking)
2
+
3
+ This project is a comprehensive intelligent thinking framework designed to perform complex problem solving, research, and analysis through a sequential process. It operates as a Model Context Protocol (MCP) server, allowing AI agents to leverage its capabilities.
4
+
5
+ ## Project Overview
6
+
7
+ **Type:** TypeScript / Node.js Application (MCP Server)
8
+
9
+ The system is architected as a "Modular Monolith" where a central `SequentialThinkingEngine` orchestrates various specialized modules (engines) to process queries. It simulates (or delegates to LLMs) cognitive processes like reasoning, planning, and creativity.
10
+
11
+ ### Key Components
12
+
13
+ * **`server.ts`**: The entry point for the MCP server. It exposes tools like `think`, `quick_search`, and `creative_solve`.
14
+ * **`engine.ts`**: The main orchestrator (`SequentialThinkingEngine`) that manages the flow of data between different thinking stages.
15
+ * **`llm-service.ts`**: A bridge service that executes local CLI commands (`gemini`, `claude`, `kimi`, `opencode`) to perform actual cognitive tasks (Reasoning, Analysis, Creativity) using external LLMs.
16
+ * **Modules:**
17
+ * `search-discovery.ts`: Web search simulation and aggregation.
18
+ * `analysis.ts`: Deep content analysis (Sentiment, Entities, Fact-checking).
19
+ * `reasoning.ts`: Logical reasoning (Deductive, Inductive, Chain of Thought).
20
+ * `creativity.ts`: Idea generation (Brainstorming, SCAMPER, Six Hats).
21
+ * `planning.ts`: Task decomposition and project planning.
22
+ * `learning.ts`: Context memory and knowledge graph management.
23
+
24
+ ## Building and Running
25
+
26
+ ### Prerequisites
27
+ * Node.js (>=16.0.0)
28
+ * TypeScript
29
+ * Local LLM CLIs installed (optional but recommended: `gemini`, `claude`, etc.)
30
+
31
+ ### Commands
32
+
33
+ * **Install Dependencies:**
34
+ ```bash
35
+ npm install
36
+ ```
37
+
38
+ * **Build Project:**
39
+ Compiles TypeScript to JavaScript in the `dist/` directory.
40
+ ```bash
41
+ npm run build
42
+ ```
43
+
44
+ * **Run Development Mode:**
45
+ Runs the examples using `ts-node`.
46
+ ```bash
47
+ npm run dev
48
+ ```
49
+
50
+ * **Run MCP Server:**
51
+ ```bash
52
+ node dist/server.js
53
+ ```
54
+ *Note: This is typically run by an MCP client (like Claude Desktop or Gemini CLI).*
55
+
56
+ ## Development Conventions
57
+
58
+ * **Architecture:** Follows a strict modular design. Each "Engine" (e.g., `ReasoningEngine`) should be self-contained in its own file and export a singleton instance.
59
+ * **Communication:** Modules communicate via standard TypeScript interfaces defined in `types.ts`. The main `engine.ts` handles the workflow.
60
+ * **LLM Integration:** Do not hardcode API calls in the modules. Use `llmService` from `llm-service.ts` to delegate complex tasks to the configured local LLM provider.
61
+ * **Error Handling:** Use the `ThinkingError` class for typed error handling within the thinking pipeline.
62
+
63
+ ## Configuration
64
+
65
+ * **LLM Provider:** The system automatically detects installed CLIs (`gemini`, `claude`). You can force a specific provider by setting the `LLM_PROVIDER` environment variable.
66
+ ```bash
67
+ export LLM_PROVIDER=claude
68
+ ```
package/README.md CHANGED
@@ -59,7 +59,40 @@
59
59
  npm install sequential-thinking-system
60
60
  ```
61
61
 
62
- ## การใช้งานเบื้องต้น
62
+ ## การใช้งานผ่าน npx (Recommended for MCP)
63
+
64
+ วิธีที่ง่ายที่สุดในการใช้งานคือผ่าน **npx** โดยไม่ต้องติดตั้งลงเครื่อง เหมาะสำหรับนำไปเชื่อมต่อกับ **Gemini CLI** หรือ **Claude Desktop**
65
+
66
+ ### การตั้งค่า MCP (Model Context Protocol)
67
+
68
+ เพิ่ม configuration นี้ลงในไฟล์ settings ของ MCP Client ของคุณ:
69
+
70
+ **สำหรับ Gemini CLI (`~/.gemini/config.json`) หรือ Claude Desktop:**
71
+
72
+ ```json
73
+ {
74
+ "mcpServers": {
75
+ "gthinking": {
76
+ "command": "npx",
77
+ "args": ["-y", "gthinking"],
78
+ "env": {
79
+ "LLM_PROVIDER": "gemini"
80
+ }
81
+ }
82
+ }
83
+ }
84
+ ```
85
+
86
+ **Configuration Options:**
87
+ * `LLM_PROVIDER`: เลือก LLM ที่ติดตั้งในเครื่องเพื่อใช้ประมวลผล (รองรับ: `gemini`, `claude`, `kimi`, `opencode`) - ค่าเริ่มต้นคือ `gemini`
88
+
89
+ ### Gemini Instruction (Prompt)
90
+
91
+ เพื่อให้ Gemini เรียกใช้งานเครื่องมือได้อย่างมีประสิทธิภาพ แนะนำให้เพิ่ม Prompt นี้ใน System Instruction หรือตอนเริ่มสนทนา:
92
+
93
+ > "You have access to a specialized thinking engine called 'gthinking'. Use the `think` tool for complex analysis, reasoning, and planning tasks. Use `creative_solve` for brainstorming and ideation. Use `quick_search` for fast information retrieval. When using `think`, consider the appropriate 'depth' and 'complexity' based on the user's request."
94
+
95
+ ## การใช้งานเบื้องต้น (Code Library)
63
96
 
64
97
  ### 1. การคิดแบบพื้นฐาน
65
98
 
package/analysis.ts CHANGED
@@ -19,6 +19,7 @@ import {
19
19
  ThinkingStage
20
20
  } from './types';
21
21
  import { EventEmitter } from 'events';
22
+ import { llmService } from './llm-service';
22
23
 
23
24
  // ============================================================================
24
25
  // SENTIMENT ANALYZER
@@ -644,9 +645,23 @@ export class AnalysisEngine extends EventEmitter {
644
645
 
645
646
  const results: AnalysisResult[] = [];
646
647
 
648
+ // Try to get bulk analysis from LLM first
649
+ let llmResults: Record<string, any> = {};
650
+ try {
651
+ llmResults = await this.performLLMAnalysis(content, types, context);
652
+ } catch (error) {
653
+ console.warn('LLM analysis failed, falling back to local engines', error);
654
+ }
655
+
647
656
  try {
648
657
  for (const type of types) {
649
- const result = await this.analyzeByType(type, content, context, depth);
658
+ let result: AnalysisResult;
659
+
660
+ if (llmResults[type]) {
661
+ result = this.convertLLMResult(type, llmResults[type]);
662
+ } else {
663
+ result = await this.analyzeByType(type, content, context, depth);
664
+ }
650
665
  results.push(result);
651
666
  }
652
667
 
@@ -678,6 +693,68 @@ export class AnalysisEngine extends EventEmitter {
678
693
  }
679
694
  }
680
695
 
696
+ private async performLLMAnalysis(content: string, types: AnalysisType[], context?: string): Promise<Record<string, any>> {
697
+ const prompt = `
698
+ Analyze this text: "${content.substring(0, 3000)}..."
699
+ ${context ? `Context: ${context}` : ''}
700
+
701
+ Provide analysis for: ${types.join(', ')}.
702
+
703
+ Return strictly JSON with keys: ${types.map(t => `"${t}"`).join(', ')}.
704
+ Structure requirements:
705
+ - sentiment: { score: { positive: 0-1, negative: 0-1, neutral: 0-1, compound: -1 to 1 }, label: string }
706
+ - entity: array of { name, type, confidence: 0-1, mentions: number }
707
+ - topic: array of { name, relevance: 0-1, keywords: [] }
708
+ - keyword: array of { term, frequency, importance: 0-1 }
709
+ - summary: { summary: string }
710
+ - fact_check: array of { claim, verdict: true/false/mixed, confidence }
711
+ - trend: array of { trend: string, count }
712
+ `;
713
+
714
+ const response = await llmService.generateText({ prompt });
715
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
716
+ return jsonMatch ? JSON.parse(jsonMatch[0]) : {};
717
+ }
718
+
719
+ private convertLLMResult(type: AnalysisType, data: any): AnalysisResult {
720
+ const id = this.generateId();
721
+ let findings: Finding[] = [];
722
+
723
+ // Map raw JSON data to Finding[] structure
724
+ if (type === 'sentiment') {
725
+ findings = [{
726
+ id: this.generateId(), type: 'sentiment_analysis',
727
+ value: data, confidence: 0.9, evidence: [], relatedFindings: []
728
+ }];
729
+ } else if (Array.isArray(data)) {
730
+ // Handle array results (entity, topic, keyword, fact_check)
731
+ findings = data.map((item: any) => ({
732
+ id: this.generateId(),
733
+ type,
734
+ value: item,
735
+ confidence: item.confidence || item.relevance || item.importance || 0.8,
736
+ evidence: [],
737
+ relatedFindings: []
738
+ }));
739
+ } else {
740
+ // Handle object results (summary)
741
+ findings = [{
742
+ id: this.generateId(), type,
743
+ value: data, confidence: 0.9, evidence: [], relatedFindings: []
744
+ }];
745
+ }
746
+
747
+ return {
748
+ id,
749
+ requestId: this.generateId(),
750
+ type,
751
+ findings,
752
+ confidence: 0.9,
753
+ processingTime: 0,
754
+ timestamp: new Date()
755
+ };
756
+ }
757
+
681
758
  /**
682
759
  * Analyze by specific type
683
760
  */
package/creativity.ts CHANGED
@@ -17,6 +17,7 @@ import {
17
17
  ThinkingStage
18
18
  } from './types';
19
19
  import { EventEmitter } from 'events';
20
+ import { llmService } from './llm-service';
20
21
 
21
22
  // ============================================================================
22
23
  // BRAINSTORMING ENGINE
@@ -684,14 +685,14 @@ export class CreativityEngine extends EventEmitter {
684
685
  /**
685
686
  * Start a creative session
686
687
  */
687
- startSession(
688
+ async startSession(
688
689
  prompt: string,
689
690
  options: {
690
691
  techniques?: CreativityTechnique[];
691
692
  ideaCount?: number;
692
693
  duration?: number;
693
694
  } = {}
694
- ): CreativeSession {
695
+ ): Promise<CreativeSession> {
695
696
  const {
696
697
  techniques = ['brainstorming', 'analogy', 'scamper'],
697
698
  ideaCount = 15,
@@ -708,13 +709,21 @@ export class CreativityEngine extends EventEmitter {
708
709
  data: { prompt, techniques }
709
710
  } as ThinkingEvent);
710
711
 
711
- // Generate ideas using specified techniques
712
- const ideas: Idea[] = [];
713
-
714
- techniques.forEach(technique => {
715
- const techniqueIdeas = this.generateIdeasWithTechnique(prompt, technique, Math.ceil(ideaCount / techniques.length));
716
- ideas.push(...techniqueIdeas);
717
- });
712
+ // Generate ideas
713
+ let ideas: Idea[] = [];
714
+
715
+ try {
716
+ ideas = await this.generateIdeasWithLLM(prompt, techniques, ideaCount);
717
+ } catch (error) {
718
+ console.warn('LLM creativity failed, falling back to internal engine', error);
719
+ }
720
+
721
+ if (ideas.length === 0) {
722
+ techniques.forEach(technique => {
723
+ const techniqueIdeas = this.generateIdeasWithTechnique(prompt, technique, Math.ceil(ideaCount / techniques.length));
724
+ ideas.push(...techniqueIdeas);
725
+ });
726
+ }
718
727
 
719
728
  // Find connections between ideas
720
729
  const connections = this.findConnections(ideas);
@@ -766,6 +775,50 @@ export class CreativityEngine extends EventEmitter {
766
775
  return session;
767
776
  }
768
777
 
778
+ private async generateIdeasWithLLM(prompt: string, techniques: CreativityTechnique[], count: number): Promise<Idea[]> {
779
+ const promptText = `
780
+ You are a creativity engine.
781
+ Prompt: "${prompt}"
782
+ Techniques to use: ${techniques.join(', ')}
783
+ Target count: ${count} ideas
784
+
785
+ Return strictly JSON with structure:
786
+ {
787
+ "ideas": [
788
+ {
789
+ "content": "string (the idea description)",
790
+ "technique": "string (which technique was used)",
791
+ "novelty": number (0-1),
792
+ "feasibility": number (0-1),
793
+ "impact": number (0-1),
794
+ "tags": ["string"]
795
+ }
796
+ ]
797
+ }
798
+ `;
799
+
800
+ const response = await llmService.generateText({ prompt: promptText });
801
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
802
+
803
+ if (jsonMatch) {
804
+ const result = JSON.parse(jsonMatch[0]);
805
+ if (Array.isArray(result.ideas)) {
806
+ return result.ideas.map((item: any, index: number) => ({
807
+ id: `idea_llm_${Date.now()}_${index}`,
808
+ content: item.content,
809
+ technique: item.technique as CreativityTechnique,
810
+ novelty: item.novelty || 0.7,
811
+ feasibility: item.feasibility || 0.7,
812
+ impact: item.impact || 0.7,
813
+ relatedIdeas: [],
814
+ tags: item.tags || [],
815
+ generatedAt: new Date()
816
+ }));
817
+ }
818
+ }
819
+ return [];
820
+ }
821
+
769
822
  /**
770
823
  * Generate ideas using a specific technique
771
824
  */
@@ -21,6 +21,8 @@ export declare class AnalysisEngine extends EventEmitter {
21
21
  depth?: 'surface' | 'moderate' | 'deep';
22
22
  context?: string;
23
23
  }): Promise<AnalysisResult[]>;
24
+ private performLLMAnalysis;
25
+ private convertLLMResult;
24
26
  /**
25
27
  * Analyze by specific type
26
28
  */
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,cAAc,EACd,YAAY,EAGZ,gBAAgB,EAEhB,eAAe,EACf,YAAY,EAKb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAikBtC,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;;IAa3C;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;QACxC,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,cAAc,EAAE,CAAC;IAqD5B;;OAEG;YACW,aAAa;IA+C3B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;YAmBT,SAAS;IA+BvB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,gBAAgB;IAIjE;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIrE,OAAO,CAAC,UAAU;CAGnB;AAMD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
1
+ {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,cAAc,EACd,YAAY,EAGZ,gBAAgB,EAEhB,eAAe,EACf,YAAY,EAKb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAkkBtC,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,gBAAgB,CAAmB;;IAa3C;;OAEG;IACG,OAAO,CACX,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;QACP,KAAK,CAAC,EAAE,YAAY,EAAE,CAAC;QACvB,KAAK,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;QACxC,OAAO,CAAC,EAAE,MAAM,CAAC;KACb,GACL,OAAO,CAAC,cAAc,EAAE,CAAC;YAmEd,kBAAkB;IAuBhC,OAAO,CAAC,gBAAgB;IAuCxB;;OAEG;YACW,aAAa;IA+C3B,OAAO,CAAC,gBAAgB;IAmBxB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,aAAa;IAkBrB,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,eAAe;YAmBT,SAAS;IA+BvB,OAAO,CAAC,cAAc;IAgCtB,OAAO,CAAC,aAAa;IAgCrB,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,gBAAgB;IAIjE;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAItF;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAIrE,OAAO,CAAC,UAAU;CAGnB;AAMD,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
package/dist/analysis.js CHANGED
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.analysisEngine = exports.AnalysisEngine = void 0;
8
8
  const types_1 = require("./types");
9
9
  const events_1 = require("events");
10
+ const llm_service_1 = require("./llm-service");
10
11
  class SentimentAnalyzer {
11
12
  constructor() {
12
13
  this.positiveWords = new Set([
@@ -499,9 +500,23 @@ class AnalysisEngine extends events_1.EventEmitter {
499
500
  data: { content: content.substring(0, 100) + '...', types }
500
501
  });
501
502
  const results = [];
503
+ // Try to get bulk analysis from LLM first
504
+ let llmResults = {};
505
+ try {
506
+ llmResults = await this.performLLMAnalysis(content, types, context);
507
+ }
508
+ catch (error) {
509
+ console.warn('LLM analysis failed, falling back to local engines', error);
510
+ }
502
511
  try {
503
512
  for (const type of types) {
504
- const result = await this.analyzeByType(type, content, context, depth);
513
+ let result;
514
+ if (llmResults[type]) {
515
+ result = this.convertLLMResult(type, llmResults[type]);
516
+ }
517
+ else {
518
+ result = await this.analyzeByType(type, content, context, depth);
519
+ }
505
520
  results.push(result);
506
521
  }
507
522
  const processingTime = Date.now() - startTime;
@@ -523,6 +538,65 @@ class AnalysisEngine extends events_1.EventEmitter {
523
538
  throw new types_1.ThinkingError(`Analysis failed: ${error instanceof Error ? error.message : 'Unknown error'}`, types_1.ThinkingStage.ANALYSIS, true, error instanceof Error ? error : undefined);
524
539
  }
525
540
  }
541
+ async performLLMAnalysis(content, types, context) {
542
+ const prompt = `
543
+ Analyze this text: "${content.substring(0, 3000)}..."
544
+ ${context ? `Context: ${context}` : ''}
545
+
546
+ Provide analysis for: ${types.join(', ')}.
547
+
548
+ Return strictly JSON with keys: ${types.map(t => `"${t}"`).join(', ')}.
549
+ Structure requirements:
550
+ - sentiment: { score: { positive: 0-1, negative: 0-1, neutral: 0-1, compound: -1 to 1 }, label: string }
551
+ - entity: array of { name, type, confidence: 0-1, mentions: number }
552
+ - topic: array of { name, relevance: 0-1, keywords: [] }
553
+ - keyword: array of { term, frequency, importance: 0-1 }
554
+ - summary: { summary: string }
555
+ - fact_check: array of { claim, verdict: true/false/mixed, confidence }
556
+ - trend: array of { trend: string, count }
557
+ `;
558
+ const response = await llm_service_1.llmService.generateText({ prompt });
559
+ const jsonMatch = response.match(/\{[\s\S]*\}/);
560
+ return jsonMatch ? JSON.parse(jsonMatch[0]) : {};
561
+ }
562
+ convertLLMResult(type, data) {
563
+ const id = this.generateId();
564
+ let findings = [];
565
+ // Map raw JSON data to Finding[] structure
566
+ if (type === 'sentiment') {
567
+ findings = [{
568
+ id: this.generateId(), type: 'sentiment_analysis',
569
+ value: data, confidence: 0.9, evidence: [], relatedFindings: []
570
+ }];
571
+ }
572
+ else if (Array.isArray(data)) {
573
+ // Handle array results (entity, topic, keyword, fact_check)
574
+ findings = data.map((item) => ({
575
+ id: this.generateId(),
576
+ type,
577
+ value: item,
578
+ confidence: item.confidence || item.relevance || item.importance || 0.8,
579
+ evidence: [],
580
+ relatedFindings: []
581
+ }));
582
+ }
583
+ else {
584
+ // Handle object results (summary)
585
+ findings = [{
586
+ id: this.generateId(), type,
587
+ value: data, confidence: 0.9, evidence: [], relatedFindings: []
588
+ }];
589
+ }
590
+ return {
591
+ id,
592
+ requestId: this.generateId(),
593
+ type,
594
+ findings,
595
+ confidence: 0.9,
596
+ processingTime: 0,
597
+ timestamp: new Date()
598
+ };
599
+ }
526
600
  /**
527
601
  * Analyze by specific type
528
602
  */
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../analysis.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"analysis.js","sourceRoot":"","sources":["../analysis.ts"],"names":[],"mappings":"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"}
@@ -20,7 +20,8 @@ export declare class CreativityEngine extends EventEmitter {
20
20
  techniques?: CreativityTechnique[];
21
21
  ideaCount?: number;
22
22
  duration?: number;
23
- }): CreativeSession;
23
+ }): Promise<CreativeSession>;
24
+ private generateIdeasWithLLM;
24
25
  /**
25
26
  * Generate ideas using a specific technique
26
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"creativity.d.ts","sourceRoot":"","sources":["../creativity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EAKnB,gBAAgB,EAKjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAsoBtC,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAA2C;;IAY3D;;OAEG;IACH,YAAY,CACV,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd,GACL,eAAe;IA2ElB;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuBlC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAIhD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlE;;OAEG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG;IAIzD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAI5F;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1D,OAAO,CAAC,UAAU;CAGnB;AAMD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"creativity.d.ts","sourceRoot":"","sources":["../creativity.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,mBAAmB,EAKnB,gBAAgB,EAKjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAuoBtC,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,mBAAmB,CAAsB;IACjD,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAwB;IAC7C,OAAO,CAAC,gBAAgB,CAAmB;IAC3C,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,QAAQ,CAA2C;;IAY3D;;OAEG;IACG,YAAY,CAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;QACP,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;QACnC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACd,GACL,OAAO,CAAC,eAAe,CAAC;YAmFb,oBAAoB;IA4ClC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAuBlC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,mBAAmB;IA0B3B,OAAO,CAAC,oBAAoB;IAe5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAMvB,OAAO,CAAC,mBAAmB;IAc3B,OAAO,CAAC,mBAAmB;IAM3B;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAIhD;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAIlE;;OAEG;IACH,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG;IAIzD;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAI3F;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAI5F;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAI1D,OAAO,CAAC,UAAU;CAGnB;AAMD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}