karajan-code 1.26.0 → 1.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 +1 -0
- package/package.json +1 -1
- package/src/commands/doctor.js +31 -0
- package/src/commands/init.js +16 -0
package/README.md
CHANGED
|
@@ -459,6 +459,7 @@ Karajan Code works great on its own, but combining it with these MCP servers giv
|
|
|
459
459
|
| [**GitHub MCP**](https://github.com/modelcontextprotocol/servers/tree/main/src/github) | Create PRs, manage issues, read repos directly from the agent | Combine with `--auto-push` for end-to-end: code → review → push → PR |
|
|
460
460
|
| [**Serena**](https://github.com/oramasearch/serena) | Symbol-level code navigation (find references, go-to-definition) for JS/TS projects | Enable with `--enable-serena` to inject symbol context into coder/reviewer prompts |
|
|
461
461
|
| [**Chrome DevTools MCP**](https://github.com/anthropics/anthropic-quickstarts/tree/main/chrome-devtools-mcp) | Browser automation, screenshots, console/network inspection | Verify UI changes visually after `kj` modifies frontend code |
|
|
462
|
+
| [**RTK**](https://github.com/rtk-ai/rtk) | Reduces LLM token consumption by 60-90% on Bash command outputs (git, test, build) | Install globally with `brew install rtk && rtk init --global` — all KJ agent commands automatically compressed |
|
|
462
463
|
|
|
463
464
|
## Role Templates
|
|
464
465
|
|
package/package.json
CHANGED
package/src/commands/doctor.js
CHANGED
|
@@ -204,6 +204,36 @@ async function checkBecariaInfra(config) {
|
|
|
204
204
|
return checks;
|
|
205
205
|
}
|
|
206
206
|
|
|
207
|
+
async function checkRtk() {
|
|
208
|
+
try {
|
|
209
|
+
const res = await runCommand("rtk", ["--version"]);
|
|
210
|
+
if (res.exitCode === 0) {
|
|
211
|
+
return {
|
|
212
|
+
name: "rtk",
|
|
213
|
+
label: "RTK (Rust Token Killer)",
|
|
214
|
+
ok: true,
|
|
215
|
+
detail: `${res.stdout.trim()} — token savings active`,
|
|
216
|
+
fix: null
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
name: "rtk",
|
|
221
|
+
label: "RTK (Rust Token Killer)",
|
|
222
|
+
ok: true,
|
|
223
|
+
detail: "Not found — install for 60-90% token savings: brew install rtk",
|
|
224
|
+
fix: null
|
|
225
|
+
};
|
|
226
|
+
} catch {
|
|
227
|
+
return {
|
|
228
|
+
name: "rtk",
|
|
229
|
+
label: "RTK (Rust Token Killer)",
|
|
230
|
+
ok: true,
|
|
231
|
+
detail: "Not found — install for 60-90% token savings: brew install rtk",
|
|
232
|
+
fix: null
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
207
237
|
async function checkRuleFiles(config) {
|
|
208
238
|
const projectDir = config.projectDir || process.cwd();
|
|
209
239
|
const reviewRules = await loadFirstExisting(resolveRoleMdPath("reviewer", projectDir));
|
|
@@ -248,6 +278,7 @@ export async function runChecks({ config }) {
|
|
|
248
278
|
}
|
|
249
279
|
|
|
250
280
|
checks.push(...await checkRuleFiles(config));
|
|
281
|
+
checks.push(await checkRtk());
|
|
251
282
|
|
|
252
283
|
return checks;
|
|
253
284
|
}
|
package/src/commands/init.js
CHANGED
|
@@ -7,6 +7,7 @@ import { exists, ensureDir } from "../utils/fs.js";
|
|
|
7
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
|
+
import { runCommand } from "../utils/process.js";
|
|
10
11
|
|
|
11
12
|
async function runWizard(config, logger) {
|
|
12
13
|
const agents = await detectAvailableAgents();
|
|
@@ -270,6 +271,21 @@ export async function initCommand({ logger, flags = {} }) {
|
|
|
270
271
|
await ensureReviewRules(reviewRulesPath, logger);
|
|
271
272
|
await ensureCoderRules(coderRulesPath, logger);
|
|
272
273
|
await installSkills(logger, interactive);
|
|
274
|
+
|
|
275
|
+
// Check RTK availability and inform user
|
|
276
|
+
let hasRtk = false;
|
|
277
|
+
try {
|
|
278
|
+
const rtkRes = await runCommand("rtk", ["--version"]);
|
|
279
|
+
hasRtk = rtkRes.exitCode === 0;
|
|
280
|
+
} catch {
|
|
281
|
+
hasRtk = false;
|
|
282
|
+
}
|
|
283
|
+
if (!hasRtk) {
|
|
284
|
+
logger.info("");
|
|
285
|
+
logger.info("RTK (Rust Token Killer) can reduce token usage by 60-90%.");
|
|
286
|
+
logger.info(" Install: brew install rtk && rtk init --global");
|
|
287
|
+
}
|
|
288
|
+
|
|
273
289
|
await setupSonarQube(config, logger);
|
|
274
290
|
await scaffoldBecariaGateway(config, flags, logger);
|
|
275
291
|
}
|