karajan-code 1.34.3 → 1.34.4
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 +1 -1
- package/docs/README.es.md +1 -1
- package/package.json +1 -1
- package/src/commands/doctor.js +2 -1
- package/src/commands/init.js +2 -1
- package/src/utils/agent-detect.js +6 -5
- package/src/utils/os-detect.js +45 -0
package/README.md
CHANGED
|
@@ -116,7 +116,7 @@ hu-reviewer? → triage → discover? → architect? → planner? → coder →
|
|
|
116
116
|
| **Claude** | `claude` | `npm install -g @anthropic-ai/claude-code` |
|
|
117
117
|
| **Codex** | `codex` | `npm install -g @openai/codex` |
|
|
118
118
|
| **Gemini** | `gemini` | See [Gemini CLI docs](https://github.com/google-gemini/gemini-cli) |
|
|
119
|
-
| **Aider** | `aider` | `
|
|
119
|
+
| **Aider** | `aider` | `pipx install aider-chat` (or `pip3 install aider-chat`) |
|
|
120
120
|
| **OpenCode** | `opencode` | See [OpenCode docs](https://github.com/nicepkg/opencode) |
|
|
121
121
|
|
|
122
122
|
Mix and match. Use Claude as coder and Codex as reviewer. Karajan auto-detects installed agents during `kj init`.
|
package/docs/README.es.md
CHANGED
|
@@ -124,7 +124,7 @@ Guias completas: [`docs/multi-instance.md`](multi-instance.md) | [`docs/install-
|
|
|
124
124
|
| **Claude** | `claude` | `npm install -g @anthropic-ai/claude-code` |
|
|
125
125
|
| **Codex** | `codex` | `npm install -g @openai/codex` |
|
|
126
126
|
| **Gemini** | `gemini` | Ver [Gemini CLI docs](https://github.com/google-gemini/gemini-cli) |
|
|
127
|
-
| **Aider** | `aider` | `
|
|
127
|
+
| **Aider** | `aider` | `pipx install aider-chat` (o `pip3 install aider-chat`) |
|
|
128
128
|
|
|
129
129
|
`kj init` auto-detecta los agentes instalados. Si solo hay uno disponible, se asigna a todos los roles automaticamente.
|
|
130
130
|
|
package/package.json
CHANGED
package/src/commands/doctor.js
CHANGED
|
@@ -8,6 +8,7 @@ import { isSonarReachable } from "../sonar/manager.js";
|
|
|
8
8
|
import { resolveRoleMdPath, loadFirstExisting } from "../roles/base-role.js";
|
|
9
9
|
import { ensureGitRepo } from "../utils/git.js";
|
|
10
10
|
import { checkBinary, KNOWN_AGENTS } from "../utils/agent-detect.js";
|
|
11
|
+
import { getInstallCommand } from "../utils/os-detect.js";
|
|
11
12
|
|
|
12
13
|
function getPackageVersion() {
|
|
13
14
|
const pkgPath = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../package.json");
|
|
@@ -205,7 +206,7 @@ async function checkBecariaInfra(config) {
|
|
|
205
206
|
}
|
|
206
207
|
|
|
207
208
|
async function checkRtk() {
|
|
208
|
-
const NOT_FOUND_DETAIL =
|
|
209
|
+
const NOT_FOUND_DETAIL = `Not found — install for 60-90% token savings: ${getInstallCommand("rtk")}`;
|
|
209
210
|
let detail = NOT_FOUND_DETAIL;
|
|
210
211
|
try {
|
|
211
212
|
const res = await runCommand("rtk", ["--version"]);
|
package/src/commands/init.js
CHANGED
|
@@ -8,6 +8,7 @@ import { getKarajanHome } from "../utils/paths.js";
|
|
|
8
8
|
import { detectAvailableAgents } from "../utils/agent-detect.js";
|
|
9
9
|
import { createWizard, isTTY } from "../utils/wizard.js";
|
|
10
10
|
import { runCommand } from "../utils/process.js";
|
|
11
|
+
import { getInstallCommand } from "../utils/os-detect.js";
|
|
11
12
|
|
|
12
13
|
async function runWizard(config, logger) {
|
|
13
14
|
const agents = await detectAvailableAgents();
|
|
@@ -292,7 +293,7 @@ export async function initCommand({ logger, flags = {} }) {
|
|
|
292
293
|
if (!hasRtk) {
|
|
293
294
|
logger.info("");
|
|
294
295
|
logger.info("RTK (Rust Token Killer) can reduce token usage by 60-90%.");
|
|
295
|
-
logger.info(
|
|
296
|
+
logger.info(` Install: ${getInstallCommand("rtk")}`);
|
|
296
297
|
}
|
|
297
298
|
|
|
298
299
|
await setupSonarQube(config, logger);
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { runCommand } from "./process.js";
|
|
2
2
|
import { resolveBin } from "../agents/resolve-bin.js";
|
|
3
|
+
import { getInstallCommand } from "./os-detect.js";
|
|
3
4
|
|
|
4
5
|
const KNOWN_AGENTS = [
|
|
5
|
-
{ name: "claude", install: "
|
|
6
|
-
{ name: "codex", install: "
|
|
7
|
-
{ name: "gemini", install: "
|
|
8
|
-
{ name: "aider", install: "
|
|
9
|
-
{ name: "opencode", install: "
|
|
6
|
+
{ name: "claude", install: getInstallCommand("claude") },
|
|
7
|
+
{ name: "codex", install: getInstallCommand("codex") },
|
|
8
|
+
{ name: "gemini", install: getInstallCommand("gemini") },
|
|
9
|
+
{ name: "aider", install: getInstallCommand("aider") },
|
|
10
|
+
{ name: "opencode", install: getInstallCommand("opencode") }
|
|
10
11
|
];
|
|
11
12
|
|
|
12
13
|
export async function checkBinary(name, versionArg = "--version") {
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import os from "node:os";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Detect platform and return OS-appropriate install commands.
|
|
5
|
+
*/
|
|
6
|
+
export function getPlatform() {
|
|
7
|
+
const platform = os.platform();
|
|
8
|
+
return platform === "darwin" ? "macos" : "linux";
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const INSTALL_COMMANDS = {
|
|
12
|
+
rtk: {
|
|
13
|
+
macos: "brew install rtk && rtk init --global",
|
|
14
|
+
linux: "curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh && rtk init --global"
|
|
15
|
+
},
|
|
16
|
+
claude: {
|
|
17
|
+
macos: "npm install -g @anthropic-ai/claude-code",
|
|
18
|
+
linux: "npm install -g @anthropic-ai/claude-code"
|
|
19
|
+
},
|
|
20
|
+
codex: {
|
|
21
|
+
macos: "npm install -g @openai/codex",
|
|
22
|
+
linux: "npm install -g @openai/codex"
|
|
23
|
+
},
|
|
24
|
+
gemini: {
|
|
25
|
+
macos: "npm install -g @google/gemini-cli",
|
|
26
|
+
linux: "npm install -g @google/gemini-cli"
|
|
27
|
+
},
|
|
28
|
+
aider: {
|
|
29
|
+
macos: "pipx install aider-chat",
|
|
30
|
+
linux: "pipx install aider-chat || pip3 install aider-chat"
|
|
31
|
+
},
|
|
32
|
+
opencode: {
|
|
33
|
+
macos: "curl -fsSL https://opencode.ai/install | bash",
|
|
34
|
+
linux: "curl -fsSL https://opencode.ai/install | bash"
|
|
35
|
+
},
|
|
36
|
+
docker: {
|
|
37
|
+
macos: "brew install --cask docker",
|
|
38
|
+
linux: "sudo apt install docker.io docker-compose-v2 (or see https://docs.docker.com/engine/install/)"
|
|
39
|
+
}
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
export function getInstallCommand(tool) {
|
|
43
|
+
const platform = getPlatform();
|
|
44
|
+
return INSTALL_COMMANDS[tool]?.[platform] || INSTALL_COMMANDS[tool]?.linux || `Install ${tool} manually`;
|
|
45
|
+
}
|