agent-takkub 1.0.26 → 1.0.28

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
@@ -45,17 +45,31 @@ A single AI agent hits a wall on big work: context fills up, sub-tasks collide,
45
45
 
46
46
  ---
47
47
 
48
- ## 🧠 One team, three model "brains"
48
+ ## 🧠 One team, many model "brains"
49
49
 
50
- Model diversity beats a single point of view. Takkub lets the Lead pull in a **second and third brain** for planning, review, and cross-checks and it never breaks if you don't have them installed.
50
+ Model diversity beats a single point of view. Takkub lets the Lead pull in a **second, third — or sixth** brain for planning, review, and cross-checks, and it never breaks if you don't have them installed.
51
51
 
52
52
  | Brain | Backed by | Great at |
53
53
  | :-- | :-- | :-- |
54
54
  | 🟣 **Claude** | Claude Code CLI | The Lead + every specialist — build, test, review |
55
55
  | 🟢 **Codex** | OpenAI Codex CLI | Second opinion · refactor patterns · cross-checking a plan |
56
56
  | 🔵 **Gemini** | Google Antigravity (`agy`) | Long-context planning (reads the whole repo) · a third perspective |
57
+ | 🟠 **OpenCode** | sst OpenCode | One CLI, 75+ model backends (GLM · DeepSeek · local Ollama …) |
58
+ | ⚪ **Kimi** | MoonshotAI Kimi Code CLI | Long-context work · another independent perspective |
59
+ | ⚫ **Cursor** | Cursor CLI (`cursor-agent`) | Pick per-task from Cursor's own model roster |
57
60
 
58
- > **Never a hard dependency.** If Codex or Gemini isn't installed (or you've toggled it off), the Lead keeps the role — **Claude transparently stands in**, and tells you you've traded away model diversity. No refusals, no dead ends.
61
+ **Pick the model, not just the CLI.** Every provider and every *role*can be pinned to a specific model from **Settings Providers & Roles**, or from the terminal:
62
+
63
+ ```bash
64
+ takkub provider model gemini "Gemini 3.1 Pro (High)" # this CLI spawns with that model
65
+ takkub provider list # who's installed, and on which model
66
+ ```
67
+
68
+ A role's own model wins over the provider default, so `backend` can run Codex on `gpt-5.6` while `reviewer` runs it on something cheaper.
69
+
70
+ > **Never a hard dependency.** If a provider isn't installed (or you've toggled it off), the Lead keeps the role — **Claude transparently stands in**, and tells you you've traded away model diversity. No refusals, no dead ends.
71
+
72
+ > ⚠️ **Kimi and Cursor are new in 1.0.27** — they spawn and take tasks, but their idle/busy screen markers aren't calibrated yet, so prefer Claude/Codex/Gemini/OpenCode for roles you leave unattended.
59
73
 
60
74
  ---
61
75
 
@@ -150,7 +164,10 @@ sequenceDiagram
150
164
  | `takkub send --to qa "…"` | Message a teammate (Lead CC’d) |
151
165
  | `takkub goal "…"` | Set a session goal injected into every task |
152
166
  | `takkub restart` | Restart the whole cockpit from the terminal |
153
- | `takkub doctor --fix` | Diagnose the environment + auto-repair |
167
+ | `takkub doctor --fix` | Diagnose the environment + auto-repair (add `--install-providers` to also install missing provider CLIs) |
168
+ | `takkub provider list` | Show every provider CLI, whether it's installed, and its model |
169
+ | `takkub provider install <name>` | Install one provider CLI (Codex / OpenCode / Kimi) |
170
+ | `takkub provider model <name> [<model>]` | Show or set the model a provider spawns with (`--clear` to reset) |
154
171
  | `takkub provision` | Install / repair plugins + browser tools |
155
172
 
156
173
  ---
@@ -41,7 +41,31 @@ function ensureClaudeCli(present) {
41
41
  return run(npm, ['install', '-g', '@anthropic-ai/claude-code']);
42
42
  }
43
43
 
44
+ // A local (non-global) install leaves a package that cannot work: the `takkub`
45
+ // / `agent-takkub` bin shims never land on PATH, and the PATH provisioning
46
+ // below targets the npm GLOBAL bin dir. Without this guard that failure is
47
+ // silent — install "succeeds", then the command simply doesn't exist. npm sets
48
+ // npm_config_global=true for `-g` (npm 7+ also exposes it via npm_config_local
49
+ // being unset); treat an explicit "false" as the only definitive local signal
50
+ // so an unusual npm/pnpm/yarn env can't produce a false alarm.
51
+ function warnIfNotGlobal() {
52
+ if (String(process.env.npm_config_global || '').toLowerCase() === 'true') return;
53
+ const prefix = process.env.npm_config_prefix || '';
54
+ // Heuristic fallback: a local install puts us under a project node_modules.
55
+ const looksLocal =
56
+ String(process.env.npm_config_global || '').toLowerCase() === 'false' ||
57
+ (!prefix && __dirname.includes(`${path.sep}node_modules${path.sep}`) && !process.env.npm_config_global);
58
+ if (!looksLocal) return;
59
+ console.warn(
60
+ '\n[agent-takkub] ⚠ This looks like a LOCAL install.\n' +
61
+ ' agent-takkub must be installed globally or the `takkub` command\n' +
62
+ ' will not be on your PATH:\n\n' +
63
+ ' npm install -g agent-takkub\n'
64
+ );
65
+ }
66
+
44
67
  function main() {
68
+ warnIfNotGlobal();
45
69
  const env = preflight.detect();
46
70
  preflight.report(env);
47
71
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agent-takkub",
3
- "version": "1.0.26",
4
- "description": "Desktop cockpit for orchestrating a team of Claude Code agents (Windows + macOS)",
3
+ "version": "1.0.28",
4
+ "description": "Desktop cockpit for orchestrating a team of Claude Code agents (Windows + macOS). Install globally: npm i -g agent-takkub",
5
5
  "keywords": [
6
6
  "claude",
7
7
  "claude-code",