tachibot-mcp 2.26.1 → 2.27.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/README.md CHANGED
@@ -4,18 +4,18 @@
4
4
 
5
5
  ### Multi-Model AI Orchestration Platform
6
6
 
7
- [![Version](https://img.shields.io/badge/version-2.26.1-blue.svg)](https://www.npmjs.com/package/tachibot-mcp)
8
- [![Tools](https://img.shields.io/badge/tools-64_active-brightgreen.svg)](#-tool-ecosystem-64-tools)
7
+ [![Version](https://img.shields.io/badge/version-2.27.0-blue.svg)](https://www.npmjs.com/package/tachibot-mcp)
8
+ [![Tools](https://img.shields.io/badge/tools-65_active-brightgreen.svg)](#-tool-ecosystem-65-tools)
9
9
  [![License](https://img.shields.io/badge/license-AGPL--3.0-green.svg)](LICENSE)
10
10
  [![Node](https://img.shields.io/badge/node-%3E%3D22.0.0-brightgreen.svg)](https://nodejs.org)
11
11
  [![MCP](https://img.shields.io/badge/MCP-Compatible-purple.svg)](https://modelcontextprotocol.io)
12
12
 
13
- **64 AI tools. 12 providers. One protocol.**
13
+ **65 AI tools. 12 providers. One protocol.**
14
14
 
15
15
  Orchestrate Perplexity, Grok, GPT-5.5, Gemini, Qwen, Kimi K2.7-Code, and MiniMax M3
16
16
  from Claude Code, Claude Desktop, Cursor, or any MCP client.
17
17
 
18
- [Get Started](#-quick-start) · [View Tools](#-tool-ecosystem-64-tools) · [Documentation](https://tachibot.com/docs)
18
+ [Get Started](#-quick-start) · [View Tools](#-tool-ecosystem-65-tools) · [Documentation](https://tachibot.com/docs)
19
19
 
20
20
  <br>
21
21
 
@@ -30,6 +30,11 @@ from Claude Code, Claude Desktop, Cursor, or any MCP client.
30
30
 
31
31
  ## What's New
32
32
 
33
+ ### v2.27.0
34
+ - **Grok 4.5** (Jul 8 flagship, "Opus-class") now powers all Grok tools, with automatic fallback to `grok-4.3` while xAI's region-staged rollout completes (EU mid-July) — tools keep working everywhere, and 4.5 activates by itself.
35
+ - **`grok_search_lite`** (new tool, 65 total) — the same Grok live search on `grok-4-1-fast` ($0.20/$0.50, 2M ctx), ~10x cheaper than `grok_search`. Use it for high-volume lookups and jury/council fan-outs.
36
+ - **GPT-5.6 tiers** — `openai_*` tools move to `gpt-5.6-sol` (flagship, same $5/$30 as 5.5 but stronger), `terra` for code (5.5-level at half price), `luna` for explanations ($1/$6). The $30/$180 `gpt-5.5-pro` tier is replaced by sol + reasoning effort; a permission fallback (sol → terra → 5.5) covers org-gated accounts.
37
+
33
38
  ### v2.26.1
34
39
  - **`/test` and `/audit` skills** (19 skills total) — `/test` generates runnable tests via `testgen`; `/audit` runs an OWASP/CWE security review via `security_review`.
35
40
  - **Skill install in the wizard** — `tachibot init` now offers to install Claude Code skills with a per-skill skip choice (`[Enter]`=all · `[s]`=choose which to skip · `[n]`=none). Skills are opt-in — `postinstall` no longer writes to `~/.claude` silently (`npm run install-skills` still installs all non-interactively).
@@ -47,7 +52,7 @@ from Claude Code, Claude Desktop, Cursor, or any MCP client.
47
52
  - **One-click Claude Desktop install** &mdash; download the `.mcpb` from the latest release and double-click. No JSON editing.
48
53
  - **`doctor`** &mdash; shows which keys are set, which tools are visible vs hidden and why, and what to try first.
49
54
 
50
- #### New tools & skills (64 tools · 19 skills)
55
+ #### New tools & skills (65 tools · 19 skills)
51
56
  - `debug_triage` &mdash; ranked root-cause hypotheses with the cheapest discriminating check for each (Grok 4.3)
52
57
  - `spec_writer` &mdash; loose request → reviewable spec: user stories, Given/When/Then, out-of-scope, open questions (GPT-5.5)
53
58
  - `diff_review` / `plan_critique` / `testgen` / `security_review` &mdash; multi-model diff review, adversarial plan red-team, test generation, OWASP/CWE audit
@@ -95,7 +100,7 @@ Skills automatically adapt to your configured API keys. Even with just 1-2 provi
95
100
  ## Key Features
96
101
 
97
102
  ### Multi-Model Intelligence
98
- - **64 AI Tools** across 12 providers &mdash; Perplexity, Grok, GPT-5, Gemini, Qwen, Kimi, MiniMax, DeepSeek, GLM (Zhipu), StepFun, ERNIE (Baidu), plus free local models (Ollama / LM Studio / llama.cpp / vLLM)
103
+ - **65 AI Tools** across 12 providers &mdash; Perplexity, Grok, GPT-5, Gemini, Qwen, Kimi, MiniMax, DeepSeek, GLM (Zhipu), StepFun, ERNIE (Baidu), plus free local models (Ollama / LM Studio / llama.cpp / vLLM)
99
104
  - **Gemini 3.5 Flash** (`gemini-3.5-flash`, GA May 19 2026) &mdash; Flash/search tier; reasoning default stays `gemini-3.1-pro-preview`
100
105
  - **Multi-Model Council** &mdash; planner_maker synthesizes plans from 5+ models into bite-sized TDD steps
101
106
  - **Smart Routing** &mdash; Automatic model selection for optimal results
@@ -111,11 +116,11 @@ Skills automatically adapt to your configured API keys. Even with just 1-2 provi
111
116
  | Profile | Tools | Best For |
112
117
  |---------|-------|----------|
113
118
  | **Minimal** | 13 | Quick tasks, low token budget |
114
- | **Research Power** | 35 | Deep investigation, multi-source |
119
+ | **Research Power** | 36 | Deep investigation, multi-source |
115
120
  | **Code Focus** | 42 | Software development, SWE tasks |
116
- | **Balanced** | 53 | General-purpose, mixed workflows |
117
- | **Heavy Coding** | 57 | Max code tools + agentic workflows |
118
- | **Full** (default) | 64 | Everything enabled |
121
+ | **Balanced** | 54 | General-purpose, mixed workflows |
122
+ | **Heavy Coding** | 58 | Max code tools + agentic workflows |
123
+ | **Full** (default) | 65 | Everything enabled |
119
124
 
120
125
  ### Developer Experience
121
126
  - **Claude Code** &mdash; First-class support
@@ -195,10 +200,10 @@ See [Installation Guide](docs/INSTALLATION_BOTH.md) for detailed instructions.
195
200
 
196
201
  ---
197
202
 
198
- ## Tool Ecosystem (64 Tools)
203
+ ## Tool Ecosystem (65 Tools)
199
204
 
200
- ### Research & Search (5)
201
- `perplexity_ask` &#183; `perplexity_reason` &#183; `grok_search` &#183; `openai_search` &#183; `gemini_search`
205
+ ### Research & Search (6)
206
+ `perplexity_ask` &#183; `perplexity_reason` &#183; `grok_search` &#183; `grok_search_lite` &#183; `openai_search` &#183; `gemini_search`
202
207
 
203
208
  ### Reasoning & Planning (14)
204
209
  `grok_reason` &#183; `openai_reason` &#183; `qwen_reason` &#183; `qwq_reason` &#183; `kimi_thinking` &#183; `kimi_decompose` &#183; `deepseek_reason` &#183; `glm_reason` &#183; `stepfun_reason` &#183; `ernie_reason` &#183; `planner_maker` &#183; `planner_runner` &#183; `list_plans` &#183; `spec_writer`
@@ -6,26 +6,33 @@
6
6
  // =============================================================================
7
7
  // OPENAI MODELS (provider-based naming)
8
8
  // =============================================================================
9
- // GPT-5.5 released Apr 23, 2026 - CURRENT (agentic-focused, 1.1M context, omnimodal)
10
- // GPT-5.4 released Mar 5, 2026 - previous flagship (kept for MINI tier no 5.5-mini yet)
11
- // Model is "gpt-5.5", "thinking" is controlled by reasoning.effort parameter
12
- // OpenRouter uses prefix: openai/gpt-5.5, openai/gpt-5.5-pro
9
+ // GPT-5.6 released Jul 9, 2026 - CURRENT. Three durable tiers replace the pro/mini split:
10
+ // sol (flagship $5/$30) / terra (balanced $2.50/$15) / luna (fast $1/$6). All 1.05M ctx, 128K out.
11
+ // "Pro" is no longer a model: sol + reasoning.effort (the $30/$180 gpt-5.5-pro tier is gone).
12
+ // GPT-5.5 (Apr 23, 2026) kept as fallback. OpenRouter uses prefix: openai/gpt-5.6-sol etc.
13
13
  export const OPENAI_MODELS = {
14
- // GPT-5.5 (Apr 23, 2026 - CURRENT)
15
- // Note: "gpt-5.5" + reasoning.effort="high"/"xhigh" = "thinking" mode
16
- DEFAULT: "gpt-5.5", // Most capable - agentic, reasoning, omnimodal (1.1M ctx)
17
- MINI: "gpt-5.4-mini", // Fast/efficient coding & subagents (no 5.5-mini available yet)
18
- PRO: "gpt-5.5-pro", // Expert: higher compute for harder problems ($30/$180)
14
+ // GPT-5.6 tiers (Jul 9, 2026 - CURRENT)
15
+ DEFAULT: "gpt-5.6-sol", // Flagship: coding/agentic SOTA, 54% more token-efficient than 5.5
16
+ SOL: "gpt-5.6-sol", // Explicit tier alias (also aliased "gpt-5.6" server-side)
17
+ TERRA: "gpt-5.6-terra", // Balanced: matches gpt-5.5 at half price ($2.50/$15)
18
+ LUNA: "gpt-5.6-luna", // Fast/cheap: $1/$6 (weaker long-context recall avoid huge inputs)
19
+ MINI: "gpt-5.6-luna", // "mini" tier successor (was gpt-5.4-mini)
20
+ PRO: "gpt-5.6-sol", // Pro tier eliminated in 5.6 — sol + reasoning.effort xhigh (was gpt-5.5-pro $30/$180)
21
+ // GPT-5.5 (Apr 2026) - fallback
22
+ FALLBACK_5_5: "gpt-5.5",
19
23
  // Aliases for backward compatibility
20
- THINKING: "gpt-5.5", // "Thinking" = gpt-5.5 with high reasoning effort
21
- FULL: "gpt-5.5", // Map old FULL to DEFAULT
22
- CODEX: "gpt-5.4-mini", // Map old codex to MINI (no 5.5 mini yet)
23
- CODEX_MINI: "gpt-5.4-mini", // Map old codex-mini to MINI
24
- CODEX_MAX: "gpt-5.5-pro", // Map old codex-max to PRO
25
- INSTANT: "gpt-5.4-mini", // Map old instant to MINI
24
+ THINKING: "gpt-5.6-sol", // "Thinking" = sol with high reasoning effort
25
+ FULL: "gpt-5.6-sol", // Map old FULL to DEFAULT
26
+ CODEX: "gpt-5.6-terra", // Coding workhorse tier
27
+ CODEX_MINI: "gpt-5.6-luna", // Cheapest tier
28
+ CODEX_MAX: "gpt-5.6-sol", // Map old codex-max to flagship (use high effort)
29
+ INSTANT: "gpt-5.6-luna", // Fast tier
26
30
  };
27
31
  // OpenRouter model ID mapping (add prefix when using OpenRouter gateway)
28
32
  export const OPENROUTER_PREFIX_MAP = {
33
+ "gpt-5.6-sol": "openai/",
34
+ "gpt-5.6-terra": "openai/",
35
+ "gpt-5.6-luna": "openai/",
29
36
  "gpt-5.5": "openai/",
30
37
  "gpt-5.5-pro": "openai/",
31
38
  "gpt-5.4-mini": "openai/",
@@ -63,18 +70,21 @@ export const PERPLEXITY_MODELS = {
63
70
  SONAR_PRO: "sonar-pro", // Advanced search
64
71
  SONAR_REASONING: "sonar-reasoning-pro", // Reasoning model (expensive - avoid)
65
72
  };
66
- // Grok Models (xAI) - Updated 2026-06-01 with Grok 4.3 (Apr 30, 2026 flagship)
73
+ // Grok Models (xAI) - Updated 2026-07-11 with Grok 4.5 (Jul 8, 2026 flagship)
67
74
  export const GROK_MODELS = {
68
- // Grok 4.3 (Apr 30, 2026) - CURRENT FLAGSHIP
69
- // Single model ID with configurable reasoning effort (replaces 4.20's reasoning/non-reasoning/multi-agent split).
70
- // 1M context, $1.25/$2.50 (cheaper than 4.20), xAI's recommended model, lowest hallucination rate.
71
- _4_3: "grok-4.3", // Flagship: 1M ctx, $1.25/$2.50, reasoning.effort low|high
75
+ // Grok 4.5 (Jul 8, 2026) - CURRENT FLAGSHIP ("Opus-class")
76
+ // 500K context (SMALLER than 4.3's 1M — fine for tools, mind huge inputs), $2/$6,
77
+ // configurable reasoning effort. EU API rollout was "mid-July" 4.3 stays the fallback.
78
+ _4_5: "grok-4.5", // Flagship: 500K ctx, $2/$6, reasoning.effort low|high
79
+ // Grok 4.3 (Apr 30, 2026) - previous flagship, kept as FALLBACK
80
+ // 1M context, $1.25/$2.50, lowest verified hallucination rate.
81
+ _4_3: "grok-4.3", // Fallback: 1M ctx, $1.25/$2.50, reasoning.effort low|high
72
82
  _4_3_LATEST: "grok-4.3-latest", // Rolling alias for newest 4.3 snapshot
73
83
  _BUILD: "grok-build-0.1", // Coding specialist (May 29, 2026): 256k ctx, fast agentic coding
74
- // Grok 4.20 models (Mar 10, 2026) - LEGACY (still valid; kept as fallback). Now resolve to 4.3 via deprecated keys.
75
- _4_20_REASONING: "grok-4.3", // [deprecated key] → grok-4.3 (was grok-4.20-0309-reasoning)
76
- _4_20_NON_REASONING: "grok-4.3", // [deprecated key] → grok-4.3 (was grok-4.20-0309-non-reasoning)
77
- _4_20_MULTI_AGENT: "grok-4.3", // [deprecated key] → grok-4.3 (architect uses high reasoning.effort)
84
+ // Grok 4.20 models (Mar 10, 2026) - LEGACY keys. Deprecated keys now resolve to the current flagship (4.5).
85
+ _4_20_REASONING: "grok-4.5", // [deprecated key] → grok-4.5 (was grok-4.20-0309-reasoning)
86
+ _4_20_NON_REASONING: "grok-4.5", // [deprecated key] → grok-4.5 (was grok-4.20-0309-non-reasoning)
87
+ _4_20_MULTI_AGENT: "grok-4.5", // [deprecated key] → grok-4.5 (architect uses high reasoning.effort)
78
88
  // Grok 4.1 fast models (Nov 2025) - BEST VALUE (10x cheaper)
79
89
  _4_1_FAST_REASONING: "grok-4-1-fast-reasoning", // Fast reasoning: 2M context, $0.20/$0.50
80
90
  _4_1_FAST_NON_REASONING: "grok-4-1-fast-non-reasoning", // Tool-calling optimized: 2M context, $0.20/$0.50
@@ -159,26 +169,27 @@ export const DEFAULT_WORKFLOW_SETTINGS = {
159
169
  // When new models release, update ONLY this section!
160
170
  // All tools automatically use the new models.
161
171
  // ============================================================================
162
- // UPDATED Apr 26, 2026: GPT-5.5 (flagship, agentic-focused) + GPT-5.4-mini (coding/fast no 5.5-mini yet)
163
- // Kimi K2.6 (Apr 20, 2026 - SWE-bench Pro leader)
172
+ // UPDATED Jul 11, 2026: GPT-5.6 tiers (sol/terra/luna — Jul 9) + Grok 4.5 (Jul 8 flagship)
173
+ // Kimi K2.7-Code (Jun 12, 2026)
164
174
  export const CURRENT_MODELS = {
165
175
  openai: {
166
- default: OPENAI_MODELS.DEFAULT, // gpt-5.5 - most capable, agentic (Apr 2026)
167
- reason: OPENAI_MODELS.DEFAULT, // Deep reasoning (gpt-5.5 + effort=high)
168
- brainstorm: OPENAI_MODELS.DEFAULT, // Creative ideation (gpt-5.5 + effort=medium)
169
- code: OPENAI_MODELS.MINI, // Code tasks (gpt-5.4-mini - cheapest tier, no 5.5-mini yet)
170
- explain: OPENAI_MODELS.MINI, // Explanations (gpt-5.4-mini - fast & capable)
171
- search: OPENAI_MODELS.DEFAULT, // Web search (gpt-5.5 + web_search tool)
172
- // Premium option for opt-in (use sparingly - $30/$180 per 1M tokens)
173
- premium: OPENAI_MODELS.PRO, // Expert mode (gpt-5.5-pro - higher compute)
176
+ default: OPENAI_MODELS.DEFAULT, // gpt-5.6-sol - flagship, agentic/coding SOTA (Jul 2026)
177
+ reason: OPENAI_MODELS.DEFAULT, // Deep reasoning (sol + effort=high)
178
+ brainstorm: OPENAI_MODELS.DEFAULT, // Creative ideation (sol + effort=medium)
179
+ code: OPENAI_MODELS.TERRA, // Code tasks (gpt-5.6-terra - 5.5-level at half price)
180
+ explain: OPENAI_MODELS.LUNA, // Explanations (gpt-5.6-luna - $1/$6, fast)
181
+ search: OPENAI_MODELS.DEFAULT, // Web search (sol + web_search tool)
182
+ // Premium: the 5.5-pro tier ($30/$180) is gone — sol + effort=xhigh replaces it at $5/$30
183
+ premium: OPENAI_MODELS.PRO, // Expert mode (gpt-5.6-sol - crank reasoning effort)
174
184
  },
175
185
  grok: {
176
- reason: GROK_MODELS._4_3, // grok-4.3 (flagship, low hallucination, high reasoning effort)
177
- code: GROK_MODELS._4_3, // grok-4.3 (flagship quality, tool-calling)
178
- debug: GROK_MODELS._4_3, // grok-4.3 (low hallucination for debugging)
179
- brainstorm: GROK_MODELS._4_3, // grok-4.3 (1M context)
180
- search: GROK_MODELS._4_3, // grok-4.3 LOW HALLUCINATION - critical for search
181
- architect: GROK_MODELS._4_3, // grok-4.3 with high reasoning.effort (agentic swarm behaviour)
186
+ reason: GROK_MODELS._4_5, // grok-4.5 (Jul 2026 flagship, high reasoning effort)
187
+ code: GROK_MODELS._4_5, // grok-4.5 (flagship quality, tool-calling)
188
+ debug: GROK_MODELS._4_5, // grok-4.5 (flagship debugging)
189
+ brainstorm: GROK_MODELS._4_5, // grok-4.5 (500K context)
190
+ search: GROK_MODELS._4_5, // grok-4.5 flagship synthesis over live search
191
+ search_lite: GROK_MODELS._4_1_FAST_NON_REASONING, // grok-4-1-fast: $0.20/$0.50, 2M ctx, tool-calling optimized 10x cheaper search
192
+ architect: GROK_MODELS._4_5, // grok-4.5 with high reasoning.effort (agentic swarm behaviour)
182
193
  },
183
194
  gemini: {
184
195
  default: GEMINI_MODELS.GEMINI_3_PRO,
@@ -275,6 +286,11 @@ export const TOOL_DEFAULTS = {
275
286
  maxTokens: 3000,
276
287
  temperature: 0.7,
277
288
  },
289
+ grok_search_lite: {
290
+ model: CURRENT_MODELS.grok.search_lite,
291
+ maxTokens: 3000,
292
+ temperature: 0.3,
293
+ },
278
294
  grok_brainstorm: {
279
295
  model: CURRENT_MODELS.grok.brainstorm,
280
296
  maxTokens: 4000,
@@ -343,6 +359,10 @@ export const DEFAULT_WORKFLOW_TOOL = "openai_brainstorm";
343
359
  // Used in tool outputs, usage stats, logs - keeps display consistent
344
360
  export const MODEL_DISPLAY_NAMES = {
345
361
  // OpenAI
362
+ "gpt-5.6-sol": "gpt-5.6-sol",
363
+ "gpt-5.6-terra": "gpt-5.6-terra",
364
+ "gpt-5.6-luna": "gpt-5.6-luna",
365
+ "gpt-5.6": "gpt-5.6-sol",
346
366
  "gpt-5.5": "gpt-5.5",
347
367
  "gpt-5.5-pro": "gpt-5.5-pro",
348
368
  "gpt-5.4": "gpt-5.4",
@@ -354,6 +374,7 @@ export const MODEL_DISPLAY_NAMES = {
354
374
  "gemini-3-flash-preview": "gemini-3-flash",
355
375
  "gemini-3.1-flash-lite": "gemini-3.1-flash-lite",
356
376
  // Grok (xAI)
377
+ "grok-4.5": "grok-4.5",
357
378
  "grok-4.3": "grok-4.3",
358
379
  "grok-4.3-latest": "grok-4.3",
359
380
  "grok-build-0.1": "grok-build",
@@ -397,8 +418,11 @@ export function getModelDisplayName(modelId) {
397
418
  // Model pricing per 1K tokens (input/output average) for cost tracking
398
419
  export const MODEL_PRICING = {
399
420
  // OpenAI
400
- "gpt-5.5": 0.0175, // ($5 + $30) / 2 / 1000 (Apr 23, 2026)
401
- "gpt-5.5-pro": 0.105, // ($30 + $180) / 2 / 1000 (Apr 23, 2026)
421
+ "gpt-5.6-sol": 0.0175, // ($5 + $30) / 2 / 1000 (Jul 9, 2026)
422
+ "gpt-5.6-terra": 0.00875, // ($2.50 + $15) / 2 / 1000 (Jul 9, 2026)
423
+ "gpt-5.6-luna": 0.0035, // ($1 + $6) / 2 / 1000 (Jul 9, 2026)
424
+ "gpt-5.5": 0.0175, // ($5 + $30) / 2 / 1000 (Apr 23, 2026 - fallback)
425
+ "gpt-5.5-pro": 0.105, // ($30 + $180) / 2 / 1000 (Apr 23, 2026 - tier removed in 5.6)
402
426
  "gpt-5.4": 0.00875, // ($2.50 + $15) / 2 / 1000 (Mar 2026 - legacy)
403
427
  "gpt-5.4-mini": 0.002625, // ($0.75 + $4.50) / 2 / 1000 (Mar 17, 2026)
404
428
  "gpt-5.4-pro": 0.105, // ($30 + $180) / 2 / 1000 (Mar 2026)
@@ -408,7 +432,8 @@ export const MODEL_PRICING = {
408
432
  "gemini-3-flash-preview": 0.00175, // ($0.50 + $3) / 2 / 1000 (legacy)
409
433
  "gemini-3.1-flash-lite": 0.001, // Cheapest/fastest in 3.1 series (Mar 2026)
410
434
  // Grok
411
- "grok-4.3": 0.001875, // ($1.25 + $2.50) / 2 / 1000 (Apr 30, 2026 - cheaper than 4.20)
435
+ "grok-4.5": 0.004, // ($2 + $6) / 2 / 1000 (Jul 8, 2026 flagship)
436
+ "grok-4.3": 0.001875, // ($1.25 + $2.50) / 2 / 1000 (Apr 30, 2026 - fallback)
412
437
  "grok-4.3-latest": 0.001875,
413
438
  "grok-build-0.1": 0.001875, // Coding specialist (estimate, same tier)
414
439
  "grok-4.20-0309-reasoning": 0.004, // ($2 + $6) / 2 / 1000 (legacy)
@@ -1,5 +1,5 @@
1
1
  export const balancedProfile = {
2
- description: "Balanced set for general use (53 tools)",
2
+ description: "Balanced set for general use (54 tools)",
3
3
  tools: {
4
4
  think: true,
5
5
  focus: true,
@@ -16,6 +16,7 @@ export const balancedProfile = {
16
16
  grok_architect: false,
17
17
  grok_brainstorm: false,
18
18
  grok_search: true,
19
+ grok_search_lite: true,
19
20
  openai_reason: true,
20
21
  openai_brainstorm: true,
21
22
  openai_code_review: false,
@@ -16,6 +16,7 @@ export const codeFocusProfile = {
16
16
  grok_architect: false,
17
17
  grok_brainstorm: false,
18
18
  grok_search: false,
19
+ grok_search_lite: false,
19
20
  openai_reason: false,
20
21
  openai_brainstorm: false,
21
22
  openai_code_review: true,
@@ -1,5 +1,5 @@
1
1
  export const fullProfile = {
2
- description: "Default profile — all tools enabled for maximum capability (64 tools)",
2
+ description: "Default profile — all tools enabled for maximum capability (65 tools)",
3
3
  tools: {
4
4
  think: true,
5
5
  focus: true,
@@ -16,6 +16,7 @@ export const fullProfile = {
16
16
  grok_architect: true,
17
17
  grok_brainstorm: true,
18
18
  grok_search: true,
19
+ grok_search_lite: true,
19
20
  openai_reason: true,
20
21
  openai_brainstorm: true,
21
22
  openai_code_review: true,
@@ -1,5 +1,5 @@
1
1
  export const heavyCodingProfile = {
2
- description: "Heavy coding with all reasoning & code tools (57 tools)",
2
+ description: "Heavy coding with all reasoning & code tools (58 tools)",
3
3
  tools: {
4
4
  // Core reasoning - all enabled
5
5
  think: true,
@@ -19,6 +19,7 @@ export const heavyCodingProfile = {
19
19
  grok_architect: true,
20
20
  grok_brainstorm: true,
21
21
  grok_search: true,
22
+ grok_search_lite: true,
22
23
  // OpenAI - all enabled for heavy coding
23
24
  openai_reason: true,
24
25
  openai_brainstorm: true,
@@ -16,6 +16,7 @@ export const minimalProfile = {
16
16
  grok_architect: false,
17
17
  grok_brainstorm: false,
18
18
  grok_search: false,
19
+ grok_search_lite: false,
19
20
  openai_reason: false,
20
21
  openai_brainstorm: false,
21
22
  openai_code_review: false,
@@ -1,5 +1,5 @@
1
1
  export const researchPowerProfile = {
2
- description: "Research-focused with Grok search + all Perplexity + brainstorming (35 tools)",
2
+ description: "Research-focused with Grok search + all Perplexity + brainstorming (36 tools)",
3
3
  tools: {
4
4
  think: true,
5
5
  focus: true,
@@ -16,6 +16,7 @@ export const researchPowerProfile = {
16
16
  grok_architect: false,
17
17
  grok_brainstorm: false,
18
18
  grok_search: true,
19
+ grok_search_lite: true,
19
20
  openai_reason: false,
20
21
  openai_brainstorm: true,
21
22
  openai_code_review: false,
@@ -38,9 +38,11 @@ export async function callGrokEnhanced(messages, options = {}) {
38
38
  // Use different endpoint and format for search vs non-search
39
39
  if (enableLiveSearch) {
40
40
  // NEW Agent Tools API (Jan 2025) - uses /v1/responses endpoint
41
- // with 'input' instead of 'messages' and tools array
41
+ // with 'input' instead of 'messages' and tools array.
42
+ // Respects options.model so grok_search (flagship) and grok_search_lite
43
+ // (grok-4-1-fast, 10x cheaper) share this path.
42
44
  const searchRequestBody = {
43
- model: GrokModel.GROK_4_20_NON_REASONING, // 4.20 standard is better for tool-calling search
45
+ model,
44
46
  input: messages.map(m => ({ role: m.role, content: m.content })),
45
47
  tools: [
46
48
  { type: "web_search" },
@@ -132,8 +134,14 @@ export async function callGrokEnhanced(messages, options = {}) {
132
134
  };
133
135
  }
134
136
  catch (error) {
137
+ const errMsg = error instanceof Error ? error.message : String(error);
138
+ // grok-4.5's rollout is region-staged (EU lands mid-July 2026) — fall back to grok-4.3
139
+ if (model.startsWith('grok-4.5') && errMsg.includes('not available in your region')) {
140
+ console.error(`[Grok] grok-4.5 region-blocked, falling back to grok-4.3`);
141
+ return callGrokEnhanced(messages, { ...options, model: GrokModel.GROK_4_3 });
142
+ }
135
143
  return {
136
- content: `[Grok error: ${error instanceof Error ? error.message : String(error)}]`
144
+ content: `[Grok error: ${errMsg}]`
137
145
  };
138
146
  }
139
147
  }
@@ -348,7 +356,7 @@ export const grokSearchTool = {
348
356
  const messages = [
349
357
  {
350
358
  role: "system",
351
- content: `You are Grok 4.3 with live search. Search for: "${query}".
359
+ content: `You are Grok 4.5 with live search. Search for: "${query}".
352
360
  ${recencyPrompt}
353
361
  Provide concise, factual results with sources.
354
362
  Limit search to ${max_search_results} sources for cost control.
@@ -359,13 +367,13 @@ ${FORMAT_INSTRUCTION}`
359
367
  content: `Search for: ${query}`
360
368
  }
361
369
  ];
362
- log?.info(`Grok Search: ${max_search_results} sources, recency: ${recency} (using grok-4.20 reasoning)`);
370
+ log?.info(`Grok Search: ${max_search_results} sources, recency: ${recency} (using grok-4.5 flagship)`);
363
371
  // Extract domains from sources if specified
364
372
  const domains = sources
365
373
  ?.filter((s) => s.allowed_websites)
366
374
  ?.flatMap((s) => s.allowed_websites) || [];
367
375
  const result = await callGrokEnhanced(messages, {
368
- model: GrokModel.GROK_4_20_REASONING, // Low hallucination is CRITICAL for search accuracy
376
+ model: GrokModel.GROK_4_20_REASONING, // grok-4.5 flagship (grok_search_lite is the cheap tier)
369
377
  enableLiveSearch: true,
370
378
  searchSources: max_search_results,
371
379
  searchDomains: domains,
@@ -403,11 +411,11 @@ export function isGrokAvailable() {
403
411
  export function getGrokStatus() {
404
412
  return {
405
413
  available: isGrokAvailable(),
406
- model: "grok-4.3",
414
+ model: "grok-4.5",
407
415
  features: [
408
- 'Grok 4.3 (grok-4.3): Flagship, lowest hallucination, 1M context, configurable reasoning effort ($1.25/$2.50)',
416
+ 'Grok 4.5 (grok-4.5): Flagship ("Opus-class", Jul 2026), 500K context, configurable reasoning effort ($2/$6)',
417
+ 'Grok 4.3 (grok-4.3): Previous flagship, kept as fallback — 1M context, lowest verified hallucination ($1.25/$2.50)',
409
418
  'Grok Build (grok-build-0.1): Fast agentic coding specialist, 256k context',
410
- 'Grok 4.20 (grok-4.20-0309-*): Legacy flagship, still available as fallback (2M context)',
411
419
  'Live web search with citations',
412
420
  'Function calling',
413
421
  'Structured outputs',
@@ -0,0 +1,82 @@
1
+ /**
2
+ * Grok Search Lite — cost-optimized live web search.
3
+ *
4
+ * Same xAI live-search path as grok_search, but on grok-4-1-fast
5
+ * (tool-calling optimized, 2M context, $0.20/$0.50 — ~10x cheaper than the
6
+ * grok-4.5 flagship). Use for high-volume lookups, jury/council fan-outs, and
7
+ * quick fact checks; use grok_search when synthesis quality matters most.
8
+ */
9
+ import { z } from "zod";
10
+ import { callGrokEnhanced, GrokModel } from "./grok-enhanced.js";
11
+ import { defineModelTool } from "./factory/define-model-tool.js";
12
+ import { link } from "../utils/ansi-renderer.js";
13
+ import { stripFormatting } from "../utils/format-stripper.js";
14
+ import { FORMAT_INSTRUCTION } from "../utils/format-constants.js";
15
+ /** Pure prompt builder — exported for tests. */
16
+ export function buildGrokSearchLitePrompt(query, maxSearchResults, recency) {
17
+ const recencyPrompt = recency !== "all" ? `Focus on information from the last ${recency}.` : "";
18
+ return `You are Grok with live search (fast tier). Search for: "${query}".
19
+ ${recencyPrompt}
20
+ Provide concise, factual results with sources.
21
+ Limit search to ${maxSearchResults} sources for cost control.
22
+ ${FORMAT_INSTRUCTION}`;
23
+ }
24
+ export const grokSearchLiteTool = defineModelTool({
25
+ name: "grok_search_lite",
26
+ description: "Cheap web search (grok-4-1-fast, ~10x cheaper than grok_search). Put your QUERY in the 'query' parameter.",
27
+ parameters: z.object({
28
+ query: z.string(),
29
+ sources: z
30
+ .array(z.object({
31
+ type: z.enum(["web", "news", "x", "rss"]),
32
+ country: z.string().optional(),
33
+ allowed_websites: z.array(z.string()).optional(),
34
+ }))
35
+ .optional(),
36
+ max_search_results: z.number().optional(),
37
+ recency: z.enum(["all", "day", "week", "month", "year"]).optional(),
38
+ }),
39
+ execute: async (args, { log }) => {
40
+ const { query, sources = [{ type: "web" }], max_search_results = 20, recency = "all", } = args;
41
+ const messages = [
42
+ {
43
+ role: "system",
44
+ content: buildGrokSearchLitePrompt(query, max_search_results, recency),
45
+ },
46
+ {
47
+ role: "user",
48
+ content: `Search for: ${query}`,
49
+ },
50
+ ];
51
+ log?.info(`Grok Search Lite: ${max_search_results} sources, recency: ${recency} (using grok-4-1-fast, $0.20/$0.50)`);
52
+ // Extract domains from sources if specified
53
+ const domains = sources
54
+ ?.filter((s) => s.allowed_websites)
55
+ ?.flatMap((s) => s.allowed_websites) || [];
56
+ const result = await callGrokEnhanced(messages, {
57
+ model: GrokModel.GROK_4_1_FAST, // Tool-calling optimized cheap tier — the whole point of this tool
58
+ enableLiveSearch: true,
59
+ searchSources: max_search_results,
60
+ searchDomains: domains,
61
+ temperature: 0.3, // Low temperature for factual search
62
+ maxTokens: 3000,
63
+ });
64
+ // Format sources with ANSI links (same shape as grok_search output)
65
+ let output = result.content;
66
+ if (result.sources && result.sources.length > 0) {
67
+ const sourcesText = result.sources
68
+ .slice(0, 10)
69
+ .map((s, i) => {
70
+ const title = s.title || "Source";
71
+ const url = s.url || "";
72
+ return ` ${link(url, `[${i + 1}] ${title}`)}`;
73
+ })
74
+ .join("\n");
75
+ output += `\n\nSources:\n${sourcesText}`;
76
+ }
77
+ // Add cost info
78
+ const estimatedCost = (max_search_results / 1000) * 0.025;
79
+ output += `\n\nSearch used up to ${max_search_results} sources (~$${estimatedCost.toFixed(4)})`;
80
+ return stripFormatting(output);
81
+ },
82
+ });
@@ -23,18 +23,20 @@ config({ path: path.resolve(__dirname, '../../../.env') });
23
23
  // Grok API configuration
24
24
  const GROK_API_KEY = getGrokApiKey();
25
25
  const GROK_API_URL = "https://api.x.ai/v1/chat/completions";
26
- // Available Grok models - Updated 2026-06-01 with Grok 4.3 (Apr 30, 2026 flagship)
26
+ // Available Grok models - Updated 2026-07-11 with Grok 4.5 (Jul 8, 2026 flagship)
27
27
  export var GrokModel;
28
28
  (function (GrokModel) {
29
- // Grok 4.3 (Apr 30, 2026) - CURRENT FLAGSHIP
30
- // Single model ID with configurable reasoning effort; 1M ctx, $1.25/$2.50 (cheaper than 4.20).
29
+ // Grok 4.5 (Jul 8, 2026) - CURRENT FLAGSHIP ("Opus-class")
30
+ // 500K ctx (smaller than 4.3's 1M), $2/$6, configurable reasoning effort.
31
+ GrokModel["GROK_4_5"] = "grok-4.5";
32
+ // Grok 4.3 (Apr 30, 2026) - previous flagship, kept as FALLBACK
31
33
  GrokModel["GROK_4_3"] = "grok-4.3";
32
34
  GrokModel["GROK_4_3_LATEST"] = "grok-4.3-latest";
33
35
  GrokModel["GROK_BUILD"] = "grok-build-0.1";
34
- // Grok 4.20 keys (Mar 2026) - DEPRECATED, retained for back-compat → now resolve to grok-4.3
35
- GrokModel["GROK_4_20_REASONING"] = "grok-4.3";
36
- GrokModel["GROK_4_20_NON_REASONING"] = "grok-4.3";
37
- GrokModel["GROK_4_20_MULTI_AGENT"] = "grok-4.3";
36
+ // Grok 4.20 keys (Mar 2026) - DEPRECATED, retained for back-compat → now resolve to the current flagship
37
+ GrokModel["GROK_4_20_REASONING"] = "grok-4.5";
38
+ GrokModel["GROK_4_20_NON_REASONING"] = "grok-4.5";
39
+ GrokModel["GROK_4_20_MULTI_AGENT"] = "grok-4.5";
38
40
  // Grok 4.1 fast models (Nov 2025) - BEST VALUE (10x cheaper)
39
41
  GrokModel["GROK_4_1_FAST_REASONING"] = "grok-4-1-fast-reasoning";
40
42
  GrokModel["GROK_4_1_FAST"] = "grok-4-1-fast-non-reasoning";
@@ -53,7 +55,7 @@ export var GrokModel;
53
55
  * - 'code-analysis': Relaxed for code analysis tools
54
56
  * - 'llm-orchestration': Medium for LLM-to-LLM calls
55
57
  */
56
- export async function callGrok(messages, model = GrokModel.GROK_4_3, temperature = 0.7, maxTokens = 16384, // Increased default for comprehensive responses
58
+ export async function callGrok(messages, model = GrokModel.GROK_4_5, temperature = 0.7, maxTokens = 16384, // Increased default for comprehensive responses
57
59
  forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEffort) {
58
60
  // Try OpenRouter gateway first if enabled
59
61
  if (isGatewayEnabled()) {
@@ -78,9 +80,9 @@ forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEff
78
80
  }
79
81
  return { ...msg, content: validation.sanitized };
80
82
  });
81
- // Grok 4.x reasoning can take 60-90s; 4.20/4.3 flagship and multi-agent can take longer
83
+ // Grok 4.x reasoning can take 60-90s; 4.3/4.5 flagship and multi-agent can take longer
82
84
  const isReasoning = model.includes('reasoning') || model.includes('multi-agent');
83
- const isFlagship = model.includes('4.20') || model.startsWith('grok-4.3');
85
+ const isFlagship = model.includes('4.20') || model.startsWith('grok-4.3') || model.startsWith('grok-4.5');
84
86
  const timeoutMs = isFlagship ? 180000 : (isReasoning ? 120000 : 60000);
85
87
  try {
86
88
  // For Grok 4+ models, we need to handle reasoning tokens specially
@@ -94,8 +96,8 @@ forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEff
94
96
  }
95
97
  const controller = new AbortController();
96
98
  const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
97
- // grok-4.3 (single flagship) and 4.20 multi-agent both accept reasoning.effort
98
- const supportsReasoningEffort = model.includes('multi-agent') || model.startsWith('grok-4.3');
99
+ // grok-4.3/4.5 flagships and 4.20 multi-agent all accept reasoning.effort
100
+ const supportsReasoningEffort = model.includes('multi-agent') || model.startsWith('grok-4.3') || model.startsWith('grok-4.5');
99
101
  const requestBody = {
100
102
  model,
101
103
  messages: validatedMessages,
@@ -138,7 +140,13 @@ forceVisibleOutput = true, validationContext = 'llm-orchestration', reasoningEff
138
140
  if (error instanceof Error && error.name === 'AbortError') {
139
141
  return `[Grok timeout: ${model} exceeded ${isReasoning ? '120' : '60'}s limit]`;
140
142
  }
141
- return `[Grok error: ${error instanceof Error ? error.message : String(error)}]`;
143
+ const errMsg = error instanceof Error ? error.message : String(error);
144
+ // grok-4.5's rollout is region-staged (EU lands mid-July 2026) — fall back to grok-4.3
145
+ if (model.startsWith('grok-4.5') && errMsg.includes('not available in your region')) {
146
+ console.error(`[Grok] grok-4.5 region-blocked, falling back to grok-4.3`);
147
+ return callGrok(validatedMessages, GrokModel.GROK_4_3, temperature, maxTokens, forceVisibleOutput, validationContext, reasoningEffort);
148
+ }
149
+ return `[Grok error: ${errMsg}]`;
142
150
  }
143
151
  }
144
152
  /**
@@ -171,7 +179,7 @@ export const grokReasonTool = defineModelTool({
171
179
  const messages = [
172
180
  {
173
181
  role: "system",
174
- content: `You are Grok 4.3, an expert at logical reasoning and problem-solving.
182
+ content: `You are Grok 4.5, an expert at logical reasoning and problem-solving.
175
183
  ${approachPrompts[approach]}.
176
184
  ${context ? `Context: ${context}` : ''}
177
185
  ${FORMAT_INSTRUCTION}`
@@ -221,7 +229,7 @@ export const grokCodeTool = defineModelTool({
221
229
  const messages = [
222
230
  {
223
231
  role: "system",
224
- content: `You are Grok 4.3, expert programmer and code analyst.
232
+ content: `You are Grok 4.5, expert programmer and code analyst.
225
233
  Task: ${taskPrompts[task]}
226
234
  ${language ? `Language: ${language}` : ''}
227
235
  ${requirements ? `Requirements: ${requirements}` : ''}
@@ -143,8 +143,13 @@ reasoningEffort = "low", requireConfirmation = false, skipValidation = false) {
143
143
  }
144
144
  return { ...msg, content: validation.sanitized };
145
145
  });
146
- // Model fallback chain - no fallbacks to test actual availability
146
+ // Model fallback chain
147
147
  const modelFallbacks = {
148
+ // gpt-5.6-sol is org-verification gated (403 "insufficient permissions" until verified);
149
+ // terra matches gpt-5.5 quality at half price, so it's the safe runtime fallback.
150
+ "gpt-5.6-sol": ["gpt-5.6-terra", "gpt-5.5"],
151
+ "gpt-5.6-terra": ["gpt-5.5"],
152
+ "gpt-5.6-luna": ["gpt-5.6-terra"],
148
153
  "gpt-5.4": [], // No fallback - test actual gpt-5.4
149
154
  "gpt-5.4-mini": ["gpt-5.4"], // Mini falls back to flagship
150
155
  "gpt-5.4-pro": [] // No fallback - test actual gpt-5.4-pro
@@ -204,8 +209,9 @@ reasoningEffort = "low", requireConfirmation = false, skipValidation = false) {
204
209
  const error = await response.text();
205
210
  lastError = `${currentModel}: ${response.statusText} - ${error}`;
206
211
  console.error(`🔍 TRACE: ${currentModel} failed - Status: ${response.status}, Error: ${error}`);
207
- // Check if it's a model not found error
208
- if (response.status === 404 || error.includes('model') || error.includes('not found')) {
212
+ // Check if it's a model not found / not-yet-unlocked error
213
+ // (403 "insufficient permissions" = org-verification-gated tier, e.g. gpt-5.6-sol)
214
+ if (response.status === 404 || response.status === 403 || error.includes('model') || error.includes('not found') || error.includes('insufficient permissions')) {
209
215
  console.error(`🔍 TRACE: Model ${currentModel} not available, trying fallback...`);
210
216
  continue; // Try next model
211
217
  }
@@ -33,6 +33,7 @@ export const PROVIDER_GROUPS = [
33
33
  "grok_architect",
34
34
  "grok_brainstorm",
35
35
  "grok_search",
36
+ "grok_search_lite",
36
37
  ],
37
38
  },
38
39
  {
@@ -39,6 +39,7 @@
39
39
  import { getAllPerplexityTools, isPerplexityAvailable } from "./perplexity-tools.js";
40
40
  import { getAllGrokTools, isGrokAvailable } from "./grok-tools.js";
41
41
  import { debugTriageTool } from "./debug-triage-tool.js";
42
+ import { grokSearchLiteTool } from "./grok-search-lite-tool.js";
42
43
  import { isOpenAIAvailable, getAllOpenAITools } from "./openai-tools.js";
43
44
  import { specWriterTool } from "./spec-writer-tool.js";
44
45
  import { refinePromptTool } from "./refine-prompt-tool.js";
@@ -74,8 +75,10 @@ export async function getAllTools(inlineTools = []) {
74
75
  // 2) Grok (custom API).
75
76
  if (isGrokAvailable()) {
76
77
  tools.push(...getAllGrokTools());
77
- // debug_triage — ranked-hypothesis bug triage (Grok 4.3) — gated on Grok.
78
+ // debug_triage — ranked-hypothesis bug triage (Grok flagship) — gated on Grok.
78
79
  tools.push(debugTriageTool);
80
+ // grok_search_lite — cheap live search (grok-4-1-fast, ~10x cheaper) — gated on Grok.
81
+ tools.push(grokSearchLiteTool);
79
82
  }
80
83
  // 3) OpenAI (GPT-5 suite). NB: getAllOpenAITools() ALSO self-guards (returns
81
84
  // [] when unavailable); the outer guard is kept to mirror server.ts 1:1.
@@ -1,6 +1,6 @@
1
1
  # TachiBot MCP - Complete Tools Reference
2
2
 
3
- **Complete parameter schemas and example calls for all 64 tools** (65 registered — `continue_focus` is an always-on companion to `focus` outside the profile system; see [Meta & Orchestration](#meta--orchestration)).
3
+ **Complete parameter schemas and example calls for all 65 tools** (66 registered — `continue_focus` is an always-on companion to `focus` outside the profile system; see [Meta & Orchestration](#meta--orchestration)).
4
4
 
5
5
  Schemas below are generated from the wire contract (`test/golden/__snapshots__/tool-contracts.json`) — the exact JSON Schema the MCP server publishes for each tool.
6
6
 
@@ -8,7 +8,7 @@ Schemas below are generated from the wire contract (`test/golden/__snapshots__/t
8
8
 
9
9
  ## Table of Contents
10
10
 
11
- - [Research & Search](#research--search) (5): [perplexity_ask](#perplexity_ask) &#183; [perplexity_reason](#perplexity_reason) &#183; [grok_search](#grok_search) &#183; [openai_search](#openai_search) &#183; [gemini_search](#gemini_search)
11
+ - [Research & Search](#research--search) (6): [perplexity_ask](#perplexity_ask) &#183; [perplexity_reason](#perplexity_reason) &#183; [grok_search](#grok_search) &#183; [grok_search_lite](#grok_search_lite) &#183; [openai_search](#openai_search) &#183; [gemini_search](#gemini_search)
12
12
  - [Reasoning & Planning](#reasoning--planning) (14): [grok_reason](#grok_reason) &#183; [openai_reason](#openai_reason) &#183; [qwen_reason](#qwen_reason) &#183; [qwq_reason](#qwq_reason) &#183; [kimi_thinking](#kimi_thinking) &#183; [kimi_decompose](#kimi_decompose) &#183; [deepseek_reason](#deepseek_reason) &#183; [glm_reason](#glm_reason) &#183; [stepfun_reason](#stepfun_reason) &#183; [ernie_reason](#ernie_reason) &#183; [planner_maker](#planner_maker) &#183; [planner_runner](#planner_runner) &#183; [list_plans](#list_plans) &#183; [spec_writer](#spec_writer)
13
13
  - [Code Intelligence](#code-intelligence) (11): [kimi_code](#kimi_code) &#183; [grok_code](#grok_code) &#183; [grok_debug](#grok_debug) &#183; [qwen_coder](#qwen_coder) &#183; [qwen_algo](#qwen_algo) &#183; [qwen_competitive](#qwen_competitive) &#183; [deepseek_algo](#deepseek_algo) &#183; [minimax_code](#minimax_code) &#183; [minimax_agent](#minimax_agent) &#183; [testgen](#testgen) &#183; [debug_triage](#debug_triage)
14
14
  - [Analysis & Judgment](#analysis--judgment) (14): [gemini_analyze_text](#gemini_analyze_text) &#183; [gemini_analyze_code](#gemini_analyze_code) &#183; [gemini_judge](#gemini_judge) &#183; [jury](#jury) &#183; [diff_review](#diff_review) &#183; [plan_critique](#plan_critique) &#183; [gemini_brainstorm](#gemini_brainstorm) &#183; [openai_brainstorm](#openai_brainstorm) &#183; [openai_code_review](#openai_code_review) &#183; [openai_explain](#openai_explain) &#183; [grok_brainstorm](#grok_brainstorm) &#183; [grok_architect](#grok_architect) &#183; [security_review](#security_review) &#183; [kimi_long_context](#kimi_long_context)
@@ -95,6 +95,30 @@ grok_search({
95
95
 
96
96
  ---
97
97
 
98
+ ### grok_search_lite
99
+
100
+ Cheap web search (grok-4-1-fast, ~10x cheaper than grok_search). Same live-search pipeline and parameters as `grok_search` — use it for high-volume lookups and quick fact checks; use `grok_search` when synthesis quality matters most.
101
+
102
+ #### Parameters
103
+
104
+ | Parameter | Type | Required | Default | Description |
105
+ |-----------|------|----------|---------|-------------|
106
+ | `query` | `string` | ✅ Yes | - | Search query |
107
+ | `max_search_results` | `number` | No | - | Max sources searched (costs per 1k) |
108
+ | `recency` | `"all" \| "day" \| "week" \| "month" \| "year"` | No | - | Time filter |
109
+ | `sources` | `Array<{type: "web"\|"news"\|"x"\|"rss", allowed_websites?: string[], country?: string}>` | No | - | Source configuration |
110
+
111
+ #### Example
112
+
113
+ ```typescript
114
+ grok_search_lite({
115
+ query: "current stable Node.js LTS version",
116
+ recency: "month"
117
+ })
118
+ ```
119
+
120
+ ---
121
+
98
122
  ### openai_search
99
123
 
100
124
  Web search using GPT-5.4 with real-time web access. Put your QUERY in the `query` parameter.
@@ -25,11 +25,11 @@ Counts below are generated from `src/profiles/*.ts` via `npm run build:profiles`
25
25
  | Profile | Tools | Description |
26
26
  |---------|-------|-------------|
27
27
  | `minimal` | 13 | Minimal essential tools for basic tasks |
28
- | `research_power` | 35 | Research-focused with Grok search + all Perplexity + brainstorming |
28
+ | `research_power` | 36 | Research-focused with Grok search + all Perplexity + brainstorming |
29
29
  | `code_focus` | 42 | Code-heavy work with debugging and analysis |
30
- | `balanced` | 53 | Balanced set for general use |
31
- | `heavy_coding` | 57 | Heavy coding with all reasoning & code tools |
32
- | `full` | 64 | **Default profile** — every tool enabled |
30
+ | `balanced` | 54 | Balanced set for general use |
31
+ | `heavy_coding` | 58 | Heavy coding with all reasoning & code tools |
32
+ | `full` | 65 | **Default profile** — every tool enabled |
33
33
 
34
34
  ---
35
35
 
@@ -50,13 +50,13 @@ Minimal essential tools for basic tasks.
50
50
 
51
51
  ---
52
52
 
53
- ### 2. `research_power` (35 tools)
53
+ ### 2. `research_power` (36 tools)
54
54
 
55
55
  Research-focused with Grok search + all Perplexity + brainstorming + the full reasoning/planning suite.
56
56
 
57
57
  **Tools:**
58
58
  - Meta: `think`, `focus`, `tachi`, `doctor`, `nextThought`, `usage_stats`
59
- - Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `openai_search`, `gemini_search`
59
+ - Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `grok_search_lite`, `openai_search`, `gemini_search`
60
60
  - Reasoning: `grok_reason`, `qwq_reason`, `qwen_reason`, `kimi_thinking`, `kimi_decompose`, `deepseek_reason`, `glm_reason`, `stepfun_reason`, `ernie_reason`
61
61
  - Judgment: `gemini_judge`, `jury`
62
62
  - Creative: `openai_brainstorm`, `gemini_brainstorm`
@@ -68,7 +68,7 @@ Research-focused with Grok search + all Perplexity + brainstorming + the full re
68
68
  **Best for:** Deep research, fact-checking, multi-source verification, brainstorming sessions.
69
69
 
70
70
  **Key tools for research:**
71
- - `grok_search` / `openai_search` / `gemini_search` — live web search, three different engines
71
+ - `grok_search` / `openai_search` / `gemini_search` — live web search, three different engines (`grok_search_lite` = same Grok search on grok-4-1-fast, ~10x cheaper for high-volume lookups)
72
72
  - `jury` — multi-model consensus (parallel jurors + Gemini synthesis)
73
73
  - `gemini_judge` — evaluate/synthesize/rank/resolve multiple perspectives into one verdict
74
74
 
@@ -94,13 +94,13 @@ Code-heavy work with debugging and analysis.
94
94
 
95
95
  ---
96
96
 
97
- ### 4. `balanced` (53 tools)
97
+ ### 4. `balanced` (54 tools)
98
98
 
99
99
  Balanced set for general use — nearly everything except the deepest niche reasoning/creative extras.
100
100
 
101
101
  **Tools:**
102
102
  - Meta: `think`, `focus`, `tachi`, `doctor`, `nextThought`, `usage_stats`
103
- - Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `openai_search`, `gemini_search`
103
+ - Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `grok_search_lite`, `openai_search`, `gemini_search`
104
104
  - Reasoning: `grok_reason`, `qwq_reason`, `qwen_reason`, `kimi_thinking`, `kimi_decompose`, `deepseek_reason`, `glm_reason`, `stepfun_reason`, `ernie_reason`
105
105
  - Code: `grok_code`, `qwen_coder`, `qwen_algo`, `kimi_code`, `kimi_long_context`, `minimax_code`, `minimax_agent`, `deepseek_algo`, `debug_triage`
106
106
  - Judgment: `gemini_judge`, `jury`
@@ -117,13 +117,13 @@ Balanced set for general use — nearly everything except the deepest niche reas
117
117
 
118
118
  ---
119
119
 
120
- ### 5. `heavy_coding` (57 tools)
120
+ ### 5. `heavy_coding` (58 tools)
121
121
 
122
122
  Heavy coding with the full reasoning & code toolset, minus the general workflow-management tools.
123
123
 
124
124
  **Tools:**
125
125
  - Meta: `think`, `focus`, `tachi`, `doctor`, `nextThought`, `usage_stats`
126
- - Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `openai_search`, `gemini_search`
126
+ - Research: `perplexity_ask`, `perplexity_reason`, `grok_search`, `grok_search_lite`, `openai_search`, `gemini_search`
127
127
  - Reasoning: `grok_reason`, `openai_reason`, `qwq_reason`, `qwen_reason`, `kimi_thinking`, `kimi_decompose`, `deepseek_reason`, `glm_reason`, `stepfun_reason`
128
128
  - Code: `grok_code`, `grok_debug`, `grok_architect`, `openai_code_review`, `openai_explain`, `gemini_analyze_code`, `qwen_coder`, `qwen_algo`, `kimi_code`, `kimi_long_context`, `minimax_code`, `minimax_agent`, `deepseek_algo`, `debug_triage`
129
129
  - Judgment: `gemini_judge`, `jury`
@@ -141,7 +141,7 @@ Heavy coding with the full reasoning & code toolset, minus the general workflow-
141
141
 
142
142
  ---
143
143
 
144
- ### 6. `full` (64 tools) — default
144
+ ### 6. `full` (65 tools) — default
145
145
 
146
146
  All tools enabled for maximum capability. This is the profile set in `tools.config.json`'s `activeProfile` by default.
147
147
 
@@ -149,7 +149,7 @@ All tools enabled for maximum capability. This is the profile set in `tools.conf
149
149
 
150
150
  **Best for:** Maximum flexibility, specialized tasks, demonstrations.
151
151
 
152
- **Note:** tools still self-gate on API keys — with no `OPENROUTER_API_KEY`, the Qwen/Kimi/MiniMax/DeepSeek/GLM/StepFun/ERNIE tools won't register even under `full`. Run `doctor` to see exactly what's active. `continue_focus` is always registered regardless of profile (see [TOOLS_REFERENCE.md](TOOLS_REFERENCE.md#continue_focus)) and isn't counted in the 64.
152
+ **Note:** tools still self-gate on API keys — with no `OPENROUTER_API_KEY`, the Qwen/Kimi/MiniMax/DeepSeek/GLM/StepFun/ERNIE tools won't register even under `full`. Run `doctor` to see exactly what's active. `continue_focus` is always registered regardless of profile (see [TOOLS_REFERENCE.md](TOOLS_REFERENCE.md#continue_focus)) and isn't counted in the 65.
153
153
 
154
154
  ---
155
155
 
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "tachibot-mcp",
3
3
  "mcpName": "io.github.byPawel/tachibot-mcp",
4
4
  "displayName": "TachiBot MCP - Universal AI Orchestrator",
5
- "version": "2.26.1",
5
+ "version": "2.27.0",
6
6
  "type": "module",
7
7
  "main": "dist/src/server.js",
8
8
  "bin": {
@@ -76,7 +76,7 @@
76
76
  "node": ">=22.0.0"
77
77
  },
78
78
  "license": "AGPL-3.0",
79
- "description": "TachiBot MCP: 51 AI tools, 7 providers. Multi-model orchestration (Perplexity, Grok, OpenAI, Gemini, Qwen, Kimi, MiniMax), YAML workflows, token-optimized profiles. Smart routing, parallel execution, jury system.",
79
+ "description": "TachiBot MCP: 65 AI tools, 12 providers. Multi-model orchestration (Perplexity, Grok, OpenAI, Gemini, Qwen, Kimi, MiniMax, DeepSeek, GLM, StepFun, ERNIE, local), YAML workflows, token-optimized profiles. Smart routing, parallel execution, jury system.",
80
80
  "dependencies": {
81
81
  "@types/node": "^22.13.17",
82
82
  "@types/react": "^19.2.7",
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "Balanced set for general use (53 tools)",
2
+ "description": "Balanced set for general use (54 tools)",
3
3
  "tools": {
4
4
  "think": true,
5
5
  "focus": true,
@@ -16,6 +16,7 @@
16
16
  "grok_architect": false,
17
17
  "grok_brainstorm": false,
18
18
  "grok_search": true,
19
+ "grok_search_lite": true,
19
20
  "openai_reason": true,
20
21
  "openai_brainstorm": true,
21
22
  "openai_code_review": false,
@@ -16,6 +16,7 @@
16
16
  "grok_architect": false,
17
17
  "grok_brainstorm": false,
18
18
  "grok_search": false,
19
+ "grok_search_lite": false,
19
20
  "openai_reason": false,
20
21
  "openai_brainstorm": false,
21
22
  "openai_code_review": true,
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "Default profile — all tools enabled for maximum capability (64 tools)",
2
+ "description": "Default profile — all tools enabled for maximum capability (65 tools)",
3
3
  "tools": {
4
4
  "think": true,
5
5
  "focus": true,
@@ -16,6 +16,7 @@
16
16
  "grok_architect": true,
17
17
  "grok_brainstorm": true,
18
18
  "grok_search": true,
19
+ "grok_search_lite": true,
19
20
  "openai_reason": true,
20
21
  "openai_brainstorm": true,
21
22
  "openai_code_review": true,
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "Heavy coding with all reasoning & code tools (57 tools)",
2
+ "description": "Heavy coding with all reasoning & code tools (58 tools)",
3
3
  "tools": {
4
4
  "think": true,
5
5
  "focus": true,
@@ -16,6 +16,7 @@
16
16
  "grok_architect": true,
17
17
  "grok_brainstorm": true,
18
18
  "grok_search": true,
19
+ "grok_search_lite": true,
19
20
  "openai_reason": true,
20
21
  "openai_brainstorm": true,
21
22
  "openai_code_review": true,
@@ -16,6 +16,7 @@
16
16
  "grok_architect": false,
17
17
  "grok_brainstorm": false,
18
18
  "grok_search": false,
19
+ "grok_search_lite": false,
19
20
  "openai_reason": false,
20
21
  "openai_brainstorm": false,
21
22
  "openai_code_review": false,
@@ -1,5 +1,5 @@
1
1
  {
2
- "description": "Research-focused with Grok search + all Perplexity + brainstorming (35 tools)",
2
+ "description": "Research-focused with Grok search + all Perplexity + brainstorming (36 tools)",
3
3
  "tools": {
4
4
  "think": true,
5
5
  "focus": true,
@@ -16,6 +16,7 @@
16
16
  "grok_architect": false,
17
17
  "grok_brainstorm": false,
18
18
  "grok_search": true,
19
+ "grok_search_lite": true,
19
20
  "openai_reason": false,
20
21
  "openai_brainstorm": true,
21
22
  "openai_code_review": false,
package/tools.config.json CHANGED
@@ -23,7 +23,8 @@
23
23
  "debug_triage",
24
24
  "grok_architect",
25
25
  "grok_brainstorm",
26
- "grok_search"
26
+ "grok_search",
27
+ "grok_search_lite"
27
28
  ],
28
29
  "openai": ["openai_brainstorm", "openai_reason", "openai_code_review", "openai_explain", "openai_search", "spec_writer", "refine_prompt"],
29
30
  "gemini": [
@@ -73,6 +74,7 @@
73
74
  "grok_architect": true,
74
75
  "grok_brainstorm": true,
75
76
  "grok_search": true,
77
+ "grok_search_lite": true,
76
78
  "openai_brainstorm": true,
77
79
  "openai_reason": true,
78
80
  "openai_code_review": true,