npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@gotza02/seq-thinking

v1.3.5

Published

Advanced Sequential Thinking MCP Tool with Swarm Agent Coordination

Readme

MCP Sequential Thinking with Swarm Coordination

Version License Node.js

Advanced Sequential Thinking MCP Server ที่มาพร้อมกับ Swarm Intelligence แบบบูรณาการ เครื่องมือนี้ช่วยเพิ่มประสิทธิภาพให้กับสภาพแวดล้อม AI ของคุณด้วยการให้เหตุผลแบบมีโครงสร้าง การแก้ไขตนเอง และทีมเอเจนต์เฉพาะทางที่ประสานงานกัน โดยใช้ประโยชน์จากเครื่องมือ CLI ของ LLM ในเครื่องที่มีอยู่แล้ว

🚀 คุณสมบัติหลัก

  • 🧠 Advanced Sequential Thinking: รองรับการแตกกิ่ง การรวมกัน และการตัดแต่งเส้นทางการคิด
  • 🤖 Swarm Intelligence: ประสานงานเอเจนต์เฉพาะทาง (Reasoner, Critic, Synthesizer, Meta-Reasoner, Specialist) พร้อมการควบคุมการทำงานพร้อมกันแบบ Mutex เพื่อป้องกันปัญหา race condition
  • 🔌 BYO-LLM (Bring Your Own LLM): เชื่อมต่อโดยตรงกับ Gemini, Claude, Kimi, และ OpenCode ผ่าน CLI tools ของพวกเขา—ไม่ต้องใช้ API keys เพิ่มเติมหากคุณล็อกอินอยู่แล้ว
  • ⏱️ Flexible Timeout Control: รองรับการตั้งค่า timeout แบบยืดหยุ่น (Quick/Standard/Extended/Complex presets) พร้อมโหมดรอไม่จำกัดเวลา (timeoutMs: 0 หรือ -1) สำหรับงานที่ต้องการการประมวลผลนาน
  • 🔧 Improved CLI Detection: แก้ไขปัญหาการตรวจหา CLI tools บนระบบที่ไม่มี command builtin โดยใช้ which และ fallback การตรวจสอบผ่าน --version
  • 🔄 Auto-Fallback และความทนทาน: สลับผู้ให้บริการอัตโนมัติหากผู้ใดผู้หนึ่งล้มเหลว (เช่น gemini -> claude) รวมถึงลอจิกการ retry สำหรับการดำเนินการงานที่ยืดหยุ่น
  • 💾 การเก็บข้อมูลและการกู้คืน: บันทึกเซสชัน สถานะเอเจนต์ และงานไปยังดิสก์อัตโนมัติ รวมถึงระบบกู้คืนที่คืนค่างานที่ถูกขัดจังหวะให้กลับสู่สถานะ pending เมื่อรีสตาร์ท
  • 🔍 การแก้ไขตนเอง: ตรวจจับ logical fallacies และการลดลงของความมั่นใจแบบ proactive พร้อมกระตุ้นการดำเนินการแก้ไข
  • 🛡️ Security-First: ป้องกัน Shell Injection และ Path Traversal ด้วยการใช้ execFile และ Zod validation

📋 Changelog

v1.3.5 (2026-02-05) - Per-Agent Provider Selection

✨ New Features:

  • Per-Agent LLM Provider: กำหนด Provider เฉพาะให้แต่ละ Agent ได้ (ไม่ต้องใช้ fallback)

    • ตัวอย่าง: modelProvider: "gemini" → Agent นี้ใช้ Gemini เท่านั้น
    • ตัวอย่าง: modelProvider: "claude" → Agent นี้ใช้ Claude เท่านั้น
    • ไม่กำหนด → ใช้ค่าจาก PROVIDER env (fallback ตามปกติ)
  • Environment Variable Loading: รองรับการอ่าน .env file อัตโนมัติ

    • ไม่ต้องตั้งค่าใน Claude Desktop ซ้ำซ้อน
    • สร้างไฟล์ .env แล้วระบบจะอ่านค่าเอง
  • Capability Partial Matching: ปรับปรุงการจับคู่ Capabilities

    • จากเดิมต้องครบ 100% → 现在ครบ 50% ก็ผ่าน (fallback)
    • ลดปัญหา "No suitable agent found"
  • Debug Logging ปรับปรุง: เพิ่ม logging สำหรับตรวจสอบ env vars และ provider selection

🔧 Configuration Examples:

// Claude Desktop Config - Gemini Only
{
  "mcpServers": {
    "seq-thinking": {
      "command": "bash",
      "args": ["-c", "export PROVIDER=gemini && npx -y @gotza02/seq-thinking@latest"]
    }
  }
}

// Claude Desktop Config - Multi Provider
{
  "mcpServers": {
    "seq-thinking": {
      "command": "bash",
      "args": ["-c", "export PROVIDER=gemini,claude,kimi && npx -y @gotza02/seq-thinking@latest"]
    }
  }
}

Register Agent with Specific Provider:

{
  "operation": "register_agent",
  "name": "GoldAnalyzer",
  "agentType": "reasoner",
  "modelProvider": "gemini",
  "capabilities": ["financial_analysis"]
}

v1.3.0 (2026-02-05) - Major Refactoring by 12 Sub Agents

🏗️ Architecture Improvements & Critical Fixes:

This release includes major architectural improvements and critical bug fixes by 12 parallel Sub Agents analyzing 43+ source files:

  • 🔴 Critical Fixes:

    • Fixed SessionStatus Bug: Sessions now correctly start with ACTIVE status instead of stuck at INITIALIZING
    • Fixed Type Safety: Removed all 14 instances of any type, replaced with unknown + type guards
    • Unified Error Hierarchy: Consolidated SequentialThinkingError and AppError into single hierarchy with ErrorCode enum
    • Implemented 6 Consensus Algorithms: Full implementation of Majority Vote, Borda Count, Condorcet, Delphi Method, and Prediction Market (previously only Weighted Vote worked)
  • 🟠 High Priority Features:

    • Rate Limiting: Added sliding window rate limiter with per-session and per-operation limits (DoS protection)
    • Random Tie-Breaking: Fixed bias in consensus, task assignment, and conflict resolution (was first-wins, now uniform random)
    • Batch Persistence: Implemented batched writes for 10-100x I/O performance improvement
    • LSH Indexing: Added Locality Sensitive Hashing for O(1) similarity search (1,400x speedup vs O(n) linear scan)
    • Security Audit Logging: Immutable hash-chain audit trail with 20+ security event types and PII redaction
  • 🟡 Code Quality:

    • Modular Architecture: Extracted 6 classes from sequential-thinking.ts and 7 classes from swarm-coordinator.ts into separate modules
    • Barrel Exports: Clean src/thinking/ and src/swarm/ modules with index.ts exports
    • 90+ MCP Server Tests: Comprehensive test coverage for all tool handlers (previously only 14 lines placeholder)
    • Assignment Strategies: Complete implementation of Performance-based, Cost-based, and Fastest-first strategies with metrics tracking
  • 📊 Stats:

    • 12 Sub Agents deployed in parallel
    • 30+ files modified/created
    • 200+ new test cases
    • 10-1,400x performance improvements
    • 100% TypeScript strict mode compliance

v1.2.1 (2026-02-04)

🐛 Bug Fixes by 30 Sub Agents:

This release includes comprehensive bug fixes across the entire codebase by 30 parallel Sub Agents:

  • 🔴 Critical Fixes:

    • Fixed version sync across all files (package.json, constants.ts, index.ts, mcp-server.ts)
    • Fixed SessionManager memory leak - proper cleanup timer and completed sessions removal
    • Fixed race conditions in TaskQueueManager with mutex protection
    • Fixed type safety issues - replaced 'as any' with proper type guards
    • Fixed inconsistent error handling patterns across all modules
  • 🟠 High Priority:

    • Fixed null/undefined checks in all agent constructors and process methods
    • Fixed persistence atomic write - guaranteed temp file cleanup
    • Fixed LLM adapter timeout handling with AbortController
    • Fixed input validation in MCP server handlers
    • Fixed logging consistency - all console.* replaced with Logger
    • Fixed TaskAssigner edge cases with empty agents array
    • Fixed AgentRegistry status updates and performance tracking
    • Fixed ConsensusEngine parameter validation
  • 🟡 Medium Priority:

    • Fixed ConflictResolver validation and strategy handling
    • Fixed ThoughtGraph validation and type assertions
    • Fixed SelfCorrectionEngine type definitions
    • Fixed SwarmCoordinator executeTask flow
    • Fixed SpecialistAgent input handling
    • Fixed SynthesizerAgent output validation
    • Fixed CriticAgent content validation with circular reference protection
    • Fixed BaseAgent task execution with performance history limit
    • Fixed ReasonerAgent strategy selection with constants
    • Fixed utility functions (deepClone with Set/Map, deepMerge null handling)
  • 🟢 Improvements:

    • Centralized constants (MAX_PERFORMANCE_HISTORY, MAX_REVISION_HISTORY, etc.)
    • Complete Zod validation schemas
    • Enhanced Logger with circular reference protection and rate limiting
    • Fixed AdaptiveGranularityEngine with caching
    • Fixed session settings to use constants instead of hardcoded values

📊 Stats:

  • 30 Sub Agents deployed in parallel
  • 30 bugs fixed across 17 files
  • 100% test pass rate (37 tests)
  • Improved type safety throughout

v1.2.0 (2026-02-04)

🐛 Bug Fixes & Improvements (40+ issues resolved by Sub Agents):

  • 🔴 Critical Bugs Fixed:

    • Fixed [object Object] bug in reasoner-agent - properly stringify objects for LLM prompts
    • Implemented atomic write pattern in persistence - prevent file corruption on crash
    • Fixed workingMemory not being restored after restart
    • Added state consistency with backup/restore pattern (WAL)
    • Fixed race conditions in task assignment with proper mutex coverage
  • 🟠 High Priority Fixes:

    • Fixed memory leaks - Session TTL cleanup (24h default) and performance history limit (100 entries)
    • Fixed test hanging issues - Added MOCK_LLM mode and proper Jest configuration
    • Fixed Date object deserialization from persistence
    • Fixed previousVotes bug in consensus - now properly shares votes between agents
    • Added data validation structure with Zod
  • 🟡 Medium Priority:

    • Fixed 63+ type safety issues - replaced as any assertions with proper type guards
    • Added comprehensive type guards for task input validation
  • 🟢 Low Priority & Improvements:

    • Added mutex timeout protection (30s default) to prevent queue blocking
    • Added mutex protection to AgentRegistry for thread-safe operations
    • Added session cleanup job for disk storage (7-day default)
    • Added XML sanitization utilities for secure output
    • Enhanced LLM adapter with AbortController timeout and retry logic (3 retries, exponential backoff)
    • Added custom error classes with ErrorCode enum for better error handling
    • Improved error messages - preserve stack traces with formatError() and toErrorInfo()
    • Fixed confidence calculation - more realistic defaults (0 instead of 0.5) and using calibration history
    • Updated package.json with proper exports field and build configuration
    • Fixed TypeScript strict mode - resolved all TS6133 unused variable errors

📊 Stats:

  • 40+ bugs fixed
  • 5 critical bugs resolved
  • 100% TypeScript compilation success
  • 37 tests passing

📦 เริ่มต้นใช้งานอย่างรวดเร็ว (NPX)

คุณสามารถรัน MCP server นี้ได้โดยตรงโดยใช้ npx โดยไม่ต้อง clone repository วิธีนี้เป็นวิธีที่แนะนำ

ข้อกำหนดเบื้องต้น: Node.js v18 หรือสูงกว่า

npx -y @gotza02/seq-thinking@latest

⚙️ การตั้งค่า MCP

หากต้องการใช้เครื่องมือนี้กับ MCP clients (เช่น Claude Desktop, Cline, หรือ Cursor) ให้เพิ่มการตั้งค่าต่อไปนี้ลงในไฟล์ settings ของคุณ

⚠️ หมายเหตุสำคัญ: เนื่องจาก npx ไม่ส่งต่อ environment variables จาก env field โดยตรง จำเป็นต้องใช้ bash wrapper เพื่อ export ค่าก่อนเรียก npx

แบบที่ 1: ใช้ bash ครอบ npx (แนะนำ)

สำหรับ Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json บน macOS หรือ %APPDATA%\Claude\claude_desktop_config.json บน Windows):

{
  "mcpServers": {
    "seq-thinking": {
      "command": "bash",
      "args": [
        "-c",
        "export PROVIDER=gemini,claude,kimi && export LOG_LEVEL=INFO && npx -y @gotza02/seq-thinking@latest"
      ]
    }
  }
}

ใช้ Provider เดียว (Gemini Only):

{
  "mcpServers": {
    "seq-thinking": {
      "command": "bash",
      "args": [
        "-c",
        "export PROVIDER=gemini && export LOG_LEVEL=INFO && npx -y @gotza02/seq-thinking@latest"
      ]
    }
  }
}

สำหรับ Cline (~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json):

{
  "mcpServers": {
    "seq-thinking": {
      "command": "bash",
      "args": [
        "-c",
        "export PROVIDER=gemini,claude,kimi && export LOG_LEVEL=INFO && npx -y @gotza02/seq-thinking@latest"
      ],
      "disabled": false,
      "autoApprove": []
    }
  }
}

แบบที่ 2: ใช้ Local Development (ถ้า clone โปรเจกต์)

{
  "mcpServers": {
    "seq-thinking": {
      "command": "node",
      "args": ["/home/YOUR_USERNAME/mcp-sequential-thinking/cli.js"]
    }
  }
}

แล้วสร้างไฟล์ .env ใน directory โปรเจกต์:

PROVIDER=gemini,claude,kimi
LOG_LEVEL=INFO

ตัวแปรสภาพแวดล้อม (Environment Variables)

| ตัวแปร | คำอธิบาย | ค่าเริ่มต้น | ตัวอย่าง | |----------|-------------|---------|---------| | provider | รายการ LLM CLIs ที่คั่นด้วยจุลภาค ระบบจะลองใช้ตามลำดับ | gemini | gemini,claude,kimi | | MOCK_LLM | หากเป็น true จะคืนค่า mock responses (สำหรับการทดสอบโดยไม่มีค่าใช้จ่าย API) | false | true | | LOG_LEVEL | ระดับความละเอียดของการบันทึก (DEBUG, INFO, WARN, ERROR) | INFO | DEBUG | | MCP_DATA_DIR | ไดเรกทอรีที่กำหนดเองสำหรับการเก็บข้อมูลเซสชัน/เอเจนต์ | ./data | /home/user/mcp-data | | TMPDIR | หากไม่ได้ตั้งค่า MCP_DATA_DIR ข้อมูลจะถูกเก็บใน $TMPDIR/data | ./ | /tmp | | RATE_LIMIT_SESSION_OPS | Rate limit สำหรับ session operations (requests,windowMs) | 100,60000 | 50,30000 | | RATE_LIMIT_TOOL_CALLS | Rate limit สำหรับ tool calls | 60,60000 | 30,30000 | | RATE_LIMIT_LLM_CALLS | Rate limit สำหรับ LLM calls | 30,60000 | 20,60000 | | BATCH_PERSISTENCE | เปิดใช้งาน batch persistence mode | false | true | | BATCH_SIZE | จำนวน writes สูงสุดต่อ batch | 100 | 50 | | BATCH_FLUSH_MS | Interval สำหรับ auto-flush (ms) | 500 | 250 |

กำหนด Provider สำหรับแต่ละ Agent (v1.3.5+)

คุณสามารถกำหนดให้แต่ละ Agent ใช้ Provider เฉพาะได้ (ไม่ต้องใช้ fallback หลายตัว):

{
  "operation": "register_agent",
  "name": "GoldAnalyzer",
  "agentType": "reasoner",
  "modelProvider": "gemini",
  "capabilities": ["analysis"]
}

ค่าที่รองรับ: | ค่า | ผลลัพธ์ | |-----|---------| | "gemini" | ใช้ Gemini เท่านั้น | | "claude" | ใช้ Claude เท่านั้น | | "kimi" | ใช้ Kimi เท่านั้น | | "opencode" | ใช้ OpenCode เท่านั้น | | ไม่ระบุ / null | ใช้ค่าจาก PROVIDER env (fallback ตามลำดับ) |

ตัวอย่างการใช้งาน:

// Agent ที่ใช้ Gemini อย่างเดียว (เร็ว, ราคาถูก)
{
  "operation": "register_agent",
  "name": "DataAnalyzer",
  "agentType": "reasoner",
  "modelProvider": "gemini"
}

// Agent ที่ใช้ Claude อย่างเดียว (แม่นยำสูง)
{
  "operation": "register_agent",
  "name": "CodeReviewer",
  "agentType": "critic",
  "modelProvider": "claude"
}

// Agent ที่ใช้ fallback ตาม env (ยืดหยุ่น)
{
  "operation": "register_agent",
  "name": "GeneralWorker",
  "agentType": "utility"
  // ไม่ระบุ modelProvider → ใช้ PROVIDER=gemini,claude,kimi
}

เครื่องมือ CLI ที่รองรับ:

  • Gemini: ต้องติดตั้ง gemini CLI และยืนยันตัวตนแล้ว
  • Claude: ต้องติดตั้ง claude (Claude Code) CLI และยืนยันตัวตนแล้ว
  • Kimi: ต้องติดตั้ง kimi (Kimi Code CLI) และยืนยันตัวตนแล้ว
  • OpenCode: ต้องติดตั้ง opencode CLI

🛠️ การใช้งาน

เซิร์ฟเวอร์นี้ให้บริการเครื่องมือหลัก 2 อย่างแก่ AI client ของคุณ:

1. advanced_sequential_thinking

เครื่องยนต์การคิดหลัก

Operations: | Operation | คำอธิบาย | |-----------|---------| | initialize | สร้างเซสชันการคิดใหม่ | | add_thought | เพิ่มความคิดลงในเซสชัน | | branch_thought | สร้างกิ่งการคิดใหม่ (parallel hypothesis) | | merge_branches | รวมกิ่งกลับเข้าด้วยกัน | | prune_branch | ตัดกิ่งที่ไม่จำเป็น | | revise_thought | แก้ไขความคิดเดิม | | self_correct | ตรวจสอบและแก้ไข logical fallacies | | add_meta_thought | เพิ่มความคิดเชิงเมตา | | delegate_to_swarm | มอบหมายให้ Swarm Agents ประมวลผล | | complete_session | ปิดเซสชัน |

กรณีใช้งาน: การแก้ปัญหาเชิงลึกแบบเป็นขั้นตอนพร้อมความสามารถในการย้อนกลับ

2. swarm_agent_coordination

ผู้จัดการทีมงาน Swarm Agents

Agent Types: | Type | บทบาท | ความสามารถ | |------|-------|-----------| | Reasoner | ให้เหตุผล | Chain of Thought, Tree of Thought, Analogical, Abductive | | Critic | ตรวจสอบ | Logical, Factual, Bias, Safety | | Synthesizer | สังเคราะห์ | Consensus, Creative, Conflict Resolution | | Meta-Reasoning | คิดเชิงเมตา | วิเคราะห์กระบวนการคิด | | Specialist | ผู้เชี่ยวชาญ | ตาม capabilities ที่กำหนด | | Utility | ทั่วไป | งานทั่วไปที่ไม่ต้องการความเชี่ยวชาญพิเศษ |

Operations:

  • register_agent - ลงทะเบียน agent ใหม่
  • assign_task - มอบหมายงานให้ agent
  • reach_consensus - ให้ agents ลงมติร่วมกัน
  • identify_conflict - ระบุความขัดแย้ง
  • resolve_conflict - แก้ไขความขัดแย้ง
  • broadcast_message - ส่งข้อความ broadcast
  • send_direct_message - ส่งข้อความโดยตรง
  • get_swarm_stats - ดูสถิติ swarm

กรณีใช้งาน: มอบหมายงานย่อยให้กับ "ผู้เชี่ยวชาญเสมือน" เฉพาะทาง (เช่น ขอให้เอเจนต์ "Critic" ตรวจสอบแผน)

🎯 Consensus Algorithms (6 แบบ)

ระบบรองรับการลงมติร่วมกันด้วย algorithms หลากหลาย:

| Algorithm | คำอธิบาย | Use Case | |-----------|---------|----------| | MAJORITY_VOTE | นับคะแนนเสียงข้างมากแบบธรรมดา | ง่าย รวดเร็ว | | WEIGHTED_VOTE | นับคะแนนตามน้ำหนัก confidence | Agent มีความน่าเชื่อถือต่างกัน | | BORDA_COUNT | ให้คะแนนตามอันดับ (n-1, n-2, ...) | หาผลประนีประนอม | | CONDORCET | เปรียบเทียบคู่ต่อคู่ | หาผู้ชนะที่ยุติธรรม | | DELPHI_METHOD | ปรึกษาผู้เชี่ยวชาญแบบทำซ้ำ | ประเด็นที่ซับซ้อน | | PREDICTION_MARKET | ตลาดทำนายแบบ stake | สร้างแรงจูงใจ |

// ตัวอย่างการใช้ Borda Count
await coordinator.reachConsensus(
  proposal,
  options,
  'borda_count',  // เลือก algorithm
  agentIds,
  0.67,           // min agreement
  3               // max rounds
);

📋 Task Assignment Strategies (7 แบบ)

มอบหมายงานด้วย strategies ที่หลากหลาย:

| Strategy | คำอธิบาย | เหมาะกับ | |----------|---------|---------| | round_robin | วนกันมอบหมาย | งานเท่าๆ กัน | | capability_based | ตามความสามารถ | Agent เชี่ยวชาญต่างกัน | | load_balanced | ตามจำนวนงาน | กระจายภาระ | | performance_based | ตามประวัติ performance | ต้องการคุณภาพสูง | | cost_based | ตาม cost ต่ำสุด | มี cost constraint | | fastest_first | ตามเวลาทำงานต่ำสุด | ต้องการความเร็ว | | adaptive | ผสมหลายปัจจัย | สถานการณ์ทั่วไป |

// ตัวอย่างการใช้ Performance-based
await coordinator.assignTask(task, 'performance_based', [], {
  fallbackStrategy: 'capability_based',
  minPerformanceScore: 0.7
});

⏱️ Timeout Configuration

ควบคุมเวลารอการตอบสนองของ Agents ได้อย่างยืดหยุ่น:

Timeout Presets: | Preset | รายละเอียด | ใช้สำหรับ | |--------|-----------|----------| | QUICK_TIMEOUT_CONFIG | 30 วินาที | งานเร็วๆ ง่ายๆ | | STANDARD_TIMEOUT_CONFIG | 90 วินาที | งานทั่วไป (ค่าเริ่มต้น) | | EXTENDED_TIMEOUT_CONFIG | 5 นาที | งานซับซ้อน | | COMPLEX_TIMEOUT_CONFIG | 10 นาที | งานลึก/วิจัย |

การใช้งานแบบรอไม่จำกัดเวลา (Indefinite Timeout):

// Task รอไม่จำกัดเวลา (จนกว่า agent จะเสร็จ)
await coordinator.executeTask(taskId, 3, { timeoutMs: 0 });
// หรือ
await coordinator.executeTask(taskId, 3, { timeoutMs: -1 });

// Consensus รอทุก agent โหวตเสร็จ ไม่มี timeout
await coordinator.reachConsensus(proposal, options, algorithm, agents, 0.67, 3, {
  overallMaxTimeMs: 0,   // รอทุก agent เสร็จ
  maxTimeMs: 60000       // แต่ละ agent มีเวลาโหวต 60 วิ
});

หมายเหตุ: เมื่อใช้ timeoutMs: 0 หรือ -1 ระบบจะรอจนกว่า agent จะทำงานเสร็จโดยไม่มีการ timeout

🏗️ สถาปัตยกรรม

┌─────────────────────────────────────────────────────────────────────────┐
│                          MCP Server Layer                                │
│  ┌──────────────────────────────┐    ┌────────────────────────────────┐ │
│  │    Sequential Thinking       │    │     Swarm Coordination         │ │
│  │  ┌────────────────────────┐  │    │  ┌──────────────────────────┐  │ │
│  │  │  SessionManager        │  │    │  │  AgentRegistry           │  │ │
│  │  │  ThoughtGraph (DAG)    │  │    │  │  TaskQueueManager        │  │ │
│  │  │  MetaReasoningEngine   │  │    │  │  TaskAssigner (7 strat)  │  │ │
│  │  │  SelfCorrectionEngine  │  │    │  │  ConsensusEngine (6 alg) │  │ │
│  │  │  ConfidenceCalibrator  │  │    │  │  ConflictResolver        │  │ │
│  │  │  AdaptiveGranularity   │  │    │  │  MessageBroker           │  │ │
│  │  └────────────────────────┘  │    │  └──────────────────────────┘  │ │
│  └──────────────────────────────┘    └────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────────────────┘
                                    │
    ┌──────────────┬────────────────┼────────────────┬──────────────┐
    ▼              ▼                ▼                ▼              ▼
┌─────────┐ ┌────────────┐ ┌────────────────┐ ┌──────────┐ ┌─────────────┐
│Persistence│ │Rate Limiter│ │SimilarityIndex │ │  Mutex   │ │LLM Adapter  │
│(Batched) │ │(DoS Protect)│ │   (LSH)        │ │ (Locking)│ │(Multi-Prov) │
└─────────┘ └────────────┘ └────────────────┘ └──────────┘ └─────────────┘
                                    │
                         ┌──────────┴──────────┐
                         ▼                     ▼
                ┌─────────────────┐   ┌─────────────────┐
                │  SecurityLogger │   │   Error Handler │
                │ (Audit Trail)   │   │  (Unified)      │
                └─────────────────┘   └─────────────────┘

องค์ประกอบสำคัญ

| Component | หน้าที่ | |-----------|---------| | ThoughtGraph | จัดการโครงสร้าง DAG (Directed Acyclic Graph) ของความคิด | | SessionManager | จัดการเซสชัน พร้อมบันทึกและโหลดกลับอัตโนมัติ (รองรับ batch persistence) | | MetaReasoningEngine | วิเคราะห์ความคิดเชิงเมตา พร้อม LSH indexing สำหรับ similarity search | | SwarmCoordinator | ประสานงาน agents ทั้งหมด | | AgentRegistry | ลงทะเบียนและค้นหา agents ตามความสามารท | | TaskQueueManager | จัดการคิวงานพร้อม Task Journaling และ Recovery | | TaskAssigner | มอบหมายงานด้วย 7 strategies: round_robin, capability_based, load_balanced, performance_based, cost_based, fastest_first, adaptive | | ConsensusEngine | ลงมติร่วมกันด้วย 6 algorithms: majority_vote, weighted_vote, borda_count, condorcet, delphi_method, prediction_market | | ConflictResolver | แก้ไขความขัดแย้งด้วย 6 strategies | | RateLimiter | ป้องกัน DoS ด้วย sliding window rate limiting | | SimilarityIndex | LSH indexing สำหรับ O(1) similarity search | | SecurityLogger | บันทึก security events แบบ immutable hash-chain | | Mutex | ป้องกัน race conditions ในการมอบหมายงาน | | LLMAdapter | เชื่อมต่อกับ CLI tools (Gemini, Claude, Kimi, OpenCode) |

👨‍💻 การพัฒนาและการติดตั้งในเครื่อง

หากคุณต้องการแก้ไขโค้ดหรือมีส่วนร่วม:

# Clone repository
git clone https://github.com/yourusername/mcp-sequential-thinking.git
cd mcp-sequential-thinking

# ติดตั้ง dependencies
npm install

# Build โปรเจกต์
npm run build

# รันการทดสอบ
export MOCK_LLM=true
npm test

# รันในโหมด development
npm run dev

🐛 การแก้ไขปัญหา (Troubleshooting)

ปัญหา: kimi chat หรือ No such command 'chat'

สาเหตุ: ใช้เวอร์ชันเก่าที่ยังใช้คำสั่ง kimi chat (ซึ่งไม่มีใน Kimi CLI)

แก้ไข:

# 1. อัปเดตเป็นเวอร์ชันล่าสุด
npx -y @gotza02/seq-thinking@latest

# 2. หรือล้าง cache ของ npx
npx clear-npx-cache

# 3. หรือใช้โค้ดในเครื่องโดยตรง
node cli.js

ปัญหา: Multiple MCP Server Processes

สาเหตุ: มีหลาย process รันอยู่พร้อมกัน

แก้ไข:

# หยุดทุก seq-thinking processes
pkill -f "seq-thinking"

# ตรวจสอบอีกครั้ง
ps aux | grep seq-thinking

ปัญหา: Provider ไม่ทำงาน

สาเหตุ: CLI tool ไม่ได้ติดตั้งหรือไม่ได้ login

แก้ไข:

# ตรวจสอบว่า CLI ติดตั้งแล้ว
which gemini  # หรือ claude, kimi, opencode

# ทดสอบด้วย Mock mode
export MOCK_LLM=true
npx -y @gotza02/seq-thinking

📝 ประวัติการเปลี่ยนแปลง (Changelog)

v1.1.35 (2026-02-04)

  • 🐛 แก้ไข (Swarm): แก้ Variable Shadowing ใน reachConsensus() (ตัวแปร isIndefiniteTimeout ทับ function)
  • 🐛 แก้ไข (Swarm): แก้ Promise.race Logic ให้ timeout มีผลจริง (ไม่รอ pending votes ที่ยังไม่เสร็จ)
  • 🐛 แก้ไข (Constants): แก้ isIndefiniteTimeout() ให้ครอบคลุมค่าติดลบทั้งหมด (<= 0)
  • 🐛 แก้ไข (Constants): แก้ resolveTimeoutConfig() ให้ indefinite คำนวณจาก totalMs เสมอ
  • 🐛 แก้ไข (MCP Server): แก้ 'undefined' string comparison เป็น typeof === 'undefined'
  • 🐛 แก้ไข (MCP Server): เพิ่มฟิลด์ที่ขาดหายไปใน JSON Schema (newContent, initialContent, mergeContent, reason)
  • 🐛 แก้ไข (Agents): แก้ [object Object] bug ใน reasoner-agent.ts (ใช้ JSON.stringify)
  • 🐛 แก้ไข (Agents): เพิ่ม null checks และ empty array guards ใน reasoner-agent.ts, synthesizer-agent.ts, base-agent.ts
  • รวมแก้ไข: 13 bugs (9 Critical + 4 Medium)

v1.1.34 (2026-02-04)

  • ✨ ใหม่ (Timeout): เพิ่มระบบ Flexible Timeout Control รองรับการรอไม่จำกัดเวลา (timeoutMs: 0 หรือ -1)
  • ✨ ใหม่ (Timeout): เพิ่ม Timeout Presets: QUICK_TIMEOUT_CONFIG, STANDARD_TIMEOUT_CONFIG, EXTENDED_TIMEOUT_CONFIG, COMPLEX_TIMEOUT_CONFIG
  • แก้ไข (Swarm): executeTask() รองรับการรอ agent ทำงานเสร็จโดยไม่ timeout (เมื่อใช้ timeoutMs: 0)
  • แก้ไข (Swarm): reachConsensus() รองรับรอทุก agent โหวตเสร็จ (overallMaxTimeMs: 0) โดยไม่ยกเลิก pending votes
  • แก้ไข (Utils): withTimeout() และ createTimeoutPromise() รองรับ indefinite timeout

v1.1.25 (2026-02-04)

  • แก้ไข (Session Management): รองรับการใช้ Session ID เดิมผ่าน initialize operation ด้วย sessionId parameter
  • แก้ไข (Agents): ปรับปรุง input validation ให้ยืดหยุ่นขึ้นใน CriticAgent (รองรับ input.content และ input.target)
  • แก้ไข (Agents): ปรับปรุง MetaReasoningAgent ให้มีค่า default operation = 'reflect' และรองรับ sessionContext format
  • แก้ไข (Agents): ปรับปรุง error messages ให้ชัดเจนขึ้นเมื่อ input format ไม่ถูกต้อง
  • แก้ไข (Swarm): เพิ่ม input validation ใน assign_task handler สำหรับ task types ต่างๆ

v1.1.24 (2026-02-04)

  • เอกสาร: อัปเดต README ด้วยรายละเอียดเพิ่มเติมเกี่ยวกับ Architecture, Swarm Agent Types, และ Troubleshooting
  • เอกสาร: เพิ่มตัวอย่างการตั้งค่าสำหรับ Cline
  • ปรับปรุง: เพิ่มความชัดเจนในการใช้ @latest tag สำหรับ npx

v1.1.23 (2026-02-04)

  • Security (สำคัญ): แก้ไขช่องโหว่ Shell Injection โดยใช้ execFile แทน exec
  • Security (สำคัญ): แก้ไขช่องโหว่ Path Traversal โดยเพิ่มการตรวจสอบ ID
  • คุณสมบัติ: สร้างระบบ Zod Validation สำหรับตรวจสอบ inputs ทั้งหมด
  • คุณสมบัติ: รวมค่าคงที่ทั้งหมดไว้ใน constants.ts
  • แก้ไข: แก้ไข version mismatch (1.1.21 → 1.1.22)
  • ปรับปรุง: เพิ่ม Unit Tests สำหรับ SpecialistAgent จาก 3 เป็น 38 tests
  • เอกสาร: เพิ่มเอกสาร API Reference (docs/API.md)

v1.1.22 (2026-02-04)

  • แก้ไข (สำคัญ): ใช้งาน input sanitization ใน handleSequentialThinking เพื่อลบ XML tags ที่เกิดจาก hallucination (เช่น <arg_key>) ออกจากสตริง operation แก้ไขข้อผิดพลาด "Unknown operation" เมื่อ LLM สร้าง arguments ของเครื่องมือผิดรูปแบบ

v1.1.21 (2026-02-04)

  • แก้ไข (Swarm): ปรับปรุงความทนทานทางเทคนิคของ Swarm Agent Delegation อย่างมาก
  • ปรับปรุง: เพิ่มการบันทึกอย่างครอบคลุมตลอดวงจรชีวิตของงาน (submission, assignment, execution)
  • ปรับปรุง: ปรับปรุงการจัดการข้อผิดพลาดใน operation delegate_to_swarm เพื่อจับและรายงานข้อยกเว้นการดำเนินการ
  • แก้ไข: แก้ไขบั๊กที่การดำเนินการของเอเจนต์ล้มเหลวไม่ได้กระตุ้นลอจิกการมอบหมายใหม่

v1.1.20 (2026-02-04)

  • แก้ไข (Kimi): อัปเดตการบูรณาการ kimi CLI ให้ใช้ syntax แบบ non-interactive ที่ถูกต้อง (kimi --quiet --prompt) แก้ไขปัญหาที่ kimi chat ล้มเหลวเนื่องจากโครงสร้างคำสั่งไม่ถูกต้อง

v1.1.19 (2026-02-04)

  • คุณสมบัติ (Persistence): ใช้งานระบบ Task Journaling และ Recovery งานที่ถูกขัดจังหวะ (เช่น เนื่องจาก crash/restart) จะถูกกู้คืนให้กลับสู่สถานะ PENDING โดยอัตโนมัติ
  • คุณสมบัติ (Concurrency): เพิ่ม Mutex-based locking ให้กับ Swarm Coordinator เพื่อป้องกัน race conditions ระหว่างการมอบหมายและดำเนินการงาน
  • ปรับปรุง: ปรับปรุง TaskQueueManager ด้วยลอจิกการเก็บข้อมูลแบบบูรณาการ

v1.1.18 (2026-02-03)

  • แก้ไข: แก้ไขสำคัญสำหรับการกระจาย binary คืนค่า entry point cli.js เพื่อให้เข้ากันได้กับ npx และการติดตั้งแบบ global
  • ปรับปรุง: ตรวจจับโมดูลหลักที่แข็งแกร่งขึ้นสำหรับ ESM

v1.1.17 (2026-02-03)

  • ปรับปรุง: ปรับปรุงลอจิกไดเรกทอรีข้อมูลให้ค่าเริ่มต้นเป็น ./data ในไดเรกทอรีปัจจุบัน แม้ว่าจะมี TMPDIR (พบบ่อยในสภาพแวดล้อม CLI) ในขณะที่ยังอนุญาตให้ override ด้วย TMPDIR และ MCP_DATA_DIR ได้

v1.1.16 (2026-02-03)

  • คุณสมบัติ: เพิ่มการรองรับตัวแปรสภาพแวดล้อม MCP_DATA_DIR และ TMPDIR สำหรับตำแหน่งการเก็บข้อมูลที่ยืดหยุ่น

v1.1.15 (2026-02-03)

  • คุณสมบัติ: เพิ่มการรองรับตัวแปรสภาพแวดล้อม LOG_LEVEL
  • ปรับปรุง: การเริ่มต้น constructor ที่ดีขึ้นสำหรับ MCPServer

v1.1.14 (2026-02-03)

  • แก้ไข: ปรับปรุงความทนทานของ operation register_agent
  • แก้ไข: เพิ่ม aliasing สำหรับฟิลด์ type เป็น agentType เพื่อรองรับการเรียกจาก AI client รุ่นเก่า/สับสน
  • แก้ไข: เพิ่มการรองรับการดึง capabilities จากออบเจกต์ payload ที่ซ้อนอยู่

v1.1.13 (2026-02-03)

  • คุณสมบัติ: เพิ่มประเภท SpecialistAgent ให้กับ swarm coordination
  • แก้ไข: เพิ่มการรองรับประเภทเอเจนต์ specialist และ utility ใน operation register_agent
  • แก้ไข: ปรับปรุงการปรับค่า capabilities ให้รองรับ string[] เมื่อลงทะเบียนเอเจนต์

v1.1.12 (2026-02-03)

  • แก้ไข: แก้ไขปัญหาการแก้ไขโมดูลใน entry point แบบ binary
  • Cleanup: ลบไฟล์ CLI ระดับ root ที่ซ้ำซ้อน
  • ปรับปรุง: ปรับปรุง package.json สำหรับการกระจาย npx ที่เชื่อถือได้

v1.1.11 (2026-02-03)

  • แก้ไข: แก้ไขสุดท้ายสำหรับปัญหาการกระจาย binary

v1.1.10 (2026-02-03)

  • แก้ไข: ปรับโครงสร้างการกระจาย binary เพื่อให้การดำเนินการ npx เชื่อถือได้

v1.1.9 (2026-02-03)

  • แก้ไข: เพิ่ม bin aliases หลายอันเพื่อปรับปรุงความเข้ากันได้กับ npx

v1.1.8 (2026-02-03)

  • แก้ไข: คืนค่าการตั้งค่า bin มาตรฐาน

v1.1.7 (2026-02-03)

  • แก้ไข: แก้ไข bin path ใน package.json เพื่อให้เข้ากันได้กับการดำเนินการ npx

v1.1.5 (2026-02-03)

  • เอกสาร: อัปเดต README เพื่อให้ความสำคัญกับการใช้งาน npx เพื่อการติดตั้งที่ง่ายขึ้น
  • เอกสาร: อัปเดตตัวอย่างการตั้งค่า MCP ให้ใช้คำสั่ง npx

v1.1.4 (2026-02-03)

  • แก้ไข: แก้ไขบั๊กสำคัญใน MetaReasoningAgent ที่ทำให้เกิดการ crash เมื่อวิเคราะห์ thoughts ที่ขาดข้อมูล confidence
  • ปรับปรุง: ปรับปรุงความทนทานของการคำนวณ confidence overall ในเอเจนต์ทั้งหมด
  • เอกสาร: อัปเดต README ด้วยคำแนะนำการใช้งานและการทดสอบที่ครอบคลุม

v1.1.3 (2026-02-03)

  • คุณสมบัติ: Multi-Provider Auto-Fallback
  • คุณสมบัติ: Dynamic Provider Selection ต่องาน
  • ปรับโครงสร้าง: แทนที่ console logs ด้วย Logger แบบมีโครงสร้าง

📄 ใบอนุญาต

MIT License - ดูรายละเอียดในไฟล์ LICENSE