@phuetz/code-buddy 0.1.24 → 0.1.25
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.
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
import { getToolHooksManager, } from './tool-hooks.js';
|
|
9
9
|
import { sanitizeResult, } from './result-sanitizer.js';
|
|
10
10
|
import { logger } from '../../utils/logger.js';
|
|
11
|
-
import {
|
|
11
|
+
import { wrapWithRTK, isRTKAvailable } from '../../utils/rtk-compressor.js';
|
|
12
12
|
import { getConfigManager } from '../../config/toml-config.js';
|
|
13
13
|
// Track current provider for sanitization
|
|
14
14
|
let currentProvider = 'grok';
|
|
@@ -36,31 +36,32 @@ export function registerDefaultHooks() {
|
|
|
36
36
|
logger.debug('Default hooks already registered');
|
|
37
37
|
return;
|
|
38
38
|
}
|
|
39
|
-
// RTK
|
|
40
|
-
hooksManager.
|
|
41
|
-
if (
|
|
42
|
-
return
|
|
39
|
+
// RTK command proxy hook (before tool execution — wraps bash commands with `rtk`)
|
|
40
|
+
hooksManager.registerBeforeHook('rtk-command-proxy', async (context) => {
|
|
41
|
+
if (context.toolName !== 'bash')
|
|
42
|
+
return;
|
|
43
43
|
const config = getConfigManager().getConfig();
|
|
44
44
|
if (!config.integrations?.rtk_enabled)
|
|
45
|
-
return
|
|
46
|
-
const minLength = config.integrations.rtk_min_output_length ?? 500;
|
|
47
|
-
if (result.output.length < minLength)
|
|
48
|
-
return result;
|
|
45
|
+
return;
|
|
49
46
|
if (!isRTKAvailable())
|
|
50
|
-
return
|
|
51
|
-
const
|
|
52
|
-
if (
|
|
53
|
-
return
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
47
|
+
return;
|
|
48
|
+
const command = context.args.command;
|
|
49
|
+
if (!command)
|
|
50
|
+
return;
|
|
51
|
+
const wrapped = wrapWithRTK(command);
|
|
52
|
+
if (wrapped !== command) {
|
|
53
|
+
logger.debug('RTK wrapping bash command', {
|
|
54
|
+
original: command.substring(0, 100),
|
|
55
|
+
wrapped: wrapped.substring(0, 100),
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
...context,
|
|
59
|
+
args: { ...context.args, command: wrapped },
|
|
60
|
+
};
|
|
61
|
+
}
|
|
61
62
|
}, {
|
|
62
|
-
name: 'RTK
|
|
63
|
-
priority: 90, // Runs before
|
|
63
|
+
name: 'RTK Command Proxy',
|
|
64
|
+
priority: 90, // Runs before other hooks
|
|
64
65
|
});
|
|
65
66
|
// Result sanitization hook (after tool execution)
|
|
66
67
|
hooksManager.registerAfterHook('result-sanitizer', async (context, result) => {
|
|
@@ -153,7 +154,7 @@ export function registerDefaultHooks() {
|
|
|
153
154
|
*/
|
|
154
155
|
export function unregisterDefaultHooks() {
|
|
155
156
|
const hooksManager = getToolHooksManager();
|
|
156
|
-
hooksManager.unregisterHook('
|
|
157
|
+
hooksManager.unregisterHook('before_tool_call', 'rtk-command-proxy');
|
|
157
158
|
hooksManager.unregisterHook('after_tool_call', 'result-sanitizer');
|
|
158
159
|
hooksManager.unregisterHook('after_tool_call', 'execution-logger');
|
|
159
160
|
hooksManager.unregisterHook('tool_error', 'error-tracker');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-hooks.js","sourceRoot":"","sources":["../../../src/tools/hooks/default-hooks.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,mBAAmB,GAGpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,cAAc,GAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"default-hooks.js","sourceRoot":"","sources":["../../../src/tools/hooks/default-hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RTK (Rust Token Killer)
|
|
2
|
+
* RTK (Rust Token Killer) Command Proxy
|
|
3
|
+
*
|
|
4
|
+
* Integrates with the RTK CLI proxy to reduce LLM token consumption by 60-90%
|
|
5
|
+
* on common dev commands (git, npm, ls, grep, test, etc.).
|
|
6
|
+
* RTK wraps commands as `rtk <subcommand>` to filter and compress output
|
|
7
|
+
* before it reaches the LLM context window.
|
|
3
8
|
*
|
|
4
|
-
* Integrates with the RTK CLI binary to compress shell output 60-90%
|
|
5
|
-
* via format-aware parsing (strips ANSI, deduplicates whitespace, removes noise).
|
|
6
9
|
* Falls back gracefully when RTK is not installed.
|
|
7
10
|
*
|
|
8
11
|
* @see https://github.com/rtk-ai/rtk
|
|
@@ -15,15 +18,15 @@ export declare function isRTKAvailable(): boolean;
|
|
|
15
18
|
* Reset the cached availability check (useful for testing)
|
|
16
19
|
*/
|
|
17
20
|
export declare function resetRTKCache(): void;
|
|
18
|
-
export interface RTKCompressOptions {
|
|
19
|
-
/** Output format hint for RTK (e.g., 'json', 'log', 'csv') */
|
|
20
|
-
format?: string;
|
|
21
|
-
}
|
|
22
21
|
/**
|
|
23
|
-
*
|
|
24
|
-
* Returns
|
|
22
|
+
* Try to wrap a bash command with RTK for token-optimized output.
|
|
23
|
+
* Returns the modified command if RTK can handle it, or the original command otherwise.
|
|
24
|
+
*/
|
|
25
|
+
export declare function wrapWithRTK(command: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Check if a command can benefit from RTK wrapping
|
|
25
28
|
*/
|
|
26
|
-
export declare function
|
|
29
|
+
export declare function isRTKCompatible(command: string): boolean;
|
|
27
30
|
export interface CompressionStats {
|
|
28
31
|
originalTokens: number;
|
|
29
32
|
compressedTokens: number;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* RTK (Rust Token Killer)
|
|
2
|
+
* RTK (Rust Token Killer) Command Proxy
|
|
3
|
+
*
|
|
4
|
+
* Integrates with the RTK CLI proxy to reduce LLM token consumption by 60-90%
|
|
5
|
+
* on common dev commands (git, npm, ls, grep, test, etc.).
|
|
6
|
+
* RTK wraps commands as `rtk <subcommand>` to filter and compress output
|
|
7
|
+
* before it reaches the LLM context window.
|
|
3
8
|
*
|
|
4
|
-
* Integrates with the RTK CLI binary to compress shell output 60-90%
|
|
5
|
-
* via format-aware parsing (strips ANSI, deduplicates whitespace, removes noise).
|
|
6
9
|
* Falls back gracefully when RTK is not installed.
|
|
7
10
|
*
|
|
8
11
|
* @see https://github.com/rtk-ai/rtk
|
|
9
12
|
*/
|
|
10
|
-
import { execSync
|
|
11
|
-
import { logger } from './logger.js';
|
|
13
|
+
import { execSync } from 'child_process';
|
|
12
14
|
// Cache RTK availability check
|
|
13
15
|
let rtkAvailable = null;
|
|
14
16
|
/**
|
|
@@ -33,39 +35,86 @@ export function resetRTKCache() {
|
|
|
33
35
|
rtkAvailable = null;
|
|
34
36
|
}
|
|
35
37
|
/**
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
+
* Commands that RTK supports as direct subcommands.
|
|
39
|
+
* Maps the first token of a bash command to an RTK subcommand.
|
|
40
|
+
* Note: `npm` is excluded — `rtk npm` only handles `npm run`, not `npm list/install/etc.`
|
|
41
|
+
*/
|
|
42
|
+
const RTK_SUPPORTED_COMMANDS = new Set([
|
|
43
|
+
'ls', 'tree', 'git', 'gh', 'npx', 'pnpm',
|
|
44
|
+
'grep', 'find', 'curl', 'wget', 'docker', 'kubectl',
|
|
45
|
+
'cargo', 'pip', 'pytest', 'ruff', 'go', 'golangci-lint',
|
|
46
|
+
'tsc', 'prettier', 'vitest', 'prisma',
|
|
47
|
+
'playwright',
|
|
48
|
+
]);
|
|
49
|
+
/**
|
|
50
|
+
* Commands that require special handling (only certain subcommands are supported)
|
|
51
|
+
*/
|
|
52
|
+
const RTK_CONDITIONAL_COMMANDS = {
|
|
53
|
+
// `rtk npm` only handles `npm run <script>`, not `npm list`, `npm install`, etc.
|
|
54
|
+
'npm': (args) => /^run\b/.test(args),
|
|
55
|
+
// `rtk next` only handles `next build`
|
|
56
|
+
'next': (args) => /^build\b/.test(args),
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Commands where RTK wrapping should be skipped (interactive, editors, etc.)
|
|
60
|
+
*/
|
|
61
|
+
const RTK_SKIP_PATTERNS = [
|
|
62
|
+
/^(nano|vim|vi|emacs|code|less|more|man)\b/,
|
|
63
|
+
/^(ssh|scp|rsync)\b/,
|
|
64
|
+
/^(sudo|su)\b/,
|
|
65
|
+
/\|\s*head\b/, // already piped/truncated
|
|
66
|
+
/\|\s*tail\b/,
|
|
67
|
+
/\|\s*less\b/,
|
|
68
|
+
/\|\s*wc\b/,
|
|
69
|
+
/\|\s*rtk\b/, // already using rtk
|
|
70
|
+
/^rtk\b/, // already prefixed
|
|
71
|
+
];
|
|
72
|
+
/**
|
|
73
|
+
* Try to wrap a bash command with RTK for token-optimized output.
|
|
74
|
+
* Returns the modified command if RTK can handle it, or the original command otherwise.
|
|
38
75
|
*/
|
|
39
|
-
export function
|
|
40
|
-
if (!isRTKAvailable())
|
|
41
|
-
return
|
|
76
|
+
export function wrapWithRTK(command) {
|
|
77
|
+
if (!isRTKAvailable())
|
|
78
|
+
return command;
|
|
79
|
+
const trimmed = command.trim();
|
|
80
|
+
// Skip patterns that shouldn't be wrapped
|
|
81
|
+
for (const pattern of RTK_SKIP_PATTERNS) {
|
|
82
|
+
if (pattern.test(trimmed))
|
|
83
|
+
return command;
|
|
42
84
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
85
|
+
// Extract the base command and remaining args
|
|
86
|
+
const parts = trimmed.split(/\s+/);
|
|
87
|
+
const firstToken = parts[0];
|
|
88
|
+
const restArgs = parts.slice(1).join(' ');
|
|
89
|
+
// Check direct support
|
|
90
|
+
if (RTK_SUPPORTED_COMMANDS.has(firstToken)) {
|
|
91
|
+
return `rtk ${trimmed}`;
|
|
92
|
+
}
|
|
93
|
+
// Check conditional support (command-specific subcommand filtering)
|
|
94
|
+
const conditionalCheck = RTK_CONDITIONAL_COMMANDS[firstToken];
|
|
95
|
+
if (conditionalCheck && conditionalCheck(restArgs)) {
|
|
96
|
+
return `rtk ${trimmed}`;
|
|
97
|
+
}
|
|
98
|
+
return command;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Check if a command can benefit from RTK wrapping
|
|
102
|
+
*/
|
|
103
|
+
export function isRTKCompatible(command) {
|
|
104
|
+
const trimmed = command.trim();
|
|
105
|
+
for (const pattern of RTK_SKIP_PATTERNS) {
|
|
106
|
+
if (pattern.test(trimmed))
|
|
107
|
+
return false;
|
|
62
108
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
109
|
+
const parts = trimmed.split(/\s+/);
|
|
110
|
+
const firstToken = parts[0];
|
|
111
|
+
if (RTK_SUPPORTED_COMMANDS.has(firstToken))
|
|
112
|
+
return true;
|
|
113
|
+
const conditionalCheck = RTK_CONDITIONAL_COMMANDS[firstToken];
|
|
114
|
+
if (conditionalCheck) {
|
|
115
|
+
return conditionalCheck(parts.slice(1).join(' '));
|
|
68
116
|
}
|
|
117
|
+
return false;
|
|
69
118
|
}
|
|
70
119
|
/**
|
|
71
120
|
* Estimate compression stats between original and compressed output.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rtk-compressor.js","sourceRoot":"","sources":["../../src/utils/rtk-compressor.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"rtk-compressor.js","sourceRoot":"","sources":["../../src/utils/rtk-compressor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,+BAA+B;AAC/B,IAAI,YAAY,GAAmB,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,YAAY,KAAK,IAAI;QAAE,OAAO,YAAY,CAAC;IAE/C,IAAI,CAAC;QACH,QAAQ,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC3C,YAAY,GAAG,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,YAAY,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM;IACxC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS;IACnD,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe;IACvD,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ;IACrC,YAAY;CACb,CAAC,CAAC;AAEH;;GAEG;AACH,MAAM,wBAAwB,GAA8C;IAC1E,iFAAiF;IACjF,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;IACpC,uCAAuC;IACvC,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;CACxC,CAAC;AAEF;;GAEG;AACH,MAAM,iBAAiB,GAAG;IACxB,2CAA2C;IAC3C,oBAAoB;IACpB,cAAc;IACd,aAAa,EAAE,0BAA0B;IACzC,aAAa;IACb,aAAa;IACb,WAAW;IACX,YAAY,EAAE,oBAAoB;IAClC,QAAQ,EAAM,mBAAmB;CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,IAAI,CAAC,cAAc,EAAE;QAAE,OAAO,OAAO,CAAC;IAEtC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAE/B,0CAA0C;IAC1C,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;IAC5C,CAAC;IAED,8CAA8C;IAC9C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAE1C,uBAAuB;IACvB,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,OAAO,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,oEAAoE;IACpE,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnD,OAAO,OAAO,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,OAAe;IAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAE/B,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACxC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;IAC1C,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAE5B,IAAI,sBAAsB,CAAC,GAAG,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAExD,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,UAAU,CAAC,CAAC;IAC9D,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAQD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,UAAkB;IACtE,MAAM,cAAc,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@phuetz/code-buddy",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.25",
|
|
4
4
|
"description": "Open-source multi-provider AI coding agent for the terminal. Supports Grok, Claude, ChatGPT, Gemini, Ollama and LM Studio with 52+ tools, multi-channel messaging, skills system, and OpenClaw-inspired architecture.",
|
|
5
5
|
"author": "Patrice Huetz <patrice.huetz@gmail.com>",
|
|
6
6
|
"repository": {
|